{"version":3,"mappings":"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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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YACV,CACH,IAAK,GACH,OAAQ,EAAC,CACP,IAAK,GACH,MAAO,UACT,IAAK,GACH,MAAO,WACT,IAAK,GACH,KAAM,mDACR,IAAK,GACH,OAAO,EAAI,kBAAoB,aACjC,IAAK,IACH,OAAO,EAAI,kBAAoB,aACjC,IAAK,GACH,MAAO,SACT,IAAK,GACH,MAAO,UACT,IAAK,IACH,KAAM,6CACR,IAAK,IACH,MAAO,YACT,IAAK,GACH,KAAM,qDACR,IAAK,GACH,KAAM,yDACR,IAAK,GACH,KAAM,+DACR,QACE,MAAO,YACV,CACH,IAAK,GACH,OAAQ,EAAC,CACP,IAAK,GACH,MAAO,UACT,IAAK,GACH,MAAO,WACT,IAAK,IACH,KAAM,2DACR,IAAK,IACH,MAAO,aACT,QACE,MAAO,YACV,CACH,IAAK,GACH,OAAQ,EAAC,CACP,IAAK,GACH,MAAO,UACT,IAAK,GACH,MAAO,WACT,IAAK,IACH,KAAM,2DACR,IAAK,IACH,MAAO,aACT,QACE,MAAO,YACV,CACH,IAAK,GACH,OAAQ,EAAC,CACP,IAAK,GACH,MAAO,UACT,IAAK,GACH,MAAO,WACT,IAAK,IACH,KAAM,2DACR,IAAK,IACH,MAAO,aACT,QACE,MAAO,YACV,CACH,IAAK,GACH,OAAQ,EAAC,CACP,IAAK,GACH,MAAO,UACT,IAAK,GACH,MAAO,WACT,IAAK,IACH,KAAM,2DACR,IAAK,IACH,MAAO,aACT,QACE,MAAO,YACV,CACH,IAAK,GACH,OAAQ,EAAC,CACP,IAAK,GACH,MAAO,WACT,IAAK,GACH,MAAO,YACT,IAAK,GACH,KAAM,mDACR,IAAK,GACH,MAAO,cACT,QACE,MAAO,aACV,CACH,IAAK,GACH,OAAQ,EAAC,CACP,IAAK,GACH,MAAO,WACT,IAAK,GACH,MAAO,YACT,IAAK,GACH,KAAM,mDACR,IAAK,GACH,MAAO,cACT,QACE,MAAO,aACV,CACH,IAAK,IACH,KAAM,kEACR,IAAK,IACH,OAAQ,EAAC,CACP,IAAK,GACH,MAAO,gBACT,IAAK,IACH,KAAM,kHACR,QACE,MAAO,eACV,CACH,IAAK,IACH,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ACP,IAAIT,EAAI,GACR,MAAM,EAAIK,EAAE,OAASA,EAAE,MAAQ,EAAGuD,EAAIvD,EAAE,QAAUA,EAAE,MAAQ,EAAGkC,EAAIlC,EAAE,OAASA,EAAE,MAAQ,EAAGiC,EAAIjC,EAAE,MAAQ,GACzG,IAAI6I,EAAI7I,EAAE,YAAc,OAAS,EAAIA,EAAE,UAAWS,EAAIT,EAAE,eAAiB,OAAS,EAAIA,EAAE,aACxF6I,GAAKA,EAAI,GAAK,EAAGpI,GAAKA,EAAI,GAAK,EAC/B,MAAMF,EAAI,CAAC,EAAG,EAAG,EAAG,CAAC,EAAGC,EAAI,CAAC,EAAG,EAAG,EAAG,CAAC,EACvC,IAAImF,EAAIpF,EAAEsI,CAAC,EAAGjD,EAAIpF,EAAEC,CAAC,EAAGoF,EAAI,CAC1B,EACA,GACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,EACA,EACA,GACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,CACJ,EACE,GAAI5D,EAAG,CACL2C,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGiB,EAAI,CACzF,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,EACA,GACA,EACA,GACA,EACA,GACA,GACA,EACA,EACA,GACA,GACA,EACA,GACA,GACA,EACN,EACI,IAAIyB,EAAI,CACN,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,GAAI,EAAG,CAAC,EACT,CAAC,GAAI,EAAG,EAAE,EACV,CAAC,EAAG,EAAG,EAAE,CACV,EAAEC,EAAI,CACL,CAAC,GAAI,GAAI,CAAC,EACV,CAAC,EAAG,GAAI,CAAC,EACT,CAAC,EAAG,GAAI,EAAE,EACV,CAAC,GAAI,GAAI,EAAE,CACjB,EACI,MAAMyB,EAAI,CAAC,GAAI,GAAI,GAAI,EAAE,EAAGvB,EAAI,CAAC,GAAI,GAAI,GAAI,EAAE,EAC/C,KAAO9B,EAAI,GACT2B,EAAE,QAAQA,EAAE,IAAK,GAAG0B,EAAE,QAAQA,EAAE,KAAK,EAAGrD,IAC1C,KAAOC,EAAI,GACT2B,EAAE,QAAQA,EAAE,IAAK,GAAGE,EAAE,QAAQA,EAAE,KAAK,EAAG7B,IAC1C0B,EAAIA,EAAE,KAAM,EAAEC,EAAIA,EAAE,KAAI,EAAI1B,EAAIA,EAAE,OAAOyB,CAAC,EAAE,OAAOC,CAAC,EAAG3C,EAAE,KAAKoE,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,EAAGpE,EAAE,KAAK6C,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,CAC7I,CACD,MAAM3B,EAAI,CAAC,EAAI,EAAGvC,EAAI,EAAGrB,EAAI,CAAC,EAC9BvC,EAAIkG,EAAE,OAAO,CAACyB,EAAGC,EAAGyB,IAAM1B,EAAE,OAAOC,EAAIzB,EAAEkD,EAAI,CAAC,CAAC,EAAG,EAAE,EACpD,MAAMjD,EAAI/F,EAAE,kBAAoB,EAAI,EAAIA,EAAE,iBAAmButB,GAAG,YAAapmB,EAAInH,EAAE,QAAU,IAAI,MAAM,CAAC,EAAG8c,EAAI9c,EAAE,WAAYoH,EAAI,GACjI,QAASE,EAAI,EAAGA,EAAI,EAAGA,IACrBH,EAAEG,CAAC,IAAM,SAAWH,EAAEG,CAAC,EAAI,IAAIsI,GAAG,EAAG,EAAG,EAAG,CAAC,GAAIkN,GAAKA,EAAExV,CAAC,IAAM,SAAWwV,EAAExV,CAAC,EAAI,IAAIuL,GAAG,EAAG,EAAG,EAAG,CAAC,GACnG,QAASvL,EAAI,EAAGA,EAAI,EAAGA,IACrB,GAAIlH,EAAE,KAAK+G,EAAEG,CAAC,EAAE,EAAGkc,GAAG,0BAA4B,EAAIrc,EAAEG,CAAC,EAAE,EAAIH,EAAEG,CAAC,EAAE,CAAC,EAAGlH,EAAE,KAAK+G,EAAEG,CAAC,EAAE,EAAGkc,GAAG,0BAA4B,EAAIrc,EAAEG,CAAC,EAAE,EAAIH,EAAEG,CAAC,EAAE,CAAC,EAAGlH,EAAE,KAAK+G,EAAEG,CAAC,EAAE,EAAGkc,GAAG,0BAA4B,EAAIrc,EAAEG,CAAC,EAAE,EAAIH,EAAEG,CAAC,EAAE,CAAC,EAAGlH,EAAE,KAAK+G,EAAEG,CAAC,EAAE,EAAGkc,GAAG,0BAA4B,EAAIrc,EAAEG,CAAC,EAAE,EAAIH,EAAEG,CAAC,EAAE,CAAC,EAAGwV,EAClR,QAASvV,EAAI,EAAGA,EAAI,EAAGA,IACrBH,EAAE,KAAK0V,EAAExV,CAAC,EAAE,EAAGwV,EAAExV,CAAC,EAAE,EAAGwV,EAAExV,CAAC,EAAE,EAAGwV,EAAExV,CAAC,EAAE,CAAC,EAC3CimB,GAAG,cAAcxnB,EAAGpG,EAAGiF,EAAGzE,EAAGC,EAAGJ,EAAE,SAAUA,EAAE,OAAO,EACrD,MAAMqH,EAAI,IAAIkmB,GACd,GAAIlmB,EAAE,QAAUzC,EAAGyC,EAAE,UAAY1H,EAAG0H,EAAE,QAAUlH,EAAGkH,EAAE,IAAMjH,EAAG0c,EAAG,CAC/D,MAAMxV,EAAIvB,IAAMwnB,GAAG,WAAanmB,EAAE,OAAOA,CAAC,EAAIA,EAC9CC,EAAE,OAASC,CACZ,CACD,OAAOD,CACT,CACA,SAAS81B,IAAGn9B,EAAG,CACb,MAAM,EAAIA,EAAE,OAASA,EAAE,MAAQ,EAAG,EAAIA,EAAE,QAAUA,EAAE,MAAQ,EAAG,EAAIA,EAAE,OAASA,EAAE,MAAQ,EAAG,GAAKA,EAAE,eAAiBA,EAAE,UAAY,GAAK,EAAGL,GAAKK,EAAE,gBAAkBA,EAAE,UAAY,GAAK,EAAGJ,GAAKI,EAAE,eAAiBA,EAAE,UAAY,GAAK,EAAG,EAAI,IAAIuP,EAAK,EAAI,IAAIA,EAAK,EAAI,IAAIA,EAAK,EAAIotB,GAAG,CAAE,MAAO,EAAG,OAAQ,EAAG,cAAe,EAAG,cAAe/8B,CAAG,GAC/U2P,EAAE,iBAAiB,EAAG,CAAC,EAAI,EAAG,EAAG,CAAC,EAAGA,EAAE,eAAe,KAAK,GAAI,CAAC,EAAG,EAAE,cAAc,EAAG,CAAC,EAAG,EAAE,UAAU,CAAC,EACvG,MAAM,EAAIotB,GAAG,CAAE,MAAO,EAAG,OAAQ,EAAG,cAAe,EAAG,cAAe/8B,CAAG,GACxE2P,EAAE,iBAAiB,EAAG,EAAI,EAAG,EAAG,CAAC,EAAG,EAAE,UAAU,CAAC,EACjD,MAAM,EAAIotB,GAAG,CAAE,MAAO,EAAG,OAAQ,EAAG,cAAeh9B,EAAG,cAAeC,CAAG,GACxE2P,EAAE,iBAAiB,CAAC,EAAI,EAAG,EAAG,EAAG,CAAC,EAAGA,EAAE,eAAe,KAAK,GAAK,EAAG,CAAC,EAAG,EAAE,cAAc,EAAG,CAAC,EAAG,EAAE,UAAU,CAAC,EAC3G,MAAM/O,EAAIm8B,GAAG,CAAE,MAAO,EAAG,OAAQ,EAAG,cAAeh9B,EAAG,cAAeC,CAAG,GACxE2P,EAAE,iBAAiB,EAAI,EAAG,EAAG,EAAG,CAAC,EAAGA,EAAE,eAAe,CAAC,KAAK,GAAK,EAAG,CAAC,EAAG,EAAE,cAAc,EAAG,CAAC,EAAG/O,EAAE,UAAU,CAAC,EAC3G,MAAMmF,EAAIg3B,GAAG,CAAE,MAAO,EAAG,OAAQ,EAAG,cAAe,EAAG,cAAeh9B,CAAG,GACxE4P,EAAE,iBAAiB,EAAG,EAAG,CAAC,EAAI,EAAG,CAAC,EAAGA,EAAE,eAAe,CAAC,KAAK,GAAK,EAAG,CAAC,EAAG,EAAE,cAAc,EAAG,CAAC,EAAG5J,EAAE,UAAU,CAAC,EAC5G,MAAMC,EAAI+2B,GAAG,CAAE,MAAO,EAAG,OAAQ,EAAG,cAAe,EAAG,cAAeh9B,CAAG,GACxE,OAAO4P,EAAE,iBAAiB,EAAG,EAAG,EAAI,EAAG,CAAC,EAAGA,EAAE,eAAe,KAAK,GAAK,EAAG,CAAC,EAAG,EAAE,cAAc,EAAG,CAAC,EAAG3J,EAAE,UAAU,CAAC,EAAG,EAAE,MAAM,CAAC,EAAGpF,EAAG,EAAGmF,EAAGC,CAAC,EAAG,EAAE,EAAG,CACpJ,CACA,SAASw3B,GAAGp9B,EAAG,EAAI,GAAI,EAAI,KAAM,CAC/B,MAAM,EAAI,IAAI4xB,GAAE5xB,EAAG,CAAC,EACpB,OAAO,EAAE,gBAAkB4xB,GAAE,2BAA2B,EAAE,eAAe,EAAG,EAAE,gCAAkC,EAAE,gBAAiBsL,GAAG,CAAC,EAAE,YAAY,EAAG,EAAE,SAAS,EAAG,CACxK,CACK,MAACG,IAAK,CAET,UAAWD,EACb,EACA7P,GAAG,UAAY2P,GACftL,GAAE,UAAY,CAAC5xB,EAAG,EAAG,EAAI,KAAM,EAAG,IAAMo9B,GAAGp9B,EAAG,CAC5C,KAAM,EACN,gBAAiB,EACjB,UAAW,CACb,EAAG,CAAC,EACJ,SAASs9B,GAAGt9B,EAAG,CACb,MAAM,EAAIA,EAAE,SAAW4xB,GAAE,QAAS,EAAI5xB,EAAE,WAAaA,EAAE,UAAY,EAAG,EAAIA,EAAE,YAAcA,EAAE,UAAY,EAAG,EAAIA,EAAE,iBAAmB,EAAGL,EAAIK,EAAE,eAAiB,EAAGJ,EAAII,EAAE,OAASA,EAAE,MAAQ,EAAG,EAAI,KAAK,MAAMJ,EAAI,CAAC,EACjN,IAAI,EAAIA,EAAI,EAAI,EAChB,MAAM,EAAII,EAAE,QAAUA,EAAE,MAAQ,EAAG,EAAI,KAAK,MAAM,EAAI,CAAC,EACvD,IAAI,EAAI,EAAI,EAAI,EAChB,MAAM,EAAI,EAAI,EAAI,EAAGQ,EAAI,EAAI,EAAI,EACjC,IAAImF,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGoB,EAAI,EAC3C,GAAI,EAAI,GAAK,EAAI,EAAG,CAClB,OAAQtB,EAAI,CAAC,EAAGC,EAAI,CAACtF,EAAGuF,EAAI,EAAGoB,EAAI3G,EAAG,EAAC,CACrC,KAAKoxB,GAAE,OACL,GAAK,EAAG/rB,GAAK,EAAGE,GAAK,EACrB,MACF,KAAK6rB,GAAE,KACL7rB,GAAK,EAAGJ,EAAI,CAAC,EAAI,EACjB,MACF,KAAKisB,GAAE,MACL/rB,GAAK,EAAGF,EAAI,EAAI,EAChB,KACH,CACD,OAAQhG,EAAC,CACP,KAAKiyB,GAAE,OACL,GAAK,EAAG9rB,GAAK,EAAGqB,GAAK,EACrB,MACF,KAAKyqB,GAAE,OACLzqB,GAAK,EAAGvB,EAAI,CAAC,EAAI,EACjB,MACF,KAAKgsB,GAAE,IACL9rB,GAAK,EAAGF,EAAI,EAAI,EAChB,KACH,CACF,CACD,MAAM,EAAI,GAAIwB,EAAI,GAAIC,EAAI,GAC1BA,EAAE,CAAC,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGA,EAAE,CAAC,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,GAAI,IAAMuqB,GAAE,aAAe,IAAMA,GAAE,cAAgBvqB,EAAE,CAAC,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,IAAK,IAAMuqB,GAAE,WAAa,IAAMA,GAAE,YAAcvqB,EAAE,CAAC,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,IAAK,IAAMuqB,GAAE,oBAAsB,IAAMA,GAAE,qBAAuBvqB,EAAE,CAAC,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,GAC9T,IAAIC,EAAI,GACR,MAAMC,EAAI,GAAIyB,EAAI,GAClB,IAAIvB,EAAI,EACR,QAASG,EAAK,EAAGA,EAAK,EAAGA,IACvB,QAASC,GAAK,EAAGA,GAAK,EAAGA,KACvB,EAAE,KAAK,CAAC,EAAIA,GAAK,EAAIlC,EAAG,CAACnF,EAAIoH,EAAK,EAAIhC,EAAG,CAAC,EAAG,EAAE,KAAK,CAAC,GAAKiC,GAAK,GAAK,EAAIlC,EAAG,CAACnF,EAAIoH,EAAK,EAAIhC,EAAG,CAAC,EAAG,EAAE,KAAK,CAAC,GAAKiC,GAAK,GAAK,EAAIlC,EAAG,CAACnF,GAAKoH,EAAK,GAAK,EAAIhC,EAAG,CAAC,EAAG,EAAE,KAAK,CAAC,EAAIiC,GAAK,EAAIlC,EAAG,CAACnF,GAAKoH,EAAK,GAAK,EAAIhC,EAAG,CAAC,EAAGoD,EAAE,KAAKvB,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,CAAC,EAAG,IAAMmqB,GAAE,WAAa,IAAMA,GAAE,aAAe,IAAMA,GAAE,mBAAqBtqB,EAAIA,EAAE,OAAOD,GAAGQ,GAAK,EAAID,EAAK,GAAK,CAAC,CAAC,EAAI,IAAMgqB,GAAE,UAAY,IAAMA,GAAE,YAAc,IAAMA,GAAE,kBAAoBtqB,EAAIA,EAAE,OAAOD,EAAEO,EAAK,CAAC,CAAC,EAAIN,EAAIA,EAAE,OAAOD,EAAE,CAAC,CAAC,EAAGE,EAAE,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGH,EAAE,KAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAE,EAAGK,GAAK,EACjlB,GAAI,EAAI,GAAK,EAAI,EAAG,CAClB,MAAMG,EAAK,EAAI,IAAMjI,IAAMiyB,GAAE,QAAUjyB,IAAMiyB,GAAE,KAAM/pB,GAAK,EAAI,IAAMlI,IAAMiyB,GAAE,QAAUjyB,IAAMiyB,GAAE,QAAS9pB,GAAK,EAAI,IAAM,IAAM8pB,GAAE,QAAU,IAAMA,GAAE,OAAQ7pB,EAAK,EAAI,IAAM,IAAM6pB,GAAE,QAAU,IAAMA,GAAE,MACjM,IAAI5pB,GAAK,GAAIC,GAAIuH,EAAGC,EAAGC,EACvB,GAAI9H,GAAME,KAAO,EAAE,KAAKjC,EAAIF,EAAGG,EAAIF,EAAG,CAAC,EAAG,EAAE,KAAK,CAAC,EAAID,EAAGG,EAAIF,EAAG,CAAC,EAAG,EAAE,KAAK,CAAC,EAAID,EAAGG,EAAI,EAAIF,EAAG,CAAC,EAAG,EAAE,KAAKC,EAAIF,EAAGG,EAAI,EAAIF,EAAG,CAAC,EAAGoD,EAAE,KAAKvB,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,CAAC,EAAGA,GAAK,EAAGQ,GAAK,EAAI,EAAI,EAAGuH,EAAI,EAAI,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAG1H,GAAK,CAACC,GAAIuH,EAAGC,EAAGD,EAAGC,EAAGC,EAAGzH,GAAIyH,CAAC,EAAG,IAAMkiB,GAAE,aAAe5pB,GAAK,CAAC,EAAIC,GAAI,EAAIuH,EAAG,EAAIC,EAAG,EAAID,EAAG,EAAIC,EAAG,EAAIC,EAAG,EAAIzH,GAAI,EAAIyH,CAAC,GAAI,IAAMkiB,GAAE,WAAa5pB,GAAK,CAAC,EAAIC,GAAIuH,EAAG,EAAIC,EAAGD,EAAG,EAAIC,EAAGC,EAAG,EAAIzH,GAAIyH,CAAC,GAAI,IAAMkiB,GAAE,oBAAsB5pB,GAAK,CAACC,GAAI,EAAIuH,EAAGC,EAAG,EAAID,EAAGC,EAAG,EAAIC,EAAGzH,GAAI,EAAIyH,CAAC,GAAIpI,EAAIA,EAAE,OAAOU,EAAE,EAAGT,EAAE,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGH,EAAE,KAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAE,GAAIQ,GAAMG,IAAO,EAAE,KAAK,EAAIpC,EAAGG,EAAIF,EAAG,CAAC,EAAG,EAAE,KAAKG,EAAIJ,EAAGG,EAAIF,EAAG,CAAC,EAAG,EAAE,KAAKG,EAAIJ,EAAGG,EAAI,EAAIF,EAAG,CAAC,EAAG,EAAE,KAAK,EAAID,EAAGG,EAAI,EAAIF,EAAG,CAAC,EAAGoD,EAAE,KAAKvB,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,CAAC,EAAGA,GAAK,EAAGQ,GAAK,EAAGuH,EAAI,EAAI,EAAI,EAAGC,EAAI,EAAI,EAAGC,EAAI,EAAG1H,GAAK,CAACC,GAAIuH,EAAGC,EAAGD,EAAGC,EAAGC,EAAGzH,GAAIyH,CAAC,GAAI,IAAMkiB,GAAE,YAAc,IAAMA,GAAE,aAAe,EAAI,IAAM,KAAO5pB,GAAK,CAAC,EAAIC,GAAI,EAAIuH,EAAG,EAAIC,EAAG,EAAID,EAAG,EAAIC,EAAG,EAAIC,EAAG,EAAIzH,GAAI,EAAIyH,CAAC,IAAK,IAAMkiB,GAAE,UAAY,IAAMA,GAAE,WAAa,EAAI,IAAM,KAAO5pB,GAAK,CAAC,EAAIC,GAAIuH,EAAG,EAAIC,EAAGD,EAAG,EAAIC,EAAGC,EAAG,EAAIzH,GAAIyH,CAAC,IAAK,IAAMkiB,GAAE,mBAAqB,IAAMA,GAAE,oBAAsB,EAAI,IAAM,KAAO5pB,GAAK,CAACC,GAAI,EAAIuH,EAAGC,EAAG,EAAID,EAAGC,EAAG,EAAIC,EAAGzH,GAAI,EAAIyH,CAAC,GAAIpI,EAAIA,EAAE,OAAOU,EAAE,EAAGT,EAAE,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGH,EAAE,KAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAE,GAAIS,IAAMC,KAAO,EAAE,KAAKjC,EAAIF,EAAGnF,EAAIoF,EAAG,CAAC,EAAG,EAAE,KAAK,CAAC,EAAID,EAAGnF,EAAIoF,EAAG,CAAC,EAAG,EAAE,KAAK,CAAC,EAAID,EAAGwB,EAAIvB,EAAG,CAAC,EAAG,EAAE,KAAKC,EAAIF,EAAGwB,EAAIvB,EAAG,CAAC,EAAGoD,EAAE,KAAKvB,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,CAAC,EAAGA,GAAK,EAAGQ,GAAK,EAAI,EAAI,EAAGuH,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAI,EAAG1H,GAAK,CAACC,GAAIuH,EAAGC,EAAGD,EAAGC,EAAGC,EAAGzH,GAAIyH,CAAC,GAAI,IAAMkiB,GAAE,YAAc,EAAI,IAAM,GAAK,IAAMA,GAAE,aAAe,EAAI,IAAM,KAAO5pB,GAAK,CAAC,EAAIC,GAAI,EAAIuH,EAAG,EAAIC,EAAG,EAAID,EAAG,EAAIC,EAAG,EAAIC,EAAG,EAAIzH,GAAI,EAAIyH,CAAC,IAAK,IAAMkiB,GAAE,UAAY,EAAI,IAAM,GAAK,IAAMA,GAAE,WAAa,EAAI,IAAM,KAAO5pB,GAAK,CAAC,EAAIC,GAAIuH,EAAG,EAAIC,EAAGD,EAAG,EAAIC,EAAGC,EAAG,EAAIzH,GAAIyH,CAAC,IAAK,IAAMkiB,GAAE,mBAAqB,EAAI,IAAM,GAAK,IAAMA,GAAE,oBAAsB,EAAI,IAAM,KAAO5pB,GAAK,CAACC,GAAI,EAAIuH,EAAGC,EAAG,EAAID,EAAGC,EAAG,EAAIC,EAAGzH,GAAI,EAAIyH,CAAC,GAAIpI,EAAIA,EAAE,OAAOU,EAAE,EAAGT,EAAE,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGH,EAAE,KAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAE,GAAIS,IAAME,IAAO,EAAE,KAAK,EAAIpC,EAAGnF,EAAIoF,EAAG,CAAC,EAAG,EAAE,KAAKG,EAAIJ,EAAGnF,EAAIoF,EAAG,CAAC,EAAG,EAAE,KAAKG,EAAIJ,EAAGwB,EAAIvB,EAAG,CAAC,EAAG,EAAE,KAAK,EAAID,EAAGwB,EAAIvB,EAAG,CAAC,EAAGoD,EAAE,KAAKvB,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,CAAC,EAAGA,GAAK,EAAGQ,GAAK,EAAGuH,EAAI,EAAGC,EAAI,EAAI,EAAGC,EAAI,EAAI,EAAG1H,GAAK,CAACC,GAAIuH,EAAGC,EAAGD,EAAGC,EAAGC,EAAGzH,GAAIyH,CAAC,GAAI,IAAMkiB,GAAE,YAAc,EAAI,IAAM,GAAK,IAAMA,GAAE,cAAgB,EAAI,GAAK,IAAM,KAAO5pB,GAAK,CAAC,EAAIC,GAAI,EAAIuH,EAAG,EAAIC,EAAG,EAAID,EAAG,EAAIC,EAAG,EAAIC,EAAG,EAAIzH,GAAI,EAAIyH,CAAC,IAAK,IAAMkiB,GAAE,UAAY,EAAI,IAAM,GAAK,IAAMA,GAAE,YAAc,EAAI,GAAK,IAAM,KAAO5pB,GAAK,CAAC,EAAIC,GAAIuH,EAAG,EAAIC,EAAGD,EAAG,EAAIC,EAAGC,EAAG,EAAIzH,GAAIyH,CAAC,IAAK,IAAMkiB,GAAE,mBAAqB,EAAI,IAAM,GAAK,IAAMA,GAAE,qBAAuB,EAAI,GAAK,IAAM,KAAO5pB,GAAK,CAACC,GAAI,EAAIuH,EAAGC,EAAG,EAAID,EAAGC,EAAG,EAAIC,EAAGzH,GAAI,EAAIyH,CAAC,GAAIpI,EAAIA,EAAE,OAAOU,EAAE,EAAGT,EAAE,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGH,EAAE,KAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAE,GAAIQ,EAAI,CAC72F,MAAM+H,EAAI,GACV1H,GAAK,EAAGuH,EAAI,EAAI,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAE,CAAC,EAAI,CAAC1H,GAAIuH,EAAGC,EAAGD,EAAGC,EAAGC,EAAGzH,GAAIyH,CAAC,EAAGC,EAAE,CAAC,EAAI,CAAC1H,GAAIuH,EAAGC,EAAGD,EAAGC,EAAGC,EAAGzH,GAAIyH,CAAC,GAAI,IAAMkiB,GAAE,aAAe,IAAMA,GAAE,cAAgBjiB,EAAE,CAAC,EAAI,CAAC,EAAI1H,GAAI,EAAIuH,EAAG,EAAIC,EAAG,EAAID,EAAG,EAAIC,EAAG,EAAIC,EAAG,EAAIzH,GAAI,EAAIyH,CAAC,IAAK,IAAMkiB,GAAE,WAAa,IAAMA,GAAE,YAAcjiB,EAAE,CAAC,EAAI,CAAC,EAAI1H,GAAIuH,EAAG,EAAIC,EAAGD,EAAG,EAAIC,EAAGC,EAAG,EAAIzH,GAAIyH,CAAC,IAAK,IAAMkiB,GAAE,oBAAsB,IAAMA,GAAE,qBAAuBjiB,EAAE,CAAC,EAAI,CAAC1H,GAAI,EAAIuH,EAAGC,EAAG,EAAID,EAAGC,EAAG,EAAIC,EAAGzH,GAAI,EAAIyH,CAAC,GAC7a,QAASG,EAAI,EAAGA,EAAI,EAAGA,IACrB,EAAE,KAAK,CAAC,EAAIA,EAAI,EAAIlK,EAAGG,EAAIF,EAAG,CAAC,EAAG,EAAE,KAAK,CAAC,GAAKiK,EAAI,GAAK,EAAIlK,EAAGG,EAAIF,EAAG,CAAC,EAAG,EAAE,KAAK,CAAC,GAAKiK,EAAI,GAAK,EAAIlK,EAAGG,EAAI,EAAIF,EAAG,CAAC,EAAG,EAAE,KAAK,CAAC,EAAIiK,EAAI,EAAIlK,EAAGG,EAAI,EAAIF,EAAG,CAAC,EAAGoD,EAAE,KAAKvB,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,CAAC,EAAGA,GAAK,EAAG,IAAMmqB,GAAE,WAAa,IAAMA,GAAE,aAAe,IAAMA,GAAE,mBAAqBtqB,EAAIA,EAAE,OAAOqI,GAAGE,EAAI,GAAK,CAAC,CAAC,EAAI,IAAM+hB,GAAE,UAAY,IAAMA,GAAE,YAAc,IAAMA,GAAE,kBAAoBtqB,EAAIA,EAAE,OAAOqI,EAAE,CAAC,CAAC,EAAIrI,EAAIA,EAAE,OAAOqI,EAAE,CAAC,CAAC,EAAGpI,EAAE,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGH,EAAE,KAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAE,CACjhB,CACD,GAAIS,GAAI,CACN,MAAM8H,EAAI,GACV1H,GAAK,EAAGuH,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAI,EAAGC,EAAE,CAAC,EAAI,CAAC1H,GAAIuH,EAAGC,EAAGD,EAAGC,EAAGC,EAAGzH,GAAIyH,CAAC,EAAGC,EAAE,CAAC,EAAI,CAAC1H,GAAIuH,EAAGC,EAAGD,EAAGC,EAAGC,EAAGzH,GAAIyH,CAAC,GAAI,IAAMkiB,GAAE,aAAe,IAAMA,GAAE,cAAgBjiB,EAAE,CAAC,EAAI,CAAC,EAAI1H,GAAI,EAAIuH,EAAG,EAAIC,EAAG,EAAID,EAAG,EAAIC,EAAG,EAAIC,EAAG,EAAIzH,GAAI,EAAIyH,CAAC,IAAK,IAAMkiB,GAAE,WAAa,IAAMA,GAAE,YAAcjiB,EAAE,CAAC,EAAI,CAAC,EAAI1H,GAAIuH,EAAG,EAAIC,EAAGD,EAAG,EAAIC,EAAGC,EAAG,EAAIzH,GAAIyH,CAAC,IAAK,IAAMkiB,GAAE,oBAAsB,IAAMA,GAAE,qBAAuBjiB,EAAE,CAAC,EAAI,CAAC1H,GAAI,EAAIuH,EAAGC,EAAG,EAAID,EAAGC,EAAG,EAAIC,EAAGzH,GAAI,EAAIyH,CAAC,GACza,QAASG,EAAI,EAAGA,EAAI,EAAGA,IACrB,EAAE,KAAK,CAAC,EAAIA,EAAI,EAAIlK,EAAGwB,EAAI,EAAIvB,EAAG,CAAC,EAAG,EAAE,KAAK,CAAC,GAAKiK,EAAI,GAAK,EAAIlK,EAAGwB,EAAI,EAAIvB,EAAG,CAAC,EAAG,EAAE,KAAK,CAAC,GAAKiK,EAAI,GAAK,EAAIlK,EAAGwB,EAAIvB,EAAG,CAAC,EAAG,EAAE,KAAK,CAAC,EAAIiK,EAAI,EAAIlK,EAAGwB,EAAIvB,EAAG,CAAC,EAAGoD,EAAE,KAAKvB,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,CAAC,EAAGA,GAAK,EAAG,IAAMmqB,GAAE,WAAa,IAAMA,GAAE,aAAe,IAAMA,GAAE,mBAAqBtqB,EAAIA,EAAE,OAAOqI,GAAGE,EAAI,GAAK,CAAC,CAAC,EAAI,IAAM+hB,GAAE,UAAY,IAAMA,GAAE,YAAc,IAAMA,GAAE,kBAAoBtqB,EAAIA,EAAE,OAAOqI,EAAE,EAAI,CAAC,CAAC,EAAIrI,EAAIA,EAAE,OAAOqI,EAAE,CAAC,CAAC,EAAGpI,EAAE,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGH,EAAE,KAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAE,CACrhB,CACD,GAAIU,GAAI,CACN,MAAM6H,EAAI,GACV1H,GAAK,EAAI,EAAI,EAAGuH,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAE,CAAC,EAAI,CAAC1H,GAAIuH,EAAGC,EAAGD,EAAGC,EAAGC,EAAGzH,GAAIyH,CAAC,EAAGC,EAAE,CAAC,EAAI,CAAC1H,GAAIuH,EAAGC,EAAGD,EAAGC,EAAGC,EAAGzH,GAAIyH,CAAC,GAAI,IAAMkiB,GAAE,aAAe,IAAMA,GAAE,cAAgBjiB,EAAE,CAAC,EAAI,CAAC,EAAI1H,GAAI,EAAIuH,EAAG,EAAIC,EAAG,EAAID,EAAG,EAAIC,EAAG,EAAIC,EAAG,EAAIzH,GAAI,EAAIyH,CAAC,IAAK,IAAMkiB,GAAE,WAAa,IAAMA,GAAE,YAAcjiB,EAAE,CAAC,EAAI,CAAC,EAAI1H,GAAIuH,EAAG,EAAIC,EAAGD,EAAG,EAAIC,EAAGC,EAAG,EAAIzH,GAAIyH,CAAC,IAAK,IAAMkiB,GAAE,oBAAsB,IAAMA,GAAE,qBAAuBjiB,EAAE,CAAC,EAAI,CAAC1H,GAAI,EAAIuH,EAAGC,EAAG,EAAID,EAAGC,EAAG,EAAIC,EAAGzH,GAAI,EAAIyH,CAAC,GAC7a,QAASG,EAAI,EAAGA,EAAI,EAAGA,IACrB,EAAE,KAAKhK,EAAIF,EAAG,CAACnF,EAAIqP,EAAI,EAAIjK,EAAG,CAAC,EAAG,EAAE,KAAKC,EAAI,EAAIF,EAAG,CAACnF,EAAIqP,EAAI,EAAIjK,EAAG,CAAC,EAAG,EAAE,KAAKC,EAAI,EAAIF,EAAG,CAACnF,GAAKqP,EAAI,GAAK,EAAIjK,EAAG,CAAC,EAAG,EAAE,KAAKC,EAAIF,EAAG,CAACnF,GAAKqP,EAAI,GAAK,EAAIjK,EAAG,CAAC,EAAGoD,EAAE,KAAKvB,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,CAAC,EAAGA,GAAK,EAAG,IAAMmqB,GAAE,WAAa,IAAMA,GAAE,aAAe,IAAMA,GAAE,mBAAqBtqB,EAAIA,EAAE,OAAOqI,GAAGE,EAAI,GAAK,CAAC,CAAC,EAAI,IAAM+hB,GAAE,UAAY,IAAMA,GAAE,YAAc,IAAMA,GAAE,kBAAoBtqB,EAAIA,EAAE,OAAOqI,EAAEE,EAAI,CAAC,CAAC,EAAIvI,EAAIA,EAAE,OAAOqI,EAAE,CAAC,CAAC,EAAGpI,EAAE,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGH,EAAE,KAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAE,CACrhB,CACD,GAAIW,EAAI,CACN,MAAM4H,EAAI,GACV1H,GAAK,EAAGuH,EAAI,EAAGC,EAAI,EAAI,EAAGC,EAAI,EAAGC,EAAE,CAAC,EAAI,CAAC1H,GAAIuH,EAAGC,EAAGD,EAAGC,EAAGC,EAAGzH,GAAIyH,CAAC,EAAGC,EAAE,CAAC,EAAI,CAAC1H,GAAIuH,EAAGC,EAAGD,EAAGC,EAAGC,EAAGzH,GAAIyH,CAAC,GAAI,IAAMkiB,GAAE,aAAe,IAAMA,GAAE,cAAgBjiB,EAAE,CAAC,EAAI,CAAC,EAAI1H,GAAI,EAAIuH,EAAG,EAAIC,EAAG,EAAID,EAAG,EAAIC,EAAG,EAAIC,EAAG,EAAIzH,GAAI,EAAIyH,CAAC,IAAK,IAAMkiB,GAAE,WAAa,IAAMA,GAAE,YAAcjiB,EAAE,CAAC,EAAI,CAAC,EAAI1H,GAAIuH,EAAG,EAAIC,EAAGD,EAAG,EAAIC,EAAGC,EAAG,EAAIzH,GAAIyH,CAAC,IAAK,IAAMkiB,GAAE,oBAAsB,IAAMA,GAAE,qBAAuBjiB,EAAE,CAAC,EAAI,CAAC1H,GAAI,EAAIuH,EAAGC,EAAG,EAAID,EAAGC,EAAG,EAAIC,EAAGzH,GAAI,EAAIyH,CAAC,GACza,QAASG,EAAI,EAAGA,EAAI,EAAGA,IACrB,EAAE,KAAK9J,EAAI,EAAIJ,EAAG,CAACnF,EAAIqP,EAAI,EAAIjK,EAAG,CAAC,EAAG,EAAE,KAAKG,EAAIJ,EAAG,CAACnF,EAAIqP,EAAI,EAAIjK,EAAG,CAAC,EAAG,EAAE,KAAKG,EAAIJ,EAAG,CAACnF,GAAKqP,EAAI,GAAK,EAAIjK,EAAG,CAAC,EAAG,EAAE,KAAKG,EAAI,EAAIJ,EAAG,CAACnF,GAAKqP,EAAI,GAAK,EAAIjK,EAAG,CAAC,EAAGoD,EAAE,KAAKvB,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,CAAC,EAAGA,GAAK,EAAG,IAAMmqB,GAAE,WAAa,IAAMA,GAAE,aAAe,IAAMA,GAAE,mBAAqBtqB,EAAIA,EAAE,OAAOqI,GAAGE,EAAI,GAAK,CAAC,CAAC,EAAI,IAAM+hB,GAAE,UAAY,IAAMA,GAAE,YAAc,IAAMA,GAAE,kBAAoBtqB,EAAIA,EAAE,OAAOqI,EAAEE,EAAI,CAAC,CAAC,EAAIvI,EAAIA,EAAE,OAAOqI,EAAE,CAAC,CAAC,EAAGpI,EAAE,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGH,EAAE,KAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAE,CACrhB,CACF,CACD,MAAMM,EAAI1H,EAAE,kBAAoB,EAAI,EAAIA,EAAE,iBAAmButB,GAAG,YAChEA,GAAG,cAAc7lB,EAAG,EAAGsB,EAAG5B,EAAGE,EAAGtH,EAAE,SAAUA,EAAE,OAAO,EACrD,MAAMwH,EAAI,IAAI+lB,GACd/lB,EAAE,QAAUwB,EAAGxB,EAAE,UAAY,EAAGA,EAAE,QAAUJ,EAAGI,EAAE,IAAMF,EACvD,MAAMK,EAAKD,IAAM6lB,GAAG,WAAahmB,EAAE,OAAOA,CAAC,EAAIA,EAC/C,OAAOC,EAAE,OAASG,EAAIH,CACxB,CACA,SAAS+1B,GAAGv9B,EAAG,EAAG,EAAI,KAAM,CAC1B,MAAM,EAAI,IAAI4xB,GAAE5xB,EAAG,CAAC,EACpB,OAAO,EAAE,gBAAkB4xB,GAAE,2BAA2B,EAAE,eAAe,EAAG,EAAE,gCAAkC,EAAE,gBAAiB0L,GAAG,CAAC,EAAE,YAAY,EAAG,EAAE,SAAS,EAAG,CACxK,CACK,MAACE,IAAK,CAET,iBAAkBD,EACpB,EACAhQ,GAAG,iBAAmB+P,GACtB,SAASG,GAAGz9B,EAAG,CACb,MAAM4E,EAAI5E,EAAE,QAAU,IAAI,MAAM,CAAC,EAAGG,EAAIH,EAAE,WAAYI,EAAIJ,EAAE,SAAW4xB,GAAE,QAASjyB,EAAIK,EAAE,OAASA,EAAE,MAAQ,EAAG,EAAIA,EAAE,QAAUA,EAAE,MAAQ,EAAGuD,EAAIvD,EAAE,OAASA,EAAE,MAAQ,EAAGkC,EAAIlC,EAAE,WAAaA,EAAE,UAAY,EAAGiC,EAAIjC,EAAE,YAAcA,EAAE,UAAY,EAAG6I,EAAI7I,EAAE,iBAAmB,EAAGS,EAAIT,EAAE,eAAiB,EAAGO,EAAIP,EAAE,kBAAoB,EAAI,EAAIA,EAAE,iBAAmButB,GAAG,YAChW,QAAS9d,EAAI,EAAGA,EAAI,EAAGA,IACrB7K,EAAE6K,CAAC,IAAM,SAAW7K,EAAE6K,CAAC,EAAI,IAAIG,GAAG,EAAG,EAAG,EAAG,CAAC,GAAIzP,GAAKA,EAAEsP,CAAC,IAAM,SAAWtP,EAAEsP,CAAC,EAAI,IAAIoD,GAAG,EAAG,EAAG,EAAG,CAAC,GACnG,MAAMrS,EAAIb,EAAI,EAAGgG,EAAI,EAAI,EAAGC,EAAIrC,EAAI,EAAGsC,EAAI,GAC3C,QAAS4J,EAAI,EAAGA,EAAI,EAAGA,IACrB5J,EAAE4J,CAAC,EAAI6tB,GAAG,CACR,QAASl9B,EACT,UAAW8B,EACX,WAAYD,EACZ,MAAOtC,EACP,OAAQ,EACR,cAAec,EACf,gBAAiBoI,EACjB,gBAAiBtI,CACvB,CAAK,EACH,QAASkP,EAAI,EAAGA,EAAI,EAAGA,IACrB5J,EAAE4J,CAAC,EAAI6tB,GAAG,CACR,QAASl9B,EACT,UAAW8B,EACX,WAAYD,EACZ,MAAOsB,EACP,OAAQ,EACR,cAAe9C,EACf,gBAAiBoI,EACjB,gBAAiBtI,CACvB,CAAK,EACH,IAAIuF,EAAIrF,EACRA,IAAMmxB,GAAE,OAAS9rB,EAAI8rB,GAAE,IAAMnxB,IAAMmxB,GAAE,MAAQ9rB,EAAI8rB,GAAE,QACnD,QAASniB,EAAI,EAAGA,EAAI,EAAGA,IACrB5J,EAAE4J,CAAC,EAAI6tB,GAAG,CACR,QAASl9B,EACT,UAAW8B,EACX,WAAYD,EACZ,MAAOtC,EACP,OAAQ4D,EACR,cAAeuC,EACf,gBAAiB+C,EACjB,gBAAiBtI,CACvB,CAAK,EACH,IAAIwF,EAAI,CAAE,EAAEoB,EAAI,GAAI2V,EAAI,CAAE,EAAE1V,EAAI,GAChC,MAAMC,EAAI,CAAE,EAAEC,EAAI,GAAIC,EAAI,CAAE,EAAEyB,EAAI,GAClC,IAAIvB,EAAI,EAAGC,EAAI,EACf,QAAS+H,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,MAAMC,EAAI7J,EAAE4J,CAAC,EAAE,UAAU,OACzBnI,EAAEmI,CAAC,EAAI,GAAIlI,EAAEkI,CAAC,EAAI,GAClB,QAASE,EAAI,EAAGA,EAAID,EAAI,EAAGC,IACzBrI,EAAEmI,CAAC,EAAE,KAAK,IAAIN,EAAEtJ,EAAE4J,CAAC,EAAE,UAAU,EAAIE,CAAC,EAAG9J,EAAE4J,CAAC,EAAE,UAAU,EAAIE,EAAI,CAAC,EAAG9J,EAAE4J,CAAC,EAAE,UAAU,EAAIE,EAAI,CAAC,CAAC,CAAC,EAAGpI,EAAEkI,CAAC,EAAE,KAAK,IAAIN,EAAEtJ,EAAE4J,CAAC,EAAE,QAAQ,EAAIE,CAAC,EAAG9J,EAAE4J,CAAC,EAAE,QAAQ,EAAIE,EAAI,CAAC,EAAG9J,EAAE4J,CAAC,EAAE,QAAQ,EAAIE,EAAI,CAAC,CAAC,CAAC,EACvLlI,EAAI5B,EAAE4J,CAAC,EAAE,IAAI,OAAQzG,EAAEyG,CAAC,EAAI,GAC5B,QAASE,EAAI,EAAGA,EAAIlI,EAAGkI,GAAK,EAC1B3G,EAAEyG,CAAC,EAAEE,CAAC,EAAI/K,EAAE6K,CAAC,EAAE,GAAK7K,EAAE6K,CAAC,EAAE,EAAI7K,EAAE6K,CAAC,EAAE,GAAK5J,EAAE4J,CAAC,EAAE,IAAIE,CAAC,EAAG3G,EAAEyG,CAAC,EAAEE,EAAI,CAAC,EAAI/K,EAAE6K,CAAC,EAAE,GAAK7K,EAAE6K,CAAC,EAAE,EAAI7K,EAAE6K,CAAC,EAAE,GAAK5J,EAAE4J,CAAC,EAAE,IAAIE,EAAI,CAAC,EAAG6T,GAAG,4BAA8Bxa,EAAEyG,CAAC,EAAEE,EAAI,CAAC,EAAI,EAAI3G,EAAEyG,CAAC,EAAEE,EAAI,CAAC,GAC/K,GAAImN,EAAIA,EAAE,OAAO9T,EAAEyG,CAAC,CAAC,EAAGrI,EAAIA,EAAE,OAAOvB,EAAE4J,CAAC,EAAE,QAAQ,IAAKE,GAAMA,EAAIjI,CAAC,CAAC,EAAGA,GAAKJ,EAAEmI,CAAC,EAAE,OAAQtP,EACtF,QAASwP,EAAI,EAAGA,EAAI,EAAGA,IACrBtI,EAAE,KAAKlH,EAAEsP,CAAC,EAAE,EAAGtP,EAAEsP,CAAC,EAAE,EAAGtP,EAAEsP,CAAC,EAAE,EAAGtP,EAAEsP,CAAC,EAAE,CAAC,CAC1C,CACD,MAAMjI,EAAI,IAAI2H,EAAE,EAAG,EAAGvJ,CAAC,EAAG+B,EAAK4H,EAAE,UAAU,KAAK,EAAE,EAClDxJ,EAAIuB,EAAE,CAAC,EAAE,IAAKmI,GAAMN,EAAE,gBAAgBM,EAAG9H,CAAE,EAAE,IAAIH,CAAC,CAAC,EAAE,IAAKiI,GAAM,CAACA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAAE,OAAO,CAACA,EAAGC,IAAMD,EAAE,OAAOC,CAAC,EAAG,EAAE,EAAGvI,EAAII,EAAE,CAAC,EAAE,IAAKkI,GAAMN,EAAE,gBAAgBM,EAAG9H,CAAE,CAAC,EAAE,IAAK8H,GAAM,CAACA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAAE,OAAO,CAACA,EAAGC,IAAMD,EAAE,OAAOC,CAAC,EAAG,EAAE,EAAG3J,EAAIA,EAAE,OAAOuB,EAAE,CAAC,EAAE,IAAKmI,GAAMA,EAAE,SAASjI,CAAC,CAAC,EAAE,IAAKiI,GAAM,CAACA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAAE,OAAO,CAACA,EAAGC,IAAMD,EAAE,OAAOC,CAAC,EAAG,EAAE,CAAC,EAAGvI,EAAIA,EAAE,OAAOI,EAAE,CAAC,EAAE,IAAKkI,GAAM,CAACA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAAE,OAAO,CAACA,EAAGC,IAAMD,EAAE,OAAOC,CAAC,EAAG,EAAE,CAAC,EAC5Z,MAAM9H,EAAK,IAAIuH,EAAE3O,EAAG,EAAG,CAAC,EAAGqH,EAAK0H,EAAE,UAAU,CAAC,KAAK,GAAK,CAAC,EACxDxJ,EAAIA,EAAE,OAAOuB,EAAE,CAAC,EAAE,IAAKmI,GAAMN,EAAE,gBAAgBM,EAAG5H,CAAE,EAAE,IAAID,CAAE,CAAC,EAAE,IAAK6H,GAAM,CAACA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAAE,OAAO,CAACA,EAAGC,IAAMD,EAAE,OAAOC,CAAC,EAAG,EAAE,CAAC,EAAGvI,EAAIA,EAAE,OAAOI,EAAE,CAAC,EAAE,IAAKkI,GAAMN,EAAE,gBAAgBM,EAAG5H,CAAE,CAAC,EAAE,IAAK4H,GAAM,CAACA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAAE,OAAO,CAACA,EAAGC,IAAMD,EAAE,OAAOC,CAAC,EAAG,CAAE,EAAC,EACnP,MAAM5H,GAAKyH,EAAE,UAAU,KAAK,GAAK,CAAC,EAClCxJ,EAAIA,EAAE,OAAOuB,EAAE,CAAC,EAAE,IAAKmI,GAAMN,EAAE,gBAAgBM,EAAG3H,EAAE,EAAE,SAASF,CAAE,CAAC,EAAE,IAAK6H,GAAM,CAACA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAAE,OAAO,CAACA,EAAGC,IAAMD,EAAE,OAAOC,CAAC,EAAG,EAAE,CAAC,EAAGvI,EAAIA,EAAE,OAAOI,EAAE,CAAC,EAAE,IAAKkI,GAAMN,EAAE,gBAAgBM,EAAG3H,EAAE,CAAC,EAAE,IAAK2H,GAAM,CAACA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAAE,OAAO,CAACA,EAAGC,IAAMD,EAAE,OAAOC,CAAC,EAAG,CAAE,EAAC,EACxP,MAAM3H,GAAK,IAAIoH,EAAE,EAAGxJ,EAAG,CAAC,EAAGqC,EAAKuH,EAAE,UAAU,KAAK,GAAK,CAAC,EACvDxJ,EAAIA,EAAE,OAAOuB,EAAE,CAAC,EAAE,IAAKmI,GAAMN,EAAE,gBAAgBM,EAAGzH,CAAE,EAAE,IAAID,EAAE,CAAC,EAAE,IAAK0H,GAAM,CAACA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAAE,OAAO,CAACA,EAAGC,IAAMD,EAAE,OAAOC,CAAC,EAAG,EAAE,CAAC,EAAGvI,EAAIA,EAAE,OAAOI,EAAE,CAAC,EAAE,IAAKkI,GAAMN,EAAE,gBAAgBM,EAAGzH,CAAE,CAAC,EAAE,IAAKyH,GAAM,CAACA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAAE,OAAO,CAACA,EAAGC,IAAMD,EAAE,OAAOC,CAAC,EAAG,CAAE,EAAC,EACnP,MAAMzH,GAAKsH,EAAE,UAAU,CAAC,KAAK,GAAK,CAAC,EACnCxJ,EAAIA,EAAE,OAAOuB,EAAE,CAAC,EAAE,IAAKmI,GAAMN,EAAE,gBAAgBM,EAAGxH,EAAE,EAAE,SAASF,EAAE,CAAC,EAAE,IAAK0H,GAAM,CAACA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAAE,OAAO,CAACA,EAAGC,IAAMD,EAAE,OAAOC,CAAC,EAAG,EAAE,CAAC,EAAGvI,EAAIA,EAAE,OAAOI,EAAE,CAAC,EAAE,IAAKkI,GAAMN,EAAE,gBAAgBM,EAAGxH,EAAE,CAAC,EAAE,IAAKwH,GAAM,CAACA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAAE,OAAO,CAACA,EAAGC,IAAMD,EAAE,OAAOC,CAAC,EAAG,EAAE,CAAC,EAAG6d,GAAG,cAAchtB,EAAGwF,EAAGqB,EAAGD,EAAG2V,CAAC,EACzR,MAAMtN,GAAI,IAAI+d,GACd,GAAI/d,GAAE,QAAUpI,EAAGoI,GAAE,UAAYzJ,EAAGyJ,GAAE,QAAUrI,EAAGqI,GAAE,IAAMsN,EAAG3c,EAAG,CAC/D,MAAMsP,EAAIlP,IAAMgtB,GAAG,WAAalmB,EAAE,OAAOA,CAAC,EAAIA,EAC9CmI,GAAE,OAASC,CACZ,CACD,OAAOD,EACT,CACA,SAASkuB,GAAG19B,EAAG,EAAG,EAAI,KAAM,CAC1B,MAAM,EAAI,IAAI4xB,GAAE5xB,EAAG,CAAC,EACpB,OAAO,EAAE,gBAAkB4xB,GAAE,2BAA2B,EAAE,eAAe,EAAG,EAAE,gCAAkC,EAAE,gBAAiB6L,GAAG,CAAC,EAAE,YAAY,EAAG,EAAE,SAAS,EAAG,CACxK,CACK,MAACE,IAAK,CAET,eAAgBD,EAClB,EACAnQ,GAAG,eAAiBkQ,GACpB,SAASG,GAAG59B,EAAG,CACb,MAAM,GAAKA,EAAE,UAAY,IAAM,EAAG,EAAIA,EAAE,WAAaA,EAAE,UAAY,EAAG,EAAIA,EAAE,WAAaA,EAAE,UAAY,EAAG,EAAIA,EAAE,WAAaA,EAAE,UAAY,EAAGL,EAAIK,EAAE,MAAQA,EAAE,KAAO,GAAKA,EAAE,IAAM,GAAK,EAAIA,EAAE,KAAO,EAAGJ,EAAII,EAAE,OAASA,EAAE,OAAS,EAAI,EAAIA,EAAE,OAAS,EAAG,EAAIA,EAAE,kBAAoB,EAAI,EAAIA,EAAE,iBAAmButB,GAAG,YAAa,EAAI,CAAC,CAACvtB,EAAE,sBAAuB,EAAI,IAAImP,EAAE,EAAI,EAAG,EAAI,EAAG,EAAI,CAAC,EAAG,EAAI,EAAI,EAAG,EAAI,EAAI,EAAG,EAAI,GAAI3O,EAAI,CAAE,EAAEmF,EAAI,GAAIC,EAAI,GAC/a,QAASE,EAAI,EAAGA,GAAK,EAAGA,IAAK,CAC3B,MAAMC,EAAID,EAAI,EAAGqB,EAAIpB,EAAI,KAAK,GAAKnG,EACnC,QAAS,EAAI,EAAG,GAAK,EAAG,IAAK,CAC3B,MAAMwH,EAAI,EAAI,EAAGC,EAAID,EAAI,KAAK,GAAK,EAAIzH,EAAG2H,EAAIiI,EAAE,UAAU,CAACpI,CAAC,EAAGI,EAAIgI,EAAE,UAAUlI,CAAC,EAAG2B,EAAImG,EAAE,qBAAqBA,EAAE,GAAI,EAAE7H,CAAC,EAAGG,EAAI0H,EAAE,qBAAqBnG,EAAGzB,CAAC,EAAGG,EAAID,EAAE,SAAS,CAAC,EAAGD,EAAIC,EAAE,OAAO,CAAC,EAAE,YAC/LjH,EAAE,KAAKkH,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAG/B,EAAE,KAAK6B,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAG5B,EAAE,KAAKwB,EAAGoc,GAAG,0BAA4B,EAAIzd,EAAIA,CAAC,CACjG,CACD,GAAID,EAAI,EAAG,CACT,MAAM,EAAItF,EAAE,OAAS,EACrB,QAAS4G,EAAI,EAAI,GAAK,EAAI,GAAIA,EAAI,EAAI,EAAI,EAAGA,IAC3C,GAAKtB,EAAI,IAAM,EAAE,KAAKsB,CAAC,EAAG,EAAE,KAAKA,EAAI,CAAC,EAAG,EAAE,KAAKA,EAAI,EAAI,CAAC,IAAKtB,EAAI,GAAKlG,EAAI,KAAO,EAAE,KAAKwH,EAAI,EAAI,CAAC,EAAG,EAAE,KAAKA,EAAI,CAAC,EAAG,EAAE,KAAKA,EAAI,EAAI,CAAC,KAAO,EAAE,KAAKA,CAAC,EAAG,EAAE,KAAKA,EAAI,CAAC,EAAG,EAAE,KAAKA,EAAI,EAAI,CAAC,EAAG,EAAE,KAAKA,EAAI,EAAI,CAAC,EAAG,EAAE,KAAKA,EAAI,CAAC,EAAG,EAAE,KAAKA,EAAI,EAAI,CAAC,EAC7O,CACF,CACDmmB,GAAG,cAAc,EAAG/sB,EAAG,EAAGmF,EAAGC,EAAG5F,EAAE,SAAUA,EAAE,OAAO,EACrD,MAAM6F,EAAI,IAAI0nB,GACd,OAAO1nB,EAAE,QAAU,EAAGA,EAAE,UAAYrF,EAAGqF,EAAE,QAAUF,EAAGE,EAAE,IAAMD,EAAGC,CACnE,CACA,SAASg4B,GAAG79B,EAAG,EAAI,GAAI,EAAI,KAAM,CAC/B,MAAM,EAAI,IAAI4xB,GAAE5xB,EAAG,CAAC,EACpB,OAAO,EAAE,gBAAkB4xB,GAAE,2BAA2B,EAAE,eAAe,EAAG,EAAE,gCAAkC,EAAE,gBAAiBgM,GAAG,CAAC,EAAE,YAAY,EAAG,EAAE,SAAS,EAAG,CACxK,CACK,MAACE,IAAK,CAET,aAAcD,EAChB,EACAtQ,GAAG,aAAeqQ,GAClBhM,GAAE,aAAe,CAAC5xB,EAAG,EAAG,EAAG,EAAG,EAAGL,IAAMk+B,GAAG79B,EAAG,CAC3C,SAAU,EACV,UAAW,EACX,UAAW,EACX,UAAW,EACX,gBAAiBL,EACjB,UAAW,CACb,EAAG,CAAC,EACJ,SAASo+B,GAAG/9B,EAAG,CACb,MAAM,EAAIA,EAAE,QAAU,EACtB,IAAI,EAAIA,EAAE,cAAgB,EAAI,EAAIA,EAAE,aAAeA,EAAE,UAAY,EAAG,EAAIA,EAAE,iBAAmB,EAAI,EAAIA,EAAE,gBAAkBA,EAAE,UAAY,EACvI,EAAI,GAAK,KAAM,EAAI,GAAK,KACxB,MAAM,GAAKA,EAAE,cAAgB,IAAM,EAAGL,GAAKK,EAAE,cAAgB,GAAK,EAAGJ,EAAI,CAAC,CAACI,EAAE,SAAU,EAAI,CAAC,CAACA,EAAE,QAAS,EAAIA,EAAE,MAAQ,EAAI,EAAIA,EAAE,KAAO4xB,GAAE,QAAS,EAAI5xB,EAAE,MAAQA,EAAE,KAAO,GAAKA,EAAE,IAAM,GAAK,EAAIA,EAAE,KAAO,EAAG,EAAIA,EAAE,kBAAoB,EAAI,EAAIA,EAAE,iBAAmButB,GAAG,YAAa,EAAIvtB,EAAE,QAAU,IAAI,MAAM,CAAC,EAAG,EAAIA,EAAE,WAAYQ,EAAI,IAAM,GAAK,EAAI,EAAI,EAAGmF,EAAI/F,EAAID,EAAI,EAAGiG,EAAI,GAAK,EAAIpF,GAAKmF,EAC7X,IAAIE,EACJ,IAAKA,EAAI,EAAGA,EAAID,EAAGC,IACjB,GAAK,EAAEA,CAAC,IAAM,SAAW,EAAEA,CAAC,EAAI,IAAIgN,GAAG,EAAG,EAAG,EAAG,CAAC,GACnD,IAAKhN,EAAI,EAAGA,EAAID,EAAGC,IACjB,GAAK,EAAEA,CAAC,IAAM,SAAW,EAAEA,CAAC,EAAI,IAAI+J,GAAG,EAAG,EAAG,EAAG,CAAC,GACnD,MAAM9J,EAAI,GAAIC,EAAI,CAAE,EAAEoB,EAAI,CAAE,EAAE,EAAI,GAAIC,EAAI,GAAIC,EAAI,KAAK,GAAK,EAAI,EAAI,EACpE,IAAIC,EAAGC,EAAGyB,EACV,MAAMvB,GAAK,EAAI,GAAK,EAAI,EAAGC,EAAIyH,EAAE,KAAM,EAAE3H,EAAI2H,EAAE,KAAM,EAAExH,EAAKwH,EAAE,KAAM,EAAEvH,EAAKuH,EAAE,KAAM,EAAEtH,GAAKsH,EAAE,KAAM,EAAErH,GAAKwQ,GAAG,EAC5G,IAAIvQ,EAAIC,GAAIC,GAAIuH,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EACzC,IAAK5H,EAAK,EAAGA,GAAMpI,EAAGoI,IACpB,IAAKR,EAAIQ,EAAKpI,EAAGqJ,GAAKzB,GAAK,EAAI,GAAK,GAAK,EAAGiI,EAAI5P,GAAKmI,IAAO,GAAKA,IAAOpI,EAAI,EAAI,EAAGsI,GAAK,EAAGA,GAAKuH,EAAGvH,KAAM,CACvG,IAAKrI,IAAM6P,GAAKxH,IAAK,IAAMwH,GAAK,EAAIxH,IAAKD,GAAK,EAAGA,IAAM,EAAGA,KACxDV,EAAIU,GAAKX,EAAGK,EAAE,EAAI,KAAK,IAAI,CAACJ,CAAC,EAAI0B,EAAGtB,EAAE,EAAI,CAAC,EAAI,EAAIH,EAAI,EAAGG,EAAE,EAAI,KAAK,IAAI,CAACJ,CAAC,EAAI0B,EAAG,IAAM,GAAKjB,IAAOpI,GAAK6H,EAAE,EAAIL,EAAEA,EAAE,QAAU,EAAI,GAAK,CAAC,EAAGK,EAAE,EAAIL,EAAEA,EAAE,QAAU,EAAI,GAAK,EAAI,CAAC,EAAGK,EAAE,EAAIL,EAAEA,EAAE,QAAU,EAAI,GAAK,EAAI,CAAC,IAAMK,EAAE,EAAIE,EAAE,EAAGF,EAAE,EAAIE,EAAE,EAAGF,EAAE,EAAI,KAAK,KAAKA,EAAE,EAAIA,EAAE,EAAIA,EAAE,EAAIA,EAAE,CAAC,EAAIC,EAAGD,EAAE,UAAS,GAAKQ,KAAO,IAAML,EAAG,SAASD,CAAC,EAAGE,EAAG,SAASJ,CAAC,GAAIzB,EAAE,KAAK2B,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAGP,EAAE,KAAKK,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAG5H,EAAI+P,EAAID,IAAMD,EAAI,EAAEA,CAAC,EAAE,EAAI,EAAEA,CAAC,EAAE,EAAIE,EAAI,EAAEF,CAAC,EAAE,GAAK,EAAEA,CAAC,EAAE,EAAI,EAAEA,CAAC,EAAE,GAAKlI,EAAG,EAAE,KAAK,EAAEkI,CAAC,EAAE,GAAK,EAAEA,CAAC,EAAE,EAAI,EAAEA,CAAC,EAAE,GAAKzH,GAAK,EAAGwb,GAAG,0BAA4B,EAAI7T,EAAIA,CAAC,EAAG,GAAKvI,EAAE,KAAK,EAAEqI,CAAC,EAAE,EAAG,EAAEA,CAAC,EAAE,EAAG,EAAEA,CAAC,EAAE,EAAG,EAAEA,CAAC,EAAE,CAAC,EAChlB,IAAM,GAAK,IAAM1J,EAAE,KAAK2B,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAG3B,EAAE,KAAK,EAAG2B,EAAE,EAAG,CAAC,EAAG3B,EAAE,KAAK,EAAG2B,EAAE,EAAG,CAAC,EAAG3B,EAAE,KAAK4B,EAAG,EAAGA,EAAG,EAAGA,EAAG,CAAC,EAAGwH,EAAE,WAAWrH,GAAIN,EAAGK,EAAE,EAAGA,GAAG,YAAaV,EAAE,KAAKU,GAAG,EAAGA,GAAG,EAAGA,GAAG,EAAGA,GAAG,EAAGA,GAAG,EAAGA,GAAG,CAAC,EAAGsH,EAAE,WAAWvH,EAAIE,GAAID,EAAE,EAAGA,GAAG,UAAS,EAAIV,EAAE,KAAKU,GAAG,EAAGA,GAAG,EAAGA,GAAG,EAAGA,GAAG,EAAGA,GAAG,EAAGA,GAAG,CAAC,EAAGjI,EAAI+P,EAAID,IAAMD,EAAI,EAAEA,EAAI,CAAC,EAAE,EAAI,EAAEA,EAAI,CAAC,EAAE,EAAIE,EAAI,EAAEF,EAAI,CAAC,EAAE,GAAK,EAAEA,EAAI,CAAC,EAAE,EAAI,EAAEA,EAAI,CAAC,EAAE,GAAKlI,EAAG,EAAE,KAAK,EAAEkI,EAAI,CAAC,EAAE,EAAG+T,GAAG,0BAA4B,EAAI7T,EAAIA,CAAC,EAAG,EAAE,KAAK,EAAEF,EAAI,CAAC,EAAE,EAAG+T,GAAG,0BAA4B,EAAI7T,EAAIA,CAAC,EAAG/P,EAAI+P,EAAID,IAAMD,EAAI,EAAEA,EAAI,CAAC,EAAE,EAAI,EAAEA,EAAI,CAAC,EAAE,EAAIE,EAAI,EAAEF,EAAI,CAAC,EAAE,GAAK,EAAEA,EAAI,CAAC,EAAE,EAAI,EAAEA,EAAI,CAAC,EAAE,GAAKlI,EAAG,EAAE,KAAK,EAAEkI,EAAI,CAAC,EAAE,EAAG+T,GAAG,0BAA4B,EAAI7T,EAAIA,CAAC,EAAG,EAAE,KAAK,EAAEF,EAAI,CAAC,EAAE,EAAG+T,GAAG,0BAA4B,EAAI7T,EAAIA,CAAC,EAAG,IAAMvI,EAAE,KAAK,EAAEqI,EAAI,CAAC,EAAE,EAAG,EAAEA,EAAI,CAAC,EAAE,EAAG,EAAEA,EAAI,CAAC,EAAE,EAAG,EAAEA,EAAI,CAAC,EAAE,CAAC,EAAGrI,EAAE,KAAK,EAAEqI,EAAI,CAAC,EAAE,EAAG,EAAEA,EAAI,CAAC,EAAE,EAAG,EAAEA,EAAI,CAAC,EAAE,EAAG,EAAEA,EAAI,CAAC,EAAE,CAAC,EAAGrI,EAAE,KAAK,EAAEqI,EAAI,CAAC,EAAE,EAAG,EAAEA,EAAI,CAAC,EAAE,EAAG,EAAEA,EAAI,CAAC,EAAE,EAAG,EAAEA,EAAI,CAAC,EAAE,CAAC,EAAGrI,EAAE,KAAK,EAAEqI,EAAI,CAAC,EAAE,EAAG,EAAEA,EAAI,CAAC,EAAE,EAAG,EAAEA,EAAI,CAAC,EAAE,EAAG,EAAEA,EAAI,CAAC,EAAE,CAAC,IAAKC,IAAMD,IAAMC,EAAID,EAC57B,CACH,MAAMI,EAAI,IAAM,GAAK,EAAI,EAAI,EAAI,EACjC,IAAK9H,EAAK,EAAG0H,EAAI,EAAGA,EAAI9P,EAAG8P,IAAK,CAC9B,IAAIO,EAAK,EAAGC,EAAK,EAAGC,GAAK,EAAGC,GAAK,EACjC,IAAKnI,GAAK,EAAGA,GAAK,EAAGA,KACnBgI,EAAKjI,GAAM8H,EAAI,GAAK7H,GAAIiI,GAAMlI,EAAK,IAAM8H,EAAI,GAAK7H,GAAIkI,GAAKnI,GAAM8H,EAAI,IAAM7H,GAAK,GAAImI,IAAMpI,EAAK,IAAM8H,EAAI,IAAM7H,GAAK,GAAIlC,EAAE,KAAKkK,EAAIC,EAAIC,EAAE,EAAGpK,EAAE,KAAKqK,GAAID,GAAID,CAAE,EAC/J,IAAM,GAAK,IAAMnK,EAAE,KAAKkK,EAAK,EAAGC,EAAK,EAAGC,GAAK,CAAC,EAAGpK,EAAE,KAAKqK,GAAK,EAAGD,GAAK,EAAGD,EAAK,CAAC,EAAGnK,EAAE,KAAKkK,EAAK,EAAGC,EAAK,EAAGC,GAAK,CAAC,EAAGpK,EAAE,KAAKqK,GAAK,EAAGD,GAAK,EAAGD,EAAK,CAAC,GAAIlI,EAAKnI,EAAImI,EAAK,EAAIA,EAAK,CAC1K,CACD,MAAM+H,EAAKE,GAAO,CAChB,MAAMC,EAAKD,EAAK,EAAI,EAAI,EAAI,EAC5B,GAAIC,IAAO,EACT,OACF,IAAIC,GAAIC,GAAIC,GACZ,MAAMC,GAAKL,EAAK,EAAEpK,EAAI,CAAC,EAAI,EAAE,CAAC,EAC9B,IAAI0K,EAAK,KACT,IAAMA,EAAKN,EAAK,EAAEpK,EAAI,CAAC,EAAI,EAAE,CAAC,GAC9B,MAAM2K,EAAKxK,EAAE,OAAS,EAAGyK,GAAKR,EAAK,EAAI,EAAI,CAAC,EAAI,EAAGS,GAAK,IAAItB,EAAE,EAAGqB,GAAI,CAAC,EACtEzK,EAAE,KAAK0K,GAAG,EAAGA,GAAG,EAAGA,GAAG,CAAC,EAAGtJ,EAAE,KAAK,EAAG6I,EAAK,EAAI,GAAI,CAAC,EAClD,MAAMU,GAAKL,GAAG,GAAKA,GAAG,EAAIA,GAAG,GAAK,GAClC,EAAE,KAAKA,GAAG,GAAKA,GAAG,EAAIA,GAAG,GAAK,GAAKmT,GAAG,0BAA4B,EAAI9S,GAAKA,EAAE,EAAGJ,GAAMlJ,EAAE,KAAKkJ,EAAG,EAAGA,EAAG,EAAGA,EAAG,EAAGA,EAAG,CAAC,EACnH,MAAMK,GAAK,IAAIzB,GAAE,GAAK,EAAG,EACzB,IAAKkB,GAAK,EAAGA,IAAM,EAAGA,KAAM,CAC1BF,GAAK,KAAK,GAAK,EAAIE,GAAK,EAAI,EAC5B,MAAM8pB,GAAK,KAAK,IAAI,CAAChqB,EAAE,EAAGiqB,GAAK,KAAK,IAAI,CAACjqB,EAAE,EAC3CC,GAAK,IAAIhB,EAAE+qB,GAAKjqB,EAAIO,GAAI2pB,GAAKlqB,CAAE,EAC/B,MAAMmqB,GAAK,IAAIlrB,GAAEgrB,GAAKvpB,GAAG,EAAI,GAAKwpB,GAAKxpB,GAAG,EAAI,EAAG,EACjD5K,EAAE,KAAKoK,GAAG,EAAGA,GAAG,EAAGA,GAAG,CAAC,EAAGhJ,EAAE,KAAK,EAAG6I,EAAK,EAAI,GAAI,CAAC,EAClD,MAAMqqB,GAAKhqB,GAAG,GAAKA,GAAG,EAAIA,GAAG,GAAK+pB,GAAG,EACrC,EAAE,KAAK/pB,GAAG,GAAKA,GAAG,EAAIA,GAAG,GAAK+pB,GAAG,EAAG5W,GAAG,0BAA4B,EAAI6W,GAAKA,EAAE,EAAG/pB,GAAMlJ,EAAE,KAAKkJ,EAAG,EAAGA,EAAG,EAAGA,EAAG,EAAGA,EAAG,CAAC,CACrH,CACD,IAAKF,GAAK,EAAGA,GAAK,EAAGA,KACnBJ,GAAMlK,EAAE,KAAKyK,CAAE,EAAGzK,EAAE,KAAKyK,GAAMH,GAAK,EAAE,EAAGtK,EAAE,KAAKyK,GAAMH,GAAK,EAAE,IAAMtK,EAAE,KAAKyK,CAAE,EAAGzK,EAAE,KAAKyK,GAAMH,GAAK,EAAE,EAAGtK,EAAE,KAAKyK,GAAMH,GAAK,EAAE,EAChI,GACG,IAAMwhB,GAAE,WAAa,IAAMA,GAAE,UAAY9hB,EAAE,EAAE,GAAI,IAAM8hB,GAAE,SAAW,IAAMA,GAAE,UAAY9hB,EAAE,EAAE,EAAGyd,GAAG,cAAc,EAAGxnB,EAAGD,EAAGqB,EAAG,EAAGnH,EAAE,SAAUA,EAAE,OAAO,EACrJ,MAAM+P,EAAK,IAAIwd,GACf,OAAOxd,EAAG,QAAUjK,EAAGiK,EAAG,UAAYhK,EAAGgK,EAAG,QAAU5I,EAAG4I,EAAG,IAAM,EAAG,IAAMA,EAAG,OAAS3I,GAAI2I,CAC7F,CACA,SAASiuB,GAAGh+B,EAAG,EAAI,GAAI,EAAG,CACxB,MAAM,EAAI,IAAI4xB,GAAE5xB,EAAG,CAAC,EACpB,OAAO,EAAE,gBAAkB4xB,GAAE,2BAA2B,EAAE,eAAe,EAAG,EAAE,gCAAkC,EAAE,gBAAiBmM,GAAG,CAAC,EAAE,YAAY,EAAG,EAAE,SAAS,EAAG,CACxK,CACK,MAACE,IAAK,CAET,eAAgBD,EAClB,EACAzQ,GAAG,eAAiBwQ,GACpBnM,GAAE,eAAiB,CAAC5xB,EAAG,EAAG,EAAG,EAAG,EAAGL,EAAGC,EAAG,EAAG,MAAQA,IAAM,QAAU,EAAEA,aAAaoY,OAASpY,IAAM,SAAW,EAAI,GAAKgyB,GAAE,YAAa,EAAIhyB,GAAIA,EAAID,EAAGA,EAAI,GAAIq+B,GAAGh+B,EAAG,CAChK,OAAQ,EACR,YAAa,EACb,eAAgB,EAChB,aAAc,EACd,aAAcL,EACd,gBAAiB,EACjB,UAAW,CACb,EAAGC,CAAC,GACJ,SAASs+B,GAAGl+B,EAAG,CACb,MAAM,EAAI,GAAI,EAAI,GAAI,EAAI,GAAI,EAAI,CAAE,EAAEL,EAAIK,EAAE,UAAY,EAAGJ,EAAII,EAAE,WAAa,GAAK,GAAKA,EAAE,cAAgB,IAAM,EAAG,EAAIA,EAAE,kBAAoB,EAAI,EAAIA,EAAE,iBAAmButB,GAAG,YAAa,EAAI,EAAI,EAClM,QAAS,EAAI,EAAG,GAAK,EAAG,IAAK,CAC3B,MAAM,EAAI,EAAI,EAAG/sB,EAAI,EAAI,KAAK,GAAK,EAAI,EAAI,KAAK,GAAK,EAAGmF,EAAI4J,EAAE,YAAY5P,EAAI,EAAG,EAAG,CAAC,EAAE,SAAS4P,EAAE,UAAU/O,CAAC,CAAC,EAC9G,QAASoF,EAAI,EAAGA,GAAK,EAAGA,IAAK,CAC3B,MAAMC,EAAI,EAAID,EAAI,EAAGE,EAAIF,EAAI,KAAK,GAAK,EAAI,EAAI,KAAK,GAAIG,EAAI,KAAK,IAAID,CAAC,EAAGqB,EAAI,KAAK,IAAIrB,CAAC,EACvF,IAAI,EAAI,IAAIqJ,EAAEpJ,EAAGoB,EAAG,CAAC,EAAGC,EAAI,EAAE,MAAMxH,EAAI,CAAC,EACzC,MAAMyH,EAAI,IAAI6H,GAAE,EAAGrJ,CAAC,EACpBuB,EAAI+H,EAAE,qBAAqB/H,EAAGzB,CAAC,EAAG,EAAIwJ,EAAE,gBAAgB,EAAGxJ,CAAC,EAAG,EAAE,KAAKyB,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAG,EAAE,KAAK,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG,EAAE,KAAKC,EAAE,EAAGmc,GAAG,0BAA4B,EAAInc,EAAE,EAAIA,EAAE,CAAC,EACrK,MAAMC,GAAK,EAAI,GAAK,EAAGC,GAAK3B,EAAI,GAAK,EACrC,EAAE,KAAK,EAAI,EAAIA,CAAC,EAAG,EAAE,KAAK,EAAI,EAAI2B,CAAC,EAAG,EAAE,KAAKD,EAAI,EAAI1B,CAAC,EAAG,EAAE,KAAK,EAAI,EAAI2B,CAAC,EAAG,EAAE,KAAKD,EAAI,EAAIC,CAAC,EAAG,EAAE,KAAKD,EAAI,EAAI1B,CAAC,CAChH,CACF,CACD2nB,GAAG,cAAc,EAAG,EAAG,EAAG,EAAG,EAAGvtB,EAAE,SAAUA,EAAE,OAAO,EACrD,MAAM,EAAI,IAAIutB,GACd,OAAO,EAAE,QAAU,EAAG,EAAE,UAAY,EAAG,EAAE,QAAU,EAAG,EAAE,IAAM,EAAG,CACnE,CACA,SAAS4Q,GAAGn+B,EAAG,EAAI,GAAI,EAAG,CACxB,MAAM,EAAI,IAAI4xB,GAAE5xB,EAAG,CAAC,EACpB,OAAO,EAAE,gBAAkB4xB,GAAE,2BAA2B,EAAE,eAAe,EAAG,EAAE,gCAAkC,EAAE,gBAAiBsM,GAAG,CAAC,EAAE,YAAY,EAAG,EAAE,SAAS,EAAG,CACxK,CACK,MAACE,IAAK,CAET,YAAaD,EACf,EACA5Q,GAAG,YAAc2Q,GACjBtM,GAAE,YAAc,CAAC5xB,EAAG,EAAG,EAAG,EAAG,EAAGL,EAAGC,IAAMu+B,GAAGn+B,EAAG,CAC7C,SAAU,EACV,UAAW,EACX,aAAc,EACd,gBAAiBJ,EACjB,UAAWD,CACb,EAAG,CAAC,EACJ,SAAS0+B,GAAGr+B,EAAG,CACb,MAAM,EAAI,GAAI,EAAI,CAAE,EAAE,EAAI,GAAI,EAAI,CAAE,EAAEL,EAAIK,EAAE,QAAU,EAAGJ,EAAII,EAAE,MAAQ,GAAK,EAAIA,EAAE,gBAAkB,GAAI,EAAIA,EAAE,iBAAmB,GAAI,EAAIA,EAAE,GAAK,EAAG,EAAIA,EAAE,GAAK,EAAG,EAAIA,EAAE,kBAAoB,EAAI,EAAIA,EAAE,iBAAmButB,GAAG,YAAa,EAAK1nB,GAAM,CACjP,MAAMC,EAAI,KAAK,IAAID,CAAC,EAAGE,EAAI,KAAK,IAAIF,CAAC,EAAGsB,EAAI,EAAI,EAAItB,EAAG,EAAI,KAAK,IAAIsB,CAAC,EAAGC,EAAIzH,GAAK,EAAI,GAAK,GAAMmG,EAAGuB,EAAI1H,GAAK,EAAI,GAAKoG,EAAI,GAAKuB,EAAI3H,EAAI,KAAK,IAAIwH,CAAC,EAAI,GACpJ,OAAO,IAAIgI,EAAE/H,EAAGC,EAAGC,CAAC,CACxB,EACE,IAAI9G,EAAGmF,EACP,IAAKnF,EAAI,EAAGA,GAAK,EAAGA,IAAK,CACvB,MAAMsF,EAAItF,EAAI,EAAI,EAAI,EAAI,EAAI,KAAK,GAAIuF,EAAI,EAAED,CAAC,EAAGqB,EAAI,EAAErB,EAAI,GAAI,EAAGgX,EAAI3V,EAAE,SAASpB,CAAC,EAClF,IAAIqB,EAAID,EAAE,IAAIpB,CAAC,EACf,MAAMsB,EAAI8H,EAAE,MAAM2N,EAAG1V,CAAC,EACtB,IAAKA,EAAI+H,EAAE,MAAM9H,EAAGyV,CAAC,EAAGzV,EAAE,UAAS,EAAID,EAAE,UAAW,EAAEzB,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACvE,MAAM4B,EAAI5B,EAAI,EAAI,EAAI,EAAI,KAAK,GAAIqD,EAAI,CAACpJ,EAAI,KAAK,IAAI2H,CAAC,EAAGE,EAAI7H,EAAI,KAAK,IAAI2H,CAAC,EAC3E,EAAE,KAAKxB,EAAE,EAAIiD,EAAI5B,EAAE,EAAIK,EAAIJ,EAAE,CAAC,EAAG,EAAE,KAAKtB,EAAE,EAAIiD,EAAI5B,EAAE,EAAIK,EAAIJ,EAAE,CAAC,EAAG,EAAE,KAAKtB,EAAE,EAAIiD,EAAI5B,EAAE,EAAIK,EAAIJ,EAAE,CAAC,EAAG,EAAE,KAAK7G,EAAI,CAAC,EAAG,EAAE,KAAKgjB,GAAG,0BAA4B,EAAI7d,EAAI,EAAIA,EAAI,CAAC,CAC1K,CACF,CACD,IAAKnF,EAAI,EAAGA,EAAI,EAAGA,IACjB,IAAKmF,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACtB,MAAME,GAAKF,EAAI,GAAK,EAAGG,EAAItF,EAAI,EAAImF,EAAGI,GAAKvF,EAAI,GAAK,EAAImF,EAAGwB,GAAK3G,EAAI,GAAK,EAAIqF,EAAG,EAAIrF,EAAI,EAAIqF,EAC5F,EAAE,KAAK,CAAC,EAAG,EAAE,KAAKE,CAAC,EAAG,EAAE,KAAKD,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAKqB,CAAC,EAAG,EAAE,KAAKpB,CAAC,CAChE,CACHwnB,GAAG,eAAe,EAAG,EAAG,CAAC,EAAGA,GAAG,cAAc,EAAG,EAAG,EAAG,EAAG,EAAGvtB,EAAE,SAAUA,EAAE,OAAO,EACjF,MAAM4F,EAAI,IAAI2nB,GACd,OAAO3nB,EAAE,QAAU,EAAGA,EAAE,UAAY,EAAGA,EAAE,QAAU,EAAGA,EAAE,IAAM,EAAGA,CACnE,CACA,SAAS04B,GAAGt+B,EAAG,EAAI,GAAI,EAAG,CACxB,MAAM,EAAI,IAAI4xB,GAAE5xB,EAAG,CAAC,EACpB,OAAO,EAAE,gBAAkB4xB,GAAE,2BAA2B,EAAE,eAAe,EAAG,EAAE,gCAAkC,EAAE,gBAAiByM,GAAG,CAAC,EAAE,YAAY,EAAG,EAAE,SAAS,EAAG,CACxK,CACK,MAACE,IAAK,CAET,gBAAiBD,EACnB,EACA/Q,GAAG,gBAAkB8Q,GACrBzM,GAAE,gBAAkB,CAAC5xB,EAAG,EAAG,EAAG,EAAG,EAAGL,EAAGC,EAAG,EAAG,EAAG,IAAM0+B,GAAGt+B,EAAG,CAC1D,OAAQ,EACR,KAAM,EACN,eAAgB,EAChB,gBAAiB,EACjB,EAAGL,EACH,EAAGC,EACH,gBAAiB,EACjB,UAAW,CACb,EAAG,CAAC,EACJgyB,GAAE,sBAAwB,CAAC5xB,EAAG,IAAM,CAClC,MAAM,EAAI,IAAIw+B,GAAGx+B,EAAG,CAAC,EACrB,GAAI,EAAE,iBAAkB,CACtB,EAAE,iBAAmB,GACrB,UAAW,KAAK,EAAE,iBAChB,EAAE,iBAAiB,CAAC,EAAI,EAAE,iBAAiB,CAAC,CAC/C,CACD,OAAO,CACT,SACA,cAAiBuuB,EAAG,CAMlB,YAAY,EAAG,EAAG,CAChB,MAAM,EAAG,EAAE,SAAU,GAAG,KAAK,gCAAkC,GAAI,KAAK,kBAAoB,EAAG,EAAE,YAAY,IAAI,EAAG,KAAK,YAAc,EAAG,KAAK,WAAa,EAAE,WAAY,KAAK,SAAS,SAAS,EAAE,QAAQ,EAAG,KAAK,SAAS,SAAS,EAAE,QAAQ,EAAG,KAAK,QAAQ,SAAS,EAAE,OAAO,EAAG,EAAE,qBAAuB,KAAK,mBAAqB,EAAE,mBAAmB,MAAK,GAAK,KAAK,WAAa,EAAE,WAAW,MAAK,EAC1Y,UAAW,KAAK,EAAE,mBAAoB,EACpC,GAAK,MAAQ,KAAK,qBAAqB,EAAE,KAAM,EAAE,KAAM,EAAE,EAAE,EAC7D,KAAK,iBAAmB,EAAE,iBAAkB,KAAK,eAAe,EAAE,eAAc,CAAE,EAAG,KAAK,oBAAoB,GAAI,EAAE,EAAG,KAAK,gBAC7H,CAID,cAAe,CACb,MAAO,eACR,CAED,IAAI,cAAe,CACjB,OAAO,KAAK,YAAY,aACzB,CACD,qBAAsB,CACrB,CACD,oBAAqB,CACpB,CACD,oBAAqB,CACpB,CAKD,IAAI,gBAAiB,CACnB,OAAO,KAAK,YAAY,cACzB,CACD,IAAI,eAAe,EAAG,CACpB,IAAI,IACF,EAAI,KAAK,cAAgB,KAAO,OAAS,EAAE,kBAAoB,GAAKhhB,GAAE,KAAK,2DAA2D,CACzI,CAID,IAAI,UAAW,CACb,OAAO,KAAK,YAAY,QACzB,CACD,IAAI,SAAS,EAAG,CACd,IAAI,IACF,EAAI,KAAK,cAAgB,KAAO,OAAS,EAAE,YAAc,GAAKA,GAAE,KAAK,qDAAqD,CAC7H,CAID,IAAI,YAAa,CACf,OAAO,KAAK,YAAY,UACzB,CACD,IAAI,WAAW,EAAG,CAChB,IAAI,IACF,EAAI,KAAK,cAAgB,KAAO,OAAS,EAAE,cAAgB,GAAKA,GAAE,KAAK,uDAAuD,CACjI,CAID,IAAI,UAAW,CACb,OAAO,KAAK,YAAY,QACzB,CACD,IAAI,SAAS,EAAG,CACd,IAAI,IACF,EAAI,KAAK,cAAgB,KAAO,OAAS,EAAE,YAAc,GAAKA,GAAE,KAAK,qDAAqD,CAC7H,CAID,IAAI,kBAAmB,CACrB,OAAO,KAAK,YAAY,gBACzB,CACD,IAAI,iBAAiB,EAAG,CACtB,CAAC,KAAK,aAAe,IAAM,KAAK,YAAY,kBAAoBhL,EAAE,KAAK,iFAAiF,CACzJ,CAID,kBAAmB,CACjB,OAAO,KAAK,YAAc,KAAK,YAAY,iBAAkB,EAAG,CACjE,CAKD,iBAAkB,CAChB,OAAO,KAAK,YAAY,iBACzB,CAID,IAAI,YAAa,CACf,OAAO,KAAK,WACb,CAOD,eAAe,EAAG,CAChB,OAAO,KAAK,YAAY,eAAe,CAAC,CACzC,CAMD,QAAQ,EAAI,GAAI,CACd,OAAO,KAAK,YAAY,QAAQ,EAAG,EAAE,CACtC,CAQD,gBAAgB,EAAG,EAAG,EAAG,CACvB,OAAO,KAAK,YAAY,gBAAgB,EAAG,EAAG,CAAC,CAChD,CACD,iBAAiB,EAAG,EAAG,CACrB,KAAK,YAAY,iBAAiB,EAAG,CAAC,CACvC,CA+BD,gBAAgB,EAAG,EAAG,EAAG,EAAG,CAC1B,OAAO,KAAK,YAAc,KAAK,WAAW,gBAAgB,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,UAC7E,CA8BD,mBAAmB,EAAG,EAAG,EAAG,EAAG,CAC7B,OAAO,KAAK,YAAc,KAAK,WAAW,mBAAmB,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,UAChF,CAWD,WAAW,EAAG,EAAI,KAAM,CACtB,OAAO,KAAK,YAAc,KAAK,WAAW,WAAW,EAAG,CAAC,EAAG,KAAK,UAClE,CAkBD,sBAAsB,EAAG,CACvB,OAAO,KAAK,YAAY,sBAAsB,CAAC,CAChD,CAID,YAAa,CACX,OAAO,KAAK,YAAY,YACzB,CACD,IAAI,YAAa,CACf,OAAO,KAAK,YAAY,UACzB,CACD,oBAAoB,EAAI,GAAI,EAAI,GAAI,CAClC,GAAI,KAAK,iBAAmB,KAAK,gBAAiB,EAAC,SACjD,OAAO,KACT,IAAI,EACJ,OAAO,GAAK,SAAW,EAAI,EAAI,EAAI,CACjC,cAAe,EACf,WAAY,CAClB,EACI,MAAM,EAAI,KAAK,YAAY,SAAW,KAAK,YAAY,SAAS,aAAe,KAC/E,OAAO,KAAK,qBAAqB,KAAK,YAAY,SAAS,EAAG,KAAMqR,EAAE,YAAY,EAAG,CAAC,EAAG,IAC1F,CAED,cAAe,CACb,OAAO,KAAK,aAAe,KAAK,YAAY,aAAc,EAAE,IAC7D,CAID,UAAU,EAAG,EAAG,CACd,GAAI,MAAM,UAAU,EAAG,CAAC,EAAG,KAAK,YAAY,WAAarR,EAAE,KAAK,4DAA4D,EAAG,KAAK,YAAa,CAC/I,GAAI,KAAK,YAAY,2BAA0B,GAAM,GAAK,KAAK,2BAA0B,GAAM,EAC7F,OAAO,KAAK,8BAA8B,kBAAoB,GAAI,GACpE,GAAI,KAAK,8BAA8B,kBAAoB,GAAI,KAAK,YAAY,6BAA6B,KAAM,CAAC,EAAG,GACrH,GAAI,CAAC,KAAK,YAAY,8BAA8B,sBAClD,OAAO,KAAK,YAAY,8BAA8B,8BAAgC,GAAI,WACnF,CAAC,KAAK,YAAY,8BAA8B,UACzD,OAAO,KAAK,YAAY,8BAA8B,kBAAoB,GAAI,EACjF,CACD,MAAO,EACR,CAED,eAAgB,CACd,KAAK,YAAY,yBAA2B,KAAK,YAAY,gBAAkB,KAAK,YAAY,eAAe,WAAa,KAAK,YAAY,iBAAmB,KAAK,YAAY,gBAAgB,gBAAgB,gBAAgB,KAAK,YAAY,cAAc,EAAG,KAAK,YAAY,eAAe,gBAAgB,KAAK,KAAK,eAAgB,IAAK,KAAK,gBAAkB,KAAK,eAAe,WAAa,KAAK,YAAY,iBAAmB,KAAK,YAAY,gBAAgB,gBAAgB,KAAK,KAAK,cAAc,CACxf,CACD,gBAAiB,CACf,GAAI,KAAK,aAAe,KAAK,YAAY,gBAAkBwrB,GAAG,oBAAsB,KAAK,YAAY,cAAgB,KAAM,CACzH,KAAK,wBAA0B,KAAK,sBAAwB,IAAIxe,GAChE,MAAM,EAAI,KAAK,YAAY,YAC3B,OAAO,KAAK,YAAY,YAAc,KAAMD,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,YAAY,QAAQ,EAAG,KAAK,YAAY,SAAS,IAAI,EAAG,EAAG,CAAC,EAAG,KAAK,sBAAsB,SAAS,KAAK,YAAY,mBAAmB,EAAE,CAAC,EAAG,KAAK,YAAY,SAAS,SAASA,EAAE,QAAQ,CAAC,CAAC,EAAG,KAAK,YAAY,YAAc,EAAG,KAAK,qBAC9S,CACD,OAAO,MAAM,gBACd,CACD,IAAI,cAAe,CACjB,MAAO,EACR,CAMD,OAAO,EAAG,CACR,GAAI,CAAC,EACH,OAAO,KACT,MAAM,EAAI,KAAK,WAAW,aAAY,EACtC,GAAI,CAAC,GAAK,EAAE,SAAW,EACrB,KAAK,YAAc,KAAK,eACrB,CACH,MAAM,EAAI,KAAK,kBACf,KAAK,YAAc,KAAK,WAAW,OAAO,EAAG,EAAE,cAAc,CAC9D,CACD,OAAO,KAAK,WACb,CAID,qCAAqC,EAAG,CACtC,OAAO,KAAK,WAAW,qCAAqC,CAAC,CAC9D,CAED,gBAAiB,CACf,GAAI,KAAK,iBAAgB,EAAI,KAAK,YAAY,UAC5C,QAAS,EAAI,EAAG,EAAI,KAAK,YAAY,UAAU,OAAQ,IACrD,KAAK,YAAY,UAAU,CAAC,EAAE,MAAM,KAAM,KAAK,WAAW,EAC9D,OAAO,IACR,CAED,sBAAuB,CACrB,OAAO,KAAK,YAAY,sBACzB,CAED,qBAAsB,CACpB,OAAO,KAAK,gBAAkB,KAAK,gBAAiB,EAAC,OAAO,KAAK,oBAAoB,EAAI,KAAK,kBAAkB,KAAK,iBAAkB,KAAK,iBAAkB,KAAK,oBAAoB,EAAG,KAAK,6BAA6B,KAAK,oBAAoB,EAAG,IACzP,CAWD,MAAM,EAAG,EAAI,KAAM,EAAG,EAAG,CACvB,MAAM3P,GAAK,GAAK,KAAK,aAAa,eAAe,CAAC,EAClD,GAAI6N,GAAG,SAAS,KAAM7N,EAAG,CACvB,OACA,YACA,WACA,SACA,eACA,iBACA,WACA,aACA,WACA,aACA,eACA,UACA,qBACA,YACA,WACA,eACA,WACA,gBACA,UACA,KACA,QACA,mBACA,kBACA,6BACA,sBACA,oBACA,YACA,uBACA,mBACA,iBACN,EAAO,CAAE,GAAG,KAAK,oBAAqB,EAAE,IAAMA,EAAE,OAAS,GAAI,CAAC,EACxD,QAASC,EAAI,EAAGA,EAAI,KAAK,SAAQ,EAAG,OAAO,OAAQA,IAAK,CACtD,MAAM,EAAI,KAAK,SAAU,EAAC,OAAOA,CAAC,EAClC,EAAE,SAAW,MAAQ,EAAE,MAAM,EAAE,KAAMD,CAAC,CACvC,CACH,OAAOA,EAAE,mBAAmB,EAAE,EAAG,KAAK,mBAAmB,gBAAgBA,CAAC,EAAGA,CAC9E,CAOD,QAAQ,EAAG,EAAI,GAAI,CACjB,KAAK,YAAY,eAAe,IAAI,EAAG,MAAM,QAAQ,EAAG,CAAC,CAC1D,CAID,mBAAmB,EAAG,CACpB,MAAM,mBAAmB,CAAC,EAAG,EAAE,SAAW,KAAK,YAAY,SAAU,EAAE,oBAAsB,KAAK,+BACnG,CAUD,qBAAqB,EAAI,KAAM,EAAG,EAAG,CACnC,MAAM,EAAI,KAAK,MAAM,aAAe,KAAK,MAAQ,KAAK,IAAK,GAAK,KAAK,OAAQ,GAAI,GAAK,EAAE,cAAc,EACtG,GAAK,GAAK,EAAE,KAAM,CAAC,EACnB,UAAWA,KAAK,KAAK,uBAAuB,EAAE,EAC5CA,EAAE,qBAAqB,EAAG,EAAG,CAAC,EAChC,OAAO,CACR,CACH,EACAiyB,GAAE,UAAU,wBAA0B,SAAS5xB,EAAG,EAAG,CACnD,IAAI,EAAG,EACP,IAAK,GAAK,EAAI,KAAK,+BAAiC,KAAO,OAAS,EAAE,cAAcA,CAAC,IAAM,MAAQ,EAAE,UAAW,CAAC,KAAK,iBAAkB,CACtI,KAAK,iBAAmB,GACxB,UAAW,KAAK,KAAK,UACnB,EAAE,iBAAmB,EACxB,CACD,KAAK,+BAAiC,KAAK,6BAA+B,CACxE,KAAM,CAAE,EACR,cAAe,CAAE,EACjB,QAAS,CAAE,EACX,MAAO,CAAE,EACT,mBAAoB,KAAK,UAAW,EAAC,QAAO,EAAG,kBAAoB,CAAE,EAAG,MACzE,GAAG,KAAK,iBAAiBA,CAAC,EAAI,KAAM,KAAK,6BAA6B,QAAQA,CAAC,EAAI,EAAG,KAAK,6BAA6B,MAAMA,CAAC,EAAI,EAAI,GAAI,KAAK,6BAA6B,KAAKA,CAAC,EAAI,IAAI,aAAa,KAAK,6BAA6B,MAAMA,CAAC,CAAC,EAAG,KAAK,6BAA6B,cAAcA,CAAC,EAAI,IAAI4T,EAAE,KAAK,UAAS,EAAI,KAAK,6BAA6B,KAAK5T,CAAC,EAAGA,EAAG,GAAI,GAAI,EAAG,EAAE,EAC9X,UAAW,KAAK,KAAK,UACnB,EAAE,iBAAiBA,CAAC,EAAI,KAC1B,KAAK,qCAAoC,EAAI,KAAK,gCAA+B,CACnF,EACA4xB,GAAE,UAAU,yBAA2B,SAAS5xB,EAAG,EAAG,CACpD,MAAM,EAAIA,EAAIA,EAAE,OAAS,EACzB,UAAW,KAAK,KAAK,iBAAkB,CACrC,IAAI,EAAI,KAAK,6BAA6B,MAAM,CAAC,EACjD,MAAML,EAAI,KAAK,6BAA6B,QAAQ,CAAC,EAAGC,GAAK,EAAI,GAAKD,EACtE,KAAO,EAAIC,GACT,GAAK,EACP,KAAK,6BAA6B,KAAK,CAAC,EAAE,QAAU,IAAM,KAAK,6BAA6B,KAAK,CAAC,EAAI,IAAI,aAAa,CAAC,EAAG,KAAK,6BAA6B,MAAM,CAAC,EAAI,EAAG,KAAK,6BAA6B,cAAc,CAAC,IAAM,KAAK,6BAA6B,cAAc,CAAC,EAAE,QAAO,EAAI,KAAK,6BAA6B,cAAc,CAAC,EAAI,OACrV,MAAM,EAAI,KAAK,6BAA6B,KAAK,CAAC,EAClD,IAAI,EAAI,EACR,GAAI,EAAG,CACL,MAAM,EAAI,KAAK,iBAAiB,CAAC,EACjC,EAAE,QAAU,EAAE,QAAQ,EAAG,CAAC,EAAI,EAAE,YAAc,EAAE,YAAY,EAAG,CAAC,EAAI,EAAE,CAAC,EAAI,EAAG,GAAKD,CACpF,CACD,QAAS,EAAI,EAAG,EAAI,EAAG,IAAK,CAC1B,MAAMc,EAAIT,EAAE,CAAC,EAAE,iBAAiB,CAAC,EACjCS,EAAE,QAAUA,EAAE,QAAQ,EAAG,CAAC,EAAIA,EAAE,YAAcA,EAAE,YAAY,EAAG,CAAC,EAAI,EAAE,CAAC,EAAIA,EAAG,GAAKd,CACpF,CACD,KAAK,6BAA6B,cAAc,CAAC,EAAI,KAAK,6BAA6B,cAAc,CAAC,EAAE,eAAe,EAAG,CAAC,GAAK,KAAK,6BAA6B,cAAc,CAAC,EAAI,IAAIiU,EAAE,KAAK,UAAS,EAAI,KAAK,6BAA6B,KAAK,CAAC,EAAG,EAAG,GAAI,GAAIjU,EAAG,EAAE,EAAG,KAAK,qCAAoC,EACrT,CACH,EACAiyB,GAAE,UAAU,qCAAuC,UAAW,CAC5D,GAAI,EAAE,CAAC,KAAK,8BAAgC,KAAK,6BAA6B,qBAAuB,QAAS,CAC5G,UAAW5xB,KAAK,KAAK,6BAA6B,mBAChD,KAAK,UAAW,EAAC,yBAAyB,KAAK,6BAA6B,mBAAmBA,CAAC,CAAC,EACnG,KAAK,6BAA6B,mBAAqB,EACxD,CACH,EACA4xB,GAAE,UAAU,6BAA+B,UAAW,CACpD,IAAK,KAAK,qBAAqB,kBAAoB,KAAK,qBAAqB,gBAAgB,QAAS,EAAE,KAAK,qBAAqB,gBAAkB,MAAO,KAAK,UAAU,QACxK,KAAK,UAAU,CAAC,EAAE,QAAO,EAC3B,UAAW5xB,KAAK,KAAK,iBACnB,KAAK,6BAA6B,cAAcA,CAAC,GAAK,KAAK,6BAA6B,cAAcA,CAAC,EAAE,UAC3G,KAAK,qCAAsC,EAAE,KAAK,iBAAmB,EACvE,EACAgN,GAAE,wBAAyBwxB,EAAE,EAC7B,MAAMC,EAAG,CACP,aAAc,CACZ,KAAK,SAAW,GAAI,KAAK,aAAe,GAAI,KAAK,SAAW,GAAI,KAAK,MAAQ,IAC9E,CAID,YAAa,CACX,KAAK,MAAQ,IACd,CAMD,YAAY,EAAG,EAAG,CAChB,KAAK,SAAS,CAAC,IAAM,EAAI,KAAK,eAAiB,KAAK,aAAe,GAAI,EAAI,KAAK,WAAa,KAAK,SAAW,GAAI,KAAK,SAAS,CAAC,EAAI,IAAI,OAAU,KAAK,SAAS,CAAC,EAAE,KAAK,CAAC,CAC1K,CAMD,uBAAuB,EAAG,EAAG,CAC3B,KAAK,MAAQ,EAAG,EAAI,KAAK,eAAiB,KAAK,aAAe,GAAI,EAAI,KAAK,WAAa,KAAK,SAAW,EACzG,CAID,IAAI,kBAAmB,CACrB,OAAO,KAAK,cAAgB,KAAK,QAClC,CAOD,OAAO,EAAG,EAAG,CACX,GAAI,KAAK,OAAS,KAAK,MAAM,0BAA4B,KAAK,MAAM,mBAAqB,EAAG,CAC1F,KAAK,MAAM,yBAA2B,GAAI,EAAI,EAAE,QAAQ,gCAAkC,KAAK,MAAM,mBAAoB,gCAAgC,EAAG,EAAE,6BAA+B,GAC7L,MAAM,EAAI,KAAK,MAAM,SAAQ,EAC7B,QAAS,EAAI,EAAG,EAAI,EAAE,OAAO,OAAQ,IAAK,CACxC,MAAM9+B,EAAI,EAAE,OAAO,CAAC,EACpB,GAAI,CAACA,EAAE,SAAU,CACf,CAAC,KAAK,MAAM,UAAYA,EAAE,0BAA4BA,EAAE,mBAAqB,IAAMA,EAAE,yBAA2B,IAChH,QACD,CACD,GAAI,EAAE,CAACA,EAAE,0BAA4BA,EAAE,qBAAuB,IAC5D,GAAIA,EAAE,SAAS,UAAS,IAAO,EAC7BA,EAAE,yBAA2B,WACtBA,EAAE,WACT,UAAWC,KAAKD,EAAE,UAChB,GAAIC,EAAE,SAAW,EAAG,CAClBD,EAAE,yBAA2B,GAC7B,KACD,GAGR,CACP,KAAW,CACL,MAAM,EAAI,KAAK,SAAS,KAAK,YAAY,EACzC,GAAI,EACF,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAI,EAAE,QAAQ,WAAa,EAAE,CAAC,EAAG,EAAE,EACvC,KAAK,cACN,CACD,OAAO,CACR,CACH,QACA,cAAiBwxB,EAAG,CAClB,YAAY,EAAG,EAAG,EAAI,GAAI,CACxB,MAAM,EAAG,CAAC,EAAG,KAAK,cAAgB,IAAI5hB,EAAK,KAAK,wBAA0B,CAC3E,CACD,WAAY,CACV,OAAO,KAAK,wBAA0B,KAAK,cAAgB,MAAM,WAClE,CACD,QAAQ,EAAG,EAAG,CACZ,OAAO,EAAI,CAAC,KAAK,yBAA2B,CAAC,EAAE,WAAa,EAAE,UAAU,SAAW,EAAI,GAAK,KAAK,kBAAkB,EAAG,EAAE,UAAU,CAAC,EAAG,CAAC,EAAI,EAC5I,CACD,mBAAmB,EAAG,CACpB,MAAM,EAAI,EAAE,gBACZ,MAAO,CAAC,EAAE,CAAC,KAAK,uBAAyB,EAAE,QAAU,GAAK,EAAE,YAAc,KAAK,SAAQ,EAAG,YAAa,EACxG,CAMD,oBAAoB,EAAG,CACrB,KAAK,cAAc,UAAU,QAAS,CAAC,CACxC,CAMD,qBAAqB,EAAG,CACtB,KAAK,cAAc,UAAU,eAAgB,CAAC,CAC/C,CACD,KAAK,EAAG,EAAG,CACT,GAAK,KAAK,eAAe,EAAG,EAAG,EAAE,UAAU,CAAC,CAAC,CAC9C,CACD,WAAW,EAAG,EAAI,KAAM,EAAG,CACzB,MAAM,WAAW,EAAG,EAAG,CAAC,EAAG,KAAK,SAAU,EAAC,cAAgB,EAAG,EAAI,EAAE,aAAa,uBAAyB,GAAK,KAAK,aAAa,uBAAyB,EAC3J,CACD,YAAY,EAAG,EAAG,EAAG,EAAI,EAAG,CAC1B,OAAO,EAAE,aAAa,wBAA0B,EAAE,wBAAwB,KAAM,EAAG,CAAC,CACrF,CACD,QAAQ,EAAG,EAAG,EAAG,CACf,KAAK,cAAgB,OAAQ,MAAM,QAAQ,EAAG,EAAG,CAAC,CACnD,CACH,EACA,MAAMmvB,GAAK,CAAE,OAAQ,KAAM,QAAS,IAAI,SACxC,MAAMC,WAAWC,EAAG,CAYlB,YAAY,EAAG,EAAG,EAAG,EAAI,GAAIj/B,EAAI,GAAI,CACnC,MAAM,EAAG,EAAGA,CAAC,EAAG,KAAK,UAAY,GAAI,KAAK,eAAiB,GAAI,KAAK,kBAAoB,CAAE,EAAE,KAAK,QAAU,CAAE,EAAE,KAAK,MAAQ,GAAI,KAAK,OAAS,GAAI,KAAK,cAAgB,GAAI,KAAK,SAAW,GAAI,KAAK,eAAiB,CAAE,EAAE,KAAK,SAAW,CAAE,EAAE,KAAK,eAAiB,GAAI,KAAK,UAAY,GAAI,KAAK,UAAY,CAAE,EAAE,KAAK,UAAY,GAAI,KAAK,aAAe,GAAI,KAAK,mBAAqB,CAAE,EAAE,KAAK,UAAY,CAAE,EAAE,KAAK,cAAgB,GAAI,KAAK,aAAe,GAAI,KAAK,aAAe,GAAI,KAAK,gBAAkB,GAAI,KAAK,gBAAkB,CAAE,EAAE,KAAK,gBAAkB,CAAE,EAAE,KAAK,gBAAkB,GAAI,KAAK,iBAAmB,GAAI,KAAK,gBAAkB,CAAE,EAAE,KAAK,uBAAyB,IAAI4P,EAAK,KAAK,iCAAmC,IAAIA,EAAK,KAAK,WAAa,GAAI,KAAK,qCAAuC,GAAI,KAAK,YAAc,EAAG,KAAK,SAAW,CAC/zB,kBAAmB,GACnB,iBAAkB,GAClB,WAAY,CAAC,WAAY,SAAU,IAAI,EACvC,SAAU,CAAC,qBAAqB,EAChC,eAAgB,CAAE,EAClB,SAAU,CAAE,EACZ,iBAAkB,CAAE,EACpB,eAAgB,CAAE,EAClB,eAAgB,CAAE,EAClB,QAAS,CAAE,EACX,aAAc,GACd,GAAG,CACT,CACG,CAKD,IAAI,YAAa,CACf,OAAO,KAAK,WACb,CAKD,IAAI,WAAW,EAAG,CAChB,KAAK,YAAc,CACpB,CAKD,IAAI,SAAU,CACZ,OAAO,KAAK,QACb,CAID,IAAI,aAAc,CAChB,OAAO,KAAK,UACb,CAMD,cAAe,CACb,MAAO,gBACR,CAKD,mBAAoB,CAClB,OAAO,KAAK,MAAQ,GAAK,KAAK,SAAS,iBACxC,CAKD,kBAAmB,CACjB,OAAO,KAAK,SAAS,gBACtB,CACD,cAAc,EAAG,CACf,KAAK,SAAS,SAAS,QAAQ,CAAC,IAAM,IAAM,KAAK,SAAS,SAAS,KAAK,CAAC,CAC1E,CAOD,WAAW,EAAG,EAAG,CACf,OAAO,KAAK,SAAS,SAAS,QAAQ,CAAC,IAAM,IAAM,KAAK,SAAS,SAAS,KAAK,CAAC,EAAG,KAAK,UAAU,CAAC,EAAI,EAAG,IAC3G,CAOD,gBAAgB,EAAG,EAAG,CACpB,OAAO,KAAK,SAAS,SAAS,QAAQ,CAAC,IAAM,IAAM,KAAK,SAAS,SAAS,KAAK,CAAC,EAAG,KAAK,cAAc,CAAC,EAAG,KAAK,eAAe,CAAC,EAAI,EAAG,IACvI,CAOD,mBAAmB,EAAG,EAAG,CACvB,OAAO,KAAK,SAAS,iBAAiB,QAAQ,CAAC,IAAM,IAAM,KAAK,SAAS,iBAAiB,KAAK,CAAC,EAAG,KAAK,kBAAkB,CAAC,EAAI,EAAG,IACnI,CAOD,SAAS,EAAG,EAAG,CACb,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,QAAQ,CAAC,EAAI,EAAG,IACpD,CAOD,OAAO,EAAG,EAAG,CACX,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,MAAM,CAAC,EAAI,EAAG,IAClD,CAOD,QAAQ,EAAG,EAAG,CACZ,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,OAAO,CAAC,EAAI,EAAG,IACnD,CAOD,UAAU,EAAG,EAAG,CACd,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,cAAc,CAAC,EAAI,EAAG,IAC1D,CAOD,UAAU,EAAG,EAAG,CACd,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,SAAS,CAAC,EAAI,EAAG,IACrD,CAOD,eAAe,EAAG,EAAG,CACnB,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,eAAe,CAAC,EAAI,EAAE,OAAO,CAAC,EAAG,KAAO,EAAE,QAAQ,EAAG,EAAE,MAAM,EAAG,GAAI,EAAE,EAAG,IAC7G,CAOD,UAAU,EAAG,EAAG,CACd,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,SAAS,CAAC,EAAI,EAAG,IACrD,CAOD,eAAe,EAAG,EAAG,CACnB,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,eAAe,CAAC,EAAI,EAAE,OAAO,CAAC,EAAG,KAAO,EAAE,QAAQ,EAAG,EAAE,MAAM,EAAG,GAAI,EAAE,EAAG,IAC7G,CAOD,WAAW,EAAG,EAAG,CACf,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,UAAU,CAAC,EAAI,EAAG,IACtD,CAOD,WAAW,EAAG,EAAG,CACf,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,UAAU,CAAC,EAAI,EAAG,IACtD,CAOD,WAAW,EAAG,EAAG,CACf,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,UAAU,CAAC,EAAI,EAAG,IACtD,CAOD,cAAc,EAAG,EAAG,CAClB,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,aAAa,CAAC,EAAI,EAAG,IACzD,CAOD,mBAAmB,EAAG,EAAG,CACvB,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,mBAAmB,CAAC,EAAI,EAAE,OAAO,CAAC,EAAG,KAAO,EAAE,QAAQ,EAAG,EAAE,MAAM,EAAG,GAAI,EAAE,EAAG,IACjH,CAOD,UAAU,EAAG,EAAG,CACd,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,UAAU,CAAC,EAAI,EAAG,IACtD,CAOD,YAAY,EAAG,EAAG,CAChB,KAAK,cAAc,CAAC,EACpB,MAAM,EAAI,IAAI,aAAa,EAAE,OAAS,EAAE,EACxC,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAE,CAAC,EAAE,YAAY,EAAG,EAAI,EAAE,EAC5B,OAAO,KAAK,cAAc,CAAC,EAAI,EAAG,IACnC,CAOD,aAAa,EAAG,EAAG,CACjB,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,aAAa,CAAC,EAAI,EAAG,IACzD,CAOD,aAAa,EAAG,EAAG,CACjB,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,aAAa,CAAC,EAAI,EAAG,IACzD,CAOD,UAAU,EAAG,EAAG,CACd,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,gBAAgB,CAAC,EAAI,EAAG,IAC5D,CAOD,UAAU,EAAG,EAAG,CACd,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,gBAAgB,CAAC,EAAI,EAAG,IAC5D,CAOD,UAAU,EAAG,EAAG,CACd,OAAO,KAAK,cAAc,CAAC,EAAG,KAAK,gBAAgB,CAAC,EAAI,EAAG,IAC5D,CAOD,iBAAiB,EAAG,EAAG,CACrB,OAAO,KAAK,SAAS,eAAe,QAAQ,CAAC,IAAM,IAAM,KAAK,SAAS,eAAe,KAAK,CAAC,EAAG,KAAK,gBAAgB,CAAC,EAAI,EAAG,IAC7H,CAOD,kBAAkB,EAAG,EAAG,CACtB,OAAO,KAAK,SAAS,eAAe,QAAQ,CAAC,IAAM,IAAM,KAAK,SAAS,eAAe,KAAK,CAAC,EAAG,KAAK,iBAAiB,CAAC,EAAI,EAAG,IAC9H,CAOD,iBAAiB,EAAG,EAAG,CACrB,OAAO,KAAK,SAAS,eAAe,QAAQ,CAAC,IAAM,IAAM,KAAK,SAAS,eAAe,KAAK,CAAC,EAAG,KAAK,gBAAgB,CAAC,EAAI,EAAG,IAC7H,CAWD,UAAU,EAAG,EAAG,CACd,MAAM,EAAI,EAAE,QAAO,EAAK,IAAK,EAAI,KAAK,QAAQ,QAAQ,UAAW5P,GAAMA,IAAM,GAAKA,EAAE,WAAW,CAAC,CAAC,EACjG,OAAO,GAAK,GAAK,KAAK,QAAQ,QAAQ,OAAO,EAAG,CAAC,GAAI,OAAO,GAAK,WAAa,IAAM,KAAK,QAAQ,QAAQ,KAAK,EAAI,CAAC,EAAG,IACvH,CAQD,kBAAkB,EAAG,EAAG,EAAG,CACzB,OAAO,KAAK,QAAQ,EAAG,EAAG,CAAC,CAC5B,CAQD,QAAQ,EAAG,EAAG,EAAG,CACf,MAAM,EAAI,GAAK,KAAK,wBACpB,GAAI,KAAK,SAAU,CACjB,MAAMyH,EAAI,EAAI,EAAE,aAAe,KAAK,aACpC,GAAIA,EAAE,QAAUA,EAAE,qBAAuBA,EAAE,+BAAiC,EAC1E,MAAO,EACV,CACD,MAAMzH,EAAI,KAAK,SAAU,EAAEC,EAAID,EAAE,UAAS,EAAI,EAAI,GAAI,EAAI,GAAI,EAAI,IAAI8+B,GACtE,IAAI,EAAI,KAAK,YAAa,EAAI,KAAK,SAAS,SAAU,EAAI,KAAK,SAAS,eAAgBj+B,EAAI,KAAK,SAAS,SAC1GZ,EAAE,QAAO,EAAG,WAAaD,EAAE,cAAgBA,EAAE,aAAa,oBAAsBA,EAAE,aAAa,mBAAmB,aAAY,EAAK,IAAM,KAAK,WAAa,GAAI,EAAE,KAAK,mBAAmB,EAAG,EAAE,QAAQ,gBAAgB,IAAM,IAAM,EAAE,QAAQ,iBAAiB,IAAM,IAAM,EAAE,KAAK,iBAAiB,GACjS,QAASyH,EAAI,EAAGA,EAAI,KAAK,SAAS,QAAQ,OAAQA,IAAK,CACrD,MAAMC,EAAI,KAAK,SAAS,QAAQD,CAAC,EAAE,QAAQ,SAAS,IAAM,EAAI,KAAK,SAAS,QAAQA,CAAC,EAAI,WAAW,KAAK,SAAS,QAAQA,CAAC,CAAC,GAC5H,EAAE,KAAKC,CAAC,CACT,CACD,QAASD,EAAI,EAAGA,EAAI,KAAK,SAAS,WAAW,OAAQA,IACnD,EAAE,KAAK,KAAK,SAAS,WAAWA,CAAC,CAAC,EACpC,GAAI,GAAK,EAAE,sBAAsBwM,EAAE,SAAS,IAAM,EAAE,QAAQA,EAAE,SAAS,IAAM,IAAM,EAAE,KAAKA,EAAE,SAAS,EAAG,EAAE,KAAK,qBAAqB,GAAI,IAAM,EAAE,KAAK,mBAAmB,EAAG0b,GAAG,EAAG,KAAK,oCAAoC,EAAG,GAAK,MAAQ,EAAE,mBAAqB,EAAE,KAAK,wBAAwB,EAAG,GAAK,EAAE,sBAAsB1b,EAAE,iBAAiB,IAAM,EAAE,KAAKA,EAAE,iBAAiB,EAAG,EAAE,KAAK,wBAAwB,KAAM,GAAK,EAAE,UAAY,EAAE,0BAA4B,EAAE,SAAU,CACtd,EAAE,KAAKA,EAAE,mBAAmB,EAAG,EAAE,KAAKA,EAAE,mBAAmB,EAAG,EAAE,mBAAqB,IAAM,EAAE,KAAKA,EAAE,wBAAwB,EAAG,EAAE,KAAKA,EAAE,wBAAwB,GAChK,MAAMxM,EAAI,EAAE,SACZ,EAAE,KAAK,gCAAkC,EAAE,kBAAkB,EAAG,EAAE,uBAAuB,EAAG,CAAC,EAAGA,EAAE,2BAA6B,EAAE,KAAK,qBAAqB,EAAG,EAAE,QAAQ,kBAAkB,IAAM,IAAM,EAAE,KAAK,kBAAkB,EAAG,KAAK,SAAS,SAAS,QAAQ,aAAa,IAAM,IAAM,KAAK,SAAS,SAAS,KAAK,aAAa,IAAM,EAAE,KAAK,yBAA2BA,EAAE,MAAM,OAAS,EAAE,EAAG,EAAE,QAAQ,QAAQ,IAAM,IAAM,EAAE,KAAK,QAAQ,EAC/a,MACC,EAAE,KAAK,gCAAgC,EACzC,IAAIzB,EAAI,EACR,MAAMC,EAAI,EAAI,EAAE,mBAAqB,KACrC,GAAIA,EAAG,CACL,MAAMwB,EAAIxB,EAAE,aAAe,EAAE,QAAQ,aAAa,IAAM,GAAIyB,EAAIzB,EAAE,kBAAoB,EAAE,QAAQ,iBAAiB,IAAM,GAAI0B,EAAI1B,EAAE,iBAAmB,EAAE,QAAQ,gBAAgB,IAAM,GACpLD,EAAIC,EAAE,mBAAqBA,EAAE,eAAgBwB,GAAK,EAAE,KAAK,yBAAyB,EAAGC,GAAK,EAAE,KAAK,8BAA8B,EAAGC,GAAK,EAAE,KAAK,6BAA6B,EAAG3B,EAAI,GAAK,EAAE,KAAK,sBAAsB,EAAGC,EAAE,2BAA6B,EAAE,KAAK,8BAA8B,EAAG,EAAE,QAAQ,2BAA2B,IAAM,IAAM,EAAE,KAAK,2BAA2B,EAAG,KAAK,SAAS,SAAS,QAAQ,cAAc,IAAM,IAAM,KAAK,SAAS,SAAS,KAAK,cAAc,GAAI,EAAE,KAAK,iCAAmCD,CAAC,EACtgB,QAAS4B,EAAI,EAAGA,EAAI5B,EAAG4B,IACrB,EAAE,KAAKqM,EAAE,aAAerM,CAAC,EAAGD,GAAK,EAAE,KAAKsM,EAAE,WAAarM,CAAC,EAAGF,GAAK,EAAE,KAAKuM,EAAE,YAAcrM,CAAC,EAAGH,GAAK,EAAE,KAAKwM,EAAE,OAAS,IAAMrM,CAAC,EAC3H5B,EAAI,IAAM,EAAI,EAAE,MAAK,EAAI,EAAE,KAAK,uBAAuB,EAAG,EAAE,KAAK,kBAAkB,EAAG,EAAE,KAAK,wBAAwB,EAAG,EAAE,KAAK,2BAA2B,EAC3J,MACC,EAAE,KAAK,iCAAiC,EAC1C,GAAI,EAAG,CACL,MAAMyB,EAAI,EAAE,4BACZA,GAAKA,EAAE,YAAc,EAAE,KAAK,wCAAwC,EAAG,EAAE,QAAQ,8BAA8B,IAAM,IAAM,EAAE,KAAK,8BAA8B,EAAG,EAAE,QAAQ,yCAAyC,IAAM,IAAM,EAAE,KAAK,yCAAyC,EAAG,EAAE,QAAQ,0BAA0B,IAAM,IAAM,EAAE,KAAK,0BAA0B,EAAG,KAAK,SAAS,SAAS,QAAQ,6BAA6B,IAAM,IAAM,KAAK,SAAS,SAAS,KAAK,6BAA6B,GAAIuoB,GAAG,EAAG,EAAG,CAAC,CACzf,CACD,UAAWvoB,KAAK,KAAK,UACnB,GAAI,CAAC,KAAK,UAAUA,CAAC,EAAE,QAAS,EAC9B,MAAO,GACX,GAAK,KAAK,uBAAuB,CAAC,GAAK,EAAE,KAAK,mBAAmB,EAAG,KAAK,SAAS,eAAiB,KAAOunB,GAAG,CAAC,EAAGC,GAAG,KAAMjvB,EAAG,CAAC,GAAIA,EAAE,YAAe,GAAK,MAAQ,EAAE,UAAaA,EAAE,UAAYqY,GAAG,eAAiB,EAAE,KAAK,aAAa,EAAG,EAAE,QAAQ,MAAM,IAAM,IAAM,EAAE,KAAK,MAAM,EAAG,EAAE,QAAQ,WAAW,IAAM,IAAM,EAAE,KAAK,WAAW,EAAG,EAAE,QAAQ,WAAW,IAAM,IAAM,EAAE,KAAK,WAAW,GAAI,KAAK,uBAAyB,EAAE,KAAK,0BAA0B,EAAG,EAAE,QAAQ,0BAA0B,IAAM,IAAM,EAAE,KAAK,0BAA0B,GAAI,KAAK,0BAA4B,EAAI,EAAE,MAAK,EAAI,EAAI,EAAE,QAASxX,EAAIA,EAAE,QAAS,EAAI,KAAK,wBAAwB,KAAK,KAAM,EAAG,EAAGA,EAAG,EAAG,CAAC,GAC/pB,MAAMqF,EAAI,EAAI,EAAE,gBAAgB,OAAQ,EAAE,EAAI,KAAK,aAAcC,EAA0BD,GAAE,QAAW,KAAME,EAA0BF,GAAE,SAAY,KAAMsB,EAAI,EAAE,KAAK;AAAA,CAC1K,EACG,IAAI,EAAIrB,EACR,OAAOC,IAAMoB,IAAM,EAAIvH,EAAE,aAAa,EAAG,CACvC,WAAY,EACZ,cAAe,EACf,oBAAqB,EACrB,SAAUY,EACV,QAAS2G,EACT,UAAW,EACX,WAAY,KAAK,WACjB,QAAS,KAAK,QACd,gBAAiB,CAAE,4BAA6BxB,CAAG,EACnD,eAAgB,KAAK,SAAS,cAC/B,EAAE/F,CAAC,EAAG,EAAI,EAAE,UAAU,EAAGuH,EAAG,KAAK,gBAAgB,EAAItB,GAAKA,EAAE,UAAU,EAAGsB,CAAC,EAAG,KAAK,6BAA+Bu3B,GAAG,OAAS,EAAGA,GAAG,QAAU,GAA2B,GAAE,UAAU,CAAC,GAAM,KAAM,KAAK,2BAA2B,gBAAgBA,EAAE,IAAK74B,EAAE,6BAA+B,CAAC,CAAC,EAAG,GAAK,MAAQ,EAAE,QAAO,GAAMC,IAAM,GAAKnG,EAAE,oBAAmB,EAAIkG,EAAE,oBAAsB,GAAI,IAAM,EAClY,CAMD,oBAAoB,EAAG,EAAG,CACxB,MAAM,EAAI,KAAK,SAAU,EAAE,EAAI,GAAK,KAAK,YACzC,IAAM,KAAK,SAAS,SAAS,QAAQ,OAAO,IAAM,IAAM,EAAE,UAAU,QAAS,CAAC,EAAG,KAAK,SAAS,SAAS,QAAQ,WAAW,IAAM,KAAO,EAAE,cAAc,EAAE,cAAe,EAAE,KAAK,sBAAsB,EAAG,EAAE,UAAU,YAAa,KAAK,sBAAsB,GAAI,KAAK,SAAS,SAAS,QAAQ,qBAAqB,IAAM,KAAO,EAAE,cAAc,EAAE,mBAAoB,EAAE,KAAK,gCAAgC,EAAG,EAAE,UAAU,sBAAuB,KAAK,gCAAgC,GAAI,KAAK,SAAS,SAAS,QAAQ,MAAM,IAAM,IAAM,EAAE,UAAU,OAAQ,EAAE,cAAe,GACrjB,CAOD,eAAe,EAAG,EAAG,EAAG,CACtB,IAAI,EACJ,KAAK,KAAK,EAAG,GAAI,EAAI,EAAE,uBAAyB,KAAO,OAAS,EAAE,OAAQ,CAAC,CAC5E,CAQD,KAAK,EAAG,EAAG,EAAG,EAAG,CACf,IAAIpF,EACJ,MAAMd,EAAI,GAAK,KAAK,wBAAyBC,EAAI,IAAMD,EAAI,EAAE,OAAS,KAAK,UAAW,GACtF,GAAI,CAACC,EACH,OACF,MAAM2D,EAAI,KAAK,WACf,KAAK,cAAgB3D,EAAG,KAAK,oBAAoB,EAAG,CAAC,EACrD,MAAMsC,EAAI,KAAK,SAAS,eACxB,IAAID,EAAI,GACR,GAAIrC,GAAKsC,GAAKA,EAAE,OAAS,GAAKqB,EAAE,UAAS,EAAG,uBAC1C,QAAS,EAAI,EAAG,EAAIrB,EAAE,OAAQ,EAAE,EAC9B,OAAQA,EAAE,CAAC,EAAC,CACV,IAAK,OACH,IAAM,EAAE,qBAAsB,EAAC,aAAatC,EAAG,MAAM,EAAG,EAAE,iBAAiB,CAAC,GAC5E,MACF,IAAK,QACH4vB,GAAG5vB,EAAG2D,EAAE,sBAAuB,GAAGA,EAAE,iBAAkB,EAAEtB,EAAI,GAC5D,KACH,CACL,MAAM4G,EAAI,GAAKlJ,EAAI,KAAK,YAAY4D,EAAG3D,EAAG,EAAG,EAAE,UAAU,EAAI2D,EAAE,kBAAiB,IAAO,KACvF,GAAI3D,GAAKiJ,EAAG,CACV,CAAC5G,GAAK,KAAK,SAAS,SAAS,QAAQ,MAAM,IAAM,IAAMrC,EAAE,UAAU,OAAQ2D,EAAE,eAAe,EAAG,CAACtB,GAAK,KAAK,SAAS,SAAS,QAAQ,YAAY,IAAM,IAAMrC,EAAE,UAAU,aAAc2D,EAAE,qBAAqB,EAAG,CAACtB,GAAK,KAAK,SAAS,SAAS,QAAQ,gBAAgB,IAAM,KAAOrC,EAAE,UAAU,iBAAkB2D,EAAE,oBAAoB,EAAG,KAAK,YAAc3D,EAAE,UAAU,kBAAmB2D,EAAE,iBAAiB,GAAIA,EAAE,cAAgB,KAAK,SAAS,SAAS,QAAQ,gBAAgB,IAAM,IAAM3D,EAAE,WAAW,iBAAkB2D,EAAE,aAAa,cAAc,EAAGssB,GAAG,EAAGjwB,CAAC,EAAGkvB,GAAGlvB,EAAG,KAAM2D,CAAC,EAAG,KAAK,sBAAwB2rB,GAAGvvB,EAAI,EAAE,gBAAkBC,EAAE,QAASA,EAAG2D,CAAC,EAAG,GAAK4rB,GAAG5rB,EAAG,EAAG3D,CAAC,EACjpB,IAAI,EACJ,IAAK,KAAK,KAAK,UACbA,EAAE,WAAW,EAAG,KAAK,UAAU,CAAC,CAAC,EACnC,IAAK,KAAK,KAAK,eACbA,EAAE,gBAAgB,EAAG,KAAK,eAAe,CAAC,CAAC,EAC7C,IAAK,KAAK,KAAK,MACbA,EAAE,OAAO,EAAG,KAAK,MAAM,CAAC,CAAC,EAC3B,IAAK,KAAK,KAAK,OACbA,EAAE,QAAQ,EAAG,KAAK,OAAO,CAAC,CAAC,EAC7B,IAAK,KAAK,KAAK,QACbA,EAAE,SAAS,EAAG,KAAK,QAAQ,CAAC,CAAC,EAC/B,IAAK,KAAK,KAAK,cACbA,EAAE,SAAS,EAAG,KAAK,cAAc,CAAC,CAAC,EACrC,IAAK,KAAK,KAAK,SACbA,EAAE,UAAU,EAAG,KAAK,SAAS,CAAC,CAAC,EACjC,IAAK,KAAK,KAAK,eACbA,EAAE,UAAU,EAAG,KAAK,eAAe,CAAC,CAAC,EACvC,IAAK,KAAK,KAAK,SAAU,CACvB,MAAMkG,EAAI,KAAK,SAAS,CAAC,EACzBlG,EAAE,UAAU,EAAGkG,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAClC,CACD,IAAK,KAAK,KAAK,eACblG,EAAE,UAAU,EAAG,KAAK,eAAe,CAAC,CAAC,EACvC,IAAK,KAAK,KAAK,UACbA,EAAE,WAAW,EAAG,KAAK,UAAU,CAAC,CAAC,EACnC,IAAK,KAAK,KAAK,UACbA,EAAE,WAAW,EAAG,KAAK,UAAU,CAAC,CAAC,EACnC,IAAK,KAAK,KAAK,UACbA,EAAE,WAAW,EAAG,KAAK,UAAU,CAAC,CAAC,EACnC,IAAK,KAAK,KAAK,aACbA,EAAE,cAAc,EAAG,KAAK,aAAa,CAAC,CAAC,EACzC,IAAK,KAAK,KAAK,UACbA,EAAE,UAAU,EAAG,KAAK,UAAU,CAAC,CAAC,EAClC,IAAK,KAAK,KAAK,cACbA,EAAE,YAAY,EAAG,KAAK,cAAc,CAAC,CAAC,EACxC,IAAK,KAAK,KAAK,aACbA,EAAE,aAAa,EAAG,KAAK,aAAa,CAAC,CAAC,EACxC,IAAK,KAAK,KAAK,aACbA,EAAE,aAAa,EAAG,KAAK,aAAa,CAAC,CAAC,EACxC,IAAK,KAAK,KAAK,gBACbA,EAAE,UAAU,EAAG,KAAK,gBAAgB,CAAC,CAAC,EACxC,IAAK,KAAK,KAAK,gBACbA,EAAE,UAAU,EAAG,KAAK,gBAAgB,CAAC,CAAC,EACxC,IAAK,KAAK,KAAK,gBACbA,EAAE,UAAU,EAAG,KAAK,gBAAgB,CAAC,CAAC,EACxC,IAAK,KAAK,KAAK,mBACbA,EAAE,UAAU,EAAG,KAAK,mBAAmB,CAAC,CAAC,EAC3C,IAAK,KAAK,KAAK,gBAAiB,CAC9B,MAAMkG,EAAI,KAAK,gBAAgB,CAAC,EAAE,UAAS,EAC3CA,GAAKlG,EAAE,kBAAkBkG,EAAG,CAAC,CAC9B,CACD,MAAMtF,EAAI+C,EAAE,UAAW,EAAEoC,EAAInF,EAAE,mBAC/B,GAAImF,EACF,IAAK,KAAK,KAAK,kBACbA,EAAE,KAAKnF,EAAG,EAAG,KAAK,kBAAkB,CAAC,CAAC,EAC1C,MAAMoF,EAAIpF,EAAE,kBACZ,GAAIoF,EACF,IAAK,KAAK,KAAK,iBACbA,EAAE,KAAKpF,EAAG,EAAG,KAAK,iBAAiB,CAAC,CAAC,EACzC,MAAMqF,EAAIrF,EAAE,iBACZ,GAAIqF,EACF,IAAK,KAAK,KAAK,gBACbA,EAAE,KAAKrF,EAAG,EAAG,KAAK,gBAAgB,CAAC,CAAC,CACzC,CACD,GAAIZ,GAAK,IAAMiJ,GAAK,CAAC,KAAK,UAAW,CACnC,MAAM,EAAI,EAAE,mBACZ,GAAK,EAAE,eAAiB,GAAK0mB,GAAG,EAAG3vB,CAAC,EACpC,MAAMY,EAAI,EAAE,4BACZ,GAAIA,GAAKA,EAAE,UAAW,CACpB,MAAMmF,EAAIhG,EAAI,EAAE,aAAe,KAAK,cACnCc,EAAI,EAAE,8BAAgC,MAAQA,EAAE,KAAKb,EAAG,CAAC,CAAC+F,EAAE,4BAA4B,CAC1F,CACF,CACD,KAAK,WAAW,EAAG/F,EAAG,CAAC,CACxB,CAKD,mBAAoB,CAClB,MAAM,EAAI,MAAM,oBAChB,UAAW,KAAK,KAAK,UACnB,EAAE,KAAK,KAAK,UAAU,CAAC,CAAC,EAC1B,UAAW,KAAK,KAAK,eAAgB,CACnC,MAAM,EAAI,KAAK,eAAe,CAAC,EAC/B,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAE,KAAK,EAAE,CAAC,CAAC,CACd,CACD,OAAO,CACR,CAMD,WAAW,EAAG,CACZ,GAAI,MAAM,WAAW,CAAC,EACpB,MAAO,GACT,UAAW,KAAK,KAAK,UACnB,GAAI,KAAK,UAAU,CAAC,IAAM,EACxB,MAAO,GACX,UAAW,KAAK,KAAK,eAAgB,CACnC,MAAM,EAAI,KAAK,eAAe,CAAC,EAC/B,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,GAAI,EAAE,CAAC,IAAM,EACX,MAAO,EACZ,CACD,MAAO,EACR,CAMD,MAAM,EAAG,CACP,MAAM,EAAIqT,GAAG,MAAM,IAAM,IAAI0rB,GAAG,EAAG,KAAK,SAAU,EAAE,KAAK,YAAa,KAAK,SAAU,KAAK,uBAAuB,EAAG,IAAI,EACxH,EAAE,KAAO,EAAG,EAAE,GAAK,EAAG,OAAO,EAAE,aAAe,WAAa,EAAE,YAAc,CAAE,GAAG,EAAE,WAAa,GAAG,KAAK,SAAW,CAAE,GAAG,KAAK,QAAU,EAAE,OAAO,KAAK,KAAK,QAAQ,EAAE,QAAS,GAAM,CAChL,MAAM,EAAI,KAAK,SAAS,CAAC,EACzB,MAAM,QAAQ,CAAC,IAAM,KAAK,SAAS,CAAC,EAAI,EAAE,MAAM,CAAC,EACvD,CAAK,EAAG,KAAK,QAAQ,OAAO,EAAE,OAAO,EACjC,UAAW,KAAK,KAAK,UACnB,EAAE,WAAW,EAAG,KAAK,UAAU,CAAC,CAAC,EACnC,UAAW,KAAK,KAAK,eACnB,EAAE,gBAAgB,EAAG,KAAK,eAAe,CAAC,CAAC,EAC7C,UAAW,KAAK,KAAK,kBACnB,EAAE,mBAAmB,EAAG,KAAK,kBAAkB,CAAC,CAAC,EACnD,UAAW,KAAK,KAAK,MACnB,EAAE,OAAO,EAAG,KAAK,MAAM,CAAC,CAAC,EAC3B,UAAW,KAAK,KAAK,OACnB,EAAE,QAAQ,EAAG,KAAK,OAAO,CAAC,CAAC,EAC7B,UAAW,KAAK,KAAK,QACnB,EAAE,SAAS,EAAG,KAAK,QAAQ,CAAC,CAAC,EAC/B,UAAW,KAAK,KAAK,cACnB,EAAE,UAAU,EAAG,KAAK,cAAc,CAAC,CAAC,EACtC,UAAW,KAAK,KAAK,SACnB,EAAE,UAAU,EAAG,KAAK,SAAS,CAAC,CAAC,EACjC,UAAW,KAAK,KAAK,eACnB,EAAE,eAAe,CAAC,EAAI,KAAK,eAAe,CAAC,EAC7C,UAAW,KAAK,KAAK,SACnB,EAAE,UAAU,EAAG,KAAK,SAAS,CAAC,CAAC,EACjC,UAAW,KAAK,KAAK,eACnB,EAAE,eAAe,CAAC,EAAI,KAAK,eAAe,CAAC,EAC7C,UAAW,KAAK,KAAK,UACnB,EAAE,WAAW,EAAG,KAAK,UAAU,CAAC,CAAC,EACnC,UAAW,KAAK,KAAK,UACnB,EAAE,WAAW,EAAG,KAAK,UAAU,CAAC,CAAC,EACnC,UAAW,KAAK,KAAK,UACnB,EAAE,WAAW,EAAG,KAAK,UAAU,CAAC,CAAC,EACnC,UAAW,KAAK,KAAK,aACnB,EAAE,cAAc,EAAG,KAAK,aAAa,CAAC,CAAC,EACzC,UAAW,KAAK,KAAK,mBACnB,EAAE,mBAAmB,CAAC,EAAI,KAAK,mBAAmB,CAAC,EACrD,UAAW,KAAK,KAAK,UACnB,EAAE,UAAU,EAAG,KAAK,UAAU,CAAC,CAAC,EAClC,UAAW,KAAK,KAAK,cACnB,EAAE,cAAc,CAAC,EAAI,KAAK,cAAc,CAAC,EAAE,QAC7C,UAAW,KAAK,KAAK,aACnB,EAAE,aAAa,EAAG,KAAK,aAAa,CAAC,CAAC,EACxC,UAAW,KAAK,KAAK,aACnB,EAAE,aAAa,EAAG,KAAK,aAAa,CAAC,CAAC,EACxC,UAAW,KAAK,KAAK,gBACnB,EAAE,UAAU,EAAG,KAAK,gBAAgB,CAAC,CAAC,EACxC,UAAW,KAAK,KAAK,gBACnB,EAAE,UAAU,EAAG,KAAK,gBAAgB,CAAC,CAAC,EACxC,UAAW,KAAK,KAAK,gBACnB,EAAE,UAAU,EAAG,KAAK,gBAAgB,CAAC,CAAC,EACxC,UAAW,KAAK,KAAK,gBACnB,EAAE,iBAAiB,EAAG,KAAK,gBAAgB,CAAC,CAAC,EAC/C,UAAW,KAAK,KAAK,iBACnB,EAAE,kBAAkB,EAAG,KAAK,iBAAiB,CAAC,CAAC,EACjD,UAAW,KAAK,KAAK,gBACnB,EAAE,iBAAiB,EAAG,KAAK,gBAAgB,CAAC,CAAC,EAC/C,OAAO,CACR,CAOD,QAAQ,EAAG,EAAG,EAAG,CACf,GAAI,EAAG,CACL,IAAI,EACJ,IAAK,KAAK,KAAK,UACb,KAAK,UAAU,CAAC,EAAE,QAAO,EAC3B,IAAK,KAAK,KAAK,eAAgB,CAC7B,MAAMh/B,EAAI,KAAK,eAAe,CAAC,EAC/B,QAASC,EAAI,EAAGA,EAAID,EAAE,OAAQC,IAC5BD,EAAEC,CAAC,EAAE,SACR,CACF,CACD,KAAK,UAAY,GAAI,MAAM,QAAQ,EAAG,EAAG,CAAC,CAC3C,CAKD,WAAY,CACV,MAAM,EAAIqT,GAAG,UAAU,IAAI,EAC3B,EAAE,WAAa,yBAA0B,EAAE,SAAW,KAAK,SAAU,EAAE,QAAU,KAAK,SAAU,EAAE,WAAa,KAAK,YAAa,EAAE,uBAAyB,KAAK,wBACjK,IAAI,EACJ,EAAE,QAAU,KAAK,QAAQ,UAAS,EAAI,EAAE,SAAW,GACnD,IAAK,KAAK,KAAK,UACb,EAAE,SAAS,CAAC,EAAI,KAAK,UAAU,CAAC,EAAE,YACpC,EAAE,cAAgB,GAClB,IAAK,KAAK,KAAK,eAAgB,CAC7B,EAAE,cAAc,CAAC,EAAI,GACrB,MAAM,EAAI,KAAK,eAAe,CAAC,EAC/B,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAE,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAS,CAAE,CAC3C,CACD,EAAE,KAAO,GACT,IAAK,KAAK,KAAK,MACb,EAAE,KAAK,CAAC,EAAI,KAAK,MAAM,CAAC,EAC1B,EAAE,MAAQ,GACV,IAAK,KAAK,KAAK,OACb,EAAE,MAAM,CAAC,EAAI,KAAK,OAAO,CAAC,EAC5B,EAAE,OAAS,GACX,IAAK,KAAK,KAAK,QACb,EAAE,OAAO,CAAC,EAAI,KAAK,QAAQ,CAAC,EAC9B,EAAE,aAAe,GACjB,IAAK,KAAK,KAAK,cACb,EAAE,aAAa,CAAC,EAAI,KAAK,cAAc,CAAC,EAC1C,EAAE,QAAU,GACZ,IAAK,KAAK,KAAK,SACb,EAAE,QAAQ,CAAC,EAAI,KAAK,SAAS,CAAC,EAAE,UAClC,EAAE,cAAgB,GAClB,IAAK,KAAK,KAAK,eACb,EAAE,cAAc,CAAC,EAAI,KAAK,eAAe,CAAC,EAC5C,EAAE,QAAU,GACZ,IAAK,KAAK,KAAK,SACb,EAAE,QAAQ,CAAC,EAAI,KAAK,SAAS,CAAC,EAAE,UAClC,EAAE,cAAgB,GAClB,IAAK,KAAK,KAAK,eACb,EAAE,cAAc,CAAC,EAAI,KAAK,eAAe,CAAC,EAC5C,EAAE,SAAW,GACb,IAAK,KAAK,KAAK,UACb,EAAE,SAAS,CAAC,EAAI,KAAK,UAAU,CAAC,EAAE,UACpC,EAAE,SAAW,GACb,IAAK,KAAK,KAAK,UACb,EAAE,SAAS,CAAC,EAAI,KAAK,UAAU,CAAC,EAAE,UACpC,EAAE,SAAW,GACb,IAAK,KAAK,KAAK,UACb,EAAE,SAAS,CAAC,EAAI,KAAK,UAAU,CAAC,EAAE,UACpC,EAAE,YAAc,GAChB,IAAK,KAAK,KAAK,aACb,EAAE,YAAY,CAAC,EAAI,KAAK,aAAa,CAAC,EAAE,UAC1C,EAAE,SAAW,GACb,IAAK,KAAK,KAAK,UACb,EAAE,SAAS,CAAC,EAAI,KAAK,UAAU,CAAC,EAAE,UACpC,EAAE,YAAc,GAChB,IAAK,KAAK,KAAK,cACb,EAAE,YAAY,CAAC,EAAI,KAAK,cAAc,CAAC,EACzC,EAAE,YAAc,GAChB,IAAK,KAAK,KAAK,aACb,EAAE,YAAY,CAAC,EAAI,KAAK,aAAa,CAAC,EACxC,EAAE,YAAc,GAChB,IAAK,KAAK,KAAK,aACb,EAAE,YAAY,CAAC,EAAI,KAAK,aAAa,CAAC,EACxC,EAAE,eAAiB,GACnB,IAAK,KAAK,KAAK,gBACb,EAAE,eAAe,CAAC,EAAI,KAAK,gBAAgB,CAAC,EAC9C,EAAE,eAAiB,GACnB,IAAK,KAAK,KAAK,gBACb,EAAE,eAAe,CAAC,EAAI,KAAK,gBAAgB,CAAC,EAC9C,EAAE,eAAiB,GACnB,IAAK,KAAK,KAAK,gBACb,EAAE,eAAe,CAAC,EAAI,KAAK,gBAAgB,CAAC,EAC9C,EAAE,kBAAoB,GACtB,IAAK,KAAK,KAAK,mBACb,EAAE,kBAAkB,CAAC,EAAI,KAAK,mBAAmB,CAAC,EACpD,OAAO,CACR,CAQD,OAAO,MAAM,EAAG,EAAG,EAAG,CACpB,MAAM,EAAIA,GAAG,MAAM,IAAM,IAAI0rB,GAAG,EAAE,KAAM,EAAG,EAAE,WAAY,EAAE,QAAS,EAAE,sBAAsB,EAAG,EAAG,EAAG,CAAC,EACtG,IAAIh/B,EACJ,EAAE,SAAW,EAAE,QAAQ,MAAM,EAAE,QAAS,EAAG,CAAC,EAC5C,IAAKA,KAAK,EAAE,SACV,EAAE,WAAWA,EAAG8jB,GAAE,MAAM,EAAE,SAAS9jB,CAAC,EAAG,EAAG,CAAC,CAAC,EAC9C,IAAKA,KAAK,EAAE,cAAe,CACzB,MAAMC,EAAI,EAAE,cAAcD,CAAC,EAAG,EAAI,GAClC,QAAS,EAAI,EAAG,EAAIC,EAAE,OAAQ,IAC5B,EAAE,KAAK6jB,GAAE,MAAM7jB,EAAE,CAAC,EAAG,EAAG,CAAC,CAAC,EAC5B,EAAE,gBAAgBD,EAAG,CAAC,CACvB,CACD,IAAKA,KAAK,EAAE,KACV,EAAE,OAAOA,EAAG,EAAE,KAAKA,CAAC,CAAC,EACvB,IAAKA,KAAK,EAAE,MACV,EAAE,QAAQA,EAAG,EAAE,MAAMA,CAAC,CAAC,EACzB,IAAKA,KAAK,EAAE,OACV,EAAE,SAASA,EAAG,EAAE,OAAOA,CAAC,CAAC,EAC3B,IAAKA,KAAK,EAAE,aACV,EAAE,UAAUA,EAAG,EAAE,aAAaA,CAAC,CAAC,EAClC,IAAKA,KAAK,EAAE,QACV,EAAE,UAAUA,EAAGiT,GAAG,UAAU,EAAE,QAAQjT,CAAC,CAAC,CAAC,EAC3C,IAAKA,KAAK,EAAE,cAAe,CACzB,MAAMC,EAAI,EAAE,cAAcD,CAAC,EAAE,OAAO,CAAC,EAAG,EAAG,KAAO,EAAI,IAAM,EAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAI,EAAE,EAAE,OAAS,CAAC,EAAE,KAAK,CAAC,EAAG,GAAI,EAAE,EAAE,IAAK,GAAMiT,GAAG,UAAU,CAAC,CAAC,EACzI,EAAE,eAAejT,EAAGC,CAAC,CACtB,CACD,IAAKD,KAAK,EAAE,QACV,EAAE,UAAUA,EAAGkT,GAAG,UAAU,EAAE,QAAQlT,CAAC,CAAC,CAAC,EAC3C,IAAKA,KAAK,EAAE,cAAe,CACzB,MAAMC,EAAI,EAAE,cAAcD,CAAC,EAAE,OAAO,CAAC,EAAG,EAAG,KAAO,EAAI,IAAM,EAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAI,EAAE,EAAE,OAAS,CAAC,EAAE,KAAK,CAAC,EAAG,GAAI,EAAE,EAAE,IAAK,GAAMkT,GAAG,UAAU,CAAC,CAAC,EACzI,EAAE,eAAelT,EAAGC,CAAC,CACtB,CACD,IAAKD,KAAK,EAAE,SACV,EAAE,WAAWA,EAAGuP,GAAE,UAAU,EAAE,SAASvP,CAAC,CAAC,CAAC,EAC5C,IAAKA,KAAK,EAAE,SACV,EAAE,WAAWA,EAAGwP,EAAE,UAAU,EAAE,SAASxP,CAAC,CAAC,CAAC,EAC5C,IAAKA,KAAK,EAAE,SACV,EAAE,WAAWA,EAAGiQ,GAAG,UAAU,EAAE,SAASjQ,CAAC,CAAC,CAAC,EAC7C,IAAKA,KAAK,EAAE,YACV,EAAE,cAAcA,EAAGyP,GAAG,UAAU,EAAE,YAAYzP,CAAC,CAAC,CAAC,EACnD,IAAKA,KAAK,EAAE,SACV,EAAE,UAAUA,EAAG4P,EAAE,UAAU,EAAE,SAAS5P,CAAC,CAAC,CAAC,EAC3C,IAAKA,KAAK,EAAE,YACV,EAAE,cAAcA,CAAC,EAAI,IAAI,aAAa,EAAE,YAAYA,CAAC,CAAC,EACxD,IAAKA,KAAK,EAAE,YACV,EAAE,aAAaA,EAAG,EAAE,YAAYA,CAAC,CAAC,EACpC,IAAKA,KAAK,EAAE,YACV,EAAE,aAAaA,EAAG,EAAE,YAAYA,CAAC,CAAC,EACpC,IAAKA,KAAK,EAAE,eACV,EAAE,UAAUA,EAAG,EAAE,eAAeA,CAAC,CAAC,EACpC,IAAKA,KAAK,EAAE,eACV,EAAE,UAAUA,EAAG,EAAE,eAAeA,CAAC,CAAC,EACpC,IAAKA,KAAK,EAAE,eACV,EAAE,UAAUA,EAAG,EAAE,eAAeA,CAAC,CAAC,EACpC,IAAKA,KAAK,EAAE,kBACV,EAAE,UAAUA,EAAG,EAAE,kBAAkBA,CAAC,CAAC,EACvC,OAAO,CACR,CASD,OAAO,mBAAmB,EAAG,EAAG,EAAG,EAAI,GAAI,CACzC,OAAO,IAAI,QAAQ,CAACA,EAAGC,IAAM,CAC3B,MAAM,EAAI,IAAI8K,GACd,EAAE,iBAAiB,mBAAoB,IAAM,CAC3C,GAAI,EAAE,YAAc,EAClB,GAAI,EAAE,QAAU,IAAK,CACnB,MAAM,EAAI,KAAK,MAAM,EAAE,YAAY,EAAG,EAAI,KAAK,MAAM,EAAG,GAAKrK,GAAG,iBAAkB,CAAC,EACnF,IAAM,EAAE,KAAO,GAAIV,EAAE,CAAC,CACvB,MACCC,EAAE,mCAAmC,CACjD,CAAO,EAAG,EAAE,KAAK,MAAO,CAAC,EAAG,EAAE,MAC9B,CAAK,CACF,CAQD,OAAO,sBAAsB,EAAG,EAAG,EAAI,GAAI,CACzC,OAAO,IAAI,QAAQ,CAAC,EAAGD,IAAM,CAC3B,MAAMC,EAAI,IAAI8K,GACd9K,EAAE,iBAAiB,mBAAoB,IAAM,CAC3C,GAAIA,EAAE,YAAc,EAClB,GAAIA,EAAE,QAAU,IAAK,CACnB,MAAM,EAAI,KAAK,MAAM,KAAK,MAAMA,EAAE,YAAY,EAAE,WAAW,EAAG,EAAI,KAAK,MAAM,EAAE,cAAc,EAAG,EAAI,KAAK,MAAM,EAAG,GAAKS,GAAG,iBAAkB,CAAC,EAC7I,EAAE,UAAY,EAAG,EAAE,CAAC,CACrB,MACCV,EAAE,8BAAgC,CAAC,CAC/C,CAAO,EAAGC,EAAE,KAAK,MAAO,KAAK,WAAa,IAAM,EAAE,QAAQ,KAAM,GAAG,CAAC,EAAGA,EAAE,KAAI,CAC7E,CAAK,CACF,CACH,EACA++B,GAAG,WAAa,gCAChBA,GAAG,uBAAyBA,GAAG,sBAC/B3xB,GAAE,yBAA0B2xB,EAAE,EAC9B,MAAME,IAAK,+BAAgCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBhD37B,GAAE,qBAAqB07B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,yBAA0BC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgB1C77B,GAAE,qBAAqB47B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,oBAAqBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4BrC/7B,GAAE,qBAAqB87B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,cAAeC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/Bj8B,GAAE,qBAAqBg8B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,mBAAoBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAoBpCn8B,GAAE,aAAak8B,GAAE,EAAIC,IACrB,MAAMC,IAAK,mBAAoBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBpCr8B,GAAE,qBAAqBo8B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,kCAAmCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUnDv8B,GAAE,qBAAqBs8B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,6BAA8BC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmB9Cz8B,GAAE,qBAAqBw8B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,uBAAwBC,IAAK;AAAA;AAAA;AAAA,EAIxC38B,GAAE,qBAAqB08B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,uBAAwBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBxC78B,GAAE,qBAAqB48B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,kBAAmBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBnC/8B,GAAE,qBAAqB88B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,cAAeC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsD/Bj9B,GAAE,qBAAqBg9B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,uBAAwBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgCxCn9B,GAAE,qBAAqBk9B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,kBAAmBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBnCr9B,GAAE,qBAAqBo9B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,YAAaC,IAAK;AAAA;AAAA;AAAA,EAI7Bv9B,GAAE,qBAAqBs9B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,oBAAqBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcrCz9B,GAAE,qBAAqBw9B,GAAE,EAAIC,IAC7B,MAAMC,IAAK,oBAAqBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAoCrC39B,GAAE,aAAa09B,GAAE,EAAIC,IACrBlP,GAAE,iBAAmB,CAAC5xB,EAAG,IAAM+gC,GAAG,MAAM/gC,EAAG,CAAC,SAC5C,MAAM+gC,WAAWnP,EAAE,CACjB,kBAAkB,EAAG,CACnB,OAAO,EAAE,aAAc,IAAK,gBAC7B,CAcD,YAAY,EAAG,EAAI,KAAM,EAAI,KAAM,EAAI,KAAMjyB,EAAGC,EAAG,EAAG,EAAG,CACvD,MAAM,EAAG,EAAG,EAAG,EAAGD,CAAC,EAAG,KAAK,eAAiBC,EAAG,KAAK,eAAiB,EAAG,KAAK,MAAQ,IAAIgT,GAAG,EAAG,EAAG,CAAC,EAAG,KAAK,MAAQ,EAAG,IAAM,KAAK,MAAQ,EAAE,MAAM,MAAO,EAAE,KAAK,MAAQ,EAAE,MAAO,KAAK,eAAiB,EAAE,eAAgB,KAAK,eAAiB,EAAE,gBAAiB,KAAK,sBAAwB,GAC9R,MAAM,EAAI,CAAE,EAAE,EAAI,CAChB,WAAY,CAACgB,EAAE,YAAY,EAC3B,SAAU,CAAC,QAAS,gBAAgB,EACpC,kBAAmB,GACnB,QAAS,EACT,aAAc,IACpB,EACI,IAAM,GAAK,EAAE,kBAAoB,GAAK,EAAE,QAAQ,KAAK,qBAAqB,EAAGhU,GAAK,EAAE,QAAQ,KAAK,qBAAqB,EAAG,EAAE,WAAW,KAAKgU,EAAE,SAAS,IAAM,EAAE,SAAS,KAAK,OAAO,EAAG,KAAK,QAAU,IAAIf,IAAO,EAAI,KAAK,SAAW,GAAK,KAAK,SAAW,IAAI8rB,GAAG,cAAe,KAAK,SAAQ,EAAI,QAAS,EAAG,EAAE,EAAG,KAAK,SAAS,eAAiB,GACjV,CACD,SAAU,CACR,OAAO,KAAK,cAAc,QAAQ,KAAM,CAAC,CAAC,KAAK,8BAAgC,KAAK,gBAAgB,EAAI,MAAM,QAAS,EAAG,EAC3H,CAID,cAAe,CACb,MAAO,WACR,CAID,IAAI,UAAW,CACb,OAAO,KAAK,aACb,CAID,IAAI,SAAS,EAAG,CACd,KAAK,cAAgB,EAAG,KAAK,cAAc,SAAWxN,GAAG,gBAC1D,CAID,IAAI,iBAAkB,CACpB,MAAO,EACR,CACD,IAAI,gBAAgB,EAAG,CACtB,CAID,MAAM,EAAG,EAAG,CACV,GAAI,CAAC,KAAK,UACR,OAAO,KACT,MAAM,EAAI,KAAK,YAAc,KAAO,KAAK,UAAU,iBACnD,GAAI,CAAC,KAAK,8BAAgC,KAAK,iBAAmB,KAAK,UAAU,MAAM,EAAG,CAAC,EAAI,KAAK,UAAU,MAAM,EAAG,EAAG,KAAK,6BAA6B,cAAe,KAAK,6BAA6B,kBAAkB,EAAG,CAAC,KAAK,gBAAkB,KAAK,kBAAkB,KAAK,aAAa,EAAG,CACpS,KAAM,CAAE,EAAG,EAAG,EAAGxxB,EAAG,EAAGC,CAAC,EAAK,KAAK,MAClC,KAAK,QAAQ,IAAI,EAAGD,EAAGC,EAAG,KAAK,KAAK,EAAG,KAAK,cAAc,UAAU,QAAS,KAAK,OAAO,CAC1F,CACD,OAAO,IACR,CAID,MAAM,EAAG,EAAG,EAAG,CACb,GAAI,CAAC,KAAK,WAAa,CAAC,KAAK,UAAU,oBAAsB,CAAC,KAAK,YAAc,CAAC,KAAK,UAAU,eAAgB,EAC/G,OAAO,KACT,MAAM,EAAI,KAAK,SAAU,EAAC,UAAS,EACnC,OAAO,KAAK,WAAa,EAAE,eAAeuxB,GAAG,iBAAkB,EAAE,cAAe,EAAE,cAAe,CAAC,EAAI,EAAE,iBAAiBA,GAAG,iBAAkB,EAAE,WAAY,EAAE,WAAY,CAAC,EAAG,IAC/K,CAQD,QAAQ,EAAG,EAAI,GAAI,EAAG,CACpB,GAAK,KAAK,cAAc,QAAQ,GAAI,GAAI,EAAE,EAAG,MAAM,QAAQ,CAAC,CAC7D,CAQD,MAAM,EAAG,EAAI,KAAM,EAAG,CACpB,OAAO,IAAI4P,GAAG,EAAG,KAAK,SAAQ,EAAI,EAAG,KAAM,CAAC,CAC7C,CAOD,eAAe,EAAG,CAChB,MAAM,EAAI,IAAIC,GAAG,EAAG,IAAI,EACxB,GAAI,KAAK,iBAAkB,CACzB,EAAE,iBAAmB,GACrB,UAAW,KAAK,KAAK,iBACnB,EAAE,iBAAiB,CAAC,EAAI,KAAK,iBAAiB,CAAC,CAClD,CACD,OAAO,CACR,CAKD,UAAU,EAAG,CACX,MAAM,UAAU,CAAC,EAAG,EAAE,MAAQ,KAAK,MAAM,QAAO,EAAI,EAAE,MAAQ,KAAK,KACpE,CAOD,OAAO,MAAM,EAAG,EAAG,CACjB,MAAM,EAAI,IAAID,GAAG,EAAE,KAAM,CAAC,EAC1B,OAAO,EAAE,MAAQnuB,GAAG,UAAU,EAAE,KAAK,EAAG,EAAE,MAAQ,EAAE,MAAO,CAC5D,CACH,KACA,cAAiB4rB,EAAG,CAClB,YAAY,EAAG,EAAG,CAChB,MAAM,EAAG,CAAC,EAAG,KAAK,sBAAwB,EAAE,qBAC7C,CAID,cAAe,CACb,MAAO,oBACR,CACH,EACA,SAASyC,GAAGjhC,EAAG,CACb,MAAM,EAAI,CAAE,EAAE,EAAI,GAAI,EAAIA,EAAE,MAAO,EAAIA,EAAE,OAAQL,EAAI,GACrD,IAAIC,EAAI,EACR,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,CACjC,MAAM,EAAI,EAAE,CAAC,EACb,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,CACjC,KAAM,CAAE,EAAG,EAAG,EAAG,EAAG,EAAGY,CAAG,EAAG,EAAE,CAAC,EAChC,GAAI,EAAE,KAAK,EAAG,EAAGA,CAAC,EAAG,EAAG,CACtB,MAAMmF,EAAI,EAAE,CAAC,EAAG,CAAE,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,CAAC,EAAKJ,EAAE,CAAC,EAChDhG,EAAE,KAAKiG,EAAGC,EAAGC,EAAGC,CAAC,CAClB,CACD,EAAI,IAAM,EAAE,KAAKnG,EAAI,CAAC,EAAG,EAAE,KAAKA,CAAC,GAAIA,GACtC,CACF,CACD,MAAM,EAAI,IAAI2tB,GACd,OAAO,EAAE,QAAU,EAAG,EAAE,UAAY,EAAG,IAAM,EAAE,OAAS5tB,GAAI,CAC9D,CACA,SAASuhC,GAAGlhC,EAAG,CACb,MAAM,EAAIA,EAAE,UAAY,EAAG,EAAIA,EAAE,SAAW,EAAG,EAAIA,EAAE,QAAU,IAAK,EAAIA,EAAE,OAAQL,EAAI,GAAIC,EAAI,GAAI,EAAIuP,EAAE,KAAI,EAC5G,IAAI,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG3O,EAAI,EAAGmF,EAAI,EAClD,IAAKA,EAAI,EAAGA,EAAI,EAAE,OAAS,EAAGA,IAC5B,EAAEA,EAAI,CAAC,EAAE,cAAc,EAAEA,CAAC,EAAG,CAAC,EAAG,GAAK,EAAE,OAAM,EAChD,IAAK,EAAI,EAAI,EAAG,EAAI,EAAI,GAAK,EAAI,GAAIA,EAAI,EAAGA,EAAI,EAAE,OAAS,EAAGA,IAAK,CACjE,EAAEA,EAAI,CAAC,EAAE,cAAc,EAAEA,CAAC,EAAG,CAAC,EAAG,EAAI,KAAK,MAAM,EAAE,OAAM,EAAK,CAAC,EAAG,EAAE,YACnE,QAASE,EAAI,EAAGA,EAAI,EAAGA,IACrB,EAAI,EAAIA,EAAGlG,EAAE,KAAK,EAAEgG,CAAC,EAAE,EAAI,EAAI,EAAE,EAAG,EAAEA,CAAC,EAAE,EAAI,EAAI,EAAE,EAAG,EAAEA,CAAC,EAAE,EAAI,EAAI,EAAE,CAAC,EAAGhG,EAAE,KAAK,EAAEgG,CAAC,EAAE,GAAK,EAAI,GAAK,EAAE,EAAG,EAAEA,CAAC,EAAE,GAAK,EAAI,GAAK,EAAE,EAAG,EAAEA,CAAC,EAAE,GAAK,EAAI,GAAK,EAAE,CAAC,EAAG/F,EAAE,KAAKY,EAAGA,EAAI,CAAC,EAAGA,GAAK,CACnL,CACD,MAAMoF,EAAI,IAAI2nB,GACd,OAAO3nB,EAAE,UAAYjG,EAAGiG,EAAE,QAAUhG,EAAGgG,CACzC,CACA,SAASu7B,GAAGnhC,EAAG,EAAG,EAAI,KAAM,CAC1B,MAAM,EAAI,EAAE,SAAU,EAAI,EAAE,MAAOL,EAAI,EAAE,OACzC,GAAI,EAAG,CACL,MAAMsC,EAAI,EAAE,gBAAgB2R,EAAE,YAAY,EAC1C,IAAI/K,EAAGpI,EACPd,IAAMkJ,EAAI,EAAE,gBAAgB+K,EAAE,SAAS,GACvC,IAAIrT,EAAI,EAAGC,EAAI,EACf,QAASmF,EAAI,EAAGA,EAAI,EAAE,OAAQA,IAAK,CACjC,MAAMC,EAAI,EAAED,CAAC,EACb,QAASE,EAAI,EAAGA,EAAID,EAAE,OAAQC,IAC5B5D,EAAE1B,CAAC,EAAIqF,EAAEC,CAAC,EAAE,EAAG5D,EAAE1B,EAAI,CAAC,EAAIqF,EAAEC,CAAC,EAAE,EAAG5D,EAAE1B,EAAI,CAAC,EAAIqF,EAAEC,CAAC,EAAE,EAAGlG,GAAKkJ,IAAMpI,EAAId,EAAEgG,CAAC,EAAGkD,EAAErI,CAAC,EAAIC,EAAEoF,CAAC,EAAE,EAAGgD,EAAErI,EAAI,CAAC,EAAIC,EAAEoF,CAAC,EAAE,EAAGgD,EAAErI,EAAI,CAAC,EAAIC,EAAEoF,CAAC,EAAE,EAAGgD,EAAErI,EAAI,CAAC,EAAIC,EAAEoF,CAAC,EAAE,EAAGrF,GAAK,GAAID,GAAK,CACnK,CACD,OAAO,EAAE,mBAAmBqT,EAAE,aAAc3R,EAAG,GAAI,EAAE,EAAGtC,GAAKkJ,GAAK,EAAE,mBAAmB+K,EAAE,UAAW/K,EAAG,GAAI,EAAE,EAAG,CACjH,CACD,MAAMjJ,EAAI,CAAC,CAACD,EAAG,EAAI,IAAIohC,GAAG/gC,EAAG,EAAG,KAAM,OAAQ,OAAQJ,EAAG,EAAE,eAAgB,EAAE,QAAQ,EACrF,OAAOqhC,GAAG,CAAC,EAAE,YAAY,EAAG,EAAE,SAAS,EAAG,CAC5C,CACA,SAASG,GAAGphC,EAAG,EAAG,EAAI,KAAM,CAC1B,MAAM,EAAI,EAAE,OAAS,CAAC,EAAE,MAAM,EAAI,KAClC,OAAOmhC,GAAGnhC,EAAG,CAAE,MAAO,CAAC,EAAE,MAAM,EAAG,UAAW,EAAE,UAAW,SAAU,EAAE,SAAU,OAAQ,EAAG,eAAgB,EAAE,eAAgB,SAAU,EAAE,QAAU,EAAE,CAAC,CACxJ,CACA,SAASqhC,GAAGrhC,EAAG,EAAG,EAAI,KAAM,CAC1B,MAAM,EAAI,EAAE,OAAQ,EAAI,EAAE,SAAUL,EAAI,EAAE,SAAW,EAAGC,EAAI,EAAE,UAAY,EAC1E,GAAI,EAAG,CACL,MAAMqC,EAAK4G,GAAM,CACf,MAAMpI,EAAI0O,EAAE,KAAI,EAAI5O,EAAIsI,EAAE,OAAS,EACnC,IAAIrI,EAAI,EAAGmF,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGoB,EAAI,EAAG2V,EAAI,EACzD,IAAK3V,EAAI,EAAGA,EAAI,EAAE,OAAS,EAAGA,IAC5B,EAAEA,EAAI,CAAC,EAAE,cAAc,EAAEA,CAAC,EAAG1G,CAAC,EAAGD,GAAKC,EAAE,OAAM,EAChDmF,EAAIpF,EAAID,EACR,MAAM6G,EAAI,EAAE,qBAAqB,SAAUC,EAAI,EAAE,qBAAqB,QACtE,IAAKxB,EAAIuB,EAAIxB,GAAKwB,EAAIC,GAAIF,EAAI,EAAGA,EAAI,EAAE,OAAS,EAAGA,IACjD,IAAK,EAAEA,EAAI,CAAC,EAAE,cAAc,EAAEA,CAAC,EAAG1G,CAAC,EAAGkF,EAAI,KAAK,MAAMlF,EAAE,SAAWmF,CAAC,EAAGnF,EAAE,UAAW,EAAEqc,EAAI,EAAGA,EAAInX,GAAKI,EAAI8C,EAAE,QACzG/C,EAAIF,EAAIkX,EAAGjU,EAAE9C,CAAC,EAAI,EAAEoB,CAAC,EAAE,EAAIrB,EAAIrF,EAAE,EAAGoI,EAAE9C,EAAI,CAAC,EAAI,EAAEoB,CAAC,EAAE,EAAIrB,EAAIrF,EAAE,EAAGoI,EAAE9C,EAAI,CAAC,EAAI,EAAEoB,CAAC,EAAE,EAAIrB,EAAIrF,EAAE,EAAGoI,EAAE9C,EAAI,CAAC,EAAI,EAAEoB,CAAC,EAAE,GAAKrB,EAAID,GAAKpF,EAAE,EAAGoI,EAAE9C,EAAI,CAAC,EAAI,EAAEoB,CAAC,EAAE,GAAKrB,EAAID,GAAKpF,EAAE,EAAGoI,EAAE9C,EAAI,CAAC,EAAI,EAAEoB,CAAC,EAAE,GAAKrB,EAAID,GAAKpF,EAAE,EAAGsF,GAAK,EAAG+W,IACnN,KAAO/W,EAAI8C,EAAE,QACXA,EAAE9C,CAAC,EAAI,EAAEoB,CAAC,EAAE,EAAG0B,EAAE9C,EAAI,CAAC,EAAI,EAAEoB,CAAC,EAAE,EAAG0B,EAAE9C,EAAI,CAAC,EAAI,EAAEoB,CAAC,EAAE,EAAGpB,GAAK,CAClE,EACI,OAAQ,EAAE,QAAU,EAAE,UAAY,EAAE,SAAW,EAAE,gBAAkB,EAAE,WAAaxD,EAAE,KAAK,+HAA+H,EAAG,EAAE,oBAAoBN,EAAG,EAAE,EAAG,CAC1P,CACD,MAAM,EAAI,IAAI8+B,GAAG/gC,EAAG,EAAG,KAAM,OAAQ,OAAQ,OAAQ,EAAE,eAAgB,EAAE,QAAQ,EACjF,OAAOkhC,GAAG,CAAC,EAAE,YAAY,EAAG,EAAE,SAAS,EAAG,EAAE,qBAAuB,IAAI7E,GAAM,EAAE,qBAAqB,SAAWz8B,EAAG,EAAE,qBAAqB,QAAUD,EAAG,CACxJ,CACK,MAAC2hC,IAAK,CACT,kBAAmBD,GACnB,iBAAkBF,GAClB,YAAaC,EACf,EACA7T,GAAG,iBAAmB0T,GACtB1T,GAAG,kBAAoB2T,GACvBtP,GAAE,YAAc,CAAC5xB,EAAG,EAAG,EAAI,KAAM,EAAI,GAAI,EAAI,OAASohC,GAAGphC,EAAG,CAC1D,OAAQ,EACR,UAAW,EACX,SAAU,CACZ,EAAG,CAAC,EACJ4xB,GAAE,kBAAoB,CAAC5xB,EAAG,EAAG,EAAG,EAAG,EAAGL,EAAI,KAAMC,EAAG,IAAMyhC,GAAGrhC,EAAG,CAC7D,OAAQ,EACR,SAAU,EACV,QAAS,EACT,OAAQ,EACR,UAAWJ,EACX,SAAU,CACZ,EAAGD,CAAC,UACJ,cAAiBuP,EAAE,CACjB,YAAY,EAAG,EAAG,CAChB,MAAM,EAAE,EAAG,EAAE,CAAC,EAAG,KAAK,MAAQ,CAC/B,CACH,EACAqyB,GAAA,KAAS,CACP,aAAc,CACZ,KAAK,SAAW,EACjB,CACD,IAAI,EAAG,CACL,MAAM,EAAI,GACV,OAAO,EAAE,QAAS,GAAM,CACtB,MAAM,EAAI,IAAIC,IAAG,EAAG,KAAK,SAAS,MAAM,EACxC,EAAE,KAAK,CAAC,EAAG,KAAK,SAAS,KAAK,CAAC,CAChC,GAAG,CACL,CACD,eAAgB,CACd,MAAM,EAAI,IAAItyB,GAAE,KAAK,SAAS,CAAC,EAAE,EAAG,KAAK,SAAS,CAAC,EAAE,CAAC,EAAG,EAAI,IAAIA,GAAE,KAAK,SAAS,CAAC,EAAE,EAAG,KAAK,SAAS,CAAC,EAAE,CAAC,EACzG,OAAO,KAAK,SAAS,QAAS,GAAM,CAClC,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,IAAM,EAAE,EAAI,EAAE,GAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,IAAM,EAAE,EAAI,EAAE,EACtG,CAAK,EAAG,CACF,IAAK,EACL,IAAK,EACL,MAAO,EAAE,EAAI,EAAE,EACf,OAAQ,EAAE,EAAI,EAAE,CACtB,CACG,CACH,EACAuyB,IAAA,KAAS,CASP,OAAO,UAAU,EAAG,EAAG,EAAG,EAAG,CAC3B,MAAO,CAAC,IAAIvyB,GAAE,EAAG,CAAC,EAAG,IAAIA,GAAE,EAAG,CAAC,EAAG,IAAIA,GAAE,EAAG,CAAC,EAAG,IAAIA,GAAE,EAAG,CAAC,CAAC,CAC3D,CASD,OAAO,OAAO,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,GAAI,CACrC,MAAMvP,EAAI,GACV,IAAIC,EAAI,EACR,MAAM,EAAI,KAAK,GAAK,EAAI,EACxB,QAAS,EAAI,EAAG,EAAI,EAAG,IACrBD,EAAE,KAAK,IAAIuP,GAAE,EAAI,KAAK,IAAItP,CAAC,EAAI,EAAG,EAAI,KAAK,IAAIA,CAAC,EAAI,CAAC,CAAC,EAAGA,GAAK,EAChE,OAAOD,CACR,CAMD,OAAO,MAAM,EAAG,CACd,MAAM,EAAI,EAAE,MAAM,aAAa,EAAE,IAAI,UAAU,EAAE,OAAQA,GAAM,CAAC,MAAMA,CAAC,CAAC,EACxE,IAAI,EACJ,MAAM,EAAI,GACV,IAAK,EAAI,EAAG,GAAK,EAAE,OAAS,YAAa,GAAK,EAC5C,EAAE,KAAK,IAAIuP,GAAE,EAAE,CAAC,EAAG,EAAE,EAAI,CAAC,CAAC,CAAC,EAC9B,OAAO,CACR,CAOD,OAAO,WAAW,EAAG,EAAG,CACtB,OAAO2J,GAAG,WAAW,EAAG,CAAC,CAC1B,CACH,EACA6oB,IAAA,KAAS,CACP,aAAa,EAAG,CACd,UAAW,KAAK,EACd,KAAK,SAAS,KAAK,EAAE,EAAG,EAAE,CAAC,CAC9B,CAQD,YAAY,EAAG,EAAG,EAAG,EAAI,OAAQ,CAC/B,KAAK,QAAU,IAAIC,GAAM,KAAK,eAAiB,IAAIA,GAAM,KAAK,OAAS,IAAI,MAAS,KAAK,SAAW,IAAI,MAAS,KAAK,QAAU,IAAI,MAAS,KAAK,UAAY,EAAG,KAAK,MAAQ,EAAG,KAAK,OAAS,GAAKthC,GAAG,iBACvM,IAAIV,EACJ,aAAakZ,GAAKlZ,EAAI,EAAE,UAAS,EAAKA,EAAI,EAAG,KAAK,aAAaA,CAAC,EAAG,KAAK,QAAQ,IAAIA,CAAC,EAAG,KAAK,eAAe,IAAIA,CAAC,EAAG,OAAO,KAAK,UAAY,KAAO4C,EAAE,KAAK,sDAAsD,CACjN,CAMD,QAAQ,EAAG,CACT,KAAK,QAAQ,IAAI,CAAC,EAClB,MAAM,EAAI,IAAIo/B,GACd,OAAO,EAAE,IAAI,CAAC,EAAG,KAAK,OAAO,KAAK,CAAC,EAAG,KAAK,QAAQ,KAAK,KAAK,SAAS,OAAS,CAAC,EAAG,KAAK,aAAa,CAAC,EAAG,IAC1G,CAQD,MAAM,EAAI,GAAI,EAAI,EAAG,EAAI,EAAG,CAC1B,MAAM,EAAI,IAAI/P,GAAE,KAAK,MAAO,KAAK,MAAM,EAAGjyB,EAAI,KAAK,gBAAgB,EAAG,CAAC,EACvE,OAAO,EAAE,gBAAgBiU,EAAE,aAAcjU,EAAE,UAAW,CAAC,EAAG,EAAE,gBAAgBiU,EAAE,WAAYjU,EAAE,QAAS,CAAC,EAAG,EAAE,gBAAgBiU,EAAE,OAAQjU,EAAE,IAAK,CAAC,EAAG,EAAE,WAAWA,EAAE,OAAO,EAAG,CAC1K,CAOD,gBAAgB,EAAI,EAAG,EAAI,EAAG,CAC5B,MAAM,EAAI,IAAI4tB,GAAM,EAAI,CAAE,EAAE5tB,EAAI,CAAE,EAAEC,EAAI,CAAE,EAAE,EAAI,KAAK,QAAQ,cAAa,EAC1E,KAAK,QAAQ,SAAS,QAAS,GAAM,CACnC,EAAE,KAAK,EAAG,EAAG,CAAC,EAAGD,EAAE,KAAK,EAAE,EAAG,EAAG,EAAE,CAAC,EAAGC,EAAE,MAAM,EAAE,EAAI,EAAE,IAAI,GAAK,EAAE,OAAQ,EAAE,EAAI,EAAE,IAAI,GAAK,EAAE,MAAM,CACxG,CAAK,EACD,MAAM,EAAI,GAAI,EAAI,KAAK,UAAU,KAAK,SAAU,KAAK,QAAS,CAAC,EAC/D,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAE,KAAK,EAAE,CAAC,CAAC,EACb,GAAI,EAAI,EAAG,CACT,MAAM,EAAID,EAAE,OAAS,EACrB,KAAK,QAAQ,SAAS,QAAS,GAAM,CACnC,EAAE,KAAK,EAAG,GAAI,CAAC,EAAGA,EAAE,KAAK,EAAE,EAAG,CAAC,EAAG,EAAE,CAAC,EAAGC,EAAE,KAAK,GAAK,EAAE,EAAI,EAAE,IAAI,GAAK,EAAE,MAAO,GAAK,EAAE,EAAI,EAAE,IAAI,GAAK,EAAE,MAAM,CACpH,CAAO,EACD,MAAM,EAAI,EAAE,OACZ,QAAS,EAAI,EAAG,EAAI,EAAG,GAAK,EAAG,CAC7B,MAAMY,EAAI,EAAE,EAAI,CAAC,EAAGmF,EAAI,EAAE,EAAI,CAAC,EAAGC,EAAI,EAAE,EAAI,CAAC,EAC7C,EAAE,KAAKA,EAAI,CAAC,EAAG,EAAE,KAAKD,EAAI,CAAC,EAAG,EAAE,KAAKnF,EAAI,CAAC,CAC3C,CACD,KAAK,SAASb,EAAG,EAAGC,EAAG,EAAG,EAAG,KAAK,eAAgB,EAAG,GAAI,CAAC,EAAG,KAAK,OAAO,QAAS,GAAM,CACtF,KAAK,SAASD,EAAG,EAAGC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,CAChD,CAAO,CACF,CACD,OAAO,EAAE,QAAU,EAAG,EAAE,UAAYD,EAAG,EAAE,QAAU,EAAG,EAAE,IAAMC,EAAG,CAClE,CAaD,SAAS,EAAG,EAAG,EAAG,EAAGD,EAAGC,EAAG,EAAG,EAAG,EAAG,CAClC,IAAI,EAAI,EAAE,OAAS,EAAG,EAAI,EAC1B,QAAS,EAAI,EAAG,EAAIA,EAAE,SAAS,OAAQ,IAAK,CAC1C,MAAMY,EAAIZ,EAAE,SAAS,CAAC,EAAG+F,EAAI/F,EAAE,UAAU,EAAI,GAAKA,EAAE,SAAS,MAAM,EACnE,EAAE,KAAKY,EAAE,EAAG,EAAGA,EAAE,CAAC,EAAG,EAAE,KAAKA,EAAE,EAAG,CAAC,EAAGA,EAAE,CAAC,EAAG,EAAE,KAAKmF,EAAE,EAAG,EAAGA,EAAE,CAAC,EAAG,EAAE,KAAKA,EAAE,EAAG,CAAC,EAAGA,EAAE,CAAC,EACnF,MAAMC,EAAIhG,EAAE,UAAU,EAAIA,EAAE,SAAS,OAAS,GAAKA,EAAE,SAAS,MAAM,EAAGiG,EAAIjG,EAAE,UAAU,EAAI,GAAKA,EAAE,SAAS,MAAM,EACjH,IAAIkG,EAAI,IAAIqJ,EAAE,EAAExJ,EAAE,EAAInF,EAAE,GAAI,EAAGmF,EAAE,EAAInF,EAAE,CAAC,EAAGuF,EAAI,IAAIoJ,EAAE,EAAE3O,EAAE,EAAIoF,EAAE,GAAI,EAAGpF,EAAE,EAAIoF,EAAE,CAAC,EAAGuB,EAAI,IAAIgI,EAAE,EAAEtJ,EAAE,EAAIF,EAAE,GAAI,EAAGE,EAAE,EAAIF,EAAE,CAAC,EACtH,IAAMG,EAAIA,EAAE,MAAM,EAAE,EAAGC,EAAIA,EAAE,MAAM,EAAE,EAAGoB,EAAIA,EAAE,MAAM,EAAE,GACtD,MAAM,EAAIrB,EAAE,iBACZ,IAAIsB,EAAIrB,EAAE,eAAc,EAAIsB,EAAIF,EAAE,iBAClC,MAAMG,EAAI6H,EAAE,IAAI/H,EAAG,CAAC,EACpBE,EAAI,EAAIA,EAAI+G,GAAK,EAAIjH,EAAI,IAAI+H,EAAE3O,EAAE,EAAG,EAAGA,EAAE,CAAC,EAAE,SAAS,IAAI2O,EAAExJ,EAAE,EAAG,EAAGA,EAAE,CAAC,CAAC,EAAE,UAAW,EAAGyB,EAAIrB,EAAE,IAAID,CAAC,EAAE,UAAW,EAAGsB,EAAI,EACtH,MAAMG,EAAI4H,EAAE,IAAIhI,EAAGrB,CAAC,EACpByB,EAAI,EAAIA,EAAI8G,GAAK,EAAIhH,EAAI,IAAI8H,EAAExJ,EAAE,EAAG,EAAGA,EAAE,CAAC,EAAE,SAAS,IAAIwJ,EAAE3O,EAAE,EAAG,EAAGA,EAAE,CAAC,CAAC,EAAE,UAAW,EAAG6G,EAAIF,EAAE,IAAIrB,CAAC,EAAE,UAAW,EAAGuB,EAAI,EAAG,EAAE,KAAK,EAAI1H,EAAE,MAAO,CAAC,EAAG,EAAE,KAAK,EAAIA,EAAE,MAAO,CAAC,EAAG,GAAKmG,EAAE,OAAM,EAAI,EAAE,KAAK,EAAInG,EAAE,MAAO,CAAC,EAAG,EAAE,KAAK,EAAIA,EAAE,MAAO,CAAC,EAAG,EAAE,KAAKyH,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAG,EAAE,KAAKA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAG,EAAE,KAAKC,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAG,EAAE,KAAKA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAG,GAAK,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,EAAI,CAAC,EAAG,EAAE,KAAK,EAAI,CAAC,EAAG,EAAE,KAAK,EAAI,CAAC,EAAG,EAAE,KAAK,EAAI,CAAC,EAAG,EAAE,KAAK,EAAI,CAAC,IAAM,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,EAAI,CAAC,EAAG,EAAE,KAAK,EAAI,CAAC,EAAG,EAAE,KAAK,EAAI,CAAC,EAAG,EAAE,KAAK,EAAI,CAAC,EAAG,EAAE,KAAK,EAAI,CAAC,GAAI,GAAK,CACjgB,CACF,CACH,EACA,SAASu6B,GAAG5hC,EAAG,EAAG,EAAG,EAAG,EAAGL,EAAGC,EAAG,CAC/B,MAAM,EAAI,GAAK,IAAI,MAAM,CAAC,EAAG,EAAI,EAAG,EAAI,CAAE,EAAE,EAAIA,GAAK,GACrD,QAASoJ,EAAI,EAAGA,EAAI,EAAGA,IACrB,EAAEA,CAAC,IAAM,SAAW,EAAEA,CAAC,EAAI,IAAI4G,GAAG,EAAG,EAAG,EAAG,CAAC,GAAI,GAAK,EAAE5G,CAAC,IAAM,SAAW,EAAEA,CAAC,EAAI,IAAI6J,GAAG,EAAG,EAAG,EAAG,CAAC,GACnG,MAAM,EAAI7S,EAAE,gBAAgB4T,EAAE,YAAY,EAAG,EAAI5T,EAAE,gBAAgB4T,EAAE,UAAU,EAAGpT,EAAIR,EAAE,gBAAgB4T,EAAE,MAAM,EAAGjO,EAAI3F,EAAE,WAAU,EAAI4F,EAAI,EAAE,OAAS,EACtJ,IAAIC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGoB,EAAI,EAAG,EAAI,EACpC,MAAMC,EAAI,CAAC,CAAC,EACZ,GAAI,EACF,QAAS4B,EAAIpD,EAAGoD,EAAI,EAAE,OAAS,EAAGA,GAAK,EACrClD,EAAI,EAAE,GAAKkD,EAAI,EAAE,EAAI,EAAE,EAAIA,CAAC,EAAGjD,EAAI,EAAE,GAAKiD,EAAI,GAAK,CAAC,EAAI,EAAE,EAAIA,EAAI,CAAC,EAAG7B,EAAI,KAAK,KAAKrB,EAAIA,EAAIC,EAAIA,CAAC,EAAG,GAAKoB,EAAGC,EAAE,KAAK,CAAC,EACxH,IAAIC,EAAI,EAAGC,EAAI,EACf,QAAS0B,EAAI,EAAGA,EAAI,EAAE,OAAQA,GAAK,EACjC,KAAK,IAAI,EAAEA,EAAI,CAAC,CAAC,EAAI,OAAS1B,EAAI,GAAI,KAAK,IAAI,EAAE0B,EAAI,CAAC,EAAI,CAAC,EAAI,OAAS1B,EAAI,GAAI,KAAK,IAAI,EAAE0B,EAAI,CAAC,EAAI,CAAC,EAAI,OAAS1B,EAAI,GAAID,EAAI2B,EAAI,EAAG1B,IAAM,GAAKzB,EAAIwB,EAAIzB,EAAGC,EAAI,EAAI,IAAM,EAAIrF,EAAE,EAAI6G,CAAC,EAAI,EAAEC,CAAC,EAAE,GAAK,EAAEA,CAAC,EAAE,EAAI,EAAEA,CAAC,EAAE,GAAKF,EAAE,KAAK,MAAMvB,EAAI,CAAC,CAAC,EAAI,EAAIrF,EAAE,EAAI6G,CAAC,EAAI,EAAEC,CAAC,EAAE,EAAI,EAAI9G,EAAE,EAAI6G,CAAC,EAAI,EAAEC,CAAC,EAAE,GAAK,EAAEA,CAAC,EAAE,EAAI,EAAEA,CAAC,EAAE,GAAKF,EAAE,KAAK,MAAMvB,EAAI,CAAC,EAAI,CAAC,EAAI,EAAIrF,EAAE,EAAI6G,CAAC,EAAI,EAAEC,CAAC,EAAE,EAAGzB,EAAI,IAAM,EAAIrF,EAAE,EAAI6G,EAAI,CAAC,EAAImc,GAAG,0BAA4B,EAAI,EAAElc,CAAC,EAAE,EAAI,EAAEA,CAAC,EAAE,EAAI9G,EAAE,EAAI6G,EAAI,CAAC,EAAImc,GAAG,0BAA4B,EAAI,EAAElc,CAAC,EAAE,EAAI,EAAEA,CAAC,EAAE,IAAM9G,EAAE,EAAI6G,CAAC,GAAK,EAAI7G,EAAE,EAAI6G,CAAC,GAAK,EAAEC,CAAC,EAAE,EAAI9G,EAAE,EAAI6G,CAAC,EAAI,EAAEC,CAAC,EAAE,EAAG9G,EAAE,EAAI6G,EAAI,CAAC,GAAK,EAAI7G,EAAE,EAAI6G,EAAI,CAAC,GAAK,EAAEC,CAAC,EAAE,EAAI9G,EAAE,EAAI6G,EAAI,CAAC,EAAI,EAAEC,CAAC,EAAE,EAAGkc,GAAG,4BAA8BhjB,EAAE,EAAI6G,EAAI,CAAC,EAAI,EAAI7G,EAAE,EAAI6G,EAAI,CAAC,IAAK,GAAK,EAAE,KAAK,EAAEC,CAAC,EAAE,EAAG,EAAEA,CAAC,EAAE,EAAG,EAAEA,CAAC,EAAE,EAAG,EAAEA,CAAC,EAAE,CAAC,EACtuBimB,GAAG,cAAc,EAAG,EAAG5nB,EAAG,EAAGnF,EAAG,EAAGb,CAAC,EACpC,MAAM4H,EAAI,IAAIgmB,GACd,GAAIhmB,EAAE,QAAU5B,EAAG4B,EAAE,UAAY,EAAGA,EAAE,QAAU,EAAGA,EAAE,IAAM/G,EAAG,EAAG,CAC/D,MAAMwI,EAAI,IAAMukB,GAAG,WAAa,EAAE,OAAO,CAAC,EAAI,EAC9ChmB,EAAE,OAASyB,CACZ,CACD,OAAOzB,CACT,CACA,SAASs6B,GAAG7hC,EAAG,EAAG,EAAI,KAAM,EAAI,OAAQ,CACtC,EAAE,gBAAkB4xB,GAAE,2BAA2B,EAAE,eAAe,EAClE,MAAM,EAAI,EAAE,MAAOjyB,EAAI,EAAE,OAAS,GAAIC,EAAI,EAAE,OAAS,EAAG,EAAI,EAAE,oBAAsB,EAAG,EAAI,GAC3F,IAAI,EAAI,GACR,QAAS+F,EAAI,EAAGA,EAAI,EAAE,OAAQA,IAC5B,EAAEA,CAAC,EAAI,IAAIuJ,GAAE,EAAEvJ,CAAC,EAAE,EAAG,EAAEA,CAAC,EAAE,CAAC,EAC7B,EAAE,CAAC,EAAE,kBAAkB,EAAE,EAAE,OAAS,CAAC,EAAG,IAAI,GAAK,EAAE,IAAG,EACtD,MAAMlF,EAAI,IAAIqhC,IAAG9hC,EAAG,EAAG,GAAKK,GAAG,iBAAkB,CAAC,EAClD,QAASsF,EAAI,EAAGA,EAAIhG,EAAE,OAAQgG,IAAK,CACjC,EAAI,GACJ,QAASC,EAAI,EAAGA,EAAIjG,EAAEgG,CAAC,EAAE,OAAQC,IAC/B,EAAE,KAAK,IAAIsJ,GAAEvP,EAAEgG,CAAC,EAAEC,CAAC,EAAE,EAAGjG,EAAEgG,CAAC,EAAEC,CAAC,EAAE,CAAC,CAAC,EACpCnF,EAAE,QAAQ,CAAC,CACZ,CACD,MAAMF,EAAIE,EAAE,MAAM,GAAIb,EAAG,CAAC,EAC1B,OAAOW,EAAE,gCAAkC,EAAE,gBAAiBqhC,GAAGrhC,EAAG,EAAE,gBAAiB,EAAE,OAAQ,EAAE,WAAY,EAAE,SAAU,EAAE,QAAS,EAAE,IAAI,EAAE,YAAYA,EAAG,EAAE,SAAS,EAAGA,CAC7K,CACA,SAASwhC,GAAG/hC,EAAG,EAAG,EAAI,KAAM,EAAI,OAAQ,CACtC,OAAO6hC,GAAG7hC,EAAG,EAAG,EAAG,CAAC,CACtB,CACK,MAACgiC,IAAK,CACT,eAAgBD,GAChB,cAAeF,EACjB,EACAtU,GAAG,cAAgBqU,GACnBhQ,GAAE,cAAgB,CAAC5xB,EAAG,EAAG,EAAG,EAAG,EAAGL,EAAGC,EAAI,SAAWiiC,GAAG7hC,EAAG,CACxD,MAAO,EACP,MAAO,EACP,UAAW,EACX,gBAAiBL,CACnB,EAAG,EAAGC,CAAC,EACPgyB,GAAE,eAAiB,CAAC5xB,EAAG,EAAG,EAAG,EAAG,EAAGL,EAAGC,EAAG,EAAI,SAAWmiC,GAAG/hC,EAAG,CAC5D,MAAO,EACP,MAAO,EACP,MAAO,EACP,UAAWL,EACX,gBAAiBC,CACnB,EAAG,EAAG,CAAC,EACP,SAASqiC,GAAGjiC,EAAG,EAAG,EAAI,KAAM,CAC1B,MAAM,EAAI,EAAE,KAAM,EAAI,EAAE,MAAOL,EAAI,EAAE,OAAS,EAAGC,EAAI,EAAE,UAAY,EAAG,EAAI,EAAE,MAAQ,EAAI,EAAI,EAAE,KAAOgyB,GAAE,OAAQ,EAAI,EAAE,UAAW,EAAIA,GAAE,2BAA2B,EAAE,eAAe,EAAG,EAAI,EAAE,UAAY,KAAM,EAAI,EAAE,UAAY,GAAI,EAAI,EAAE,YAAc,GAAIpxB,EAAI,EAAE,WAAa,GAC9Q,OAAO0hC,IAAGliC,EAAG,EAAG,EAAGL,EAAGC,EAAG,KAAM,KAAMY,EAAG,EAAG,EAAG,GAAI,EAAG,CAAC,CAAC,EAAG,EAAG,EAAG,EAAG,EAAE,UAAY,KAAM,EAAE,SAAW,KAAM,EAAE,aAAe,KAAM,CAAC,CAAC,EAAE,WAAW,CAClJ,CACA,SAAS2hC,GAAGniC,EAAG,EAAG,EAAI,KAAM,CAC1B,MAAM,EAAI,EAAE,KAAM,EAAI,EAAE,MAAOL,EAAI,EAAE,gBAAkB,IAAM,GAAIC,EAAI,EAAE,mBAAqB,IAAM,GAAI,EAAI,EAAE,WAAa,EAAE,kBAAoB,GAAI,EAAI,EAAE,YAAc,EAAE,iBAAmB,GAAI,EAAI,EAAE,MAAQ,EAAI,EAAI,EAAE,KAAOgyB,GAAE,OAAQ,EAAI,EAAE,UAAW,EAAI,EAAE,aAAe,KAAM,EAAI,EAAE,aAAe,GAAIpxB,EAAIoxB,GAAE,2BAA2B,EAAE,eAAe,EAAGjsB,EAAI,EAAE,SAAUC,EAAI,EAAE,UAAY,GACrY,OAAOs8B,IAAGliC,EAAG,EAAG,EAAG,KAAM,KAAML,EAAGC,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,CAAC,CAAC,EAAGY,EAAGmF,GAAK,KAAMC,EAAG,EAAE,UAAY,KAAM,EAAE,SAAW,KAAM,EAAG,CAAC,CACxH,CACA,SAASs8B,IAAGliC,EAAG,EAAG,EAAG,EAAG,EAAGL,EAAGC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAGY,EAAGmF,EAAGC,EAAGC,EAAGC,EAAGC,EAAGoB,EAAG,CACtE,MAAM,EAAI,CAAC6B,EAAGvB,EAAGC,EAAGF,EAAGG,EAAIC,EAAIC,GAAIC,GAAIC,EAAIC,GAAIC,KAAO,CACpD,MAAMuH,EAAI9H,EAAE,YAAa,EAAE+H,EAAI/H,EAAE,WAAU,EAAIgI,EAAIhI,EAAE,aAAc,EAAEiI,EAAIjI,EAAE,aAAY,EACvF,GAAIO,IACF,QAAS,GAAK,EAAG,GAAKuH,EAAE,OAAQ,KAC9B,GAAIA,EAAE,EAAE,EAAE,GAAK,GAAKA,EAAE,EAAE,EAAE,GAAK,GAAKA,EAAE,EAAE,EAAE,GAAK,GAAKA,EAAE,EAAE,EAAE,SAASA,EAAE,GAAK,CAAC,CAAC,EAAGC,EAAE,EAAE,EAAE,GAAK,GAAKA,EAAE,EAAE,EAAE,GAAK,GAAKA,EAAE,EAAE,EAAE,GAAK,GAAKA,EAAE,EAAE,EAAE,SAASA,EAAE,GAAK,CAAC,CAAC,EAAGC,EAAE,EAAE,EAAE,GAAK,GAAKA,EAAE,EAAE,EAAE,GAAK,GAAKA,EAAE,EAAE,EAAE,GAAK,GAAKA,EAAE,EAAE,EAAE,SAASA,EAAE,GAAK,CAAC,CAAC,EAAG,GAAK,EAAG,CAC3O,IAAIY,GAAKd,EAAE,GAAK,CAAC,EACjBL,EAAE,IAAImB,GAAId,EAAE,EAAE,CAAC,EAAI,GAAKA,EAAE,EAAE,EAAE,aAAa,EAAE,EAAGc,GAAKb,EAAE,GAAK,CAAC,EAAGN,EAAE,IAAImB,GAAIb,EAAE,EAAE,CAAC,EAAI,GAAKA,EAAE,EAAE,EAAE,aAAa,EAAE,EAAGa,GAAKZ,EAAE,GAAK,CAAC,EAAGP,EAAE,IAAImB,GAAIZ,EAAE,EAAE,CAAC,EAAI,GAAKA,EAAE,EAAE,EAAE,aAAa,EAAE,CAC9K,EAEL,IAAIG,EAAI,EACR,MAAMC,EAAI,IAAMnI,IAAO,KAAOA,EAAK,EAAGqI,EAAKhI,IAAMF,GAAKA,GAAK,IAAMF,IAAO,KAAOA,EAAK,EAAGqI,EAAKjI,IAAMH,GAAKA,GAAKiI,EAC5G,IAAII,EAAKnI,IAAO6pB,GAAE,QAAU7pB,IAAO6pB,GAAE,QAAU,EAAI,EACnD,MAAMzhB,GAAKb,EAAE,OAAO,CAAC,EACrB,QAAS,GAAK,EAAG,GAAK7H,EAAE,OAAQ,KAAM,CACpC,MAAM6I,GAAK,GAAIC,EAAKP,EAAG,GAAIL,EAAE,EAAE,CAAC,EAAGa,EAAKP,EAAG,GAAIN,EAAE,EAAE,CAAC,EACpDJ,EAAE,kBAAkBC,EAAE,EAAE,EAAGK,EAAGM,EAAE,EAChC,QAASM,GAAK,EAAGA,GAAKzH,EAAE,OAAQyH,KAAM,CACpC,MAAMC,GAAKlB,EAAE,EAAE,EAAE,MAAMxG,EAAEyH,EAAE,EAAE,CAAC,EAAE,IAAIhB,EAAE,EAAE,EAAE,MAAMzG,EAAEyH,EAAE,EAAE,CAAC,CAAC,EAAE,IAAIf,EAAE,EAAE,EAAE,MAAM1G,EAAEyH,EAAE,EAAE,CAAC,CAAC,EAAGE,GAAKxB,EAAE,KAAI,EAChGA,EAAE,0BAA0BuB,GAAIP,GAAIQ,EAAE,EAAGA,GAAG,aAAaH,CAAE,EAAE,WAAW/I,EAAE,EAAE,CAAC,EAAG6I,GAAGG,EAAE,EAAIE,EAC1F,CACDnJ,EAAE0I,CAAE,EAAII,GAAIT,GAAKU,EAAIL,GACtB,CACD,MAAME,GAAM,IAAO,CACjB,MAAME,GAAK,MAAO,EAAEC,EAAKpB,EAAE,KAAI,EAC/B,IAAIqB,EACJ,IAAKA,EAAK,EAAGA,EAAK,GAAG,OAAQA,IAC3BD,EAAG,WAAW,GAAGC,CAAE,CAAC,EACtB,IAAKD,EAAG,aAAa,EAAI,GAAG,MAAM,EAAGC,EAAK,EAAGA,EAAK,GAAG,OAAQA,IAC3DF,GAAG,KAAKC,CAAE,EACZ,OAAOD,EACb,EACI,OAAQvI,EAAE,CACR,KAAK6pB,GAAE,OACL,MACF,KAAKA,GAAE,UACLpqB,EAAE,CAAC,EAAI4I,GAAG5I,EAAE,CAAC,CAAC,EAAGA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAC3B,MACF,KAAKoqB,GAAE,QACLpqB,EAAE0I,CAAE,EAAI1I,EAAE0I,EAAK,CAAC,EAAG1I,EAAE0I,EAAK,CAAC,EAAIE,GAAG5I,EAAE0I,EAAK,CAAC,CAAC,EAC3C,MACF,KAAK0hB,GAAE,QACLpqB,EAAE,CAAC,EAAI4I,GAAG5I,EAAE,CAAC,CAAC,EAAGA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAGA,EAAE0I,CAAE,EAAI1I,EAAE0I,EAAK,CAAC,EAAG1I,EAAE0I,EAAK,CAAC,EAAIE,GAAG5I,EAAE0I,EAAK,CAAC,CAAC,EACzE,KACH,CACD,OAAO1I,CACX,EACE,IAAIJ,EAAGC,EACP,GAAI1B,EAAG,CACL,MAAMqD,EAAIrD,EAAE,qBACZ,OAAOyB,EAAIrB,EAAIiD,EAAE,OAAO,OAAO,EAAGjD,CAAC,EAAIiD,EAAE,OAAO,OAAO,CAAC,EAAG3B,EAAI,EAAE,EAAG,EAAG2B,EAAE,OAAQA,EAAE,UAAW,EAAG,EAAGrJ,EAAGC,EAAGoJ,EAAE,IAAK,EAAG7B,CAAC,EAAGxB,EAAIy2B,GAAG,GAAI,CAAE,UAAW/0B,EAAG,WAAY,GAAI,UAAW,GAAI,OAAQ,EAAG,UAAW,GAAI,gBAAiB,EAAG,SAAU1B,CAAG,EAAE,GAAK,MAAM,EAAGA,CAC9P,CACDyB,EAAIrB,EAAI,IAAIiT,GAAG,EAAGjT,CAAC,EAAI,IAAIiT,GAAG,CAAC,EAC/B,MAAM1R,EAAI,IAAI,MACd,EAAI,EAAI,GAAK,EAAI,EAAI,EAAI,EAAGD,EAAI,EAAE,EAAG,EAAGD,EAAGE,EAAG,EAAG,EAAG3H,EAAGC,EAAG,EAAG,EAAGuH,CAAC,EACjE,MAAMI,EAAI60B,GAAGp8B,EAAG,CACd,UAAWqH,EACX,WAAY,EACZ,UAAW,EACX,UAAW,EACX,gBAAiB7G,EACjB,SAAUoF,EACV,SAAUC,GAAK,OACf,QAASC,GAAK,MACf,EAAE,CAAC,EACJ,OAAOyB,EAAE,qBAAqB,UAAYF,EAAGE,EAAE,qBAAqB,OAASH,EAAGG,EAAE,qBAAqB,IAAM,EAAGA,CAClH,CACK,MAAC66B,IAAK,CAET,aAAcH,GAEd,mBAAoBE,EACtB,EACAvQ,GAAE,aAAe,CAAC5xB,EAAG,EAAG,EAAG,EAAG,EAAGL,EAAGC,EAAI,KAAM,EAAG,EAAG,IAAM,CACxD,MAAM,EAAI,CACR,MAAO,EACP,KAAM,EACN,MAAO,EACP,SAAU,EACV,IAAKD,IAAM,EAAI,EAAIA,GAAKiyB,GAAE,OAC1B,gBAAiB,EACjB,SAAU,EACV,UAAW,CACf,EACE,OAAOqQ,GAAGjiC,EAAG,EAAGJ,CAAC,CACnB,EACAgyB,GAAE,mBAAqB,CAAC5xB,EAAG,EAAG,EAAG,EAAG,EAAGL,EAAGC,EAAG,EAAG,EAAG,EAAG,EAAG,IAAM,CAC7D,MAAM,EAAI,CACR,MAAO,EACP,KAAM,EACN,cAAe,EACf,iBAAkB,EAClB,iBAAkBD,EAClB,gBAAiBC,EACjB,IAAK,IAAM,EAAI,EAAI,GAAKgyB,GAAE,OAC1B,gBAAiB,EACjB,SAAU,EACV,UAAW,CACf,EACE,OAAOuQ,GAAGniC,EAAG,EAAG,CAAC,CACnB,EACA,SAASqiC,GAAGriC,EAAG,EAAG,EAAI,KAAM,CAC1B,MAAM,EAAI,EAAE,IAAM,EAAE,KAAO,GAAK,EAAE,IAAM,EAAI,EAAI,EAAE,IAAM,EAAG,EAAI,EAAE,SAAW,OAAS,GAAK,EAAE,OAAQL,EAAI,EAAE,MAAOC,EAAI,EAAE,QAAU,EAAG,EAAI,EAAE,cAAgB,GAAI,EAAI,EAAE,MAAQ,EAAG,EAAI,EAAE,UAAW,EAAIgyB,GAAE,2BAA2B,EAAE,eAAe,EAAG,EAAI,EAAE,KAAOA,GAAE,OAAQ,EAAI,KAAK,GAAK,EAAGpxB,EAAI,CAAE,EAAEmF,EAAI,EAAE,UAAY,GACvT,IAAIC,EAAI,EAAGC,EAAI,EACf,MAAMC,EAAI,EAAI,EAAI,EAClB,IAAIC,EAAGoB,EACP,IAAKvB,EAAI,EAAGA,GAAK,EAAI,EAAGA,IAAK,CAC3B,IAAKuB,EAAI,IAAK,GAAKyqB,GAAE,WAAa,GAAKA,GAAE,WAAazqB,EAAE,KAAK,IAAIgI,EAAE,EAAGxP,EAAE,CAAC,EAAE,EAAG,CAAC,CAAC,EAAGwH,EAAE,KAAK,IAAIgI,EAAE,KAAK,IAAIvJ,EAAIE,CAAC,EAAInG,EAAE,CAAC,EAAE,EAAIC,EAAGD,EAAE,CAAC,EAAE,EAAG,KAAK,IAAIiG,EAAIE,CAAC,EAAInG,EAAE,CAAC,EAAE,EAAIC,CAAC,CAAC,GAAIiG,EAAI,EAAGA,EAAIlG,EAAE,OAAQkG,IAC1LE,EAAI,IAAIoJ,EAAE,KAAK,IAAIvJ,EAAIE,CAAC,EAAInG,EAAEkG,CAAC,EAAE,EAAIjG,EAAGD,EAAEkG,CAAC,EAAE,EAAG,KAAK,IAAID,EAAIE,CAAC,EAAInG,EAAEkG,CAAC,EAAE,EAAIjG,CAAC,EAAGuH,EAAE,KAAKpB,CAAC,GACxF,GAAK6rB,GAAE,SAAW,GAAKA,GAAE,WAAazqB,EAAE,KAAK,IAAIgI,EAAE,KAAK,IAAIvJ,EAAIE,CAAC,EAAInG,EAAEA,EAAE,OAAS,CAAC,EAAE,EAAIC,EAAGD,EAAEA,EAAE,OAAS,CAAC,EAAE,EAAG,KAAK,IAAIiG,EAAIE,CAAC,EAAInG,EAAEA,EAAE,OAAS,CAAC,EAAE,EAAIC,CAAC,CAAC,EAAGuH,EAAE,KAAK,IAAIgI,EAAE,EAAGxP,EAAEA,EAAE,OAAS,CAAC,EAAE,EAAG,CAAC,CAAC,GAAIa,EAAE,KAAK2G,CAAC,CAC7M,CACD,OAAOi1B,GAAGp8B,EAAG,CAAE,UAAWQ,EAAG,WAAY,EAAG,gBAAiB,EAAG,UAAW,EAAG,SAAUmF,EAAG,SAAU,EAAE,SAAU,QAAS,EAAE,SAAW,CAAC,CAC1I,CACK,MAAC28B,IAAK,CAET,YAAaD,EACf,EACAzQ,GAAE,YAAc,CAAC5xB,EAAG,EAAG,EAAG,EAAG,EAAGL,EAAGC,IAAMyiC,GAAGriC,EAAG,CAC7C,MAAO,EACP,OAAQ,EACR,aAAc,EACd,gBAAiBJ,EACjB,UAAWD,CACb,EAAG,CAAC,EACJ,SAAS4iC,GAAGviC,EAAG,CACb,MAAM,EAAI,GAAI,EAAI,CAAE,EAAE,EAAI,CAAE,EAAE,EAAI,GAAIL,EAAIK,EAAE,OAASA,EAAE,MAAQ,EAAGJ,EAAII,EAAE,QAAUA,EAAE,MAAQ,EAAG,EAAIA,EAAE,kBAAoB,EAAI,EAAIA,EAAE,iBAAmButB,GAAG,YAAa,EAAI5tB,EAAI,EAAG,EAAIC,EAAI,EACzL,EAAE,KAAK,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAE,KAAK,EAAG,EAAG,EAAE,EAAG,EAAE,KAAK,EAAG4jB,GAAG,0BAA4B,EAAI,CAAC,EAAG,EAAE,KAAK,EAAG,CAAC,EAAG,CAAC,EAAG,EAAE,KAAK,EAAG,EAAG,EAAE,EAAG,EAAE,KAAK,EAAGA,GAAG,0BAA4B,EAAI,CAAC,EAAG,EAAE,KAAK,EAAG,EAAG,CAAC,EAAG,EAAE,KAAK,EAAG,EAAG,EAAE,EAAG,EAAE,KAAK,EAAGA,GAAG,0BAA4B,EAAI,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAG,CAAC,EAAG,EAAE,KAAK,EAAG,EAAG,EAAE,EAAG,EAAE,KAAK,EAAGA,GAAG,0BAA4B,EAAI,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG+J,GAAG,cAAc,EAAG,EAAG,EAAG,EAAG,EAAGvtB,EAAE,SAAUA,EAAE,OAAO,EAC3c,MAAM,EAAI,IAAIutB,GACd,OAAO,EAAE,QAAU,EAAG,EAAE,UAAY,EAAG,EAAE,QAAU,EAAG,EAAE,IAAM,EAAG,CACnE,CACA,SAASiV,GAAGxiC,EAAG,EAAI,GAAI,EAAI,KAAM,CAC/B,MAAM,EAAI,IAAI4xB,GAAE5xB,EAAG,CAAC,EACpB,OAAO,EAAE,gBAAkB4xB,GAAE,2BAA2B,EAAE,eAAe,EAAG,EAAE,gCAAkC,EAAE,gBAAiB2Q,GAAG,CAAC,EAAE,YAAY,EAAG,EAAE,SAAS,EAAG,EAAE,cAAgB,EAAE,UAAU,EAAE,YAAY,OAAQ,CAAC,EAAE,YAAY,CAAC,EAAG,EAAE,aAAa,EAAE,YAAY,OAAO,MAAM,EAAE,CAAC,GAAI,CAChS,CACK,MAACE,IAAK,CAET,YAAaD,EACf,EACAjV,GAAG,YAAcgV,GACjB3Q,GAAE,YAAc,CAAC5xB,EAAG,EAAG,EAAG,EAAG,IAAMwiC,GAAGxiC,EAAG,CACvC,KAAM,EACN,MAAO,EACP,OAAQ,EACR,gBAAiB,EACjB,UAAW,CACb,EAAG,CAAC,EACJ,SAAS0iC,GAAG1iC,EAAG,EAAG,EAAI,KAAM,CAC1B,MAAM,EAAI,EAAE,KACZ,IAAI,EAAI,EAAE,SAAUL,EAAI,EACxB,EAAE,SAAW,OAASA,EAAI,EAAE,OAAS,IAAMA,EAAI,EAAE,qBAAqB,QACtE,MAAMC,EAAI,EAAE,cAAgB,GAAI,EAAI,EAAE,gBAAkB,KACxD,IAAI,EAAI,EAAE,KAAOgyB,GAAE,OACnB,MAAM,EAAI,EAAE,UAAY,GAAI,EAAI,EAAE,UAAW,EAAIA,GAAE,2BAA2B,EAAE,eAAe,EAC/F,EAAE,IAAM,EAAE,MAAQ,EAAE,KAAO,GAAK,EAAE,IAAM,GAAK,EAAI,EAAE,KAAO,EAC1D,MAAM,EAAI,CAAC9rB,EAAGC,EAAGoB,EAAG,EAAGC,EAAGC,EAAGC,EAAGC,IAAM,CACpC,MAAMyB,EAAIjD,EAAE,cAAe0B,EAAI1B,EAAE,WAAU,EAAI2B,EAAI3B,EAAE,aAAc,EAAE4B,EAAK,KAAK,GAAK,EAAIP,EAAIG,EAAGM,EAAKR,IAAM,IAAM,GAChH,IAAIS,EAAIC,GAAIC,GAAIC,EAChB,MAAMuH,GAAIF,EAAE,OAAO,CAAC,EACpB,IAAIG,GAAInI,IAAMsqB,GAAE,QAAUtqB,IAAMsqB,GAAE,QAAU,EAAI,EAChD,QAASjiB,EAAI,EAAGA,EAAI7J,EAAE,OAAQ6J,IAAK,CACjC5H,GAAKF,EAAG8H,EAAGjI,EAAEiI,CAAC,CAAC,EAAG7H,EAAK,MAAK,EAAIE,GAAKP,EAAEkI,CAAC,EACxC,QAASE,EAAI,EAAGA,EAAIzI,EAAGyI,IACrBN,EAAE,kBAAkBvG,EAAE2G,CAAC,EAAGhI,EAAKkI,EAAGL,EAAC,EAAGvH,EAAKH,EAAG+H,CAAC,EAAI/H,EAAG+H,CAAC,EAAIV,EAAE,KAAI,EAAIA,EAAE,0BAA0BnH,GAAIwH,GAAGvH,CAAE,EAAGA,EAAG,aAAaF,EAAE,EAAE,WAAWjC,EAAE6J,CAAC,CAAC,EAAG7H,EAAG+H,CAAC,EAAI5H,EAC7Jd,EAAEsI,EAAC,EAAI3H,EAAI2H,IACZ,CACD,MAAMC,EAAI,CAACC,EAAGE,IAAM,CAClB,MAAMC,EAAI,QACV,QAASC,EAAK,EAAGA,EAAKJ,EAAGI,IACvBD,EAAE,KAAKhK,EAAE+J,CAAC,CAAC,EACb,OAAOC,CACb,EACI,OAAQxI,EAAC,CACP,KAAKsqB,GAAE,OACL,MACF,KAAKA,GAAE,UACLzqB,EAAE,CAAC,EAAIuI,EAAEtI,EAAG,CAAC,EAAGD,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAE,MAAM,CAAC,EACnC,MACF,KAAKyqB,GAAE,QACLzqB,EAAEsI,EAAC,EAAItI,EAAEsI,GAAI,CAAC,EAAE,MAAM,CAAC,EAAGtI,EAAEsI,GAAI,CAAC,EAAIC,EAAEtI,EAAGtB,EAAE,OAAS,CAAC,EACtD,MACF,KAAK8rB,GAAE,QACLzqB,EAAE,CAAC,EAAIuI,EAAEtI,EAAG,CAAC,EAAGD,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAE,MAAM,CAAC,EAAGA,EAAEsI,EAAC,EAAItI,EAAEsI,GAAI,CAAC,EAAE,MAAM,CAAC,EAAGtI,EAAEsI,GAAI,CAAC,EAAIC,EAAEtI,EAAGtB,EAAE,OAAS,CAAC,EAC5F,KACH,CACD,OAAOqB,CACX,EACE,IAAI3G,EAAGmF,EACP,GAAI,EAAG,CACL,MAAMG,EAAI,EAAE,qBAAsBC,EAAI,EAAE,KAAOD,EAAE,IACjD,OAAOtF,EAAIsF,EAAE,OAAO,OAAO,CAAC,EAAGH,EAAI,EAAE,EAAGnF,EAAGsF,EAAE,UAAWnG,EAAGmG,EAAE,aAAc,EAAGA,EAAE,IAAKC,CAAC,EAAG,EAAIq2B,GAAG,GAAI,CAAE,UAAWz2B,EAAG,SAAU,CAAG,GAAGG,EAAE,OAAStF,EAAGsF,EAAE,UAAYH,EAAGG,EAAE,IAAMC,EAAGD,EAAE,OAASnG,EAAG,CAC7L,CACDa,EAAI,IAAIwY,GAAG,CAAC,EACZ,MAAMpT,EAAI,IAAI,MACd,EAAI,EAAI,GAAK,EAAI,EAAI,EAAI,EAAGD,EAAI,EAAE,EAAGnF,EAAGoF,EAAGjG,EAAGC,EAAG,EAAG,EAAG,EAAE,GAAG,EAC5D,MAAMiG,EAAIu2B,GAAGp8B,EAAG,CACd,UAAW2F,EACX,UAAW,GACX,WAAY,GACZ,UAAW,EACX,gBAAiB,EACjB,SAAU,EACV,SAAU,EAAE,SACZ,QAAS,EAAE,OACZ,EAAE,CAAC,EACJ,OAAOE,EAAE,qBAAqB,UAAYF,EAAGE,EAAE,qBAAqB,OAASrF,EAAGqF,EAAE,qBAAqB,aAAejG,EAAGiG,EAAE,qBAAqB,IAAM,EAAGA,EAAE,qBAAqB,IAAM,EAAE,IAAKA,EAAE,qBAAqB,OAASlG,EAAGkG,CAClO,CACK,MAAC88B,IAAK,CAET,WAAYD,EACd,EACA9Q,GAAE,WAAa,CAAC5xB,EAAG,EAAG,EAAG,EAAG,EAAGL,EAAGC,EAAG,EAAG,EAAG,IAAM8iC,GAAG1iC,EAAG,CACrD,KAAM,EACN,OAAQ,EACR,aAAc,EACd,eAAgB,EAChB,IAAK,EACL,IAAKL,EACL,UAAW,EACX,gBAAiB,EACjB,SAAU,CACZ,EAAGC,CAAC,EACJ,SAASgjC,GAAG5iC,EAAG,CACb,MAAM,EAAI,GACV,EAAE,CAAC,EAAI,CACL,OAAQ,CACN,CAAC,EAAG,EAAG,QAAQ,EACf,CAAC,SAAU,EAAG,SAAU,EACxB,CAAC,UAAY,SAAU,SAAU,EACjC,CAAC,UAAY,UAAW,SAAU,CACnC,EACD,KAAM,CACJ,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,CACT,CACL,EAAK,EAAE,CAAC,EAAI,CACR,OAAQ,CACN,CAAC,EAAG,EAAG,QAAQ,EACf,CAAC,SAAU,EAAG,CAAC,EACf,CAAC,EAAG,SAAU,CAAC,EACf,CAAC,UAAW,EAAG,CAAC,EAChB,CAAC,EAAG,UAAW,CAAC,EAChB,CAAC,EAAG,EAAG,SAAS,CACjB,EACD,KAAM,CACJ,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,CACT,CACL,EAAK,EAAE,CAAC,EAAI,CACR,OAAQ,CACN,CAAC,EAAG,EAAG,QAAQ,EACf,CAAC,SAAW,EAAG,QAAS,EACxB,CAAC,UAAY,QAAU,QAAS,EAChC,CAAC,UAAY,SAAW,QAAS,EACjC,CAAC,SAAW,QAAU,QAAS,EAC/B,CAAC,SAAW,SAAW,QAAS,EAChC,CAAC,UAAY,QAAU,QAAS,EAChC,CAAC,SAAW,EAAG,QAAS,EACxB,CAAC,SAAW,GAAI,QAAS,EACzB,CAAC,UAAY,SAAW,QAAS,EACjC,CAAC,SAAW,QAAU,SAAU,EAChC,CAAC,SAAW,SAAW,SAAU,EACjC,CAAC,UAAY,QAAU,SAAU,EACjC,CAAC,UAAY,EAAG,SAAU,EAC1B,CAAC,UAAY,GAAI,SAAU,EAC3B,CAAC,UAAY,SAAW,SAAU,EAClC,CAAC,SAAW,QAAU,SAAU,EAChC,CAAC,SAAW,SAAW,SAAU,EACjC,CAAC,UAAY,EAAG,SAAU,EAC1B,CAAC,EAAG,EAAG,SAAS,CACjB,EACD,KAAM,CACJ,CAAC,EAAG,EAAG,EAAG,EAAG,CAAC,EACd,CAAC,EAAG,EAAG,EAAG,EAAG,CAAC,EACd,CAAC,EAAG,EAAG,EAAG,EAAG,CAAC,EACd,CAAC,EAAG,EAAG,GAAI,GAAI,CAAC,EAChB,CAAC,EAAG,EAAG,GAAI,GAAI,CAAC,EAChB,CAAC,EAAG,EAAG,GAAI,GAAI,CAAC,EAChB,CAAC,EAAG,GAAI,GAAI,GAAI,CAAC,EACjB,CAAC,EAAG,EAAG,GAAI,GAAI,EAAE,EACjB,CAAC,EAAG,GAAI,GAAI,GAAI,CAAC,EACjB,CAAC,GAAI,GAAI,GAAI,GAAI,EAAE,EACnB,CAAC,GAAI,GAAI,GAAI,GAAI,EAAE,EACnB,CAAC,GAAI,GAAI,GAAI,GAAI,EAAE,CACpB,CACL,EAAK,EAAE,CAAC,EAAI,CACR,OAAQ,CACN,CAAC,EAAG,EAAG,QAAQ,EACf,CAAC,SAAU,EAAG,QAAS,EACvB,CAAC,SAAW,EAAG,QAAS,EACxB,CAAC,UAAY,QAAU,QAAS,EAChC,CAAC,UAAY,SAAW,QAAS,EACjC,CAAC,SAAW,GAAI,QAAS,EACzB,CAAC,SAAW,QAAU,SAAU,EAChC,CAAC,SAAW,SAAW,SAAU,EACjC,CAAC,UAAY,EAAG,SAAU,EAC1B,CAAC,UAAW,EAAG,SAAU,EACzB,CAAC,UAAY,GAAI,SAAU,EAC3B,CAAC,EAAG,EAAG,SAAS,CACjB,EACD,KAAM,CACJ,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,EAAE,EACT,CAAC,EAAG,GAAI,CAAC,EACT,CAAC,EAAG,GAAI,CAAC,EACT,CAAC,EAAG,EAAG,EAAE,EACT,CAAC,EAAG,GAAI,CAAC,EACT,CAAC,EAAG,GAAI,EAAE,EACV,CAAC,EAAG,GAAI,CAAC,EACT,CAAC,EAAG,GAAI,EAAE,CACX,CACL,EAAK,EAAE,CAAC,EAAI,CACR,OAAQ,CACN,CAAC,EAAG,EAAG,QAAQ,EACf,CAAC,SAAW,EAAG,QAAS,EACxB,CAAC,SAAW,SAAW,QAAS,EAChC,CAAC,UAAY,SAAW,QAAS,EACjC,CAAC,SAAW,UAAY,QAAS,EACjC,CAAC,SAAW,SAAW,QAAS,EAChC,CAAC,QAAS,SAAW,QAAS,EAC9B,CAAC,SAAW,UAAY,QAAS,EACjC,CAAC,UAAY,EAAG,QAAS,EACzB,CAAC,UAAY,IAAM,QAAS,EAC5B,CAAC,UAAY,GAAK,QAAS,EAC3B,CAAC,UAAY,GAAI,QAAS,EAC1B,CAAC,SAAW,EAAG,SAAU,EACzB,CAAC,SAAW,IAAM,SAAU,EAC5B,CAAC,SAAW,GAAK,SAAU,EAC3B,CAAC,SAAW,GAAI,SAAU,EAC1B,CAAC,UAAY,SAAW,SAAU,EAClC,CAAC,SAAU,UAAY,SAAU,EACjC,CAAC,UAAY,UAAY,SAAU,EACnC,CAAC,QAAU,SAAW,SAAU,EAChC,CAAC,SAAW,UAAY,SAAU,EAClC,CAAC,QAAU,UAAY,SAAU,EACjC,CAAC,UAAY,EAAG,SAAU,EAC1B,CAAC,EAAG,EAAG,SAAS,CACjB,EACD,KAAM,CACJ,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,EAAE,EACT,CAAC,EAAG,GAAI,EAAE,EACV,CAAC,EAAG,GAAI,EAAE,EACV,CAAC,GAAI,GAAI,EAAE,EACX,CAAC,GAAI,GAAI,EAAE,EACX,CAAC,GAAI,GAAI,EAAE,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,GAAI,CAAC,EACZ,CAAC,EAAG,EAAG,GAAI,CAAC,EACZ,CAAC,EAAG,EAAG,GAAI,CAAC,EACZ,CAAC,EAAG,GAAI,GAAI,CAAC,EACb,CAAC,EAAG,GAAI,GAAI,CAAC,EACb,CAAC,EAAG,EAAG,GAAI,EAAE,EACb,CAAC,EAAG,GAAI,GAAI,EAAE,EACd,CAAC,EAAG,GAAI,GAAI,EAAE,EACd,CAAC,EAAG,GAAI,GAAI,EAAE,EACd,CAAC,GAAI,GAAI,GAAI,EAAE,EACf,CAAC,GAAI,GAAI,GAAI,EAAE,EACf,CAAC,GAAI,GAAI,GAAI,EAAE,EACf,CAAC,GAAI,GAAI,GAAI,EAAE,EACf,CAAC,GAAI,GAAI,GAAI,EAAE,EACf,CAAC,GAAI,GAAI,GAAI,EAAE,CAChB,CACL,EAAK,EAAE,CAAC,EAAI,CACR,OAAQ,CACN,CAAC,EAAG,EAAG,QAAQ,EACf,CAAC,SAAU,EAAG,QAAS,EACvB,CAAC,UAAY,SAAW,QAAS,EACjC,CAAC,SAAW,UAAW,QAAS,EAChC,CAAC,SAAW,SAAW,SAAU,EACjC,CAAC,UAAY,UAAY,SAAU,CACpC,EACD,KAAM,CACJ,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,CACZ,CACL,EAAK,EAAE,CAAC,EAAI,CACR,OAAQ,CACN,CAAC,EAAG,EAAG,QAAQ,EACf,CAAC,SAAU,EAAG,QAAS,EACvB,CAAC,UAAY,SAAW,QAAS,EACjC,CAAC,UAAY,UAAY,QAAS,EAClC,CAAC,SAAW,SAAW,UAAW,EAClC,CAAC,SAAW,UAAY,SAAU,EAClC,CAAC,UAAW,SAAW,UAAW,EAClC,CAAC,UAAY,UAAW,SAAU,EAClC,CAAC,SAAW,SAAW,SAAU,EACjC,CAAC,UAAY,SAAW,SAAU,CACnC,EACD,KAAM,CACJ,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,EAAG,CAAC,EACd,CAAC,EAAG,EAAG,EAAG,EAAG,CAAC,CACf,CACL,EAAK,EAAE,CAAC,EAAI,CACR,OAAQ,CACN,CAAC,EAAG,EAAG,QAAQ,EACf,CAAC,SAAW,EAAG,QAAS,EACxB,CAAC,UAAY,SAAW,QAAS,EACjC,CAAC,UAAY,UAAY,QAAS,EAClC,CAAC,SAAW,SAAW,QAAS,EAChC,CAAC,SAAU,UAAY,SAAU,EACjC,CAAC,UAAW,SAAW,QAAS,EAChC,CAAC,UAAY,UAAY,SAAU,EACnC,CAAC,SAAW,SAAW,SAAU,EACjC,CAAC,SAAW,UAAY,SAAU,EAClC,CAAC,UAAY,EAAG,SAAU,EAC1B,CAAC,EAAG,EAAG,SAAS,CACjB,EACD,KAAM,CACJ,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,GAAI,CAAC,EACZ,CAAC,EAAG,EAAG,GAAI,CAAC,EACZ,CAAC,EAAG,GAAI,GAAI,CAAC,EACb,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACjB,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,CAAC,CACpB,CACL,EAAK,EAAE,CAAC,EAAI,CACR,OAAQ,CACN,CAAC,SAAW,QAAU,OAAQ,EAC9B,CAAC,SAAW,QAAU,QAAS,EAC/B,CAAC,SAAW,SAAW,OAAQ,EAC/B,CAAC,QAAU,QAAU,OAAQ,EAC7B,CAAC,QAAU,QAAU,QAAS,CAC/B,EACD,KAAM,CACJ,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,EAAG,CAAC,CACZ,CACL,EAAK,EAAE,CAAC,EAAI,CACR,OAAQ,CACN,CAAC,SAAW,SAAW,MAAO,EAC9B,CAAC,SAAW,QAAU,MAAO,EAC7B,CAAC,QAAU,SAAW,QAAS,EAC/B,CAAC,QAAU,UAAW,OAAQ,EAC9B,CAAC,QAAU,QAAU,QAAS,EAC9B,CAAC,QAAU,SAAW,QAAS,CAChC,EACD,KAAM,CACJ,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,EAAG,EAAG,CAAC,CACf,CACL,EAAK,EAAE,EAAE,EAAI,CACT,OAAQ,CACN,CAAC,SAAW,QAAU,OAAQ,EAC9B,CAAC,SAAW,QAAU,QAAS,EAC/B,CAAC,SAAW,MAAQ,QAAS,EAC7B,CAAC,QAAU,OAAS,OAAQ,EAC5B,CAAC,QAAU,QAAU,OAAQ,CAC9B,EACD,KAAM,CACJ,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,CACT,CACL,EAAK,EAAE,EAAE,EAAI,CACT,OAAQ,CACN,CAAC,UAAW,QAAU,QAAS,EAC/B,CAAC,SAAW,SAAW,OAAQ,EAC/B,CAAC,SAAW,SAAW,QAAS,EAChC,CAAC,QAAS,QAAU,QAAS,EAC7B,CAAC,QAAU,QAAU,OAAQ,EAC7B,CAAC,QAAU,SAAW,OAAQ,EAC9B,CAAC,SAAU,QAAU,QAAS,CAC/B,EACD,KAAM,CACJ,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,CACT,CACL,EAAK,EAAE,EAAE,EAAI,CACT,OAAQ,CACN,CAAC,SAAW,QAAU,QAAS,EAC/B,CAAC,SAAW,QAAU,OAAQ,EAC9B,CAAC,OAAS,SAAU,CAAC,EACrB,CAAC,SAAW,SAAW,QAAS,EAChC,CAAC,SAAW,SAAW,OAAQ,EAC/B,CAAC,QAAU,QAAU,QAAS,EAC9B,CAAC,QAAU,QAAU,OAAQ,EAC7B,CAAC,MAAQ,UAAW,CAAC,EACrB,CAAC,QAAU,SAAW,QAAS,EAC/B,CAAC,QAAU,SAAW,OAAQ,CAC/B,EACD,KAAM,CACJ,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,CACZ,CACL,EAAK,EAAE,EAAE,EAAI,CACT,OAAQ,CACN,CAAC,SAAW,QAAU,QAAS,EAC/B,CAAC,SAAW,QAAU,OAAQ,EAC9B,CAAC,SAAW,SAAW,QAAS,EAChC,CAAC,SAAW,QAAU,CAAC,EACvB,CAAC,SAAW,SAAW,OAAQ,EAC/B,CAAC,SAAW,QAAU,QAAS,EAC/B,CAAC,QAAU,SAAW,QAAS,EAC/B,CAAC,QAAU,QAAU,OAAQ,EAC7B,CAAC,QAAU,SAAW,CAAC,EACvB,CAAC,QAAU,QAAU,QAAS,EAC9B,CAAC,QAAU,SAAW,OAAQ,EAC9B,CAAC,QAAU,SAAW,QAAS,CAChC,EACD,KAAM,CACJ,CAAC,GAAI,GAAI,CAAC,EACV,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,GAAI,CAAC,EACT,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,GAAI,EAAG,CAAC,EACT,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,GAAI,GAAI,EAAG,CAAC,EACb,CAAC,GAAI,EAAG,EAAG,CAAC,EACZ,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,GAAI,EAAG,CAAC,CACb,CACL,EAAK,EAAE,EAAE,EAAI,CACT,OAAQ,CACN,CAAC,QAAU,QAAU,QAAS,EAC9B,CAAC,SAAW,SAAW,QAAS,EAChC,CAAC,SAAW,QAAU,OAAQ,EAC9B,CAAC,SAAW,SAAW,OAAQ,EAC/B,CAAC,SAAW,QAAU,QAAS,EAC/B,CAAC,SAAW,SAAU,QAAS,EAC/B,CAAC,SAAW,OAAS,MAAO,EAC5B,CAAC,SAAW,SAAW,QAAS,EAChC,CAAC,SAAW,QAAU,QAAS,EAC/B,CAAC,SAAW,SAAW,OAAQ,EAC/B,CAAC,SAAW,QAAU,OAAQ,EAC9B,CAAC,SAAW,SAAW,QAAS,EAChC,CAAC,QAAU,QAAU,OAAQ,EAC7B,CAAC,QAAU,SAAW,QAAS,EAC/B,CAAC,OAAS,SAAU,OAAQ,EAC5B,CAAC,QAAU,SAAW,OAAQ,EAC9B,CAAC,QAAU,QAAU,OAAQ,EAC7B,CAAC,QAAU,SAAW,QAAS,EAC/B,CAAC,QAAU,SAAW,OAAQ,EAC9B,CAAC,QAAU,OAAS,OAAQ,EAC5B,CAAC,QAAU,QAAU,OAAQ,EAC7B,CAAC,QAAU,SAAW,OAAQ,EAC9B,CAAC,QAAU,SAAW,QAAS,EAC/B,CAAC,QAAU,QAAU,MAAO,EAC5B,CAAC,SAAU,QAAU,OAAQ,CAC9B,EACD,KAAM,CACJ,CAAC,GAAI,GAAI,EAAE,EACX,CAAC,GAAI,GAAI,EAAE,EACX,CAAC,EAAG,GAAI,CAAC,EACT,CAAC,EAAG,EAAG,CAAC,EACR,CAAC,EAAG,EAAG,EAAE,EACT,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,GAAI,CAAC,EACZ,CAAC,EAAG,GAAI,GAAI,EAAE,EACd,CAAC,GAAI,GAAI,GAAI,EAAE,EACf,CAAC,GAAI,GAAI,GAAI,EAAE,EACf,CAAC,GAAI,GAAI,GAAI,EAAE,EACf,CAAC,GAAI,GAAI,GAAI,EAAE,EACf,CAAC,GAAI,GAAI,GAAI,EAAE,EACf,CAAC,GAAI,GAAI,EAAG,CAAC,EACb,CAAC,GAAI,EAAG,GAAI,EAAE,EACd,CAAC,GAAI,GAAI,GAAI,EAAE,EACf,CAAC,EAAG,GAAI,GAAI,EAAE,EACd,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,EAAG,EAAG,CAAC,EACX,CAAC,EAAG,GAAI,GAAI,EAAG,CAAC,EAChB,CAAC,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAE,CACrC,CACL,EACE,MAAM,EAAIA,EAAE,OAASA,EAAE,KAAO,GAAKA,EAAE,MAAQ,EAAE,QAAU,EAAIA,EAAE,MAAQ,EAAG,EAAIA,EAAE,KAAM,EAAIA,EAAE,OAAS,GAAK,EAAGL,EAAIK,EAAE,OAAS,GAAK,EAAGJ,EAAII,EAAE,OAAS,GAAK,EAAG,EAAIA,EAAE,QAAU,EAAE,CAAC,EAAG,EAAI,EAAE,KAAK,OAAQ,EAAIA,EAAE,QAAU,IAAI,MAAM,CAAC,EAAG,EAAIA,EAAE,WAAY,EAAIA,EAAE,OAAS,OAAS,GAAKA,EAAE,KAAM,EAAIA,EAAE,kBAAoB,EAAI,EAAIA,EAAE,iBAAmButB,GAAG,YAAa/sB,EAAI,GAAImF,EAAI,CAAE,EAAEC,EAAI,GAAIC,EAAI,CAAE,EAAEC,EAAI,GACpY,IAAIC,EAAI,EAAGoB,EAAI,EACf,MAAM,EAAI,GACV,IAAIC,EAAI,EAAGC,EAAI,EAAGC,EAAGC,EAAGyB,EAAGvB,EAAGC,EAAGF,EACjC,GAAI,EACF,IAAKH,EAAI,EAAGA,EAAI,EAAGA,IACjB,GAAK,EAAEA,CAAC,IAAM,SAAW,EAAEA,CAAC,EAAI,IAAIwL,GAAG,EAAG,EAAG,EAAG,CAAC,GAAI,GAAK,EAAExL,CAAC,IAAM,SAAW,EAAEA,CAAC,EAAI,IAAIuI,GAAG,EAAG,EAAG,EAAG,CAAC,GAC1G,GAAI,EACF,IAAKvI,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACtB,MAAMO,EAAK,EAAE,KAAKP,CAAC,EAAE,OACrB,IAAK2B,EAAI,EAAI,KAAK,GAAKpB,EAAIH,EAAI,GAAM,KAAK,IAAIuB,EAAI,CAAC,EAAGtB,EAAI,GAAKN,EAAI,EAAGA,EAAIQ,EAAIR,IAC5E5G,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK6G,CAAC,EAAED,CAAC,CAAC,EAAE,CAAC,EAAI,EAAG,EAAE,OAAO,EAAE,KAAKC,CAAC,EAAED,CAAC,CAAC,EAAE,CAAC,EAAIzH,EAAG,EAAE,OAAO,EAAE,KAAK0H,CAAC,EAAED,CAAC,CAAC,EAAE,CAAC,EAAIxH,CAAC,EAAG,EAAE,KAAKmG,CAAC,EAAGA,IAAKuB,EAAI,EAAED,CAAC,EAAE,GAAK,EAAEA,CAAC,EAAE,EAAI,EAAEA,CAAC,EAAE,IAAM,GAAMI,GAAIF,EAAI,EAAEF,CAAC,EAAE,GAAK,EAAEA,CAAC,EAAE,EAAI,EAAEA,CAAC,EAAE,IAAMK,EAAI,IAAM7B,EAAE,KAAKyB,EAAGkc,GAAG,0BAA4B,EAAIjc,EAAIA,CAAC,EAAGC,EAAIC,EAAI,KAAK,IAAIuB,CAAC,EAAItB,EAAI,KAAK,IAAIsB,CAAC,EAAGtB,EAAID,EAAI,KAAK,IAAIuB,CAAC,EAAItB,EAAI,KAAK,IAAIsB,CAAC,EAAGvB,EAAID,EAAG,GAAK1B,EAAE,KAAK,EAAEuB,CAAC,EAAE,EAAG,EAAEA,CAAC,EAAE,EAAG,EAAEA,CAAC,EAAE,EAAG,EAAEA,CAAC,EAAE,CAAC,EACnY,IAAKD,EAAI,EAAGA,EAAIQ,EAAK,EAAGR,IACtBzB,EAAE,KAAK,EAAE,EAAIwB,CAAC,EAAG,EAAEC,EAAI,EAAID,CAAC,EAAG,EAAEC,EAAI,EAAID,CAAC,CAAC,EAC7CA,GAAKS,CACN,KACE,CACH,IAAKR,EAAI,EAAGA,EAAI,EAAE,OAAO,OAAQA,IAC/B5G,EAAE,KAAK,EAAE,OAAO4G,CAAC,EAAE,CAAC,EAAI,EAAG,EAAE,OAAOA,CAAC,EAAE,CAAC,EAAIzH,EAAG,EAAE,OAAOyH,CAAC,EAAE,CAAC,EAAIxH,CAAC,EAAGiG,EAAE,KAAK,EAAG2d,GAAG,0BAA4B,EAAI,CAAC,EACpH,IAAKnc,EAAI,EAAGA,EAAI,EAAGA,IACjB,IAAKD,EAAI,EAAGA,EAAI,EAAE,KAAKC,CAAC,EAAE,OAAS,EAAGD,IACpCzB,EAAE,KAAK,EAAE,KAAK0B,CAAC,EAAE,CAAC,EAAG,EAAE,KAAKA,CAAC,EAAED,EAAI,CAAC,EAAG,EAAE,KAAKC,CAAC,EAAED,EAAI,CAAC,CAAC,CAC5D,CACDmmB,GAAG,eAAe/sB,EAAGmF,EAAGC,CAAC,EAAG2nB,GAAG,cAAc,EAAG/sB,EAAGmF,EAAGC,EAAGC,EAAG7F,EAAE,SAAUA,EAAE,OAAO,EACjF,MAAM2H,EAAK,IAAI4lB,GACf,OAAO5lB,EAAG,UAAYnH,EAAGmH,EAAG,QAAUhC,EAAGgC,EAAG,QAAU/B,EAAG+B,EAAG,IAAM9B,EAAG,GAAK,IAAM8B,EAAG,OAAS7B,GAAI6B,CAClG,CACA,SAASk7B,GAAG7iC,EAAG,EAAI,GAAI,EAAI,KAAM,CAC/B,MAAM,EAAI,IAAI4xB,GAAE5xB,EAAG,CAAC,EACpB,OAAO,EAAE,gBAAkB4xB,GAAE,2BAA2B,EAAE,eAAe,EAAG,EAAE,gCAAkC,EAAE,gBAAiBgR,GAAG,CAAC,EAAE,YAAY,EAAG,EAAE,SAAS,EAAG,CACxK,CACK,MAACE,IAAK,CAET,iBAAkBD,EACpB,EACAtV,GAAG,iBAAmBqV,GACtBhR,GAAE,iBAAmB,CAAC5xB,EAAG,EAAG,IAAM6iC,GAAG7iC,EAAG,EAAG,CAAC,EAC5C,SAAS+iC,GAAG/iC,EAAG,CACb,MAAM,EAAIA,EAAE,iBAAmButB,GAAG,YAAa,EAAIvtB,EAAE,QAAU,EAAG,EAAIA,EAAE,OAAS,OAAS,GAAKA,EAAE,KAAM,GAAKA,EAAE,cAAgB,GAAK,EAAGL,EAAIK,EAAE,SAAW,EAAGJ,EAAII,EAAE,SAAW,EAAG,EAAIA,EAAE,SAAW,EAAG,GAAK,EAAI,KAAK,KAAK,CAAC,GAAK,EAAG,EAAI,CAChO,GACA,EACA,GACA,EACA,EACA,EACA,GACA,CAAC,EACD,EACA,EACA,CAAC,EACD,EACA,EACA,GACA,CAAC,EACD,EACA,EACA,CAAC,EACD,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,CAAC,EACD,EACA,EACA,CAAC,EACD,EACA,EAED,EAAE,EAAI,CACL,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,CACD,EAAE,EAAI,CACL,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GAEA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EAED,EAAE,EAAI,CACL,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAEA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CAEJ,EAAKQ,EAAI,IAAM,KAAMmF,EAAI,IAAM,KAAMC,EAAI,GAAK,KAAMC,EAAI,GAAK,KAAMC,EAAI,IAAM,KAAMC,EAAI,GAAK,KAAMoB,EAAI,CAClG,EACA,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K;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uQAkD3CxjC,GAAE,qBAAqBujC,GAAE,EAAIC,IAC7B,MAAMC,IAAK,2BAA4BC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0B/BtlC,GAAE,qBAAqBqlC,GAAE,EAAIC,IAC7B,MAAMC,IAAK,qBAAsBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwPtC1hD,GAAE,qBAAqByhD,GAAE,EAAIC,IAC7B,MAAMC,IAAK,gBAAiBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmLjC5hD,GAAE,qBAAqB2hD,GAAE,EAAIC,IAC7B,MAAMC,IAAK,oBAAqBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoPrC9hD,GAAE,qBAAqB6hD,GAAE,EAAIC,IAC7B,MAAMC,IAAK,sBAAuBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyCvChiD,GAAE,qBAAqB+hD,GAAE,EAAIC,IAC7B,MAAMC,IAAK,qBAAsBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyL5B1jD,GAAE,qBAAqByjD,GAAE,EAAIC,IAC7B,MAAMC,IAAK,iBAAkBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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AAAA,EAEL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;AAAA,EACL,GAAK;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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAmQlDvrE,GAAE,aAAasrE,GAAE,EAAIC,IACrB,IAAAC,IAAA,KAAS,CACP,YAAY,EAAG,EAAG,CAChB,KAAK,WAAa,GAAI,KAAK,WAAa,CAAE,EAAE,KAAK,kBAAoB,GAAI,KAAK,QAAU,EAAG,KAAK,QAAU,EAAG,KAAK,qBAAuB,CACvI,WAAY,CACV,WACA,kBACA,MACA,OACA,OACA,OACA,QACA,YACA,mBACA,QACA,YACA,kBACA,oBACA,mBACD,EACD,cAAe,CACb,eACA,YACA,YACA,WACA,SACA,SACA,YACA,aACA,UACA,YACA,aACA,aACA,aACA,aACA,SACA,sBACA,SACA,YACA,aACA,aACA,cACA,YACA,gBACA,sBACD,EACD,oBAAqB,CAAE,EACvB,SAAU,CACR,gBACA,iBACA,sBACA,8BACA,0BACA,+BACA,eACA,qBACD,EACD,QAAS,GACT,UAAW,KACX,WAAY,KACZ,QAAS,KACT,gBAAiB,KACjB,sBAAuB,EACvB,0BAA2B,CAAE,CACnC,CACG,CACD,aAAc,CACZ,KAAK,cAAgB,OAAQ,KAAK,WAAW,OAAS,EAAG,KAAK,WAAW,OAAS,CACnF,CACD,uBAAwB,CACtB,MAAO,CAAC,CAAC,KAAK,aACf,CACD,qBAAsB,CACpB,IAAI,EACJ,QAAS,EAAI,KAAK,gBAAkB,KAAO,OAAS,EAAE,QAAS,IAAK,EACrE,CACD,mBAAmB,EAAG,CACpB,OAAO,KAAK,qBAAqB,0BAA4B,CAAC,aAAa,EAAG,KAAK,qBAAqB,0BAA0B,KAAK,QAAQ,EAAG,KAAK,qBAAqB,0BAA0B,KAAK,SAAS,EAAG,KAAK,qBAAqB,0BAA0B,KAAK,SAAS,EAAG,KAAK,qBAAqB,0BAA0B,KAAK,SAAS,EAAG,KAAK,qBAAqB,0BAA0B,KAAK,cAAc,EAAG,KAAK,QAAQ,+BAA+BR,IAAM,KAAK,qBAAqB,0BAA0B,KAAK,oBAAoB,EAAG,KAAK,QAAQ,wBAA0B,KAAK,qBAAqB,0BAA0B,KAAK,UAAU,EAAG,KAAK,QAAQ,mBAAqB,KAAK,qBAAqB,0BAA0B,KAAK,qBAAqB,EAAG,KAAK,QAAQ,eAAiB,KAAK,qBAAqB,0BAA0B,KAAK,sBAAsB,EAAG,KAAK,qBAAqB,0BAA0B,KAAK,sBAAsB,GAAI,KAAK,qBAAqB,0BAA0B,KAAK,UAAU,EAAG,KAAK,QAAQ,0BAA4B,KAAK,qBAAqB,0BAA0B,KAAK,cAAc,EAAG,KAAK,QAAQ,uBAAyB,KAAK,qBAAqB,0BAA0B,KAAK,oBAAoB,GAAI,KAAK,qBAAqB,QAAU,EAAG,KAAK,cAAgB,IAAI3nE,GAAG,qBAAsB,KAAK,qBAAsB,KAAK,OAAO,EAAG,IAAIooE,IAAG,KAAK,aAAa,CAC75C,CACD,oBAAoB,EAAG,EAAG,CACxB,KAAK,WAAW,KAAK,KAAK,iBAAiB,CAAC,CAAC,EAAG,KAAK,WAAW,KAAK,KAAK,QAAQ,wBAAwB,EAAG,KAAM,KAAK,QAAQ,YAAY,KAAK,QAAQ,SAAS,EAAE,MAAM,CAAC,EAAG,KAAK,QAAQ,gBAAgB,IAAI,EAAG,KAAK,qBAAuB,CAC/O,CACD,qBAAqB,EAAG,CACtB,OAAO,CACR,CACD,gBAAgB,EAAG,EAAG,EAAG,CACvB,EAAI,KAAK,QAAQ,YAAY,KAAK,qBAAsB,EAAG,CAAC,EAAI,KAAK,QAAQ,sBAAsB,KAAK,WAAW,CAAC,EAAG,IAAI,CAC5H,CACD,yBAA0B,CACxB,MAAM,EAAI,KAAK,QACf,GAAI,KAAK,QAAQ,aAAa,KAAK,aAAa,EAAG,CAAC,EAAE,SACpD,MAAM,IAAI,MAAM,8EAA8E,CACjG,CACD,qBAAqB,EAAG,EAAG,EAAG,CAC5B,KAAK,cAAc,WAAW,gBAAiB,KAAK,QAAQ,cAAc,EAAG,KAAK,cAAc,WAAW,iBAAkB,KAAK,QAAQ,eAAe,EAAG,KAAK,QAAQ,uBAAyB,KAAK,cAAc,WAAW,sBAAuB,KAAK,QAAQ,qBAAqB,EAAG,KAAK,QAAQ,+BAAiC,KAAK,cAAc,WAAW,8BAA+B,KAAK,QAAQ,6BAA6B,EAAG,KAAK,QAAQ,2BAA6B,KAAK,cAAc,WAAW,0BAA2B,KAAK,QAAQ,yBAAyB,EAAG,KAAK,QAAQ,gCAAkC,KAAK,cAAc,WAAW,+BAAgC,KAAK,QAAQ,8BAA8B,EAAG,KAAK,QAAQ,uBAAyB,KAAK,cAAc,WAAW,sBAAuB,KAAK,QAAQ,qBAAqB,EAAG,KAAK,QAAQ,cAAgB,KAAK,cAAc,WAAW,eAAgB,KAAK,QAAQ,YAAY,EAAG,KAAK,QAAQ,sBAAsB,KAAK,WAAW,CAAC,EAAG,IAAI,EAC7/B,MAAM,EAAI,KAAK,QACf,EAAE,4BAA4B,EAAE,UAAW,GAAG,EAAE,mBAAmB,EAAE,EAAG,EAAE,uBAAuB,EAAE,EAAG,EAAE,eAAe,EAAG,EAAG,CAAC,EAAG,EAAE,qBAAoB,EAAI,EAAE,mBAAmB,EAAE,EAAG,EAAE,4BAA4B,IAAI,CACxN,CACD,gBAAiB,CAChB,CACD,sBAAuB,CACrB,QAAS,EAAI,EAAG,EAAI,KAAK,WAAW,OAAQ,IAC1C,KAAK,QAAQ,yBAAyB,KAAK,WAAW,CAAC,CAAC,EAC1D,KAAK,WAAW,OAAS,EACzB,QAAS,EAAI,EAAG,EAAI,KAAK,WAAW,OAAQ,IAC1C,KAAK,QAAQ,yBAAyB,KAAK,WAAW,CAAC,CAAC,EAC1D,KAAK,WAAW,OAAS,CAC1B,CACD,iBAAiB,EAAG,CAClB,MAAM,EAAI,GACV,EAAE,SAAW,EAAE,mBAAmB,WAAY,EAAG,CAAC,EAClD,IAAI,EAAI,EACR,EAAE,IAAM,EAAE,mBAAmB,MAAO,EAAG,CAAC,EAAG,GAAK,EAAG,EAAE,KAAO,EAAE,mBAAmB,OAAQ,EAAG,CAAC,EAAG,GAAK,EAAG,EAAE,KAAO,EAAE,mBAAmB,OAAQ,EAAG,CAAC,EAAG,GAAK,EAAG,EAAE,KAAO,EAAE,mBAAmB,OAAQ,EAAG,CAAC,EAAG,GAAK,EAAG,EAAE,UAAY,EAAE,mBAAmB,YAAa,EAAG,CAAC,EAAG,GAAK,EAAG,KAAK,QAAQ,+BAA+BT,KAAO,EAAE,gBAAkB,EAAE,mBAAmB,kBAAmB,EAAG,CAAC,EAAG,GAAK,GAAI,KAAK,QAAQ,yBAA2B,EAAE,MAAQ,EAAE,mBAAmB,QAAS,EAAG,CAAC,EAAG,GAAK,GAAI,KAAK,QAAQ,oBAAsB,EAAE,iBAAmB,EAAE,mBAAmB,mBAAoB,EAAG,CAAC,EAAG,GAAK,GAAI,KAAK,QAAQ,eAAiB,EAAE,kBAAoB,EAAE,mBAAmB,oBAAqB,EAAG,CAAC,EAAG,GAAK,EAAG,EAAE,kBAAoB,EAAE,mBAAmB,oBAAqB,EAAG,CAAC,EAAG,GAAK,GAAI,KAAK,QAAQ,+BAAiC,EAAE,MAAQ,EAAE,mBAAmB,QAAS,EAAG,CAAC,EAAG,GAAK,IAAM,EAAE,MAAQ,EAAE,mBAAmB,QAAS,EAAG,CAAC,EAAG,GAAK,GAAI,KAAK,QAAQ,2BAA6B,EAAE,UAAY,EAAE,mBAAmB,YAAa,EAAG,CAAC,EAAG,GAAK,EAAG,KAAK,QAAQ,wBAA0B,EAAE,gBAAkB,EAAE,mBAAmB,kBAAmB,EAAG,CAAC,EAAG,GAAK,IACtpC,MAAM,EAAI,KAAK,QAAQ,wBAAwB,EAAG,KAAM,KAAK,aAAa,EAC1E,OAAO,KAAK,QAAQ,gBAAgB,IAAI,EAAG,CAC5C,CACH,EACAnhE,GAAE,+BAAgC6hE,GAAE,EACpC,MAAMC,IAAK,kCAAmCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuRnD5rE,GAAE,iBAAiB2rE,GAAE,EAAIC,IACzB,IAAAC,IAAA,KAAS,CACP,YAAY,EAAG,EAAG,CAChB,KAAK,qBAAuB,CAAE,EAAE,KAAK,qBAAuB,CAAE,EAAE,KAAK,kBAAoB,GAAI,KAAK,QAAU,EAAG,KAAK,QAAU,CAC/H,CACD,aAAc,CACZ,KAAK,qBAAuB,OAAQ,KAAK,qBAAqB,OAAS,EAAG,KAAK,qBAAqB,OAAS,CAC9G,CACD,uBAAwB,CACtB,MAAO,CAAC,CAAC,KAAK,oBACf,CACD,qBAAsB,CACpB,IAAI,EACJ,QAAS,EAAI,KAAK,uBAAyB,KAAO,OAAS,EAAE,QAAS,IAAK,EAC5E,CACD,mBAAmB,EAAG,CACpB,IAAI7uE,EACJ,MAAMyE,EAAI,CACR,OAAQ,CAAE,MAAO,EAAG,QAAS,CAAG,EAChC,YAAa,CAAE,MAAO,EAAG,QAAS,CAAG,EACrC,aAAc,CAAE,MAAO,EAAG,QAAS,CAAG,EACtC,cAAe,CAAE,MAAO,EAAG,QAAS,CAAG,EACvC,eAAgB,CAAE,MAAO,EAAG,QAAS,CAAG,CAC9C,EACI,OAAO,KAAK,QAAQ,wBAA0BA,EAAE,oBAAsB,CAAE,MAAO,EAAG,QAAS,IAAM,KAAK,QAAQ,gCAAkCA,EAAE,4BAA8B,CAAE,MAAO,EAAG,QAAS,CAAC,GAAK,KAAK,QAAQ,4BAA8BA,EAAE,wBAA0B,CAAE,MAAO,EAAG,QAAS,CAAG,GAAG,KAAK,QAAQ,iCAAmCA,EAAE,6BAA+B,CAAE,MAAO,EAAG,QAAS,IAAM,KAAK,QAAQ,wBAA0BA,EAAE,oBAAsB,CAAE,MAAO,EAAG,QAAS,CAAG,GAAG,KAAK,QAAQ,eAAiBA,EAAE,aAAe,CAAE,MAAO,EAAG,QAAS,EAAE,GAAK,KAAK,qBAAuB,IAAI8yC,GAAG,kBAAmB,KAAK,QAAS,qBAAsB,CAAE,gBAAiB9yC,EAAG,QAAS,EAAE,MAAM;AAAA,CAClsB,CAAC,CAAE,GAAIzE,EAAI,KAAK,0BAA4B,MAAQA,EAAE,QAAS,EAAE,KAAK,wBAA0B,IAAIuT,GAAG,KAAK,QAAS,OAAQ,OAAQ,gCAAgC,EAAG,KAAK,wBAAwB,WAAW,eAAgB,CAAC,EAAG,KAAK,wBAAwB,WAAW,YAAa,CAAC,EAAG,KAAK,wBAAwB,WAAW,aAAc,CAAC,EAAG,KAAK,wBAAwB,WAAW,oBAAqB,CAAC,EAAG,KAAK,wBAAwB,WAAW,WAAY,CAAC,EAAG,KAAK,wBAAwB,WAAW,YAAa,CAAC,EAAG,KAAK,QAAQ,yBAA2B,KAAK,wBAAwB,WAAW,SAAU,CAAC,EAAG,KAAK,wBAAwB,WAAW,SAAU,CAAC,GAAI,KAAK,wBAAwB,WAAW,YAAa,CAAC,EAAG,KAAK,wBAAwB,WAAW,aAAc,CAAC,EAAG,KAAK,wBAAwB,WAAW,aAAc,CAAC,EAAG,KAAK,wBAAwB,WAAW,UAAW,CAAC,EAAG,KAAK,QAAQ,gCAAkC,KAAK,wBAAwB,WAAW,uBAAwB,CAAC,EAAG,KAAK,QAAQ,yBAA2B,KAAK,wBAAwB,WAAW,YAAa,CAAC,EAAG,KAAK,QAAQ,cAAgB,KAAK,wBAAwB,WAAW,gBAAiB,CAAC,EAAG,KAAK,QAAQ,SAAW,KAAK,wBAAwB,WAAW,YAAa,EAAE,EAAG,KAAK,QAAQ,qBAAuB,KAAK,QAAQ,oBAAoB,mBAAmB,KAAK,uBAAuB,EAAG,KAAK,qBAAqB,iBAAiB,SAAU,KAAK,uBAAuB,EAAG,IAAIk7D,IAAG,KAAK,uBAAuB,CAC9+C,CACD,oBAAoB,EAAG,EAAG,CACxB,KAAK,qBAAqB,KAAK,CAAC,CACjC,CACD,qBAAqB,EAAG,CACtB,MAAM,EAAI,IAAIK,IAAG,KAAK,QAAS,EAAE,OAAS,EAAG,GAAI,mCAAmC,EACpF,OAAO,EAAE,OAAO,CAAC,EAAG,KAAK,qBAAqB,KAAK,CAAC,EAAG,EAAE,UAAS,CACnE,CACD,gBAAgB,EAAG,EAAG,EAAG,CACvB,KAAK,QAAQ,YAAY,KAAK,qBAAqB,CAAC,EAAG,EAAG,CAAC,CAC5D,CACD,yBAA0B,CACzB,CACD,qBAAqB,EAAG,EAAG,EAAG,CAC5B,KAAK,wBAAwB,OAAQ,EAAE,KAAK,qBAAqB,WAAW,gBAAiB,KAAK,QAAQ,eAAgB,EAAE,EAAG,KAAK,qBAAqB,WAAW,iBAAkB,KAAK,QAAQ,gBAAiB,EAAE,EAAG,KAAK,QAAQ,uBAAyB,KAAK,qBAAqB,WAAW,sBAAuB,KAAK,QAAQ,qBAAqB,EAAG,KAAK,QAAQ,+BAAiC,KAAK,qBAAqB,WAAW,8BAA+B,KAAK,QAAQ,6BAA6B,EAAG,KAAK,QAAQ,2BAA6B,KAAK,qBAAqB,WAAW,0BAA2B,KAAK,QAAQ,yBAAyB,EAAG,KAAK,QAAQ,gCAAkC,KAAK,qBAAqB,WAAW,+BAAgC,KAAK,QAAQ,8BAA8B,EAAG,KAAK,QAAQ,uBAAyB,KAAK,qBAAqB,WAAW,sBAAuB,KAAK,QAAQ,qBAAqB,EAAG,KAAK,QAAQ,cAAgB,KAAK,qBAAqB,WAAW,eAAgB,KAAK,QAAQ,YAAY,EAAG,KAAK,qBAAqB,iBAAiB,cAAe,KAAK,qBAAqB,CAAC,CAAC,EAAG,KAAK,qBAAqB,iBAAiB,eAAgB,KAAK,qBAAqB,EAAI,CAAC,CAAC,EAAG,KAAK,qBAAqB,SAAS,KAAK,KAAK,EAAI,EAAE,CAAC,CACrxC,CACD,gBAAiB,CACf,IAAI,EACJ,QAAS,EAAI,EAAG,EAAI,KAAK,qBAAqB,OAAQ,EAAE,EACtD,KAAK,qBAAqB,CAAC,EAAE,QAAO,EACtC,KAAK,qBAAqB,OAAS,GAAI,EAAI,KAAK,0BAA4B,MAAQ,EAAE,QAAS,EAAE,KAAK,wBAA0B,KAAM,KAAK,qBAAuB,IACnK,CACD,sBAAuB,CACrB,KAAK,qBAAqB,OAAS,CACpC,CACH,EACAjiE,GAAE,sCAAuCkiE,GAAE,EAC3C,IAAAC,GAAA,KAAS,CAOP,YAAY,EAAG,EAAG,EAAG,CACnB,KAAK,SAAW,EAAG,KAAK,OAAS,EAAG,KAAK,OAAS,CACnD,CAMD,cAAc,EAAG,CACf,GAAI,CAAC,KAAK,OAAQ,CAChB,EAAE,SAAS,KAAK,MAAM,EACtB,MACD,CACDt8D,GAAG,UAAU,KAAK,OAAQ,KAAK,OAAQ,KAAK,SAAU,CAAC,CACxD,CACH,EACAu8D,IAAA,KAAS,CAMP,YAAY,EAAG,EAAG,CAChB,KAAK,SAAW,EAAG,KAAK,MAAQ,CACjC,CACH,EACAC,GAAA,KAAS,CAOP,YAAY,EAAG,EAAG,EAAG,CACnB,KAAK,SAAW,EAAG,KAAK,QAAU,EAAG,KAAK,QAAU,CACrD,CAMD,WAAY,CACV,OAAO,KAAK,UAAY,QAAU,KAAK,UAAY,KAAK,QAAU,KAAK,QAAU,KAAK,SAAW,KAAK,QAAU,KAAK,SAAW,KAAK,QACtI,CACH,EACAC,GAAA,KAAS,CAOP,OAAO,mBAAmB,EAAG,EAAG,EAAG,CACjC,GAAI,EAAE,CAAC,EAAE,SAAW,EAAG,CACrB,EAAE,EAAE,CAAC,EAAG,EAAE,CAAC,EAAG,CAAC,EACf,MACD,CACD,QAAS3vE,EAAI,EAAGA,EAAI,EAAE,OAAS,EAAGA,IAAK,CACrC,MAAMC,EAAI,EAAED,CAAC,EAAG,EAAI,EAAEA,EAAI,CAAC,EAC3B,GAAI,GAAKC,EAAE,UAAY,GAAK,EAAE,SAAU,CACtC,MAAM,GAAK,EAAIA,EAAE,WAAa,EAAE,SAAWA,EAAE,UAC7C,EAAEA,EAAG,EAAG,CAAC,EACT,MACD,CACF,CACD,MAAM,EAAI,EAAE,OAAS,EACrB,EAAE,EAAE,CAAC,EAAG,EAAE,CAAC,EAAG,CAAC,CAChB,CACH,EACA2vE,GAAA,MAAMC,EAAG,CAKP,YAAY,EAAG,CACb,KAAK,eAAiB,EAAG,KAAK,SAAWrgE,EAAE,KAAM,EAAE,KAAK,UAAYA,EAAE,KAAM,EAAE,KAAK,MAAQ,IAAI0D,GAAG,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,UAAY,IAAIA,GAAG,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,SAAW,EAAG,KAAK,IAAM,EAAG,KAAK,KAAO,EAAG,KAAK,MAAQ,IAAI3D,GAAE,EAAG,CAAC,EAAG,KAAK,MAAQ,EAAG,KAAK,aAAe,EAAG,KAAK,UAAY,EAAG,KAAK,qBAAuB,KAAM,KAAK,eAAiB,IAAI2D,GAAG,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,eAAiB,IAAIA,GAAG,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,cAAgB,EAAG,KAAK,cAAgB,EAAG,KAAK,sBAAwB,EAAG,KAAK,sBAAwB,EAAG,KAAK,kBAAoB,EAAG,KAAK,kBAAoB,EAAG,KAAK,uBAAyB,EAAG,KAAK,uBAAyB,EAAG,KAAK,cAAgB,EAAG,KAAK,cAAgB,EAAG,KAAK,GAAK28D,GAAG,SAAU,KAAK,eAAe,yBAA2B,KAAK,0BAAyB,CAC9wB,CACD,2BAA4B,CAC1B,KAAK,UAAY,KAAK,eAAe,iBACtC,CAID,iBAAkB,CAChB,IAAI,EAAI,KAAK,IAAK,EAAI,KAAK,eAAe,sBAC1C,KAAK,eAAe,wBAA0B,KAAK,oBAAsB,SAAW,KAAK,kBAAoB,KAAK,OAAM,EAAK,KAAK,UAAW,IAAM,GAAK,EAAI,EAAG,EAAI,KAAK,mBAAqB,GAAK,KAAK,mBACvM,MAAM,EAAI,KAAK,wBAA0B,KAAK,0BAA4B,EAC1E,IAAI,EACJ,KAAK,uBAAyB,EAAI1gE,GAAG,EAAI,EAAI,KAAK,SAAW,KAAK,QAAQ,EAAI,EAAIA,GAAG,EAAI,EAAI,KAAK,QAAQ,EAAG,KAAK,UAAY,KAAK,0BAA4B,EAAI,EAAI,CACxK,CAID,iCAAiC,EAAG,CAClC,GAAI,EAAE,eAAe,QAAQ,SAAU,CACrC,MAAM,EAAI,EAAE,eAAe,QAC3B,GAAI,EAAE,SAAS,SAAS,KAAK,QAAQ,EAAG,EAAE,iBAAkB,CAC1D,MAAM,EAAIQ,EAAE,QAAQ,CAAC,EACrB,KAAK,UAAU,eAAe,CAAC,EAAG,EAAE,aAAa,EAAG,EAAG,KAAK,GAAK,CAAC,CACnE,CACF,MACC,EAAE,eAAe,QAAQ,SAAS,KAAK,QAAQ,EACjD,KAAK,UAAU,WAAW,EAAE,wBAA0B,EAAGA,EAAE,QAAQ,CAAC,CAAC,EAAG,EAAE,eAAe,yBAAyB,SAASA,EAAE,QAAQ,CAAC,CAAC,CACxI,CAED,mCAAoC,CAClC,KAAK,sBAAwB,KAAK,qBAAqB,OAAS,GAAK,KAAK,qBAAqB,QAAS,GAAM,CAC5G,KAAK,iCAAiC,CAAC,CAC7C,CAAK,CACF,CAED,QAAS,CACP,KAAK,IAAM,EAAG,KAAK,GAAKkgE,GAAG,SAAU,KAAK,sBAAwB,KAAM,KAAK,qBAAuB,KAAM,KAAK,6BAA+B,KAAM,KAAK,yBAA2B,KAAM,KAAK,8BAAgC,KAAM,KAAK,qBAAuB,KAAM,KAAK,UAAY,KAAK,eAAe,kBAAmB,KAAK,kBAAoB,MACzV,CAKD,OAAO,EAAG,CACR,EAAE,SAAS,SAAS,KAAK,QAAQ,EAAG,KAAK,kBAAoB,EAAE,kBAAoB,EAAE,kBAAkB,SAAS,KAAK,iBAAiB,EAAI,EAAE,kBAAoB,KAAK,kBAAkB,MAAK,EAAK,EAAE,kBAAoB,KAAM,EAAE,UAAU,SAAS,KAAK,SAAS,EAAG,KAAK,iBAAmB,EAAE,eAAiB,EAAE,eAAe,SAAS,KAAK,cAAc,EAAI,EAAE,eAAiB,KAAK,eAAe,MAAO,GAAG,EAAE,MAAM,SAAS,KAAK,KAAK,EAAG,EAAE,UAAU,SAAS,KAAK,SAAS,EAAG,EAAE,SAAW,KAAK,SAAU,EAAE,IAAM,KAAK,IAAK,EAAE,kBAAoB,KAAK,kBAAmB,EAAE,KAAO,KAAK,KAAM,EAAE,MAAM,SAAS,KAAK,KAAK,EAAG,EAAE,MAAQ,KAAK,MAAO,EAAE,aAAe,KAAK,aAAc,EAAE,eAAiB,KAAK,eAAgB,EAAE,UAAY,KAAK,UAAW,EAAE,GAAK,KAAK,GAAI,EAAE,qBAAuB,KAAK,qBAAsB,KAAK,wBAA0B,EAAE,sBAAwB,KAAK,sBAAuB,EAAE,eAAe,SAAS,KAAK,cAAc,EAAG,EAAE,eAAe,SAAS,KAAK,cAAc,GAAI,KAAK,uBAAyB,EAAE,qBAAuB,KAAK,qBAAsB,EAAE,cAAgB,KAAK,cAAe,EAAE,cAAgB,KAAK,eAAgB,KAAK,+BAAiC,EAAE,6BAA+B,KAAK,6BAA8B,EAAE,sBAAwB,KAAK,sBAAuB,EAAE,sBAAwB,KAAK,uBAAwB,KAAK,2BAA6B,EAAE,yBAA2B,KAAK,yBAA0B,EAAE,kBAAoB,KAAK,kBAAmB,EAAE,kBAAoB,KAAK,mBAAoB,KAAK,gCAAkC,EAAE,8BAAgC,KAAK,8BAA+B,EAAE,uBAAyB,KAAK,uBAAwB,EAAE,uBAAyB,KAAK,wBAAyB,KAAK,uBAAyB,EAAE,qBAAuB,KAAK,qBAAsB,EAAE,cAAgB,KAAK,cAAe,EAAE,cAAgB,KAAK,eAAgB,KAAK,eAAe,0BAA4B,EAAE,0BAA4B,KAAK,0BAA2B,EAAE,wBAA0B,KAAK,wBAAyB,EAAE,uBAAyB,KAAK,wBAAyB,KAAK,eAAe,mBAAqB,EAAE,WAAa,KAAK,UAAY,EAAE,UAAU,SAAS,KAAK,SAAS,EAAI,EAAE,UAAY,IAAI5/D,GAAG,EAAG,EAAG,EAAG,CAAC,GAAI,KAAK,2BAA6B,EAAE,0BAA4B,EAAE,yBAAyB,SAAS,KAAK,wBAAwB,EAAG,EAAE,yBAAyB,SAAS,KAAK,wBAAwB,IAAM,EAAE,yBAA2B,KAAK,yBAAyB,MAAO,EAAE,EAAE,yBAA2B,KAAK,yBAAyB,MAAK,GAC9kF,CACH,EACA4/D,GAAG,OAAS,EACZ,MAAMC,IAAK,uBAAwBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAoCxCvsE,GAAE,aAAassE,GAAE,EAAIC,IACrB,MAAMC,IAAK,wBAAyBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA0EzCzsE,GAAE,aAAawsE,GAAE,EAAIC,YACrB,MAAMC,WAAWxjB,EAAG,CAIlB,IAAI,UAAU,EAAG,CACf,KAAK,oBAAsB,KAAK,oBAAoB,OAAO,KAAK,kBAAkB,EAAG,KAAK,mBAAqB,KAAK,oBAAoB,IAAI,CAAC,CAC9I,CAID,IAAI,kBAAmB,CACrB,OAAO,KAAK,iBACb,CACD,IAAI,iBAAiB,EAAG,CACtB,KAAK,oBAAsB,IAAM,KAAK,kBAAoB,EAAG,KAAK,aAAY,EAC/E,CAID,IAAI,WAAY,CACd,OAAO,KAAK,UACb,CAKD,gBAAiB,CACf,OAAO,KAAK,WAAW,MACxB,CAKD,cAAe,CACb,MAAO,gBACR,CAKD,YAAa,CACX,OAAO,KAAK,UAAY,KAAK,QAAO,CACrC,CAMD,gBAAgB,EAAI,EAAG,CACrB,IAAI,EACJ,QAAS,EAAI,KAAK,gBAAgB,CAAC,IAAM,KAAO,OAAS,EAAE,SAAW,KAAK,gBAAgB,CAAC,EAAE,MAC/F,CACD,sBAAsB,EAAI,EAAG,CAC3B,OAAO,KAAK,gBAAgB,CAAC,GAAK,KAAK,gBAAgB,CAAC,CACzD,CAMD,gBAAgB,EAAG,EAAI,EAAG,CACxB,KAAK,gBAAgB,CAAC,EAAI,IAAIjoC,GAAG,KAAK,OAAO,EAAG,KAAK,gBAAgB,CAAC,EAAE,OAAS,EAAG,KAAK,gBAAgB,CAAC,EAAE,cAAgB,KAAK,gBAAgB,CAAC,EAAE,YAAY,cAAgB,KAAK,eACtL,CAID,IAAI,iCAAkC,CACpC,OAAO,KAAK,mCAAqC,KAAK,iCAAmC,IAAI3kB,IAAM,KAAK,gCACzG,CAID,IAAI,kBAAmB,CACrB,MAAO,WACR,CAID,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CAID,IAAI,aAAc,CAChB,OAAO,KAAK,YACb,CAWD,YAAY,EAAG,EAAG,EAAG,EAAI,KAAME,EAAI,GAAIC,EAAI,IAAM,CAC/C,MAAM,CAAC,EAAG,KAAK,2BAA6B2P,EAAE,WAAY,KAAK,yBAA2B,IAAIJ,EAAK,KAAK,oBAAsB,IAAI1P,GAAK,KAAK,oBAAsB,IAAIA,GAAK,KAAK,WAAa,IAAI,MAAS,KAAK,gBAAkB,IAAI,MAAS,KAAK,gBAAkB,EAAG,KAAK,eAAiB,CAAE,EAAE,KAAK,iBAAmB,IAAIoT,GAAG,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,WAAa,IAAIA,GAAG,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,iBAAmB1D,EAAE,KAAI,EAAI,KAAK,eAAiBA,EAAE,KAAI,EAAI,KAAK,iBAAmB,GAAI,KAAK,eAAiB,GAAI,KAAK,SAAW,GAAI,KAAK,SAAW,GAAI,KAAK,aAAe,EAAG,KAAK,kBAAoB,EAAG,KAAK,kBAAoB,EAAG,KAAK,mBAAqB,EAAG,KAAK,mBAAqB,EAAG,KAAK,gBAAkB,GAAI,KAAK,iBAAmB,IAAK,KAAK,kBAAoB,GAAI,KAAK,QAAU,GAAI,KAAK,MAAQ,GAAI,KAAK,iCAAmC,KAAM,KAAK,kBAAqB,GAAM,CACx2B,EAAO,KAAK,gBAAmB,GAAM,CAC/B,MAAM,EAAI,KAAK,WAAW,IAAG,EAC7B,IAAM,GAAK,EAAE,OAAO,CAAC,EAAG,KAAK,gBAAgB,KAAK,CAAC,CACzD,EAAO,KAAK,gBAAkB,IAAM,CAC9B,IAAI,EACJ,OAAO,KAAK,gBAAgB,SAAW,GAAK,EAAI,KAAK,gBAAgB,MAAO,EAAE,UAAY,EAAI,IAAIqgE,GAAG,IAAI,EAAG,KAAK,iBAAiB,CAAC,EAAG,CACvI,EAAE,KAAK,UAAY,EAAG,KAAK,SAAW5vE,EAAG,KAAK,yBAA2BD,EAAG,CAAC,GAAK,EAAE,iBAAmB,SAAW,KAAK,OAAS,GAAKU,GAAG,iBAAkB,KAAK,QAAU,KAAK,OAAO,UAAS,EAAI,KAAK,SAAW,KAAK,OAAO,YAAa,EAAE,KAAK,OAAO,gBAAgB,KAAK,IAAI,IAAM,KAAK,QAAU,EAAG,KAAK,wBAA0BkP,EAAE,iBAAiB,GAAK,EAAG,GAAK,IAAK,KAAK,QAAQ,eAAe,GAAI,KAAK,QAAQ,QAAS,EAAC,oBAAsB,KAAK,mBAAqB,MAAO,KAAK,oCAAoC,IAAI,EAAG,KAAK,gBAAkB,CAAE,EAAG,IAAI6U,GAAG,KAAK,OAAO,GAAK,KAAK,gBAAgB,CAAC,EAAE,OAAS,EAAG,KAAK,cAAgB,GAAI,KAAK,eAAiB,KAAK,QAAQ,QAAS,EAAC,gBAAiB,KAAK,mBAAkB,EAAI,KAAK,qBAAsB,EAAE,KAAK,oBAAsB,IAAIipD,GACnxB,IAAI,EAAI,KACR,KAAK,eAAkB,GAAM,CAC3B,IAAI5sE,EACJ,IAAIwB,EAAI,KACR,KAAK,eAAiBA,EAAI,KAAK,aAAa,QAAO,GAAKxB,EAAI,KAAK,aAAa,eAAiB,MAAQA,EAAE,KAAM,GAAM,CACnH,EAAI,CACL,IACD,MAAMoI,EAAI,IAAM,KAAK,WACrB,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,CACjC,MAAMrI,EAAI,EAAE,CAAC,EACb,IAAImF,EAAI,KAAK,mBACb,MAAMC,EAAIpF,EAAE,IACZ,GAAIA,EAAE,KAAOmF,EAAGnF,EAAE,IAAMA,EAAE,SAAU,CAClC,MAAMuF,EAAIvF,EAAE,IAAMoF,EAClBD,GAAKnF,EAAE,SAAWoF,GAAKD,EAAII,EAAGvF,EAAE,IAAMA,EAAE,QACzC,CACD,MAAMqF,EAAIrF,EAAE,IAAMA,EAAE,SACpB,KAAK,iBAAmB,KAAK,gBAAgB,OAAS,EAAIsvE,GAAG,mBAAmBjqE,EAAG,KAAK,gBAAiB,CAACE,EAAGoB,EAAG,IAAM,CACpHpB,IAAMvF,EAAE,wBAA0BA,EAAE,eAAe,SAASA,EAAE,cAAc,EAAG2G,EAAE,cAAc3G,EAAE,cAAc,EAAGA,EAAE,sBAAwBuF,GAAI8M,GAAG,UAAUrS,EAAE,eAAgBA,EAAE,eAAgB,EAAGA,EAAE,KAAK,CACrN,CAAS,GAAKA,EAAE,UAAU,WAAWmF,EAAG,KAAK,gBAAgB,EAAGnF,EAAE,MAAM,WAAW,KAAK,gBAAgB,EAAGA,EAAE,MAAM,EAAI,IAAMA,EAAE,MAAM,EAAI,IAAK,KAAK,wBAA0B,KAAK,uBAAuB,OAAS,GAAKsvE,GAAG,mBAAmBjqE,EAAG,KAAK,uBAAwB,CAACE,EAAGoB,EAAG,IAAM,CAChRpB,IAAMvF,EAAE,+BAAiCA,EAAE,sBAAwBA,EAAE,sBAAuBA,EAAE,sBAAwB2G,EAAE,UAAW,EAAE3G,EAAE,6BAA+BuF,GAAIvF,EAAE,aAAeqO,GAAGrO,EAAE,sBAAuBA,EAAE,sBAAuB,CAAC,CAClP,GAAGA,EAAE,OAASA,EAAE,aAAemF,EAChC,IAAIG,EAAIH,EACR,GAAI,KAAK,oBAAsB,KAAK,mBAAmB,OAAS,GAAKmqE,GAAG,mBAAmBjqE,EAAG,KAAK,mBAAoB,CAACE,EAAGoB,EAAG,IAAM,CAClIpB,IAAMvF,EAAE,2BAA6BA,EAAE,kBAAoBA,EAAE,kBAAmBA,EAAE,kBAAoB2G,EAAE,UAAS,EAAI3G,EAAE,yBAA2BuF,GAAID,GAAK+I,GAAGrO,EAAE,kBAAmBA,EAAE,kBAAmB,CAAC,CACnN,CAAS,EAAGA,EAAE,UAAU,WAAWsF,EAAG,KAAK,gBAAgB,EAAG,KAAK,yBAA2B,KAAK,wBAAwB,OAAS,GAAKgqE,GAAG,mBAAmBjqE,EAAG,KAAK,wBAAyB,CAACE,EAAGoB,EAAG,IAAM,CACnMpB,IAAMvF,EAAE,gCAAkCA,EAAE,uBAAyBA,EAAE,uBAAwBA,EAAE,uBAAyB2G,EAAE,UAAS,EAAI3G,EAAE,8BAAgCuF,GAC3K,MAAMqB,EAAIyH,GAAGrO,EAAE,uBAAwBA,EAAE,uBAAwB,CAAC,EAClEA,EAAE,UAAU,OAAM,EAAK4G,GAAK5G,EAAE,UAAU,aAAa,KAAK,oBAAoB,CACxF,CAAS,EAAG,KAAK,gBAAkB,KAAK,eAAe,OAAS,GAAKsvE,GAAG,mBAAmBjqE,EAAG,KAAK,eAAgB,CAACE,EAAGoB,EAAG,IAAM,CACtHpB,IAAMvF,EAAE,uBAAyBA,EAAE,cAAgBA,EAAE,cAAeA,EAAE,cAAgB2G,EAAE,UAAS,EAAI3G,EAAE,qBAAuBuF,GAC9H,MAAMqB,EAAIyH,GAAGrO,EAAE,cAAeA,EAAE,cAAe,CAAC,EAChD,KAAK,iBAAiB,aAAa,EAAI4G,CAAC,CACzC,GAAG,KAAK,SAAW5G,EAAE,gBAAkBA,EAAE,eAAe,WAAW,KAAK,gBAAgB,EAAG2O,EAAE,0BAA0B3O,EAAE,eAAgB,KAAK,oBAAqBA,EAAE,QAAQ,GAAKA,EAAE,SAAS,WAAW,KAAK,gBAAgB,EAAG,GAAKyB,GAAKzB,EAAE,yBAA0B,CACrQ,MAAMuF,EAAI,KAAK,QAAQvF,EAAE,yBAAyB,EAAGA,EAAE,yBAAyB,EAAGyB,EAAE,MAAOA,EAAE,OAAQ,CAAC,EAAGkF,EAAI,KAAK,QAAQ3G,EAAE,yBAAyB,EAAGA,EAAE,yBAAyB,EAAGyB,EAAE,MAAOA,EAAE,OAAQ,CAAC,EAAG,EAAI,KAAK,QAAQzB,EAAE,yBAAyB,EAAGA,EAAE,yBAAyB,EAAGyB,EAAE,MAAOA,EAAE,OAAQ,CAAC,EAAGmF,EAAIkI,EAAE,QAAQ,CAAC,EAAGjI,EAAIiI,EAAE,QAAQ,CAAC,EACnVlI,EAAE,gBAAgB,EAAIrB,EAAI,GAAK,KAAK,cAAc,GAAI,EAAIoB,EAAI,GAAK,KAAK,cAAc,GAAI,EAAI,EAAI,GAAK,KAAK,cAAc,CAAC,EAAGC,EAAE,WAAWzB,EAAG0B,CAAC,EAAG7G,EAAE,UAAU,WAAW6G,CAAC,CAC3K,CACD,GAAI,KAAK,QAAQ,WAAW1B,EAAG,KAAK,cAAc,EAAGnF,EAAE,UAAU,WAAW,KAAK,cAAc,EAAG,KAAK,gBAAkB,KAAK,eAAe,OAAS,GAAKsvE,GAAG,mBAAmBjqE,EAAG,KAAK,eAAgB,CAACE,EAAGoB,EAAG,IAAM,CACpNpB,IAAMvF,EAAE,uBAAyBA,EAAE,cAAgBA,EAAE,cAAeA,EAAE,cAAgB2G,EAAE,UAAW,EAAE3G,EAAE,qBAAuBuF,GAAIvF,EAAE,KAAOqO,GAAGrO,EAAE,cAAeA,EAAE,cAAe,CAAC,CAC3L,CAAS,EAAG,KAAK,oBAAsB,KAAK,sBAAwB,KAAK,qBAAqB,OAAS,GAAKsvE,GAAG,mBAAmBjqE,EAAG,KAAK,qBAAsB,CAACE,EAAGoB,EAAG,IAAM,CACnK,MAAMC,EAAIyH,GAAG9I,EAAE,QAASoB,EAAE,QAAS,CAAC,EAAGE,EAAIwH,GAAG9I,EAAE,QAASoB,EAAE,QAAS,CAAC,EACrE3G,EAAE,UAAU,EAAI4G,EAAG5G,EAAE,UAAU,EAAI6G,EAAID,CACjD,CAAS,EAAG,KAAK,sBAAwB,KAAK,qBAAqB,OAAS,GAAK0oE,GAAG,mBAAmBjqE,EAAG,KAAK,qBAAsB,CAACE,EAAGoB,EAAG,IAAM,CACxI,MAAMC,EAAIyH,GAAG9I,EAAE,QAASoB,EAAE,QAAS,CAAC,EAAGE,EAAIwH,GAAG9I,EAAE,QAASoB,EAAE,QAAS,CAAC,EACrE3G,EAAE,UAAU,EAAI4G,EAAG5G,EAAE,UAAU,EAAI6G,EAAID,CACxC,IAAI,KAAK,0BAA4B5G,EAAE,gBAAiB,EAAEA,EAAE,kCAAmC,EAAEA,EAAE,KAAOA,EAAE,SAAU,CACrH,KAAK,kBAAkBA,CAAC,EAAGA,EAAE,uBAAyBA,EAAE,qBAAqB,QAASuF,GAAM,CAC1FA,EAAE,eAAe,cAAgB,GAAIA,EAAE,eAAe,MACvD,GAAGvF,EAAE,qBAAuB,MAAO,KAAK,gBAAgBA,CAAC,EAAGqI,GAAK,IAClE,QACD,CACF,CACP,CACG,CACD,UAAU,EAAG,CACX,MAAM,IAAI,MAAM,yBAAyB,CAC1C,CAOD,MAAM,EAAG,EAAG,EAAI,GAAI,CAClB,MAAM,IAAI,MAAM,yBAAyB,CAC1C,CACD,mBAAmB,EAAG,EAAG,EAAG,EAAG,CAC7B,MAAMlJ,EAAI,IAAIowE,GAAG,EAAG,EAAG,CAAC,EACxB,EAAE,KAAKpwE,CAAC,EAAG,EAAE,KAAK,CAACC,EAAG,IAAMA,EAAE,SAAW,EAAE,SAAW,GAAKA,EAAE,SAAW,EAAE,SAAW,EAAI,CAAC,CAC3F,CACD,sBAAsB,EAAG,EAAG,CAC1B,GAAI,CAAC,EACH,OACF,IAAI,EAAI,EACR,UAAW,KAAK,EAAG,CACjB,GAAI,EAAE,WAAa,EAAG,CACpB,EAAE,OAAO,EAAG,CAAC,EACb,KACD,CACD,GACD,CACF,CAQD,oBAAoB,EAAG,EAAG,EAAG,CAC3B,OAAO,KAAK,qBAAuB,KAAK,mBAAqB,IAAK,KAAK,mBAAmB,KAAK,mBAAoB,EAAG,EAAG,CAAC,EAAG,IAC9H,CAMD,uBAAuB,EAAG,CACxB,OAAO,KAAK,sBAAsB,KAAK,mBAAoB,CAAC,EAAG,IAChE,CAQD,gBAAgB,EAAG,EAAG,EAAG,CACvB,OAAO,KAAK,iBAAmB,KAAK,eAAiB,IAAK,KAAK,mBAAmB,KAAK,eAAgB,EAAG,EAAG,CAAC,EAAG,IAClH,CAMD,mBAAmB,EAAG,CACpB,OAAO,KAAK,sBAAsB,KAAK,eAAgB,CAAC,EAAG,IAC5D,CAQD,sBAAsB,EAAG,EAAG,EAAG,CAC7B,OAAO,KAAK,uBAAyB,KAAK,qBAAuB,IAAK,KAAK,mBAAmB,KAAK,qBAAsB,EAAG,EAAG,CAAC,EAAG,IACpI,CAMD,yBAAyB,EAAG,CAC1B,OAAO,KAAK,sBAAsB,KAAK,qBAAsB,CAAC,EAAG,IAClE,CAQD,sBAAsB,EAAG,EAAG,EAAG,CAC7B,OAAO,KAAK,uBAAyB,KAAK,qBAAuB,IAAK,KAAK,mBAAmB,KAAK,qBAAsB,EAAG,EAAG,CAAC,EAAG,IACpI,CAMD,yBAAyB,EAAG,CAC1B,OAAO,KAAK,sBAAsB,KAAK,qBAAsB,CAAC,EAAG,IAClE,CAQD,wBAAwB,EAAG,EAAG,EAAG,CAC/B,OAAO,KAAK,yBAA2B,KAAK,uBAAyB,IAAK,KAAK,mBAAmB,KAAK,uBAAwB,EAAG,EAAG,CAAC,EAAG,IAC1I,CAMD,2BAA2B,EAAG,CAC5B,OAAO,KAAK,sBAAsB,KAAK,uBAAwB,CAAC,EAAG,IACpE,CAQD,oBAAoB,EAAG,EAAG,EAAG,CAC3B,OAAO,KAAK,qBAAuB,KAAK,mBAAqB,IAAK,KAAK,mBAAmB,KAAK,mBAAoB,EAAG,EAAG,CAAC,EAAG,IAC9H,CAMD,uBAAuB,EAAG,CACxB,OAAO,KAAK,sBAAsB,KAAK,mBAAoB,CAAC,EAAG,IAChE,CAQD,yBAAyB,EAAG,EAAG,EAAG,CAChC,OAAO,KAAK,0BAA4B,KAAK,wBAA0B,IAAK,KAAK,mBAAmB,KAAK,wBAAyB,EAAG,EAAG,CAAC,EAAG,IAC7I,CAMD,4BAA4B,EAAG,CAC7B,OAAO,KAAK,sBAAsB,KAAK,wBAAyB,CAAC,EAAG,IACrE,CAQD,gBAAgB,EAAG,EAAG,EAAG,CACvB,OAAO,KAAK,iBAAmB,KAAK,eAAiB,IAAK,KAAK,mBAAmB,KAAK,eAAgB,EAAG,EAAG,CAAC,EAAG,IAClH,CAMD,mBAAmB,EAAG,CACpB,OAAO,KAAK,sBAAsB,KAAK,eAAgB,CAAC,EAAG,IAC5D,CAQD,oBAAoB,EAAG,EAAG,EAAG,CAC3B,OAAO,KAAK,qBAAuB,KAAK,mBAAqB,IAAK,KAAK,mBAAmB,KAAK,mBAAoB,EAAG,EAAG,CAAC,EAAG,IAC9H,CAMD,uBAAuB,EAAG,CACxB,OAAO,KAAK,sBAAsB,KAAK,mBAAoB,CAAC,EAAG,IAChE,CAQD,qBAAqB,EAAG,EAAG,EAAG,CAC5B,OAAO,KAAK,sBAAwB,KAAK,oBAAsB,IAAK,KAAK,mBAAmB,KAAK,oBAAqB,EAAG,EAAG,CAAC,EAAG,IACjI,CAMD,wBAAwB,EAAG,CACzB,OAAO,KAAK,sBAAsB,KAAK,oBAAqB,CAAC,EAAG,IACjE,CACD,4BAA6B,CAC3B,GAAI,CAAC,KAAK,gBAAkB,CAAC,KAAK,eAAe,QAAU,KAAK,uBAAyB,CAAC,KAAK,OAC7F,OACF,MAAM,EAAI,IAAI,WAAW,KAAK,iBAAmB,CAAC,EAAG,EAAImT,GAAG,OAAO,CAAC,EACpE,QAAS,EAAI,EAAG,EAAI,KAAK,iBAAkB,IAAK,CAC9C,MAAM,EAAI,EAAI,KAAK,iBACnB+8D,GAAG,mBAAmB,EAAG,KAAK,eAAgB,CAACnwE,EAAGC,EAAG,IAAM,CACzDgT,GAAG,UAAUjT,EAAE,MAAOC,EAAE,MAAO,EAAG,CAAC,EAAG,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAK,EAAE,EAAI,EAAI,CAAC,EAAI,EAAE,EAAI,IAAK,EAAE,EAAI,EAAI,CAAC,EAAI,EAAE,EAAI,IAAK,EAAE,EAAI,EAAI,CAAC,EAAI,GACvI,CAAO,CACF,CACD,KAAK,sBAAwB6sC,GAAG,kBAAkB,EAAG,KAAK,iBAAkB,EAAG,KAAK,OAAQ,GAAI,GAAI,CAAC,CACtG,CAMD,kBAAmB,CACjB,OAAO,KAAK,cACb,CAED,uBAAwB,CACtB,KAAK,yBAAwB,CAC9B,CACD,0BAA2B,CACzB,KAAK,iBAAmB,KAAK,eAAe,KAAK,CAAC,EAAG,IAAM,EAAE,SAAW,EAAE,SAAW,GAAK,EAAE,SAAW,EAAE,SAAW,EAAI,CAAC,EAAG,KAAK,wBAA0B,KAAK,sBAAsB,QAAO,EAAI,KAAK,sBAAwB,MAAO,KAAK,2BAA0B,EACrQ,CAOD,gBAAgB,EAAG,EAAG,CACpB,KAAK,iBAAmB,KAAK,eAAiB,CAAE,GAChD,MAAM,EAAI,IAAIujC,IAAG,EAAG,CAAC,EACrB,OAAO,KAAK,eAAe,KAAK,CAAC,EAAG,KAAK,yBAA0B,EAAE,IACtE,CAMD,mBAAmB,EAAG,CACpB,OAAO,KAAK,0BAA0B,EAAG,KAAK,eAAgB,KAAK,qBAAqB,EAAG,KAAK,sBAAwB,KAAM,KAAK,gBAAkB,KAAK,eAAe,OAAS,GAAK,KAAK,2BAA4B,EAAE,IAC3N,CAQD,iBAAiB,EAAG,EAAG,EAAG,CACxB,KAAK,kBAAoB,KAAK,gBAAkB,CAAE,GAClD,MAAM,EAAI,IAAIC,GAAG,EAAG,EAAG,CAAC,EACxB,OAAO,KAAK,gBAAgB,KAAK,CAAC,EAAG,KAAK,gBAAgB,KAAK,CAACtwE,EAAGC,IAAMD,EAAE,SAAWC,EAAE,SAAW,GAAKD,EAAE,SAAWC,EAAE,SAAW,EAAI,CAAC,EAAG,IAC3I,CAMD,oBAAoB,EAAG,CACrB,GAAI,CAAC,KAAK,gBACR,OAAO,KACT,IAAI,EAAI,EACR,UAAW,KAAK,KAAK,gBAAiB,CACpC,GAAI,EAAE,WAAa,EAAG,CACpB,KAAK,gBAAgB,OAAO,EAAG,CAAC,EAChC,KACD,CACD,GACD,CACD,OAAO,IACR,CAID,gBAAiB,CACf,UAAW,KAAK,KAAK,cACnB,GAAI,EACF,UAAW,KAAK,EACD,GAAE,UACrB,KAAK,cAAgB,EACtB,CACD,QAAQ,EAAG,EAAG,EAAG,EAAGD,EAAG,CACrB,EAAI,KAAK,IAAI,CAAC,EAAI,GAAM,GAAK,EAAI,KAAK,IAAI,CAAC,EAAI,GAAM,GACrD,MAAMC,EAAI,EAAI,EAAI,EAAI,EAAG,EAAI,EAAI,EAAI,EAAI,EAAG,GAAKA,EAAI,EAAI,GAAK,EAC9D,OAAOD,EAAE,CAAC,EAAI,GACf,CACD,QAAS,CACP,KAAK,aAAY,CAClB,CACD,cAAe,CACb,KAAK,gBAAkB,KAAK,cAAc,QAAO,EAAI,KAAK,cAAgB,MAAO,KAAK,gBAAkB,KAAK,cAAc,QAAO,EAAI,KAAK,cAAgB,MAAO,KAAK,qBAAuB,KAAK,QAAQ,yBAAyB,KAAK,kBAAkB,EAAG,KAAK,mBAAqB,MAAO,KAAK,sBACrS,CACD,sBAAuB,CACrB,KAAK,kBAAoB,KAAK,eAAiB,GAAK,GAAI,KAAK,2BAA6B,KAAK,mBAAqB,IAAK,CAAC,KAAK,mBAAqB,KAAK,gBAAkB,GAAK,KAAK,gBAAkB,KAAO,KAAK,mBAAqB,GAAI,KAAK,oBAAsB,KAAK,mBAAqB,GACjS,MAAM,EAAI,KAAK,QAAS,EAAI,KAAK,mBAAqB,KAAK,eAAiB,EAAI,GAChF,KAAK,YAAc,IAAI,aAAa,KAAK,UAAY,CAAC,EAAG,KAAK,cAAgB,IAAImU,GAAG,EAAG,KAAK,YAAa,GAAI,CAAC,EAC/G,IAAI,EAAI,EACR,MAAM,EAAI,KAAK,cAAc,mBAAmBF,EAAE,aAAc,EAAG,EAAG,KAAK,kBAAmB,KAAK,cAAc,EACjH,KAAK,eAAeA,EAAE,YAAY,EAAI,EAAG,GAAK,EAC9C,MAAMjU,EAAI,KAAK,cAAc,mBAAmBiU,EAAE,UAAW,EAAG,EAAG,KAAK,kBAAmB,KAAK,cAAc,EAC9G,KAAK,eAAeA,EAAE,SAAS,EAAIjU,EAAG,GAAK,EAC3C,MAAMC,EAAI,KAAK,cAAc,mBAAmB,QAAS,EAAG,EAAG,KAAK,kBAAmB,KAAK,cAAc,EAC1G,KAAK,eAAe,MAAQA,EAAG,GAAK,EACpC,MAAM,EAAI,KAAK,cAAc,mBAAmB,OAAQ,EAAG,EAAG,KAAK,kBAAmB,KAAK,cAAc,EACzG,GAAI,KAAK,eAAe,KAAO,EAAG,GAAK,EAAG,KAAK,yBAA0B,CACvE,MAAM,EAAI,KAAK,cAAc,mBAAmB,YAAa,EAAG,EAAG,KAAK,kBAAmB,KAAK,cAAc,EAC9G,KAAK,eAAe,UAAY,EAAG,GAAK,CACzC,CACD,GAAI,CAAC,KAAK,mBAAqB,KAAK,gBAAkB,GAAK,KAAK,gBAAkB,EAAG,CACnF,MAAM,EAAI,KAAK,cAAc,mBAAmB,YAAa,EAAG,EAAG,KAAK,kBAAmB,KAAK,cAAc,EAC9G,KAAK,eAAe,UAAY,EAAG,GAAK,CACzC,CACD,GAAI,KAAK,kBAAmB,CAC1B,MAAM,EAAI,KAAK,cAAc,mBAAmB,YAAa,EAAG,EAAG,KAAK,kBAAmB,KAAK,cAAc,EAC9G,KAAK,eAAe,UAAY,EAAG,GAAK,CACzC,CACD,IAAI,EACJ,GAAI,KAAK,eAAgB,CACvB,MAAM,EAAI,IAAI,aAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAAC,EACnD,KAAK,cAAgB,IAAIkU,GAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAI,KAAK,cAAc,mBAAmB,SAAU,EAAG,CAAC,CACnG,MACC,EAAI,KAAK,cAAc,mBAAmB,SAAU,EAAG,EAAG,KAAK,kBAAmB,KAAK,cAAc,EAAG,GAAK,EAC/G,KAAK,eAAe,OAAS,EAAG,KAAK,eAAc,CACpD,CACD,oBAAqB,CACnB,GAAI,KAAK,eAAgB,CACvB,KAAK,+BAAiC,KAAK,QAAQ,kBAAkB,IAAI,YAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAAC,CAAC,EACpH,MACD,CACD,MAAM,EAAI,GAAI,EAAI,GAClB,IAAI,EAAI,EACR,QAAS,EAAI,EAAG,EAAI,KAAK,UAAW,IAClC,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,EAAI,CAAC,EAAG,EAAE,KAAK,EAAI,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,EAAI,CAAC,EAAG,EAAE,KAAK,EAAI,CAAC,EAAG,EAAE,KAAK,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAG,EAAG,EAAI,CAAC,EAAG,GAAK,EAC3J,KAAK,aAAe,KAAK,QAAQ,kBAAkB,CAAC,EAAG,KAAK,kBAAoB,KAAK,QAAQ,kBAAkB,CAAC,CACjH,CAKD,aAAc,CACZ,OAAO,KAAK,SACb,CAKD,SAAU,CACR,OAAO,KAAK,MACb,CAKD,WAAY,CACV,OAAO,KAAK,QACb,CAED,WAAY,CACX,CAKD,MAAM,EAAI,KAAK,WAAY,CACzB,IAAI,EACJ,GAAI,CAAC,KAAK,oBAAsB,KAAK,wCAAyC,EAC5E,KAAM,8HACR,GAAI,EAAG,CACL,WAAW,IAAM,CACf,KAAK,MAAM,CAAC,CACb,EAAE,CAAC,EACJ,MACD,CACD,GAAI,KAAK,SAAW,GAAI,KAAK,SAAW,GAAI,KAAK,aAAe,EAAG,KAAK,UAAS,EAAI,KAAK,qBAAuB,KAAK,mBAAmB,OAAS,IAAM,KAAK,yBAA2B,KAAK,mBAAmB,CAAC,EAAG,KAAK,kBAAoB,KAAK,yBAAyB,UAAW,EAAE,KAAK,kBAAoB,KAAK,mBAAoB,KAAK,mBAAmB,OAAS,IAAM,KAAK,kBAAoB,KAAK,mBAAmB,CAAC,EAAE,UAAW,IAAI,KAAK,sBAAwB,KAAK,oBAAoB,OAAS,IAAM,KAAK,0BAA4B,KAAK,oBAAoB,CAAC,EAAG,KAAK,mBAAqB,KAAK,0BAA0B,YAAa,KAAK,mBAAqB,KAAK,oBAAqB,KAAK,oBAAoB,OAAS,IAAM,KAAK,mBAAqB,KAAK,oBAAoB,CAAC,EAAE,cAAe,KAAK,cAAe,GAC9yB,EAAI,KAAK,UAAY,KAAO,OAAS,EAAE,aAAY,EAAG,QAAQ,MAAM,KAAO,IAAM,KAAK,QAAQ,mBAAmB,EAAE,EACrH,MAAM,EAAI,KAAK,aACf,GAAI,GAAK,EAAE,sBACT,EAAE,sBAAsB,QAAQ,IAAM,CACpC,WAAW,IAAM,CACf,QAAS,EAAI,EAAG,EAAI,KAAK,cAAe,IACtC,KAAK,QAAQ,EAAE,EAAG,EAAE,OAAM,CACxC,CAAW,CACX,CAAS,MAED,SAAS,EAAI,EAAG,EAAI,KAAK,cAAe,IACtC,KAAK,QAAQ,EAAE,CACpB,CACD,KAAK,uBAAyB,KAAK,YAAc,KAAK,WAAW,OAAS,GAAK,KAAK,QAAU,KAAK,OAAO,eAAe,KAAM,KAAK,mBAAoB,KAAK,iBAAkB,KAAK,kBAAkB,CACvM,CAKD,KAAK,EAAI,GAAI,CACX,KAAK,WAAa,KAAK,oBAAoB,gBAAgB,IAAI,EAAG,KAAK,SAAW,GAAI,KAAK,UAAU,CAAC,EACvG,CAED,UAAU,EAAG,CACZ,CAKD,OAAQ,CACN,KAAK,gBAAgB,OAAS,EAAG,KAAK,WAAW,OAAS,CAC3D,CAID,sBAAsB,EAAG,EAAG,EAAG,EAAG,CAChC,IAAInU,EAAI,EAAI,KAAK,kBACjB,GAAI,KAAK,YAAYA,GAAG,EAAI,EAAE,SAAS,EAAI,KAAK,YAAY,EAAG,KAAK,YAAYA,GAAG,EAAI,EAAE,SAAS,EAAI,KAAK,YAAY,EAAG,KAAK,YAAYA,GAAG,EAAI,EAAE,SAAS,EAAI,KAAK,YAAY,EAAG,KAAK,YAAYA,GAAG,EAAI,EAAE,MAAM,EAAG,KAAK,YAAYA,GAAG,EAAI,EAAE,MAAM,EAAG,KAAK,YAAYA,GAAG,EAAI,EAAE,MAAM,EAAG,KAAK,YAAYA,GAAG,EAAI,EAAE,MAAM,EAAG,KAAK,YAAYA,GAAG,EAAI,EAAE,MAAO,KAAK,YAAYA,GAAG,EAAI,EAAE,MAAM,EAAI,EAAE,KAAM,KAAK,YAAYA,GAAG,EAAI,EAAE,MAAM,EAAI,EAAE,KAAM,KAAK,2BAA6B,KAAK,YAAYA,GAAG,EAAI,EAAE,WAAY,KAAK,mBACpgB,KAAK,gBAAkB,GAAK,KAAK,gBAAkB,KAAO,KAAK,YAAYA,GAAG,EAAI,EAAE,UAAU,EAAG,KAAK,YAAYA,GAAG,EAAI,EAAE,UAAU,EAAG,KAAK,YAAYA,GAAG,EAAI,EAAE,UAAU,WACtK,EAAE,kBAAmB,CAC5B,IAAIC,EAAI,EAAE,kBACV,KAAK,UAAYuP,EAAE,qBAAqBvP,EAAG,KAAK,oBAAqB0P,EAAE,QAAQ,CAAC,CAAC,EAAG1P,EAAI0P,EAAE,QAAQ,CAAC,GAAI1P,EAAE,IAAM,GAAKA,EAAE,IAAM,IAAMA,EAAE,EAAI,MAAO,KAAK,YAAYD,GAAG,EAAIC,EAAE,EAAG,KAAK,YAAYD,GAAG,EAAIC,EAAE,EAAG,KAAK,YAAYD,GAAG,EAAIC,EAAE,CACzO,KAAW,CACL,IAAIA,EAAI,EAAE,UACV,KAAK,UAAYuP,EAAE,qBAAqBvP,EAAG,KAAK,oBAAqB0P,EAAE,QAAQ,CAAC,CAAC,EAAG1P,EAAI0P,EAAE,QAAQ,CAAC,GAAI1P,EAAE,IAAM,GAAKA,EAAE,IAAM,IAAMA,EAAE,EAAI,MAAO,KAAK,YAAYD,GAAG,EAAIC,EAAE,EAAG,KAAK,YAAYD,GAAG,EAAIC,EAAE,EAAG,KAAK,YAAYD,GAAG,EAAIC,EAAE,CACpO,CACD,KAAK,mBAAqB,EAAE,YAAc,KAAK,YAAYD,GAAG,EAAI,EAAE,UAAU,EAAG,KAAK,YAAYA,GAAG,EAAI,EAAE,UAAU,EAAG,KAAK,YAAYA,GAAG,EAAI,EAAE,UAAU,EAAG,KAAK,YAAYA,GAAG,EAAI,EAAE,UAAU,GAAI,KAAK,iBAAmB,KAAK,2BAA6B,IAAM,EAAI,EAAI,KAAK,SAAW,IAAM,IAAM,EAAI,EAAI,KAAK,UAAW,IAAM,EAAI,EAAI,KAAK,SAAW,IAAM,IAAM,EAAI,EAAI,KAAK,WAAY,KAAK,YAAYA,GAAG,EAAI,EAAG,KAAK,YAAYA,GAAG,EAAI,EAC1b,CAED,iBAAiB,EAAG,CACnB,CACD,QAAQ,EAAG,CACT,GAAI,KAAK,OAAS,KAAK,WAAW,OAAS,EAAG,KAAK,QAAQ,SAAU,CACnE,MAAM,EAAI,KAAK,QACf,KAAK,oBAAsB,EAAE,gBACnC,KAAW,CACL,MAAM,EAAI,KAAK,QACf,KAAK,oBAAsB4P,EAAE,YAAY,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,CACvD,CACD,KAAK,oBAAoB,YAAY,KAAK,0BAA0B,EAAG,KAAK,eAAe,KAAK,UAAU,EAC1G,IAAI,EACJ,QAAS,EAAI,EAAG,EAAI,GAAK,KAAK,WAAW,SAAW,KAAK,UAAW,IAAK,CACvE,GAAI,EAAI,KAAK,gBAAe,EAAI,KAAK,WAAW,KAAK,CAAC,EAAG,KAAK,oBAAsB,KAAK,oBAAsB,KAAK,mBAAmB,OAAS,EAAG,CACjJ,MAAM5P,EAAImP,GAAG,KAAK,aAAe,KAAK,kBAAkB,EACxDghE,GAAG,mBAAmBnwE,EAAG,KAAK,mBAAoB,CAACC,EAAG,IAAM,CAC1D,MAAM,EAAIA,EAAG,EAAI,EAAG,EAAI,EAAE,YAAa,EAAI,EAAE,UAAS,EAAI,GAAKD,EAAI,EAAE,WAAa,EAAE,SAAW,EAAE,UACjG,EAAE,SAAWkP,GAAG,EAAG,EAAG,CAAC,CACjC,CAAS,CACF,MACC,EAAE,SAAWD,GAAG,KAAK,YAAa,KAAK,WAAW,EACpD,MAAM,EAAIA,GAAG,KAAK,aAAc,KAAK,YAAY,EACjD,GAAI,KAAK,sBAAwB,KAAK,sBAAsB,KAAK,oBAAqB,EAAE,SAAU,EAAG,KAAK,OAAO,EAAI,KAAK,oBAAoB,sBAAsB,KAAK,oBAAqB,EAAE,SAAU,EAAG,KAAK,OAAO,EAAG,KAAK,UAAY,EAAE,eAAiB,EAAE,eAAe,SAAS,EAAE,QAAQ,EAAI,EAAE,eAAiB,EAAE,SAAS,MAAO,EAAEO,EAAE,0BAA0B,EAAE,eAAgB,KAAK,oBAAqB,EAAE,QAAQ,GAAI,KAAK,uBAAyB,KAAK,uBAAuB,KAAK,oBAAqB,EAAE,UAAW,EAAG,KAAK,OAAO,EAAI,KAAK,oBAAoB,uBAAuB,KAAK,oBAAqB,EAAE,UAAW,EAAG,KAAK,QAAS,KAAK,0BAA0B,EAAG,IAAM,EAAI,EAAE,kBAAoB,EAAE,kBAAkB,SAAS,EAAE,SAAS,EAAI,EAAE,kBAAoB,EAAE,UAAU,MAAO,EAAG,EAAE,kBAAoB,KAAM,EAAE,UAAU,aAAa,CAAC,EAAG,CAAC,KAAK,gBAAkB,KAAK,eAAe,SAAW,EAAI,EAAE,KAAOP,GAAG,KAAK,QAAS,KAAK,OAAO,GAAK,EAAE,qBAAuB,KAAK,eAAe,CAAC,EAAG,EAAE,cAAgB,EAAE,qBAAqB,UAAW,EAAE,EAAE,KAAO,EAAE,cAAe,KAAK,eAAe,OAAS,EAAI,EAAE,cAAgB,KAAK,eAAe,CAAC,EAAE,UAAW,EAAG,EAAE,cAAgB,EAAE,eAAgB,EAAE,MAAM,eAAeA,GAAG,KAAK,UAAW,KAAK,SAAS,EAAGA,GAAG,KAAK,UAAW,KAAK,SAAS,CAAC,EAAG,KAAK,qBAAuB,KAAK,oBAAoB,CAAC,GAAK,KAAK,mBAAoB,CACz2C,MAAMjP,EAAI,KAAK,aAAe,KAAK,mBACnCmwE,GAAG,mBAAmBnwE,EAAG,KAAK,oBAAqB,CAACC,EAAG,EAAG,IAAM,CAC9DA,IAAM,KAAK,4BAA8B,KAAK,mBAAqB,KAAK,mBAAoB,KAAK,mBAAqB,EAAE,UAAS,EAAI,KAAK,0BAA4BA,GACtK,MAAM,EAAIiP,GAAG,KAAK,mBAAoB,KAAK,mBAAoB,CAAC,EAChE,EAAE,MAAM,aAAa,CAAC,CAChC,CAAS,CACF,CACD,GAAI,CAAC,KAAK,wBAA0B,KAAK,uBAAuB,SAAW,EAAI,EAAE,aAAeD,GAAG,KAAK,gBAAiB,KAAK,eAAe,GAAK,EAAE,6BAA+B,KAAK,uBAAuB,CAAC,EAAG,EAAE,aAAe,EAAE,6BAA6B,YAAa,EAAE,sBAAwB,EAAE,aAAc,KAAK,uBAAuB,OAAS,EAAI,EAAE,sBAAwB,KAAK,uBAAuB,CAAC,EAAE,UAAW,EAAG,EAAE,sBAAwB,EAAE,uBAAwB,EAAE,MAAQA,GAAG,KAAK,mBAAoB,KAAK,kBAAkB,EAAG,KAAK,oBAAsB,KAAK,mBAAmB,OAAS,IAAM,EAAE,yBAA2B,KAAK,mBAAmB,CAAC,EAAG,EAAE,kBAAoB,EAAE,yBAAyB,UAAS,EAAI,KAAK,mBAAmB,OAAS,EAAI,EAAE,kBAAoB,KAAK,mBAAmB,CAAC,EAAE,UAAS,EAAK,EAAE,kBAAoB,EAAE,mBAAoB,KAAK,yBAA2B,KAAK,wBAAwB,OAAS,IAAM,EAAE,8BAAgC,KAAK,wBAAwB,CAAC,EAAG,EAAE,uBAAyB,EAAE,8BAA8B,YAAa,KAAK,wBAAwB,OAAS,EAAI,EAAE,uBAAyB,KAAK,wBAAwB,CAAC,EAAE,UAAS,EAAK,EAAE,uBAAyB,EAAE,wBAAyB,KAAK,gBAAkB,KAAK,eAAe,OAAS,IAAM,EAAE,qBAAuB,KAAK,eAAe,CAAC,EAAG,EAAE,cAAgB,EAAE,qBAAqB,UAAW,EAAE,KAAK,eAAe,OAAS,EAAI,EAAE,cAAgB,KAAK,eAAe,CAAC,EAAE,UAAW,EAAG,EAAE,cAAgB,EAAE,eAAgB,CAAC,KAAK,iBAAmB,KAAK,gBAAgB,SAAW,EAAG,CAC9jD,MAAMjP,EAAIiP,GAAG,EAAG,CAAC,EACjBiE,GAAG,UAAU,KAAK,OAAQ,KAAK,OAAQlT,EAAG,EAAE,KAAK,EAAG,KAAK,UAAU,cAAc,EAAE,MAAO,KAAK,UAAU,EAAG,KAAK,WAAW,WAAW,EAAI,EAAE,SAAU,EAAE,SAAS,CACnK,MACC,EAAE,sBAAwB,KAAK,gBAAgB,CAAC,EAAG,EAAE,sBAAsB,cAAc,EAAE,KAAK,EAAG,EAAE,eAAe,SAAS,EAAE,KAAK,EAAG,KAAK,gBAAgB,OAAS,EAAI,KAAK,gBAAgB,CAAC,EAAE,cAAc,EAAE,cAAc,EAAI,EAAE,eAAe,SAAS,EAAE,KAAK,EACtQ,KAAK,2BAA6B,EAAE,0BAA4B,KAAK,kBAAmB,EAAE,wBAA0B,KAAK,gBAAiB,EAAE,uBAAyB,KAAK,gBAAiB,EAAE,UAAU,WAAW,KAAK,wBAAwB,EAAG,KAAK,oBAAsB,EAAE,UAAY,IAAIiQ,GAAG,EAAG,EAAG,EAAG,CAAC,GAAI,KAAK,eAAiB,EAAE,0BAA4B,EAAE,yBAAyB,eAAe,KAAK,OAAM,EAAI,KAAK,OAAM,EAAI,KAAK,OAAM,CAAE,EAAG,EAAE,yBAAyB,eAAe,KAAK,SAAU,KAAK,SAAU,KAAK,QAAQ,IAAM,EAAE,yBAA2B,IAAIT,EAAE,KAAK,OAAM,EAAI,KAAK,OAAM,EAAI,KAAK,OAAM,CAAE,EAAG,EAAE,yBAA2B,IAAIA,EAAE,KAAK,OAAM,EAAI,KAAK,OAAQ,EAAE,KAAK,OAAQ,KAAK,EAAE,mCAC9rB,CACF,CAID,OAAO,4BAA4B,EAAI,GAAI,EAAI,GAAI,EAAI,GAAI,CACzD,MAAM,EAAI,CAACyE,EAAE,aAAcA,EAAE,UAAW,QAAS,SAAU,MAAM,EACjE,OAAO,GAAK,EAAE,KAAK,WAAW,EAAG,GAAK,EAAE,KAAK,WAAW,EAAG,GAAK,EAAE,KAAK,WAAW,EAAG,CACtF,CAID,OAAO,0BAA0B,EAAI,GAAI,EAAI,GAAI,EAAI,GAAI,CACvD,MAAM,EAAI,CAAC,UAAW,OAAQ,aAAc,cAAe,mBAAoB,aAAa,EAC5F,OAAO+a,GAAG,CAAC,EAAG,GAAK,EAAE,KAAK,gBAAgB,EAAG,GAAK,EAAE,KAAK,0BAA0B,EAAG,IAAM,EAAE,KAAK,WAAW,EAAG,EAAE,KAAK,WAAW,GAAI,CACxI,CAOD,YAAY,EAAG,EAAG,EAAI,GAAI,CACxB,GAAI,KAAK,SAAWC,GAAG,KAAM,KAAK,OAAQ,CAAC,EAAG,KAAK,UAAY,KAAK,OAAO,YAAc,KAAK,OAAO,UAAY,GAAK,EAAE,KAAK,aAAa,GAAI,KAAK,0BAA4B,EAAE,KAAK,sBAAsB,EAAG,KAAK,qBAAuB,EAAE,KAAK,0BAA0B,EAAG,IAAMy9B,GAAG,oBAAsB,EAAE,KAAK,2BAA2B,EAAG,KAAK,mBAAqB,EAAE,KAAK,sBAAsB,EAAG,KAAK,kBAChZ,OAAQ,EAAE,KAAK,mBAAmB,EAAG,KAAK,cAAa,CACrD,IAAK,GACH,EAAE,KAAK,oBAAoB,EAC3B,MACF,IAAK,GACL,IAAK,GACH,EAAE,KAAK,4BAA4B,EAAG,KAAK,gBAAkB,GAAK,EAAE,KAAK,kCAAkC,EAC3G,MACF,IAAK,GACH,EAAE,KAAK,2BAA2B,EAClC,KACH,CACH,GAAK,KAAK,gCAAkC,KAAK,8BAA8B,eAAe,KAAK,oCAAoC,EAAG,EAAE,KAAK,KAAK,qCAAqC,SAAU,GACtM,CAOD,sCAAsC,EAAG,EAAG,EAAG,CAC7C,EAAE,KAAK,GAAGwjB,GAAG,4BAA4B,KAAK,yBAA0B,KAAK,mBAAqB,KAAK,gBAAkB,GAAK,KAAK,gBAAkB,EAAG,KAAK,iBAAiB,CAAC,EAAG,EAAE,KAAK,GAAGA,GAAG,0BAA0B,KAAK,yBAA0B,KAAK,oBAAqB,KAAK,QAAQ,CAAC,EAAG,EAAE,KAAK,iBAAkB,aAAa,EAAG,KAAK,gCAAkCv8D,IAAG,EAAG,KAAK,oCAAoC,EAAGC,IAAG,EAAG,KAAK,oCAAoC,EACrd,CAID,YAAY,EAAG,CACb,MAAM,EAAI,KAAK,sBAAsB,CAAC,EACtC,GAAI,GAAK,MAAQ,EAAE,OACjB,OAAO,EACT,MAAM,EAAI,GACV,KAAK,YAAY,EAAG,CAAC,EACrB,MAAM,EAAI,KAAK,QAAQ,UAAU,oBAAsB,KAAK,QAAQ,oBAAsB,EAC1F,IAAI5T,EAAI,KAAK,cAAc,CAAC,EAC5BA,IAAMA,EAAI,KAAK,cAAc,CAAC,EAAI,IAClC,IAAIC,EAAID,EAAE,CAAC,EACXC,IAAMA,EAAI,IAAIwkB,GAAG,KAAK,OAAO,EAAGxkB,EAAE,cAAgBA,EAAE,YAAY,cAAgB,KAAK,gBAAiBD,EAAE,CAAC,EAAIC,GAC7G,MAAM,EAAI,EAAE,KAAK;AAAA,CACpB,EACG,GAAIA,EAAE,UAAY,EAAG,CACnB,MAAM,EAAI,GAAI,EAAI,GAAI,EAAI,GAC1B,KAAK,sCAAsC,EAAG,EAAG,CAAC,EAAGA,EAAE,UAAU,KAAK,QAAQ,aAAa,YAAa,EAAG,EAAG,EAAG,CAAC,EAAG,CAAC,CACvH,CACD,OAAOA,CACR,CAKD,QAAQ,EAAI,GAAI,CACd,IAAIO,EACJ,GAAI,CAAC,KAAK,SACR,OACF,GAAI,CAAC,GAAK,KAAK,OAAQ,CACrB,GAAI,CAAC,KAAK,WAAa,KAAK,mBAAqB,KAAK,OAAO,WAAY,EACvE,OACF,KAAK,iBAAmB,KAAK,OAAO,WAAU,CAC/C,CACD,KAAK,mBAAqB,KAAK,aAAe,EAAI,KAAK,oBAAsBA,EAAI,KAAK,SAAW,KAAO,OAASA,EAAE,kBAAiB,IAAO,GAC3I,IAAIyE,EACJ,GAAI,KAAK,gBAAkB,GACzBA,EAAI,KAAK,gBAAiB,KAAK,gBAAkB,EAAG,KAAK,gBAAkB,MACxE,CACH,IAAI,EAAI,KAAK,SACb,GAAI,KAAK,oBAAsB,KAAK,mBAAmB,OAAS,GAAK,KAAK,mBAAoB,CAC5F,MAAMjF,EAAI,KAAK,aAAe,KAAK,mBACnCmwE,GAAG,mBAAmBnwE,EAAG,KAAK,mBAAoB,CAACC,EAAG,EAAG,IAAM,CAC7DA,IAAM,KAAK,2BAA6B,KAAK,kBAAoB,KAAK,kBAAmB,KAAK,kBAAoB,EAAE,UAAS,EAAI,KAAK,yBAA2BA,GAAI,EAAIiP,GAAG,KAAK,kBAAmB,KAAK,kBAAmB,CAAC,CACvO,CAAS,CACF,CACDjK,EAAI,EAAI,KAAK,oBAAsB,EAAG,KAAK,iBAAmB,EAAI,KAAK,mBAAqBA,CAC7F,CACD,GAAI,KAAK,gBAAkB,IAAMA,GAAK,KAAK,iBAAmB,EAAG,KAAK,iBAAmB,KAAK,iBAAmB,GAAI,KAAK,OAAS,GAAI,KAAK,SAAWA,EAAI,GAAK,KAAK,cAAgB,KAAK,mBAAoB,KAAK,oBAAsB,KAAK,cAAgB,KAAK,oBAAsB,KAAK,KAAI,GAAK,KAAK,QAAQA,CAAC,EAAG,KAAK,WAAa,KAAK,SAAW,KAAK,SAAW,GAAI,KAAK,gBAAkB,KAAK,eAAc,EAAI,KAAK,eAAiB,KAAK,QAAU,KAAK,OAAO,cAAc,KAAK,IAAI,IAAK,CAAC,EAAG,CAC3e,IAAI,EAAI,EACR,QAASjF,EAAI,EAAGA,EAAI,KAAK,WAAW,OAAQA,IAAK,CAC/C,MAAMC,EAAI,KAAK,WAAWD,CAAC,EAC3B,KAAK,wBAAwB,EAAGC,CAAC,EAAG,GAAK,KAAK,eAAiB,EAAI,CACpE,CACD,KAAK,eAAiB,KAAK,cAAc,eAAe,KAAK,YAAa,EAAG,KAAK,WAAW,MAAM,CACpG,CACD,KAAK,kBAAoB,GAAK,KAAK,eAAiB,KAAK,MAC1D,CACD,wBAAwB,EAAG,EAAG,CAC5B,KAAK,sBAAsB,IAAK,EAAG,EAAG,CAAC,EAAG,KAAK,iBAAmB,KAAK,sBAAsB,IAAK,EAAG,EAAG,CAAC,EAAG,KAAK,sBAAsB,IAAK,EAAG,EAAG,CAAC,EAAG,KAAK,sBAAsB,IAAK,EAAG,EAAG,CAAC,EAC9L,CAID,SAAU,CACR,IAAI,EACJ,KAAK,QAAQ,QAAS,EAAC,oBAAsB,KAAK,mBAAqB,MAAO,KAAK,sBAAuB,EAAI,KAAK,gBAAkB,MAAQ,EAAE,SAAQ,EAAI,KAAK,qBAAsB,EAAE,KAAK,gBAC9L,CAKD,SAAU,CACR,GAAI,CAAC,KAAK,SAAW,KAAK,+BAAiC,CAAC,KAAK,8BAA8B,QAAS,GAAI,CAAC,KAAK,iBAAmB,CAAC,KAAK,gBAAgB,QAAS,EAClK,MAAO,GACT,GAAI,KAAK,YAAcysD,GAAG,uBACxB,GAAI,CAAC,KAAK,YAAY,KAAK,SAAS,EAAE,OAAO,QAAS,EACpD,MAAO,WACA,CAAC,KAAK,YAAYA,GAAG,kBAAkB,EAAE,OAAO,QAAS,GAAI,CAAC,KAAK,YAAYA,GAAG,aAAa,EAAE,OAAO,QAAS,EAC1H,MAAO,GACT,MAAO,EACR,CACD,QAAQ,EAAG,CACT,IAAI9oD,EAAGrB,EAAGD,EAAG4G,EAAGpI,EAAGF,EACnB,MAAMqE,EAAI,KAAK,YAAY,CAAC,EAAGzE,EAAIyE,EAAE,OAAQxE,EAAI,KAAK,QACtDA,EAAE,aAAawE,CAAC,EAChB,MAAMjF,EAAI,KAAK,mBAAqB,KAAK,OAAO,gBAChD,GAAIQ,EAAE,WAAW,iBAAkB,KAAK,eAAe,EAAGA,EAAE,UAAU,OAAQR,CAAC,EAAGQ,EAAE,UAAU,aAAc,KAAK,yBAA2B,KAAK,OAAO,oBAAqB,GAAG,KAAK,0BAA4B,KAAK,gBAAiB,CACrO,MAAMK,EAAI,KAAK,gBAAgB,YAAW,EAC1CL,EAAE,UAAU,iBAAkB,KAAK,gBAAkBK,EAAE,MAAO,KAAK,iBAAmBA,EAAE,OAAQ,KAAK,gBAAkBA,EAAE,KAAK,CAC/H,CACD,GAAIL,EAAE,WAAW,mBAAoB,KAAK,gBAAgB,EAAGA,EAAE,UAAU,cAAe,KAAK,YAAY,EAAG,KAAK,YAAY,EAAG,KAAK,YAAY,EAAG,KAAK,YAAY,CAAC,EAAG,KAAK,mBAAqB,KAAK,OAAQ,CAC9M,MAAMK,EAAI,KAAK,OAAO,aACtBL,EAAE,WAAW,cAAeK,EAAE,cAAc,CAC7C,CACD,KAAK,yBAA2B,CAAC,KAAK,gBAAkB,CAAC,KAAK,eAAe,UAAY,KAAK,sBAAsB,QAAO,EAAI,KAAK,sBAAwB,MAAOL,EAAE,WAAW,cAAe,KAAK,qBAAqB,GACzN,MAAMP,EAAIO,EAAE,QACZ,OAAQ,KAAK,SAAW2uB,GAAG3uB,EAAG,KAAM,KAAK,MAAM,EAAG,KAAK,UAAYgvB,GAAG,KAAK,OAAQ,OAAQhvB,CAAC,GAAIP,EAAE,QAAQ,2BAA2B,GAAK,IAAMD,EAAE,YAAY2P,EAAE,OAAO,CAAC,CAAC,EAAGnP,EAAE,UAAU,UAAWmP,EAAE,OAAO,CAAC,CAAC,GAAI,KAAK,qBAAuB,QAAU/L,EAAI,KAAK,SAAW,MAAQA,EAAE,eAAiBnD,EAAE,YAAY,KAAK,eAAgB,KAAK,+BAAgCD,CAAC,GAAK,KAAK,qBAAuB,KAAK,mBAAqB,KAAK,QAAQ,wBAAwB,KAAK,eAAgB,KAAMA,CAAC,GAAI,KAAK,QAAQ,sBAAsB,KAAK,oBAAqB+B,EAAI,KAAK,SAAW,MAAQA,EAAE,eAAiB,KAAK,+BAAiC,KAAK,YAAY,GAAK,KAAK,aAAe9B,EAAE,YAAY,KAAK,gBAAiByI,EAAI,KAAK,SAAW,MAAQA,EAAE,eAAiB,KAAK,kBAAoB,KAAK,aAAc1I,CAAC,EAAIC,EAAE,YAAY,KAAK,gBAAiB6B,EAAI,KAAK,SAAW,MAAQA,EAAE,eAAiB,KAAK,+BAAiC,KAAM9B,CAAC,EAAG,KAAK,qBAAuB,KAAK,QAAU+uB,GAAGtvB,EAAGO,EAAG,KAAK,MAAM,EAAG,KAAK,+BAAiC,CAAC,KAAK,8BAA8B,oBAAsB,KAAK,8BAA8B,KAAKA,CAAC,EAAG,EAAC,CAChoC,KAAKksD,GAAG,cACNjsD,EAAE,aAAa,CAAC,EAChB,MACF,KAAKisD,GAAG,iBACNjsD,EAAE,aAAa,CAAC,EAChB,MACF,KAAKisD,GAAG,mBACNjsD,EAAE,aAAa,CAAC,EAChB,MACF,KAAKisD,GAAG,mBACNjsD,EAAE,aAAa,CAAC,EAChB,KACH,CACD,OAAO,KAAK,kCAAoC,KAAK,iCAAiC,gBAAgBD,CAAC,EAAG,KAAK,gBAAkBM,EAAI,KAAK,SAAW,MAAQA,EAAE,eAAiBL,EAAE,iBAAiB,EAAG,EAAG,GAAI,KAAK,WAAW,MAAM,EAAIA,EAAE,eAAe,EAAG,EAAG,EAAG,KAAK,WAAW,MAAM,GAAKG,EAAI,KAAK,SAAW,MAAQA,EAAE,eAAiBH,EAAE,iBAAiB,EAAG,EAAG,KAAK,WAAW,OAAS,EAAE,EAAIA,EAAE,iBAAiB,EAAG,EAAG,KAAK,WAAW,OAAS,CAAC,EAAG,KAAK,WAAW,MAC1c,CAKD,QAAS,CACP,GAAI,CAAC,KAAK,QAAO,GAAM,CAAC,KAAK,WAAW,OACtC,MAAO,GACT,MAAM,EAAI,KAAK,QACf,EAAE,WAAa,EAAE,SAAS,EAAE,EAAG,KAAK,iBAAmB,EAAE,cAAc,EAAE,GACzE,IAAI,EAAI,EACR,OAAO,KAAK,YAAcisD,GAAG,sBAAwB,EAAI,KAAK,QAAQA,GAAG,kBAAkB,EAAI,KAAK,QAAQA,GAAG,aAAa,EAAI,EAAI,KAAK,QAAQ,KAAK,SAAS,EAAG,KAAK,QAAQ,yBAA0B,EAAE,KAAK,QAAQ,aAAa,CAAC,EAAG,CAC1O,CAED,WAAW,EAAI,GAAI,EAAI,GAAI,CAC1B,CAOD,QAAQ,EAAI,GAAI,EAAI,GAAI,EAAI,GAAI,CAC9B,GAAI,KAAK,iBAAkB,KAAK,gBAAkB,KAAK,cAAc,QAAS,EAAE,KAAK,cAAgB,MAAO,KAAK,gBAAkB,KAAK,cAAc,QAAS,EAAE,KAAK,cAAgB,MAAO,KAAK,eAAiB,KAAK,QAAQ,eAAe,KAAK,YAAY,EAAG,KAAK,aAAe,MAAO,KAAK,oBAAsB,KAAK,QAAQ,eAAe,KAAK,iBAAiB,EAAG,KAAK,kBAAoB,MAAO,KAAK,iCAAmC,KAAK,QAAQ,eAAe,KAAK,8BAA8B,EAAG,KAAK,+BAAiC,MAAO,KAAK,qBAAuB,KAAK,QAAQ,yBAAyB,KAAK,kBAAkB,EAAG,KAAK,mBAAqB,MAAO,GAAK,KAAK,kBAAoB,KAAK,gBAAgB,QAAS,EAAE,KAAK,gBAAkB,MAAO,GAAK,KAAK,eAAiB,KAAK,aAAa,QAAO,EAAI,KAAK,aAAe,MAAO,KAAK,wBAA0B,KAAK,sBAAsB,UAAW,KAAK,sBAAwB,MAAO,KAAK,WAAW,EAAG,CAAC,EAAG,KAAK,kCAAoC,KAAK,iCAAiC,QAAS,KAAK,OAAQ,CACpjC,MAAM,EAAI,KAAK,OAAO,gBAAgB,QAAQ,IAAI,EAClD,EAAI,IAAM,KAAK,OAAO,gBAAgB,OAAO,EAAG,CAAC,EAAG,KAAK,OAAO,uBAAuB,QAAO,CAC/F,CACD,KAAK,oBAAoB,gBAAgB,IAAI,EAAG,KAAK,oBAAoB,MAAK,EAAI,KAAK,oBAAoB,MAAO,EAAE,KAAK,MAAK,CAC/H,CACH,EACG,IAAC6jB,IACH,SAASlwE,EAAG,CACXA,EAAEA,EAAE,SAAW,CAAC,EAAI,WAAYA,EAAEA,EAAE,IAAM,CAAC,EAAI,KACjD,GAAGkwE,KAAOA,GAAK,CAAE,EAAC,EAClB,IAAAC,GAAA,MAAMC,EAAG,CAKP,YAAY,EAAG,CACb,GAAI,KAAK,eAAiB,EAAG,KAAK,KAAO,EAAG,KAAK,iBAAmB,GAAI,KAAK,wBAA0B,EAAG,CAAC,EAAE,SAAW,CAAC,EAAE,QAAQ,QAAS,CAC1I,MAAM,EAAInjE,GAAG,sBAAsB,EACnC,EAAE,QAAU,IAAI,EAAE,0BAA2B,EAAE,SAAQ,CAAE,EAAG,EAAE,yBAA2B,EAC1F,CACF,CAKD,OAAQ,CACN,IAAI,EAAI,KAAK,eAAe,QAC5B,GAAI,CAAC,EACH,EAAI,IAAIkC,UACD,aAAaA,EACpB,EAAI,EAAE,gBACC,EAAE,aAAc,EAAC,QAAQ,MAAM,IAAM,GAAI,CAChD,MAAM,EAAIlC,GAAG,cAAc,EAC3B,EAAI,IAAI,EAAE,GAAI,EAAE,SAAU,GAAG,EAAE,UAAY,EAC5C,CACD,MAAM,EAAI,IAAImjE,GAAG,KAAK,eAAe,MAAM,KAAK,eAAe,KAAM,CAAC,CAAC,EACvE,OAAO,EAAE,eAAe,MAAQ,QAAS,EAAE,KAAO,KAAK,KAAM,EAAE,iBAAmB,KAAK,iBAAkB,EAAE,wBAA0B,KAAK,wBAAyB,EAAE,eAAe,yBAA2B,GAAI,EAAE,eAAe,cAAgB,GAAI,CACzP,CAMD,UAAU,EAAI,GAAI,CAChB,MAAM,EAAI,GACV,OAAO,EAAE,KAAO,KAAK,KAAM,EAAE,iBAAmB,KAAK,iBAAkB,EAAE,wBAA0B,KAAK,wBAAyB,EAAE,eAAiB,KAAK,eAAe,UAAU,CAAC,EAAG,CACvL,CAKD,OAAO,qBAAqB,EAAG,EAAG,EAAG,EAAI,GAAI,CAC3C,MAAMzvE,GAAG,eAAe,CACzB,CAQD,OAAO,MAAM,EAAG,EAAG,EAAG,CACpB,MAAM,EAAI,EAAE,eAAgBhB,EAAI,IAAIywE,GAAGA,GAAG,qBAAqB,EAAG,EAAG,EAAG,EAAE,CAAC,EAC3E,OAAOzwE,EAAE,KAAO,EAAE,KAAMA,EAAE,iBAAmB,EAAE,iBAAkBA,EAAE,wBAA0B,EAAE,wBAAyBA,EAAE,eAAe,cAAgB,GAAIA,CAC9J,CAED,SAAU,CACR,KAAK,eAAe,SACrB,CACH,EACA,SAAS0wE,IAAGrwE,EAAG,EAAG,CAChB,MAAM,EAAI,IAAI+tE,GACd,OAAO,EAAE,WAAa/tE,EAAG,EAAE,WAAa,EAAG,CAC7C,CACA,SAASswE,IAAGtwE,EAAI,EAAG,EAAI,EAAG,CACxB,OAAO,IAAI6tE,GAAG7tE,EAAG,CAAC,CACpB,CACA,SAASuwE,IAAGvwE,EAAI,EAAG,EAAI,EAAG,CACxB,OAAO,IAAIiuE,GAAGjuE,EAAG,CAAC,CACpB,CACA,SAASwwE,IAAGxwE,EAAI,EAAG,EAAI,IAAImP,EAAE,EAAG,EAAG,CAAC,EAAG,EAAI,IAAIA,EAAE,EAAG,EAAG,CAAC,EAAG,CACzD,OAAO,IAAI++D,GAAGluE,EAAG,EAAG,CAAC,CACvB,CACA,SAASywE,IAAGzwE,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,CACtC,OAAO,IAAI0tE,GAAG1tE,EAAG,EAAG,EAAG,CAAC,CAC1B,CACA,SAAS0wE,IAAG1wE,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,IAAImP,EAAE,EAAG,EAAG,CAAC,EAAG,EAAI,IAAIA,EAAE,EAAG,EAAG,CAAC,EAAG,CACvE,OAAO,IAAIw+D,GAAG3tE,EAAG,EAAG,EAAG,EAAG,CAAC,CAC7B,CACA,SAAS2wE,IAAG3wE,EAAI,EAAG,EAAI,KAAK,GAAK,EAAG,CAClC,OAAO,IAAIutE,GAAGvtE,EAAG,CAAC,CACpB,CACA,SAAS4wE,IAAG5wE,EAAI,EAAG,EAAI,KAAK,GAAK,EAAG,EAAI,IAAImP,EAAE,EAAG,EAAG,CAAC,EAAG,EAAI,IAAIA,EAAE,EAAG,EAAG,CAAC,EAAG,CAC1E,OAAO,IAAIq+D,GAAGxtE,EAAG,EAAG,EAAG,CAAC,CAC1B,QACA,MAAM6wE,WAAWhB,GAAG,CAClB,aAAc,CACZ,MAAM,GAAG,SAAS,EAAG,KAAK,yBAA2B,GAAI,KAAK,kBAAqB,GAAM,CACvF,GAAI,CAAC,KAAK,cAAgB,KAAK,aAAa,SAAW,EACrD,OACF,MAAM,EAAI,KAAK,MAAM,KAAK,OAAM,EAAK,KAAK,aAAa,MAAM,EAC7D,KAAK,aAAa,CAAC,EAAE,QAAS,GAAM,CAClC,GAAI,EAAE,OAAS,EAAG,CAChB,MAAM,EAAI,EAAE,QACZ,EAAE,iCAAiC,CAAC,EAAG,EAAE,eAAe,oBAAsB,KAAM,KAAK,iBAAiB,KAAK,EAAE,cAAc,EAAG,EAAE,eAAe,OACpJ,CACT,CAAO,CACP,CACG,CAOD,mBAAmB,EAAG,EAAG,CACvB,MAAM,EAAIQ,IAAG,EAAG,CAAC,EACjB,OAAO,KAAK,oBAAsB,EAAG,CACtC,CAOD,yBAAyB,EAAI,EAAG,EAAI,EAAG,CACrC,MAAM,EAAIC,IAAG,EAAG,CAAC,EACjB,OAAO,KAAK,oBAAsB,EAAG,CACtC,CAOD,oBAAoB,EAAI,EAAG,EAAI,EAAG,CAChC,MAAM,EAAIC,IAAG,EAAG,CAAC,EACjB,OAAO,KAAK,oBAAsB,EAAG,CACtC,CAQD,4BAA4B,EAAI,EAAG,EAAI,IAAIphE,EAAE,EAAG,EAAG,CAAC,EAAG,EAAI,IAAIA,EAAE,EAAG,EAAG,CAAC,EAAG,CACzE,MAAM,EAAIqhE,IAAG,EAAG,EAAG,CAAC,EACpB,OAAO,KAAK,oBAAsB,EAAG,CACtC,CASD,sBAAsB,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,CAChD,MAAM7wE,EAAI8wE,IAAG,EAAG,EAAG,EAAG,CAAC,EACvB,OAAO,KAAK,oBAAsB9wE,EAAGA,CACtC,CAUD,8BAA8B,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,IAAIwP,EAAE,EAAG,EAAG,CAAC,EAAGxP,EAAI,IAAIwP,EAAE,EAAG,EAAG,CAAC,EAAG,CACzF,MAAMvP,EAAI8wE,IAAG,EAAG,EAAG,EAAG,EAAG/wE,CAAC,EAC1B,OAAO,KAAK,oBAAsBC,EAAGA,CACtC,CAOD,kBAAkB,EAAI,EAAG,EAAI,KAAK,GAAK,EAAG,CACxC,MAAM,EAAI+wE,IAAG,EAAG,CAAC,EACjB,OAAO,KAAK,oBAAsB,EAAG,CACtC,CACD,0BAA0B,EAAI,EAAG,EAAI,KAAK,GAAK,EAAG,EAAI,IAAIxhE,EAAE,EAAG,EAAG,CAAC,EAAG,EAAI,IAAIA,EAAE,EAAG,EAAG,CAAC,EAAG,CACxF,MAAMxP,EAAIixE,IAAG,EAAG,EAAG,EAAG,CAAC,EACvB,OAAO,KAAK,oBAAsBjxE,EAAGA,CACtC,CASD,iBAAiB,EAAG,EAAG,EAAG,EAAG,CAC3B,MAAMA,EAAI,IAAI0tE,GACd,OAAO,KAAK,oBAAsB1tE,EAAG,KAAK,WAAa,EAAG,KAAK,WAAa,EAAG,KAAK,WAAa,EAAG,KAAK,WAAa,EAAGA,CAC1H,CACD,iCAAkC,CAChC,KAAK,aAAe,IAAI,MAAS,KAAK,aAAe,KAAK,YAAY,QAAS,GAAM,CACnF,aAAakxE,GAAK,KAAK,aAAa,KAAK,CAAC,IAAIT,GAAG,CAAC,CAAC,CAAC,EAAI,aAAaA,GAAK,KAAK,aAAa,KAAK,CAAC,CAAC,CAAC,EAAI,aAAa,OAAS,KAAK,aAAa,KAAK,CAAC,CAC5J,CAAK,CACF,CACD,kBAAmB,CACjB,KAAK,mBAAqB,KAAK,iBAAiB,QAAS,GAAM,CAC7D,EAAE,KAAK,EAAE,CACV,GAAG,KAAK,iBAAmB,GAC7B,CACD,iBAAkB,CAChB,GAAI,CAAC,KAAK,oBACR,OACF,MAAM,EAAI,KAAK,oBAAoB,iBAAiB,QAAQ,IAAI,EAChE,IAAM,IAAM,KAAK,oBAAoB,iBAAiB,OAAO,EAAG,CAAC,EAAG,KAAK,oBAAsB,IAChG,CACD,WAAY,CACV,KAAK,gCAA+B,EAAI,KAAK,cAAgB,KAAK,aAAa,QAAU,IAAM,KAAK,iBAAmB,CAAE,EAC1H,CACD,UAAU,EAAG,CACX,GAAK,KAAK,kBACX,CACD,iBAAiB,EAAG,CAClB,GAAI,KAAK,cAAgB,KAAK,aAAa,OAAS,EAAG,CACrD,MAAM,EAAI,KAAK,aAAa,KAAK,MAAM,KAAK,OAAQ,EAAG,KAAK,aAAa,MAAM,CAAC,EAChF,EAAE,qBAAuB,CAAE,EAAE,EAAE,QAAS,GAAM,CAC5C,GAAI,EAAE,OAAS,EAAG,CAChB,MAAM,EAAI,EAAE,QACZ,EAAE,qBAAqB,KAAK,CAAC,EAAG,EAAE,eAAe,OAClD,CACT,CAAO,CACF,CACF,CAED,WAAW,EAAI,GAAI,EAAI,GAAI,CACzB,IAAI,EACJ,GAAI,KAAK,gBAAe,EAAI,KAAK,aAAe,CAAC,KAAK,cAAgB,KAAK,gCAAiC,EAAE,KAAO,EAAI,KAAK,YAAc,MAAQ,EAAE,QAAS,GAAM,CACnK,GAAI,EAAE,qBACJ,QAASzwE,EAAI,EAAE,qBAAqB,OAAS,EAAGA,GAAK,EAAGA,GAAK,EAC3D,EAAE,qBAAqBA,CAAC,EAAE,QAAO,CAC3C,CAAK,GAAI,GAAK,KAAK,iBACb,QAAS,EAAI,KAAK,iBAAiB,OAAS,EAAG,GAAK,EAAG,GAAK,EAC1D,KAAK,iBAAiB,CAAC,EAAE,QAAO,EACpC,GAAI,KAAK,cAAgB,KAAK,aAAa,OAAQ,CACjD,QAAS,EAAI,EAAG,EAAI,KAAK,aAAa,OAAQ,IAC5C,UAAWA,KAAK,KAAK,aAAa,CAAC,EACjCA,EAAE,QAAO,EACb,KAAK,aAAe,GAAI,KAAK,YAAc,EAC5C,CACD,KAAK,0BAA4B,KAAK,SAAW,KAAK,QAAQ,SAAW,KAAK,QAAQ,QAAQ,EAAE,CACjG,CAID,OAAO,OAAO,EAAG,EAAG,EAAG,EAAG,CACxB,IAAIA,EACJ,aAAauH,GAAKvH,EAAI,KAAOA,EAAI,EACjC,MAAMC,EAAIqN,GAAG,iBAAiB,EAC9B,GAAIrN,GAAKD,IAAM,EAAE,QAAU,EAAE,gBAAkBC,EAAE,MAAM,EAAE,QAASD,EAAG,CAAC,EAAI,EAAE,cAAgB,EAAE,gBAAkB,IAAIC,EAAE,EAAI,EAAE,YAAaD,EAAG,GAAI,EAAE,UAAY,OAAS,EAAE,QAAU,EAAE,EAAG,EAAE,gBAAgB,KAAO,EAAE,cAAe,CAAC,EAAE,WAAa,EAAE,YAAc,GAAK,EAAE,UAAY,OAAS,EAAE,QAAUwP,EAAE,KAAI,EAAK,EAAE,WAAaxP,EAAI,EAAE,QAAUA,EAAE,gBAAgB,EAAE,SAAS,EAAI,EAAE,QAAUwP,EAAE,UAAU,EAAE,OAAO,EAAG,EAAE,QAAU,CAAC,CAAC,EAAE,QAAS,EAAE,mBAAqB,SAAW,EAAE,iBAAmB,EAAE,kBAAmB,EAAE,mBAAqB,SAAW,EAAE,iBAAmB,EAAE,kBAAmB,EAAE,gBAAkB,SAAW,EAAE,cAAgB,EAAE,eAAgB,EAAE,sBAAwB,SAAW,EAAE,oBAAsB,EAAE,qBAAsB,EAAE,WAAY,CAC9uB,QAAS,EAAI,EAAG,EAAI,EAAE,WAAW,OAAQ,IAAK,CAC5C,MAAM,EAAI,EAAE,WAAW,CAAC,EAAG,EAAIlC,GAAG,mBAAmB,EACrD,GAAK,EAAE,WAAW,KAAK,EAAE,MAAM,CAAC,CAAC,CAClC,CACD,EAAE,sBAAwB,EAAE,sBAAuB,EAAE,mBAAqB,EAAE,mBAAoB,EAAE,iBAAmB,EAAE,iBAAkB,EAAE,mBAAqB,EAAE,kBACnK,CACD,GAAI,EAAE,aAAetN,GAAKA,EAAE,eAAe,EAAG,EAAE,gBAAiB,EAAE,cAAe,EAAE,gBAAiB,EAAE,kBAAoB,CAAC,EAAG,EAAE,WAAa,EAAE,WAAa,EAAG,EAAE,gBAAkB,EAAE,gBAAiB,EAAE,gBAAkB,EAAE,gBAAiB,EAAE,QAAU,EAAE,QAAS,EAAE,QAAU,EAAE,QAAS,EAAE,YAAc,EAAE,UAAY,EAAE,UAAW,EAAE,UAAY,EAAE,UAAW,EAAE,UAAY,EAAE,UAAW,EAAE,UAAY,EAAE,WAAY,EAAE,gBAAkB,SAAW,EAAE,cAAgB,EAAE,cAAe,EAAE,kBAAoB,EAAE,mBAAoB,EAAE,qBAAuB,SAAW,EAAE,mBAAqB,EAAE,mBAAoB,EAAE,mBAAqB,EAAE,oBAAqB,EAAE,YAAc,EAAE,YAAa,EAAE,YAAc,EAAE,YAAa,EAAE,aAAe,EAAE,aAAc,EAAE,aAAe,EAAE,aAAc,EAAE,SAAW,EAAE,SAAU,EAAE,QAAUwP,EAAE,UAAU,EAAE,OAAO,EAAG,EAAE,gBAAkB,EAAE,cAAgBA,EAAE,UAAU,EAAE,aAAa,GAAI,EAAE,OAAS0D,GAAG,UAAU,EAAE,MAAM,EAAG,EAAE,OAASA,GAAG,UAAU,EAAE,MAAM,EAAG,EAAE,UAAYA,GAAG,UAAU,EAAE,SAAS,EAAG,EAAE,YAAc,EAAE,YAAa,EAAE,mBAAqB,EAAE,mBAAoB,EAAE,UAAY,EAAE,UAAW,EAAE,eAC9lC,UAAW,KAAK,EAAE,eAChB,EAAE,iBAAiB,EAAE,SAAUA,GAAG,UAAU,EAAE,MAAM,EAAG,EAAE,OAASA,GAAG,UAAU,EAAE,MAAM,EAAI,MAAM,EACrG,GAAI,EAAE,cAAe,CACnB,UAAW,KAAK,EAAE,cAChB,EAAE,gBAAgB,EAAE,SAAUD,GAAG,UAAU,EAAE,KAAK,CAAC,EACrD,EAAE,iBAAmB,EAAE,gBACxB,CACD,GAAI,EAAE,oBACJ,UAAW,KAAK,EAAE,oBAChB,EAAE,sBAAsB,EAAE,SAAU,EAAE,UAAY,OAAS,EAAE,QAAU,EAAE,OAAQ,EAAE,OAAO,EAC9F,GAAI,EAAE,oBACJ,UAAW,KAAK,EAAE,oBAChB,EAAE,sBAAsB,EAAE,SAAU,EAAE,UAAY,OAAS,EAAE,QAAU,EAAE,OAAQ,EAAE,OAAO,EAC9F,GAAI,EAAE,cACJ,UAAW,KAAK,EAAE,cAChB,EAAE,gBAAgB,EAAE,SAAU,EAAE,UAAY,OAAS,EAAE,QAAU,EAAE,OAAQ,EAAE,OAAO,EACxF,GAAI,EAAE,sBACJ,UAAW,KAAK,EAAE,sBAChB,EAAE,wBAAwB,EAAE,SAAU,EAAE,UAAY,OAAS,EAAE,QAAU,EAAE,OAAQ,EAAE,OAAO,EAChG,GAAI,EAAE,kBACJ,UAAW,KAAK,EAAE,kBAChB,EAAE,oBAAoB,EAAE,SAAU,EAAE,UAAY,OAAS,EAAE,QAAU,EAAE,OAAQ,EAAE,OAAO,EAC5F,GAAI,EAAE,cACJ,UAAW,KAAK,EAAE,cAChB,EAAE,gBAAgB,EAAE,SAAU,EAAE,UAAY,OAAS,EAAE,QAAU,EAAE,OAAQ,EAAE,OAAO,EACxF,GAAI,EAAE,kBACJ,UAAW,KAAK,EAAE,kBAChB,EAAE,oBAAoB,EAAE,SAAU,EAAE,UAAY,OAAS,EAAE,QAAU,EAAE,OAAQ,EAAE,OAAO,EAC5F,GAAI,EAAE,mBACJ,UAAW,KAAK,EAAE,mBAChB,EAAE,qBAAqB,EAAE,SAAU,EAAE,UAAY,OAAS,EAAE,QAAU,EAAE,OAAQ,EAAE,OAAO,EAC7F,GAAI,EAAE,kBACJ,UAAW,KAAK,EAAE,kBAChB,EAAE,oBAAoB,EAAE,SAAU,EAAE,UAAY,OAAS,EAAE,QAAU,EAAE,OAAQ,EAAE,OAAO,EAC5F,GAAI,EAAE,uBAAwB,CAC5B,UAAW,KAAK,EAAE,uBAChB,EAAE,yBAAyB,EAAE,SAAU,EAAE,UAAY,OAAS,EAAE,QAAU,EAAE,OAAQ,EAAE,OAAO,EAC/F,EAAE,qBAAuB,EAAE,oBAC5B,CACD,GAAI,EAAE,cAAgBjT,EAAG,CACvB,MAAM,EAAIsN,GAAG,2BAA2B,EACxC,EAAE,aAAe,EAAE,MAAM,EAAE,aAActN,EAAG,CAAC,CAC9C,CACD,IAAI,EACJ,GAAI,EAAE,oBAAqB,CACzB,OAAQ,EAAE,oBAAoB,KAAI,CAChC,IAAK,wBACH,EAAI,IAAIsuE,GACR,MACF,IAAK,gCACH,EAAI,IAAIC,GACR,MACF,IAAK,cACL,IAAK,sBACH,EAAI,IAAIX,GACR,MACF,IAAK,8BACH,EAAI,IAAIC,GACR,MACF,IAAK,0BACH,EAAI,IAAIE,GACR,MACF,IAAK,kCACH,EAAI,IAAIC,GACR,MACF,IAAK,6BACH,EAAI,IAAIE,GACR,MACF,IAAK,uBACH,EAAI,IAAIE,GACR,MACF,IAAK,sBACH,EAAI,IAAIM,IACR,MACF,IAAK,wBACH,EAAI,IAAIF,GACR,MACF,IAAK,aACL,IAAK,qBACL,QACE,EAAI,IAAId,GACR,KACH,CACD,EAAE,MAAM,EAAE,oBAAqB1tE,CAAC,CACjC,MACC,EAAI,IAAI0tE,GAAM,EAAE,MAAM,EAAG1tE,CAAC,EAC5B,EAAE,oBAAsB,EAAG,EAAE,kBAAoB,EAAE,kBAAmB,EAAE,gBAAkB,EAAE,gBAAiB,EAAE,eAAiB,EAAE,gBAAkB,GAAI,EAAE,gBAAkB,EAAE,gBAAiB,EAAE,iBAAmB,EAAE,iBAAkB,EAAE,sBAAwB,EAAE,sBAAuB,EAAE,sBAAwB,EAAE,sBAAuB,EAAE,cAAgB,EAAE,eAAiB,GAAI,EAAE,gBAAkB,EAAE,iBAAmB,EACja,CAUD,OAAO,MAAM,EAAG,EAAG,EAAG,EAAI,GAAIA,EAAG,CAC/B,MAAMC,EAAI,EAAE,KACZ,IAAI,EAAI,KAAM,EAAI,KAAM,EAAG,EAC3B,GAAI,aAAasH,GAAK,EAAI,GAAK,EAAI,EAAG,EAAI,EAAE,UAAW,GAAG,EAAE,cAAgB,EAAE,yBAA0B,CACtG,EAAI,EAAE,aACN,MAAM,EAAI,EAAE,cAAc,QAAQ,OAAS,EAAI,EAAE,cAAc,QAAQ,KAAK;AAAA,CACjF,EAAI,GACC,EAAI,EAAE,yBAAyB,EAAE,WAAW,gBAAiB,EAAE,cAAc,SAAU,EAAE,cAAc,SAAU,CAAC,CACnH,CACD,MAAM,EAAI,IAAI2pE,GAAGjxE,EAAGD,GAAK,EAAE,SAAU,EAAG,EAAG,EAAE,uBAAuB,EACpE,GAAI,EAAE,aAAe,EAAG,EAAE,SAAW,EAAG,EAAE,KAAO,EAAE,GAAK,EAAE,IAAK,EAAE,YAAa,CAC5E,EAAE,YAAc,GAChB,UAAW,KAAK,EAAE,YAAa,CAC7B,MAAMa,EAAI,GACV,UAAWmF,KAAK,EACdnF,EAAE,KAAK4vE,GAAG,MAAMzqE,EAAG,EAAG,CAAC,CAAC,EAC1B,EAAE,YAAY,KAAKnF,CAAC,CACrB,CACF,CACD,OAAOqwE,GAAG,OAAO,EAAG,EAAG,EAAG,CAAC,EAAG,EAAE,cAAgB,EAAE,YAAch+D,GAAG,UAAU,EAAE,WAAW,GAAI,EAAE,cAAgB,EAAE,YAAc1D,EAAE,UAAU,EAAE,WAAW,GAAI,EAAE,mBAAqB,EAAE,iBAAmB,EAAE,kBAAmB,CAAC,GAAK,CAAC,EAAE,kBAAoB,EAAE,MAAO,EAAE,CACvQ,CAMD,UAAU,EAAI,GAAI,CAChB,MAAM,EAAI,GACV,GAAI0hE,GAAG,WAAW,EAAG,KAAM,CAAC,EAAG,EAAE,YAAc,KAAK,YAAY,QAAO,EAAI,EAAE,aAAe,KAAK,aAAc,EAAE,iBAAmB,KAAK,iBAAkB,EAAE,YAAc,KAAK,YAAY,QAAO,EAAI,KAAK,YAAa,CACvN,EAAE,YAAc,GAAI,KAAK,cAAgB,KAAK,kCAC9C,UAAW,KAAK,KAAK,aAAc,CACjC,MAAM,EAAI,GACV,UAAWlxE,KAAK,EACd,EAAE,KAAKA,EAAE,UAAU,CAAC,CAAC,EACvB,EAAE,YAAY,KAAK,CAAC,CACrB,CACF,CACD,OAAO,CACR,CAID,OAAO,WAAW,EAAG,EAAG,EAAG,CACzB,GAAI,EAAE,KAAO,EAAE,KAAM,EAAE,GAAK,EAAE,GAAI,EAAE,SAAW,EAAE,YAAa,EAAE,EAAE,cAAgB,EAAE,cAAe,EAAE,gBAAkB,EAAE,gBAAiB,EAAE,QAAQ,SAAU,CAC5J,MAAMkG,EAAI,EAAE,QACZ,EAAE,UAAYA,EAAE,EACtB,KAAW,CACL,MAAMA,EAAI,EAAE,QACZ,EAAE,QAAUA,EAAE,SACf,CACD,EAAE,sBAAwB,EAAE,oBAAsB,EAAE,oBAAoB,UAAS,GAAK,EAAE,kBAAoB,EAAI,EAAE,QAAU,EAAE,gBAAgB,UAAW,GAAI,EAAE,YAAc,EAAE,gBAAgB,KAAM,EAAE,QAAU,CAAC,CAAC,EAAE,gBAAgB,WAAY,EAAE,QAAU,EAAE,QAASoN,GAAG,2BAA2B,EAAG,CAAC,EAAG,EAAE,sBAAwB,EAAE,sBAAuB,EAAE,mBAAqB,EAAE,mBAAoB,EAAE,iBAAmB,EAAE,iBAAkB,EAAE,mBAAqB,EAAE,mBAAoB,EAAE,WAAa,EAAE,WAAY,EAAE,iBAAmB,EAAE,iBAAkB,EAAE,iBAAmB,EAAE,iBAAkB,EAAE,cAAgB,EAAE,cAAe,EAAE,gBAAkB,EAAE,gBAAiB,EAAE,gBAAkB,EAAE,gBAAiB,EAAE,QAAU,EAAE,QAAS,EAAE,QAAU,EAAE,QAAS,EAAE,UAAY,EAAE,UAAW,EAAE,UAAY,EAAE,UAAW,EAAE,UAAY,EAAE,UAAW,EAAE,UAAY,EAAE,UAAW,EAAE,aAAe,EAAE,aAAc,EAAE,aAAe,EAAE,aAAc,EAAE,YAAc,EAAE,YAAa,EAAE,YAAc,EAAE,YAAa,EAAE,SAAW,EAAE,SAAU,EAAE,QAAU,EAAE,QAAQ,UAAW,EAAE,cAAgB,EAAE,cAAc,QAAO,EAAI,EAAE,OAAS,EAAE,OAAO,QAAO,EAAI,EAAE,OAAS,EAAE,OAAO,QAAO,EAAI,EAAE,UAAY,EAAE,UAAU,UAAW,EAAE,YAAc,EAAE,YAAa,EAAE,mBAAqB,EAAE,mBAAoB,EAAE,UAAY,EAAE,UAAW,EAAE,cAAgB,EAAE,cAAe,EAAE,kBAAoB,EAAE,kBAAmB,EAAE,mBAAqB,EAAE,mBAAoB,EAAE,mBAAqB,EAAE,mBAAoB,EAAE,kBAAoB,EAAE,kBAAmB,EAAE,eAAiB,EAAE,eAAgB,EAAE,gBAAkB,EAAE,gBAAiB,EAAE,sBAAwB,EAAE,sBAAuB,EAAE,gBAAkB,EAAE,gBAAiB,EAAE,iBAAmB,EAAE,iBAAkB,EAAE,sBAAwB,EAAE,sBAAuB,EAAE,wBAA0B,EAAE,wBAAyB,EAAE,oBAAsB,EAAE,oBACpzD,MAAM,EAAI,EAAE,oBACZ,GAAI,EAAG,CACL,EAAE,eAAiB,GACnB,UAAWpN,KAAK,EAAG,CACjB,MAAMC,EAAI,CACR,SAAUD,EAAE,SACZ,OAAQA,EAAE,OAAO,QAAS,CACpC,EACQA,EAAE,OAASC,EAAE,OAASD,EAAE,OAAO,QAAO,EAAKC,EAAE,OAASD,EAAE,OAAO,QAAS,EAAE,EAAE,eAAe,KAAKC,CAAC,CAClG,CACF,CACD,MAAMnG,EAAI,EAAE,mBACZ,GAAIA,EAAG,CACL,EAAE,cAAgB,GAClB,UAAWkG,KAAKlG,EAAG,CACjB,MAAMmG,EAAI,CACR,SAAUD,EAAE,SACZ,MAAOA,EAAE,MAAM,QAAS,CAClC,EACQ,EAAE,cAAc,KAAKC,CAAC,CACvB,CACD,EAAE,iBAAmB,EAAE,gBACxB,CACD,MAAMlG,EAAI,EAAE,yBACZ,GAAIA,EAAG,CACL,EAAE,oBAAsB,GACxB,UAAWiG,KAAKjG,EAAG,CACjB,MAAMkG,EAAI,CACR,SAAUD,EAAE,SACZ,QAASA,EAAE,OACrB,EACQA,EAAE,UAAY,OAASC,EAAE,QAAUD,EAAE,QAAUC,EAAE,QAAUD,EAAE,QAAS,EAAE,oBAAoB,KAAKC,CAAC,CACnG,CACF,CACD,MAAM,EAAI,EAAE,yBACZ,GAAI,EAAG,CACL,EAAE,oBAAsB,GACxB,UAAWD,KAAK,EAAG,CACjB,MAAMC,EAAI,CACR,SAAUD,EAAE,SACZ,QAASA,EAAE,OACrB,EACQA,EAAE,UAAY,OAASC,EAAE,QAAUD,EAAE,QAAUC,EAAE,QAAUD,EAAE,QAAS,EAAE,oBAAoB,KAAKC,CAAC,CACnG,CACF,CACD,MAAM,EAAI,EAAE,mBACZ,GAAI,EAAG,CACL,EAAE,cAAgB,GAClB,UAAWD,KAAK,EAAG,CACjB,MAAMC,EAAI,CACR,SAAUD,EAAE,SACZ,QAASA,EAAE,OACrB,EACQA,EAAE,UAAY,OAASC,EAAE,QAAUD,EAAE,QAAUC,EAAE,QAAUD,EAAE,QAAS,EAAE,cAAc,KAAKC,CAAC,CAC7F,CACF,CACD,MAAM,EAAI,EAAE,2BACZ,GAAI,EAAG,CACL,EAAE,sBAAwB,GAC1B,UAAWD,KAAK,EAAG,CACjB,MAAMC,EAAI,CACR,SAAUD,EAAE,SACZ,QAASA,EAAE,OACrB,EACQA,EAAE,UAAY,OAASC,EAAE,QAAUD,EAAE,QAAUC,EAAE,QAAUD,EAAE,QAAS,EAAE,sBAAsB,KAAKC,CAAC,CACrG,CACF,CACD,MAAM,EAAI,EAAE,uBACZ,GAAI,EAAG,CACL,EAAE,kBAAoB,GACtB,UAAWD,KAAK,EAAG,CACjB,MAAMC,EAAI,CACR,SAAUD,EAAE,SACZ,QAASA,EAAE,OACrB,EACQA,EAAE,UAAY,OAASC,EAAE,QAAUD,EAAE,QAAUC,EAAE,QAAUD,EAAE,QAAS,EAAE,kBAAkB,KAAKC,CAAC,CACjG,CACF,CACD,MAAM,EAAI,EAAE,mBACZ,GAAI,EAAG,CACL,EAAE,cAAgB,GAClB,UAAWD,KAAK,EAAG,CACjB,MAAMC,EAAI,CACR,SAAUD,EAAE,SACZ,QAASA,EAAE,OACrB,EACQA,EAAE,UAAY,OAASC,EAAE,QAAUD,EAAE,QAAUC,EAAE,QAAUD,EAAE,QAAS,EAAE,cAAc,KAAKC,CAAC,CAC7F,CACF,CACD,MAAM,EAAI,EAAE,uBACZ,GAAI,EAAG,CACL,EAAE,kBAAoB,GACtB,UAAWD,KAAK,EAAG,CACjB,MAAMC,EAAI,CACR,SAAUD,EAAE,SACZ,QAASA,EAAE,OACrB,EACQA,EAAE,UAAY,OAASC,EAAE,QAAUD,EAAE,QAAUC,EAAE,QAAUD,EAAE,QAAS,EAAE,kBAAkB,KAAKC,CAAC,CACjG,CACF,CACD,MAAMtF,EAAI,EAAE,wBACZ,GAAIA,EAAG,CACL,EAAE,mBAAqB,GACvB,UAAWqF,KAAKrF,EAAG,CACjB,MAAMsF,EAAI,CACR,SAAUD,EAAE,SACZ,QAASA,EAAE,OACrB,EACQA,EAAE,UAAY,OAASC,EAAE,QAAUD,EAAE,QAAUC,EAAE,QAAUD,EAAE,QAAS,EAAE,mBAAmB,KAAKC,CAAC,CAClG,CACF,CACD,MAAMH,EAAI,EAAE,uBACZ,GAAIA,EAAG,CACL,EAAE,kBAAoB,GACtB,UAAWE,KAAKF,EAAG,CACjB,MAAMG,EAAI,CACR,SAAUD,EAAE,SACZ,QAASA,EAAE,OACrB,EACQA,EAAE,UAAY,OAASC,EAAE,QAAUD,EAAE,QAAUC,EAAE,QAAUD,EAAE,QAAS,EAAE,kBAAkB,KAAKC,CAAC,CACjG,CACF,CACD,MAAMF,EAAI,EAAE,4BACZ,GAAIA,EAAG,CACL,EAAE,uBAAyB,GAC3B,UAAWC,KAAKD,EAAG,CACjB,MAAME,EAAI,CACR,SAAUD,EAAE,SACZ,QAASA,EAAE,OACrB,EACQA,EAAE,UAAY,OAASC,EAAE,QAAUD,EAAE,QAAUC,EAAE,QAAUD,EAAE,QAAS,EAAE,uBAAuB,KAAKC,CAAC,CACtG,CACD,EAAE,qBAAuB,EAAE,oBAC5B,CACD,EAAE,eAAiB,EAAE,aAAe,EAAE,aAAa,UAAS,EAC7D,CASD,MAAM,EAAG,EAAG,EAAI,GAAI,CAClB,MAAM,EAAI,CAAE,GAAG,KAAK,eAAe,EACnC,IAAInG,EAAI,KACR,MAAMC,EAAI,KAAK,QACf,GAAIA,EAAE,0BAA4B,KAAK,cAAgB,KAAM,CAC3DD,EAAI,KAAK,aACT,MAAM,EAAIA,EAAE,cAAc,QAAQ,OAAS,EAAIA,EAAE,cAAc,QAAQ,KAAK;AAAA,CACjF,EAAI,GAAI,EAAIC,EAAE,yBAAyBD,EAAE,WAAW,gBAAiBA,EAAE,cAAc,SAAUA,EAAE,cAAc,SAAU,CAAC,EACrH,EAAE,CAAC,EAAI,EAAE,CAAC,EAAE,OAAS,EAAI,KAAK,gBAAgB,EAAG,CAAC,CACnD,CACD,MAAM,EAAI,KAAK,UAAU,CAAC,EAAG,EAAIkxE,GAAG,MAAM,EAAG,KAAK,QAAU,KAAK,QAAS,KAAK,QAAQ,EACvF,OAAO,EAAE,KAAO,EAAG,EAAE,aAAelxE,EAAG,EAAE,gBAAkB,EAAG,IAAM,SAAW,EAAI,KAAK,SAAU,KAAK,eAAiB,EAAE,aAAe,KAAK,aAAa,MAAK,GAAK,EAAE,QAAU,EAAG,KAAK,kBAAoB,EAAE,MAAO,EAAE,CACzN,CACH,EACAkxE,GAAG,gBAAkB,EACrBA,GAAG,kBAAoB,EACvBA,GAAG,wBAA0B,EAC7BA,GAAG,8BAAgC,EACnCT,GAAG,qBAAuBS,GAAG,MAC7B,MAAMC,IAAK,gCAAiCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBjD5tE,GAAE,qBAAqB2tE,GAAE,EAAIC,IAC7B,MAAMC,IAAK,gCAAiCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4BjD9tE,GAAE,aAAa6tE,GAAE,EAAIC,IACrB,MAAMC,IAAK,8BAA+BC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmB/ChuE,GAAE,qBAAqB+tE,GAAE,EAAIC,IAC7B,MAAMC,IAAK,iCAAkCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAwFlDluE,GAAE,aAAaiuE,GAAE,EAAIC,WACrB,MAAMC,WAAWjlB,EAAG,CAIlB,WAAW,aAAc,CACvB,GAAI,CAAChsD,GAAG,kBACN,MAAO,GACT,MAAM,EAAIA,GAAG,kBAAkB,QAAO,EACtC,OAAO,EAAE,2BAA6B,EAAE,qBACzC,CACD,oBAAqB,CACnB,KAAK,+BAAiC,KAAK,QAAQ,kBAAkB,IAAI,YAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAAC,EAAG,OAAQ,mCAAmC,CAClK,CAKD,aAAc,CACZ,OAAO,KAAK,SACb,CAKD,IAAI,wBAAyB,CAC3B,OAAO,KAAK,uBACb,CACD,IAAI,uBAAuB,EAAG,CAC5B,KAAK,wBAA0B,KAAK,IAAI,EAAG,KAAK,SAAS,CAC1D,CAKD,IAAI,qBAAsB,CACxB,OAAO,KAAK,sBACb,CACD,IAAI,oBAAoB,EAAG,CACzB,KAAK,uBAAyB,CAC/B,CAOD,mBAAmB,EAAG,EAAG,CACvB,MAAM,EAAIgwE,IAAG,EAAG,CAAC,EACjB,OAAO,KAAK,oBAAsB,EAAG,CACtC,CAOD,yBAAyB,EAAI,EAAG,EAAI,EAAG,CACrC,MAAM,EAAIC,IAAG,EAAG,CAAC,EACjB,OAAO,KAAK,oBAAsB,EAAG,CACtC,CAOD,oBAAoB,EAAI,EAAG,EAAI,EAAG,CAChC,MAAM,EAAIC,IAAG,EAAG,CAAC,EACjB,OAAO,KAAK,oBAAsB,EAAG,CACtC,CAQD,4BAA4B,EAAI,EAAG,EAAI,IAAIphE,EAAE,EAAG,EAAG,CAAC,EAAG,EAAI,IAAIA,EAAE,EAAG,EAAG,CAAC,EAAG,CACzE,MAAM,EAAIqhE,IAAG,EAAG,EAAG,CAAC,EACpB,OAAO,KAAK,oBAAsB,EAAG,CACtC,CASD,sBAAsB,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,CAChD,MAAM7wE,EAAI8wE,IAAG,EAAG,EAAG,EAAG,CAAC,EACvB,OAAO,KAAK,oBAAsB9wE,EAAGA,CACtC,CAUD,8BAA8B,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,IAAIwP,EAAE,EAAG,EAAG,CAAC,EAAGxP,EAAI,IAAIwP,EAAE,EAAG,EAAG,CAAC,EAAG,CACzF,MAAMvP,EAAI8wE,IAAG,EAAG,EAAG,EAAG,EAAG/wE,CAAC,EAC1B,OAAO,KAAK,oBAAsBC,EAAGA,CACtC,CAOD,kBAAkB,EAAI,EAAG,EAAI,KAAK,GAAK,EAAG,CACxC,MAAM,EAAI+wE,IAAG,EAAG,CAAC,EACjB,OAAO,KAAK,oBAAsB,EAAG,CACtC,CACD,0BAA0B,EAAI,EAAG,EAAI,KAAK,GAAK,EAAG,EAAI,IAAIxhE,EAAE,EAAG,EAAG,CAAC,EAAG,EAAI,IAAIA,EAAE,EAAG,EAAG,CAAC,EAAG,CACxF,MAAMxP,EAAIixE,IAAG,EAAG,EAAG,EAAG,CAAC,EACvB,OAAO,KAAK,oBAAsBjxE,EAAGA,CACtC,CASD,iBAAiB,EAAG,EAAG,EAAG,EAAG,CAC3B,MAAMA,EAAI,IAAI0tE,GACd,OAAO,KAAK,oBAAsB1tE,EAAG,KAAK,WAAa,EAAG,KAAK,WAAa,EAAG,KAAK,WAAa,EAAG,KAAK,WAAa,EAAGA,CAC1H,CAKD,SAAU,CACR,GAAI,CAAC,KAAK,SAAW,KAAK,+BAAiC,CAAC,KAAK,8BAA8B,QAAS,GAAI,CAAC,KAAK,iBAAmB,CAAC,KAAK,gBAAgB,QAAO,GAAM,KAAK,4BAC3K,MAAO,GACT,GAAI,KAAK,YAAckxE,GAAG,uBACxB,GAAI,CAAC,KAAK,YAAY,KAAK,SAAS,EAAE,OAAO,QAAS,EACpD,MAAO,WACA,CAAC,KAAK,YAAYA,GAAG,kBAAkB,EAAE,OAAO,QAAS,GAAI,CAAC,KAAK,YAAYA,GAAG,aAAa,EAAE,OAAO,QAAS,EAC1H,MAAO,GACT,OAAO,KAAK,UAAU,sBAAqB,EAAK,KAAK,UAAU,oBAAmB,GAAM,KAAK,wBAAyB,GACvH,CAKD,WAAY,CACV,OAAO,KAAK,QACb,CAKD,WAAY,CACV,OAAO,KAAK,QACb,CAKD,YAAa,CACX,MAAO,EACR,CAKD,gBAAiB,CACf,OAAO,KAAK,mBACb,CAKD,MAAM,EAAI,KAAK,WAAY,CACzB,GAAI,CAAC,KAAK,oBAAsB,KAAK,wCAAyC,EAC5E,KAAM,8HACR,GAAI,EAAG,CACL,WAAW,IAAM,CACf,KAAK,MAAM,CAAC,CACb,EAAE,CAAC,EACJ,MACD,CACD,KAAK,SAAW,GAAI,KAAK,SAAW,GAAI,KAAK,aAAe,GAAI,KAAK,uBAAyB,KAAK,YAAc,KAAK,WAAW,OAAS,GAAK,KAAK,QAAU,KAAK,OAAO,eAAe,KAAM,KAAK,mBAAoB,KAAK,iBAAkB,KAAK,kBAAkB,CACvQ,CAID,MAAO,CACL,KAAK,WAAa,KAAK,oBAAoB,gBAAgB,IAAI,EAAG,KAAK,SAAW,GACnF,CAID,OAAQ,CACN,KAAK,gBAAe,EAAI,KAAK,UAAU,qBAAoB,EAAI,KAAK,oBAAsB,EAAG,KAAK,aAAe,CAClH,CAKD,cAAe,CACb,MAAO,mBACR,CAMD,gBAAgB,EAAI,EAAG,CACrB,IAAI,EACJ,QAAS,EAAI,KAAK,gBAAgB,CAAC,IAAM,KAAO,OAAS,EAAE,SAAW,KAAK,gBAAgB,CAAC,EAAE,MAC/F,CACD,sBAAsB,EAAI,EAAG,CAC3B,OAAO,KAAK,gBAAgB,CAAC,GAAK,KAAK,gBAAgB,CAAC,CACzD,CAMD,gBAAgB,EAAG,EAAI,EAAG,CACxB,KAAK,gBAAgB,CAAC,EAAI,IAAIzsD,GAAG,KAAK,OAAO,EAAG,KAAK,gBAAgB,CAAC,EAAE,OAAS,CAClF,CAID,IAAI,iCAAkC,CACpC,OAAO,KAAK,mCAAqC,KAAK,iCAAmC,IAAI3kB,IAAM,KAAK,gCACzG,CAID,IAAI,kBAAmB,CACrB,MAAO,oBACR,CAMD,IAAI,eAAgB,CAClB,OAAO,KAAK,qBAAqB,KAAK,aAAe,CAAC,CACvD,CAID,IAAI,aAAc,CAChB,OAAO,IACR,CACD,0BAA0B,EAAG,EAAG,EAAG,CACjC,OAAO,MAAM,0BAA0B,EAAG,EAAG,CAAC,EAAG,KAAK,gBAAiB,EAAE,IAC1E,CAOD,iBAAiB,EAAG,EAAG,CACrB,KAAK,kBAAoB,KAAK,gBAAkB,CAAE,GAClD,MAAM,EAAI,IAAIwwE,GAAG,EAAG,CAAC,EACrB,OAAO,KAAK,gBAAgB,KAAK,CAAC,EAAG,KAAK,sBAAsB,EAAE,EAAG,KAAK,gBAAe,EAAI,IAC9F,CACD,sBAAsB,EAAI,GAAI,CAC5B,KAAK,kBAAoB,GAAK,KAAK,gBAAgB,KAAK,CAAC,EAAG,IAAM,EAAE,SAAW,EAAE,SAAW,GAAK,EAAE,SAAW,EAAE,SAAW,EAAI,CAAC,EAAG,KAAK,yBAA2B,KAAK,uBAAuB,QAAO,EAAI,KAAK,uBAAyB,MACzO,CAED,uBAAwB,CACtB,KAAK,sBAAqB,EAAI,KAAK,uBAAuB,KAAK,eAAgB,uBAAuB,EAAG,KAAK,uBAAuB,KAAK,uBAAwB,+BAA+B,EAAG,KAAK,uBAAuB,KAAK,mBAAoB,2BAA2B,EAAG,KAAK,uBAAuB,KAAK,wBAAyB,gCAAgC,EAAG,KAAK,uBAAuB,KAAK,eAAgB,uBAAuB,EAAG,KAAK,OACrc,CAMD,oBAAoB,EAAG,CACrB,OAAO,KAAK,0BAA0B,EAAG,KAAK,gBAAiB,KAAK,sBAAsB,EAAG,KAAK,uBAAyB,KAAM,IAClI,CAID,gBAAiB,CACf,IAAI,EACJ,UAAW,KAAK,KAAK,eAClB,EAAI,KAAK,cAAc,CAAC,EAAE,cAAgB,MAAQ,EAAE,OACxD,CACD,mBAAmB,EAAG,EAAG,EAAG,CAC1B,MAAM,EAAI,IAAIF,GAAG,EAAG,CAAC,EACrB,EAAE,KAAK,CAAC,EAAG,KAAK,gBAAe,CAChC,CAOD,gBAAgB,EAAG,EAAG,CACpB,OAAO,KAAK,iBAAmB,KAAK,eAAiB,IAAK,KAAK,mBAAmB,KAAK,eAAgB,EAAG,CAAC,EAAG,KAAK,uBAAuB,KAAK,eAAgB,wBAAyB,EAAE,EAAG,KAAK,gBAAe,EAAI,IACtN,CAMD,mBAAmB,EAAG,CACpB,OAAO,KAAK,0BAA0B,EAAG,KAAK,eAAgB,KAAK,qBAAqB,EAAG,KAAK,sBAAwB,KAAM,IAC/H,CACD,uBAAuB,EAAG,EAAG,EAAI,GAAI,CACnC,GAAI,CAAC,EACH,OACF,GAAK,EAAE,KAAK,CAACpwE,EAAGC,IAAMD,EAAE,SAAWC,EAAE,SAAW,GAAKD,EAAE,SAAWC,EAAE,SAAW,EAAI,CAAC,EACpF,MAAM,EAAI,KACV,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,QAAS,EAAE,EAAE,CAAC,EAAI,KACjC,CAOD,wBAAwB,EAAG,EAAG,CAC5B,OAAO,KAAK,yBAA2B,KAAK,uBAAyB,IAAK,KAAK,mBAAmB,KAAK,uBAAwB,EAAG,CAAC,EAAG,KAAK,uBAAuB,KAAK,uBAAwB,gCAAiC,EAAE,EAAG,KAAK,gBAAe,EAAI,IAC9P,CAMD,2BAA2B,EAAG,CAC5B,OAAO,KAAK,0BAA0B,EAAG,KAAK,uBAAwB,KAAK,6BAA6B,EAAG,KAAK,8BAAgC,KAAM,IACvJ,CAOD,oBAAoB,EAAG,EAAG,CACxB,OAAO,KAAK,qBAAuB,KAAK,mBAAqB,IAAK,KAAK,mBAAmB,KAAK,mBAAoB,EAAG,CAAC,EAAG,KAAK,uBAAuB,KAAK,mBAAoB,4BAA6B,EAAE,EAAG,KAAK,gBAAe,EAAI,IAC1O,CAMD,uBAAuB,EAAG,CACxB,OAAO,KAAK,0BAA0B,EAAG,KAAK,mBAAoB,KAAK,yBAAyB,EAAG,KAAK,0BAA4B,KAAM,IAC3I,CAOD,yBAAyB,EAAG,EAAG,CAC7B,OAAO,KAAK,0BAA4B,KAAK,wBAA0B,IAAK,KAAK,mBAAmB,KAAK,wBAAyB,EAAG,CAAC,EAAG,KAAK,uBAAuB,KAAK,wBAAyB,iCAAkC,EAAE,EAAG,KAAK,gBAAe,EAAI,IACnQ,CAMD,4BAA4B,EAAG,CAC7B,OAAO,KAAK,0BAA0B,EAAG,KAAK,wBAAyB,KAAK,8BAA8B,EAAG,KAAK,+BAAiC,KAAM,IAC1J,CAOD,gBAAgB,EAAG,EAAG,CACpB,OAAO,KAAK,iBAAmB,KAAK,eAAiB,IAAK,KAAK,mBAAmB,KAAK,eAAgB,EAAG,CAAC,EAAG,KAAK,uBAAuB,KAAK,eAAgB,wBAAyB,EAAE,EAAG,KAAK,gBAAe,EAAI,IACtN,CAMD,mBAAmB,EAAG,CACpB,OAAO,KAAK,0BAA0B,EAAG,KAAK,eAAgB,KAAK,qBAAqB,EAAG,KAAK,sBAAwB,KAAM,IAC/H,CAKD,qBAAsB,CACpB,OAAO,IACR,CAKD,wBAAyB,CACvB,OAAO,IACR,CAKD,sBAAuB,CACrB,OAAO,IACR,CAKD,yBAA0B,CACxB,OAAO,IACR,CAKD,uBAAwB,CACtB,OAAO,IACR,CAKD,0BAA2B,CACzB,OAAO,IACR,CAKD,uBAAwB,CACtB,OAAO,IACR,CAKD,0BAA2B,CACzB,OAAO,IACR,CAKD,iBAAkB,CAChB,OAAO,IACR,CAKD,oBAAqB,CACnB,OAAO,IACR,CAKD,kBAAmB,CACjB,OAAO,IACR,CAMD,IAAI,kBAAmB,CACrB,MAAO,EACR,CACD,IAAI,iBAAiB,EAAG,CACvB,CAKD,qBAAsB,CACpB,OAAO,IACR,CAKD,wBAAyB,CACvB,OAAO,IACR,CAUD,YAAY,EAAG,EAAG,EAAG,EAAI,KAAMD,EAAI,GAAI,CACrC,GAAI,MAAM,CAAC,EAAG,KAAK,UAAY,UAAW,KAAK,kBAAoB,EAAG,KAAK,qBAAuB,GAAI,KAAK,aAAe,EAAG,KAAK,iBAAmB,GAAI,KAAK,gCAAkC,GAAI,KAAK,SAAW,GAAI,KAAK,SAAW,GAAI,KAAK,WAAa,EAAG,KAAK,gBAAkB,GAAI,KAAK,aAAe,EAAG,KAAK,iBAAmB,IAAK,KAAK,4BAA8B,GAAI,KAAK,oBAAsB,IAAIF,GAAK,KAAK,oBAAsB,IAAIA,GAAK,KAAK,gBAAkB,GAAI,KAAK,aAAe,GAAI,KAAK,QAAU,GAAI,KAAK,MAAQ,GAAI,KAAK,iCAAmC,KAAM,CAAC,GAAK,EAAE,aAAY,IAAO,SAAW,KAAK,OAAS,GAAKY,GAAG,iBAAkB,KAAK,QAAU,KAAK,OAAO,UAAS,EAAI,KAAK,SAAW,KAAK,OAAO,YAAW,EAAI,KAAK,OAAO,gBAAgB,KAAK,IAAI,IAAM,KAAK,QAAU,EAAG,KAAK,wBAA0BkP,EAAE,iBAAiB,GAAK,EAAG,GAAK,IAAK,KAAK,QAAQ,eAAe,GAAI,KAAK,QAAQ,QAAO,EAAG,sBAAuB,CACl7B,GAAI,CAACtC,GAAG,qCAAqC,EAC3C,MAAM,IAAI,MAAM,yFAAyF,EAC3G,KAAK,UAAY,IAAKA,GAAG,qCAAqC,GAAG,KAAM,KAAK,OAAO,CACzF,KAAW,CACL,GAAI,CAACA,GAAG,8BAA8B,EACpC,MAAM,IAAI,MAAM,kFAAkF,EACpG,KAAK,UAAY,IAAKA,GAAG,8BAA8B,GAAG,KAAM,KAAK,OAAO,CAC7E,CACD,KAAK,gBAAkB,CAAE,EAAG,IAAImX,GAAG,KAAK,OAAO,CAAG,EAAE,KAAK,gBAAgB,CAAC,EAAE,OAAS,EAAG,KAAK,cAAgB,CAAE,EAAG,IAAIA,GAAG,KAAK,OAAO,CAAG,EAAE,KAAK,cAAc,CAAC,EAAE,cAAgB,KAAK,cAAc,CAAC,EAAE,YAAY,cAAgB,IAAK,KAAK,qBAAsB,KAAK,oCAAoC,IAAI,EAAG,EAAI,GAAK,CAAE,EAAE,EAAE,mBAAqB,OAAO,EAAE,kBAC/V,MAAMxkB,EAAI,CACR,SAAU,IACV,kBAAmB,KAAK,QAAQ,QAAS,EAAC,eAC1C,GAAG,CACT,EAAO,EAAI,EACP,SAAS,CAAC,IAAMA,EAAE,SAAW,GAAI,KAAK,UAAYA,EAAE,SAAU,KAAK,wBAA0BA,EAAE,SAAU,KAAK,oBAAsB,EAAG,KAAK,yBAA2BD,EAAG,KAAK,oBAAsB,IAAI0tE,GACzM,MAAM,EAAI,KAAK,IAAI,KAAK,QAAQ,QAAO,EAAG,eAAgBztE,EAAE,iBAAiB,EAC7E,IAAI,EAAI,GACR,QAAS,EAAI,EAAG,EAAI,EAAG,EAAE,EACvB,EAAE,KAAK,KAAK,OAAM,CAAE,EAAG,EAAE,KAAK,KAAK,OAAQ,GAAG,EAAE,KAAK,KAAK,QAAQ,EAAG,EAAE,KAAK,KAAK,OAAM,CAAE,EAC3F,KAAK,eAAiB,IAAI6sC,GAAG,IAAI,aAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,CAAC,EAAG,KAAK,eAAe,KAAO,4BAA6B,KAAK,eAAe,MAAQ,EAAG,KAAK,eAAe,MAAQ,EAAG,EAAI,GACvM,QAAS,EAAI,EAAG,EAAI,EAAG,EAAE,EACvB,EAAE,KAAK,KAAK,OAAM,CAAE,EAAG,EAAE,KAAK,KAAK,OAAQ,GAAG,EAAE,KAAK,KAAK,QAAQ,EAAG,EAAE,KAAK,KAAK,OAAM,CAAE,EAC3F,KAAK,gBAAkB,IAAIA,GAAG,IAAI,aAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,CAAC,EAAG,KAAK,gBAAgB,KAAO,4BAA6B,KAAK,gBAAgB,MAAQ,EAAG,KAAK,gBAAgB,MAAQ,EAAG,KAAK,mBAAqB,CAClO,CACD,QAAS,CACP,KAAK,gBAAe,CACrB,CACD,qBAAqB,EAAG,EAAG,EAAG,CAC5B,MAAM,EAAI,GACV,EAAE,SAAW,EAAE,mBAAmB,WAAY,EAAG,EAAG,KAAK,sBAAuB,EAAE,EAClF,IAAI9sC,EAAI,EACR,EAAE,IAAM,EAAE,mBAAmB,MAAOA,EAAG,EAAG,KAAK,sBAAuB,EAAE,EAAGA,GAAK,EAAG,EAAE,KAAO,EAAE,mBAAmB,OAAQA,EAAG,EAAG,KAAK,sBAAuB,EAAE,EAAGA,GAAK,EAAG,EAAE,KAAO,EAAE,mBAAmB,OAAQA,EAAG,EAAG,KAAK,sBAAuB,EAAE,EAAGA,GAAK,EAAGA,GAAK,EAAG,KAAK,gBAAkBkxE,GAAG,0BAA4B,EAAE,UAAY,EAAE,mBAAmB,YAAalxE,EAAG,EAAG,KAAK,sBAAuB,EAAE,GAAIA,GAAK,EAAG,KAAK,UAAU,oBAAsBA,GAAK,GAAI,KAAK,+BAA+BwuE,KAAOxuE,GAAK,EAAG,KAAK,UAAU,oBAAsBA,GAAK,IAAK,KAAK,yBAA2B,EAAE,MAAQ,EAAE,mBAAmB,QAASA,EAAG,EAAG,KAAK,sBAAuB,EAAE,EAAGA,GAAK,GAAI,KAAK,oBAAsB,EAAE,iBAAmB,EAAE,mBAAmB,mBAAoBA,EAAG,EAAG,KAAK,sBAAuB,EAAE,EAAGA,GAAK,EAAG,KAAK,UAAU,oBAAsBA,GAAK,IAAK,KAAK,eAAiB,EAAE,kBAAoB,EAAE,mBAAmB,oBAAqBA,EAAG,EAAG,KAAK,sBAAuB,EAAE,EAAGA,GAAK,EAAG,KAAK,UAAU,oBAAsBA,GAAK,GAAI,EAAE,kBAAoB,EAAE,mBAAmB,oBAAqBA,EAAG,EAAG,KAAK,sBAAuB,EAAE,EAAGA,GAAK,EAAG,KAAK,UAAU,oBAAsBA,GAAK,IAAK,EAAE,MAAQ,EAAE,mBAAmB,QAASA,EAAG,EAAG,KAAK,sBAAuB,EAAE,EAAG,KAAK,8BAAgCA,IAAMA,GAAK,EAAG,KAAK,2BAA6B,EAAE,UAAY,EAAE,mBAAmB,YAAaA,EAAG,EAAG,KAAK,sBAAuB,EAAE,EAAGA,GAAK,EAAG,KAAK,wBAA0B,EAAE,gBAAkB,EAAE,mBAAmB,kBAAmBA,EAAG,EAAG,KAAK,sBAAuB,EAAE,EAAGA,GAAK,IAAK,EAAE,OAAS,EAAE,mBAAmB,SAAU,EAAG,CAAC,EAAG,EAAE,GAAK,EAAE,mBAAmB,KAAM,EAAG,CAAC,EAAG,KAAK,qBAAqB,KAAK,CAAC,EAAG,KAAK,UAAU,oBAAoB,EAAG,CAAC,EAAG,KAAK,eAAc,CACrvD,CACD,YAAY,EAAI,GAAI,CAClB,GAAI,KAAK,UAAY,CAAC,EACpB,OACF,MAAM,EAAI,KAAK,QAAS,EAAI,GAC5B,KAAK,sBAAwB,GAAI,KAAK,aAAe,EAAG,KAAK,UAAU,oBAAsB,KAAK,uBAAyB,GAAI,KAAK,+BAA+BwuE,KAAO,KAAK,uBAAyB,EAAG,KAAK,UAAU,oBAAsB,KAAK,uBAAyB,IAAK,KAAK,mBAAqB,KAAK,uBAAyB,EAAG,KAAK,UAAU,oBAAsB,KAAK,uBAAyB,IAAK,KAAK,yBAA2B,KAAK,uBAAyB,GAAI,KAAK,gCAAkC,KAAK,uBAAyB,GAAI,KAAK,2BAA6B,KAAK,uBAAyB,EAAG,KAAK,wBAA0B,KAAK,uBAAyB,IAAK,KAAK,eAAiB,KAAK,uBAAyB,EAAG,KAAK,UAAU,oBAAsB,KAAK,uBAAyB,IAAK,KAAK,UAAU,oBAAsB,KAAK,uBAAyB,GAAK,KAAK,sBAAwB,EAAI,IAC94B,MAAM,EAAI,KAAK,+BAA+BA,GAAIxuE,EAAI2P,EAAE,QAAQ,CAAC,EACjE,IAAI1P,EAAI,EACR,QAAS,EAAI,EAAG,EAAI,KAAK,UAAW,IAClC,GAAI,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,KAAK,OAAM,CAAE,EAAG,EAAE,KAAK,KAAK,OAAQ,GAAG,EAAE,KAAK,KAAK,OAAQ,GAAG,EAAE,KAAK,KAAK,OAAM,CAAE,EAAG,GAAK,KAAK,oBAAoB,6BAA6B,EAAG,KAAMD,CAAC,EAAG,EAAE,KAAKA,EAAE,CAAC,EAAG,EAAE,KAAKA,EAAE,CAAC,EAAG,EAAE,KAAKA,EAAE,CAAC,IAAM,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,GAAI,KAAK,UAAU,mBAAqB,EAAE,KAAK,CAAC,EAAGC,GAAK,GAAI,IAAM,KAAK,oBAAoB,0BAA0B,EAAG,KAAMD,CAAC,EAAG,EAAE,KAAKA,EAAE,CAAC,EAAG,EAAE,KAAKA,EAAE,CAAC,EAAG,EAAE,KAAKA,EAAE,CAAC,EAAG,KAAK,UAAU,mBAAqB,EAAE,KAAK,CAAC,EAAGC,GAAK,GAAI,KAAK,yBAA2B,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAGA,GAAK,GAAI,KAAK,mBAAqB,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,CAAC,EAAG,KAAK,UAAU,mBAAqB,EAAE,KAAK,CAAC,EAAGA,GAAK,GAAI,KAAK,eAAiB,EAAE,KAAK,KAAK,OAAQ,GAAG,EAAE,KAAK,KAAK,OAAQ,GAAG,EAAE,KAAK,KAAK,OAAM,CAAE,EAAG,KAAK,UAAU,mBAAqB,EAAE,KAAK,CAAC,EAAG,EAAE,KAAK,KAAK,OAAM,CAAE,EAAG,EAAE,KAAK,KAAK,OAAQ,GAAG,EAAE,KAAK,KAAK,OAAM,CAAE,EAAG,KAAK,UAAU,mBAAqB,EAAE,KAAK,CAAC,EAAGA,GAAK,GAAI,EAAE,KAAK,CAAC,EAAGA,GAAK,EAAG,KAAK,gCAAkC,EAAE,KAAK,CAAC,EAAGA,GAAK,GAAI,KAAK,2BAA6B,EAAE,KAAK,CAAC,EAAGA,GAAK,EAAG,KAAK,wBAA0B,EAAE,KAAK,CAAC,EAAGA,GAAK,IAAK,KAAK,UAAU,kBAAmB,CAC/sC,IAAI,EAAI,GAAKA,EAAI,EAAI,GACrB,IAAKA,GAAK,EAAG,KAAM,GACjB,EAAE,KAAK,CAAC,CACX,CACH,MAAM,EAAI,IAAI,aAAa,CAAC,GAAK,GAAK,EAAG,EAAG,IAAM,GAAK,EAAG,EAAG,GAAK,IAAM,EAAG,EAAG,IAAM,IAAM,EAAG,CAAC,CAAC,EAAG,EAAI,KAAK,UAAU,qBAAqB,CAAC,EAAG,EAAI,KAAK,UAAU,qBAAqB,CAAC,EACvL,KAAK,SAAW,IAAIkU,GAAG,EAAG,EAAG,GAAI,KAAK,qBAAqB,EAAG,KAAK,SAAW,IAAIA,GAAG,EAAG,EAAG,GAAI,KAAK,qBAAqB,EAAG,KAAK,cAAgB,IAAIA,GAAG,EAAG,EAAG,GAAI,CAAC,EAAG,KAAK,qBAAuB,GAAI,KAAK,qBAAqB,KAAK,SAAU,KAAK,SAAU,KAAK,aAAa,EAAG,KAAK,qBAAqB,KAAK,SAAU,KAAK,SAAU,KAAK,aAAa,EAAG,KAAK,cAAgB,KAAK,SAAU,KAAK,cAAgB,KAAK,QAC/Z,CAED,uBAAwB,CACtB,KAAK,4BAA2B,EAAI,KAAK,2BAA4B,EAAE,KAAK,mCAAkC,EAAI,KAAK,+BAAgC,EAAE,KAAK,oCAAmC,EAAI,KAAK,6BAC1M,IAAI,EAAI,KAAK,oBAAsB,KAAK,oBAAoB,iBAAkB,EAAG,GACjF,OAAO,KAAK,oBAAsB,GAAK;AAAA,oBACtB,KAAK,yBAA2B,GAAK;AAAA,yBAChC,KAAK,wBAA0B,GAAK;AAAA,wBACrC,KAAK,gCAAkC,GAAK;AAAA,gCACpC,KAAK,4BAA8B,GAAK;AAAA,4BAC5C,KAAK,iCAAmC,GAAK;AAAA,iCACxC,KAAK,wBAA0B,GAAK;AAAA,wBAC7C,KAAK,0BAA4B,GAAK;AAAA,sBACxC,KAAK,wBAA0B,GAAK;AAAA,mCACvB,KAAK,eAAiB,GAAK;AAAA,gBAC9C,KAAK,UAAY,GAAK;AAAA,gBACtB,KAAK,UAAU,sBAAqB,GAAM,KAAK,uBAAyB,EAAI,KAAK,UAAU,oBAAmB,GAAM,KAAK,qBAAuB,EAAG,KAAK,cAAgB,KAAK,UAAU,mBAAmB,CAAC,EAAG,KAAK,UAAU,oBAAqB,EAChQ,CAID,YAAY,EAAG,CACb,MAAM,EAAI,KAAK,sBAAsB,CAAC,EACtC,GAAI,GAAK,MAAQ,EAAE,OACjB,OAAO,EACT,MAAM,EAAI,GACV,KAAK,YAAY,EAAG,CAAC,EACrB,IAAI,EAAI,KAAK,cAAc,CAAC,EAC5B,IAAM,EAAI,IAAIsQ,GAAG,KAAK,OAAO,EAAG,EAAE,cAAgB,EAAE,YAAY,cAAgB,IAAK,KAAK,cAAc,CAAC,EAAI,GAC7G,MAAMzkB,EAAI,EAAE,KAAK;AAAA,CACpB,EACG,GAAI,EAAE,UAAYA,EAAG,CACnB,MAAMC,EAAI,GAAI,EAAI,GAAI,EAAI,GAC1B,KAAK,sCAAsC,EAAGA,EAAG,CAAC,EAAG,EAAE,UAAU,KAAK,QAAQ,aAAa,qBAAsBA,EAAG,EAAG,EAAGD,CAAC,EAAGA,CAAC,CAChI,CACD,OAAO,CACR,CAID,OAAO,4BAA4B,EAAI,GAAI,EAAI,GAAI,EAAI,GAAI,EAAI,GAAI,CACjE,MAAMA,EAAI,CAACiU,EAAE,aAAc,MAAO,OAAQ,OAAQ,OAAO,EACzD,OAAO,GAAKjU,EAAE,KAAKiU,EAAE,SAAS,EAAG,GAAKjU,EAAE,KAAK,WAAW,EAAG,GAAKA,EAAE,KAAK,kBAAkB,EAAG,GAAKA,EAAE,KAAK,WAAW,EAAGA,EAAE,KAAK,SAAUiU,EAAE,MAAM,EAAGjU,CACnJ,CAID,OAAO,0BAA0B,EAAI,GAAI,EAAI,GAAI,EAAI,GAAI,CACvD,MAAM,EAAI,CAAC,YAAa,cAAe,OAAQ,aAAc,YAAa,UAAW,mBAAoB,aAAa,EACtH,OAAOgvB,GAAG,CAAC,EAAG,GAAK,EAAE,KAAK,YAAY,EAAG,GAAK,EAAE,KAAK,0BAA0B,EAAG,IAAM,EAAE,KAAK,WAAW,EAAG,EAAE,KAAK,WAAW,GAAI,CACpI,CAOD,YAAY,EAAG,EAAI,EAAG,EAAI,GAAI,CAC5B,GAAI,KAAK,SAAWC,GAAG,KAAM,KAAK,OAAQ,CAAC,EAAG,KAAK,UAAY,KAAK,OAAO,YAAc,KAAK,OAAO,UAAY5W,GAAG,cAAgB,EAAE,KAAK,aAAa,GAAI,IAAM64D,GAAG,oBAAsB,EAAE,KAAK,2BAA2B,EAAG,KAAK,SAAW,EAAE,KAAK,eAAe,EAAG,KAAK,qBAAuB,EAAE,KAAK,0BAA0B,EAAG,KAAK,kBAC5U,OAAQ,EAAE,KAAK,mBAAmB,EAAG,KAAK,cAAa,CACrD,KAAKA,GAAG,gBACN,EAAE,KAAK,oBAAoB,EAC3B,MACF,KAAKA,GAAG,wBACN,EAAE,KAAK,4BAA4B,EACnC,MACF,KAAKA,GAAG,kBACN,EAAE,KAAK,2BAA2B,EAClC,KACH,CACH,KAAK,wBAA0B,EAAE,KAAK,wBAAwB,EAAG,KAAK,yBAA2B,EAAE,KAAK,sBAAsB,EAAG,GAAK,KAAK,gCAAkC,KAAK,8BAA8B,eAAe,KAAK,oCAAoC,EAAG,EAAE,KAAK,GAAK,KAAK,qCAAqC,SAAQ,CAAE,EAC5U,CAOD,sCAAsC,EAAG,EAAG,EAAG,CAC7C,EAAE,KAAK,GAAGS,GAAG,4BAA4B,CAAC,CAAC,KAAK,uBAAwB,KAAK,yBAA0B,KAAK,kBAAmB,KAAK,mBAAqB,KAAK,gBAAkBT,GAAG,uBAAuB,CAAC,EAAG,EAAE,KAAK,GAAGS,GAAG,0BAA0B,KAAK,yBAA0B,KAAK,oBAAqB,KAAK,QAAQ,CAAC,EAAG,EAAE,KAAK,iBAAkB,sBAAsB,EAAG,KAAK,gCAAkC99D,GAAG,gBAAgB,EAAG,KAAK,oCAAoC,EAAGA,GAAG,gBAAgB,EAAG,KAAK,oCAAoC,EAC1hB,CAKD,QAAQ,EAAI,GAAI,CACd,IAAI,EACJ,KAAK,WAAa,KAAK,aAAe,EAAI,KAAK,oBAAsB,EAAI,KAAK,SAAW,KAAO,OAAS,EAAE,kBAAiB,IAAO,GAAI,KAAK,cAAgB,KAAK,WAAY,KAAK,UAAY,KAAK,oBAAsB,KAAK,cAAgB,KAAK,oBAAsB,KAAK,KAAM,EAAE,KAAK,iBAAmB,KAAK,SACpT,CACD,6BAA6B,EAAG,EAAG,CACjC,MAAM,EAAI,KAAK,CAAC,EAChB,GAAI,CAAC,GAAK,CAAC,EAAE,QAAU,EACrB,OACF,MAAM,EAAI,IAAI,aAAa,KAAK,gBAAgB,EAChD,QAAS7T,EAAI,EAAGA,EAAI,KAAK,iBAAkBA,IAAK,CAC9C,MAAMC,EAAID,EAAI,KAAK,iBACnBmwE,GAAG,mBAAmBlwE,EAAG,EAAG,CAAC,EAAG,EAAG,IAAM,CACvC,EAAED,CAAC,EAAI2S,GAAG,KAAK,EAAE,QAAS,EAAE,QAAS,CAAC,CAC9C,CAAO,CACF,CACD,KAAK,CAAC,EAAIm6B,GAAG,eAAe,EAAG,KAAK,iBAAkB,EAAG,KAAK,QAAU,KAAK,QAAS,GAAI,GAAI,CAAC,EAAG,KAAK,CAAC,EAAE,KAAO,EAAE,UAAU,CAAC,CAC/H,CACD,4BAA6B,CAC3B,KAAK,6BAA6B,KAAK,eAAgB,uBAAuB,CAC/E,CACD,oCAAqC,CACnC,KAAK,6BAA6B,KAAK,uBAAwB,+BAA+B,CAC/F,CACD,gCAAiC,CAC/B,KAAK,6BAA6B,KAAK,mBAAoB,2BAA2B,CACvF,CACD,qCAAsC,CACpC,KAAK,6BAA6B,KAAK,wBAAyB,gCAAgC,CACjG,CACD,4BAA6B,CAC3B,KAAK,6BAA6B,KAAK,eAAgB,uBAAuB,CAC/E,CACD,6BAA8B,CAC5B,GAAI,CAAC,KAAK,iBAAmB,CAAC,KAAK,gBAAgB,QAAU,KAAK,uBAChE,OACF,MAAM,EAAI,IAAI,WAAW,KAAK,iBAAmB,CAAC,EAAG,EAAI15B,GAAG,OAAO,CAAC,EACpE,QAAS,EAAI,EAAG,EAAI,KAAK,iBAAkB,IAAK,CAC9C,MAAM,EAAI,EAAI,KAAK,iBACnB+8D,GAAG,mBAAmB,EAAG,KAAK,gBAAiB,CAACnwE,EAAGC,EAAG,IAAM,CAC1DiT,GAAG,UAAUlT,EAAE,OAAQC,EAAE,OAAQ,EAAG,CAAC,EAAG,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAK,EAAE,EAAI,EAAI,CAAC,EAAI,EAAE,EAAI,IAAK,EAAE,EAAI,EAAI,CAAC,EAAI,EAAE,EAAI,IAAK,EAAE,EAAI,EAAI,CAAC,EAAI,EAAE,EAAI,GAC/I,CAAO,CACF,CACD,KAAK,uBAAyB6sC,GAAG,kBAAkB,EAAG,KAAK,iBAAkB,EAAG,KAAK,OAAQ,GAAI,GAAI,CAAC,EAAG,KAAK,uBAAuB,KAAO,gBAC7I,CACD,QAAQ,EAAG,EAAG,CACZ,IAAIlpC,EAAGrB,EAAGD,EAAG4G,EACb,MAAM1I,EAAI,KAAK,YAAY,CAAC,EAAGC,EAAID,EAAE,OACrC,KAAK,QAAQ,aAAaA,CAAC,EAC3B,MAAMR,IAAM4D,EAAI,KAAK,SAAW,KAAO,OAASA,EAAE,kBAAoBgM,EAAE,iBACxE,GAAInP,EAAE,UAAU,OAAQT,CAAC,EAAGS,EAAE,UAAU,aAAc,KAAK,yBAA2B,KAAK,OAAO,qBAAqB,EAAGA,EAAE,WAAW,iBAAkB,KAAK,eAAe,EAAGA,EAAE,WAAW,mBAAoB,KAAK,gBAAgB,EAAGA,EAAE,WAAW,cAAe,KAAK,WAAW,EAAG,KAAK,SAAWA,EAAE,UAAU,YAAa,CAAC,EAAG,KAAK,uBAAyBA,EAAE,WAAW,uBAAwB,KAAK,sBAAsB,EAAIA,EAAE,gBAAgB,YAAa,KAAK,SAAS,EAAG,KAAK,0BAA4B,KAAK,gBAAiB,CAC5gB,MAAM,EAAI,KAAK,gBAAgB,YAAW,EAC1CA,EAAE,UAAU,aAAc,KAAK,gBAAkB,EAAE,MAAO,KAAK,iBAAmB,EAAE,OAAQ,EAAE,MAAQ,KAAK,eAAe,CAC3H,CACD,GAAI,KAAK,mBAAqB,KAAK,OAAQ,CACzC,MAAM,EAAI,KAAK,OAAO,aACtBA,EAAE,WAAW,cAAe,EAAE,cAAc,CAC7C,CACD,MAAMR,EAAIQ,EAAE,QACZ,GAAI,KAAK,SAAW0uB,GAAG1uB,EAAG,KAAM,KAAK,MAAM,EAAG,KAAK,UAAY+uB,GAAG,KAAK,OAAQ,OAAQ/uB,CAAC,GAAIR,EAAE,QAAQ,2BAA2B,GAAK,EAAG,CACvI,MAAM,EAAID,EAAE,QACZ,EAAE,OAAM,EAAIS,EAAE,UAAU,UAAW,CAAC,CACrC,CACD,OAAQ,KAAK,qBAAuB,KAAK,QAAU8uB,GAAGtvB,EAAGQ,EAAG,KAAK,MAAM,EAAG,KAAK,+BAAiC,CAAC,KAAK,8BAA8B,oBAAsB,KAAK,8BAA8B,KAAKA,CAAC,EAAG,EAAC,CACrN,KAAKywE,GAAG,cACN,KAAK,QAAQ,aAAa,CAAC,EAC3B,MACF,KAAKA,GAAG,iBACN,KAAK,QAAQ,aAAa,CAAC,EAC3B,MACF,KAAKA,GAAG,mBACN,KAAK,QAAQ,aAAa,CAAC,EAC3B,MACF,KAAKA,GAAG,mBACN,KAAK,QAAQ,aAAa,CAAC,EAC3B,KACH,CACD,OAAO,KAAK,UAAU,gBAAgB,KAAK,aAAczwE,GAAI8B,EAAI,KAAK,SAAW,MAAQA,EAAE,eAAiB,KAAK,+BAAiC,IAAI,EAAG,KAAK,kCAAoC,KAAK,iCAAiC,gBAAgB9B,CAAC,GAAI6B,EAAI,KAAK,SAAW,MAAQA,EAAE,eAAiB,KAAK,QAAQ,iBAAiB,EAAG,EAAG,GAAI,KAAK,mBAAmB,EAAI,KAAK,QAAQ,eAAe,EAAG,EAAG,EAAG,KAAK,mBAAmB,EAAG,KAAK,QAAQ,aAAa,CAAC,GAAI4G,EAAI,KAAK,SAAW,MAAQA,EAAE,gBAAkB,KAAK,QAAQ,yBAA0B,EAAE,KAAK,mBAC9iB,CAED,QAAQ,EAAG,CACT,GAAI,CAAC,KAAK,SAAW,CAAC,KAAK,eAAiB,CAAC,KAAK,yBAA2B,KAAK,4BAChF,OACF,GAAI,CAAC,EACH,GAAI,KAAK,QAAQ,SACf,EAAI,KAAK,QAAQ,qBACd,CACH,MAAM,EAAI,KAAK,QACf,EAAIyG,EAAE,OAAO,CAAC,EAAGC,EAAE,iBAAiB,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,CAAC,CACrD,CACH,KAAK,UAAU,0BAA2B,KAAK,cAAc,SAAS,eAAgB,KAAK,mBAAmB,EAAG,KAAK,cAAc,SAAS,YAAa,KAAK,UAAU,EAAG,KAAK,cAAc,SAAS,aAAc,KAAK,SAAW,EAAI,CAAC,EAAG,KAAK,cAAc,OAAO,oBAAqB,KAAK,kBAAkB,EAAG,KAAK,cAAc,UAAU,WAAY,KAAK,YAAa,KAAK,WAAW,EAAG,KAAK,cAAc,UAAU,YAAa,KAAK,aAAc,KAAK,YAAY,EAAG,KAAK,yBAA2B,KAAK,cAAc,gBAAgB,SAAU,KAAK,MAAM,EAAG,KAAK,cAAc,gBAAgB,SAAU,KAAK,MAAM,GAAI,KAAK,cAAc,UAAU,YAAa,KAAK,QAAS,KAAK,OAAO,EAAG,KAAK,cAAc,UAAU,aAAc,KAAK,UAAW,KAAK,UAAW,KAAK,UAAW,KAAK,SAAS,EAAG,KAAK,cAAc,UAAU,aAAc,KAAK,gBAAiB,KAAK,gBAAiB,KAAK,mBAAoB,KAAK,kBAAkB,EAAG,KAAK,cAAc,WAAW,UAAW,KAAK,OAAO,EAAG,KAAK,gCAAkC,KAAK,cAAc,SAAS,uBAAwB,KAAK,oBAAoB,EAAG,KAAK,qBAAuB,KAAK,oBAAoB,cAAc,KAAK,aAAa,EAAG,KAAK,0BAA4B,KAAK,cAAc,UAAU,YAAa,KAAK,kBAAmB,KAAK,gBAAiB,KAAK,sBAAuB,KAAK,eAAiB,EAAI,CAAC,EAAG,KAAK,cAAgB,KAAK,cAAc,WAAW,gBAAiB,KAAK,aAAa,EAAG,KAAK,SAAW,KAAK,cAAc,UAAU,YAAa,CAAC,EAAG,KAAK,UAAU,qBAAqB,KAAK,aAAc,KAAK,cAAe,KAAK,mBAAmB,EAAG,KAAK,eAAgB,KAAK,eAAiB,IAAM,KAAK,aAAe,GACtqD,MAAM,EAAI,KAAK,cACf,KAAK,cAAgB,KAAK,cAAe,KAAK,cAAgB,CAC/D,CAOD,OAAO,EAAI,GAAI,EAAI,GAAI,CACrB,GAAI,CAAC,KAAK,UAAY,CAAC,KAAK,QAAS,EACnC,MAAO,GACT,GAAI,CAAC,GAAK,KAAK,OAAQ,CACrB,GAAI,CAAC,KAAK,cAAgB,KAAK,cAAe,CAC5C,QAAS3P,EAAI,EAAGA,EAAI,KAAK,cAAeA,IACtC,KAAK,QAAQ,EAAE,EAAG,KAAK,OAAO,GAAI,EAAE,EACtC,KAAK,aAAe,EACrB,CACD,GAAI,KAAK,mBAAqB,KAAK,OAAO,gBAAkB,CAAC,KAAK,OAAO,cAAgB,KAAK,OAAO,cAAgB,KAAK,kCAAoC,KAAK,OAAO,aAAa,UACrL,MAAO,GACT,KAAK,iBAAmB,KAAK,OAAO,YAAW,EAAI,KAAK,OAAO,eAAiB,KAAK,gCAAkC,KAAK,OAAO,aAAa,SACjJ,CACD,GAAI,KAAK,cAAe,KAAK,mBAAqB,KAAK,SAAW,KAAK,WAAY,KAAK,kBAAoB,EAAG,CAC7G,MAAMA,EAAI,KAAK,kBAAoB,EACnC,KAAK,mBAAqBA,EAAG,KAAK,qBAAuBA,CAC1D,CACD,GAAI,KAAK,oBAAsB,KAAK,IAAI,KAAK,wBAAyB,KAAK,mBAAmB,EAAG,CAAC,KAAK,oBACrG,MAAO,GACT,IAAI,EACJ,GAAI,KAAK,QAAQ,SACf,EAAI,KAAK,QAAQ,qBACd,CACH,MAAMA,EAAI,KAAK,QACf,EAAI0P,EAAE,OAAO,CAAC,EAAGC,EAAE,iBAAiB3P,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAG,CAAC,CACrD,CACD,MAAM,EAAI,KAAK,QACf,KAAK,iBAAmB,KAAK,QAAQ,CAAC,EACtC,IAAID,EAAI,EACR,MAAO,CAAC,GAAK,CAAC,IAAM,EAAE,SAAS,EAAE,EAAG,KAAK,iBAAmB,EAAE,cAAc,EAAE,EAAG,KAAK,YAAckxE,GAAG,sBAAwBlxE,EAAI,KAAK,QAAQkxE,GAAG,mBAAoB,CAAC,EAAI,KAAK,QAAQA,GAAG,cAAe,CAAC,EAAIlxE,EAAI,KAAK,QAAQ,KAAK,UAAW,CAAC,EAAG,KAAK,QAAQ,aAAa,CAAC,GAAIA,CACrR,CAID,SAAU,CACR,MAAM,EAAI,IAAM,CACd,CAAC,KAAK,sBAAqB,GAAM,CAAC,KAAK,UAAU,oBAAmB,EAAK,WAAW,EAAG,EAAE,GAAK,KAAK,YAAY,EAAE,EAAG,KAAK,4BAA8B,GAC7J,EACI,KAAK,mBAAoB,EAAE,KAAK,qBAAuB,GAAI,KAAK,UAAU,YAAW,EAAI,KAAK,4BAA8B,GAAI,EAAC,CAClI,CACD,iBAAkB,CAChB,KAAK,WAAa,KAAK,SAAS,QAAO,EAAI,KAAK,SAAW,MAAO,KAAK,WAAa,KAAK,SAAS,QAAO,EAAI,KAAK,SAAW,MAAO,KAAK,gBAAkB,KAAK,cAAc,QAAO,EAAI,KAAK,cAAgB,MAAO,KAAK,UAAU,eAAc,CACnP,CAKD,QAAQ,EAAI,GAAI,CACd,UAAW,KAAK,KAAK,cACnB,KAAK,cAAc,CAAC,EAAE,QAAO,EAC/B,GAAI,KAAK,cAAgB,GAAI,KAAK,OAAQ,CACxC,MAAM,EAAI,KAAK,OAAO,gBAAgB,QAAQ,IAAI,EAClD,EAAI,IAAM,KAAK,OAAO,gBAAgB,OAAO,EAAG,CAAC,CAClD,CACD,KAAK,gBAAiB,EAAE,KAAK,UAAU,qBAAoB,EAC3D,QAAS,EAAI,EAAG,EAAI,KAAK,qBAAqB,OAAQ,EAAE,EAAG,CACzD,MAAM,EAAI,KAAK,qBAAqB,CAAC,EACrC,UAAW,KAAK,EACd,EAAE,CAAC,EAAE,SACR,CACD,KAAK,qBAAuB,GAAI,KAAK,yBAA2B,KAAK,uBAAuB,QAAO,EAAI,KAAK,uBAAyB,MAAO,KAAK,wBAA0B,KAAK,sBAAsB,QAAO,EAAI,KAAK,sBAAwB,MAAO,KAAK,gCAAkC,KAAK,8BAA8B,QAAO,EAAI,KAAK,8BAAgC,MAAO,KAAK,4BAA8B,KAAK,0BAA0B,QAAO,EAAI,KAAK,0BAA4B,MAAO,KAAK,iCAAmC,KAAK,+BAA+B,QAAO,EAAI,KAAK,+BAAiC,MAAO,KAAK,wBAA0B,KAAK,sBAAsB,QAAO,EAAI,KAAK,sBAAwB,MAAO,KAAK,iBAAmB,KAAK,eAAe,QAAO,EAAI,KAAK,eAAiB,MAAO,KAAK,kBAAoB,KAAK,gBAAgB,QAAO,EAAI,KAAK,gBAAkB,MAAO,GAAK,KAAK,kBAAoB,KAAK,gBAAgB,QAAS,EAAE,KAAK,gBAAkB,MAAO,GAAK,KAAK,eAAiB,KAAK,aAAa,QAAS,EAAE,KAAK,aAAe,MAAO,KAAK,oBAAoB,MAAK,EAAI,KAAK,oBAAoB,gBAAgB,IAAI,EAAG,KAAK,oBAAoB,MAAK,CACnqC,CAQD,MAAM,EAAG,EAAG,EAAI,GAAI,CAClB,MAAM,EAAI,CAAE,GAAG,KAAK,eAAe,EACnC,IAAIA,EAAI,KACR,MAAMC,EAAI,KAAK,QACf,GAAIA,EAAE,0BAA4B,KAAK,cAAgB,KAAM,CAC3DD,EAAI,KAAK,aACT,MAAM,EAAIA,EAAE,cAAc,QAAQ,OAAS,EAAIA,EAAE,cAAc,QAAQ,KAAK;AAAA,CACjF,EAAI,GACC,EAAE,CAAC,EAAIC,EAAE,yBAAyBD,EAAE,WAAW,gBAAiBA,EAAE,cAAc,SAAUA,EAAE,cAAc,SAAU,EAAG,OAAQ,OAAQ,OAAQ,IAAI,CACpJ,CACD,MAAM,EAAI,KAAK,UAAU,CAAC,EAAG,EAAI2xE,GAAG,MAAM,EAAG,KAAK,QAAU,KAAK,QAAS,KAAK,QAAQ,EACvF,OAAO,EAAE,KAAO,EAAG,EAAE,aAAe3xE,EAAG,EAAE,gBAAkB,EAAG,IAAM,SAAW,EAAI,KAAK,SAAU,KAAK,eAAiB,EAAE,aAAe,KAAK,aAAa,MAAO,GAAG,EAAE,QAAU,EAAG,CACrL,CAMD,UAAU,EAAI,GAAI,CAChB,MAAM,EAAI,GACV,OAAOkxE,GAAG,WAAW,EAAG,KAAM,CAAC,EAAG,EAAE,oBAAsB,KAAK,oBAAqB,EAAE,kBAAoB,KAAK,mBAAoB,EAAE,aAAe,KAAK,aAAc,CACxK,CAUD,OAAO,MAAM,EAAG,EAAG,EAAG,EAAI,GAAIlxE,EAAG,CAC/B,MAAMC,EAAI,EAAE,KACZ,IAAI,EAAG,EACP,aAAasH,GAAK,EAAI,GAAK,EAAI,EAAG,EAAI,EAAE,UAAS,GACjD,MAAM,EAAI,IAAIoqE,GAAG1xE,EAAG,CAAE,SAAUD,GAAK,EAAE,SAAU,kBAAmB,EAAE,mBAAqB,EAAG,KAAM,EAAE,uBAAuB,EAC7H,GAAI,EAAE,SAAW,EAAG,EAAE,cAAgB,EAAE,yBAA0B,CAChE,MAAM,EAAI,EAAE,aAAc,EAAI,EAAE,cAAc,QAAQ,OAAS,EAAI,EAAE,cAAc,QAAQ,KAAK;AAAA,CACrG,EAAI,GAAI,EAAI,EAAE,yBAAyB,EAAE,WAAW,gBAAiB,EAAE,cAAc,SAAU,EAAE,cAAc,SAAU,EAAG,OAAQ,OAAQ,OAAQ,CAAC,EAChJ,EAAE,gBAAgB,EAAG,CAAC,EAAG,EAAE,aAAe,CAC3C,CACD,OAAO,EAAE,KAAO,EAAE,GAAK,EAAE,IAAK,EAAE,sBAAwB,EAAE,oBAAsB,EAAE,qBAAsBkxE,GAAG,OAAO,EAAG,EAAG,EAAG,CAAC,EAAG,EAAE,mBAAqB,EAAE,iBAAmB,EAAE,kBAAmB,CAAC,GAAK,CAAC,EAAE,kBAAoB,EAAE,MAAO,EAAE,CACzO,CACH,EACAU,GAAA,MAAMC,GAAG,CACP,aAAc,CACZ,KAAK,oBAAsB,GAAI,KAAK,QAAU,EAC/C,CAID,IAAI,aAAc,CAChB,OAAO,KAAK,YACb,CACD,IAAI,YAAY,EAAG,CACjB,KAAK,qBAAuB,KAAK,eAAiB,KAAK,aAAa,SAAW,KAAK,aAAa,QAAO,EAAI,KAAK,oBAAsB,IACvI,UAAW,KAAK,KAAK,QACnB,EAAE,QAAU,EACd,KAAK,aAAe,CACrB,CAUD,mBAAmB,EAAG,EAAG,EAAG,CAC1B,KAAK,qBAAuB,KAAK,cAAgB,KAAK,aAAa,SAAW,KAAK,aAAa,QAAS,EAAE,KAAK,oBAAsB,GAAI,KAAK,wBAA0B,CACvK,KAAM,SACN,QAAS,EACT,iBAAkB,CACxB,EACI,MAAM,EAAI3zC,GAAG,gBAAiB,CAAE,SAAU,EAAE,SAAU,SAAU,EAAE,QAAU,EAAE,CAAC,EAC/E,EAAE,iBAAmB,EACrB,MAAMl+B,EAAI,IAAIwsC,GAAG,wBAAyB,CAAC,EAC3CxsC,EAAE,cAAgB,EAAE,MAAO,EAAE,SAAWA,EACxC,UAAWC,KAAK,KAAK,QACnBA,EAAE,QAAU,EACd,KAAK,aAAe,CACrB,CAKD,MAAM,EAAG,CACP,UAAW,KAAK,KAAK,QACnB,IAAM,EAAE,QAAU,GAAI,EAAE,OAC3B,CAID,SAAU,CACR,UAAW,KAAK,KAAK,QACnB,EAAE,QAAO,EACX,KAAK,QAAQ,OAAS,EAAG,KAAK,eAAiB,KAAK,aAAa,SAAW,KAAK,aAAa,QAAO,EAAI,KAAK,aAAe,KAC9H,CAMD,UAAU,EAAI,GAAI,CAChB,MAAM,EAAI,GACV,EAAE,QAAU,GACZ,UAAW,KAAK,KAAK,QACnB,EAAE,QAAQ,KAAK,EAAE,UAAU,CAAC,CAAC,EAC/B,OAAO,KAAK,eAAiB,EAAE,QAAU,KAAK,yBAA0B,CACzE,CASD,OAAO,MAAM,EAAG,EAAG,EAAI,GAAI,EAAG,CAC5B,MAAMD,EAAI,IAAI6xE,IAAM5xE,EAAI,KAAK,cAAgB,aAC7C,EAAI,GAAKS,GAAG,iBACZ,UAAW,KAAK,EAAE,QAChBV,EAAE,QAAQ,KAAK,EAAI2xE,GAAG,MAAM,EAAG,EAAG1xE,EAAG,GAAI,CAAC,EAAIixE,GAAG,MAAM,EAAG,EAAGjxE,EAAG,GAAI,CAAC,CAAC,EACxE,GAAI,EAAE,QAAS,CACb,MAAM,EAAI,EAAE,QAAQ,QACpB,OAAQ,EAAE,QAAQ,KAAI,CACpB,IAAK,SACHD,EAAE,mBAAmB,CACnB,SAAU,EAAE,SACZ,SAAU,EAAE,SACZ,MAAOiT,GAAG,UAAU,EAAE,KAAK,CAC5B,EAAE,EAAE,QAAQ,iBAAkB,CAAC,EAChC,KACH,CACF,CACD,OAAOjT,CACR,CACH,EACA6xE,GAAG,cAAgB,yCACnB,IAAAC,GAAA,MAAMC,GAAG,CASP,OAAO,cAAc,EAAG,EAAI,IAAK,EAAG,EAAI,GAAI,CAC1C,IAAI/xE,EACJ,OAAO,EAAIA,EAAI,IAAI2xE,GAAG,iBAAkB,CAAE,SAAU,GAAK,CAAC,EAAI3xE,EAAI,IAAIkxE,GAAG,iBAAkB,EAAG,CAAC,EAAGlxE,EAAE,QAAU,EAAGA,EAAE,gBAAkB,IAAI8jB,GAAE,kDAAmD9jB,EAAE,SAAU,GAAGA,EAAE,kBAAkB,GAAK,KAAK,GAAK,CAAC,EAAGA,EAAE,OAAS,IAAIkT,GAAG,EAAG,EAAG,EAAG,CAAC,EAAGlT,EAAE,OAAS,IAAIkT,GAAG,EAAG,EAAG,EAAG,CAAC,EAAGlT,EAAE,UAAY,IAAIkT,GAAG,EAAG,EAAG,EAAG,CAAC,EAAGlT,EAAE,QAAU,GAAKA,EAAE,QAAU,GAAKA,EAAE,aAAe,EAAGA,EAAE,aAAe,EAAGA,EAAE,YAAc,EAAI,GAAIA,EAAE,SAAW,GAAIA,CACxc,CASD,OAAO,YAAY,EAAG,EAAG,EAAI,GAAI,EAAG,CAClC,IAAM,EAAIU,GAAG,kBACb,MAAMV,EAAI,GACV,OAAO,EAAE,eAAeA,CAAC,EAAG,IAAI,QAAQ,CAACC,EAAG,IAAM,CAChD,GAAI,GAAK,CAAC0xE,GAAG,YACX,OAAO,EAAE,kBAAkB3xE,CAAC,EAAG,EAAE,4CAA4C,EAC/E4N,GAAE,SAAS,GAAGmkE,IAAG,aAAa,YAAY,CAAC,QAAU,GAAM,CACzD,EAAE,kBAAkB/xE,CAAC,EACrB,MAAM,EAAI,KAAK,MAAM,EAAE,SAAU,GACjC,OAAOC,EAAE4xE,GAAG,MAAM,EAAG,EAAG,EAAG,CAAC,CAAC,CACrC,EAAS,OAAQ,OAAQ,OAAQ,KAAO,EAAE,kBAAkB7xE,CAAC,EAAG,EAAE,oFAAoF,CAAC,WAAW,EAAE,CACpK,CAAK,CACF,CAOD,OAAO,UAAU,EAAG,CAClB,MAAM,EAAI,IAAI6xE,GACd,UAAW,KAAK,EACd,EAAE,QAAQ,KAAK,CAAC,EAClB,OAAO,CACR,CAWD,OAAO,mBAAmB,EAAG,EAAG,EAAG,EAAI,GAAI7xE,EAAI,GAAIC,EAAG,CACpD,OAAO,IAAI,QAAQ,CAAC,EAAG,IAAM,CAC3B,MAAM,EAAI,IAAI8K,GACd,EAAE,iBAAiB,mBAAoB,IAAM,CAC3C,GAAI,EAAE,YAAc,EAClB,GAAI,EAAE,QAAU,IAAK,CACnB,MAAM,EAAI,KAAK,MAAM,EAAE,YAAY,EACnC,IAAI,EACJ,EAAI,EAAI4mE,GAAG,MAAM,EAAG,EAAG3xE,EAAG,GAAIC,CAAC,EAAI,EAAIixE,GAAG,MAAM,EAAG,EAAGlxE,EAAG,GAAIC,CAAC,EAAG,IAAM,EAAE,KAAO,GAAI,EAAE,CAAC,CACxF,MACC,EAAE,oCAAoC,CAClD,CAAO,EAAG,EAAE,KAAK,MAAO,CAAC,EAAG,EAAE,MAC9B,CAAK,CACF,CAUD,OAAO,sBAAsB,EAAG,EAAG,EAAI,GAAI,EAAI,GAAID,EAAG,CACpD,GAAI,IAAM,SAAU,CAClB,MAAMC,EAAI,KAAK,cAAc,IAAI,EACjC,OAAOA,EAAE,MAAO,EAAE,QAAQ,QAAQA,CAAC,CACpC,CACD,OAAO,IAAI,QAAQ,CAACA,EAAG,IAAM,CAC3B,MAAM,EAAI,IAAI8K,GACd,EAAE,iBAAiB,mBAAoB,IAAM,CAC3C,GAAI,EAAE,YAAc,EAClB,GAAI,EAAE,QAAU,IAAK,CACnB,MAAM,EAAI,KAAK,MAAM,KAAK,MAAM,EAAE,YAAY,EAAE,WAAW,EAAG,EAAI,KAAK,MAAM,EAAE,cAAc,EAC7F,IAAI,EACJ,EAAI,EAAI4mE,GAAG,MAAM,EAAG,EAAG,EAAG,GAAI3xE,CAAC,EAAI,EAAIkxE,GAAG,MAAM,EAAG,EAAG,EAAG,GAAIlxE,CAAC,EAAG,EAAE,UAAY,EAAGC,EAAE,CAAC,CACtF,MACC,EAAE,8BAAgC,CAAC,CAC/C,CAAO,EAAG,EAAE,KAAK,MAAO,KAAK,WAAa,IAAM,EAAE,QAAQ,KAAM,GAAG,CAAC,EAAG,EAAE,KAAI,CAC7E,CAAK,CACF,CACH,EACA8xE,GAAG,cAAgBF,GAAG,cACtBE,GAAG,WAAa,gCAChBA,GAAG,uBAAyBA,GAAG,sBAC/B5gE,GAAG,UAAU6D,GAAG,oBAAqB,CAAC3U,EAAG,EAAG,EAAG,IAAM,CACnD,MAAM,EAAI8Q,GAAG,oBAAoB6D,GAAG,mBAAmB,EACvD,GAAI,GAAK3U,EAAE,kBAAoB,QAAUA,EAAE,kBAAoB,KAC7D,QAASL,EAAI,EAAGC,EAAII,EAAE,gBAAgB,OAAQL,EAAIC,EAAGD,IAAK,CACxD,MAAM,EAAIK,EAAE,gBAAgBL,CAAC,EAC7B,EAAE,gBAAgB,KAAK,EAAE,EAAG,EAAG,CAAC,CAAC,CAClC,CACL,CAAC,EACDmR,GAAG,oBAAoB6D,GAAG,oBAAqB,CAAC3U,EAAG,EAAG,IAAMA,EAAE,oBAAsBsxE,GAAG,MAAMtxE,EAAG,EAAG,CAAC,EAAI6wE,GAAG,MAAM7wE,EAAG,EAAG,CAAC,CAAC,EACzHkH,GAAG,UAAU,yBAA2B,SAASlH,EAAG,EAAI,CAAE,EAAE,EAAI,GAAI,EAAI,GAAI,EAAGL,EAAGC,EAAG,EAAG,EAAI,EAAG,CAC7F,IAAI,EAAI,GAAI,EAAI,GAChB,MAAM,EAAI,GACV,OAAO,EAAI,EAAE,sCAAsC,EAAG,EAAG,CAAC,GAAK,EAAIixE,GAAG,4BAA2B,EAAI,EAAIA,GAAG,0BAA2B,GAAG,EAAE,QAAQ,YAAY,IAAM,KAAO,GAAK;AAAA;AAAA,GAEhL,GAAK,MAAQ,EAAE,yBAA2B,EAAE,QAAQ,eAAe,IAAM,KAAO,GAAK;AAAA;AAAA,GAErF,EAAE,QAAQ,gBAAgB,IAAM,IAAM,EAAE,KAAK,gBAAgB,EAAG,KAAK,aAAa,CAClF,OAA8B,GAAE,kBAAqB,YACrD,gBAAiB7wE,CACrB,EAAK,EAAG,EAAE,OAAO,CAAC,EAAG,EAAE,OAAO,CAAC,EAAG,EAAG,EAAGL,EAAGC,EAAG,OAAQ,CAAC,CACvD,EACAgyB,GAAE,UAAU,0BAA4B,UAAW,CACjD,MAAM5xB,EAAI,GACV,QAAS,EAAI,EAAG,EAAI,KAAK,SAAQ,EAAG,gBAAgB,OAAQ,IAAK,CAC/D,MAAM,EAAI,KAAK,SAAU,EAAC,gBAAgB,CAAC,EAC3C,EAAE,UAAY,MAAQA,EAAE,KAAK,CAAC,CAC/B,CACD,OAAOA,CACT,EACA4xB,GAAE,UAAU,mCAAqC,UAAW,CAC1D,MAAM5xB,EAAI,CAAE,EAAE,EAAI,KAAK,eAAc,EACrC,EAAE,KAAK,IAAI,EACX,QAAS,EAAI,EAAG,EAAI,KAAK,SAAQ,EAAG,gBAAgB,OAAQ,IAAK,CAC/D,MAAM,EAAI,KAAK,WAAW,gBAAgB,CAAC,EAAG,EAAI,EAAE,QACpD,EAAE,UAAY,EAAE,QAAQ,CAAC,IAAM,IAAMA,EAAE,KAAK,CAAC,CAC9C,CACD,OAAOA,CACT,EACA,IAAA2xE,IAAA,KAAS,CAUP,YAAY,EAAG,EAAG,EAAG,EAAGhyE,EAAG,CACzB,KAAK,IAAM,EAAG,KAAK,MAAQ,IAAIkT,GAAG,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,SAAW1D,EAAE,KAAM,EAAE,KAAK,SAAWA,EAAE,KAAM,EAAE,KAAK,GAAK,IAAID,GAAE,EAAG,CAAC,EAAG,KAAK,SAAWC,EAAE,OAAQ,KAAK,MAAQA,EAAE,KAAM,EAAE,KAAK,mBAAqB,GAAI,KAAK,KAAO,EAAG,KAAK,KAAO,EAAG,KAAK,QAAU,EAAG,KAAK,WAAa,EAAG,KAAK,gBAAkB,GAAI,KAAK,gBAAkB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,SAAW,KAAM,KAAK,gBAAkBA,EAAE,KAAI,EAAI,KAAK,IAAM,EAAG,KAAK,OAAS,EAAG,KAAK,QAAU,EAAG,KAAK,WAAa,EAAG,KAAK,KAAOxP,CACve,CAID,IAAI,MAAO,CACT,OAAO,KAAK,IACb,CAID,IAAI,KAAK,EAAG,CACV,KAAK,KAAO,CACb,CAID,IAAI,YAAa,CACf,OAAO,KAAK,kBACb,CAID,IAAI,WAAW,EAAG,CAChB,KAAK,mBAAqB,CAC3B,CAQD,eAAe,EAAG,EAAG,CACnB,GAAI,CAAC,EAAE,gBACL,MAAO,GACT,GAAI,CAAC,KAAK,KAAK,KACb,MAAM,IAAI,MAAM,4CAA4C,EAC9D,GAAI,EACF,OAAO,EAAE,gBAAe,EAAG,eAAe,gBAAgB,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,QAAQ,CAAC,EACtG,MAAM,EAAI,EAAE,gBAAiB,EAAC,YAAa,EAAI,EAAE,aAAa,EAAGA,EAAI,EAAE,aAAa,EAAGC,EAAI,EAAE,aAAa,EAAG,EAAI,EAAE,aAAa,EAAG,EAAI,EAAE,aAAa,EAAG,EAAI,EAAE,aAAa,EAAG,EAAI,KAAK,SAAS,EAAI,KAAK,KAAK,KAAK,SAAS,EAAG,EAAI,KAAK,SAAS,EAAI,KAAK,KAAK,KAAK,SAAS,EAAG,EAAI,KAAK,SAAS,EAAI,KAAK,KAAK,KAAK,SAAS,EAC/T,OAAOD,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAKC,GAAK,GAAK,GAAK,GAAK,CAC/D,CAKD,kBAAkB,EAAG,CACnB,IAAI,EACJ,GAAI,KAAK,mBACP,EAAI,KAAK,uBACN,CACH,EAAI0P,EAAE,WAAW,CAAC,EAClB,MAAM,EAAI,KAAK,SACfF,GAAG,0BAA0B,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,CAAC,CAC9C,CACD,EAAE,iBAAiB,CAAC,CACrB,CACH,EACAwiE,GAAA,KAAS,CAKP,IAAI,SAAU,CACZ,OAAO,KAAK,OACb,CACD,IAAI,QAAQ,EAAG,CACb,KAAK,QAAU,CAChB,CAMD,YAAY,EAAG,EAAG,CAChB,KAAK,QAAU,EAAG,KAAK,kBAAoB,CAC5C,CACH,EACG,IAACC,IACH,SAAS7xE,EAAG,CACXA,EAAEA,EAAE,MAAQ,CAAC,EAAI,QAASA,EAAEA,EAAE,GAAK,CAAC,EAAI,KAAMA,EAAEA,EAAE,OAAS,CAAC,EAAI,SAAUA,EAAEA,EAAE,OAAS,CAAC,EAAI,QAC9F,GAAG6xE,KAAOA,GAAK,CAAE,EAAC,EAClB,IAAAC,IAAA,KAAS,CAIP,IAAI,WAAY,CACd,OAAO,KAAK,YACb,CAID,IAAI,QAAS,CACX,OAAO,KAAK,SACb,CAID,IAAI,KAAM,CACR,OAAO,KAAK,MACb,CASD,YAAY,EAAG,EAAG,EAAG,EAAG,CACtB,KAAK,UAAY,IAAI,MAAS,KAAK,YAAc,EAAG,KAAK,QAAU,EAAG,KAAK,KAAO,GAAI,KAAK,UAAY,GAAI,KAAK,WAAa,IAAI,MAAS,KAAK,SAAW,IAAI,MAAS,KAAK,SAAW,IAAI,MAAS,KAAK,QAAU,IAAI,MAAS,KAAK,KAAO,IAAI,MAAS,KAAK,WAAa,GAAI,KAAK,uBAAyB,GAAI,KAAK,eAAiB,GAAI,KAAK,QAAU,IAAI,MAAS,KAAK,cAAgB,EAAG,KAAK,sBAAwB,GAAI,KAAK,wBAA0B,GAAI,KAAK,yBAA2B,GAAI,KAAK,oBAAsB,GAAI,KAAK,SAAW,GAAI,KAAK,KAAO,EAAG,KAAK,MAAQ,EAAG,KAAK,OAAS,GAAKzxE,GAAG,iBAAkB,GAAK,EAAE,YAAc,OAAS,KAAK,WAAa,EAAE,UAAY,KAAK,WAAa,EAClrB,CAOD,eAAe,EAAG,CAChB,OAAO,QAAQ,IAAI,KAAK,SAAS,EAAE,KAAK,KAAO,KAAK,SAAW,GAAI,KAAK,WAAW,CAAC,EAAE,CACvF,CAID,WAAW,EAAG,CACZ,KAAK,cAAgB,GAAK,KAAK,UAAU,CAAC,EAAG,KAAK,aAAe,IAAI,aAAa,KAAK,UAAU,EAAG,KAAK,OAAS,IAAI,aAAa,KAAK,IAAI,EAAG,KAAK,UAAY,IAAI,aAAa,KAAK,OAAO,EAC7L,MAAM,EAAI,IAAIktB,GACd,EAAE,IAAI,KAAK,aAAc3Z,EAAE,YAAY,EAAG,KAAK,OAAO,OAAS,GAAK,EAAE,IAAI,KAAK,OAAQA,EAAE,MAAM,EAC/F,IAAI,EAAI,EACR,KAAK,UAAU,OAAS,IAAM,EAAI,EAAG,EAAE,IAAI,KAAK,UAAWA,EAAE,SAAS,GACtE,MAAM,EAAI,IAAIge,GAAE,KAAK,KAAM,KAAK,MAAM,EACtC,EAAE,YAAY,EAAG,KAAK,UAAU,EAAG,KAAK,KAAO,EAAG,KAAK,WAAa,KAAM,KAAK,KAAO,KAAM,KAAK,QAAU,KAAM,KAAK,aAAe,KAAK,UAAU,OAAS,GAC7J,IAAIjyB,EAAI,EACR,OAAOA,IAAMA,EAAI,IAAIwsC,GAAG,uBAAwB,KAAK,MAAM,EAAGxsC,EAAE,cAAgB,IAAIiT,GAAG,EAAG,EAAG,CAAC,EAAGjT,EAAE,gBAAkB,GAAIA,EAAE,YAAc,GAAIA,EAAE,UAAY,KAAK,OAAQ,EAAE,SAAWA,EAAG,IAAI,QAASC,GAAMA,EAAE,CAAC,CAAC,CAChN,CAED,aAAa,EAAG,EAAG,EAAG,EAAG,CACvB,MAAMD,EAAI,IAAIoyE,IAAG,EAAG,EAAG,EAAG,EAAG,IAAI,EACjC,OAAO,KAAK,UAAU,KAAKpyE,CAAC,EAAGA,CAChC,CACD,kBAAkB,EAAG,CACnB,EAAE,SAAW,IAAIwP,EAAE,KAAK,SAAU,KAAK,OAAM,EAAI,KAAK,OAAM,CAAE,EAAG,EAAE,MAAQ,IAAI0D,GAAG,EAAG,EAAG,EAAG,CAAC,CAC7F,CACD,yBAAyB,EAAG,EAAG,EAAG,EAAG,CACnC,MAAMlT,EAAI,EAAE,gBAAiBC,EAAI,GAAK,EAAI,GAAK,EAAI,EAAG,EAAI,CAACA,EAAGA,EAAI,EAAGA,EAAI,EAAGA,EAAI,CAAC,EAAG,EAAI,EAAE,CAAC,EAAG,EAAI,EAAE,CAAC,EAAG,EAAI,EAAE,CAAC,EAAG,EAAI,EAAE,CAAC,EAAG,EAAID,EAAE,CAAC,EAAGa,EAAIb,EAAE,CAAC,EAAGgG,EAAIhG,EAAE,CAAC,EAAGiG,EAAIjG,EAAE,CAAC,EACjK,OAAO,IAAIkT,GAAG,EAAI,IAAKrS,EAAI,IAAKmF,EAAI,IAAKC,CAAC,CAC3C,CACD,oBAAoB,EAAG,EAAG,EAAG,EAAGjG,EAAGC,EAAG,EAAG,EAAG,CAC1C,EAAI,GAAK,EAAG,GAAK,EAAE,gBAAe,EAClC,MAAMiJ,EAAI,EAAI,EAAE,gBAAiB,EAAC,eAAe,OACjD,IAAIpI,EAAI,EAAE,gBAAgBmT,EAAE,YAAY,EACxC,MAAMrT,EAAI,EAAE,WAAU,EAAIC,EAAI,EAAE,gBAAgBoT,EAAE,QAAU,EAAI,EAAI,EAAI,GAAG,EAAGjO,EAAI,EAAE,gBAAgBiO,EAAE,SAAS,EAAGhO,EAAIuJ,EAAE,KAAI,EAC5H,EAAE,mBAAkB,EACpB,MAAMtJ,EAAI,EAAE,iBACZ,GAAI,CAACA,EAAE,aAAc,CACnBpF,EAAIA,EAAE,MAAM,CAAC,EACb,QAASuxE,GAAK,EAAGA,GAAKvxE,EAAE,OAAS,EAAGuxE,KAClC7iE,EAAE,oCAAoC1O,EAAE,EAAIuxE,EAAE,EAAGvxE,EAAE,EAAIuxE,GAAK,CAAC,EAAGvxE,EAAE,EAAIuxE,GAAK,CAAC,EAAGnsE,EAAGD,CAAC,EAAGnF,EAAE,EAAIuxE,EAAE,EAAIpsE,EAAE,EAAGnF,EAAE,EAAIuxE,GAAK,CAAC,EAAIpsE,EAAE,EAAGnF,EAAE,EAAIuxE,GAAK,CAAC,EAAIpsE,EAAE,CACjJ,CACD,IAAIE,EAAI,EAAGC,EAAI,EAAGoB,EAAI,EAAG2V,EAAI,EAAG1V,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGyB,EAAI,EAAGvB,EAAI,EAAGC,EAAI,EAAGF,EAAI,EAAGG,EAAK,EAC7F,MAAMC,EAAKuH,EAAE,KAAI,EAAItH,EAAKsH,EAAE,KAAI,EAAIrH,GAAKqH,EAAE,KAAM,EAAEpH,GAAKoH,EAAE,KAAM,EAAEnH,EAAKmH,EAAE,OACzE,IAAIlH,GAAK,EAAGuH,GAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGE,EAAI,EAC5C,MAAMC,EAAIZ,GAAE,KAAI,EAAIa,EAAKb,GAAE,KAAI,EAAIc,EAAKd,GAAE,KAAM,EAAEe,EAAKf,GAAE,KAAM,EAAEgB,EAAKhB,GAAE,OACxE,IAAIiB,GAAK,EAAGC,GAAK,EAAG,GAAK,EAAGE,GAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,GAAK,EAAGC,GAAK,EAAGC,GAAK,EAAGupB,GAAK,EAAGC,GAAK,EAAGC,GAAK,EACjG,MAAMC,GAAKzqB,GAAG,KAAI,EAAI0qB,GAAK1qB,GAAG,KAAI,EAAI2qB,GAAK3qB,GAAG,KAAM,EAAE2pB,GAAK3pB,GAAG,KAAM,EAAE4pB,GAAK5pB,GAAG,OAC9E,IAAI6pB,GAAK,EAAGC,GAAK,EACjB,EAAI,GAAK,EACT,IAAIC,GAAIC,GAAIC,GAAK,IAAIjqB,GAAG,EAAG,EAAG,EAAG,CAAC,EAAGkqB,GAAK3qB,EAAE,KAAI,EAAI4qB,GAAK5qB,EAAE,KAAI,EAAI6qB,GAAK7qB,EAAE,KAAM,EAAE8qB,GAAK,EAAG0J,GAAKx0B,EAAE,KAAI,EAAI8iE,GAAK,EAAGC,GAAK,EACtH,MAAMC,GAAK,IAAIv9C,GAAGzlB,EAAE,KAAI,EAAI,IAAIA,EAAE,EAAG,EAAG,CAAC,CAAC,EAC1C,IAAIijE,GAAIC,GAAKljE,EAAE,KAAI,EACnB,QAAS6iE,GAAK,EAAGA,GAAKzxE,EAAE,OAAS,EAAGyxE,KAAM,CACxCjsE,EAAIxF,EAAE,EAAIyxE,EAAE,EAAG7qE,EAAI5G,EAAE,EAAIyxE,GAAK,CAAC,EAAGl1D,EAAIvc,EAAE,EAAIyxE,GAAK,CAAC,EAAG5qE,EAAI3G,EAAE,EAAIsF,CAAC,EAAGsB,EAAI5G,EAAE,EAAIsF,EAAI,CAAC,EAAGuB,EAAI7G,EAAE,EAAIsF,EAAI,CAAC,EAAGwB,EAAI9G,EAAE,EAAI0G,CAAC,EAAG6B,EAAIvI,EAAE,EAAI0G,EAAI,CAAC,EAAGM,EAAIhH,EAAE,EAAI0G,EAAI,CAAC,EAAGO,EAAIjH,EAAE,EAAIqc,CAAC,EAAGtV,EAAI/G,EAAE,EAAIqc,EAAI,CAAC,EAAGnV,EAAKlH,EAAE,EAAIqc,EAAI,CAAC,EAAGlV,EAAG,IAAIR,EAAGC,EAAGC,CAAC,EAAGO,EAAG,IAAIN,EAAGyB,EAAGvB,CAAC,EAAGK,GAAG,IAAIJ,EAAGF,EAAGG,CAAE,EAAGE,EAAG,cAAcD,EAAIG,EAAE,EAAGD,GAAG,cAAcD,EAAIG,CAAE,EAAGxH,IAAMyH,GAAKzH,EAAE,EAAIuF,CAAC,EAAGyJ,GAAIhP,EAAE,EAAIuF,EAAI,CAAC,EAAG0J,EAAIjP,EAAE,EAAI2G,CAAC,EAAGuI,EAAIlP,EAAE,EAAI2G,EAAI,CAAC,EAAGwI,EAAInP,EAAE,EAAIsc,CAAC,EAAGjN,EAAIrP,EAAE,EAAIsc,EAAI,CAAC,EAAGhN,EAAE,IAAI7H,GAAIuH,EAAC,EAAGO,EAAG,IAAIN,EAAGC,CAAC,EAAGM,EAAG,IAAIL,EAAGE,CAAC,EAAGE,EAAG,cAAcD,EAAGG,CAAE,EAAGD,EAAG,cAAcD,EAAIG,CAAE,GAAIvK,GAAK,IAAMwK,GAAKxK,EAAE,EAAII,CAAC,EAAGqK,GAAKzK,EAAE,EAAII,EAAI,CAAC,EAAG,GAAKJ,EAAE,EAAII,EAAI,CAAC,EAAGuK,GAAK3K,EAAE,EAAII,EAAI,CAAC,EAAGwK,EAAK5K,EAAE,EAAIwB,CAAC,EAAGqJ,EAAK7K,EAAE,EAAIwB,EAAI,CAAC,EAAGsJ,GAAK9K,EAAE,EAAIwB,EAAI,CAAC,EAAGuJ,GAAK/K,EAAE,EAAIwB,EAAI,CAAC,EAAGwJ,GAAKhL,EAAE,EAAImX,CAAC,EAAGod,GAAKv0B,EAAE,EAAImX,EAAI,CAAC,EAAGqd,GAAKx0B,EAAE,EAAImX,EAAI,CAAC,EAAGsd,GAAKz0B,EAAE,EAAImX,EAAI,CAAC,EAAGud,GAAG,IAAIlqB,GAAIC,GAAI,GAAIE,EAAE,EAAGgqB,GAAG,IAAI/pB,EAAIC,EAAIC,GAAIC,EAAE,EAAG6pB,GAAG,IAAI5pB,GAAIupB,GAAIC,GAAIC,EAAE,EAAGE,GAAG,cAAcD,GAAId,EAAE,EAAGgB,GAAG,cAAcD,GAAId,EAAE,GACr1B,IAAI84C,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAChC,MAAMC,GAAK,IAAIlgE,GAAG,EAAG,EAAG,CAAC,EAAGmgE,GAAK,IAAIngE,GAAG,EAAG,EAAG,CAAC,EAC/C,IAAIogE,GAAIC,GACR,QAASC,EAAI,EAAGA,EAAI,EAAE,cAAclB,EAAE,EAAGkB,IACvCptE,EAAI,KAAK,UAAU,OAAQ,KAAK,aAAaA,EAAG,EAAG,KAAK,cAAeksE,GAAKkB,CAAC,EAAGD,GAAK,KAAK,UAAUntE,CAAC,EAAG2zB,GAAK,KAAK,KAAKnnB,GAAG,YAAY,EAAG,CAAC,CAAC,EAAGonB,GAAKpnB,GAAG,YAAY,EAAG,CAAC,EAAGqnB,GAAK/xB,EAAG,IAAIG,GAAG,MAAM0xB,EAAE,CAAC,EAAE,IAAIzxB,EAAG,MAAMyxB,GAAKC,EAAE,CAAC,EAAG,IAAMI,GAAK,EAAE,eAAek4C,EAAE,EAAE,UAAW,EAAC,MAAM,EAAE,EAAGj4C,GAAKhyB,GAAG,MAAO,EAAC,UAAS,EAAIiyB,GAAK7qB,EAAE,MAAM2qB,GAAIC,EAAE,EAAGE,GAAK3nB,GAAG,YAAY,EAAG,EAAI,KAAK,EAAE,EAAGqxB,GAAK5J,GAAG,MAAM,KAAK,IAAIE,EAAE,CAAC,EAAE,IAAID,GAAG,MAAM,KAAK,IAAIC,EAAE,CAAC,CAAC,EAAGA,GAAK3nB,GAAG,YAAY,GAAK,KAAK,GAAK,CAAC,EAAG+/D,GAAK1uC,GAAG,MAAM,KAAK,IAAI1J,EAAE,CAAC,EAAE,IAAIH,GAAG,MAAM,KAAK,IAAIG,EAAE,CAAC,CAAC,EAAGk4C,GAAG,OAASx4C,GAAG,IAAI04C,GAAG,MAAM,IAAI,CAAC,EAAGF,GAAG,UAAYE,GAAIF,GAAG,OAAStpE,EAAGupE,GAAKD,GAAG,eAAe,CAAC,EAAGC,GAAG,MAAQF,GAAKE,GAAG,YAAY,SAASz4C,EAAE,EAAE,OAAQ,EAAEs4C,GAAK3/D,GAAG,YAAY,EAAG,CAAC,EAAI4/D,GAAIv4C,GAAG,WAAW04C,GAAG,MAAMJ,EAAE,CAAC,IAAKgB,GAAG,SAAWt5C,GAAG,MAAK,EAAI,KAAK,WAAW,KAAKs5C,GAAG,SAAS,EAAGA,GAAG,SAAS,EAAGA,GAAG,SAAS,CAAC,EAAG,IAAM,OAASzyE,IAAMo5B,GAAK9pB,EAAE,IAAIG,EAAG,MAAMwpB,EAAE,CAAC,EAAE,IAAIvpB,EAAG,MAAMupB,GAAKC,EAAE,CAAC,EAAG,EAAI/5B,GAAK,EAAE,kBAAoB,MAAQ2yE,GAAK,EAAE,eAAgBC,GAAK,EAAE,gBAAiBS,GAAK,KAAK,yBAAyB,EAAG,KAAK,MAAMp5C,GAAG,EAAI04C,EAAE,EAAG,KAAK,MAAM14C,GAAG,EAAI24C,EAAE,EAAGD,EAAE,EAAGW,GAAG,MAAQD,GAAI,KAAK,QAAQ,KAAKA,GAAG,EAAGA,GAAG,EAAGA,GAAG,EAAGA,GAAG,CAAC,GAAKrtE,GAAKk0B,GAAKQ,GAAG,IAAId,GAAG,MAAME,EAAE,CAAC,EAAE,IAAID,GAAG,MAAMC,GAAKC,EAAE,CAAC,EAAGu5C,GAAG,MAAQ,IAAIpgE,GAAGgnB,GAAG,EAAGA,GAAG,EAAGA,GAAG,EAAGA,GAAG,CAAC,EAAG,KAAK,QAAQ,KAAKA,GAAG,EAAGA,GAAG,EAAGA,GAAG,EAAGA,GAAG,CAAC,IAAMA,GAAKQ,GAAG,IAAI,KAAK,OAAM,EAAI,KAAK,OAAM,EAAI,KAAK,OAAQ,EAAE,CAAC,EAAG44C,GAAG,MAAQ,IAAIpgE,GAAGgnB,GAAG,EAAGA,GAAG,EAAGA,GAAG,EAAGA,GAAG,CAAC,EAAG,KAAK,QAAQ,KAAKA,GAAG,EAAGA,GAAG,EAAGA,GAAG,EAAGA,GAAG,CAAC,IAAMo5C,GAAG,GAAKr5C,GAAG,MAAK,EAAI,KAAK,KAAK,KAAKq5C,GAAG,GAAG,EAAGA,GAAG,GAAG,CAAC,KAAOrzE,GAAKkzE,GAAG,IAAIlzE,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAG4yE,GAAKlgE,GAAG,YAAY,CAAC,EAAG,CAAC,EAAGmgE,GAAKngE,GAAG,YAAY,CAAC,EAAG,CAAC,EAAGugE,GAAKC,GAAG,MAAO,EAAEJ,GAAKG,GAAG,EAAGF,GAAKE,GAAG,EAAIL,GAAII,GAAKC,GAAG,EAAIJ,GAAIE,GAAK,IAAMA,GAAK,GAAIA,GAAK,IAAMA,GAAK,GAAIC,GAAK,IAAMA,GAAK,GAAIA,GAAK,IAAMA,GAAK,GAAIhgE,GAAG,cAAc8/D,GAAIC,GAAIC,GAAIG,EAAE,EAAGl5C,GAAG,IAAIk5C,GAAG,EAAGA,GAAG,EAAGA,GAAG,EAAG,CAAC,GAAKl5C,GAAKQ,GAAG,IAAI,KAAK,OAAQ,EAAE,KAAK,OAAQ,EAAE,KAAK,OAAM,EAAI,CAAC,EAAG44C,GAAG,MAAQ,IAAIpgE,GAAGgnB,GAAG,EAAGA,GAAG,EAAGA,GAAG,EAAGA,GAAG,CAAC,EAAG,KAAK,QAAQ,KAAKA,GAAG,EAAGA,GAAG,EAAGA,GAAG,EAAGA,GAAG,CAAC,EAC33D,CACF,CAGD,kBAAkB,EAAG,EAAG,EAAG,CACzB,GAAI,EAAE,WAAa,KAAM,CACvBt3B,EAAE,KAAK,EAAE,KAAO,kBAAkB,EAAG,EAAE,gBAAkB,KAAM,KAAK,oBAAoB,EAAG,EAAG,EAAG,GAAI,EAAE,EACvG,MACD,CACD,MAAM5C,EAAI,EAAE,SAAS,kBAAiB,EACtC,GAAIA,EAAE,SAAW,EAAG,CAClB4C,EAAE,KAAK,EAAE,KAAO,wBAAwB,EAAG,EAAE,gBAAkB,KAAM,KAAK,oBAAoB,EAAG,EAAG,EAAG,GAAI,EAAE,EAC7G,MACD,CACD,MAAM,EAAI,EAAE,QACZ,EAAE,WAAW,EAAE,EAAG,KAAK,UAAU,KAAK,IAAI,QAASgB,GAAM,CACvD2f,GAAG,aAAavjB,EAAG,IAAM,CACvB,IAAIuC,EAAI,EAAE,WACVA,EAAI,IAAMA,EAAI,GAAIA,EAAIvC,EAAE,OAAS,IAAMuC,EAAIvC,EAAE,OAAS,GACtD,MAAMsC,EAAI,IAAM,CACd,EAAE,eAAiBtC,EAAEuC,CAAC,EAAE,QAAS,EAAC,MAAO,EAAE,gBAAkBvC,EAAEuC,CAAC,EAAE,QAAO,EAAG,OAAQ,KAAK,oBAAoB,EAAG,EAAG,EAAG,GAAI,GAAI,OAAQ,OAAQvC,EAAEuC,CAAC,EAAE,gBAAgB,EAAG,EAAE,QAAO,EAAIqB,GAC7L,EACQ,EAAE,gBAAkB,KACpB,MAAMsF,EAAIlJ,EAAEuC,CAAC,EAAE,WAAU,EACzB2G,EAAIA,EAAE,KAAMpI,GAAM,CAChB,EAAE,gBAAkBA,EAAGwB,GACjC,CAAS,EAAIA,EAAC,CACd,CAAO,CACF,EAAC,CACH,CAED,kBAAkB,EAAG,EAAG,EAAG,CACzB,IAAI,EAAGtC,EAAGC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAGY,EAAGmF,EAAGC,EACrC,MAAMC,EAAIsJ,EAAE,OAAQrJ,EAAIqJ,EAAE,KAAM,EAAEpJ,EAAIoJ,EAAE,KAAI,EAAIhI,EAAIgI,EAAE,KAAM,EAAE,EAAIA,EAAE,KAAI,EAAI/H,EAAI+H,EAAE,OAClF,IAAI9H,EACJ,MAAMC,EAAI,GACV,IAAIC,EAAI,EACR,MAAMyB,EAAI,EAAE,OAAS,EACrB,QAASxB,EAAI,EAAGA,EAAIwB,EAAGxB,IACrB,EAAI,EAAE,EAAIA,CAAC,EAAG7H,EAAI,EAAE,EAAI6H,EAAI,CAAC,EAAG5H,EAAI,EAAE,EAAI4H,EAAI,CAAC,EAAG,EAAI,EAAE,EAAI,CAAC,EAAG,EAAI,EAAE,EAAI,EAAI,CAAC,EAAG,EAAI,EAAE,EAAI,EAAI,CAAC,EAAG,EAAI,EAAE,EAAI7H,CAAC,EAAG,EAAI,EAAE,EAAIA,EAAI,CAAC,EAAG,EAAI,EAAE,EAAIA,EAAI,CAAC,EAAGa,EAAI,EAAE,EAAIZ,CAAC,EAAG+F,EAAI,EAAE,EAAI/F,EAAI,CAAC,EAAGgG,EAAI,EAAE,EAAIhG,EAAI,CAAC,EAAGiG,EAAE,IAAI,EAAG,EAAG,CAAC,EAAGC,EAAE,IAAI,EAAG,EAAG,CAAC,EAAGC,EAAE,IAAIvF,EAAGmF,EAAGC,CAAC,EAAGE,EAAE,cAAcD,EAAGsB,CAAC,EAAGpB,EAAE,cAAcD,EAAG,CAAC,EAAGqJ,EAAE,WAAWhI,EAAG,EAAGC,CAAC,EAAGC,EAAI,GAAMD,EAAE,SAAUG,GAAKF,EAAGC,EAAEE,CAAC,EAAID,EACpW,MAAME,EAAI,IAAI,MAAMuB,CAAC,EACrB,IAAItB,EAAI,EACR,QAASF,EAAIwB,EAAI,EAAGxB,EAAI,EAAGA,IAAK,CAC9B,MAAMG,EAAKL,EAAEE,CAAC,EACd,GAAIG,IAAO,EACTF,EAAED,CAAC,EAAI,MACJ,CACH,MAAMK,GAAMF,EAAKL,EAAEE,EAAI,CAAC,GAAKG,EAAKD,EAAGI,GAAK,KAAK,MAAMD,CAAE,EAAGE,GAAKF,EAAKC,GAAIE,EAAK,EAAE,KAAK,OAAQ,EAAGD,IAAKE,GAAKH,GAAKE,EAC9GP,EAAED,CAAC,EAAIS,GAAIP,GAAKO,EACjB,CACF,CACD,OAAOR,EAAE,CAAC,EAAIC,EAAGD,CAClB,CAOD,UAAU,EAAG,EAAI,KAAK,kBAAmB,CACvC,MAAM,EAAI,IAAI0rE,GAAG,KAAK,cAAe,CAAC,EACtC,IAAI,EAAGxzE,EAAI,KAAK,YAChB,QAASC,EAAI,EAAGA,EAAI,EAAGA,IACrB,EAAI,KAAK,aAAaD,EAAG,EAAG,KAAK,cAAeC,CAAC,EAAG,GAAK,EAAE,mBAAqB,EAAE,kBAAkB,EAAGD,EAAGC,CAAC,EAAG,KAAK,WAAW,KAAK,EAAE,SAAS,EAAG,EAAE,SAAS,EAAG,EAAE,SAAS,CAAC,EAAG,EAAE,OAAS,KAAK,QAAQ,KAAK,EAAE,MAAM,EAAG,EAAE,MAAM,EAAG,EAAE,MAAM,EAAG,EAAE,MAAM,CAAC,EAAG,EAAE,IAAM,KAAK,KAAK,KAAK,EAAE,GAAG,EAAG,EAAE,GAAG,CAAC,EAAGD,IAClS,OAAO,KAAK,aAAe,EAAG,KAAK,gBAAiB,KAAK,aAC1D,CAUD,iBAAiB,EAAG,EAAG,EAAG,EAAGA,EAAG,CAC9B,IAAIC,EAAI,GAAK,GACZ,MAAMA,CAAC,GAAKA,EAAI,GAAKA,EAAI,KAAOA,EAAI,GACrC,MAAM,EAAI,EAAE,gBAAgBgU,EAAE,YAAY,EAAG,EAAI,EAAE,aACnD,KAAK,QAAQ,KAAK,KAAK,aAAa,EACpC,MAAM,EAAI,IAAIu/D,GAAG,KAAK,cAAe,IAAI,EACzC,OAAQ,EAAE,cAAgB,KAAK,kBAAkB,EAAG,EAAG,CAAC,EAAGvzE,IAAM,EAAI,EAAE,WAAa,GAAK,EAAI,EAAI,GAAK,IAAIiT,GAAG,EAAG,EAAG,EAAG,CAAC,EAAGjT,EAAC,CACzH,IAAK,GACH,KAAK,kBAAkB,EAAG,EAAG,EAAE,EAC/B,MACF,IAAK,GACH,KAAK,oBAAoB,EAAG,EAAG,GAAI,GAAI,EAAE,EACzC,MACF,IAAK,GACH,KAAK,oBAAoB,EAAG,EAAG,EAAE,EACjC,MACF,IAAK,GACH,KAAK,oBAAoB,EAAG,EAAG,GAAI,OAAQ,OAAQ,EAAGD,CAAC,EACvD,KACH,CACD,OAAO,KAAK,aAAe,EAAG,KAAK,gBAAiB,KAAK,cAAgB,CAC1E,CAUD,gBAAgB,EAAG,EAAG,EAAG,EAAGA,EAAG,CAC7B,IAAIC,EAAI,GAAK,GACZ,MAAMA,CAAC,GAAKA,EAAI,GAAKA,EAAI,KAAOA,EAAI,GACrC,MAAM,EAAI,EAAE,gBAAgBgU,EAAE,YAAY,EAAG,EAAI,EAAE,aACnD,KAAK,QAAQ,KAAK,KAAK,aAAa,EACpC,MAAM,EAAI,IAAIu/D,GAAG,KAAK,cAAe,IAAI,EACzC,OAAQ,EAAE,cAAgB,KAAK,kBAAkB,EAAG,EAAG,CAAC,EAAGvzE,IAAM,EAAI,EAAE,WAAa,GAAK,EAAI,EAAI,GAAK,IAAIiT,GAAG,EAAG,EAAG,EAAG,CAAC,EAAGjT,EAAC,CACzH,IAAK,GACH,KAAK,kBAAkB,EAAG,EAAG,EAAE,EAC/B,MACF,IAAK,GACH,KAAK,oBAAoB,EAAG,EAAG,GAAI,GAAI,EAAE,EACzC,MACF,IAAK,GACH,KAAK,oBAAoB,EAAG,EAAG,EAAE,EACjC,MACF,IAAK,GACH,KAAK,oBAAoB,EAAG,EAAG,GAAI,OAAQ,OAAQ,EAAGD,CAAC,EACvD,KACH,CACD,OAAO,KAAK,aAAe,EAAG,KAAK,gBAAiB,KAAK,cAAgB,CAC1E,CAUD,aAAa,EAAI,EAAG,EAAI,KAAK,YAAc,EAAG,EAAI,GAAI,CACpD,IAAIwH,EAAG2V,EACP,GAAI,CAAC,KAAK,YAAc,CAAC,KAAK,SAC5B,OAAO,KACT,KAAK,sBAAsB,EAAG,EAAG,CAAC,EAClC,MAAM1c,EAAIkP,EAAE,OAAO,CAAC,EAAG3P,EAAI,KAAK,KAAMC,EAAI,KAAK,UAAW2D,EAAI,KAAK,aAAcrB,EAAI,KAAK,OAAQD,EAAIqN,EAAE,QAASzG,EAAI5G,EAAE,CAAC,EAAE,eAAe,EAAG,EAAG,CAAC,EAAGxB,EAAIwB,EAAE,CAAC,EAAE,eAAe,EAAG,EAAG,CAAC,EAAG1B,EAAI0B,EAAE,CAAC,EAAE,eAAe,EAAG,EAAG,CAAC,EAAG,EAAIA,EAAE,CAAC,EAAE,OAAO,OAAO,SAAS,EAAG,EAAIA,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,SAAS,EAC3RsN,EAAE,cAAcnP,CAAC,EACjB,IAAIwF,EAAI,EACR,IAAKuB,EAAI,KAAK,OAAS,MAAQA,EAAE,qBAAuB,KAAK,oBAAsB,IAAK,EAAI,GAAK,KAAK,YAAc,KAAK,YAAc,EAAI,EAAG,KAAK,sBAAwB,GAAK,GAAK,GAAK,KAAK,YAAc,GAAI,CAC/M,MAAMC,GAAK0V,EAAI,KAAK,OAAS,KAAO,OAASA,EAAE,kBAC/C1V,IAAM,EAAE,SAASA,EAAE,OAAO,EAAG,EAAE,SAASA,EAAE,OAAO,EAClD,CACDxB,EAAI,EACJ,IAAIC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EACtB,QAASqB,EAAI,EAAGA,GAAK,EAAGA,IAAK,CAC3B,MAAMC,EAAI,KAAK,UAAUD,CAAC,EAC1BxB,EAAIyB,EAAE,IAAKxB,EAAI,EAAID,EAAGE,EAAI,EAAIF,EAAGG,EAAI,EAAIH,EAAG,KAAK,eAAeyB,CAAC,EACjE,MAAMC,EAAID,EAAE,gBAAiBE,EAAIF,EAAE,SAAU2B,EAAI3B,EAAE,gBACnD,GAAI,KAAK,0BAA4BA,EAAE,kBAAkBjH,CAAC,EAAGiH,EAAE,WAAa,KAAM,CAChF,MAAMqI,EAAI,KAAK,UAAUrI,EAAE,QAAQ,EAAGsI,EAAID,EAAE,gBAAiBG,EAAIH,EAAE,gBAAiBI,EAAIvI,EAAE,EAAIoI,EAAE,CAAC,EAAIpI,EAAE,EAAIoI,EAAE,CAAC,EAAIpI,EAAE,EAAIoI,EAAE,CAAC,EAAGI,EAAKxI,EAAE,EAAIoI,EAAE,CAAC,EAAIpI,EAAE,EAAIoI,EAAE,CAAC,EAAIpI,EAAE,EAAIoI,EAAE,CAAC,EAAGK,EAAKzI,EAAE,EAAIoI,EAAE,CAAC,EAAIpI,EAAE,EAAIoI,EAAE,CAAC,EAAIpI,EAAE,EAAIoI,EAAE,CAAC,EACjN,GAAI3G,EAAE,EAAI6G,EAAE,EAAIE,EAAI/G,EAAE,EAAI6G,EAAE,EAAIC,EAAG9G,EAAE,EAAI6G,EAAE,EAAIG,EAAI,KAAK,yBAA0B,CAChF,MAAMC,EAAK7P,EAAE,EACbkH,EAAE,CAAC,EAAI2I,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAGrI,EAAE,CAAC,EAAI2I,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAGrI,EAAE,CAAC,EAAI2I,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAGrI,EAAE,CAAC,EAAI2I,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAGrI,EAAE,CAAC,EAAI2I,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAGrI,EAAE,CAAC,EAAI2I,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAGrI,EAAE,CAAC,EAAI2I,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,EAAE,EAAIN,EAAE,CAAC,EAAGrI,EAAE,CAAC,EAAI2I,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,EAAE,EAAIN,EAAE,CAAC,EAAGrI,EAAE,CAAC,EAAI2I,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,CAAC,EAAIN,EAAE,CAAC,EAAIM,EAAG,EAAE,EAAIN,EAAE,CAAC,CAC5c,CACF,SAAU3G,EAAE,EAAI,EAAGA,EAAE,EAAI,EAAGA,EAAE,EAAI,EAAG,KAAK,yBAA0B,CACnE,MAAM0G,EAAItP,EAAE,EACZkH,EAAE,CAAC,EAAIoI,EAAE,CAAC,EAAGpI,EAAE,CAAC,EAAIoI,EAAE,CAAC,EAAGpI,EAAE,CAAC,EAAIoI,EAAE,CAAC,EAAGpI,EAAE,CAAC,EAAIoI,EAAE,CAAC,EAAGpI,EAAE,CAAC,EAAIoI,EAAE,CAAC,EAAGpI,EAAE,CAAC,EAAIoI,EAAE,CAAC,EAAGpI,EAAE,CAAC,EAAIoI,EAAE,CAAC,EAAGpI,EAAE,CAAC,EAAIoI,EAAE,CAAC,EAAGpI,EAAE,CAAC,EAAIoI,EAAE,EAAE,CACpH,CACD,MAAMhI,EAAIzF,EAAE,EAAE,EACdoF,EAAE,mBAAqBK,EAAE,OAAO,CAAC,EAAIA,EAAE,SAASL,EAAE,KAAK,EACvD,MAAMG,EAAIvF,EAAE,CAAC,EACbuF,EAAE,SAASH,EAAE,QAAQ,EACrB,MAAMM,EAAKH,EAAE,EAAIH,EAAE,MAAM,EAAGO,EAAKJ,EAAE,EAAIH,EAAE,MAAM,EAAGQ,EAAKL,EAAE,EAAIH,EAAE,MAAM,EACrE,IAAIS,GAAKH,EAAKL,EAAE,CAAC,EAAIM,EAAKN,EAAE,CAAC,EAAIO,EAAKP,EAAE,CAAC,EAAGS,GAAKJ,EAAKL,EAAE,CAAC,EAAIM,EAAKN,EAAE,CAAC,EAAIO,EAAKP,EAAE,CAAC,EAAGU,EAAKL,EAAKL,EAAE,CAAC,EAAIM,EAAKN,EAAE,CAAC,EAAIO,EAAKP,EAAE,CAAC,EACzHQ,IAAMJ,EAAE,EAAGK,IAAML,EAAE,EAAGM,GAAMN,EAAE,EAC9B,MAAMO,GAAK1E,EAAEsC,CAAC,EAAImD,EAAE,EAAIH,EAAE,EAAIf,GAAKrH,EAAE,EAAIsH,GAAKxH,EAAE,EAAIyH,EAAIwH,GAAIjM,EAAEsC,EAAI,CAAC,EAAImD,EAAE,EAAIH,EAAE,EAAIf,GAAKrH,EAAE,EAAIsH,GAAKxH,EAAE,EAAIyH,EAAIyH,EAAIlM,EAAEsC,EAAI,CAAC,EAAImD,EAAE,EAAIH,EAAE,EAAIf,GAAKrH,EAAE,EAAIsH,GAAKxH,EAAE,EAAIyH,EAC9J,GAAI,KAAK,sBAAwB,EAAE,0BAA0BC,GAAIuH,GAAGC,CAAC,EAAG,EAAE,0BAA0BxH,GAAIuH,GAAGC,CAAC,GAAI,KAAK,uBAAyBpI,EAAE,MAAO,CACrJ,MAAMqI,EAAIrI,EAAE,MAAOsI,EAAI,KAAK,UAC5BA,EAAE7J,CAAC,EAAI4J,EAAE,EAAGC,EAAE7J,EAAI,CAAC,EAAI4J,EAAE,EAAGC,EAAE7J,EAAI,CAAC,EAAI4J,EAAE,EAAGC,EAAE7J,EAAI,CAAC,EAAI4J,EAAE,CAC1D,CACD,GAAI,KAAK,yBAA2BrI,EAAE,GAAI,CACxC,MAAMqI,EAAIrI,EAAE,GAAIsI,EAAI,KAAK,OACzBA,EAAE5J,CAAC,EAAI2J,EAAE,EAAGC,EAAE5J,EAAI,CAAC,EAAI2J,EAAE,CAC1B,CACF,CACD,OAAO/P,IAAM,IAAM,KAAK,uBAAyBA,EAAE,mBAAmBiU,EAAE,UAAWhU,EAAG,GAAI,EAAE,EAAG,KAAK,yBAA2BD,EAAE,mBAAmBiU,EAAE,OAAQ1R,EAAG,GAAI,EAAE,EAAGvC,EAAE,mBAAmBiU,EAAE,aAAcrQ,EAAG,GAAI,EAAE,GAAI,KAAK,sBAAwB5D,EAAE,gBAAkBA,EAAE,gBAAiB,EAAC,YAAY,EAAG,EAAGA,EAAE,YAAY,EAAIA,EAAE,kBAAkB,EAAG,EAAGA,EAAE,YAAY,IAAK,KAAK,qBAAqB,EAAG,EAAG,CAAC,EAAG,IACvZ,CAID,SAAU,CACR,IAAI,GACH,EAAI,KAAK,OAAS,MAAQ,EAAE,QAAS,EAAE,KAAK,KAAO,KAAM,KAAK,WAAa,KAAM,KAAK,SAAW,KAAM,KAAK,SAAW,KAAM,KAAK,KAAO,KAAM,KAAK,QAAU,KAAM,KAAK,WAAa,KAAM,KAAK,aAAe,KAAM,KAAK,OAAS,KAAM,KAAK,UAAY,IAC7P,CAMD,oBAAqB,CACnB,IAAI,EACJ,OAAO,KAAK,yBAA2B,EAAI,KAAK,OAAS,MAAQ,EAAE,oBAAqB,EAAE,IAC3F,CAOD,iBAAiB,EAAG,CAClB,GAAI,CAAC,KAAK,KACR,OACF,MAAM,EAAI,EAAI,EACd,KAAK,KAAK,kBAAkB,IAAIwP,EAAE,CAAC,EAAG,CAAC,EAAG,CAAC,CAAC,EAAG,IAAIA,EAAE,EAAG,EAAG,CAAC,CAAC,CAC9D,CAKD,IAAI,iBAAkB,CACpB,OAAO,KAAK,cACb,CAKD,IAAI,gBAAgB,EAAG,CACrB,KAAK,OAAS,KAAK,eAAiB,EAAG,KAAK,KAAK,yBAA2B,EAC7E,CAOD,IAAI,wBAAwB,EAAG,CAC7B,KAAK,yBAA2B,CACjC,CAMD,IAAI,qBAAqB,EAAG,CAC1B,KAAK,sBAAwB,CAC9B,CACD,IAAI,uBAAuB,EAAG,CAC5B,KAAK,wBAA0B,CAChC,CAMD,IAAI,sBAAuB,CACzB,OAAO,KAAK,qBACb,CAMD,IAAI,wBAAyB,CAC3B,OAAO,KAAK,uBACb,CAID,IAAI,mBAAmB,EAAG,CACxB,KAAK,oBAAsB,CAC5B,CAID,IAAI,oBAAqB,CACvB,OAAO,KAAK,mBACb,CASD,eAAgB,CACf,CAQD,gBAAgB,EAAG,CACjB,OAAO,CACR,CASD,eAAe,EAAG,CAChB,OAAO,CACR,CASD,sBAAsB,EAAG,EAAG,EAAG,CAC9B,CAUD,qBAAqB,EAAG,EAAG,EAAG,CAC7B,CACH,EACA,OAAO,eAAeof,GAAG,UAAW,kBAAmB,CACrD,IAAK,UAAW,CACd,OAAO,KAAK,gBACb,EACD,IAAK,SAASvuB,EAAG,CACf,KAAK,mBAAqBA,IAAM,KAAK,yBAA2B,KAAK,oBAAoB,OAAO,KAAK,uBAAuB,EAAG,KAAK,iBAAmBA,EAAGA,IAAM,KAAK,wBAA0B,KAAK,oBAAoB,IAAI,IAAM,CAChO,KAAK,kBAAoB,KAAK,gBAAgB,QAEpD,EAAS,KAAK,gBAAkB,KAC3B,IACF,EACD,WAAY,GACZ,aAAc,EAChB,CAAC,EACDuuB,GAAG,UAAU,mBAAqB,UAAW,CAC3C,OAAO,KAAK,eACd,EACAA,GAAG,UAAU,aAAe,SAASvuB,EAAG,EAAG,CACzC,OAAO,KAAK,iBAAmB,KAAK,gBAAgB,aAAaA,EAAG,CAAC,EAAG,MAAQ,IAClF,EACAuuB,GAAG,UAAU,mBAAqB,SAASvuB,EAAG,EAAG,EAAG,EAAG,CACrD,MAAO,CAAC,KAAK,iBAAmB,CAACA,EAAE,gBAAkB,MAAQ,KAAK,gBAAgB,YAAYA,EAAE,gBAAiBm5C,GAAG,WAAY,CAC9H,UAAW,EACX,eAAgB,EAChB,aAAc,CAClB,CAAG,EAAG,KACN,EACA,IAAAi6B,IAAA,MAAMC,GAAG,CAKP,kBAAmB,CACjB,OAAO,KAAK,eAAe,kBAC5B,CAMD,OAAO,sBAAuB,CAC5B,MAAM1yE,GAAG,EAAE,CACZ,CAMD,YAAY,EAAG,EAAI0yE,IAAG,qBAAoB,EAAI,CAC5C,KAAK,eAAiB,EAAG,KAAK,eAAiB,GAAI,KAAK,aAAe,EAAG,EAAI,GAAK,IAAIlkE,EAAE,EAAG,OAAQ,CAAC,EAAG,KAAK,WAAW,CAAC,EAAG,KAAK,aAClI,CAKD,WAAW,EAAG,CACZ,KAAK,QAAU,EAAG,KAAK,eAAe,WAAW,KAAK,OAAO,CAC9D,CASD,YAAY,EAAI,EAAI,GAAI,CACtB,KAAK,eAAe,YAAY,CAAC,CAClC,CAKD,aAAc,CACZ,OAAO,KAAK,eAAe,aAC5B,CAOD,eAAe,EAAI,EAAG,CACpB,KAAK,aAAe,CACrB,CAKD,gBAAiB,CACf,OAAO,KAAK,YACb,CAID,SAAU,CACR,KAAK,eAAe,SACrB,CAKD,sBAAuB,CACrB,OAAO,KAAK,eAAe,IAC5B,CAMD,kBAAkB,EAAG,EAAG,CACtB,KAAK,eAAe,kBAAkB,EAAG,CAAC,CAC3C,CAID,sBAAuB,CACrB,OAAO,KAAK,eAAe,sBAC5B,CAID,uBAAwB,CACtB,OAAO,KAAK,eAAe,uBAC5B,CAUD,MAAM,EAAG,CACP,EAAI,GAAM,EAAI,GAAM,GAAK,IAAM,EAAI,EAAI,IAAK,KAAK,eAAe,YAAY,EAAG,KAAK,cAAc,CACnG,CAKD,QAAQ,EAAG,CACT,KAAK,eAAe,KAAK,CAAC,CAC3B,CAKD,WAAW,EAAG,CACZ,MAAM,EAAI,KAAK,eAAe,QAAQ,CAAC,EACvC,EAAI,IAAM,KAAK,eAAe,OAAO,EAAG,CAAC,CAC1C,CAID,WAAY,CACV,OAAO,KAAK,cACb,CAKD,kBAAmB,CACjB,OAAO,KAAK,cACb,CAQD,aAAa,EAAG,EAAG,EAAG,EAAG,CACvB,KAAK,eAAe,QAAQ,EAAG,EAAG,EAAG,CAAC,CACvC,CAQD,QAAQ,EAAG,EAAG,EAAG,CACf,MAAM,EAAI,IAAIulD,GACd,OAAO,KAAK,eAAe,QAAQ,EAAG,EAAG,EAAG,CAAC,EAAG,CACjD,CACH,EACG,IAAC4e,IACH,SAAStzE,EAAG,CACXA,EAAEA,EAAE,KAAO,CAAC,EAAI,OAAQA,EAAEA,EAAE,QAAU,CAAC,EAAI,UAAWA,EAAEA,EAAE,OAAS,CAAC,EAAI,QAC1E,GAAGszE,KAAOA,GAAK,CAAE,EAAC,EACf,IAACC,IACH,SAASvzE,EAAG,CACXA,EAAEA,EAAE,SAAW,CAAC,EAAI,WAAYA,EAAEA,EAAE,SAAW,CAAC,EAAI,WAAYA,EAAEA,EAAE,SAAW,CAAC,EAAI,WAAYA,EAAEA,EAAE,UAAY,CAAC,EAAI,YAAaA,EAAEA,EAAE,UAAY,CAAC,EAAI,YAAaA,EAAEA,EAAE,UAAY,CAAC,EAAI,YAAaA,EAAEA,EAAE,gBAAkB,CAAC,EAAI,iBACnO,GAAGuzE,KAAOA,GAAK,CAAE,EAAC,EACf,IAACC,IACH,SAASxzE,EAAG,CACXA,EAAEA,EAAE,gBAAkB,CAAC,EAAI,kBAAmBA,EAAEA,EAAE,SAAW,CAAC,EAAI,WAAYA,EAAEA,EAAE,MAAQ,CAAC,EAAI,QAASA,EAAEA,EAAE,OAAS,CAAC,EAAI,SAAUA,EAAEA,EAAE,KAAO,CAAC,EAAI,OAAQA,EAAEA,EAAE,UAAY,CAAC,EAAI,YAAaA,EAAEA,EAAE,QAAU,CAAC,EAAI,SACnN,GAAGwzE,KAAOA,GAAK,CAAE,EAAC,EACf,IAACC,IACH,SAASzzE,EAAG,CACXA,EAAEA,EAAE,OAAS,CAAC,EAAI,SAAUA,EAAEA,EAAE,QAAU,CAAC,EAAI,UAAWA,EAAEA,EAAE,SAAW,CAAC,EAAI,WAAYA,EAAEA,EAAE,IAAM,CAAC,EAAI,MAAOA,EAAEA,EAAE,YAAc,CAAC,EAAI,cAAeA,EAAEA,EAAE,UAAY,CAAC,EAAI,YAAaA,EAAEA,EAAE,KAAO,CAAC,EAAI,OAAQA,EAAEA,EAAE,YAAc,CAAC,EAAI,aACzO,GAAGyzE,KAAOA,GAAK,CAAE,EAAC,EACf,IAACC,IACH,SAAS1zE,EAAG,CACXA,EAAEA,EAAE,KAAO,CAAC,EAAI,OAAQA,EAAEA,EAAE,SAAW,CAAC,EAAI,WAAYA,EAAEA,EAAE,SAAW,CAAC,EAAI,UAC9E,GAAG0zE,KAAOA,GAAK,CAAE,EAAC,EACf,IAACC,IACH,SAAS3zE,EAAG,CACXA,EAAE,kBAAoB,oBAAqBA,EAAE,oBAAsB,sBAAuBA,EAAE,mBAAqB,qBAAsBA,EAAE,gBAAkB,kBAAmBA,EAAE,eAAiB,gBACnM,GAAG2zE,KAAOA,GAAK,CAAE,EAAC,EACf,IAACC,IACH,SAAS5zE,EAAG,CACXA,EAAEA,EAAE,OAAS,CAAC,EAAI,SAAUA,EAAEA,EAAE,SAAW,CAAC,EAAI,WAAYA,EAAEA,EAAE,QAAU,CAAC,EAAI,SACjF,GAAG4zE,KAAOA,GAAK,CAAE,EAAC,EACf,IAACC,IACH,SAAS7zE,EAAG,CACXA,EAAEA,EAAE,SAAW,CAAC,EAAI,WAAYA,EAAEA,EAAE,SAAW,CAAC,EAAI,WAAYA,EAAEA,EAAE,OAAS,CAAC,EAAI,QACpF,GAAG6zE,KAAOA,GAAK,CAAE,EAAC,EACf,IAACC,IACH,SAAS9zE,EAAG,CACXA,EAAEA,EAAE,sBAAwB,CAAC,EAAI,wBAAyBA,EAAEA,EAAE,cAAgB,CAAC,EAAI,gBAAiBA,EAAEA,EAAE,gBAAkB,CAAC,EAAI,iBACjI,GAAG8zE,KAAOA,GAAK,CAAE,EAAC,EACf,IAACC,IACH,SAAS/zE,EAAG,CACXA,EAAEA,EAAE,eAAiB,CAAC,EAAI,iBAAkBA,EAAEA,EAAE,QAAU,CAAC,EAAI,UAAWA,EAAEA,EAAE,QAAU,CAAC,EAAI,UAAWA,EAAEA,EAAE,gBAAkB,CAAC,EAAI,kBAAmBA,EAAEA,EAAE,SAAW,CAAC,EAAI,UAC5K,GAAG+zE,KAAOA,GAAK,CAAE,EAAC,EAClB/7D,GAAG,UAAU,iBAAmB,UAAW,CACzC,OAAO,KAAK,cACd,EACAA,GAAG,UAAU,cAAgB,SAAShY,EAAI,KAAM,EAAG,CACjD,GAAI,KAAK,eACP,MAAO,GACT,IAAI,EAAI,KAAK,cAAc2U,GAAG,kBAAkB,EAChD,IAAM,EAAI,IAAIq/D,IAAG,IAAI,EAAG,KAAK,cAAc,CAAC,GAC5C,GAAI,CACF,GAAI,CAAC,GAA2B,GAAE,iBAAgB,IAAQ,EACxD,KAAK,eAAiB,IAAIpf,GAAG50D,EAAG,CAAC,UACJ,GAAE,iBAAgB,IAAQ,EACvD,KAAK,eAAiB,IAAIqzE,IAAGrzE,EAAG,CAAC,MAEjC,OAAM,IAAI,MAAM,qCAAqC,EACvD,OAAO,KAAK,wBAA0B,EAAG,EAC1C,OAAQ,EAAG,CACV,OAAOuC,EAAE,MAAM,EAAE,OAAO,EAAG,EAC5B,CACH,EACAyV,GAAG,UAAU,qBAAuB,UAAW,CAC7C,KAAK,iBAAmB,KAAK,eAAe,QAAO,EAAI,KAAK,eAAiB,KAC/E,EACAA,GAAG,UAAU,iBAAmB,UAAW,CACzC,OAAO,KAAK,iBAAmB,MACjC,EACAA,GAAG,UAAU,uBAAyB,SAAShY,EAAG,CAChD,MAAM,EAAIA,EAAE,MAAM,CAAC,EAAE,KACrB,EAAE,kBAAoB,EAAE,gBAAgB,QAE1C,EAAK,EAAE,gBAAkB,KACzB,EACAgY,GAAG,UAAU,0BAA4B,SAAShY,EAAG,CACnD,GAAI,KAAK,eAAgB,CACvB,MAAM,EAAI,KAAK,eAAe,eAAc,EAC5C,GAAI,EAAI,EACN,IAAK,KAAK,yBAA2BA,EAAG,KAAK,wBAA0B,GACrE,KAAK,0BAA0B,gBAAgB,IAAI,EAAG,KAAK,eAAe,MAAM,EAAI,GAAG,EAAG,KAAK,yBAAyB,gBAAgB,IAAI,EAAG,KAAK,yBAA2B,OAEjL,KAAK,0BAA0B,gBAAgB,IAAI,EAAG,KAAK,eAAe,MAAMA,EAAI,GAAG,EAAG,KAAK,yBAAyB,gBAAgB,IAAI,CAC/I,CACH,EACA,IAAAi0E,IAAA,KAAS,CAKP,YAAY,EAAG,CACb,KAAK,KAAOt/D,GAAG,mBAAoB,KAAK,MAAQ,EAAG,KAAK,MAAM,0BAA4B,IAAIlV,GAAK,KAAK,MAAM,yBAA2B,IAAIA,GAAK,KAAK,MAAM,0BAA4B,IAAM,KAAK,MAAM,eAAiB,KAAK,MAAM,eAAe,YAAa,EAAG,IAAM,IAAM,EAClR,CAID,UAAW,CACV,CAKD,SAAU,CACT,CAID,SAAU,CACR,KAAK,MAAM,0BAA0B,MAAK,EAAI,KAAK,MAAM,yBAAyB,MAAK,EAAI,KAAK,MAAM,gBAAkB,KAAK,MAAM,sBACpI,CACH,EACA,OAAO,eAAesuB,GAAG,UAAW,cAAe,CACjD,IAAK,UAAW,CACd,OAAO,KAAK,YACb,EACD,IAAK,SAAS/tB,EAAG,CACf,KAAK,eAAiBA,IAAM,KAAK,yBAA2B,KAAK,oBAAoB,OAAO,KAAK,uBAAuB,EAAG,KAAK,aAAeA,EAAGA,IAAM,KAAK,wBAA0B,KAAK,oBAAoB,IAAI,IAAM,CACxN,KAAK,cAAgB,KAAK,YAAY,QAE5C,EAAS,KAAK,YAAc,KACvB,IACF,EACD,WAAY,GACZ,aAAc,EAChB,CAAC,EACD+tB,GAAG,UAAU,eAAiB,UAAW,CACvC,OAAO,KAAK,WACd,EACAA,GAAG,UAAU,aAAe,SAAS/tB,EAAG,EAAG,CACzC,GAAI,CAAC,KAAK,YACR,MAAM,IAAI,MAAM,mCAAmC,EACrD,OAAO,KAAK,YAAY,aAAaA,EAAG,CAAC,EAAG,IAC9C,EACA+tB,GAAG,UAAU,oBAAsB,SAAS/tB,EAAG,CAC7C,GAAI,CAAC,KAAK,YACR,MAAM,IAAI,MAAM,mCAAmC,EACrD,OAAO,KAAK,YAAY,oBAAoBA,CAAC,EAAG,IAClD,EACA,IAAAk0E,GAAA,KAAS,CAKP,OAAO,qBAAqB,EAAG,EAAG,EAAG,EAAGv0E,EAAG,CACzC,MAAMC,EAAI,EAAE,SAAU,EAAC,iBAAgB,EAAI,EAAyBA,GAAE,iBAAgB,EACtF,GAAI,IAAM,EAAG,CACX,MAAMqC,EAAI,IAAI2yB,GAAG,EAAG,CAAC,EAAE,eAAe,CAAC,EACvC,GAAI3yB,EAAE,KAAOA,EAAE,YACb,OAAO,EAAE,SAASA,EAAE,WAAW,EAAG,EAC1C,SAAe,IAAM,EACf,OAAO,EAAE,YAAY,0BAA0B,EAAGtC,CAAC,EAAG,GACxD,MAAO,EACR,CAOD,OAAO,iBAAiB,EAAG,EAAG,CAC5B,IAAI,EAAG,EACP,OAAO,EAAE,cAAc,CAAC,IAAM,MAAQ,EAAI,EAAE,kBAAkB,CAAC,IAAM,KAAO,OAAS,EAAE,OAAS,KAAO,KAAO,EAAI,EAAE,gBAAkB,KAAO,OAAS,EAAE,iBAAgB,KAAQ,CACjL,CASD,OAAO,iBAAiB,EAAG,EAAG,EAAG,EAAG,CAClC,MAAMA,EAAI2P,EAAE,QAAQ,CAAC,EACrB,OAAO,EAAE,cAAc,EAAG3P,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,GAAK,GAAK,KAAK,IAAIA,EAAE,CAAC,GAAK,GAAKA,EAAE,GAAK,GAAKA,EAAE,GAAK,CAC9F,CACH,EACAw0E,IAAA,KAAS,CAKP,YAAY,EAAG,CACb,GAAI,KAAK,SAAW,CAAE,MAAO,IAAIhlE,EAAK,aAAc,IAAIA,EAAK,mBAAoB,CAAC,EAAI,KAAK,OAAS,EAAG,KAAK,eAAiB,KAAK,OAAO,iBAAkB,EAAE,CAAC,KAAK,eAAgB,CACjL5M,EAAE,KAAK,uFAAuF,EAC9F,MACD,CACF,CASD,4BAA4B,EAAG,EAAG,EAAG,EAAG,CACtC,GAAI,CAAC,KAAK,eACR,OAAOA,EAAE,KAAK,oFAAoF,EAAG,KACvG,GAAI,KAAK,eAAe,iBAAkB,IAAK,GAAK,KAAK,eAAe,aAAY,EAAG,SAAW,GAAK,KAAK,eAAe,iBAAgB,IAAO,GAAK,KAAK,eAAe,YAAY,SAAW,EAChM,OAAO,KACT,IAAI5C,EAAI,GACR,GAAI,OAAO,GAAK,SAAU,CACxB,MAAM,EAAI,EACV,EAAI,IAAIy0E,GAAM,EAAE,OAAS,EAAG,EAAE,SAAW,GAAK,EAAE,SAAU,EAAE,QAAU,GAAK,EAAE,OAC9E,MACCz0E,EAAI,CAAC,EAAE,EAAE,2BAA6B,EAAE,wBAC1C,MAAMC,EAAI,IAAIy0E,GAAG,KAAK,OAAQ,CAAC,EAAG,EAAI,KAAK,SAC3C,GAAI,KAAK,eAAe,iBAAgB,IAAO,EAAG,CAChD,MAAM,EAAI,QACV,KAAK,eAAe,aAAc,EAAC,QAASxrE,GAAM,CAChDjJ,EAAE,mBAAmBiJ,EAAG,EAAG,CAAC,IAAMA,EAAE,aAAa,EAAE,MAAO,EAAE,YAAY,EAAGlJ,GAAK,EAAE,KAAK,CACrF,SAAUkJ,EACV,QAAS,KAAK,oBAAoB,CAAC,CACpC,GACF,GAAGjJ,EAAE,iCAAiC,CAAC,CACzC,MACC,KAAK,sBAAsBA,EAAG,EAAG,EAAGD,EAAG,CAAC,EAAG,IAAM,CAC/C,EAAE,aAAa,EAAE,MAAO,EAAE,aAAc,EAAE,aAAa,CAC/D,CAAO,EACH,OAAOC,EAAE,QAAQ,EAAE,EAAGA,CACvB,CASD,0BAA0B,EAAG,EAAG,EAAG,EAAG,CACpC,GAAI,CAAC,KAAK,eACR,OAAO2C,EAAE,KAAK,0FAA0F,EAAG,KAC7G,GAAI,KAAK,eAAe,iBAAkB,IAAK,GAAK,KAAK,eAAe,aAAY,EAAG,SAAW,GAAK,KAAK,eAAe,iBAAgB,IAAO,GAAK,KAAK,eAAe,YAAY,SAAW,EAChM,OAAO,KACT,IAAI5C,EAAI,GACR,GAAI,OAAO,GAAK,SAAU,CACxB,MAAM,EAAI,EACV,EAAI,IAAIy0E,GAAM,EAAE,OAAS,EAAG,EAAE,SAAW,GAAK,EAAE,SAAU,EAAE,QAAU,GAAK,EAAE,OAC9E,MACCz0E,EAAI,CAAC,EAAE,EAAE,2BAA6B,EAAE,wBAC1C,MAAMC,EAAI,IAAIy0E,GAAG,KAAK,OAAQ,CAAC,EAAG,EAAI,KAAK,SAC3C,GAAI,KAAK,eAAe,iBAAgB,IAAO,EAAG,CAChD,MAAM,EAAI,QACV,KAAK,eAAe,aAAc,EAAC,QAASxrE,GAAM,CAChDjJ,EAAE,mBAAmBiJ,EAAG,EAAG,CAAC,IAAMA,EAAE,WAAW,EAAE,MAAO,EAAE,YAAY,EAAGlJ,GAAK,EAAE,KAAK,CACnF,SAAUkJ,EACV,QAAS,KAAK,oBAAoB,CAAC,CACpC,GACF,GAAGjJ,EAAE,iCAAiC,CAAC,CACzC,MACC,KAAK,sBAAsBA,EAAG,EAAG,EAAGD,EAAG,CAAC,EAAG,IAAM,CAC/C,EAAE,WAAW,EAAE,MAAO,EAAE,aAAc,EAAE,aAAa,CAC7D,CAAO,EACH,OAAOC,EAAE,QAAQ,EAAE,EAAGA,CACvB,CACD,sBAAsB,EAAG,EAAG,EAAG,EAAGD,EAAG,CACnC,MAAMC,EAAI,QAAS,EAAI,KAAK,eAAe,YAC3C,UAAW,KAAK,EACd,EAAE,wBAAwB,CAAC,EAAG,IAAM,CAClC,EAAE,eAAe,EAAG,EAAG,EAAG,CAAC,IAAMD,EAAE,EAAG,CAAC,EAAG,GAAKC,EAAE,KAAK,CACpD,KAAM,EACN,QAAS,KAAK,oBAAoB,CAAC,CACpC,GACT,CAAO,EACH,EAAE,8BAA8BA,CAAC,CAClC,CASD,mBAAmB,EAAG,EAAG,EAAG,EAAG,CAC7B,GAAI,CAAC,KAAK,eACR,OAAO2C,EAAE,KAAK,0FAA0F,EAAG,KAC7G,GAAI,KAAK,eAAe,iBAAkB,IAAK,GAAK,KAAK,eAAe,aAAY,EAAG,SAAW,GAAK,KAAK,eAAe,iBAAgB,IAAO,GAAK,KAAK,eAAe,YAAY,SAAW,EAChM,OAAO,KACT,GAAI,OAAO,GAAK,SAAU,CACxB,MAAM3C,EAAI,EACV,EAAI,IAAIw0E,GAAM,EAAE,OAASx0E,EAAG,EAAE,SAAW,GAAK,EAAE,SAAU,EAAE,QAAU,GAAK,EAAE,OAC9E,CACD,MAAMD,EAAI,IAAI20E,IAAG,KAAM,KAAK,OAAQ,EAAG,CAAC,EACxC,OAAO30E,EAAE,QAAQ,EAAE,EAAGA,CACvB,CAUD,QAAQ,EAAG,EAAG,EAAG,EAAGA,EAAG,CACrB,GAAI,CAAC,KAAK,eACR,OAAO4C,EAAE,KAAK,0FAA0F,EAAG,KAC7G,GAAI,KAAK,eAAe,iBAAkB,IAAK,GAAK,KAAK,eAAe,aAAY,EAAG,SAAW,GAAK,KAAK,eAAe,iBAAgB,IAAO,GAAK,KAAK,eAAe,YAAY,SAAW,EAChM,OAAO,KACT,GAAI,OAAO,GAAK,SAAU,CACxB,MAAM,EAAI,EACV,EAAI,IAAIgyE,GAAM,EAAE,OAAS,EAAG,EAAE,SAAW,GAAK,EAAE,SAAU,EAAE,OAAS,GAAK,EAAE,OAAQ,EAAE,YAAc50E,GAAK,EAAE,WAC5G,CACD,MAAMC,EAAI,IAAI40E,IAAG,KAAK,OAAQ,EAAG,CAAC,EAClC,OAAO50E,EAAE,QAAQ,EAAE,EAAGA,CACvB,CAUD,OAAO,EAAG,EAAG,EAAG,EAAG,CACjB,GAAI,CAAC,KAAK,eACR,OAAO2C,EAAE,KAAK,0FAA0F,EAAG,KAC7G,GAAI,KAAK,eAAe,iBAAkB,IAAK,GAAK,KAAK,eAAe,aAAY,EAAG,SAAW,GAAK,KAAK,eAAe,iBAAgB,IAAO,GAAK,KAAK,eAAe,YAAY,SAAW,EAChM,OAAO,KACT,GAAI,OAAO,GAAK,SAAU,CACxB,MAAM3C,EAAI,EACV,EAAI,IAAI60E,GAAM,EAAE,OAAS70E,EAAG,EAAE,SAAW,GAAK,EAAE,SAAU,EAAE,OAAS,GAAK,EAAE,MAC7E,CACD,MAAMD,EAAI,IAAI+0E,GAAG,KAAK,OAAQ,EAAG,CAAC,EAClC,OAAO/0E,EAAE,QAAQ,EAAE,EAAGA,CACvB,CACD,oBAAoB,EAAG,CACrB,MAAO,CAAE,MAAO,EAAE,MAAM,MAAO,EAAE,aAAc,EAAE,aAAa,MAAO,EAAE,mBAAoB,EAAE,mBAAoB,cAAe,EAAE,cACnI,CACH,EACAg1E,GAAA,KAAS,CAMP,YAAY,EAAG,EAAG,CAChB,KAAK,OAAS,EAAG,KAAK,SAAW,EAAG,KAAK,aAAe,GAAI,KAAK,SAAW,CAAE,GAAG,IAAIP,GAAM,GAAG,KAAK,SACpG,CAKD,SAAU,CACR,OAAO,KAAK,aAAe,GAAI,CAC7B,OAAQ,KAAK,OACnB,CACG,CACD,YAAY,EAAG,EAAG,EAAG,EAAG,CACtB,MAAMz0E,EAAI2P,EAAE,QAAQ,CAAC,EACrB3P,EAAE,SAAS,CAAC,EAAE,gBAAgB,CAAC,EAC/B,MAAMC,EAAI0P,EAAE,QAAQ,CAAC,EACrB,GAAI,CAACslE,GAAG,qBAAqB,EAAG,EAAGj1E,EAAGC,EAAG,EAAE,aAAa,EACtD,MAAO,GACT,MAAMsC,EAAIiN,EAAE,SAAS,EAAGvP,CAAC,EACzB,GAAIsC,EAAI,KAAK,SAAS,OACpB,MAAO,GACT,MAAMD,EAAI,KAAK,SAAS,UAAY,EAAI,KAAK,SAAS,SAAW,KAAK,SAAS,UAAY,EAAIC,EAAI,KAAK,SAAS,QACjH,OAAOvC,EAAE,aAAasC,CAAC,EAAG,EAAE,MAAM,SAAStC,CAAC,EAAG,EAAE,aAAa,SAASC,CAAC,EAAG,EAAE,mBAAqBsC,EAAG,EACtG,CASD,eAAe,EAAG,EAAG,EAAG,EAAG,CACzB,GAAI0yE,GAAG,iBAAiB,EAAG,CAAC,EAC1B,MAAO,GACT,MAAMj1E,EAAI,EAAE,cAAeC,EAAI,EAAE,qBAAqB,CAAC,EACvD,OAAO,EAAE,cAAgB,EAAG,KAAK,YAAYD,EAAGC,EAAG,EAAG,CAAC,CACxD,CAQD,mBAAmB,EAAG,EAAG,EAAG,CAC1B,GAAI,EAAE,OAAS,GAAK,EAAE,OAAO,aAAc,IAAK,QAAU,EAAE,OAAO,aAAc,IAAK,gBACpF,MAAO,GACT,MAAM,EAAI,EAAE,OACZ,GAAI,CAAC,KAAK,sBAAsB,EAAG,EAAG,KAAK,SAAS,MAAM,EACxD,MAAO,GACT,MAAMD,EAAI,EAAE,kBACZ,OAAO,KAAK,YAAY,EAAGA,EAAG,EAAG,CAAC,EAAG,EACtC,CAKD,iCAAiC,EAAG,CAClC,KAAK,SAAS,2BAA6B,KAAK,SAAS,0BAA0B,CAAC,CACrF,CAKD,8BAA8B,EAAG,CAC/B,KAAK,SAAS,wBAA0B,KAAK,SAAS,uBAAuB,CAAC,CAC/E,CAKD,QAAQ,EAAI,GAAI,CACd,KAAK,UAAY,EAAI,KAAK,QAAQ,QAAO,EAAK,WAAW,IAAM,CAC7D,KAAK,cAAgB,KAAK,QAAQ,QAAO,CAC/C,EAAO,CAAC,EACL,CAED,gBAAiB,CACf,KAAK,UAAY,KAAK,QAAUk+B,GAAG,6BAA8B,KAAK,SAAS,OAAQ,KAAK,MAAM,EAAG,KAAK,QAAQ,UAAY,GAC/H,CACD,sBAAsB,EAAG,EAAG,EAAG,CAC7B,OAAO,KAAK,eAAc,EAAI,KAAK,QAAQ,SAAW,EAAG,KAAK,QAAQ,QAAQ,OAAO,EAAI,CAAC,EAAG,KAAK,QAAQ,oBAAqB,EAAE,KAAK,QAAQ,mBAAmB,EAAE,EAAG,KAAK,QAAQ,eAAe,EAAG,EAAE,CACxM,CACH,EACAg3C,IAAA,KAAS,CAQP,YAAY,EAAG,EAAG,EAAG,EAAG,CACtB,KAAK,eAAiB,EAAG,KAAK,OAAS,EAAG,KAAK,QAAU,EAAG,KAAK,SAAW,EAAG,KAAK,aAAe,GAAI,KAAK,SAAW,CAAE,GAAG,IAAIT,GAAM,GAAG,KAAK,QAAQ,EAAI,KAAK,cAAgB,IAAM,KAAK,MAAK,EAAI,KAAK,SAAS,SAAW,KAAK,SAAS,SAAW,EACtP,CAKD,SAAU,CACR,OAAO,KAAK,aAAe,GAAI,CAC7B,OAAQ,KAAK,OACnB,CACG,CAID,QAAS,CACP,KAAK,cAAc,KAAK,IAAI,EAAG,KAAK,OAAO,qBAAqB,KAAK,aAAa,CACnF,CAID,SAAU,CACR,KAAK,OAAO,uBAAuB,KAAK,aAAa,CACtD,CAKD,QAAQ,EAAI,GAAI,CACd,KAAK,UAAY,EAAI,KAAK,QAAQ,QAAO,EAAK,WAAW,IAAM,CAC7D,KAAK,cAAgB,KAAK,QAAQ,QAAO,CAC/C,EAAO,CAAC,EACL,CACD,OAAQ,CACN,IAAI,EACJ,GAAI,KAAK,QACP,KAAK,eAAe,0BAA0B,KAAK,QAAS,KAAK,QAAQ,MACtE,CACH,MAAM,EAAI,KAAK,eAAe,0BAA0B,KAAK,QAAS,KAAK,QAAQ,EACnF,IAAM,KAAK,SAAW,EAAI,EAAE,QAAS,EAAC,SAAW,KAAO,OAAS,EAAE,MAAM,iCAAiC,EAC3G,CACF,CACH,EACAU,IAAA,MAAMN,GAAG,CAOP,YAAY,EAAG,EAAG,EAAG,CACnB,KAAK,OAAS,EAAG,KAAK,QAAU,EAAG,KAAK,SAAW,EAAG,KAAK,WAAarlE,EAAE,KAAI,EAAI,KAAK,iBAAmBA,EAAE,KAAI,EAAI,KAAK,kBAAoBA,EAAE,KAAI,EAAI,KAAK,aAAe,GAAI,KAAK,eAAiB,KAAK,OAAO,mBAAoB,KAAK,SAAW,CAAE,GAAG,IAAIolE,GAAM,GAAG,KAAK,QAAQ,EAAI,KAAK,QAAQ,SAAS,IAAIplE,EAAE,EAAG,KAAK,SAAS,OAAS,EAAG,CAAC,EAAG,KAAK,iBAAiB,EAAG,KAAK,QAAQ,SAAS,IAAIA,EAAE,EAAG,KAAK,SAAS,OAAQ,CAAC,EAAG,KAAK,UAAU,EAAG,KAAK,SAAS,cAAgB,IAAM,KAAK,iBAAmB,KAAK,QAAQ,SAAS,KAAK,UAAU,EAAE,UAAS,GAAK,KAAK,cAAgB,IAAM,KAAK,MAAO,EAAE,KAAK,eAAe,iBAAgB,IAAO,GAAK,KAAK,kBACzoB,CAKD,SAAU,CACR,OAAO,KAAK,aAAe,GAAI,CAC7B,SAAU,KAAK,SACrB,CACG,CAID,QAAS,CACP,KAAK,cAAc,KAAK,IAAI,EAAG,KAAK,OAAO,qBAAqB,KAAK,aAAa,CACnF,CAID,SAAU,CACR,KAAK,OAAO,uBAAuB,KAAK,aAAa,CACtD,CAKD,QAAQ,EAAI,GAAI,CACd,KAAK,YAAc,GAAK,KAAK,UAAU,UAAW,KAAK,UAAY,QAAU,WAAW,IAAM,CAC5F,CAAC,KAAK,cAAgB,KAAK,YAAc,KAAK,UAAU,QAAS,EAAE,KAAK,UAAY,OAC1F,EAAO,CAAC,EACL,CACD,YAAY,EAAG,EAAG,CAChB,IAAI,EACJ,KAAK,SAAS,cAAgB,EAAI,EAAI,KAAK,iBAAmB,EAAI,EAAE,SAAS,KAAK,UAAU,EAC5F,MAAM,EAAIA,EAAE,SAAS,KAAK,QAAS,CAAC,EAAGxP,EAAI,KAAK,SAAS,SAAW,GAAIC,EAAI,EAAE,iBAAiBD,EAAGA,EAAGA,CAAC,EACtG,EAAE,MAAM,SAASC,CAAC,EAAG,EAAE,aAAa,SAAS,CAAC,EAAG,EAAE,mBAAqB,CACzE,CACD,gBAAgB,EAAG,EAAG,EAAG,CACvB,GAAIg1E,GAAG,iBAAiB,CAAC,EACvB,MAAO,GACT,MAAM,EAAI,EAAE,qBAAqB,CAAC,EAClC,OAAOA,GAAG,iBAAiB,EAAG,KAAK,QAAS,KAAK,SAAS,OAAQ,KAAK,SAAS,MAAM,GAAK,EAAE,cAAgB,EAAG,KAAK,YAAY,EAAG,CAAC,EAAG,IAAM,EAC/I,CACD,oBAAoB,EAAG,EAAG,CACxB,GAAI,EAAE,OAAS,EACb,MAAO,GACT,MAAM,EAAI,EAAE,OACZ,GAAI,CAAC,KAAK,wBAAwB,CAAC,EACjC,MAAO,GACT,MAAM,EAAI,EAAE,kBACZ,OAAO,KAAK,YAAY,EAAG,CAAC,EAAG,EAChC,CACD,OAAQ,CACN,MAAM,EAAIJ,IAAG,SACb,KAAK,eAAe,iBAAkB,IAAK,EAAI,KAAK,eAAe,aAAc,EAAC,QAAS,GAAM,CAC/F,KAAK,oBAAoB,EAAG,CAAC,GAAK,EAAE,WAAW,EAAE,MAAO,EAAE,YAAY,CAC5E,CAAK,EAAI,KAAK,eAAe,UAAS,EAAG,QAAS,GAAM,CAClD,EAAE,wBAAwB,CAAC,EAAG,IAAM,CAClC,KAAK,gBAAgB,EAAG,EAAG,CAAC,GAAK,EAAE,WAAW,EAAE,MAAO,EAAE,aAAc,EAAE,aAAa,CAC9F,CAAO,CACP,CAAK,CACF,CAED,kBAAmB,CACjB,KAAK,YAAc,KAAK,UAAYx2C,GAAG,uBAAwB,CAC7D,OAAQ,KAAK,SAAS,OACtB,SAAU,KAAK,SAAS,OAAS,CACvC,EAAO,KAAK,MAAM,EAAG,KAAK,UAAU,UAAY,GAC7C,CACD,wBAAwB,EAAG,CACzB,OAAO,KAAK,WAAa,KAAK,UAAU,SAAW,KAAK,kBAAmB,KAAK,UAAU,eAAe,EAAG,EAAE,GAAK,EACpH,CACH,EACAw2C,IAAG,SAAW,CAAE,MAAO,IAAIrlE,EAAK,aAAc,IAAIA,EAAK,mBAAoB,GAC3E,IAAA4lE,GAAA,MAAML,EAAG,CAOP,YAAY,EAAG,EAAG,EAAG,CACnB,KAAK,OAAS,EAAG,KAAK,QAAU,EAAG,KAAK,SAAW,EAAG,KAAK,WAAavlE,EAAE,KAAM,EAAE,KAAK,kBAAoBA,EAAE,KAAI,EAAI,KAAK,aAAe,GAAI,KAAK,eAAiB,KAAK,OAAO,iBAAgB,EAAI,KAAK,SAAW,CAAE,GAAG,IAAIslE,GAAM,GAAG,KAAK,QAAQ,EAAI,KAAK,QAAQ,SAAS,IAAItlE,EAAE,EAAG,KAAK,SAAS,OAAS,EAAG,CAAC,EAAG,KAAK,iBAAiB,EAAG,KAAK,QAAQ,SAAS,IAAIA,EAAE,EAAG,KAAK,SAAS,OAAQ,CAAC,EAAG,KAAK,UAAU,EAAG,KAAK,cAAgB,IAAM,KAAK,MAAO,EAAE,KAAK,eAAe,iBAAkB,IAAK,GAAK,KAAK,kBACtf,CAKD,SAAU,CACR,OAAO,KAAK,aAAe,GAAI,CAC7B,SAAU,KAAK,SACrB,CACG,CAID,QAAS,CACP,KAAK,cAAc,KAAK,IAAI,EAAG,KAAK,OAAO,qBAAqB,KAAK,aAAa,CACnF,CAID,SAAU,CACR,KAAK,OAAO,uBAAuB,KAAK,aAAa,CACtD,CAKD,QAAQ,EAAI,GAAI,CACd,KAAK,YAAc,EAAI,KAAK,UAAU,QAAO,EAAK,WAAW,IAAM,CACjE,KAAK,cAAgB,KAAK,UAAU,QAAO,CACjD,EAAO,CAAC,EACL,CACD,YAAY,EAAG,EAAG,EAAG,CACnB,MAAM,EAAIulE,GAAG,eACb,EAAE,IAAI,KAAK,QAAQ,EAAG,EAAE,EAAG,KAAK,QAAQ,CAAC,EACzC,MAAM/0E,EAAI2P,EAAE,QAAQ,CAAC,EACrB,EAAE,cAAc,EAAG3P,CAAC,EACpB,MAAMC,EAAI0P,EAAE,QAAQ,CAAC,EACrB,GAAI,CAACslE,GAAG,qBAAqB,EAAG,EAAGj1E,EAAGC,EAAG,EAAE,aAAa,EACtD,MAAO,GACT,MAAMqC,EAAIkN,EAAE,SAASvP,EAAG,CAAC,EAAI,KAAK,SAAS,OAAQiJ,EAAIyG,EAAE,QAAQ,CAAC,EAClE1P,EAAE,eAAeiJ,CAAC,EAAG5G,EAAI,KAAK,SAAS,2BAA6B4G,EAAE,gBACtE,IAAIpI,EAAGF,EAAGC,EACV,GAAIyB,EAAI,KAAK,SAAS,0BACpBxB,EAAIoI,EAAE,EAAI,KAAK,SAAS,2BAA4BtI,EAAIsI,EAAE,EAAI,KAAK,SAAS,uBAAwBrI,EAAIqI,EAAE,EAAI,KAAK,SAAS,+BACzH,CACH,MAAMjD,EAAIuJ,EAAE,MAAM,EAAG,CAAC,EAAE,YACxB1O,GAAKmF,EAAE,EAAIiD,EAAE,GAAK,KAAK,SAAS,2BAA4BtI,EAAI,KAAK,WAAW,EAAI,KAAK,SAAS,uBAAwBC,GAAKoF,EAAE,EAAIiD,EAAE,GAAK,KAAK,SAAS,0BAC3J,CACD,MAAMlD,EAAI2J,EAAE,QAAQ,CAAC,EACrB,OAAO3J,EAAE,IAAIlF,EAAGF,EAAGC,CAAC,EAAGmF,EAAE,aAAa,KAAK,SAAS,QAAQ,EAAG,EAAE,MAAM,SAASA,CAAC,EAAG,EAAE,aAAa,SAAS,CAAC,EAAG,EAAE,mBAAqB1D,EAAG,EAC3I,CACD,gBAAgB,EAAG,EAAG,EAAG,CACvB,GAAI2yE,GAAG,iBAAiB,EAAG,CAAC,EAC1B,MAAO,GACT,MAAM,EAAI,EAAE,cAAej1E,EAAI,EAAE,qBAAqB,CAAC,EACvD,OAAOi1E,GAAG,iBAAiBj1E,EAAG,KAAK,QAAS,KAAK,SAAS,OAAQ,KAAK,SAAS,MAAM,GAAK,EAAE,cAAgB,EAAG,KAAK,YAAY,EAAGA,EAAG,CAAC,GAAK,EAC9I,CACD,oBAAoB,EAAG,EAAG,CACxB,GAAI,EAAE,OAAS,GAAK,EAAE,OAAO,aAAc,IAAK,QAAU,EAAE,OAAO,aAAc,IAAK,gBACpF,MAAO,GACT,MAAM,EAAI,EAAE,OACZ,GAAI,CAAC,KAAK,wBAAwB,CAAC,EACjC,MAAO,GACT,MAAM,EAAI,EAAE,kBACZ,OAAO,KAAK,YAAY,EAAG,EAAG,CAAC,EAAG,EACnC,CACD,OAAQ,CACN,MAAM,EAAI+0E,GAAG,SACb,KAAK,eAAe,iBAAkB,IAAK,EAAI,KAAK,eAAe,aAAc,EAAC,QAAS,GAAM,CAC/F,KAAK,oBAAoB,EAAG,CAAC,GAAK,EAAE,WAAW,EAAE,MAAO,EAAE,YAAY,CAC5E,CAAK,EAAI,KAAK,eAAe,UAAS,EAAG,QAAS,GAAM,CAClD,EAAE,wBAAwB,CAAC,EAAG,IAAM,CAClC,KAAK,gBAAgB,EAAG,EAAG,CAAC,GAAK,EAAE,WAAW,EAAE,MAAO,EAAE,aAAc,EAAE,aAAa,CAC9F,CAAO,CACP,CAAK,CACF,CAED,kBAAmB,CACjB,KAAK,YAAc,KAAK,UAAY12C,GAAG,sBAAuB,CAC5D,OAAQ,KAAK,SAAS,OACtB,SAAU,KAAK,SAAS,OAAS,CACvC,EAAO,KAAK,MAAM,EAAG,KAAK,UAAU,UAAY,GAC7C,CACD,wBAAwB,EAAG,CACzB,OAAO,KAAK,UAAU,SAAW,KAAK,kBAAmB,KAAK,UAAU,eAAe,EAAG,EAAE,CAC7F,CACH,EACA02C,GAAG,eAAiBvlE,EAAE,OACtBulE,GAAG,SAAW,CAAE,MAAO,IAAIvlE,EAAK,aAAc,IAAIA,EAAK,mBAAoB,GAC3E,IAAA6lE,GAAA,KAAS,CACP,aAAc,CACZ,KAAK,OAAS,EAAG,KAAK,SAAW,GAAI,KAAK,QAAU,EAAG,KAAK,OAAS,CAAE,SAAU,GAAI,SAAU,EAChG,CACH,EACAC,GAAA,KAAS,CACP,aAAc,CACZ,KAAK,OAAS,EAAG,KAAK,SAAW,GAAI,KAAK,OAAS,GAAI,KAAK,YAAc,CAC3E,CACH,EACAC,GAAA,KAAS,CACP,aAAc,CACZ,KAAK,OAAS,EAAG,KAAK,SAAW,GAAI,KAAK,OAAS,GAAI,KAAK,0BAA4B,GAAK,KAAK,2BAA6B,EAAG,KAAK,2BAA6B,GAAK,KAAK,uBAAyB,GACxM,CACH,EACG,IAACC,IACH,SAASn1E,EAAG,CACXA,EAAEA,EAAE,SAAW,CAAC,EAAI,WAAYA,EAAEA,EAAE,OAAS,CAAC,EAAI,QACpD,GAAGm1E,KAAOA,GAAK,CAAE,EAAC,EACf,IAACC,IACH,SAASp1E,EAAG,CACXA,EAAEA,EAAE,OAAS,CAAC,EAAI,SAAUA,EAAEA,EAAE,cAAgB,CAAC,EAAI,eACvD,GAAGo1E,KAAOA,GAAK,CAAE,EAAC,EAClB,MAAMC,IAAK,2BAA4BC,IAAK;AAAA;AAAA;AAAA;AAAA,sHAK5CnyE,GAAE,aAAakyE,GAAE,EAAIC,WACrB,MAAMC,YAAWzwD,EAAG,CAKlB,cAAe,CACb,MAAO,0BACR,CAWD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,CAC5B,MAAM,EAAG,gBAAiB,CAAC,QAAQ,EAAG,KAAM,EAAG,EAAG,EAAGD,EAAGC,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,kBAAkB,IAAK,GAAM,CAC7G,EAAE,SAAS,SAAU,KAAK,MAAM,CACtC,CAAK,CACF,CAID,OAAO,OAAO,EAAG,EAAG,EAAG,EAAG,CACxB,OAAOqT,GAAG,MAAM,IAAM,IAAIsiE,IAAG,EAAE,KAAM,EAAE,QAAS,EAAG,EAAE,yBAA0B,EAAE,UAAS,EAAI,EAAE,QAAQ,EAAG,EAAG,EAAG,CAAC,CACnH,CACH,EACAxkE,EAAE,CACAQ,EAAG,CACL,EAAGgkE,GAAG,UAAW,SAAU,MAAM,EACjCvoE,GAAE,mCAAoCuoE,EAAE,EACxC,IAAAC,GAAA,KAAS,CASP,YAAY,EAAG,EAAG,EAAG,EAAG,CACtB,KAAK,MAAQ,EAAG,KAAK,gBAAkB,GAAK,GAAI,KAAK,kBAAoB,EAAG,KAAK,SAAW,GAAI,KAAK,kBAAoB,GAAI,KAAK,eAAiB,EACpJ,CAID,IAAI,aAAc,CAChB,UAAW,KAAK,KAAK,eACnB,GAAI,OAAO,UAAU,eAAe,KAAK,KAAK,eAAgB,CAAC,EAAG,CAChE,MAAM,EAAI,KAAK,eAAe,CAAC,EAC/B,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,GAAI,CAAC,EAAE,CAAC,EAAE,YACR,MAAO,EACZ,CACH,MAAO,EACR,CAKD,SAAU,CACT,CAMD,eAAe,EAAG,CAChB,IAAI,EACJ,MAAM,EAAIjoE,GAAE,UAAU,GAAK,KAAK,QAAQ,EACxC,GAAI,EACF,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,CACjC,MAAM5N,EAAI,EAAE,CAAC,EACb,GAAI,CAACA,EACH,SACF,MAAMC,EAAID,EAAE,KACZ,GAAI,KAAK,gBAAkB,EAAI,EAAI,EAAIC,EAAG,CAAC,KAAK,eAAe,CAAC,EAAG,CACjE,MAAM,EAAI,KAAK,oBACf,IAAM,KAAK,eAAe,CAAC,EAAI,MAAM,QAAQ,CAAC,EAAI,EAAI,CAAC,CAAC,EACzD,CACD,KAAK,kBAAkBA,CAAC,IAAM,KAAK,kBAAkBA,CAAC,EAAI,CAAE,GAAG,KAAK,eAAe,CAAC,EAAE,QAAS,GAAM,CACnG,MAAM,EAAID,EAAE,kBAAkB,CAAC,EAC/B,KAAK,kBAAkBC,CAAC,EAAE,KAAK,CAAC,CAC1C,CAAS,EAAG,KAAK,SAASA,CAAC,IAAM,KAAK,SAASA,CAAC,EAAID,EAC7C,CACJ,CAMD,eAAe,EAAG,CAChB,MAAM,EAAI4N,GAAE,UAAU,GAAK,KAAK,QAAQ,EACxC,GAAI,EACF,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,CACjC,MAAM,EAAI,EAAE,CAAC,EAAG5N,EAAI,EAAE,KAAMC,EAAI,KAAK,eAAe,KAAK,gBAAkB,EAAID,CAAC,EAChFC,GAAKA,EAAE,QAAS,GAAM,CACpB,EAAE,kBAAkB,CAAC,CACtB,GAAG,KAAK,SAASD,CAAC,IAAM,KAAK,SAASA,CAAC,EAAI,MAAO,OAAO,KAAK,kBAAkBA,CAAC,CACnF,CACJ,CAMD,QAAQ,EAAG,CACT,MAAM,EAAI4N,GAAE,UAAU,GAAK,KAAK,QAAQ,EACxC,GAAI,EACF,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,CACjC,MAAM,EAAI,EAAE,CAAC,EAAG5N,EAAI,EAAE,KAAMC,EAAI,KAAK,gBAAkB,EAAID,EAC3D,QAAS,EAAI,EAAG,EAAI,KAAK,kBAAkBA,CAAC,EAAE,OAAQ,IAAK,CACzD,MAAM,EAAI,KAAK,kBAAkBA,CAAC,EAAE,CAAC,EAAO,EAAE,eAAe,CAAC,GACzD,MAAQ,EAAE,CAAC,EAAE,kBAAkB,KAAK,eAAeC,CAAC,EAAE,CAAC,EAAG,CAAC,CACjE,CACF,CACJ,CAMD,SAAS,EAAG,CACV,MAAM,EAAI2N,GAAE,UAAU,GAAK,KAAK,QAAQ,EACxC,GAAI,EACF,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,CACjC,MAAM,EAAI,EAAE,CAAC,EAAG5N,EAAI,EAAE,KACtB,KAAK,eAAe,KAAK,gBAAkB,EAAIA,CAAC,EAAE,QAASC,GAAM,CAC/D,EAAE,kBAAkBA,CAAC,CAC/B,CAAS,CACF,CACJ,CAMD,iBAAiB,EAAG,CAClB,OAAO,KAAK,gBAAkB,KAAK,eAAe,CAAC,EAAI,EAAI,KAAK,eAAe,EAAE,IAAI,EAAI,IAC1F,CACH,EACA,MAAM61E,IAAK,+BAAgCC,IAAK;AAAA;AAAA;AAAA;AAAA,sKAKhDvyE,GAAE,aAAasyE,GAAE,EAAIC,WACrB,cAAiB5wD,EAAG,CAKlB,cAAe,CACb,MAAO,8BACR,CACD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,EAAI,EAAG,EAAI,GAAI,CAC3C,MAAM,EAAG,oBAAqB,CAAC,YAAa,UAAU,EAAG,KAAM,EAAG,EAAG,EAAGD,EAAGC,EAAG,KAAM,EAAG,OAAQ,KAAM,CAAC,EAAG,KAAK,UAAY,GAAK,KAAK,UAAY,EAAG,KAAK,kBAAoB,KAAM,KAAK,kBAAkB,IAAK,GAAM,CAClN,KAAK,8BAAgC,CAAC,CAAC,KAAK,kBAAmB,KAAK,mBAAqB,EAAE,0BAA0B,iBAAkB,KAAK,iBAAiB,EAAG,EAAE,SAAS,YAAa,KAAK,IAAI,KAAK,UAAWsO,EAAE,CAAC,EAAG,EAAE,SAAS,WAAY,KAAK,SAAS,CAClQ,CAAK,CACF,CACH,EACA6C,EAAE,CACAQ,EAAG,CACL,EAAGokE,GAAG,UAAW,YAAa,MAAM,EACpC3oE,GAAE,uCAAwC2oE,EAAE,EAC5C,MAAMC,IAAK,wBAAyBC,IAAK;AAAA;AAAA;AAAA;AAAA,EAKzC1yE,GAAE,aAAayyE,GAAE,EAAIC,WACrB,cAAiB/wD,EAAG,CAKlB,cAAe,CACb,MAAO,uBACR,CAeD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,EAAG,EAAG,EAAG,EAAI,EAAG,EAAI,GAAI,CACpD,MAAM,EAAG,aAAc,CAAC,aAAa,EAAG,CAAC,WAAW,EAAGD,EAAGC,EAAG,EAAG,EAAG,EAAG,KAAM,EAAG,OAAQ,KAAM,EAAE,EAAG,KAAK,OAAS,EAAG,KAAK,OAAS,EAAG,KAAK,8BAAgC,GAAI,KAAK,kBAAkB,IAAK,GAAM,CAC7M,EAAE,0BAA0B,iBAAkB,CAAC,EAAG,EAAE,gCAAgC,YAAa,CAAC,EAAG,EAAE,SAAS,cAAe,KAAK,MAAM,CAC3I,GAAG,GAAK,KAAK,cACf,CACH,EACAmR,EAAE,CACAQ,EAAG,CACL,EAAGukE,GAAG,UAAW,SAAU,MAAM,EACjC9oE,GAAE,gCAAiC8oE,EAAE,SACrC,cAAiBC,EAAG,CAIlB,IAAI,WAAY,CACd,OAAO,KAAK,WAAW,SACxB,CACD,IAAI,UAAU,EAAG,CACf,KAAK,WAAW,UAAY,CAC7B,CAID,IAAI,QAAS,CACX,OAAO,KAAK,OAAO,MACpB,CACD,IAAI,OAAO,EAAG,CACZ,KAAK,OAAO,OAAS,CACtB,CAID,IAAI,QAAS,CACX,OAAO,KAAK,OAAO,OAAS,KAAK,WAClC,CACD,IAAI,OAAO,EAAG,CACZ,KAAK,OAAO,OAAS,EAAI,KAAK,YAAa,KAAK,OAAO,OAAS,EAAI,KAAK,WAC1E,CAUD,YAAY,EAAG,EAAG,EAAG,EAAGp2E,EAAI,EAAGC,EAAI,GAAI,CACrC,MAAM,EAAE,UAAS,EAAI,QAAS,IAAM,KAAK,SAAU,EAAE,EAAG,KAAK,YAAc,EAAG,KAAK,SAAW,GAAI,KAAK,WAAa,IAAI+1E,GAAG,aAAc,EAAG,KAAMlyD,GAAE,sBAAuB,EAAE,UAAW,EAAE,GAAI9jB,EAAGC,CAAC,EAAG,KAAK,OAAS,IAAI4hD,GAAG,kBAAmB,IAAItyC,GAAE,EAAG,CAAC,EAAG,GAAI,EAAG,KAAMuU,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI9jB,EAAG,OAAQC,CAAC,EAAG,KAAK,OAAO,eAAiB,GAAI,KAAK,OAAO,UAAY,GAAI,KAAK,OAAS,IAAI4hD,GAAG,gBAAiB,IAAItyC,GAAE,EAAG,CAAC,EAAG,GAAI,EAAG,KAAMuU,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI9jB,EAAG,OAAQC,CAAC,EAAG,KAAK,OAAO,eAAiB,GAAI,KAAK,OAAO,UAAY,GAAI,KAAK,OAAS,EAAG,KAAK,SAAW,CAAC,KAAK,WAAY,KAAK,OAAQ,KAAK,MAAM,EAAG,KAAK,OAAS,IAAIk2E,GAAG,aAAc,KAAK,WAAY,KAAK,OAAQ,EAAG,EAAG,KAAMryD,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI9jB,EAAGC,CAAC,EAAG,KAAK,OAAO,UAAY,GAAI,KAAK,SAAS,KAAK,KAAK,MAAM,CACh0B,CAKD,eAAe,EAAG,CAChB,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IACxC,KAAK,SAAS,CAAC,EAAE,QAAQ,CAAC,CAC7B,CAID,gBAAiB,CACf,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IACxC,KAAK,SAAS,CAAC,EAAE,aAAY,CAChC,CAMD,UAAW,CACT,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IACxC,GAAI,CAAC,KAAK,SAAS,CAAC,EAAE,QAAS,EAC7B,MAAO,GACX,MAAO,EACR,CACH,EACA,MAAMo2E,IAAK,iCAAkCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,s7BAOlD9yE,GAAE,aAAa6yE,GAAE,EAAIC,WACrB,MAAMC,YAAWpxD,EAAG,CAKlB,cAAe,CACb,MAAO,gCACR,CAcD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,EAAG,EAAG,EAAI,EAAG,EAAI,GAAI,CACjD,MAAM,EAAG,sBAAuB,CAAC,uBAAwB,eAAgB,gBAAiB,YAAa,kBAAmB,gBAAgB,EAAG,CAAE,EAAE,EAAGD,EAAGC,EAAG,EAAG,EAAG,KAAM,EAAG,OAAQ,KAAM,CAAC,EAAG,KAAK,iBAAmB,GAAI,KAAK,gBAAkB,EAAG,KAAK,UAAY,IAAIsP,GAAE,KAAO,IAAK,EAAG,KAAK,eAAiB,IAAIA,GAAE,GAAK,EAAG,EAAG,KAAK,YAAc,EAAG,KAAK,aAAe,EAAG,KAAK,kBAAkB,IAAK,GAAM,CAC3Y,EAAE,SAAS,uBAAwB,KAAK,gBAAgB,EAAG,EAAE,SAAS,eAAgB,CAAC,EAAG,EAAE,SAAS,gBAAiB,CAAC,EAAG,EAAE,SAAS,kBAAmB,KAAK,eAAe,EAAG,EAAE,UAAU,YAAa,KAAK,UAAU,EAAG,KAAK,UAAU,CAAC,EAAG,EAAE,UAAU,iBAAkB,KAAK,eAAe,EAAG,KAAK,eAAe,CAAC,CAC7T,CAAK,CACF,CAID,OAAO,OAAO,EAAG,EAAG,EAAG,EAAG,CACxB,OAAO+D,GAAG,MAAM,IAAM,IAAIijE,IAAG,EAAE,KAAM,EAAE,YAAa,EAAE,aAAc,EAAE,QAAS,EAAG,EAAE,yBAA0B,EAAE,YAAa,EAAE,SAAU,EAAE,YAAa,EAAE,EAAG,EAAG,EAAG,CAAC,CACrK,CACH,EACAnlE,EAAE,CACAQ,EAAG,CACL,EAAG2kE,GAAG,UAAW,mBAAoB,MAAM,EAC3CnlE,EAAE,CACAQ,EAAG,CACL,EAAG2kE,GAAG,UAAW,kBAAmB,MAAM,EAC1CnlE,EAAE,CACAQ,EAAG,CACL,EAAG2kE,GAAG,UAAW,YAAa,MAAM,EACpCnlE,EAAE,CACAQ,EAAG,CACL,EAAG2kE,GAAG,UAAW,iBAAkB,MAAM,EACzCnlE,EAAE,CACAQ,EAAG,CACL,EAAG2kE,GAAG,UAAW,cAAe,MAAM,EACtCnlE,EAAE,CACAQ,EAAG,CACL,EAAG2kE,GAAG,UAAW,eAAgB,MAAM,EACvClpE,GAAE,yCAA0CkpE,EAAE,EAC9C,MAAMC,IAAK,+BAAgCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShDjzE,GAAE,aAAagzE,GAAE,EAAIC,WACrB,cAAiBtxD,EAAG,CAKlB,cAAe,CACb,MAAO,8BACR,CAaD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,EAAG,EAAI,EAAG,EAAI,GAAI,CAC9C,MAAM,EAAG,oBAAqB,CAAC,gBAAiB,gBAAiB,mBAAmB,EAAG,CAAC,cAAc,EAAG,EAAG,EAAGD,EAAGC,EAAG,EAAG,KAAM,EAAG,OAAQ,KAAM,CAAC,EAAG,KAAK,SAAW,GAAI,KAAK,MAAQ,IAAK,KAAK,cAAgB,IAAK,KAAK,YAAc,GAAI,KAAK,cAAgB,KAAM,KAAK,cAAgB,EAAG,KAAK,kBAAkB,IAAK,GAAM,CAC7T,GAAI,CAAC,KAAK,cAAe,CACvB2C,EAAE,KAAK,sDAAsD,EAC7D,MACD,CACD,EAAE,WAAW,eAAgB,KAAK,aAAa,EAC/C,MAAMhC,EAAI,KAAK,SAAW,KAAK,MAAQ,KAAK,aAAe,KAAK,cAAgB,KAAK,aACrF,EAAE,SAAS,gBAAiB,KAAK,aAAa,EAAG,EAAE,SAAS,oBAAqBA,CAAC,EAClF,MAAMC,EAAI,KAAK,cAAc,aAC7B,EAAE,UAAU,gBAAiBA,EAAE,KAAMA,EAAE,KAAOA,EAAE,IAAI,CAC1D,CAAK,CACF,CAID,IAAI,aAAa,EAAG,CAClB,KAAK,cAAgB,CACtB,CACH,EACAuQ,EAAE,CACAQ,EAAG,CACL,EAAG8kE,GAAG,UAAW,WAAY,MAAM,EACnCtlE,EAAE,CACAQ,EAAG,CACL,EAAG8kE,GAAG,UAAW,QAAS,MAAM,EAChCtlE,EAAE,CACAQ,EAAG,CACL,EAAG8kE,GAAG,UAAW,gBAAiB,MAAM,EACxCtlE,EAAE,CACAQ,EAAG,CACL,EAAG8kE,GAAG,UAAW,cAAe,MAAM,EACtCrpE,GAAE,uCAAwCqpE,EAAE,EAC5C,MAAMC,IAAK,6BAA8BC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4HAU9CpzE,GAAE,aAAamzE,GAAE,EAAIC,WACrB,MAAMC,YAAW1xD,EAAG,CAKlB,cAAe,CACb,MAAO,4BACR,CACD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,EAAG,CAC/B,MAAM,EAAG,kBAAmB,KAAM,CAAC,YAAY,EAAG,EAAG,EAAGD,EAAGC,EAAG,CAAC,EAC/D,MAAM,EAA0B,GAAE,SAAU,GAAK,KACjD,KAAK,mBAAqB,IAAI6jB,GAAE,EAAG,EAAG,GAAI,GAAIA,GAAE,sBAAsB,EAAG,KAAK,mBAAmB,0BAA4B,EAAG,KAAK,mBAAmB,MAAQA,GAAE,kBAAmB,KAAK,mBAAmB,MAAQA,GAAE,kBAAmB,KAAK,cAAgB,EAAG,KAAK,QAAW,GAAM,CACtR,EAAE,WAAW,aAAc,KAAK,kBAAkB,CACxD,CACG,CAID,OAAO,OAAO,EAAG,EAAG,EAAG,EAAG,CACxB,OAAOxQ,GAAG,MAAM,IAAM,IAAIujE,IAAG,EAAE,KAAM,EAAE,cAAe,EAAE,QAAS,EAAG,EAAE,yBAA0B,EAAE,YAAa,EAAE,QAAQ,EAAG,EAAG,EAAG,CAAC,CACpI,CACH,EACAzlE,EAAE,CACAQ,EAAG,CACL,EAAGilE,GAAG,UAAW,gBAAiB,MAAM,EACxCxpE,GAAE,qCAAsCwpE,EAAE,EAC1C,MAAMC,IAAK,yBAA0BC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oDAuB1CvzE,GAAE,aAAaszE,GAAE,EAAIC,WACrB,MAAMC,YAAW7xD,EAAG,CAKlB,cAAe,CACb,MAAO,wBACR,CAYD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,EAAG,EAAI,EAAG,CACtC,MAAM,EAAG,cAAe,CAAC,SAAU,YAAY,EAAG,KAAM,EAAG,EAAGD,EAAGC,EAAG,EAAG,KAAM,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,QAAW,GAAM,CACtH,EAAE,UAAU,aAAc,KAAK,MAAO,KAAK,MAAM,EAAG,EAAE,SAAS,SAAU,KAAK,MAAM,CAC1F,CACG,CAID,OAAO,OAAO,EAAG,EAAG,EAAG,EAAG,CACxB,OAAOqT,GAAG,MAAM,IAAM,IAAI0jE,IAAG,EAAE,KAAM,EAAE,OAAQ,EAAE,QAAS,EAAG,EAAE,yBAA0B,EAAE,UAAW,EAAE,EAAE,SAAU,EAAE,WAAW,EAAG,EAAG,EAAG,CAAC,CAC5I,CACH,EACAA,GAAG,kBAAoB,CAAC,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,CAAC,EACnDA,GAAG,kBAAoB,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,CAAC,EAClDA,GAAG,kBAAoB,CAAC,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAE,EACzDA,GAAG,cAAgB,CAAC,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,CAAC,EACjDA,GAAG,aAAe,CAAC,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,CAAC,EAC/CA,GAAG,eAAiB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC9C5lE,EAAE,CACAQ,EAAG,CACL,EAAGolE,GAAG,UAAW,SAAU,MAAM,EACjC3pE,GAAE,iCAAkC2pE,EAAE,SACtC,cAAiBn1B,EAAG,CAKlB,cAAe,CACb,MAAO,6BACR,CAkBD,YAAY,EAAG,EAAG,EAAG,EAAG7hD,EAAGC,EAAG,EAAG,EAAI,KAAM,EAAI6jB,GAAE,sBAAuB,EAAG,EAAG,EAAI,EAAGjjB,EAAI,GAAImF,EAAI,EAAG,CAClG,MACE,EACA,EACA,EACAhG,EACAC,EAEA,EAAI,EACJ,EACA,EACA,EACA;AAAA,EAEAY,EACAmF,CACD,EAAE,KAAK,UAAY,EAAG,KAAK,8BAAgC,CAAC,CAAC,EAAG,KAAK,kBAAkB,IAAKC,GAAM,CACjG,GAAK,MAAQA,EAAE,0BAA0B,iBAAkB,CAAC,EAAGA,EAAE,gCAAgC,2BAA4B,CAAC,CACpI,CAAK,CACF,CACH,EACAmL,EAAE,CACAQ,EAAG,CACL,EAAGqlE,GAAG,UAAW,YAAa,MAAM,EACpC5pE,GAAE,sCAAuC4pE,EAAE,EAC3C,MAAMC,IAAK,+BAAgCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0BhD3zE,GAAE,aAAa0zE,GAAE,EAAIC,IACrB,MAAMC,YAAWjyD,EAAG,CAKlB,cAAe,CACb,MAAO,8BACR,CAeD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,EAAG,EAAG,EAAG,EAAI,EAAG,EAAI,GAAI,CACpD,MAAM,EAAG,oBAAqB,CAAE,EAAE,CAAC,2BAA4B,YAAa,YAAa,WAAW,EAAGD,EAAGC,EAAG,EAAG,EAAG,EAAG,KAAM,EAAG,OAAQ,KAAM,EAAE,EAAG,KAAK,WAAa,EAAG,KAAK,8BAAgC,GAAI,KAAK,kBAAkB,IAAK,GAAM,CAChP,EAAE,0BAA0B,iBAAkB,CAAC,EAAG,EAAE,gCAAgC,2BAA4B,CAAC,EAAG,EAAE,QAAQ,CAACY,EAAGmF,IAAM,CACtI,EAAE,gCAAgC,YAAc,EAAE,OAASA,EAAI,GAAInF,CAAC,CAC5E,CAAO,CACF,GAAG,GAAK,KAAK,cACf,CAUD,aAAa,EAAI,KAAM,EAAI,KAAM,EAAI,KAAM,EAAGb,EAAGC,EAAG,CAClD,IAAM,EAAI,GAAI,GAAK,uBAAyB,KAAK,WAAW,OAAS,GAAK;AAAA,GAC1E,MAAM,aAAa,EAAG,EAAG,EAAG,EAAGD,EAAGC,CAAC,CACpC,CACH,CACG,IAACo3E,IACH,SAASh3E,EAAG,CACXA,EAAEA,EAAE,IAAM,CAAC,EAAI,MAAOA,EAAEA,EAAE,OAAS,CAAC,EAAI,SAAUA,EAAEA,EAAE,KAAO,CAAC,EAAI,MACpE,GAAGg3E,KAAOA,GAAK,CAAE,EAAC,SAClB,cAAiBjB,EAAG,CAIlB,IAAI,YAAY,EAAG,CACjB,KAAK,mBAAmB,YAAc,CACvC,CACD,IAAI,aAAc,CAChB,OAAO,KAAK,mBAAmB,WAChC,CAID,IAAI,MAAM,EAAG,CACX,KAAK,mBAAmB,MAAQ,CACjC,CACD,IAAI,OAAQ,CACV,OAAO,KAAK,mBAAmB,KAChC,CAID,IAAI,cAAc,EAAG,CACnB,KAAK,mBAAmB,cAAgB,CACzC,CACD,IAAI,eAAgB,CAClB,OAAO,KAAK,mBAAmB,aAChC,CAID,IAAI,SAAS,EAAG,CACd,KAAK,mBAAmB,SAAW,CACpC,CACD,IAAI,UAAW,CACb,OAAO,KAAK,mBAAmB,QAChC,CASD,YAAY,EAAG,EAAG,EAAI,EAAG,EAAI,EAAGp2E,EAAI,GAAI,CACtC,MAAM,EAAE,UAAW,EAAE,iBAAkB,IAAM,KAAK,SAAU,EAAE,EAAG,KAAK,SAAW,GACjF,MAAMC,EAAI,EAAE,UAAS,EAAI,EAAIA,EAAE,UAAYA,EAAE,QAAU,EAAI,EAAI,EAC/D,KAAK,mBAAqB,IAAIy2E,GAAG,oBAAqB,EAAG,EAAG,KAAM5yD,GAAE,sBAAuB7jB,EAAG,GAAI,EAAGD,CAAC,EAAG,KAAK,mBAAqB,GAAI,KAAK,mBAAqB,GACjK,IAAI,EAAI,EAAG,EAAI,GACf,OAAQ,EAAC,CACP,IAAK,GAAG,CACN,EAAI,EAAG,EAAI,GACX,KACD,CACD,IAAK,GAAG,CACN,EAAI,EAAG,EAAI,GACX,KACD,CACD,QAAS,CACP,EAAI,GAAI,EAAI,EACZ,KACD,CACF,CACD,MAAM,EAAI,EAAI,KAAK,IAAI,EAAG,EAAI,CAAC,EAC/B,IAAI,EAAI,EACR,QAAS,EAAI,EAAG,EAAI,EAAG,IAAK,CAC1B,MAAMa,EAAI,IAAIo2E,GAAG,gBAAiB,EAAG,IAAI1nE,GAAE,EAAG,CAAC,EAAG,EAAG,EAAG,KAAM,KAAK,mBAAoB,GAAK,EAAI,KAAK,mBAAqB,KAAMuU,GAAE,sBAAuB7jB,EAAG,GAAI,EAAGD,EAAG,GAAK,EAAI,EAAI,CAAC,EACpLa,EAAE,UAAY,GAAI,EAAI,IAAO,KAAK,IAAI,EAAG,CAAC,EAC1C,MAAMmF,EAAI,IAAIixE,GAAG,kBAAmB,EAAG,IAAI1nE,GAAE,EAAG,CAAC,EAAG,EAAG,EAAG,KAAM,KAAK,mBAAoB,KAAMuU,GAAE,sBAAuB7jB,EAAG,GAAI,EAAGD,CAAC,EACnIgG,EAAE,UAAY,GAAI,KAAK,mBAAmB,KAAKnF,CAAC,EAAG,KAAK,mBAAmB,KAAKmF,CAAC,CAClF,CACD,KAAK,SAAW,CAAC,KAAK,kBAAkB,EACxC,QAAS,EAAI,EAAG,EAAI,KAAK,mBAAmB,OAAQ,IAClD,KAAK,SAAS,KAAK,KAAK,mBAAmB,CAAC,CAAC,EAAG,KAAK,SAAS,KAAK,KAAK,mBAAmB,CAAC,CAAC,EAC/F,KAAK,UAAY,IAAIoxE,IAAG,WAAY,KAAK,mBAAoB,KAAK,mBAAoB,KAAK,mBAAoB,EAAG,KAAMtzD,GAAE,sBAAuB7jB,EAAG,GAAI,EAAGD,CAAC,EAAG,KAAK,UAAU,UAAY,GAAI,KAAK,SAAS,KAAK,KAAK,SAAS,CAChO,CAKD,cAAe,CACb,MAAO,oBACR,CAID,IAAI,aAAa,EAAG,CAClB,KAAK,mBAAmB,aAAe,CACxC,CAKD,eAAe,EAAG,CAChB,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IACxC,KAAK,SAAS,CAAC,EAAE,QAAQ,CAAC,CAC7B,CAID,gBAAiB,CACf,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IACxC,KAAK,SAAS,CAAC,EAAE,aAAY,CAChC,CAMD,UAAW,CACT,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IACxC,GAAI,CAAC,KAAK,SAAS,CAAC,EAAE,QAAS,EAC7B,MAAO,GACX,MAAO,EACR,CACH,EACA,MAAMs3E,IAAK,yBAA0BC,IAAK;AAAA;AAAA;AAAA,4CAI1C/zE,GAAE,aAAa8zE,GAAE,EAAIC,YACrB,MAAMC,YAAWryD,EAAG,CAKlB,cAAe,CACb,MAAO,wBACR,CAUD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,CAC5B,MAAM,EAAG,cAAe,CAAC,aAAa,EAAG,CAAC,aAAa,EAAG,EAAG,EAAG,EAAGD,EAAGC,CAAC,CACxE,CAID,OAAO,OAAO,EAAG,EAAG,EAAG,EAAG,CACxB,OAAOqT,GAAG,MAAM,IAAM,IAAIkkE,IAAG,EAAE,KAAM,EAAE,QAAS,EAAG,EAAE,yBAA0B,EAAE,UAAS,EAAI,EAAE,QAAQ,EAAG,EAAG,EAAG,CAAC,CACnH,CACH,EACAnqE,GAAE,iCAAkCmqE,GAAE,EACtC,MAAMC,IAAK,oBAAqBC,IAAK;AAAA;AAAA;AAAA,kJAIrCl0E,GAAE,aAAai0E,GAAE,EAAIC,WACrB,MAAMC,YAAWxyD,EAAG,CAKlB,cAAe,CACb,MAAO,mBACR,CAWD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,EAAG,CAC/B,MAAM,EAAG,SAAU,CAAC,cAAc,EAAG,KAAM,EAAG,EAAGD,EAAGC,EAAG,CAAC,EAAG,KAAK,aAAe,EAAG,KAAK,QAAW,GAAM,CACtG,EAAE,UAAU,eAAgB,KAAK,YAAY,CACnD,CACG,CAID,OAAO,OAAO,EAAG,EAAG,EAAG,EAAG,CACxB,OAAOqT,GAAG,MAAM,IAAM,IAAIqkE,IAAG,EAAE,KAAM,EAAE,aAAc,EAAE,QAAS,EAAG,EAAE,yBAA0B,EAAE,YAAa,EAAE,QAAQ,EAAG,EAAG,EAAG,CAAC,CACnI,CACH,EACAvmE,EAAE,CACAmB,GAAI,CACN,EAAGolE,GAAG,UAAW,eAAgB,MAAM,EACvCtqE,GAAE,4BAA6BsqE,EAAE,EACjC,MAAMC,IAAK,kBAAmBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAqDnCr0E,GAAE,aAAao0E,GAAE,EAAIC,IACrB,MAAMC,IAAK,mBAAoBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOpCv0E,GAAE,aAAas0E,GAAE,EAAIC,WACrB,MAAMC,YAAW7yD,EAAG,CAKlB,cAAe,CACb,MAAO,iBACR,CACD,YAAY,EAAG,EAAG,EAAI,KAAM,EAAGnlB,EAAGC,EAAG,EAAI,EAAG,CAC1C,MAAM,EAAG,OAAQ,CAAC,WAAW,EAAG,KAAM,EAAG,EAAG,GAAK6jB,GAAE,sBAAuB9jB,EAAGC,EAAG,KAAM,EAAG,OAAQ,OAAQ,EAAE,EAC3G,MAAM,EAAI,KAAK,cACf,KAAK,aAAa,CAAC,EAAG,KAAK,kBAAkB,IAAK,GAAM,CACtD,MAAM,EAAI,KAAK,UACf,EAAE,UAAU,YAAa,EAAE,EAAG,EAAE,CAAC,CACvC,CAAK,CACF,CACD,aAAc,CACZ,MAAM,EAAI,KAAK,YACf,OAAO,GAAK,EAAE,oBAAoB,cAAc,QAAQ,MAAM,EAAI,GAAK;AAAA,EACvE,IACD,CAID,OAAO,OAAO,EAAG,EAAG,EAAG,EAAG,CACxB,OAAOqT,GAAG,MAAM,IAAM,IAAI0kE,IAAG,EAAE,KAAM,EAAE,QAAS,EAAG,EAAE,yBAA0B,EAAE,UAAS,EAAI,EAAE,QAAQ,EAAG,EAAG,EAAG,CAAC,CACnH,CACH,EACA3qE,GAAE,0BAA2B2qE,EAAE,EAC/B,MAAMC,IAAK,mBAAoBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA,sRAMpC10E,GAAE,aAAay0E,GAAE,EAAIC,WACrB,MAAMC,YAAWhzD,EAAG,CAKlB,cAAe,CACb,MAAO,kBACR,CAYD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,EAAI,EAAG,EAAI,GAAI,CAC3C,MAAM,EAAG,QAAS,CAAC,YAAa,cAAc,EAAG,GAAI,EAAG,EAAG,EAAGD,EAAGC,EAAG,KAAM,EAAG,OAAQ,KAAM,CAAC,EAAG,KAAK,UAAY,GAAI,KAAK,SAAW,GAAI,KAAK,kBAAkB,IAAK,GAAM,CACxK,EAAE,SAAS,YAAa,KAAK,SAAS,EAAG,EAAE,SAAS,eAAgB,KAAK,SAAW,KAAK,OAAM,EAAK,EAAI,CAAC,CAC/G,CAAK,CACF,CAID,OAAO,OAAO,EAAG,EAAG,EAAG,EAAG,CACxB,OAAOqT,GAAG,MAAM,IAAM,IAAI6kE,IAAG,EAAE,KAAM,EAAE,QAAS,EAAG,EAAE,yBAA0B,EAAE,UAAS,EAAI,EAAE,QAAQ,EAAG,EAAG,EAAG,CAAC,CACnH,CACH,EACA/mE,EAAE,CACAQ,EAAG,CACL,EAAGumE,GAAG,UAAW,YAAa,MAAM,EACpC/mE,EAAE,CACAQ,EAAG,CACL,EAAGumE,GAAG,UAAW,WAAY,MAAM,EACnC9qE,GAAE,2BAA4B8qE,EAAE,EAChC,MAAMC,IAAK,wBAAyBC,IAAK;AAAA;AAAA;AAAA,+JAIzC70E,GAAE,aAAa40E,GAAE,EAAIC,IACrB,MAAMC,IAAK,6BAA8BC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAkB9C/0E,GAAE,aAAa80E,GAAE,EAAIC,WACrB,cAAiBpzD,EAAG,CAIlB,IAAI,8BAA+B,CACjC,OAAO,KAAK,6BACb,CAMD,IAAI,6BAA6B,EAAG,CAClC,EAAE,mBAAqB,GAAI,KAAK,oCAAoC,CAAC,CACtE,CAMD,oCAAoC,EAAG,EAAI,GAAI,CAC7C,GAAI,IAAM,KAAK,8BAA+B,CAC5C,GAAI,KAAK,+BAAiC,KAAK,0BAA4B,KAAK,8BAA8B,mBAAmB,OAAO,KAAK,wBAAwB,EAAG,EACtK,KAAK,8BAAgC,MAClC,CACH,IAAI,EAAI,KACR,MAAM,EAAI,KAAK,UAAS,EAAInlB,EAAI,KAAK,YACrC,GAAIA,EACF,EAAIA,EAAE,mBACC,GAAK,EAAE,OAAQ,CACtB,MAAMC,EAAI,EAAE,OACZ,EAAIA,EAAEA,EAAE,OAAS,CAAC,CACnB,MACC,EAAIS,GAAG,iBACT,EAAI,KAAK,8BAAgC,EAAE,6BAA+B,KAAK,8BAAgC,IAAImT,EACpH,CACD,KAAK,gCAAkC,KAAK,yBAA2B,KAAK,8BAA8B,mBAAmB,IAAI,IAAM,CACrI,KAAK,kBAAiB,CACvB,IAAI,GAAK,KAAK,kBAAiB,CACjC,CACF,CAID,IAAI,aAAc,CAChB,MAAM,EAAI,KAAK,YACf,MAAO,CAAC,GAAK,EAAE,WAChB,CAID,IAAI,aAAc,CAChB,OAAO,KAAK,6BAA6B,WAC1C,CAID,IAAI,YAAY,EAAG,CACjB,KAAK,6BAA6B,YAAc,CACjD,CAID,IAAI,oBAAqB,CACvB,OAAO,KAAK,6BAA6B,kBAC1C,CAID,IAAI,mBAAmB,EAAG,CACxB,KAAK,6BAA6B,mBAAqB,CACxD,CAID,IAAI,qBAAsB,CACxB,OAAO,KAAK,6BAA6B,mBAC1C,CAID,IAAI,oBAAoB,EAAG,CACzB,KAAK,6BAA6B,oBAAsB,CACzD,CAID,IAAI,qBAAsB,CACxB,OAAO,KAAK,6BAA6B,mBAC1C,CAID,IAAI,oBAAoB,EAAG,CACzB,KAAK,6BAA6B,oBAAsB,CACzD,CAID,IAAI,UAAW,CACb,OAAO,KAAK,6BAA6B,QAC1C,CAID,IAAI,SAAS,EAAG,CACd,KAAK,6BAA6B,SAAW,CAC9C,CAID,IAAI,oBAAqB,CACvB,OAAO,KAAK,8BAA8B,kBAC3C,CAID,IAAI,mBAAmB,EAAG,CACxB,KAAK,8BAA8B,mBAAqB,CACzD,CAID,IAAI,iBAAkB,CACpB,OAAO,KAAK,8BAA8B,eAC3C,CAID,IAAI,gBAAgB,EAAG,CACrB,KAAK,8BAA8B,gBAAkB,CACtD,CAID,IAAI,UAAW,CACb,OAAO,KAAK,6BAA6B,QAC1C,CAID,IAAI,SAAS,EAAG,CACd,KAAK,6BAA6B,SAAW,CAC9C,CAID,IAAI,iBAAkB,CACpB,OAAO,KAAK,6BAA6B,eAC1C,CAID,IAAI,gBAAgB,EAAG,CACrB,KAAK,6BAA6B,gBAAkB,CACrD,CAKD,IAAI,iBAAkB,CACpB,OAAO,KAAK,6BAA6B,eAC1C,CAKD,IAAI,gBAAgB,EAAG,CACrB,KAAK,6BAA6B,gBAAkB,CACrD,CAKD,IAAI,iBAAkB,CACpB,OAAO,KAAK,6BAA6B,eAC1C,CAKD,IAAI,gBAAgB,EAAG,CACrB,KAAK,6BAA6B,gBAAkB,CACrD,CAID,IAAI,iBAAkB,CACpB,OAAO,KAAK,6BAA6B,eAC1C,CACD,IAAI,gBAAgB,EAAG,CACrB,KAAK,6BAA6B,gBAAkB,CACrD,CAID,IAAI,iBAAkB,CACpB,OAAO,KAAK,6BAA6B,eAC1C,CACD,IAAI,gBAAgB,EAAG,CACrB,KAAK,6BAA6B,gBAAkB,CACrD,CAID,IAAI,gBAAiB,CACnB,OAAO,KAAK,6BAA6B,cAC1C,CAID,IAAI,eAAe,EAAG,CACpB,KAAK,6BAA6B,eAAiB,CACpD,CAKD,IAAI,eAAgB,CAClB,OAAO,KAAK,6BAA6B,aAC1C,CAKD,IAAI,cAAc,EAAG,CACnB,KAAK,6BAA6B,cAAgB,CACnD,CAID,IAAI,mBAAoB,CACtB,OAAO,KAAK,6BAA6B,iBAC1C,CAID,IAAI,kBAAkB,EAAG,CACvB,KAAK,6BAA6B,kBAAoB,CACvD,CAID,IAAI,mBAAoB,CACtB,OAAO,KAAK,6BAA6B,iBAC1C,CAID,IAAI,kBAAkB,EAAG,CACvB,KAAK,6BAA6B,kBAAoB,CACvD,CAID,IAAI,iBAAkB,CACpB,OAAO,KAAK,6BAA6B,eAC1C,CAID,IAAI,gBAAgB,EAAG,CACrB,KAAK,6BAA6B,gBAAkB,CACrD,CAID,IAAI,oBAAqB,CACvB,OAAO,KAAK,6BAA6B,kBAC1C,CAID,IAAI,mBAAmB,EAAG,CACxB,KAAK,6BAA6B,mBAAqB,CACxD,CAID,IAAI,kBAAmB,CACrB,OAAO,KAAK,6BAA6B,gBAC1C,CAID,IAAI,iBAAiB,EAAG,CACtB,KAAK,6BAA6B,iBAAmB,CACtD,CAID,IAAI,iBAAkB,CACpB,OAAO,KAAK,gBACb,CAID,IAAI,gBAAgB,EAAG,CACrB,KAAK,mBAAqB,IAAM,KAAK,iBAAmB,EAAG,KAAK,kBAAiB,EAClF,CACD,YAAY,EAAG,EAAG,EAAI,KAAM,EAAG7T,EAAGC,EAAG,EAAI,EAAG,EAAG,CAC7C,MAAM,EAAG,kBAAmB,GAAI,GAAI,EAAG,EAAG,EAAGD,EAAGC,EAAG,KAAM,EAAG,cAAe,KAAM,EAAE,EAAG,KAAK,iBAAmB,GAAI,KAAK,SAAW,CAChI,gBAAiB,GACjB,SAAU,GACV,0BAA2B,GAC3B,wBAAyB,GACzB,YAAa,EACb,SAAU,GACV,YAAa,GACb,aAAc,GACd,eAAgB,GAChB,gBAAiB,GACjB,oBAAqB,GACrB,gBAAiB,GACjB,OAAQ,GACR,2BAA4B,GAC5B,SAAU,GACV,oBAAqB,EACtB,EAAE,GAAK,EAAE,mBAAqB,GAAI,KAAK,oCAAoC,EAAG,EAAE,EAAG,KAAK,kBAAmB,IAAK,KAAK,oCAAoC,KAAM,EAAE,EAAG,KAAK,6BAA6B,mBAAqB,IAAK,KAAK,QAAW,GAAM,CACrP,KAAK,6BAA6B,KAAK,EAAG,KAAK,WAAW,CAChE,CACG,CAKD,cAAe,CACb,MAAO,4BACR,CAID,mBAAoB,CAClB,KAAK,SAAS,gBAAkB,KAAK,iBAAkB,KAAK,6BAA6B,eAAe,KAAK,SAAU,EAAE,EACzH,IAAI,EAAI,GACR,UAAW,KAAK,KAAK,SAAU,CAC7B,MAAMD,EAAI,KAAK,SAAS,CAAC,EACzB,OAAQ,OAAOA,EAAC,CACd,IAAK,SACL,IAAK,SACH,GAAK,WAAW,CAAC,IAAIA,CAAC;AAAA,EAEtB,MACF,QACEA,IAAM,GAAK,WAAW,CAAC;AAAA,GAEvB,KACH,CACF,CACD,MAAM,EAAI,CAAC,gBAAgB,EAAG,EAAI,CAAC,OAAO,EAC1C6T,KAAOA,GAAG,gBAAgB,EAAG,KAAK,QAAQ,EAAGA,GAAG,gBAAgB,EAAG,KAAK,QAAQ,GAAI,KAAK,aAAa,EAAG,EAAG,CAAC,CAC9G,CACD,QAAQ,EAAG,CACT,MAAM,QAAQ,CAAC,EAAG,KAAK,+BAAiC,KAAK,0BAA4B,KAAK,8BAA8B,mBAAmB,OAAO,KAAK,wBAAwB,EAAG,KAAK,gCAAkC,KAAK,6BAA6B,mBAAqB,GACrR,CACH,EACAzC,EAAE,CACAQ,EAAG,CACL,EAAG4mE,GAAG,UAAW,mBAAoB,MAAM,EAC3C,MAAMC,IAAK,yBAA0BC,IAAK;AAAA;AAAA;AAAA,EAI1Cl1E,GAAE,qBAAqBi1E,GAAE,EAAIC,IAC7B,MAAMC,IAAK,sBAAuBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmIvCp1E,GAAE,aAAam1E,GAAE,EAAIC,IACrB,MAAMC,IAAK,4BAA6BC,IAAK,iDAC7Ct1E,GAAE,qBAAqBq1E,GAAE,EAAIC,IAC7B,MAAMC,IAAK,yBAA0BC,IAAK;AAAA,EAE1Cx1E,GAAE,qBAAqBu1E,GAAE,EAAIC,IAC7B,MAAMC,IAAK,uBAAwBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA2IxC11E,GAAE,aAAay1E,GAAE,EAAIC,IACrB,MAAMC,IAAK,CACT,QACA,SACA,iBACA,gBACA,OACA,gBACA,yBACA,iBACA,aACA,qBACA,eACA,oBACA,cACA,WACA,aACA,sBACA,aACA,wBACA,mBACA,yBACA,4BACA,kBACF,EACAnqD,GAAGmqD,GAAE,EACL,IAAAC,GAAA,MAAMC,EAAG,CAIP,IAAI,oBAAqB,CACvB,OAAO,KAAK,mBACb,CAMD,qBAAqB,EAAG,CACtB,KAAK,mBAAqB,GAAI,KAAK,iBAAmB,EAAG,KAAK,qBAAuB,KAAK,mBAAmB,kBAAkB,MAAO,EAAE,KAAK,mBAAmB,kBAAkB,IAAI,IAAM,CAC3L,GACF,CAMD,wBAAyB,CACvB,KAAK,mBAAqB,GAAI,KAAK,qBAAoB,CACxD,CAKD,cAAe,CACb,KAAK,gBAAkB,GAAI,KAAK,oBAAsB,GAAI,KAAK,gBAAkB,GAAI,KAAK,wBAA0B,EACrH,CAMD,kBAAkB,EAAG,EAAG,CACtB,IAAMA,GAAG,uBAAyB,KAAK,eAAiB,EAAG,KAAK,gBAAkB,IAAM,IAAMA,GAAG,uBAAyB,KAAK,eAAiB,EAAG,KAAK,gBAAkB,IAAM,IAAMA,GAAG,2BAA6B,KAAK,mBAAqB,EAAG,KAAK,oBAAsB,IAAM,IAAMA,GAAG,mBAAqB,KAAK,YAAc,EAAI,IAAMA,GAAG,sBAAwB,KAAK,aAAe,EAC/X,CAMD,gBAAgB,EAAG,CACjB,KAAK,wBAA0B,CAChC,CAMD,qBAAqB,EAAG,CACtB,KAAK,mBAAmB,mBAAmB,EAAG,EAAG,EAAE,CACpD,CAID,IAAI,YAAa,CACf,OAAO,KAAK,mBAAmB,UAChC,CAID,IAAI,WAAW,EAAG,CAChB,KAAK,mBAAmB,WAAa,CACtC,CAKD,IAAI,aAAc,CAChB,OAAO,KAAK,mBAAmB,WAChC,CAMD,gBAAgB,EAAG,CACjB,OAAQ,EAAC,CACP,KAAKA,GAAG,sBACN,OAAO,KAAK,eACd,KAAKA,GAAG,sBACN,OAAO,KAAK,eACd,KAAKA,GAAG,0BACN,OAAO,KAAK,mBACd,KAAKA,GAAG,mBACN,OAAO,KAAK,mBAAqB,KAAK,YAAc,EACtD,KAAKA,GAAG,oBACN,OAAO,KAAK,mBAAqB,KAAK,aAAe,EACvD,QACE,MAAO,EACV,CACF,CAID,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CAID,IAAI,eAAe,EAAG,CACpB,KAAK,gBAAkB,EAAG,KAAK,qBAAuB,KAAK,UAAW,KAAK,qBAAoB,EAChG,CAID,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CAID,IAAI,eAAe,EAAG,CACpB,KAAK,gBAAkB,EAAG,IAAM,KAAK,gCAAkC,IAAK,KAAK,qBAAuB,KAAK,QAAO,EAAI,KAAK,qBAAoB,GAAK,KAAK,OAAO,2BAA6B,CAChM,CAID,IAAI,oBAAqB,CACvB,OAAO,KAAK,mBACb,CAQD,IAAI,mBAAmB,EAAG,CACxB,KAAK,oBAAsB,EAAG,KAAK,qBAAuB,KAAK,UAAW,KAAK,qBAAoB,EACpG,CAID,IAAI,OAAQ,CACV,OAAO,KAAK,MACb,CAKD,IAAI,OAAQ,CACV,OAAO,OAAO,KAAK,oBAAsB,SAAW,EAAI,KAAK,kBAC9D,CAQD,YAAY,EAAG,EAAI,EAAG,EAAI,GAAI,EAAG,CAC/B,KAAK,gCAAkC,GAAI,KAAK,qCAAuC,GAAI,KAAK,kCAAoC,GAAI,KAAK,wBAA0B,GAAI,KAAK,4BAA8B,GAAI,KAAK,oBAAsB,GAAI,KAAK,gBAAkB,KAAM,KAAK,gBAAkB,GAAI,KAAK,gBAAkB,GAAI,KAAK,oBAAsB,GAAI,KAAK,YAAc,IAAInmE,GAAG,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,iBAAmB,IAAIA,GAAG,IAAK,EAAG,EAAG,CAAC,EAAG,KAAK,eAAiB,GAAI,KAAK,eAAiB,GAAI,KAAK,mBAAqB,GAAI,KAAK,YAAc,GAAI,KAAK,aAAe,GAAI,KAAK,mBAAqB,GAAI,KAAK,gCAAkC,GAAI,KAAK,OAAS,EAAG,KAAK,mBAAqB,EAAG,KAAK,QAAU,EAAE,YAAY,uBAAwB,KAAK,aAAe,EAAG,KAAK,wBAA0B,GAAK,CAAE,EAAEmmE,GAAG,8BAA8B,KAAK,MAAM,EAAG,KAAK,qBAAoB,CAC72B,CAOD,QAAQ,EAAG,EAAG,CACZ,MAAM,EAAI,EAAE,cACZ,GAAI,GAAK,EAAE,kBACT,MAAO,GACT,MAAM,EAAI,GAAIr5E,EAAI,CAACiU,EAAE,aAAcA,EAAE,UAAU,EAAGhU,EAAI,EAAE,QAAO,EAC/D,GAAI,EAAG,CACL,IAAIY,EAAI,GACR,GAAI,EAAE,iBAAkB,GAAI,EAAE,oBAAqB,IAAK,EAAE,KAAK,mBAAmB,EAAG,EAAE,KAAK,uBAAuB,EAAE,sBAAsB,iBAAmB,CAAC,EAAE,EAAGA,EAAI,IAAK,EAAE,aAAe2kC,GAAG,qBAAuB,EAAE,KAAK,cAAc,EAAG,EAAE,KAAK,kBAAkB,EAAE,YAAY,iBAAmB,CAAC,EAAE,EAAG3kC,EAAI,IAAK,KAAK,oBAAqB,CACjV,IAAImF,EAAI,GACR,EAAE,aAAY,IAAO,gCAAkC,EAAE,2BAA6B,EAAE,KAAK,oBAAoB,EAAG,EAAE,KAAK,0BAA0B,EAAE,yBAAyB,iBAAmB,CAAC,EAAE,EAAG,EAAE,KAAK,0BAA0B,EAAGnF,EAAI,GAAImF,EAAI,IAAK,EAAE,UAAY,OAAS,EAAE,KAAK,kBAAkB,EAAG,EAAE,KAAK,0BAA0B,EAAGA,EAAI,IAAK,EAAE,WAAa,OAAS,EAAE,KAAK,mBAAmB,EAAG,EAAE,KAAK,0BAA0B,EAAGA,EAAI,IAAKA,IAAM,EAAE,cAAgB,EAAE,KAAK,uBAAuB,EAAG,EAAE,KAAK,oBAAoB,EAAE,YAAY,iBAAmB,CAAC,EAAE,EAAG,EAAE,YAAY,YAAc,EAAE,KAAK,qBAAqB,EAAGnF,EAAI,IAAK,EAAE,WAAa,EAAE,KAAK,qBAAqB,IAAM,EAAE,aAAY,IAAO,iCAAmC,EAAE,2BAA6B,EAAE,KAAK,mCAAmC,EAAG,EAAE,KAAK,0BAA0B,EAAE,0BAA0B,iBAAmB,CAAC,EAAE,EAAGA,EAAI,GAAI,EAAE,0BAA0B,YAAc,EAAE,KAAK,kCAAkC,GAAK,EAAE,eAAiB,EAAE,KAAK,2BAA2B,EAAG,EAAE,YAAc,MAAQ,EAAE,KAAK,oBAAoB,GAAK,EAAE,aAAY,IAAO,eAAiB,EAAE,kBAAoB,EAAE,KAAK,oBAAoB,EAAG,EAAE,KAAK,0BAA0B,EAAE,gBAAgB,iBAAmB,CAAC,EAAE,EAAG,EAAE,KAAK,0BAA0B,EAAGA,EAAI,GAAImF,EAAI,IAAK,EAAE,UAAY,OAAS,EAAE,KAAK,kBAAkB,EAAG,EAAE,KAAK,0BAA0B,EAAGA,EAAI,IAAK,EAAE,WAAa,OAAS,EAAE,KAAK,mBAAmB,EAAG,EAAE,KAAK,0BAA0B,EAAGA,EAAI,IAAKA,GAAK,EAAE,gBAAkB,EAAE,KAAK,uBAAuB,EAAG,EAAE,KAAK,oBAAoB,EAAE,cAAc,iBAAmB,CAAC,EAAE,EAAG,EAAE,cAAc,YAAc,EAAE,KAAK,qBAAqB,EAAGnF,EAAI,IAAK,EAAE,aAAe,EAAE,KAAK,qBAAqB,IAAM,EAAE,qBAAuB,EAAE,KAAK,mCAAmC,EAAG,EAAE,KAAK,0BAA0B,EAAE,oBAAoB,iBAAmB,CAAC,EAAE,EAAG,EAAE,oBAAoB,YAAc,EAAE,KAAK,kCAAkC,EAAGA,EAAI,IAAM,EAAE,mBAAqB,EAAE,KAAK,2BAA2B,EAAG,EAAE,cAAgB,MAAQ,EAAE,KAAK,oBAAoB,IAAM,EAAE,aAAY,IAAO,qBAAuB,EAAE,kBAAoB,EAAE,KAAK,6BAA6B,EAAG,EAAE,KAAK,0BAA0B,EAAE,gBAAgB,iBAAmB,CAAC,EAAE,EAAG,EAAE,gBAAgB,YAAc,EAAE,KAAK,kCAAkC,EAAGA,EAAI,IAAK,EAAE,eAAiB,EAAE,KAAK,2BAA2B,EACr5E,CACDA,IAAM,EAAE,KAAK,iBAAiB,EAAGZ,EAAE,sBAAsBgU,EAAE,MAAM,IAAMjU,EAAE,KAAKiU,EAAE,MAAM,EAAG,EAAE,KAAK,aAAa,GAAIhU,EAAE,sBAAsBgU,EAAE,OAAO,IAAMjU,EAAE,KAAKiU,EAAE,OAAO,EAAG,EAAE,KAAK,aAAa,GAChM,CACD,KAAK,qBAAuB,EAAE,KAAK,iBAAiB,EAAG,KAAK,cAAgB,KAAO,EAAE,KAAK,uBAAyB,KAAK,WAAW,EAAG,EAAE,KAAK,uBAAuB,GAAI,KAAK,eAAiB,KAAO,EAAE,KAAK,wBAA0B,KAAK,YAAY,EAAG,EAAE,KAAK,wBAAwB,IAAK,KAAK,kBAAoB,EAAE,KAAK,kBAAkB,EAAG,EAAE,KAAK,0BAA4B,KAAK,cAAc,GAAI,KAAK,kBAAoB,EAAE,KAAK,kBAAkB,EAAG,EAAE,KAAK,0BAA4B,KAAK,cAAc,EAAG,KAAK,kCAAkC,QAAQhU,CAAC,IAAM,IAAM,EAAE,KAAK,gCAAgC,GAAI,KAAK,sBAAwB,EAAE,KAAK,sBAAsB,EAAG,EAAE,KAAK,8BAAgC,KAAK,kBAAkB,GAAI,KAAK,6BAA+B,EAAE,KAAK,2BAA2B,EAAG,KAAK,qBAAuB,EAAE,KAAK,uBAAuB,EAAGA,EAAE,UAAYA,EAAE,0BAA4BA,EAAE,UAAYD,EAAE,KAAKiU,EAAE,mBAAmB,EAAGjU,EAAE,KAAKiU,EAAE,mBAAmB,EAAGhU,EAAE,mBAAqB,IAAMD,EAAE,KAAKiU,EAAE,wBAAwB,EAAGjU,EAAE,KAAKiU,EAAE,wBAAwB,GAAI,EAAE,KAAK,gCAAkChU,EAAE,kBAAkB,EAAG,EAAE,KAAK,uBAAyBA,EAAE,SAAS,yBAAyB,EAAG,EAAE,KAAK,yBAA2BA,EAAE,SAAS,MAAM,OAAS,EAAE,IAAM,EAAE,KAAK,gCAAgC,EAAG,EAAE,KAAK,2BAA2B,EAAG,EAAE,KAAK,wBAAwB,GAC93C,MAAM,EAAIA,EAAE,mBACZ,IAAI,EAAI,EACR,IAAM,EAAI,EAAE,mBAAqB,EAAE,eAAgB,EAAI,IAAM,EAAE,KAAK,sBAAsB,EAAG,EAAE,KAAK,iCAAmC,CAAC,EAAG,EAAE,0BAA4B,EAAE,KAAK,8BAA8B,EAAGwvB,GAAGzvB,EAAGC,EAAG,CAAC,IAAK,IAAM,EAAE,KAAK,mBAAmB,EAAG0vB,GAAG3vB,EAAG,KAAK,eAAe,EAAG,EAAE,iBAAgB,EAAG,kBAAoB,EAAE,KAAK,wBAAwB,GAAI,KAAK,mBAAqB,EAAE,KAAK,+BAAiC,KAAK,wBAAwB,MAAM,EAAI,EAAE,KAAK,+BAAiC,KAAK,mBAAmB,SAAS,MAAM,EAAGivB,GAAG,EAAG,KAAK,OAAQ,CAAC,EAC3jB,MAAM,EAAI,KAAK,OAAO,UAAS,EAAI,EAAI,EAAE,gBAAgB,OAAQ,EAAE,EAAG,EAAI,EAAE,QAAS,EAAI,EAAE,KAAK;AAAA,CACnG,EACG,OAAO,IAAM,GAAK,EAAE,UAAU,EAAE,aAAa,WAAY,CACvD,WAAYjvB,EACZ,cAAem5E,IACf,SAAU,CAAC,iBAAkB,cAAe,sBAAuB,gBAAiB,eAAgB,aAAa,EACjH,QAAS,EACT,WAAY,KACZ,UAAW,KACX,QAAS,KACT,oBAAqB,CAAC,OAAO,EAC7B,gBAAiB,CAAE,aAAc,KAAK,mBAAmB,SAAS,OAAS,EAAG,4BAA6B,CAAG,CACpH,EAAO,CAAC,EAAG,CAAC,EAAG,EAAE,OAAO,SACrB,CAKD,YAAa,CACX,OAAO,KAAK,kBACb,CAID,IAAI,SAAU,CACZ,OAAO,KAAK,mBAAmB,OAChC,CAID,IAAI,QAAQ,EAAG,CACb,KAAK,mBAAmB,QAAU,CACnC,CAID,SAAU,CACR,KAAK,kBAAoB,KAAK,OAAO,YAAY,mBAAmB,OAAO,KAAK,eAAe,EAAG,KAAK,gBAAkB,MAAO,KAAK,WAAU,EAAG,SACnJ,CACD,4BAA6B,CAC3B,MAAM,EAAI,GAAI,EAAI,GAClB,IAAI,EAAI,EACR,OAAO,EAAE,KAAK,gBAAiB,gBAAgB,EAAG,EAAE,KAAK,KAAK,wBAAwBE,GAAG,kBAAkB,CAAC,EAAG,EAAE,KAAK,KAAK,wBAAwBA,GAAG,mBAAmB,CAAC,EAAG,KAAK,kBAAoB,KAAK,eAAiB,EAAG,IAAK,EAAE,KAAK,kBAAkB,EAAG,EAAE,KAAK,KAAK,wBAAwBA,GAAG,qBAAqB,CAAC,GAAI,KAAK,kBAAoB,KAAK,eAAiB,EAAG,IAAK,EAAE,KAAK,kBAAkB,EAAG,EAAE,KAAK,KAAK,wBAAwBA,GAAG,qBAAqB,CAAC,GAAI,KAAK,sBAAwB,KAAK,mBAAqB,EAAG,IAAK,EAAE,KAAK,sBAAsB,EAAG,EAAE,KAAK,KAAK,wBAAwBA,GAAG,yBAAyB,CAAC,GAAI,CAAC,EAAG,EAAG,CAAC,CACloB,CACD,sBAAuB,CACrB,MAAM,EAAI,KAAK,OAAO,UAAS,EAAI,CAAC,EAAG,EAAG,CAAC,EAAI,KAAK,2BAA0B,EAC9E,IAAIr5E,EAAI,EACR,EAAE,MAAM,cAAgB,EAAE,MAAM,4BAA8BA,EAAI,EAAI,EAAE,MAAM,kBAAoB,EAAE,MAAM,kCAAoCA,EAAI,GAClJ,MAAMC,EAAI,KAAK,mBAAmB,QAAU,OAAS,KAAK,mBAAqB,CAAE,MAAO,EAAE,eAAc,EAAK,KAAK,mBAAoB,OAAQ,EAAE,gBAAe,EAAK,KAAK,kBAAkB,EAAI,EAAI,GAAI,EAAI,GAC3M,UAAWiG,KAAK,EACdA,GAAK,EAAE,KAAKA,EAAE,WAAW,EAAG,EAAE,KAAKA,EAAE,aAAa,IAAM,EAAE,KAAKlG,CAAC,EAAG,EAAE,KAAK,CAAC,GAC7E,GAAI,KAAK,oBAAsB,EAAEq5E,GAAG,mBAAmB,IAAM,IAAM,EAAEA,GAAG,mBAAmB,IAAM,GAAI,KAAK,mBAAqB,IAAIve,GAAG,UAAW76D,EAAG,EAAG,KAAK,OAAQ,CAAE,gBAAiB,GAAI,qBAAsB,GAAI,MAAO,EAAG,QAAS,EAAG,mBAAoB,KAAK,YAAY,EAAI,EAAE,OAAO,qBAAqB,CAAC,EAAG,CAAC,KAAK,YAC1T,OACF,KAAK,mBAAmB,MAAQ6jB,GAAE,kBAAmB,KAAK,mBAAmB,MAAQA,GAAE,kBAAmB,KAAK,mBAAmB,YAAc,EAAG,KAAK,mBAAmB,gBAAkB,GAAI,KAAK,mBAAmB,WAAa,KACtO,MAAM,EAAI,CAAC,EAAE,EAAG,EAAI,CAAC,EAAE,EAAG,EAAI,CAAC,EAAE,EACjC,QAAS5d,EAAI,EAAGA,EAAI,EAAG,EAAEA,EACvB,EAAE,KAAK,EAAE,EAAG,EAAE,KAAK,EAAE,EAAG,EAAE,KAAK,EAAE,EACnC,MAAM,EAAI,EAAE,mBAAmB,CAAC,EAAGrF,EAAI,EAAE,mBAAmB,CAAC,EAAGmF,EAAI,EAAE,mBAAmB,CAAC,EAC1F,KAAK,mBAAmB,kBAAkB,IAAKE,GAAM,CACnDA,EAAE,gBAAgB,KAAK,gCAAkCrF,EAAI,CAAC,EAAGqF,EAAE,MAAM,KAAK,YAAa,GAAI,GAAI,EAAE,EAAG,KAAK,kCAAoCA,EAAE,gBAAgBF,CAAC,EAAGE,EAAE,MAAM,KAAK,iBAAkB,GAAI,GAAI,EAAE,GAAIA,EAAE,gBAAgB,CAAC,CAC7O,CAAK,EAAG,KAAK,gBAAkB,EAAE,mBAAmB,IAAI,IAAM,CACxD,GAAI,KAAK,mBAAoB,CAC3B,MAAMA,EAAI,KAAK,mBAAmB,QAAU,OAAS,KAAK,mBAAqB,CAAE,MAAO,EAAE,eAAgB,EAAG,KAAK,mBAAoB,OAAQ,EAAE,gBAAiB,EAAG,KAAK,oBACzK,KAAK,mBAAmB,OAAOA,CAAC,CACjC,CACP,CAAK,EACD,MAAMD,EAAKC,GAAM,CACf,MAAMC,EAAID,EAAE,iBAAgB,EAAIE,EAAIF,EAAE,iBAAgB,EAAIsB,EAAI,KAAK,OAAQ,EAAIA,EAAE,UAAW,EAAEC,EAAIvB,EAAE,cACpG,GAAI,CAACuB,EACH,OACF,GAAIrB,EAAE,8BAA8B,sBAAwB,GAAI,KAAK,iBAAmB,CAAC,KAAK,gCAAgCA,EAAE,QAAQ,IAAM,KAAK,gCAAgCA,EAAE,QAAQ,EAAI,CAC/L,MAAOwJ,EAAE,SAAU,EACnB,eAAgBpI,EAAE,mBAAoB,CAC9C,EAASrB,EAAE,UAAW,CACd,MAAMkD,EAAIlD,EAAE,SAAS,qBAAqBA,CAAC,EAC3C,KAAK,qCAAqCA,EAAE,QAAQ,EAAI,KAAK,iCAAiCkD,EAAG,IAAI,aAAaA,EAAE,MAAM,CAAC,CAC5H,CACD,MAAM3B,EAAIvB,EAAE,wBAAwBD,EAAE,IAAK,CAAC,CAACA,EAAE,mBAAkB,CAAE,EACnE,GAAIwB,EAAE,WACJ,OACF,MAAMC,EAAI,EAAE,QAAO,EAAG,kBAAoBD,EAAE,iBAAiBxB,EAAE,GAAG,IAAM,MAAQC,EAAE,kBAAmByB,EAAIxB,EAAE,iBAC3G,GAAI,KAAK,QAAQF,EAAGyB,CAAC,EAAG,CACtB,MAAM0B,EAAInD,EAAE,kBACZ,GAAI,CAACmD,EACH,OACF,MAAMvB,EAAIuB,EAAE,OACZ,EAAE,aAAaA,CAAC,EAAG1B,GAAKxB,EAAE,MAAMD,EAAG4B,EAAGL,EAAE,QAAQ,EAAG,KAAK,SAAWooB,GAAG/nB,EAAG,KAAK,OAAO,sBAAqB,CAAE,EAAG,KAAK,OAAO,iBAAkB,IAAKA,EAAE,UAAU,iBAAkBN,EAAE,mBAAoB,GAAGM,EAAE,UAAU,OAAQN,EAAE,cAAe,IAC9O,IAAIO,EACJ,MAAMF,EAAI1B,EAAE,qBACZ,GAAI,CAAC0B,EAAE,WAAaJ,EAAE,iBAAmBA,EAAE,kBAAoB,MAAO,CACpE,MAAMO,EAAK5B,EAAE,6BACb2B,EAAIN,EAAE,yBAAyBtB,CAAC,EAAG6B,EAAK,IAAMD,EAAIA,IAAMypB,GAAG,yBAA2BA,GAAG,gCAAkCA,GAAG,yBAC/H,MACCzpB,EAAIF,EAAE,gBACR,GAAIJ,EAAE,SAAS4B,EAAGtB,CAAC,EAAGN,EAAE,mBAAoB,CAC1C,MAAMO,EAAKP,EAAE,sBACbO,IAAOF,EAAE,WAAW,iBAAkBE,CAAE,EAAGF,EAAE,UAAU,gBAAiBE,EAAG,iBAAgB,CAAE,EAC9F,CACD,GAAIP,EAAE,aAAeD,EAAE,UAAS,EAAG,QAAS,EAAC,qBAAuBg+B,GAAG,qBAAuB19B,EAAE,UAAU,aAAcL,EAAE,YAAY,iBAAkB,EAAIA,EAAE,YAAY,MAAOA,EAAE,iBAAiB,EAAGK,EAAE,UAAU,aAAcL,EAAE,YAAY,iBAAgB,CAAE,EAAGK,EAAE,WAAW,cAAeL,EAAE,WAAW,EAAGK,EAAE,UAAU,sBAAuBL,EAAE,iBAAmB,GAAK,EAAGA,EAAE,iBAAmB,GAAK,CAAC,GAAI,KAAK,sBAAwBA,EAAE,aAAc,IAAK,gCAAkCA,EAAE,2BAA6B,OAASK,EAAE,WAAW,sBAAuBL,EAAE,wBAAwB,EAAGK,EAAE,UAAU,qBAAsBL,EAAE,yBAAyB,iBAAkB,IAAIA,EAAE,WAAa,MAAQK,EAAE,SAAS,WAAYL,EAAE,QAAQ,EAAGA,EAAE,YAAc,MAAQK,EAAE,SAAS,aAAc,EAAIL,EAAE,SAAS,EAAGA,EAAE,cAAgB,OAASK,EAAE,WAAW,gBAAiBL,EAAE,WAAW,EAAGK,EAAE,UAAU,eAAgBL,EAAE,YAAY,iBAAkB,IAAIA,EAAE,YAAc,MAAQK,EAAE,UAAU,cAAeL,EAAE,SAAS,GAAKA,EAAE,aAAc,IAAK,iCAAmCA,EAAE,4BAA8B,MAAQK,EAAE,WAAW,sBAAuBL,EAAE,yBAAyB,EAAGK,EAAE,UAAU,qBAAsBL,EAAE,0BAA0B,iBAAkB,IAAKA,EAAE,gBAAkB,MAAQK,EAAE,UAAU,oBAAqBL,EAAE,aAAa,EAAGA,EAAE,aAAe,MAAQK,EAAE,SAAS,aAAcL,EAAE,UAAU,GAAKA,EAAE,aAAc,IAAK,eAAiBA,EAAE,kBAAoB,OAASK,EAAE,WAAW,sBAAuBL,EAAE,eAAe,EAAGK,EAAE,UAAU,qBAAsBL,EAAE,gBAAgB,iBAAgB,CAAE,GAAIA,EAAE,WAAa,MAAQK,EAAE,SAAS,WAAYL,EAAE,QAAQ,EAAGA,EAAE,YAAc,MAAQK,EAAE,SAAS,aAAc,EAAIL,EAAE,SAAS,EAAGA,EAAE,YAAc,MAAQA,EAAE,WAAa,MAAQA,EAAE,kBAAoB,MAAQA,EAAE,gBAAkB,OAASK,EAAE,WAAW,gBAAiBL,EAAE,aAAa,EAAGK,EAAE,UAAU,eAAgBL,EAAE,cAAc,kBAAkB,GAAIA,EAAE,cAAgB,MAAQK,EAAE,UAAU,cAAeL,EAAE,WAAW,IAAMA,EAAE,sBAAwB,MAAQK,EAAE,WAAW,sBAAuBL,EAAE,mBAAmB,EAAGK,EAAE,UAAU,qBAAsBL,EAAE,oBAAoB,iBAAkB,IAAKA,EAAE,oBAAsB,MAAQK,EAAE,UAAU,oBAAqBL,EAAE,iBAAiB,EAAGA,EAAE,eAAiB,MAAQK,EAAE,SAAS,aAAcL,EAAE,YAAY,IAAMA,EAAE,aAAc,IAAK,qBAAuBA,EAAE,kBAAoB,OAASK,EAAE,WAAW,sBAAuBL,EAAE,eAAe,EAAGK,EAAE,UAAU,qBAAsBL,EAAE,gBAAgB,iBAAkB,IAAIA,EAAE,gBAAkB,MAAQK,EAAE,UAAU,oBAAqBL,EAAE,aAAa,IAAK0nB,GAAGrnB,EAAGL,EAAG,KAAK,MAAM,EAAGtB,EAAE,UAAYA,EAAE,0BAA4BA,EAAE,SAAU,CAClpF,MAAM6B,EAAK7B,EAAE,SACb,GAAI6B,EAAG,2BAA6BF,EAAE,gBAAgB,kBAAkB,EAAI,GAAI,CAC9E,MAAMG,EAAKD,EAAG,0BAA0B7B,CAAC,EACzC2B,EAAE,WAAW,cAAeG,CAAE,EAAGH,EAAE,SAAS,mBAAoB,GAAKE,EAAG,MAAM,OAAS,EAAE,CAC1F,MACCF,EAAE,YAAY,SAAU3B,EAAE,SAAS,qBAAqBA,CAAC,CAAC,EAC5D,KAAK,iBAAmB2B,EAAE,YAAY,iBAAkB,KAAK,qCAAqC3B,EAAE,QAAQ,CAAC,CAC9G,CACDypB,GAAGzpB,EAAG2B,CAAC,EAAG3B,EAAE,oBAAsBA,EAAE,mBAAmB,0BAA4BA,EAAE,mBAAmB,MAAM2B,CAAC,EAAG,KAAK,kBAAoBA,EAAE,UAAU,gBAAiB,KAAK,gCAAgC1B,EAAE,QAAQ,EAAE,KAAK,EAAG0B,EAAE,UAAU,yBAA0B,KAAK,gCAAgC1B,EAAE,QAAQ,EAAE,cAAc,GAAIuB,GAAKxB,EAAE,kBAAoB2B,EAAE,UAAU,QAASF,CAAC,EAAGzB,EAAE,kBAAkBC,EAAGF,EAAG4B,EAAGL,EAAE,SAAUC,EAAGC,EAAG,CAACK,EAAIC,IAAO,CACvbD,GAAMF,EAAE,UAAU,QAASG,CAAE,CACvC,CAAS,CACF,CACD,KAAK,kBAAoB,KAAK,gCAAgC7B,EAAE,QAAQ,EAAE,MAAQwB,EAAE,MAAO,EAAE,KAAK,gCAAgCxB,EAAE,QAAQ,EAAE,eAAiB,KAAK,OAAO,mBAAoB,EAAC,MAAK,EAAID,EAAE,UAAY,KAAK,iCAAiCA,EAAE,SAAS,qBAAqBA,CAAC,EAAG,KAAK,qCAAqCC,EAAE,QAAQ,CAAC,EAC5V,EACI,KAAK,mBAAmB,sBAAwB,CAACF,EAAGC,EAAGC,IAAM,CAC3D,IAAKA,GAAKD,IAAM,IAAMD,EAAE,UACtB,QAASsB,EAAI,EAAGA,EAAItB,EAAE,UAAU,OAAQ,EAAEsB,EAAG,CAC3C,MAAM,EAAItB,EAAE,UAAUsB,CAAC,EAAGC,EAAI,EAAE,YAAW,EAAIC,EAAI,EAAE,iBAAgB,EACrE,GAAI,CAACD,EACH,SACF,MAAME,EAAID,EAAE,wBAAwB,EAAE,IAAK,CAAC,CAAC,EAAE,mBAAoB,GAAGE,EAAI,EAAE,UAAU,kBAAoBD,EAAE,iBAAiB,EAAE,GAAG,IAAM,MAAQD,EAAE,kBAClJ,GAAI,CAAC,KAAK,QAAQ,EAAGE,CAAC,EACpB,MAAO,EACV,CACH,MAAO,EACb,EAAO,KAAK,mBAAmB,qBAAuB,CAAC1B,EAAGC,EAAGC,EAAGoB,IAAM,CAChE,IAAI,EACJ,GAAI,KAAK,mBAAoB,CAC3B,GAAI,CAAC,KAAK,iBAAiB,QACzB,OACF,KAAK,OAAO,UAAS,EAAG,gBAAgB,KAAK,uBAAuB,CACrE,CACD,GAAIA,EAAE,OAAQ,CACZ,IAAK,EAAE,cAAc,EAAE,EAAG,EAAI,EAAG,EAAIA,EAAE,OAAQ,IAC7CvB,EAAEuB,EAAE,KAAK,CAAC,CAAC,EACb,EAAE,cAAc,EAAE,CACnB,CACD,IAAK,EAAI,EAAG,EAAItB,EAAE,OAAQ,IACxBD,EAAEC,EAAE,KAAK,CAAC,CAAC,EACb,IAAK,EAAE,cAAc,EAAE,EAAG,EAAI,EAAG,EAAIC,EAAE,OAAQ,IAC7CF,EAAEE,EAAE,KAAK,CAAC,CAAC,EACb,GAAI,KAAK,wBACP,IAAK,EAAI,EAAG,EAAIC,EAAE,OAAQ,IACxBH,EAAEG,EAAE,KAAK,CAAC,CAAC,EACf,EAAE,cAAc,EAAE,CACxB,CACG,CAED,iCAAiC,EAAG,EAAG,CACrC,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAE,CAAC,EAAI,EAAE,CAAC,EACZ,OAAO,CACR,CACH,EACAizE,GAAG,mBAAqB,EACxBA,GAAG,oBAAsB,EACzBA,GAAG,sBAAwB,EAC3BA,GAAG,sBAAwB,EAC3BA,GAAG,0BAA4B,EAC/BA,GAAG,8BAAiCh5E,GAAM,CACxC,MAAMW,GAAG,sCAAsC,CACjD,EACA,MAAMs4E,GAAG,CACP,aAAc,CACZ,KAAK,QAAU,GAAI,KAAK,KAAO,aAAc,KAAK,iBAAmB,CAAC,CAAC,CACxE,CACH,CACA,OAAO,eAAejhE,GAAG,UAAW,yBAA0B,CAC5D,IAAK,UAAW,CACd,OAAO,KAAK,uBACb,EACD,IAAK,SAAShY,EAAG,CACfA,GAAKA,EAAE,cAAgB,KAAK,wBAA0BA,EACvD,EACD,WAAY,GACZ,aAAc,EAChB,CAAC,EACDgY,GAAG,UAAU,6BAA+B,SAAShY,EAAI,EAAG,EAAI,GAAI,EAAG,CACrE,OAAO,KAAK,wBAA0B,KAAK,yBAA2B,KAAK,wBAA0B,IAAIg5E,GAAG,KAAMh5E,EAAG,EAAG,CAAC,EAAG,KAAK,wBAAwB,cAAgB,KAAK,wBAA0B,MAAO,KAAK,wBACtN,EACAgY,GAAG,UAAU,8BAAgC,UAAW,CACtD,KAAK,0BAA4B,KAAK,wBAAwB,QAAO,EAAI,KAAK,wBAA0B,KAC1G,EACA,MAAMkhE,GAAG,CAKP,YAAY,EAAG,CACb,KAAK,KAAOvkE,GAAG,4BAA6B,KAAK,MAAQ,CAC1D,CAID,UAAW,CACT,KAAK,MAAM,0BAA0B,aAAaA,GAAG,gDAAiD,KAAM,KAAK,oBAAoB,CACtI,CAKD,SAAU,CACT,CAID,SAAU,CACT,CACD,qBAAqB,EAAG,CACtB,KAAK,MAAM,yBAA2B,EAAE,KAAK,KAAK,MAAM,wBAAwB,WAAU,CAAE,CAC7F,CACH,CACAqkE,GAAG,8BAAiCh5E,GAAM,CACxC,IAAI,EAAIA,EAAE,cAAc2U,GAAG,2BAA2B,EACtD,IAAM,EAAI,IAAIukE,IAAGl5E,CAAC,EAAGA,EAAE,cAAc,CAAC,EACxC,EACA,MAAMm5E,IAAK,wBAAyBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsCzCj2E,GAAE,aAAag2E,GAAE,EAAIC,WACrB,MAAMC,YAAWv0D,EAAG,CAIlB,IAAI,mBAAoB,CACtB,OAAO,KAAK,kBACb,CAID,IAAI,kBAAkB,EAAG,CACvB,KAAK,mBAAqB,EAAG,KAAK,cAAa,CAChD,CAID,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CAID,IAAI,cAAc,EAAG,CACnB,KAAK,iBAAmB,IAAM,KAAK,eAAiB,EAAG,KAAK,WAAU,EACvE,CACD,IAAI,yBAA0B,CAC5B,OAAO,KAAK,qBAAuB,KAAK,OAAO,uBAAyB,IACzE,CACD,IAAI,kBAAmB,CACrB,OAAO,KAAK,qBAAuB,KAAO,KAAK,OAAO,eACvD,CAKD,cAAe,CACb,MAAO,uBACR,CAcD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,EAAG,EAAI,EAAG,EAAI,GAAI,EAAI,GAAI,CACtD,MAAM,EAAG,aAAc,CAAC,iBAAkB,cAAe,aAAc,wBAAyB,qBAAsB,YAAY,EAAG,CAAC,kBAAmB,cAAc,EAAG,EAAG,EAAGD,EAAGC,EAAG,EAAG;AAAA;AAAA,sBAEtK,EAAG,OAAQ,KAAM,CAAC,EAAG,KAAK,eAAiB,EAAG,KAAK,mBAAqB,GAAI,KAAK,eAAiB,GAAI,KAAK,qBAAuB,GAAI,KAAK,mBAAqB,KAAM,KAAK,wBAA0B,KAAM,KAAK,qBAAuB,EAAG,KAAK,sBAAwB,EAAE,6BAA8B,EAAE,KAAK,0BAA4B,KAAK,wBAAwB,eAAiB,KAAK,kBAAoB,EAAE,wBAAyB,KAAK,mBAAqB,KAAK,iBAAiB,YAAW,EAAI,KAAK,4BAA8B,IAAIq5E,MAAQ,KAAK,WAAU,CAC7jB,CAMD,mBAAmB,EAAG,CACpB,GAAI,EAAE,SAAU,CACd,IAAI,EACJ,GAAI,KAAK,wBACP,EAAI,KAAK,wBAAwB,0CAC1B,KAAK,iBACZ,EAAI,KAAK,iBAAiB,wBAE1B,QACF,EAAE,KAAK,CAAC,CACT,CACF,CAMD,0BAA0B,EAAG,CAC3B,GAAI,EAAE,SAAU,CACd,IAAI,EACJ,GAAI,KAAK,wBACP,EAAI,KAAK,wBAAwB,0CAC1B,KAAK,iBACZ,EAAI,KAAK,iBAAiB,wBAE1B,QACF,MAAM,EAAI,EAAE,QAAQ,CAAC,EACrB,IAAM,IAAM,EAAE,OAAO,EAAG,CAAC,CAC1B,CACF,CAKD,QAAQ,EAAG,CACT,KAAK,0BAA4B,KAAK,wBAAwB,gCAAkC,CAAE,EAAE,KAAK,wBAAwB,qCAAuC,GAAI,KAAK,wBAAwB,kCAAoC,IAAK,MAAM,QAAQ,CAAC,CAClQ,CAKD,YAAa,CACX,GAAI,CAAC,KAAK,yBAA2B,CAAC,KAAK,iBACzC,OAAO12E,EAAE,KAAK,2EAA2E,EAAG,KAAK,aAAY,EAC/G,KAAK,0BAA4B,KAAK,wBAAwB,eAAiB,KAAK,gBAAiB,KAAK,cAAe,EAAE,KAAK,mBAAqB,KAAM,KAAK,wBAA0B,KAAM,KAAK,eAAiB,KAAK,kBAAoB,KAAK,8BAAgC,KAAK,4BAA4B,iBAAiB,CAAC,EAAI,GAAI,KAAK,QAAW,GAAM,KAAK,oBAAoB,CAAC,IAAM,KAAK,mBAAqBgN,EAAE,SAAU,EAAE,KAAK,wBAA0B,KAAK,OAAO,mBAAkB,EAAG,MAAO,EAAE,KAAK,kBAAoB,KAAK,8BAAgC,KAAK,4BAA4B,iBAAiB,CAAC,EAAI,GAAI,KAAK,QAAW,GAAM,KAAK,oBAAoB,CAAC,EAChqB,CAKD,oBAAoB,EAAG,CACrB,GAAI,EAAE,WAAW,aAAc,IAAIL,GAAE,KAAK,MAAO,KAAK,MAAM,CAAC,EAAG,EAAE,SAAS,cAAe,KAAK,OAAO,kBAAmB,GAAG,EAAE,SAAS,iBAAkB,KAAK,cAAc,EAAG,KAAK,wBAAyB,CAC3M,MAAM,EAAI,KAAK,wBAAwB,gBAAgB8pE,GAAG,qBAAqB,EAC/E,EAAE,WAAW,kBAAmB,KAAK,wBAAwB,aAAa,SAAS,CAAC,CAAC,CAC3F,SAAe,KAAK,iBAAkB,CAChC,MAAM,EAAI,KAAK,iBAAiB,SAAS,CAAC,EAC1C,EAAE,WAAW,kBAAmB,KAAK,iBAAiB,kBAAkB,SAAS,CAAC,CAAC,CACpF,CACF,CAKD,oBAAoB,EAAG,CACrB,MAAM,EAAI1pE,EAAE,OAAO,CAAC,EACpB,GAAI,EAAE,SAAS,KAAK,OAAO,mBAAoB,GAAG,EAAE,YAAY,KAAK,kBAAkB,EAAG,EAAE,UAAU,wBAAyB,KAAK,kBAAkB,EAAG,EAAE,UAAU,qBAAsB,KAAK,uBAAuB,EAAG,KAAK,wBAAwB,SAAS,CAAC,EAAG,EAAE,UAAU,aAAc,KAAK,OAAO,qBAAqB,EAAG,EAAE,WAAW,aAAc,IAAIJ,GAAE,KAAK,MAAO,KAAK,MAAM,CAAC,EAAG,EAAE,SAAS,cAAe,KAAK,OAAO,kBAAmB,GAAG,EAAE,SAAS,iBAAkB,KAAK,cAAc,EAAG,KAAK,wBAAyB,CACzgB,MAAM,EAAI,KAAK,wBAAwB,gBAAgB8pE,GAAG,kBAAkB,EAC5E,EAAE,WAAW,eAAgB,KAAK,wBAAwB,aAAa,SAAS,CAAC,CAAC,CACxF,SAAe,KAAK,iBAAkB,CAChC,MAAM,EAAI,KAAK,iBAAiB,SAAS,CAAC,EAC1C,EAAE,WAAW,eAAgB,KAAK,iBAAiB,kBAAkB,SAAS,CAAC,CAAC,CACjF,CACF,CAID,eAAgB,CACd,GAAI,KAAK,yBAA2B,KAAK,iBAAkB,CACzD,MAAM,EAAI,CACR,6BACA,mBAAqB,KAAK,mBAAmB,QAAQ,CAAC,EACtD,KAAK,eAAiB,uBAAyB,sBACvD,EACM,KAAK,aAAa,EAAE,KAAK;AAAA,CAC9B,CAAC,CACG,CACF,CAID,OAAO,OAAO,EAAG,EAAG,EAAG,EAAG,CACxB,OAAO/lE,GAAG,MAAM,IAAM,IAAIomE,IAAG,EAAE,KAAM,EAAG,EAAE,QAAS,EAAG,EAAE,yBAA0B,EAAE,UAAW,EAAE,EAAE,SAAU,EAAE,YAAa,EAAE,EAAG,EAAG,EAAG,CAAC,CACzI,CACH,EACAtoE,EAAE,CACAQ,EAAG,CACL,EAAG8nE,GAAG,UAAW,iBAAkB,MAAM,EACzCtoE,EAAE,CACAQ,EAAG,CACL,EAAG8nE,GAAG,UAAW,oBAAqB,IAAI,EAC1CtoE,EAAE,CACAQ,EAAG,CACL,EAAG8nE,GAAG,UAAW,gBAAiB,IAAI,EACtCrsE,GAAE,gCAAiCqsE,EAAE,EACrC,MAAMC,IAAK,wBAAyBC,IAAK,mYACzCp2E,GAAE,aAAam2E,GAAE,EAAIC,WACrB,MAAMC,YAAW10D,EAAG,CAKlB,IAAI,mBAAoB,CACtB,OAAO,KAAK,WACb,CACD,IAAI,kBAAkB,EAAG,CACvB,KAAK,aAAe,KAAK,uBAAyB,KAAK,YAAY,QAAS,EAAE,KAAK,YAAc,EAAG,KAAK,sBAAwB,EAClI,CAKD,cAAe,CACb,MAAO,uBACR,CAeD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,EAAG,EAAG,EAAG,EAAG,CACxC,MAAM,EAAG,aAAc,CAAC,YAAa,QAAS,YAAY,EAAG,CAAC,mBAAmB,EAAGA,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,sBAAwB,GAAI,KAAK,MAAQ,EAAG,KAAK,MAAQ,EAAG,KAAK,WAAaD,EAAG,KAAK,qBAAuB,EAAG,KAAK,qBAAqB,IAAK,GAAM,CAC5P,KAAK,YAAc,KAAK,aAAe,IAAI8jB,GAAE,EAAG,EAAE,SAAQ,CAAE,CAC7D,GAAG,KAAK,kBAAkB,IAAK,GAAM,CACpC,EAAE,UAAU,YAAa,KAAK,KAAK,EAAG,EAAE,SAAS,QAAS,KAAK,KAAK,EAAG,EAAE,SAAS,aAAc,KAAK,UAAU,EAAG,EAAE,WAAW,oBAAqB,KAAK,WAAW,CAC1K,CAAK,CACF,CAMD,QAAQ,EAAG,CACT,KAAK,aAAe,KAAK,wBAA0B,KAAK,YAAY,QAAO,EAAI,KAAK,YAAc,MAAO,MAAM,QAAQ,CAAC,CACzH,CAID,OAAO,OAAO,EAAG,EAAG,EAAG,EAAG,CACxB,OAAOxQ,GAAG,MAAM,IAAM,IAAIumE,IAAG,EAAE,KAAM,EAAE,qBAAsB,EAAE,MAAO,EAAE,MAAO,EAAE,WAAY,EAAE,QAAS,EAAG,EAAE,yBAA0B,EAAE,YAAa,EAAE,QAAQ,EAAG,EAAG,EAAG,CAAC,CAC3K,CACH,EACAzoE,EAAE,CACAQ,EAAG,CACL,EAAGioE,GAAG,UAAW,QAAS,MAAM,EAChCzoE,EAAE,CACAQ,EAAG,CACL,EAAGioE,GAAG,UAAW,QAAS,MAAM,EAChCzoE,EAAE,CACAQ,EAAG,CACL,EAAGioE,GAAG,UAAW,aAAc,MAAM,EACrCzoE,EAAE,CACAQ,EAAG,CACL,EAAGioE,GAAG,UAAW,uBAAwB,MAAM,EAC/CxsE,GAAE,gCAAiCwsE,EAAE,EACrC,MAAMC,IAAK,qBAAsBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4HAQtCv2E,GAAE,aAAas2E,GAAE,EAAIC,WACrB,MAAMC,YAAW70D,EAAG,CAKlB,cAAe,CACb,MAAO,oBACR,CAYD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,EAAI,EAAG,EAAI,GAAI,CAC3C,MAAM,EAAG,UAAW,CAAC,mBAAoB,YAAY,EAAG,KAAM,EAAG,EAAG,EAAGD,EAAGC,EAAG,KAAM,EAAG,OAAQ,KAAM,CAAC,EAAG,KAAK,YAAc,EAAG,KAAK,WAAa,GAAK,KAAK,QAAW,GAAM,CACzK,EAAE,UAAU,aAAc,KAAK,MAAO,KAAK,MAAM,EAAG,EAAE,UAAU,mBAAoB,KAAK,WAAY,KAAK,WAAW,CAC3H,CACG,CAID,OAAO,OAAO,EAAG,EAAG,EAAG,EAAG,CACxB,OAAOqT,GAAG,MAAM,IAAM,IAAI0mE,IAAG,EAAE,KAAM,EAAE,QAAS,EAAG,EAAE,yBAA0B,EAAE,UAAS,EAAI,EAAE,YAAa,EAAE,QAAQ,EAAG,EAAG,EAAG,CAAC,CAClI,CACH,EACA5oE,EAAE,CACAQ,EAAG,CACL,EAAGooE,GAAG,UAAW,cAAe,MAAM,EACtC5oE,EAAE,CACAQ,EAAG,CACL,EAAGooE,GAAG,UAAW,aAAc,MAAM,EACrC3sE,GAAE,6BAA8B2sE,EAAE,EAClC,IAAAC,GAAA,KAAS,CAIP,IAAI,MAAO,CACT,OAAO,KAAK,KACb,CAED,IAAI,SAAU,CACZ,OAAO,KAAK,QACb,CAMD,YAAY,EAAG,EAAG,CAChB,KAAK,QAAU,EAAG,KAAK,MAAQ,EAAG,KAAK,eAAiB,GAAI,KAAK,8BAAgC,IAAI,MAAS,KAAK,SAAW,EAC/H,CAKD,cAAe,CACb,MAAO,2BACR,CAID,IAAI,aAAc,CAChB,UAAW,KAAK,KAAK,eACnB,GAAI,OAAO,UAAU,eAAe,KAAK,KAAK,eAAgB,CAAC,GAAK,CAAC,KAAK,eAAe,CAAC,EAAE,YAC1F,MAAO,GACX,MAAO,EACR,CAKD,UAAU,EAAG,CACX,KAAK,eAAe,EAAE,KAAK,EAAI,CAChC,CAGD,UAAW,CACV,CAID,cAAc,EAAG,EAAG,CAClB,MAAM,EAAI,KAAK,eAAe,CAAC,EAC/B,GAAK,EAAE,QAAQrsE,GAAE,UAAU,GAAK,KAAK,QAAQ,CAAC,CAC/C,CAID,eAAe,EAAG,EAAG,CACnB,MAAM,EAAI,KAAK,eAAe,CAAC,EAC/B,GAAK,EAAE,SAASA,GAAE,UAAU,GAAK,KAAK,QAAQ,CAAC,CAChD,CAID,eAAe,EAAG,EAAG,CACnB,MAAM,EAAIA,GAAE,UAAU,GAAK,KAAK,QAAQ,EACxC,GAAI,CAAC,EACH,OACF,MAAM,EAAI,GACV,IAAI5N,EACJ,IAAKA,EAAI,EAAGA,EAAI,EAAE,OAAQA,IAAK,CAC7B,MAAMC,EAAI,EAAED,CAAC,EACbC,IAAM,KAAK,SAAS,QAAQA,CAAC,IAAM,GAAK,KAAK,SAAS,KAAKA,CAAC,EAAI,GAAK,EAAE,KAAKD,CAAC,EAC9E,CACD,IAAKA,EAAI,EAAGA,EAAI,EAAE,OAAQA,IACxB,EAAE,OAAO,EAAEA,CAAC,EAAG,CAAC,EAClB,UAAWC,KAAK,KAAK,eACnB,OAAO,UAAU,eAAe,KAAK,KAAK,eAAgBA,CAAC,GAAK,KAAK,eAAeA,CAAC,EAAE,eAAe,CAAC,CAC1G,CAID,eAAe,EAAG,CAChB,MAAM,EAAI2N,GAAE,UAAU,GAAK,KAAK,QAAQ,EACxC,GAAI,EAAG,CACL,UAAW,KAAK,KAAK,eACnB,OAAO,UAAU,eAAe,KAAK,KAAK,eAAgB,CAAC,GAAK,KAAK,eAAe,CAAC,EAAE,eAAe,CAAC,EACzG,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,KAAK,SAAS,OAAO,KAAK,SAAS,QAAQ,EAAE,CAAC,CAAC,EAAG,CAAC,CACtD,CACF,CAED,SAAU,CACR,UAAW,KAAK,KAAK,eACnB,OAAO,UAAU,eAAe,KAAK,KAAK,eAAgB,CAAC,GAAK,KAAK,eAAe,CAAC,EAAE,QAAO,EAChG,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IAAK,CAC7C,GAAI,CAAC,KAAK,SAAS,CAAC,EAClB,SACF,MAAM,EAAI,KAAK,SAAS,CAAC,EAAE,KAC3B,KAAK,8BAA8B,CAAC,GAAK,KAAK,8BAA8B,CAAC,EAAE,SAChF,CACF,CAED,QAAS,CACP,KAAK,eAAiB,CAAE,EAAE,KAAK,8BAAgC,IAAI,KACpE,CACD,8BAA8B,EAAG,CAC/B,GAAI,CAAC,KAAK,QAAQ,UAAU,YAC1B,MAAO,GACT,MAAM,EAAI,OAAO,KAAK,KAAK,cAAc,EACzC,GAAI,EAAE,OAAS,EAAG,CAChB,MAAM,EAAI,KAAK,eAAe,EAAE,CAAC,CAAC,EAAE,mBACpC,IAAM,EAAE,CAAC,EAAE,QAAU,EACtB,CACD,MAAO,EACR,CAKD,+BAAgC,CAC9B,MAAM,EAAI,OAAO,KAAK,KAAK,cAAc,EACzC,UAAW,KAAK,EAAG,CACjB,MAAM,EAAI,KAAK,eAAe,CAAC,EAAE,iBAAgB,EACjD,GAAI,EACF,UAAW,KAAK,EACd,EAAE,4BAA8B,EACrC,CACF,CAOD,mBAAmB,EAAG,CACpB,MAAO,EACR,CAID,SAAU,CACT,CACH,EACAwD,EAAE,CACAQ,EAAG,CACL,EAAGsoE,GAAG,UAAW,QAAS,MAAM,EAChC,MAAMC,GAAG,CAKP,aAAc,CACZ,KAAK,iBAAmB,EACzB,CAID,IAAI,oBAAqB,CACvB,MAAM,EAAI,GACV,UAAW,KAAK,KAAK,iBACnB,GAAI,OAAO,UAAU,eAAe,KAAK,KAAK,iBAAkB,CAAC,EAAG,CAClE,MAAM,EAAI,KAAK,iBAAiB,CAAC,EACjC,EAAE,aAAe,EAAE,KAAK,CAAC,CAC1B,CACH,OAAO,CACR,CAKD,YAAY,EAAG,CACb,KAAK,iBAAiB,EAAE,KAAK,EAAI,CAClC,CAKD,eAAe,EAAG,CAChB,OAAO,KAAK,iBAAiB,CAAC,CAC/B,CAOD,8BAA8B,EAAG,EAAG,EAAI,GAAI,CAC1C,MAAM,EAAI,KAAK,iBAAiB,CAAC,EACjC,GAAK,EAAE,eAAe,EAAG,CAAC,CAC3B,CAMD,gCAAgC,EAAG,EAAG,CACpC,MAAM,EAAI,KAAK,iBAAiB,CAAC,EACjC,GAAK,EAAE,eAAe,CAAC,CACxB,CAOD,uBAAuB,EAAG,EAAG,EAAG,CAC9B,MAAM,EAAI,KAAK,iBAAiB,CAAC,EACjC,GAAK,EAAE,cAAc,EAAG,CAAC,CAC1B,CAOD,wBAAwB,EAAG,EAAG,EAAG,CAC/B,MAAM,EAAI,KAAK,iBAAiB,CAAC,EACjC,GAAK,EAAE,eAAe,EAAG,CAAC,CAC3B,CAID,QAAS,CACP,UAAW,KAAK,KAAK,iBACnB,GAAI,OAAO,UAAU,eAAe,KAAK,KAAK,iBAAkB,CAAC,EAAG,CAClE,MAAM,EAAI,KAAK,iBAAiB,CAAC,EACjC,EAAE,YAAc,EAAE,QAAS,GAAI,EAAE,QAAS,EAAE,OAAO,KAAK,iBAAiB,CAAC,EAC3E,CACJ,CAED,UAAW,CACT,UAAW,KAAK,KAAK,iBACnB,OAAO,UAAU,eAAe,KAAK,KAAK,iBAAkB,CAAC,GAAK,KAAK,iBAAiB,CAAC,EAAE,SAAQ,CACtG,CAID,SAAU,CACR,UAAW,KAAK,KAAK,iBACnB,OAAO,UAAU,eAAe,KAAK,KAAK,iBAAkB,CAAC,GAAK,KAAK,iBAAiB,CAAC,EAAE,QAAO,CACrG,CACH,CACA,OAAO,eAAe9hE,GAAG,UAAW,mCAAoC,CACtE,IAAK,UAAW,CACd,GAAI,CAAC,KAAK,kCAAmC,CAC3C,IAAIhY,EAAI,KAAK,cAAc2U,GAAG,qCAAqC,EACnE3U,IAAMA,EAAI,IAAI+5E,IAAG,IAAI,EAAG,KAAK,cAAc/5E,CAAC,GAAI,KAAK,kCAAoC,IAAI85E,GAC9F,CACD,OAAO,KAAK,iCACb,EACD,WAAY,GACZ,aAAc,EAChB,CAAC,EACD,MAAMC,GAAG,CAKP,YAAY,EAAG,CACb,KAAK,KAAOplE,GAAG,sCAAuC,KAAK,MAAQ,CACpE,CAID,UAAW,CACT,KAAK,MAAM,0BAA0B,aAAaA,GAAG,0DAA2D,KAAM,KAAK,oBAAoB,CAChJ,CAKD,SAAU,CACR,KAAK,MAAM,mCAAqC,KAAK,MAAM,kCAAkC,UAC9F,CAID,SAAU,CACR,KAAK,MAAM,mCAAqC,KAAK,MAAM,kCAAkC,SAC9F,CACD,sBAAuB,CACrB,KAAK,MAAM,mCAAqC,KAAK,MAAM,kCAAkC,QAC9F,CACH,QACA,MAAMqlE,YAAWH,EAAG,CAKlB,IAAI,gBAAiB,CACnB,OAAO,KAAK,aACb,CACD,IAAI,eAAe,EAAG,CACpB,KAAK,cAAgB,CACtB,CAID,IAAI,OAAQ,CACV,OAAO,KAAK,MACb,CAID,IAAI,eAAe,EAAG,CACpB,KAAK,kBAAoB,IAAM,KAAK,gBAAkB,EAAG,KAAK,eAAc,EAC7E,CACD,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CAID,IAAI,aAAc,CAChB,OAAO,KAAK,YACb,CACD,IAAI,YAAY,EAAG,CACjB,KAAK,aAAe,EAAG,KAAK,MAAM,OAAS,EAAI,KAAK,mBACrD,CAID,IAAI,YAAY,EAAG,CACjB,KAAK,eAAiB,IAAM,KAAK,MAAM,OAAS,EAAG,KAAK,aAAe,EACxE,CACD,IAAI,aAAc,CAChB,OAAO,KAAK,YACb,CAID,IAAI,eAAe,EAAG,CACpB,KAAK,kBAAoB,IAAM,KAAK,MAAM,UAAY,EAAG,KAAK,gBAAkB,EACjF,CACD,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CAID,IAAI,WAAW,EAAG,CAChB,KAAK,cAAgB,IAAM,KAAK,YAAc,EAAG,KAAK,cAAe,EAAE,KAAK,eAAgB,EAC7F,CACD,IAAI,YAAa,CACf,OAAO,KAAK,WACb,CAID,IAAI,aAAa,EAAG,CAClB,KAAK,gBAAkB,IAAM,KAAK,cAAgB,EAAG,KAAK,eAAc,EACzE,CACD,IAAI,cAAe,CACjB,OAAO,KAAK,aACb,CACD,eAAgB,CACd,MAAM,EAAI,KAAK,MACf,KAAK,MAAQ,IAAII,GAAG,KAAK,OAAQ,KAAK,WAAY,KAAK,aAAc,KAAK,YAAc,KAAK,oBAAqB,KAAK,4BAA6B,EAAE,EAAG,KAAK,MAAM,UAAY,EAAE,UAClL,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IACxC,EAAE,eAAe,KAAK,SAAS,CAAC,CAAC,CACpC,CAID,IAAI,qBAAsB,CACxB,OAAO,KAAK,oBACb,CACD,IAAI,oBAAoB,EAAG,CACzB,KAAK,uBAAyB,IAAM,KAAK,qBAAuB,EAAG,KAAK,eAAc,EACvF,CAID,IAAI,uBAAwB,CAC1B,OAAO,KAAK,sBACb,CACD,IAAI,sBAAsB,EAAG,CAC3B,GAAI,KAAK,yBAA2B,EAClC,OACF,KAAK,uBAAyB,EAC9B,MAAM,EAAI,KAAK,aACf,KAAK,aAAe,IAAIC,GAAG,KAAK,OAAQ,KAAM,KAAK,uBAAwB,KAAK,4BAA6B,EAAE,EAAG,KAAK,aAAa,YAAc,EAAE,YAAa,KAAK,aAAa,cAAgB,EAAE,cAAe,KAAK,aAAa,MAAQ,EAAE,MAAO,KAAK,aAAa,SAAW,EAAE,SACtR,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IACxC,EAAE,eAAe,KAAK,SAAS,CAAC,CAAC,EACnC,KAAK,eAAc,CACpB,CAID,IAAI,YAAY,EAAG,CACjB,KAAK,eAAiB,IAAM,KAAK,aAAe,EAAG,KAAK,eAAc,EACvE,CACD,IAAI,aAAc,CAChB,OAAO,KAAK,YACb,CAID,IAAI,QAAQ,EAAG,CACb,KAAK,WAAa,IAAM,KAAK,SAAW,EAAG,KAAK,eAAc,EAC/D,CACD,IAAI,SAAU,CACZ,OAAO,KAAK,QACb,CAID,IAAI,uBAAuB,EAAG,CAC5B,KAAK,0BAA4B,IAAM,KAAK,OAAO,6BAA6B,UAAY,EAC7F,CACD,IAAI,wBAAyB,CAC3B,OAAO,KAAK,uBACb,CAID,IAAI,iBAAiB,EAAG,CACtB,GAAK,CAAC,KAAK,WAAa,KAAK,WAAa,IAAI5qB,GAAG,GAAI,KAAK,MAAM,EAAI,CAAC,GAAK,KAAK,aAAe,KAAK,WAAW,QAAO,EAAI,KAAK,WAAa,KAC5I,CACD,IAAI,kBAAmB,CACrB,OAAO,KAAK,YAAc,IAC3B,CAID,IAAI,WAAY,CACd,OAAO,KAAK,UACb,CAID,IAAI,2BAA2B,EAAG,CAChC,KAAK,8BAAgC,IAAM,KAAK,4BAA8B,EAAG,KAAK,eAAc,EACrG,CACD,IAAI,4BAA6B,CAC/B,OAAO,KAAK,2BACb,CAID,IAAI,aAAa,EAAG,CAClB,KAAK,gBAAkB,IAAM,KAAK,cAAgB,EAAG,KAAK,eAAc,EACzE,CACD,IAAI,cAAe,CACjB,OAAO,KAAK,aACb,CASD,YAAY,EAAI,GAAI,EAAI,GAAI,EAAIjvD,GAAG,iBAAkB,EAAGV,EAAI,GAAI,CAC9D,MAAM,EAAE,UAAS,EAAI,CAAC,EAAG,KAAK,qBAAuB,CAAE,EAAE,KAAK,qBAAuB,2BAA4B,KAAK,6BAA+B,mCAAoC,KAAK,kBAAoB,wBAAyB,KAAK,iCAAmC,uCAAwC,KAAK,mBAAqB,yBAA0B,KAAK,WAAa,KAAM,KAAK,WAAa,CAAE,EAAE,KAAK,sCAAwC,KAAM,KAAK,gBAAkB,GAAI,KAAK,cAAgB,GAAI,KAAK,qBAAuB,GAAI,KAAK,uBAAyB,EAAG,KAAK,aAAe,GAAI,KAAK,wBAA0B,GAAI,KAAK,YAAc,GAAK,KAAK,4BAA8B,GAAI,KAAK,cAAgB,GAAI,KAAK,cAAgB,GAAI,KAAK,kBAAoB,IAAIF,GAAK,KAAK,gBAAkB,KAAM,KAAK,oBAAsB,EAAG,KAAK,aAAe,GAAI,KAAK,aAAe,IAAM,KAAK,gBAAkB,GAAK,KAAK,SAAW,EAAG,KAAK,YAAc,GAAI,KAAK,iBAAmB,KAAM,KAAK,qBAAuB,KAAM,KAAK,2BAA6B,KAAM,KAAK,6BAA+B,KAAM,KAAK,8BAAgC,KAAM,KAAK,SAAW,GAAK,EAAE,QAAS,KAAK,SAAW,KAAK,SAAS,MAAK,EAAI,KAAK,qBAAuB,KAAK,SAAS,MAAO,EAAE,KAAK,cAAgBE,EAAG,KAAK,OAAS,EACnyC,MAAMC,EAAI,KAAK,OAAO,UAAW,EAAC,QAAO,EACzC,KAAK,KAAO,IAAMA,EAAE,wBAA0BA,EAAE,oBAAqB,KAAK,KAAOA,EAAE,uBAAyB,KAAK,4BAA8B,EAAIA,EAAE,qBAAuB,KAAK,4BAA8B,GAAK,KAAK,4BAA8B,EAAG,EAAE,iCAAiC,YAAY,IAAI,EAC7S,MAAM,EAAI,KAAK,OAAO,UAAS,EAC/B,KAAK,QAAU,IAAI+5E,GAAG,UAAW,EAAG,KAAMl2D,GAAE,sBAAuB,EAAG,GAAI,KAAK,4BAA6B,EAAE,EAAG,KAAK,eAAiB,IAAIsyD,GAAG,EAAG,KAAK,qBAAsB,IAAM,KAAK,QAAS,EAAE,EAAG,KAAK,aAAe,IAAImE,GAAG,KAAK,OAAQ,KAAM,KAAK,uBAAwB,KAAK,4BAA6B,EAAE,EAAG,KAAK,oBAAsB,EAAE,wBAAuB,EAAI,KAAK,gBAAkB,EAAE,mBAAmB,IAAI,IAAM,CACna,KAAK,oBAAsB,EAAE,wBAAuB,EAAI,KAAK,YAAc,KAAK,YACtF,CAAK,EAAG,KAAK,MAAQ,IAAID,GAAG,KAAK,OAAQ,KAAK,YAAa,KAAK,aAAc,KAAK,YAAc,KAAK,oBAAqB,KAAK,4BAA6B,EAAE,EAAG,KAAK,oBAAsB,IAAI/D,GAAG,sBAAuB,EAAE,eAAc,EAAI,EAAE,gBAAe,EAAI,EAAG,KAAMzyD,GAAE,sBAAuB,EAAG,GAAI,KAAK,4BAA6B,EAAE,EAAG,KAAK,2BAA6B,IAAIsyD,GAAG,EAAG,KAAK,iCAAkC,IAAM,KAAK,oBAAqB,EAAE,EAAG,KAAK,MAAQ,IAAI+B,GAAG,QAAS,EAAG,KAAMr0D,GAAE,sBAAuB,EAAG,GAAI,KAAK,4BAA6B,EAAE,EAAG,KAAK,aAAe,IAAIsyD,GAAG,EAAG,KAAK,mBAAoB,IAAM,KAAK,MAAO,EAAE,EAChoB,IAAI,EAAI,GACR,KAAK,sCAAwC,KAAK,OAAO,6BAA6B,mBAAmB,IAAI,IAAM,CACjH,KAAK,MAAM,WAAW,UAAY,KAAK,OAAO,6BAA6B,SAAU,KAAK,yBAA2B,KAAK,OAAO,6BAA6B,YAAc,KAAK,wBAA0B,KAAK,OAAO,6BAA6B,UAAW,EAAIxoE,GAAE,aAAa,IAAM,CACtR,KAAK,eAAc,CAC3B,CAAO,EAAI,KAAK,eAAc,EACzB,GAAG,KAAK,eAAgB,EAAE,EAAI,EAChC,CAKD,cAAe,CACb,MAAO,0BACR,CAID,SAAU,CACR,MAAM,EAAI,KAAK,cACf,KAAK,cAAgB,GAAI,KAAK,iBAAkB,KAAK,cAAgB,CACtE,CACD,+BAA+B,EAAG,EAAI,GAAI,CACxC,KAAK,YAAc,EAAE,UAAY,IAAM,EAAE,UAAY,GAAI,KAAK,OAAO,UAAY,GAAI,KAAK,YAAc,IAAK,IAAM,KAAK,qBAAuB,EAAE,gBAAgB,KAAK,oBAAoB,EAAI,EAAE,eAAgB,KAAK,mBAAqB,KAAK,qBAAuB,KAAK,kBAAmB,KAAK,iBAAmB,EACvT,CACD,gBAAiB,CACf,GAAI,CAAC,KAAK,cACR,OACF,KAAK,OAAO,UAAY,GACxB,MAAM,EAAI,KAAK,OAAO,UAAS,EAC/B,GAAI,KAAK,wBAAyB,KAAK,WAAa,OAAS,KAAK,OAAO,iCAAiC,gCAAgC,KAAK,MAAO,KAAK,QAAQ,EAAG,KAAK,SAAW,KAAK,qBAAqB,MAAO,GAAG,KAAK,OAAM,EAAI,KAAK,iBAAmB,KAAM,KAAK,qBAAuB,KAAM,KAAK,YAAc,GAAI,KAAK,oBAAqB,CACxV,GAAI,KAAK,SAAS,OAAS,EAAG,CAC5B,UAAW,KAAK,KAAK,SAAU,CAC7B,MAAM,EAAI,KAAK,OAAO,oBAAoB,CAAC,EAC3C,EAAE,sBAAwB,EAC3B,CACD,KAAK,2BAA6B,KAAK,OAAO,qCAAqC,IAAK,GAAM,CAC5F,KAAK,SAAS,QAAQ,EAAE,YAAY,EAAI,KAAO,KAAK,aAAa,aAAe,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAW,EAC3I,CAAS,CACT,KAAa,CACL,KAAK,OAAO,qCAAqC,OAAO,KAAK,0BAA0B,EACvF,MAAM,EAAI,KAAK,OAAO,oBAAoB,KAAK,SAAS,CAAC,CAAC,EAC1D,KAAK,aAAa,aAAe,EAAE,YAAW,CAC/C,CACD,KAAK,aAAa,YAAc,KAAK,aAAa,eAAc,EAAI,KAAK,UAAU,KAAK,YAAY,EAAG,KAAK,+BAA+B,KAAK,aAAa,SAAS,CAAC,EAAG,EAAE,CAC7K,MACC,KAAK,OAAO,qCAAqC,OAAO,KAAK,0BAA0B,EACzF,KAAK,eAAiB,KAAK,MAAM,SAAU,GAAI,KAAK,MAAM,eAAgB,EAAE,KAAK,UAAU,KAAK,KAAK,EAAG,KAAK,+BAA+B,KAAK,MAAM,SAAS,CAAC,EAAG,EAAE,GAAI,KAAK,0BAA4B,KAAK,gBAAkB,IAAI4qE,GAAG,kBAAmB,EAAG,KAAM10D,GAAE,sBAAuB,EAAG,GAAI,KAAK,4BAA6B,KAAK,MAAM,4BAA4B,EAAG,KAAK,MAAQ,KAAK,UAAU,IAAIsyD,GAAG,EAAG,KAAK,6BAA8B,IAAM,KAAK,gBAAiB,EAAE,CAAC,EAAG,KAAK,+BAA+B,KAAK,eAAe,GAAK,KAAK,OAAO,6BAA6B,mBAAqB,IAAK,CAAC,KAAK,UAAY,KAAK,SAAS,SAAW,KAAO,KAAK,OAAO,6BAA6B,mBAAqB,IAAK,KAAK,gBAAgB,UAAS,GAAM,KAAK,gBAAgB,kBAAmB,GAAG,KAAK,iBAAmB,KAAK,QAAQ,QAAS,GAAI,KAAK,QAAQ,aAAc,EAAE,KAAK,UAAU,KAAK,cAAc,EAAG,KAAK,+BAA+B,KAAK,OAAO,GAAI,KAAK,eAAiB,KAAK,MAAM,QAAS,GAAI,KAAK,MAAM,aAAY,EAAI,KAAK,UAAU,KAAK,YAAY,EAAG,KAAK,+BAA+B,KAAK,KAAK,GAAI,KAAK,6BAA+B,KAAK,oBAAoB,QAAS,GAAI,KAAK,oBAAoB,aAAc,EAAE,KAAK,UAAU,KAAK,0BAA0B,EAAG,KAAK,+BAA+B,KAAK,mBAAmB,GAAI,KAAK,cAAgB,KAAK,KAAO,IAAI4B,GAAG,OAAQ,EAAG,KAAMl0D,GAAE,sBAAuB,EAAG,GAAI,KAAK,2BAA2B,EAAG,KAAK,UAAU,IAAIsyD,GAAG,EAAG,KAAK,kBAAmB,IAAM,KAAK,KAAM,EAAE,CAAC,EAAG,KAAK,+BAA+B,KAAK,KAAM,EAAE,GAAI,KAAK,WAAa,MAAQ,KAAK,OAAO,iCAAiC,8BAA8B,KAAK,MAAO,KAAK,QAAQ,GAAI,KAAK,OAAO,eAAiB,KAAK,OAAO,cAAc,OAAS,GAAK,KAAK,OAAO,cAAgB,KAAK,SAAS,QAAQ,KAAK,OAAO,YAAY,IAAM,MAAQ,KAAK,OAAO,UAAY,IAAK,KAAK,+BAAiC,KAAK,6BAA+B,KAAK,OAAO,sBAAsB,IAAI,IAAM,CACn/D,KAAK,OAAO,cAAgB,KAAK,SAAS,QAAQ,KAAK,OAAO,YAAY,IAAM,KAAO,KAAK,OAAO,UAAY,GACrH,CAAK,GAAI,KAAK,gCAAkC,KAAK,8BAAgC,KAAK,OAAO,uBAAuB,IAAI,IAAM,CAC5H,KAAK,OAAO,eAAiB,KAAK,OAAO,cAAc,OAAS,IAAM,KAAK,OAAO,UAAY,GACpG,CAAK,GAAI,KAAK,8BAA+B,EAAE,CAAC,KAAK,8BAA8B,KAAK,OAAO,GAAK,KAAK,QAAU,GAAKxzE,EAAE,KAAK,qFAAqF,EAAG,KAAK,kBAAkB,gBAAgB,IAAI,CAC/P,CACD,sBAAsB,EAAI,GAAI,CAC5B,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IAAK,CAC7C,MAAM,EAAI,KAAK,SAAS,CAAC,EACzB,KAAK,iBAAmB,KAAK,gBAAgB,QAAQ,CAAC,EAAG,KAAK,MAAQ,KAAK,KAAK,QAAQ,CAAC,EAAG,IAAM,KAAK,SAAW,KAAK,QAAQ,QAAQ,CAAC,EAAG,KAAK,eAAiB,KAAK,OAAO,qCAAqC,OAAO,KAAK,0BAA0B,EAAG,KAAK,aAAa,eAAe,CAAC,GAAI,KAAK,OAAS,KAAK,MAAM,eAAe,CAAC,EAAG,KAAK,qBAAuB,KAAK,oBAAoB,QAAQ,CAAC,EAAG,KAAK,OAAS,KAAK,MAAM,QAAQ,CAAC,EAAG,KAAK,YAAc,KAAK,WAAW,QAAS,EAChe,CACD,KAAK,gBAAkB,KAAM,KAAK,KAAO,KAAM,IAAM,KAAK,QAAU,KAAM,KAAK,eAAiB,KAAM,KAAK,aAAe,KAAM,KAAK,MAAQ,KAAM,KAAK,oBAAsB,KAAM,KAAK,2BAA6B,KAAM,KAAK,MAAQ,KAAM,KAAK,aAAe,KAAM,KAAK,WAAa,KAC5R,CAKD,UAAU,EAAG,CACX,KAAK,qBAAqB,KAAK,CAAC,EAAG,KAAK,gBACzC,CAKD,aAAa,EAAG,CACd,MAAM,EAAI,KAAK,qBAAqB,QAAQ,CAAC,EAC7C,KAAK,qBAAqB,OAAO,EAAG,CAAC,EAAG,KAAK,gBAC9C,CAID,SAAU,CACR,KAAK,cAAgB,GAAI,KAAK,kBAAkB,QAAS,KAAK,sBAAsB,EAAE,EAAG,KAAK,OAAO,iCAAiC,gCAAgC,KAAK,MAAO,KAAK,QAAQ,EAAG,KAAK,OAAO,kCAAkC,eAAe,KAAK,IAAI,EAAG,KAAK,OAAO,UAAY,GAAI,KAAK,kBAAoB,KAAK,OAAO,UAAW,EAAC,mBAAmB,OAAO,KAAK,eAAe,EAAG,KAAK,gBAAkB,MAAO,KAAK,OAAO,sBAAsB,OAAO,KAAK,4BAA4B,EAAG,KAAK,OAAO,uBAAuB,OAAO,KAAK,6BAA6B,EAAG,KAAK,OAAO,6BAA6B,mBAAmB,OAAO,KAAK,qCAAqC,EAAG,MAAM,SAC1rB,CAKD,WAAY,CACV,MAAM,EAAI0Q,GAAG,UAAU,IAAI,EAC3B,OAAO,EAAE,WAAa,2BAA4B,CACnD,CAQD,OAAO,MAAM,EAAG,EAAG,EAAG,CACpB,OAAOA,GAAG,MAAM,IAAM,IAAI+mE,IAAG,EAAE,MAAO,EAAE,MAAM,KAAM,CAAC,EAAG,EAAG,EAAG,CAAC,CAChE,CACH,EACAjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,iBAAkB,IAAI,EACvCjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,cAAe,IAAI,EACpCjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,eAAgB,MAAM,EACvCjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,kBAAmB,MAAM,EAC1CjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,OAAQ,MAAM,EAC/BjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,cAAe,IAAI,EACpCjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,iBAAkB,IAAI,EACvCjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,aAAc,IAAI,EACnCjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,eAAgB,IAAI,EACrCjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,sBAAuB,IAAI,EAC5CjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,wBAAyB,IAAI,EAC9CjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,cAAe,IAAI,EACpCjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,UAAW,IAAI,EAChCjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,yBAA0B,IAAI,EAC/CjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,mBAAoB,IAAI,EACzCjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,6BAA8B,IAAI,EACnDjpE,EAAE,CACAQ,EAAG,CACL,EAAGyoE,GAAG,UAAW,eAAgB,IAAI,EACrChtE,GAAE,mCAAoCgtE,EAAE,EACxC,MAAMG,IAAK,4BAA6BC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAc7Cj3E,GAAE,aAAag3E,GAAE,EAAIC,IACrB,MAAMC,IAAK,0BAA2BC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA8B3Cn3E,GAAE,aAAak3E,GAAE,EAAIC,IACrB,MAAMC,GAAG,CACP,aAAc,CACZ,KAAK,QAAU,GAAI,KAAK,KAAO,QAAS,KAAK,iBAAmB,CAAC,EAAG,CAAC,CACtE,CACH,CACA,MAAMC,IAAK,mBAAoBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwDpCt3E,GAAE,aAAaq3E,GAAE,EAAIC,IACrB,MAAMC,IAAK,yBAA0BC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ1Cx3E,GAAE,aAAau3E,GAAE,EAAIC,WACrB,MAAMC,WAAWf,EAAG,CAMlB,IAAI,QAAQ,EAAG,CACb,KAAK,SAAW,EAAG,KAAK,iBAAiB,aAAa,KAAK,mBAAkB,CAAE,CAChF,CACD,IAAI,SAAU,CACZ,OAAO,KAAK,QACb,CAID,IAAI,QAAQ,EAAG,CACb,KAAK,SAAW,EAAG,KAAK,iBAAiB,aAAa,KAAK,mBAAkB,CAAE,EAAG,KAAK,cAAgB,KAAK,oBAAmB,CAChI,CACD,IAAI,SAAU,CACZ,OAAO,KAAK,QACb,CAID,IAAI,eAAe,EAAG,CACpB,KAAK,gBAAkB,EAAG,KAAK,iBAAmB,KAAK,iBAAiB,QAAU,EAAI,KAAK,0BAA0B,QAAU,CAChI,CACD,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CACD,IAAI,yBAA0B,CAC5B,OAAO,KAAK,qBAAuB,KAAK,OAAO,uBAAyB,IACzE,CACD,IAAI,kBAAmB,CACrB,OAAO,KAAK,qBAAuB,KAAO,KAAK,OAAO,eACvD,CAMD,IAAI,WAAW,EAAG,CAChB,MAAM,EAAI,KAAK,mBAAmB,KAAK,cAAe,CAAC,EAAG,EAAI,KAAK,oBAAoB,CAAC,EACxF,KAAK,kBAAkB,aAAa,EAAE,EAAG,KAAM,CAAC,EAAG,KAAK,kBAAkB,aAAa,EAAE,EAAG,KAAM,CAAC,EAAG,KAAK,YAAc,CAC1H,CACD,IAAI,YAAa,CACf,OAAO,KAAK,WACb,CAQD,IAAI,cAAc,EAAG,CACnB,MAAM,EAAI,KAAK,mBAAmB,EAAG,KAAK,WAAW,EACrD,KAAK,kBAAkB,aAAa,EAAE,CAAC,EAAG,KAAK,kBAAkB,aAAa,EAAE,CAAC,EAAG,KAAK,eAAiB,CAC3G,CACD,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CAID,WAAW,aAAc,CACvB,MAAM,EAAIx5E,GAAG,kBACb,OAAO,EAAI,EAAE,UAAU,aAAe,EACvC,CAID,IAAI,OAAQ,CACV,OAAO,KAAK,MACb,CAUD,YAAY,EAAG,EAAG,EAAG,EAAGV,EAAI,GAAIC,EAAI,EAAG,CACrC,IAAIqC,EAAG4G,EACP,GAAI,MAAM,EAAE,UAAW,EAAE,CAAC,EAAG,KAAK,6BAA+B,+BAAgC,KAAK,iBAAmB,mBAAoB,KAAK,sBAAwB,wBAAyB,KAAK,sBAAwB,wBAAyB,KAAK,wBAA0B,0BAA2B,KAAK,cAAgB,EAAG,KAAK,KAAO,IAAK,KAAK,WAAa,GAAK,KAAK,SAAW,IAAM,KAAK,SAAW,EAAG,KAAK,gBAAkB,EAAG,KAAK,qBAAuB,GAAI,KAAK,OAAS,EAAG,KAAK,KAAO,EAAG,KAAK,YAAc,GAAI,KAAK,eAAiB,GAAI,KAAK,iBAAmB,GAAI,KAAK,gBAAkB,EAAG,KAAK,mBAAqB,EAAG,KAAK,MAAQ,IAAI,YAAY,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,OAAS,EAAG,KAAK,aAAejJ,EAAG,KAAK,qBAAuBD,EAAG,CAAC,KAAK,YAAa,CACpwB4C,EAAE,MAAM,6CAA6C,EACrD,MACD,CACD,MAAMgB,EAAI,KAAK,OAAO,WAAa,EAAGrB,EAAI,KAAK,OAAO,WAAa,EACnE,KAAK,sBAAwB,EAAE,6BAA8B,GAAGD,EAAI,EAAE,yBAA2B,MAAQA,EAAE,6BAA+BM,EAAE,MAAM,4GAA4G,IAAM,EAAE,sBAAuB,GAAGsG,EAAI,EAAE,kBAAoB,MAAQA,EAAE,6BAA+BtG,EAAE,MAAM,oGAAoG,GAAI,KAAK,uBAAwB,KAAK,0BAA4B,IAAI0iB,GAAG,yBAA0B,EAAG,KAAMxB,GAAE,sBAAuB,EAAE,UAAS,EAAI,OAAQ,KAAK,YAAY,EAAG,KAAK,0BAA0B,QAAU,KAAK,eAAgB,KAAK,uBAAuB,EAAG7jB,CAAC,EAAG,KAAK,uBAAuB2D,EAAGrB,EAAG,KAAK,YAAY,EAAG,KAAK,8BAA8BA,EAAG,KAAK,YAAY,EAAG,KAAK,UAAU,IAAI6zE,GAAG,EAAE,UAAS,EAAI,KAAK,6BAA8B,IAAM,KAAK,0BAA2B,EAAE,CAAC,EAAG,KAAK,UAAU,IAAIA,GAAG,EAAE,UAAW,EAAE,KAAK,iBAAkB,IAAM,KAAK,iBAAkB,EAAE,CAAC,EAAG,KAAK,UAAU,IAAIA,GAAG,EAAE,UAAS,EAAI,KAAK,sBAAuB,IAAM,KAAK,kBAAmB,EAAE,CAAC,EAAG,KAAK,UAAU,IAAIA,GAAG,EAAE,UAAW,EAAE,KAAK,sBAAuB,IAAM,KAAK,kBAAmB,EAAE,CAAC,EAAG,KAAK,UAAU,IAAIA,GAAG,EAAE,YAAa,KAAK,wBAAyB,IAAM,KAAK,wBAAyB,EAAE,CAAC,EAAG,EAAE,iCAAiC,YAAY,IAAI,EAAG,GAAK,EAAE,iCAAiC,8BAA8B,EAAG,CAAC,CAC39C,CAMD,cAAe,CACb,MAAO,wBACR,CAKD,QAAQ,EAAI,GAAI,CACd,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,QAAQ,OAAQ,IAAK,CACnD,MAAM,EAAI,KAAK,OAAO,QAAQ,CAAC,EAC/B,KAAK,0BAA0B,QAAQ,CAAC,EAAG,KAAK,iBAAiB,QAAQ,CAAC,EAAG,KAAK,kBAAkB,QAAQ,CAAC,EAAG,KAAK,kBAAkB,QAAQ,CAAC,EAAG,KAAK,wBAAwB,QAAQ,CAAC,CAC1L,CACD,KAAK,eAAe,UAAW,GAAK,KAAK,OAAO,8BAA+B,EAAE,KAAK,OAAO,iCAAiC,gCAAgC,KAAK,MAAO,KAAK,OAAO,OAAO,EAAG,MAAM,SACvM,CAGD,UAAW,CACT,MAAM,SAAQ,CACf,CACD,oBAAoB,EAAG,CACrB,OAAO,EAAI,CAAC,gBAAgB,EAAI,CAAC,iBAAkB,cAAc,CAClE,CACD,mBAAmB,EAAG,EAAG,CACvB,IAAI,EAAI;AAAA,EAER,OAAO,IAAM,GAAK;AAAA,GAClB,IAAM,GAAK;AAAA,GACX,CAAE,EAAG,EAAI;AAAA,EACV,EAAG,EACH,CACD,uBAAuB,EAAG,EAAG,EAAG,CAC9B,MAAM,EAAI,KAAK,mBAAmB,KAAK,cAAe,KAAK,UAAU,EAAGp2E,EAAI,KAAK,oBAAoB,KAAK,UAAU,EACpH,KAAK,kBAAoB,KAAK,kBAAkB,QAASA,EAAG,EAAG,EAAE,EAAG,EAAG,EAAE,EAAG,KAAK,kBAAoB,KAAK,kBAAkB,QAASA,EAAG,EAAG,EAAE,EAAG,EAAG,EAAE,CACtJ,CACD,kBAAkB,EAAG,EAAG,EAAG,EAAGA,EAAGC,EAAG,CAClC,MAAM,EAAI,IAAIklB,GAAG,EAAG,QAAS,CAAC,UAAW,UAAW,SAAU,WAAW,EAAG,EAAG,EAAG,KAAMrB,GAAE,sBAAuB,KAAK,OAAO,UAAW,EAAE,GAAI,EAAG9jB,CAAC,EAClJ,OAAO,EAAE,QAAW,GAAM,CACxB,GAAI,CAAC,KAAK,OAAO,aACf,OACF,MAAM,EAAIC,EAAI,KAAK,wBAAwB,MAAQ,KAAK,wBAAwB,OAAQ,EAAIA,EAAI,KAAK,0BAA0B,MAAQ,KAAK,0BAA0B,OACtK,EAAE,SAAS,UAAW,EAAI,EAAI,EAAI,CAAC,EAAG,EAAE,OAAO,UAAW,KAAK,gBAAgB,EAAG,EAAE,SAAS,SAAU,KAAK,eAAe,EAAG,EAAE,SAAS,YAAa,KAAK,kBAAkB,EAAG,KAAK,wBAA0B,EAAE,WAAW,eAAgB,KAAK,wBAAwB,aAAa,SAAS,CAAC,CAAC,EAAI,KAAK,kBAAoB,EAAE,WAAW,eAAgB,KAAK,iBAAiB,gBAAe,EAAG,SAAS,KAAK,iBAAiB,SAAS,CAAC,CAAC,CAAC,CACpb,EAAO,EAAE,QAAU,KAAK,eAAgB,EAAE,UAAY,GAAI,CACvD,CAED,oBAAoB,EAAG,CACrB,OAAO,KAAK,MAAM,CAAC,EAAI,EAAG,KAAK,MAAM,CAAC,GAAK,KAAK,MAAM,CAAC,GAAK,GAAK,KAAK,MAAM,CAAC,GAAK,MAAQ,EAAG,KAAK,MAAM,CAAC,GAAK,KAAK,MAAM,CAAC,EAAI,aAAe,GAAK,KAAK,MAAM,CAAC,EAAI,cAAgB,IAAM,EAAG,KAAK,MAAM,CAAC,GAAK,KAAK,MAAM,CAAC,EAAI,YAAc,GAAK,KAAK,MAAM,CAAC,EAAI,cAAgB,IAAM,EAAG,KAAK,MAAM,CAAC,GAAK,KAAK,MAAM,CAAC,EAAI,YAAc,GAAK,KAAK,MAAM,CAAC,EAAI,cAAgB,IAAM,EAAG,KAAK,MAAM,CAAC,GAAK,KAAK,MAAM,CAAC,EAAI,WAAa,GAAK,KAAK,MAAM,CAAC,EAAI,cAAgB,IAAM,EAAG,KAAK,MAAM,CAAC,EAAI,qBACle,CACD,YAAY,EAAG,EAAG,CAChB,MAAO,CAAC,EAAI,EAAG,KAAK,oBAAoB,CAAC,CAAC,CAC3C,CACD,0BAA0B,EAAG,EAAG,CAC9B,MAAM,EAAI,EAAI,EAAI,KAAK,GAAI,EAAI,EAAI,EAAI,IAAMD,EAAI,KAAK,KAAK,EAAI,EAAI,CAAC,EACpE,OAAO,IAAIwP,EAAE,KAAK,IAAI,CAAC,EAAIxP,EAAG,KAAK,IAAI,CAAC,EAAIA,EAAG,CAAC,CACjD,CACD,qBAAsB,CACpB,MAAM,EAAI,KAAK,QAAS,EAAI,GAC5B,IAAI,EAAG,EAAI,EACX,KAAO,EAAI,GAAK,CACd,GAAI,EAAI,GACN,EAAI,KAAK,0BAA0B,KAAK,OAAM,EAAI,KAAK,OAAM,CAAE,MAC5D,CACH,MAAMA,EAAI,KAAK,YAAY,EAAG,CAAC,EAC/B,EAAI,KAAK,0BAA0BA,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,CAC9C,CACD,EAAE,KAAK,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG,GACxB,CACD,OAAO,CACR,CACD,oBAAqB,CACnB,MAAO;AAAA,kBACO,KAAK,OAAO;AAAA,kBACZ,KAAK,QAAQ,QAAQ,CAAC,CAAC,EACtC,CACD,uBAAuB,EAAG,EAAG,CAC3B,KAAK,cAAgB,KAAK,sBAC1B,MAAM,EAAI,KAAK,mBAAoB,EAAE,EAAI,CAAC,gBAAiB,eAAgB,eAAe,EAC1F,KAAK,iBAAmB,IAAImlB,GAAG,QAAS,QAAS,CAC/C,eACA,gBACA,mBACA,gBACA,SACA,OACA,QACA,aACA,OACA,YACA,YACA,YACA,OACA,aACA,iBACN,EAAO,EAAG,EAAG,KAAMrB,GAAE,sBAAuB,KAAK,OAAO,UAAW,EAAE,GAAI,EAAG,CAAC,EAAG,KAAK,iBAAiB,UAAY,GAAI,KAAK,iBAAiB,QAAW9jB,GAAM,CACvJ,GAAI,KAAK,OAAO,aAAc,CAC5B,GAAIA,EAAE,UAAU,eAAgB,KAAK,aAAa,EAAGA,EAAE,SAAS,mBAAoB,EAAE,EAAGA,EAAE,SAAS,gBAAiB,EAAI,KAAK,OAAO,EAAGA,EAAE,SAAS,gBAAiB,KAAK,aAAa,EAAGA,EAAE,UAAU,YAAa,EAAI,KAAK,iBAAiB,MAAO,EAAI,KAAK,iBAAiB,MAAM,EAAGA,EAAE,SAAS,SAAU,KAAK,MAAM,EAAGA,EAAE,SAAS,OAAQ,KAAK,IAAI,EAAGA,EAAE,SAAS,aAAc,KAAK,UAAU,EAAGA,EAAE,SAAS,OAAQ,KAAK,IAAI,EAAGA,EAAE,SAAS,OAAQ,KAAK,OAAO,aAAa,IAAI,EAAG,KAAK,OAAO,aAAa,OAASwsB,GAAG,mBACxfxsB,EAAE,aAAa,kBAAmBi7E,GAAG,4BAA4B,EAAGj7E,EAAE,SAAS,YAAa,KAAK,IAAI,KAAK,OAAO,aAAa,IAAM,CAAC,EAAI,KAAK,OAAO,UAAS,EAAG,eAAe,KAAK,OAAO,aAAc,EAAE,CAAC,EAAGA,EAAE,SAAS,YAAa,KAAK,IAAI,KAAK,OAAO,aAAa,IAAM,CAAC,CAAC,MAC/Q,CACH,MAAMC,EAAI,KAAK,OAAO,UAAW,EAAC,eAAgB,EAAG,EAAG,EAAI,KAAK,OAAO,UAAS,EAAG,kBAAoB,EAAG,EAAI,KAAK,OAAO,aAAa,WAAa,CAACA,EAAG,EAAI,KAAK,OAAO,aAAa,YAAcA,EAAG,EAAI,KAAK,OAAO,aAAa,aAAe,CAAC,EAAG,EAAI,KAAK,OAAO,aAAa,UAAY,EAChSD,EAAE,aAAa,kBAAmBi7E,GAAG,sBAAsB,EAAGj7E,EAAE,SAAS,aAAc,EAAI,GAAK,EAAG,EAAGA,EAAE,SAAS,aAAc,EAAI,GAAK,EAAG,CAC5I,CACDA,EAAE,UAAU,aAAc,KAAK,OAAO,oBAAqB,GAAG,KAAK,yBAA2BA,EAAE,WAAW,eAAgB,KAAK,wBAAwB,WAAY,EAAC,SAAS,CAAC,CAAC,EAAGA,EAAE,WAAW,gBAAiB,KAAK,wBAAwB,WAAU,EAAG,SAAS,CAAC,CAAC,GAAK,KAAK,mBAAqBA,EAAE,WAAW,eAAgB,KAAK,iBAAiB,gBAAiB,EAAC,SAAS,KAAK,iBAAiB,SAAS,CAAC,CAAC,CAAC,EAAGA,EAAE,WAAW,gBAAiB,KAAK,iBAAiB,gBAAiB,EAAC,SAAS,KAAK,iBAAiB,SAAS,CAAC,CAAC,CAAC,GAAIA,EAAE,WAAW,gBAAiB,KAAK,cAAc,CAC/jB,CACF,EAAE,KAAK,iBAAiB,QAAU,KAAK,eAAgB,KAAK,uBAAyB,KAAK,iBAAiB,4BAA8B,IAAI46E,IAC/I,CACD,8BAA8B,EAAG,EAAG,CAClC,KAAK,wBAA0B,IAAIz1D,GAAG,cAAe,cAAe,GAAI,CAAC,gBAAiB,UAAU,EAAG,EAAG,KAAMrB,GAAE,sBAAuB,KAAK,OAAO,YAAa,GAAI,OAAQ,CAAC,EAAG,KAAK,wBAAwB,QAAW,GAAM,CAC9N,MAAM,EAAI,KAAK,OAAO,aAAa,SACnC,EAAE,WAAW,WAAYnU,EAAE,QAAQ,CAAC,EAAE,eAAe,EAAE,EAAG,EAAE,EAAG,EAAE,MAAO,EAAE,MAAM,CAAC,EAAG,EAAE,gCAAgC,gBAAiB,KAAK,yBAAyB,CAC3K,EAAO,KAAK,wBAAwB,UAAY,GAAI,KAAK,wBAAwB,QAAU,KAAK,cAC7F,CACD,sBAAuB,CACrB,MAAM1K,EAAI,IAAI,WAAW,KAAK,EAAGzE,EAAI+O,GAAE,OACvC,QAASvP,EAAI,EAAGA,EAAIiF,EAAE,QACpBzE,EAAE,IAAImS,GAAG,YAAY,EAAG,CAAC,EAAGA,GAAG,YAAY,EAAG,CAAC,CAAC,EAAE,UAAS,EAAG,aAAa,GAAG,EAAG1N,EAAEjF,GAAG,EAAI,KAAK,MAAMQ,EAAE,CAAC,EAAGyE,EAAEjF,GAAG,EAAI,KAAK,MAAMQ,EAAE,CAAC,EAAGyE,EAAEjF,GAAG,EAAI,EAAGiF,EAAEjF,GAAG,EAAI,IAC5J,MAAMS,EAAIqsC,GAAG,kBAAkB7nC,EAAG,IAAK,IAAK,KAAK,OAAQ,GAAI,GAAI,CAAC,EAClExE,EAAE,KAAO,oBAAqBA,EAAE,MAAQqjB,GAAE,iBAAkBrjB,EAAE,MAAQqjB,GAAE,iBAAkB,KAAK,eAAiBrjB,CACjH,CAKD,WAAY,CACV,MAAM,EAAI6S,GAAG,UAAU,IAAI,EAC3B,OAAO,EAAE,WAAa,yBAA0B,CACjD,CAQD,OAAO,MAAM,EAAG,EAAG,EAAG,CACpB,OAAOA,GAAG,MAAM,IAAM,IAAI2nE,GAAG,EAAE,MAAO,EAAG,EAAE,OAAQ,OAAQ,EAAE,qBAAsB,EAAE,YAAY,EAAG,EAAG,EAAG,CAAC,CAC5G,CACH,EACAA,GAAG,uBAAyB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACtDA,GAAG,6BAA+B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC5D7pE,EAAE,CACAQ,EAAG,CACL,EAAGqpE,GAAG,UAAW,gBAAiB,MAAM,EACxC7pE,EAAE,CACAQ,EAAG,CACL,EAAGqpE,GAAG,UAAW,OAAQ,MAAM,EAC/B7pE,EAAE,CACAQ,EAAG,CACL,EAAGqpE,GAAG,UAAW,aAAc,MAAM,EACrC7pE,EAAE,CACAQ,EAAE,SAAS,CACb,EAAGqpE,GAAG,UAAW,WAAY,MAAM,EACnC7pE,EAAE,CACAQ,EAAE,SAAS,CACb,EAAGqpE,GAAG,UAAW,WAAY,MAAM,EACnC7pE,EAAE,CACAQ,EAAE,gBAAgB,CACpB,EAAGqpE,GAAG,UAAW,kBAAmB,MAAM,EAC1C7pE,EAAE,CACAQ,EAAG,CACL,EAAGqpE,GAAG,UAAW,uBAAwB,MAAM,EAC/C7pE,EAAE,CACAQ,EAAG,CACL,EAAGqpE,GAAG,UAAW,SAAU,MAAM,EACjC7pE,EAAE,CACAQ,EAAG,CACL,EAAGqpE,GAAG,UAAW,eAAgB,MAAM,EACvC7pE,EAAE,CACAQ,EAAG,CACL,EAAGqpE,GAAG,UAAW,SAAU,MAAM,EACjC7pE,EAAE,CACAQ,EAAG,CACL,EAAGqpE,GAAG,UAAW,OAAQ,MAAM,EAC/B7pE,EAAE,CACAQ,EAAE,YAAY,CAChB,EAAGqpE,GAAG,UAAW,cAAe,MAAM,EACtC7pE,EAAE,CACAQ,EAAE,eAAe,CACnB,EAAGqpE,GAAG,UAAW,iBAAkB,MAAM,EACzC7pE,EAAE,CACAQ,EAAG,CACL,EAAGqpE,GAAG,UAAW,mBAAoB,MAAM,EAC3C7pE,EAAE,CACAQ,EAAG,CACL,EAAGqpE,GAAG,UAAW,kBAAmB,MAAM,EAC1C7pE,EAAE,CACAQ,EAAG,CACL,EAAGqpE,GAAG,UAAW,qBAAsB,MAAM,EAC7C5tE,GAAE,iCAAkC4tE,EAAE,EACtC,MAAMC,IAAK,kBAAmBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUnC33E,GAAE,aAAa03E,GAAE,EAAIC,WACrB,cAAiBjB,EAAG,CAIlB,IAAI,OAAQ,CACV,OAAO,KAAK,MACb,CAQD,YAAY,EAAG,EAAG,EAAG,EAAG,CACtB,MAAM,EAAE,UAAS,EAAI,CAAC,EAAG,KAAK,6BAA+B,+BAAgC,KAAK,iBAAmB,mBAAoB,KAAK,sBAAwB,wBAAyB,KAAK,sBAAwB,wBAAyB,KAAK,wBAA0B,0BAA2B,KAAK,cAAgB,EAAG,KAAK,OAAS,KAAM,KAAK,KAAO,MAAO,KAAK,QAAU,KAAM,KAAK,KAAO,GAAK,KAAK,aAAe,GAAI,KAAK,OAAS,EAAG,KAAK,uBAClc,MAAMl6E,EAAI,EAAE,WAAa,EAAGC,EAAI,EAAE,cAAgB,EAClD,KAAK,0BAA4B,IAAIqlB,GAAG,yBAA0BrlB,EAAG,KAAM6jB,GAAE,sBAAuB,EAAE,UAAS,EAAI,EAAE,EAAG,KAAK,uBAAuB9jB,CAAC,EAAG,KAAK,uBAAuBA,CAAC,EAAG,KAAK,8BAA8BC,CAAC,EAAG,KAAK,UAAU,IAAIm2E,GAAG,EAAE,YAAa,KAAK,6BAA8B,IAAM,KAAK,0BAA2B,EAAE,CAAC,EAAG,KAAK,UAAU,IAAIA,GAAG,EAAE,UAAS,EAAI,KAAK,iBAAkB,IAAM,KAAK,iBAAkB,EAAE,CAAC,EAAG,KAAK,UAAU,IAAIA,GAAG,EAAE,UAAW,EAAE,KAAK,sBAAuB,IAAM,KAAK,kBAAmB,EAAE,CAAC,EAAG,KAAK,UAAU,IAAIA,GAAG,EAAE,UAAS,EAAI,KAAK,sBAAuB,IAAM,KAAK,kBAAmB,EAAE,CAAC,EAAG,KAAK,UAAU,IAAIA,GAAG,EAAE,YAAa,KAAK,wBAAyB,IAAM,KAAK,wBAAyB,EAAE,CAAC,EAAG,EAAE,iCAAiC,YAAY,IAAI,EAAG,GAAK,EAAE,iCAAiC,8BAA8B,EAAG,CAAC,CAC12B,CAID,eAAe,EAAG,EAAG,CACnB,MAAM,eAAe,EAAG,CAAC,EACzB,UAAW,KAAK,KAAK,SACnB,KAAK,OAAO,oBAAoB,CAAC,EAAE,YAAW,CACjD,CAMD,cAAe,CACb,MAAO,uBACR,CAKD,QAAQ,EAAI,GAAI,CACd,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,QAAQ,OAAQ,IAAK,CACnD,MAAM,EAAI,KAAK,OAAO,QAAQ,CAAC,EAC/B,KAAK,0BAA0B,QAAQ,CAAC,EAAG,KAAK,iBAAiB,QAAQ,CAAC,EAAG,KAAK,kBAAkB,QAAQ,CAAC,EAAG,KAAK,kBAAkB,QAAQ,CAAC,EAAG,KAAK,wBAAwB,QAAQ,CAAC,CAC1L,CACD,KAAK,eAAe,UAAW,GAAK,KAAK,OAAO,qBAAsB,EAAE,KAAK,OAAO,iCAAiC,gCAAgC,KAAK,MAAO,KAAK,OAAO,OAAO,EAAG,MAAM,SAC9L,CAED,uBAAuB,EAAG,CACxB,KAAK,kBAAoB,IAAIv0B,GAAG,QAAS,IAAItyC,GAAE,EAAG,CAAC,EAAG,GAAI,EAAG,KAAMuU,GAAE,sBAAuB,KAAK,OAAO,YAAa,GAAI,CAAC,EAAG,KAAK,kBAAoB,IAAI+9B,GAAG,QAAS,IAAItyC,GAAE,EAAG,CAAC,EAAG,GAAI,EAAG,KAAMuU,GAAE,sBAAuB,KAAK,OAAO,YAAa,GAAI,CAAC,EAAG,KAAK,kBAAkB,qBAAqB,IAAI,IAAM,CAC9S,MAAMtjB,EAAI,KAAK,kBAAkB,MAAQ,KAAK,OAAO,YAAY,iBACjE,KAAK,kBAAkB,OAAS,GAAKA,CACtC,GAAG,KAAK,kBAAkB,qBAAqB,IAAI,IAAM,CACxD,MAAMA,EAAI,KAAK,kBAAkB,OAAS,KAAK,OAAO,YAAY,kBAClE,KAAK,kBAAkB,OAAS,GAAKA,CAC3C,CAAK,CACF,CAED,UAAW,CACT,KAAK,aAAe,GAAI,MAAM,SAAQ,CACvC,CACD,uBAAuB,EAAG,CACxB,MAAMA,EAAI,CACR,MACA,MACA,OACA,MACA,MACA,KACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,KACA,MACA,OACA,OACA,MACA,MACA,IACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,OACA,OACA,OACA,MACA,OACA,MACA,OACA,KACA,OACA,MACA,MACN,EAAOC,EAAI,EAAI,GACX,KAAK,iBAAmB,IAAI0kB,GAAG,OAAQ,OAAQ,CAAC,eAAgB,gBAAiB,mBAAoB,gBAAiB,SAAU,OAAQ,UAAW,OAAQ,QAAS,UAAU,EAAG,CAAC,eAAe,EAAG,EAAG,KAAMrB,GAAE,sBAAuB,KAAK,OAAO,UAAS,EAAI,GAAI;AAAA,aAC1P,EAAG,KAAK,iBAAiB,8BAAgC,GAAI,KAAK,iBAAiB,QAAW9jB,GAAM,CAC3G,KAAK,eAAiBA,EAAE,UAAU,eAAgBQ,CAAC,EAAGR,EAAE,SAAS,gBAAiBS,CAAC,EAAGT,EAAE,SAAS,mBAAoB,CAAC,GAAIA,EAAE,SAAS,gBAAiB,KAAK,aAAa,EAAGA,EAAE,SAAS,SAAU,KAAK,MAAM,EAAGA,EAAE,SAAS,OAAQ,KAAK,IAAI,EAAGA,EAAE,SAAS,UAAW,KAAK,OAAO,EAAGA,EAAE,SAAS,OAAQ,KAAK,IAAI,EAAGA,EAAE,WAAW,iBAAkB,KAAK,OAAO,oBAAoB,KAAK,OAAO,YAAY,EAAE,YAAW,CAAE,EAAGA,EAAE,WAAW,gBAAiB,KAAK,cAAc,CACjd,CACG,CACD,8BAA8B,EAAG,CAC/B,KAAK,wBAA0B,IAAImlB,GAAG,cAAe,cAAe,CAAE,EAAE,CAAC,gBAAiB,UAAU,EAAG,EAAG,KAAMrB,GAAE,sBAAuB,KAAK,OAAO,YAAa,EAAE,EAAG,KAAK,wBAAwB,QAAW,GAAM,CACnN,EAAE,WAAW,WAAYnU,EAAE,QAAQ,CAAC,EAAE,eAAe,EAAG,EAAG,EAAG,CAAC,CAAC,EAAG,EAAE,0BAA0B,gBAAiB,KAAK,yBAAyB,CACpJ,CACG,CACD,sBAAuB,CACrB,MAAM1K,EAAI,IAAI,WAAW,OAAO,EAChC,QAASxE,EAAI,EAAGA,EAAIwE,EAAE,QACpBA,EAAExE,GAAG,EAAI,KAAK,MAAM,KAAK,IAAI,EAAGkS,GAAG,YAAY,GAAI,CAAC,CAAC,EAAI,GAAG,EAAG1N,EAAExE,GAAG,EAAI,KAAK,MAAM,KAAK,IAAI,EAAGkS,GAAG,YAAY,GAAI,CAAC,CAAC,EAAI,GAAG,EAAG1N,EAAExE,GAAG,EAAI,KAAK,MAAM,KAAK,IAAI,EAAGkS,GAAG,YAAY,GAAI,CAAC,CAAC,EAAI,GAAG,EAAG1N,EAAExE,GAAG,EAAI,IACxM,MAAMD,EAAIssC,GAAG,kBAAkB7nC,EAAG,IAAK,IAAK,KAAK,OAAQ,GAAI,GAAI,CAAC,EAClEzE,EAAE,KAAO,oBAAqBA,EAAE,MAAQsjB,GAAE,iBAAkBtjB,EAAE,MAAQsjB,GAAE,iBAAkB,KAAK,eAAiBtjB,CACjH,CACH,EACA4Q,EAAE,CACAQ,EAAG,CACL,EAAGwpE,GAAG,UAAW,gBAAiB,MAAM,EACxChqE,EAAE,CACAQ,EAAG,CACL,EAAGwpE,GAAG,UAAW,SAAU,MAAM,EACjChqE,EAAE,CACAQ,EAAG,CACL,EAAGwpE,GAAG,UAAW,OAAQ,MAAM,EAC/BhqE,EAAE,CACAQ,EAAG,CACL,EAAGwpE,GAAG,UAAW,UAAW,MAAM,EAClChqE,EAAE,CACAQ,EAAG,CACL,EAAGwpE,GAAG,UAAW,OAAQ,MAAM,EAC/B,MAAMC,GAAG,CACP,aAAc,CACZ,KAAK,QAAU,GAAI,KAAK,KAAO,yBAA0B,KAAK,iBAAmB,CAAC,EAAG,EAAG,CAAC,CAC1F,CACH,CACA,MAAMC,IAAK,mCAAoCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyDpD/3E,GAAE,aAAa83E,GAAE,EAAIC,WACrB,MAAMC,YAAWr2D,EAAG,CAClB,IAAI,yBAA0B,CAC5B,OAAO,KAAK,qBAAuB,KAAK,OAAO,uBAAyB,IACzE,CACD,IAAI,kBAAmB,CACrB,OAAO,KAAK,qBAAuB,KAAO,KAAK,OAAO,eACvD,CAKD,cAAe,CACb,MAAO,kCACR,CAcD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,EAAG,EAAI,EAAG,EAAI,GAAI,EAAI,GAAI,CACtD,GAAI,MAAM,EAAG,wBAAyB,CAAC,aAAc,OAAQ,YAAa,oCAAqC,WAAY,WAAY,iBAAiB,EAAG,CAAC,iBAAkB,gBAAiB,kBAAmB,qBAAqB,EAAG,EAAG,EAAGD,EAAGC,EAAG,EAAG;AAAA;AAAA;AAAA,EAG1P,EAAG,OAAQ,KAAM,CAAC,EAAG,KAAK,UAAY,IAAK,KAAK,SAAW,EAAG,KAAK,kCAAoC,EAAG,KAAK,KAAO,EAAG,KAAK,gBAAkB,GAAK,KAAK,qBAAuB,GAAI,KAAK,yBAA2B,GAAI,KAAK,mBAAqB,GAAI,KAAK,aAAe,EAAG,KAAK,qBAAuB,EAAG,KAAK,qBAAsB,CACrU,MAAM,EAAI,EAAE,+BACZ,GAAK,EAAE,cAAgB,EAAE,eAAiB,GAAI,EAAE,mBAAqB,GAAI,EAAE,6BAA+B2C,EAAE,MAAM,sHAAsH,EAC9O,KAAW,CACL,MAAM,EAAI,EAAE,wBACC,GAAE,YAAW,EAAI,GAAK,MAAQ,EAAE,6BAA+BA,EAAE,MAAM,8GAA8G,EAAG,KAAK,4BAA8B,IAAIy4E,GAC7O,CACD,KAAK,qBAAsB,EAAE,KAAK,QAAW,GAAM,CACjD,MAAM,EAAI,KAAK,wBAAyBx6E,EAAI,KAAK,iBACjD,GAAI,CAACA,GAAK,CAAC,EACT,OACF,GAAI,EAAG,CACL,MAAMsF,EAAI,EAAE,gBAAgBkzE,GAAG,qBAAqB,EAAGjzE,EAAI,EAAE,gBAAgBizE,GAAG,yBAAyB,EACzG,EAAE,WAAW,gBAAiB,EAAE,WAAY,EAAC,SAAS,CAAC,CAAC,EAAG,EAAE,WAAW,kBAAmB,EAAE,WAAY,EAAC,SAASlzE,CAAC,CAAC,EAAG,EAAE,WAAW,sBAAuB,EAAE,WAAY,EAAC,SAASC,CAAC,CAAC,CACvL,SAAUvF,EAAG,CACZ,MAAMsF,EAAItF,EAAE,SAAS,CAAC,EAAGuF,EAAIvF,EAAE,SAAS,CAAC,EAAG2G,EAAI3G,EAAE,SAAS,CAAC,EAC5D,EAAE,WAAW,gBAAiBA,EAAE,gBAAiB,EAAC,SAAS2G,CAAC,CAAC,EAAG,EAAE,WAAW,kBAAmB3G,EAAE,gBAAiB,EAAC,SAASsF,CAAC,CAAC,EAAG,EAAE,WAAW,sBAAuBtF,EAAE,gBAAiB,EAAC,SAASuF,CAAC,CAAC,CACtM,CACD,MAAMJ,EAAI,EAAE,aACZ,GAAI,CAACA,EACH,OACF,MAAMC,EAAID,EAAE,cAAc,EAAE,EAAGE,EAAIF,EAAE,oBAAoB,EAAE,EAC3D,EAAE,UAAU,aAAcE,CAAC,EAAG,EAAE,UAAU,OAAQD,CAAC,EAAG,EAAE,SAAS,YAAa,KAAK,SAAS,EAAG,EAAE,SAAS,oCAAqC,KAAK,iCAAiC,EAAG,EAAE,SAAS,WAAY,KAAK,QAAQ,EAAG,EAAE,SAAS,WAAY,KAAK,IAAI,EAAG,EAAE,SAAS,kBAAmB,KAAK,eAAe,CACrT,EAAE,KAAK,oBAAsB,EAAE,oBACjC,CAKD,IAAI,yBAA0B,CAC5B,OAAO,KAAK,wBACb,CAKD,IAAI,wBAAwB,EAAG,CAC7B,IAAM,KAAK,2BAA6B,KAAK,yBAA2B,EAAG,KAAK,qBAAoB,EACrG,CAKD,IAAI,mBAAoB,CACtB,OAAO,KAAK,kBACb,CAKD,IAAI,kBAAkB,EAAG,CACvB,IAAM,KAAK,qBAAuB,KAAK,mBAAqB,EAAG,KAAK,qBAAoB,EACzF,CAMD,IAAI,aAAc,CAChB,OAAO,KAAK,YACb,CAMD,IAAI,YAAY,EAAG,CACjB,IAAM,KAAK,eAAiB,KAAK,aAAe,EAAG,KAAK,qBAAoB,EAC7E,CACD,sBAAuB,CACrB,MAAM,EAAI,IACT,KAAK,yBAA2B,KAAK,mBAAqB,EAAE,KAAK,uBAAuB,EAAG,KAAK,0BAA4B,EAAE,KAAK,mCAAmC,EAAG,KAAK,qBAAuB,EAAE,KAAK,4BAA4B,EAAG,EAAE,KAAK,+BAAiC,KAAK,oBAAsB,EAAE,EAAG,EAAE,KAAK,yBAA2B,KAAK,cAAgB,EAAE,EAAG,KAAK,aAAa,EAAE,KAAK;AAAA,CAC5Y,CAAC,CACC,CAID,OAAO,OAAO,EAAG,EAAG,EAAG,EAAG,CACxB,OAAOqN,GAAG,MAAM,IAAM,IAAIkoE,IAAG,EAAE,KAAM,EAAG,EAAE,QAAS,EAAG,EAAE,yBAA0B,EAAE,YAAa,EAAE,YAAa,EAAE,QAAQ,EAAG,EAAG,EAAG,CAAC,CACrI,CACH,EACApqE,EAAE,CACAQ,EAAG,CACL,EAAG4pE,GAAG,UAAW,YAAa,MAAM,EACpCpqE,EAAE,CACAQ,EAAG,CACL,EAAG4pE,GAAG,UAAW,WAAY,MAAM,EACnCpqE,EAAE,CACAQ,EAAG,CACL,EAAG4pE,GAAG,UAAW,oCAAqC,MAAM,EAC5DpqE,EAAE,CACAQ,EAAG,CACL,EAAG4pE,GAAG,UAAW,OAAQ,MAAM,EAC/BpqE,EAAE,CACAQ,EAAG,CACL,EAAG4pE,GAAG,UAAW,kBAAmB,MAAM,EAC1CpqE,EAAE,CACAQ,EAAG,CACL,EAAG4pE,GAAG,UAAW,0BAA2B,IAAI,EAChDpqE,EAAE,CACAQ,EAAG,CACL,EAAG4pE,GAAG,UAAW,oBAAqB,IAAI,EAC1CpqE,EAAE,CACAQ,EAAG,CACL,EAAG4pE,GAAG,UAAW,cAAe,IAAI,EACpCnuE,GAAE,2CAA4CmuE,EAAE,EAChD,MAAMC,IAAK,sBAAuBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0HvCl4E,GAAE,aAAai4E,GAAE,EAAIC,WACrB,MAAMC,WAAWzB,EAAG,CAIlB,IAAI,UAAW,CACb,OAAO,KAAK,cACb,CAID,IAAI,SAAS,EAAG,CACd,KAAK,eAAiB,EAAG,KAAK,iBAAmB,CAClD,CAID,IAAI,iBAAkB,CACpB,OAAO,KAAK,gBACb,CAID,IAAI,gBAAgB,EAAG,CACrB,GAAI,KAAK,iBAAmB,EAAG,KAAK,eAAgB,CAClD,MAAM,EAAI,CAAC,aAAa,EACxB,GAAK,EAAE,KAAK,uBAAuB,EAAG,KAAK,eAAe,aAAa,EAAE,KAAK;AAAA,CACnF,CAAC,CACG,CACF,CAID,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CAID,IAAI,eAAe,EAAG,CACpB,KAAK,gBAAkB,EAAG,KAAK,0BAA4B,KAAK,wBAA0B,KAAK,sBAAsB,eAAiB,EACvI,CAID,IAAI,uBAAwB,CAC1B,OAAO,KAAK,wBACb,CAID,IAAI,sBAAsB,EAAG,CAC3B,MAAM,EAAI,KAAK,2BAA6B,EAC5C,KAAK,yBAA2B,EAAG,GAAK,KAAK,eAAc,CAC5D,CAKD,IAAI,cAAe,CACjB,OAAO,KAAK,aACb,CACD,IAAI,aAAa,EAAG,CAClB,KAAK,gBAAkB,IAAM,KAAK,cAAgB,EAAG,KAAK,eAAc,EACzE,CAKD,IAAI,qBAAsB,CACxB,OAAO,KAAK,oBACb,CACD,IAAI,oBAAoB,EAAG,CACzB,KAAK,uBAAyB,IAAM,KAAK,qBAAuB,EAAG,KAAK,eAAc,EACvF,CAKD,IAAI,kBAAmB,CACrB,OAAO,KAAK,iBACb,CACD,IAAI,iBAAiB,EAAG,CACtB,KAAK,oBAAsB,IAAM,KAAK,kBAAoB,EAAG,KAAK,eAAc,EACjF,CAKD,IAAI,YAAa,CACf,OAAO,KAAK,WACb,CACD,IAAI,WAAW,EAAG,CAChB,KAAK,cAAgB,IAAM,KAAK,YAAc,EAAG,KAAK,eAAc,EACrE,CAKD,IAAI,YAAa,CACf,OAAO,KAAK,WACb,CAED,IAAI,WAAW,EAAG,CAChB,GAAI,KAAK,cAAgB,EAAG,CAC1B,GAAI,GAAK,CAAC,KAAK,OAAO,6BAA4B,EAAI,CACpDt3E,EAAE,KAAK,oGAAoG,EAC3G,MACD,CACD,KAAK,YAAc,EAAG,KAAK,eAAc,CAC1C,CACF,CAKD,IAAI,mBAAoB,CACtB,OAAO,KAAK,kBACb,CACD,IAAI,kBAAkB,EAAG,CACvB,KAAK,qBAAuB,IAAM,KAAK,mBAAqB,EAAG,KAAK,eAAc,EACnF,CAID,IAAI,aAAc,CAChB,OAAO,KAAK,YACb,CACD,IAAI,YAAY,EAAG,CACjB,KAAK,eAAiB,IAAM,KAAK,aAAe,EAAG,KAAK,eAAc,EACvE,CAID,IAAI,+BAAgC,CAClC,OAAO,KAAK,8BACb,CACD,IAAI,8BAA8B,EAAG,CACnC,KAAK,iCAAmC,IAAM,KAAK,+BAAiC,EAAG,KAAK,eAAc,EAC3G,CAKD,IAAI,2BAA4B,CAC9B,OAAO,KAAK,0BACb,CACD,IAAI,0BAA0B,EAAG,CAC/B,KAAK,4BAA8B,KAAK,2BAA2B,aAAa;AAAA,mBAC/D,EAAE,QAAQ,CAAC,CAAC,EAAG,KAAK,2BAA6B,CACnE,CAKD,IAAI,mBAAoB,CACtB,OAAO,KAAK,kBACb,CACD,IAAI,kBAAkB,EAAG,CACvB,KAAK,wBAA0B,KAAK,yBAA2B,KAAK,sBAAsB,kBAAoB,EAAI,KAAK,sBAAsB,aAAa;AAAA,6BAC/H,EAAE,QAAQ,CAAC,CAAC,GAAI,KAAK,mBAAqB,CACtE,CAID,IAAI,SAAU,CACZ,OAAO,KAAK,QACb,CACD,IAAI,QAAQ,EAAG,CACb,KAAK,WAAa,IAAM,KAAK,SAAW,EAAG,KAAK,eAAc,EAC/D,CAUD,YAAY,EAAG,EAAG,EAAG,EAAI,KAAM5C,EAAG,CAChC,MAAM,EAAE,UAAW,EAAE,CAAC,EAAG,KAAK,wBAA0B,KAAM,KAAK,sBAAwB,KAAM,KAAK,mBAAqB,CAAE,EAAE,KAAK,mBAAqB,GAAI,KAAK,wBAA0B,KAAM,KAAK,2BAA6B,KAAM,KAAK,kCAAoC,KAAM,KAAK,kCAAoC,KAAM,KAAK,+BAAiC,KAAM,KAAK,gCAAkC,KAAM,KAAK,qBAAuB,KAAM,KAAK,iCAAmC,CAAE,EAAE,KAAK,eAAiB,KAAM,KAAK,6BAA+B,KAAM,KAAK,0BAA4B,KAAM,KAAK,oBAAsB,KAAM,KAAK,qBAAuB,KAAM,KAAK,4BAA8B,KAAM,KAAK,sBAAwB,KAAM,KAAK,wBAA0B,KAAM,KAAK,gBAAkB,KAAM,KAAK,iCAAmC,KAAM,KAAK,gBAAkB,EAAG,KAAK,UAAY,IAAK,KAAK,eAAiB,GAAI,KAAK,YAAc,KAAM,KAAK,2BAA6B,GAAK,KAAK,qBAAuB,EAAG,KAAK,yBAA2B,GAAI,KAAK,YAAc,KAAM,KAAK,oBAAsB,EAAG,KAAK,gBAAkB,GAAK,KAAK,gBAAkB,GAAK,KAAK,iBAAmB,KAAM,KAAK,kBAAoB,GAAI,KAAK,wBAA0B,IAAK,KAAK,mBAAqB,GAAK,KAAK,4BAA8B,GAAI,KAAK,mBAAqB,IAAK,KAAK,gBAAkB,KAAM,KAAK,qBAAuB,KAAM,KAAK,qBAAuB,GAAI,KAAK,sBAAwB,GAAI,KAAK,WAAa,CAAE,EAAE,KAAK,2BAA6B,KAAM,KAAK,eAAiB,EAAG,KAAK,iBAAmB,EAAG,KAAK,iBAAmB,GAAI,KAAK,qBAAuB,EAAG,KAAK,gBAAkB,EAAG,KAAK,yBAA2B,GAAI,KAAK,qBAAuB,GAAI,KAAK,cAAgB,GAAI,KAAK,qBAAuB,GAAI,KAAK,YAAc,GAAI,KAAK,kBAAoB,GAAI,KAAK,YAAc,GAAI,KAAK,mBAAqB,GAAI,KAAK,aAAe,GAAI,KAAK,+BAAiC,GAAI,KAAK,mBAAqB,GAAI,KAAK,2BAA6B,GAAI,KAAK,SAAW,EAAG,KAAK,SAAWA,GAAK,EAAE,QAAS,KAAK,SAAW,KAAK,SAAS,MAAK,EAAI,KAAK,qBAAuB,KAAK,SAAS,MAAK,EAAI,KAAK,OAAS,EAAG,KAAK,iBAAmB,EAAG,KAAK,OAAS,EAAG,KAAK,kBAAoB,EAAE,UAAW,EAAC,QAAO,EAAG,mBAAqB,EAAI,EAAG,EAAE,iCAAiC,YAAY,IAAI,EAAG,KAAK,eAAc,CAC/2E,CACD,gBAAiB,CACf,MAAM,EAAI,KAAK,OAAQ,EAAI,KAAK,OAChC,KAAK,wBAAyB,KAAK,WAAa,OAAS,KAAK,OAAO,iCAAiC,gCAAgC,KAAK,MAAO,KAAK,QAAQ,EAAG,KAAK,SAAW,KAAK,qBAAqB,MAAK,GAAK,KAAK,OAAM,EAAI,KAAK,iCAAmC,KAAK,iCAAmC,IAAIw7E,GAAG,UAAW,EAAG,EAAG,KAAM13D,GAAE,sBAAuB,EAAE,UAAW,EAAE,GAAI,KAAK,iBAAiB,EAAG,KAAK,iCAAiC,kBAAkB,IAAI,IAAM,CACxd,KAAK,2BAA6B,KAAK,gCACxC,GAAG,KAAK,UAAU,IAAIsyD,GAAG,EAAE,UAAS,EAAI,4BAA6B,IAAM,KAAK,iCAAkC,EAAE,CAAC,GAAI,KAAK,iBAAmB,KAAK,oBAAsB,KAAK,iBAAmB,KAAK,oBAAsB,IAAIjxD,GAAG,UAAW,WAAY,GAAI,CAAE,EAAE,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI,4BAA6B,KAAK,iBAAiB,EAAG,KAAK,oBAAoB,UAAY,CAAC,KAAK,iCAAkC,KAAK,oBAAoB,kBAAkB,IAAI,IAAM,CACjf,KAAK,2BAA6B,KAAK,mBAC7C,CAAK,EAAG,KAAK,UAAU,IAAIsyD,GAAG,EAAE,UAAW,EAAE,qBAAsB,IAAM,KAAK,oBAAqB,EAAE,CAAC,EAAG,KAAK,gBAAkB,KAAK,+BAA+B,EAAG,EAAI,CAAC,EAAG,KAAK,6BAA6B,EAAG,EAAI,CAAC,EAAG,KAAK,yBAAyB,EAAG,EAAI,EAAG,CAAC,EAAG,KAAK,+BAA+B,EAAG,CAAC,EAAG,KAAK,6BAA+B,IAAIjxD,GAAG,wBAAyB,WAAY,GAAI,GAAI,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,UAAW,EAAE,GAAI,4BAA6B,CAAC,EAAG,KAAK,UAAU,IAAIsyD,GAAG,EAAE,UAAW,EAAE,4BAA6B,IAAM,KAAK,6BAA8B,EAAE,CAAC,GAAI,KAAK,cAAgB,KAAK,kCAAkC,EAAG,CAAC,EAAG,KAAK,gCAAkC,IAAIjxD,GAAG,cAAe,WAAY,CAAE,EAAE,CAAE,EAAE,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI,4BAA6B,CAAC,EAAG,KAAK,UAAU,IAAIsyD,GAAG,EAAE,UAAS,EAAI,cAAe,IAAM,KAAK,gCAAiC,EAAE,CAAC,GAAI,KAAK,oBAAsB,KAAK,4BAA4B,EAAG,CAAC,EAAG,KAAK,0BAA4B,IAAIjxD,GAAG,qCAAsC,WAAY,CAAE,EAAE,CAAE,EAAE,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI,4BAA6B,CAAC,EAAG,KAAK,UAAU,IAAIsyD,GAAG,EAAE,UAAW,EAAE,qCAAsC,IAAM,KAAK,0BAA2B,EAAE,CAAC,GAAI,KAAK,cAAgB,KAAK,8BAA8B,EAAG,KAAK,iBAAiB,EAAG,KAAK,sBAAsB,EAAG,CAAC,EAAG,KAAK,oBAAsB,IAAIjxD,GAAG,gCAAiC,WAAY,CAAE,EAAE,CAAE,EAAE,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI,4BAA6B,CAAC,EAAG,KAAK,UAAU,IAAIsyD,GAAG,EAAE,UAAS,EAAI,gCAAiC,IAAM,KAAK,oBAAqB,EAAE,CAAC,GAAI,KAAK,uBAAyB,KAAK,yBAAyB,EAAG,EAAI,EAAG,EAAG,uBAAuB,EAAG,KAAK,+BAA+B,EAAG,CAAC,GAAI,KAAK,oBAAsB,KAAK,6BAA6B,EAAG,CAAC,EAAG,KAAK,eAAiB,KAAK,gBAAkB,IAAI4B,GAAG,OAAQ,EAAG,KAAMl0D,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI,CAAC,EAAG,KAAK,UAAU,IAAIsyD,GAAG,EAAE,UAAS,EAAI,UAAW,IAAM,KAAK,gBAAiB,EAAE,CAAC,GAAI,KAAK,WAAa,MAAQ,KAAK,OAAO,iCAAiC,8BAA8B,KAAK,MAAO,KAAK,QAAQ,EAAG,CAAC,KAAK,8BAA8B,KAAK,QAAQ,GAAK,KAAK,SAAW,GAAKxzE,EAAE,KAAK,qFAAqF,CACv2E,CAED,+BAA+B,EAAG,EAAG,CACnC,MAAM,EAAI,IAAI,MAAM,EAAE,EACtB,KAAK,wBAA0B,IAAIuiB,GAAG,kBAAmB,WAAY,CAAC,WAAW,EAAG,CAAE,EAAE,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,UAAW,EAAE,GAAI,yBAA0B,KAAK,iBAAiB,EAAG,KAAK,wBAAwB,QAAW,GAAM,CAC5O,IAAI9jB,EAAI,EACR,MAAMC,EAAI,KAAK,wBAAwB,MAAO,EAAI,KAAK,wBAAwB,OAC/E,QAAS,EAAI,GAAI,EAAI,EAAG,IACtB,QAAS,EAAI,GAAI,EAAI,EAAG,IACtB,EAAED,CAAC,GAAK,EAAI,KAAQ,EAAIC,GAAI,EAAED,EAAI,CAAC,GAAK,EAAI,KAAQ,EAAI,GAAIA,GAAK,EACrE,EAAE,UAAU,YAAa,CAAC,CAC3B,EAAE,KAAK,UAAU,IAAIo2E,GAAG,EAAE,UAAS,EAAI,kBAAmB,IAAM,KAAK,wBAAyB,EAAE,CAAC,CACnG,CAED,6BAA6B,EAAG,EAAG,CACjC,MAAM,EAAI,IAAI,MAAM,CAAC,EACrB,KAAK,sBAAwB,IAAIjxD,GAAG,gBAAiB,WAAY,CAAC,YAAa,iBAAiB,EAAG,GAAI,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI,sBAAuB,KAAK,iBAAiB,EAAG,KAAK,sBAAsB,QAAW,GAAM,CACtP,MAAM9jB,EAAI,EAAI,KAAK,sBAAsB,MAAOC,EAAI,EAAI,KAAK,sBAAsB,OACnF,EAAE,CAAC,EAAI,IAAOD,EAAG,EAAE,CAAC,EAAI,GAAMC,EAAG,EAAE,CAAC,EAAI,GAAMD,EAAG,EAAE,CAAC,EAAI,GAAMC,EAAG,EAAE,CAAC,EAAI,IAAOD,EAAG,EAAE,CAAC,EAAI,IAAOC,EAAG,EAAE,CAAC,EAAI,GAAMD,EAAG,EAAE,CAAC,EAAI,IAAOC,EAAG,EAAE,UAAU,YAAa,CAAC,EAAG,EAAE,SAAS,kBAAmB,KAAK,eAAe,CACpN,EAAE,KAAK,UAAU,IAAIm2E,GAAG,EAAE,UAAS,EAAI,gBAAiB,IAAM,KAAK,sBAAuB,EAAE,CAAC,CAC/F,CAED,yBAAyB,EAAG,EAAG,EAAG,EAAI,YAAa,CACjD,MAAMp2E,EAAI,EAAE,UAAS,EAAIC,EAAI,IAAI4hD,GAAG,YAAc,EAAG,IAAItyC,GAAE,EAAG,CAAC,EAAG,KAAK,CAAC,EAAG,EAAG,KAAMuU,GAAE,sBAAuB,EAAE,UAAW,EAAE,GAAI,KAAK,iBAAiB,EAAG,EAAI,IAAI+9B,GAAG,YAAc,EAAG,IAAItyC,GAAE,EAAG,CAAC,EAAG,KAAK,CAAC,EAAG,EAAG,KAAMuU,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI,KAAK,iBAAiB,EACtR7jB,EAAE,qBAAqB,IAAI,IAAM,CAC/B,MAAM,EAAIA,EAAE,MAAQD,EAAE,eAAc,EACpCC,EAAE,OAAS,KAAK,CAAC,EAAI,CACtB,GAAG,EAAE,qBAAqB,IAAI,IAAM,CACnC,MAAM,EAAI,EAAE,OAASD,EAAE,gBAAe,EACtC,EAAE,OAAS,KAAK,eAAiB,GAAK,EAAI,KAAK,CAAC,EAAI,CAC1D,CAAK,EAAG,KAAK,UAAU,IAAIo2E,GAAG,EAAE,YAAa,WAAa,EAAG,IAAMn2E,EAAG,EAAE,CAAC,EAAG,KAAK,UAAU,IAAIm2E,GAAG,EAAE,UAAS,EAAI,WAAa,EAAG,IAAM,EAAG,EAAE,CAAC,EAAG,KAAK,mBAAmB,KAAKn2E,CAAC,EAAG,KAAK,mBAAmB,KAAK,CAAC,CAC5M,CAED,+BAA+B,EAAG,EAAG,CACnC,KAAK,wBAA0B,IAAIklB,GAAG,kBAAmB,WAAY,CAAC,UAAU,EAAG,CAAC,eAAgB,aAAa,EAAG,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI,wBAAyB,KAAK,iBAAiB,EAAG,KAAK,wBAAwB,QAAW,GAAM,CACvQ,EAAE,0BAA0B,eAAgB,KAAK,YAAc,KAAK,2BAA6B,KAAK,mBAAmB,EAAG,EAAE,WAAW,cAAe,KAAK,WAAW,EAAG,EAAE,SAAS,WAAY,KAAK,gBAAgB,EAAG,KAAK,2BAA6B,KAAK,4BAClQ,EAAE,KAAK,UAAU,IAAIsyD,GAAG,EAAE,UAAS,EAAI,kBAAmB,IAAM,KAAK,wBAAyB,EAAE,CAAC,CACnG,CACD,kCAAkC,EAAG,EAAG,CACtC,MAAM,EAAI,EAAE,+BACZ,EAAE,eAAiB,GACnB,MAAM,EAAI,EAAE,aACZ,KAAK,2BAA6B,IAAIjxD,GAAG,SAAU,WAAY,CAAC,uBAAwB,iBAAkB,eAAgB,WAAY,wBAAyB,kBAAmB,aAAa,EAAG,CAAC,mBAAoB,iBAAiB,EAAG,EAAI,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,YAAa,GAAI;AAAA,mBACnR,KAAK,2BAA2B,QAAQ,CAAC,CAAC,EAC3D,MAAM9jB,EAAIuP,GAAE,OACZ,KAAK,2BAA2B,QAAWtP,GAAM,CAC/C,GAAI,KAAK,aAAe,KAAK,YAAY,sBAAwB,KAAK,OAAO,aAAc,CACzF,MAAM,EAAI,KAAK,YAAY,mBAAkB,EAC7CA,EAAE,WAAW,mBAAoB,EAAE,aAAc,GAAGA,EAAE,WAAW,kBAAmB,EAAE,SAAS,CAAC,CAAC,EAAGA,EAAE,UAAU,WAAY,KAAK,YAAY,OAAO,EAAGA,EAAE,WAAW,eAAgB,KAAK,YAAY,oBAAoB,EAAGA,EAAE,WAAW,iBAAkB,KAAK,OAAO,aAAa,cAAc,EAAGA,EAAE,UAAU,uBAAwB,EAAE,mBAAkB,CAAE,EAAGA,EAAE,SAAS,wBAAyB,KAAK,0BAA0B,EAAGA,EAAE,SAAS,kBAAmB,KAAK,oBAAoB,EAAGD,EAAE,EAAI,KAAK,YAAY,aAAa,KAAK,OAAO,YAAY,EAAGA,EAAE,EAAI,KAAK,YAAY,aAAa,KAAK,OAAO,YAAY,EAAGC,EAAE,WAAW,cAAeD,CAAC,CAC9nB,CACP,EAAO,KAAK,UAAU,IAAIo2E,GAAG,EAAE,YAAa,SAAU,IAAM,KAAK,2BAA4B,EAAE,CAAC,EAAG,KAAK,yBAAyB,EAAG,EAAI,EAAG,EAAG,0BAA0B,EAAG,KAAK,+BAAiC,IAAIjxD,GAAG,cAAe,WAAY,CAAE,EAAE,CAAC,iBAAiB,EAAG,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI,kBAAkB,EAAG,KAAK,+BAA+B,QAAW7jB,GAAM,CACrYA,EAAE,0BAA0B,kBAAmB,KAAK,cAAgB,KAAK,6BAA+B,KAAK,mBAAmB,EAAG,KAAK,2BAA6B,KAAK,+BAC3K,EAAE,KAAK,UAAU,IAAIm2E,GAAG,EAAE,UAAS,EAAI,cAAe,IAAM,KAAK,+BAAgC,EAAE,CAAC,CACtG,CAED,8BAA8B,EAAG,EAAG,CAClC,IAAI,EAAI,KAAK,IAAI,EAAGuF,GAAG,cAAc,EACrC,KAAK,qBAAuB,IAAIx2D,GAAG,eAAgB,WAAY,CAAC,YAAY,EAAG,GAAI,CAAE,MAAO,EAAG,OAAQ,GAAK,KAAMrB,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI,oBAAqB,CAAC,EACpL,MAAM,EAAI,GACV,KAAK,qBAAqB,QAAW7jB,GAAM,CACzC,MAAM,EAAI,EAAI,KAAK,qBAAqB,MAAO,EAAI,EAAI,KAAK,qBAAqB,OACjF,EAAE,CAAC,EAAI,IAAO,EAAG,EAAE,CAAC,EAAI,GAAM,EAAG,EAAE,CAAC,EAAI,GAAM,EAAG,EAAE,CAAC,EAAI,GAAM,EAAG,EAAE,CAAC,EAAI,IAAO,EAAG,EAAE,CAAC,EAAI,IAAO,EAAG,EAAE,CAAC,EAAI,GAAM,EAAG,EAAE,CAAC,EAAI,IAAO,EAAGA,EAAE,UAAU,aAAc,CAAC,CAChK,EAAE,KAAK,UAAU,IAAIm2E,GAAG,EAAE,UAAS,EAAI,eAAgB,IAAM,KAAK,qBAAsB,EAAE,CAAC,EAC5F,QAASn2E,EAAI07E,GAAG,eAAiB,EAAG17E,GAAK,EAAGA,IAAK,CAC/C,EAAI,KAAK,IAAI,EAAGA,CAAC,EACjB,IAAI,EAAI;AAAA,EAERA,IAAM,IAAM,GAAK,8BACjB,MAAM,EAAI,IAAIklB,GAAG,yBAA2BllB,EAAG,WAAY,CAAC,YAAa,mBAAmB,EAAG,CAAE,EAAE,CAAE,MAAO,EAAG,OAAQ,CAAG,EAAE,KAAM6jB,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI,EAAG,CAAC,EAClL,KAAK,iCAAiC,KAAK,CAAC,CAC7C,CACD,IAAI9jB,EAAI,KAAK,qBACb,KAAK,iCAAiC,QAAQ,CAACC,EAAG,IAAM,CACtD,MAAM,EAAI,IAAI,MAAM,EAAE,EACtBA,EAAE,QAAW,GAAM,CACjB,GAAI,CAACD,EACH,OACF,IAAI,EAAI,EACR,QAAS,EAAI,GAAI,EAAI,EAAG,IACtB,QAAS,EAAI,GAAI,EAAI,EAAG,IACtB,EAAE,CAAC,EAAI,EAAIA,EAAE,MAAO,EAAE,EAAI,CAAC,EAAI,EAAIA,EAAE,OAAQ,GAAK,EACtD,EAAE,UAAU,YAAa,CAAC,EAAG,EAAE,SAAS,oBAAqB,GAAMA,EAAE,KAAK,EAAG,IAAM,KAAK,iCAAiC,OAAS,EAAIA,EAAI,KAAK,qBAAuBA,EAAIC,CAClL,EAAS,IAAM,KAAK,iCAAiC,OAAS,IAAMA,EAAE,cAAgB,IAAM,CACpF,MAAM,EAAI,EAAE,UAAS,EAAG,WAAW,EAAG,EAAG,EAAG,CAAC,EAAG,EAAI,IAAIgQ,GAAG,GAAK,IAAM,IAAM,KAAM,GAAK,IAAM,KAAM,EAAI,IAAK,CAAC,EAC7G,EAAE,KAAM,GAAM,CACZ,MAAM,EAAI,IAAI,WAAW,EAAE,MAAM,EACjC,KAAK,sBAAwB,EAAE,CAAC,EAAI,EAAE,EAAI,EAAE,CAAC,EAAI,EAAE,EAAI,EAAE,CAAC,EAAI,EAAE,EAAI,EAAE,CAAC,EAAI,EAAE,GAAK,GAC5F,CAAS,CACF,GAAG,KAAK,UAAU,IAAImmE,GAAG,EAAE,YAAa,yBAA2B,EAAG,IAAMn2E,EAAG,EAAE,CAAC,CACzF,CAAK,CACF,CAED,sBAAsB,EAAG,EAAG,CAC1B,MAAM,EAAI,CAAC,aAAa,EACxB,KAAK,kBAAoB,EAAE,KAAK,uBAAuB,EAAG,KAAK,eAAiB,IAAIklB,GAAG,MAAO,WAAY,CAAC,kBAAkB,EAAG,CAAC,qBAAqB,EAAG,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,UAAW,EAAE,GAAI,EAAE,KAAK;AAAA,CACxN,EAAG,CAAC,EACD,IAAI,EAAI,EAAG9jB,EAAI,EAAGC,EAAI,EACtB,KAAK,eAAe,QAAW,GAAM,CACnC,GAAI,EAAE,0BAA0B,sBAAuB,KAAK,0BAA0B,EAAGD,GAAK,EAAE,UAAW,EAAC,aAAc,EAAE,EAAI,EAC9H,EAAI,KAAK,yBACN,CACH,MAAM,GAAKC,EAAID,GAAK,IACpB,KAAK,qBAAuB,EAAI,KAAK,gBAAkB,EAAI,GAAK,KAAK,gBAAkB,EAAI,KAAK,qBAAuB,EAAI,KAAK,gBAAkB,EAAI,GAAK,KAAK,gBAAkB,EAAI,EAAI,KAAK,oBAChM,CACD,KAAK,gBAAkB,KAAK,iBAAmB,KAAK,eAAiB,GAAK,EAAI2S,GAAG,MAAM,EAAG,KAAK,oBAAqB,IAAI,EAAG,EAAE,SAAS,mBAAoB,CAAC,GAAI1S,EAAID,EAAG,KAAK,2BAA6B,KAAK,mBAC9M,EAAE,KAAK,UAAU,IAAIo2E,GAAG,EAAE,UAAS,EAAI,MAAO,IAAM,KAAK,eAAgB,EAAE,CAAC,CAC9E,CAED,4BAA4B,EAAG,EAAG,CAChC,KAAK,qBAAuB,IAAIjxD,GAAG,eAAgB,WAAY,CAAC,WAAY,iBAAkB,YAAa,aAAc,oBAAoB,EAAG,CAAC,kBAAkB,EAAG,EAAI,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,YAAa,GAAI,qBAAsB,CAAC,EAAG,KAAK,UAAU,IAAIsyD,GAAG,EAAE,YAAa,eAAgB,IAAM,KAAK,qBAAsB,EAAE,CAAC,EAAG,KAAK,yBAAyB,EAAG,EAAI,EAAG,EAAG,oBAAoB,EAAG,KAAK,4BAA8B,IAAIjxD,GAAG,sBAAuB,WAAY,CAAC,gBAAgB,EAAG,CAAC,eAAgB,kBAAmB,iBAAiB,EAAG,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,UAAW,EAAE,GAAI,6BAA8B,CAAC,EAAG,KAAK,UAAU,IAAIsyD,GAAG,EAAE,UAAW,EAAE,sBAAuB,IAAM,KAAK,4BAA6B,EAAE,CAAC,EAC9uB,MAAM,EAAI,IAAI7mE,GAAE,EAAG,CAAC,EACpB,KAAK,qBAAqB,8BAAgC,GAAI,KAAK,qBAAqB,QAAWtP,GAAM,CACvGA,EAAE,0BAA0B,iBAAkB,KAAK,cAAgB,KAAK,mBAAmB,CAAC,EAAI,KAAK,mBAAmB,EAAGA,EAAE,WAAW,mBAAoB,KAAK,gBAAgB,EAAGA,EAAE,SAAS,WAAY,KAAK,iBAAiB,EAAGA,EAAE,SAAS,iBAAkB,KAAK,uBAAuB,EAAGA,EAAE,SAAS,YAAa,KAAK,kBAAkB,EAAG,EAAE,EAAI,KAAK,qBAAqB,MAAO,EAAE,EAAI,KAAK,qBAAqB,OAAQA,EAAE,WAAW,aAAc,CAAC,EAAGA,EAAE,SAAS,qBAAsB,KAAK,2BAA2B,CACvgB,EACI,MAAM,EAAI2P,EAAE,WAAW,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG5P,EAAI4P,EAAE,WAAW,GAAK,EAAG,GAAK,EAAG,EAAG,GAAK,GAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACjJ,KAAK,4BAA4B,QAAW3P,GAAM,CAChD,GAAI,CAAC,KAAK,OAAO,aACf,OACFA,EAAE,0BAA0B,eAAgB,KAAK,oBAAoB,EAAGA,EAAE,WAAW,kBAAmB,KAAK,oBAAoB,EAAGA,EAAE,WAAW,kBAAmB,KAAK,eAAe,EACxL,MAAM,EAAI,KAAK,OAAO,aAAa,cAAa,EAAG,OAAO,CAAC,EAAG,EAAI,KAAK,OAAO,aAAa,cAAa,EAAG,OAAO,CAAC,EACnH,IAAI,EAAIuP,EAAE,IAAI,EAAE,UAAW,EAAE,IAAIA,EAAE,EAAG,EAAG,CAAC,CAAC,EAAIA,EAAE,IAAI,EAAE,UAAW,EAAE,IAAIA,EAAE,EAAG,EAAG,CAAC,CAAC,EAClF,GAAK,EACL,MAAM,EAAII,EAAE,WAAW,KAAK,IAAI,CAAC,EAAI,GAAK,CAAC,KAAK,IAAI,CAAC,EAAG,EAAG,EAAG,KAAK,IAAI,CAAC,EAAG,KAAK,IAAI,CAAC,EAAI,GAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,EAAI5P,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EACzJC,EAAE,UAAU,iBAAkB,CAAC,EAAG,KAAK,2BAA6B,KAAK,yBAC/E,CACG,CAED,+BAA+B,EAAG,EAAG,CACnC,KAAK,wBAA0B,IAAIklB,GAAG,kBAAmB,WAAY,CAAC,UAAU,EAAG,CAAC,eAAgB,cAAc,EAAG,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,UAAW,EAAE,GAAI,yBAA0B,CAAC,EAAG,KAAK,wBAAwB,QAAW,GAAM,CACpP,EAAE,0BAA0B,eAAgB,KAAK,0BAA0B,EAAG,EAAE,WAAW,eAAgB,KAAK,iBAAkB,GAAG,EAAE,SAAS,WAAY,KAAK,oBAAoB,CACtL,EAAE,KAAK,UAAU,IAAIsyD,GAAG,EAAE,UAAS,EAAI,kBAAmB,IAAM,KAAK,wBAAyB,EAAE,CAAC,CACnG,CAED,6BAA6B,EAAG,EAAG,CACjC,GAAI,KAAK,yBAA0B,CACjC,MAAM,EAAI,IAAIsD,GAAG,gBAAiB,EAAG,EAAG,KAAM51D,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI,CAAC,EAC3F,EAAE,eAAiB,KAAK,eAAgB,EAAE,kBAAoB,KAAK,kBAAmB,KAAK,sBAAwB,CACzH,KAAW,CACL,KAAK,sBAAwB,IAAIqB,GAAG,gBAAiB,WAAY,CAAC,wBAAyB,qBAAsB,aAAc,cAAe,gBAAgB,EAAG,CAAC,cAAc,EAAG,EAAG,KAAMrB,GAAE,sBAAuB,EAAE,UAAS,EAAI,GAAI;AAAA,6BAC/M,KAAK,kBAAkB,QAAQ,CAAC,EAAG,CAAC,EAC7D,IAAI,EAAI,EAAG,EAAIlU,EAAE,SAAQ,EACzB,MAAM5P,EAAI4P,EAAE,WACZ,IAAI3P,EAAI2P,EAAE,WACV,MAAM,EAAIL,GAAE,OACZ,KAAK,sBAAsB,QAAW,GAAM,CAC1CtP,EAAI,EAAE,oBAAqB,EAAC,SAAS,EAAE,cAAa,CAAE,EAAGA,EAAE,YAAYD,CAAC,EAAG,EAAE,UAAU,wBAAyBA,CAAC,EAAG,EAAE,UAAU,qBAAsB,CAAC,EAAG,EAAIC,EAAG,EAAE,EAAI,KAAK,sBAAsB,MAAO,EAAE,EAAI,KAAK,sBAAsB,OAAQ,EAAE,WAAW,aAAc,CAAC,EAAG,EAAI,EAAE,UAAW,EAAC,OAAM,EAAK,GAAI,EAAE,SAAS,cAAe,CAAC,EAAG,EAAE,SAAS,iBAAkB,KAAK,cAAc,EAAG,EAAE,WAAW,eAAgB,KAAK,iBAAkB,EAC/b,CACK,CACD,KAAK,UAAU,IAAIm2E,GAAG,EAAE,UAAS,EAAI,gBAAiB,IAAM,KAAK,sBAAuB,EAAE,CAAC,CAC5F,CACD,kBAAmB,CACjB,OAAO,KAAK,OAAO,UAAW,EAAC,QAAO,EAAG,qBAAuB,KAAK,OAAO,6BAA8B,EAAC,WAAY,EAAC,SAAS,CAAC,EAAI,KAAK,OAAO,sBAAsB,aACzK,CACD,uBAAwB,CACtB,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IAAK,CAC7C,MAAM,EAAI,KAAK,SAAS,CAAC,EACzB,KAAK,qBAAuB,KAAK,oBAAoB,QAAQ,CAAC,EAAG,KAAK,kCAAoC,KAAK,iCAAiC,QAAQ,CAAC,EAAG,KAAK,yBAA2B,KAAK,wBAAwB,QAAQ,CAAC,EAAG,KAAK,uBAAyB,KAAK,sBAAsB,QAAQ,CAAC,EAAG,KAAK,yBAA2B,KAAK,wBAAwB,QAAQ,CAAC,EAAG,KAAK,4BAA8B,KAAK,2BAA2B,QAAQ,CAAC,EAAG,KAAK,mCAAqC,KAAK,kCAAkC,QAAQ,CAAC,EAAG,KAAK,mCAAqC,KAAK,kCAAkC,QAAQ,CAAC,EAAG,KAAK,gCAAkC,KAAK,+BAA+B,QAAQ,CAAC,EAAG,KAAK,iCAAmC,KAAK,gCAAgC,QAAQ,CAAC,EAAG,KAAK,sBAAwB,KAAK,qBAAqB,QAAQ,CAAC,EAAG,KAAK,6BAA+B,KAAK,4BAA4B,QAAQ,CAAC,EAC77B,QAAS,EAAI,EAAG,EAAI,KAAK,iCAAiC,OAAQ,IAChE,KAAK,iCAAiC,CAAC,EAAE,QAAQ,CAAC,EACpD,KAAK,sBAAwB,KAAK,qBAAqB,QAAQ,CAAC,EAAG,KAAK,gBAAkB,KAAK,eAAe,QAAQ,CAAC,EAAG,KAAK,qBAAuB,KAAK,oBAAoB,QAAQ,CAAC,EAAG,KAAK,yBAA2B,KAAK,wBAAwB,QAAQ,CAAC,EAAG,KAAK,uBAAyB,KAAK,sBAAsB,QAAQ,CAAC,EAAG,KAAK,iBAAmB,KAAK,gBAAgB,QAAQ,CAAC,EAC/X,QAAS,EAAI,EAAG,EAAI,KAAK,mBAAmB,OAAQ,IAClD,KAAK,mBAAmB,CAAC,EAAE,QAAQ,CAAC,EACtC,QAAS,EAAI,EAAG,EAAI,KAAK,mBAAmB,OAAQ,IAClD,KAAK,mBAAmB,CAAC,EAAE,QAAQ,CAAC,CACvC,CACD,KAAK,oBAAsB,KAAM,KAAK,wBAA0B,KAAM,KAAK,sBAAwB,KAAM,KAAK,wBAA0B,KAAM,KAAK,6BAA+B,KAAM,KAAK,2BAA6B,KAAM,KAAK,kCAAoC,KAAM,KAAK,kCAAoC,KAAM,KAAK,+BAAiC,KAAM,KAAK,gCAAkC,KAAM,KAAK,qBAAuB,KAAM,KAAK,4BAA8B,KAAM,KAAK,qBAAuB,KAAM,KAAK,eAAiB,KAAM,KAAK,oBAAsB,KAAM,KAAK,wBAA0B,KAAM,KAAK,sBAAwB,KAAM,KAAK,gBAAkB,KAAM,KAAK,iCAAmC,KAAM,KAAK,iCAAiC,OAAS,EAAG,KAAK,mBAAmB,OAAS,EAAG,KAAK,mBAAmB,OAAS,CAC50B,CAID,SAAU,CACR,KAAK,sBAAuB,EAAE,KAAK,OAAO,iCAAiC,gCAAgC,KAAK,MAAO,KAAK,QAAQ,EAAG,MAAM,QAAO,CACrJ,CAKD,WAAY,CACV,MAAM,EAAI9iE,GAAG,UAAU,IAAI,EAC3B,OAAO,KAAK,cAAgB,EAAE,cAAgB,KAAK,YAAY,IAAK,KAAK,mCAAqC,EAAE,iCAAmCA,GAAG,UAAU,KAAK,gCAAgC,GAAI,EAAE,WAAa,4BAA6B,CACtP,CAQD,OAAO,MAAM,EAAG,EAAG,EAAG,CACpB,MAAM,EAAIA,GAAG,MAAM,IAAM,IAAIqoE,GAAG,EAAE,MAAO,EAAG,EAAE,MAAM,EAAG,EAAG,EAAG,CAAC,EAC9D,OAAO,EAAE,gBAAkB,EAAE,YAAc,EAAE,aAAa,EAAE,aAAa,GAAI,EAAE,kCAAoCroE,GAAG,MAAM,IAAM,EAAE,iCAAkC,EAAE,iCAAkC,EAAG,CAAC,EAAG,CAClN,CACH,EACAqoE,GAAG,eAAiB,EACpBvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,kBAAmB,MAAM,EAC1CvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,YAAa,MAAM,EACpCvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,iBAAkB,MAAM,EACzCvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,WAAY,IAAI,EACjCvqE,EAAE,CACAS,GAAG,aAAa,CAClB,EAAG8pE,GAAG,UAAW,cAAe,MAAM,EACtCvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,6BAA8B,MAAM,EACrDvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,uBAAwB,MAAM,EAC/CvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,2BAA4B,MAAM,EACnDvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,sBAAuB,MAAM,EAC9CvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,kBAAmB,MAAM,EAC1CvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,kBAAmB,MAAM,EAC1CvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,kBAAmB,IAAI,EACxCvqE,EAAE,CACAS,GAAG,kBAAkB,CACvB,EAAG8pE,GAAG,UAAW,mBAAoB,MAAM,EAC3CvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,oBAAqB,MAAM,EAC5CvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,0BAA2B,MAAM,EAClDvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,qBAAsB,MAAM,EAC7CvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,8BAA+B,MAAM,EACtDvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,qBAAsB,MAAM,EAC7CvqE,EAAE,CACAS,GAAG,iBAAiB,CACtB,EAAG8pE,GAAG,UAAW,kBAAmB,MAAM,EAC1CvqE,EAAE,CACAS,GAAG,sBAAsB,CAC3B,EAAG8pE,GAAG,UAAW,uBAAwB,MAAM,EAC/CvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,uBAAwB,MAAM,EAC/CvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,wBAAyB,MAAM,EAChDvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,iBAAkB,IAAI,EACvCvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,wBAAyB,IAAI,EAC9CvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,SAAU,MAAM,EACjCvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,eAAgB,IAAI,EACrCvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,sBAAuB,IAAI,EAC5CvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,mBAAoB,IAAI,EACzCvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,aAAc,IAAI,EACnCvqE,EAAE,CACAQ,EAAG,CAEL,EAAG+pE,GAAG,UAAW,aAAc,IAAI,EACnCvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,oBAAqB,IAAI,EAC1CvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,cAAe,IAAI,EACpCvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,gCAAiC,IAAI,EACtDvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,4BAA6B,IAAI,EAClDvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,oBAAqB,IAAI,EAC1CvqE,EAAE,CACAQ,EAAG,CACL,EAAG+pE,GAAG,UAAW,UAAW,IAAI,EAChCtuE,GAAE,oCAAqCsuE,EAAE,EACzC,IAAAC,IAAA,KAAS,CACP,aAAc,CACZ,KAAK,QAAU,GAAI,KAAK,KAAO,0BAA2B,KAAK,iBAAmB,CAAC,EAAG,EAAG,CAAC,CAC3F,CACH,EACA,MAAMC,IAAK,sBAAuBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwHvCt4E,GAAE,qBAAqBq4E,GAAE,EAAIC,IAC7B,MAAMC,IAAK,oCAAqCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA+JrDx4E,GAAE,aAAau4E,GAAE,EAAIC,IACrB,MAAMC,IAAK,wCAAyCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYzD14E,GAAE,aAAay4E,GAAE,EAAIC,IACrB,MAAMC,IAAK,gDAAiDC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiCjE54E,GAAE,aAAa24E,GAAE,EAAIC,IACrB,MAAMC,IAAKzsE,EAAE,QAAQ,IAAIJ,EAAE,GAAK,GAAK,EAAG,EAAGC,GAAG,SAAQ,EAAI,IAAID,EAAE,GAAK,GAAK,EAAG,CAAC,EAAG8sE,IAAK1sE,EAAE,QAAQ,IAAIJ,EAAE,GAAK,GAAK,CAAC,EAAGC,GAAG,SAAQ,EAAI,IAAID,EAAE,GAAK,GAAK,CAAC,CAAC,SACrJ,MAAM+sE,YAAWrC,EAAG,CAIlB,IAAI,QAAQ,EAAG,CACb,KAAK,WAAa,IAAM,KAAK,SAAW,EAAG,KAAK,eAAc,EAC/D,CACD,IAAI,SAAU,CACZ,OAAO,KAAK,QACb,CAKD,IAAI,uBAAwB,CAC1B,OAAO,KAAK,sBACb,CACD,IAAI,sBAAsB,EAAG,CAC3B,IAAM,KAAK,yBAA2B,IAAM,GAAK,KAAK,yBAA2B,GAAK,IAAM,GAAK,KAAK,yBAA2B,GAAK,KAAK,uBAAyB,EAAG,KAAK,eAAc,GAAM,KAAK,uBAAyB,EAC/N,CAMD,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CACD,IAAI,cAAc,EAAG,CACnB,IAAM,KAAK,iBAAmB,KAAK,eAAiB,EAAG,KAAK,eAAc,EAC3E,CAMD,IAAI,wBAAyB,CAC3B,OAAO,KAAK,uBACb,CACD,IAAI,uBAAuB,EAAG,CAC5B,GAAI,IAAM,KAAK,wBACb,OACF,MAAM,EAAI,IAAM,GAAK,KAAK,0BAA4B,GAAK,IAAM,GAAK,KAAK,0BAA4B,EACvG,KAAK,wBAA0B,EAAG,GAAK,KAAK,eAAc,CAC3D,CACD,UAAW,CACT,OAAO,KAAK,wBAA0B,CACvC,CAKD,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CACD,IAAI,eAAe,EAAG,CACpB,IAAM,KAAK,kBAAoB,KAAK,gBAAkB,EAAG,KAAK,eAAc,EAC7E,CAMD,IAAI,yBAA0B,CAC5B,OAAO,KAAK,wBACb,CACD,IAAI,wBAAwB,EAAG,CAC7B,IAAM,KAAK,2BAA6B,KAAK,yBAA2B,EAAG,KAAK,qBAAoB,EACrG,CAID,IAAI,oBAAqB,CACvB,OAAO,KAAK,mBACb,CACD,IAAI,mBAAmB,EAAG,CACxB,KAAK,oBAAsB,EAAG,KAAK,qBAAoB,CACxD,CAKD,IAAI,2BAA4B,CAC9B,OAAO,KAAK,0BACb,CACD,IAAI,0BAA0B,EAAG,CAC/B,KAAK,2BAA6B,EAAG,KAAK,qBAAoB,CAC/D,CAID,IAAI,wBAAyB,CAC3B,OAAO,KAAK,uBACb,CACD,IAAI,uBAAuB,EAAG,CAC5B,KAAK,0BAA4B,IAAM,KAAK,wBAA0B,EAAG,KAAK,qBAAoB,EACnG,CAID,IAAI,+BAAgC,CAClC,OAAO,KAAK,8BACb,CACD,IAAI,8BAA8B,EAAG,CACnC,KAAK,iCAAmC,IAAM,KAAK,+BAAiC,EAAG,KAAK,qBAAoB,EACjH,CAID,IAAI,iCAAkC,CACpC,OAAO,KAAK,gCACb,CACD,IAAI,gCAAgC,EAAG,CACrC,KAAK,mCAAqC,IAAM,KAAK,iCAAmC,EAAG,KAAK,qBAAoB,EACrH,CAID,IAAI,uBAAwB,CAC1B,OAAO,KAAK,sBACb,CACD,IAAI,sBAAsB,EAAG,CAC3B,KAAK,yBAA2B,IAAM,KAAK,uBAAyB,EAAG,KAAK,qBAAoB,EACjG,CAID,IAAI,6BAA8B,CAChC,OAAO,KAAK,4BACb,CACD,IAAI,4BAA4B,EAAG,CACjC,KAAK,+BAAiC,IAAM,KAAK,6BAA+B,EAAG,KAAK,qBAAoB,EAC7G,CAKD,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CACD,IAAI,cAAc,EAAG,CACnB,KAAK,iBAAmB,IAAM,KAAK,eAAiB,EAAG,KAAK,qBAAoB,EACjF,CAKD,IAAI,YAAa,CACf,OAAO,KAAK,WACb,CACD,IAAI,WAAW,EAAG,CAChB,KAAK,cAAgB,IAAM,KAAK,YAAc,EAAG,KAAK,eAAc,EACrE,CAQD,IAAI,qCAAsC,CACxC,OAAO,KAAK,oCACb,CACD,IAAI,oCAAoC,EAAG,CACzC,KAAK,uCAAyC,IAAM,KAAK,qCAAuC,EAAG,KAAK,eAAc,EACvH,CAID,IAAI,uBAAwB,CAC1B,OAAO,KAAK,cACb,CAMD,IAAI,gCAAiC,CACnC,OAAO,KAAK,+BACb,CACD,IAAI,+BAA+B,EAAG,CACpC,KAAK,kCAAoC,IAAM,KAAK,gCAAkC,EAAG,KAAK,qBAAoB,EACnH,CAID,IAAI,0CAA2C,CAC7C,OAAO,KAAK,yCACb,CACD,IAAI,yCAAyC,EAAG,CAC9C,KAAK,4CAA8C,IAAM,KAAK,0CAA4C,EAAG,KAAK,iBAAmB,KAAK,eAAe,iCAAmC,GAC7L,CAID,IAAI,WAAY,CACd,OAAO,KAAK,UACb,CACD,IAAI,UAAU,EAAG,CACf,KAAK,aAAe,IAAM,KAAK,WAAa,EAAG,EAAI,IAAM,KAAK,SAAW,KAAK,eAAgB,EAAG,KAAK,WAAa,MAAQ,KAAK,OAAO,iCAAiC,8BAA8B,KAAK,MAAO,KAAK,QAAQ,GAAK,KAAK,WAAa,OAAS,KAAK,OAAO,iCAAiC,gCAAgC,KAAK,MAAO,KAAK,QAAQ,EAAG,KAAK,SAAW,KAAK,qBAAqB,MAAO,GAC1Z,CAKD,IAAI,iCAAkC,CACpC,OAAO,KAAK,gCACb,CACD,IAAI,gCAAgC,EAAG,CACrC,KAAK,mCAAqC,IAAM,KAAK,iCAAmC,EAAG,KAAK,eAAc,EAC/G,CAKD,IAAI,4BAA6B,CAC/B,OAAO,KAAK,2BACb,CACD,IAAI,2BAA2B,EAAG,CAChC,KAAK,8BAAgC,IAAM,KAAK,4BAA8B,EAAG,KAAK,eAAc,EACrG,CAWD,IAAI,OAAQ,CACV,OAAO,KAAK,MACb,CACD,IAAI,MAAM,EAAG,CACX,KAAK,SAAW,IAAM,KAAK,OAAS,EAAG,KAAK,eAAc,EAC3D,CAKD,UAAW,CACT,OAAO,KAAK,MACb,CACD,IAAI,yBAA0B,CAC5B,OAAO,KAAK,qBAAuB,KAAK,OAAO,uBAAyB,IACzE,CACD,IAAI,kBAAmB,CACrB,OAAO,KAAK,qBAAuB,KAAO,KAAK,OAAO,eACvD,CAID,IAAI,OAAQ,CACV,OAAO,KAAK,MACb,CAID,IAAI,aAAc,CAChB,MAAM,EAAI,KAAK,OAAO,UAAW,EAAC,QAAO,EACzC,OAAO,EAAE,sBAAwB,EAAE,UACpC,CASD,YAAY,EAAG,EAAG,EAAG,EAAI,GAAIl6E,EAAI,EAAG,CAClC,GAAI,MAAM,EAAE,UAAS,EAAI,CAAC,EAAG,KAAK,gBAAkB,kBAAmB,KAAK,oBAAsB,sBAAuB,KAAK,uBAAyB,yBAA0B,KAAK,SAAW,EAAG,KAAK,YAAc,IAAK,KAAK,KAAO,EAAG,KAAK,UAAY,GAAK,KAAK,SAAW,EAAG,KAAK,kCAAoC,EAAG,KAAK,SAAW,IAAK,KAAK,gBAAkB,GAAK,KAAK,qBAAuB,EAAG,KAAK,uBAAyB,IAAM,KAAK,eAAiB,EAAG,KAAK,wBAA0B,IAAM,KAAK,gBAAkB,EAAG,KAAK,yBAA2B,GAAI,KAAK,2BAA6B,GAAI,KAAK,wBAA0B,GAAI,KAAK,+BAAiC,GAAI,KAAK,iCAAmC,GAAI,KAAK,uBAAyB,GAAI,KAAK,6BAA+B,GAAI,KAAK,eAAiB,GAAI,KAAK,YAAc,GAAI,KAAK,qCAAuC,GAAI,KAAK,gCAAkC,EAAG,KAAK,0CAA4C,GAAI,KAAK,WAAa,GAAI,KAAK,iCAAmC,GAAI,KAAK,4BAA8B,GAAI,KAAK,OAAS,GAAI,KAAK,qBAAuB,GAAI,KAAK,SAAW,GAAI,KAAK,qBAAuB,GAAI,KAAK,SAAW,GAAK,EAAE,QAAS,KAAK,SAAW,KAAK,SAAS,MAAK,EAAI,KAAK,qBAAuB,KAAK,SAAS,MAAK,EAAI,KAAK,OAAS,EAAG,KAAK,aAAeA,EAAG,KAAK,qBAAuB,EAAG,KAAK,YAAa,CACz3C,GAAI,EAAE,iCAAiC,YAAY,IAAI,EAAG,KAAK,qBAAsB,CACnF,MAAMC,EAAI,EAAE,+BACZA,IAAMA,EAAE,mBAAqB,GAAIA,EAAE,gCAAkC,GAC7E,KAAa,CACL,MAAMA,EAAI,EAAE,wBACZA,IAAMA,EAAE,gCAAkC,GAAIA,EAAE,YAAW,EAC5D,CACD,KAAK,eAAc,CACpB,CACF,CAKD,cAAe,CACb,MAAO,sBACR,CAKD,UAAU,EAAG,CACX,KAAK,qBAAqB,KAAK,CAAC,EAAG,KAAK,gBACzC,CAKD,aAAa,EAAG,CACd,MAAM,EAAI,KAAK,qBAAqB,QAAQ,CAAC,EAC7C,KAAK,qBAAqB,OAAO,EAAG,CAAC,EAAG,KAAK,gBAC9C,CAKD,QAAQ,EAAI,GAAI,CACd,KAAK,wBAAyB,KAAK,sBAAqB,EAAI,GAAK,KAAK,OAAO,gCAAiC,KAAK,OAAO,iCAAiC,gCAAgC,KAAK,MAAO,KAAK,QAAQ,EAAG,MAAM,SAC9N,CACD,iBAAkB,CAChB,IAAIQ,EAAGT,EACP,MAAM2I,EAAI,KAAK,OAAO,UAAS,EAAI1D,EAAI,KAAK,iBAC5C,IAAIzE,EAAI,CAAE,MAAOmI,EAAE,eAAgB,EAAE,OAAQA,EAAE,gBAAe,GAC9D,GAAI1D,KAAOxE,EAAI,KAAK,OAAO,eAAiB,KAAO,OAASA,EAAE,qBAAoB,KAAQ,KAAK,gBAAiB,CAC9G,MAAMR,EAAIgF,EAAE,kBACZhF,GAAKA,EAAE,WAAaO,EAAIP,EAAE,SAASgF,EAAE,SAAS,CAAC,CAAC,EAAE,QAAS,EACjE,MAAYjF,EAAI,KAAK,kBAAoB,MAAQA,EAAE,eAAiBQ,EAAE,MAAQ,KAAK,gBAAgB,aAAa,MAAOA,EAAE,OAAS,KAAK,gBAAgB,aAAa,QAChK,OAAOA,CACR,CACD,sBAAuB,CACrB,IAAIA,EAAGC,EAAGT,EAAGC,EAAG2D,EAChB,MAAM+E,EAAI,IACT,KAAK,yBAA2B,KAAK,mBAAqBA,EAAE,KAAK,uBAAuB,EAAG,KAAK,0BAA4BA,EAAE,KAAK,sCAAsC,EAAG,KAAK,OAAO,sBAAwBA,EAAE,KAAK,uCAAuC,EAAG,KAAK,sBAAwBA,EAAE,KAAK,kCAAkC,EAAG,KAAK,oBAAoB,iBAAmBA,EAAE,KAAK,2CAA2C,EAAG,KAAK,oBAAoB,YAAcA,EAAE,KAAK,4CAA4C,GAAI,KAAK,4BAA8BA,EAAE,KAAK,4BAA4B,EAAG,KAAK,sCAAwCA,EAAE,KAAK,yCAAyC,EAAG,KAAK,yBAA2BA,EAAE,KAAK,sCAAsC,EAAG,KAAK,gCAAkCA,EAAE,KAAK,6CAA6C,EAAG,KAAK,kCAAoCA,EAAE,KAAK,kDAAkD,EAAG,KAAK,wBAA0BA,EAAE,KAAK,qCAAqC,EAAG,KAAK,8BAAgCA,EAAE,KAAK,2CAA2C,EAAG,KAAK,gBAAkBA,EAAE,KAAK,oCAAoC,EAAG,KAAK,SAAQ,GAAMA,EAAE,KAAK,sBAAsB,EAAG,KAAK,QAAUA,EAAE,KAAK,0BAA0B,EAAG,KAAK,kCAAoCA,EAAE,KAAK,kCAAkC,EAAG,KAAK,6BAA+BA,EAAE,KAAK,mCAAmC,EAAG,KAAK,aAAeA,EAAE,KAAK,gCAAgC,EAAG,KAAK,yBAA2B,GAAKA,EAAE,KAAK,uCAAuC,KAAMnI,EAAI,KAAK,0BAA4B,KAAO,OAASA,EAAE,gCAAkCC,EAAI,KAAK,mBAAqB,KAAO,OAASA,EAAE,+BAAiCkI,EAAE,KAAK,qCAAqC,GAAI3I,EAAI,KAAK,0BAA4B,MAAQA,EAAE,oBAAsB2I,EAAE,KAAK,2BAA2B,EACv5D,MAAM1D,GAAKhF,EAAI,KAAK,WAAa,KAAO,OAASA,EAAE,CAAC,EACpDgF,GAAKA,EAAE,OAAS,GAAK0D,EAAE,KAAK,6BAA6B,GAAI/E,EAAI,KAAK,kBAAoB,MAAQA,EAAE,aAAa+E,EAAE,KAAK;AAAA,CAC3H,CAAC,CACC,CACD,gBAAiB,CACf,IAAI1D,EACJ,GAAI,CAAC,KAAK,YACR,OACF,GAAI,CAAC,KAAK,WAAY,CACpB,KAAK,SAAW,GAChB,MACD,CACD,KAAK,SAAW,GAChB,MAAM0D,EAAI,KAAK,OAAO,UAAS,EAC/B,GAAI,KAAK,sBAAqB,EAAI,KAAK,sBAAqB,EAAI,KAAK,WAAa,OAAS,KAAK,OAAO,iCAAiC,gCAAgC,KAAK,MAAO,KAAK,QAAQ,EAAG,KAAK,SAAW,KAAK,qBAAqB,MAAK,GAAK,KAAK,OAAM,EAAI,KAAK,qCAAsC,CAChT,MAAM,GAAK1D,EAAI,KAAK,WAAa,KAAO,OAASA,EAAE,CAAC,EACpD,IAAM,KAAK,qBAAuB,EAAG,KAAK,eAAiB,IAAI8tD,GAAG,KAAK,OAAQ,OAAQ,OAAQ,OAAQ,EAAG,GAAI,cAAc,EAAG,KAAK,eAAe,WAAW,EAAI,IAAK,KAAK,eAAe,eAAiB,GAAI,KAAK,eAAe,iCAAmC,KAAK,0CAA2C,KAAK,qBAAoB,EAAI,EAAE,oBAAoB,KAAK,KAAK,eAAe,YAAa,GACjZ,CACD,KAAK,sBAAuB,EAAE,KAAK,UAAU,IAAIqjB,GAAGztE,EAAG,KAAK,gBAAiB,IAAM,KAAK,gBAAiB,EAAE,CAAC,EAAG,KAAK,SAAQ,IAAO,KAAK,oCAAmC,EAAI,KAAK,UAAU,IAAIytE,GAAGztE,EAAG,KAAK,oBAAqB,IAAM,CAAC,KAAK,kBAAmB,KAAK,iBAAiB,EAAG,EAAE,CAAC,EAAG,KAAK,UAAU,IAAIytE,GAAGztE,EAAG,KAAK,uBAAwB,IAAM,KAAK,yBAA0B,EAAE,CAAC,GAAI,KAAK,WAAa,MAAQ,KAAK,OAAO,iCAAiC,8BAA8B,KAAK,MAAO,KAAK,QAAQ,CACjgB,CACD,sBAAuB,CACrB,GAAI,CAAC,KAAK,eACR,OACF,MAAM,EAAI,KAAK,gBAAiB,EAAE,EAAI,KAAK,eAAe,YAAa,EAAC,QAAO,EAAI,EAAI,KAAK,MAAM,EAAE,OAAS,KAAK,gCAAkC,EAAE,EAAG,EAAI,KAAK,MAAM,EAAE,QAAU,KAAK,gCAAkC,EAAE,GAC5N,EAAE,QAAU,GAAK,EAAE,SAAW,IAAM,KAAK,eAAe,YAAa,EAAC,OAAO,CAAE,MAAO,EAAG,OAAQ,CAAC,CAAE,CACtG,CACD,uBAAwB,CACtB,GAAI,KAAK,eAAgB,CACvB,GAAI,KAAK,qBAAsB,CAC7B,MAAM,EAAI,KAAK,qBAAqB,oBAAoB,QAAQ,KAAK,eAAe,aAAa,GAAK,GACtG,IAAM,IAAM,KAAK,qBAAqB,oBAAoB,OAAO,EAAG,CAAC,CACtE,CACD,KAAK,qBAAuB,KAAM,KAAK,eAAe,YAAW,EAAG,SACrE,CACD,KAAK,eAAiB,IACvB,CACD,uBAAwB,CACtB,IAAI,EAAG,EAAG,EAAG,EACb,QAAS3I,EAAI,EAAGA,EAAI,KAAK,SAAS,OAAQA,IAAK,CAC7C,MAAMC,EAAI,KAAK,SAASD,CAAC,GACxB,EAAI,KAAK,kBAAoB,MAAQ,EAAE,QAAQC,CAAC,GAAI,EAAI,KAAK,oBAAsB,MAAQ,EAAE,QAAQA,CAAC,GAAI,EAAI,KAAK,oBAAsB,MAAQ,EAAE,QAAQA,CAAC,GAAI,EAAI,KAAK,2BAA6B,MAAQ,EAAE,QAAQA,CAAC,CAC3N,CACD,KAAK,gBAAkB,KAAM,KAAK,kBAAoB,KAAM,KAAK,kBAAoB,KAAM,KAAK,yBAA2B,IAC5H,CACD,uBAAwB,CACtB,KAAK,gBAAkB,IAAIklB,GAAG,MAAO,yBAA0B,CAC7D,aACA,sBACA,OACA,UACA,YACA,oCACA,WACA,WACA,WACA,kBACA,kBACA,aACA,cACA,uBACA,sBACA,kBACA,iBACA,uBACD,EAAE,CAAC,iBAAkB,gBAAiB,sBAAuB,eAAgB,iBAAkB,kBAAkB,EAAG,EAAG,KAAM,KAAK,aAAc,KAAK,OAAO,UAAS,EAAI,GAAI,GAAI,KAAK,YAAY,EAAG,KAAK,qBAAsB,EAAE,KAAK,gBAAgB,QAAW,GAAM,CACvQ,KAAK,qBAAoB,EACzB,MAAM,EAAI,KAAK,wBAAyB,EAAI,KAAK,iBACjD,GAAI,CAAC,GAAK,CAAC,EACT,OACF,GAAI,EAAG,CACL,MAAM,EAAI,EAAE,gBAAgBk0D,GAAG,yBAAyB,EACxD,EAAE,WAAW,gBAAiB,EAAE,WAAY,EAAC,SAAS,CAAC,CAAC,EAAG,EAAE,WAAW,sBAAuB,EAAE,WAAY,EAAC,SAAS,CAAC,CAAC,EAAG,EAAE,WAAW,eAAgB,EAAE,WAAY,EAAC,SAAS,CAAC,CAAC,CACpL,SAAU,EAAG,CACZ,MAAM,EAAI,EAAE,SAAS,CAAC,EAAG,EAAI,EAAE,SAAS,CAAC,EAAG,EAAI,EAAE,SAAS,CAAC,EAC5D,EAAE,WAAW,gBAAiB,EAAE,gBAAiB,EAAC,SAAS,CAAC,CAAC,EAAG,EAAE,WAAW,eAAgB,EAAE,gBAAiB,EAAC,SAAS,CAAC,CAAC,EAAG,EAAE,WAAW,sBAAuB,EAAE,gBAAiB,EAAC,SAAS,CAAC,CAAC,CACnM,CACD,KAAK,sCAAwC,KAAK,iBAAmB,EAAE,WAAW,mBAAoB,KAAK,eAAe,aAAa,EAAG,EAAE,SAAS,iBAAkB,KAAK,gCAAkC,CAAC,GAC/M,MAAM,EAAI,KAAK,OAAO,aACtB,GAAI,CAAC,EACH,OACF,MAAMr5E,EAAI,EAAE,cAAa,EAAIC,EAAI,EAAE,sBACnCA,EAAE,YAAY0P,EAAE,OAAO,CAAC,CAAC,EAAG3P,EAAE,YAAY2P,EAAE,OAAO,CAAC,CAAC,EAAG,EAAE,UAAU,aAAc1P,CAAC,EAAG,EAAE,UAAU,OAAQD,CAAC,EAAG,EAAE,UAAU,UAAW2P,EAAE,OAAO,CAAC,CAAC,EAAG,EAAE,UAAU,sBAAuBA,EAAE,OAAO,CAAC,CAAC,EAAG,EAAE,SAAS,YAAa,KAAK,SAAS,EAAG,EAAE,SAAS,oCAAqC,KAAK,iCAAiC,EAAG,EAAE,SAAS,WAAY,KAAK,QAAQ,EAAG,EAAE,SAAS,WAAY,KAAK,IAAI,EAAG,EAAE,SAAS,WAAY,KAAK,QAAQ,EAAG,EAAE,SAAS,kBAAmB,KAAK,eAAe,EAAG,EAAE,SAAS,aAAc,EAAE,IAAI,EAAG,EAAE,SAAS,cAAe,KAAK,WAAW,EAAG,EAAE,SAAS,uBAAwB,KAAK,oBAAoB,EAAG,EAAE,SAAS,wBAAyB,KAAK,sBAAsB,EACzrB,MAAM,EAAI,KAAK,kBACfC,EAAE,aAAa,EAAE,MAAO,EAAE,OAAQ,EAAGD,EAAE,OAAO,CAAC,CAAC,EAAG1P,EAAE,cAAc,KAAK,OAAO,UAAS,EAAG,SAAWq8E,IAAKD,IAAI1sE,EAAE,OAAO,CAAC,CAAC,EAAGA,EAAE,OAAO,CAAC,EAAE,cAAcA,EAAE,OAAO,CAAC,EAAGA,EAAE,OAAO,CAAC,CAAC,EAAG,EAAE,UAAU,kBAAmBA,EAAE,OAAO,CAAC,CAAC,EAAG,KAAK,sBAAwB,EAAE,WAAW,iBAAkB,KAAK,mBAAmB,EAAG,KAAK,oBAAoB,kBAAoB,EAAE,WAAW,sBAAuB,KAAK,oBAAoB,mBAAmB,EAAG,EAAE,WAAW,kBAAmB,KAAK,oBAAoB,eAAe,GAC/f,EAAE,KAAK,gBAAgB,QAAU,KAAK,QAAS,KAAK,uBAAyB,KAAK,gBAAgB,4BAA8B,IAAI6sE,IACtI,CACD,qCAAsC,CACpC,MAAM,EAAI,KAAK,OAAO,UAAS,EAC/B,KAAK,kBAAoB,IAAIr3D,GAAG,WAAY,6BAA8B,CAAC,kBAAkB,EAAG,CAAC,gBAAgB,EAAG,KAAK,WAAa,GAAK,KAAK,eAAiB,GAAK,EAAG,KAAM,EAAG,EAAG,GAAI,GAAI,KAAK,YAAY,EAAG,KAAK,kBAAkB,UAAY,GAAI,KAAK,kBAAkB,kBAAkB,IAAKnlB,GAAM,CAC1S,IAAI4D,EACJ,MAAM3D,IAAM2D,EAAI,KAAK,oBAAsB,KAAO,OAASA,EAAE,aAAa,QAAU,KAAK,OAAO,UAAS,EAAG,iBAC5G5D,EAAE,UAAU,mBAAoB,KAAK,wBAA0BC,EAAG,CAAC,CACzE,CAAK,EAAG,KAAK,kBAAoB,IAAIklB,GAAG,WAAY,6BAA8B,CAAC,kBAAkB,EAAG,CAAC,gBAAgB,EAAG,KAAK,SAAU,EAAG,GAAK,KAAK,gBAAkB,GAAK,EAAG,KAAM,EAAG,EAAG,GAAI,GAAI,KAAK,YAAY,EAAG,KAAK,kBAAkB,UAAY,GAAI,KAAK,kBAAkB,kBAAkB,IAAKnlB,GAAM,CAC/S,IAAI4D,EACJ,MAAM3D,IAAM2D,EAAI,KAAK,oBAAsB,KAAO,OAASA,EAAE,aAAa,SAAW,KAAK,OAAO,UAAS,EAAG,kBAC7G5D,EAAE,UAAU,mBAAoB,EAAG,KAAK,wBAA0BC,CAAC,CACzE,CAAK,EACD,MAAM,EAAI,CAAC,WAAY,oCAAqC,uBAAuB,EAAG,EAAI,CAAC,iBAAkB,cAAe,qBAAqB,EACjJ,IAAI,EAAI,GACR,KAAK,SAAW,GAAK;AAAA,GACrB,KAAK,mCAAqC,GAAK;AAAA,GAC/C,KAAK,8BAAgC,GAAK;AAAA,GAC1C,KAAK,aAAe,GAAK;AAAA,EAC1B,EAAE,KAAK,aAAc,qBAAqB,EAAG,EAAE,KAAK,eAAgB,eAAe,GAAI,KAAK,yBAA2B,IAAM,GAAK,yCAA0C,KAAK,yBAA2B,IAAIklB,GAAG,kBAAmB,qCAAsC,EAAG,EAAG,KAAK,SAAU,EAAG,GAAK,KAAK,gBAAkB,GAAK,EAAG,KAAM,EAAG,EAAG,GAAI,EAAG,KAAK,YAAY,EAAG,KAAK,yBAAyB,UAAY,GAAI,KAAK,yBAAyB,kBAAkB,IAAKnlB,GAAM,CACrd,IAAIuC,EACJ,MAAMtC,EAAI,KAAK,wBAAyB2D,EAAI,KAAK,iBACjD,GAAI,EAAE,CAACA,GAAK,CAAC3D,GAAI,CACf,GAAI2D,KAAOrB,EAAI,KAAK,OAAO,eAAiB,KAAO,OAASA,EAAE,qBAAoB,KAAQ,KAAK,gBAAiB,CAC9G,MAAM,EAAIqB,EAAE,kBACZ,GAAK,EAAE,UAAY5D,EAAE,WAAW,cAAe,EAAE,SAAS4D,EAAE,SAAS,CAAC,CAAC,CAAC,CACzE,MACC5D,EAAE,0BAA0B,cAAe,KAAK,eAAe,EACjE,GAAIC,EAAG,CACL,MAAM,EAAIA,EAAE,gBAAgBo5E,GAAG,yBAAyB,EACxDr5E,EAAE,WAAW,sBAAuBC,EAAE,WAAU,EAAG,SAAS,CAAC,CAAC,EAAG,KAAK,aAAeD,EAAE,WAAW,gBAAiBC,EAAE,WAAY,EAAC,SAAS,CAAC,CAAC,EAAGD,EAAE,WAAW,eAAgBC,EAAE,WAAY,EAAC,SAAS,CAAC,CAAC,EACxM,SAAU2D,EAAG,CACZ,MAAM,EAAIA,EAAE,SAAS,CAAC,EACtB,GAAI5D,EAAE,WAAW,sBAAuB4D,EAAE,kBAAkB,SAAS,CAAC,CAAC,EAAG,KAAK,WAAY,CACzF,MAAM,EAAIA,EAAE,SAAS,CAAC,EAAG,EAAIA,EAAE,SAAS,CAAC,EACzC5D,EAAE,WAAW,gBAAiB4D,EAAE,gBAAiB,EAAC,SAAS,CAAC,CAAC,EAAG5D,EAAE,WAAW,eAAgB4D,EAAE,gBAAe,EAAG,SAAS,CAAC,CAAC,CAC7H,CACF,CACD,GAAI5D,EAAE,SAAS,WAAY,KAAK,QAAQ,EAAGA,EAAE,SAAS,oCAAqC,KAAK,iCAAiC,EAAGA,EAAE,SAAS,wBAAyB,KAAK,sBAAsB,EAAG,KAAK,WAAY,CACrN,MAAM,EAAI,KAAK,OAAO,aACtB,GAAI,EAAG,CACL,MAAM,EAAI,EAAE,sBACZ,EAAE,YAAY2P,EAAE,OAAO,CAAC,CAAC,EAAG3P,EAAE,UAAU,aAAc,CAAC,EAAGA,EAAE,UAAU,sBAAuB2P,EAAE,OAAO,CAAC,CAAC,CACzG,CACF,CACF,CACP,CAAK,CACF,CAKD,WAAY,CACV,MAAM,EAAI2D,GAAG,UAAU,IAAI,EAC3B,OAAO,EAAE,WAAa,uBAAwB,CAC/C,CAQD,OAAO,MAAM,EAAG,EAAG,EAAG,CACpB,OAAOA,GAAG,MAAM,IAAM,IAAIipE,IAAG,EAAE,MAAO,EAAG,EAAE,MAAM,EAAG,EAAG,EAAG,CAAC,CAC5D,CACH,EACAnrE,EAAE,CACAQ,EAAG,CACL,EAAG2qE,GAAG,UAAW,UAAW,IAAI,EAChCnrE,EAAE,CACAQ,EAAG,CACL,EAAG2qE,GAAG,UAAW,cAAe,MAAM,EACtCnrE,EAAE,CACAQ,EAAG,CACL,EAAG2qE,GAAG,UAAW,OAAQ,MAAM,EAC/BnrE,EAAE,CACAQ,EAAG,CACL,EAAG2qE,GAAG,UAAW,YAAa,MAAM,EACpCnrE,EAAE,CACAQ,EAAG,CACL,EAAG2qE,GAAG,UAAW,WAAY,MAAM,EACnCnrE,EAAE,CACAQ,EAAG,CACL,EAAG2qE,GAAG,UAAW,oCAAqC,MAAM,EAC5DnrE,EAAE,CACAQ,EAAG,CACL,EAAG2qE,GAAG,UAAW,WAAY,MAAM,EACnCnrE,EAAE,CACAQ,EAAG,CACL,EAAG2qE,GAAG,UAAW,kBAAmB,MAAM,EAC1CnrE,EAAE,CACAQ,EAAG,CACL,EAAG2qE,GAAG,UAAW,uBAAwB,MAAM,EAC/CnrE,EAAE,CACAQ,EAAG,CACL,EAAG2qE,GAAG,UAAW,yBAA0B,MAAM,EACjDnrE,EAAE,CACAQ,EAAE,gBAAgB,CACpB,EAAG2qE,GAAG,UAAW,iBAAkB,MAAM,EACzCnrE,EAAE,CACAQ,EAAG,CACL,EAAG2qE,GAAG,UAAW,gBAAiB,IAAI,EACtCnrE,EAAE,CACAQ,EAAE,wBAAwB,CAC5B,EAAG2qE,GAAG,UAAW,0BAA2B,MAAM,EAClDnrE,EAAE,CACAQ,EAAE,gBAAgB,CACpB,EAAG2qE,GAAG,UAAW,kBAAmB,MAAM,EAC1CnrE,EAAE,CACAQ,EAAE,yBAAyB,CAC7B,EAAG2qE,GAAG,UAAW,2BAA4B,MAAM,EACnDnrE,EAAE,CACAQ,EAAE,oBAAoB,CACxB,EAAG2qE,GAAG,UAAW,sBAAuB,MAAM,EAC9CnrE,EAAE,CACAQ,EAAE,2BAA2B,CAC/B,EAAG2qE,GAAG,UAAW,6BAA8B,MAAM,EACrDnrE,EAAE,CACAQ,EAAE,wBAAwB,CAC5B,EAAG2qE,GAAG,UAAW,0BAA2B,MAAM,EAClDnrE,EAAE,CACAQ,EAAE,+BAA+B,CACnC,EAAG2qE,GAAG,UAAW,iCAAkC,MAAM,EACzDnrE,EAAE,CACAQ,EAAE,iCAAiC,CACrC,EAAG2qE,GAAG,UAAW,mCAAoC,MAAM,EAC3DnrE,EAAE,CACAQ,EAAE,uBAAuB,CAC3B,EAAG2qE,GAAG,UAAW,yBAA0B,MAAM,EACjDnrE,EAAE,CACAQ,EAAE,6BAA6B,CACjC,EAAG2qE,GAAG,UAAW,+BAAgC,MAAM,EACvDnrE,EAAE,CACAQ,EAAE,eAAe,CACnB,EAAG2qE,GAAG,UAAW,iBAAkB,MAAM,EACzCnrE,EAAE,CACAQ,EAAE,YAAY,CAChB,EAAG2qE,GAAG,UAAW,cAAe,MAAM,EACtCnrE,EAAE,CACAQ,EAAE,qCAAqC,CACzC,EAAG2qE,GAAG,UAAW,uCAAwC,MAAM,EAC/DnrE,EAAE,CACAQ,EAAE,gCAAgC,CACpC,EAAG2qE,GAAG,UAAW,kCAAmC,MAAM,EAC1DnrE,EAAE,CACAQ,EAAE,0CAA0C,CAC9C,EAAG2qE,GAAG,UAAW,4CAA6C,MAAM,EACpEnrE,EAAE,CACAQ,EAAE,WAAW,CACf,EAAG2qE,GAAG,UAAW,aAAc,MAAM,EACrCnrE,EAAE,CACAQ,EAAE,iCAAiC,CACrC,EAAG2qE,GAAG,UAAW,mCAAoC,MAAM,EAC3DnrE,EAAE,CACAQ,EAAE,4BAA4B,CAChC,EAAG2qE,GAAG,UAAW,8BAA+B,MAAM,EACtDnrE,EAAE,CACAQ,EAAE,OAAO,CACX,EAAG2qE,GAAG,UAAW,SAAU,MAAM,EACjClvE,GAAE,+BAAgCkvE,EAAE,EACpC,MAAME,IAAK,iBAAkBC,IAAK;AAAA,EAElCl5E,GAAE,aAAai5E,GAAE,EAAIC,WACrB,MAAMC,YAAWzC,EAAG,CAIlB,IAAI,QAAQ,EAAG,CACb,KAAK,WAAa,IAAM,KAAK,SAAW,EAAG,KAAK,IAAI,WAAW,CAAC,EACjE,CACD,IAAI,SAAU,CACZ,OAAO,KAAK,QACb,CAID,IAAI,YAAY,EAAG,CACjB,KAAK,eAAiB,IAAM,KAAK,aAAe,EAAG,KAAK,kBAAoB,KAAK,gBAAgB,QAAU,GAC5G,CACD,IAAI,aAAc,CAChB,OAAO,KAAK,YACb,CAID,IAAI,WAAY,CACd,OAAO,KAAK,UACb,CACD,IAAI,UAAU,EAAG,CACf,KAAK,aAAe,IAAM,KAAK,WAAa,EAAG,EAAI,IAAM,KAAK,SAAW,KAAK,eAAgB,EAAG,KAAK,WAAa,OAAS,KAAK,aAAe,GAAI,KAAK,OAAO,iCAAiC,8BAA8B,KAAK,MAAO,KAAK,QAAQ,IAAM,KAAK,WAAa,OAAS,KAAK,OAAO,iCAAiC,gCAAgC,KAAK,MAAO,KAAK,QAAQ,EAAG,KAAK,SAAW,KAAK,qBAAqB,MAAO,GACpb,CAID,IAAI,OAAQ,CACV,OAAO,KAAK,MACb,CAID,IAAI,aAAc,CAChB,OAAO,KAAK,OAAO,UAAW,EAAC,QAAO,EAAG,UAC1C,CAQD,YAAY,EAAG,EAAG,EAAG,EAAI,EAAG,CAC1B,MAAMl6E,EAAI,EAAE,YACZ,MAAMA,EAAG,CAAC,EAAG,KAAK,gBAAkB,kBAAmB,KAAK,cAAgB,gBAAiB,KAAK,SAAW,EAAG,KAAK,aAAe,EAAG,KAAK,OAAS,IAAM,KAAK,oBAAsB,GAAI,KAAK,WAAa,GAAI,KAAK,SAAW,GAAI,KAAK,qBAAuB,GAAI,KAAK,UAAY,EAAG,KAAK,aAAe,GAAI,KAAK,SAAW,GAAK,EAAE,QAAS,KAAK,SAAW,KAAK,SAAS,MAAO,EAAE,KAAK,qBAAuB,KAAK,SAAS,MAAO,EAAE,KAAK,OAAS,EAAG,KAAK,aAAe,EAAG,KAAK,IAAM,IAAI48E,IAAG,KAAK,OAAO,EAAG,KAAK,cAAgB,KAAK,wBAAwB58E,EAAE,eAAgB,EAAEA,EAAE,gBAAiB,GAAG,EAAE,iCAAiC,YAAY,IAAI,EAAG,KAAK,eAAc,EACzpB,CAKD,cAAe,CACb,MAAO,sBACR,CAKD,UAAU,EAAG,CACX,KAAK,qBAAqB,KAAK,CAAC,EAAG,KAAK,gBACzC,CAKD,aAAa,EAAG,CACd,MAAM,EAAI,KAAK,qBAAqB,QAAQ,CAAC,EAC7C,KAAK,qBAAqB,OAAO,EAAG,CAAC,EAAG,KAAK,gBAC9C,CAID,SAAU,CACR,KAAK,wBAAyB,KAAK,OAAO,iCAAiC,gCAAgC,KAAK,MAAO,KAAK,QAAQ,EAAG,KAAK,MAAM,QAAO,EAAI,KAAK,MAAM,QAAS,EAAE,MAAM,SAC1L,CACD,wBAAwB,EAAG,EAAG,CAC5B,IAAIS,EAAGT,EACP,MAAMQ,EAAI,KAAK,OAAO,UAAS,GAC9BC,EAAI,KAAK,QAAU,MAAQA,EAAE,QAAS,GAAGT,EAAI,KAAK,QAAU,MAAQA,EAAE,QAAS,EAAE,KAAK,MAAQQ,EAAE,0BAA0B,CAAE,MAAO,EAAG,OAAQ,CAAG,EAAE,CAAE,gBAAiB,GAAI,oBAAqB,GAAI,KAAM,EAAG,aAAc,CAAC,CAAE,EAAG,KAAK,MAAQA,EAAE,0BAA0B,CAAE,MAAO,EAAG,OAAQ,CAAG,EAAE,CAAE,gBAAiB,GAAI,oBAAqB,GAAI,KAAM,EAAG,aAAc,CAAC,CAAE,EAAG,KAAK,IAAI,cAAc,EAAI,EAAG,EAAI,CAAC,EAAG,KAAK,aAAe,EAC3a,CACD,sBAAuB,CACrB,IAAIyE,EACJ,MAAM0D,EAAI,IACT1D,EAAI,KAAK,kBAAoB,MAAQA,EAAE,aAAa0D,EAAE,KAAK;AAAA,CAC/D,CAAC,CACC,CACD,gBAAiB,CACf,GAAI,CAAC,KAAK,YACR,OACF,GAAI,CAAC,KAAK,WAAY,CACpB,KAAK,SAAW,GAChB,MACD,CACD,KAAK,SAAW,GAChB,MAAM,EAAI,KAAK,OAAO,UAAS,EAC/B,KAAK,sBAAuB,EAAE,KAAK,WAAa,OAAS,KAAK,OAAO,iCAAiC,gCAAgC,KAAK,MAAO,KAAK,QAAQ,EAAG,KAAK,SAAW,KAAK,qBAAqB,MAAO,GAAG,KAAK,OAAQ,EAAE,KAAK,sBAAqB,EAAI,KAAK,UAAU,IAAIytE,GAAG,EAAG,KAAK,gBAAiB,IAAM,KAAK,gBAAiB,EAAE,CAAC,EAAG,KAAK,uBAAsB,EAAI,KAAK,UAAU,IAAIA,GAAG,EAAG,KAAK,cAAe,IAAM,KAAK,iBAAkB,EAAE,CAAC,EAAG,KAAK,WAAa,MAAQ,KAAK,OAAO,iCAAiC,8BAA8B,KAAK,MAAO,KAAK,QAAQ,CAClkB,CACD,uBAAwB,CACtB,IAAI,EAAG,EACP,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IAAK,CAC7C,MAAM,EAAI,KAAK,SAAS,CAAC,GACxB,EAAI,KAAK,kBAAoB,MAAQ,EAAE,QAAQ,CAAC,GAAI,EAAI,KAAK,mBAAqB,MAAQ,EAAE,QAAQ,CAAC,EAAG,EAAE,oBAAoB,EAAE,CAClI,CACD,KAAK,gBAAkB,KAAM,KAAK,iBAAmB,IACtD,CACD,uBAAwB,CACtB,KAAK,gBAAkB,IAAIjxD,GAAG,MAAO,MAAO,CAC1C,SAAU,CAAC,QAAQ,EACnB,SAAU,CAAC,gBAAgB,EAC3B,KAAM,EACN,OAAQ,KAAK,OAAO,UAAW,EAC/B,YAAa,KAAK,YACnB,GAAG,KAAK,gBAAgB,QAAU,KAAK,aAAc,KAAK,qBAAsB,EAAE,KAAK,gBAAgB,qBAAqB,IAAI,IAAM,CACrI,IAAIlgB,EAAGzE,EACP,MAAMmI,EAAI,KAAK,OAAO,aACtB,KAAM1D,EAAI,KAAK,kBAAoB,KAAO,OAASA,EAAE,SAAW,KAAK,MAAM,SAAWzE,EAAI,KAAK,kBAAoB,KAAO,OAASA,EAAE,UAAY,KAAK,MAAM,OAAQ,CAClK,MAAM,EAAI,KAAK,OAAO,UAAS,EAC/B,KAAK,wBAAwB,EAAE,eAAgB,EAAE,EAAE,gBAAe,CAAE,CACrE,CACD,GAAImI,GAAK,CAACA,EAAE,SACV,GAAIA,EAAE,OAAS6jB,GAAG,mBAAoB,CACpC,MAAM,EAAI7jB,EAAE,sBACZ,EAAE,iBAAiB,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,CAAC,CACxE,KAAe,CACL,MAAM,EAAIA,EAAE,oBAAoB,EAAE,EAClC,EAAE,iBAAiB,EAAG,KAAK,IAAI,EAAI,EAAE,EAAE,EAAE,EAAG,KAAK,IAAI,EAAI,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,CAAC,CACnF,CACH,KAAK,mBAAqB,KAAK,iBAAiB,aAAe,KAAK,UAAY,KAAK,MAAQ,KAAK,OAAQ,KAAK,UAAY,KAAK,UAAY,EAAG,KAAK,IAAI,MAC9J,CAAK,EAAG,KAAK,gBAAgB,kBAAkB,IAAK,GAAM,CACpD,MAAM,EAAI,KAAK,OAAO,aACtB,EAAE,aAAa,iBAAkB,KAAK,UAAY,KAAK,MAAM,QAAU,KAAK,MAAM,OAAO,EAAG,EAAE,SAAS,SAAU,GAAK,MAAQ,EAAE,UAAY,KAAK,qBAAuB,KAAK,aAAe,EAAI,KAAK,MAAM,EAAG,KAAK,aAAe,EACxO,CAAK,CACF,CACD,wBAAyB,CACvB,MAAM,EAAI,KAAK,OAAO,UAAS,EAC/B,KAAK,iBAAmB,IAAI2c,GAAG,UAAW,EAAG,KAAM,EAAG,CAAC,EAAG,KAAK,iBAAiB,aAAe,KAAK,MAAO,KAAK,iBAAiB,UAAY,EAC9I,CAKD,WAAY,CACV,MAAM,EAAIhS,GAAG,UAAU,IAAI,EAC3B,OAAO,EAAE,WAAa,uBAAwB,CAC/C,CAQD,OAAO,MAAM,EAAG,EAAG,EAAG,CACpB,OAAOA,GAAG,MAAM,IAAM,IAAIqpE,IAAG,EAAE,MAAO,EAAG,EAAE,MAAM,EAAG,EAAG,EAAG,CAAC,CAC5D,CACH,EACAvrE,EAAE,CACAQ,EAAE,SAAS,CACb,EAAG+qE,GAAG,UAAW,WAAY,MAAM,EACnCvrE,EAAE,CACAQ,EAAE,aAAa,CACjB,EAAG+qE,GAAG,UAAW,eAAgB,MAAM,EACvCvrE,EAAE,CACAQ,EAAG,CACL,EAAG+qE,GAAG,UAAW,SAAU,MAAM,EACjCvrE,EAAE,CACAQ,EAAG,CACL,EAAG+qE,GAAG,UAAW,sBAAuB,MAAM,EAC9CvrE,EAAE,CACAQ,EAAE,WAAW,CACf,EAAG+qE,GAAG,UAAW,aAAc,MAAM,EACrCtvE,GAAE,+BAAgCsvE,EAAE,EACpC,MAAME,IAAK,qBAAsBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qCAqBtCt5E,GAAE,aAAaq5E,GAAE,EAAIC,IAClB,IAACC,IACH,SAAS18E,EAAG,CACXA,EAAEA,EAAE,MAAQ,CAAC,EAAI,QAASA,EAAEA,EAAE,SAAW,CAAC,EAAI,WAAYA,EAAEA,EAAE,WAAa,CAAC,EAAI,aAAcA,EAAEA,EAAE,aAAe,CAAC,EAAI,cACxH,GAAG08E,KAAOA,GAAK,CAAE,EAAC,UAClB,cAAiB53D,EAAG,CAKlB,cAAe,CACb,MAAO,oBACR,CAYD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAI,EAAGC,EAAG,EAAI,EAAG,EAAG,CAC1C,MAAM,EAAG,UAAW,CAAC,qBAAqB,EAAG,KAAM,EAAG,EAAGD,EAAGC,EAAG,EAAG,KAAM,CAAC,EAAG,KAAK,UAAY,EAAG,KAAK,mBAAqB,EAC1H,IAAI,EAAI,WACR,KAAK,YAAc,EAAI,GAAK,oBAAsB,KAAK,YAAc,EAAI,GAAK,uBAAyB,KAAK,YAAc,EAAI,GAAK,mCAAqC,KAAK,YAAc,IAAM,GAAK,4BAA6B,KAAK,aAAa,CAAC,EAAG,KAAK,QAAW,GAAM,CAC7Q,EAAE,SAAS,sBAAuB,KAAK,kBAAkB,CAC/D,CACG,CACH,EACA,MAAM+8E,IAAK,uCAAwCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASxDz5E,GAAE,aAAaw5E,GAAE,EAAIC,IACrB,MAAMC,IAAK,4CAA6CC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsC7D35E,GAAE,aAAa05E,GAAE,EAAIC,IACrB,MAAMC,IAAK,2CAA4CC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAe5D75E,GAAE,aAAa45E,GAAE,EAAIC,WACrB,MAAMC,YAAWn4D,EAAG,CAKlB,IAAI,iBAAkB,CACpB,OAAOviB,EAAE,KAAK,gHAAgH,EAAG,EAClI,CACD,IAAI,gBAAgB,EAAG,CACrBA,EAAE,KAAK,gHAAgH,CACxH,CAaD,YAAY,EAAG,EAAG,EAAG,EAAG5C,EAAI,IAAKC,EAAI6jB,GAAE,sBAAuB,EAAG,EAAG,EAAG,CACrE,MAAM,EAAG,4BAA6B,CAAC,QAAS,WAAY,SAAU,uBAAwB,SAAS,EAAG,CAAC,wBAAwB,EAAG,EAAE,kBAAoB,EAAG,EAAG7jB,EAAG,EAAG,EAAG,uBAAyBD,CAAC,EAAG,KAAK,mBAAqBuP,GAAE,KAAI,EAAI,KAAK,mBAAqBC,EAAE,KAAI,EAAI,KAAK,sBAAwB,GAAI,KAAK,OAAS,GAAI,KAAK,eAAiB,GAAI,KAAK,eAAiB,CAAE,EAAE,KAAK,SAAW,GAAK,KAAK,MAAQ,OAAS,KAAK,OAAS,OAAS,KAAK,QAAU,KAAO,EAA0B,GAAE,SAAQ,GAAO,GAAK,KAAK,OAAQ,EAAI,EAAE,UAAS,EAAI,KAAK,UAAY,IAAImK,GAAG,EAAG,EAAG,EAAG,CAAC,EAAE,SAAS,EAAE,eAAgB,EAAE,EAAE,iBAAiB,EAAG,KAAK,KAAO,GAAK2jE,IAAG,kBAAkB,gCAAiC,CAAC,EAAG,KAAK,YAAY,EAAG,EAAE,WAAa,CAAC,EAAG,KAAK,WAAc,GAAM,CAC/vB,KAAK,aAAe,KAAK,QAAQ,CAAC,EAAG,KAAK,WAAa,IACxD,EAAE,KAAK,kBAAkB,IAAK,GAAM,CACnC,KAAK,6BAA6B,CAAC,EAAG,EAAE,WAAW,yBAA0B,KAAK,6BAA6B,EAAG,EAAE,SAAS,WAAY,KAAK,QAAQ,EAAG,EAAE,SAAS,QAAS,KAAK,KAAK,EAAG,EAAE,SAAS,SAAU,KAAK,MAAM,EAAG,EAAE,SAAS,UAAW,KAAK,OAAO,EAAG,EAAE,WAAW,uBAAwB,KAAK,kBAAkB,CACpU,CAAK,CACF,CAKD,cAAe,CACb,MAAO,sCACR,CACD,SAAS,EAAG,EAAG,CACb,IAAIx8E,EACJ,MAAMN,EAAI,EAAE,UACZ,GAAIA,IAAM,KAAK,MAAQA,EAAE,SACvB,OAAOA,EAAE,SAAS,QAAQA,CAAC,EAC7B,MAAMC,GAAKK,EAAIN,EAAE,8BAA8B,yBAA2B,KAAO,OAASM,EAAE,KAAK,OAAO,UAAW,EAAC,mBAAmB,EACvI,GAAIL,EACF,OAAOA,EAAE,kBAAkBD,EAAG,EAAG,CAAC,EACpC,MAAMR,EAAI,GAAIC,EAAI,CAACgU,EAAE,YAAY,EAAGrQ,EAAI,EAAE,cAC1CA,IAAMA,EAAE,oBAAsB5D,EAAE,KAAK,mBAAmB,EAAGQ,EAAE,sBAAsByT,EAAE,MAAM,IAAMhU,EAAE,KAAKgU,EAAE,MAAM,EAAGjU,EAAE,KAAK,aAAa,GAAIQ,EAAE,sBAAsByT,EAAE,OAAO,IAAMhU,EAAE,KAAKgU,EAAE,OAAO,EAAGjU,EAAE,KAAK,aAAa,IAAKQ,EAAE,UAAYA,EAAE,0BAA4BP,EAAE,KAAKgU,EAAE,mBAAmB,EAAGhU,EAAE,KAAKgU,EAAE,mBAAmB,EAAGjU,EAAE,KAAK,gCAAkCQ,EAAE,kBAAkB,EAAGR,EAAE,KAAK,yBAA2BQ,EAAE,SAAWA,EAAE,SAAS,MAAM,OAAS,EAAI,EAAE,GAAKR,EAAE,KAAK,gCAAgC,EAAG,IAAMA,EAAE,KAAK,mBAAmB,EAAG2vB,GAAG1vB,CAAC,EAAG,EAAE,iBAAkB,EAAC,kBAAoBD,EAAE,KAAK,wBAAwB,GACxnB,MAAMuC,EAAI,EAAE,gBAAgB,OAAQ,EAAE,EAAGD,EAAIC,EAAE,QAAS2G,EAAIlJ,EAAE,KAAK;AAAA,CACtE,EACG,OAAOsC,IAAM4G,GAAK3G,EAAE,UAAU/B,EAAE,WAAW,UAAW,EAAC,aAAa,gCAAiCP,EAAG,CAAC,QAAS,SAAU,iBAAkB,eAAe,EAAG,CAAC,gBAAgB,EAAGiJ,EAAG,OAAQ,OAAQ,OAAQ,CAAE,4BAA6B1I,EAAE,kBAAoB,GAAG0I,CAAC,EAAG3G,EAAE,OAAO,SACrR,CAKD,sBAAsB,EAAG,CACvB,KAAK,mBAAqB,CAC3B,CAKD,uBAAwB,CACtB,OAAO,KAAK,kBACb,CAKD,QAAQ,EAAG,CACT,MAAM,EAAI,EAAE,SAAU,EAAC,oBAAoB,QAAQ,KAAK,6BAA6B,EACrF,IAAM,IAAM,EAAE,SAAQ,EAAG,oBAAoB,OAAO,EAAG,CAAC,EAAG,KAAK,8BAA8B,QAAO,EAAI,MAAM,QAAQ,CAAC,CACzH,CAKD,SAAU,CACR,OAAO,KAAK,6BACb,CAED,cAAc,EAAG,CACf,OAAO,KAAK,eAAe,OAAS,GAAK,KAAK,eAAe,QAAQ,CAAC,IAAM,IAAM,KAAK,eAAe,OAAS,GAAK,KAAK,eAAe,QAAQ,CAAC,IAAM,EACxJ,CACD,YAAY,EAAG,EAAG,CAChB,MAAM,EAAI,EAAE,YACZ,KAAK,8BAAgC,IAAI2iB,GAAG,+BAAgC,CAAE,MAAO,EAAE,eAAgB,EAAG,EAAG,OAAQ,EAAE,gBAAe,EAAK,CAAC,EAAI,EAAG,GAAI,GAAI,CAAC,EAAG,KAAK,8BAA8B,MAAQpB,GAAE,kBAAmB,KAAK,8BAA8B,MAAQA,GAAE,kBAAmB,KAAK,8BAA8B,WAAa,KAAM,KAAK,8BAA8B,gBAAkB,GAAI,KAAK,8BAA8B,qBAAuB,GACxc,MAAM,EAAI,KAAK,YACf,EAAI,EAAE,oBAAoB,KAAK,KAAK,6BAA6B,EAAI,EAAE,oBAAoB,KAAK,KAAK,6BAA6B,EAClI,MAAM9jB,EAAK,GAAM,CACf,IAAIkG,EACJ,MAAM5D,EAAI,EAAE,iBAAgB,EAAI4G,EAAI,EAAE,mBACtC,GAAI,KAAK,cAAc5G,CAAC,EACtB,OACF4G,EAAE,8BAA8B,sBAAwB,GACxD,MAAMpI,EAAI,EAAE,cACZ,GAAI,CAACA,EACH,OACF,MAAMF,EAAI0B,EAAE,SAAQ,EAAIzB,EAAID,EAAE,YAC9BC,EAAE,SAASC,EAAE,gBAAiB,OAAQ,OAAQ,OAAQA,EAAE,aAAa,EACrE,MAAMkF,EAAI1D,EAAE,wBAAwB,EAAE,IAAK,CAAC,CAAC,EAAE,mBAAkB,CAAE,EACnE,GAAI0D,EAAE,WACJ,OACF,MAAMC,EAAIpF,EAAE,QAAS,EAAC,kBAAoBmF,EAAE,iBAAiB,EAAE,GAAG,IAAM,MAAQ1D,EAAE,kBAClF,GAAI,KAAK,SAAS,EAAG2D,CAAC,EAAG,CACvB,MAAME,GAAKD,EAAIgD,EAAE,8BAA8B,yBAA2B,KAAO,OAAShD,EAAErF,EAAE,mBAAmB,EACjH,IAAIuF,EAAI,EAAE,kBACV,GAAI9D,IAAM,KAAK,MAAQ,CAAC8D,IAAMA,EAAItF,EAAE,mBAAoB,CAACsF,EACvD,OACF,MAAMoB,EAAIpB,EAAE,OACZ,GAAIvF,EAAE,aAAauF,CAAC,EAAGH,GAAK3D,EAAE,MAAM,EAAGkF,EAAG1G,EAAE,QAAQ,EAAGwB,IAAM,KAAK,KAChExB,EAAE,KAAKoI,EAAE,eAAgB,EAAE5G,CAAC,UACrB6D,EACPA,EAAE,eAAe+C,EAAE,eAAc,EAAIA,EAAG,CAAC,MACtC,CACH,GAAI1B,EAAE,UAAU,iBAAkB5G,EAAE,mBAAoB,GAAGE,GAAKA,EAAE,mBAAoB,CACpF,MAAM,EAAIA,EAAE,sBACZ0G,EAAE,WAAW,iBAAkB,CAAC,EAAG,GAAKA,EAAE,UAAU,gBAAiB,EAAE,iBAAkB,EAC1F,CACDlF,EAAE,UAAYA,EAAE,0BAA4BA,EAAE,UAAYkF,EAAE,YAAY,SAAUlF,EAAE,SAAS,qBAAqBA,CAAC,CAAC,CACrH,CACD2D,GAAK3D,EAAE,kBAAoBkF,EAAE,UAAU,QAAS0B,EAAE,eAAgB,GAAG5G,EAAE,kBAAkB4G,EAAG,EAAG1B,EAAGgqB,GAAG,iBAAkBxrB,EAAGC,EAAG,CAAC,EAAGwB,IAAM,CACrI,GAAKD,EAAE,UAAU,QAASC,CAAC,CACrC,CAAS,CACF,CACP,EACI,IAAIxH,EACJ,MAAM,EAAI,IAAIiT,GAAG,EAAG,EAAG,EAAG,CAAC,EAC3B,KAAK,8BAA8B,yBAAyB,IAAI,IAAM,CACpEjT,EAAI,EAAE,WAAY,EAAE,WAAa,CAClC,GAAG,KAAK,8BAA8B,wBAAwB,IAAI,IAAM,CACvE,EAAE,WAAaA,CACrB,CAAK,EAAG,KAAK,8BAA8B,sBAAwB,CAAC,EAAG,EAAG,IAAM,CAC1E,IAAK,GAAK,IAAM,IAAM,EAAE,UACtB,QAAS,EAAI,EAAG,EAAI,EAAE,UAAU,OAAQ,EAAE,EAAG,CAC3C,MAAM,EAAI,EAAE,UAAU,CAAC,EAAGY,EAAI,EAAE,YAAW,EAAImF,EAAI,EAAE,iBAAgB,EACrE,GAAI,CAACnF,EACH,SACF,MAAMoF,EAAID,EAAE,wBAAwB,EAAE,IAAK,CAAC,CAAC,EAAE,mBAAoB,GAAGE,EAAI,EAAE,UAAU,kBAAoBD,EAAE,iBAAiB,EAAE,GAAG,IAAM,MAAQD,EAAE,kBAClJ,GAAI,CAAC,KAAK,SAAS,EAAGE,CAAC,EACrB,MAAO,EACV,CACH,MAAO,EACb,EAAO,KAAK,8BAA8B,qBAAuB,CAAC,EAAG,EAAG,EAAG,IAAM,CAC3E,MAAM,EAAI,EAAE,YACZ,IAAIrF,EACJ,GAAI,EAAE,OAAQ,CACZ,IAAK,EAAE,cAAc,EAAE,EAAGA,EAAI,EAAGA,EAAI,EAAE,OAAQA,IAC7Cb,EAAE,EAAE,KAAKa,CAAC,CAAC,EACb,EAAE,cAAc,EAAE,CACnB,CACD,IAAKA,EAAI,EAAGA,EAAI,EAAE,OAAQA,IACxBb,EAAE,EAAE,KAAKa,CAAC,CAAC,EACb,IAAKA,EAAI,EAAGA,EAAI,EAAE,OAAQA,IACxBb,EAAE,EAAE,KAAKa,CAAC,CAAC,EACb,GAAI,EAAE,OAAQ,CACZ,IAAKA,EAAI,EAAGA,EAAI,EAAE,OAAQA,IAAK,CAC7B,MAAMoF,EAAI,EAAE,KAAKpF,CAAC,EAAGqF,EAAID,EAAE,kBAC3BC,GAAK,EAAE,eAAiBD,EAAE,YAAcA,EAAE,UAAU,WAAYA,EAAE,kBAAoBC,EAAE,eAAe,YAAY,SAAS,EAAE,aAAa,QAAQ,EAAE,OAAM,EAC5J,CACD,MAAMF,EAAI,EAAE,KAAK,MAAM,EAAG,EAAE,MAAM,EAClC,IAAKA,EAAE,KAAK,CAACC,EAAGC,IAAMD,EAAE,YAAcC,EAAE,YAAc,EAAID,EAAE,YAAcC,EAAE,YAAc,GAAKD,EAAE,kBAAoBC,EAAE,kBAAoB,EAAID,EAAE,kBAAoBC,EAAE,kBAAoB,GAAK,CAAC,EAAG,EAAE,aAAa,CAAC,EAAGrF,EAAI,EAAGA,EAAImF,EAAE,OAAQnF,IAC1Ob,EAAEgG,EAAEnF,CAAC,CAAC,EACR,EAAE,aAAa,CAAC,CACjB,CACP,CACG,CACD,6BAA6B,EAAG,CAC9B,MAAM,EAAI,EAAE,qBACZ,IAAI,EACJ,KAAK,sBAAwB,EAAI,KAAK,mBAAqB,KAAK,aAAe,EAAI,KAAK,aAAa,SAAW,EAAI,KAAK,KAAK,OAAS,KAAK,KAAK,sBAAwB,KAAK,KAAK,SACnL,MAAM,EAAI2O,EAAE,QAAQ,EAAGI,EAAE,SAAQ,EAAI,EAAG,KAAK,SAAS,EACtD,KAAK,mBAAmB,EAAI,EAAE,EAAI,KAAK,UAAU,MAAO,KAAK,mBAAmB,EAAI,EAAE,EAAI,KAAK,UAAU,OAAQ,KAAK,SAAW,KAAK,mBAAmB,EAAI,EAAI,KAAK,mBAAmB,EAC1L,CAQD,OAAO,kBAAkB,EAAG,EAAG,CAC7B,MAAM,EAAIizB,GAAG,EAAG,CAAE,KAAM,CAAC,EAAI,CAAC,EAC9B,EAAE,cAAgBjU,GAAG,kBACrB,MAAM,EAAI,IAAI4d,GAAG,EAAI,WAAY,CAAC,EAClC,OAAO,EAAE,cAAgB,IAAIv5B,GAAG,EAAG,EAAG,CAAC,EAAG,EAAE,SAAW,EAAG,CAC3D,CACH,EACA7B,EAAE,CACAa,GAAI,CACN,EAAGqrE,GAAG,UAAW,qBAAsB,MAAM,EAC7ClsE,EAAE,CACAQ,EAAG,CACL,EAAG0rE,GAAG,UAAW,wBAAyB,MAAM,EAChDlsE,EAAE,CACAQ,EAAG,CACL,EAAG0rE,GAAG,UAAW,SAAU,MAAM,EACjClsE,EAAE,CACAc,GAAI,CACN,EAAGorE,GAAG,UAAW,OAAQ,MAAM,EAC/BlsE,EAAE,CACAQ,EAAG,CACL,EAAG0rE,GAAG,UAAW,iBAAkB,MAAM,EACzClsE,EAAE,CACAQ,EAAG,CACL,EAAG0rE,GAAG,UAAW,iBAAkB,MAAM,EACzClsE,EAAE,CACAQ,EAAG,CACL,EAAG0rE,GAAG,UAAW,WAAY,MAAM,EACnClsE,EAAE,CACAQ,EAAG,CACL,EAAG0rE,GAAG,UAAW,QAAS,MAAM,EAChClsE,EAAE,CACAQ,EAAG,CACL,EAAG0rE,GAAG,UAAW,SAAU,MAAM,EACjClsE,EAAE,CACAQ,EAAG,CACL,EAAG0rE,GAAG,UAAW,UAAW,MAAM,EAClCjwE,GAAE,+CAAgDiwE,EAAE,EACpD,MAAMC,IAAK,kCAAmCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oNAanDh6E,GAAE,aAAa+5E,GAAE,EAAIC,WACrB,MAAMC,YAAWt4D,EAAG,CAKlB,cAAe,CACb,MAAO,iCACR,CAaD,YAAY,EAAG,EAAG,EAAG,EAAGnlB,EAAGC,EAAG,EAAG,EAAI,EAAG,EAAI,GAAI,CAC9C,MAAM,EAAG,uBAAwB,CAAC,kBAAmB,kBAAkB,EAAG,CAAC,iBAAkB,eAAe,EAAG,EAAG,EAAGD,EAAGC,EAAG,EAAG,OAAQ,EAAG,OAAQ,KAAM,CAAC,EAAG,KAAK,MAAQ,EAAG,KAAK,OAAS,EAAG,KAAK,wBAA0B,EAAE,6BAA4B,EAAI,KAAK,yBAA2B,KAAK,wBAAwB,6BAA+B2C,EAAE,MAAM,qHAAqH,EAAG,KAAK,QAAW,GAAM,CAC7e,EAAE,SAAS,kBAAmB,GAAM,KAAK,IAAI,KAAK,MAAQ,KAAK,MAAO,IAAI,CAAC,EAAG,EAAE,SAAS,mBAAoB,GAAM,KAAK,IAAI,KAAK,OAAS,KAAK,OAAQ,IAAI,CAAC,EAC5J,MAAM,EAAI,KAAK,wBAAwB,WAAU,EAAG,SAAS,CAAC,EAC9D,EAAE,WAAW,gBAAiB,CAAC,CACrC,GAASA,EAAE,MAAM,mHAAmH,CACjI,CAID,WAAW,aAAc,CACvB,MAAM,EAAIlC,GAAG,kBACb,OAAO,EAAI,EAAE,QAAS,EAAC,qBAAuB,EAC/C,CAID,OAAO,OAAO,EAAG,EAAG,EAAG,EAAG,CACxB,OAAO4S,GAAG,MAAM,IAAM,IAAImqE,IAAG,EAAE,KAAM,EAAG,EAAE,QAAS,EAAG,EAAE,yBAA0B,EAAE,YAAa,EAAE,YAAa,EAAE,QAAQ,EAAG,EAAG,EAAG,CAAC,CACrI,CACH,EACArsE,EAAE,CACAQ,EAAG,CACL,EAAG6rE,GAAG,UAAW,QAAS,MAAM,EAChCrsE,EAAE,CACAQ,EAAG,CACL,EAAG6rE,GAAG,UAAW,SAAU,MAAM,EACjCpwE,GAAE,0CAA2CowE,EAAE,EAC/C,MAAMC,IAAK,yCAA0CC,IAAK;AAAA,EAE1Dn6E,GAAE,qBAAqBk6E,GAAE,EAAIC,IAC7B,MAAMC,IAAK,oCAAqCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASrDr6E,GAAE,qBAAqBo6E,GAAE,EAAIC,IAC7B,MAAMC,IAAK,iCAAkCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOlDv6E,GAAE,aAAas6E,GAAE,EAAIC,IACrB,MAAMC,IAAK,uCAAwCC,IAAK;AAAA;AAAA;AAAA;AAAA,EAKxDz6E,GAAE,qBAAqBw6E,GAAE,EAAIC,IAC7B,MAAMC,IAAK,kCAAmCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcnD36E,GAAE,aAAa06E,GAAE,EAAIC,IACrB,OAAO,eAAe9lE,GAAG,UAAW,yBAA0B,CAC5D,IAAK,UAAW,CACd,OAAO,KAAK,yBAA2B,EACxC,EACD,IAAK,SAAShY,EAAG,CACf,KAAK,wBAA0BA,EAAGA,GAAK,KAAK,uBAAsB,CACnE,EACD,WAAY,GACZ,aAAc,EAChB,CAAC,EACDgY,GAAG,UAAU,uBAAyB,UAAW,CAC/C,OAAO,KAAK,uBAAyB,KAAK,qBAAuB,IAAI+lE,IAAG,IAAI,GAAI,KAAK,oBACvF,EACA,OAAO,eAAexvD,GAAG,UAAW,kBAAmB,CACrD,IAAK,UAAW,CACd,OAAO,KAAK,kBAAoB,EACjC,EACD,IAAK,SAASvuB,EAAG,CACf,KAAK,iBAAmBA,EAAGA,GAAK,KAAK,SAAQ,EAAG,wBACjD,EACD,WAAY,GACZ,aAAc,EAChB,CAAC,EACD,IAAAg+E,IAAA,KAAS,CAKP,YAAY,EAAG,CACb,KAAK,KAAOrpE,GAAG,yBAA0B,KAAK,WAAa,IAAI/B,GAAG,EAAG,EAAG,CAAC,EAAG,KAAK,UAAY,IAAIA,GAAG,GAAK,GAAK,EAAG,EAAG,KAAK,cAAgB,GAAI,KAAK,+BAAiC,IAAInT,GAAK,KAAK,8BAAgC,IAAIA,GAAK,KAAK,2BAA6B,IAAIA,GAAK,KAAK,QAAU,GAAI,KAAK,WAAa,IAAIoO,GAAG,EAAE,EAAG,KAAK,eAAiB,GAAI,KAAK,iBAAmB,KAAM,KAAK,eAAiB,KAAM,KAAK,MAAQ,EAAG,EAAE,cAAc,IAAI,EAAG,KAAK,oBAAsB,IAAI6F,GAAG,KAAK,MAAM,YAAa,OAAQ,OAAQ,2BAA4B,CAAC,KAAK,MAAM,UAAW,EAAC,QAAQ,EAAG,KAAK,oBAAoB,KAAK,mBAAmB,EAAG,KAAK,mBAAqB,IAAIA,GAAG,KAAK,MAAM,UAAS,EAAI,OAAQ,OAAQ,0BAA2B,CAAC,KAAK,MAAM,UAAW,EAAC,QAAQ,EAAG,KAAK,oBAAoB,KAAK,kBAAkB,CACtzB,CACD,oBAAoB,EAAG,CACrB,EAAE,WAAW,QAAS,CAAC,EAAG,EAAE,WAAW,QAAS,EAAE,EAAG,EAAE,WAAW,iBAAkB,EAAE,EAAG,EAAE,WAAW,kBAAmB,EAAE,EAAG,EAAE,QACjI,CAID,UAAW,CACT,KAAK,MAAM,+BAA+B,aAAaiB,GAAG,kDAAmD,KAAM,KAAK,KAAK,EAAG,KAAK,MAAM,oBAAoB,aAAaA,GAAG,uCAAwC,KAAM,KAAK,cAAc,EAAG,KAAK,MAAM,sBAAsB,aAAaA,GAAG,yCAA0C,KAAM,KAAK,gBAAgB,EAAG,KAAK,MAAM,8BAA8B,aAAaA,GAAG,iDAAkD,KAAM,KAAK,MAAM,CACze,CACD,iBAAiB,EAAG,EAAG,CACrB,GAAI,EAAE,yBAA0B,CAC9B,MAAM,EAAI,EAAE,kBACZ,GAAK,OAAS,EAAE,YAAY,KAAO,EAAE,iBAAkB,KAAK,WAAW,KAAK,EAAE,WAAW,EAC1F,CACF,CACD,eAAe,EAAG,CAChB,GAAI,EAAE,iBAAmB,KAAK,MAAM,uBAAwB,CAC1D,MAAM,EAAI,EAAE,kBACZ,EAAE,YAAY,KAAO,EAAE,iBAAkB,KAAK,WAAW,KAAK,EAAE,WAAW,CAC5E,CACF,CACD,mBAAoB,CAClB,GAAI,KAAK,aACP,OACF,KAAK,aAAe,IAAIgqB,GAAG,cAAe,KAAK,MAAO,sBAAuB,CAC3E,WAAY,CAAC/qB,EAAE,YAAY,EAC3B,SAAU,CAAC,QAAS,iBAAkB,kBAAmB,OAAO,EAChE,eAAgB,CAAC,qBAAqB,CAC5C,EAAO,EAAE,EAAG,KAAK,aAAa,eAAiB,GAAI,KAAK,aAAa,kBAAoB,CACnF,OAAQ,EACd,EAAO,KAAK,8BAAgC,IAAI+qB,GAAG,sBAAuB,KAAK,MAAO,sBAAuB,CACvG,WAAY,CAAC/qB,EAAE,YAAY,EAC3B,SAAU,CAAC,QAAS,iBAAkB,kBAAmB,OAAO,EAChE,eAAgB,CAAC,qBAAqB,CAC5C,EAAO,EAAE,EAAG,KAAK,8BAA8B,eAAiB,GAAI,KAAK,8BAA8B,kBAAoB,CACrH,OAAQ,EACd,EACI,MAAM,EAAI,KAAK,MAAM,UAAW,EAAE,EAAIspB,GAAG,CAAE,KAAM,CAAC,CAAE,EACpD,KAAK,eAAetpB,EAAE,YAAY,EAAI,IAAIA,EAAE,EAAG,EAAE,UAAWA,EAAE,aAAc,EAAE,EAAG,KAAK,qBAAsB,KAAK,eAAiB,EAAE,QAAS,KAAK,2BAA2B,gBAAgB,IAAI,CAClM,CACD,oBAAqB,CACnB,MAAM,EAAI,KAAK,MAAM,UAAS,EAC9B,KAAK,aAAe,EAAE,kBAAkB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAAC,CACjH,CAKD,SAAU,CACR,MAAM,EAAI,KAAK,eAAeA,EAAE,YAAY,EAC5C,GAAK,EAAE,SAAU,EAAE,KAAK,mBAAkB,CAC3C,CAID,OAAQ,CACN,KAAK,WAAW,OACjB,CAKD,OAAO,EAAG,CACR,GAAI,KAAK,WAAW,SAAW,GAAK,CAAC,KAAK,UAAY,KAAK,kBAAiB,EAAI,CAAC,KAAK,aAAa,QAAO,GACxG,OACF,MAAM,EAAI,KAAK,MAAM,UAAS,EAC9B,EAAE,cAAc,EAAE,EAClB,MAAM,EAAI,KAAK,MAAM,mBAAkB,EACvC,QAAS,EAAI,EAAG,EAAI,KAAK,WAAW,OAAQ,IAAK,CAC/C,MAAMjU,EAAI,KAAK,WAAW,KAAK,CAAC,EAChC,GAAIA,EAAE,OAAS,EACb,SACF,KAAK,8BAA8BA,CAAC,EAAG,KAAK,+BAA+B,gBAAgBA,CAAC,EAC5F,MAAMC,EAAID,EAAE,QAASuC,EAAIvC,EAAE,QAAQ,SAASC,CAAC,EAAGqC,EAAIrC,EAAE,IAAIsC,EAAE,MAAM,EAAG,CAAC,EAAG2G,EAAI0G,EAAE,QAAQrN,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAE,SAASqN,EAAE,YAAYtN,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAAE,SAAStC,EAAE,eAAc,CAAE,EAAGc,EAAI,EAAE,sBACjL,GAAI,KAAK,cAAe,CACtB,MAAMD,EAAIb,EAAE,kBAAoB,KAAK,aAAa,kBAClD,KAAK,aAAa,SAASa,CAAC,EAAG,EAAE,YAAY,KAAK,eAAgB,KAAK,aAAc,KAAK,aAAa,WAAW,EAAGC,EAAI,EAAE,8BAA+B,EAAG,EAAE,iCAAgC,EAAI,KAAK,mBAAmB,aAAaD,EAAE,OAAQ,qBAAqB,EAAG,KAAK,mBAAmB,aAAa,QAAS,KAAK,UAAW,CAAC,EAAG,KAAK,mBAAmB,aAAa,QAASqI,CAAC,EAAG,KAAK,mBAAmB,aAAa,iBAAkB,CAAC,EAAG,KAAK,mBAAmB,OAAM,EAAI,EAAE,iBAAiBsoB,GAAG,iBAAkB,EAAG,EAAE,CACzgB,CACD,MAAM5wB,EAAIZ,EAAE,mBAAqB,KAAK,aAAa,kBACnD,KAAK,aAAa,SAASY,CAAC,EAAG,EAAE,YAAY,KAAK,eAAgB,KAAK,aAAc,KAAK,aAAa,UAAW,GAAGE,EAAI,EAAE,0BAAyB,EAAK,EAAE,uBAAwB,EAAE,KAAK,oBAAoB,aAAaF,EAAE,OAAQ,qBAAqB,EAAG,KAAK,oBAAoB,aAAa,QAAS,KAAK,WAAY,CAAC,EAAG,KAAK,oBAAoB,aAAa,QAASsI,CAAC,EAAG,KAAK,oBAAoB,aAAa,iBAAkB,CAAC,EAAG,KAAK,oBAAoB,OAAM,EAAI,EAAE,iBAAiBsoB,GAAG,iBAAkB,EAAG,EAAE,EAAG,KAAK,8BAA8B,gBAAgBxxB,CAAC,CACxjB,CACD,KAAK,aAAa,OAAM,EAAI,EAAE,8BAA+B,EAAE,EAAE,cAAc,EAAE,CAClF,CACD,8BAA8B,EAAG,CAC/B,GAAI,CAAC,EAAE,kBAAmB,CACxB,MAAM,EAAI,KAAK,MAAM,UAAS,EAC9B,EAAE,kBAAoB,IAAIykB,GAAG,CAAC,EAAG,EAAE,iBAAmB,IAAIA,GAAG,CAAC,EAAG,EAAE,kBAAkB,UAAU,KAAK,aAAa,UAAS,CAAE,EAAG,EAAE,iBAAiB,UAAU,KAAK,aAAa,UAAW,EAC1L,CACF,CAKD,2BAA2B,EAAG,CAC5B,MAAM,EAAI,KAAK,MAAM,UAAS,EAC9B,KAAK,iCAAmC,SAAW,KAAK,+BAAiC,EAAE,mBAAmB,iCAAiC,GAC/I,MAAM,EAAI,EAAE,oBACZ,EAAE,oBAAsB,KAAK,+BAAgC,KAAK,kBAAiB,EACnF,MAAM,EAAI,EAAE,UAAU,CAAC,EACvB,GAAI,CAAC,KAAK,8BAA8B,QAAQ,EAAG,OAAQ,CAAC,GAAK,CAAC,EAAE,gBAAiB,CACnF,EAAE,oBAAsB,EACxB,MACD,CACD,KAAK,mBAAqB,KAAK,iBAAmB,EAAE,kBAAkB,KAAK,cAAc,GACzF,MAAMzkB,EAAI,EAAE,sBACZ,EAAE,cAAc,EAAE,EAAG,EAAE,cAAc,EAAE,EACvC,MAAMC,EAAI,EAAE,gBAAe,EAAG,YAAa,EAAIA,EAAE,QAASqC,EAAIrC,EAAE,QAAQ,SAAS,CAAC,EAAGiJ,EAAI,EAAE,IAAI5G,EAAE,MAAM,EAAG,CAAC,EAAGxB,EAAI8O,EAAE,QAAQtN,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAE,SAASsN,EAAE,YAAY1G,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAAE,SAASjJ,EAAE,gBAAgB,EAAGW,EAAI,EAAE,aACtN,KAAK,8BAA8B,SAASA,CAAC,EAAG,EAAE,YAAY,KAAK,eAAgB,KAAK,iBAAkBA,EAAE,MAAM,EAAGZ,EAAI,EAAE,0BAA2B,EAAG,EAAE,uBAAsB,EAAI,KAAK,MAAM,oBAAmB,EAAI,KAAK,oBAAoB,aAAaY,EAAE,OAAQ,qBAAqB,EAAG,KAAK,oBAAoB,aAAa,QAASE,CAAC,EAAG,KAAK,oBAAoB,aAAa,iBAAkB,KAAK,MAAM,mBAAkB,CAAE,EAAG,KAAK,oBAAoB,OAAQ,EAAE,EAAE,iBAAiB0wB,GAAG,iBAAkB,EAAG,EAAE,EAAG,KAAK,8BAA8B,SAAU,EAAE,8BAA+B,EAAE,EAAE,cAAc,EAAE,EAAG,EAAE,cAAc,EAAE,EAAG,EAAE,oBAAsB,CAClpB,CAID,SAAU,CACR,GAAI,KAAK,iCAAmC,SAAW,KAAK,MAAM,YAAY,oBAAoB,KAAK,8BAA8B,EAAG,KAAK,+BAAiC,QAAS,CAAC,KAAK,aAC3L,OACF,KAAK,+BAA+B,QAAS,KAAK,8BAA8B,QAAS,KAAK,2BAA2B,MAAO,EAAE,KAAK,WAAW,QAAO,EAAI,KAAK,aAAa,QAAO,EAAI,KAAK,8BAA8B,QAAS,EAAE,KAAK,oBAAoB,QAAS,EAAE,KAAK,mBAAmB,QAAO,EAC3S,MAAM,EAAI,KAAK,eAAevd,EAAE,YAAY,EAC5C,IAAM,EAAE,QAAS,EAAE,KAAK,eAAeA,EAAE,YAAY,EAAI,MAAO,KAAK,MAAM,UAAW,EAAC,eAAe,KAAK,YAAY,EAAG,KAAK,mBAAqB,KAAK,MAAM,UAAS,EAAG,eAAe,KAAK,gBAAgB,EAAG,KAAK,iBAAmB,KAC3O,CACH,EACAoE,GAAG,UAAU,oBAAsB,SAAShY,EAAG,EAAI,GAAI,EAAI,GAAI,EAAI,EAAG,EAAI,GAAI,CAC5E,GAAIA,EAAIA,GAAK,KAAK,aAAc,CAACA,EAC/B,KAAM,+CACR,GAAI,KAAK,iBAAmB,KAAK,eAAiB,IAAK,CAAC,KAAK,eAAeA,EAAE,EAAE,EAAG,CACjF,MAAML,EAAI,CAAC,CAAC,KAAK,UAAS,EAAG,QAAS,EAAC,mBACvC,IAAIC,EAAI,EACR,KAAK,UAAW,EAAC,QAAS,EAAC,yBAA2B,CAAC,GAAK,CAACD,GAAKC,EAAI,EAAID,EAAIC,EAAI,EAAIA,EAAI,EAAG,KAAK,eAAeI,EAAE,EAAE,EAAI,IAAI0yD,GAAG,KAAM9yD,EAAGI,EAAG,EAAG,EAAG,CAAC,CACpJ,CACD,OAAO,KAAK,eAAeA,EAAE,EAAE,CACjC,EACAgY,GAAG,UAAU,qBAAuB,SAAShY,EAAG,CAC9CA,EAAIA,GAAK,KAAK,aAAc,EAAE,CAACA,GAAK,CAAC,KAAK,gBAAkB,CAAC,KAAK,eAAeA,EAAE,EAAE,IAAM,KAAK,eAAeA,EAAE,EAAE,EAAE,SACvH,EACA,IAAAi+E,IAAA,KAAS,CAKP,YAAY,EAAG,CACb,KAAK,KAAOtpE,GAAG,mBAAoB,KAAK,MAAQ,CACjD,CAID,UAAW,CACT,KAAK,MAAM,0BAA0B,aAAaA,GAAG,uCAAwC,KAAM,KAAK,oBAAoB,EAAG,KAAK,MAAM,sCAAsC,aAAaA,GAAG,mDAAoD,KAAM,KAAK,gCAAgC,CAChS,CAKD,SAAU,CACT,CAID,SAAU,CACR,UAAW,KAAK,KAAK,MAAM,eACzB,KAAK,MAAM,eAAe,CAAC,EAAE,QAAO,CACvC,CACD,qBAAqB,EAAG,CACtB,GAAI,KAAK,MAAM,eACb,UAAW,KAAK,KAAK,MAAM,eAAgB,CACzC,MAAM,EAAI,KAAK,MAAM,eAAe,CAAC,EACrC,EAAE,SAAW,CAAC,EAAE,uBAAyB,EAAE,KAAK,EAAE,YAAW,CAAE,CAChE,CACJ,CACD,iCAAiC,EAAG,CAClC,GAAI,KAAK,MAAM,eACb,UAAW,KAAK,KAAK,MAAM,eAAgB,CACzC,MAAM,EAAI,KAAK,MAAM,eAAe,CAAC,EACrC,EAAE,SAAW,EAAE,uBAAyB,KAAK,MAAM,aAAa,KAAO,GAAK,EAAE,KAAK,EAAE,YAAa,EACnG,CACJ,CACH,EACA+9C,GAAG,8BAAiC1yD,GAAM,CACxC,IAAI,EAAIA,EAAE,cAAc2U,GAAG,kBAAkB,EAC7C,IAAM,EAAI,IAAIupE,IAAGl+E,CAAC,EAAGA,EAAE,cAAc,CAAC,EACxC,EACA,MAAMm+E,IAAK,sBAAuBC,IAAK;AAAA;AAAA;AAAA,KAIvCj7E,GAAE,aAAag7E,GAAE,EAAIC,IACrB,MAAMC,IAAK,0BAA2BC,IAAK;AAAA,YAE3Cn7E,GAAE,aAAak7E,GAAE,EAAIC,IACrB,IAAAC,IAAA,KAAS,CACP,aAAc,CACZ,KAAK,QAAU,GAAI,KAAK,KAAO,eAAgB,KAAK,iBAAmB,CAAC,CAAC,CAC1E,CACH,EACAC,GAAA,MAAMC,EAAG,CAIP,IAAI,WAAY,CACd,OAAO,KAAK,UACb,CACD,IAAI,UAAU,EAAG,CACf,KAAK,aAAe,IAAM,KAAK,WAAa,EAAG,KAAK,qBAAoB,EACzE,CAID,IAAI,iBAAkB,CACpB,OAAO,KAAK,gBACb,CACD,IAAI,gBAAgB,EAAG,CACrB,KAAK,mBAAqB,IAAM,KAAK,iBAAmB,EAAG,KAAK,qBAAoB,EACrF,CAKD,gBAAgB,EAAG,CACjB,KAAK,gBAAgB,QAAQ,EAAE,QAAQ,IAAM,IAAM,KAAK,gBAAgB,KAAK,EAAE,QAAQ,CACxF,CAKD,mBAAmB,EAAG,CACpB,MAAM,EAAI,KAAK,gBAAgB,QAAQ,EAAE,QAAQ,EACjD,IAAM,IAAM,KAAK,gBAAgB,OAAO,EAAG,CAAC,CAC7C,CAOD,YAAY,EAAG,EAAI,EAAG,CACpB,GAAI,KAAK,cAAgB,GAAI,KAAK,sBAAwB,EAAG,KAAK,mBAAqB,CAAC,CAAC,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,GAAI,EAAE,CAAC,EAAG,KAAK,aAAe,CAAE,EAAE,KAAK,oBAAsB,IAAI5wE,GAAG,EAAE,EAAG,KAAK,mBAAqB,IAAIA,GAAG,EAAE,EAAG,KAAK,gBAAkB,GAAI,KAAK,YAAc,CACxQ,IAAIgF,GAAG4rE,GAAG,mBAAoBA,GAAG,mBAAoB,EAAG,CAAC,EACzD,IAAI5rE,GAAG,CAAC4rE,GAAG,WAAYA,GAAG,WAAY,EAAG,CAAC,EAC1C,IAAI5rE,GAAG,EAAG,EAAG,EAAG,CAAC,CAClB,EAAE,KAAK,OAAS,EAAG,KAAK,QAAU,EAAE,UAAS,EAAI,KAAK,WAAa,EAAG,CAAC,EAAE,sBAAqB,EAAI,CACjGtQ,EAAE,KAAK,sFAAsF,EAC7F,MACD,CACD,QAAS,EAAI,EAAG,EAAI,KAAK,mBAAmB,OAAQ,EAAE,EACpD,KAAK,aAAa,CAAC,EAAI,KAAK,QAAQ,mBAAmB,KAAK,mBAAmB,CAAC,CAAC,EACnF,KAAK,eAAiB,CAAE,EAAE,KAAK,gBAAkB,GAAI,KAAK,4BAA8B,IAAIm8E,IAAM,KAAK,gBAAe,EAAI,KAAK,gBAChI,CACD,sBAAuB,CACrB,GAAI,KAAK,wBAAyB,KAAK,iBACrC,QAAS,EAAI,EAAG,EAAI,KAAK,WAAa,EAAG,EAAE,EACzC,KAAK,eAAe,CAAC,IAAM,KAAK,eAAe,CAAC,EAAI,KAAK,QAAQ,mBAAmB,gCAAgC,CAAC,EAAE,EAC5H,CACD,uBAAwB,CACtB,QAAS,EAAI,EAAG,EAAI,KAAK,eAAe,OAAQ,EAAE,EAChD,KAAK,QAAQ,oBAAoB,KAAK,eAAe,CAAC,CAAC,EACzD,KAAK,eAAiB,EACvB,CACD,iBAAkB,CAChB,MAAM,EAAI,CACR,MAAO,KAAK,QAAQ,eAAgB,EACpC,OAAQ,KAAK,QAAQ,gBAAiB,CAC5C,EACI,KAAK,WAAa,CAChB,IAAIjkB,GAAG,wBAAyB,EAAG,EAAG,KAAK,OAAQ,OAAQ,CACzD,8BACA,mCACA,iCACR,CAAO,EACD,IAAIA,GAAG,wBAAyB,EAAG,EAAG,KAAK,OAAQ,OAAQ,CACzD,8BACA,mCACA,iCACR,CAAO,CACP,EAAO,KAAK,WAAa,CACnB,IAAIA,GAAG,wBAAyB,EAAG,EAAG,KAAK,OAAQ,CAAE,oBAAqB,IAAM,CAC9E,mCACA,iCACR,CAAO,EACD,IAAIA,GAAG,wBAAyB,EAAG,EAAG,KAAK,OAAQ,CAAE,oBAAqB,IAAM,CAC9E,mCACA,iCACR,CAAO,CACF,EAAE,KAAK,cAAgB,IAAIA,GAAG,sBAAuB,EAAG,EAAG,KAAK,OAAQ,CAAE,oBAAqB,EAAE,EAAI,CAAC,+BAA+B,CAAC,EAAG,KAAK,UAAY,IAAI51C,GAAG,wBAAyB,EAAG,KAAK,OAAQ,EAAE,EAC7M,MAAM,EAAI,CACR,CACE,OAAQ,EACR,aAAc,EACd,KAAM,KAAK,QAAQ,QAAO,EAAG,4BAA8B,EAAI,EAC/D,MAAO,mCACR,EACD,CACE,OAAQ,EACR,aAAc,EACd,KAAM,EACN,MAAO,mCACR,CACP,EACI,QAAS,EAAI,EAAG,EAAI,EAAG,IAAK,CAC1B,MAAM,EAAI,KAAK,QAAQ,uBAAuB,EAAG,EAAE,CAAC,EAAG,EAAE,EAAGllB,EAAI,KAAK,QAAQ,uBAAuB,EAAG,EAAE,CAAC,EAAG,EAAE,EAAGC,EAAI,KAAK,QAAQ,uBAAuB,EAAG,EAAE,CAAC,EAAG,EAAE,EACrK,KAAK,WAAW,CAAC,EAAE,mBAAmB,EAAG,CAAC,EAAG,KAAK,WAAW,CAAC,EAAE,mBAAmBD,EAAG,CAAC,EAAG,KAAK,WAAW,CAAC,EAAE,mBAAmBC,EAAG,CAAC,EAAG,KAAK,WAAW,CAAC,EAAE,mBAAmBD,EAAG,CAAC,EAAG,KAAK,WAAW,CAAC,EAAE,mBAAmBC,EAAG,CAAC,EAAG,KAAK,cAAc,KAAK,IAAIqjB,GAAG,CAAC,EAAG,IAAIA,GAAGtjB,CAAC,EAAG,IAAIsjB,GAAGrjB,CAAC,CAAC,CACzR,CACF,CAUD,kBAAmB,CACjB,QAAS,EAAI,EAAG,EAAI,KAAK,cAAc,OAAQ,IAC7C,IAAM,GAAK,KAAK,cAAc,CAAC,EAAE,UACnC,QAAS,EAAI,EAAG,EAAI,EAAG,IACrB,KAAK,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAG,KAAK,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAG,KAAK,cAAc,QAAQ,EAAE,EAC/F,KAAK,UAAU,UAAW,KAAK,cAAgB,GAAI,KAAK,WAAa,CAAE,EAAE,KAAK,WAAa,EAC5F,CACD,iBAAkB,CAChB,OAAQ,KAAK,WAAW,CAAC,EAAE,QAAS,EAAC,QAAU,KAAK,QAAQ,eAAgB,GAAI,KAAK,WAAW,CAAC,EAAE,QAAO,EAAG,SAAW,KAAK,QAAQ,gBAAiB,KAAM,KAAK,iBAAkB,EAAE,KAAK,gBAAe,GAAK,KAAK,yBAAwB,CAC5O,CACD,0BAA2B,CACzB,IAAIQ,EACJ,MAAMkI,EAAI,KAAK,OAAO,gBACtB,GAAI,CAACA,EACH,MAAO,GACT,MAAM1D,EAAI0D,EAAE,SAAS,CAAC,EAAGnI,GAAKC,EAAIkI,EAAE,UAAU,WAAa,MAAQlI,EAAE,OAASkI,EAAE,UAAU,SAAS1D,CAAC,EAAE,mBAAoB,EAAG,KAC7H,OAAOzE,GAAK,KAAK,oBAAsBA,IAAM,KAAK,kBAAoBA,EAAG,KAAK,cAAc,mBAAmB,KAAK,kBAAmB,CAAC,EAAG,KAAK,cAAc,CAAC,GAAK,KAAK,cAAc,CAAC,EAAE,QAAO,EAAI,KAAK,cAAc,CAAC,EAAI,IAAI8iB,GAAG,KAAK,iBAAiB,EAAG3a,EAAE,UAAU,aAAa,WAAW,KAAK,WAAW,CAAC,EAAE,YAAY,GAAI,IAAM,EAC3U,CACD,gBAAiB,CACf,KAAK,wBAA0B,IAAIqc,GAAG,CACpC,eAAgB,eAChB,eAAgB,GAChB,OAAQ,KAAK,QACb,aAAc,CAAC,YAAY,EAC3B,aAAc,CAAE,CACjB,GAAG,KAAK,gCAAkC,IAAIA,GAAG,CAChD,eAAgB,eAChB,eAAgB,GAChB,OAAQ,KAAK,QACb,aAAc,CAAC,YAAY,EAC3B,aAAc,CAAE,CACjB,GAAG,KAAK,oBAAsB,IAAIA,GAAG,CACpC,eAAgB,WAChB,eAAgB,GAChB,OAAQ,KAAK,QACb,aAAc,CAAC,cAAe,YAAY,EAC1C,aAAc,CAAE,CACtB,CAAK,EAAG,KAAK,gBAAkB,IAAID,GAAG,KAAK,OAAO,CAC/C,CAKD,mBAAmB,EAAG,CACpB,EAAE,uBAAuB,KAAK,2BAA2B,CAC1D,CAKD,KAAK,EAAG,CACN,EAAE,WAAW,kBAAmB,KAAK,cAAc,KAAK,sBAAwB,CAAC,CAAC,EAAG,EAAE,WAAW,uBAAwB,KAAK,cAAc,KAAK,sBAAwB,EAAI,CAAC,CAAC,CACjL,CACD,iBAAiB,EAAG,CAClB,IAAI,EACJ,KAAK,mBAAqB,EAAI,IAC9B,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,CACjC,MAAM,EAAI,EAAE,KAAK,CAAC,EAAE,YAAW,EAC/B,IAAI/kB,EAAI,GAAIC,EAAI,GAChB,MAAM,EAAI,EAAE,KAAK,CAAC,EAClB,IAAI,EAAG,EAAI,GACX,GAAI,KAAK,mBAAqB,EAAI,EAAE,gBAAe,EAAI,EAAI,CAAC,GAAI,IAAMD,EAAI,EAAE,uBAAwBC,EAAI,EAAE,gBAAiB,EAAE,uBAAyB,GAAI,EAAE,gBAAkB,IAAK,EAAE,OAAO,EAAE,EAAG,IAAM,EAAI,EAAE,gBAAe,EAAI,EAAE,iBAAkB,CAClP,IAAI,EAAI,EAAE,EAAE,gBAAgB,QAAQ,EACpC,IAAM,EAAI,EAAE,EAAE,gBAAgB,QAAQ,EAAI,KAAK,QAAQ,sBAAuB,GAAG,EAAE,gBAAiB,EAAC,gBAAkB,CACxH,CACD,IAAM,EAAE,uBAAyBD,EAAG,EAAE,gBAAkBC,EACzD,CACF,CACD,cAAc,EAAG,CACf,IAAIO,GACFA,EAAI,KAAK,OAAO,kBAAoB,MAAgBA,EAAE,gBAAgB,KAAK,SAAS,EAAK,KAAK,QAAQ,gBAAgB,KAAK,UAAU,YAAY,EAAI,KAAK,QAAQ,0BAAyB,EAAI,KAAK,QAAQ,aAAa,CAAC,EAAG,KAAK,QAAQ,YAAW,EAAI,KAAK,QAAQ,aAAa,KAAK,oBAAoB,YAAY,EAAG,KAAK,oBAAoB,OAAO,WAAW,cAAe,KAAK,cAAc,EAAI,EAAI,CAAC,CAAC,EAAG,KAAK,oBAAoB,OAAO,WAAW,aAAc,KAAK,cAAc,CAAC,CAAC,EAAG,KAAK,gBAAgB,OAAO,KAAK,mBAAmB,CAC7hB,CAKD,SAAU,CACR,OAAO,KAAK,wBAAwB,OAAO,QAAO,GAAM,KAAK,gCAAgC,OAAO,QAAO,GAAM,KAAK,oBAAoB,OAAO,QAAO,GAAM,KAAK,iBACpK,CAMD,OAAO,EAAG,CACR,GAAI,KAAK,oBAAoB,OAAS,EAAG,KAAK,mBAAmB,OAAS,EAAG,CAAC,KAAK,QAAS,EAC1F,OAAO,KAAK,mBACd,KAAK,OAAO,cAAgB,KAAK,QAAQ,YAAY,KAAK,OAAO,aAAa,QAAQ,EACtF,QAASR,EAAI,EAAGA,EAAI,EAAE,OAAQA,IAAK,CACjC,MAAMC,EAAI,EAAE,KAAKD,CAAC,EAAG,EAAIC,EAAE,YAAW,EAAI,EAAI,GAAKA,EAAE,iBAAgB,EAAG,sBAAsB,EAAE,QAAQ,EACxG,IAAM,IAAMuxB,GAAG,qBAAuB,IAAMA,GAAG,kBAAoB,IAAMA,GAAG,wBAA0B,KAAK,gBAAgB,QAAQvxB,EAAE,QAAS,EAAC,QAAQ,IAAM,GAAK,KAAK,oBAAoB,KAAKA,CAAC,EAAI,KAAK,mBAAmB,KAAKA,CAAC,CACpO,CACD,GAAI,CAAC,KAAK,oBAAoB,OAC5B,OAAO,KAAK,QAAQ,gBAAgB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,aAAa,CAAC,CAAC,EAAG,KAAK,QAAQ,MAAM,KAAK,YAAY,CAAC,EAAG,GAAI,GAAI,EAAE,EAAG,KAAK,QAAQ,kBAAkB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,cAAc,CAAC,EAAG,KAAK,mBAC9Q,MAAM,EAAI,KAAK,QAAQ,oBACvB,KAAK,OAAO,gBAAgB,SAAW,GAAI,KAAK,mBAAqB,KAAK,QAAQ,oBAAsB,KAAK,eAAe,CAAC,GAAI,KAAK,QAAQ,gBAAgB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,aAAa,CAAC,CAAC,EAAG,KAAK,QAAQ,MAAM,KAAK,YAAY,CAAC,EAAG,GAAI,GAAI,EAAE,EAAG,KAAK,QAAQ,kBAAkB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,aAAa,CAAC,CAAC,EAAG,KAAK,QAAQ,MAAM,KAAK,YAAY,CAAC,EAAG,GAAI,GAAI,EAAE,EAAG,KAAK,QAAQ,kBAAkB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,aAAa,CAAC,CAAC,EAAG,KAAK,QAAQ,MAAM,KAAK,YAAY,CAAC,EAAG,GAAI,GAAI,EAAE,EAAG,KAAK,QAAQ,kBAAkB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,aAAa,CAAC,CAAC,EAAG,KAAK,QAAQ,MAAM,KAAK,YAAY,CAAC,EAAG,GAAI,GAAI,EAAE,EAAG,KAAK,QAAQ,kBAAkB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,aAAa,CAAC,CAAC,EAAG,KAAK,QAAQ,aAAa,EAAE,EAAG,KAAK,QAAQ,iBAAiB,CAAC,EAAG,KAAK,QAAQ,kBAAkB,UAAY,GAAI,KAAK,QAAQ,kBAAkB,UAAY,GAAI,KAAK,QAAQ,YAAW,EAAI,KAAK,sBAAwB,EAAG,KAAK,iBAAiB,KAAK,mBAAmB,EAAG,KAAK,QAAQ,kBAAkB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,OAAO,oBAAmB,EACpgD,IAAI,EAAI,EAAG,EAAI,EACf,QAASD,EAAI,EAAGA,EAAI,KAAK,WAAYA,IAAK,CACxC,EAAIA,EAAI,EAAG,EAAI,EAAI,EAAG,KAAK,sBAAwB,EAAG,KAAK,mBAAqB,KAAK,QAAQ,oBAAsB,KAAK,eAAeA,EAAI,CAAC,GAAI,KAAK,OAAO,cAAgB,KAAK,QAAQ,YAAY,KAAK,OAAO,aAAa,QAAQ,EAAG,KAAK,QAAQ,gBAAgB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,aAAa,CAAC,CAAC,EAAG,KAAK,QAAQ,MAAM,KAAK,YAAY,CAAC,EAAG,GAAI,GAAI,EAAE,EAAG,KAAK,QAAQ,kBAAkB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,aAAa,CAAC,CAAC,EAAG,KAAK,QAAQ,MAAM,KAAK,YAAY,CAAC,EAAG,GAAI,GAAI,EAAE,EAAG,KAAK,QAAQ,kBAAkB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,aAAa,CAAC,CAAC,EAAG,KAAK,QAAQ,aAAa,EAAE,EAAG,KAAK,QAAQ,iBAAiB,CAAC,EAAG,KAAK,QAAQ,kBAAkB,UAAY,GAAI,KAAK,QAAQ,YAAW,EAAI,KAAK,iBAAiB,KAAK,mBAAmB,EAAG,KAAK,QAAQ,kBAAkB,KAAK,WAAW,CAAC,EAAE,YAAY,EAAG,KAAK,OAAO,oBAAqB,EAAE,KAAK,QAAQ,gBAAgB,KAAK,cAAc,YAAY,EAAG,KAAK,QAAQ,gBAAgB,KAAK,aAAa,CAAC,CAAC,EAAG,KAAK,QAAQ,iBAAiB,CAAC,EAAG,KAAK,QAAQ,aAAa,EAAE,EAAG,KAAK,QAAQ,cAChxC,MAAMC,EAAI,IAAM,GAAK,CAAC,KAAK,iBAAmB,KAAK,wBAA0B,KAAK,gCAClF,KAAK,QAAQ,aAAaA,EAAE,YAAY,EAAGA,EAAE,OAAO,WAAW,aAAc,KAAK,cAAc,EAAI,EAAI,CAAC,CAAC,EAAG,KAAK,gBAAgB,OAAOA,CAAC,EAAG,KAAK,QAAQ,kBAAkB,KAAK,cAAc,YAAY,CAC5M,CACD,OAAO,KAAK,QAAQ,oBAAsB,EAAG,KAAK,cAAc,CAAC,EAAG,KAAK,OAAO,gBAAgB,SAAW,GAAI,KAAK,QAAQ,kBAAkB,UAAY,GAAI,KAAK,QAAQ,kBAAkB,UAAY,GAAI,KAAK,kBACnN,CAID,SAAU,CACR,KAAK,iBAAgB,EAAI,KAAK,wBAAwB,QAAS,EAAE,KAAK,oBAAoB,QAAS,EAAE,KAAK,gBAAgB,QAAO,EAAI,KAAK,uBAC3I,CACH,EACA6+E,GAAG,mBAAqB,OACxBA,GAAG,WAAa,EAChBA,GAAG,WAAa,EAChB,OAAO,eAAezmE,GAAG,UAAW,uBAAwB,CAC1D,IAAK,UAAW,CACd,GAAI,CAAC,KAAK,sBAAuB,CAC/B,IAAIhY,EAAI,KAAK,cAAc2U,GAAG,yBAAyB,EACvD3U,IAAMA,EAAI,IAAI2+E,IAAG,IAAI,EAAG,KAAK,cAAc3+E,CAAC,EAC7C,CACD,OAAO,KAAK,qBACb,EACD,IAAK,SAASA,EAAG,CACf,KAAK,sBAAwBA,CAC9B,EACD,WAAY,GACZ,aAAc,EAChB,CAAC,EACD,OAAO,eAAegY,GAAG,UAAW,kCAAmC,CACrE,IAAK,UAAW,CACd,OAAO,KAAK,gCACb,EACD,IAAK,SAAShY,EAAG,CACf,IAAI,EACJ,KAAK,mCAAqCA,IAAM,KAAK,iCAAmCA,EAAG,KAAK,wBAAwB,EAAE,GAAI,EAAI,KAAK,kBAAoB,MAAQ,EAAE,YAAW,EACjL,EACD,WAAY,GACZ,aAAc,EAChB,CAAC,EACD,IAAA4+E,IAAA,KAAS,CAKP,YAAY,EAAG,CACb,KAAK,KAAOjqE,GAAG,0BAA2B,KAAK,MAAQ,EAAG,EAAE,qBAAuB,IAAI8pE,GAAG,CAAC,CAC5F,CAID,UAAW,CACV,CAKD,SAAU,CACT,CAID,SAAU,CACR,IAAI,GACH,EAAI,KAAK,MAAM,uBAAyB,MAAQ,EAAE,QAAS,EAAE,KAAK,MAAM,qBAAuB,IACjG,CACH,EACA,MAAMI,IAAK,kBAAmBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAcnC37E,GAAE,aAAa07E,GAAE,EAAIC,IACrB,MAAMC,IAAK,wBAAyBC,IAAK;AAAA;AAAA,EAGzC77E,GAAE,qBAAqB47E,GAAE,EAAIC,IAC7B,MAAMC,IAAK,qBAAsBC,IAAK;AAAA;AAAA;AAAA,EAItC/7E,GAAE,qBAAqB87E,GAAE,EAAIC,IAC7B,MAAMC,IAAK,mBAAoBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAiBpCj8E,GAAE,aAAag8E,GAAE,EAAIC,IACrB7wD,GAAG,UAAU,sBAAwB,UAAW,CAC9C,OAAO,KAAK,iBAAmB,KAAK,eAAe,UAAW,KAAK,eAAiB,MAAO,IAC7F,EACAA,GAAG,UAAU,qBAAuB,SAASvuB,EAAI,IAAM,EAAI,GAAI,EAAG,CAChE,OAAO,KAAK,sBAAqB,EAAI,KAAK,eAAiB,IAAIq/E,GAAG,KAAMr/E,EAAG,EAAG,GAAI,CAAC,EAAG,IACxF,EACA,OAAO,eAAeuuB,GAAG,UAAW,gBAAiB,CACnD,IAAK,UAAW,CACd,OAAO,KAAK,cACb,EACD,WAAY,GACZ,aAAc,EAChB,CAAC,EACDwS,GAAG,UAAU,qBAAuB,SAAS/gC,EAAI,IAAM,EAAI,GAAI,CAC7D,OAAO,KAAK,wBAAyB,KAAK,eAAiB,IAAIs/E,IAAG,KAAMt/E,EAAG,CAAC,EAAG,IACjF,EACAghC,GAAG,UAAU,qBAAuB,SAAShhC,EAAI,IAAM,EAAI,GAAI,CAC7D,OAAO+gC,GAAG,UAAU,qBAAqB,MAAM,KAAM,SAAS,EAAG,IACnE,EACA,IAAAw+C,IAAA,KAAS,CACP,aAAc,CACZ,KAAK,MAAQ,GAAI,KAAK,oBAAsB,CAC7C,CACH,EACAC,GAAA,MAAMH,GAAG,CAEP,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CAED,IAAI,cAAe,CACjB,OAAO,KAAK,aACb,CAED,IAAI,cAAe,CACjB,OAAO,KAAK,aACb,CAID,IAAI,YAAa,CACf,OAAO,KAAK,WACb,CACD,IAAI,WAAW,EAAG,CAChB,KAAK,YAAc,CACpB,CACD,OAAO,WAAW,EAAG,CACnB,GAAI,CAAC,EAAE,sBAAuB,CAC5B,MAAM,EAAI,IAAI1gD,GAAG,aAAc,EAAG,OAAQ,CACxC,WAAY,CAAC,WAAY,QAAQ,EACjC,SAAU,CAAC,QAAS,iBAAkB,QAAS,QAAS,aAAa,EACrE,eAAgB,CAAC,QAAS,MAAM,CACxC,EAAS,EAAE,EACL,EAAE,kBAAoB,GAAI,EAAE,gBAAkB,GAAI,EAAE,sBAAwB,EAAE,UAAW,EAAC,SAAU,EAAE,sBAAwB,CAC/H,CACD,OAAO,EAAE,qBACV,CAUD,YAAY,EAAG,EAAI,IAAM,EAAI,GAAI,EAAI,GAAIh/B,EAAG,CAC1C,KAAK,gCAAkC,IAAK,KAAK,+BAAiC,GAAI,KAAK,gBAAkB,IAAI,MAAS,KAAK,cAAgB,IAAI,MAAS,KAAK,cAAgB,IAAI,MAAS,KAAK,SAAW,GAAI,KAAK,qBAAuB,CAAE,EAAE,KAAK,+BAAiC,GAAI,KAAK,UAAY,GAAI,KAAK,gBAAkB,IAAIkO,GAAG,EAAE,EAAG,KAAK,QAAU,EAAG,KAAK,+BAAiC,EAAG,KAAK,SAAWlO,GAAK,KAAM,KAAK,SAAW,EAAG,KAAK,QAAQ,SAAU,EAAC,UAAS,EAAG,WAAa,KAAK,aAAe,IAAIykB,GAAG,EAAE,UAAS,CAAE,GAAI,KAAK,mBAAoB,EAAE,IAA4BzkB,GAAE,wBAA2B,GAAK,KAAK,6BAA8B,EAAG,KAAK,uBAAwB,KAAK,qBAAuB,KAAK,QAAQ,oBAAoB,IAAI,IAAM,CAC3vB,KAAK,SAAQ,CACnB,CAAK,EAAG,KAAK,qBAAuB,KAAK,QAAQ,oBAAoB,IAAI,IAAM,CACzE,KAAK,QAAO,CAClB,CAAK,CACF,CACD,oBAAqB,CACnB,KAAK,cAAgB,KAAK,YAAc0/E,IAAG,WAAW,KAAK,QAAQ,SAAU,GAC9E,CAED,UAAW,CACT,IAAI,EAAI,KAAK,SAASzrE,EAAE,YAAY,EACpC,GAAK,EAAE,WAAY,EAAI,KAAK,SAASA,EAAE,UAAU,EAAG,GAAK,EAAE,SAAQ,EACnE,MAAMzT,EAAI,KAAK,QAAQ,SAAU,EAAC,UAAS,EAC3C,KAAK,IAAMA,EAAE,kBAAkB,KAAK,aAAa,CAClD,CAID,SAAU,CACR,IAAIyE,EACJ,KAAK,QAAQ,oBAAoB,OAAO,KAAK,oBAAoB,EAAG,KAAK,QAAQ,oBAAoB,OAAO,KAAK,oBAAoB,EACrI,IAAI0D,EAAI,KAAK,SAASsL,EAAE,YAAY,EACpCtL,IAAMA,EAAE,QAAO,EAAI,KAAK,SAASsL,EAAE,YAAY,EAAI,MAAOtL,EAAI,KAAK,SAASsL,EAAE,UAAU,EAAGtL,IAAMA,EAAE,QAAO,EAAI,KAAK,SAASsL,EAAE,UAAU,EAAI,MAAO,KAAK,KAAO,KAAK,QAAQ,SAAQ,EAAG,UAAS,EAAG,eAAe,KAAK,GAAG,EAAG,KAAK,YAAY,QAAS,GAAGhP,EAAI,KAAK,eAAiB,MAAQA,EAAE,SAC/R,CACD,2BAA2B,EAAG,EAAG,EAAG,EAAGjF,EAAG,CACxC,OAAO,IAAM,GAAK,IAAM,GAAK,IAAM,GAAK,IAAM,EAAI,EAAI,IAAM,GAAK,IAAMA,GAAK,IAAMA,GAAK,IAAM,EAAI,EAAI,IAAMA,GAAK,IAAM,GAAK,IAAM,GAAK,IAAMA,EAAI,EAAI,EACrJ,CACD,uCAAuC,EAAG,EAAG,EAAG,EAAGA,EAAG,CACpD,OAAO,EAAE,kBAAkB,EAAG,KAAK,GAAK,EAAE,kBAAkB,EAAG,KAAK,GAAK,EAAE,kBAAkB,EAAG,KAAK,GAAK,EAAE,kBAAkB,EAAG,KAAK,EAAI,EAAI,EAAE,kBAAkB,EAAG,KAAK,GAAK,EAAE,kBAAkBA,EAAG,KAAK,GAAK,EAAE,kBAAkBA,EAAG,KAAK,GAAK,EAAE,kBAAkB,EAAG,KAAK,EAAI,EAAI,EAAE,kBAAkBA,EAAG,KAAK,GAAK,EAAE,kBAAkB,EAAG,KAAK,GAAK,EAAE,kBAAkB,EAAG,KAAK,GAAK,EAAE,kBAAkBA,EAAG,KAAK,EAAI,EAAI,EAC7Z,CAUD,WAAW,EAAG,EAAG,EAAG,EAAGA,EAAG,CACxB,IAAIC,EACJ,IAAM,OAASA,EAAI,GAAKA,EAAIuP,EAAE,IAAI,EAAE,CAAC,EAAG,EAAE,CAAC,CAAC,EAAI,KAAK,SAAUvP,GAAK,KAAK,WAAW,EAAGD,EAAG,KAAK,gBAAgB,OAAS,CAAC,CAC1H,CASD,WAAW,EAAG,EAAG,EAAG,CAClB,KAAK,gBAAgB,KAAK,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG,KAAK,cAAc,KAAK,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,GAAI,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,EAAG,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,GAAI,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,CAAC,EAAG,KAAK,cAAc,KAAK,EAAG,EAAI,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,EAAI,CAAC,CACnP,CAQD,oBAAoB,EAAG,EAAG,EAAG,EAAG,CAC9B,MAAMA,EAAI,CAAC4H,EAAGyB,EAAGvB,IAAM,CACrBA,GAAK,GAAKuB,EAAE,KAAKvB,CAAC,EAClB,QAASC,EAAI,EAAGA,EAAIH,EAAE,OAAQ,EAAEG,EAC9BsB,EAAE,KAAKzB,EAAEG,CAAC,EAAE,CAAC,CAAC,CACtB,EACI,IAAI9H,EAAI,EACR,EAAE,CAAC,EAAE,QAAU,EAAE,CAAC,EAAE,QAAU,EAAE,CAAC,EAAE,QAAU,EAAE,CAAC,EAAE,OAASA,EAAI,EAAI,EAAE,CAAC,EAAE,QAAU,EAAE,CAAC,EAAE,QAAU,EAAE,CAAC,EAAE,QAAU,EAAE,CAAC,EAAE,SAAWA,EAAI,GACpI,QAAS2H,EAAI,EAAGA,EAAI,EAAG,EAAEA,EACvBA,IAAM3H,EAAI,EAAE2H,CAAC,EAAE,KAAK,CAACyB,EAAGvB,IAAMuB,EAAE,CAAC,EAAIvB,EAAE,CAAC,EAAI,GAAKuB,EAAE,CAAC,EAAIvB,EAAE,CAAC,EAAI,EAAI,CAAC,EAAI,EAAEF,CAAC,EAAE,KAAK,CAACyB,EAAGvB,IAAMuB,EAAE,CAAC,EAAIvB,EAAE,CAAC,EAAI,GAAKuB,EAAE,CAAC,EAAIvB,EAAE,CAAC,EAAI,EAAI,CAAC,EACpI,MAAM,EAAI,GAAI,EAAI,GAClB9H,EAAE,EAAEC,CAAC,EAAG,EAAG,EAAE,EACb,MAAM,EAAI,EAAE,OACZ,QAAS2H,EAAI3H,EAAI,EAAG2H,GAAK3H,EAAI,EAAG,EAAE2H,EAChC5H,EAAE,EAAE4H,EAAI,CAAC,EAAG,EAAGA,IAAM3H,EAAI,EAAI,EAAE,EAAE,GAAK2H,EAAI,GAAK,CAAC,CAAC,EAAI,EAAE,EACzD,MAAM,EAAI,EAAE,OAAQ,EAAI,EAAG,EAAI,EAC/B,EAAE,KAAK,EAAE,EAAE,EAAI3H,CAAC,CAAC,EAAG,EAAE,CAAC,EAAG,EAAE,CAAC,CAAC,EAAG,EAAE,KAAK,EAAE,EAAE,GAAKA,EAAI,GAAK,CAAC,CAAC,EAAG,EAAE,EAAI,CAAC,EAAG,EAAE,EAAI,CAAC,CAAC,EACjF,MAAMY,EAAI,GAAK,EAAGmF,EAAInF,EAAI,EAAI,EAAGoF,EAAIpF,EAAI,EAAI,EAAGqF,EAAIrF,EAAI,EAAI,EAAI,EAAI,EAAGsF,EAAItF,EAAI,EAAI,EACnF,IAAIuF,EAAI,EAAI,EAAI,EAAGoB,EAAI3G,EAAI,EAAI,EAAG,EAAIA,EAAI,EAAI,EAC9C,MAAM4G,EAAI5G,EAAI,EAAI,EAAG6G,EAAI7G,EAAI,EAAI,EACjC,IAAI8G,EAAI,EACR,KAAOvB,KAAM,GAAK,CAChBD,EAAI,EAAE,KAAKsB,EAAED,CAAC,EAAGE,EAAE,CAAC,CAAC,EAAI,EAAE,KAAKA,EAAE,CAAC,EAAGD,EAAED,CAAC,CAAC,EAAGG,GAAK3B,EAClD,IAAI4B,EACJD,GAAK1B,GAAKuB,EAAItB,GAAK0B,EAAIH,EAAE,EAAED,CAAC,EAAGG,GAAK1B,GAAK2B,EAAIF,EAAE,EAAE,CAAC,EAAG,EAAE,KAAKE,CAAC,CAC9D,CACD,EAAE,EAAI,CAAC,EAAI,EAAE,EAAE,OAAS,CAAC,EAAG,EAAE,EAAI,CAAC,EAAI,EAAE,EAAE,OAAS,CAAC,EAAG,EAAE,EAAI,CAAC,EAAI,EAAE,EAAE,OAAS,CAAC,EAAG,EAAE,OAAS,EAAE,OAAS,CAC3G,CACD,8BAA+B,CAC7B,IAAItF,EAAG4G,EAAGpI,EAAGF,EAAGC,EAAGmF,EACnB,MAAM2C,EAAI,KAAK,QAAQ,gBAAgBsL,EAAE,YAAY,EACrD,IAAIhP,EAAI,KAAK,QAAQ,WAAU,EAC/B,GAAI,CAACA,GAAK,CAAC0D,EACT,OACF,MAAM,QAAQ1D,CAAC,IAAMA,EAAI,MAAM,KAAKA,CAAC,GACrC,MAAMzE,IAAM8B,EAAI,KAAK,WAAa,KAAO,OAASA,EAAE,sBAAwB,GAAI7B,EAAID,EAAI,KAAK,MAAM,CAAC,KAAK,MAAM0I,EAAI,KAAK,WAAa,KAAO,OAASA,EAAE,qBAAuB,IAAI,EAAI,KAAK,IAAI,EAAE,CAAC,IAAMpI,EAAI,KAAK,WAAa,KAAO,OAASA,EAAE,qBAAuB,KAAMd,EAAI,GAAIC,EAAI,GACzR,GAAIO,EAAG,CACL,MAAMyF,EAAI,GACV,QAASC,EAAI,EAAGA,EAAIyC,EAAE,OAAQzC,GAAK,EAAG,CACpC,MAAMC,EAAIwC,EAAEzC,EAAI,CAAC,EAAGE,EAAIuC,EAAEzC,EAAI,CAAC,EAAGsB,EAAImB,EAAEzC,EAAI,CAAC,EAAG,EAAIC,EAAE,QAAQ1F,CAAC,EAAI,IAAM2F,EAAE,QAAQ3F,CAAC,EAAI,IAAM+G,EAAE,QAAQ/G,CAAC,EACzG,GAAIwF,EAAE,CAAC,IAAM,OACXjG,EAAE,KAAKiG,EAAE,CAAC,CAAC,MACR,CACH,MAAMwB,EAAIvB,EAAI,EACdD,EAAE,CAAC,EAAIwB,EAAGzH,EAAE,KAAKyH,CAAC,EAAGxH,EAAE,KAAKwH,CAAC,CAC9B,CACF,CACF,KACC,SAASxB,EAAI,EAAGA,EAAI0C,EAAE,OAAQ1C,GAAK,EAAG,CACpC,MAAMC,EAAIyC,EAAE1C,EAAI,CAAC,EAAGE,EAAIwC,EAAE1C,EAAI,CAAC,EAAGG,EAAIuC,EAAE1C,EAAI,CAAC,EAC7C,IAAIuB,EAAI,GACR,QAAS,EAAI,EAAG,EAAIvB,GAAK,CAACuB,EAAG,GAAK,EAAG,CACnC,MAAMC,EAAIkB,EAAE,EAAI,CAAC,EAAGjB,EAAIiB,EAAE,EAAI,CAAC,EAAGhB,EAAIgB,EAAE,EAAI,CAAC,EAC7C,GAAI,KAAK,IAAIzC,EAAIuB,CAAC,EAAIhH,GAAK,KAAK,IAAI0F,EAAIuB,CAAC,EAAIjH,GAAK,KAAK,IAAI2F,EAAIuB,CAAC,EAAIlH,EAAG,CACrET,EAAE,KAAK,EAAI,CAAC,EAAGwH,EAAI,GACnB,KACD,CACF,CACDA,IAAMxH,EAAE,KAAKiG,EAAI,CAAC,EAAGhG,EAAE,KAAKgG,EAAI,CAAC,EAClC,CACH,IAAKrF,EAAI,KAAK,WAAa,MAAQA,EAAE,kBAAmB,CACtD,MAAMqF,IAAMpF,EAAI,KAAK,WAAa,KAAO,OAASA,EAAE,uBAAyB,KAAMqF,EAAI,GACvF,QAASC,EAAI,EAAGA,EAAIlB,EAAE,OAAQkB,GAAK,EAAG,CACpC,IAAIC,EACJ,QAASoB,EAAI,EAAGA,EAAI,EAAG,EAAEA,EAAG,CAC1B,MAAM,EAAIxH,EAAEiF,EAAEkB,EAAIqB,CAAC,CAAC,EAAGC,EAAIzH,EAAEiF,EAAEkB,GAAKqB,EAAI,GAAK,CAAC,CAAC,EAAGE,EAAI1H,EAAEiF,EAAEkB,GAAKqB,EAAI,GAAK,CAAC,CAAC,EAC1E,GAAI,IAAMC,EACR,SACF,MAAME,EAAIgB,EAAE,EAAI,EAAI,CAAC,EAAGf,EAAIe,EAAE,EAAI,EAAI,CAAC,EAAGU,EAAIV,EAAE,EAAI,EAAI,CAAC,EAAGb,EAAIa,EAAElB,EAAI,EAAI,CAAC,EAAGM,EAAIY,EAAElB,EAAI,EAAI,CAAC,EAAGI,EAAIc,EAAElB,EAAI,EAAI,CAAC,EAAGO,EAAK,KAAK,MAAMF,EAAIH,IAAMG,EAAIH,IAAMI,EAAIH,IAAMG,EAAIH,IAAMC,EAAIwB,IAAMxB,EAAIwB,EAAE,EAC1L,QAASpB,EAAK,EAAGA,EAAKhI,EAAE,OAAS,EAAGgI,IAAM,CACxC,MAAMC,GAAKjI,EAAEgI,CAAE,EACf,GAAIC,KAAO,GAAKA,KAAOT,GAAKS,KAAOR,EACjC,SACF,MAAMS,GAAKQ,EAAET,GAAK,EAAI,CAAC,EAAGE,EAAKO,EAAET,GAAK,EAAI,CAAC,EAAGG,GAAKM,EAAET,GAAK,EAAI,CAAC,EAAGI,GAAK,KAAK,MAAMH,GAAKR,IAAMQ,GAAKR,IAAMS,EAAKR,IAAMQ,EAAKR,IAAMS,GAAKgB,IAAMhB,GAAKgB,EAAE,EAAGwG,EAAI,KAAK,MAAM1H,GAAKL,IAAMK,GAAKL,IAAMM,EAAKL,IAAMK,EAAKL,IAAMM,GAAKR,IAAMQ,GAAKR,EAAE,EAChO,KAAK,IAAIS,GAAKuH,EAAI7H,CAAE,EAAI/B,IAAMG,IAAMA,EAAI,CACtC,MAAOD,EACP,YAAa,CAAC,GAAI,CAAE,EAAE,EAAE,CACzB,EAAED,EAAE,KAAKE,CAAC,GAAIA,EAAE,YAAYoB,CAAC,EAAE,KAAK,CAACU,GAAII,EAAE,CAAC,EAC9C,CACF,CACF,CACD,QAASnC,EAAI,EAAGA,EAAID,EAAE,OAAQ,EAAEC,EAAG,CACjC,MAAMC,EAAIF,EAAEC,CAAC,EACb,KAAK,oBAAoBC,EAAE,YAAaA,EAAE,MAAOnB,EAAGjF,CAAC,CACtD,CACDkG,EAAE,OAAS,CACZ,CACD,MAAMtC,EAAI,GACV,QAASqC,EAAI,EAAGA,EAAIhB,EAAE,OAAQgB,GAAK,EAAG,CACpC,IAAIC,EACJ,QAASC,EAAI,EAAGA,EAAI,EAAG,EAAEA,EAAG,CAC1B,IAAIC,EAAIpG,EAAEiF,EAAEgB,EAAIE,CAAC,CAAC,EAAGqB,EAAIxH,EAAEiF,EAAEgB,GAAKE,EAAI,GAAK,CAAC,CAAC,EAC7C,MAAM,EAAInG,EAAEiF,EAAEgB,GAAKE,EAAI,GAAK,CAAC,CAAC,EAC9B,GAAIC,IAAMoB,IAAMpB,IAAM,GAAKoB,IAAM,KAAQxB,EAAI,KAAK,WAAa,MAAQA,EAAE,2BACvE,SACF,GAAI2J,EAAE,QAAQ,CAAC,EAAE,eAAehH,EAAEvC,EAAI,EAAI,CAAC,EAAGuC,EAAEvC,EAAI,EAAI,CAAC,EAAGuC,EAAEvC,EAAI,EAAI,CAAC,CAAC,EAAGuJ,EAAE,QAAQ,CAAC,EAAE,eAAehH,EAAEnB,EAAI,EAAI,CAAC,EAAGmB,EAAEnB,EAAI,EAAI,CAAC,EAAGmB,EAAEnB,EAAI,EAAI,CAAC,CAAC,EAAGmI,EAAE,QAAQ,CAAC,EAAE,eAAehH,EAAE,EAAI,EAAI,CAAC,EAAGA,EAAE,EAAI,EAAI,CAAC,EAAGA,EAAE,EAAI,EAAI,CAAC,CAAC,EAAGzC,IAAMyJ,EAAE,QAAQ,CAAC,EAAE,cAAcA,EAAE,QAAQ,CAAC,EAAGA,EAAE,QAAQ,CAAC,CAAC,EAAGA,EAAE,QAAQ,CAAC,EAAE,cAAcA,EAAE,QAAQ,CAAC,EAAGA,EAAE,QAAQ,CAAC,CAAC,EAAGzJ,EAAIsJ,EAAE,MAAMG,EAAE,QAAQ,CAAC,EAAGA,EAAE,QAAQ,CAAC,CAAC,EAAGzJ,EAAE,UAAS,GAAKE,EAAIoB,EAAG,CAC7Y,MAAMG,EAAIvB,EACVA,EAAIoB,EAAGA,EAAIG,CACZ,CACD,MAAMF,EAAIrB,EAAI,IAAMoB,EAAGE,EAAI9D,EAAE6D,CAAC,EAC9BC,EAAIA,EAAE,OAAS8H,EAAE,IAAItJ,EAAGwB,EAAE,MAAM,EAAI,KAAK,UAAY,KAAK,WAAWiI,EAAE,QAAQ,CAAC,EAAGA,EAAE,QAAQ,CAAC,EAAG,KAAK,gBAAgB,OAAS,CAAC,EAAGjI,EAAE,KAAO,IAAM9D,EAAE6D,CAAC,EAAI,CAAE,OAAQvB,EAAG,KAAM,GAAI,MAAOD,EAAG,EAAGE,EAC9L,CACF,CACD,UAAWF,KAAKrC,EAAG,CACjB,MAAMsC,EAAItC,EAAEqC,CAAC,EACb,GAAI,CAACC,EAAE,KAAM,CACX,MAAMC,EAAInG,EAAEiF,EAAEiB,EAAE,MAAQA,EAAE,CAAC,CAAC,EAAGE,EAAIpG,EAAEiF,EAAEiB,EAAE,OAASA,EAAE,EAAI,GAAK,CAAC,CAAC,EAC/DyJ,EAAE,QAAQ,CAAC,EAAE,eAAehH,EAAExC,EAAI,EAAI,CAAC,EAAGwC,EAAExC,EAAI,EAAI,CAAC,EAAGwC,EAAExC,EAAI,EAAI,CAAC,CAAC,EAAGwJ,EAAE,QAAQ,CAAC,EAAE,eAAehH,EAAEvC,EAAI,EAAI,CAAC,EAAGuC,EAAEvC,EAAI,EAAI,CAAC,EAAGuC,EAAEvC,EAAI,EAAI,CAAC,CAAC,EAAG,KAAK,WAAWuJ,EAAE,QAAQ,CAAC,EAAGA,EAAE,QAAQ,CAAC,EAAG,KAAK,gBAAgB,OAAS,CAAC,CAC1N,CACF,CACD,MAAMpN,EAAI,KAAK,QAAQ,SAAU,EAAC,UAAS,EAC3C,KAAK,SAAS0R,EAAE,YAAY,EAAI,IAAIA,EAAE1R,EAAG,KAAK,gBAAiB0R,EAAE,aAAc,EAAE,EAAG,KAAK,SAASA,EAAE,UAAU,EAAI,IAAIA,EAAE1R,EAAG,KAAK,cAAe0R,EAAE,WAAY,GAAI,GAAI,CAAC,EAAG,KAAK,qBAAqBA,EAAE,YAAY,EAAI,KAAK,SAASA,EAAE,YAAY,EAAG,KAAK,qBAAqBA,EAAE,UAAU,EAAI,KAAK,SAASA,EAAE,UAAU,EAAG,KAAK,IAAM1R,EAAE,kBAAkB,KAAK,aAAa,EAAG,KAAK,cAAgB,KAAK,cAAc,MACxZ,CAKD,qBAAsB,CACpB,MAAM,EAAI,KAAK,QAAQ,gBAAgB0R,EAAE,YAAY,EAAG,EAAI,KAAK,QAAQ,WAAU,EACnF,GAAI,CAAC,GAAK,CAAC,EACT,OACF,MAAM,EAAI,GAAI,EAAI,GAClB,IAAIjU,EAAGC,EACP,IAAKD,EAAI,EAAGA,EAAI,EAAE,OAAQA,GAAK,EAAG,CAChCC,EAAI,IAAI6/E,IACR,MAAM,EAAI,EAAE9/E,CAAC,EAAG,EAAI,EAAEA,EAAI,CAAC,EAAG,EAAI,EAAEA,EAAI,CAAC,EACzCC,EAAE,GAAK,IAAIuP,EAAE,EAAE,EAAI,CAAC,EAAG,EAAE,EAAI,EAAI,CAAC,EAAG,EAAE,EAAI,EAAI,CAAC,CAAC,EAAGvP,EAAE,GAAK,IAAIuP,EAAE,EAAE,EAAI,CAAC,EAAG,EAAE,EAAI,EAAI,CAAC,EAAG,EAAE,EAAI,EAAI,CAAC,CAAC,EAAGvP,EAAE,GAAK,IAAIuP,EAAE,EAAE,EAAI,CAAC,EAAG,EAAE,EAAI,EAAI,CAAC,EAAG,EAAE,EAAI,EAAI,CAAC,CAAC,EACzJ,MAAM,EAAIA,EAAE,MAAMvP,EAAE,GAAG,SAASA,EAAE,EAAE,EAAGA,EAAE,GAAG,SAASA,EAAE,EAAE,CAAC,EAC1D,EAAE,YAAa,EAAE,KAAK,CAAC,EAAG,EAAE,KAAKA,CAAC,CACnC,CACD,IAAKD,EAAI,EAAGA,EAAI,EAAE,OAAQA,IAAK,CAC7BC,EAAI,EAAED,CAAC,EACP,QAAS,EAAIA,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,CACrC,MAAM,EAAI,EAAE,CAAC,EACb,GAAIC,EAAE,sBAAwB,EAC5B,MACF,GAAI,EAAE,sBAAwB,EAC5B,SACF,MAAM,EAAI,EAAE,EAAI,CAAC,EAAG,EAAI,EAAE,EAAI,EAAI,CAAC,EAAG,EAAI,EAAE,EAAI,EAAI,CAAC,EACrD,QAASY,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAImF,EAAI,EACR,GAAI/F,EAAE,MAAMY,CAAC,IAAM,OAAQ,CACzB,OAAQA,EAAC,CACP,IAAK,GACH,KAAK,+BAAiCmF,EAAI,KAAK,uCAAuC/F,EAAE,GAAIA,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,EAAE,EAAI+F,EAAI,KAAK,2BAA2B,EAAEhG,EAAI,CAAC,EAAG,EAAEA,EAAI,EAAI,CAAC,EAAG,EAAG,EAAG,CAAC,EACzL,MACF,IAAK,GACH,KAAK,+BAAiCgG,EAAI,KAAK,uCAAuC/F,EAAE,GAAIA,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,EAAE,EAAI+F,EAAI,KAAK,2BAA2B,EAAEhG,EAAI,EAAI,CAAC,EAAG,EAAEA,EAAI,EAAI,CAAC,EAAG,EAAG,EAAG,CAAC,EAC7L,MACF,IAAK,GACH,KAAK,+BAAiCgG,EAAI,KAAK,uCAAuC/F,EAAE,GAAIA,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,EAAE,EAAI+F,EAAI,KAAK,2BAA2B,EAAEhG,EAAI,EAAI,CAAC,EAAG,EAAEA,EAAI,CAAC,EAAG,EAAG,EAAG,CAAC,EACzL,KACH,CACD,GAAIgG,IAAM,KAAO/F,EAAE,MAAMY,CAAC,EAAI,EAAG,EAAE,MAAMmF,CAAC,EAAIhG,EAAGC,EAAE,sBAAuB,EAAE,sBAAuBA,EAAE,sBAAwB,GAC3H,KACH,CACF,CACF,CACF,CACD,IAAKD,EAAI,EAAGA,EAAI,EAAE,OAAQA,IAAK,CAC7B,MAAM,EAAI,EAAEA,CAAC,EACb,KAAK,WAAWA,EAAG,EAAE,MAAM,CAAC,EAAG,EAAG,EAAE,GAAI,EAAE,EAAE,EAAG,KAAK,WAAWA,EAAG,EAAE,MAAM,CAAC,EAAG,EAAG,EAAE,GAAI,EAAE,EAAE,EAAG,KAAK,WAAWA,EAAG,EAAE,MAAM,CAAC,EAAG,EAAG,EAAE,GAAI,EAAE,EAAE,CAC3I,CACD,MAAM,EAAI,KAAK,QAAQ,SAAU,EAAC,UAAS,EAC3C,KAAK,SAASiU,EAAE,YAAY,EAAI,IAAIA,EAAE,EAAG,KAAK,gBAAiBA,EAAE,aAAc,EAAE,EAAG,KAAK,SAASA,EAAE,UAAU,EAAI,IAAIA,EAAE,EAAG,KAAK,cAAeA,EAAE,WAAY,GAAI,GAAI,CAAC,EAAG,KAAK,qBAAqBA,EAAE,YAAY,EAAI,KAAK,SAASA,EAAE,YAAY,EAAG,KAAK,qBAAqBA,EAAE,UAAU,EAAI,KAAK,SAASA,EAAE,UAAU,EAAG,KAAK,IAAM,EAAE,kBAAkB,KAAK,aAAa,EAAG,KAAK,cAAgB,KAAK,cAAc,MACxZ,CAKD,SAAU,CACR,OAAO,KAAK,YAAY,QAAQ,KAAK,QAAS,KAAK,QAAQ,cAAgB,KAAK,gBAAgB,OAAS,GAAK,KAAK,QAAQ,gBAAgB,CAC5I,CAID,QAAS,CACP,MAAM,EAAI,KAAK,QAAQ,SAAQ,EAAI,EAAI,KAAK,YAAY,kBACxD,GAAI,KAAK,cAAgB,KAAK,YAAY,gBAAgB,KAAK,YAAY,EAAG,CAAC,KAAK,QAAS,GAAI,CAAC,EAAE,aAAc,CAChH,KAAK,YAAY,gBAAgB,CAAC,EAClC,MACD,CACD,MAAM,EAAI,KAAK,QAAQ,cAAgB,KAAK,gBAAgB,OAAS,EAAG,EAAI,GAAK,KAAK,QAAQ,iBAC9F,IAAIjU,EAAI,EACR,GAAI,EACF,GAAI,KAAK,qBAAqB,OAAS,KAAK,QAAQ,gBAAgB,QAAQ,EAAG,KAAK,qBAAqB,OAAS,KAAK,QAAQ,gBAAgB,QAAQ,EAAG,KAAK,qBAAqB,OAAS,KAAK,QAAQ,gBAAgB,QAAQ,EAAG,KAAK,qBAAqB,OAAS,KAAK,QAAQ,gBAAgB,QAAQ,EAAG,EAAG,CACjT,MAAM,EAAI,KAAK,QAAQ,qBACvB,GAAIA,EAAI,KAAK,gBAAgB,OAAQ,CAAC,EAAE,cAAe,CACrD,KAAK,QAAQ,SAAU,EAAC,qBAAuB,KAAK,gBAAgB,QACpE,MACD,CACD,GAAI,CAAC,EAAE,SAAU,CACf,IAAI,EAAI,EACR,QAAS,EAAI,EAAG,EAAIA,EAAG,EAAE,EACvB,KAAK,gBAAgB,KAAK,CAAC,EAAE,YAAY,EAAE,cAAe,CAAC,EAAG,GAAK,GACrE,EAAE,gBAAgB,eAAe,EAAE,cAAe,EAAGA,CAAC,CACvD,CACF,MACCA,EAAI,KAAK,QAAQ,kBACrB,MAAMC,EAAI,EAAE,YACZ,KAAK,YAAY,SAAU,EAAE,KAAK,QAAQ,WAAW,IAAM,EAAIA,EAAE,aAAa,CAAC,EAAIA,EAAE,aAAa,CAAC,EAAGA,EAAE,YAAY,EAAI,KAAK,qBAAuB,KAAK,SAAU,KAAK,IAAK,KAAK,YAAY,UAAW,GAAG,EAAE,oBAAqB,EAAE,KAAK,YAAY,UAAU,QAAS,KAAK,QAAQ,UAAU,EAAG,EAAE,aAAa,OAASusB,GAAG,oBAAsB,KAAK,YAAY,SAAS,QAAS,KAAK,QAAQ,WAAa,KAAK,+BAA+B,EAAI,KAAK,YAAY,SAAS,QAAS,KAAK,QAAQ,WAAa,KAAK,8BAA8B,EAAG,KAAK,YAAY,SAAS,cAAevsB,EAAE,eAAe,EAAE,YAAY,CAAC,EAAG,KAAK,YAAY,KAAK,KAAK,QAAQ,eAAgB,EAAE,KAAK,OAAO,EAAGA,EAAE,iBAAiBuxB,GAAG,iBAAkB,EAAG,KAAK,cAAexxB,CAAC,EAAG,KAAK,YAAY,SAAU,GAAKC,EAAE,2BAA4B,KAAK,QAAQ,WAAW,qBAAuB,KAAK,gBAAgB,MAAK,EAAI,KAAK,YAAY,gBAAgB,CAAC,CAC75B,CACH,MACA,cAAiBy/E,EAAG,CAOlB,YAAY,EAAG,EAAI,IAAM,EAAI,GAAI,CAC/B,MAAM,EAAG,EAAG,EAAG,EAAE,EAAG,KAAK,qBAC1B,CAID,qBAAsB,CACpB,MAAM,EAAI,KAAK,QAAQ,gBAAgBzrE,EAAE,YAAY,EAAG,EAAI,KAAK,QAAQ,WAAU,EACnF,GAAI,CAAC,GAAK,CAAC,EACT,OACF,MAAM,EAAItE,EAAE,QAAQ,CAAC,EAAG,EAAIA,EAAE,QAAQ,CAAC,EAAG3P,EAAI,EAAE,OAAS,EACzD,QAAS,EAAI,EAAG,EAAI,EAAG,EAAIA,EAAG,GAAK,EAAG,GAAK,EACzCwP,EAAE,eAAe,EAAG,EAAI,EAAE,CAAC,EAAG,CAAC,EAAGA,EAAE,eAAe,EAAG,EAAI,EAAE,EAAI,CAAC,EAAG,CAAC,EAAG,KAAK,WAAW,EAAG,EAAG,CAAC,EACjG,MAAMvP,EAAI,KAAK,QAAQ,SAAU,EAAC,UAAS,EAC3C,KAAK,SAASgU,EAAE,YAAY,EAAI,IAAIA,EAAEhU,EAAG,KAAK,gBAAiBgU,EAAE,aAAc,EAAE,EAAG,KAAK,SAASA,EAAE,UAAU,EAAI,IAAIA,EAAEhU,EAAG,KAAK,cAAegU,EAAE,WAAY,GAAI,GAAI,CAAC,EAAG,KAAK,IAAMhU,EAAE,kBAAkB,KAAK,aAAa,EAAG,KAAK,cAAgB,KAAK,cAAc,MACtQ,CACH,MACA,cAAiB66D,EAAG,CAClB,YAAY,EAAG,EAAG,EAAG,EAAG96D,EAAGC,EAAG,CAC5B,MAAM,EAAG,EAAG,EAAGD,EAAGC,CAAC,EAAG,KAAK,gCAAkC,CAAE,EAAE,KAAK,sBAAwB,GAAI,KAAK,QAAU,GAAI,KAAK,oBAAsB,KAAM,KAAK,oBAAsB,CAClL,CAKD,0BAA2B,CACzB,KAAK,2BAA6B,IAAIu4E,GAAG,qBAAsB,EAAG,KAAM,OAAQ,KAAK,OAAO,EAAG,KAAK,2BAA2B,kBAAiB,CACjJ,CAKD,YAAa,CACX,MAAM,EAAI,KAAK,QAAQ,eAAe,EAAE,EAAG,EAAI,KAAK,QAAQ,gBAAgB,EAAE,EAAG,EAAI,KAAK,eAAc,EAAI,EAAI,KAAK,mBACpH,IAAM,GAAK,IAAM,KAAO,KAAK,OAAO,CAAE,MAAO,EAAG,OAAQ,EAAG,EAAG,KAAK,sBAAwB,GAC7F,CAQD,YAAY,EAAG,EAAG,EAAG,CACnB,MAAM,YAAY,EAAG,EAAG,CAAC,EAAG,KAAK,sBAAwB,EAC1D,CAKD,wBAAyB,CACvB,KAAK,gCAAgC,OAAS,CAC/C,CAID,SAAU,CACR,MAAM,EAAI,KAAK,OACf,GAAI,MAAM,QAAO,EAAI,GAAK,EAAE,gBAAiB,CAC3C,MAAM,EAAI,EAAE,gBAAgB,cAAc,QAAQ,IAAI,EACtD,IAAM,IAAM,EAAE,gBAAgB,cAAc,OAAO,EAAG,CAAC,CACxD,CACD,KAAK,4BAA8B,KAAK,2BAA2B,QAAO,EAAI,KAAK,sBAAwB,KAAK,oBAAoB,qBAAuB,MAAO,KAAK,qBAAuB,KAAK,mBAAmB,UAAY,GAAI,KAAK,mBAAmB,2BAA0B,EACzR,CACH,EACAuH,GAAA,MAAMC,EAAG,CAIP,IAAI,6BAA8B,CAChC,OAAO,KAAK,4BACb,CACD,IAAI,4BAA4B,EAAG,CACjC,KAAK,+BAAiC,IAAM,KAAK,6BAA+B,EAAG,KAAK,gCAA+B,EACxH,CAMD,SAAS,EAAG,CACV,OAAO,KAAK,gBAAgB,CAAC,CAC9B,CAID,IAAI,SAAU,CACZ,OAAO,KAAK,UAAU,OACvB,CACD,IAAI,QAAQ,EAAG,CACb,KAAK,UAAU,QAAU,CAC1B,CAKD,IAAI,iCAAkC,CACpC,OAAO,KAAK,gCACb,CACD,IAAI,gCAAgC,EAAG,CACrC,KAAK,mCAAqC,IAAM,KAAK,iCAAmC,EAAG,KAAK,SAAW,GAC5G,CAMD,iBAAkB,CAChB,OAAO,KAAK,cACb,CAMD,iBAAiB,EAAG,CAClB,IAAI,EACJ,EAAI,KAAK,eAAiB,GAAK,KAAK,eAAiB,KAAK,UAAW,KAAK,QAAQ,sBAAwB,EAAI,KAAK,OAAO,eAAiB,KAAO,OAAS,EAAE,eAAiB,KAAK,eAAe,aACnM,CAKD,IAAI,oBAAqB,CACvB,OAAO,KAAK,iBAAmB,KAAK,SACrC,CACD,oCAAqC,CACnC,GAAI,KAAK,iCACP,KAAK,iBAAmB,KAAK,gBAAgB,uBAAwB,EAAE,KAAK,gBAAkB,KAAM,KAAK,OAAO,8BAA6B,MAC1I,CACH,GAAI,KAAK,gBAAkB,KAAK,OAAO,+BAAgC,CAAC,KAAK,gBAAiB,CAC5F,KAAK,iCAAmC,GACxC,MACD,CACD,KAAK,gBAAgB,qBAAqB,IAAI,CAC/C,CACF,CAID,IAAI,SAAU,CACZ,OAAO,KAAK,QACb,CAKD,YAAY,EAAG,CACb,KAAK,oBAAsB,GAAI,KAAK,kBAAoB,CAAE,EAAE,KAAK,SAAW,EAAG,KAAK,UAAY,CAAE,EAAE,KAAK,YAAc,GAAI,KAAK,WAAa,GAAI,KAAK,UAAY,CAAE,EAAE,KAAK,gBAAkB,GAAI,KAAK,6BAA+B,GAAI,KAAK,iCAAmC,GAAI,KAAK,SAAW,GAAI,KAAK,sBAAwB,GAAI,KAAK,iCAAmC,GAAI,KAAK,cAAgB,GAAI,KAAK,YAAc,IAAI9sE,GAAG,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,iBAAmB,IAAIA,GAAG,IAAK,EAAG,EAAG,CAAC,EAAG,KAAK,SAAW,GAAI,KAAK,6BAA+B,GAAI,KAAK,sBAAwB,GAAI,KAAK,OAAS,EAAG,KAAK,QAAU,EAAE,YACnmB,IAAI,EAAI,EACR,KAAK,QAAQ,MAAM,cAAgB,KAAK,QAAQ,MAAM,4BAA8B,EAAI,EAAI,KAAK,QAAQ,MAAM,kBAAoB,KAAK,QAAQ,MAAM,kCAAoC,EAAI,GAC9L,QAAS,EAAI,EAAG,EAAI8sE,GAAG,eAAe,OAAQ,EAAE,EAAG,CACjD,MAAM,EAAIA,GAAG,eAAe,CAAC,EAAE,OAC/BA,GAAG,eAAe,CAAC,EAAE,OAAS,IAAMA,GAAG,eAAe,CAAC,EAAE,KAAO,GAAI,IAAM,GAAK,IAAM,GAAK,IAAM,IAAM,CAAC,KAAK,QAAQ,MAAM,8BAAgCA,GAAG,eAAe,CAAC,EAAE,KAAO,GACvL,CACDA,GAAG,8BAA8B,KAAK,MAAM,EAAG,KAAK,UAAY,KAAK,oBAAoB,iBAAkB,IAAI,EAAG,KAAK,eAAiB,KAAK,SAC9I,CASD,oBAAoB,EAAG,EAAG,CACxB,MAAM,EAAI,IAAIC,IAAG,EAAG,EAAG,CAAE,MAAO,KAAK,QAAQ,eAAc,EAAI,OAAQ,KAAK,QAAQ,gBAAiB,GAAI,EAAG,KAAK,OAAQ,CACvH,gBAAiB,GACjB,sBAAuB,KAAK,QAAQ,gBACpC,YAAa,EACb,MAAO,CAAE,EACT,mCAAoC,EAC1C,CAAK,EACD,OAAO,KAAK,cAAc,KAAK,CAAC,EAAG,KAAK,UAAY,KAAK,QAAS,EAAE,CACrE,CAID,IAAI,aAAc,CAChB,OAAO,KAAK,OAAO,UAAW,EAAC,QAAO,EAAG,oBAC1C,CAMD,yBAAyB,EAAG,EAAG,CAC7B,MAAM,EAAI,EAAE,YAAa,EAAE,EAAI,GAAK,EAAE,iBAAkBjgF,EAAI,GAAK,KAAK,kBAAkB,QAAQ,CAAC,IAAM,GACvG,KAAK,SAAW,KAAK,eAAe,UAAY,EAAE,cAAgB,GAAK,CAACA,EAAI,KAAK,QAAQ,gBAAgB,KAAK,uBAAuB,GAAK,KAAK,QAAQ,qBAAuB,KAAK,QAAQ,gBAAgB,KAAK,mBAAmB,EAAI,KAAK,QAAQ,0BAA2B,KAAK,iBAAmB,KAAK,oBAAsB,CAACA,GAAK,KAAK,gBAAgB,WAAW,KAAK,EAAE,kBAAkB,GAClY,CACD,0BAA2B,CACzB,MAAM,EAAI,CAAE,EAAE,EAAI,CAAC,EAAE,EAAG,EAAI,CAAC,EAAE,EAAG,EAAI,CAAC,EAAE,EACzC,QAASA,EAAI,EAAGA,EAAI,KAAK,SAAUA,IACjC,EAAE,KAAK,EAAE,EAAGA,EAAI,IAAM,KAAK,kCAAoC,KAAK,WAAWA,CAAC,IAAM,GAAK,EAAE,KAAK,EAAE,EAAG,EAAE,KAAK,EAAE,IAAM,EAAE,KAAK,EAAE,EAAG,EAAE,KAAK,EAAE,GAAI,EAAE,KAAK,EAAE,GAC1J,KAAK,wBAA0B,KAAK,QAAQ,mBAAmB,CAAC,EAAG,KAAK,kBAAoB,KAAK,QAAQ,mBAAmB,CAAC,EAAG,KAAK,uBAAyB,KAAK,QAAQ,mBAAmB,CAAC,EAAG,KAAK,oBAAsB,KAAK,QAAQ,mBAAmB,CAAC,CAC/P,CACD,cAAe,CACb,QAAS,EAAI,EAAG,EAAIggF,GAAG,eAAe,OAAQ,IAC5C,KAAK,gBAAgBA,GAAG,eAAe,CAAC,EAAE,OAAO,EAAI,GACvD,KAAK,gBAAgB,CAAC,EAAI,EAAG,KAAK,WAAa,CAAC,CAAC,EAAG,KAAK,UAAY,CAACA,GAAG,eAAe,CAAC,EAAE,IAAI,EAAG,KAAK,YAAc,CAACA,GAAG,eAAe,CAAC,EAAE,MAAM,EAAG,KAAK,UAAY,CAACA,GAAG,eAAe,CAAC,EAAE,IAAI,EAAG,KAAK,SAAW,CACnN,CACD,6BAA8B,CAC5B,GAAI,KAAK,qCAAsC,KAAK,gBAAiB,CACnE,KAAK,gBAAgB,eACrB,MAAM,EAAI,GACV,QAAS,EAAI,EAAG,EAAI,KAAK,WAAW,OAAQ,IAC1C,EAAE,KAAK,EAAE,EACX,KAAK,gBAAgB,qBAAqB,KAAK,UAAU,mBAAkB,CAAE,EAC7E,MAAM,EAAI,CACR,CACE,gBAAiB,EACjB,uBAAwB3G,GAAG,kBAC5B,EACD,CACE,gBAAiB,EACjB,uBAAwBA,GAAG,mBAC5B,EACD,CACE,gBAAiB,EACjB,uBAAwBA,GAAG,qBAC5B,EACD,CACE,gBAAiB,EACjB,uBAAwBA,GAAG,yBAC5B,EACD,CACE,gBAAiB,EACjB,uBAAwBA,GAAG,qBAC5B,CACT,EACM,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,CACjC,MAAM,EAAI,KAAK,WAAW,QAAQ,EAAE,CAAC,EAAE,eAAe,EACtD,IAAM,KAAO,KAAK,gBAAgB,kBAAkB,EAAE,CAAC,EAAE,uBAAwB,CAAC,EAAG,EAAE,CAAC,EAAI,GAC7F,CACD,KAAK,gBAAgB,gBAAgB,KAAK,QAAQ,mBAAmB,CAAC,CAAC,CACxE,CACF,CAID,oBAAqB,CACnB,KAAK,SAAW,KAAK,eAAe,SAAW,KAAK,sBAAwB,KAAK,QAAQ,qBAAuB,KAAK,QAAQ,gBAAgB,KAAK,mBAAmB,EAAI,KAAK,QAAQ,wBAAuB,EAC9M,CAKD,YAAY,EAAG,EAAG,EAAG,CACnB,KAAK,UAAY,KAAK,UAAW,EAAE,CAAC,KAAK,UAAY,CAAC,KAAK,eAAe,WAAa,KAAK,kBAAoB,KAAK,gBAAgB,WAAa,IAAK,KAAK,wBAAwB,KAAK,eAAgB,CAAC,EAC3M,CACD,cAAc,EAAG,EAAG,EAAG,CACrB,EAAE,oBAAsB,EAAE,oBAAoB,cAAc,KAAK,OAAQ,EAAG,EAAG,EAAE,oBAAoB,sBAAsB,EAAI,KAAK,gCAAgC,OAAS,KAAK,OAAO,mBAAmB,gBAAkB,KAAK,QAAQ,0BAAyB,CACrQ,CAQD,gBAAgB,EAAG,CACjB,MAAM,EAAI,KAAK,gCAAgC,CAAC,EAChD,OAAO,GAAK,EAAE,aAAe,EAAE,aAAc,IAAM,EACpD,CACD,qBAAqB,EAAG,EAAG,CACzB,IAAIp5E,EACJ,MAAMO,EAAI,KAAK,gCAAgC,CAAC,EAAGC,EAAID,EAAIA,EAAE,aAAe,EAAE,oBAAsB,EAAE,oBAAoB,aAAe,KACzI,IAAIR,EAAI,KAAK,eAAe,gCAC5B,KAAK,+BAAiCA,EAAIA,EAAE,OAAO,CAAC,KAAK,eAAe,0BAA0B,CAAC,GAAIA,EAAE,SAAW,KAAK,OAAO,mBAAmB,eAAeC,EAAI,KAAK,eAAe,eAAiB,KAAO,OAASA,EAAE,QAASD,CAAC,EAAG,KAAK,OAAO,mBAAmB,aAAaA,EAAGS,EAAG,GAAI,CAAC,EAClS,CAID,WAAW,EAAG,EAAG,CACf,KAAK,UAAY,KAAK,eAAe,UAAY,KAAK,cAAc,KAAK,eAAgB,EAAG,CAAC,EAAG,KAAK,qBAAqB,KAAK,eAAgB,CAAC,EACjJ,CAKD,QAAS,CACP,KAAK,UAAY,KAAK,QAAS,EAAE,KAAK,UAAY,KAAK,eAAe,UAAY,KAAK,iBAAkB,EAAE,KAAK,QAAQ,gBAAgB,KAAK,iBAAiB,EAAG,KAAK,QAAQ,MAAM,KAAK,YAAa,GAAI,GAAI,EAAE,EAAG,KAAK,mCAAqC,KAAK,QAAQ,gBAAgB,KAAK,sBAAsB,EAAG,KAAK,QAAQ,MAAM,KAAK,iBAAkB,GAAI,GAAI,EAAE,GAAI,KAAK,QAAQ,gBAAgB,KAAK,mBAAmB,EACta,CAED,kBAAmB,CACjB,GAAI,KAAK,UAAY,KAAK,eAAe,QAAS,CAChD,KAAK,eAAe,aACpB,MAAM,EAAI,KAAK,eAAe,aAC9B,GAAK,KAAK,QAAQ,gBAAgB,CAAC,CACpC,CACF,CACD,YAAY,EAAG,CACb,KAAK,SAAW,CACjB,CACD,wBAAwB,EAAG,EAAG,CAC5B,EAAE,QAAU,EAAG,GAAK,KAAK,uBAAuB,CAAC,CAClD,CAQD,uBAAuB,EAAG,CACxB,QAAS,EAAI,EAAG,EAAI,KAAK,sBAAsB,OAAQ,IACrD,GAAI,KAAK,sBAAsB,CAAC,EAAE,OAAS,EAAE,KAC3C,OAAO,KAAK,sBAAsB,CAAC,EACvC,OAAO,KAAK,sBAAsB,KAAK,CAAC,EAAG,CAC5C,CAMD,uBAAuB,EAAG,CACxB,QAAS,EAAI,EAAG,EAAI,KAAK,sBAAsB,OAAQ,IACrD,GAAI,KAAK,sBAAsB,CAAC,EAAE,OAAS,EACzC,OAAO,KAAK,sBAAsB,CAAC,EACvC,OAAO,IACR,CACD,SAAU,CACR,MAAM,EAAI,KAAK,SACf,QAAS,EAAI,EAAG,EAAI,KAAK,sBAAsB,OAAQ,IACrD,KAAK,sBAAsB,CAAC,EAAE,SAAW,KAAK,gBAAgB,KAAK,sBAAsB,CAAC,EAAE,gBAAgB,EAC9G,QAAS,EAAI,EAAG,EAAI,KAAK,cAAc,OAAQ,IAAK,EACjD,KAAK,WAAa,GAAK,KAAK,cAAc,CAAC,EAAE,QAAU,KAAK,WAAa,KAAK,cAAc,CAAC,EAAE,YAAY,KAAK,SAAU,CAAE,MAAO,KAAK,UAAW,QAAS,KAAK,WAAa,EAAE,KAAK,UAAU,OAAO,qBAAqB,CAAC,EAAG,KAAK,cAAc,CAAC,EAAE,yBACtP,QAAS,EAAI,EAAG,EAAI,KAAK,sBAAsB,OAAQ,IACrD,KAAK,sBAAsB,CAAC,EAAE,UAAY,CAAC,KAAK,sBAAsB,CAAC,EAAE,aAAe,KAAK,sBAAsB,CAAC,EAAE,mBAAqB,KAAK,sBAAsB,CAAC,EAAE,kBAAmB,EAAE,KAAK,sBAAsB,CAAC,EAAE,aAAe,KAAK,cAAc,CAAC,EAAE,gCAAgC,KAAK,KAAK,sBAAsB,CAAC,EAAE,WAAW,EAClV,CACD,KAAK,yBAA0B,EAAE,KAAK,YAAY,EAAE,EAAG,KAAK,6BAC7D,CACD,UAAW,CACT,KAAK,YAAY,EAAE,EACnB,QAAS,EAAI,EAAG,EAAI,KAAK,cAAc,OAAQ,IAC7C,KAAK,wBAAwB,KAAK,cAAc,CAAC,EAAG,EAAE,EACxD,KAAK,aAAY,EACjB,QAAS,EAAI,EAAG,EAAI,KAAK,sBAAsB,OAAQ,IACrD,KAAK,sBAAsB,CAAC,EAAE,QAAU,EAC3C,CACD,wBAAwB,EAAG,EAAG,CAC5B,GAAI,EACF,OAAO,EAAE,eACX,GAAI,EAAE,oBACJ,GAAI,EAAE,oBAAoB,uBAAwB,CAChD,MAAM,EAAI,EAAE,oBAAoB,aAAe,EAAE,oBAAoB,aAAe,KAAK,OAAO,aAChG,OAAO,EAAI,EAAE,eAAiB,EACtC,KAAa,QAAO,EAAE,oBAAoB,cAAgB,EAAE,oBAAoB,cAAgB,OAE1F,QAAO,KAAK,OAAO,aAAe,KAAK,OAAO,aAAa,eAAiB,EAC/E,CACD,wBAAwB,EAAG,EAAG,CAC5B,MAAM,EAAI,GAAK,KAAK,OAAO,eAAiB,CAAC,CAAC,KAAK,OAAO,cAAc,QAAU,KAAK,OAAO,cAAc,QAAQ,CAAC,IAAM,EAC3H,KAAK,gCAAkC,KAAK,wBAAwB,EAAG,CAAC,EAAG,KAAK,gCAAkC,KAAK,gCAAgC,OAAQ,GAAM,GAAK,IAAI,EAAG,KAAK,OAAO,UAAY,GACzM,MAAM,EAAI,KAAK,oBAAoB,KAAK,+BAA+B,EACvE,KAAK,6BAA+B,CAAC,GAAK,CAAC,KAAK,uBAAyB,KAAK,yBAA2B,CAAC,EAC1G,MAAMT,EAAI,KAAK,qBAAqB,KAAK,+BAA+B,EAAGC,EAAI,EAAE,iCAAmC,EAAE,gCAAgC,CAAC,EACvJ,IAAI,EAAI,KACR,KAAK,OAAO,6BAA6B,mBAAqB,KAAK,8BAAgC,EAAG,KAAK,8BAAgC,CAAC,EAAE,4BAA8B,EAAE,yBAAwB,EAAIA,EAAI,EAAIA,EAAI,KAAK,6BAA+B,EAAI,EAAE,2BAA6BD,IAAM,EAAIA,GAAI,KAAK,iBAAgB,EAAI,KAAK,qBAAqB,EAAG,CAAC,CACnW,CACD,qBAAqB,EAAG,EAAG,CACzB,IAAM,EAAE,UAAY,GAAI,EAAE,aAAe,EAAE,cAAe,EAAE,qBAAuB,IAAM,EAAE,oBAAsB,KAAK,uBAAuB,CAAC,EAAG,EAAE,mBAAqB,GAAI,EAAE,wBAA0B,KAAK,4BAA2B,EAAI,EAAE,sBAAwB,GACvQ,CAID,uBAAuB,EAAG,CACxB,EAAE,qBAAuB,EAAE,mBAAmB,UAAY,GAAI,EAAE,mBAAmB,2BAA4B,EAAE,EAAE,mBAAqB,KACzI,CACD,uBAAwB,CACtB,QAAS,EAAI,EAAG,EAAI,KAAK,sBAAsB,OAAQ,IACrD,GAAI,KAAK,sBAAsB,CAAC,EAAE,SAAW,KAAK,sBAAsB,CAAC,EAAE,qBACzE,MAAO,GACX,MAAO,EACR,CACD,oBAAoB,EAAG,CACrB,IAAIQ,EACJ,IAAIyE,EAAI,GACR,GAAI,GACF,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,KAAMzE,EAAI,EAAE,CAAC,IAAM,KAAO,OAASA,EAAE,aAAY,KAAQ,6BAA8B,CACrFyE,EAAI,GACJ,KACD,EAEL,OAAOA,CACR,CAMD,qBAAqB,EAAG,CACtB,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,GAAI,EAAE,CAAC,IAAM,KACX,OAAO,EAAE,CAAC,EACd,OAAO,IACR,CAID,aAAc,CACZ,KAAK,SAAW,EACjB,CAKD,gBAAgB,EAAG,CACjB,KAAK,OAAO,2BAA6B,GACzC,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,CACjC,MAAM,EAAI,EAAE,CAAC,EACb,KAAK,gBAAgB,CAAC,IAAM,KAAO,KAAK,gBAAgB,CAAC,EAAI,KAAK,WAAW,OAAQ,KAAK,WAAW,KAAK,CAAC,EAAG,KAAK,UAAU,KAAK+6E,GAAG,eAAe,CAAC,EAAE,IAAI,EAAG,KAAK,YAAY,KAAKA,GAAG,eAAe,CAAC,EAAE,MAAM,EAAG,KAAK,UAAU,KAAKA,GAAG,eAAe,CAAC,EAAE,IAAI,EAAG,KAAK,YAAa,IAAM,IAAM,KAAK,OAAO,2BAA6B,GAC1U,CACF,CAID,QAAS,CACP,KAAK,UAAY,KAAK,SACvB,CACD,SAAU,CACR,KAAK,SAAQ,EACb,IAAI,EAAI,GACR,KAAK,OAAO,6BAA6B,mBAAqB,GAAI,KAAK,OAAO,uBAAyB,KAAK,OAAO,kCAAoC,KAAK,OAAO,sBAAsB,mBAAmB,IAAI,EAAG,EAAI,IACvN,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,UAAU,OAAQ,IAChD,KAAK,OAAO,UAAU,CAAC,EAAE,mBAAmB,IAAI,IAAM,EAAI,IAC5D,GAAK,KAAK,wBAAwB,KAAK,UAAW,EAAE,EACpD,IAAI,EACJ,QAAS,EAAI,EAAG,EAAI,KAAK,cAAc,OAAQ,IAAK,CAClD,GAAI,KAAK,cAAc,CAAC,EAAE,oBACxB,EAAI,KAAK,wBAAwB,KAAK,cAAc,CAAC,CAAC,MACnD,CACH,MAAM,EAAI,KAAK,OAAO,aACtB,GAAI,CAAC,EACH,SACF,EAAI,EAAE,cACP,CACD,GAAI,IAAM,EAAI,EAAE,OAAQ,GAAM,GAAK,IAAI,EAAG,GAAI,CAC5C,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAE,CAAC,EAAE,mBAAmB,IAAI,IAAM,KAAK,wBAAwB,KAAK,cAAc,CAAC,EAAG,EAAE,EAAG,EAAI,IACjG,KAAK,oBAAoB,CAAC,IAAM,KAAK,OAAO,6BAA6B,mBAAqB,GAC/F,CACF,CACD,KAAK,kCAAmC,KAAK,SAAW,GAAI,GAAK,KAAK,SACvE,CACD,iCAAkC,CAChC,MAAM,EAAI,KAAK,OAAO,UACtB,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAE,CAAC,EAAE,YAAYxuD,GAAG,gBAAgB,CACvC,CAID,SAAU,CACR,QAAS,EAAI,KAAK,cAAc,OAAS,EAAG,GAAK,EAAG,IAClD,KAAK,cAAc,CAAC,EAAE,QAAO,EAC/B,QAAS,EAAI,EAAG,EAAI,KAAK,sBAAsB,OAAQ,IACrD,KAAK,sBAAsB,CAAC,EAAE,SAAW,KAAK,sBAAsB,CAAC,EAAE,SAC1E,CACH,EACAwuD,GAAG,8BAAiC3/E,GAAM,CACxC,MAAMW,GAAG,+BAA+B,CAC1C,EACAg/E,GAAG,eAAiB,CAClB,CACE,QAAS,EACT,KAAM,EACN,OAAQ,EACR,KAAM,oBACP,EACD,CACE,QAAS,EACT,KAAM,EACN,OAAQ,EACR,KAAM,kBACP,EACD,CACE,QAAS,EACT,KAAM,EACN,OAAQ,EACR,KAAM,kBACP,EACD,CACE,QAAS,EACT,KAAM,EACN,OAAQ,EACR,KAAM,sBACP,EACD,CACE,QAAS,EACT,KAAM,EACN,OAAQ,EACR,KAAM,eACP,EACD,CACE,QAAS,EACT,KAAM,EACN,OAAQ,EACR,KAAM,eACP,EACD,CACE,QAAS,EACT,KAAM,EACN,OAAQ,EACR,KAAM,gBACP,EACD,CACE,QAAS,EACT,KAAM,EACN,OAAQ,EACR,KAAM,gBACP,CACH,EACA,OAAO,eAAe3nE,GAAG,UAAW,kBAAmB,CACrD,IAAK,UAAW,CACd,OAAO,KAAK,gBACb,EACD,IAAK,SAAShY,EAAG,CACfA,GAAKA,EAAE,cAAgB,KAAK,iBAAmBA,EAChD,EACD,WAAY,GACZ,aAAc,EAChB,CAAC,EACDgY,GAAG,UAAU,sBAAwB,UAAW,CAC9C,OAAO,KAAK,iBAAmB,KAAK,kBAAoB,KAAK,iBAAmB,IAAI2nE,GAAG,IAAI,EAAG,KAAK,iBAAiB,cAAgB,KAAK,iBAAmB,KAAMp9E,EAAE,MAAM;AAAA;AAAA,yBAEnJ,GAAI,KAAK,iBAClC,EACAyV,GAAG,UAAU,uBAAyB,UAAW,CAC/C,KAAK,mBAAqB,KAAK,iBAAiB,QAAO,EAAI,KAAK,iBAAmB,KACrF,EACA,IAAA6nE,IAAA,KAAS,CAKP,YAAY,EAAG,CACb,KAAK,KAAOlrE,GAAG,qBAAsB,KAAK,MAAQ,CACnD,CAID,UAAW,CACT,KAAK,MAAM,uBAAuB,aAAaA,GAAG,8BAA+B,KAAM,KAAK,iBAAiB,EAAG,KAAK,MAAM,sBAAsB,aAAaA,GAAG,6BAA8B,KAAM,KAAK,gBAAgB,EAAG,KAAK,MAAM,6BAA6B,aAAaA,GAAG,oCAAqC,KAAM,KAAK,uBAAuB,EAAG,KAAK,MAAM,4BAA4B,aAAaA,GAAG,6BAA8B,KAAM,KAAK,sBAAsB,EAAG,KAAK,MAAM,kBAAkB,aAAaA,GAAG,yBAA0B,KAAM,KAAK,iBAAiB,EAAG,KAAK,MAAM,8BAA8B,aAAaA,GAAG,qCAAsC,KAAM,KAAK,6BAA6B,EAAG,KAAK,MAAM,0BAA0B,aAAaA,GAAG,iCAAkC,KAAM,KAAK,yBAAyB,EAAG,KAAK,MAAM,yBAAyB,aAAaA,GAAG,gCAAiC,KAAM,KAAK,wBAAwB,CAC/7B,CACD,wBAAwB,EAAG,EAAG,EAAG,CAC/B,KAAK,MAAM,iBAAmB,CAAC,EAAE,oBAAsB,KAAK,MAAM,gBAAgB,iBAAiB,EAAE,oBAAoB,EAAG,KAAK,MAAM,gBAAgB,YAAY,OAAQ,EAAG,CAAC,EAChL,CACD,uBAAuB,EAAG,EAAG,EAAG,CAC9B,KAAK,MAAM,iBAAmB,CAAC,EAAE,mBAAqB,KAAK,MAAM,gBAAgB,WAAW,EAAG,CAAC,CACjG,CACD,8BAA8B,EAAG,CAC/B,KAAK,MAAM,iBAAmB,CAAC,EAAE,oBAAsB,EAAE,uBAAyB,EAAE,qBAAuB,KAAK,MAAM,gBAAgB,oBAAoB,EAAE,KAAO,cAAe,CAAC,GAAI,KAAK,MAAM,gBAAgB,iBAAiB,EAAE,oBAAoB,EAAG,KAAK,MAAM,gBAAgB,OAAQ,EAChS,CACD,kBAAkB,EAAG,CACnB,KAAK,MAAM,kBAAoB,KAAK,MAAM,gBAAgB,iBAAiB,IAAI,EAAG,KAAK,MAAM,gBAAgB,YAAY,CAAC,EAC3H,CACD,kBAAmB,CACjB,KAAK,MAAM,iBAAmB,KAAK,MAAM,gBAAgB,YAC1D,CACD,mBAAoB,CAClB,KAAK,MAAM,kBAAoB,KAAK,MAAM,gBAAgB,iBAAiB,IAAI,EAAG,KAAK,MAAM,gBAAgB,OAAQ,EACtH,CACD,0BAA0B,EAAG,EAAG,EAAG,EAAG,CACpC,GAAI,CAAC,EACH,OACF,MAAMhV,EAAI,EAAE,WACZA,EAAE,iBAAmBA,EAAE,gBAAgB,yBAAyB,EAAG,CAAC,CACrE,CACD,yBAAyB,EAAG,CAC1B,MAAM,EAAI,EAAE,WACZ,EAAE,iBAAmB,EAAE,gBAAgB,mBAAkB,CAC1D,CAKD,SAAU,CACT,CAID,SAAU,CACR,KAAK,MAAM,wBACZ,CACH,EACAggF,GAAG,8BAAiC3/E,GAAM,CACxC,IAAI,EAAIA,EAAE,cAAc2U,GAAG,oBAAoB,EAC/C,IAAM,EAAI,IAAImrE,IAAG9/E,CAAC,EAAGA,EAAE,cAAc,CAAC,EACxC,EACA,MAAM+/E,IAAK,YAAaC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+EAO7B78E,GAAE,qBAAqB48E,GAAE,EAAIC,IAC7B,MAAMC,IAAK,mBAAoBC,IAAK,uFACpC/8E,GAAE,qBAAqB88E,GAAE,EAAIC,IAC7B,MAAMC,IAAK,kCAAmCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gIAgEnDj9E,GAAE,aAAag9E,GAAE,EAAIC,IACrB,MAAMC,YAAWv7D,EAAG,CAKlB,cAAe,CACb,MAAO,iCACR,CACD,YAAY,EAAG,EAAG,EAAG,EAAI,KAAMnlB,EAAGC,EAAG,EAAG,EAAI,EAAG,CAC7C,MAAM,EAAG,uBAAwB,CAAC,YAAa,eAAgB,eAAe,EAAG,CAAC,aAAc,aAAc,cAAe,oBAAqB,eAAgB,eAAe,EAAG,EAAG,EAAGD,GAAK8jB,GAAE,sBAAuB7jB,EAAG,EAAG,KAAM,EAAG,cAAe,OAAQ,EAAE,EAAG,KAAK,OAAS,EAAG,KAAK,aAAc,EAAE,KAAK,kBAAkB,IAAK,GAAM,CACzU,GAAI,CAAC,EAAE,iBAAmB,CAAC,EAAE,wBAAyB,CACpD2C,EAAE,MAAM,qFAAqF,EAC7F,MACD,CACD,MAAM,EAAI,KAAK,UACf,EAAE,SAAS,gBAAiB,EAAE,wBAAwB,aAAa,EAAG,EAAE,UAAU,YAAa,EAAE,EAAG,EAAE,CAAC,EAAG,EAAE,WAAW,oBAAqB,EAAE,gBAAgB,gBAAe,EAAG,SAAS,EAAE,gBAAgB,SAAS,CAAC,CAAC,CAAC,EAAG,EAAE,WAAW,eAAgB,EAAE,gBAAgB,kBAAkB,SAAS,EAAE,gBAAgB,SAAS,CAAC,CAAC,CAAC,EAAG,EAAE,WAAW,gBAAiB,EAAE,gBAAgB,gBAAe,EAAG,SAAS,EAAE,gBAAgB,SAAS,CAAC,CAAC,CAAC,EAAG,EAAE,UAAU,eAAgB,KAAK,IAAI,EAAE,aAAa,IAAM,CAAC,EAAI,EAAE,UAAS,EAAG,eAAe,EAAE,aAAc,EAAE,EAAG,KAAK,IAAI,EAAE,aAAa,IAAM,CAAC,CAAC,EAAG,EAAE,UAAU,aAAc,EAAE,wBAAwB,YAAY,EAAG,EAAE,SAAS,aAAc,EAAE,wBAAwB,YAAY,EAAG,EAAE,SAAS,cAAe,EAAE,wBAAwB,aAAa,CACjxB,CAAK,CACF,CACH,CACA,IAAA+9E,GAAA,MAAMC,GAAG,CAIP,IAAI,cAAe,CACjB,OAAO,KAAK,aACb,CAID,IAAI,cAAe,CACjB,OAAO,KAAK,aACb,CAID,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CAKD,YAAY,EAAG,CACb,KAAK,cAAgB,GAAI,KAAK,eAAiB,CAAE,EAAE,KAAK,cAAgB,GAAI,KAAK,QAAU,GAAI,KAAK,qBAAuB,GAAI,KAAK,KAAO5rE,GAAG,gBAAiB,KAAK,yBAA2B,GAAI,KAAK,cAAgB,EAAG,KAAK,iBAAmB,CACjP,EACA,EACA,EACA,CACN,EAAO,KAAK,oBAAoB,IAAI/B,GAAG,EAAG,EAAG,CAAC,CAAC,EAAG,KAAK,OAAS,EAAG2tE,IAAG,8BAA8B,KAAK,MAAM,CAC5G,CAOD,oBAAoB,EAAG,CACrB,GAAI,KAAK,aAAa,QAAU,EAC9B,OAAOh+E,EAAE,MAAM,+DAA+D,EAAG,EACnF,QAAS,EAAI,EAAG,EAAI,KAAK,cAAc,OAAS,EAAG,IACjD,GAAI,KAAK,cAAc,EAAI,CAAC,IAAM,EAAE,GAAK,KAAK,cAAc,EAAI,EAAI,CAAC,IAAM,EAAE,GAAK,KAAK,cAAc,EAAI,EAAI,CAAC,IAAM,EAAE,EACpH,OAAO,EACX,OAAO,KAAK,cAAc,KAAK,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG,KAAK,cAAc,KAAK,KAAK,IAAI,KAAK,IAAI,EAAE,EAAG,EAAE,CAAC,EAAG,EAAE,CAAC,CAAC,EAAG,KAAK,eAAe,KAAK,KAAK,8BAA8B,CAAC,CAAC,EAAG,KAAK,yBAAyB,KAAK,CAAC,EAAG,KAAK,cAAc,OAAS,CAChP,CAKD,mBAAoB,CAClB,OAAO,KAAK,YAAc,IAAI89E,IAAG,uBAAwB,KAAK,OAAQ,EAAG,KAAM,OAAQ,KAAK,OAAO,UAAW,GAAG,KAAK,YAAY,UAAY,GAAI,KAAK,WACxJ,CAKD,2BAA4B,CAC1B,KAAK,cAAgB,GAAI,KAAK,cAAgB,GAAI,KAAK,eAAiB,CAAE,EAAE,KAAK,yBAA2B,EAC7G,CAID,SAAU,CACR,KAAK,0BAAyB,EAAI,KAAK,aAAe,KAAK,YAAY,SACxE,CAaD,8BAA8B,EAAG,CAC/B,MAAMlgF,EAAI,KAAK,IAAI,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAChC,OAAO,KAAK,8BAA8B,KAAOA,CAAC,CACnD,CAUD,8BAA8B,EAAG,EAAG,CAClC,EAAI,EAAI,EACR,MAAM,EAAI,EAAI,EAAI,GAAK,EAAI,EAAI,KAAK,KAAK,EAAI,EAAI,EAAI,CAAC,GAAI,EAAI,KAAK,IAAI,EAAG,GAAK,CAAC,EAAG,EAAI,EAAI,EAAI,EAAI,EAAI,EACvG,MAAO,GAAI,KAAK,IAAI,GAAK,EAAI,EAAE,EAAI,CACpC,CACH,EACAogF,GAAG,8BAAiCvgF,GAAM,CACxC,MAAMW,GAAG,0BAA0B,CACrC,EACAmQ,GAAG,UAAU6D,GAAG,gBAAiB,CAAC3U,EAAG,IAAM,CACzC,GAAIA,EAAE,2BAA6B,QAAUA,EAAE,2BAA6B,OAAS,EAAE,6BAA8B,EAAE,yBACrH,QAAS,EAAI,EAAG,EAAIA,EAAE,yBAAyB,OAAQ,EAAI,EAAG,IAAK,CACjE,MAAM,EAAIA,EAAE,yBAAyB,CAAC,EACtC,EAAE,wBAAwB,oBAAoB,IAAI4S,GAAG,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,CAAC,CACpE,CACL,CAAC,EACD,OAAO,eAAeoF,GAAG,UAAW,0BAA2B,CAC7D,IAAK,UAAW,CACd,OAAO,KAAK,wBACb,EACD,IAAK,SAAShY,EAAG,CACfA,GAAK,KAAK,sBAAqB,IAAO,KAAK,yBAA2BA,EACvE,EACD,WAAY,GACZ,aAAc,EAChB,CAAC,EACDgY,GAAG,UAAU,2BAA6B,UAAW,CACnD,GAAI,KAAK,yBACP,OAAO,KAAK,yBACd,MAAMhY,EAAI,KAAK,wBACf,OAAOA,GAAK,KAAK,yBAA2B,IAAIugF,GAAG,IAAI,EAAGvgF,EAAE,uBAAuB,KAAK,wBAAwB,EAAG,KAAK,0BAA4B,IACtJ,EACAgY,GAAG,UAAU,4BAA8B,UAAW,CACpD,KAAK,2BAA6B,KAAK,yBAAyB,QAAO,EAAI,KAAK,yBAA2B,KAC7G,EACA,MAAMwoE,GAAG,CAKP,YAAY,EAAG,CACb,KAAK,KAAO7rE,GAAG,qBAAsB,KAAK,MAAQ,CACnD,CAID,UAAW,CACV,CAKD,UAAU,EAAG,CACX,GAAI,CAAC,KAAK,MAAM,wBACd,OACF,MAAM,EAAI,KAAK,MAAM,wBAAwB,yBAC7C,EAAE,yBAA2B,GAC7B,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAE,yBAAyB,KAAK,CAC9B,EAAG,EAAE,CAAC,EAAE,EACR,EAAG,EAAE,CAAC,EAAE,EACR,EAAG,EAAE,CAAC,EAAE,CAChB,CAAO,CACJ,CAID,kBAAmB,CAClB,CAID,qBAAsB,CACpB,KAAK,MAAM,iBAAmB,KAAK,MAAM,yBAA2B,KAAK,MAAM,wBAAwB,2BACxG,CAKD,SAAU,CACT,CAID,SAAU,CACT,CACH,CACA4rE,GAAG,8BAAiCvgF,GAAM,CACxC,IAAI,EAAIA,EAAE,cAAc2U,GAAG,eAAe,EAC1C,IAAM,EAAI,IAAI6rE,IAAGxgF,CAAC,EAAGA,EAAE,cAAc,CAAC,EACxC,EACA,MAAMygF,IAAK,qBAAsBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAqBtCv9E,GAAE,aAAas9E,GAAE,EAAIC,IACrB,MAAMC,IAAK,sBAAuBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4CvCz9E,GAAE,aAAaw9E,GAAE,EAAIC,IACrB5oE,GAAG,UAAU,mBAAqB,UAAW,CAC3C,OAAO,KAAK,mBAAqB,KAAK,iBAAmB,IAAI6oE,GAAG,IAAI,GAAI,KAAK,gBAC/E,EACA,OAAO,eAAejvD,GAAE,UAAW,gBAAiB,CAClD,IAAK,UAAW,CACd,OAAO,KAAK,cACb,EACD,IAAK,SAAS5xB,EAAG,CACfA,GAAK,KAAK,SAAU,EAAC,mBAAkB,EAAI,KAAK,eAAiBA,CAClE,EACD,WAAY,GACZ,aAAc,EAChB,CAAC,EACD,OAAO,eAAe4xB,GAAE,UAAW,gBAAiB,CAClD,IAAK,UAAW,CACd,OAAO,KAAK,cACb,EACD,IAAK,SAAS5xB,EAAG,CACfA,GAAK,KAAK,SAAU,EAAC,mBAAkB,EAAI,KAAK,eAAiBA,CAClE,EACD,WAAY,GACZ,aAAc,EAChB,CAAC,EACD,IAAA8gF,GAAA,MAAMD,EAAG,CAKP,YAAY,EAAG,CACb,KAAK,KAAOlsE,GAAG,qBAAsB,KAAK,QAAU,EAAG,KAAK,aAAe,EAAG,KAAK,MAAQ,EAAG,KAAK,QAAU,EAAE,UAAW,EAAE,KAAK,MAAM,cAAc,IAAI,EAAG,KAAK,sBAAwB,GACzL,QAAS,EAAI,EAAG,EAAI,EAAG,EAAE,EACvB,KAAK,sBAAsB,CAAC,EAAI,KAAK,QAAQ,mBAAmB,qBAAqB,CAAC,GAAG,CAC5F,CAID,UAAW,CACT,KAAK,MAAM,0BAA0B,aAAaA,GAAG,iCAAkC,KAAM,KAAK,oBAAoB,EAAG,KAAK,MAAM,yBAAyB,aAAaA,GAAG,gCAAiC,KAAM,KAAK,mBAAmB,CAC7O,CAKD,SAAU,CACT,CAID,SAAU,CACR,QAAS,EAAI,EAAG,EAAI,KAAK,sBAAsB,OAAQ,EAAE,EACvD,KAAK,QAAQ,oBAAoB,KAAK,sBAAsB,CAAC,CAAC,CACjE,CAQD,OAAO,EAAG,EAAG,EAAI,GAAI,EAAG,CACtB,EAAI,GAAK,KAAK,sBAAsB,CAAC,EACrC,MAAMhV,EAAI,KAAK,MAAOC,EAAID,EAAE,YAAa,EAAIC,EAAE,UAAU,kBAAoB,EAAE,iBAAiB,EAAE,GAAG,IAAM,MAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAM,QAAU,EAAE,iBAAkB,EAAC,kBAChL,GAAI,CAAC,KAAK,QAAQ,EAAG,EAAG,CAAC,EACvB,OACF,MAAM,EAAI,EAAE,QAAS,EAAE,EAAI,EAAE,8BAA8B,kBAAoB,EAAI,KAAM,EAAI,EAAE,iBAAkB,EAAE,EAAI,GAAK,EAAG,EAAI,EAAE,cACrI,GAAI,CAAC,GAAK,CAACD,EAAE,aACX,OACF,MAAMa,EAAI,EAAE,gBAAgB,CAAC,EAAGmF,EAAIye,GAAG,UAAU5jB,CAAC,EAClD,GAAIZ,EAAE,aAAaY,CAAC,EAAG,EAAE,qBAAuBmF,EAAE,SAAS,2BAA4B,GAAK,KAAK,IAAIhG,EAAE,aAAa,KAAO,CAAC,EAAI,KAAK,IAAI,EAAGgG,EAAE,SAAS,SAAU,EAAI,EAAI,EAAE,YAAY,EAAGA,EAAE,UAAU,QAAS,EAAI,EAAE,aAAe,EAAE,aAAc,EAAI,EAAE,aAAe,EAAE,KAAK,EAAGA,EAAE,UAAU,iBAAkBhG,EAAE,mBAAoB,GAAGgG,EAAE,UAAU,QAAS,EAAE,eAAgB,GAAG,EAAE,UAAY,EAAE,0BAA4B,EAAE,UAAYA,EAAE,YAAY,SAAU,EAAE,SAAS,qBAAqB,CAAC,CAAC,EAAG,EAAE,oBAAsB,EAAE,mBAAmB,0BAA4B,EAAE,mBAAmB,MAAMA,CAAC,EAAG4pB,GAAG,EAAG5pB,CAAC,EAAG,GAAK,EAAE,MAAM,EAAGA,EAAG,EAAE,QAAQ,EAAG,GAAK,EAAE,mBAAoB,CACtpB,MAAMC,EAAI,EAAE,sBACZA,IAAMD,EAAE,WAAW,iBAAkBC,CAAC,EAAGD,EAAE,UAAU,gBAAiBC,EAAE,iBAAgB,CAAE,EAC3F,CACDkpB,GAAGnpB,EAAG,EAAGhG,CAAC,EAAGC,EAAE,WAAW,CAAC,KAAK,OAAO,EAAGA,EAAE,gBAAgB,CAAC,KAAK,YAAY,EAAG,EAAE,kBAAkB,EAAG,EAAG+F,EAAG,EAAE,SAAU,EAAG,EAAG,CAACC,EAAGC,IAAM,CACxIF,EAAE,UAAU,QAASE,CAAC,CAC5B,CAAK,EAAGjG,EAAE,WAAW,CAAC,EAAGA,EAAE,gBAAgB,CAAC,CACzC,CASD,QAAQ,EAAG,EAAG,EAAG,CACf,EAAI,GAAK,KAAK,sBAAsB,CAAC,EACrC,MAAM,EAAI,GAAID,EAAI,CAACiU,EAAE,aAAcA,EAAE,UAAU,EAAGhU,EAAI,EAAE,QAAO,EAAI,EAAI,EAAE,cACzE,GAAI,CAAC,EACH,MAAO,GACT,MAAM,EAAIA,EAAE,WACZ,EAAE,qBAAuB,EAAE,KAAK,mBAAmB,EAAGA,EAAE,sBAAsBgU,EAAE,MAAM,IAAMjU,EAAE,KAAKiU,EAAE,MAAM,EAAG,EAAE,KAAK,aAAa,GAAIhU,EAAE,sBAAsBgU,EAAE,OAAO,IAAMjU,EAAE,KAAKiU,EAAE,OAAO,EAAG,EAAE,KAAK,aAAa,IAAK,EAAE,qBAAuB,EAAE,KAAK,0BAA0B,EAAGgb,GAAG,EAAG,EAAG,CAAC,EAAGhvB,EAAE,UAAYA,EAAE,0BAA4BD,EAAE,KAAKiU,EAAE,mBAAmB,EAAGjU,EAAE,KAAKiU,EAAE,mBAAmB,EAAGhU,EAAE,mBAAqB,IAAMD,EAAE,KAAKiU,EAAE,wBAAwB,EAAGjU,EAAE,KAAKiU,EAAE,wBAAwB,GAAI,EAAE,KAAK,gCAAkChU,EAAE,kBAAkB,EAAG,EAAE,KAAK,yBAA2BA,EAAE,SAAWA,EAAE,SAAS,MAAM,OAAS,EAAI,EAAE,GAAK,EAAE,KAAK,gCAAgC,EAC9qB,MAAM,EAAIA,EAAE,mBACZ,IAAI,EAAI,EACR,IAAM,EAAI,EAAE,mBAAqB,EAAE,eAAgB,EAAI,IAAM,EAAE,KAAK,sBAAsB,EAAG,EAAE,KAAK,iCAAmC,CAAC,EAAG,EAAE,0BAA4B,EAAE,KAAK,8BAA8B,EAAGwvB,GAAGzvB,EAAGC,EAAG,CAAC,IAAK,IAAM,EAAE,KAAK,mBAAmB,EAAG0vB,GAAG3vB,CAAC,EAAG,EAAE,iBAAkB,EAAC,kBAAoB,EAAE,KAAK,wBAAwB,GAClV,MAAM,EAAI,EAAE,gBAAgB,EAAG,EAAE,EAAG,EAAI,EAAE,QAASa,EAAI,EAAE,KAAK;AAAA,CACjE,EACG,GAAI,IAAMA,EAAG,CACX,MAAMmF,EAAI,CACR,QACA,SACA,iBACA,gBACA,SACA,QACA,2BACA,wBACA,mBACA,yBACA,2BACR,EACMgpB,GAAGhpB,CAAC,EAAG,EAAE,UAAU,KAAK,MAAM,YAAY,aAAa,UAAWhG,EAAGgG,EAAG,CAAC,iBAAkB,cAAc,EAAGnF,EAAG,OAAQ,OAAQ,OAAQ,CACrI,4BAA6B,CACrC,CAAO,EAAGA,CAAC,CACN,CACD,OAAO,EAAE,OAAO,SACjB,CACD,qBAAqB,EAAG,EAAG,EAAG,CAC5B,GAAI,KAAK,iBAAmB,KAAK,QAAQ,cAAe,EAAE,EAAE,cAAe,CACzE,MAAM,EAAI,EAAE,cACZ,GAAK,EAAE,yBAAyB,CAAC,IAAM,KAAK,QAAQ,kBAAmB,EAAE,KAAK,QAAQ,cAAc,EAAE,EAAG,KAAK,QAAQ,cAAc,EAAE,EAAG,KAAK,QAAQ,iBAAiB,EAAE,EAAG,KAAK,QAAQ,wBAAwB,IAAI,EAAG,KAAK,QAAQ,mBAAmB,GAAG,EAAG,KAAK,QAAQ,eAAeqgF,GAAG,iBAAiB,EAAG,KAAK,QAAQ,4BAA4BA,GAAG,iBAAiB,EAAG,KAAK,QAAQ,qBAAqB,qBAAuB,GAAI,KAAK,OACjb,EACA,EAEA,GACA,KAAK,sBAAsB,CAAC,CACpC,EAAS,KAAK,QAAQ,cAAc,EAAE,EAAG,KAAK,QAAQ,mBAAmB,GAAG,GAAI,KAAK,QAAQ,cAAc,EAAE,EAAG,KAAK,OAAO,EAAG,EAAG,GAAI,KAAK,sBAAsB,CAAC,CAAC,EAAG,KAAK,QAAQ,cAAc,KAAK,gBAAgB,EAAG,GAAK,EAAE,yBAAyB,CAAC,IAAM,KAAK,QAAQ,qBAAqB,qBAAuB,GAAI,KAAK,QAAQ,oBAAmB,EACxV,CACF,CACD,oBAAoB,EAAG,EAAG,EAAG,CAC3B,GAAI,EAAE,cAAe,CACnB,MAAM,EAAI,KAAK,QAAQ,aAAY,EAAIlhF,EAAI,KAAK,QAAQ,WAAW,WACnE,KAAK,QAAQ,aAAa,CAAC,EAAG,KAAK,OAAO,EAAG,EAAG,GAAI,KAAK,sBAAsB,CAAC,CAAC,EAAG,KAAK,QAAQ,aAAa,CAAC,EAAG,KAAK,QAAQ,cAAc,KAAK,gBAAgB,EAAG,KAAK,QAAQ,WAAW,WAAaA,CAC3M,CACD,EAAE,eAAiB,KAAK,mBAAqB,KAAK,QAAQ,cAAc,EAAE,EAAG,KAAK,QAAQ,cAAc,EAAE,EAAG,KAAK,OAAO,EAAG,EAAG,GAAI,KAAK,sBAAsB,CAAC,CAAC,EAAG,KAAK,QAAQ,cAAc,EAAE,EACjM,CACH,EACAkhF,GAAG,kBAAoB,EACvB,IAAAE,GAAA,KAAS,CAEP,IAAI,cAAe,CACjB,OAAO,KAAK,aACb,CACD,IAAI,aAAa,EAAG,CAClB,IAAM,KAAK,gBAAkB,KAAK,cAAgB,EAAG,KAAK,sBAAsB,gBAAgB,IAAI,EACrG,CAED,IAAI,eAAgB,CAClB,MAAO,CAAC,KAAK,WACd,CAED,IAAI,aAAc,CAChB,OAAO,KAAK,YACb,CACD,IAAI,YAAY,EAAG,CACjB,KAAK,eAAiB,GAAK,CAAC,KAAK,aAAc,IAAK,KAAK,aAAe,EAAG,KAAK,iBAAmB,GACpG,CACD,cAAe,CACb,IAAI,EACJ,MAAO,CAAC,GAAG,EAAI,KAAK,gBAAkB,MAAQ,EAAE,SACjD,CAID,IAAI,aAAc,CAChB,OAAO,IACR,CAID,cAAe,CACb,MAAO,sBACR,CAKD,YAAY,EAAG,CACb,KAAK,SAAW,EAAG,KAAK,cAAgB,GAAK,KAAK,sBAAwB,IAAIthF,GAAK,KAAK,uBAAyB,IAAM,KAAK,aAAe,GAAI,KAAK,OAAS,EAAG,KAAK,QAAU,EAAE,UAAS,EAAI,KAAK,iBAAmB,GAAI,KAAK,oBAAsB,KAAM,KAAK,wBAA0B,IAC3R,CACD,gBAAiB,CACf,MAAM,EAAI,CAAC,OAAQ,aAAc,iBAAkB,MAAM,EAAG,EAAI,CAAC,WAAY,QAAQ,EAAG,EAAI,GAC5F,KAAK,iBAAmB,GAAI,KAAK,cAAgB,EAAE,KAAK,UAAU,EAAG,EAAE,KAAK,iCAAiC,GAAI,KAAK,OAAO,sBAAwB,EAAE,KAAK,4BAA4B,EAAG,KAAK,oBAAsB,IAAIklB,GAAG,CAC3N,OAAQ,KAAK,QACb,eAAgB,GAChB,aAAc,8BACd,eAAgB,8BAChB,eAAgB,EAChB,aAAc,EACd,aAAc,CAAE,EAChB,QAAS,CACf,CAAK,EAAG,EAAE,KAAK,eAAe,EAAG,KAAK,wBAA0B,IAAIA,GAAG,CACjE,OAAQ,KAAK,QACb,eAAgB,GAChB,aAAc,kCACd,eAAgB,kCAChB,eAAgB,CAAC,WAAY,QAAQ,EACrC,aAAc,EACd,aAAc,CAAE,CACtB,CAAK,CACF,CAKD,SAAU,CACR,GAAI,KAAK,kBAAoB,KAAK,eAAc,EAAI,CAAC,KAAK,qBAAuB,CAAC,KAAK,wBACrF,MAAO,GACT,MAAM,EAAI,KAAK,oBAAoB,aAAa,OAAQ,EAAI,KAAK,wBAAwB,aAAa,OACtG,OAAO,EAAE,QAAO,GAAM,EAAE,QAAO,CAChC,CAID,oBAAqB,CACnB,MAAM,EAAI,KAAK,aACf,GAAI,CAAC,KAAK,qBAAuB,IAAM,EACrC,OACF,MAAM,EAAI,KAAK,oBAAoB,aAAc,EAAI,EAAE,OACvD,KAAK,QAAQ,aAAa,CAAC,EAAG,KAAK,QAAQ,YAAY,KAAK,cAAe,KAAK,YAAa,CAAC,EAAG,EAAE,UAAU,OAAQ,KAAK,OAAO,cAAe,GAAG,EAAE,UAAU,aAAc,KAAK,OAAO,oBAAmB,CAAE,EAAG,EAAE,UAAU,OAAQ,KAAK,cAAe,KAAK,aAAa,EAAG,EAAE,SAAS,iBAAkB,KAAK,cAAgB,CAAC,EAAG,KAAK,cAAgB,KAAK,QAAQ,eAAe,EAAG,EAAG,EAAG,CAAC,EAAI,KAAK,QAAQ,iBAAiB,EAAG,EAAG,CAAC,CACza,CAID,wBAAyB,CACvB,MAAM,EAAI,KAAK,aACf,GAAI,CAAC,KAAK,yBAA2B,IAAM,EACzC,OACF,MAAM,EAAI,KAAK,wBAAwB,aAAc,EAAI,EAAE,OAC3D,KAAK,QAAQ,aAAa,CAAC,EAAG,KAAK,QAAQ,cAAc,EAAE,EAAG,KAAK,QAAQ,aAAa,CAAC,EAAG,KAAK,QAAQ,YAAY,KAAK,cAAe,KAAK,YAAa,CAAC,EAAG,EAAE,UAAU,OAAQ,KAAK,OAAO,cAAa,CAAE,EAAG,EAAE,UAAU,aAAc,KAAK,OAAO,oBAAmB,CAAE,EAAG,EAAE,SAAS,gBAAiB,KAAK,sBAAsB,EAAG,EAAE,UAAU,OAAQ,KAAK,cAAe,KAAK,aAAa,EAAG,KAAK,cAAgB,KAAK,QAAQ,eAAe,EAAG,EAAG,EAAG,CAAC,EAAI,KAAK,QAAQ,iBAAiB,EAAG,EAAG,CAAC,EAAG,KAAK,QAAQ,cAAc,EAAE,EAAG,KAAK,QAAQ,aAAa,CAAC,CACziB,CAID,sBAAuB,CACtB,CAID,SAAU,CACR,IAAI,EAAG,GACN,EAAI,KAAK,sBAAwB,MAAQ,EAAE,QAAQ,EAAE,GAAI,EAAI,KAAK,0BAA4B,MAAQ,EAAE,QAAQ,EAAE,CACpH,CACH,EACA,MAAMq8D,YAAWC,EAAG,CAElB,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CAID,cAAe,CACb,MAAO,oCACR,CAMD,IAAI,mCAAoC,CACtC,OAAO,KAAK,kCACb,CACD,IAAI,kCAAkC,EAAG,CACvC,KAAK,qCAAuC,IAAM,KAAK,mCAAqC,EAAG,GAAK,KAAK,gBAAgB,UAAY,KAAK,WAAY,KAAK,gBAAgB,gCAAgC,OAAO,KAAK,6BAA6B,EAAG,KAAK,8BAAgC,OAAS,KAAK,gBAAgB,UAAY,GAAI,KAAK,8BAAgC,KAAK,gBAAgB,gCAAgC,IAAI,IAAM,CAC5a,KAAK,QAAQ,aAAa,CAAC,CAC5B,IACF,CAID,IAAI,eAAgB,CAClB,OAAO,KAAK,gBAAgB,aAC7B,CAID,IAAI,aAAc,CAChB,OAAO,KAAK,gBAAgB,WAC7B,CAMD,YAAY,EAAG,EAAG,CAChB,MAAM,CAAC,EAAG,KAAK,mCAAqC,GAAI,KAAK,gBAAkB,EAAG,KAAK,gBAAkB,EAAE,OAAO,KAAK,CAAC,EAAG,KAAK,WAAa,EAAE,UAAW,KAAK,8BAAgC,KAAM,KAAK,iBAAmB,KAAK,gBAAgB,gBAAiB,KAAK,gBAAgB,gBAAkB,GAAI,KAAK,gBAAgB,OAAS,IAAM,EAAG,KAAK,cAAgB,EAAE,QAAU,EAAE,SAAW,EAAG,KAAK,kCAAoC,EAChb,CAKD,SAAU,CACR,OAAO,MAAM,QAAS,GAAI,KAAK,gBAAgB,QAAO,CACvD,CAKD,IAAI,cAAe,CACjB,OAAO,KAAK,gBAAgB,gBAC7B,CAID,sBAAuB,CACrB,KAAK,gBAAe,CACrB,CAID,SAAU,CACR,MAAM,QAAS,EAAE,KAAK,gBAAgB,gCAAgC,OAAO,KAAK,6BAA6B,EAAG,KAAK,8BAAgC,KAAM,KAAK,gBAAgB,OAAS,KAAK,gBAAiB,KAAK,gBAAgB,UAAY,KAAK,WAAY,KAAK,gBAAgB,gBAAkB,KAAK,gBAChT,CACH,CACA,IAAAC,GAAA,KAAS,CACP,IAAI,mBAAoB,CACtB,OAAO,KAAK,kBACb,CACD,IAAI,kBAAkB,EAAG,CACvB,GAAI,KAAK,qBAAuB,IAAM,KAAK,mBAAqB,EAAG,KAAK,qBAAuB,MAAO,CACpG,MAAM,EAAI,KAAK,mBAAmB,CAAC,EAAG,EAAI,KAAK,mBAAmB,CAAC,EACnE,KAAK,mBAAqB,GAC1B,QAAS,EAAI,EAAG,EAAI,KAAK,mBAAqB,EAAG,EAAE,EACjD,KAAK,mBAAmB,CAAC,EAAI,EAAI,EAAI,EAAI,CAC5C,CACF,CACD,IAAI,cAAe,CACjB,OAAO,KAAK,GACb,CACD,IAAI,kBAAmB,CACrB,OAAO,KAAK,OACb,CACD,IAAI,SAAU,CACZ,OAAO,KAAK,QACb,CACD,IAAI,aAAc,CAChB,OAAO,KAAK,eACb,CACD,YAAY,EAAG,EAAG,EAAG,EAAGvhF,EAAGC,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,GAAI,EAAI,KAAMY,EAAI,GAAImF,EAAI,EAAG,CACzF,KAAK,WAAa,GAAI,KAAK,gBAAkB,EAAG,KAAK,eAAiB,EAAG,KAAK,mBAAqB,EAAG,KAAK,kBAAoB,IAAK,KAAK,eAAiB,GAAI,KAAK,aAAe,IAAM,KAAK,oBAAsB,IAAIlG,GAAK,KAAK,MAAQ,EAAG,KAAK,OAAS,EAAG,KAAK,QAAU,EAAG,KAAK,QAAU,EAAE,YAAa,KAAK,OAAS,EAAG,KAAK,QAAU,EAAG,KAAK,kBAAoBE,EAAG,KAAK,kBAAoBC,EAAG,KAAK,aAAe,EAAG,KAAK,eAAiB,EAAG,KAAK,iBAAmB,EAAG,KAAK,mBAAqB,EAAG,KAAK,iBAAmB,EAAG,KAAK,qBAAuBY,EAAG,KAAK,SAAWmF,EAAG,KAAK,yBAA2B,EAAG,KAAK,WAAahG,IAAM,GAAKC,IAAM,EAAG,KAAK,IAAM,KAAM,KAAK,SAAW,KAAM,KAAK,QAAU,KAAM,KAAK,gBAAkB,KAAM,KAAK,mBAAqB,IAC1vB,CACD,YAAa,CACX,GAAI,KAAK,QAAS,EAAE,KAAK,oBAAqB,EAAE,KAAK,YAAc,KAAK,SAAU,CAChF,KAAM,CAAC,EAAG,EAAG,CAAC,EAAI,KAAK,yBAAyB,KAAK,SAAU,KAAK,iBAAkB,KAAK,mBAAoB,KAAK,gBAAiB,KAAK,MAAO,KAAK,gBAAgB,EACtK,KAAK,QAAU,EAAG,KAAK,gBAAkB,EAAG,KAAK,mBAAqB,CACvE,CACF,CACD,wBAAyB,CACvB,KAAK,YAAc,KAAK,qBAAuB,KAAK,yBAA2B,EAAG,KAAK,OAAO,mBAAmB,aAAa,KAAK,mBAAoB,KAAK,QAAS,EAAE,EAAG,KAAK,QAAQ,kBAAkB,KAAK,OAAO,EACtN,CACD,qBAAsB,CACpB,KAAK,IAAM,KAAK,QAAQ,0BAA0B,CAAE,MAAO,KAAK,OAAQ,OAAQ,KAAK,OAAO,EAAI,CAC9F,gBAAiB,GACjB,KAAM,KAAK,aACX,OAAQ,KAAK,eACb,aAAc,EACd,oBAAqB,KAAK,qBAC1B,sBAAuB,GACvB,QAAS,KAAK,SACd,MAAO,qBAAqB,KAAK,KAAK,EAC5C,CAAK,EACD,MAAM,EAAI,KAAK,IAAI,QACnB,EAAE,oBAAmB,EAAI,KAAK,SAAW,IAAI6jB,GAAE,KAAM,KAAK,MAAM,EAAG,KAAK,SAAS,KAAO,MAAQ,KAAK,MAAO,KAAK,SAAS,SAAW,EAAG,KAAK,SAAS,MAAQA,GAAE,kBAAmB,KAAK,SAAS,MAAQA,GAAE,kBAAmB,KAAK,SAAS,0BAA4B,CACzQ,CACD,yBAAyB,EAAG,EAAG,EAAG,EAAG9jB,EAAGC,EAAI,GAAI,CAC9C,MAAM,EAAI,KAAK,OAAO,UAAW,EAAE,EAAI,IAAIsP,GAAE,KAAK,MAAM,KAAK,kBAAoB,CAAC,EAAG,KAAK,MAAM,KAAK,kBAAoB,CAAC,CAAC,EAAG,EAAI,IAAM,GAAK,EAAE,QAAS,EAAC,6BAA+B,IAAM,GAAK,EAAE,QAAS,EAAC,gCAAiC,EAAI,KAAK,QAAQ,0BAA0B,CAAE,MAAO,EAAE,EAAG,OAAQ,EAAE,GAAK,CACtT,gBAAiB,GACjB,KAAM,EACN,OAAQ,EACR,aAAc,EAAI,EAAI,EACtB,oBAAqB,GACrB,sBAAuB,GACvB,QAAS,KAAK,SACd,MAAO,yBAAyBvP,CAAC,EACvC,CAAK,EAAG,EAAI,EAAE,QACV,EAAE,oBAAmB,EACrB,MAAM,EAAI,IAAI8jB,GAAE,KAAM,KAAK,MAAM,EACjC,GAAI,EAAE,KAAO,aAAe9jB,EAAG,EAAE,SAAW,EAAG,EAAE,MAAQ8jB,GAAE,kBAAmB,EAAE,MAAQA,GAAE,kBAAmB,EAAE,0BAA4B,EAAG7jB,EAAG,CAC/I,MAAMY,EAAI,IAAIskB,GAAG,iBAAkB,6BAA8B,CAAC,aAAc,SAAS,EAAG,KAAM,EAAG,KAAM,EAAG,EAAG,GAAI,KAAM,EAAG,OAAQ,OAAQ,OAAQ,CAAC,EACvJtkB,EAAE,QAAU,KAAK,SAAUA,EAAE,8BAAgC,GAAIA,EAAE,kBAAkB,IAAKqF,GAAM,CAC9F,KAAK,2BAA6B,EAAIA,EAAE,WAAW,iBAAkB,CAAC,EAAIA,EAAE,aAAa,iBAAkBrF,EAAE,aAAa,OAAO,EAAGqF,EAAE,OAAO,aAAc,KAAK,cAAc,EAAGA,EAAE,UAAU,UAAW,EAAI,KAAK,kBAAmB,CAAC,EAAG,KAAK,0BAC9O,GAAGrF,EAAE,wBAAwB,IAAI,IAAM,CACtCA,EAAE,UAAU,QAASqF,GAAM,CACzBA,EAAE,QAAQ,MAAQ4d,GAAE,kBAAmB5d,EAAE,QAAQ,MAAQ4d,GAAE,iBACrE,CAAS,CACF,GAAG,KAAK,wBAAwBjjB,CAAC,EAClC,MAAMmF,EAAI,IAAImf,GAAG,iBAAkB,6BAA8B,CAAC,aAAc,SAAS,EAAG,KAAM,EAAG,KAAM,EAAG,EAAG,GAAI,KAAM,EAAG,OAAQ,OAAQ,OAAQ,CAAC,EACvJnf,EAAE,QAAU,KAAK,SAAUA,EAAE,kBAAkB,IAAKE,GAAM,CACxDA,EAAE,OAAO,aAAc,KAAK,cAAc,EAAGA,EAAE,UAAU,UAAW,EAAG,EAAI,KAAK,iBAAiB,EAAG,KAAK,0BAC1G,GAAGF,EAAE,wBAAwB,IAAI,IAAM,CACtCA,EAAE,UAAU,QAASE,GAAM,CACzBA,EAAE,QAAQ,MAAQ4d,GAAE,kBAAmB5d,EAAE,QAAQ,MAAQ4d,GAAE,iBACrE,CAAS,CACF,GAAG,KAAK,wBAAwB9d,CAAC,EAAGnF,EAAE,UAAY,GAAImF,EAAE,UAAY,GACrE,MAAMC,EAAI,GACV,QAASC,EAAI,EAAGA,EAAI,KAAK,mBAAqB,EAAG,EAAEA,EACjDD,EAAEC,CAAC,EAAIA,EAAI,EAAIF,EAAInF,EACrB,MAAO,CAAC,EAAG,EAAGoF,CAAC,CACrB,KAAW,CACL,MAAMpF,EAAI,CAAC,gBAAiB,UAAW,4BAA6B,gBAAgB,EAAGmF,EAAI,IAAImf,GAAG,iBAAkB,8BAA+BtkB,EAAG,KAAM,EAAG,KAAM,EAAG,EAAG,GAAI,KAAM,EAAG,OAAQ,OAAQ,OAAQ,CAAC,EACjNmF,EAAE,QAAU,KAAK,SAAUA,EAAE,8BAAgC,GAAIA,EAAE,kBAAkB,IAAKG,GAAM,CAC9F,KAAK,2BAA6B,EAAIA,EAAE,WAAW,iBAAkB,CAAC,EAAIA,EAAE,aAAa,iBAAkBH,EAAE,aAAa,OAAO,EAAGG,EAAE,OAAO,gBAAiB,KAAK,iBAAiB,EAAGA,EAAE,UAAU,UAAW,EAAI,KAAK,kBAAmB,CAAC,EAAGA,EAAE,SAAS,4BAA6B,KAAK,8BAA6B,CAAE,EAAGA,EAAE,SAAS,iBAAkB,KAAK,oBAAoB,EAAG,KAAK,0BAC5X,GAAGH,EAAE,wBAAwB,IAAI,IAAM,CACtCA,EAAE,UAAU,QAASG,GAAM,CACzBA,EAAE,QAAQ,MAAQ2d,GAAE,kBAAmB3d,EAAE,QAAQ,MAAQ2d,GAAE,iBACrE,CAAS,CACF,GAAG,KAAK,wBAAwB9d,CAAC,EAClC,MAAMC,EAAI,IAAIkf,GAAG,iBAAkB,8BAA+BtkB,EAAG,KAAM,EAAG,KAAM,EAAG,EAAG,GAAI,KAAM,EAAG,OAAQ,OAAQ,OAAQ,CAAC,EAChIoF,EAAE,QAAU,KAAK,SAAUA,EAAE,kBAAkB,IAAKE,GAAM,CACxDA,EAAE,OAAO,gBAAiB,KAAK,iBAAiB,EAAGA,EAAE,UAAU,UAAW,EAAG,EAAI,KAAK,iBAAiB,EAAGA,EAAE,SAAS,4BAA6B,KAAK,8BAA+B,GAAGA,EAAE,SAAS,iBAAkB,KAAK,mBAAkB,CAAE,EAAG,KAAK,0BACxP,GAAGF,EAAE,wBAAwB,IAAI,IAAM,CACtCA,EAAE,UAAU,QAASE,GAAM,CACzBA,EAAE,QAAQ,MAAQ2d,GAAE,kBAAmB3d,EAAE,QAAQ,MAAQ2d,GAAE,iBACrE,CAAS,CACF,GAAG,KAAK,wBAAwB7d,CAAC,EAAGD,EAAE,UAAY,GAAIC,EAAE,UAAY,GACrE,MAAMC,EAAI,GACV,QAASC,EAAI,EAAGA,EAAI,KAAK,mBAAqB,EAAG,EAAEA,EACjDD,EAAEC,CAAC,EAAIA,EAAI,EAAIF,EAAID,EACrB,MAAO,CAAC,EAAG,EAAGE,CAAC,CAChB,CACF,CACD,wBAAwB,EAAG,CACzB,EAAE,WAAY,IAAK,EAAE,qBAAqB,IAAI,IAAM,CAClD,EAAE,0BAA4B,EAAE,yBAA2B,GAAK,CACjE,GAAG,EAAE,kBAAkB,IAAI,IAAM,CAChC,EAAE,0BAA4B,EAAE,yBAA2B,GAAK,CACjE,GACF,CACD,+BAAgC,CAC9B,IAAI,EACJ,OAAO,KAAK,eAAiB,KAAK,aAAe,KAAQ,KAAK,QAAU,GAAK,KAAK,OAAO,EAAI,KAAK,UAAY,KAAO,OAAS,EAAE,MAAQ,GAAK,KAAK,GAAK,KAAO,CAAC,CAChK,CACD,oBAAqB,CACnB,OAAO,KAAK,aAAe,EAAI,KAAK,cACrC,CACD,SAAU,CACR,IAAI,EAAG,EAAG,EAAG,EACb,KAAK,oBAAoB,aAAY,GAAM,KAAK,oBAAoB,gBAAgB,IAAI,GAAI,EAAI,KAAK,MAAQ,MAAQ,EAAE,QAAS,EAAE,KAAK,IAAM,MAAO,EAAI,KAAK,WAAa,MAAQ,EAAE,QAAS,EAAE,KAAK,SAAW,MAAO,EAAI,KAAK,UAAY,MAAQ,EAAE,QAAO,EAAI,KAAK,QAAU,MAAO,EAAI,KAAK,kBAAoB,MAAQ,EAAE,QAAO,EAAI,KAAK,gBAAkB,KAAM,KAAK,qBAAuB,KAAK,mBAAmB,CAAC,EAAE,QAAO,EAAI,KAAK,mBAAmB,CAAC,EAAE,QAAO,GAAK,KAAK,mBAAqB,IACze,CACH,EACG,IAACs7E,IACH,SAASnhF,EAAG,CACXA,EAAEA,EAAE,aAAe,CAAC,EAAI,eAAgBA,EAAEA,EAAE,oBAAsB,CAAC,EAAI,sBAAuBA,EAAEA,EAAE,iBAAmB,CAAC,EAAI,mBAAoBA,EAAEA,EAAE,wBAA0B,CAAC,EAAI,0BAA2BA,EAAEA,EAAE,eAAiB,CAAC,EAAI,iBAAkBA,EAAEA,EAAE,QAAU,CAAC,EAAI,UAAWA,EAAEA,EAAE,iBAAmB,CAAC,EAAI,kBACpT,GAAGmhF,KAAOA,GAAK,CAAE,EAAC,EAClB,IAAAC,GAAA,KAAS,CAIP,IAAI,oBAAqB,CACvB,OAAO,KAAK,mBACb,CAID,IAAI,wBAAyB,CAC3B,OAAO,KAAK,uBACb,CACD,IAAI,uBAAuB,EAAG,CAC5B,KAAK,0BAA4B,IAAM,KAAK,wBAA0B,EAAG,KAAK,oBAAsB,GACrG,CAID,IAAI,cAAe,CACjB,OAAO,KAAK,aACb,CACD,IAAI,aAAa,EAAG,CAClB,KAAK,gBAAkB,IAAM,KAAK,oBAAsB,GAAI,KAAK,cAAgB,EAClF,CAID,IAAI,OAAQ,CACV,OAAO,KAAK,MACb,CACD,IAAI,MAAM,EAAG,CACX,KAAK,SAAW,IAAM,KAAK,OAAS,EAAG,KAAK,oBAAsB,GACnE,CAKD,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CACD,IAAI,eAAe,EAAG,CACpB,KAAK,kBAAoB,IAAM,KAAK,oBAAsB,GAAI,KAAK,gBAAkB,EACtF,CAID,IAAI,iBAAkB,CACpB,OAAO,KAAK,gBACb,CACD,IAAI,gBAAgB,EAAG,CACrB,KAAK,mBAAqB,IAAM,KAAK,iBAAmB,EAAG,KAAK,oBAAsB,GACvF,CAKD,IAAI,sBAAuB,CACzB,OAAO,KAAK,qBACb,CACD,IAAI,qBAAqB,EAAG,CAC1B,KAAK,wBAA0B,IAAM,KAAK,sBAAwB,EAAG,KAAK,oBAAsB,GACjG,CAID,IAAI,qBAAsB,CACxB,OAAO,KAAK,oBACb,CACD,IAAI,oBAAoB,EAAG,CACzB,KAAK,uBAAyB,IAAM,KAAK,qBAAuB,EAAG,KAAK,mBAAkB,EAC3F,CAID,IAAI,wBAAyB,CAC3B,OAAO,KAAK,uBACb,CACD,IAAI,uBAAuB,EAAG,CAC5B,KAAK,0BAA4B,IAAM,KAAK,wBAA0B,EAAG,KAAK,mBAAkB,EACjG,CAID,IAAI,wBAAyB,CAC3B,OAAO,KAAK,uBACb,CACD,IAAI,uBAAuB,EAAG,CAC5B,KAAK,0BAA4B,IAAM,KAAK,wBAA0B,EAAG,KAAK,mBAAkB,EACjG,CAID,IAAI,qBAAsB,CACxB,OAAO,KAAK,oBACb,CACD,IAAI,oBAAoB,EAAG,CACzB,KAAK,uBAAyB,IAAM,KAAK,qBAAuB,EAAG,KAAK,mBAAkB,EAC3F,CAID,IAAI,qBAAsB,CACxB,OAAO,KAAK,oBACb,CACD,IAAI,oBAAoB,EAAG,CACzB,KAAK,uBAAyB,IAAM,KAAK,qBAAuB,EAAG,KAAK,oBAAsB,GAC/F,CAKD,IAAI,0BAA2B,CAC7B,OAAO,KAAK,yBACb,CACD,IAAI,yBAAyB,EAAG,CAC9B,KAAK,4BAA8B,IAAM,KAAK,0BAA4B,EAAG,KAAK,oBAAsB,GACzG,CAID,IAAI,yBAA0B,CAC5B,OAAO,KAAK,wBACb,CACD,IAAI,wBAAwB,EAAG,CAC7B,KAAK,2BAA6B,IAAM,KAAK,yBAA2B,EAAG,KAAK,mBAAkB,EACnG,CAID,IAAI,4BAA6B,CAC/B,OAAO,KAAK,2BACb,CACD,IAAI,2BAA2B,EAAG,CAChC,KAAK,8BAAgC,IAAM,KAAK,4BAA8B,EAAG,KAAK,mBAAkB,EACzG,CAID,IAAI,mBAAoB,CACtB,OAAO,KAAK,kBACb,CACD,IAAI,kBAAkB,EAAG,CACvB,KAAK,qBAAuB,IAAM,KAAK,mBAAqB,EAAG,KAAK,oBAAsB,GAC3F,CAKD,IAAI,aAAc,CAChB,OAAO,KAAK,YACb,CACD,IAAI,YAAY,EAAG,CACjB,KAAK,eAAiB,IAAM,KAAK,aAAe,EAAG,KAAK,oBAAsB,GAAI,KAAK,sBAAsB,gBAAgB,IAAI,EAClI,CAKD,IAAI,cAAe,CACjB,OAAO,KAAK,aACb,CACD,IAAI,aAAa,EAAG,CAClB,KAAK,gBAAkB,IAAM,KAAK,cAAgB,EAAG,KAAK,oBAAsB,GACjF,CAKD,IAAI,kBAAmB,CACrB,OAAO,KAAK,iBACb,CACD,IAAI,iBAAiB,EAAG,CACtB,KAAK,oBAAsB,IAAM,KAAK,kBAAoB,EAAG,KAAK,oBAAsB,GACzF,CAKD,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CACD,IAAI,eAAe,EAAG,CACpB,KAAK,kBAAoB,IAAM,KAAK,gBAAkB,EAAG,KAAK,oBAAsB,GACrF,CAKD,IAAI,SAAU,CACZ,OAAO,KAAK,QACb,CACD,IAAI,QAAQ,EAAG,CACb,KAAK,WAAa,IAAM,KAAK,SAAW,EAAG,KAAK,oBAAsB,GACvE,CAKD,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CACD,IAAI,cAAc,EAAG,CACnB,KAAK,iBAAmB,IAAM,KAAK,eAAiB,EAAG,KAAK,oBAAsB,GACnF,CAID,IAAI,QAAS,CACX,OAAO,KAAK,OACb,CAMD,YAAY,EAAG,EAAG,CAChB,KAAK,wBAA0B,GAAI,KAAK,WAAa,IAAIxuE,GAAG,KAAO,MAAQ,IAAK,EAAG,KAAK,QAAU,EAAG,KAAK,mBAAqB,GAAK,KAAK,aAAe,EAAG,KAAK,cAAgB,IAAK,KAAK,iBAAmB,EAAG,KAAK,SAAW,IAAIzD,EAAE,GAAI,GAAI,CAAC,EAAE,UAAW,EAAE,KAAK,cAAgB,EAAG,KAAK,OAAS,GAAI,KAAK,iBAAmB,GAAI,KAAK,sBAAwB,EAAG,KAAK,qBAAuB,EAAG,KAAK,wBAA0B,EAAG,KAAK,wBAA0B,IAAK,KAAK,qBAAuB,GAAI,KAAK,qBAAuB,GAAI,KAAK,0BAA4B,EAAG,KAAK,yBAA2B,EAAG,KAAK,4BAA8B,EAAG,KAAK,mBAAqB,GAAI,KAAK,sBAAwB,IAAI1P,GAAK,KAAK,aAAe,GAAI,KAAK,cAAgB,KAAM,KAAK,kBAAoB,KAAM,KAAK,gBAAkB,KAAM,KAAK,SAAW,EAAG,KAAK,eAAiB,GAAI,KAAK,OAAS,EAAG,KAAK,QAAU,EAAE,UAAS,EAAI,KAAK,QAAU,GAAK,EAAE,aAAc,KAAK,oBAAsB,GAAI,KAAK,gBAAkB,KAAM,KAAK,qBAAuB,IAAI8P,EAAK,KAAK,iBAAmB,IAAIsD,GAAG,IAAK,IAAK,IAAK,CAAC,EAAG,KAAK,qBAAuB,IAAIA,GAAG,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,mBAAqB,KAAM,KAAK,qBAAuB,KAAM,KAAK,uBAAyB,KAAM,KAAK,mBAAqB,IAC7uC,CAED,aAAc,CACZ,KAAK,QAAS,EAAE,KAAK,oBAAsB,GAC3C,MAAM,EAAI,KAAK,eAAiB,KAAK,QAAQ,eAAgB,EAAE,EAAI,KAAK,gBAAkB,KAAO,KAAK,MAAM,KAAK,cAAgB,KAAK,QAAQ,gBAAiB,EAAG,KAAK,QAAQ,eAAgB,GAAI,KAAK,QAAQ,gBAAe,EAC/N,GAAI,KAAK,mBAAqB,IAAIwuE,GAAG,QAAS,KAAK,OAAQ,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,KAAK,QAAS,GAAI,KAAK,QAAQ,EAAG,KAAK,wBAAwB,KAAK,kBAAkB,EAAG,KAAK,uBAAwB,CAC3M,MAAM1hF,EAAI,KAAK,iBAAmB,KAAK,QAAQ,eAAgB,EAAEC,EAAI,KAAK,kBAAoB,KAAO,KAAK,MAAM,KAAK,gBAAkB,KAAK,QAAQ,gBAAiB,EAAG,KAAK,QAAQ,eAAgB,GAAI,KAAK,QAAQ,gBAAe,EACrO,KAAK,qBAAuB,IAAIyhF,GAAG,UAAW,KAAK,OAAQ1hF,EAAGC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,KAAK,QAAS,GAAI,KAAK,QAAQ,EAAG,KAAK,wBAAwB,KAAK,oBAAoB,CAChL,CACD,MAAM,EAAI,KAAK,mBAAqB,KAAK,QAAQ,eAAgB,EAAE,EAAI,KAAK,oBAAsB,KAAO,KAAK,MAAM,KAAK,kBAAoB,KAAK,QAAQ,gBAAiB,EAAG,KAAK,QAAQ,eAAgB,GAAI,KAAK,QAAQ,gBAAe,EAC3O,KAAK,qBAAuB,KAAK,uBAAyB,IAAIyhF,GAAG,YAAa,KAAK,OAAQ,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,KAAK,QAAS,GAAI,KAAK,QAAQ,EAAG,KAAK,wBAAwB,KAAK,sBAAsB,GAAI,KAAK,mCAC3N,CACD,mBAAmB,EAAI,KAAM,EAC1B,IAAM,MAAQ,IAAM,KAAK,qBAAuB,KAAK,wBAAuB,GAAK,IAAM,MAAQ,IAAM,KAAK,yBAA2B,KAAK,6BAC5I,CACD,yBAA0B,CACxB,KAAK,qBAAuB,KAAK,mBAAmB,eAAiB,KAAK,oBAAqB,KAAK,mBAAmB,kBAAoB,KAAK,uBAAwB,KAAK,mBAAmB,kBAAoB,KAAK,uBAAwB,KAAK,mBAAmB,eAAiB,KAAK,oBAChS,CACD,6BAA8B,CAC5B,KAAK,yBAA2B,KAAK,uBAAuB,eAAiB,KAAK,wBAAyB,KAAK,uBAAuB,kBAAoB,KAAK,2BACjK,CACD,wBAAwB,EAAG,CACzB,IAAM,KAAK,uBAAyB,EAAE,WAAa,IAAM,KAAK,mBAAqB,KAAK,gBAAkB,KAAK,oBAAqB,EAAE,gBAAkB,IAAM,KAAK,mBAAqB,KAAK,qBAAuB,KAAK,0BAA2B,KAAK,mBAAmB,CAAC,EAAG,EAAE,WAAU,CAC7R,CACD,mCAAoC,CAClC,MAAM,EAAI,KAAK,OAAO,UAAS,EAAI,EAAI,CACrC,aACA,mBACA,sBACA,YACA,WACA,YACA,UACA,qBACA,eACA,eACD,EAAE,EAAI,CAAC,cAAc,EAAG,EAAI,GAC7B,GAAI,KAAK,QAAQ,EAAE,EAAG,CAAC,KAAK,QAC1B,OACF,MAAM1hF,EAAI,KAAK,mBAAmB,WAAa,KAAK,mBAAmB,YAAc,KAAK,mBAAmB,QAASC,EAAI,IAAIsP,GAAE,EAAIvP,EAAE,UAAU,MAAO,EAAIA,EAAE,UAAU,MAAM,EAC7K,KAAK,OAAO,sBAAwB,EAAE,KAAK,4BAA4B,EAAG,KAAK,kBAAoB,OAAS,KAAK,iBAAmB,KAAK,OAAO,sBAAwB,EAAE,KAAK,mBAAmB,EAAG,EAAE,KAAK,oCAAoC,GAAI,KAAK,sBAAwB,EAAE,KAAK,gBAAgB,EAAG,EAAE,KAAK,uCAAuC,GAAK,EAAE,KAAK,cAAc,EAAG,KAAK,eAAiB,EAAE,KAAK,iBAAiB,EAAG,EAAE,KAAK,iCAAiC,GAAI,KAAK,oBAAsB,EAAE,KAAK,WAAW,EAAG,EAAE,KAAK,gBAAgB,EAAG,EAAE,KAAK,wCAAwC,IAAM,EAAE,KAAK,kBAAkB,EAAG,EAAE,KAAK,kBAAkB,GAAI,KAAK,gBAAkB,EAAE,KAAK,uCAAuC,EAAG,KAAK,SAAW,EAAE,KAAK,8BAA8B,EAAG,KAAK,gBAAkB,EAAI,EAAE,KAAK,yCAAyC,EAAI,KAAK,gBAAkB,EAAI,EAAE,KAAK,+CAA+C,GAAK,EAAE,KAAK,sCAAsC,EAAG,EAAE,KAAK,cAAc,GAAI,KAAK,gBAAkB,GAAK,KAAK,gBAAkB,IAAM,EAAE,KAAK,oCAAoC,IAAK,KAAK,mBAAqB,IAAImlB,GAAG,iBAAkB,uBAAwB,EAAG,EAAG,EAAG,KAAM,EAAG,EAAG,GAAI,KAAM,EAAG,OAAQ,OAAQ,GAAI,MAAM,EAAG,KAAK,mBAAmB,aAAa,EAAE,KAAK;AAAA,CAC3xC,CAAC,EAAG,KAAK,mBAAmB,QAAU,KAAK,SACxC,MAAM,EAAI,EAAG,EAAI,EAAE,kBACnB,KAAK,mBAAmB,kBAAkB,IAAK,GAAM,CACnD,IAAI,EAAG,EAAG,EAAGtkB,EAAGmF,EAAGC,EAAGC,EAAGC,EAAGC,EAAGoB,EAC/B,GAAI,KAAK,qBAAqB,SAAS,KAAK,OAAO,oBAAqB,GAAG,KAAK,qBAAqB,OAAQ,EAAE,GAAK,EAAE,KAAK,EAAG,wBAAyB,KAAK,mBAAmB,aAAa,OAAO,EAAG,KAAK,mBAAmB,YAAc,EAAE,WAAW,eAAgB,KAAK,mBAAmB,WAAW,EAAG,GAAK,EAAE,KAAK,EAAG,wBAAyB,EAAI,KAAK,mBAAmB,cAAgB,KAAO,OAAS,EAAE,mBAAkB,IAAO,IAAI,IAAM,EAAE,WAAW,eAAgB,KAAK,mBAAmB,OAAO,EAAG,GAAK,EAAE,KAAK,EAAG,wBAAyB,EAAI,KAAK,mBAAmB,UAAY,KAAO,OAAS,EAAE,uBAAyB,IAAI,GAAI,KAAK,qBAAuB,KAAK,qBAAqB,YAAc,EAAE,WAAW,iBAAkB,KAAK,qBAAqB,WAAW,EAAG,GAAK,EAAE,KAAK,EAAG,0BAA2B3G,EAAI,KAAK,qBAAqB,cAAgB,KAAO,OAASA,EAAE,mBAAoB,IAAK,IAAI,IAAM,EAAE,WAAW,iBAAkB,KAAK,qBAAqB,OAAO,EAAG,GAAK,EAAE,KAAK,EAAG,0BAA2B,EAAI,KAAK,qBAAqB,UAAY,KAAO,OAAS,EAAE,mBAAkB,IAAO,IAAI,GAAK,EAAE,UAAU,eAAgB,KAAK,UAAU,EAAG,KAAK,oBAAsB,EAAE,SAAS,YAAa,KAAK,gBAAgB,EAAG,EAAE,aAAa,iBAAkB,KAAK,eAAe,EAAG,GAAK,EAAE,KAAK,EAAG,wBAAyB,KAAK,iBAAmB,IAAI,IAAM,KAAK,uBAAuB,YAAc,EAAE,WAAW,mBAAoB,KAAK,uBAAuB,WAAW,EAAG,GAAK,EAAE,KAAK,EAAG,4BAA6BoF,EAAI,KAAK,uBAAuB,cAAgB,KAAO,OAASA,EAAE,mBAAkB,IAAO,IAAI,IAAM,EAAE,WAAW,mBAAoB,KAAK,uBAAuB,OAAO,EAAG,GAAK,EAAE,KAAK,EAAG,4BAA6BD,EAAI,KAAK,uBAAuB,UAAY,KAAO,OAASA,EAAE,mBAAkB,IAAO,IAAI,GAAI,EAAE,SAAS,mBAAoB,KAAK,gBAAgB,GAAI,KAAK,kBAAoB,KAAM,CACr4D,MAAM,EAAI,KAAK,iBAAmB,KAAK,OAAO,mBAC9C,IAAM,EAAE,WAAW,oBAAqB,CAAC,EAAG,GAAK,EAAE,KAAK,EAAG,2BAAkD,GAAE,mBAAkB,GAAO,IAAI,EAC7I,CACD,GAAI,EAAE,UAAU,aAAc,KAAK,OAAO,cAAa,CAAE,EAAG,EAAE,UAAU,sBAAuB,KAAK,oBAAoB,EAAG,EAAE,UAAU,mBAAoB,KAAK,OAAO,oBAAmB,CAAE,EAAG,EAAE,WAAW,YAAa/F,CAAC,EAAG,EAAE,SAAS,UAAW,KAAK,OAAO,EAAG,EAAE,SAAS,qBAAsB,KAAK,kBAAkB,EAAG,EAAE,SAAS,eAAgB,KAAK,YAAY,EAAG,EAAE,SAAS,gBAAiB,KAAK,aAAa,EAAG,EAAE,WAAW,WAAY,KAAK,QAAQ,EAAG,EAAE,SAAS,YAAa,KAAK,QAAQ,IAAI,EAAG,KAAK,OAAQ,CAC7f,IAAI,EAAI,KACR,OAAQ,KAAK,cAAa,CACxB,IAAK,GACH,EAAI,KAAK,mBAAmB,QAC5B,MACF,IAAK,GACH,EAAI,KAAK,mBAAmB,WAAa,KAAK,mBAAmB,YAAc,KAAK,mBAAmB,QACvG,MACF,IAAK,GACH,IAAMiG,EAAI,KAAK,yBAA2B,KAAO,OAASA,EAAE,UAAY,KACxE,MACF,IAAK,GACH,GAAKC,EAAI,KAAK,yBAA2B,MAAQA,EAAE,aAAeC,EAAI,KAAK,yBAA2B,KAAO,OAASA,EAAE,cAAgB,OAASoB,EAAI,KAAK,yBAA2B,KAAO,OAASA,EAAE,UAAY,KACnN,MACF,IAAK,GACH,KAAK,uBAAyB,EAAI,KAAK,qBAAqB,SAC5D,KACH,CACD,KAAK,gBAAkB,IAAM,EAAE,WAAW,eAAgB,CAAC,EAAG,GAAK,EAAE,KAAK,EAAG,sBAA6C,GAAE,mBAAkB,GAAO,IAAI,EAC1J,CACP,CAAK,CACF,CAED,eAAgB,CACd,IAAI,EAAG,EAAG,GACT,EAAI,KAAK,qBAAuB,MAAQ,EAAE,eAAiB,KAAK,QAAQ,gBAAgB,KAAK,mBAAmB,YAAY,EAAG,KAAK,QAAQ,MAAM,KAAK,iBAAkB,GAAI,GAAI,EAAE,EAAG,KAAK,QAAQ,kBAAkB,KAAK,mBAAmB,YAAY,IAAK,EAAI,KAAK,uBAAyB,MAAQ,EAAE,eAAiB,KAAK,QAAQ,gBAAgB,KAAK,qBAAqB,YAAY,EAAG,KAAK,QAAQ,MAAM,KAAK,qBAAsB,GAAI,GAAI,EAAE,EAAG,KAAK,QAAQ,kBAAkB,KAAK,qBAAqB,YAAY,IAAK,EAAI,KAAK,yBAA2B,MAAQ,EAAE,eAAiB,KAAK,QAAQ,gBAAgB,KAAK,uBAAuB,YAAY,EAAG,KAAK,QAAQ,MAAM,KAAK,qBAAsB,GAAI,GAAI,EAAE,EAAG,KAAK,QAAQ,kBAAkB,KAAK,uBAAuB,YAAY,EACjxB,CAED,QAAQ,EAAG,CACT,IAAIhH,EAAGC,EAAGT,EAAG,EAAG4D,EAAGrB,EACnB,GAAI,KAAK,qBAAuB,CAAC,EAAE,QAAS,EAC1C,OACF,MAAM0C,EAAI,KAAK,QAAQ,qBACvB,KAAK,QAAQ,SAAS,GAAI,OAAQ,OAAQ,OAAQ,EAAE,EAAG,KAAK,QAAQ,eAAe,EAAE,EAAG,KAAK,QAAQ,cAAc,EAAE,EAAG,KAAK,QAAQ,aAAa,CAAC,GAAIzE,EAAI,KAAK,qBAAuB,MAAQA,EAAE,eAAiB,KAAK,QAAQ,gBAAgB,KAAK,mBAAmB,YAAY,EAAG,EAAE,mBAAkB,EAAI,KAAK,QAAQ,yBAA0B,EAAE,KAAK,QAAQ,kBAAkB,KAAK,mBAAmB,YAAY,IAAKC,EAAI,KAAK,uBAAyB,MAAQA,EAAE,eAAiB,KAAK,QAAQ,gBAAgB,KAAK,qBAAqB,YAAY,EAAG,EAAE,qBAAoB,EAAI,KAAK,QAAQ,yBAA0B,EAAE,KAAK,QAAQ,kBAAkB,KAAK,qBAAqB,YAAY,IAAKT,EAAI,KAAK,yBAA2B,MAAQA,EAAE,eAAiB,KAAK,QAAQ,gBAAgB,KAAK,uBAAuB,YAAY,EAAG,EAAE,uBAAwB,EAAE,KAAK,QAAQ,yBAAwB,EAAI,KAAK,QAAQ,kBAAkB,KAAK,uBAAuB,YAAY,IAAK,EAAI,KAAK,qBAAuB,MAAQ,EAAE,uBAAwB,GAAG4D,EAAI,KAAK,uBAAyB,MAAQA,EAAE,uBAAsB,GAAKrB,EAAI,KAAK,yBAA2B,MAAQA,EAAE,uBAAsB,EAAI0C,GAAK,KAAK,QAAQ,gBAAgBA,CAAC,CAC/rC,CAKD,QAAQ,EAAI,GAAI,CACd,IAAI,EAAG,EAAG,EAAGjF,EACb,KAAO,EAAI,KAAK,qBAAuB,MAAQ,EAAE,QAAO,EAAI,KAAK,mBAAqB,MAAO,EAAI,KAAK,uBAAyB,MAAQ,EAAE,QAAS,EAAE,KAAK,qBAAuB,MAAO,EAAI,KAAK,yBAA2B,MAAQ,EAAE,UAAW,KAAK,uBAAyB,MAAO,KAAK,oBAAsB,KAAK,SAAW,KAAK,QAAQ,kBAAkB,KAAK,kBAAkB,GAAIA,EAAI,KAAK,qBAAuB,MAAQA,EAAE,QAAS,EAAE,KAAK,mBAAqB,KAAM,KAAK,oBAAsB,EAC3e,CACH,EACA,MAAM2hF,YAAWL,EAAG,CAIlB,cAAe,CACb,MAAO,qCACR,CAID,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CAOD,YAAY,EAAG,EAAG,EAAG,CACnB,MAAM,CAAC,EAAG,KAAK,cAAgB,EAAG,KAAK,sBAAwB,KAAM,KAAK,eAAiB,GAAI,KAAK,WAAW,CAAC,CACjH,CAKD,WAAW,EAAG,CACZ,UAAW,KAAK,EAAG,CACjB,IAAI,EAAG,EAAI,GACX,OAAQ,EAAC,CACP,IAAK,WACH,EAAI,EACJ,MACF,IAAK,SACH,EAAI,GACJ,KACH,CACD,KAAK,eAAe,CAAC,EAAI,IAAIrtE,EAAE,KAAK,QAAS,EAAE,CAAC,EAAG,EAAG,GAAI,GAAI,EAAG,CAAC,CACnE,CACF,CACD,gBAAiB,CACf,MAAM,eAAc,EACpB,MAAM,EAAI,CAAC,OAAQ,aAAc,MAAM,EAAG,EAAI,CAAC,WAAY,SAAU,OAAO,EAC5E,KAAK,sBAAwB,IAAI+Q,GAAG,CAClC,OAAQ,KAAK,QACb,eAAgB,GAChB,aAAc,gCACd,eAAgB,gCAChB,eAAgB,EAChB,aAAc,EACd,aAAc,CAAE,CACtB,CAAK,CACF,CAKD,SAAU,CACR,IAAI,EACJ,OAAO,KAAK,eAAe,SAAW,KAAK,eAAe,OAAS,IAAI/Q,EAAE,KAAK,QAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,SAAU,GAAI,GAAI,CAAC,GAAI,MAAM,QAAO,MAAS,EAAI,KAAK,wBAA0B,KAAO,OAAS,EAAE,OAAO,QAAO,IAAO,GACzO,CAKD,IAAI,cAAe,CACjB,OAAO,KAAK,aACb,CAKD,gBAAgB,EAAG,CACjB,KAAK,cAAgB,CACtB,CAID,sBAAuB,CACrB,MAAM,EAAI,KAAK,aACf,GAAI,CAAC,KAAK,uBAAyB,IAAM,EACvC,OACF,MAAM,EAAI,KAAK,sBAAsB,aAAc,EAAI,EAAE,OACzD,KAAK,QAAQ,aAAa,CAAC,EAAG,KAAK,QAAQ,YAAY,KAAK,cAAe,KAAK,YAAa,CAAC,EAAG,EAAE,UAAU,OAAQ,KAAK,OAAO,cAAe,GAAG,EAAE,UAAU,aAAc,KAAK,OAAO,oBAAqB,GAAG,KAAK,gBAAkB,MAAQ,EAAE,UAAU,OAAQ,KAAK,cAAe,KAAK,aAAa,EAAG,KAAK,cAAgB,KAAK,QAAQ,eAAe,EAAG,EAAG,EAAG,CAAC,EAAI,KAAK,QAAQ,iBAAiB,EAAG,EAAG,CAAC,CAClZ,CAID,SAAU,CACR,IAAI,EACJ,MAAM,WAAY,EAAI,KAAK,wBAA0B,MAAQ,EAAE,UAC/D,UAAW,KAAK,KAAK,eACnB,KAAK,eAAe,CAAC,EAAE,QAAO,EAChC,KAAK,eAAiB,EACvB,CACH,CACA,MAAM2tE,IAAK,kCAAmCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYnDr+E,GAAE,aAAao+E,GAAE,EAAIC,IAClB,IAACC,IACH,SAASzhF,EAAG,CACXA,EAAEA,EAAE,KAAO,CAAC,EAAI,OAAQA,EAAEA,EAAE,cAAgB,CAAC,EAAI,gBAAiBA,EAAEA,EAAE,aAAe,CAAC,EAAI,cAC5F,GAAGyhF,KAAOA,GAAK,CAAE,EAAC,EAClB,MAAMC,GAAG,CACP,mBAAmB,EAAG,CACpB,OAAO,EAAE,qBAAuB,MACjC,CAMD,YAAY,EAAG,EAAI,GAAI,CACrB,KAAK,QAAU,EAAG,KAAK,gBAAkB,EAAG,KAAK,UAAY,IAAIh9D,GAAG,CAAC,EAAG,KAAK,eAAiB,IAAIC,GAAG,CACnG,OAAQ,EACR,KAAM,uBACN,eAAgB,uBAChB,eAAgB,GAChB,aAAc,CAAC,YAAY,EAC3B,aAAc,CAAC,gBAAgB,EAC/B,QAAS,EAAI,CAAC,uBAAuB,EAAI,CAAE,CAC5C,GAAG,KAAK,eAAe,kBAAkB,IAAI,IAAM,CAClD,IAAM,EAAE,SAAS,EAAE,EAAG,EAAE,eAAe,EAAE,EAAG,EAAE,kBAAkB,UAAY,GAAI,EAAE,kBAAkB,UAAY,KAAM,KAAK,mBAAmB,KAAK,OAAO,EAAI,KAAK,eAAe,OAAO,aAAa,iBAAkB,KAAK,OAAO,EAAI,KAAK,eAAe,OAAO,WAAW,iBAAkB,KAAK,OAAO,EAAG,KAAK,eAAe,OAAO,SAAS,aAAc,KAAK,WAAW,CACvX,CAAK,CACF,CAKD,SAAU,CACR,OAAO,KAAK,eAAe,OAAO,QAAO,CAC1C,CAQD,KAAK,EAAG,EAAG,EAAI,EAAG,CAChB,GAAI,CAAC,KAAK,QAAS,EACjB,MAAO,GACT,KAAK,QAAU,EAAG,KAAK,YAAc,EACrC,MAAM,EAAI,KAAK,QAAQ,kBAAkB,UACzC,OAAO,KAAK,UAAU,OAAO,KAAK,eAAgB,CAAC,EAAG,KAAK,iBAAmB,IAAM,KAAK,QAAQ,kBAAkB,UAAY,GAAI,EACpI,CAID,SAAU,CACR,KAAK,eAAe,QAAO,EAAI,KAAK,UAAU,SAC/C,CACH,CACA,MAAMg9D,GAAG,CACP,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CACD,YAAY,EAAG,EAAG,EAAG,EAAI,EAAG,CAC1B,KAAK,QAAU,EAAG,KAAK,sBAAwB,IAAID,IAAG,EAAG,EAAE,EAAG,KAAK,gBAAkB,KAAK,QAAQ,0BAA0B,CAAE,MAAO,EAAG,OAAQ,GAAK,CACnJ,gBAAiB,GACjB,KAAM,EACN,OAAQ,EACR,aAAc,EACd,oBAAqB,GACrB,sBAAuB,GACvB,QAAS,EACT,kBAAmB,GACnB,MAAO,mCACb,CAAK,EACD,MAAM/hF,EAAI,KAAK,gBAAgB,0BAA0B,EAAG,GAAI,GAAI,EAAG,OAAQ,+CAA+C,EAC9HA,EAAE,MAAQ,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC9C,CACD,KAAK,EAAG,CACN,OAAO,KAAK,sBAAsB,KAAK,EAAG,KAAK,eAAe,CAC/D,CACD,SAAU,CACR,KAAK,gBAAgB,QAAO,EAAI,KAAK,sBAAsB,SAC5D,CACH,CACA,MAAMiiF,IAAK,0CAA2CC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAU3D1+E,GAAE,aAAay+E,GAAE,EAAIC,IACrB,MAAMC,IAAK,yCAA0CC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwB1D5+E,GAAE,aAAa2+E,GAAE,EAAIC,IACrB,MAAMC,IAAK,8CAA+CC,IAAK;AAAA,EAE/D9+E,GAAE,aAAa6+E,GAAE,EAAIC,IACrB,MAAMC,IAAK,6CAA8CC,IAAK;AAAA,EAE9Dh/E,GAAE,aAAa++E,GAAE,EAAIC,IACrB,MAAMC,IAAK,4CAA6CC,IAAK;AAAA,EAE7Dl/E,GAAE,aAAai/E,GAAE,EAAIC,IACrB,MAAMC,IAAK,2CAA4CC,IAAK;AAAA,EAE5Dp/E,GAAE,aAAam/E,GAAE,EAAIC,IACrB,MAAMC,IAAK,yCAA0CC,IAAK;AAAA;AAAA;AAAA,EAI1Dt/E,GAAE,aAAaq/E,GAAE,EAAIC,IACrB,MAAMC,IAAK,wCAAyCC,IAAK;AAAA;AAAA;AAAA,EAIzDx/E,GAAE,aAAau/E,GAAE,EAAIC,IACrB,MAAMC,IAAK,kCAAmCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6FnD1/E,GAAE,aAAay/E,GAAE,EAAIC,IACrB,OAAO,eAAe7qE,GAAG,UAAW,gBAAiB,CACnD,IAAK,UAAW,CACd,OAAO,KAAK,cACb,EACD,IAAK,SAAShY,EAAG,CACf,KAAK,eAAiBA,CACvB,EACD,WAAY,GACZ,aAAc,EAChB,CAAC,EACDgY,GAAG,UAAU,oBAAsB,UAAW,CAC5C,OAAO,KAAK,eAAiB,KAAK,gBAAkB,KAAK,eAAiB,IAAI8qE,IAAG,IAAI,EAAG,KAAK,eAC/F,EACA9qE,GAAG,UAAU,qBAAuB,UAAW,CAC7C,IAAIhY,GACHA,EAAI,KAAK,iBAAmB,MAAQA,EAAE,UAAW,KAAK,eAAiB,IAC1E,EACA,SAAS+iF,IAAG/iF,EAAG,CACb,MAAO,CAAC,CAACA,EAAE,cACb,CACA,SAASgjF,IAAGhjF,EAAG,CACb,MAAO,CAAC,CAACA,EAAE,UACb,CACA,MAAMijF,GAAG,CAKP,YAAY,EAAG,CACb,KAAK,KAAOtuE,GAAG,mBAAoB,KAAK,MAAQ,CACjD,CAID,UAAW,CACT,KAAK,MAAM,sCAAsC,aAAaA,GAAG,mDAAoD,KAAM,KAAK,gCAAgC,EAAG,KAAK,MAAM,sBAAsB,aAAaA,GAAG,mCAAoC,KAAM,KAAK,gBAAgB,CACpR,CACD,iCAAiC,EAAG,CAClC,IAAI,GACH,EAAI,KAAK,MAAM,gBAAkB,MAAQ,EAAE,mBAC7C,CACD,iBAAiB,EAAG,CAClB,IAAI,GACH,EAAI,KAAK,MAAM,gBAAkB,MAAQ,EAAE,QAAQ,CAAC,CACtD,CAKD,SAAU,CACR,MAAM,EAAI,KAAK,MAAM,cACrB,GAAI,CAAC,EACH,OACF,MAAM,EAAoB,IAAI,IAC9B,QAAS,EAAI,EAAG,EAAI,EAAE,cAAc,OAAQ,EAAE,EAAG,CAC/C,MAAM,EAAI,EAAE,cAAc,CAAC,EAAE,OAC7B,GAAIquE,IAAG,CAAC,EAAG,CACT,MAAMrjF,EAAI,EAAE,cACZ,UAAWC,KAAKD,EACd,EAAE,IAAIA,EAAEC,CAAC,EAAE,iBAAkB,EAChC,CACF,CACD,EAAE,QAAS,GAAM,CACf,EAAE,SAAQ,CAChB,CAAK,CACF,CAID,SAAU,CACR,KAAK,MAAM,sBACZ,CACH,CACA,IAAAsjF,IAAA,MAAMJ,GAAG,CAEP,OAAO,8BAA8B,EAAG,CACtC,IAAI,EAAI,EAAE,cAAcnuE,GAAG,kBAAkB,EAC7C,IAAM,EAAI,IAAIsuE,IAAG,CAAC,EAAG,EAAE,cAAc,CAAC,EACvC,CAKD,YAAY,EAAG,CACb,KAAK,OAAS,EAAG,KAAK,QAAU,EAAE,UAAS,EAAI,KAAK,wBAA0B,KAAM,KAAK,cAAgB,GAAI,KAAK,gBAAkB,CAAE,EAAE,KAAK,SAA2B,IAAI,IAAOH,IAAG,8BAA8B,KAAK,MAAM,EAAG,KAAK,wBAA0B,KAAK,QAAQ,mBAAmB,IAAI,IAAM,CACzS,KAAK,YAAW,CACtB,CAAK,CACF,CAKD,UAAW,CACT,KAAK,sBAAqB,EAAI,KAAK,YAAW,CAC/C,CAMD,kCAAkC,EAAG,CACnC,MAAM,EAAI,KAAK,wBAAwB,CAAC,EACxC,OAAO,IAAM,GAAK,KAAK,cAAc,CAAC,EAAI,IAC3C,CASD,kBAAkB,EAAG,EAAG,EAAG,EAAG,CAC5B,MAAMnjF,EAAI,IAAIqhF,IAAG,KAAK,OAAQ,CAAC,EAC/BrhF,EAAE,sBAAsB,IAAI,IAAM,KAAK,iCAAgC,CAAE,EAAG,IAAM,EAAI,IAAIwjF,GAAG,KAAK,OAAQ,CAAC,EAAG,KAAK,gBAAgB,KAAK,CAAC,GAAI,EAAE,sBAAsB,aAAY,GAAM,EAAE,sBAAsB,IAAI,IAAM,KAAK,+BAAgC,GAAG,IAAM,SAAW,EAAE,uBAAyB,GAC7S,MAAMvjF,EAAI,CAAE,OAAQD,EAAG,eAAgB,CAAC,EACxC,OAAO,KAAK,cAAc,KAAKC,CAAC,EAAG,KAAK,wBAAyB,KAAK,iCAAgC,EAAIA,CAC3G,CAUD,mBAAmB,EAAG,EAAG,EAAG,EAAGD,EAAG,CAChC,MAAMC,EAAI,IAAI0hF,IAAG,KAAK,OAAQ,EAAG,CAAC,EAClC1hF,EAAE,sBAAsB,IAAI,IAAM,KAAK,iCAAgC,CAAE,EAAG,IAAM,EAAI,IAAIujF,GAAG,KAAK,OAAQxjF,CAAC,EAAG,KAAK,gBAAgB,KAAK,CAAC,GAAI,EAAE,sBAAsB,aAAY,GAAM,EAAE,sBAAsB,IAAI,IAAM,KAAK,+BAAgC,GAAG,IAAM,SAAW,EAAE,uBAAyB,GAC7S,MAAM,EAAI,CAAE,OAAQC,EAAG,eAAgB,CAAC,EACxC,OAAO,KAAK,cAAc,KAAK,CAAC,EAAG,KAAK,wBAAyB,KAAK,iCAAgC,EAAI,CAC3G,CAOD,mBAAmB,EAAG,EAAI,GAAI,CAC5B,MAAM,EAAI,KAAK,cAAc,QAAQ,CAAC,EACtC,OAAO,IAAM,GAAK,IAAM,EAAE,OAAO,QAAS,EAAE,KAAK,cAAc,OAAO,EAAG,CAAC,EAAG,GAAK,KAAK,6BAA8B,EAAG,KAAK,YAAa,EAAG,KAAK,mCAAoC,GACvL,CACD,uBAAwB,CACtB,KAAK,cAAc,KAAK,CAAC,EAAG,IAAM,EAAE,OAAO,SAAW,EAAE,OAAO,SAAW,GAAK,EAAE,OAAO,SAAW,EAAE,OAAO,SAAW,EAAI,CAAC,CAC7H,CACD,8BAA+B,CAC7B,MAAM,EAAI,GACV,QAAS,EAAI,EAAG,EAAI,KAAK,cAAc,OAAQ,EAAE,EAAG,CAClD,MAAMD,EAAI,KAAK,cAAc,CAAC,EAAE,eAChC,EAAE,KAAK,gBAAgB,QAAQA,CAAC,CAAC,EAAI,EACtC,CACD,IAAI,EAAI,GACR,MAAM,EAAI,GACV,QAAS,EAAI,EAAG,EAAI,KAAK,gBAAgB,OAAQ,EAAE,EACjD,EAAE,CAAC,EAAI,EAAE,KAAK,KAAK,gBAAgB,CAAC,CAAC,GAAK,KAAK,gBAAgB,CAAC,EAAE,QAAS,EAAE,EAAI,IACnF,OAAO,IAAM,KAAK,gBAAgB,OAAS,EAAG,KAAK,gBAAgB,KAAK,GAAG,CAAC,GAAI,CACjF,CACD,wBAAwB,EAAG,CACzB,QAAS,EAAI,EAAG,EAAI,KAAK,cAAc,OAAQ,EAAE,EAAG,CAClD,MAAM,EAAI,KAAK,cAAc,CAAC,EAAE,OAChC,GAAIojF,IAAG,CAAC,GAAK,EAAE,iBAAmB,EAChC,OAAO,CACV,CACD,MAAO,EACR,CACD,aAAc,CACZ,QAAS,EAAI,EAAG,EAAI,KAAK,gBAAgB,OAAQ,EAAE,EACjD,KAAK,gBAAgB,CAAC,EAAE,QAAO,EACjC,MAAM,EAAoB,IAAI,IAC9B,QAAS,EAAI,EAAG,EAAI,KAAK,gBAAgB,OAAQ,EAAE,EAAG,CACpD,MAAM,EAAI,KAAK,gBAAgB,CAAC,EAChC,GAAI,EAAE,YAAa,EAAE,EAAE,QAAU,EAAE,mBAAoB,CACrD,IAAIpjF,EAAI,EAAE,IAAI,EAAE,MAAM,EACtBA,IAAMA,EAAI,CAAC,CAAE,EAAE,EAAE,EAAG,EAAE,IAAI,EAAE,OAAQA,CAAC,GAAIA,EAAE,CAAC,EAAE,KAAK,CAAC,EAAG,EAAE,OAAO,kBAAkB,EAAE,mBAAoB,CAAC,CAC1G,CACF,CACD,IAAI,EAAI,EAAE,OACV,QAAS,EAAI,EAAE,KAAM,EAAE,EAAE,OAAS,GAAI,EAAI,EAAE,KAAI,EAAI,CAClD,MAAM,EAAI,EAAE,MAAOA,EAAI,EAAE,IAAI,CAAC,EAAGC,EAAI,EAAE,qBAAoB,EAC3D,GAAI,CAACA,EACH,SACF,KAAM,CAAC,EAAG,CAAC,EAAID,EACfC,EAAE,wBAAwB,IAAI,IAAM,CAClC,IAAI,EACJA,EAAE,aAAa,qBAAuBA,EAAE,aAAa,0BAA0B,EAAG,GAAI,KAAK,QAAQ,gBAAiB,EAAE,CAAC,EAAE,QAAS,KAAK,QAAQ,gBAAkB,GAAK,GAAI,8BAA8BA,EAAE,IAAI,EAAE,EAChN,UAAW,KAAK,EAAG,CACjB,MAAM,GAAK,EAAI,EAAE,yBAA2B,KAAO,OAAS,EAAE,aAAc,EAAyB,GAAE,QACvG,GAAI,GAAK,EAAG,CACV,MAAMY,EAAI,EAAE,MAAQ,IAAM,EAAE,OAC5B,IAAImF,EAAI,EAAEnF,CAAC,EACXmF,IAAMA,EAAI,EAAEnF,CAAC,EAAI,IAAImhF,IAAG,KAAK,QAAS,EAAE,MAAO,EAAE,MAAM,GAAIh8E,EAAE,eAAe,WAAW,CAAC,CACzF,CACF,CACT,CAAO,CACF,CACD,EAAI,KAAK,SAAS,OAClB,QAAS,EAAI,EAAE,KAAM,EAAE,EAAE,OAAS,GAAI,EAAI,EAAE,KAAI,EAAI,CAClD,MAAM,EAAI,EAAE,MAAO,EAAI,KAAK,SAAS,IAAI,CAAC,EAAE,CAAC,EAAGpC,EAAI,EAAE,IAAI,CAAC,EAC3D,GAAIA,EACF,UAAWrB,KAAK,EACdqB,EAAE,CAAC,EAAErB,CAAC,GAAK,EAAEA,CAAC,EAAE,cAElB,WAAWA,KAAK,EACd,EAAEA,CAAC,EAAE,SACV,CACD,KAAK,SAAS,QAAS,KAAK,SAAW,EAAG,KAAK,kCAChD,CACD,kCAAmC,CACjC,MAAM,EAAoB,IAAI,IAC9B,QAAS,EAAI,EAAG,EAAI,KAAK,cAAc,OAAQ,EAAE,EAAG,CAClD,MAAM,EAAI,KAAK,cAAc,CAAC,EAC9B,IAAI,EAAI,EAAE,IAAI,EAAE,cAAc,EAC9B,IAAM,SAAW,EAAI,GAAI,EAAE,IAAI,EAAE,eAAgB,KAAK,IAAI,EAAG,EAAE,OAAO,YAAY,CAAC,CACpF,CACD,EAAE,QAAQ,CAAC,EAAG,IAAM,CAClB,EAAE,qBAAuB,EAAE,mBAAmB,aAAe,EACnE,CAAK,CACF,CACD,gCAAiC,CAC/B,UAAW,KAAK,KAAK,cACnB,EAAE,OAAO,YAAc,EAAE,eAAe,WAC3C,CAED,mBAAoB,CAClB,UAAW,KAAK,KAAK,gBACnB,GAAI,EAAE,mBAAoB,CACxB,KAAK,YAAW,EAChB,MACD,CACJ,CAED,QAAQ,EAAG,CACT,IAAI/B,EACJ,QAAS,EAAI,EAAG,EAAI,KAAK,gBAAgB,OAAQ,EAAE,GAChD,CAAC,GAAK,KAAK,gBAAgB,CAAC,EAAE,SAAW,IAAM,KAAK,gBAAgB,CAAC,EAAE,cAAa,EACvF,MAAMyE,EAAI,KAAK,SAAS,KAAI,EAC5B,QAAS,EAAIA,EAAE,KAAM,EAAE,EAAE,OAAS,GAAI,EAAIA,EAAE,KAAI,EAAI,CAClD,MAAMjF,EAAI,EAAE,MAAOC,EAAI,KAAK,SAAS,IAAID,CAAC,EAC1C,GAAI,GAAKA,IAAM,EACb,SACF,MAAM,EAAIA,EAAE,uBACZ,GAAI,CAAC,EACH,SACF,MAAM,GAAKQ,EAAI,EAAE,eAAiB,KAAO,OAASA,EAAE,oBACpD,GAAI,EAAG,CACL,KAAM,CAAC,EAAG,CAAC,EAAIP,EACf,UAAW,KAAK,EACd,EAAE,gBAAkB,EACtB,UAAW,KAAK,EACd,EAAE,CAAC,EAAE,KAAK,CAAC,CACd,CACF,CACD,QAAS,EAAI,EAAG,EAAI,KAAK,cAAc,OAAQ,EAAE,EAAG,CAClD,MAAMD,EAAI,KAAK,cAAc,CAAC,GAC7B,CAAC,GAAKA,EAAE,eAAe,SAAW,IAAMA,EAAE,eAAe,QAAQA,EAAE,MAAM,CAC3E,CACF,CAID,SAAU,CACR,KAAK,QAAQ,mBAAmB,OAAO,KAAK,uBAAuB,EAAG,KAAK,wBAA0B,KACrG,QAAS,EAAI,EAAG,EAAI,KAAK,cAAc,OAAQ,EAAE,EAC/C,KAAK,cAAc,CAAC,EAAE,OAAO,QAAO,EACtC,QAAS,EAAI,EAAG,EAAI,KAAK,gBAAgB,OAAQ,EAAE,EACjD,KAAK,gBAAgB,CAAC,EAAE,QAAO,EACjC,KAAK,SAAS,QAAS,GAAM,CAC3B,MAAM,EAAI,EAAE,CAAC,EACb,UAAW,KAAK,EACd,EAAE,CAAC,EAAE,SACR,GAAG,KAAK,cAAgB,GAAI,KAAK,gBAAkB,GAAI,KAAK,SAAS,OACvE,CACH,EACAyjF,IAAA,KAAS,CAIP,IAAI,QAAS,CACX,OAAO,KAAK,OACb,CACD,IAAI,OAAO,EAAG,CACZ,KAAK,UAAY,IAAM,KAAK,QAAU,EAAG,KAAK,oBAAoB,CAAC,EACpE,CAID,IAAI,sBAAuB,CACzB,OAAO,KAAK,KAAK,SAAS,CAAC,CAC5B,CAID,IAAI,oBAAqB,CACvB,OAAO,KAAK,KAAK,SAAS,CAAC,CAC5B,CAID,IAAI,aAAc,CAChB,OAAO,KAAK,KAAK,SAAS,CAAC,CAC5B,CAID,IAAI,YAAa,CACf,OAAO,KAAK,KAAK,UAClB,CAID,IAAI,OAAQ,CACV,OAAO,KAAK,MACb,CAOD,YAAY,EAAG,EAAG,EAAI,CAAE,MAAO,IAAK,OAAQ,KAAO,CACjD,KAAK,sBAAwB7zE,EAAE,SAAU,EAAE,KAAK,QAAU,GAAI,KAAK,2BAA6B,GAAI,KAAK,OAAS,EAAG,KAAK,OAAS,EAAG,KAAK,mBAAqB,EAAG,KAAK,2BAA6C,IAAI,IAAO,KAAK,UAAY,CAAC,CAAE,KAAM,kBAAoB,EAAE,KAAM,MAAO,EAAG,EAAG,KAAK,2BAA4B,KAAK,oCAAmC,EAAI,KAAK,OAAS,EAC/X,CAKD,qBAAqB,EAAG,CACtB,MAAM,EAAI,KAAK,KAAK,WACpB,KAAK,mBAAqB,EAAG,KAAK,0BAA2B,EAAE,KAAK,yBAA0B,EAAe,GAAE,QAAS,GAAM,CAC5H,KAAK,cAAc,CAAC,CAC1B,CAAK,CACF,CAKD,QAAQ,EAAG,CACT,EAAI,KAAK,cAAc,CAAC,EAAI,KAAK,OAAO,OAAO,QAAS,GAAM,CAC5D,KAAK,cAAc,CAAC,CAC1B,CAAK,EAAG,KAAK,qCACV,CAKD,uBAAwB,CACtB,KAAK,oCAAmC,CACzC,CAID,IAAI,2BAA4B,CAC9B,OAAO,KAAK,4BAA8B,KAAK,sBAAuB,EAAE,KAAK,qBAC9E,CAID,IAAI,aAAc,CAChB,OAAO,KAAK,SACb,CAID,SAAU,CACR,KAAK,0BAAyB,CAC/B,CACD,0BAA2B,CACzB,MAAM,EAAI,KAAK,OAAO,KAAM,EAAI,KAAK,OAAO,UAAS,EAAG,QAAO,EAAI,EAAI,EAAE,yBAA2B,GAAK,EAAG,EAAI,EAAE,yBAA2B,EAAI,EACjJ,KAAK,KAAO,IAAIkrD,GACd,UAAY,EACZ,KAAK,mBACL,EAEA,KAAK,OACL,CACE,MAAO,CAAC,EAAG,GAAI,CAAC,EAChB,cAAe,CAAC,EAAG,EAAG,CAAC,EACvB,gBAAiB,GACjB,YAAa,CAAC,KAAM,KAAM,IAAI,EAC9B,QAAS,CAAC,EAAG,EAAG,CAAC,CAClB,EACD,CAAC,eAAiB,EAAG,aAAe,EAAG,WAAa,CAAC,CAC3D,EAAO,KAAK,KAAK,WAAa,CAAE,EAAE,KAAK,KAAK,WAAa,IAAI5nD,GAAG,EAAG,EAAG,EAAG,CAAC,EAAG,KAAK,KAAK,kBAAoB,GACvG,IAAIlT,EAAGC,EACP,MAAM,EAAI,KAAK,OAAO,UAAS,EAAG,uBAClC,IAAMD,EAAI,KAAK,OAAO,yBAAyB,yBAAyB,CAAC,IAAI,GAC7E,IAAI,EACJ,KAAK,KAAK,uBAAuB,IAAI,IAAM,CACzCC,EAAI,KAAK,OAAO,sBAAqB,EAAI,EAAI,KAAK,OAAO,cAAe,KAAK,OAAO,cAAgB,EAC1G,CAAK,EAAG,KAAK,KAAK,yBAAyB,IAAK,GAAM,CAChDD,GAAK,KAAK,OAAO,sBAAsBA,CAAC,EACxC,MAAM,EAAI,KAAK,OAAO,cAAc,CAAC,EAAG,EAAI,KAAK,OAAO,oBAAoB,GAAK,OAAQ,KAAK,KAAK,YAAc,MAAM,EACvH,GAAK,GAAK,KAAK,OAAO,mBAAmB,EAAG,CAAC,EAAG,IAAM,KAAK,OAAO,sBAAqB,EAAG,aAAY,EAAI,KAAK,OAAO,iBAAgB,EACvI,GAAG,KAAK,KAAK,wBAAwB,IAAI,IAAM,CAC9C,IAAI,EACJA,GAAK,KAAK,OAAO,sBAAsBC,CAAC,EAAG,KAAK,OAAO,sBAAqB,EAAI,KAAK,OAAO,cAAgB,EAAG,KAAK,UAAU,CAAC,EAAE,QAAU,EAAI,KAAK,KAAK,aAAa,iBAAmB,KAAO,OAAS,EAAE,QAAQ,iBAAmB,CACvO,GAAG,KAAK,oBAAoB,EAAE,CAChC,CACD,oBAAoB,EAAG,CACrB,MAAM,EAAI,KAAK,OAAO,oBAAoB,QAAQ,KAAK,IAAI,EAC3D,EAAI,IAAM,IAAM,KAAK,OAAO,oBAAoB,KAAK,KAAK,IAAI,EAAI,IAAM,IAAM,KAAK,OAAO,oBAAoB,OAAO,EAAG,CAAC,CAC1H,CACD,qCAAsC,CACpC,MAAM,EAAI,KAAK,OAAO,cAAa,EAAI,EAAI,KAAK,OAAO,oBAAoB,GAAK,OAAQ,KAAK,KAAK,YAAc,MAAM,EACtH,GAAK,GAAK,EAAE,cAAc,EAAG,KAAK,qBAAqB,CACxD,CACD,cAAc,EAAG,CACf,IAAIQ,GACHA,EAAI,KAAK,KAAK,aAAe,MAAQA,EAAE,KAAK,CAAC,EAC9C,MAAMwE,EAAI,EAAE,SACZ,GAAI,EAAE,qBAAuB,GAAK,CAACA,EACjC,OACF,IAAIzE,EAAI,KAAK,2BAA2B,IAAIyE,CAAC,EAC7C,GAAI,CAACzE,IAAMA,EAAIyE,EAAE,MAAM,aAAeA,EAAE,IAAI,GAAK,OAAQzE,GAAI,CAC3D,OAAO,eAAeA,EAAG,iBAAkB,CACzC,IAAK,UAAW,CACd,MAAO,EACR,EACD,WAAY,GACZ,aAAc,EACf,GAAGA,EAAE,gBAAkB,GACxB,MAAMR,EAAI,IAAI0jF,GAAGljF,CAAC,EAClBR,EAAE,UAAY,GAAIA,EAAE,MAAQ,KAAK,OAAQ,KAAK,2BAA2B,IAAIiF,EAAGzE,CAAC,CAClF,CACD,KAAK,KAAK,wBAAwB,EAAGA,CAAC,CACvC,CACD,2BAA4B,CAC1B,KAAK,oBAAoB,EAAE,EAAG,KAAK,KAAK,SACzC,CACH,EACA,MAAMmjF,YAAWv3C,EAAG,CAClB,aAAc,CACZ,MAAM,GAAG,SAAS,EAAG,KAAK,UAAY,GAAI,KAAK,sBAAwB,GAAI,KAAK,wBAA0B,EAC3G,CACH,QACA,MAAMs3C,YAAWv3C,EAAG,CAClB,kCAAmC,CACjC,KAAK,QAAQ,KAAK,UAAU,EAAG,KAAK,0CACrC,CAKD,YAAY,EAAG,CACb,MAAM,EAAGu3C,IAAG,KAAM,IAAK,IAAIC,GAAI,EAAG,KAAK,YAAc,IAAI1wE,GAAM,KAAK,sBAAwB,GAAI,KAAK,WAAa,GAAI,KAAK,UAAY,GAAI,KAAK,yCAA2C,EAAE,gBAAgB,CAAC,EAAG,KAAK,eAAiB,aAAam1C,GAAK,gBAAkB,eAC5Q,CACD,eAAe,EAAG,CAChB,EAAE,UAAY,KAAK,WAAY,KAAK,sBAAwB,GAC5D,MAAM,EAAI,KAAK,MAAM,UAAW,IAAKtvB,GAAG,sBACxC,GAAI,EAAG,CACL,MAAM,EAAI,KAAK,MACf,KAAK,sBAAwB,EAAE,kBAAoB,EAAE,kBAAkB,UAAY,EACpF,CACD,EAAE,sBAAwB,KAAK,sBAAuB,EAAE,wBAA0B,CACnF,CACD,cAAe,CACb,MAAO,yBACR,CACD,aAAc,CACZ,MAAO,CACL,IAAK,CACH,CAAE,KAAM,6BAA8B,KAAM,GAAI,KAAM,MAAQ,EAC9D,CAAE,KAAM,cAAe,KAAM,EAAG,KAAM,MAAQ,EAC9C,CAAE,KAAM,gBAAiB,KAAM,EAAG,KAAM,MAAQ,EAChD,CAAE,KAAM,mBAAoB,KAAM,EAAG,KAAM,MAAQ,CACpD,EACD,SAAU;AAAA;AAAA;AAAA;AAAA;AAAA,uBAMhB,CACG,CACD,YAAY,EAAG,CACb,EAAE,KAAK,6BAA6B,CACrC,CACD,eAAe,EAAG,CAChB,GAAI,KAAK,aAAe,KAAK,MAAM,QAAQ,WAAW,KAAK,MAAM,mBAAkB,EAAI,KAAK,WAAW,EAAG,EAAE,aAAa,gBAAiB,KAAK,WAAW,EAAG,KAAK,MAAM,UAAS,IAAOA,GAAG,uBAAwB,CACjN,MAAM,EAAI,KAAK,MACf,KAAK,wBAA0B,EAAE,aAAa,6BAA8B,EAAE,uBAAuB,EAAG,EAAE,WAAW,8BAA+B,EAAE,iBAAiB,GACvK,MAAM,EAAInpB,EAAE,QAAQ,CAAC,EACrB,EAAE,8BAA+B,GAAI,EAAE,aAAa,mBAAoB,KAAK,MAAM,oBAAoB,EAAG,KAAK,MAAM,oBAAoB,EAAG,KAAK,MAAM,oBAAoB,CAAC,EAAG,EAAE,qBAAqB,eAAe,CAAC,IAAM,EAAE,aAAa,mBAAoB,KAAK,MAAM,SAAS,EAAG,KAAK,MAAM,SAAS,EAAG,KAAK,MAAM,SAAS,CAAC,EAAG,EAAE,UAAU,eAAe,CAAC,GAAI,EAAE,aAAa,cAAe,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,KAAK,IAAI,EAAE,MAAQ,EAAG,CAAC,CAC1a,CACF,CACD,cAAc,EAAG,CACf,OAAO,IAAM,SAAW,KAAO,CAE7B,sBAAuB;AAAA;AAAA;AAAA;AAAA,cAMvB,4BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAU7B,iCAAkC;AAAA;AAAA,sCAEF,KAAK,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAmBzD,CACG,CACH,EACA+zE,GAAG,KAAO,YACVtyE,EAAE,CACAQ,EAAG,CACL,EAAG8xE,GAAG,UAAW,QAAS,MAAM,EAChCtyE,EAAE,CACAQ,EAAG,EACHD,GAAG,kCAAkC,CACvC,EAAG+xE,GAAG,UAAW,YAAa,MAAM,EACpCr2E,GAAE,kCAAmCq2E,EAAE,EACvC,MAAME,IAAK,2BAA4BC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY5CrgF,GAAE,aAAaogF,GAAE,EAAIC,IACrB,MAAMC,IAAK,kCAAmCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYnDvgF,GAAE,aAAasgF,GAAE,EAAIC,IACrB,MAAMC,IAAK,mCAAoCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyBpDzgF,GAAE,aAAawgF,GAAE,EAAIC,IACrB,MAAMC,IAAK,uCAAwCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBxD3gF,GAAE,aAAa0gF,GAAE,EAAIC,IACrB,IAAAC,IAAA,MAAMC,GAAG,CAKP,IAAI,QAAS,CACX,OAAO,KAAK,OACb,CACD,IAAI,OAAO,EAAG,CACZ,KAAK,OAAO,SAAW,IAAM,EAAI,IAAK,IAAM,KAAK,UAAY,KAAK,QAAU,EAAG,KAAK,YAAY,UAAY,KAAK,aAAe,EAAG,KAAK,2BAA2B,QAAS,GAAM,CAChL,GAAI,EAAE,cAAe,CACnB,MAAM,EAAI,EAAE,cAAc,UAAUC,GAAG,IAAI,EAC3C,EAAE,UAAY,CACf,CACF,GAAG,KAAK,kBAAkB,CAAC,CAAC,EAC9B,CAID,IAAI,YAAa,CACf,OAAO,KAAK,WACb,CACD,IAAI,WAAW,EAAG,CAChB,IAAM,KAAK,cAAgB,KAAK,YAAc,EAAG,KAAK,kBAAiB,EACxE,CAID,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CACD,IAAI,eAAe,EAAG,CACpB,IAAM,KAAK,kBAAoB,KAAK,gBAAkB,EAAG,KAAK,kBAAiB,EAChF,CAKD,IAAI,cAAe,CACjB,OAAO,KAAK,kBACb,CACD,IAAI,aAAa,EAAG,CAClB,KAAK,qBAAuB,IAAM,KAAK,mBAAqB,EAAG,KAAK,kBAAiB,EACtF,CAID,IAAI,sBAAuB,CACzB,OAAO,KAAK,qBACb,CACD,IAAI,qBAAqB,EAAG,CAC1B,IAAM,KAAK,wBAA0B,KAAK,sBAAwB,EAAG,KAAK,kBAAiB,EAC5F,CAKD,IAAI,YAAa,CACf,OAAO,KAAK,WACb,CACD,IAAI,WAAW,EAAG,CAChB,KAAK,cAAgB,IAAM,KAAK,YAAc,EAAG,KAAK,YAAY,UAAY,EAC/E,CAID,IAAI,sBAAuB,CACzB,OAAO,KAAK,qBACb,CACD,IAAI,qBAAqB,EAAG,CAC1B,KAAK,wBAA0B,IAAM,KAAK,sBAAwB,EAAG,KAAK,kBAAiB,EAC5F,CAKD,oBAAoB,EAAG,CACrB,KAAK,kBAAoB,EAAG,KAAK,kBAAiB,CACnD,CAKD,uBAAuB,EAAG,CACxB,KAAK,qBAAuB,EAAG,KAAK,kBAAiB,CACtD,CAID,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CACD,IAAI,cAAc,EAAG,CACnB,KAAK,iBAAmB,IAAM,KAAK,eAAiB,EAAG,KAAK,kBAAiB,EAC9E,CAID,IAAI,OAAQ,CACV,OAAO,KAAK,MACb,CAKD,SAAS,EAAG,CACV,MAAM,QAAQ,CAAC,EAAI,KAAK,OAAO,KAAK,GAAG,CAAC,EAAI,KAAK,OAAO,KAAK,CAAC,EAAG,KAAK,mBACvE,CAKD,YAAY,EAAG,CACb,GAAI,MAAM,QAAQ,CAAC,EACjB,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,EAAE,EAAG,CACjC,MAAM,EAAI,KAAK,OAAO,QAAQ,EAAE,CAAC,CAAC,EAClC,IAAM,IAAM,KAAK,OAAO,OAAO,EAAG,CAAC,CACpC,KACE,CACH,MAAM,EAAI,KAAK,OAAO,QAAQ,CAAC,EAC/B,IAAM,IAAM,KAAK,OAAO,OAAO,EAAG,CAAC,CACpC,CACD,KAAK,OAAO,SAAW,EAAI,KAAK,OAAS,GAAK,KAAK,mBACpD,CAKD,YAAY,EAAG,CACb,EAAI,KAAK,wBAAwB,CAAC,EAAI,KAAK,OAAO,OAAO,QAAS,GAAM,CACtE,EAAE,iBAAkB,EAAG,GAAK,EAAE,UAAW,GAAI,EAAE,UAAY,KAAK,wBAAwB,EAAE,QAAQ,CACxG,CAAK,CACF,CAMD,IAAI,aAAc,CAChB,OAAO,KAAK,SACb,CAMD,kBAAkB,EAAI,GAAI,CACxB,KAAK,sBAAsB,CAAC,EAAG,KAAK,uBAAwB,KAAK,sBAClE,CAKD,sBAAsB,EAAG,CACvB,IAAI9jF,GACHA,EAAI,KAAK,iBAAmB,MAAQA,EAAE,UAAW,KAAK,YAAc,EACrE,MAAMyE,EAAI,IAAI,aAAa,KAAK,YAAc,CAAC,EAC/C,QAAS,EAAI,EAAG,EAAI,KAAK,YAAa,IAAK,CACzC,MAAMjF,EAAI,KAAK,OAAM,EAAIC,EAAI,KAAK,OAAM,EAAI,EAAID,EAAI,KAAK,IAAI,EAAI,KAAK,GAAKC,CAAC,EAAG,EAAID,EAAI,KAAK,IAAI,EAAI,KAAK,GAAKC,CAAC,EAC/GgF,EAAE,EAAI,EAAI,CAAC,EAAI,EAAGA,EAAE,EAAI,EAAI,CAAC,EAAI,EAAGA,EAAE,EAAI,EAAI,CAAC,EAAIjF,EAAIA,EAAGiF,EAAE,EAAI,EAAI,CAAC,EAAI,CAC1E,CACD,KAAK,eAAiB,IAAI6nC,GAAG7nC,EAAG,KAAK,YAAa,EAAG,EAAG,KAAK,OAAQ,GAAI,GAAI,EAAG,CAAC,EAAG,KAAK,eAAe,KAAO,cAChH,CAID,SAAU,CACR,IAAI,EACJ,KAAK,sBAAsB,EAAE,GAAI,EAAI,KAAK,YAAY,UAAY,MAAQ,EAAE,QAAS,EAAE,KAAK,YAAY,QAAO,EAAI,KAAK,OAAO,4BAA4B,OAAO,KAAK,kBAAkB,CAC1L,CASD,YAAY,EAAG,EAAG,EAAI,CAAE,MAAO,IAAK,OAAQ,GAAG,EAAI,EAAI,KAAMjF,EAAI,GAAI,CACnE,KAAK,OAAS,CAAE,EAAE,KAAK,SAAW,KAAM,KAAK,mBAAqB,KAAM,KAAK,kBAAoB,KAAM,KAAK,kBAAoB,KAAM,KAAK,wBAA0B,KAAM,KAAK,wBAA0B,KAAM,KAAK,sBAAwB,GAAI,KAAK,iBAAmB,GAAI,KAAK,mBAAqB,GAAI,KAAK,0BAA4B,GAAI,KAAK,YAAc,IAAI4P,EAAK,KAAK,QAAU,GAAI,KAAK,MAAQ,GAAI,KAAK,YAAc,GAAI,KAAK,gBAAkB,GAAI,KAAK,mBAAqB,IAAM,KAAK,oBAAsB,IAAM,KAAK,WAAa,GAAI,KAAK,mBAAqB,GAAI,KAAK,sBAAwB,GAAI,KAAK,gBAAkB,EAAG,KAAK,YAAc,GAAI,KAAK,sBAAwB,GAAI,KAAK,OAAS,EAAG,KAAK,QAAU,EAAE,UAAS,EAAI,KAAK,kBAAoB,EAAG,KAAK,qBAAuB,EAAG,KAAK,eAAiB5P,EAAG,KAAK,2BAA6B,CAAE,EAAE,KAAK,YAAc,EAAG,KAAK,YAAc,IAAIgxC,GAAG,cAAe,KAAM,KAAK,OAAQ,EAAE,EAAG,KAAK,YAAY,UAAY,GAAI,KAAK,UAAY,GAAI,KAAK,aAAe,GAAI,KAAK,sBAAsB,CAAC,EAAG,KAAK,mBAAqB,KAAK,OAAO,4BAA4B,IAAI,IAAM,CACjmC,IAAIzuC,EAAGD,EACP,MAAMrC,EAAI,KAAK,QAAQ,qBACvB,IAAI2D,EAAI,GACR,GAAI,KAAK,QAAS,CAChB,KAAK,QAAU,KAAK,OAAO,mBAAmB,aAAa,KAAK,sBAAuB,KAAK,sBAAsB,CAAC,EAAE,YAAY,EAAG,KAAK,QAAQ,kBAAkB,KAAK,sBAAsB,CAAC,EAAE,aAAc,EAAE,EAAG,KAAK,QAAQ,aAAa,CAAC,EAAGA,EAAI,GAAI,KAAK,YAAc,KAAK,qBAAuB,KAAK,OAAO,mBAAmB,aAAa,KAAK,mBAAoB,KAAK,SAAS,aAAc,EAAE,EAAG,KAAK,QAAQ,kBAAkB,KAAK,SAAS,aAAc,EAAE,IAC5c,QAAS,EAAI,EAAG,EAAI,KAAK,UAAU,OAAQ,EAAE,EAAG,CAC9C,MAAM,EAAI,KAAK,aAAa,CAAC,EAC7B,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,EAAE,EAC9B,IAAM,EAAI,KAAK,UAAU,CAAC,EAAE,MAAQ,KAAK,MAAQ,IAAMrB,EAAI,EAAE,CAAC,EAAE,iBAAmB,KAAO,OAASA,EAAE,QAAQ,iBAAmB,EAAI,KAAK,QAAU,KAAK,UAAU,CAAC,EAAE,SAAWD,EAAI,EAAE,CAAC,EAAE,iBAAmB,KAAO,OAASA,EAAE,QAAQ,iBAAmB,EAC5P,CACD,KAAK,OAAO,cAAgB,KAAK,QAAQ,YAAY,KAAK,OAAO,aAAa,QAAQ,CACvF,CACDsB,GAAK3D,GAAK,KAAK,QAAQ,gBAAgBA,CAAC,CAC9C,CAAK,CACF,CACD,sBAAsB,EAAI,GAAI,CAC5B,IAAI,EAAG,EAAG,EAAGD,EAAGC,GACf,EAAI,KAAK,WAAa,MAAQ,EAAE,QAAS,EAAE,KAAK,SAAW,KAAM,KAAK,mBAAqB,IAAK,EAAI,KAAK,oBAAsB,MAAQ,EAAE,UAAW,KAAK,kBAAoB,MAAO,EAAI,KAAK,oBAAsB,MAAQ,EAAE,UAAW,KAAK,kBAAoB,MAAOD,EAAI,KAAK,0BAA4B,MAAQA,EAAE,QAAO,EAAI,KAAK,wBAA0B,MAAOC,EAAI,KAAK,0BAA4B,MAAQA,EAAE,QAAS,EAAE,KAAK,wBAA0B,KAClc,UAAW,KAAK,KAAK,sBACnB,EAAE,QAAO,EACX,KAAK,sBAAwB,GAAI,IAAM,KAAK,oBAAsB,KAAK,OAAO,6BAA4B,EAAI,KAAK,OAAO,uBAAuB,eAAiB,KAAK,2BAA6B,KAAK,OAAO,8BAA+B,GAAG,KAAK,UAAY,CAAE,EAAE,KAAK,aAAe,EAC5R,CACD,sBAAuB,CACrB,KAAK,SAAW,KAAK,2BAA2B,QAAS,GAAM,CAC7D,GAAI,EAAE,cAAe,CACnB,MAAM,EAAI,EAAE,cAAc,UAAUqkF,GAAG,IAAI,EAC3C,EAAE,iBAAmB,KAAK,WAAa,KAAK,SAAS,aAAa,QAAU,KAAK,sBAAsB,CAAC,EAAE,aAAa,QAAS,EAAE,mBAAqB,KAAK,kBAAkB,MAAO,EAAE,oBAAsB,KAAK,kBAAkB,MACrO,CACP,CAAK,CACF,CACD,sBAAuB,CACrB,IAAIrkF,EAAG2D,EACP,GAAI,CAAC,KAAK,QACR,OACF,MAAM+E,EAAI,KAAK,iBAAmB,GAAK,EAAI,EAC3C,KAAK,mBAAqB,KAAK,iBAAmB,GAAI,KAAK,mBAAqB,CAAC,CAAC,KAAK,OAAO,uBAAwB,KAAK,4BAA8B1I,EAAI,KAAK,OAAO,yBAA2B,KAAO,OAASA,EAAE,iBAAmB,IAAK,KAAK,oBAAsB,KAAK,OAAO,8BAA6B,EAClT,MAAMgF,EAAI,KAAK,OAAO,6BAA6B,KAAK,YAAc,KAAK,kBAAoB,KAAK,qBAAsB,KAAK,sBAAwB,GAAK,GAAIo/E,IAAG,oCAAoC,EACvM,GAAI,CAACp/E,EACH,MAAM,IAAI,MAAM,6EAA6E,EAC/FA,EAAE,eAAiB,GAAI,KAAK,qBAAuBA,EAAE,4BAA8B,IACnF,MAAMzE,EAAIyE,EAAE,mBAAoBxE,EAAIwE,EAAE,4BACtC,KAAK,UAAU,KAAK,CAAE,KAAM,2BAA4B,MAAO,CAAC,CAAE,EAAG,KAAK,aAAa,KAAK,CAAC,KAAK,OAAO,uBAAuB,WAAY,EAAC,YAAY,CAAC,EAC1J,IAAIjF,EAAI,GACRQ,IAAMR,GAAK;AAAA,GACXS,IAAMT,GAAK;AAAA,GAEX,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,OAAQ,EAAE,EAAG,CAC3C,MAAM,EAAI,KAAK,OAAO,CAAC,EAAG,EAAI,EAAE,IAAK,EAAI,IAAImlB,GAAG,wBAA0B,EAAG,EAAE,eAAiB,4BAA8B,wBAAyB,CACrJ,GAAG,KAAK,qBACR,SAAU,CAAC,iBAAkB,UAAW,WAAY,SAAS,EAC7D,SAAU,CAAC,gBAAiB,eAAgB,aAAc,UAAW,YAAY,EACjF,QAASnlB,EACT,aAAc,EACd,OAAQ,KAAK,QACb,YAAa,KAAK,eAClB,cAAe2I,CACvB,CAAO,EACD,KAAK,sBAAsB,KAAK,CAAC,EAAG,IAAM,IAAM,EAAE,gBAAgB,KAAK,sBAAsB,CAAC,CAAC,EAAG,EAAE,UAAY,GAAI,EAAE,UAAY,GAAI,EAAE,8BAAgC,GAAI,EAAE,kBAAkB,IAAK,GAAM,CACzM,EAAE,WAAW,iBAAkB1D,EAAE,WAAY,EAAC,SAASA,EAAE,gBAAgBo0E,GAAG,qBAAqB,CAAC,CAAC,EAAG,EAAE,WAAW,gBAAiBp0E,EAAE,WAAY,EAAC,SAASA,EAAE,gBAAgBo0E,GAAG,mBAAmB,CAAC,CAAC,EAAG,EAAE,WAAW,eAAgB,EAAE,oBAAoB,EAAG,EAAE,WAAW,aAAc,EAAE,kBAAkB,EAAG,EAAE,WAAW,UAAW,EAAE,WAAW,EAAG,EAAE,UAAU,iBAAkB,EAAE,yBAAyB,EAAG,EAAE,eAAiB,EAAE,UAAU,UAAW,EAAE,YAAY,mBAAkB,EAAG,MAAO,EAAE,YAAY,mBAAoB,EAAC,OAAQ,EAAE,UAAW,EAAE,sBAAsB,GAAK,EAAE,WAAW,aAAc,KAAK,cAAc,EAAG,EAAE,UAAU,UAAW,EAAE,WAAY,EAAE,OAAQ,EAAE,UAAW,EAAE,sBAAsB,EAAG,EAAE,UAAU,WAAY,EAAE,YAAa,EAAE,aAAe,EAAI,EAAG,EAAE,YAAY,mBAAkB,EAAG,MAAO,EAAE,YAAY,mBAAkB,EAAG,MAAM,GAAI54E,IAAM,KAAK,YAAY,SAAS,KAAK,OAAO,aAAa,cAAa,CAAE,EAAG,KAAK,YAAY,OAAM,EAAI,EAAE,UAAU,UAAW,KAAK,WAAW,EACj/B,CAAO,CACF,CACD,UAAW,KAAK,KAAK,sBACnB,EAAE,cAAgB,EAAE,OAAO,KAAK,qBAAqB,MAAO,KAAK,qBAAqB,MAAM,EAC9F,GAAI,KAAK,UAAU,KAAK,CAAE,KAAM,gBAAiB,MAAO,CAAC,CAAE,EAAG,KAAK,aAAa,KAAK,CAAC,KAAK,sBAAsB,CAAC,EAAE,YAAY,CAAC,EAAG,KAAK,YAAa,CACpJ,MAAM,EAAI,KAAK,mBAAqB,KAAK,kBAAoB,KAAK,qBAClE,KAAK,SAAW,IAAIykB,GAAG,oBAAqB,KAAK,kBAAmB,KAAK,OAAQ,CAC/E,KAAM,KAAK,eACX,OAAQvc,EACR,oBAAqB,EAC7B,CAAO,EAAG,KAAK,SAAS,MAAQ,EAAG,KAAK,SAAS,MAAQ,EAAG,KAAK,SAAS,mBAAmB,CAAC,EAAG,KAAK,SAAS,iBAAmB,GAC5H,MAAM,EAAI,GACV,GAAI,KAAK,UAAU,KAAK,CAAE,KAAM,UAAW,MAAO,CAAG,GAAG,KAAK,aAAa,KAAK,CAAC,EAAG,KAAK,kBAAoB,IAAIwc,GAAG,KAAK,gBAAkB,gBAAkB,iBAAkB,KAAK,gBAAkB,uBAAyB,gBAAiB,CAC7O,SAAU,CAAC,aAAc,UAAW,iBAAkB,iBAAiB,EACvE,SAAU,CAAC,eAAgB,eAAe,EAC1C,QAAS3kB,EAAI,wBAA0B,OACvC,KAAM,EACN,aAAc,EACd,OAAQ,KAAK,QACb,YAAa,KAAK,eAClB,cAAemI,CACvB,CAAO,EAAG,KAAK,kBAAkB,kBAAkB,IAAK7H,GAAM,CACtDA,EAAE,aAAa,iBAAkB,KAAK,sBAAsB,CAAC,EAAE,aAAa,OAAO,EAAGA,EAAE,WAAW,eAAgBmE,EAAE,WAAU,EAAG,SAASA,EAAE,gBAAgBo0E,GAAG,kBAAkB,CAAC,CAAC,EAAGv4E,EAAE,WAAW,gBAAiBmE,EAAE,WAAU,EAAG,SAASA,EAAE,gBAAgBo0E,GAAG,mBAAmB,CAAC,CAAC,EAAGv4E,EAAE,OAAO,aAAc,KAAK,UAAU,EAAGA,EAAE,UAAU,UAAW,EAAI,KAAK,qBAAqB,MAAO,KAAK,gBAAkB,EAAI,KAAK,qBAAqB,OAAS,CAAC,EAAGA,EAAE,SAAS,iBAAkB,KAAK,kBAAkB,EAAGA,EAAE,SAAS,kBAAmB,KAAK,mBAAmB,CACtjB,CAAO,EAAG,KAAK,kBAAkB,8BAAgC,GAAI,KAAK,kBAAkB,UAAY,GAAI,KAAK,kBAAoB,KAAK,kBAAoB,IAAIqkB,GAAG,iBAAkB,gBAAiB,CAChM,SAAU,CAAC,aAAc,UAAW,iBAAkB,iBAAiB,EACvE,SAAU,CAAC,eAAgB,eAAe,EAC1C,QAAS3kB,EAAI,wBAA0B,OACvC,KAAM,EACN,aAAc,EACd,OAAQ,KAAK,QACb,YAAa,KAAK,eAClB,cAAemI,CAChB,GAAG,KAAK,kBAAkB,UAAY,GAAI,KAAK,kBAAkB,kBAAkB,IAAK7H,GAAM,CAC7FA,EAAE,WAAW,eAAgBmE,EAAE,WAAU,EAAG,SAASA,EAAE,gBAAgBo0E,GAAG,kBAAkB,CAAC,CAAC,EAAGv4E,EAAE,WAAW,gBAAiBmE,EAAE,WAAY,EAAC,SAASA,EAAE,gBAAgBo0E,GAAG,mBAAmB,CAAC,CAAC,EAAGv4E,EAAE,OAAO,aAAc,KAAK,UAAU,EAAGA,EAAE,UAAU,UAAW,EAAG,EAAI,KAAK,qBAAqB,MAAM,EAAGA,EAAE,SAAS,iBAAkB,KAAK,kBAAkB,EAAGA,EAAE,SAAS,kBAAmB,KAAK,mBAAmB,CACna,CAAO,EAAG,KAAK,kBAAkB,OAAO,EAAE,MAAO,EAAE,MAAM,EAAG,EAAE,KAAK,KAAK,kBAAkB,YAAY,GAAI,KAAK,mBAAqB,CAAC,KAAK,iBAAiB,EAAG,KAAK,mBAAqB,KAAK,mBAAmB,KAAK,KAAK,iBAAiB,EAAG,EAAE,KAAK,qBAAqB,OAAS,KAAK,kBAAkB,OAAS,KAAK,qBAAqB,QAAU,KAAK,kBAAkB,SAAW,CAAC,KAAK,mBAAoB,CAC3Y,MAAMA,EAAI,GACV,KAAK,UAAU,KAAK,CAAE,KAAM,gBAAiB,MAAO,EAAG,EAAG,KAAK,aAAa,KAAKA,CAAC,EAAG,KAAK,wBAA0B,IAAIqkB,GAAG,KAAK,sBAAwB,sBAAwB,uBAAwB,KAAK,sBAAwB,uBAAyB,gBAAiB,CAC7Q,SAAU,CAAC,aAAc,UAAW,iBAAkB,iBAAiB,EACvE,SAAU,CAAC,eAAgB,eAAe,EAC1C,QAAS3kB,EAAI,wBAA0B,OACvC,KAAM,EACN,aAAc,EACd,OAAQ,KAAK,QACb,YAAa,KAAK,eAClB,cAAemI,CAChB,GAAG,KAAK,wBAAwB,UAAY,GAAI,KAAK,wBAAwB,kBAAkB,IAAK/H,GAAM,CACzGA,EAAE,WAAW,eAAgBqE,EAAE,WAAU,EAAG,SAASA,EAAE,gBAAgBo0E,GAAG,kBAAkB,CAAC,CAAC,EAAGz4E,EAAE,WAAW,gBAAiBqE,EAAE,aAAa,SAASA,EAAE,gBAAgBo0E,GAAG,mBAAmB,CAAC,CAAC,EAAGz4E,EAAE,OAAO,aAAc,KAAK,eAAe,EAAGA,EAAE,UAAU,UAAW,EAAI,KAAK,kBAAkB,MAAO,KAAK,sBAAwB,EAAI,KAAK,kBAAkB,OAAS,CAAC,EAAGA,EAAE,SAAS,iBAAkB,KAAK,kBAAkB,EAAGA,EAAE,SAAS,kBAAmB,KAAK,mBAAmB,CACve,CAAS,EAAG,KAAK,wBAAwB,OAAO,EAAE,MAAO,EAAE,MAAM,EAAG,EAAE,KAAK,KAAK,wBAAwB,YAAY,EAAG,KAAK,uBAAyB,KAAK,wBAA0B,IAAIukB,GAAG,uBAAwB,gBAAiB,CAC1N,SAAU,CAAC,aAAc,UAAW,iBAAkB,iBAAiB,EACvE,SAAU,CAAC,eAAgB,eAAe,EAC1C,QAAS3kB,EAAI,wBAA0B,OACvC,KAAM,KAAK,kBACX,aAAc,EACd,OAAQ,KAAK,QACb,YAAa,KAAK,eAClB,cAAemI,CAChB,GAAG,KAAK,wBAAwB,UAAY,GAAI,KAAK,wBAAwB,kBAAkB,IAAK/H,GAAM,CACzGA,EAAE,WAAW,eAAgBqE,EAAE,WAAU,EAAG,SAASA,EAAE,gBAAgBo0E,GAAG,kBAAkB,CAAC,CAAC,EAAGz4E,EAAE,WAAW,gBAAiBqE,EAAE,WAAY,EAAC,SAASA,EAAE,gBAAgBo0E,GAAG,mBAAmB,CAAC,CAAC,EAAGz4E,EAAE,OAAO,aAAc,KAAK,eAAe,EAAGA,EAAE,UAAU,UAAW,EAAG,EAAI,KAAK,kBAAkB,MAAM,EAAGA,EAAE,SAAS,iBAAkB,KAAK,kBAAkB,EAAGA,EAAE,SAAS,kBAAmB,KAAK,mBAAmB,CACva,CAAS,EAAG,KAAK,wBAAwB,OAAO,KAAK,kBAAkB,MAAO,KAAK,kBAAkB,MAAM,EAAGE,EAAE,KAAK,KAAK,wBAAwB,YAAY,GAAIA,EAAE,KAAK,KAAK,SAAS,YAAY,EAAG,KAAK,mBAAmB,KAAK,KAAK,uBAAuB,EAAG,KAAK,yBAA2B,KAAK,mBAAmB,KAAK,KAAK,uBAAuB,CACpV,MACC,EAAE,KAAK,KAAK,SAAS,YAAY,CACpC,EACA8C,EAAI,KAAK,YAAY,UAAY,MAAQA,EAAE,QAAO,EAAI,KAAK,YAAY,QAAU,IAAI2f,GAAG,KAAK,OAAQ,KAAK,YAAc,KAAK,SAAS,aAAa,QAAU,KAAK,sBAAsB,CAAC,EAAE,aAAa,OAAO,CACjN,CACD,wBAAwB,EAAG,CACzB,IAAI/iB,EACJ,IAAKA,EAAI,EAAE,gBAAkB,MAAQA,EAAE,UAAU8jF,GAAG,IAAI,EACtD,OACF,MAAMr/E,EAAI,IAAIq/E,GAAG,CAAC,EAClB,KAAK,SAAW,KAAK,sBAAsB,OAAS,IAAMr/E,EAAE,iBAAmB,KAAK,sBAAsB,CAAC,EAAE,aAAa,QAASA,EAAE,mBAAqB,KAAK,kBAAkB,MAAOA,EAAE,oBAAsB,KAAK,kBAAkB,QAASA,EAAE,UAAY,KAAK,QAAS,KAAK,2BAA2B,KAAK,CAAC,CACnT,CACH,EACAo/E,IAAG,qCAAuC,CAExC,EAAG,CAAE,YAAa,EAAG,cAAe,CAAG,EAEvC,EAAG,CAAE,YAAa,GAAI,cAAe,CAAG,EAExC,EAAG,CAAE,YAAa,EAAG,cAAe,CAAG,CAEzC,EACA,MAAME,YAAWn4C,EAAG,CAClB,aAAc,CACZ,MAAM,GAAG,SAAS,EAAG,KAAK,kBAAoB,GAAI,KAAK,sBAAwB,EAChF,CACH,QACA,MAAMk4C,YAAWn4C,EAAG,CAClB,kCAAmC,CACjC,KAAK,QAAQ,KAAK,UAAU,EAAG,KAAK,0CACrC,CACD,YAAY,EAAG,CACb,MAAM,EAAGm4C,IAAG,KAAM,IAAK,IAAIC,GAAI,EAAG,KAAK,WAAa,GAAI,KAAK,UAAY,GAAI,KAAK,yCAA2C,EAAE,gBAAgB,CAAC,EAAG,KAAK,OAAS,aAAan8B,EAC/K,CACD,eAAe,EAAG,CAChB,EAAE,kBAAoB,KAAK,UAC5B,CACD,cAAe,CACb,MAAO,2BACR,CACD,aAAc,CACZ,MAAO,CACL,IAAK,CAAC,CAAE,KAAM,yBAA0B,KAAM,EAAG,KAAM,OAAQ,EAC/D,SAAU;AAAA;AAAA,uBAGhB,CACG,CACD,YAAY,EAAG,CACb,EAAE,KAAK,uBAAuB,CAC/B,CACD,eAAe,EAAG,CAChB,KAAK,aAAe,EAAE,YAAY,wBAAyB,KAAK,gBAAgB,EAAG,EAAE,aAAa,yBAA0B,KAAK,mBAAoB,KAAK,mBAAmB,EAC9K,CACD,cAAc,EAAG,CACf,MAAM,EAAI,CAER,4BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAW7B,6CAA8C;AAAA;AAAA;AAAA;AAAA,aAKpD,EACI,OAAO,KAAK,SAAW,EAAE,iCAAmC;AAAA;AAAA;AAAA;AAAA,eAIhD,IAAM,SAAW,KAAO,CACrC,CACH,EACAk8B,GAAG,KAAO,cACVlzE,EAAE,CACAQ,EAAG,CACL,EAAG0yE,GAAG,UAAW,mBAAoB,MAAM,EAC3ClzE,EAAE,CACAQ,EAAG,CACL,EAAG0yE,GAAG,UAAW,qBAAsB,MAAM,EAC7ClzE,EAAE,CACAQ,EAAG,CACL,EAAG0yE,GAAG,UAAW,sBAAuB,MAAM,EAC9ClzE,EAAE,CACAQ,EAAG,EACHD,GAAG,kCAAkC,CACvC,EAAG2yE,GAAG,UAAW,YAAa,MAAM,EACpCj3E,GAAE,oCAAqCi3E,EAAE,EACzC,MAAME,IAAK,uBAAwBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBxCjhF,GAAE,aAAaghF,GAAE,EAAIC,IACrB,MAAMC,IAAK,wBAAyBC,IAAK;AAAA,qCAEzCnhF,GAAE,aAAakhF,GAAE,EAAIC,IAClB,IAACC,IACH,SAASvkF,EAAG,CACXA,EAAEA,EAAE,KAAO,CAAC,EAAI,OAAQA,EAAEA,EAAE,QAAU,CAAC,EAAI,UAAWA,EAAEA,EAAE,KAAO,CAAC,EAAI,OAAQA,EAAEA,EAAE,MAAQ,CAAC,EAAI,OACjG,GAAGukF,KAAOA,GAAK,CAAE,EAAC,EAClB,IAAAC,GAAA,KAAS,CAKP,YAAY,EAAG,CACb,KAAK,KAAO,EAAG,KAAK,aAAe,GAAI,KAAK,WAAa,CAC1D,CAID,IAAI,aAAc,CAChB,OAAO,KAAK,YACb,CAID,IAAI,WAAY,CACd,OAAO,KAAK,UACb,CAID,IAAI,aAAc,CAChB,OAAO,KAAK,YACb,CAKD,gBAAgB,EAAG,EAAG,CACpB,KAAK,eAAiB,KAAK,aAAe,CACxC,QAAS,EACT,UAAW,CACjB,EACG,CAOD,IAAI,EAAG,EAAG,EAAG,CACX,KAAK,WAAa,EAAG,KAAK,QAAQ,EAAG,IAAM,CACzC,KAAK,gBAAgB,EAAG,CAAC,CAC/B,EAAO,CAAC,EAAG7kF,IAAM,CACX,KAAK,iBAAiB,EAAG,EAAGA,CAAC,CACnC,CAAK,CACF,CAQD,QAAQ,EAAG,EAAG,EAAG,CACf,MAAM,IAAI,MAAM,4BAA4B,CAC7C,CAKD,OAAQ,CACN,KAAK,WAAa,CACnB,CACD,iBAAiB,EAAG,EAAG,EAAG,CACxB,KAAK,WAAa,EAAG,KAAK,aAAe,CACvC,QAAS,EACT,UAAW,CACjB,EAAO,KAAK,SAAW,KAAK,QAAQ,KAAM,EAAG,CAAC,EAAG,GAC9C,CACD,gBAAgB,EAAG,EAAG,CACpB,GAAI,CACF,KAAK,WAAa,EAAG,KAAK,aAAe,GAAI,KAAK,WAAa,KAAK,UAAU,IAAI,EAAG,EAAC,CACvF,OAAQ,EAAG,CACV,KAAK,iBAAiB,EAAG,oDAAqD,CAAC,CAChF,CACF,CACH,EACA,MAAM8kF,GAAG,CAOP,YAAY,EAAG,EAAG,EAAG,CACnB,KAAK,eAAiB,EAAG,KAAK,WAAa,EAAG,KAAK,KAAO,CAC3D,CACH,CACA,MAAMC,YAAWC,EAAG,CASlB,YAAY,EAAG,EAAG,EAAG,EAAGhlF,EAAG,CACzB,MAAM,CAAC,EAAG,KAAK,KAAO,EAAG,KAAK,YAAc,EAAG,KAAK,QAAU,EAAG,KAAK,cAAgB,EAAG,KAAK,UAAYA,CAC3G,CAOD,QAAQ,EAAG,EAAG,EAAG,CACf2pD,GAAG,mBAAmB,KAAK,QAAS,KAAK,cAAe,EAAI,GAAM,CAChE,KAAK,gBAAkB,EAAG,KAAK,aAAe,EAAE,OAAQ,KAAK,qBAAuB,EAAE,eAAgB,KAAK,sBAAwB,EAAE,gBAAiB,KAAK,gBAAkB,EAAE,UAAW,KAAK,sBAAwB,EAAE,gBAAiB,EAAC,CAC5O,EAAE,KAAM,CAAC,EAAG3pD,EAAGC,IAAM,CACpB,EAAED,EAAGC,CAAC,CACZ,EAAO,KAAK,SAAS,CAClB,CACH,SACA,cAAiB+kF,EAAG,CASlB,YAAY,EAAG,EAAG,EAAG,EAAGhlF,EAAG,CACzB,MAAM,CAAC,EAAG,KAAK,KAAO,EAAG,KAAK,YAAc,EAAG,KAAK,QAAU,EAAG,KAAK,cAAgB,EAAG,KAAK,UAAYA,CAC3G,CAOD,QAAQ,EAAG,EAAG,EAAG,CACf2pD,GAAG,WAAW,KAAK,YAAa,KAAK,QAAS,KAAK,cAAe,EAAG,CAAC,EAAG3pD,EAAGC,EAAG,EAAG,IAAM,CACtF,KAAK,aAAe,EAAG,KAAK,qBAAuB,EAAG,KAAK,sBAAwBD,EAAG,KAAK,gBAAkBC,EAAG,KAAK,sBAAwB,EAAG,GACjJ,EAAE,KAAM,CAAC,EAAGD,EAAGC,IAAM,CACpB,EAAED,EAAGC,CAAC,CACZ,EAAO,KAAK,SAAS,CAClB,CACH,MACA,cAAiB+kF,EAAG,CASlB,YAAY,EAAG,EAAG,EAAG,EAAGhlF,EAAG,CACzB,MAAM,CAAC,EAAG,KAAK,KAAO,EAAG,KAAK,QAAU,EAAG,KAAK,SAAW,EAAG,KAAK,gBAAkB,EAAG,KAAK,UAAYA,CAC1G,CAOD,QAAQ,EAAG,EAAG,EAAG,CACf,MAAM,EAAI,EAAE,YAAY,OAAQA,EAAI,EAAE,gBAAgB,OACtD,KAAK,kBAAoB,GAAI,KAAK,sBAAwB,CAAE,EAAE2pD,GAAG,iBAAiB,KAAK,QAAS,KAAK,SAAU,EAAG,GAAI,EAAG,KAAK,gBAAiB,IAAM,CACnJ,KAAK,kBAAoB,EAAE,YAAY,MAAM,CAAC,EAAG,KAAK,sBAAwB,EAAE,gBAAgB,MAAM3pD,CAAC,EAAG,EAAC,CAC5G,EAAE,KAAM,CAACC,EAAG,EAAG,IAAM,CACpB,EAAE,EAAG,CAAC,CACZ,EAAO,KAAK,SAAS,CAClB,CACH,MACA,cAAiB+kF,EAAG,CAMlB,YAAY,EAAG,EAAG,CAChB,MAAM,CAAC,EAAG,KAAK,KAAO,EAAG,KAAK,IAAM,CACrC,CAOD,QAAQ,EAAG,EAAG,EAAG,CACf,EAAE,UAAU,KAAK,IAAM,GAAM,CAC3B,KAAK,KAAO,EAAG,GACrB,EAAO,OAAQ,GAAI,GAAI,CAAC,EAAGhlF,IAAM,CAC3B,GAAK,EAAE,EAAE,OAAS,IAAM,EAAE,WAAYA,CAAC,CAC7C,CAAK,CACF,CACH,MACA,cAAiBglF,EAAG,CAMlB,YAAY,EAAG,EAAG,CAChB,MAAM,CAAC,EAAG,KAAK,KAAO,EAAG,KAAK,IAAM,CACrC,CAOD,QAAQ,EAAG,EAAG,EAAG,CACf,EAAE,UAAU,KAAK,IAAM,GAAM,CAC3B,KAAK,KAAO,EAAG,GACrB,EAAO,OAAQ,GAAI,GAAI,CAAC,EAAGhlF,IAAM,CAC3B,GAAK,EAAE,EAAE,OAAS,IAAM,EAAE,WAAYA,CAAC,CAC7C,CAAK,CACF,CACH,MACA,cAAiBglF,EAAG,CAMlB,YAAY,EAAG,EAAG,CAChB,MAAM,CAAC,EAAG,KAAK,KAAO,EAAG,KAAK,IAAM,CACrC,CAOD,QAAQ,EAAG,EAAG,EAAG,CACf,MAAM,EAAI,IAAI,MACdp3E,GAAE,gBAAgB,KAAK,IAAK,CAAC,EAAG,EAAE,OAAS,IAAM,CAC/C,KAAK,MAAQ,EAAG,GACtB,EAAO,EAAE,QAAW5N,GAAM,CACpB,EAAE,sBAAuBA,CAAC,CAC3B,EAAE,EAAE,IAAM,KAAK,GACjB,CACH,MACA,cAAiBglF,EAAG,CASlB,YAAY,EAAG,EAAG,EAAG,EAAI,GAAIhlF,EAAI8jB,GAAE,uBAAwB,CACzD,MAAM,CAAC,EAAG,KAAK,KAAO,EAAG,KAAK,IAAM,EAAG,KAAK,SAAW,EAAG,KAAK,QAAU,EAAG,KAAK,aAAe9jB,CACjG,CAOD,QAAQ,EAAG,EAAG,EAAG,CACf,MAAM,EAAI,IAAM,CACd,GACN,EAAOA,EAAI,CAACC,EAAG,IAAM,CACf,EAAEA,EAAG,CAAC,CACZ,EACI,KAAK,QAAU,IAAI6jB,GAAE,KAAK,IAAK,EAAG,KAAK,SAAU,KAAK,QAAS,KAAK,aAAc,EAAG9jB,CAAC,CACvF,CACH,MACA,cAAiBglF,EAAG,CAUlB,YAAY,EAAG,EAAG,EAAG,EAAGhlF,EAAGC,EAAG,CAC5B,MAAM,CAAC,EAAG,KAAK,KAAO,EAAG,KAAK,IAAM,EAAG,KAAK,WAAa,EAAG,KAAK,SAAW,EAAG,KAAK,MAAQD,EAAG,KAAK,YAAcC,CACnH,CAOD,QAAQ,EAAG,EAAG,EAAG,CACf,MAAM,EAAI,IAAM,CACd,GACN,EAAOD,EAAI,CAACC,EAAG,IAAM,CACf,EAAEA,EAAG,CAAC,CACZ,EACI,KAAK,QAAU,IAAI+hD,GAAG,KAAK,IAAK,EAAG,KAAK,WAAY,KAAK,SAAU,KAAK,MAAO,EAAGhiD,EAAG,OAAQ,KAAK,WAAW,CAC9G,CACH,MACA,cAAiBglF,EAAG,CAWlB,YAAY,EAAG,EAAG,EAAG,EAAI,GAAIhlF,EAAI,GAAIC,EAAI,GAAI,EAAI,GAAI,CACnD,MAAM,CAAC,EAAG,KAAK,KAAO,EAAG,KAAK,IAAM,EAAG,KAAK,KAAO,EAAG,KAAK,SAAW,EAAG,KAAK,kBAAoBD,EAAG,KAAK,WAAaC,EAAG,KAAK,SAAW,CAC3I,CAOD,QAAQ,EAAG,EAAG,EAAG,CACf,MAAM,EAAI,IAAM,CACd,GACN,EAAOD,EAAI,CAACC,EAAG,IAAM,CACf,EAAEA,EAAG,CAAC,CACZ,EACI,KAAK,QAAU,IAAIq0D,GAAG,KAAK,IAAK,EAAG,KAAK,KAAM,KAAK,SAAU,KAAK,kBAAmB,KAAK,WAAY,KAAK,SAAU,EAAGt0D,CAAC,CAC1H,CACH,MACA,cAAiBglF,EAAG,CAYlB,YAAY,EAAG,EAAG,EAAG,EAAI,GAAIhlF,EAAI,GAAI,CACnC,MAAM,CAAC,EAAG,KAAK,KAAO,EAAG,KAAK,IAAM,EAAG,KAAK,KAAO,EAAG,KAAK,SAAW,EAAG,KAAK,WAAaA,CAC5F,CAOD,QAAQ,EAAG,EAAG,EAAG,CACf,MAAM,EAAI,IAAM,CACd,GACN,EAAOA,EAAI,CAACC,EAAG,IAAM,CACf,EAAEA,EAAG,CAAC,CACZ,EACI,KAAK,QAAU,IAAI+3D,GAAG,KAAK,IAAK,EAAG,KAAK,KAAM,KAAK,SAAU,KAAK,WAAY,EAAGh4D,CAAC,CACnF,CACH,EACAilF,IAAA,KAAS,CAKP,YAAY,EAAG,CACb,KAAK,WAAa,GAAI,KAAK,OAAS,IAAI,MAAS,KAAK,mBAAqB,EAAG,KAAK,iBAAmB,EAAG,KAAK,wBAA0B,IAAInlF,GAAK,KAAK,sBAAwB,IAAIA,GAAK,KAAK,sBAAwB,IAAIA,GAAK,KAAK,qBAAuB,IAAIA,GAAK,KAAK,wBAA0B,GAAI,KAAK,kBAAoB,GAAI,KAAK,OAAS,GAAKY,GAAG,gBACzV,CAUD,iBAAiB,EAAG,EAAG,EAAG,EAAGV,EAAG,CAC9B,MAAMC,EAAI,IAAI8kF,IAAG,EAAG,EAAG,EAAG,EAAG/kF,CAAC,EAC9B,OAAO,KAAK,OAAO,KAAKC,CAAC,EAAGA,CAC7B,CAUD,YAAY,EAAG,EAAG,EAAG,EAAGD,EAAG,CACzB,MAAMC,EAAI,IAAIilF,IAAG,EAAG,EAAG,EAAG,EAAGllF,CAAC,EAC9B,OAAO,KAAK,OAAO,KAAKC,CAAC,EAAGA,CAC7B,CAOD,gBAAgB,EAAG,EAAG,CACpB,MAAM,EAAI,IAAIklF,IAAG,EAAG,CAAC,EACrB,OAAO,KAAK,OAAO,KAAK,CAAC,EAAG,CAC7B,CAOD,kBAAkB,EAAG,EAAG,CACtB,MAAM,EAAI,IAAIC,IAAG,EAAG,CAAC,EACrB,OAAO,KAAK,OAAO,KAAK,CAAC,EAAG,CAC7B,CAOD,aAAa,EAAG,EAAG,CACjB,MAAM,EAAI,IAAIC,IAAG,EAAG,CAAC,EACrB,OAAO,KAAK,OAAO,KAAK,CAAC,EAAG,CAC7B,CAUD,eAAe,EAAG,EAAG,EAAG,EAAGrlF,EAAI8jB,GAAE,uBAAwB,CACvD,MAAM7jB,EAAI,IAAIqlF,IAAG,EAAG,EAAG,EAAG,EAAGtlF,CAAC,EAC9B,OAAO,KAAK,OAAO,KAAKC,CAAC,EAAGA,CAC7B,CAWD,mBAAmB,EAAG,EAAG,EAAG,EAAGD,EAAGC,EAAG,CACnC,MAAM,EAAI,IAAIslF,IAAG,EAAG,EAAG,EAAG,EAAGvlF,EAAGC,CAAC,EACjC,OAAO,KAAK,OAAO,KAAK,CAAC,EAAG,CAC7B,CAaD,sBAAsB,EAAG,EAAG,EAAG,EAAI,GAAID,EAAI,GAAIC,EAAI,GAAI,EAAI,GAAI,CAC7D,MAAM,EAAI,IAAIulF,IAAG,EAAG,EAAG,EAAG,EAAGxlF,EAAGC,EAAG,CAAC,EACpC,OAAO,KAAK,OAAO,KAAK,CAAC,EAAG,CAC7B,CAYD,uCAAuC,EAAG,EAAG,EAAG,EAAI,GAAID,EAAI,GAAI,CAC9D,MAAMC,EAAI,IAAIwlF,IAAG,EAAG,EAAG,EAAG,EAAGzlF,CAAC,EAC9B,OAAO,KAAK,OAAO,KAAKC,CAAC,EAAGA,CAC7B,CAKD,WAAW,EAAG,CACZ,MAAM,EAAI,KAAK,OAAO,QAAQ,CAAC,EAC/B,EAAI,IAAM,KAAK,OAAO,OAAO,EAAG,CAAC,CAClC,CACD,2BAA2B,EAAG,CAC5B,KAAK,qBACL,GAAI,CACF,KAAK,YAAc,KAAK,WAAW,KAAK,mBAAoB,KAAK,iBAAkB,CAAC,EAAG,KAAK,qBAAqB,gBAAgB,IAAI6kF,IAAG,KAAK,mBAAoB,KAAK,iBAAkB,CAAC,CAAC,CAC3L,OAAQ,EAAG,CACVliF,EAAE,MAAM,mCAAmC,EAAGA,EAAE,IAAI,CAAC,CACtD,CACD,GAAI,KAAK,qBAAuB,EAAG,CACjC,GAAI,CACF,MAAM,EAAI,KAAK,OAAO,MAAK,EAC3B,KAAK,UAAY,KAAK,SAAS,CAAC,EAChC,UAAW,KAAK,EACd,GAAI,EAAE,YAAc,EAAG,CACrB,MAAM,EAAI,KAAK,OAAO,QAAQ,CAAC,EAC/B,EAAI,IAAM,KAAK,OAAO,OAAO,EAAG,CAAC,CAClC,CACH,KAAK,sBAAsB,gBAAgB,KAAK,MAAM,CACvD,OAAQ,EAAG,CACVA,EAAE,MAAM,qCAAqC,EAAGA,EAAE,IAAI,CAAC,CACxD,CACD,KAAK,WAAa,GAAI,KAAK,mBAAqB,KAAK,OAAO,YAAY,eACzE,CACF,CACD,SAAS,EAAG,CACV,MAAM,EAAI,IAAM,CACd,GAAI,CACF,KAAK,eAAiB,KAAK,cAAc,CAAC,EAAG,KAAK,wBAAwB,gBAAgB,CAAC,EAAG,KAAK,2BAA2B,CAAC,CAChI,OAAQ,EAAG,CACV,EAAE,yCAA0C,CAAC,CAC9C,CACP,EAAO,EAAI,CAAC,EAAG5C,IAAM,CACf,EAAE,gBAAgB,EAAGA,CAAC,EAAG,KAAK,YAAc,KAAK,YAAY,CAAC,EAAI,EAAE,SAAW4C,EAAE,MAAM,KAAK,wBAAwB,CAAC,CAAC,EAAG,KAAK,sBAAsB,gBAAgB,CAAC,EAAG,KAAK,2BAA2B,CAAC,CAC/M,EACI,EAAE,IAAI,KAAK,OAAQ,EAAG,CAAC,CACxB,CACD,wBAAwB,EAAG,CACzB,IAAI,EAAI,2BAA6B,EAAE,KACvC,OAAO,EAAE,YAAY,UAAY,GAAK,KAAK,EAAE,YAAY,OAAO,IAAK,EAAE,YAAY,YAAc,GAAK,KAAK,EAAE,YAAY,SAAS,IAAK,CACxI,CAKD,OAAQ,CACN,OAAO,KAAK,WAAa,GAAI,KAAK,OAAS,IAAI,MAAS,IACzD,CAKD,MAAO,CACL,GAAI,KAAK,WACP,OAAO,KACT,GAAI,KAAK,WAAa,GAAI,KAAK,mBAAqB,KAAK,OAAO,OAAQ,KAAK,iBAAmB,KAAK,OAAO,OAAQ,KAAK,qBAAuB,EAC9I,OAAO,KAAK,WAAa,GAAI,KAAK,UAAY,KAAK,SAAS,KAAK,MAAM,EAAG,KAAK,sBAAsB,gBAAgB,KAAK,MAAM,EAAG,KACrI,KAAK,yBAA2B,KAAK,OAAO,UAAS,EAAG,mBACxD,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,OAAQ,IAAK,CAC3C,MAAM,EAAI,KAAK,OAAO,CAAC,EACvB,EAAE,YAAc,GAAK,KAAK,SAAS,CAAC,CACrC,CACD,OAAO,IACR,CAKD,WAAY,CACV,OAAO,IAAI,QAAQ,CAAC,EAAG,IAAM,CAC3B,GAAI,KAAK,WAAY,CACnB,IACA,MACD,CACD,KAAK,sBAAsB,QAAS,GAAM,CACxC,GAAK,EAAE,OAAS,EAAE,CAAC,EAAI,GAC/B,CAAO,EAAG,KAAK,MACf,CAAK,CACF,CACH,EACA8iF,IAAA,MAAMC,GAAG,CAIP,SAAU,CACR,GAAI,KAAK,YAAc,KAAK,aAC1B,QAAS,EAAI,EAAG,EAAI,KAAK,WAAW,OAAQ,IAC1C,KAAK,aAAa,CAAC,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,EAClD,KAAK,WAAa,KAAM,KAAK,aAAe,IAC7C,CASD,OAAO,MAAM,EAAG,EAAG,EAAI,GAAI,EAAI,KAAM,CACnC,MAAM3lF,EAAI,IAAI2lF,IACd3lF,EAAE,WAAa,IAAI,MAASA,EAAE,aAAe,EAC7C,UAAWC,KAAK,EAAG,CACjB,MAAM,EAAIA,EAAE,IAAI,EAAG,EAAG,GAAI,CAAC,EAC3B,GAAKD,EAAE,WAAW,KAAK,CAAC,CACzB,CACD,OAAOA,CACR,CACH,EACAF,GAAE,UAAU,2BAA6B,eAAeO,EAAG,EAAI,GAAI,EAAG,EAAG,EAAG,CAC1E,IAAIL,EAAI,QAAQ,QAAQK,CAAC,EACzB,GAAI,CAAC,KAAK,UAAU,OAClB,OAAOL,EACT,MAAMC,EAAI,KAAK,YACf,OAAOA,EAAE,KAAO,EAAGA,EAAE,OAAS,EAAGA,EAAE,cAAgB,EAAGA,EAAE,kBAAoB,GAAIA,EAAE,SAAW,EAAG,KAAK,UAAU,QAAS,GAAM,CAC5HA,EAAE,mBAAqB,EAAE,qBAAuB,EAAE,KAAO,IAAM,EAAE,MAAQD,EAAIA,EAAE,KAAM,IAAOC,EAAE,gBAAkB,EAAG,EAAE,SAAS,MAAM,EAAE,MAAO,CAACI,EAAGJ,CAAC,CAAC,EAAE,EAAID,EAAIA,EAAE,KAAM,IAAOC,EAAE,gBAAkB,EAAG,EAAE,SAASI,EAAGJ,CAAC,EAAE,EAAG,EAAE,sBAAwB,KAAK,iBAAiB,CAAC,EAC5Q,CAAG,EAAG,MAAMD,EAAGK,CACf,EACA,IAAAulF,GAAA,KAAS,CAKP,gBAAiB,CACf,MAAO,EACR,CAOD,MAAM,EAAG,EAAG,CACV,MAAO,EACR,CAKD,YAAY,EAAI,EAAG,CACjB,KAAK,SAAW,CACjB,CACH,KACA,cAAiBC,EAAG,CAKlB,gBAAiB,CACf,MAAO,0CAA4C,KAAK,WACzD,CAOD,YAAY,EAAI,EAAG,EAAI,KAAM,EAAI,GAAK,CACpC,MAAM,CAAC,EAAG,KAAK,SAAW,EAAG,KAAK,YAAc,EAAG,KAAK,KAAO,CAChE,CAOD,MAAM,EAAG,EAAG,CACV,IAAI,EAAI,GACR,QAAS,EAAI,EAAG,EAAI,EAAE,SAAS,OAAQ,IAAK,CAC1C,MAAM7lF,EAAI,EAAE,SAAS,CAAC,EACtB,GAAI,CAACA,EAAE,YAAcA,EAAE,WACrB,SACF,MAAMC,EAAID,EAAE,UACZ,KAAK,IAAIC,EAAE,MAAOA,EAAE,MAAM,EAAI,KAAK,cAAgBD,EAAE,MAAM,KAAK,IAAI,EAAG,EAAI,GAC5E,CACD,OAAO,CACR,CACH,KACA,cAAiB6lF,EAAG,CAKlB,gBAAiB,CACf,MAAO,qCAAuC,KAAK,aACpD,CAOD,YAAY,EAAI,EAAG,EAAI,EAAG,EAAI,IAAM,CAClC,MAAM,CAAC,EAAG,KAAK,SAAW,EAAG,KAAK,aAAe,EAAG,KAAK,KAAO,EAAG,KAAK,cAAgB,GAAI,KAAK,iBAAmB,CACrH,CAOD,MAAM,EAAG,EAAG,CACV,OAAO,KAAK,gBAAkB,KAAO,KAAK,cAAgB,EAAE,UAAS,EAAG,wBAAuB,EAAI,KAAK,cAAgB,KAAK,eAAiB,KAAK,iBAAmB,KAAM,KAAK,eAAiB,KAAK,iBAAmB,KAAK,KAAM,EAAE,UAAS,EAAG,wBAAwB,KAAK,aAAa,EAAG,KAAK,mBAAqB,EAAI,KAAK,eAAiB,KAAK,aAAe,KAAK,eAAiB,KAAK,YACpY,CACH,KACA,cAAiBA,EAAG,CAKlB,gBAAiB,CACf,MAAO,wBACR,CAOD,MAAM,EAAG,EAAG,CACV,OAAO,EAAE,eAAiB,EAAE,oBAAqB,EAClD,CACH,KACA,cAAiBA,EAAG,CAKlB,gBAAiB,CACf,MAAO,+BACR,CAOD,MAAM,EAAG,EAAG,CACV,OAAO,EAAE,qBAAuB,EAAE,oBAAqB,EACxD,CACH,KACA,cAAiBA,EAAG,CAKlB,gBAAiB,CACf,MAAO,4BACR,CAOD,MAAM,EAAG,EAAG,CACV,OAAO,EAAE,kBAAoB,EAAE,oBAAqB,EACrD,CACH,MACA,cAAiBA,EAAG,CAKlB,gBAAiB,CACf,OAAO,KAAK,iBAAmB,KAAK,iBAAgB,EAAK,+BAC1D,CAOD,MAAM,EAAG,EAAG,CACV,OAAO,KAAK,QAAU,KAAK,QAAQ,EAAG,CAAC,EAAI,EAC5C,CACH,KACA,cAAiBA,EAAG,CAKlB,gBAAiB,CACf,MAAO,0BACR,CAOD,MAAM,EAAG,EAAG,CACV,OAAO,EAAE,iBAAmB,EAAE,oBAAqB,EACpD,CACH,KACA,cAAiBA,EAAG,CAKlB,gBAAiB,CACf,MAAO,4BACR,CAOD,MAAM,EAAG,EAAG,CACV,OAAO,EAAE,qBAAuB,EAAE,oBAAqB,EACxD,CACH,KACA,MAAMC,WAAWD,EAAG,CAClB,aAAc,CACZ,MAAM,GAAG,SAAS,EAAG,KAAK,aAAgB,GAAM,CAC9C,GAAI,EAAE,aAAa5zD,IACjB,MAAO,GACT,MAAM,EAAI,EACV,MAAO,EAAE,EAAE,WAAU,GAAM,CAAC,EAAE,WAAa,CAAC,EAAE,UAAS,GAAM,EAAE,UAAU,OAAS,GAAK,EAAE,UAAY,EAAE,cAAgB,EAAE,qBAAuB,EACtJ,CACG,CAID,WAAW,qBAAsB,CAC/B,OAAO6zD,GAAG,oBACX,CAID,WAAW,oBAAoB,EAAG,CAChCA,GAAG,qBAAuB,CAC3B,CAKD,gBAAiB,CACf,MAAO,iCACR,CAQD,MAAM,EAAG,EAAG,EAAG,CACb,MAAM,EAAI,EAAE,OAAO,MAAM,CAAC,EAC1B,IAAI9lF,EAAI,EAAE,OACV,QAAS,EAAI,EAAG,EAAIA,EAAG,IAAK,CAC1B,MAAM,EAAI,CAAE,EAAE,EAAI,EAAE,CAAC,EACrB,GAAI,KAAK,aAAa,CAAC,EAAG,CACxB,EAAE,KAAK,CAAC,EACR,QAAS,EAAI,EAAI,EAAG,EAAIA,EAAG,IAAK,CAC9B,MAAM,EAAI,EAAE,CAAC,EACb,KAAK,aAAa,CAAC,GAAK,EAAE,WAAa,EAAE,UAAY,EAAE,kBAAoB,EAAE,kBAAoB,EAAE,KAAK,CAAC,EAAGA,IAAK,EAAE,OAAO,EAAG,CAAC,EAAG,IAClI,CACD,EAAE,OAAS,GAAKiyB,GAAE,YAAY,EAAG,OAAQ,EAAE,CAC5C,CACF,CACD,MAAMhyB,EAAI,EACV,OAAOA,EAAE,gCAAkC,GAAK,KAAO,GAAKA,EAAE,8BAA+B,EAAG6lF,GAAG,qBAAuB7lF,EAAE,8BAA6B,GAAK,EAC/J,CACH,EACA6lF,GAAG,qBAAuB,GAC1B,IAAAC,GAAA,MAAMC,EAAG,CAMP,YAAY,EAAI,GAAI,EAAI,IAAK,CAC3B,KAAK,gBAAkB,EAAG,KAAK,gBAAkB,EAAG,KAAK,cAAgB,EAC1E,CAMD,gBAAgB,EAAG,CACjB,OAAO,KAAK,cAAc,KAAK,CAAC,EAAG,IACpC,CAQD,sBAAsB,EAAG,EAAG,EAAI,EAAG,CACjC,MAAM,EAAI,IAAIC,IAAG,CAAC,EAClB,OAAO,EAAE,QAAU,EAAG,EAAE,iBAAmB,EAAG,KAAK,cAAc,KAAK,CAAC,EAAG,IAC3E,CAMD,OAAO,sBAAsB,EAAG,CAC9B,MAAM,EAAI,IAAID,GAAG,CAAC,EAClB,IAAI,EAAI,EACR,OAAO,EAAE,gBAAgB,IAAIF,GAAG,CAAC,CAAC,EAAG,EAAE,gBAAgB,IAAII,GAAG,CAAC,CAAC,EAAG,EAAE,gBAAgB,IAAIC,GAAG,CAAC,CAAC,EAAG,IAAK,EAAE,gBAAgB,IAAIC,GAAG,CAAC,CAAC,EAAG,EAAE,gBAAgB,IAAIC,GAAG,CAAC,CAAC,EAAG,IAAK,EAAE,gBAAgB,IAAIC,GAAG,EAAG,IAAI,CAAC,EAAG,CAC5M,CAMD,OAAO,2BAA2B,EAAG,CACnC,MAAM,EAAI,IAAIN,GAAG,CAAC,EAClB,IAAI,EAAI,EACR,OAAO,EAAE,gBAAgB,IAAIF,GAAG,CAAC,CAAC,EAAG,EAAE,gBAAgB,IAAII,GAAG,CAAC,CAAC,EAAG,EAAE,gBAAgB,IAAIC,GAAG,CAAC,CAAC,EAAG,IAAK,EAAE,gBAAgB,IAAIC,GAAG,CAAC,CAAC,EAAG,EAAE,gBAAgB,IAAIC,GAAG,CAAC,CAAC,EAAG,IAAK,EAAE,gBAAgB,IAAIC,GAAG,EAAG,GAAG,CAAC,EAAG,IAAK,EAAE,gBAAgB,IAAIC,GAAG,CAAC,CAAC,EAAG,IAAK,EAAE,gBAAgB,IAAIC,GAAG,EAAG,CAAC,CAAC,EAAG,CACpR,CAMD,OAAO,uBAAuB,EAAG,CAC/B,MAAM,EAAI,IAAIR,GAAG,CAAC,EAClB,IAAI,EAAI,EACR,OAAO,EAAE,gBAAgB,IAAIF,GAAG,CAAC,CAAC,EAAG,EAAE,gBAAgB,IAAII,GAAG,CAAC,CAAC,EAAG,EAAE,gBAAgB,IAAIC,GAAG,CAAC,CAAC,EAAG,IAAK,EAAE,gBAAgB,IAAIC,GAAG,CAAC,CAAC,EAAG,EAAE,gBAAgB,IAAIC,GAAG,CAAC,CAAC,EAAG,IAAK,EAAE,gBAAgB,IAAIC,GAAG,EAAG,GAAG,CAAC,EAAG,IAAK,EAAE,gBAAgB,IAAIC,GAAG,CAAC,CAAC,EAAG,IAAK,EAAE,gBAAgB,IAAIC,GAAG,EAAG,CAAC,CAAC,EAAG,CACpR,CACH,EACAC,IAAA,MAAMC,GAAG,CAIP,IAAI,qBAAsB,CACxB,OAAO,KAAK,gBACb,CACD,IAAI,oBAAoB,EAAG,CACzB,KAAK,iBAAmB,CACzB,CAID,IAAI,sBAAuB,CACzB,OAAO,KAAK,qBACb,CAID,IAAI,kBAAmB,CACrB,OAAO,KAAK,iBACb,CAID,IAAI,iBAAkB,CACpB,OAAO,KAAK,gBACb,CAID,IAAI,gBAAgB,EAAG,CACrB,KAAK,iBAAmB,CACzB,CAID,IAAI,iBAAkB,CACpB,OAAO,KAAK,gBACb,CAID,IAAI,gBAAgB,EAAG,CACrB,KAAK,iBAAmB,CACzB,CAID,IAAI,eAAgB,CAClB,OAAO,KAAK,SAAS,aACtB,CAQD,YAAY,EAAG,EAAG,EAAI,GAAI,EAAI,GAAI,CAChC,GAAI,KAAK,WAAa,GAAI,KAAK,sBAAwB,EAAG,KAAK,iBAAmB,GAAI,KAAK,iBAAmB,IAAK,KAAK,kBAAoB,EAAG,KAAK,iBAAmB,GAAI,KAAK,oBAAsB,IAAI5mF,GAAK,KAAK,mCAAqC,IAAIA,GAAK,KAAK,oBAAsB,IAAIA,GAAK,EAAI,KAAK,SAAW,EAAI,KAAK,SAAW,IAAIkmF,GAAM,KAAK,SAAS,kBAAoB,KAAK,iBAAmB,KAAK,SAAS,iBAAkB,KAAK,SAAS,kBAAoB,KAAK,iBAAmB,KAAK,SAAS,iBAAkB,EAAG,CAC7gB,IAAIhmF,EAAI,EACR,UAAWC,KAAK,KAAK,SAAS,cAC5BA,EAAE,SAAWD,GAChB,CACD,KAAK,iBAAmB,EAAG,KAAK,OAAS,GAAKU,GAAG,iBAAkB,KAAK,sBAAwB,KAAK,OAAO,oBAAoB,IAAI,IAAM,CACxI,KAAK,sBAAwB,KAAM,KAAK,QAAO,CACrD,CAAK,CACF,CAID,MAAO,CACL,KAAK,WAAa,EACnB,CAID,OAAQ,CACN,KAAK,sBAAwB,CAC9B,CAKD,OAAQ,CACN,KAAK,aAAe,KAAK,WAAa,GAAI,KAAK,OAAO,iBAAiB,IAAM,CAC3E,WAAW,IAAM,CACf,KAAK,mBAAkB,CAC/B,EAAS,KAAK,gBAAgB,CACzB,GACF,CACD,oBAAqB,CACnB,GAAI,CAAC,KAAK,WACR,OACF,MAAM,EAAI,KAAK,OAAQ,EAAI,KAAK,SAChC,GAAI,KAAK,kBAAoB,KAAK,MAAM,EAAE,YAAY,QAAQ,EAAG,KAAK,kBAAoB,KAAK,mBAAqB,KAAK,kBAAoB,CAAC,KAAK,kBAAoB,KAAK,mBAAqB,KAAK,iBAAkB,CACtN,KAAK,WAAa,GAAI,KAAK,oBAAoB,gBAAgB,IAAI,EACnE,MACD,CACD,IAAI,EAAI,GAAI,EAAI,GAChB,QAASV,EAAI,EAAGA,EAAI,EAAE,cAAc,OAAQA,IAAK,CAC/C,MAAMC,EAAI,EAAE,cAAcD,CAAC,EAC3BC,EAAE,WAAa,KAAK,wBAA0B,EAAI,GAAI,EAAI,GAAKA,EAAE,MAAM,EAAG,IAAI,EAAG,KAAK,mCAAmC,gBAAgBA,CAAC,EAC3I,CACD,GAAI,EAAG,CACL,KAAK,WAAa,GAAI,KAAK,oBAAoB,gBAAgB,IAAI,EACnE,MACD,CACD,GAAK,KAAK,wBAAyB,EAAE,iBAAiB,IAAM,CAC1D,WAAW,IAAM,CACf,KAAK,mBAAkB,CAC/B,EAAS,KAAK,gBAAgB,CAC9B,CAAK,CACF,CAID,SAAU,CACR,KAAK,OAAQ,KAAK,oBAAoB,MAAO,EAAE,KAAK,oBAAoB,MAAK,EAAI,KAAK,mCAAmC,MAAO,EAAE,KAAK,uBAAyB,KAAK,OAAO,oBAAoB,OAAO,KAAK,qBAAqB,CAClO,CASD,OAAO,cAAc,EAAG,EAAG,EAAG,EAAG,CAC/B,MAAMD,EAAI,IAAI0mF,IAAG,EAAG,GAAKV,GAAG,2BAA0B,EAAI,EAAE,EAC5D,OAAO,GAAKhmF,EAAE,oBAAoB,IAAI,IAAM,CAC1C,GACD,GAAG,GAAKA,EAAE,oBAAoB,IAAI,IAAM,CACvC,GACD,GAAGA,EAAE,MAAO,EAAEA,CAChB,CACH,EACI2mF,GAAK,GACT,MAAMC,GAAK,CAACvmF,EAAG,IAAM,CACnBA,EAAE,iBAAmB,EAAE,WAAW,KAAKA,EAAE,sBAAsB,EAAGsmF,GAAGtmF,EAAE,EAAE,EAAI,GAC/E,EAAGwmF,IAAK,CAACxmF,EAAG,IAAM,CAChB,MAAM,EAAI,CAAE,EAAE,EAAIA,EAAE,UACpB,OAAO,IAAMA,EAAE,SAAU,EAAC,gBAAgB,EAAE,EAAE,GAAKumF,GAAG,EAAG,EAAE,UAAU,GAAIvmF,EAAE,WAAaA,EAAE,UAAU,CAAC,EAAG,CAC1G,EAAGymF,IAAK,CAACzmF,EAAG,IAAM,CAChB,GAAIA,EAAE,QAAS,CACb,MAAM,EAAIA,EACV,GAAI,EAAE,iBAAmB,GAAK,EAAE,iBAAmB,EAAG,CACpD,MAAM,EAAKL,GAAM,CACf,EAAE,UAAY,EAAE,WAAa,CAAE,EAAE,EAAE,UAAY,CAAC,EAAE,UAAU,KAAMC,GAAMA,EAAE,KAAO,EAAE,SAAS,EAAE,GAAK,EAAE,UAAU,KAAKD,EAAE,UAAW,EACzI,EACM,GAAI,EAAE,UAAY,CAAC,EAAE,SAAS,eAC5B,GAAI,EAAE,oBAAoByxB,IACxB,GAAI,EAAE,eAAiB,EAAE,gBAAkB,GAAI,CAAC,EAAE,eAAe,KAAMzxB,GAAMA,EAAE,KAAO,EAAE,SAAS,EAAE,EAAG,CACpG,EAAE,eAAe,KAAK,EAAE,SAAS,UAAS,CAAE,EAC5C,UAAWA,KAAK,EAAE,SAAS,aACzBA,GAAK,EAAEA,CAAC,CACX,OAED,EAAE,EAAE,QAAQ,OACX,EAAE,UAAY,EAAE,EAAE,SAAQ,EAAG,eAAe,EACjD,MAAM,EAAI,EAAE,UACZ,IAAM,EAAE,aAAe,EAAE,WAAa,GAAI,EAAE,WAAW,MAAQ,CAAE,EAAE,EAAE,WAAW,QAAU,GAAI,EAAE,WAAW,UAAY,GAAI,EAAE,WAAW,QAAU,CAAE,EAAE,EAAE,WAAW,QAAU,GAAI,EAAE,WAAW,OAAS,CAAE,EAAE,EAAE,WAAW,WAAa,CAAE,EAAE,EAAE,WAAW,WAAa,IAAK4mF,GAAG,EAAG,EAAE,UAAU,GAAI,EAAE,UAAY,CAAC,EAAE,SAAS,iBAAmB,EAAE,UAAY,EAAE,WAAa,GAAI,EAAE,UAAU,KAAK,EAAE,SAAS,UAAW,IAAI,EAAE,OAAS,EAAE,QAAU,CAAE,EAAE,EAAE,OAAO,KAAKC,IAAG,EAAG,CAAC,CAAC,CACzc,CACF,SAAUxmF,EAAE,aAAc,IAAK,gBAAiB,CAC/C,MAAM,EAAIA,EACV,EAAE,eAAe,KAAK,EAAE,UAAW,EACvC,SAAaA,EAAE,aAAc,EAAC,QAAQ,QAAQ,IAAM,GAAI,CACpD,MAAM,EAAIA,EACV,EAAE,QAAQ,KAAK,EAAE,UAAW,EAChC,SAAaA,EAAE,aAAc,EAAC,QAAQ,OAAO,IAAM,GAAI,CACnD,MAAM,EAAIA,EACV,EAAE,OAAO,KAAK,EAAE,UAAW,EAC5B,CACH,EACA,IAAA0mF,IAAA,MAAMC,EAAG,CAIP,OAAO,YAAa,CAClBL,GAAK,EACN,CAQD,OAAO,UAAU,EAAG,CAClB,OAAOK,GAAG,WAAW,CAAC,CACvB,CACD,OAAO,WAAW,EAAG,EAAI,GAAI,CAC3B,MAAM,EAAI,GACV,GAAI,GAAK,CAAC,EAAE,UAAW,EAAC,UAAU,wBAA0BljE,GAAE,uBAAyBlhB,EAAE,KAAK,oIAAoI,EAAGokF,GAAG,WAAU,EAAI,EAAE,yBAA2B,EAAE,yBAA0B,EAAE,UAAY,EAAE,UAAW,EAAE,WAAa,EAAE,WAAW,QAAO,EAAI,EAAE,aAAe,EAAE,aAAa,UAAW,EAAE,QAAU,EAAE,QAAQ,QAAO,EAAI,EAAE,kBAAoB,EAAE,kBAAmB,EAAE,qBAAuB,EAAE,qBAAsB,EAAE,UAAY,QAAU,EAAE,UAAY,OAAS,EAAE,QAAU,EAAE,SAAU,EAAE,WAAa,QAAU,EAAE,WAAa,OAAS,EAAE,SAAW,EAAE,SAAS,QAAO,GAAK,EAAE,WAAa,QAAU,EAAE,WAAa,OAAS,EAAE,SAAW,EAAE,UAAW,EAAE,SAAW,QAAU,EAAE,SAAW,OAAS,EAAE,OAAS,EAAE,QAAS,EAAE,aAAe,QAAU,EAAE,aAAe,OAAS,EAAE,WAAa,EAAE,YAAa,EAAE,kBAAoB,EAAE,iBAAgB,EAAI,CACh8B,MAAM,EAAI,EAAE,mBACZ,IAAM,EAAE,eAAiB,GAAI,EAAE,eAAiB,EAAE,QAAQ,QAAS,EAAE,EAAE,cAAgB,EAAE,qBAAoB,EAC9G,CACD,EAAE,WAAa,EAAE,SAAW,EAAE,UAAW,EAAE,oBAAsB,GACjE,UAAW,KAAK,EAAE,OAAQ,CACxB,MAAM,EAAI,EAAE,mBACZ,GAAK,EAAE,oBAAoB,KAAK,EAAE,UAAS,CAAE,CAC9C,CACD,EAAE,OAAS,GACX,IAAI,EAAGhnF,EACP,IAAK,EAAI,EAAG,EAAI,EAAE,OAAO,OAAQ,IAC/BA,EAAI,EAAE,OAAO,CAAC,EAAGA,EAAE,gBAAkB,EAAE,OAAO,KAAKA,EAAE,UAAW,GAClE,IAAK,EAAE,QAAU,CAAE,EAAE,EAAI,EAAG,EAAI,EAAE,QAAQ,OAAQ,IAAK,CACrD,MAAM,EAAI,EAAE,QAAQ,CAAC,EACrB,EAAE,gBAAkB,EAAE,QAAQ,KAAK,EAAE,UAAS,CAAE,CACjD,CACD,GAAI,EAAE,eAAiB,EAAE,eAAiB,EAAE,aAAa,IAAKsT,GAAG,2BAA2B,EAAG,CAAC,EAAG,EAAE,iBAAmB,EAAE,gBAAgB,OAAS,EAAG,CACpJ,EAAE,gBAAkB,GACpB,QAAS,EAAI,EAAG,EAAI,EAAE,gBAAgB,OAAQ,IAAK,CACjD,MAAM,EAAI,EAAE,gBAAgB,CAAC,EAC7B,EAAE,gBAAgB,KAAK,EAAE,UAAW,EACrC,CACF,CACD,GAAI,EAAE,kBAAoB,EAAE,iBAAiB,OAAS,EACpD,IAAK,EAAE,iBAAmB,CAAE,EAAE,EAAI,EAAG,EAAI,EAAE,iBAAiB,OAAQ,IAAK,CACvE,MAAM,EAAI,EAAE,iBAAiB,CAAC,EAC9B,EAAE,iBAAiB,KAAK,EAAE,UAAW,EACtC,CACH,EAAE,UAAY,GAAI,EAAE,eAAiB,GACrC,IAAIrT,EACJ,IAAK,EAAI,EAAG,EAAI,EAAE,UAAU,OAAQ,IAClCA,EAAI,EAAE,UAAU,CAAC,EAAGA,EAAE,gBAAkB,EAAE,UAAU,KAAKA,EAAE,UAAW,GACxE,IAAK,EAAE,eAAiB,CAAE,EAAE,EAAI,EAAG,EAAI,EAAE,eAAe,OAAQ,IAAK,CACnE,MAAM,EAAI,EAAE,eAAe,CAAC,EAC5B,EAAE,eAAe,KAAK,EAAE,UAAW,EACpC,CACD,IAAK,EAAE,qBAAuB,EAAE,mBAAmB,OAAS,EAAE,mBAAqB,EAAE,mBAAmB,UAAS,GAAM,EAAE,mBAAqB,EAAE,mBAAmB,KAAM,EAAE,4BAA8B,EAAE,mBAAmB,YAAa,EAAE,qBAAuB,EAAE,qBAAsB,EAAE,UAAY,GAAI,EAAI,EAAG,EAAI,EAAE,UAAU,OAAQ,IAAK,CAChV,MAAM,EAAI,EAAE,UAAU,CAAC,EACvB,EAAE,gBAAkB,EAAE,UAAU,KAAK,EAAE,UAAS,CAAE,CACnD,CACD,IAAK,EAAE,eAAiB,CAAE,EAAE,EAAI,EAAG,EAAI,EAAE,eAAe,OAAQ,IAC9D,EAAE,eAAe,CAAC,EAAE,gBAAkB,EAAE,eAAe,KAAK,EAAE,eAAe,CAAC,EAAE,UAAW,GAC7F,EAAE,WAAa,GAAI,EAAE,WAAW,MAAQ,CAAE,EAAE,EAAE,WAAW,QAAU,GAAI,EAAE,WAAW,UAAY,GAAI,EAAE,WAAW,QAAU,CAAE,EAAE,EAAE,WAAW,QAAU,GAAI,EAAE,WAAW,OAAS,GAAI,EAAE,WAAW,WAAa,CAAE,EAAE,EAAE,WAAW,WAAa,CAAE,EAAE0mF,GAAK,GACrP,MAAM,EAAI,EAAE,gBACZ,IAAK,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,CAC7B,MAAM,EAAI,EAAE,CAAC,EACb,EAAE,QAAO,GAAMC,GAAG,EAAG,EAAE,UAAU,CAClC,CACD,IAAK,EAAE,OAAS,CAAE,EAAE,EAAI,EAAG,EAAI,EAAE,OAAO,OAAQ,IAAK,CACnD,MAAM,EAAI,EAAE,OAAO,CAAC,EACpB,GAAI,aAAa30D,GAAG,CAClB,MAAM,EAAI,EACV,EAAE,iBAAmB,EAAE,iBAAmB,GAAK,EAAE,iBAAmB,IAAM,EAAE,OAAO,KAAK40D,IAAG,EAAG,CAAC,CAAC,CACjG,CACF,CACD,IAAK,EAAE,gBAAkB,CAAE,EAAE,EAAI,EAAG,EAAI,EAAE,gBAAgB,OAAQ,IAChE,EAAE,gBAAgB,KAAK,EAAE,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,EAC3D,IAAK,EAAE,cAAgB,CAAE,EAAE,EAAI,EAAG,EAAI,EAAE,cAAc,OAAQ,IAC5D,EAAE,cAAc,KAAK,EAAE,cAAc,CAAC,EAAE,UAAS,CAAE,EACrD,EAAE,gBAAkB,EAAE,QAAU,EAAE,cAAc,UAAU,OAAO,GACjE,UAAW,KAAK,EAAE,wBAChB,EAAE,UAAU,CAAC,EACf,GAAI,EAAE,eACJ,IAAK,EAAE,eAAiB,CAAE,EAAE,EAAI,EAAG,EAAI,EAAE,eAAe,OAAQ,IAC9D,EAAE,eAAe,KAAK,EAAE,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC,EAC3D,OAAO,CACR,CAMD,OAAO,eAAe,EAAG,CACvB,MAAM,EAAIG,GAAG,WAAW,EAAG,EAAE,EAAG,EAAI,GACpC,OAAO,KAAK,iBAAiB,EAAG,CAAC,EAAG,QAAQ,IAAI,CAAC,EAAE,KAAK,IAAM,CAAC,CAChE,CACD,OAAO,iBAAiB,EAAG,EAAG,CAC5B,GAAI,MAAM,QAAQ,CAAC,EACjB,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,EAAE,EAAG,CACjC,MAAM,EAAI,EAAE,CAAC,EACb,aAAa,QAAU,EAAE,KAAK,EAAE,KAAMhnF,GAAM,EAAE,CAAC,EAAIA,CAAC,CAAC,GAAK,aAAa,QAAU,MAAM,QAAQ,CAAC,IAAM,KAAK,iBAAiB,EAAG,CAAC,CACjI,SACM,aAAa,QACpB,UAAW,KAAK,EACd,GAAI,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,EAAG,CAC9C,MAAM,EAAI,EAAE,CAAC,EACb,aAAa,QAAU,EAAE,KAAK,EAAE,KAAMA,GAAM,EAAE,CAAC,EAAIA,CAAC,CAAC,GAAK,aAAa,QAAU,MAAM,QAAQ,CAAC,IAAM,KAAK,iBAAiB,EAAG,CAAC,CACjI,EAEN,CAQD,OAAO,cAAc,EAAG,EAAI,GAAI,EAAI,GAAI,CACtC,MAAM,EAAI,GACV,GAAI,EAAE,OAAS,CAAE,EAAE,EAAE,eAAiB,CAAE,EAAE,EAAE,QAAU,CAAE,EAAE,EAAE,OAAS,CAAE,EAAEgnF,GAAG,aAAc,EAAI,aAAa,MAAQ,EAAI,CAAC,CAAC,EAAG,GAAK,EAC/H,QAAShnF,EAAI,EAAGA,EAAI,EAAE,OAAQ,EAAEA,EAC9B,GAAK,EAAEA,CAAC,EAAE,eAAc,EAAG,QAASC,GAAM,CACxC,EAAE,QAAQA,CAAC,EAAI,GAAK,CAACA,EAAE,gBAAkB,EAAE,KAAKA,CAAC,CAClD,GAAG,GAAK,EAAED,CAAC,EAAE,QAAU,EAAE,QAAQ,EAAEA,CAAC,EAAE,MAAM,EAAI,GAAK,CAAC,EAAEA,CAAC,EAAE,OAAO,gBAAkB,EAAE,KAAK,EAAEA,CAAC,EAAE,MAAM,EAC3G,OAAO,EAAE,QAASA,GAAM,CACtB8mF,IAAG9mF,EAAG,CAAC,CACR,GAAG,CACL,CACH,EACAinF,IAAA,MAAMC,EAAG,CAOP,OAAO,YAAY,EAAG,EAAG,CACvB,MAAM,EAAI,GAAK,EAAE,mBAAkB,EACnC,MAAO,CAAC,CAAC,GAAK,OAAO,EAAE,eAAiB,UACzC,CAID,IAAI,aAAc,CAChB,MAAO,CAAC,CAAC,KAAK,SAAW,KAAK,QAAQ,WACvC,CAMD,YAAY,EAAG,EAAI,GAAI,CACrB,GAAI,CAACA,GAAG,YAAY,EAAG,EAAE,MAAM,EAC7B,KAAM,kDACR,MAAM,EAAI,EAAE,QAAU,EAAE,mBAAkB,EAC1C,GAAI,CAAC,EACH,KAAM,uDACR,KAAK,QAAU,EAAG,KAAK,QAAQ,YAAc,GAAI,KAAK,SAAW,CAC/D,GAAGA,GAAG,gBACN,GAAG,CACT,EACI,MAAM,EAAI,KAAK,QAAQ,cAAc,KAAK,SAAS,GAAG,EACtD,GAAI,KAAK,SAAS,YAChB,UAAWlnF,KAAK,KAAK,SAAS,YAC5B,EAAE,SAASA,CAAC,EAChB,KAAK,eAAiB,IAAI,cAAc,EAAG,CAAE,SAAU,KAAK,SAAS,QAAQ,CAAE,EAAG,KAAK,eAAe,gBAAmBA,GAAM,KAAK,qBAAqBA,CAAC,EAAG,KAAK,eAAe,QAAWA,GAAM,KAAK,aAAaA,CAAC,EAAG,KAAK,eAAe,OAAS,IAAM,KAAK,aACjQ,CAID,eAAgB,CACd,CAAC,KAAK,SAAW,CAAC,KAAK,gBAAkB,KAAK,cAAgB,KAAK,QAAQ,YAAc,GAAI,KAAK,eAAe,KAAI,EACtH,CASD,eAAe,EAAI,iBAAkB,EAAI,EAAG,CAC1C,GAAI,CAAC,KAAK,SAAW,CAAC,KAAK,eACzB,KAAM,qCACR,GAAI,KAAK,YACP,KAAM,gCACR,OAAO,EAAI,GAAK,WAAW,IAAM,CAC/B,KAAK,cAAa,CACnB,EAAE,EAAI,GAAG,EAAG,KAAK,UAAY,EAAG,KAAK,gBAAkB,GAAI,KAAK,SAAW,KAAM,KAAK,QAAU,KAAM,KAAK,QAAQ,YAAc,GAAI,KAAK,eAAe,MAAM,KAAK,SAAS,gBAAgB,EAAG,IAAI,QAAQ,CAAC,EAAG,IAAM,CACrN,KAAK,SAAW,EAAG,KAAK,QAAU,CACxC,CAAK,CACF,CAID,SAAU,CACR,KAAK,QAAU,KAAM,KAAK,eAAiB,KAAM,KAAK,gBAAkB,GAAI,KAAK,UAAY,KAAM,KAAK,SAAW,KAAM,KAAK,QAAU,IACzI,CACD,qBAAqB,EAAG,CACtB,EAAE,KAAK,KAAO,GAAK,KAAK,gBAAgB,KAAK,EAAE,IAAI,CACpD,CACD,aAAa,EAAG,CACd,GAAI,KAAK,gBAAiB,KAAK,QAC7B,KAAK,QAAQ,EAAE,KAAK,MAEpB,OAAM,IAAI,EAAE,KACf,CACD,aAAc,CACZ,KAAK,cAAa,EAClB,MAAM,EAAI,IAAI,KAAK,KAAK,eAAe,EACvC,KAAK,UAAY,KAAK,SAAS,CAAC,EAAG,OAAO,IAAI,gBAAgB,CAAC,EAAG,KAAK,WAAa4N,GAAE,SAAS,EAAG,KAAK,SAAS,CACjH,CACH,EACAs5E,IAAG,gBAAkB,CACnB,SAAU,aACV,IAAK,GACL,iBAAkB,GACpB,EACA,IAAIC,GAAK,KACT,SAASC,GAAG/mF,EAAG,EAAG,EAAG,EAAG,EAAI,YAAaL,EAAI,GAAIC,EAAG,CAClD,KAAM,CAAE,OAAQ,EAAG,MAAO,GAAMonF,IAAGhnF,EAAG,EAAG,CAAC,EAC1C,GAAI,EAAE,GAAK,GAAI,CACbuC,EAAE,MAAM,4BAA4B,EACpC,MACD,CACDukF,KAAOA,GAAK,SAAS,cAAc,QAAQ,GAAIA,GAAG,MAAQ,EAAGA,GAAG,OAAS,EACzE,MAAM,EAAIA,GAAG,WAAW,IAAI,EAAG,EAAI9mF,EAAE,eAAc,EAAKA,EAAE,gBAAe,EACzE,IAAI,EAAI,EAAG,EAAI,EAAI,EACnB,EAAI,IAAM,EAAI,EAAG,EAAI,EAAI,GACzB,MAAMQ,EAAI,KAAK,IAAI,EAAG,EAAI,CAAC,EAAI,EAAGmF,EAAI,KAAK,IAAI,EAAG,EAAI,CAAC,EAAI,EAC3D,EAAE,WAAW,eAAiB,EAAIshF,GAAGjnF,EAAG,EAAG,EAAI6F,GAAM,CACnD,GAAIlG,EAAG,CACL,MAAMmG,EAAI,IAAI,KAAK,CAACD,CAAC,CAAC,EACtB0H,GAAE,aAAazH,CAAC,EAAG,GAAK,EAAE,EAAE,CAClC,MAAW,GAAK,EAAED,CAAC,CACnB,EAAK,EAAG,EAAG7F,EAAE,mBAAkB,EAAG,UAAW,OAAQ,OAAQ,OAAQ,OAAQJ,CAAC,EAAII,EAAE,qBAAqB,QAAQ,IAAM,CACnH,MAAM6F,EAAI7F,EAAE,qBACZ,GAAK6F,GAAK,EAAE,UAAUA,EAAGrF,EAAGmF,EAAG,EAAG,CAAC,EAAGmhF,KAAOnnF,GAAK4N,GAAE,2BAA2Bu5E,GAAI,OAAQ,EAAG,OAAQlnF,CAAC,EAAG,GAAK,EAAE,EAAE,GAAK2N,GAAE,2BAA2Bu5E,GAAI,EAAG,EAAG,OAAQlnF,CAAC,EAC5K,CAAG,CACH,CACA,SAASsnF,GAAGlnF,EAAG,EAAG,EAAG,EAAI,YAAa,EAAG,CACvC,OAAO,IAAI,QAAQ,CAACL,EAAGC,IAAM,CAC3BmnF,GAAG/mF,EAAG,EAAG,EAAI,GAAM,CACjB,OAAO,EAAI,IAAML,EAAE,CAAC,EAAIC,EAAE,IAAI,MAAM,mBAAmB,CAAC,CACzD,EAAE,EAAG,OAAQ,CAAC,CACnB,CAAG,CACH,CACA,SAASunF,IAAGnnF,EAAG,EAAG,EAAG,EAAG,EAAI,YAAaL,EAAG,CAC1C,OAAO,IAAI,QAASC,GAAM,CACxBmnF,GAAG/mF,EAAG,EAAG,CAAE,MAAO,EAAG,OAAQ,CAAC,EAAI,IAAM,CACtCJ,GACD,EAAE,EAAG,GAAID,CAAC,CACf,CAAG,CACH,CACA,SAASsnF,GAAGjnF,EAAG,EAAG,EAAG,EAAG,EAAI,YAAaL,EAAI,EAAGC,EAAI,GAAI,EAAG,EAAI,GAAI,EAAI,GAAI,EAAI,GAAI,EAAG,EAAG,CACvF,KAAM,CAAE,OAAQY,EAAG,MAAOmF,EAAG,WAAYC,EAAG,YAAaC,CAAG,EAAGmhF,IAAGhnF,EAAG,EAAG,CAAC,EAAG8F,EAAI,CAAE,MAAOH,EAAG,OAAQnF,GACpG,GAAI,EAAEA,GAAKmF,GAAI,CACbpD,EAAE,MAAM,4BAA4B,EACpC,MACD,CACD,MAAMwD,EAAI,CAAE,MAAO/F,EAAE,eAAgB,EAAE,OAAQA,EAAE,gBAAe,GAChEA,EAAE,QAAQ2F,EAAGnF,CAAC,EACd,MAAM2G,EAAI,EAAE,SAAQ,EAAI,EAAI,IAAI0d,GAAG,aAAc/e,EAAGqB,EAAG,GAAI,GAAI,EAAG,GAAIsc,GAAE,sBAAuB,OAAQ,EAAG,OAAQ,OAAQ,OAAQ9jB,CAAC,EACnI,EAAE,WAAawH,EAAE,OAAO,QAAS,EAAE,QAAUxH,EAAG,EAAE,cAAgB,EAAG,EAAE,aAAe,EAAG,EAAE,oBAAsB,EAAgB,IAAE,CAAC,EACpI,MAAMyH,EAAI,IAAM,CACd,EAAE,uBAAyB,EAAE,QAAQ,EAAE,GAAKpH,EAAE,qBAAqB,QAAQ,IAAM,CAC/E4F,IAAMD,GAAKE,IAAMrF,EAAI,EAAE,WAAW,OAAQ,OAAQ,OAAQ,EAAE,EAAE,KAAM8G,GAAM,CACxEmd,GAAG,SAAS9e,EAAGnF,EAAG8G,EAAG,EAAG,EAAG,EAAG,GAAI,OAAQ,CAAC,EAAG,EAAE,SACxD,CAAO,EAAIke,GAAG,OAAQ,EAAE,mBAAkB,EAAIre,EAAG,OAAQ,OAAQ,OAAQvB,EAAGC,CAAC,EAAE,KAAMyB,GAAM,CACnFtH,EAAE,mBAAmBsH,EAAG1B,EAAGC,EAAG,GAAI,EAAG,KAAM,GAAI,GAAI,EAAG,CAAC,EAAE,KAAM0B,GAAM,CACnEkd,GAAG,SAAS7e,EAAGC,EAAG0B,EAAG,EAAG,EAAG,EAAG,GAAI,OAAQ,CAAC,EAAGD,EAAE,SAC1D,CAAS,CACT,CAAO,CACF,GAAG,EAAE,OAAO,EAAE,EAAGH,EAAE,kBAAmB,EAAEA,EAAE,oBAAmB,EAAInH,EAAE,QAAQ+F,EAAE,MAAOA,EAAE,MAAM,EAAG,EAAE,oBAAoB,EAAE,EAAGoB,EAAE,OAAM,GAAM,WAAWC,EAAG,EAAE,CAC1J,EAAEC,EAAI,IAAM,CACXF,EAAE,kBAAiB,EAAIA,EAAE,oBAAqB,EAAEC,EAAC,CACrD,EACE,GAAIxH,EAAG,CACL,MAAM0H,EAAI,IAAIqwE,GAAG,eAAgB,EAAGxwE,EAAE,YAAY,EAClD,EAAE,eAAeG,CAAC,EAAGA,EAAE,UAAW,EAAC,QAAS,EAAGD,EAAC,EAAKC,EAAE,UAAW,EAAC,WAAa,IAAM,CACpFD,GACN,CACG,MACCA,GACJ,CACA,SAAS+/E,GAAGpnF,EAAG,EAAG,EAAG,EAAI,YAAa,EAAI,EAAGL,EAAI,GAAIC,EAAG,EAAI,GAAI,EAAI,GAAI,EAAI,GAAI,EAAG,CACjF,OAAO,IAAI,QAAQ,CAAC,EAAG,IAAM,CAC3BqnF,GAAGjnF,EAAG,EAAG,EAAIQ,GAAM,CACjB,OAAOA,EAAI,IAAM,EAAEA,CAAC,EAAI,EAAE,IAAI,MAAM,mBAAmB,CAAC,CAC9D,EAAO,EAAG,EAAGb,EAAGC,EAAG,EAAG,EAAG,EAAG,CAAC,CAC7B,CAAG,CACH,CACA,SAASonF,IAAGhnF,EAAG,EAAG,EAAG,CACnB,IAAI,EAAI,EAAG,EAAI,EAAGL,EAAI,EAAGC,EAAI,EAC7B,GAAI,OAAO,GAAK,SAAU,CACxB,MAAM,EAAI,EAAE,UAAY,KAAK,IAAI,EAAE,SAAS,EAAI,EAChD,EAAE,OAAS,EAAE,QAAU,EAAI,EAAE,OAAS,EAAG,EAAI,EAAE,MAAQ,GAAK,EAAE,OAAS,CAAC,EAAE,QAAU,EAAI,EAAE,MAAQ,EAAG,EAAI,KAAK,MAAM,EAAII,EAAE,eAAe,CAAC,CAAC,GAAK,EAAE,QAAU,CAAC,EAAE,OAAS,EAAI,EAAE,OAAS,EAAG,EAAI,KAAK,MAAM,EAAIA,EAAE,eAAe,CAAC,CAAC,IAAM,EAAI,KAAK,MAAMA,EAAE,eAAgB,EAAG,CAAC,EAAG,EAAI,KAAK,MAAM,EAAIA,EAAE,eAAe,CAAC,CAAC,GAAI,EAAE,YAAc,EAAE,aAAeJ,EAAI,EAAE,YAAaD,EAAI,EAAE,YAAc,EAAE,YAAc,CAAC,EAAE,aAAeA,EAAI,EAAE,WAAYC,EAAI,KAAK,MAAMD,EAAIK,EAAE,eAAe,CAAC,CAAC,GAAK,EAAE,aAAe,CAAC,EAAE,YAAcJ,EAAI,EAAE,YAAaD,EAAI,KAAK,MAAMC,EAAII,EAAE,eAAe,CAAC,CAAC,IAAML,EAAI,EAAGC,EAAI,EAC5kB,MAAM,MAAM,CAAC,IAAM,EAAI,EAAG,EAAI,EAAGD,EAAI,EAAGC,EAAI,GAC7C,OAAO,IAAM,EAAI,KAAK,MAAM,CAAC,GAAI,IAAM,EAAI,KAAK,MAAM,CAAC,GAAID,IAAMA,EAAI,KAAK,MAAMA,CAAC,GAAIC,IAAMA,EAAI,KAAK,MAAMA,CAAC,GAAI,CAAE,OAAQ,EAAI,EAAG,MAAO,EAAI,EAAG,WAAYD,EAAI,EAAG,YAAaC,EAAI,EACpL,CACK,MAACynF,IAAK,CAmBT,iBAAkBN,GAiBlB,sBAAuBG,GAcvB,gCAAiCC,IAuBjC,kCAAmCF,GAqBnC,uCAAwCG,EAC1C,EAAGE,IAAK,IAAM,CACZ/5E,GAAE,iBAAmBw5E,GAAIx5E,GAAE,sBAAwB25E,GAAI35E,GAAE,kCAAoC05E,GAAI15E,GAAE,uCAAyC65E,EAC9I,EACAE,MACG,IAACC,IACH,SAASvnF,EAAG,CACXA,EAAEA,EAAE,SAAW,CAAC,EAAI,WAAYA,EAAEA,EAAE,OAAS,CAAC,EAAI,SAAUA,EAAEA,EAAE,QAAU,CAAC,EAAI,UAAWA,EAAEA,EAAE,WAAa,CAAC,EAAI,aAAcA,EAAEA,EAAE,OAAS,CAAC,EAAI,SAAUA,EAAEA,EAAE,OAAS,CAAC,EAAI,SAAUA,EAAEA,EAAE,OAAS,CAAC,EAAI,SAAUA,EAAEA,EAAE,QAAU,CAAC,EAAI,UAAWA,EAAEA,EAAE,IAAM,CAAC,EAAI,MAAOA,EAAEA,EAAE,WAAa,CAAC,EAAI,aAAcA,EAAEA,EAAE,QAAU,EAAE,EAAI,SAChU,GAAGunF,KAAOA,GAAK,CAAE,EAAC,EAClB,IAAAC,GAAA,KAAS,CACP,OAAO,aAAc,CACnB,GAAI,CACF,OAAO,aAAa,QAAQ,OAAQ,EAAE,EAAG,aAAa,WAAW,MAAM,EAAG,YAChF,MAAY,CACN,MAAM,EAAI,GACV,MAAO,CACL,QAAU,GAAM,CACd,MAAM,EAAI,EAAE,CAAC,EACb,OAAO,IAAM,OAAS,KAAO,CAC9B,EACD,QAAS,CAAC,EAAG,IAAM,CACjB,EAAE,CAAC,EAAI,CACR,CACT,CACK,CACF,CAOD,OAAO,WAAW,EAAG,EAAG,CACtB,MAAM,EAAI,KAAK,SAAS,QAAQ,CAAC,EACjC,OAAO,IAAM,KAAO,EAAI,CACzB,CAMD,OAAO,YAAY,EAAG,EAAG,CACvB,KAAK,SAAS,QAAQ,EAAG,CAAC,CAC3B,CAOD,OAAO,YAAY,EAAG,EAAG,CACvB,MAAM,EAAI,KAAK,SAAS,QAAQ,CAAC,EACjC,OAAO,IAAM,KAAO,IAAM,OAAS,CACpC,CAMD,OAAO,aAAa,EAAG,EAAG,CACxB,KAAK,SAAS,QAAQ,EAAG,EAAI,OAAS,OAAO,CAC9C,CAOD,OAAO,WAAW,EAAG,EAAG,CACtB,MAAM,EAAI,KAAK,SAAS,QAAQ,CAAC,EACjC,OAAO,IAAM,KAAO,WAAW,CAAC,EAAI,CACrC,CAMD,OAAO,YAAY,EAAG,EAAG,CACvB,KAAK,SAAS,QAAQ,EAAG,EAAE,SAAQ,CAAE,CACtC,CACH,EACAC,GAAG,SAAWA,GAAG,cACjB,IAAIC,IACH,SAAS1nF,EAAG,CACX,MAAM,CAAE,CAKN,WAAY,CACV,MAAM,EAAI,CAAE,EAAEL,EAAI,IAAI,MAAM,KAAK,gBAAgB,IAAI,EACrD,OAAO,KAAK,gBAAgB,QAAQ,CAACC,EAAG,IAAM,CAC5CD,EAAEC,CAAC,EAAI,CACf,CAAO,EAAG,EAAE,WAAaD,EAAG,EAAE,eAAiB,KAAK,gBAAiB,EAAE,cAAgB,KAAK,eAAgB,EAAE,kBAAoB,KAAK,mBAAoB,KAAK,UAAU,CAAC,CACtK,CAMD,OAAO,YAAY,EAAG,CACpB,MAAMA,EAAI,KAAK,MAAM,CAAC,EAAGC,EAAI,IAAI,EAAED,EAAE,UAAU,EAC/C,OAAOC,EAAE,gBAAkBD,EAAE,eAAgBC,EAAE,eAAiBD,EAAE,cAAeC,EAAE,mBAAqBD,EAAE,kBAAmBC,CAC9H,CAQD,YAAY,EAAGD,EAAI,KAAMC,EAAI,KAAM,EAAI,KAAM,CAC3CD,EAAIA,IAAM,IAAM,GAAIC,EAAIA,IAAM,IAAM,GAAI,EAAI,IAAM,CAAC,EAAG,IAAM,IAAM,EAAI,EAAI,GAAI,KAAK,gBAAkC,IAAI,IAAO,KAAK,gBAAkB,IAAI,MAAM,EAAE,MAAM,EAAG,KAAK,eAAiB,IAAI,MAAM,EAAE,MAAM,EAAG,KAAK,mBAAqB,IAAI,MAAM,EAAE,MAAM,EACnQ,IAAI,EACJ,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,EAAE,EAAG,CACjC,EAAI,EAAE,CAAC,EAAG,KAAK,gBAAgB,IAAI,EAAG,CAAC,EAAG,KAAK,gBAAgB,CAAC,EAAID,EAAE,CAAC,EAAG,KAAK,eAAe,CAAC,EAAIC,EAAE,CAAC,EAAG,KAAK,mBAAmB,CAAC,EAAI,IAAI,MAAM,EAAE,MAAM,EACxJ,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,EAAE,EAC9B,KAAK,mBAAmB,CAAC,EAAE,CAAC,EAAI,EAAE,EAAG,EAAE,CAAC,CAAC,CAC5C,CACF,CAMD,gBAAgB,EAAG,CACjB,OAAO,KAAK,gBAAgB,IAAI,CAAC,CAClC,CAMD,iBAAiB,EAAG,CAClB,OAAO,KAAK,gBAAgB,CAAC,CAC9B,CAMD,gBAAgB,EAAG,CACjB,OAAO,KAAK,eAAe,CAAC,CAC7B,CASD,oBAAoB,EAAGD,EAAG,CACxB,MAAMC,EAAI,KAAK,IAAI,EAAGD,CAAC,EAAG,EAAI,KAAK,IAAI,EAAGA,CAAC,EAC3C,OAAO,KAAK,mBAAmBC,CAAC,EAAE,CAAC,CACpC,CACF,CACDI,EAAE,SAAW,EACb,MAAM,CAAE,CAON,WAAY,CACV,OAAO,KAAK,UAAU,KAAK,WAAW,CACvC,CASD,OAAO,YAAY,EAAGL,EAAG,CACvB,MAAMC,EAAI,IAAI,EAAE,CAAE,EAAED,CAAC,EACrB,OAAOC,EAAE,YAAc,KAAK,MAAM,CAAC,EAAGA,CACvC,CAMD,YAAY,EAAGD,EAAG,CAChB,GAAI,EAAE,OAAS,EAAE,qBACf,MAAM,IAAI,MAAM,yBAA2B,EAAE,qBAAuB,iBAAiB,EACvF,KAAK,UAAYA,EAAG,KAAK,YAAc,EAAE,IAAKC,GAAM,KAAK,UAAU,gBAAgBA,CAAC,CAAC,CACtF,CAMD,SAAS,EAAG,CACV,OAAO,EAAE,UAAU,KAAM,CAAC,CAC3B,CAOD,OAAO,UAAU,EAAGD,EAAG,CACrB,MAAMC,EAAI,EAAE,UACZ,GAAIA,IAAMD,EAAE,UACV,MAAM,IAAI,MAAM,sEAAsE,EACxF,MAAM,EAAI,EAAE,YAAa,EAAIA,EAAE,YAAa,EAAI,EAAE,OAAQ,EAAI,EAAE,OAAQ,EAAI,EAAE,YAC9E,EAAE,CAAC,EAAE,CAAC,EAAI,EACV,QAAS,EAAI,EAAG,EAAI,EAAG,EAAE,EACvB,EAAE,EAAI,CAAC,EAAE,CAAC,EAAI,EAAE,CAAC,EAAE,CAAC,EAAIC,EAAE,iBAAiB,EAAE,CAAC,CAAC,EACjD,QAAS,EAAI,EAAG,EAAI,EAAG,EAAE,EACvB,EAAE,CAAC,EAAE,EAAI,CAAC,EAAI,EAAE,CAAC,EAAE,CAAC,EAAIA,EAAE,iBAAiB,EAAE,CAAC,CAAC,EACjD,QAAS,EAAI,EAAG,EAAI,EAAG,EAAE,EACvB,QAASY,EAAI,EAAGA,EAAI,EAAG,EAAEA,EACvB,EAAE,eAAiB,EAAE,EAAI,CAAC,EAAEA,CAAC,EAAIZ,EAAE,iBAAiB,EAAEY,CAAC,CAAC,EAAG,EAAE,cAAgB,EAAE,CAAC,EAAEA,EAAI,CAAC,EAAIZ,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAG,EAAE,kBAAoB,EAAE,CAAC,EAAEY,CAAC,EAAIZ,EAAE,oBAAoB,EAAE,CAAC,EAAG,EAAEY,CAAC,CAAC,EAAG,EAAE,EAAI,CAAC,EAAEA,EAAI,CAAC,EAAI,KAAK,IAAI,EAAE,eAAgB,EAAE,cAAe,EAAE,iBAAiB,EAC5Q,OAAO,EAAE,CAAC,EAAE,CAAC,CACd,CACF,CACD,EAAE,qBAAuB,IAAK,EAAE,YAAc,CAAC,GAAG,MAAM,EAAE,qBAAuB,CAAC,CAAC,EAAE,IAAI,IAAM,IAAI,MAAM,EAAE,qBAAuB,CAAC,CAAC,EAAGR,EAAE,SAAW,CACtJ,GAAG0nF,KAAOA,GAAK,CAAE,EAAC,EAClB,IAAAC,GAAA,MAAMC,EAAG,CAKP,WAAY,CACV,OAAO,KAAK,UAAU,IAAI,CAC3B,CAMD,OAAO,YAAY,EAAG,CACpB,MAAM,EAAI,KAAK,MAAM,CAAC,EAAG,EAAI,IAAIA,GAAG,EAAE,cAAc,EACpD,OAAO,EAAE,QAAU,EAAE,QAAQ,IAAK,GAAM,IAAIz4E,EAAE,EAAE,GAAI,EAAE,GAAI,EAAE,EAAE,CAAC,EAAG,CACnE,CAKD,YAAY,EAAI,IAAM,CACpB,KAAK,QAAU,GAAI,KAAK,eAAiB,CAC1C,CAKD,WAAY,CACV,OAAO,KAAK,QAAQ,OAAS,KAAK,cACnC,CAMD,IAAI,EAAG,CACL,IAAI,EAAI,KAAK,QAAQ,OACrB,GAAI,IAAM,EACR,KAAK,QAAQ,KAAK,EAAE,MAAO,OACxB,CACH,MAAM,EAAI,IAAM,KAAK,eAAiBA,EAAE,SAAS,KAAK,QAAQ,EAAI,CAAC,EAAG,CAAC,EACvE,QAAS,EAAI,EAAG,EAAE,GAAK,EAAG,EAAI,IAAK,CACjC,MAAMxP,EAAI,KAAK,QAAQ,EAAI,CAAC,EAAE,MAAM,EAAI,CAAC,EACzC,EAAE,iBAAiB,EAAGA,CAAC,EAAG,KAAK,QAAQ,KAAKA,CAAC,EAAG,EAAE,CACnD,CACF,CACF,CAQD,2BAA2B,EAAG,CAC5B,MAAM,EAAI,IAAIioF,GAAG,KAAK,UAAS,EAAK,CAAC,EACrC,OAAO,KAAK,QAAQ,QAAS,GAAM,CACjC,EAAE,IAAI,CAAC,CACR,GAAG,CACL,CASD,SAAS,EAAG,CACV,MAAM,EAAI,CAAE,EAAE,EAAI,IAAIz4E,EACtB,QAAS,EAAI,EAAG,EAAI,KAAK,QAAQ,OAAQ,EAAE,EACzCy4E,GAAG,0BAA0B,KAAK,QAAQ,EAAI,CAAC,EAAG,KAAK,QAAQ,EAAI,CAAC,EAAG,KAAK,QAAQ,CAAC,EAAG,CAAC,GAAK,EAAE,KAAKA,GAAG,iBAAiB,EAAG,CAAC,CAAC,EAChI,OAAO,CACR,CAYD,OAAO,0BAA0B,EAAG,EAAG,EAAG,EAAG,CAC3C,OAAO,EAAE,cAAc,EAAGA,GAAG,WAAW,EAAGA,GAAG,YAAY,UAAW,EAAE,EAAE,WAAW,GAAIA,GAAG,eAAe,EAAGA,GAAG,gBAAgB,UAAS,EAAI,KAAK,IAAIz4E,EAAE,IAAIy4E,GAAG,YAAaA,GAAG,eAAe,CAAC,EAAI,IAAO,IAAMz4E,EAAE,WAAWy4E,GAAG,YAAaA,GAAG,gBAAiBA,GAAG,MAAM,EAAGA,GAAG,OAAO,YAAar4E,EAAE,cAAc,EAAG,EAAGq4E,GAAG,OAAQA,GAAG,WAAW,EAAG,EAAE,cAAc,EAAGA,GAAG,UAAU,EAAGA,GAAG,WAAW,UAAS,EAAIz4E,EAAE,qBAAqBy4E,GAAG,WAAYA,GAAG,YAAa,CAAC,EAAG,GAC/c,CAQD,OAAO,iBAAiB,EAAG,EAAG,CAC5BA,GAAG,WAAa,EAAGA,GAAG,OAASz4E,EAAE,IAAI,EAAG,EAAE,CAAC,CAAC,EAAGy4E,GAAG,WAAaA,GAAG,OAClE,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,EAAE,EAC9BA,GAAG,OAASz4E,EAAE,IAAI,EAAG,EAAE,CAAC,CAAC,EAAGy4E,GAAG,OAASA,GAAG,aAAeA,GAAG,WAAa,EAAGA,GAAG,WAAaA,GAAG,QAClG,OAAOA,GAAG,UACX,CACH,EACAA,GAAG,YAAc,IAAIz4E,EACrBy4E,GAAG,gBAAkB,IAAIz4E,EACzBy4E,GAAG,OAAS,IAAIz4E,EAChBy4E,GAAG,WAAa,IAAIz4E,EACpBy4E,GAAG,YAAc,IAAIr4E,EACrB,IAAAs4E,GAAA,MAAMC,EAAG,CAaP,OAAO,SAAS,EAAI,GAAI,EAAI,IAAK,EAAI,GAAK,EAAI,KAAMnoF,EAAI,GAAI,CAC1D,MAAMuC,EAAI,IAAI4lF,GAAG,CAAC,EAClB,QAASniF,EAAI,EAAGA,EAAI,EAAG,EAAEA,EACvBzD,EAAE,MAAMyD,CAAC,EAAI,IAAIwJ,EAAE,KAAK,OAAM,EAAK,GAAK,KAAK,OAAQ,EAAG,GAAK,KAAK,OAAM,EAAK,EAAG,EAAGjN,EAAE,MAAMyD,CAAC,EAAE,YAChG,QAASA,EAAI,EAAGA,EAAIhG,EAAE,OAAQ,EAAEgG,EAC9BzD,EAAE,MAAMyD,CAAC,EAAE,SAAShG,EAAEgG,CAAC,CAAC,EAC1B,IAAI1D,EAAG4G,EACP,MAAMpI,EAAI,IAAI0O,EAAK5O,EAAI,IAAI4O,EAAK3O,EAAI,CAACmF,EAAGC,EAAGC,KAAO,EAAIA,GAAKF,EAAIE,EAAID,EACnE,QAASD,EAAI,EAAGA,EAAI,EAAG,EAAEA,EAAG,CAC1B1D,EAAIzB,EAAE,EAAG,EAAGmF,GAAK,EAAI,EAAE,EACvB,QAASC,EAAIjG,EAAE,OAAQiG,EAAI1D,EAAE,MAAM,OAAQ,EAAE0D,EAC3CnF,EAAE,eAAe,EAAG,EAAG,CAAC,EAAGyB,EAAE,MAAM,QAAS2D,GAAM,CAChD3D,EAAE,MAAM0D,CAAC,EAAE,cAAcC,EAAGtF,CAAC,EAAGsI,EAAItI,EAAE,cAAa,EAAIsI,EAAI,MAAQtI,EAAE,iBAAiB,GAAKA,EAAE,gBAAkBsI,GAAIpI,CAAC,CAC9H,CAAS,EAAGA,EAAE,aAAawB,CAAC,EAAGC,EAAE,MAAM0D,CAAC,EAAE,WAAWnF,CAAC,EAAGyB,EAAE,MAAM0D,CAAC,EAAE,WAC/D,CACD,OAAO1D,CACR,CAKD,WAAY,CACV,OAAO,KAAK,UAAU,KAAK,KAAK,CACjC,CAMD,OAAO,YAAY,EAAG,CACpB,MAAM,EAAI,KAAK,MAAM,CAAC,EAAG,EAAI,IAAI4lF,GAAG,EAAE,MAAM,EAC5C,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,EAAE,EAC9B,EAAE,MAAM,CAAC,EAAI,IAAI34E,EAAE,EAAE,CAAC,EAAE,GAAI,EAAE,CAAC,EAAE,GAAI,EAAE,CAAC,EAAE,EAAE,EAC9C,OAAO,CACR,CACD,YAAY,EAAG,CACb,KAAK,MAAQ,IAAI,MAAM,CAAC,CACzB,CACH,EACA44E,GAAA,MAAMC,EAAG,CAKP,WAAY,CACV,OAAO,KAAK,UAAU,KAAK,WAAW,IAAK,GAAM,EAAE,UAAW,EAAC,CAChE,CASD,OAAO,YAAY,EAAG,EAAG,CACvB,MAAM,EAAI,IAAIA,GACd,OAAO,EAAE,WAAa,KAAK,MAAM,CAAC,EAAE,IAAK,GAAMN,GAAG,SAAS,YAAY,EAAG,CAAC,CAAC,EAAG,CAChF,CASD,OAAO,qBAAqB,EAAG,EAAG,EAAG,CACnC,OAAOM,GAAG,8BAA8BA,GAAG,wBAAwB,EAAG,CAAC,EAAG,CAAC,CAC5E,CASD,OAAO,8BAA8B,EAAG,EAAG,CACzC,MAAM,EAAI,IAAIA,GACd,OAAO,EAAE,WAAa,EAAE,IAAK,GAAM,IAAIN,GAAG,SAAS,EAAG,CAAC,CAAC,EAAG,CAC5D,CACD,aAAc,CACZ,KAAK,WAAa,EACnB,CASD,OAAO,wBAAwB,EAAG,EAAG,EAAIM,GAAG,8BAA+B,CACzE,MAAM,EAAI,GACV,QAASroF,EAAI,EAAGA,EAAI,EAAGA,EAAI,KAAK,MAAMA,EAAI,CAAC,EACzC,EAAE,KAAK,EAAE,2BAA2BA,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,EAC1D,OAAO,CACR,CAQD,SAAS,EAAG,CACV,IAAI,EAAI,EAAG,EACX,QAAS,EAAI,EAAG,EAAI,KAAK,WAAW,OAAQ,EAAE,EAC5C,EAAI,KAAK,IAAI,EAAG,CAAC,EAAG,GAAK,EAAI,KAAK,WAAW,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,EAC1E,OAAO,CACR,CACH,EACAqoF,GAAG,8BAAgC,GACnC,IAAAC,GAAA,MAAMC,EAAG,CAKP,WAAY,CACV,MAAM,EAAI,GACV,OAAO,EAAE,YAAc,KAAK,aAAa,IAAK,GAAM,EAAE,UAAS,CAAE,EAAG,EAAE,YAAc,KAAK,aAAc,EAAE,gBAAkB,KAAK,iBAAkB,KAAK,UAAU,CAAC,CACnK,CASD,OAAO,YAAY,EAAG,EAAG,CACvB,MAAM,EAAI,KAAK,MAAM,CAAC,EAAG,EAAI,IAAIA,GACjC,OAAO,EAAE,aAAe,EAAE,YAAY,IAAKvoF,GAAMqoF,GAAG,YAAYroF,EAAG,CAAC,CAAC,EAAG,EAAE,aAAe,EAAE,YAAa,EAAE,iBAAmB,EAAE,gBAAiB,CACjJ,CAKD,YAAY,EAAI,GAAI,CAClB,KAAK,aAAe,EAAG,KAAK,aAAe,GAAI,KAAK,iBAAmB,EAAG,KAAK,oBAAmB,CACnG,CAMD,IAAI,EAAG,CACL,KAAK,aAAa,KAAK,CAAC,EAAG,KAAK,qBACjC,CAQD,aAAa,EAAG,CACd,OAAO,EAAE,SAAS,KAAK,aAAa,KAAK,YAAY,CAAC,EAAI,KAAK,gBAChE,CAQD,wBAAwB,EAAG,CACzB,OAAO,KAAK,IAAI,GAAG,KAAK,aAAa,IAAK,GAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAC/D,CAID,qBAAsB,CACpB,KAAK,aAAe,GACpB,IAAI,EACJ,MAAM,EAAI,KAAK,aAAa,IAAK,IAAO,EAAI,EAAG,KAAK,aAAa,QAAS,GAAM,CAC9E,GAAK,EAAE,SAAS,CAAC,CACvB,CAAK,EAAG,EAAE,EACN,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,EAAE,GAC7B,KAAK,aAAe,GAAK,EAAE,CAAC,EAAI,EAAE,KAAK,YAAY,KAAO,KAAK,aAAe,GACjF,KAAK,iBAAmB,EAAG,KAAK,aAAa,QAAS,GAAM,CAC1D,KAAK,kBAAoB,EAAE,SAAS,KAAK,aAAa,KAAK,YAAY,CAAC,CAC9E,CAAK,EAAG,KAAK,aAAa,OAAS,IAAM,KAAK,iBAAmB,KAAK,IAAI,KAAK,iBAAmB,KAAK,aAAa,OAAQuoF,GAAG,qBAAqB,EACjJ,CACH,EACAA,GAAG,sBAAwB,EAC3B,IAAAC,IAAA,MAAMC,EAAG,CAKP,WAAY,CACV,MAAM,EAAI,GACV,OAAO,EAAE,0BAA4B,KAAK,2BAA4B,EAAE,gBAAkB,KAAK,iBAAiB,UAAS,EAAI,EAAE,oBAAsB,KAAK,qBAAqB,YAAa,EAAE,0BAA4B,GAAI,KAAK,2BAA2B,QAAQ,CAAC,EAAG,IAAM,CAC9Q,EAAE,0BAA0B,KAAK,CAAC,EAAG,EAAE,0BAA0B,KAAK,EAAE,UAAS,CAAE,CACpF,GAAG,KAAK,UAAU,CAAC,CACrB,CAMD,OAAO,YAAY,EAAG,CACpB,MAAM,EAAI,KAAK,MAAM,CAAC,EAAG,EAAI,IAAIA,GACjC,EAAE,2BAA6B,EAAE,0BAA2B,EAAE,iBAAmBN,GAAG,YAAY,EAAE,eAAe,EAAG,EAAE,qBAAuBJ,GAAG,SAAS,YAAY,EAAE,mBAAmB,EAC1L,QAAS,EAAI,EAAG,EAAI,EAAE,0BAA0B,OAAQ,GAAK,EAC3D,EAAE,2BAA2B,IAAI,EAAE,0BAA0B,CAAC,EAAGQ,GAAG,YAAY,EAAE,0BAA0B,EAAI,CAAC,EAAG,EAAE,oBAAoB,CAAC,EAC7I,OAAO,CACR,CAOD,OAAO,UAAW,CAChB,MAAM,EAAIJ,GAAG,SAAS,GAAI,IAAK,GAAK,KAAM,CAAC34E,EAAE,QAAS,EAAC,EAAG,EAAI,IAAI,MAAM,EAAE,MAAM,MAAM,EACtF,QAASxP,EAAI,EAAGA,EAAI,EAAE,OAAQ,EAAEA,EAC9B,EAAEA,CAAC,EAAIA,EACT,MAAM,EAAI,IAAI+nF,GAAG,SAAS,EAAI/nF,GAAMA,IAAM,EAAI,EAAI,EAAIA,GAAMA,IAAM,EAAI,EAAI,EAAG,CAACA,EAAGC,IAAM,KAAK,IAAI,EAAIuP,EAAE,IAAI,EAAE,MAAMxP,CAAC,EAAG,EAAE,MAAMC,CAAC,CAAC,EAAG,CAAC,CAAC,EAAG,EAAI,IAAIwoF,GAChJ,OAAO,EAAE,iBAAmB,EAAG,EAAE,qBAAuB,EAAG,CAC5D,CACD,aAAc,CACZ,KAAK,2BAA6B,EAAG,KAAK,2BAA6C,IAAI,GAC5F,CAMD,8BAA8B,EAAG,EAAG,CAClC,KAAK,2BAA2B,IAAI,CAAC,GAAK,KAAK,2BAA2B,IAAI,EAAG,IAAIF,EAAI,EAAG,KAAK,2BAA2B,IAAI,CAAC,EAAE,IAAIF,GAAG,qBAAqB,EAAG,KAAK,iBAAkB,KAAK,oBAAoB,CAAC,CACpN,CAMD,qBAAqB,EAAG,CACtB,OAAO,KAAK,2BAA2B,OAAO,CAAC,CAChD,CAOD,mBAAmB,EAAG,CACpB,MAAM,EAAIA,GAAG,qBAAqB,EAAG,KAAK,iBAAkB,KAAK,oBAAoB,EAAG,EAAI,GAC5F,GAAI,KAAK,2BAA2B,QAAQ,CAAC,EAAG,IAAM,CACpD,EAAE,aAAa,CAAC,EAAI,KAAK,4BAA8B,EAAE,KAAK,CAAC,CACrE,CAAK,EAAG,EAAE,SAAW,EACf,OAAO,KACT,IAAI,EAAI,EAAGroF,EAAI,KAAK,2BAA2B,IAAI,EAAE,CAAC,CAAC,EAAE,wBAAwB,CAAC,EAAGC,EACrF,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,EAAE,EAC9BA,EAAI,KAAK,2BAA2B,IAAI,EAAE,CAAC,CAAC,EAAE,wBAAwB,CAAC,EAAGA,EAAID,IAAMA,EAAIC,EAAG,EAAI,GACjG,OAAO,EAAE,CAAC,CACX,CACH,EACAyoF,IAAA,MAAMC,EAAG,CAOP,YAAY,EAAG,EAAG,EAAG,CACnB,KAAK,OAAS,EAAG/lF,EAAE,IAAI,kCAAkC,CAAC,IAAI,CAAC,EAAE,EAAG,KAAK,WAAa,IAAI,UAAU,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAG,KAAK,WAAW,UAAa,GAAM,CACxJ,MAAM5C,EAAI,EAAE,KACZ,GAAIA,EAAE,WAAW2oF,GAAG,cAAc,EAAG,CACnC,MAAM1oF,EAAID,EAAE,OAAO2oF,GAAG,eAAe,MAAM,EAC3C/lF,EAAE,IAAI,wCAAwC3C,EAAE,OAAO,EAAG,EAAE,CAAC,EAAE,EAAG,KAAK,qBAAqBA,CAAC,EAC7F,MACD,MACC2C,EAAE,IAAI,wCAAwC5C,EAAE,OAAO,EAAG,EAAE,CAAC,EAAE,EAAG,KAAK,qBAAoB,CAC9F,EAAE,KAAK,WAAW,QAAW,GAAM,CAClC4C,EAAE,IAAI,4BAA4B,EAAE,IAAI,IAAI,EAAE,MAAM,EAAE,CAC5D,CACG,CAID,OAAQ,CACN,KAAK,WAAW,OACjB,CACD,qBAAqB,EAAG,CACtB,OAAQ,EAAC,CACP,IAAK,YAAa,CAChBokF,IAAG,eAAe,KAAK,MAAM,EAAE,KAAM,GAAM,CACzC,KAAK,WAAW,KAAK,QAAQ,KAAK,UAAU,CAAC,CAAC,EAAE,CAC1D,CAAS,EACD,KACD,CACF,CACF,CACD,sBAAuB,CACtB,CACH,EACA2B,IAAG,eAAiB,KACpB,MAAMC,IAAK,IACX,IAAAC,GAAA,KAAS,CAKP,YAAY,EAAG,CACb,KAAK,MAAQ,IAAI,aAAa,CAAC,EAAG,KAAK,YAAc,CACtD,CAID,IAAI,YAAa,CACf,OAAO,KAAK,WACb,CAMD,GAAG,EAAG,CACJ,OAAO,EAAI,GAAK,GAAK,KAAK,YAAc,IAAM,KAAK,MAAM,CAAC,CAC3D,CAOD,SAAS,EAAG,EAAG,CACb,OAAO,GAAK,GAAK,EAAI,EAAI,IAAI,aAAa,CAAC,GAAK,EAAI,KAAK,cAAgB,EAAI,KAAK,aAAc,KAAK,MAAM,SAAS,EAAG,CAAC,EACzH,CAKD,KAAK,EAAG,CACN,KAAK,MAAM,KAAK,WAAW,EAAI,EAAG,KAAK,cAAe,KAAK,aAAe,KAAK,MAAM,QAAU,KAAK,YACrG,CAID,YAAa,CACX,MAAM,EAAI,KAAK,MAAM,KAAK,MAAM,OAASD,GAAE,EAAG,EAAI,IAAI,aAAa,CAAC,EACpE,EAAE,IAAI,KAAK,KAAK,EAAG,KAAK,MAAQ,CACjC,CACH,EACA,MAAME,GAAK,KAAMC,IAAK,GAAIC,IAAK,IAAKC,GAAK,YAAaC,GAAK,YAAaC,IAAK,MAAOC,GAAK,IACzF,MAAMC,EAAG,CAIP,WAAW,iBAAkB,CAC3B,MAAO,EACR,CAID,WAAW,sBAAuB,CAChC,MAAO,EACR,CAMD,YAAY,EAAG,EAAG,CAChB,KAAK,OAAS,EAAG,KAAK,oBAAsB,IAAM,CAChD,MAAM,EAAI3gF,GAAG,IAAM,KAAK,mBAAoB,EAAI,KAAK,SAAS,IAAI,OAAQ1I,EAAI,KAAK,SAAS,gBAAgB,WAC5G,IAAIC,EAAI,EACR,GAAID,EAAI,EAAG,CACT,MAAM,EAAI,KAAK,SAAS,gBAAgB,GAAGA,EAAI,CAAC,EAChDC,EAAI,EAAI,KAAK,SAAS,KAAK,GAAG,EAAIopF,GAAG,oBAAoB,EAAIA,GAAG,eACjE,CACD,GAAI,KAAK,SAAS,gBAAgB,KAAKppF,CAAC,EAAG,KAAK,SAAS,KAAK,KAAK,CAAC,EAAG,KAAK,SAAS,KAAK,KAAK,CAAC,EAAG,KAAK,SAAS,IAAI,QAAS,GAAM,CAClI,MAAM,EAAI,KAAK,YAAY,IAAI,CAAC,EAChC,GAAK,KAAK,SAAS,KAAK,KAAK,EAAE,QAAO,CAAE,CACzC,GAAG,KAAK,kBAAkB,eAAgB,CACzC,MAAM,EAAI,CAAC,EAAG,CAAC,EACf,QAAS,EAAI,EAAG,EAAI,EAAG,IACrB,EAAE,KAAK,KAAK,SAAS,KAAK,GAAGA,EAAIopF,GAAG,gBAAkB,CAAC,CAAC,EAC1D,KAAK,kBAAkB,gBAAgB,CAAC,CACzC,CACP,EAAO,KAAK,SAAW,CACjB,IAAK,CAAE,EACP,KAAM,IAAIC,GAAGR,EAAE,EACf,gBAAiB,IAAIQ,GAAGR,EAAE,CAChC,EAAO,KAAK,YAA8B,IAAI,IAAO,KAAK,aAA+B,IAAI,IAAO,KAAK,iBAAmC,IAAI,IAAO,KAAK,uBAAyB,IAAIhpF,GAAK,KAAK,kBAAoB,IAAIA,GAAK,KAAK,mBAAqB,IAAIA,GAAG,GAAM,EAAE,SAAS,KAAK,aAAc,IAAIC,GAAG,CAAC,CAAC,CAAC,EAAG,GAAK,KAAK,wBAAwB,GAAG,CAAC,CACrV,CAUD,cAAc,EAAG,EAAG,EAAG,CACrB,IAAIE,EACJ,GAAI,KAAK,YAAY,IAAI,CAAC,GAAK,CAAC,EAC9B,OACF,KAAK,YAAY,IAAI,CAAC,GAAK,KAAOA,EAAI,KAAK,YAAY,IAAI,CAAC,IAAM,MAAQA,EAAE,QAAS,EAAE,KAAK,YAAY,OAAO,CAAC,GAChH,MAAMQ,EAAK,GAAM,CACf,IAAI,EAAI,EAAG,EAAI,EACf,MAAM,EAAI,EAAE,wBAAwB,IAAI,IAAM,CAC5C,EAAI,EAAG,EAAI,CACnB,CAAO,EAAG,EAAI,KAAK,uBAAuB,IAAK,GAAM,CAC7C,IAAM,EAAE,OAAS,EAAE,QAAU,OAAS,EAAI,EAAE,MAAQ,IAC5D,CAAO,EACD,MAAO,CACL,GAAI,EACJ,QAAS,IAAM,EACf,QAAS,IAAM,CACb,EAAE,wBAAwB,OAAO,CAAC,EAAG,KAAK,uBAAuB,OAAO,CAAC,CAC1E,CACT,CACK,EAAET,EAAI,CACL,KAAM,CACZ,EACI,OAAO,KAAK,iBAAiB,IAAI,CAAC,EAAG,KAAK,wBAAwB,CAAE,iBAAkBS,EAAG,SAAU,CAAG,GAAGT,CAC1G,CAKD,UAAU,EAAG,CACX,KAAK,uBAAuB,gBAAgB,CAAC,CAC9C,CAID,sBAAuB,CACrB,KAAK,iBAAiB,OAAS,KAAK,uBAAuB,UAAU,QAAU,KAAK,iBAAiB,QAAS,GAAM,CAClH,KAAK,cAAc,EAAG,EAAE,CAC9B,CAAK,CACF,CAKD,2BAA2B,EAAG,CAC5B,OAAS,CAAE,iBAAkB,EAAG,SAAU,EAAG,OAAQ,CAAG,IAAI,EAAG,CAC7D,MAAMA,EAAI,EAAE,KAAK,MAAM,EACvB,GAAI,KAAK,YAAY,IAAIA,EAAE,EAAE,EAAG,CAC9BA,EAAE,QAAO,EACT,QACD,CACD,KAAK,SAAS,IAAI,KAAKA,EAAE,EAAE,EAAG,IAAM,EAAI,EAAE,QAAQ,IAAI,OAAOopF,GAAI,GAAG,EAAG,EAAE,GAAI,KAAK,aAAa,IAAIppF,EAAE,GAAI,CACvG,MAAO,KAAK,mBAAmBA,EAAE,EAAE,EACnC,SAAU,EACV,OAAQ,CAChB,CAAO,EAAG,KAAK,YAAY,IAAIA,EAAE,GAAIA,CAAC,CACjC,CACD,KAAK,mBAAmB,gBAAgB,KAAK,YAAY,CAC1D,CAMD,mBAAmB,EAAG,CACpB,IAAI,EAAI,EACR,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAI,EAAE,WAAW,CAAC,IAAM,GAAK,GAAK,GACpC,IAAI,EAAI,IACR,QAAS,EAAI,EAAG,EAAI+oF,IAAI,GAAK,EAAG,CAC9B,MAAM/oF,EAAI,GAAK,EAAI,IACnB,IAAMgpF,IAAKhpF,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CACrC,CACD,OAAO,CACR,CAMD,iBAAkB,CAChB,MAAM,EAAI0I,GAAG,IAAM,KAAK,mBAAoB,EAAI,KAAK,SAAS,IAAI,OAAQ,EAAI,CAAC,EAAG,CAAC,EACnF,KAAK,SAAS,IAAI,QAAS,GAAM,CAC/B,MAAM1I,EAAI,KAAK,YAAY,IAAI,CAAC,EAChCA,GAAK,KAAK,kBAAkB,aAAc,GAAI,EAAE,KAAKA,EAAE,QAAO,CAAE,CACtE,CAAK,EAAG,KAAK,kBAAkB,aAAY,GAAM,KAAK,kBAAkB,gBAAgB,CAAC,CACtF,CAOD,eAAe,EAAG,EAAG,EAAG,CACtB,MAAM,EAAI,KAAK,aAAa,IAAI,CAAC,EACjC,IAAM,EAAE,CAAC,EAAI,EAAG,KAAK,mBAAmB,gBAAgB,KAAK,YAAY,EAC1E,CAKD,MAAM,EAAG,CACP,KAAK,SAAS,KAAO,IAAIspF,GAAGR,EAAE,EAAG,KAAK,SAAS,IAAI,OAAS,EAAG,KAAK,SAAS,gBAAkB,IAAIQ,GAAGR,EAAE,EAAG,KAAK,aAAa,MAAO,EAAE,KAAK,YAAY,QAAS,GAAM,EAAE,QAAO,CAAE,EAAG,KAAK,YAAY,QAAS,GAAK,KAAK,iBAAiB,MAAK,EAAI,KAAK,eAAiB,EACzQ,CAMD,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CAQD,iBAAiB,EAAG,EAAG,CACrB,MAAM,EAAI,EAAE,QAAQK,IAAI,EAAE,EAAE,MAAM;AAAA,CACrC,EAAE,IAAK,GAAM,EAAE,MAAM,GAAG,EAAE,OAAQ,GAAM,EAAE,OAAS,CAAC,CAAC,EAAE,OAAQ,GAAM,EAAE,OAAS,CAAC,EAAG,EAAI,EAAGnpF,EAAIqpF,GAAG,qBAC/F,GAAI,EAAE,OAAS,EACb,MAAO,GACT,MAAMppF,EAAI,CACR,IAAK,CAAE,EACP,KAAM,IAAIqpF,GAAGR,EAAE,EACf,gBAAiB,IAAIQ,GAAGR,EAAE,CAC3B,EAAE,CAAC,EAAG,GAAG,CAAC,EAAI,EACf,GAAI,EAAE,OAAS,GAAK,EAAE,CAAC,IAAMG,IAAM,EAAEjpF,CAAC,IAAMkpF,GAC1C,MAAO,GACT,MAAM,EAAoB,IAAI,IAC9B,QAAS,EAAIG,GAAG,gBAAiB,EAAI,EAAE,OAAQ,IAAK,CAClD,KAAM,CAAC,EAAGxoF,CAAC,EAAI,EAAE,CAAC,EAAE,MAAMuoF,EAAE,EAC5BnpF,EAAE,IAAI,KAAK,CAAC,EAAG,EAAE,IAAI,EAAGY,CAAC,CAC1B,CACD,IAAI,EAAI,EACR,UAAW,KAAK,EAAG,CACjB,GAAI,EAAE,OAAS,EACb,MAAO,GACT,MAAM,EAAI,WAAW,EAAE,CAAC,CAAC,EAAGA,EAAI,SAAS,EAAEb,CAAC,CAAC,EAC7C,GAAI,MAAMa,CAAC,GAAK,MAAM,CAAC,IAAMZ,EAAE,KAAK,KAAK,CAAC,EAAGA,EAAE,KAAK,KAAKY,CAAC,EAAGA,EAAIwoF,GAAG,kBAAoB,EAAE,QACxF,MAAO,GACT,QAASrjF,EAAIqjF,GAAG,gBAAiBrjF,EAAI,EAAE,OAAQA,IAAK,CAClD,MAAMC,EAAI,WAAW,EAAED,CAAC,CAAC,EACzB,GAAI,MAAMC,CAAC,EACT,MAAO,GACThG,EAAE,KAAK,KAAKgG,CAAC,CACd,CACDhG,EAAE,gBAAgB,KAAK,CAAC,EAAG,GAAK,EAAE,MACnC,CACD,GAAI,KAAK,SAAS,IAAMA,EAAE,IAAK,KAAK,SAAS,KAAOA,EAAE,KAAM,KAAK,SAAS,gBAAkBA,EAAE,gBAAiB,GAAK,KAAK,aAAa,MAAK,EAAI,KAAK,YAAY,QAAS,GAAM,EAAE,QAAS,GAAG,KAAK,YAAY,MAAO,EAAE,CAAC,EACtN,UAAW,KAAK,KAAK,SAAS,IAAK,CACjC,MAAM,EAAI,EAAE,IAAI,CAAC,EACjB,KAAK,aAAa,IAAI,EAAG,CAAE,SAAU,EAAG,MAAO,KAAK,mBAAmB,CAAC,CAAG,EAC5E,CACH,OAAO,KAAK,mBAAmB,gBAAgB,KAAK,YAAY,EAAG,KAAK,eAAiB,GAAI,EAC9F,CAID,iBAAkB,CAChB,IAAI,EAAI,GACR,GAAK,GAAGgpF,EAAE,IAAIC,EAAE,GAChB,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,IAAI,OAAQ,IAC5C,GAAI,GAAK,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,GAAI,KAAK,aAAc,CACtD,MAAM,EAAI,KAAK,aAAa,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,EACpD,GAAK,MAAQ,EAAE,WAAa,GAAK,GAAGE,EAAE,GAAG,EAAE,QAAQ,GACpD,CACH,GAAK;AAAA,EAEL,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,gBAAgB,WAAY,IAAK,CACjE,MAAM,EAAI,KAAK,SAAS,gBAAgB,GAAG,CAAC,EAAGppF,EAAI,KAAK,SAAS,KAAK,GAAG,CAAC,EAAGC,EAAI,KAAK,SAAS,KAAK,GAAG,EAAIopF,GAAG,oBAAoB,EAClI,GAAK,GAAGrpF,CAAC,IAAIC,CAAC,GACd,QAAS,EAAI,EAAG,EAAIA,EAAG,IACrB,GAAK,IAAI,KAAK,SAAS,KAAK,GAAG,EAAIopF,GAAG,gBAAkB,CAAC,CAAC,GAC5D,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,IAAI,OAASppF,EAAG,IAChD,GAAK,IACP,GAAK;AAAA,CAEN,CACD,MAAM,EAAI,GAAoB,IAAI,KAAI,EAAI,YAAW,CAAE,gBACvD2N,GAAE,SAAS,IAAI,KAAK,CAAC,CAAC,EAAG,CAAE,KAAM,UAAU,CAAE,EAAG,CAAC,CAClD,CAKD,MAAM,EAAG,CACP,EAAI,KAAK,qBAAuB,SAAW,KAAK,mBAAqBlF,GAAG,MAAQ,KAAK,SAAS,KAAO,IAAI4gF,GAAGR,EAAE,EAAG,KAAK,SAAS,gBAAkB,IAAIQ,GAAGR,EAAE,EAAG,KAAK,mBAAqBpgF,GAAG,KAAM,KAAK,OAAO,wBAAwB,IAAI,KAAK,mBAAmB,EAAG,KAAK,qBAAsB,EAAE,KAAK,WAAa,EACnT,CAID,MAAO,CACL,KAAK,OAAO,wBAAwB,eAAe,KAAK,mBAAmB,EAAG,KAAK,WAAa,EACjG,CAID,IAAI,WAAY,CACd,OAAO,KAAK,UACb,CAID,SAAU,CACR,KAAK,OAAO,wBAAwB,eAAe,KAAK,mBAAmB,EAAG,KAAK,aAAa,MAAO,EAAE,KAAK,YAAY,QAAS,GAAM,CACvI,EAAE,QAAO,CACf,CAAK,EAAG,KAAK,kBAAkB,MAAK,EAAI,KAAK,mBAAmB,MAAO,EAAE,KAAK,WAAa,GAAI,KAAK,SAAW,IAC5G,CACH,CACA2P,GAAG,UAAU,iBAAmB,UAAW,CACzC,OAAO,KAAK,iBAAmB,KAAK,eAAiB,IAAIgxE,GAAG,IAAI,GAAI,KAAK,cAC3E,EACA,SAASE,IAAGlpF,EAAG,CACb,MAAM,EAAI,IAAI,MAAS,EAAI,IAAI,MAAS,EAAI,IAAI,MAAS,EAAIA,EAAE,IAAI,IAAM,CACvE,MAAM,EAAI,EAAE,OACZ,QAASuD,EAAI,EAAGA,EAAI,EAAGA,IACrBqoB,GAAG,EAAE,QAAS,EAAE,QAAS,EAAE,MAAK,CAAE,CACxC,CAAG,EACD,MAAO,CACL,UAAW,CAAC,EAAGroB,EAAGrB,IAAM,CACtB,EAAE,KAAK,CAAC,EAAG,EAAE,KAAKqB,CAAC,EAAG,EAAE,KAAKrB,CAAC,CAC/B,EACD,QAAS,IAAM,CACblC,EAAE,OAAO,CAAC,CACX,CACL,CACA,CACAP,GAAE,UAAU,kBAAoB,SAASO,EAAG,CAC1C,GAAI,CAAC,KAAK,oBAAqB,CAC7B,MAAM,EAAIkpF,IAAG,IAAI,EACjB,KAAK,oBAAsB,EAAE,UAAW,KAAK,2BAA6B,EAAE,OAC7E,CACD,OAAOl9D,GAAGhsB,EAAG,KAAK,mBAAmB,CACvC,EACAP,GAAE,UAAU,oBAAsB,UAAW,CAC3C,KAAK,4BAA8B,KAAK,2BAA4B,EAAE,KAAK,oBAAsB,OAAQ,KAAK,2BAA6B,MAC7I,EACA,MAAM0pF,IAAK,qCAAsCC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8DAStDjmF,GAAE,aAAagmF,GAAE,EAAIC,IAClB,IAACC,IACH,SAASrpF,EAAG,CACXA,EAAEA,EAAE,YAAc,CAAC,EAAI,cAAeA,EAAEA,EAAE,WAAa,CAAC,EAAI,aAAcA,EAAEA,EAAE,MAAQ,CAAC,EAAI,QAASA,EAAEA,EAAE,UAAY,CAAC,EAAI,WAC3H,GAAGqpF,KAAOA,GAAK,CAAE,EAAC,EACf,IAACC,IACH,SAAStpF,EAAG,CACXA,EAAEA,EAAE,aAAe,CAAC,EAAI,eAAgBA,EAAEA,EAAE,cAAgB,CAAC,EAAI,gBAAiBA,EAAEA,EAAE,SAAW,CAAC,EAAI,UACxG,GAAGspF,KAAOA,GAAK,CAAE,EAAC,SAClB,MAAMC,WAAWl/B,EAAG,CAMlB,YAAY,EAAG,EAAI,GAAI,CACrB,MAAM,CAAC,EAAG,KAAK,QAAU,EAAG,KAAK,WAAa,IAAIl7C,EAAE,EAAG,EAAG,EAAE,EAAG,KAAK,KAAO,IAAII,EAAK,KAAK,iBAAmB,GAAI,KAAK,QAAU,IAAIJ,EAAE,EAAG,EAAG,CAAC,EAAG,KAAK,uBAAyB,GAAI,KAAK,0BAA4B,IAAI1P,GAAK,KAAK,kBAAqB,GAAM,CACzP,MAAM,EAAI,EAAE,IAAKE,GAAM,CACrB,MAAMC,EAAI2P,EAAE,UAAU5P,EAAE,SAAS,EACjC,OAAO,KAAK,kBAAkB,MAAM,sBAAwBC,EAAE,6BAA8B,EAAE,KAAK,QAAQ,iBAAmBA,EAAE,cAAc,KAAK,QAAQ,gBAAgB,eAAc,EAAIA,CAAC,EAAG,CAC/L,YAAaD,EACb,qBAAsBC,CAChC,CACA,CAAO,EACD,KAAK,uBAAyB,EAAG,KAAK,0BAA0B,gBAAgB,CAAC,CACvF,EAAO,KAAK,UAAa,GAAM,CACzB,KAAK,kBAAoB2pF,GAAG,yBAAyB,EAAG,KAAK,kBAAkB,cAAc,CACnG,EAAO,KAAK,oBAAsB,WAAYh8E,GAAE,KAAK,6CAA6C,CAC/F,CAUD,OAAO,iBAAiB,EAAG,EAAG,EAAG,EAAG,CAClC,OAAO,EAAE,eAAe,EAAG,CAAC,EAAE,KAAM5N,GAAM,CACxC,MAAMC,EAAI,IAAO,GAAM,CAAC,CAAC,EAAE,WAC3B,OAAOD,EAAE,OAAOC,CAAC,CACvB,CAAK,CACF,CAOD,OAAO,yBAAyB,EAAG,EAAG,CACpC,MAAM,EAAI,EAAE,MAAM,QAAQ,EAAE,YAAY,eAAgB,CAAC,EACzD,GAAI,CAAC,EACH,OAAO,QAAQ,QAAQ,EAAE,EAC3B,MAAM,EAAI,IAAI,MAAM,EAAE,SAAS,EAC/B,OAAO,KAAK,iBAAiB,EAAE,MAAM,QAAS,EAAG,CAAC,CACnD,CAOD,QAAS,CACP,OAAO,MAAM,UAAY,KAAK,QAAQ,uBAAyB,KAAK,kBAAkB,QAAQ,iBAAiB,SAAU,KAAK,UAAW,EAAE,EAAG,IAAM,EACrJ,CAOD,QAAS,CACP,OAAO,MAAM,UAAY,KAAK,iBAAmB,GAAI,KAAK,kBAAkB,QAAQ,oBAAoB,SAAU,KAAK,SAAS,EAAG,IAAM,EAC1I,CAID,SAAU,CACR,MAAM,QAAS,EAAE,KAAK,0BAA0B,MAAK,CACtD,CACD,WAAW,EAAG,CACZ,GAAI,CAAC,KAAK,UAAY,KAAK,QAAQ,sBACjC,OACF,MAAM,EAAI,EAAE,cAAc,KAAK,kBAAkB,cAAc,EAC/D,GAAI,CAAC,EACH,OACF2P,EAAE,eAAe,EAAE,UAAU,OAAQ,EAAG,KAAK,IAAI,EAAGJ,EAAE,oCAAoC,EAAG,EAAG,EAAG,KAAK,KAAM,KAAK,OAAO,EAAGA,EAAE,oCAAoC,EAAG,EAAG,GAAI,KAAK,KAAM,KAAK,UAAU,EAAG,KAAK,WAAW,gBAAgB,KAAK,OAAO,EAAG,KAAK,WAAW,YACzQ,MAAM,EAAI,IAAI,MAAM,CAAE,EAAG,KAAK,QAAQ,EAAG,EAAG,KAAK,QAAQ,EAAG,EAAG,KAAK,QAAQ,EAAG,EAAG,CAAC,EAAI,CAAE,EAAG,KAAK,WAAW,EAAG,EAAG,KAAK,WAAW,EAAG,EAAG,KAAK,WAAW,EAAG,EAAG,CAAC,CAAE,EACjKo6E,GAAG,iBAAiB,KAAK,kBAAkB,QAAS,EAAG,KAAK,kBAAkB,cAAc,EAAE,KAAK,KAAK,iBAAiB,CAC1H,CACH,EACAA,GAAG,KAAOvyD,GAAG,SACbuyD,GAAG,QAAU,EACbryD,GAAG,gBAAgBqyD,GAAG,KAAM,CAACvpF,EAAG,IAAM,IAAM,IAAIupF,GAAGvpF,EAAG,CAAC,EAAGupF,GAAG,QAAS,EAAE,EACxE,IAAIC,IAAK,KACT,cAAiBn/B,EAAG,CAKlB,IAAI,8BAA8B,EAAG,CACnC,KAAK,+BAAiC,CACvC,CAMD,YAAY,EAAG,EAAI,GAAI,CACrB,MAAM,CAAC,EAAG,KAAK,SAAW,EAAG,KAAK,mBAAqC,IAAI,IAAO,KAAK,gBAAkB,CAAE,EAAE,KAAK,eAAiB,GAAI,KAAK,wBAA0B,IAAI5qD,GAAK,KAAK,0BAA4B,IAAIA,GAAK,KAAK,0BAA4B,IAAIA,GAAK,KAAK,WAAa,IAAI0P,EAAK,KAAK,eAAiB,IAAIC,GAAM,KAAK,oBAAsB,SAC1V,CACD,2BAA2B,EAAG,EAAG,CAC/B,OAAO,KAAK,WAAW,SAAS,CAAC,EAAG,KAAK,eAAe,SAAS,CAAC,EAAG,KAAK,kBAAkB,MAAM,uBAAyB,KAAK,WAAW,GAAK,GAAI,KAAK,eAAe,GAAK,GAAI,KAAK,eAAe,GAAK,IAAK,CAC7M,SAAU,KAAK,WACf,mBAAoB,KAAK,cAC/B,CACG,CAWD,MAAM,sCAAsC,EAAG,EAAI,IAAID,EAAK,EAAI,IAAIC,GAAM,CACxE,KAAK,2BAA2B,EAAG,CAAC,EACpC,MAAM,EAAI,IAAI,iBAAiB,CAAE,EAAG,KAAK,WAAW,EAAG,EAAG,KAAK,WAAW,EAAG,EAAG,KAAK,WAAW,GAAK,CAAE,EAAG,KAAK,eAAe,EAAG,EAAG,KAAK,eAAe,EAAG,EAAG,KAAK,eAAe,EAAG,EAAG,KAAK,eAAe,CAAC,CAAE,EAC/M,GAAI,EAAE,YAAY,aAChB,GAAI,CACF,MAAMzP,EAAI,MAAM,EAAE,YAAY,aAAa,CAAC,EAC5C,OAAO,IAAI,QAAQ,CAACC,EAAG,IAAM,CAC3B,KAAK,eAAe,KAAK,CACvB,aAAcD,EACd,SAAU,GACV,UAAW,GACX,iBAAkB,EAClB,QAASC,EACT,OAAQ,CACpB,CAAW,CACX,CAAS,CACF,OAAQD,EAAG,CACV,MAAM,IAAI,MAAMA,CAAC,CAClB,KAED,OAAM,KAAK,OAAM,EAAI,IAAI,MAAM,iDAAiD,CACnF,CAaD,MAAM,oCAAoC,EAAG,EAAI,IAAIyP,GAAM,EAAI,GAAI,CACjE,KAAK,2BAA2B,EAAG,CAAC,EACpC,MAAM,EAAI,IAAI,iBAAiB,CAAE,EAAG,KAAK,WAAW,EAAG,EAAG,KAAK,WAAW,EAAG,EAAG,KAAK,WAAW,CAAG,EAAE,CAAE,EAAG,KAAK,eAAe,EAAG,EAAG,KAAK,eAAe,EAAG,EAAG,KAAK,eAAe,EAAG,EAAG,KAAK,eAAe,CAAG,GAAGzP,EAAI,GAAK,KAAK,UAAY,KAAK,kBAAkB,aAAe,MAAM,KAAK,8BAA8B,EAAG,KAAK,kBAAkB,YAAY,EAAI,OACrW,OAAO,IAAI,QAAQ,CAACC,EAAG,IAAM,CAC3B,KAAK,eAAe,KAAK,CACvB,aAAcD,EACd,SAAU,GACV,UAAW,GACX,iBAAkB,EAClB,QAASC,EACT,OAAQ,CAChB,CAAO,CACP,CAAK,CACF,CAID,IAAI,SAAU,CACZ,OAAO,KAAK,eACb,CAOD,QAAS,CACP,GAAI,CAAC,MAAM,OAAQ,EACjB,MAAO,GACT,GAAI,CAAC,KAAK,SAAS,iCACjB,KAAO,KAAK,gBAAgB,QAAU,CACpC,MAAM,EAAI,KAAK,gBAAgB,IAAG,EAClC,GAAI,EAAG,CACL,GAAI,CACF,EAAE,OAAM,CACpB,MAAkB,CACP,CACD,KAAK,0BAA0B,gBAAgB,CAAC,CACjD,CACF,CACH,MAAO,EACR,CAID,SAAU,CACR,KAAK,eAAe,OAAS,EAAG,MAAM,QAAS,EAAE,KAAK,wBAAwB,MAAO,EAAE,KAAK,0BAA0B,MAAO,EAAE,KAAK,0BAA0B,OAC/J,CACD,WAAW,EAAG,CACZ,GAAI,CAAC,KAAK,UAAY,CAAC,EACrB,OACF,MAAM,EAAI,EAAE,eACZ,GAAI,EAAG,CACL,MAAM,EAAI,KAAK,gBAAgB,OAAQD,GAAM,CAAC,EAAE,IAAIA,EAAE,QAAQ,CAAC,EAAE,IAAKA,GAAM,KAAK,gBAAgB,QAAQA,CAAC,CAAC,EAC3G,IAAI,EAAI,EACR,EAAE,QAASA,GAAM,CACf,MAAMC,EAAI,KAAK,gBAAgB,OAAOD,EAAI,EAAG,CAAC,EAAE,CAAC,EACjD,KAAK,0BAA0B,gBAAgBC,CAAC,EAAG,GACpD,GAAG,EAAE,QAASD,GAAM,CACnB,GAAI,KAAK,mBAAmB,IAAIA,CAAC,EAAG,CAClC,MAAMC,EAAI,KAAK,wBAAwBD,CAAC,EAAG,EAAI,KAAK,gBAAgBC,CAAC,EACrE,GAAI,CACF,KAAK,yBAAyBD,EAAG,EAAG,CAAC,EAAG,EAAE,eAAiB,EAAE,aAAa,mBAAqB,EAAE,aAAa,oBAAsB,IAAIyP,GAAM,EAAE,qBAAqB,UAAU,EAAE,aAAa,QAAS,EAAE,aAAa,mBAAoB,EAAE,aAAa,QAAQ,GAAI,KAAK,0BAA0B,gBAAgB,CAAC,CACjU,MAAkB,CACN7B,GAAE,KAAK,6BAA6B,CACrC,CACX,KAAe,CACL,MAAM3N,EAAI,CACR,GAAI4pF,MACJ,SAAU7pF,EACV,OAAQ,IAAMA,EAAE,OAAQ,CACpC,EAAa,EAAI,KAAK,yBAAyBA,EAAGC,EAAG,CAAC,EAC5C,KAAK,gBAAgB,KAAK,CAAC,EAAG,KAAK,wBAAwB,gBAAgB,CAAC,EAC5E,MAAMqC,EAAI,KAAK,eAAe,OAAQ4G,GAAMA,EAAE,eAAiBlJ,CAAC,EAAE,CAAC,EACnEsC,IAAMA,EAAE,QAAQ,CAAC,EAAGA,EAAE,SAAW,GAClC,CACT,CAAO,EAAG,KAAK,mBAAqB,CAC/B,CACD,KAAK,eAAe,QAAS,GAAM,CACjC,CAAC,EAAE,UAAY,CAAC,EAAE,YAAc,KAAK,8BAA8B,EAAE,iBAAkB,CAAC,EAAE,KAAM,GAAM,CACpG,EAAE,aAAe,CAClB,EAAG,GAAM,CACR,EAAE,SAAW,GAAI,EAAE,OAAO,CAAC,CAC5B,GAAG,EAAE,UAAY,GACxB,CAAK,CACF,CAMD,wBAAwB,EAAG,CACzB,QAAS,EAAI,EAAG,EAAI,KAAK,gBAAgB,OAAQ,EAAE,EACjD,GAAI,KAAK,gBAAgB,CAAC,EAAE,WAAa,EACvC,OAAO,EACX,MAAO,EACR,CACD,yBAAyB,EAAG,EAAG,EAAG,CAChC,MAAM,EAAI,EAAE,QAAQ,EAAE,YAAa,KAAK,kBAAkB,cAAc,EACxE,GAAI,EAAG,CACL,MAAMtC,EAAI,EAAE,sBAAwB,IAAI4P,EACxCA,EAAE,eAAe,EAAE,UAAU,OAAQ,EAAG5P,CAAC,EAAG,KAAK,kBAAkB,MAAM,sBAAwBA,EAAE,6BAA4B,EAAI,EAAE,qBAAuBA,EAAG,KAAK,SAAS,iBAAmBA,EAAE,cAAc,KAAK,SAAS,gBAAgB,eAAgB,EAAEA,CAAC,CAClQ,CACD,OAAO,CACR,CACD,MAAM,8BAA8B,EAAG,EAAG,CACxC,GAAI,EAAE,aACJ,GAAI,CACF,OAAO,EAAE,aAAa,EAAG,KAAK,gCAAkC,KAAK,kBAAkB,cAAc,CACtG,OAAQ,EAAG,CACV,MAAM,IAAI,MAAM,CAAC,CAClB,KAED,OAAM,KAAK,OAAM,EAAI,IAAI,MAAM,yCAAyC,CAC3E,CACH,EACA8pF,GAAG,KAAOzyD,GAAG,cACbyyD,GAAG,QAAU,EACbvyD,GAAG,gBAAgBuyD,GAAG,KAAM,CAACzpF,EAAG,IAAM,IAAM,IAAIypF,GAAGzpF,EAAG,CAAC,EAAGypF,GAAG,OAAO,EACpE,IAAIC,IAAK,KACT,cAAiBr/B,EAAG,CAMlB,YAAY,EAAG,EAAI,GAAI,CACrB,MAAM,CAAC,EAAG,KAAK,SAAW,EAAG,KAAK,gBAAkB,GAAI,KAAK,SAAW,GAAI,KAAK,mBAAqC,IAAI,IAAO,KAAK,uBAAyB,IAAI5qD,GAAK,KAAK,yBAA2B,IAAIA,GAAK,KAAK,yBAA2B,IAAIA,GAAK,KAAK,oBAAsB,kBAAmB,KAAK,kBAAkB,QAAU,KAAK,MAAK,EAAK,KAAK,kBAAkB,gBAAgB,QAAQ,IAAM,CAC3Y,KAAK,MAAK,CAChB,CAAK,CACF,CAOD,QAAS,CACP,GAAI,CAAC,MAAM,OAAQ,EACjB,MAAO,GACT,GAAI,CAAC,KAAK,SAAS,gCACjB,KAAO,KAAK,gBAAgB,QAAU,CACpC,MAAM,EAAI,KAAK,gBAAgB,IAAG,EAClC,GAAK,KAAK,yBAAyB,gBAAgB,CAAC,CACrD,CACH,MAAO,EACR,CAID,SAAU,CACR,MAAM,QAAS,EAAE,KAAK,uBAAuB,MAAO,EAAE,KAAK,yBAAyB,MAAO,EAAE,KAAK,yBAAyB,MAAK,CACjI,CAMD,cAAe,CACb,OAAO,OAAO,QAAU,GACzB,CAQD,MAAM,qBAAsB,CAC1B,OAAO,KAAK,kBAAkB,QAAQ,oBAAsB,KAAK,kBAAkB,QAAQ,oBAAmB,EAAK,QAAQ,OAAO,sDAAsD,CACzL,CACD,WAAW,EAAG,CACZ,IAAIU,EACJ,GAAI,CAAC,KAAK,UAAY,CAAC,KAAK,UAAY,CAAC,EACvC,OACF,MAAMyE,EAAI,EAAE,kBAAoBzE,EAAI,EAAE,mBAAqB,KAAO,OAASA,EAAE,gBAC7E,GAAIyE,EAAG,CACL,QAAS,EAAI,EAAG,EAAI,KAAK,gBAAgB,OAAQ,IAAK,CACpD,MAAMjF,EAAI,KAAK,gBAAgB,CAAC,EAChCiF,EAAE,IAAIjF,EAAE,OAAO,IAAM,KAAK,gBAAgB,OAAO,IAAK,CAAC,EAAG,KAAK,yBAAyB,gBAAgBA,CAAC,EAC1G,CACDiF,EAAE,QAAS,GAAM,CACf,GAAI,KAAK,mBAAmB,IAAI,CAAC,GAC/B,GAAI,EAAE,kBAAoB,KAAK,kBAAkB,iBAAkB,CACjE,MAAMjF,EAAI,KAAK,uBAAuB,CAAC,EAAGC,EAAI,KAAK,gBAAgBD,CAAC,EACpE,KAAK,wBAAwB,EAAGC,EAAG,CAAC,EAAG,KAAK,yBAAyB,gBAAgBA,CAAC,CACvF,MACI,CACL,MAAMD,EAAI,CACR,GAAI+pF,MACJ,QAAS,EACT,kBAAmB,CAAE,CACjC,EAAa9pF,EAAI,KAAK,wBAAwB,EAAGD,EAAG,CAAC,EAC3C,KAAK,gBAAgB,KAAKC,CAAC,EAAG,KAAK,uBAAuB,gBAAgBA,CAAC,CAC5E,CACT,CAAO,EAAG,KAAK,mBAAqBgF,CAC/B,CACF,CACD,OAAQ,CACN,MAAM,EAAI,IAAM,CACd,KAAK,SAAW,GAAI,KAAK,gBAAgB,SAAW,KAAK,gBAAgB,OAAS,EACxF,EACI,GAAI,KAAK,kBAAkB,UAAY,KAAK,SAAS,0BAA4B,KAAK,kBAAkB,QAAQ,qCAAuC,KAAK,kBAAkB,QAAQ,oCAAoC,KAAK,SAAS,wBAAwB,EAAG,CAAC,KAAK,kBAAkB,QAAQ,yBAA0B,CAC3T,IACA,MACD,CACD,KAAK,kBAAkB,QAAQ,yBAAyB,CAAE,oBAAqB,CAAE,QAAS,EAAE,EAAI,EAAG,EAAC,CACrG,CACD,wBAAwB,EAAG,EAAG,EAAG,CAC/B,EAAE,kBAAoB,EAAE,QAAQ,IAAKjF,GAAM,CACzC,MAAMC,EAAI,KAAK,kBAAkB,MAAM,qBAAuB,EAAI,GAClE,OAAO,IAAIuP,EAAExP,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAIC,CAAC,CACpC,CAAK,EACD,MAAM,EAAI,EAAE,QAAQ,EAAE,WAAY,KAAK,kBAAkB,cAAc,EACvE,GAAI,EAAG,CACL,MAAMD,EAAI,EAAE,sBAAwB,IAAI4P,EACxCA,EAAE,eAAe,EAAE,UAAU,OAAQ,EAAG5P,CAAC,EAAG,KAAK,kBAAkB,MAAM,sBAAwBA,EAAE,6BAA4B,EAAI,EAAE,qBAAuBA,EAAG,KAAK,SAAS,iBAAmBA,EAAE,cAAc,KAAK,SAAS,gBAAgB,eAAgB,EAAEA,CAAC,CAClQ,CACD,OAAO,CACR,CAMD,uBAAuB,EAAG,CACxB,QAAS,EAAI,EAAG,EAAI,KAAK,gBAAgB,OAAQ,EAAE,EACjD,GAAI,KAAK,gBAAgB,CAAC,EAAE,UAAY,EACtC,OAAO,EACX,MAAO,EACR,CACH,EACAgqF,GAAG,KAAO3yD,GAAG,gBACb2yD,GAAG,QAAU,EACbzyD,GAAG,gBAAgByyD,GAAG,KAAM,CAAC3pF,EAAG,IAAM,IAAM,IAAI2pF,GAAG3pF,EAAG,CAAC,EAAG2pF,GAAG,OAAO,SACpE,cAAiBt/B,EAAG,CAMlB,YAAY,EAAG,EAAI,GAAI,CACrB,MAAM,CAAC,EAAG,KAAK,QAAU,EAAG,KAAK,mCAAqC,IAAI5qD,EAC3E,CAOD,QAAS,CACP,OAAO,KAAK,oBAAoB,EAAE,EAAG,MAAM,QAC5C,CAOD,QAAS,CACP,OAAO,KAAK,oBAAoB,EAAE,EAAG,MAAM,QAC5C,CAID,SAAU,CACR,MAAM,QAAS,EAAE,KAAK,mCAAmC,MAAK,CAC/D,CACD,WAAW,EAAG,CACb,CACD,oBAAoB,EAAG,CACrB,MAAM,EAAI,KAAK,kBAAkB,MACjC,GAAI,CAAC,KAAK,QAAQ,wBAChB,GAAI,KAAK,QAAQ,8BAA+B,CAC9C,GAAI,KAAK,QAAQ,8BAA8B,OAAQ,CACrD,MAAM,EAAI,EAAE,cAAc,kBAAkB,EAC5C,GAAK,EAAE,WAAW,CAAC,CACpB,CACD,GAAI,KAAK,QAAQ,8BAA8B,OAAQ,CACrD,MAAM,EAAI,EAAE,cAAc,iBAAiB,EAC3C,GAAK,EAAE,WAAW,CAAC,CACpB,CACT,KAAa,CACL,MAAM,EAAI,EAAE,cAAc,kBAAkB,EAC5C,GAAK,EAAE,WAAW,CAAC,CACpB,CACH,KAAK,QAAQ,kBAAoB,KAAK,QAAQ,iBAAiB,QAAS,GAAM,EAAE,WAAW,CAAC,CAAC,EAAG,KAAK,mCAAmC,gBAAgB,CAAC,CAC1J,CACH,EACAmqF,GAAG,KAAO5yD,GAAG,mBACb4yD,GAAG,QAAU,EACb1yD,GAAG,gBAAgB0yD,GAAG,KAAM,CAAC5pF,EAAG,IAAM,IAAM,IAAI4pF,GAAG5pF,EAAG,CAAC,EAAG4pF,GAAG,QAAS,EAAE,EACxE,IAAAC,IAAA,KAAS,CACT,KACA,cAAiBx/B,EAAG,CAClB,uBAAuB,EAAG,CACxB,MAAM,EAAI,KAAK,SAAS,kBAAkB,cAAgBhR,GAAG,eAAgB,EAAI,KAAK,SAAS,kBAAkB,cAAgB,GAAK,EAAIxb,GAAG,iBAAmB,EAAE,SAAU,CAC1K,UAAW,OAAO,GAAK,SAAW,EAAI,EAAE,MACxC,UAAW,OAAO,GAAK,SAAW,EAAI,EAAE,OACxC,UAAW,OAAO,GAAK,SAAW,EAAI,EAAE,KAC9C,CAAK,EACD,EAAE,UAAY,KAAK,WAAY,EAAE,WAAa,GAAI,EAAE,mBAAqB,IAAIzuB,GAC7E,MAAMzP,EAAI,EAAE,MAAQ,EAAE,QACtB,EAAE,SAAS,SAASA,EAAE,QAAQ,EAAG,EAAE,mBAAmB,SAASA,EAAE,kBAAkB,EACnF,MAAMC,EAAI,IAAIy5C,GAAG,EAAG,EAAG,CACrB,KAAM,EACN,GAAG,KAAK,SAAS,iBACvB,CAAK,EACD,KAAK,aAAa,EAAE,QAAQ,EAAI,CAC9B,aAAc,EACd,SAAUz5C,EACV,aAAc,CACpB,CACG,CAMD,YAAY,EAAG,EAAG,CAChB,MAAM,CAAC,EAAG,KAAK,SAAW,EAAG,KAAK,kBAAqB,GAAM,CAC3D,KAAK,aAAa,EAAE,QAAQ,IAAM,KAAK,kBAAkB,MAAM,oBAAsB2C,EAAE,KAAK,2EAA2E,EAAG,KAAK,SAAS,kBAAkB,mBAAqB,EAAE,YAAY,QAAU,EAAE,iCAAiC,QAAS,GAAM,CACvS,EAAE,yBAA2B,KAAK,uBAAuB,CAAC,EAAI,EAAE,wBAAwB,QAAQ,IAAM,CACpG,MAAM5C,EAAI,IAAI05C,GAAG,EAAE,SAAUA,GAAG,aAAc,CAC5C,KAAM,EACN,GAAG,KAAK,SAAS,iBAClB,GAAGz5C,EAAI,EAAE,MAAQ,EAAE,QACpB,KAAK,aAAa,EAAE,QAAQ,EAAI,CAC9B,aAAc,EACd,SAAUD,EACV,OAAQC,EAAE,SAAS,MAAO,EAC1B,YAAaA,EAAE,mBAAmB,MAAO,CACrD,CACA,CAAS,CACF,GAAI,KAAK,uBAAuB,CAAC,EACnC,EAAE,KAAK,aAAe,CAAE,EAAE,KAAK,WAAa,GAAI,KAAK,OAAS,EAAG,KAAK,eAAiB,EAAG,KAAK,eAAiB,IAAIwP,GAAM,KAAK,WAAa,IAAID,EAAK,KAAK,SAAS,oBAAsB,KAAK,SAAS,kBAAoB,CAAE,EAC/N,CAKD,qBAAsB,CACpB,KAAK,WAAa,GAAI,OAAO,KAAK,KAAK,YAAY,EAAE,QAAS,GAAM,CAClE,MAAM,EAAI,KAAK,aAAa,CAAC,EAC7B,EAAE,eAAiB,EAAE,aAAa,UAAY,GACpD,CAAK,CACF,CAKD,cAAc,EAAG,CACf,KAAK,kBAAkB,CAAC,CACzB,CAOD,QAAS,CACP,GAAI,CAAC,MAAM,OAAQ,EACjB,MAAO,GACT,GAAI,CAAC,KAAK,SAAS,QACjB,MAAO,GACT,GAAI,KAAK,SAAS,QAAQ,YAAY,QAAQ,KAAK,iBAAiB,EAAG,KAAK,sBAAsB,KAAK,SAAS,QAAQ,4BAA6B,KAAK,iBAAiB,EAAG,KAAK,sBAAsB,KAAK,SAAS,QAAQ,8BAAgC,GAAM,CACnQ,KAAK,kBAAkB,EAAE,QAAQ,CACvC,CAAK,EAAG,KAAK,SAAS,sBAAuB,CACvC,MAAM,EAAI,KAAK,SAAS,uBAAyB,CAC/C,aAAckqC,GAAG,eACjB,YAAa,GACb,aAAc,EACf,EAAE,EAAI,EAAE,cAAgB,GACzB,KAAK,aAAexb,GAAG,eAAgB,CACrC,UAAW,OAAO,GAAK,SAAW,EAAI,EAAE,MACxC,UAAW,OAAO,GAAK,SAAW,EAAI,EAAE,OACxC,UAAW,OAAO,GAAK,SAAW,EAAI,EAAE,KACzC,GAAG,KAAK,aAAa,mBAAqB,IAAIzuB,GAAM,KAAK,aAAa,UAAY,GAAI,KAAK,iBAAmB,IAAIiqC,GAAG,KAAK,aAAc,EAAE,aAAc,CAAE,KAAM,EAAG,GAAG,CAAG,EAC3K,CACD,MAAO,EACR,CAOD,QAAS,CACP,OAAO,MAAM,OAAQ,GAAI,OAAO,KAAK,KAAK,YAAY,EAAE,QAAS,GAAM,CACrE,KAAK,kBAAkB,CAAC,CAC9B,CAAK,EAAG,KAAK,cAAgB,KAAK,aAAa,UAAW,IAAM,EAC7D,CAKD,oBAAqB,CACnB,OAAO,KAAK,gBACb,CAOD,yBAAyB,EAAG,CAC1B,MAAM,EAAI,OAAO,GAAK,SAAW,EAAI,EAAE,SACvC,OAAO,KAAK,aAAa,CAAC,EAAI,KAAK,aAAa,CAAC,EAAE,SAAW,IAC/D,CASD,qBAAqB,EAAG,CACtB,KAAK,SAAS,kBAAoB,CAChC,GAAG,KAAK,SAAS,kBACjB,GAAG,CACT,CACG,CACD,WAAW,EAAG,CACZ,IAAI,EAAG,EACP,GAAI,KAAK,OAAS,KAAK,kBAAkB,iBAAmB,KAAK,eAAgB,KAAK,eAAiB,KAAK,kBAAkB,iBAAkB,KAAK,cAAgB,KAAK,iBAAkB,CAC1L,GAAI,KAAK,aAAa,SAAS,SAAS,KAAK,SAAS,QAAQ,SAAS,cAAc,EAAG,KAAK,aAAa,mBAAmB,SAAS,KAAK,SAAS,QAAQ,SAAS,gBAAgB,GAAI,EAAI,KAAK,SAAS,QAAQ,SAAS,oBAAsB,MAAQ,EAAE,eAAgB,CAC1Q,MAAM,EAAI,KAAK,SAAS,QAAQ,SAAS,kBAAkB,eAC3D,KAAK,WAAW,IAAI,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG,KAAK,iBAAiB,kBAAkB,KAAK,UAAU,CAC5F,CACD,IAAK,EAAI,KAAK,SAAS,QAAQ,SAAS,oBAAsB,MAAQ,EAAE,gBAAiB,CACvF,MAAM,EAAI,KAAK,SAAS,QAAQ,SAAS,kBAAkB,gBAC3D,KAAK,WAAW,IAAI,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG,KAAK,iBAAiB,mBAAmB,KAAK,UAAU,CAC7F,CACF,CACD,OAAO,KAAK,KAAK,YAAY,EAAE,QAAS,GAAM,CAC5C,IAAIp3C,EAAG4G,EACP,MAAMlJ,EAAI,KAAK,aAAa,CAAC,EAAGC,EAAID,EAAE,aAAa,MAAQA,EAAE,aAAa,QAAS4D,EAAI5D,EAAE,QAAUA,EAAE,aAAa,SAClH,IAAKsC,EAAItC,EAAE,aAAa,cAAgB,MAAQsC,EAAE,eAAgB,CAChE,MAAM,EAAItC,EAAE,aAAa,YAAY,eACrC,KAAK,WAAW,IAAI,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAGA,EAAE,SAAS,kBAAkB,KAAK,UAAU,CACjF,MACCC,EAAE,SAAS,cAAc2D,EAAG,KAAK,UAAU,EAAG,KAAK,WAAW,aAAa,IAAM,KAAK,MAAM,EAAG5D,EAAE,SAAS,kBAAkB,KAAK,UAAU,EAC7I4D,EAAE,SAAS3D,EAAE,QAAQ,EAAG,KAAK,YAAc2C,EAAE,IAAI,CAAC,KAAK,WAAY,QAAQ,CAAC,EAC5E,MAAML,EAAIvC,EAAE,aAAeA,EAAE,aAAa,mBAC1C,IAAKkJ,EAAIlJ,EAAE,aAAa,cAAgB,MAAQkJ,EAAE,gBAAiB,CACjE,MAAM,EAAIlJ,EAAE,aAAa,YAAY,gBACrC,KAAK,WAAW,IAAI,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAGA,EAAE,SAAS,mBAAmB,KAAK,UAAU,CAClF,SAAU,CAACuC,EAAE,kBAAkBtC,EAAE,kBAAkB,EAAG,CACrDsC,EAAE,iBAAgB,EAAG,cAActC,EAAE,mBAAoB,KAAK,cAAc,EAC5E,MAAM,EAAI,KAAK,KAAK,KAAK,eAAe,EAAI,KAAK,eAAe,EAAI,KAAK,eAAe,EAAI,KAAK,eAAe,EAAI,KAAK,eAAe,EAAI,KAAK,eAAe,CAAC,EACjK,GAAI,KAAK,WAAW,IAAI,KAAK,eAAe,EAAG,KAAK,eAAe,EAAG,KAAK,eAAe,CAAC,EAAG,EAAI,KAChG,KAAK,WAAW,aAAa,CAAC,MAC3B,CACH,MAAM,EAAI,EAAI,KAAK,MAAM,EAAG,KAAK,eAAe,CAAC,EACjD,KAAK,WAAW,aAAa,GAAK,GAAK,KAAK,OAAS,KAAK,CAC3D,CACDD,EAAE,SAAS,mBAAmB,KAAK,UAAU,CAC9C,CACDuC,EAAE,SAAStC,EAAE,kBAAkB,EAAG,KAAK,YAAc2C,EAAE,IAAI,CAAC,KAAK,WAAY,KAAK,eAAgB,SAAS,CAAC,CAClH,CAAK,CACF,CACD,kBAAkB,EAAG,CACnB,MAAM,EAAI,KAAK,aAAa,CAAC,EAC7B,IAAM,EAAE,cAAgB,EAAE,aAAa,QAAS,EAAE,OAAO,KAAK,aAAa,CAAC,EAC7E,CACH,EACAunF,GAAG,KAAO9yD,GAAG,oBACb8yD,GAAG,QAAU,EACb5yD,GAAG,gBAAgB4yD,GAAG,KAAM,CAAC9pF,EAAG,IAAM,IAAM,IAAI8pF,GAAG9pF,EAAG,CAAC,EAAG8pF,GAAG,QAAS,EAAE,SACxE,cAAiBz/B,EAAG,CAMlB,YAAY,EAAG,EAAI,GAAI,CACrB,MAAM,CAAC,EAAG,KAAK,QAAU,EAAG,KAAK,QAAU,IAAI96C,EAAK,KAAK,QAAU,IAAIJ,EAAK,KAAK,SAAW,IAAIC,GAAM,KAAK,mBAAsB,GAAM,CACrI,GAAI,CAAC,EACH,OACF,MAAM,EAAI,IAAI,MAAM,KAAK,QAAQ,WAAa,EAAE,EAAGzP,EAAI,CACrD,MAAO,KAAK,QAAQ,kBAAoB,EAAI,KAAK,kBAAkB,qBACnE,UAAW,CACnB,EACM,GAAI,KAAK,QAAQ,cAAgBA,EAAE,YAAc,KAAK,QAAQ,aAAc,CAACA,EAAE,MAAO,CACpF4N,GAAE,KAAK,kDAAkD,EACzD,MACD,CACD,KAAK,kBAAkB,QAAQ,qBAAqB5N,CAAC,EAAE,KAAMC,GAAM,CACjE,KAAK,kBAAoB,KAAK,iBAAiB,OAAM,EAAI,KAAK,iBAAmBA,CACzF,CAAO,CACP,EAAO,KAAK,wBAA0B,GAAI,KAAK,0BAA4B,IAAIH,GAAK,KAAK,OAAS,GAAI,KAAK,oBAAsB,WAAY8N,GAAE,KAAK,mDAAmD,CACpM,CAOD,QAAS,CACP,GAAI,CAAC,MAAM,OAAQ,GAAI,CAAC,KAAK,kBAAkB,QAAQ,qBACrD,MAAO,GACT,GAAI,KAAK,QAAQ,0BAA4B,KAAK,kBAAkB,gBAAkB,KAAK,mBAAmB,KAAK,kBAAkB,cAAc,EAAG,KAAK,kBAAkB,0BAA0B,IAAI,KAAK,kBAAkB,GAAI,KAAK,QAAQ,uBAAwB,CACzQ,MAAM,EAAI,IAAI,MAAM,KAAK,QAAQ,oBAAsB,EAAE,EACzD,KAAK,kBAAkB,QAAQ,sCAAsC,CACnE,QAAS,KAAK,QAAQ,yBAA2B,sBACjD,UAAW,EACX,YAAa,KAAK,QAAQ,WAClC,CAAO,EAAE,KAAM,GAAM,CACb,KAAK,0BAA4B,CACzC,CAAO,CACF,CACD,MAAO,EACR,CAOD,QAAS,CACP,OAAO,MAAM,OAAQ,GAAI,KAAK,mBAAqB,KAAK,iBAAiB,OAAM,EAAI,KAAK,iBAAmB,MAAO,KAAK,kBAAkB,0BAA0B,eAAe,KAAK,kBAAkB,EAAG,KAAK,4BAA8B,KAAK,0BAA0B,OAAQ,EAAE,KAAK,0BAA4B,MAAO,IAAM,EACvU,CAID,SAAU,CACR,MAAM,QAAS,EAAE,KAAK,0BAA0B,MAAK,CACtD,CACD,WAAW,EAAG,CACZ,GAAI,EAAE,CAAC,KAAK,UAAY,KAAK,QAAS,CACpC,GAAI,KAAK,iBAAkB,CACzB,MAAM,EAAI,EAAE,kBAAkB,KAAK,gBAAgB,EACnD,KAAK,2BAA2B,CAAC,CAClC,CACD,KAAK,2BAA6B,EAAE,mCAAmC,KAAK,yBAAyB,EAAE,QAASpN,GAAM,CACpH,KAAK,2BAA2BA,EAAE,QAASA,EAAE,WAAW,CAChE,CAAO,CACF,CACF,CACD,2BAA2B,EAAG,EAAG,CAC/B,MAAM,EAAI,GACV,EAAE,QAAS,GAAM,CACf,MAAMR,EAAI,EAAE,QAAQ,KAAK,kBAAkB,cAAc,EACzD,GAAI,CAACA,EACH,OACF,MAAMC,EAAID,EAAE,UAAU,SAAU,EAAIA,EAAE,UAAU,YAChD,KAAK,QAAQ,IAAIC,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAE,aAAa,KAAK,kBAAkB,kBAAkB,EAAG,KAAK,SAAS,IAAI,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG2P,EAAE,4BAA4B5P,EAAE,UAAU,OAAQ,EAAG,EAAG,KAAK,OAAO,EAAG,KAAK,kBAAkB,MAAM,uBAAyB,KAAK,QAAQ,GAAK,GAAI,KAAK,SAAS,GAAK,GAAI,KAAK,SAAS,GAAK,GAAI,KAAK,QAAQ,6BAA8B,GAC5W,MAAM,EAAI,CACR,SAAU,KAAK,wBAA0B,KAAK,QAAQ,MAAK,EAAK,KAAK,QACrE,mBAAoB,KAAK,wBAA0B,KAAK,SAAS,MAAK,EAAK,KAAK,SAChF,qBAAsB,KAAK,wBAA0B,KAAK,QAAQ,MAAK,EAAK,KAAK,QACjF,YAAa,EACb,YAAa,CAAC,CAAC,EACf,YAAa,CACrB,EACM,EAAE,KAAK,CAAC,CACT,GAAG,KAAK,0BAA0B,gBAAgB,CAAC,CACrD,CACH,EACAoqF,GAAG,KAAO/yD,GAAG,SACb+yD,GAAG,QAAU,EACb7yD,GAAG,gBAAgB6yD,GAAG,KAAM,CAAC/pF,EAAG,IAAM,IAAM,IAAI+pF,GAAG/pF,EAAG,CAAC,EAAG+pF,GAAG,QAAS,EAAE,SACxE,cAAiB1/B,EAAG,CAIlB,IAAI,mBAAoB,CACtB,OAAO,KAAK,kBACb,CAKD,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,SAAW,GAAI,KAAK,mBAAqB,GAAI,KAAK,+BAAiC,IAAI5qD,GAAK,KAAK,iCAAmC,IAAIA,GAAK,KAAK,oBAAsB,oBAAqB,KAAK,kBAAkB,QAAU,KAAK,MAAO,EAAG,KAAK,kBAAkB,gBAAgB,QAAQ,IAAM,CAC/S,KAAK,MAAK,CAChB,CAAK,CACF,CAOD,QAAS,CACP,OAAO,MAAM,OAAQ,GAAI,KAAK,kBAAkB,OAAS,EAAG,IAAM,EACnE,CAID,SAAU,CACR,MAAM,QAAS,EAAE,KAAK,mBAAmB,OAAS,EAAG,KAAK,iCAAiC,MAAO,EAAE,KAAK,+BAA+B,MAAK,CAC9I,CAKD,WAAW,EAAG,CACZ,GAAI,CAAC,KAAK,UAAY,CAAC,KAAK,UAAY,CAAC,EACvC,OACF,MAAM,EAAI,EAAE,kBACZ,GAAI,EAAE,CAAC,GAAK,EAAE,SAAW,GAAI,CAC3B,GAAI,EAAE,OAAS,IAAM,EACnB,MAAM,IAAI,MAAM,qDAAuD,EAAE,MAAM,EACjF,MAAM,EAAI,EAAE,OAAS,EAAG,EAAI,CAAE,EAAEE,EAAI,GACpC,QAASC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,MAAM,EAAIA,EAAI,EAAG,EAAI,EAAE,EAAI,CAAC,EAC5B,KAAK,mBAAmB,CAAC,EAAI,EAAE,KAAK,CAAC,GAAK,KAAK,mBAAmB,CAAC,EAAI,CAAE,SAAU,IAAIuP,EAAK,gBAAiB,CAAG,EAAExP,EAAE,KAAK,CAAC,GAAI,KAAK,mBAAmB,CAAC,EAAE,SAAS,EAAI,EAAE,CAAC,EAAG,KAAK,mBAAmB,CAAC,EAAE,SAAS,EAAI,EAAE,EAAI,CAAC,EAAG,KAAK,mBAAmB,CAAC,EAAE,SAAS,EAAI,EAAE,EAAI,CAAC,EAAG,KAAK,mBAAmB,CAAC,EAAE,gBAAkB,EAAE,EAAI,CAAC,CACrU,CACDA,EAAE,OAAS,GAAK,KAAK,+BAA+B,gBAAgBA,CAAC,EAAG,EAAE,OAAS,GAAK,KAAK,iCAAiC,gBAAgB,CAAC,CAChJ,CACF,CAID,OAAQ,CACN,CAAC,KAAK,kBAAkB,QAAQ,gCAAkC,CAAC,KAAK,kBAAkB,QAAQ,+BAA+B,EAAE,IAAM,KAAK,SAAW,GAC1J,CACH,EACAqqF,GAAG,KAAOhzD,GAAG,eACbgzD,GAAG,QAAU,EACb9yD,GAAG,gBAAgB8yD,GAAG,KAAOhqF,GAAM,IAAM,IAAIgqF,GAAGhqF,CAAC,EAAGgqF,GAAG,OAAO,EAC9D,IAAIC,IAAK,KACT,cAAiB5/B,EAAG,CAClB,YAAY,EAAG,EAAI,GAAI,CACrB,MAAM,CAAC,EAAG,KAAK,SAAW,EAAG,KAAK,gBAAkC,IAAI,IAAO,KAAK,sBAAwB,IAAI5qD,GAAK,KAAK,wBAA0B,IAAIA,GAAK,KAAK,wBAA0B,IAAIA,GAAK,KAAK,oBAAsB,iBAAkB,KAAK,SAAS,iBAAmB,KAAK,SAAS,yBAA2B,IAAK,KAAK,kBAAkB,QAAU,KAAK,MAAK,EAAK,KAAK,kBAAkB,gBAAgB,QAAQ,IAAM,CACpa,KAAK,MAAK,CAChB,CAAK,CACF,CACD,QAAS,CACP,OAAO,MAAM,UAAY,KAAK,kBAAkB,UAAY,KAAK,kBAAkB,QAAQ,2BAA6B,KAAK,kBAAkB,QAAQ,0BAA0B,EAAE,EAAG,KAAK,SAAS,kCAAoC,KAAK,gBAAgB,QAAS,GAAM,CAC1Q,KAAK,wBAAwB,gBAAgB,CAAC,CACpD,CAAK,EAAG,KAAK,gBAAgB,MAAO,GAAG,IAAM,EAC1C,CACD,SAAU,CACR,MAAM,QAAS,EAAE,KAAK,sBAAsB,MAAO,EAAE,KAAK,wBAAwB,MAAO,EAAE,KAAK,wBAAwB,MAAK,CAC9H,CACD,WAAW,EAAG,CACZ,IAAI,EACJ,GAAI,CACF,GAAI,CAAC,KAAK,UAAY,CAAC,EACrB,OACF,MAAM,EAAI,EAAE,kBAAoB,EAAI,EAAE,mBAAqB,KAAO,OAAS,EAAE,gBAC7E,GAAI,EAAG,CACL,MAAM,EAAoB,IAAI,IAC9B,KAAK,gBAAgB,QAAQ,CAACE,EAAGC,IAAM,CACrC,EAAE,IAAIA,CAAC,GAAK,EAAE,IAAIA,CAAC,CACpB,GAAG,EAAE,QAASD,GAAM,CACnB,MAAMC,EAAI,KAAK,gBAAgB,IAAID,CAAC,EACpCC,IAAM,KAAK,wBAAwB,gBAAgBA,CAAC,EAAG,KAAK,gBAAgB,OAAOD,CAAC,EACrF,GAAG,EAAE,QAASA,GAAM,CACnB,GAAI,KAAK,gBAAgB,IAAIA,CAAC,GAC5B,GAAIA,EAAE,kBAAoB,KAAK,kBAAkB,iBAAkB,CACjE,MAAMC,EAAI,KAAK,gBAAgB,IAAID,CAAC,EACpCC,IAAM,KAAK,4BAA4BD,EAAGC,EAAG,CAAC,EAAG,KAAK,wBAAwB,gBAAgBA,CAAC,EAChG,MACI,CACL,MAAMA,EAAI,CACR,GAAIqqF,MACJ,OAAQtqF,CACtB,EAAe,EAAI,KAAK,4BAA4BA,EAAGC,EAAG,CAAC,EAC/C,KAAK,gBAAgB,IAAID,EAAG,CAAC,EAAG,KAAK,sBAAsB,gBAAgB,CAAC,CAC7E,CACX,CAAS,CACF,CACF,OAAQ,EAAG,CACV4C,EAAE,IAAI,EAAE,KAAK,CACd,CACF,CACD,OAAQ,CACN,KAAK,kBAAkB,WAAa,KAAK,kBAAkB,QAAQ,2BAA6B,KAAK,kBAAkB,QAAQ,0BAA0B,EAAE,EAAG,KAAK,SAAS,0BAA4B,KAAK,kBAAkB,QAAQ,oCAAsC,KAAK,kBAAkB,QAAQ,mCAAmC,KAAK,SAAS,wBAAwB,EACtX,CACD,4BAA4B,EAAG,EAAG,EAAG,CACnC,IAAI5C,EACJ,EAAE,OAAS,EAAG,EAAE,gBAAkB,KAAK,SAAS,gBAChD,MAAMS,EAAI,EAAE,UAAY,EAAE,UAC1B,GAAI,KAAK,SAAS,yBAA0B,CAC1C,GAAI,KAAK,kBAAkB,MAAM,qBAC/B,EAAE,UAAYA,EAAG,EAAE,QAAU,EAAE,YAC5B,CACH,EAAE,UAAY,IAAI,aAAaA,EAAE,MAAM,EACvC,QAAS,EAAI,EAAG,EAAIA,EAAE,OAAQ,GAAK,EACjC,EAAE,UAAU,CAAC,EAAIA,EAAE,CAAC,EAAG,EAAE,UAAU,EAAI,CAAC,EAAIA,EAAE,EAAI,CAAC,EAAG,EAAE,UAAU,EAAI,CAAC,EAAI,GAAKA,EAAE,EAAI,CAAC,EACzF,GAAI,EAAE,QAAS,CACb,EAAE,QAAU,IAAI,aAAa,EAAE,QAAQ,MAAM,EAC7C,QAAS,EAAI,EAAG,EAAI,EAAE,QAAQ,OAAQ,GAAK,EACzC,EAAE,QAAQ,CAAC,EAAI,EAAE,QAAQ,CAAC,EAAG,EAAE,QAAQ,EAAI,CAAC,EAAI,EAAE,QAAQ,EAAI,CAAC,EAAG,EAAE,QAAQ,EAAI,CAAC,EAAI,GAAK,EAAE,QAAQ,EAAI,CAAC,CAC5G,CACF,CACD,EAAE,QAAU,EAAE,QACd,MAAMR,EAAI,EAAE,QAAQ,EAAE,UAAW,KAAK,kBAAkB,cAAc,EACtE,GAAIA,EAAG,CACL,MAAM,EAAI,EAAE,sBAAwB,IAAI2P,EACxCA,EAAE,eAAe3P,EAAE,UAAU,OAAQ,EAAG,CAAC,EAAG,KAAK,kBAAkB,MAAM,sBAAwB,EAAE,6BAA4B,EAAI,EAAE,qBAAuB,EAAG,KAAK,SAAS,iBAAmB,EAAE,cAAc,KAAK,SAAS,gBAAgB,eAAgB,EAAE,CAAC,CAClQ,CACD,GAAI,KAAK,SAAS,eAAgB,CAChC,GAAI,EAAE,KAAM,CACV,MAAM,EAAI,EAAE,KACZ,EAAE,mBAAmBgU,EAAE,aAAc,EAAE,SAAS,EAAG,EAAE,QAAU,EAAE,mBAAmBA,EAAE,WAAY,EAAE,OAAO,EAAI,EAAE,cAAc,EAAE,EAAG,EAAE,cAAc,EAAE,OAAO,CACvK,KAAe,CACL,MAAM,EAAI,IAAIge,GAAE,WAAa,EAAE,GAAI,KAAK,kBAAkB,KAAK,EAC/D,EAAE,mBAAqB,IAAIxiB,GAAM,EAAE,gBAAgBwE,EAAE,aAAc,EAAE,SAAS,EAAG,EAAE,QAAU,EAAE,gBAAgBA,EAAE,WAAY,EAAE,OAAO,EAAI,EAAE,cAAc,EAAE,EAAG,EAAE,WAAW,EAAE,QAAS,OAAQ,EAAE,EAAG,EAAE,KAAO,CAC9M,EACAjU,EAAI,EAAE,uBAAyB,MAAQA,EAAE,UAAU,EAAE,KAAK,QAAS,EAAE,KAAK,mBAAoB,EAAE,KAAK,QAAQ,CAC/G,CACF,CACD,OAAO,CACR,CACH,EACAuqF,GAAG,KAAOlzD,GAAG,eACbkzD,GAAG,QAAU,EACbhzD,GAAG,gBAAgBgzD,GAAG,KAAM,CAAClqF,EAAG,IAAM,IAAM,IAAIkqF,GAAGlqF,EAAG,CAAC,EAAGkqF,GAAG,QAAS,EAAE,EACxE,IAAIC,IACH,SAASnqF,EAAG,CACXA,EAAEA,EAAE,YAAc,CAAC,EAAI,cAAeA,EAAEA,EAAE,QAAU,CAAC,EAAI,UAAWA,EAAEA,EAAE,SAAW,CAAC,EAAI,UAC1F,GAAGmqF,KAAOA,GAAK,CAAE,EAAC,SAClB,cAAiB9/B,EAAG,CAMlB,YAAY,EAAG,EAAG,CAChB,MAAM,CAAC,EAAG,KAAK,QAAU,EAAG,KAAK,kCAAoC,IAAI5qD,GAAK,KAAK,gCAAkC,IAAIA,GAAK,KAAK,gCAAkC,IAAIA,GAAK,KAAK,sBAAwB0qF,GAAG,YAAa,KAAK,eAAiB,GAAI,KAAK,oBAAsB,gBACjR,CAOD,QAAS,CACP,OAAO,MAAM,QACd,CAOD,QAAS,CACP,OAAO,MAAM,QACd,CAOD,oBAAoB,EAAG,CACrB,OAAO,KAAK,eAAe,CAAC,GAAK,IAClC,CAID,SAAU,CACR,MAAM,QAAO,EAAI,KAAK,eAAe,QAAS,GAAM,CAClD,EAAE,eAAe,OACvB,CAAK,EAAG,KAAK,eAAe,OAAS,EAAG,KAAK,gCAAgC,MAAO,EAAE,KAAK,kCAAkC,MAAK,EAAI,KAAK,gCAAgC,OACxK,CAKD,MAAM,2BAA4B,CAChC,GAAI,CAAC,KAAK,QAAQ,QAAU,CAAC,KAAK,QAAQ,OAAO,OAC/C,MAAO,GACT,MAAM,EAAI,KAAK,QAAQ,OAAO,IAAK,GAAM,OAAO,EAAE,KAAO,SAAW,KAAK,kBAAkB,MAAM,UAAS,EAAG,6BAA6B,EAAE,GAAG,EAAI,QAAQ,QAAQ,EAAE,GAAG,CAAC,EACzK,GAAI,CACF,MAAM,EAAI,MAAM,QAAQ,IAAI,CAAC,EAC7B,OAAO,KAAK,yBAA2B,EAAE,IAAI,CAAC,EAAG,KAAO,CACtD,MAAO,EACP,cAAe,KAAK,QAAQ,OAAO,CAAC,EAAE,uBACvC,EAAC,EAAG,CACH,cAAe,KAAK,wBAC5B,CACA,MAAY,CACN,OAAO58E,GAAE,MAAM,kFAAkF,EAAG,EACrG,CACF,CACD,WAAW,EAAG,CACZ,GAAI,CAAC,EAAE,yBAA2B,KAAK,wBAA0B48E,GAAG,QAClE,OACF,GAAI,KAAK,wBAA0BA,GAAG,YAAa,CACjD,KAAK,kBAAiB,EACtB,MACD,CACD,MAAM,EAAI,EAAE,0BACZ,UAAW,KAAK,EAAG,CACjB,IAAI,EAAI,GACR,MAAMxqF,EAAI,EAAE,MAAOC,EAAI,KAAK,eAAeD,CAAC,EAC5C,GAAI,CAACC,EACH,SACFA,EAAE,iBAAmB,EAAGA,EAAE,iBAAmB,EAAE,wBAA0BA,EAAE,eAAiB,EAAE,sBAAuB,EAAI,IACzH,MAAM,EAAI,EAAE,QAAQ,EAAE,WAAY,KAAK,kBAAkB,cAAc,EACvE,GAAI,EAAG,CACL,MAAMiJ,EAAIjJ,EAAE,qBACZ2P,EAAE,eAAe,EAAE,UAAU,OAAQ,EAAG1G,CAAC,EAAG,KAAK,kBAAkB,MAAM,sBAAwBA,EAAE,6BAA4B,EAAI,EAAI,EACxI,CACD,MAAM5G,EAAI,EAAE,gBAAkB,WAC9BrC,EAAE,WAAaqC,IAAMrC,EAAE,SAAWqC,EAAG,EAAI,IAAK,GAAK,KAAK,gCAAgC,gBAAgBrC,CAAC,CAC1G,CACF,CACD,MAAM,mBAAoB,CACxB,GAAI,CAAC,KAAK,kBAAkB,QAAQ,uBAAyB,KAAK,wBAA0BuqF,GAAG,YAC7F,OACF,KAAK,sBAAwBA,GAAG,QAChC,MAAM,EAAI,MAAM,KAAK,kBAAkB,QAAQ,sBAAqB,EACpE,GAAI,CAAC,GAAK,EAAE,SAAW,EAAG,CACxB,KAAK,sBAAwBA,GAAG,YAChC,MACD,CACD,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,EAAE,EAC9B,GAAI,EAAE,CAAC,GAAK,cACV,KAAK,kCAAkC,gBAAgB,CAAC,MACrD,CACH,MAAM,EAAI,KAAK,yBAAyB,CAAC,EAAE,MAAO,EAAI,CACpD,GAAI,EACJ,eAAgB,EAChB,qBAAsB,IAAI56E,EAC1B,MAAO,EAAE,MAAQ,EAAE,MAC7B,EACQ,KAAK,eAAe,CAAC,EAAI,EAAG,KAAK,gCAAgC,gBAAgB,CAAC,CACnF,CACH,KAAK,sBAAwB,EAAE,OAAS,EAAI46E,GAAG,SAAWA,GAAG,WAC9D,CACH,EACAC,GAAG,KAAOpzD,GAAG,eACbozD,GAAG,QAAU,EACblzD,GAAG,gBAAgBkzD,GAAG,KAAM,CAACpqF,EAAG,IAAM,IAAM,IAAIoqF,GAAGpqF,EAAG,CAAC,EAAGoqF,GAAG,QAAS,EAAE,SACxE,cAAiB//B,EAAG,CAMlB,YAAY,EAAG,EAAG,CAChB,MAAM,CAAC,EAAG,KAAK,QAAU,EAAG,KAAK,gBAAkB,KAAM,KAAK,wBAA0B,KAAM,KAAK,SAAW,KAAM,KAAK,oBAAsB,cAAe98C,GAAE,KAAK,sDAAsD,CAC5N,CAOD,QAAS,CACP,MAAO,CAAC,MAAM,OAAM,GAAM,CAAC,KAAK,kBAAkB,QAAQ,iBAAmB,KAAK,kBAAkB,QAAQ,gBAAgB,OAAS,KAAO,IAAM,KAAK,gBAAkB,KAAK,kBAAkB,QAAQ,gBAAgB,KAAM,KAAK,WAAa,MAAQ,KAAK,QAAQ,wBAA0B,KAAO,KAAK,wBAA2B,GAAM,CAC1U,EAAE,eAAc,CACtB,EAAO,KAAK,SAAS,iBAAiB,iBAAkB,KAAK,uBAAuB,GAAI,GACrF,CAID,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CAID,SAAU,CACR,MAAM,QAAS,EAAE,KAAK,WAAa,MAAQ,KAAK,yBAA2B,KAAK,SAAS,oBAAoB,iBAAkB,KAAK,uBAAuB,CAC5J,CACD,WAAW,EAAG,CACb,CAKD,MAAM,2BAA4B,CAChC,GAAI,KAAK,QAAQ,UAAY,OAC3B,OAAOA,GAAE,KAAK,qEAAqE,EAAG,GACxF,GAAI,OAAO,KAAK,QAAQ,SAAW,SAAU,CAC3C,MAAM,EAAI,SAAS,cAAc,KAAK,QAAQ,OAAO,EACrD,GAAI,IAAM,KACR,OAAOA,GAAE,KAAK,sBAAsB,KAAK,QAAQ,OAAO,mCAAmC,EAAG,GAChG,KAAK,SAAW,CACjB,MACC,KAAK,SAAW,KAAK,QAAQ,QAC/B,MAAO,CACL,WAAY,CACV,KAAM,KAAK,QACZ,CACP,CACG,CACH,EACA88E,GAAG,KAAOrzD,GAAG,YACbqzD,GAAG,QAAU,EACbnzD,GAAG,gBAAgBmzD,GAAG,KAAM,CAACrqF,EAAG,IAAM,IAAM,IAAIqqF,GAAGrqF,EAAG,CAAC,EAAGqqF,GAAG,QAAS,EAAE,SACxE,MAAMC,YAAWjgC,EAAG,CAIlB,IAAI,mBAAoB,CACtB,OAAO,KAAK,kBACb,CAID,IAAI,iBAAkB,CACpB,OAAO,KAAK,gBAAgB,eAC7B,CAKD,IAAI,gBAAgB,EAAG,CACrB,KAAK,gBAAgB,gBAAkB,CACxC,CAID,IAAI,sCAAuC,CACzC,OAAO,KAAK,gBAAgB,oCAC7B,CAKD,IAAI,qCAAqC,EAAG,CAC1C,KAAK,gBAAgB,qCAAuC,CAC7D,CAID,IAAI,eAAgB,CAClB,OAAO,KAAK,gBAAgB,aAC7B,CAKD,IAAI,cAAc,EAAG,CACnB,KAAK,gBAAgB,cAAgB,CACtC,CAID,IAAI,mBAAoB,CACtB,OAAO,KAAK,gBAAgB,iBAC7B,CAKD,IAAI,kBAAkB,EAAG,CACvB,KAAK,gBAAgB,kBAAoB,CAC1C,CAID,IAAI,iBAAkB,CACpB,OAAO,KAAK,gBAAgB,eAC7B,CAKD,IAAI,gBAAgB,EAAG,CACrB,KAAK,gBAAgB,gBAAkB,CACxC,CAID,IAAI,eAAgB,CAClB,OAAO,KAAK,gBAAgB,aAC7B,CAKD,IAAI,cAAc,EAAG,CACnB,KAAK,gBAAgB,cAAgB,CACtC,CAID,IAAI,mBAAoB,CACtB,OAAO,KAAK,gBAAgB,iBAC7B,CAKD,IAAI,kBAAkB,EAAG,CACvB,KAAK,gBAAgB,kBAAoB,CAC1C,CAMD,YAAY,EAAG,EAAG,CAChB,GAAI,MAAM,CAAC,EAAG,KAAK,aAAe,CAAE,EAAE,KAAK,mCAAqC,GAAI,KAAK,mBAAqB,IAAIj7C,GAAM,KAAK,mBAAqBG,EAAE,SAAQ,EAAI,KAAK,yBAA2B,IAAIJ,EAAK,KAAK,wBAA0B,IAAIA,EAAK,KAAK,qBAAuB,IAAIC,GAAM,KAAK,kBAAqB,GAAM,CACrT,GAAI,KAAK,aAAa,EAAE,QAAQ,EAC9B,OACF,KAAK,aAAa,EAAE,QAAQ,EAAI,CAC9B,aAAc,EACd,qBAAsB,CAAE,CAChC,EACM,MAAM,EAAI,KAAK,aAAa,EAAE,QAAQ,EACtC,GAAI,EAAE,aAAa,YAAY,gBAAkB,mBAAqB,EAAE,aAAa,YAAY,QAAS,CACxG,MAAMzP,EAAI,IAAM,CACd,GAAI,EAAE,iBACJ,UAAWC,KAAK,KAAK,mCAAoC,CACvD,IAAI,EAAI,KACR,GAAIA,EAAE,sBACJ,UAAW,KAAKA,EAAE,sBAAuB,CACvC,MAAM,EAAI,EAAE,iBAAiB,mBAAmB,CAAC,EACjD,GAAI,IAAM,KAAM,CACd,EAAI,EACJ,KACD,CACF,CACH,GAAIA,EAAE,kBAAmB,CACvB,MAAM,EAAI,EAAE,iBAAiB,iBAAgB,EAC7C,GAAI,IAAM,KACR,SACF,EAAI,CACL,CACD,GAAI,OAAOA,EAAE,6BAA+B,aAAe,EAAIA,EAAE,4BAA4B,CAAC,GAAI,GAAKA,EAAE,iBAAmB,EAAE,YAAY,aAAeA,EAAE,iBAAmB,IAAM,KAClL,SACF,MAAM,EAAI,CACR,0BAA2BA,EAC3B,UAAW,CAC3B,EACc,EAAE,qBAAqB,KAAK,CAAC,EAAG,uBAAwBA,IAAM,EAAE,sBAAwB,EAAE,6BAA6B,IAAK,GAAM,CAChIA,EAAE,mBAAmB,EAAG,KAAK,eAAgB,KAAK,gBAAiB,KAAK,QAAQ,CAChG,CAAe,GAAI,yBAA0BA,IAAM,EAAE,wBAA0B,EAAE,+BAA+B,IAAK,GAAM,CAC3G,EAAE,QAAQ,SAAWA,EAAE,qBAAqB,EAAE,QAAQ,QAAS,KAAK,eAAgB,KAAK,gBAAiB,KAAK,QAAQ,CACxH,GACF,CACb,EACQ,EAAE,iBAAmBD,EAAC,EAAK,EAAE,iCAAiC,QAAQ,IAAM,CAC1EA,GACV,CAAS,CACF,CACF,EAAE,CAAC,GAAK,EAAE,UAAY,OAAQ,CAC7B4N,GAAE,MAAM,4DAA4D,EACpE,MACD,CACD,MAAM,QAAQ,EAAE,gCAAgC,EAAI,KAAK,mCAAqC,EAAE,iCAAmC,KAAK,mCAAqC+8E,IAAG,cAAc,QAAS,KAAK,gBAAkB,CAC5N,gBAAiB,EAAE,iBAAmB,GACtC,qCAAsC,EAAE,sCAAwC,GAChF,qCAAsC,EAAE,sCAAwC,GAChF,+BAAgC,EAAE,+BAClC,cAAe,EAAE,eAAiB,EAClC,kBAAmB,EAAE,mBAAqB,IAC1C,gBAAiB,EAAE,iBAAmB,GACtC,cAAe,EAAE,eAAiB,EAClC,kBAAmB,EAAE,mBAAqB,GAChD,EAAO,KAAK,eAAiB,CACvB,MAAO,EACP,MAAO,EACP,QAAS,EACT,QAAS,CACV,EAAE,KAAK,SAAW,EAAE,OACtB,CACD,QAAS,CACP,OAAO,MAAM,UAAY,KAAK,SAAS,YAAY,QAAQ,KAAK,iBAAiB,EAAG,KAAK,sBAAsB,KAAK,SAAS,4BAA6B,KAAK,iBAAiB,EAAG,KAAK,sBAAsB,KAAK,SAAS,8BAAgC,GAAM,CAChQ,KAAK,kBAAkB,EAAE,QAAQ,CACvC,CAAK,EAAG,IAAM,EACX,CACD,QAAS,CACP,OAAO,MAAM,OAAQ,GAAI,OAAO,KAAK,KAAK,YAAY,EAAE,QAAS,GAAM,CACrE,KAAK,kBAAkB,CAAC,CAC9B,CAAK,EAAG,KAAK,aAAe,CAAE,EAAE,IAAM,EACnC,CAKD,WAAW,EAAG,CACZ,GAAI,KAAK,SAAU,CACjB,GAAI,KAAK,eAAe,UAAY,GAAK,KAAK,gBAAgB,gBAAiB,CAC7E,MAAMnqF,EAAI,KAAK,kBAAkB,MAAM,UAAW,EAAC,aAAc,EAAG,KAAO,KAAK,gBAAgB,cAAgB,KAAK,eAAe,SAAW,KAAK,kBAAkB,MAAM,qBAAuB,GAAK,GACxM,GAAI,KAAK,gBAAgB,qCACvB,KAAK,SAAS,SAAS,eAAe,GAAKA,EAAGiP,GAAG,0BAA0BjP,EAAG,EAAG,EAAG,KAAK,oBAAoB,EAAG,KAAK,SAAS,SAAS,mBAAmB,cAAc,KAAK,qBAAsB,KAAK,kBAAkB,UACnN,KAAK,gBAAgB,qCAAsC,CAClE,KAAK,SAAS,SAAS,eAAe,GAAKA,EAC3C,MAAMC,EAAI,KAAK,gBAAgB,gCAAkC,QAAST,EAAI,OAAO,KAAK,KAAK,YAAY,EAAE,KAAM4D,GAAM,CACvH,IAAIrB,EAAGD,EACP,QAASA,GAAKC,EAAI,KAAK,aAAaqB,CAAC,IAAM,KAAO,OAASrB,EAAE,eAAiB,KAAO,OAASD,EAAE,YAAY,cAAgB7B,CAC7H,IAAK,OAAO,KAAK,KAAK,YAAY,EAAE,CAAC,EAAG,EAAI,KAAK,aAAaT,CAAC,EAChEyP,GAAG,0BAA0BjP,EAAG,EAAG,EAAG,KAAK,oBAAoB,GAA0B,GAAE,aAAa,QAAQ,oBAAuBiP,GAAG,SAAQ,GAAI,cAAc,KAAK,qBAAsB,KAAK,kBAAkB,CACvN,MACCA,GAAG,0BAA0BjP,EAAI,EAAG,EAAG,EAAG,KAAK,oBAAoB,EAAG,KAAK,mBAAmB,gBAAgB,KAAK,oBAAoB,CACjJ,SAAiB,KAAK,gBAAgB,qCAC9B,KAAK,mBAAmB,SAAS,KAAK,SAAS,SAAS,kBAAkB,UACnE,KAAK,gBAAgB,qCAAsC,CAClE,MAAM,EAAI,KAAK,gBAAgB,gCAAkC,QAAS,EAAI,OAAO,KAAK,KAAK,YAAY,EAAE,KAAMR,GAAM,CACvH,IAAIC,EACJ,QAASA,EAAI,KAAK,aAAaD,CAAC,IAAM,KAAO,OAASC,EAAE,aAAa,YAAY,cAAgB,CAClG,IAAK,OAAO,KAAK,KAAK,YAAY,EAAE,CAAC,EAAG,EAAI,KAAK,aAAa,CAAC,EAChE,KAAK,mBAAmB,SAA+B,GAAE,aAAa,QAAQ,oBAAuBwP,GAAG,SAAU,EACnH,EACA,KAAK,eAAe,OAAS,KAAK,eAAe,QAAU,KAAK,gBAAgB,kBAAoBG,EAAE,oBAAoB,KAAK,mBAAoB,KAAK,kBAAkB,EAAG,KAAK,yBAAyB,IAAI,KAAK,eAAe,MAAO,EAAG,KAAK,eAAe,OAAS,KAAK,kBAAkB,MAAM,qBAAuB,EAAI,GAAG,EAAGJ,EAAE,0BAA0B,KAAK,yBAA0B,KAAK,mBAAoB,KAAK,uBAAuB,EAAG,KAAK,wBAAwB,aAAa,KAAK,SAAS,SAAS,yBAA0B,EAAG,KAAK,gBAAgB,aAAa,EAAG,KAAK,SAAS,SAAS,gBAAgB,WAAW,KAAK,uBAAuB,EAC9oB,CACF,CACD,kBAAkB,EAAG,CACnB,MAAM,EAAI,KAAK,aAAa,CAAC,EAC7B,GAAI,EAAG,CACL,UAAW,KAAK,EAAE,qBAChB,EAAE,uBAAyB,EAAE,UAAU,6BAA6B,OAAO,EAAE,qBAAqB,EAAG,EAAE,yBAA2B,EAAE,UAAU,+BAA+B,OAAO,EAAE,uBAAuB,EAC/M,OAAO,KAAK,aAAa,CAAC,CAC3B,CACF,CACH,EACAm7E,GAAG,KAAOtzD,GAAG,SACbszD,GAAG,cAAgB,CACjB,QAAS,CACP,CACE,sBAAuB,CAAClhC,GAAG,gBAAiBA,GAAG,aAAa,EAC5D,gBAAiB,OACjB,mBAAoB,CAACppD,EAAG,EAAG,IAAM,CAC/B,EAAE,QAAU,KAAK,IAAIA,EAAE,CAAC,EAAI,EAAE,kBAAoBA,EAAE,EAAI,EAAG,EAAE,QAAU,KAAK,IAAIA,EAAE,CAAC,EAAI,EAAE,kBAAoBA,EAAE,EAAI,CACpH,CACF,EACD,CACE,sBAAuB,CAACopD,GAAG,gBAAiBA,GAAG,aAAa,EAC5D,gBAAiB,QACjB,mBAAoB,CAACppD,EAAG,EAAG,IAAM,CAC/B,EAAE,MAAQ,KAAK,IAAIA,EAAE,CAAC,EAAI,EAAE,kBAAoBA,EAAE,EAAI,EAAG,EAAE,MAAQ,KAAK,IAAIA,EAAE,CAAC,EAAI,EAAE,kBAAoBA,EAAE,EAAI,CAChH,CACF,CACF,CACH,EACAsqF,GAAG,QAAU,EACbpzD,GAAG,gBAAgBozD,GAAG,KAAM,CAACtqF,EAAG,IAAM,IAAM,IAAIsqF,GAAGtqF,EAAG,CAAC,EAAGsqF,GAAG,QAAS,EAAE,SACxE,cAAiBjgC,EAAG,CAMlB,YAAY,EAAG,EAAG,CAChB,MAAM,CAAC,EAAG,KAAK,QAAU,EAAG,KAAK,eAAiB,KAAM,KAAK,mBAAqB,KAAM,KAAK,iBAAmB,KAAM,KAAK,cAAgB,KAAM,KAAK,gBAAkB,KAAM,KAAK,gBAAkBl7C,EAAE,GAAE,EAAG,cAAe,EAAE,KAAK,YAAcyD,GAAG,MAAO,EAAE,KAAK,WAAa,EAAG,KAAK,oBAAsB,IAAIyX,GAAM,KAAK,iBAAmB,KAAK,IAAK,EAAE,KAAK,yBAA2B,KAAK,IAAK,EAAE,KAAK,8BAAgC,GAAI,KAAK,iBAAmB,KAAM,KAAK,qCAAuC,IAAI5qB,GAAK,KAAK,yBAA2B,IAAM,CACtiB,IAAIW,EACJ,GAAI,CAAC,KAAK,cACR,OACF,GAAI,KAAK,QAAQ,oBAAqB,CACpC,MAAMT,EAAI,KAAK,MACf,GAAIA,EAAI,KAAK,iBAAmB,KAAK,QAAQ,oBAC3C,OACF,KAAK,iBAAmBA,CACzB,CACD,MAAMQ,EAAI,KAAK,gBAAe,EAAG,qBAAqB,KAAK,aAAa,EACxE,GAAIA,GAAK,KAAK,mBAAoB,CAChC,GAAI,KAAK,mBAAmB,UACzBC,EAAI,KAAK,mBAAmB,SAAS,mBAAqB,MAAQA,EAAE,IAAID,CAAC,EAAG,KAAK,mBAAmB,SAAS,UAAS,EAAG,wBACvH,CACH,MAAMR,EAAI,IAAIM,GACZ,KAAK,kBAAkB,MAAM,UAAW,EACxC,CAEZ,EACUN,EAAE,OAAS,GAAIA,EAAE,QAAU,GAAIA,EAAE,eAAiB,KAAK,QAAQ,mBAAqB,SAAUA,EAAE,OAAS,EAAGA,EAAE,gBAAkB,GAAIA,EAAE,KAAO,KAAK,QAAQ,mBAAqB,SAAW,EAAI,EAAGA,EAAE,aAAe,EAAGA,EAAE,MAAQ,KAAK,8BAA+BA,EAAE,OAAS,KAAK,8BAA+BA,EAAE,aAAe,EAAGA,EAAE,aAAe,EAAGA,EAAE,iBAAmB,IAAIoJ,GAAG5I,EAAG,KAAK,kBAAmB,GAAG,KAAK,mBAAmB,SAAWR,CACxb,CACD,KAAK,mBAAmB,SAAS,QAAU,GAAI,KAAK,QAAQ,qBAAuB,KAAK,kBAAkB,MAAM,wBAAwB,CAAC,EAAG,KAAK,qCAAqC,gBAAgB,KAAK,kBAAkB,IAAM,KAAK,cAAc,oBAAoB,mBAAoB,KAAK,wBAAwB,EAAG,KAAK,WAAW,UAAU,KAAK,kBAAkB,EAAE,KAAK,IAAM,CAC1X,KAAK,kBAAkB,MAAM,wBAAwB,CAAC,EAAG,KAAK,qCAAqC,gBAAgB,KAAK,kBAAkB,EAAG,KAAK,cAAc,iBAAiB,mBAAoB,KAAK,wBAAwB,CACnO,GACF,CACP,EAAO,KAAK,oBAAsB,mBAAoB,KAAK,QAAQ,+BAAiC,KAAK,iBAAmB,IAAIg5B,GAAG,+BAAgC,KAAK,gBAAiB,KAAK,kBAAkB,KAAK,EAAG,KAAK,iBAAiB,SAAW,IAAIxpB,EAAE,EAAG,EAAG,CAAC,EAAG,KAAK,iBAAiB,UAAY,EAAG,KAAK,iBAAiB,YAAc0I,GAAG,cAAe,KAAK,WAAa,IAAIs8C,GAAG,KAAK,kBAAkB,MAAM,UAAW,GAAG5mD,GAAE,KAAK,2DAA2D,CACve,CAMD,IAAI,0BAA2B,CAC7B,OAAO,KAAK,kBACb,CAID,IAAI,oBAAqB,CACvB,OAAO,KAAK,iBAAmB,CAC7B,WAAY,KAAK,YACjB,eAAgB,KAAK,gBACrB,eAAgB,KAAK,WACrB,mBAAoB,KAAK,mBAC/B,EAAQ,KAAK,gBACV,CACD,mBAAoB,CAClB,OAAO,KAAK,iBAAmB,OAAS,KAAK,eAAiB,KAAK,kBAAkB,MAAM,UAAW,EAAC,KAAM,KAAK,cACnH,CACD,iBAAkB,CAChB,GAAI,KAAK,kBAAoB,KAAM,CACjC,MAAM,EAAI,KAAK,oBACf,KAAK,gBAAkB,IAAI,eAAe,KAAK,kBAAkB,QAAS,CAAC,CAC5E,CACD,OAAO,KAAK,eACb,CAOD,QAAS,CACP,GAAI,CAAC,MAAM,OAAQ,EACjB,MAAO,GACT,MAAM,EAAI,KAAK,QAAQ,mBAAqB,KAAK,kBAAkB,QAAQ,2BAA6B,UACxG,OAAO,KAAK,QAAQ,iBAAmB,EAAG,KAAK,kBAAkB,QAAQ,kBAAkB,CACzF,iBAAkB,CACxB,CAAK,EAAE,KAAM,GAAM,CACb,KAAK,cAAgB,EAAG,KAAK,QAAQ,2BAA6B,KAAK,qBAAuB,KAAK,mBAAqB,IAAI2V,GAAG,KAAK,kBAAkB,KAAK,EAAG,KAAK,mBAAmB,QAAU,GAAI,KAAK,mBAAmB,gBAAkB,EAAG,KAAK,QAAQ,6BAA+B,KAAK,kBAAkB,MAAM,mBAAqB,KAAK,qBAAsB,KAAK,cAAc,iBAAiB,mBAAoB,KAAK,wBAAwB,EACrc,CAAK,EAAG,EACL,CAOD,QAAS,CACP,MAAM,EAAI,MAAM,SAChB,OAAO,KAAK,gBAAkB,MAAQ,CAAC,KAAK,QAAQ,2BAA6B,KAAK,cAAc,oBAAoB,mBAAoB,KAAK,wBAAwB,EAAG,KAAK,cAAgB,MAAO,KAAK,eAAiB,KAAM,KAAK,iBAAmB,KAAM,KAAK,gBAAkB,KAAM,CAChS,CAID,SAAU,CACR,MAAM,QAAO,EAAI,KAAK,qCAAqC,MAAO,EAAE,KAAK,mBAAqB,KAAK,iBAAiB,QAAS,EAAE,KAAK,iBAAmB,MAAO,KAAK,qBAAuB,OAAS,KAAK,mBAAmB,UAAY,KAAK,mBAAmB,SAAS,QAAS,EAAE,KAAK,mBAAmB,QAAO,EAAI,KAAK,mBAAqB,KACjV,CACD,WAAW,EAAG,CACZ,IAAI,EACJ,GAAI,KAAK,gBAAkB,KAAM,CAC/B,GAAI,KAAK,QAAQ,4BAA6B,CAC5C,MAAM,EAAI,KAAK,MACf,GAAI,EAAI,KAAK,yBAA2B,KAAK,QAAQ,4BACnD,OACF,KAAK,yBAA2B,CACjC,CACD,GAAI,KAAK,iBAAmB,EAAE,iBAAiB,KAAK,aAAa,EAAG,KAAK,iBAAkB,CACzF,KAAK,WAAa,KAAK,IAAI,EAAG,KAAK,iBAAiB,sBAAsB,EAAG,KAAK,iBAAiB,sBAAsB,EAAG,KAAK,iBAAiB,sBAAsB,CAAC,EACzK,MAAM,EAAI,KAAK,kBAAkB,MAAM,qBAAuB,EAAI,GAClE,KAAK,QAAQ,qBAAuB,KAAK,gBAAkB,IAAI/T,EAAK,KAAK,YAAc,IAAIyD,GAAM,KAAK,mBAAqB,KAAK,iBAAiB,UAAY,KAAK,gBAAiB,KAAK,iBAAiB,QAAU,KAAK,cAAe,KAAK,gBAAgB,eAAe,KAAK,iBAAiB,sBAAsB,EAAG,KAAK,iBAAiB,sBAAsB,EAAG,KAAK,iBAAiB,sBAAsB,EAAI,CAAC,EAAG,KAAK,YAAY,eAAe,KAAK,iBAAiB,sBAAsB,EAAI,KAAK,WAAY,KAAK,iBAAiB,sBAAsB,EAAI,KAAK,WAAY,KAAK,iBAAiB,sBAAsB,EAAI,KAAK,UAAU,EAAG,KAAK,oBAAoB,sBAAsB,KAAK,iBAAiB,8BAA8B,EAAG,KAAK,oBAAsB,CAAC,KAAK,QAAQ,6BAA+B,KAAK,mBAAmB,oBAAsB,KAAK,mBAAmB,qBAAuB,IAAI2X,IAAO,EAAI,KAAK,mBAAmB,sBAAwB,MAAQ,EAAE,oBAAoB,KAAK,mBAAmB,GAAI,KAAK,gBAAgB,cAAa,EAAI,KAAK,mBAAqB,KAAK,iBAAiB,UAAU,SAAS,KAAK,eAAe,EAAG,KAAK,iBAAiB,UAAY,KAAK,IAAI,KAAK,WAAY,CAAC,EAAG,KAAK,iBAAiB,QAAQ,SAAS,KAAK,WAAW,EAC7vC,CACF,CACF,CACH,EACAggE,GAAG,KAAOvzD,GAAG,iBACbuzD,GAAG,QAAU,EACbrzD,GAAG,gBAAgBqzD,GAAG,KAAM,CAACvqF,EAAG,IAAM,IAAM,IAAIuqF,GAAGvqF,EAAG,CAAC,EAAGuqF,GAAG,QAAS,EAAE,SACxE,cAAiBlgC,EAAG,CAKlB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,+BAAiC,IAAI5qD,GAAK,KAAK,6BAA+B,IAAIA,GAAK,KAAK,mCAAqC,IAAIA,GAAK,KAAK,0BAA6B,GAAM,CAC/L,KAAK,gBAAkB,EAAE,UAAW,KAAK,SAAW,IAAIm1B,GAAGzlB,EAAE,KAAM,EAAEA,EAAE,QAAS,GAAG,KAAK,+BAA+B,gBAAgB,KAAK,QAAQ,CAC1J,EAAO,KAAK,wBAA0B,IAAM,CACtC,KAAK,gBAAkB,KAAM,KAAK,SAAW,KAAM,KAAK,6BAA6B,iBACtF,EAAE,KAAK,oBAAsB,eAAgB,KAAK,kBAAkB,QAAU,KAAK,MAAO,EAAG,KAAK,kBAAkB,gBAAgB,QAAQ,IAAM,CACjJ,KAAK,MAAK,CAChB,CAAK,CACF,CAID,SAAU,CACR,MAAM,QAAS,EAAE,KAAK,kBAAkB,QAAQ,oBAAoB,mBAAoB,KAAK,yBAAyB,EAAG,KAAK,kBAAkB,QAAQ,oBAAoB,iBAAkB,KAAK,uBAAuB,EAAG,KAAK,+BAA+B,MAAO,EAAE,KAAK,6BAA6B,MAAO,EAAE,KAAK,mCAAmC,MAAK,CACnW,CAKD,IAAI,gBAAiB,CACnB,MAAO,CAAC,CAAC,KAAK,QACf,CAKD,YAAa,CACX,OAAO,KAAK,QACb,CACD,WAAW,EAAG,CACZ,GAAI,EAAE,CAAC,KAAK,UAAY,CAAC,IAAM,KAAK,iBAAmB,KAAK,SAAU,CACpE,MAAM,EAAI,EAAE,QAAQ,KAAK,gBAAiB,KAAK,kBAAkB,cAAc,EAC/E,GAAI,EAAG,CACL,KAAK,SAAS,OAAO,IAAI,EAAE,UAAU,SAAS,EAAG,EAAE,UAAU,SAAS,EAAG,EAAE,UAAU,SAAS,CAAC,EAAE,aAAa,KAAK,kBAAkB,kBAAkB,EACvJ,MAAM,EAAI,EAAE,UAAU,YACtBG,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG,KAAK,kBAAkB,MAAM,qBAAuBH,EAAE,2BAA2B,wBAAwBG,EAAE,WAAW,CAAC,EAAG,KAAK,SAAS,SAAS,GAAK,KAAK,SAAS,OAAO,GAAK,GAAIA,EAAE,WAAW,CAAC,EAAE,GAAK,GAAIA,EAAE,WAAW,CAAC,EAAE,GAAK,GAAIH,EAAE,0BAA0B,wBAAwBG,EAAE,WAAW,CAAC,EAAG,KAAK,SAAS,SAAS,GAAI,KAAK,mCAAmC,gBAAgB,KAAK,QAAQ,CACrb,CACF,CACF,CACD,OAAQ,CACN,KAAK,kBAAkB,WAAa,KAAK,kBAAkB,QAAQ,iBAAiB,mBAAoB,KAAK,yBAAyB,EAAG,KAAK,kBAAkB,QAAQ,iBAAiB,iBAAkB,KAAK,uBAAuB,EACxO,CACH,EACAk7E,GAAG,KAAOxzD,GAAG,aACbwzD,GAAG,QAAU,EACbtzD,GAAG,gBAAgBszD,GAAG,KAAOxqF,GAAM,IAAM,IAAIwqF,GAAGxqF,CAAC,EAAGwqF,GAAG,QAAS,EAAE,EAClE,IAAAC,IAAA,KAAS,CACP,YAAY,EAAG,EAAG,CAChB,KAAK,SAAW,GAAI,KAAK,KAAO,EAChC,QAAS,EAAI,EAAG,EAAI,EAAG,EAAE,EACvB,KAAK,SAAS,KAAK,EAAI,EAAC,EAAKv7E,GAAE,KAAI,CAAE,CACxC,CACD,IAAI,QAAS,CACX,OAAO,KAAK,SAAS,MACtB,CACD,KAAK,EAAG,EAAG,CACT,KAAK,MAAQ,KAAK,KAAO,KAAK,SAAS,OAAS,GAAK,KAAK,SAAS,OAAQ,KAAK,GAAG,CAAC,EAAE,eAAe,EAAG,CAAC,CAC1G,CACD,GAAG,EAAG,CACJ,GAAI,GAAK,KAAK,SAAS,OACrB,MAAM,IAAI,MAAM,qBAAqB,EACvC,OAAO,KAAK,UAAU,KAAK,KAAO,GAAK,KAAK,SAAS,MAAM,CAC5D,CACH,EACAw7E,IAAA,KAAS,CACP,aAAc,CACZ,KAAK,SAAW,IAAIC,IAAG,EAAE,EAAG,KAAK,SAAW,EAAG,KAAK,oBAAsB,IAAIlrF,EAC/E,CACD,OAAO,EAAG,EAAG,EAAG,EAAG,CACjB,KAAK,SAAS,KAAK,EAAG,CAAC,EACvB,MAAME,EAAI,KAAK,SAAS,GAAG,CAAC,EAC5B,GAAI,KAAK,UAAY,KAAK,oBAAqB,KAAK,UAAYuP,GAAE,SAASvP,EAAG,KAAK,SAAS,GAAG,CAAC,CAAC,EAAG,KAAK,SAAW,KAAK,kBACvH,OACF,IAAIC,EACJ,IAAKA,EAAI,KAAK,wBAAyBA,EAAI,KAAK,SAAS,QAAU,EAAEsP,GAAE,gBAAgBvP,EAAG,KAAK,SAAS,GAAGC,CAAC,CAAC,EAAI,KAAK,oCAAqC,EAAEA,EAC3J,CACF,GAAIA,IAAM,KAAK,SAAS,OACtB,OACF,IAAI,EAAI,GAAI,EAAI,EAChB,QAAS,EAAGwH,EAAI,EAAGA,EAAIxH,EAAG,EAAEwH,EAC1B,EAAI8H,GAAE,gBAAgBvP,EAAG,KAAK,SAAS,GAAGyH,CAAC,CAAC,EAAG,EAAI,IAAM,EAAIA,EAAG,EAAI,GACtE,GAAI,EAAI,KAAK,8BACX,OACF,MAAM,EAAI,KAAK,SAAS,GAAG,CAAC,EAAG,EAAI,EAAE,SAASzH,CAAC,EAC/C,EAAE,UAAS,EACX,MAAM,EAAI2P,EAAE,QAAQ,CAAC,EACrB,IAAI,EAAG9O,EAAGmF,EAAI,EACd,QAAS,EAAI,EAAG,EAAI/F,EAAG,EAAE,EACvBY,EAAI,KAAK,SAAS,GAAG,CAAC,EAAGA,EAAE,cAAcb,EAAG,CAAC,EAAG,EAAIuP,GAAE,IAAI,EAAG,CAAC,EAAGvJ,GAAK,EAAE,cAAa,EAAK,EAAI,EAChG,GAAIA,EAAI/F,EAAI,KAAK,oCACf,OACF,MAAMgG,EAAI0J,EAAE,QAAQ,CAAC,EACrB1J,EAAE,IAAI,EAAG,EAAG,CAAC,EACb,MAAMC,EAAIyJ,EAAE,QAAQ,CAAC,EACrBzJ,EAAE,IAAI,EAAE,EAAG,EAAE,EAAG,CAAC,EACjB,MAAMC,EAAIqJ,EAAE,MAAMvJ,EAAGC,CAAC,EAAE,EAAI,EAAGE,EAAIpG,EAAE,MAAK,EAAIwH,EAAIxH,EAAE,QACpD,EAAE,cAAcA,EAAG,CAAC,EAAGmG,GAAK,EAAE,iBAAiB,KAAK,wBAAyBC,CAAC,EAAG,EAAE,iBAAiB,KAAK,wBAAyBoB,CAAC,IAAM,EAAE,iBAAiB,KAAK,wBAAyBpB,CAAC,EAAG,EAAE,iBAAiB,KAAK,wBAAyBoB,CAAC,GAAI,KAAK,oBAAoB,gBAAgB,CAC3R,SAAUpB,EACV,UAAWoB,EACX,gBAAiBxH,EACjB,qBAAsBmG,EAAI,QAAU,MAC1C,CAAK,CACF,CACD,OAAQ,CACN,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,EAAE,EAC1C,KAAK,SAAS,GAAG,CAAC,EAAE,eAAe,EAAG,CAAC,CAC1C,CACD,IAAI,yBAA0B,CAC5B,OAAO,KAAK,MAAM,KAAK,SAAS,OAAS,CAAC,CAC3C,CACD,IAAI,oCAAqC,CACvC,MAAO,KAAO,GACf,CACD,IAAI,+BAAgC,CAClC,MAAO,KAAO,GACf,CACD,IAAI,qCAAsC,CACxC,MAAO,KAAO,GACf,CACD,IAAI,yBAA0B,CAC5B,MAAO,GACR,CACD,IAAI,yBAA0B,CAC5B,MAAO,IACR,CACD,IAAI,qBAAsB,CACxB,MAAO,IACR,CACD,IAAI,mBAAoB,CACtB,MAAO,GACR,CACH,EACA8kF,IAAA,KAAS,CACP,YAAY,EAAG,EAAG,EAAG,EAAG,CACtB,KAAK,UAAY,IAAI17E,GAAK,KAAK,WAAa,IAAIA,GAAK,KAAK,iBAAmB,IAAIA,GAAK,KAAK,MAAQ,IAAIA,GAAK,KAAK,YAAc,GAAI,KAAK,SAAW,IAAIA,GAAK,KAAK,cAAgB,GAAI,KAAK,GAAK,GAAI,KAAK,MAAQ,GAAI,KAAK,cAAgB,IAAIA,GAAK,KAAK,UAAY,EAAG,KAAK,WAAa,IAAIzP,GAAK,KAAK,WAAa,IAAIA,GAAK,KAAK,OAAO,EAAG,EAAG,EAAG,IAAM,MAAM,CAC9V,CACD,OAAO,EAAG,EAAG,EAAG,EAAG,CACjB,KAAK,UAAU,SAAS,CAAC,EAAG,KAAK,WAAW,SAAS,CAAC,EAAG,KAAK,cAAgB,EAAG,KAAK,eAAiB,KAAK,UAAU,cAAc,KAAK,WAAY,KAAK,KAAK,EAAG,KAAK,SAAS,eAAe,CAAC,KAAK,MAAM,EAAG,KAAK,MAAM,CAAC,IAAM,KAAK,WAAW,cAAc,KAAK,UAAW,KAAK,KAAK,EAAG,KAAK,SAAS,eAAe,KAAK,MAAM,EAAG,CAAC,KAAK,MAAM,CAAC,GAAI,KAAK,YAAc,KAAK,MAAM,OAAM,EAAI,KAAK,SAAS,aAAa,EAAI,KAAK,WAAW,EAAG,KAAK,oBAAoB,EAAE,EAAG,EAAE,CAAC,EAAG,KAAK,MAAQ,KAAK,GAAI,KAAK,cAAc,SAAS,CAAC,EAAG,KAAK,UAAY,CAC7hB,CACD,oBAAoB,EAAG,EAAG,CACxB,KAAK,iBAAiB,eAAe,EAAG,CAAC,EAAG,KAAK,cAAgB,KAAK,iBAAiB,gBAAgB,KAAK,UAAU,EAAI,KAAK,iBAAiB,gBAAgB,KAAK,SAAS,EAC9K,MAAM,EAAI,KAAK,GAAI,EAAIyP,GAAE,IAAI,KAAK,iBAAkB,KAAK,KAAK,EAC9D,KAAK,GAAK,GAAK,KAAK,YAAc,KAAK,aACvC,MAAMvP,EAAI,KAAK,iBAAiB,cAAa,EAAK,EAAI,KAAK,aAAe,EAAI,KAAK,aACnF,KAAK,WAAa,IAAO,IAAM,KAAK,IAAIA,EAAI,MAAO,CAAC,EAAI,KAAK,IAAI,KAAK,GAAK,EAAG,CAAC,CAChF,CACD,OAAO,EAAG,EAAG,CACX,GAAI,KAAK,UAAY,KAAK,mBACxB,MAAO,GACT,MAAM,EAAI,KAAK,GACf,OAAO,KAAK,oBAAoB,EAAG,CAAC,EAAG,KAAK,GAAK,KAAK,QAAU,KAAK,MAAQ,KAAK,GAAI,KAAK,cAAc,eAAe,EAAG,CAAC,GAAI,EAAE,KAAK,UAAY,KAAK,qBAAuB,KAAK,GAAK,IAAM,KAAK,WAAW,gBAAgB,CAAE,OAAQ,KAAK,GAAK,EAAG,EAAG,EAAI,IAAO,KAAK,IAAM,IAAO,KAAK,WAAW,gBAAgB,CAAE,KAAM,KAAK,cAAgB,OAAS,QAAS,GAAI,KAAK,GAAK,IAAO,KAAK,QAAU,KAAK,iBAAiB,eAAe,EAAG,CAAC,EAAG,KAAK,cAAgB,KAAK,UAAU,SAAS,KAAK,aAAa,EAAI,KAAK,WAAW,SAAS,KAAK,aAAa,EAAG,KAAK,OAAO,KAAK,UAAW,KAAK,WAAY,KAAK,iBAAkB,CAAC,KAAK,aAAa,GAAI,KAAK,YAAc,KACrpB,CACD,IAAI,oBAAqB,CACvB,MAAO,GACR,CACD,IAAI,SAAU,CACZ,OAAO,KAAK,QACb,CACH,EACAkrF,IAAA,MAAMC,EAAG,CACP,WAAW,wBAAyB,CAClC,MAAO,KAAM,EACd,CACD,YAAY,EAAG,CACb,KAAK,UAAY,IAAIC,IAAM,KAAK,QAAU,KAAM,KAAK,UAAY,IAAI77E,GAAK,KAAK,6BAA+B47E,GAAG,uBAAwB,KAAK,kBAAoB37E,EAAE,KAAI,EAAI,KAAK,QAAU,EAAG,KAAK,UAAU,oBAAoB,IAAK,GAAM,CAC1O,KAAK,UAAY,KAAK,QAAU,IAAI67E,IAAG,EAAE,SAAU,EAAE,UAAW,EAAE,gBAAiB,EAAE,oBAAoB,EAAG,KAAK,QAAQ,WAAW,IAAI,IAAM,CAC5IzoF,EAAE,IAAI,WAAW,CACzB,CAAO,EAAG,KAAK,QAAQ,WAAW,IAAK,GAAM,CACrC,KAAK,QAAQ,QAAQ,iBAAiB,KAAQ,EAAE,OAAQ,KAAK,SAAS,CACvE,GACP,CAAK,CACF,CACD,OAAO,EAAG,EAAG,CACX,EAAE,EAAI,EAAG,EAAE,UAAW,EAAE,KAAK,8BAAgC,KAAK,QAAQ,aAAc,EAAE,KAAK,8BAAgCuoF,GAAG,yBAA2B,KAAK,8BAAgCA,GAAG,uBAAwB,KAAK,UAAU,OAAO,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG,KAAK,UAAY,KAAK,QAAQ,OAAO,EAAE,EAAG,EAAE,CAAC,IAAM,KAAK,QAAU,OAAQ,KAAK,UAAU,aAAa,GAAI,GAAI,KAAK,kBAAkB,IAAI,KAAK,UAAU,EAAG,EAAG,KAAK,UAAU,CAAC,CACvb,CACH,KACA,cAAiBzgC,EAAG,CAIlB,WAAW,MAAO,CAChB,OAAOrzB,GAAG,kBACX,CAMD,WAAW,SAAU,CACnB,MAAO,EACR,CASD,IAAI,kBAAmB,CACrB,OAAO,KAAK,iBACb,CASD,IAAI,iBAAiB,EAAG,CACtB,KAAK,kBAAoB,EAAG,KAAK,+BAAiC,KAAK,kBAAkB,aAAc,IAAK,aAC7G,CAMD,YAAY,EAAG,EAAG,CAChB,MAAM,CAAC,EAAG,KAAK,IAAM,IAAI7nB,EAAK,KAAK,SAAW,IAAIA,EAAK,KAAK,UAAY,IAAIA,EAAK,KAAK,UAAY,IAAIA,EAAK,KAAK,gBAAkB,EAAG,KAAK,iBAAmB,EAAE,iBAAkB,KAAK,gCAAkC5M,EAAE,KAAK,8JAA8J,CAC9X,CAMD,cAAe,CACb,OAAO,KAAK,gBAAgB,cAAgB,QAAU,KAAK,gBAAgB,cAAgB,cAC5F,CAMD,QAAS,CACP,MAAO,CAAC,KAAK,cAAgB,CAAC,MAAM,OAAQ,EAAG,IAAM,KAAK,QAAU,IAAIuoF,IAAG,KAAK,gBAAgB,MAAM,WAAW,EAAG,GACrH,CAMD,QAAS,CACP,OAAO,MAAM,OAAM,GAAM,KAAK,QAAU,KAAM,IAAM,EACrD,CACD,WAAW,EAAG,CACZ,MAAM,EAAI,EAAE,cAAc,KAAK,gBAAgB,kBAAkB,EACjE,GAAI,CAAC,EACH,OACF,MAAM,EAAI,KAAK,iBAAiB,SAAU,EAAC,qBAAuB,EAAI,GAAI,EAAI,EAAE,UAAU,OAC1F,KAAK,IAAI,eAAe,EAAE,CAAC,EAAG,EAAE,CAAC,EAAG,EAAI,EAAE,CAAC,CAAC,EAAG,KAAK,SAAS,eAAe,EAAE,CAAC,EAAG,EAAE,CAAC,EAAG,EAAI,EAAE,EAAE,CAAC,EAAG,KAAK,UAAU,eAAe,EAAE,EAAE,EAAG,EAAE,EAAE,EAAG,EAAI,EAAE,EAAE,CAAC,EAAG,KAAK,SAAS,iBAAiB,IAAM,KAAK,SAAS,EAAG,KAAK,IAAI,iBAAiB,KAAO,KAAK,SAAS,EAAG,KAAK,QAAQ,OAAO,KAAK,UAAW,KAAK,QAAQ,EAAG,KAAK,UAAU,SAAS,KAAK,QAAQ,iBAAiB,EAAG,KAAK,gCAAkC37E,EAAE,qBAAqB,KAAK,UAAW,KAAK,iBAAiB,eAAgB,EAAE,KAAK,SAAS,EAAG,KAAK,iBAAiB,SAAS,WAAW,KAAK,SAAS,CACjjB,CACH,EACA+nB,GAAG,gBAAgB+zD,GAAG,KAAM,CAACjrF,EAAG,IAAM,IAAM,IAAIirF,GAAGjrF,EAAG,CAAC,EAAGirF,GAAG,QAAS,EAAE,UACxE,cAAiB51D,EAAG,CAClB,YAAY,EAAG,EAAG,EAAG,EAAG11B,EAAGC,EAAG,EAAI,KAAM,CACtC,MAAM,EAAG,EAAG,EAAG,EAAGA,CAAC,EAAG,KAAK,SAAW,EAAG,KAAK,UAAY,EAAG,KAAK,MAAQ,EAAG,KAAK,UAAY,EAAG,KAAK,YAAcD,EAAG,KAAK,kBAAoBC,EAAG,KAAK,yBAA2B,CACpL,CACH,MACA,cAAiB21B,EAAG,CAClB,YAAY,EAAG,EAAG,EAAG,CACnB,MAAM,EAAE,MAAO,CAAC,EAAG,KAAK,kBAAoB,EAAG,KAAK,gBAAkB,EAAG,KAAK,aAAe,EAAG,KAAK,eAAiC,IAAI,IAAO,KAAK,uCAAyC,IAAI91B,GAAK,KAAK,kBAAoB,EAAE,KACpO,CACD,4BAA4B,EAAG,EAAI,OAAQ,CACzC,MAAM,EAAI,KAAK,eAAe,IAAI,CAAC,EAAG,EAAI,GAAK,QAAU,EAAI,EAAGE,EAAI,EAAE,mBAAqB,EAAE,aAAcC,EAAI,EAAE,oBAAsB,EAAE,cACzI,GAAI,CAAC,KAAK,sBAAsB,CAAC,GAA2B,GAAE,eAAkBD,GAA2B,GAAE,gBAAmBC,EAAG,CACjI,IAAI,EACJ,MAAM,EAAI,EAAE,0BAA4BD,EAAG,EAAI,EAAE,2BAA6BC,GAC7ED,IAAM,GAAKC,IAAM,KAAO,EAAI,EAAE,qBAAsB,KAAK,sBAAsB,CAAC,EAAI,KAAK,2BAA2BD,EAAGC,EAAG,KAAM,EAAE,aAAc,EAAG,KAAK,aAAa,WAAW,EAAG,KAAK,uBAAyB,CAChN,iBAAkBD,EAClB,kBAAmBC,CACpB,EAAE,KAAK,uCAAuC,gBAAgB,CAAE,QAAS,KAAK,sBAAsB,CAAC,EAAG,IAAK,CAAG,EAClH,CACD,OAAO,KAAK,eAAe,IAAI,EAAG,CAAC,EAAG,KAAK,sBAAsB,CAAC,CACnE,CACD,mBAAmB,EAAG,CACpB,MAAM,EAAI,KAAK,kBAAkB,aACjC,OAAO,EAAI,KAAK,gBAAgB,YAAY,KAAK,kBAAmB,EAAG,CAAC,EAAI,IAC7E,CACD,6BAA6B,EAAG,CAC9B,MAAM,EAAI,KAAK,mBAAmB,CAAC,EACnC,OAAO,EAAI,KAAK,4BAA4B,EAAG,CAAC,EAAI,IACrD,CACD,8BAA8B,EAAG,CAC/B,OAAO,KAAK,6BAAkD,GAAE,GAAG,CACpE,CACD,wBAAwB,EAAG,EAAG,CAC5B,MAAM,EAAI,EAAE,mBAAqB,EAAE,aAAc,EAAI,EAAE,oBAAsB,EAAE,cAAeD,EAAI,EAAE,SACpG,EAAE,EAAIA,EAAE,EAAI,EAAG,EAAE,EAAIA,EAAE,EAAI,EAAG,EAAE,MAAQA,EAAE,MAAQ,EAAG,EAAE,OAASA,EAAE,OAAS,CAC5E,CACD,sBAAsB,EAAG,EAAG,CAC1B,MAAM,EAAI,KAAK,eAAe,IAAI,EAAE,GAAG,GAAK,KAAK,mBAAmB,EAAE,GAAG,EACzE,OAAO,GAAK,KAAK,wBAAwB,EAAG,CAAC,EAAG,IAAM,EACvD,CACH,MACA,cAAiBurF,GAAG,CAClB,YAAY,EAAG,EAAG,EAAG,CACnB,MAAM,IAAM,EAAE,aAAc,IAAM,EAAE,cAAe,EAAG,oBAAqB,EAAI,GAAM,IAAIC,IAAG,EAAG,EAAG,IAAI,CAAC,EAAG,KAAK,MAAQ,CACxH,CACH,MACA,cAAiBC,GAAG,CAClB,YAAY,EAAG,EAAG,EAAG,CACnB,MAAM,EAAG,EAAG,CAAC,EAAG,KAAK,aAAe,EAAG,KAAK,iBAAmB,EAAE,KAClE,CACD,oBAAoB,EAAG,CACrB,OAAO,KAAK,gBAAgB,gBAAgB,KAAK,iBAAkB,CAAC,CACrE,CACD,8BAA8B,EAAG,CAC/B,OAAO,KAAK,4BAA4B,KAAK,oBAAoB,CAAC,EAAG,EAAE,GAAG,CAC3E,CACD,6BAA6B,EAAG,CAC9B,MAAM,EAAI,KAAK,eAAe,IAAI,CAAC,EACnC,OAAO,EAAI,KAAK,4BAA4B,EAAG,CAAC,EAAI,IACrD,CACD,sBAAsB,EAAG,EAAG,CAC1B,MAAM,EAAI,KAAK,eAAe,IAAI,EAAE,GAAG,GAAK,KAAK,oBAAoB,CAAC,EACtE,OAAO,GAAK,KAAK,wBAAwB,EAAG,CAAC,EAAG,IAAM,EACvD,CACH,EACA,MAAMC,GAAK,CACT,YAAa,UACb,YAAa,KACb,YAAa,MACb,YAAa,EACb,cAAe,EACjB,EAAGC,IAAK,UACR,cAAiBjhC,EAAG,CAClB,YAAY,EAAG,EAAI,GAAI,CACrB,MAAM,CAAC,EAAG,KAAK,SAAW,EAAG,KAAK,gBAAkB,CAAE,EAAE,KAAK,oBAAsB,GAAI,KAAK,4BAA8B,GAAI,KAAK,gCAAkD,IAAI,QAAW,KAAK,2BAA6C,IAAI,QAAW,KAAK,oBAAsB,QACjS,CAOD,QAAS,CACP,GAAI,CAAC,MAAM,OAAQ,EACjB,MAAO,GACT,MAAM,EAAI,KAAK,kBAAkB,MAAM,UAAS,EAChD,KAAK,WAAa,EAAE,IAAK,KAAK,gBAAkB,IAAI,eAAe,KAAK,kBAAkB,QAAS,KAAK,UAAU,EAAG,KAAK,gBAAgB,OAAS,EACnJ,MAAM,EAAI,CAAE,GAAGghC,GAAI,GAAG,KAAK,SAAS,qBACpC,OAAO,KAAK,oBAAsB,KAAK,SAAS,uBAAyB,EAAE,QAAS,EAAC,UAAW,KAAK,sBACnG,CAED,EAAE,KAAK,4BAA8B,GAAI,EAC3C,CACD,QAAS,CACP,OAAO,MAAM,UAAY,KAAK,gBAAgB,QAAS,GAAM,CAC3D,EAAE,QAAO,CACV,GAAG,KAAK,gBAAgB,OAAS,EAAG,KAAK,4BAA8B,GAAI,IAAM,EACnF,CAMD,mBAAmB,EAAIC,IAAI,CACzB,MAAM,EAAI,IAAI,aAAa,KAAK,kBAAkB,QAAS,KAAK,WAAY,CAAC,EAC7E,OAAO,IAAI31D,GAAG,CAAC,CAChB,CACD,mBAAmB,EAAG,EAAI,KAAK,oBAAqB,CAClD,GAAI,CAAC,KAAK,kBAAkB,YAC1B,MAAM,IAAI,MAAM,6GAA6G,EAC/H,GAAI,GAAK,EAAE,cAAgB,gBACzB,MAAM,IAAI,MAAM,4HAA4H,EAC9I,GAAI,CAAC,GAAK,EAAE,cAAgB,gBAC1B,MAAM,IAAI,MAAM,yGAAyG,CAC5H,CACD,mBAAmB,EAAG,EAAI,KAAK,oBAAqB,CAClD,OAAO,IAAM,EAAE,YAAc,iBAAkB,CAChD,CAOD,sBAAsB,EAAI01D,GAAI,EAAI,KAAK,oBAAqB,CAC1D,KAAK,mBAAmB,EAAG,CAAC,EAAG,KAAK,mBAAmB,EAAG,CAAC,EAC3D,MAAM,EAAI,KAAK,gBAAgB,sBAAsB,CAAC,EAAG,EAAI,IAAIE,IAAG,EAAG,EAAG,KAAK,eAAe,EAC9F,OAAO,KAAK,kBAAkB,CAAC,EAAG,CACnC,CAOD,iBAAiB,EAAI,CAAE,OAAQ,CAAE,GAAI,EAAG,CACtC,KAAK,mBAAmB,EAAE,OAAQ,EAAE,EACpC,MAAM,EAAI,KAAK,gBAAgB,CAAC,EAAE,MAAM,aAAc,EAAI,KAAK,gBAAgB,CAAC,EAAE,MAAM,cAAe5rF,EAAI,CACzG,MAAO,KAAK,kBAAkB,eAC9B,eAAgB,EAChB,gBAAiB,EACjB,cAAe,GACf,GAAG,EAAE,MACX,EACI,KAAK,mBAAmBA,EAAG,EAAE,EAC7B,MAAMC,EAAI,KAAK,gBAAgB,gBAAgBD,CAAC,EAChDC,EAAE,MAAQ,KAAK,oBAAsB,EAAI,EAAGA,EAAE,OAAS,EACvD,MAAM,EAAI,IAAIsrF,IAAG,IAAMtrF,EAAE,MAAO,IAAMA,EAAE,OAAQA,EAAG,cAAe,GAAK,GAAM,IAAIwrF,IAAG,EAAG,KAAK,gBAAiB,CAAC,CAAC,EAC/G,GAAK,KAAK,gCAAgC,IAAIxrF,EAAG,CAAC,EAClD,MAAM,EAAI,EAAE,kCAAkC,KAAK,iBAAiB,EACpE,OAAO,KAAK,2BAA2B,IAAIA,EAAG,CAAC,EAAG,KAAK,kBAAkB,CAAC,EAAG,CAC9E,CASD,oCAAoC,EAAG,EAAI,CAAE,oBAAqB,GAAG,EAAI,CACvE,MAAM,EAAI,KAAK,iBAAiB,CAC9B,OAAQ,CACN,MAAO,KAAK,kBAAkB,qBAC9B,YAAa,UACb,OAAQ,MACT,CACF,EAAE,CAAC,EAAG,EAAI,EAAE,MAAO,EAAI,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,KAAK,IAAI,GAAK,EAAE,mBAAmB,CAAG,EAAE2D,EAAI,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC9G,EAAE,UAAY,IAAI,iBAAiB,EAAGA,CAAC,EACvC,MAAMrB,EAAI,KAAK,2BAA2B,IAAI,CAAC,EAC/C,GAAI,CAACA,EACH,MAAM,IAAI,MAAM,+CAA+C,EACjE,MAAMD,EAAI,KAAK,kBAAkB,MAAM,OAAO,KAAM4G,GAAMA,EAAE,UAAY,CAAC,EACzE,GAAI,CAAC5G,EACH,MAAM,IAAI,MAAM,kDAAkD,EACpE,OAAOC,EAAE,uCAAuC,IAAK2G,GAAM,CACzDA,EAAE,KAAOA,EAAE,MAAQ,UAAYA,EAAE,QAAQ,WAAa,IAAIgK,GAAG,EAAG,EAAG,EAAG,CAAC,EAAG5Q,EAAE,qBAAqB,KAAK4G,EAAE,OAAO,EAAG5G,EAAE,iCAAmC,GAAI,KAAK,kBAAkB,MAAM,yBAAyB,IAAI,IAAM,CACzN4G,EAAE,QAAQ,QAClB,CAAO,EAAG5G,EAAE,qBAAqB,KAAK4G,EAAE,OAAO,EAAG5G,EAAE,iCAAmC,GAAI,KAAK,kBAAkB,iBAAiB,QAAQ,IAAM,CACzIA,EAAE,qBAAqB,OAAOA,EAAE,qBAAqB,QAAQ4G,EAAE,OAAO,EAAG,CAAC,EAAG5G,EAAE,iCAAmC,EACnH,GACF,GAAG,CACL,CASD,oBAAoB,EAAG,CACrB,MAAM,EAAI,KAAK,iBAAiB,CAC9B,OAAQ,CACN,MAAO,KAAK,kBAAkB,qBAC9B,YAAa,UACb,OAAQ,MACT,CACP,CAAK,EAAG,EAAI,EAAE,MACV,EAAE,MAAQ,EAAG,EAAE,OAAS,EACxB,MAAMtC,EAAI,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,GAAK,EAAE,EAAI,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC7D,EAAE,UAAY,IAAI,iBAAiBA,EAAG,CAAC,EACvC,MAAM4D,EAAI,KAAK,2BAA2B,IAAI,CAAC,EAC/C,GAAI,CAACA,EACH,MAAM,IAAI,MAAM,+CAA+C,EACjE,OAAOA,EAAE,uCAAuC,IAAKrB,GAAM,CACzDA,EAAE,QAAQ,WAAa,IAAI2Q,GAAG,EAAG,EAAG,EAAG,CAAC,EAAG3Q,EAAE,QAAQ,qBAAuB,IAAM,CAChF,EAAE,OAAM,CAChB,CACK,GAAG,KAAK,kBAAkB,gBAAgB,IAAI,IAAM,CACnD,KAAK,kBAAkB,MAAM,iBAAiB,OAAO,KAAK,kBAAkB,MAAM,iBAAiB,QAAQ,CAAC,EAAG,CAAC,CACjH,GAAG,KAAK,kBAAkB,iBAAiB,IAAI,IAAM,CACpD,KAAK,kBAAkB,MAAM,iBAAiB,KAAK,CAAC,CACrD,GAAG,CACL,CAKD,kBAAkB,EAAG,CACnB,KAAK,gBAAgB,KAAK,CAAC,EAAG,KAAK,mBAAmB,KAAK,eAAe,CAC3E,CAUD,mBAAmB,EAAI,KAAK,gBAAiB,CAC3C,MAAM,EAAI,CAAE,GAAG,KAAK,kBAAkB,QAAQ,aAC9C,EAAE,UAAY,OAAQ,EAAE,OAAS,EAAE,IAAK,GAAM,EAAE,KAAK,EAAG,KAAK,kBAAkB,kBAAkB,CAAC,EAAG,KAAK,6BAA+B,KAAK,kBAAkB,qBAAqB,EAAE,OAAS,EAAI,EAAE,GAAG,CAAC,EAAI,IAAI,CACnN,CACD,cAAe,CACb,MAAO,CAAC,KAAK,kBAAkB,UAAY,OAAO,eAAiB,KAAO,CAAC,CAAC,eAAe,UAAU,qBACtG,CAID,SAAU,CACR,MAAM,QAAO,CACd,CACD,WAAW,EAAG,CACZ,MAAM,EAAI,KAAK,gBACf,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,EAAE,EAAG,CACjC,MAAM,EAAI,EAAE,CAAC,EACb,GAAI,EAAE,YAAc,oBAAqB,CACvC,MAAMvC,EAAI,KAAK,2BAA2B,IAAI,EAAE,KAAK,EACrD,GAAI,CAACA,EACH,SACF,GAAIA,EAAE,aAAa,YAAa,CAC9B,MAAMC,EAAI,EAAE,cAAc,KAAK,kBAAkB,cAAc,EAC/D,GAAIA,EAAG,CACL,MAAM,EAAIA,EAAE,MACZ,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,EAAE,EAAG,CACjC,MAAM,EAAI,EAAE,CAAC,EACbD,EAAE,8BAA8B,CAAC,CAClC,CACF,CACF,MACCA,EAAE,8BAA6B,CAClC,CACF,CACF,CACH,EACA6rF,GAAG,KAAOx0D,GAAG,OACbw0D,GAAG,QAAU,EACbt0D,GAAG,gBAAgBs0D,GAAG,KAAM,CAACxrF,EAAG,IAAM,IAAM,IAAIwrF,GAAGxrF,EAAG,CAAC,EAAGwrF,GAAG,QAAS,EAAE,SACxE,cAAiBnhC,EAAG,CAIlB,IAAI,OAAQ,CACV,OAAO,KAAK,MACb,CAID,IAAI,QAAS,CACX,OAAO,KAAK,OACb,CAID,IAAI,kBAAmB,CACrB,OAAO,KAAK,iBACb,CAID,IAAI,6BAA8B,CAChC,OAAO,KAAK,4BACb,CAID,IAAI,YAAa,CACf,OAAQ,KAAK,kBAAkB,QAAQ,WAAU,CAC/C,IAAK,gBACH,MAAO,MACT,IAAK,gBACH,MAAO,KACV,CACF,CAID,IAAI,iBAAkB,CACpB,OAAQ,KAAK,kBAAkB,QAAQ,gBAAe,CACpD,IAAK,kBACH,MAAO,SACT,IAAK,UACH,MAAO,OACV,CACF,CAKD,IAAI,uBAAwB,CAC1B,GAAI,CAAC,KAAK,oBACR,OAAO,KACT,MAAM,EAAI,KAAK,kBAAkB,MAAM,UAAW,EAAE,EAAI,IAAIpqD,GAC1D,EACA,CAEN,EACI,OAAO,EAAE,OAAS,GAAI,EAAE,QAAU,GAAI,EAAE,eAAiB,GAAI,EAAE,OAAS,KAAK,kBAAoB,SAAW,EAAI,EAAG,EAAE,gBAAkB,GAAI,EAAE,KAAO,KAAK,kBAAoB,SAAW,EAAI,EAAG,EAAE,aAAe,EAAG,EAAE,MAAQ,KAAK,OAAS,EAAG,EAAE,OAAS,KAAK,QAAU,EAAG,EAAE,aAAe,EAAG,EAAE,aAAe,EAAG,EAAE,iBAAmB,IAAI8I,GAAG,KAAK,oBAAqB,EAAE,GAAG,EAAG,CAClX,CAID,IAAI,mBAAoB,CACtB,OAAO,KAAK,mBAAqB,KAAK,kBAAoB,SAAW,IAAI,YAAY,KAAK,kBAAkB,EAAI,IAAI,aAAa,KAAK,kBAAkB,EAAI,IAC7J,CAID,IAAI,yBAA0B,CAC5B,OAAO,KAAK,wBACb,CAMD,YAAY,EAAG,EAAG,CAChB,MAAM,CAAC,EAAG,KAAK,QAAU,EAAG,KAAK,OAAS,KAAM,KAAK,QAAU,KAAM,KAAK,kBAAoB,KAAM,KAAK,6BAA+B,KAAM,KAAK,mBAAqB,KAAM,KAAK,oBAAsB,KAAM,KAAK,yBAA2B,KAAM,KAAK,4BAA8B,IAAItJ,GAAK,KAAK,oBAAsB,gBAAiB8N,GAAE,KAAK,wDAAwD,CAC7Y,CAOD,OAAO,EAAG,CACR,MAAO,CAAC,MAAM,OAAO,CAAC,GAAK,KAAK,kBAAkB,QAAQ,iBAAmB,MAAQ,KAAK,kBAAkB,QAAQ,YAAc,KAAO,IAAM,KAAK,WAAa,IAAI,eAAe,KAAK,kBAAkB,QAAS,KAAK,kBAAkB,MAAM,UAAW,EAAC,GAAG,EAAG,GACpQ,CAID,SAAU,CACR,IAAI,GACH,EAAI,KAAK,2BAA6B,MAAQ,EAAE,SAClD,CACD,WAAW,EAAG,CACZ,MAAM,EAAI,KAAK,kBAAkB,eAAgB,EAAI,EAAE,cAAc,CAAC,EACtE,GAAI,GAAK,KACP,UAAW,KAAK,EAAE,MAChB,OAAQ,KAAK,WAAU,CACrB,IAAK,MACH,KAAK,+CAA+C,EAAG,EAAG,KAAK,eAAe,EAC9E,MACF,IAAK,MACH,GAAI,CAAC,KAAK,WACR,MACF,KAAK,iDAAiD,KAAK,WAAY,EAAG,KAAK,eAAe,EAC9F,MACF,QACEA,GAAE,MAAM,qBAAqB,EAAG,KAAK,OAAM,EAC3C,KACH,CACN,CACD,+CAA+C,EAAG,EAAG,EAAG,CACtD,MAAM,EAAI,EAAE,oBAAoB,CAAC,EACjC,GAAI,IAAM,KACR,OACF,KAAM,CAAE,KAAM5N,EAAG,MAAOC,EAAG,OAAQ,EAAG,iBAAkB,EAAG,iBAAkB,CAAC,EAAK,EACnF,OAAQ,KAAK,OAASA,EAAG,KAAK,QAAU,EAAG,KAAK,kBAAoB,EAAG,KAAK,mBAAqBD,EAAG,KAAK,4BAA4B,gBAAgB,EAAE,KAAK,CAAC,CAAC,EAAG,KAAK,2BAA6B,KAAK,yBAA2B8sC,GAAG,eAAe,KAAM7sC,EAAG,EAAG,KAAK,kBAAkB,MAAO,GAAI,GAAI6jB,GAAE,qBAAsBtZ,GAAG,iBAAiB,GAAI,EAAC,CACtV,IAAK,SACH,KAAK,yBAAyB,OAAO,aAAa,KAAK,IAAI,YAAYxK,CAAC,CAAC,EAAE,IAAK,GAAM,EAAI,CAAC,CAAC,EAC5F,MACF,IAAK,QACH,KAAK,yBAAyB,OAAO,IAAI,aAAaA,CAAC,EAAE,IAAK,GAAM,EAAI,CAAC,CAAC,EAC1E,KACH,CACF,CACD,iDAAiD,EAAG,EAAG,EAAG,CACxD,MAAM,EAAI,EAAE,oBAAoB,CAAC,EACjC,GAAI,IAAM,KACR,OACF,KAAM,CAAE,QAASA,EAAG,MAAOC,EAAG,OAAQ,CAAG,EAAG,EAC5C,KAAK,OAASA,EAAG,KAAK,QAAU,EAAG,KAAK,oBAAsBD,EAC9D,MAAM,EAAI,KAAK,kBAAkB,MAAOkJ,EAAI,EAAE,UAAW,EAAC,iBAAiBlJ,CAAC,EAC5E,KAAK,2BAA6B,KAAK,yBAA2B8sC,GAAG,eAAe,KAAM7sC,EAAG,EAAG,EAAG,GAAI,GAAI6jB,GAAE,qBAAsB,IAAM,SAAWtZ,GAAG,0BAA4BA,GAAG,iBAAiB,GAAI,KAAK,yBAAyB,SAAWtB,CACrP,CAKD,2BAA4B,CAC1B,MAAM,EAAI,KAAK,QAAQ,iBAAmB,MAAQ,KAAK,QAAQ,gBAAgB,SAAW,EAAG,EAAI,KAAK,QAAQ,sBAAwB,MAAQ,KAAK,QAAQ,qBAAqB,SAAW,EAC3L,OAAO,IAAI,QAAS,GAAM,CACxB,GAAI,GAAK,EAAG,CACV,MAAM,EAAI,KAAK,QAAQ,gBAAgB,IAAKjJ,GAAM,CAChD,OAAQA,EAAC,CACP,IAAK,MACH,MAAO,gBACT,IAAK,MACH,MAAO,eACV,CACX,CAAS,EAAGD,EAAI,KAAK,QAAQ,qBAAqB,IAAKC,GAAM,CACnD,OAAQA,EAAC,CACP,IAAK,SACH,MAAO,kBACT,IAAK,QACH,MAAO,SACV,CACX,CAAS,EACD,EAAE,CACA,aAAc,CACZ,gBAAiB,EACjB,qBAAsBD,CACvB,CACX,CAAS,CACF,MACC,EAAE,CAAE,EACZ,CAAK,CACF,CACH,EACA8rF,GAAG,KAAOz0D,GAAG,cACby0D,GAAG,QAAU,EACbv0D,GAAG,gBAAgBu0D,GAAG,KAAM,CAACzrF,EAAG,IAAM,IAAM,IAAIyrF,GAAGzrF,EAAG,CAAC,EAAGyrF,GAAG,QAAS,EAAE,EACxE,MAAMC,IAAK,sBAAuBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASvCxoF,GAAE,aAAauoF,GAAE,EAAIC,IACrB,MAAMC,IAAK,uBAAwBC,IAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAsBxC1oF,GAAE,aAAayoF,GAAE,EAAIC,WACrB,cAAiBhnE,EAAG,CAQlB,YAAY,EAAG,EAAG,EAAG,EAAI,IAAK,CAC5B,MAAM,gBAAiB,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,OAAQ,GAAI,GAAI,GAAI,OAAQ,EAAE,EAAG,KAAK,iBAAmB,GAAI,KAAK,uBAAyB,GAAI,KAAK,oBAAsB,CAACtV,EAAE,WAAYA,EAAE,UAAU,EAAG,KAAK,cAAgB,KAAK,SAAU,EAAC,UAAS,EAAG,mCAAmC,KAAK,eAAc,EAAI,KAAK,gBAAe,EAAI,EAAG,CAAC,EAAG,KAAK,cAAc,yBAA2B,GAAI,KAAK,SAAW,KAAK,cAAc,QAAS,KAAK,SAAS,YAAc,GAAI,KAAK,SAAS,OAAS,EAAG,IAAM,KAAK,kBAAoB,IAAIovB,GAAG,2BAA4B,EAAG,CACziB,OAAQ,WACR,SAAU,UAChB,EAAO,CACD,SAAU,CAAC,QAAS,gBAAiB,iBAAkB,kBAAmB,yBAA0B,yBAAyB,CAC9H,GAAG,KAAK,kBAAkB,qCAAuC,GAAI,KAAK,kBAAkB,iBAAiB,IAAKh/B,GAAM,CACvH,KAAK,uBAAuBA,EAAE,QAAQ,EAAI,KAAK,uBAAuBA,EAAE,QAAQ,GAAKA,EAAE,eAAc,EAAI,KAAK,kBAAkB,UAAW,EAAC,UAAU,gBAAiB,KAAK,uBAAuBA,EAAE,QAAQ,CAAC,EAAG,KAAK,uBAAuBA,EAAE,QAAQ,EAAIA,EAAE,eAAgB,EAAE,KAAK,kBAAkB,UAAS,EAAG,UAAU,yBAA0B,KAAK,oBAAoB,CAAC,CAAC,EAAG,KAAK,kBAAkB,UAAW,EAAC,UAAU,0BAA2B,KAAK,oBAAoB,CAAC,CAAC,EAAG,KAAK,oBAAoB,CAAC,EAAE,SAAS,EAAE,mBAAoB,GAAG,KAAK,oBAAoB,CAAC,EAAE,SAAS,EAAE,iBAAiB,CACjlB,GAAG,KAAK,kBAAkB,OAAQ,EACpC,CACD,OAAO,EAAI,GAAI,EAAI,GAAI,CACrB,KAAK,iBAAiB,OAAS,EAC/B,MAAM,EAAI,KAAK,WACf,GAAK,KAAK,mBAAqB,EAAE,kBAAkB,QAAS,GAAM,CAChE,KAAK,iBAAiB,KAAK,CAAC,EAAG,EAAE,QAAQ,CAAC,EAAG,EAAE,SAAW,KAAK,iBACrE,CAAK,EAAG,MAAM,OAAO,EAAG,CAAC,EAAG,KAAK,iBAAiB,QAAS,GAAM,CAC3D,EAAE,CAAC,EAAE,SAAW,EAAE,CAAC,CACzB,CAAK,CACF,CAID,kBAAmB,CACjB,KAAK,eAAiB,KAAK,SAAU,EAAC,UAAS,EAAG,yBAAyB,KAAK,aAAa,CAC9F,CAKD,cAAe,CACb,MAAO,EACR,CACD,SAAU,CACR,MAAM,QAAO,EAAI,KAAK,kBAAkB,QAAS,EAAE,KAAK,oBAAoB,OAAS,EAAG,KAAK,uBAAuB,OAAS,EAAG,KAAK,iBAAiB,OAAS,CAChK,CACH,EACAmsF,GAAA,KAAS,CACP,YAAY,EAAG,EAAG,EAAG,CACnB,KAAK,OAAS,EAAG,KAAK,kBAAoB,EAAG,KAAK,gBAAkB,EAAG,KAAK,eAAiC,IAAI,IAAO,KAAK,sBAAwC,IAAI,IAAO,KAAK,QAAU,EAAE,WAClM,CACD,oBAAoB,EAAG,CACrB,MAAM,EAAI,KAAK,kBAAkB,qBAAoB,EACrD,GAAI,CAAC,EACH,MAAM,IAAI,MAAM,oEAAoE,EACtF,GAAI,EAAE,YAAc,oBAClB,MAAM,IAAI,MAAM,iEAAiE,EACnF,MAAM,EAAI,EAAE,MACZ,OAAO,KAAK,gBAAgB,gBAAgB,EAAG,CAAC,CACjD,CACD,wBAAwB,EAAG,EAAG,CAC5B,EAAE,EAAI,EAAG,EAAE,EAAI,EAAG,EAAE,MAAQ,EAAE,yBAA0B,EAAE,OAAS,EAAE,yBACtE,CACD,2BAA2B,EAAG,EAAG,EAAG,EAAGnsF,EAAG,CACxC,GAAI,CAAC,KAAK,QACR,MAAM,IAAI,MAAM,oBAAoB,EACtC,MAAMC,EAAI,CAAE,MAAO,EAAG,OAAQ,CAAC,EAAI,EAAI,IAAImsF,GAAG,EAAGpsF,EAAG,KAAK,OAAQC,CAAC,EAAG,EAAI,EAAE,aAC3E,OAAO,IAAM,EAAE,aAAe,GAAI,EAAE,mBAAqB,EAAG,EAAE,0BAA4BD,EAAG,EAAE,mBAAoB,EAAE,oBAAsB,IAAM,GAAI,CACtJ,CACD,4BAA4B,EAAG,EAAG,CAChC,MAAM,EAAI,KAAK,eAAe,IAAI,CAAC,EACnC,IAAI,EAAI,KAAK,sBAAsB,IAAI,EAAE,GAAG,EAC5C,MAAMA,EAAI,EAAE,yBAA0BC,EAAI,EAAE,0BAC5C,OAAQ,CAAC,GAA2B,GAAE,eAAkBD,GAA2B,GAAE,eAAkBC,KAAO,EAAI,KAAK,2BAA2BD,EAAGC,EAAG,KAAM,EAAE,oBAAqB,EAAE,mBAAmB,EAAG,KAAK,sBAAsB,IAAI,EAAE,IAAK,CAAC,EAAG,KAAK,uBAAyB,CACnR,iBAAkBD,EAClB,kBAAmBC,CACzB,GAAQ,KAAK,eAAe,IAAI,EAAG,CAAC,EAAG,CACpC,CACD,sBAAsB,EAAG,EAAG,CAC1B,MAAM,EAAI,KAAK,eAAe,IAAI,CAAC,GAAK,KAAK,oBAAoB,CAAC,EAClE,OAAO,GAAK,KAAK,wBAAwB,EAAG,CAAC,EAAG,IAAM,EACvD,CAKD,mBAAmB,EAAG,CACpB,MAAM,EAAI,KAAK,oBAAoB,CAAC,EACpC,IAAM,EAAE,oBAAqB,EAAE,oBAChC,CACD,6BAA6B,EAAG,CAC9B,OAAO,IACR,CACD,8BAA8B,EAAG,CAC/B,MAAM,EAAI,KAAK,oBAAoB,CAAC,EACpC,OAAO,EAAI,KAAK,4BAA4B,EAAG,CAAC,EAAI,IACrD,CACD,SAAU,CACR,KAAK,sBAAsB,QAAS,GAAM,EAAE,QAAO,CAAE,EAAG,KAAK,sBAAsB,MAAK,CACzF,CACH,KACA,cAAiByqD,EAAG,CAKlB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,uBAAyB,KAAM,KAAK,UAAY,CAACrzB,GAAG,MAAM,EAAG,KAAK,oBAAsB,aAAc,KAAK,kBAAkB,MAAM,2BAA6B,EAChL,CAOD,QAAS,CACP,GAAI,CAAC,MAAM,OAAQ,EACjB,MAAO,GACT,MAAM,EAAI,KAAK,kBAAkB,MAAM,UAAS,EAChD,OAAO,KAAK,WAAa,EAAE,IAAK,KAAK,gBAAkB,IAAI,eAAe,KAAK,kBAAkB,QAAS,KAAK,UAAU,EAAG,KAAK,qBAAuB,IAAIg1D,GAAG,KAAK,kBAAkB,MAAO,KAAK,kBAAmB,KAAK,eAAe,EAAG,KAAK,uBAAyB,KAAK,kBAAkB,MAAM,wBAAwB,IAAI,IAAM,KAAK,eAAgB,GAAG,EAClW,CACD,QAAS,CACP,OAAO,KAAK,kBAAkB,MAAM,wBAAwB,OAAO,KAAK,sBAAsB,EAAG,MAAM,QACxG,CACD,gBAAiB,CACf,KAAK,UAAY,KAAK,sBAAwB,KAAK,qBAAqB,OAAO,GAAI,EAAE,CACtF,CACD,cAAe,CACb,OAAO,KAAK,kBAAkB,MAAM,UAAW,EAAC,QAAS,EAAC,sBAAwB,EACnF,CACD,SAAU,CACR,MAAM,QAAO,CACd,CACD,WAAW,EAAG,CACZ,MAAM,EAAI,EAAE,cAAc,KAAK,kBAAkB,cAAc,EAC/D,GAAI,CAAC,EACH,OACF,MAAM,EAAI,EAAE,MAAM,CAAC,EACnB,KAAK,qBAAuB,KAAK,sBAAwB,KAAK,qBAAqB,8BAA8B,CAAC,EAAG,KAAK,qBAAqB,mBAAmB,CAAC,CACpK,CACH,EACAC,GAAG,KAAOj1D,GAAG,WACbi1D,GAAG,QAAU,EACb/0D,GAAG,gBAAgB+0D,GAAG,KAAOjsF,GAAM,IAAM,IAAIisF,GAAGjsF,CAAC,EAAGisF,GAAG,QAAS,EAAE,SAClE,cAAiB5hC,EAAG,CAMlB,YAAY,EAAG,EAAI,GAAI,CACrB,MAAM,CAAC,EAAG,KAAK,QAAU,EAAG,KAAK,wBAA0B,CAAE,EAAE,KAAK,aAAe,GAAI,KAAK,UAAY,GAAI,KAAK,iBAAmB,CAAE,EAAE,KAAK,4BAA8B,IAAI5qD,GAAK,KAAK,oBAAsB,eAChN,CACD,OAAO,EAAG,CACR,OAAO,MAAM,OAAO,CAAC,GAAK,KAAK,WAAa,KAAK,kBAAkB,MAAM,UAAW,EAAC,IAAK,KAAK,WAAa,IAAI,eAAe,KAAK,kBAAkB,QAAS,KAAK,UAAU,EAAG,IAAM,EACxL,CACD,QAAS,CACP,OAAO,MAAM,OAAM,GAAM,KAAK,WAAa,OAAQ,KAAK,QAAQ,uBAAyB,KAAK,wBAAwB,QAAS,GAAM,EAAE,QAAS,GAAG,KAAK,aAAa,QAAS,GAAM,EAAE,SAAS,EAAG,KAAK,wBAAwB,OAAS,EAAG,KAAK,aAAa,OAAS,EAAG,KAAK,iBAAiB,OAAS,GAAI,IAAM,EACnT,CAID,SAAU,CACR,MAAM,QAAS,EAAE,KAAK,4BAA4B,MAAK,CACxD,CAMD,wBAAwB,EAAG,EAAG,CAC5B,MAAM,EAAI,CACR,MAAO,EAAE,OAAO,MAChB,OAAQ,EAAE,OAAO,OACjB,EAAG,EACH,EAAG,CACT,EAAO,EAAI,EAAE,iBAAkBE,GAAK,EAAI,EAAE,CAAC,GAAK,EAAE,MAAQ,EAAI,EAAE,EAAGC,GAAK,EAAI,EAAE,CAAC,GAAK,EAAE,OAAS,EAAI,EAAE,EAAG,EAAI,EAAE,MAAQ,EAAI,EAAE,CAAC,EAAG,EAAI,EAAE,OAAS,EAAI,EAAE,CAAC,EAAG,EAAI,EAAE,MAAQ,EAAI,EAAE,CAAC,EAC1K,KAAK,iBAAiB,CAAC,EAAI,CACzB,GAAID,EACJ,GAAIC,EACJ,GAAI,EACJ,GAAI,EACJ,MAAO,EACP,MAAO,EAAE,MACT,OAAQ,EAAE,OACV,UAAW,EAAE,EACb,UAAW,EAAE,CACnB,CACG,CACD,wBAAwB,EAAG,EAAI,EAAG,CAChC,IAAIQ,EAAGT,EACP,GAAI,CAAC,EAAE,OACL,MAAO,GACT,KAAK,UAAU,CAAC,EAAI,EAAE,IACtB,MAAMQ,GAAKC,EAAI,KAAK,aAAe,KAAO,OAASA,EAAE,eAAe,EAAE,MAAM,EAC5E,GAAI,KAAK,wBAAwB,CAAC,GAC/BT,EAAI,KAAK,wBAAwB,CAAC,EAAE,mBAAqB,MAAQA,EAAE,IAAIQ,CAAC,MACtE,CACH,MAAMP,EAAI,IAAIK,GAAG,KAAK,kBAAkB,MAAM,YAAa,EAAG,EAAE,EAChEL,EAAE,QAAU,GAAIA,EAAE,OAAS,EAAGA,EAAE,gBAAkB,GAAIA,EAAE,KAAO,EAAGA,EAAE,aAAe,EAAGA,EAAE,MAAQ,EAAE,OAAO,MAAOA,EAAE,OAAS,EAAE,OAAO,OAAQA,EAAE,aAAe,EAAGA,EAAE,aAAe,EAAGA,EAAE,iBAAmB,IAAImJ,GAAG5I,EAAG,KAAK,UAAU,EAAG,KAAK,wBAAwB,CAAC,EAAIP,EACvQ,MAAM,EAAI,IAAIsjB,GAAG,KAAK,kBAAkB,KAAK,EAC7C,EAAE,KAAO,4BAA4B,CAAC,IAAK,EAAE,SAAW,KAAK,wBAAwB,CAAC,EAAG,KAAK,aAAa,CAAC,EAAI,EAAG,KAAK,wBAAwB,EAAG,CAAC,CACrJ,CACD,OAAO,KAAK,wBAAwB,CAAC,EAAE,QAAU,GAAI,EACtD,CACD,WAAW,EAAG,CACZ,MAAM,EAAI,KAAK,kBAAkB,eAAgB,EAAI,EAAE,cAAc,CAAC,EACtE,GAAI,CAAC,GAAK,CAAC,EAAE,MACX,OACF,IAAI,EAAI,GACR,EAAE,MAAM,QAAQ,CAACvjB,EAAGC,IAAM,CACxB,EAAI,GAAK,KAAK,wBAAwBD,EAAGC,CAAC,CAChD,CAAK,EAAG,GAAK,KAAK,4BAA4B,gBAAgB,KAAK,YAAY,CAC5E,CACH,EACAssF,GAAG,KAAOl1D,GAAG,kBACbk1D,GAAG,QAAU,EACbh1D,GAAG,gBAAgBg1D,GAAG,KAAM,CAAClsF,EAAG,IAAM,IAAM,IAAIksF,GAAGlsF,EAAG,CAAC,EAAGksF,GAAG,QAAS,EAAE,SACxE,cAAiBziC,EAAG,CAOlB,YAAY,EAAG,EAAG,EAAG,CACnB,MAAM,EAAG0iC,IAAG,CAAC,EAAG,EAAG,EAAG,EAAE,EAAG,KAAK,UAAY,2BAC7C,CACD,qBAAsB,CACpB,MAAO,CACL,SAAU,kBACV,KAAM,4CACZ,CACG,CACD,6BAA8B,CAC5B,MAAO,EACR,CACD,oBAAoB,EAAG,CACtB,CACD,aAAa,EAAG,CACf,CACD,cAAe,CACd,CACH,EACAriC,GAAG,mBAAmB,4BAA6B,CAAC9pD,EAAG,IAAM,IAAIosF,GAAG,EAAGpsF,EAAE,QAASA,EAAE,UAAU,CAAC,EAC/F,MAAMmsF,IAAK,CACT,KAAM,CACJ,kBAAmB,sBACnB,WAAY,CAEV,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CAAE,CACpB,EACD,MAAO,CACL,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,QACd,gBAAiB,CAAE,CACpB,CACF,EACD,eAAgB,cAChB,aAAc,iCACd,UAAW,UACZ,EACD,MAAO,CACL,kBAAmB,sBACnB,WAAY,CAEV,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CAAE,CACpB,EACD,MAAO,CACL,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,QACd,gBAAiB,CAAE,CACpB,CACF,EACD,eAAgB,cAChB,aAAc,kCACd,UAAW,WACZ,EACD,KAAM,CACJ,kBAAmB,sBACnB,WAAY,CAEV,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CAAE,CACpB,EACD,MAAO,CACL,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,QACd,gBAAiB,CAAE,CACpB,CACF,EACD,eAAgB,cAChB,aAAc,iCACd,UAAW,UACZ,CACH,SACA,MAAME,WAAW5iC,EAAG,CAClB,YAAY,EAAG,EAAG,EAAG,CACnB,MAAM,EAAG6iC,IAAG,YAAY,EAAG,EAAG,CAAC,EAAG,KAAK,SAAW,CAChD,cAAe,CACb,cAAe,QACf,kBAAmB,YACnB,gBAAiB,SAClB,EACD,YAAa,CACX,cAAe,QACf,YAAa,MACb,YAAa,KACd,EACD,QAAS,CACP,sBAAuB,CACrB,aAAc,SACd,kBAAmB,SACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,CACzC,EACD,sBAAuB,CACrB,aAAc,QACd,kBAAmB,QACnB,OAAQ,CAAC,SAAS,CACnB,EACD,uBAAwB,CACtB,aAAc,iBACd,oBAAqB,gBACrB,mBAAoB,OAErB,EACD,yBAA0B,CACxB,aAAc,mBACd,kBAAmB,QACnB,OAAQ,CAAC,SAAS,CACnB,CACF,EACD,KAAM,CACJ,uBAAwB,CACtB,SAAU,CACR,aAAc,kBACf,EACD,SAAU,CACR,aAAc,kBACf,CACF,EACD,yBAA0B,CACxB,SAAU,CACR,aAAc,cACf,EACD,SAAU,CACR,aAAc,cACf,CACF,CACF,CACP,EAAO,KAAK,UAAY,yBACrB,CACD,qBAAsB,CACpB,IAAI,EAAI,GACR,KAAK,aAAe,OAAS,EAAID,GAAG,oBAAsB,EAAIA,GAAG,qBACjE,MAAMlsF,EAAIksF,GAAG,eAAiB,WAC9B,MAAO,CACL,SAAU,EACV,KAAMlsF,CACZ,CACG,CACD,6BAA8B,CAC5B,MAAM,EAAImpD,GAAG,8BAA8B,MAAM,EACjD,OAAO,GAAK/mD,EAAE,KAAK,wEAAwE,EAAG,CAC/F,CACD,oBAAoB,EAAG,CACrB,KAAK,WAAa,KAAK,gBAAiB,EAAC,QAAQ,CAAC,EAAG,IAAM,CACzD,GAAI,CAAC,KAAK,kBAAoB,GAAK,KAAK,SAAU,CAChD,MAAM,EAAI,KAAK,SAAS,QAAQ,CAAC,EAAG5C,EAAI,EAAE,aAC1C,GAAI,CAACA,EAAG,CACN4C,EAAE,IAAI,qCAAuC,EAAI,sBAAwB,CAAC,EAC1E,MACD,CACD,MAAM3C,EAAI,KAAK,gBAAgB,KAAK,SAAUD,CAAC,EAC/C,GAAI,CAACC,EAAG,CACN2C,EAAE,KAAK,kCAAoC5C,CAAC,EAC5C,MACD,CACD,GAAI,EAAE,UAAY,KAAK,yBAAyBC,EAAG,KAAK,SAAS,cAAc,aAAa,EAAG,EAAE,YAAc,KAAK,yBAAyBA,EAAG,KAAK,SAAS,cAAc,eAAe,EAAG,EAAE,cAAgB,KAAK,yBAAyBA,EAAG,KAAK,SAAS,cAAc,iBAAiB,EAAG,EAAE,WAAa,EAAE,aAAe,EAAE,cAAe,CAChV,MAAM,EAAI,KAAK,aAAa,CAAC,EAC7B,GAAK,EAAE,+BAA+B,IAAK,GAAM,CAC/C,KAAK,eAAe,EAAG,EAAE,KAAK,CAC1C,EAAa,OAAQ,EAAE,CACd,MACC2C,EAAE,KAAK,gDAAkD5C,CAAC,CAC7D,CACF,GAAG,KAAK,gBAAiB,EAAC,QAAS,GAAM,CACxC,MAAM,EAAI,KAAK,aAAa,CAAC,EAC7B,EAAE,OAAM,GAAM,CAAC,SAAU,QAAQ,EAAE,QAAS,GAAM,CAChD,GAAI,CAAC,KAAK,SACR,OACF,MAAMA,EAAI,KAAK,SAAS,KAAK,CAAC,EAAE,CAAC,EAAGC,EAAI,KAAK,gBAAgB,KAAK,SAAUD,EAAE,YAAY,EAC1F,GAAI,CAACC,EAAG,CACN2C,EAAE,KAAK,gCAAkC5C,EAAE,YAAY,EACvD,MACD,CACDA,EAAE,UAAY,KAAK,yBAAyBC,EAAG,KAAK,SAAS,YAAY,aAAa,EAAGD,EAAE,QAAU,KAAK,yBAAyBC,EAAG,KAAK,SAAS,YAAY,WAAW,EAAGD,EAAE,QAAU,KAAK,yBAAyBC,EAAG,KAAK,SAAS,YAAY,WAAW,EAAGD,EAAE,WAAaA,EAAE,SAAWA,EAAE,QAAU,GAAK,EAAE,6BAA6B,IAAK,GAAM,CACxV,MAAM,EAAI,IAAM,SAAW,EAAE,EAAI,EAAE,EACnC,KAAK,eAAeA,EAAG,EAAG,EAAE,CACtC,EAAW,OAAQ,EAAE,EAAI4C,EAAE,KAAK,8CAAgD5C,EAAE,YAAY,CAC9F,CAAO,CACF,GACF,CACD,aAAa,EAAG,CACd,KAAK,SAAW,IAAIiyB,GAAE,KAAK,UAAY,IAAM,KAAK,WAAY,KAAK,KAAK,EAAG,KAAK,SAAS,WAAa,GACtG,IAAI,EACJ,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,CACjC,MAAM,EAAI,EAAE,CAAC,EACb,EAAE,WAAa,GAAI,EAAE,SAAW,EAAI,EACrC,CACD,GAAK,EAAE,UAAU,KAAK,QAAQ,EAAG,KAAK,MAAM,uBAAyB,KAAK,SAAS,mBAAqBxiB,GAAG,gBAAgB,EAAG,KAAK,GAAI,CAAC,EACzI,CACD,cAAe,CACd,CACH,EACAi9E,GAAG,eAAiB,+CACpBA,GAAG,oBAAsB,WACzBA,GAAG,qBAAuB,YAC1BviC,GAAG,mBAAmB,wBAAyB,CAAC9pD,EAAG,IAAM,IAAIqsF,GAAG,EAAGrsF,EAAE,QAASA,EAAE,UAAU,CAAC,EAC3F,MAAMssF,IAAK,CACT,KAAM,CACJ,kBAAmB,sBACnB,WAAY,CACV,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CACf,4BAA6B,CAC3B,kBAAmB,SACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,oCACf,YAAa,kCACb,YAAa,iCACd,CACF,CACF,EACD,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CACf,4BAA6B,CAC3B,kBAAmB,SACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,oCACf,YAAa,kCACb,YAAa,iCACd,CACF,CACF,EACD,uBAAwB,CACtB,KAAM,WACN,eAAgB,CACd,OAAQ,EACR,MAAO,EACP,MAAO,CACR,EACD,aAAc,uBACd,gBAAiB,CACf,6BAA8B,CAC5B,kBAAmB,SACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,qCACf,YAAa,mCACb,YAAa,kCACd,EACD,mCAAoC,CAClC,kBAAmB,QACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,2CACf,YAAa,yCACb,YAAa,wCACd,EACD,mCAAoC,CAClC,kBAAmB,QACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,2CACf,YAAa,yCACb,YAAa,wCACd,EACD,mCAAoC,CAClC,kBAAmB,QACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,2CACf,YAAa,yCACb,YAAa,wCACd,EACD,mCAAoC,CAClC,kBAAmB,QACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,2CACf,YAAa,yCACb,YAAa,wCACd,EACD,kCAAmC,CACjC,kBAAmB,QACnB,OAAQ,CAAC,UAAW,SAAS,EAC7B,kBAAmB,aACnB,cAAe,yCAChB,CACF,EACD,mBAAoB,yCACrB,EACD,yBAA0B,CACxB,KAAM,aACN,eAAgB,CACd,OAAQ,EACR,MAAO,EACP,MAAO,CACR,EACD,aAAc,yBACd,gBAAiB,CACf,+BAAgC,CAC9B,kBAAmB,SACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,uCACf,YAAa,qCACb,YAAa,oCACd,EACD,qCAAsC,CACpC,kBAAmB,QACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,6CACf,YAAa,2CACb,YAAa,0CACd,EACD,qCAAsC,CACpC,kBAAmB,QACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,6CACf,YAAa,2CACb,YAAa,0CACd,CACF,CACF,CACF,EACD,eAAgB,cAChB,aAAc,+BACd,UAAW,UACZ,EACD,MAAO,CACL,kBAAmB,sBACnB,WAAY,CACV,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CACf,4BAA6B,CAC3B,kBAAmB,SACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,oCACf,YAAa,kCACb,YAAa,iCACd,CACF,CACF,EACD,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CACf,4BAA6B,CAC3B,kBAAmB,SACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,oCACf,YAAa,kCACb,YAAa,iCACd,CACF,CACF,EACD,uBAAwB,CACtB,KAAM,WACN,eAAgB,CACd,OAAQ,EACR,MAAO,EACP,MAAO,CACR,EACD,aAAc,uBACd,gBAAiB,CACf,6BAA8B,CAC5B,kBAAmB,SACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,qCACf,YAAa,mCACb,YAAa,kCACd,EACD,mCAAoC,CAClC,kBAAmB,QACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,2CACf,YAAa,yCACb,YAAa,wCACd,EACD,mCAAoC,CAClC,kBAAmB,QACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,2CACf,YAAa,yCACb,YAAa,wCACd,EACD,mCAAoC,CAClC,kBAAmB,QACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,2CACf,YAAa,yCACb,YAAa,wCACd,EACD,mCAAoC,CAClC,kBAAmB,QACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,2CACf,YAAa,yCACb,YAAa,wCACd,EACD,kCAAmC,CACjC,kBAAmB,QACnB,OAAQ,CAAC,UAAW,SAAS,EAC7B,kBAAmB,aACnB,cAAe,yCAChB,CACF,EACD,mBAAoB,yCACrB,EACD,yBAA0B,CACxB,KAAM,aACN,eAAgB,CACd,OAAQ,EACR,MAAO,EACP,MAAO,CACR,EACD,aAAc,yBACd,gBAAiB,CACf,+BAAgC,CAC9B,kBAAmB,SACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,uCACf,YAAa,qCACb,YAAa,oCACd,EACD,qCAAsC,CACpC,kBAAmB,QACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,6CACf,YAAa,2CACb,YAAa,0CACd,EACD,qCAAsC,CACpC,kBAAmB,QACnB,OAAQ,CAAC,UAAW,UAAW,SAAS,EACxC,kBAAmB,YACnB,cAAe,6CACf,YAAa,2CACb,YAAa,0CACd,CACF,CACF,CACF,EACD,eAAgB,cAChB,aAAc,gCACd,UAAW,WACZ,CACH,SACA,MAAMC,WAAW9iC,EAAG,CAClB,YAAY,EAAG,EAAG,EAAG,EAAI,GAAI9pD,EAAI,GAAI,CACnC,MAAM,EAAG6sF,IAAG,CAAC,EAAG,EAAG,CAAC,EAAG,KAAK,wBAA0B7sF,EAAG,KAAK,UAAY,cAC3E,CACD,qBAAsB,CACpB,IAAI,EAAI,GACR,KAAK,aAAe,OAAS,EAAI4sF,GAAG,oBAAsB,EAAIA,GAAG,qBACjE,MAAM,EAAI,KAAK,SAAQ,EAAKA,GAAG,qBAAuBA,GAAG,eACzD,MAAO,CACL,SAAU,EACV,KAAM,CACZ,CACG,CACD,6BAA8B,CAC5B,MAAO,EACR,CACD,oBAAoB,EAAG,CACrB,MAAM,EAAI,KAAK,SAAQ,EAAI,EAAI,KAAK,aAAe,QAAU,GAAK,EAClE,KAAK,gBAAe,EAAG,QAAS,GAAM,CACpC,MAAM5sF,EAAI,GAAK,KAAK,aAAa,CAAC,EAClCA,GAAKA,EAAE,+BAA+B,IAAKC,GAAM,CAC/C,GAAI,EAAE,CAAC,KAAK,UAAY,KAAK,kBAC3B,OAAQ,EAAC,CACP,IAAK,sBACH,IAAM,KAAK,eAAe,YAAW,EAAG,CAAC,EAAE,SAAS,EAAI,CAACA,EAAE,MAAQ,GAAK,KAAK,eAAe,YAAW,EAAG,CAAC,EAAE,SAAS,EAAI,CAACA,EAAE,MAAQ,KAAM,KAAK,eAAe,YAAa,EAAC,CAAC,EAAE,SAAS,EAAI,CAACA,EAAE,MAAQ,MACxM,OACF,IAAK,sBACH,IAAM,KAAK,eAAe,YAAW,EAAG,CAAC,EAAE,SAAS,EAAI,EAAIA,EAAE,MAAQ,OACtE,OACF,IAAK,yBACH,OACF,IAAK,WACL,IAAK,WACH,IAAMA,EAAE,QAAU,KAAK,eAAe,YAAa,EAAC,CAAC,EAAE,SAAS,EAAI,MAAQ,KAAK,eAAe,YAAa,EAAC,CAAC,EAAE,SAAS,EAAI,GAC9H,OACF,IAAK,WACL,IAAK,WACH,IAAMA,EAAE,QAAU,KAAK,eAAe,YAAa,EAAC,CAAC,EAAE,SAAS,EAAI,MAAQ,KAAK,eAAe,YAAa,EAAC,CAAC,EAAE,SAAS,EAAI,GAC9H,MACH,CACX,EAAS,OAAQ,EAAE,CACnB,CAAK,CACF,CACD,aAAa,EAAG,CACd,KAAK,SAAW,IAAIgyB,GAAE,KAAK,UAAY,IAAM,KAAK,WAAY,KAAK,KAAK,EAAG,KAAK,MAAM,uBAAyB,KAAK,SAAS,mBAAqBxiB,GAAG,gBAAgB,EAAG,KAAK,GAAI,CAAC,GAAI,EAAE,QAAS,GAAM,CACrM,EAAE,WAAa,EAChB,GAAG,KAAK,WAAa,KAAK,eAAiB,EAAE,CAAC,GAAK,KAAK,eAAiB,EAAE,CAAC,EAAG,KAAK,SAAS,SAAS,EAAI,KAAO,KAAK,SAAS,SAAS,EAAI,MAAQ,KAAK,eAAe,OAAS,KAAK,QACxL,CACD,cAAe,CACd,CAMD,UAAW,CACT,MAAO,CAAC,CAAC,UAAU,UAAU,MAAM,SAAS,GAAK,CAAC,KAAK,uBACxD,CACH,EACAm9E,GAAG,eAAiB,4CACpBA,GAAG,oBAAsB,eACzBA,GAAG,qBAAuB,gBAC1BA,GAAG,qBAAuB,iDAC1BziC,GAAG,mBAAmB,eAAgB,CAAC9pD,EAAG,IAAM,IAAIusF,GAAG,EAAGvsF,EAAE,QAASA,EAAE,UAAU,CAAC,EAClF8pD,GAAG,mBAAmB,sBAAuB,CAAC9pD,EAAG,IAAM,IAAIusF,GAAG,EAAGvsF,EAAE,QAASA,EAAE,WAAY,EAAE,CAAC,EAC7F,MAAMwsF,IAAK,CACT,KAAM,CACJ,kBAAmB,sBACnB,WAAY,CACV,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CAAE,CACpB,EACD,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CAAE,CACpB,EACD,yBAA0B,CACxB,KAAM,aACN,eAAgB,CACd,OAAQ,EACR,MAAO,EACP,MAAO,CACR,EACD,aAAc,yBACd,gBAAiB,CAAE,CACpB,EACD,WAAY,CACV,KAAM,SACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,WACd,gBAAiB,CAAE,CACpB,EACD,WAAY,CACV,KAAM,SACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,WACd,gBAAiB,CAAE,CACpB,EACD,UAAW,CACT,KAAM,SACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,YACd,gBAAiB,CAAE,CACpB,CACF,EACD,eAAgB,cAChB,aAAc,uBACd,UAAW,UACZ,EACD,MAAO,CACL,kBAAmB,sBACnB,WAAY,CACV,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CAAE,CACpB,EACD,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CAAE,CACpB,EACD,yBAA0B,CACxB,KAAM,aACN,eAAgB,CACd,OAAQ,EACR,MAAO,EACP,MAAO,CACR,EACD,aAAc,yBACd,gBAAiB,CAAE,CACpB,EACD,WAAY,CACV,KAAM,SACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,WACd,gBAAiB,CAAE,CACpB,EACD,WAAY,CACV,KAAM,SACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,WACd,gBAAiB,CAAE,CACpB,EACD,UAAW,CACT,KAAM,SACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,YACd,gBAAiB,CAAE,CACpB,CACF,EACD,eAAgB,cAChB,aAAc,wBACd,UAAW,WACZ,CACH,SACA,MAAMC,WAAWhjC,EAAG,CAOlB,YAAY,EAAG,EAAG,EAAG,CACnB,MAAM,EAAGijC,IAAG,CAAC,EAAG,EAAG,CAAC,EAAG,KAAK,UAAY,UACzC,CACD,qBAAsB,CACpB,MAAM,EAAID,GAAG,eAAgB,EAAIA,GAAG,eACpC,MAAO,CACL,SAAU,EACV,KAAM,CACZ,CACG,CACD,6BAA8B,CAC5B,MAAO,EACR,CACD,oBAAoB,EAAG,CACrB,KAAK,gBAAe,EAAG,QAAS,GAAM,CACpC,MAAM,EAAI,GAAK,KAAK,aAAa,CAAC,EAClC,GAAK,EAAE,+BAA+B,IAAK,GAAM,CAC/C,GAAI,EAAE,CAAC,KAAK,UAAY,KAAK,kBAC3B,OAAQ,EAAC,CACP,IAAK,sBACH,KAAK,eAAe,YAAa,EAAC,CAAC,EAAE,SAAS,EAAI,CAAC,EAAE,MAAQ,IAC7D,OACF,IAAK,uBACH,OACF,IAAK,sBACH,MACH,CACX,EAAS,OAAQ,EAAE,CACnB,CAAK,CACF,CACD,aAAa,EAAG,CACd,KAAK,SAAW,IAAI76D,GAAE,KAAK,UAAY,IAAM,KAAK,WAAY,KAAK,KAAK,EAAG,EAAE,QAAS,GAAM,CAC1F,EAAE,WAAa,EAChB,GAAG,KAAK,eAAiB,EAAE,CAAC,EAAG,KAAK,eAAe,OAAS,KAAK,SAAU,KAAK,MAAM,uBAAyB,KAAK,SAAS,mBAAqBxiB,GAAG,gBAAgB,EAAG,KAAK,GAAI,CAAC,EACpL,CACD,cAAe,CACd,CACH,EACAq9E,GAAG,eAAiB,0CACpBA,GAAG,eAAiB,eACpB3iC,GAAG,mBAAmB,WAAY,CAAC9pD,EAAG,IAAM,IAAIysF,GAAG,EAAGzsF,EAAE,QAASA,EAAE,UAAU,CAAC,EAC9E,MAAM0sF,IAAK,CACT,KAAM,CACJ,kBAAmB,sBACnB,WAAY,CACV,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CAAE,CACpB,EACD,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CAAE,CACpB,EACD,uBAAwB,CACtB,KAAM,WACN,eAAgB,CACd,OAAQ,EACR,MAAO,EACP,MAAO,CACR,EACD,aAAc,uBACd,gBAAiB,CAAE,CACpB,EACD,KAAM,CACJ,KAAM,SACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,OACd,gBAAiB,CAAE,CACpB,CACF,EACD,eAAgB,cAChB,aAAc,gBACd,UAAW,UACZ,EACD,MAAO,CACL,kBAAmB,sBACnB,WAAY,CACV,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CAAE,CACpB,EACD,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CAAE,CACpB,EACD,uBAAwB,CACtB,KAAM,WACN,eAAgB,CACd,OAAQ,EACR,MAAO,EACP,MAAO,CACR,EACD,aAAc,uBACd,gBAAiB,CAAE,CACpB,EACD,KAAM,CACJ,KAAM,SACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,OACd,gBAAiB,CAAE,CACpB,CACF,EACD,eAAgB,cAChB,aAAc,gBACd,UAAW,UACZ,EACD,KAAM,CACJ,kBAAmB,sBACnB,WAAY,CACV,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CAAE,CACpB,EACD,sBAAuB,CACrB,KAAM,UACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,sBACd,gBAAiB,CAAE,CACpB,EACD,uBAAwB,CACtB,KAAM,WACN,eAAgB,CACd,OAAQ,EACR,MAAO,EACP,MAAO,CACR,EACD,aAAc,uBACd,gBAAiB,CAAE,CACpB,EACD,KAAM,CACJ,KAAM,SACN,eAAgB,CACd,OAAQ,CACT,EACD,aAAc,OACd,gBAAiB,CAAE,CACpB,CACF,EACD,eAAgB,cAChB,aAAc,gBACd,UAAW,UACZ,CACH,EACA,IAAAC,GAAA,KAAS,CACP,IAAI,SAAU,CACZ,OAAO,KAAK,YAAY,OACzB,CACD,YAAY,EAAG,CACb,KAAK,YAAc,EAAG,KAAK,aAAe,IAAI,iBAAoB,KAAK,QAAU,CAC/E,UAAW,KAAK,aAChB,iBAAkB,EACxB,EAAO,KAAK,kBAAoB,IAAI,aAAa,CAAC,EAAG,KAAK,UAAY,KAAK,YAAY,UAAU,KAAK,KAAK,WAAW,EAAG,KAAK,cAAgB,KAAK,YAAY,cAAc,KAAK,KAAK,WAAW,EAAG,KAAK,kBAAoB,KAAK,YAAY,kBAAkB,KAAK,KAAK,WAAW,EAAG,KAAK,mCAAqC,IAAM,CACnU,MAAM,IAAI,MAAM,qEAAqE,CACtF,EAAE,KAAK,aAAe,KAAK,YAAY,aAAa,KAAK,KAAK,WAAW,EAAG,KAAK,aAAe,KAAK,YAAY,aAAa,KAAK,KAAK,WAAW,EAAG,KAAK,eAAiB,KAAK,YAAY,eAAe,KAAK,KAAK,WAAW,EAAG,KAAK,iBAAmB,IAAM,CACjQ,MAAM,IAAI,MAAM,mDAAmD,CACzE,EAAO,KAAK,wBAA0B,IAAM,KAAK,YAAY,uBAAyB,EACnF,CACD,QAAQ,EAAG,EAAG,CACZ,GAAI,CAAC,KAAK,YAAY,YAAY,EAAG,EAAG,KAAK,kBAAkB,OAAQ,KAAK,aAAa,OAAO,MAAM,EACpG,OACF,MAAM,EAAI,KAAK,aAAa,SAC5B,EAAE,EAAI,KAAK,kBAAkB,CAAC,EAAG,EAAE,EAAI,KAAK,kBAAkB,CAAC,EAAG,EAAE,EAAI,KAAK,kBAAkB,CAAC,EAAG,EAAE,EAAI,KAAK,kBAAkB,CAAC,EACjI,MAAM,EAAI,KAAK,aAAa,YAC5B,OAAO,EAAE,EAAI,KAAK,kBAAkB,CAAC,EAAG,EAAE,EAAI,KAAK,kBAAkB,CAAC,EAAG,EAAE,EAAI,KAAK,kBAAkB,CAAC,EAAG,EAAE,EAAI,KAAK,kBAAkB,CAAC,EAAG,KAAK,OACjJ,CACD,IAAI,gBAAiB,CACnB,OAAO,KAAK,YAAY,cACzB,CACD,IAAI,kBAAmB,CACrB,OAAO,KAAK,YAAY,gBACzB,CACD,IAAI,gBAAiB,CACnB,OAAO,KAAK,YAAY,cACzB,CACD,IAAI,mBAAoB,CACtB,OAAO,KAAK,YAAY,iBACzB,CACD,oBAAoB,EAAG,CACrB,MAAM,IAAI,MAAM,kDAAkD,CACnE,CACH,EACA3tC,IAAG,gBAAiB4tC,EAAE,EACtB,MAAM/zD,IAAqB,OAAO,OAAuB,OAAO,eAAe,CAC7E,UAAW,KACX,IAAI,UAAW,CACb,OAAO60B,EACR,EACD,+BAAgCm/B,IAChC,cAAeD,GACf,yCAA0Ch3D,GAC1C,qBAAsBM,GACtB,qBAAsBF,GACtB,qBAAsBq0B,GACtB,8BAA+BZ,GAC/B,kBAAmBggC,GACnB,uBAAwBG,GACxB,YAAa7yD,GACb,yBAA0BqyB,GAC1B,wBAAyBkhC,GACzB,uBAAwBR,GACxB,gCAAiC1/B,GACjC,uBAAwBmE,GACxB,8BAA+BF,IAC/B,kBAAmBo9B,GACnB,gBAAiBpB,GACjB,iBAAkB78B,GAClB,uBAAwBC,GACxB,wBAAyBH,IACzB,sBAAuB90B,GACvB,iBAAkBgyD,GAClB,iBAAkBxzD,GAClB,wBAAyBgzD,GACzB,qBAAsB9yD,GACtB,2BAA4Bk1D,GAC5B,oCAAqC5iC,GACrC,6BAA8BijC,GAC9B,UAAWz+B,GACX,IAAI,gBAAiB,CACnB,OAAOL,EACR,EACD,kBAAmBI,GACnB,aAAcg8B,GACd,mBAAoBR,GACpB,mBAAoBa,GACpB,WAAY57B,GACZ,iBAAkBtE,GAClB,sCAAuC30B,GACvC,YAAai2D,GACb,qBAAsBjB,GACtB,yBAA0Bt0D,GAC1B,gCAAiCR,GACjC,kBAAmBy0D,GACnB,qCAAsCmC,GACtC,6BAA8BviC,GAC9B,mCAAoCsE,GACpC,IAAI,yBAA0B,CAC5B,OAAOlB,EACR,EACD,qBAAsBC,GACtB,iCAAkCo/B,GAClC,mBAAoB5C,GACpB,8BAA+B9/B,GAC/B,qBAAsBqiC,GACtB,oBAAqBn2D,GACrB,eAAgBk2D,GAChB,0CAA2CD,GAC3C,IAAI,YAAa,CACf,OAAO3C,EACR,EACD,IAAI,oBAAqB,CACvB,OAAOC,EACR,EACD,uBAAwB2B,GACxB,wBAAyBc,EAC3B,EAAG,OAAO,YAAa,CAAE,MAAO,QAAQ,CAAE,CAAC,EACxC,IAACe,IACH,SAAS9sF,EAAG,CACXA,EAAEA,EAAE,MAAQ,CAAC,EAAI,QAASA,EAAEA,EAAE,OAAS,CAAC,EAAI,QAC9C,GAAG8sF,KAAOA,GAAK,CAAE,EAAC,EAClB,IAAAC,GAAA,KAAS,CACP,YAAY,EAAG,EAAG,EAAG,CACnB,KAAK,YAAc,EAAG,KAAK,gBAAkB,GAAI,KAAK,SAAW1/E,GAAE,EAAI,KAAK,kBAAoB,CAAE,EAAE,KAAK,KAAO,EAAG,KAAK,gBAAkB,CAC3I,CAID,IAAI,gBAAiB,CACnB,OAAO,KAAK,eACb,CAKD,uBAAwB,CACtB,MAAO,EACR,CAKD,aAAc,CACZ,OAAO,KAAK,gBAAgB,OAAS,CACtC,CAKD,UAAU,EAAG,CACX,GAAI,KAAK,kBAAoB,EAAE,gBAC7B,MAAM,IAAI,MAAM,qCAAqC,KAAK,cAAc,EAAE,EAC5E,GAAI,KAAK,sBAAqB,GAAM,KAAK,gBAAgB,OAAS,GAAK,EAAE,sBAAuB,GAAI,EAAE,gBAAgB,OAAS,EAC7H,MAAM,IAAI,MAAM,6CAA6C,EAC/D,KAAK,gBAAgB,KAAK,CAAC,EAAG,EAAE,gBAAgB,KAAK,IAAI,CAC1D,CAKD,UAAU,EAAI,GAAI,CAChB,EAAE,SAAW,KAAK,SAAU,EAAE,KAAO,KAAK,KAAM,EAAE,gBAAkB,KAAK,gBAAiB,EAAE,kBAAoB,GAAI,EAAE,UAAY,KAAK,eACvI,UAAW,KAAK,KAAK,gBACnB,EAAE,kBAAkB,KAAK,EAAE,QAAQ,CACtC,CAID,cAAe,CACb,MAAO,cACR,CAKD,YAAY,EAAG,CACb,KAAK,SAAW,EAAE,SAAU,KAAK,KAAO,EAAE,KAAM,KAAK,gBAAkB,EAAE,gBAAiB,KAAK,kBAAoB,EAAE,iBACtH,CAOD,OAAO,MAAM,EAAI,CAAE,EAAE,EAAG,CACtB,MAAM,EAAIE,GAAE,YAAY,EAAE,SAAS,EAAG,EAAI,IAAI,EAAE,EAAE,KAAM,EAAE,gBAAiB,CAAC,EAC5E,OAAO,EAAE,YAAY,CAAC,EAAG,CAC1B,CACH,EACAy/E,GAAA,MAAMC,EAAG,CACP,YAAY,EAAG,CACb,KAAK,MAAQ,KAAK,OAAO,CAAC,CAC3B,CAMD,OAAO,EAAG,CACR,OAAO,EAAI,CACZ,CAMD,IAAI,EAAG,CACL,OAAO,IAAIA,GAAG,KAAK,MAAQ,EAAE,KAAK,CACnC,CAMD,SAAS,EAAG,CACV,OAAO,IAAIA,GAAG,KAAK,MAAQ,EAAE,KAAK,CACnC,CAMD,SAAS,EAAG,CACV,OAAO,IAAIA,GAAG,KAAK,KAAK,KAAK,MAAO,EAAE,KAAK,CAAC,CAC7C,CAMD,OAAO,EAAG,CACR,OAAO,IAAIA,GAAG,KAAK,MAAQ,EAAE,KAAK,CACnC,CAKD,cAAe,CACb,OAAOA,GAAG,SACX,CAMD,OAAO,EAAG,CACR,OAAO,KAAK,QAAU,EAAE,KACzB,CAMD,OAAO,MAAM,EAAG,CACd,OAAO,IAAIA,GAAG,EAAE,KAAK,CACtB,CACH,EACAA,GAAG,UAAY,mBACfjgF,GAAE,mBAAoBigF,EAAE,EACxB,IAAAC,GAAA,MAAMC,GAAG,CACP,YAAY,EAAG,EAAG,CAChB,KAAK,SAAW,EAAG,KAAK,aAAe,CACxC,CAKD,UAAU,EAAG,CACX,EAAE,SAAW,KAAK,SAAU,EAAE,aAAe,KAAK,YACnD,CAMD,OAAO,MAAM,EAAG,CACd,OAAO,IAAIA,IAAG,EAAE,SAAU,EAAE,YAAY,CACzC,CACH,EACK,MAACC,GAAK,IAAID,GAAG,MAAO,MAAM,EAAGE,IAAK,IAAIF,GAAG,SAAU,EAAE,EAAGG,GAAK,IAAIH,GAAG,SAAU,CAAC,EAAGI,GAAK,IAAIJ,GAAG,UAAW,EAAE,EAAGK,GAAK,IAAIL,GAAG,UAAWj+E,GAAE,KAAI,CAAE,EAAGu+E,GAAK,IAAIN,GAAG,UAAWh+E,EAAE,KAAM,GAAGu+E,IAAK,IAAIP,GAAG,UAAWv9E,GAAG,KAAM,GAAG+9E,GAAK,IAAIR,GAAG,SAAU59E,EAAE,SAAQ,CAAE,EAAGq+E,IAAK,IAAIT,GAAG,SAAUv6E,GAAG,MAAO,GAAGi7E,IAAK,IAAIV,GAAG,SAAU,IAAIt6E,GAAG,EAAG,EAAG,EAAG,CAAC,CAAC,EAAGi7E,IAAK,IAAIX,GAAG,aAAc/9E,GAAG,SAAU,GAAG2+E,GAAK,IAAIZ,GAAG,mBAAoB,IAAIF,GAAG,CAAC,CAAC,EACha,SAASe,IAAGhuF,EAAG,CACb,OAAQ,OAAOA,EAAC,CACd,IAAK,SACH,OAAOqtF,IACT,IAAK,SACH,OAAOC,GACT,IAAK,UACH,OAAOC,GACT,IAAK,SACH,OAAOvtF,aAAakP,GAAIs+E,GAAKxtF,aAAamP,EAAIs+E,GAAKztF,aAAa4P,GAAK89E,IAAK1tF,aAAa4S,GAAKg7E,IAAK5tF,aAAa6S,GAAKg7E,IAAK7tF,aAAaoP,GAAK0+E,IAAK9tF,aAAaitF,GAAKc,GAAKX,GACxK,QACE,OAAOA,EACV,CACH,QACA,cAAiBa,EAAG,CAQlB,YAAY,EAAG,EAAG,EAAG,EAAG,CACtB,MAAM,EAAG,EAAG,CAAC,EAAG,KAAK,SAAW,CACjC,CAMD,uBAAwB,CACtB,OAAO,KAAK,iBAAmB,CAChC,CAMD,SAAS,EAAG,EAAG,CACb,EAAE,oBAAoB,KAAM,CAAC,CAC9B,CAKD,UAAU,EAAG,CACX,MAAM,UAAU,CAAC,CAClB,CACD,mBAAmB,EAAG,CACpB,OAAO,EAAE,oBAAoB,IAAI,EAAI,EAAE,oBAAoB,IAAI,EAAI,KAAK,SAAS,YAClF,CAMD,SAAS,EAAG,CACV,OAAO,KAAK,iBAAmB,GAAK,EAAE,mBAAmB,KAAK,WAAW,EAAG,KAAK,YAAY,eAAe,CAAC,EAAG,KAAK,mBAAmB,CAAC,GAAK,KAAK,YAAW,EAAK,KAAK,gBAAgB,CAAC,EAAE,SAAS,CAAC,EAAI,KAAK,mBAAmB,CAAC,CACnO,CAID,cAAe,CACb,MAAO,kBACR,CAKD,UAAU,EAAI,GAAI,CAChB,MAAM,UAAU,CAAC,EAAG,EAAE,SAAW,GAAI,KAAK,SAAS,UAAU,EAAE,QAAQ,CACxE,CAOD,OAAO,MAAM,EAAG,EAAG,CACjB,MAAM,EAAIA,GAAG,MAAM,EAAG,CAAC,EACvB,OAAO,EAAE,SAAWd,GAAG,MAAM,EAAE,QAAQ,EAAG,CAC3C,CACH,EACAngF,GAAE,mBAAoBkhF,EAAE,EACxB,SAASC,IAAGnuF,EAAG,CACb,OAAOA,IAAM,QAAUA,IAAM,gBAAkBA,IAAM,cAAgBA,IAAM,gBAAkBA,IAAM,aAAeA,IAAM,gBAAkBA,IAAM,mBAAqBA,IAAM,WAC7K,CACA,SAASouF,IAAGpuF,EAAG,CACb,OAAOA,IAAM,WAAaA,IAAM,WAAaA,IAAM,WAAaA,IAAM,cAAgBA,IAAM,UAAYA,IAAM,QAChH,CACA,SAASquF,IAAGruF,EAAG,EAAG,CAChB,GAAIA,IAAM,UACR,OAAOkP,GAAE,UAAU,CAAC,EACtB,GAAIlP,IAAM,UACR,OAAOmP,EAAE,UAAU,CAAC,EACtB,GAAInP,IAAM,UACR,OAAO4P,GAAG,UAAU,CAAC,EACvB,GAAI5P,IAAM,aACR,OAAOoP,GAAG,UAAU,CAAC,EACvB,GAAIpP,IAAM,SACR,OAAO,IAAI4S,GAAG,EAAE,CAAC,EAAG,EAAE,CAAC,EAAG,EAAE,CAAC,CAAC,EAChC,GAAI5S,IAAM,SACR,OAAO,IAAI6S,GAAG,EAAE,CAAC,EAAG,EAAE,CAAC,EAAG,EAAE,CAAC,EAAG,EAAE,CAAC,CAAC,EACtC,MAAM,IAAI,MAAM,6BAA6B7S,CAAC,EAAE,CAClD,CACA,SAASsuF,GAAGtuF,EAAG,EAAG,EAAG,CACnB,IAAII,EACJ,MAAMD,IAAMC,EAAyB,GAAE,eAAiB,KAAO,OAASA,EAAE,KAAK,CAAC,IAAM,GACtF+tF,IAAGhuF,CAAC,EAAI,EAAEH,CAAC,EAAI,CACb,KAAM,EAAE,KACR,UAAWG,CACZ,EAAGiuF,IAAGjuF,CAAC,EAAI,EAAEH,CAAC,EAAI,CACjB,MAAO,EAAE,QAAS,EAClB,UAAWG,CACf,EAAM,EAAEH,CAAC,EAAI,CACb,CACA,SAASuuF,GAAGvuF,EAAG,EAAG,EAAG,CACnB,MAAM,EAAI,EAAEA,CAAC,EACb,IAAI,EACJ,MAAML,EAAyB,GAAE,UACjC,OAAOwuF,IAAGxuF,CAAC,EAAI,EAAI,EAAE,cAAc,EAAE,IAAI,EAAIyuF,IAAGzuF,CAAC,EAAI,EAAI0uF,IAAG1uF,EAAG,EAAE,KAAK,EAAIA,IAAM,SAAW,EAAI4P,EAAE,UAAU,EAAE,KAAK,EAAI5P,IAAMstF,GAAG,UAAY,EAAIA,GAAG,MAAM,CAAC,EAAI,GAAK,EAAE,QAAU,OAAS,EAAI,EAAE,MAAQ,EAAI,EAAG,CAC9M,CACA,SAASuB,IAAGxuF,EAAG,CACb,OAAOA,IAAM,sBAAwBA,IAAM,sBAAwBA,IAAM,wBAA0BA,IAAM,sBAC3G,CACA,IAAAyuF,GAAA,KAAS,CAIP,YAAY,EAAG,CACb,IAAI,EACJ,KAAK,OAAS,EAAG,KAAK,SAAWphF,KAAM,KAAK,OAAS,EAAI,KAAK,SAAW,KAAO,OAAS,EAAE,OAAS,KAAK,aAAY,EAAI,KAAK,WAAa,CAAE,EAAE,KAAK,YAAc,EACnK,CAID,eAAe,EAAG,CACjB,CAOD,kBAAkB,EAAG,EAAG,CACtB,MAAM,EAAI,IAAI6gF,GAAG,EAAG,EAAG,KAAM,CAAC,EAC9B,OAAO,KAAK,WAAW,KAAK,CAAC,EAAG,CACjC,CAOD,mBAAmB,EAAG,EAAG,CACvB,MAAM,EAAI,IAAIA,GAAG,EAAG,EAAG,KAAM,CAAC,EAC9B,OAAO,KAAK,YAAY,KAAK,CAAC,EAAG,CAClC,CAMD,aAAa,EAAG,CACd,OAAO,KAAK,WAAW,KAAM,GAAM,EAAE,OAAS,CAAC,CAChD,CAMD,cAAc,EAAG,CACf,OAAO,KAAK,YAAY,KAAM,GAAM,EAAE,OAAS,CAAC,CACjD,CAMD,UAAU,EAAI,GAAI,EAAII,GAAI,CACxB,EAAE,SAAW,KAAK,SAAU,EAAE,OAAS,CAAE,EAAE,KAAK,SAAW,EAAE,OAAO,KAAO,KAAK,OAAO,MAAO,EAAE,WAAa,CAAE,EAAE,EAAE,YAAc,GAAI,EAAE,UAAY,KAAK,aAAY,EACpK,UAAW,KAAK,KAAK,WAAY,CAC/B,MAAM,EAAI,GACV,EAAE,UAAU,CAAC,EAAG,EAAE,WAAW,KAAK,CAAC,CACpC,CACD,UAAW,KAAK,KAAK,YAAa,CAChC,MAAM,EAAI,GACV,EAAE,UAAU,CAAC,EAAG,EAAE,YAAY,KAAK,CAAC,CACrC,CACF,CAKD,cAAe,CACb,MAAO,SACR,CAOD,OAAO,MAAM,EAAG,EAAG,CACjB,MAAM,EAAI/gF,GAAE,YAAY,EAAE,SAAS,EAAG,EAAI,CAAE,EAAE5N,EAAI,EAAE,oBAAsB4uF,GAC1E,GAAI,EAAE,OACJ,UAAW,KAAK,EAAE,OAChB,EAAE,CAAC,EAAI5uF,EAAE,EAAG,EAAE,OAAQ,EAAE,KAAK,EACjC6uF,IAAG,EAAE,SAAS,IAAM,EAAE,cAAgB,EAAE,eACxC,MAAM5uF,EAAI,IAAI,EAAE,CAAC,EACjBA,EAAE,SAAW,EAAE,SACf,QAAS,EAAI,EAAG,EAAI,EAAE,WAAW,OAAQ,IAAK,CAC5C,MAAM,EAAIA,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,IAAI,EAC7C,GAAI,EACF,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,MAE7B,OAAM,IAAI,MAAM,uCAAyC,EAAE,WAAW,CAAC,EAAE,KAAO,aAAe,EAAE,SAAS,CAC7G,CACD,QAAS,EAAI,EAAG,EAAI,EAAE,YAAY,OAAQ,IAAK,CAC7C,MAAM,EAAIA,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,IAAI,EAC/C,GAAI,EACF,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,MAE9B,OAAM,IAAI,MAAM,wCAA0C,EAAE,YAAY,CAAC,EAAE,KAAO,aAAe,EAAE,SAAS,CAC/G,CACD,OAAOA,EAAE,SAAW,EAAE,SAAUA,EAAE,aAAeA,EAAE,YAAY,CAAC,EAAGA,CACpE,CACH,KACA,cAAiBquF,EAAG,CAOlB,uBAAwB,CACtB,OAAO,KAAK,iBAAmB,CAChC,CAID,gBAAgB,EAAG,CACjB,IAAI,EACJ,KAAK,iBAAmB,GAAK,EAAE,mBAAmB,KAAK,WAAW,EAAG,KAAK,YAAY,SAAS,EAAG,IAAI,EAAG,EAAE,qBAAoB,IAAO,EAAI,KAAK,gBAAgB,CAAC,IAAM,MAAQ,EAAE,gBAAgB,CAAC,CAClM,CACH,EACAjhF,GAAE,4BAA6B0hF,EAAE,SACjC,cAAiBC,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,aAAe,CAAE,EAAE,KAAK,cAAgB,CAAE,EAAE,KAAK,GAAK,KAAK,qBAAqB,IAAI,CACpG,CACD,qBAAqB,EAAG,CACtB,MAAM,EAAI,IAAID,GAAG,EAAG,EAAG,IAAI,EAC3B,OAAO,KAAK,aAAa,KAAK,CAAC,EAAG,CACnC,CACD,sBAAsB,EAAG,CACvB,MAAM,EAAI,IAAIA,GAAG,EAAG,EAAG,IAAI,EAC3B,OAAO,KAAK,cAAc,KAAK,CAAC,EAAG,CACpC,CAMD,eAAe,EAAG,CAChB,OAAO,KAAK,aAAa,KAAM,GAAM,EAAE,OAAS,CAAC,CAClD,CAMD,gBAAgB,EAAG,CACjB,OAAO,KAAK,cAAc,KAAM,GAAM,EAAE,OAAS,CAAC,CACnD,CAKD,UAAU,EAAI,GAAI,CAChB,MAAM,UAAU,CAAC,EAAG,EAAE,aAAe,GAAI,EAAE,cAAgB,GAC3D,UAAW,KAAK,KAAK,aAAc,CACjC,MAAM,EAAI,GACV,EAAE,UAAU,CAAC,EAAG,EAAE,aAAa,KAAK,CAAC,CACtC,CACD,UAAW,KAAK,KAAK,cAAe,CAClC,MAAM,EAAI,GACV,EAAE,UAAU,CAAC,EAAG,EAAE,cAAc,KAAK,CAAC,CACvC,CACF,CAKD,YAAY,EAAG,CACb,QAAS,EAAI,EAAG,EAAI,EAAE,aAAa,OAAQ,IAAK,CAC9C,MAAM,EAAI,KAAK,eAAe,EAAE,aAAa,CAAC,EAAE,IAAI,EACpD,GAAI,EACF,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,MAE/B,OAAM,IAAI,MAAM,yCAA2C,EAAE,aAAa,CAAC,EAAE,KAAO,aAAe,EAAE,SAAS,CACjH,CACD,QAAS,EAAI,EAAG,EAAI,EAAE,cAAc,OAAQ,IAAK,CAC/C,MAAM,EAAI,KAAK,gBAAgB,EAAE,cAAc,CAAC,EAAE,IAAI,EACtD,GAAI,EACF,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,MAEhC,OAAM,IAAI,MAAM,0CAA4C,EAAE,cAAc,CAAC,EAAE,KAAO,aAAe,EAAE,SAAS,CACnH,CACF,CAID,cAAe,CACb,MAAO,kBACR,CACH,KACA,cAAiBE,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,IAAM,KAAK,sBAAsB,KAAK,EAAG,KAAK,KAAO,KAAK,sBAAsB,MAAM,CACtG,CAKD,mBAAmB,EAAG,CACpB,KAAK,qBAAqB,CAAC,EAAG,EAAE,iBAAiB,IAAI,CACtD,CACH,KACA,cAAiBC,EAAG,CAIlB,SAAS,EAAG,CACV,EAAE,mBAAmB,IAAI,EAAG,KAAK,IAAI,gBAAgB,CAAC,CACvD,CACH,EACAC,GAAA,KAAS,CACP,YAAY,EAAG,CACb,KAAK,SAAWzhF,GAAI,EAAE,KAAK,eAAiB,GAAI,KAAK,oBAAsB,GAAI,KAAK,kBAAoB,CAAE,EAAE,KAAK,eAAiB,CAAE,EAAE,KAAK,aAAe,EAAG,KAAK,yBAA2B,IAAI5N,GAAK,KAAK,eAAiB,CAC7N,CAMD,YAAY,EAAG,CACb,OAAO,KAAK,KAAK,cAClB,CAMD,YAAY,EAAG,EAAG,CAChB,KAAK,eAAe,CAAC,EAAI,CAC1B,CAMD,YAAY,EAAG,CACb,OAAO,KAAK,eAAe,CAAC,CAC7B,CAID,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CACD,yBAAyB,EAAG,EAAG,CAC7B,MAAO,GAAG,EAAE,QAAQ,IAAI,CAAC,EAC1B,CAOD,sBAAsB,EAAG,EAAG,EAAG,CAC7B,KAAK,oBAAoB,KAAK,yBAAyB,EAAG,CAAC,CAAC,EAAI,CACjE,CAOD,sBAAsB,EAAG,EAAG,EAAG,CAC7B,OAAO,KAAK,sBAAsB,EAAG,CAAC,EAAI,KAAK,oBAAoB,KAAK,yBAAyB,EAAG,CAAC,CAAC,EAAI,CAC3G,CAOD,yBAAyB,EAAG,EAAG,CAC7B,OAAO,KAAK,oBAAoB,KAAK,yBAAyB,EAAG,CAAC,CAAC,CACpE,CAQD,sBAAsB,EAAG,EAAG,CAC1B,OAAO,KAAK,yBAAyB,EAAG,CAAC,IAAK,KAAK,mBACpD,CAOD,oBAAoB,EAAG,CACrB,OAAO,EAAE,YAAY,KAAK,iBAC3B,CAOD,oBAAoB,EAAG,EAAG,CACxB,KAAK,kBAAkB,EAAE,QAAQ,EAAI,CACtC,CAOD,oBAAoB,EAAG,CACrB,OAAO,KAAK,kBAAkB,EAAE,QAAQ,CACzC,CAOD,IAAI,eAAgB,CAClB,OAAO,KAAK,cACb,CAMD,iBAAiB,EAAG,CAClB,KAAK,eAAe,KAAK,CAAC,CAC3B,CAMD,oBAAoB,EAAG,CACrB,MAAM,EAAI,KAAK,eAAe,QAAQ,CAAC,EACvC,IAAM,IAAM,KAAK,eAAe,OAAO,EAAG,CAAC,CAC5C,CAKD,qBAAsB,CACpB,UAAW,KAAK,KAAK,eACnB,EAAE,oBAAoB,IAAI,EAC5B,KAAK,eAAe,OAAS,CAC9B,CAMD,mBAAmB,EAAG,CACpB,KAAK,yBAAyB,gBAAgB,CAAC,CAChD,CAID,sBAAuB,CACrB,KAAK,cACN,CAKD,IAAI,aAAc,CAChB,OAAO,KAAK,YACb,CAMD,UAAU,EAAI,GAAI,EAAI6uF,GAAI,CACxB,EAAE,SAAW,KAAK,SAAU,EAAE,eAAiB,GAC/C,UAAW,KAAK,KAAK,eACnB,EAAE,EAAG,KAAK,eAAe,CAAC,EAAG,EAAE,cAAc,EAC/C,EAAE,kBAAoB,GACtB,UAAW,KAAK,KAAK,kBACnB,EAAE,EAAG,KAAK,kBAAkB,CAAC,EAAG,EAAE,iBAAiB,CACtD,CAID,cAAe,CACb,MAAO,WACR,CAOD,OAAO,MAAM,EAAG,EAAG,CACjB,MAAM,EAAI,EAAE,MAAM,cAAe,EAAE,EAAI,EAAE,oBAAsBC,GAC/D,EAAE,SAAW,EAAE,SACf,UAAW5uF,KAAK,EAAE,eAAgB,CAChC,MAAMC,EAAI,EAAED,EAAG,EAAE,eAAgB,EAAE,eAAe,KAAK,EACvD,EAAE,eAAeA,CAAC,EAAIC,CACvB,CACD,UAAWD,KAAK,EAAE,kBAAmB,CACnC,MAAMC,EAAI,EAAED,EAAG,EAAE,kBAAmB,EAAE,eAAe,KAAK,EAC1D,EAAE,kBAAkBA,CAAC,EAAIC,CAC1B,CACD,OAAO,CACR,CACH,EACAmR,EAAE,CACAQ,EAAG,CACL,EAAGw9E,GAAG,UAAW,WAAY,MAAM,EACnC,SAASC,GAAGhvF,EAAG,EAAG,CAChB,MAAO,CAAC,EAAEA,EAAE,SAAWA,EAAE,SAAW,GAAKgvF,GAAGhvF,EAAE,OAAQ,CAAC,GACzD,QACA,MAAMivF,YAAWC,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,OAAS,CACzB,CACD,oBAAqB,CACnB,MAAM,EAAI,KAAK,OAAO,cAAc,QAAQ,KAAK,OAAO,IAAI,EAAG,EAAI,EAAE,KAAK,UAAU,EAAE,MAAM,EAC5F,GAAI,CAAC,GAAK,EAAE,aAAa3gE,IACvB,MAAM,IAAI,MAAM,6CAA6C,EAC/D,OAAO,CACR,CAID,qBAAqB,EAAG,CACtB,IAAI,EAAI,EAAE,sBAAsB,KAAM,kBAAkB,EACxD,GAAI,CAAC,EAAG,CACN,MAAM,EAAI,KAAK,qBACf,EAAE,sBAAsB,KAAM,OAAQ,CAAC,EAAG,EAAI,EAAE,SAAQ,EAAG,oBAAoB,IAAK5uB,GAAM,CACxF,IAAIC,EAAG,EAAG,EACVD,EAAE,OAASmV,GAAG,cAAiBlV,EAAID,EAAE,WAAa,MAAQC,EAAE,eAAkB,EAAID,EAAE,WAAa,KAAO,OAAS,EAAE,cAAgB,GAAKqvF,IAAI,EAAIrvF,EAAE,WAAa,KAAO,OAAS,EAAE,WAAY,CAAC,IAAM,KAAK,SAAS,CAAC,CAC3N,CAAO,EACD,MAAM,EAAI,EAAE,oBAAoB,IAAI,IAAM,KAAK,UAAU,EACzD,EAAE,sBAAsB,KAAM,mBAAoB,CAAC,EAAG,EAAE,sBAAsB,KAAM,sBAAuB,CAAC,CAC7G,CACF,CACD,WAAW,EAAG,CACZ,KAAK,oBAAoB,CAAC,EAAG,EAAE,oBAAoB,IAAI,CACxD,CAID,oBAAoB,EAAG,CACrB,MAAM,EAAI,EAAE,sBAAsB,KAAM,MAAM,EAAG,EAAI,EAAE,sBAAsB,KAAM,kBAAkB,EAAG,EAAI,EAAE,sBAAsB,KAAM,qBAAqB,EAC/J,EAAE,SAAQ,EAAG,oBAAoB,OAAO,CAAC,EAAG,EAAE,oBAAoB,OAAO,CAAC,EAAG,EAAE,yBAAyB,KAAM,MAAM,EAAG,EAAE,yBAAyB,KAAM,kBAAkB,EAAG,EAAE,yBAAyB,KAAM,qBAAqB,CACpO,CAID,cAAe,CACb,OAAOsvF,IAAG,SACX,CAKD,UAAU,EAAG,CACX,MAAM,UAAU,CAAC,EAAG,EAAE,OAAO,KAAO,KAAK,OAAO,IACjD,CACH,EACAA,GAAG,UAAY,uBACfjiF,GAAEiiF,GAAG,UAAWA,EAAE,EACf,IAACE,IACH,SAASnvF,EAAG,CACXA,EAAEA,EAAE,QAAU,CAAC,EAAI,UAAWA,EAAEA,EAAE,QAAU,CAAC,EAAI,SACnD,GAAGmvF,KAAOA,GAAK,CAAE,EAAC,EAClB,IAAAC,GAAA,MAAMC,EAAG,CAKP,YAAY,EAAG,CACb,KAAK,aAAe,GAAI,KAAK,mBAAqB,CAAE,EAAE,KAAK,MAAQ,EAAG,KAAK,OAAS,EAAE,MAAO,KAAK,aAAe,EAAE,YAAa,KAAK,sBAAwB,KAAK,OAAO,oBAAoB,IAAI,IAAM,KAAK,QAAS,EACtN,CAKD,eAAgB,CACd,MAAM,EAAI,IAAIN,GAAG,CAAE,MAAO,KAAK,OAAQ,YAAa,KAAK,YAAY,CAAE,EACvE,OAAO,KAAK,mBAAmB,KAAK,CAAC,EAAG,CACzC,CAMD,WAAW,EAAG,CACZ,OAAO,KAAK,mBAAmB,CAAC,CACjC,CAMD,cAAc,EAAG,CACf,KAAK,aAAa,KAAK,CAAC,CACzB,CAID,OAAQ,CACN,GAAI,KAAK,QAAU,EAAG,CACpB,KAAK,MAAQ,EAAG,KAAK,mBAAmB,SAAW,GAAK,KAAK,gBAC7D,UAAW,KAAK,KAAK,mBAAoB,CACvC,MAAM,EAAI,KAAK,sBACf,UAAW,KAAK,EACd,EAAE,mBAAmB,CAAC,CACzB,CACF,CACF,CACD,qBAAsB,CACpB,MAAM,EAAI,GACV,UAAW,KAAK,KAAK,aACnB,GAAI,EAAE,iBAAmBE,GAAG,UAAW,CACrC,MAAM,EAAI,EAAE,qBACZ,IAAI,EAAI,EACR,KAAO,EAAI,EAAE,OAAQ,IAAK,CACxB,MAAM,EAAI,EAAE,CAAC,EAAE,mBAAkB,EACjC,GAAI,GAAK,GAAKD,GAAG,EAAG,CAAC,EACnB,KACH,CACD,EAAE,OAAO,EAAG,EAAG,CAAC,CACjB,MACC,EAAE,KAAK,CAAC,EACZ,OAAO,CACR,CAID,SAAU,CACR,GAAI,KAAK,QAAU,EAAG,CACpB,KAAK,MAAQ,EACb,UAAW,KAAK,KAAK,mBACnB,EAAE,oBAAmB,EACvB,KAAK,mBAAmB,OAAS,EAAG,KAAK,aAAa,OAAS,EAAG,KAAK,OAAO,oBAAoB,OAAO,KAAK,qBAAqB,EAAG,KAAK,sBAAwB,IACpK,CACF,CAKD,eAAe,EAAG,CAChB,MAAM,EAAI,CAAE,EAAE,EAAoB,IAAI,IACtC,UAAW,KAAK,KAAK,aACnB,EAAE,KAAK,CAAC,EAAG,EAAE,IAAI,EAAE,QAAQ,EAC7B,KAAO,EAAE,OAAS,GAAK,CACrB,MAAM,EAAI,EAAE,MACZ,EAAE,CAAC,EACH,UAAWrvF,KAAK,EAAE,WAChB,UAAWC,KAAKD,EAAE,gBAChB,EAAE,IAAIC,EAAE,YAAY,QAAQ,IAAM,EAAE,KAAKA,EAAE,WAAW,EAAG,EAAE,IAAIA,EAAE,YAAY,QAAQ,GACzF,GAAI,aAAagvF,GACf,UAAWjvF,KAAK,EAAE,cAChB,UAAWC,KAAKD,EAAE,gBAChB,EAAE,IAAIC,EAAE,YAAY,QAAQ,IAAM,EAAE,KAAKA,EAAE,WAAW,EAAG,EAAE,IAAIA,EAAE,YAAY,QAAQ,EAC5F,CACF,CAMD,UAAU,EAAI,CAAE,EAAE,EAAG,CACnB,EAAE,UAAY,CAAE,EAAE,KAAK,eAAgB,GAAM,CAC3C,MAAM,EAAI,GACV,EAAE,UAAU,CAAC,EAAG,EAAE,UAAU,KAAK,CAAC,CACxC,CAAK,EAAG,EAAE,kBAAoB,GAC1B,UAAW,KAAK,KAAK,mBAAoB,CACvC,MAAM,EAAI,GACV,EAAE,UAAU,EAAG,CAAC,EAAG,EAAE,kBAAkB,KAAK,CAAC,CAC9C,CACF,CAOD,OAAO,+BAA+B,EAAG,EAAG,CAC1C,UAAW,KAAK,EACd,UAAW,KAAK,EAAE,YAChB,GAAI,EAAE,WAAa,EACjB,OAAO,EACb,MAAM,IAAI,MAAM,qDAAuD,CAAC,CACzE,CAOD,OAAO,gCAAgC,EAAG,EAAG,CAC3C,UAAW,KAAK,EACd,GAAI,aAAagvF,IACf,UAAW,KAAK,EAAE,aAChB,GAAI,EAAE,WAAa,EACjB,OAAO,EAEf,MAAM,IAAI,MAAM,sDAAwD,CAAC,CAC1E,CAOD,OAAO,MAAM,EAAG,EAAG,CACjB,MAAM,EAAI,EAAE,YAAY,YAAa,EAAE,EAAI,GAAIjvF,EAAI,EAAE,oBAAsB4uF,GAC3E,UAAW3uF,KAAK,EAAE,UAAW,CAC3B,MAAM,EAAI+uF,GAAG,MAAM/uF,EAAG,CAAE,MAAO,EAAE,YAAY,OAAO,MAAO,cAAe,EAAE,cAAe,mBAAoBD,CAAC,CAAE,EAClH,EAAE,KAAK,CAAC,EAAG,aAAauvF,IAAM,EAAE,cAAc,CAAC,CAChD,CACD,UAAWtvF,KAAK,EAAG,CACjB,UAAW,KAAKA,EAAE,WAChB,UAAW,KAAK,EAAE,kBAAmB,CACnC,MAAM,EAAIyvF,GAAG,+BAA+B,EAAG,CAAC,EAChD,EAAE,UAAU,CAAC,CACd,CACH,GAAIzvF,aAAagvF,GACf,UAAW,KAAKhvF,EAAE,cAChB,UAAW,KAAK,EAAE,kBAAmB,CACnC,MAAM,EAAIyvF,GAAG,gCAAgC,EAAG,CAAC,EACjD,EAAE,UAAU,CAAC,CACd,CACN,CACD,UAAWzvF,KAAK,EAAE,kBAChBmvF,GAAG,MAAMnvF,EAAG,CAAE,MAAO,EAAG,mBAAoBD,CAAC,CAAE,EACjD,OAAO,CACR,CACH,EACA2vF,IAAA,MAAMC,EAAG,CACP,YAAY,EAAG,CACb,KAAK,OAAS,EAAG,KAAK,YAAc,CAAE,EAAE,KAAK,iBAAmC,IAAI,IAAO,KAAK,OAAO,MAAM,oBAAoB,IAAI,IAAM,CACzI,KAAK,QAAO,CACb,IAAIA,GAAG,kBAAkB,IAAI,KAAK,OAAO,KAAK,GAAK,IAAI,KAAK,IAAI,CAClE,CAKD,aAAc,CACZ,MAAM,EAAI,IAAIF,GAAG,CAAE,MAAO,KAAK,OAAO,MAAO,YAAa,IAAI,CAAE,EAChE,OAAO,KAAK,YAAY,KAAK,CAAC,EAAG,CAClC,CAKD,YAAY,EAAG,CACb,MAAM,EAAI,KAAK,YAAY,QAAQ,CAAC,EACpC,IAAM,KAAO,EAAE,QAAS,EAAE,KAAK,YAAY,OAAO,EAAG,CAAC,EACvD,CAID,OAAQ,CACN,KAAK,YAAY,QAAS,GAAM,EAAE,MAAK,CAAE,CAC1C,CAID,SAAU,CACR,KAAK,YAAY,QAAS,GAAM,EAAE,QAAS,GAAG,KAAK,YAAY,OAAS,EACxE,MAAM,EAAIE,GAAG,kBAAkB,IAAI,KAAK,OAAO,KAAK,GAAK,CAAE,EAAE,EAAI,EAAE,QAAQ,IAAI,EAC/E,IAAM,IAAM,EAAE,OAAO,EAAG,CAAC,CAC1B,CAMD,UAAU,EAAG,EAAG,CACd,EAAE,YAAc,GAAI,KAAK,YAAY,QAAS,GAAM,CAClD,MAAM,EAAI,GACV,EAAE,UAAU,EAAG,CAAC,EAAG,EAAE,YAAY,KAAK,CAAC,CAC7C,CAAK,CACF,CAOD,OAAO,MAAM,EAAG,EAAG,CACjB,IAAI5vF,EACJ,MAAMQ,EAAI,EAAE,oBAAsBouF,GAAInuF,EAAI,IAAImvF,GAAG,CAAE,MAAO,EAAE,KAAO,GACnE,OAAQ5vF,EAAI,EAAE,cAAgB,MAAQA,EAAE,QAASC,GAAM,CACrDyvF,GAAG,MAAMzvF,EAAG,CAAE,YAAaQ,EAAG,mBAAoBD,EAAG,cAAe,EAAE,aAAe,EACtF,GAAGC,CACL,CAID,IAAI,YAAa,CACf,OAAO,KAAK,WACb,CAMD,yBAAyB,EAAG,CAC1B,IAAI,EAAI,KAAK,iBAAiB,IAAI,CAAC,EACnC,OAAO,IAAM,EAAI,IAAIX,GAAK,KAAK,iBAAiB,IAAI,EAAG,CAAC,GAAI,CAC7D,CAMD,kBAAkB,EAAG,EAAG,CACtB,MAAM,EAAI,KAAK,iBAAiB,IAAI,CAAC,EACrC,GAAK,EAAE,gBAAgB,CAAC,CACzB,CACH,EACA8vF,IAAG,kBAAoC,IAAI,WAC3C,cAAiBX,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,IAAM,KAAK,sBAAsB,KAAK,CACtD,CACH,KACA,MAAMY,YAAWC,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,QAAU,KAAK,kBAAkB,UAAWrC,EAAE,CAC9D,CAID,SAAS,EAAG,CACV,MAAM,EAAI,KAAK,QAAQ,SAAS,CAAC,EACjC7qF,EAAE,IAAI,CAAC,EAAG,KAAK,IAAI,gBAAgB,CAAC,CACrC,CAID,cAAe,CACb,OAAOitF,IAAG,SACX,CACH,EACAA,GAAG,UAAY,oBACfxiF,GAAEwiF,GAAG,UAAWA,EAAE,SAClB,MAAME,YAAWD,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,MAAQ,KAAK,kBAAkB,EAAE,aAAcrC,EAAE,CAClF,CACD,SAAS,EAAG,CACV,MAAM,EAAI,KAAK,OAAO,aAAc,EAAI,KAAK,MAAM,SAAS,CAAC,EAC7D,EAAE,YAAY,EAAG,CAAC,EAAG,KAAK,IAAI,gBAAgB,CAAC,CAChD,CAID,cAAe,CACb,OAAOsC,IAAG,SACX,CACH,EACAA,GAAG,UAAY,qBACf1iF,GAAE0iF,GAAG,UAAWA,EAAE,EAClB,MAAMC,GAAK,IAAI,OAAO,YAAY,EAClC,IAAAC,GAAA,KAAS,CACP,YAAY,EAAG,EAAG,CAChB,KAAK,KAAO,EAAG,KAAK,WAAa,EAAG,KAAK,gBAAkB,GAC3D,IAAI,EAAID,GAAG,KAAK,CAAC,EACjB,KAAO,GAAK,CACV,KAAM,CAAG,EAAC,EAAI,EACd,KAAK,gBAAgB,KAAK,EAAE,kBAAkB,EAAG5B,EAAE,CAAC,EAAG,EAAI4B,GAAG,KAAK,CAAC,CACrE,CACF,CACD,YAAY,EAAG,EAAG,CAChB,IAAI,EAAI,KAAK,KACb,UAAW,KAAK,KAAK,gBAAiB,CACpC,MAAMhwF,EAAI,EAAE,SAAS,CAAC,EAAE,MACxB,EAAI,EAAE,QAAQ,IAAI,EAAE,IAAI,IAAKA,EAAE,SAAU,EAC1C,CACD,OAAO,EAAE,QAAQ,CAAC,CACnB,CACH,KACA,MAAMkwF,YAAWJ,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,EAAI,KAAK,kBAAkB,IAAKrC,EAAE,EAAG,KAAK,kBAAoB,IAAI0C,GAAG,EAAE,KAAM,IAAI,CAClH,CACD,SAAS,EAAG,CACV,MAAM,EAAI,KAAK,EAAE,SAAS,CAAC,EAAG,EAAI,KAAK,kBAAkB,YAAY,KAAK,OAAO,cAAe,CAAC,EACjG,EAAE,KAAK,IAAI,EAAG,EAAE,MAAM,EAAG,KAAK,IAAI,gBAAgB,CAAC,CACpD,CAKD,UAAU,EAAI,GAAI,CAChB,MAAM,UAAU,CAAC,EAAG,EAAE,OAAO,KAAO,KAAK,OAAO,IACjD,CAID,cAAe,CACb,OAAOD,IAAG,SACX,CACH,EACAA,GAAG,UAAY,qBACf7iF,GAAE,qBAAsB6iF,EAAE,SAC1B,MAAME,YAAWN,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,OAAS,EACxB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,UAAU,OAAQ,IAAK,CACrD,MAAM,EAAI,KAAK,OAAO,UAAU,CAAC,EACjC,KAAK,kBAAkB,EAAGrC,EAAE,CAC7B,CACF,CACD,SAAS,EAAG,CACV,MAAM,EAAI,KAAK,OAAO,QAAS,EAAI,KAAK,WAAW,IAAK,GAAM,EAAE,SAAS,CAAC,CAAC,EAC3E,EAAE,cAAc,YAAY,kBAAkB,EAAG,CAAC,EAAG,KAAK,IAAI,gBAAgB,CAAC,CAChF,CAID,cAAe,CACb,OAAO2C,IAAG,SACX,CACH,EACAA,GAAG,UAAY,yBACf/iF,GAAE,yBAA0B+iF,EAAE,UAC9B,cAAiBnB,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,UAAY,KAAK,kBAAkB,YAAarB,EAAE,EAAG,KAAK,OAAS,KAAK,sBAAsB,QAAQ,EAAG,KAAK,QAAU,KAAK,sBAAsB,SAAS,CAC5K,CACD,SAAS,EAAG,CACV,KAAK,UAAU,SAAS,CAAC,EAAI,KAAK,OAAO,gBAAgB,CAAC,EAAI,KAAK,QAAQ,gBAAgB,CAAC,CAC7F,CAID,cAAe,CACb,MAAO,eACR,CACH,EACAvgF,GAAE,gBAAiBgjF,GAAE,SACrB,MAAMC,YAAWR,EAAG,CAClB,YAAY,EAAI,CAAE,WAAY,IAAIxC,GAAG,CAAC,GAAK,CACzC,MAAM,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,MAAQ,KAAK,qBAAqB,OAAO,EAAG,KAAK,EAAI,KAAK,kBAAkB,IAAKc,EAAE,EAAG,KAAK,MAAQ,KAAK,mBAAmB,QAASA,EAAE,CACvK,CACD,SAAS,EAAG,EAAG,CACb,GAAI,IAAM,KAAK,MACb,KAAK,MAAM,SAAS,KAAK,OAAO,WAAY,CAAC,MAC1C,CACH,MAAM,EAAI,KAAK,MAAM,SAAS,CAAC,EAC/B,EAAE,MAAQ,KAAK,EAAE,SAAS,CAAC,EAAE,QAAU,KAAK,MAAM,SAAS,IAAId,GAAG,EAAE,MAAQ,CAAC,EAAG,CAAC,EAAG,KAAK,IAAI,gBAAgB,CAAC,EAC/G,CACF,CAID,cAAe,CACb,OAAOgD,IAAG,SACX,CACH,EACAA,GAAG,UAAY,aACfjjF,GAAEijF,GAAG,UAAWA,EAAE,UAClB,cAAiBR,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,WAAa,KAAK,kBAAkB,aAAcnC,EAAE,EAAG,KAAK,SAAW,KAAK,kBAAkB,WAAYA,EAAE,EAAG,KAAK,KAAO,KAAK,kBAAkB,OAAQA,EAAE,EAAG,KAAK,MAAQ,KAAK,mBAAmB,QAASA,EAAE,EAAG,KAAK,OAAS,KAAK,sBAAsB,QAAQ,CACnR,CACD,aAAa,EAAG,CACd,IAAI,EAAI,EAAE,sBAAsB,KAAM,OAAO,EAC7C,MAAM,EAAI,EAAE,sBAAsB,KAAM,UAAU,EAClD,GAAI,EAAI,EAAG,CACT,KAAK,MAAM,SAAS,EAAG,CAAC,EAAG,KAAK,OAAO,gBAAgB,CAAC,EACxD,MAAM,EAAI,EAAE,sBAAsB,KAAM,OAAQ,CAAC,EACjD,GAAK,EAAG,EAAE,sBAAsB,KAAM,QAAS,CAAC,EAAG,KAAK,aAAa,CAAC,CACvE,MACC,KAAK,IAAI,gBAAgB,CAAC,CAC7B,CAID,SAAS,EAAG,CACV,MAAM,EAAI,KAAK,WAAW,SAAS,CAAC,EAAG,EAAI,KAAK,SAAS,SAAS,CAAC,EAAG,EAAI,KAAK,KAAK,SAAS,CAAC,EAC9F,EAAE,sBAAsB,KAAM,QAAS,CAAC,EAAG,EAAE,sBAAsB,KAAM,WAAY,CAAC,EAAG,EAAE,sBAAsB,KAAM,OAAQ,CAAC,EAAG,KAAK,aAAa,CAAC,CACvJ,CAID,cAAe,CACb,MAAO,gBACR,CACH,EACAtgF,GAAE,iBAAkBkjF,GAAE,UACtB,cAAiBT,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,MAAQ,KAAK,qBAAqB,OAAO,EAAG,KAAK,SAAW,KAAK,kBAAkB,WAAYnC,EAAE,EAAG,KAAK,cAAgB,KAAK,mBAAmB,gBAAiBA,EAAE,CACpL,CACD,SAAS,EAAG,EAAG,CACb,MAAM,EAAI,EAAE,sBAAsB,KAAM,kBAAkB,EAAG,EAAI,KAAK,SAAS,SAAS,CAAC,EAAG3tF,EAAI,KAAK,MACrG,GAAI,IAAM,KAAK,OAAS,IAAM,QAAUA,EAAI,EAAI,EAC9C,KAAK,cAAc,SAAS,EAAG,CAAC,EAAG,KAAK,IAAI,gBAAgB,CAAC,EAAG,EAAE,sBAAsB,KAAM,mBAAoBA,CAAC,MAChH,CACH,MAAMC,EAAI,GAAKD,EAAI,GACnB,KAAK,cAAc,SAASC,EAAG,CAAC,CACjC,CACF,CAID,cAAe,CACb,MAAO,iBACR,CACH,EACAoN,GAAE,kBAAmBmjF,GAAE,SACvB,MAAMC,YAAWvB,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,QAAU,KAAK,kBAAkB,UAAWvB,EAAE,CAC9D,CACD,qBAAqB,EAAG,CACtB,MAAM,EAAI,KAAK,QAAQ,SAAS,CAAC,EACjC,GAAI,IAAM,QAAU,GAAK,EAAG,CAC1B,MAAM,EAAI,EAAE,sBAAsB,KAAM,eAAe,GAAK,GAAI,EAAI,EAAE,cAAc,MAAO3tF,EAAI,IAAIwuD,IAAG,CACpG,QAAS,EACT,kBAAmB,EAAE,yBACrB,QAAS,IAAM,KAAK,SAASxuD,EAAG,CAAC,CACzC,CAAO,EACDA,EAAE,MAAK,EAAI,EAAE,KAAKA,CAAC,EAAG,EAAE,sBAAsB,KAAM,gBAAiB,CAAC,CACvE,CACF,CAID,SAAS,EAAG,CACV,KAAK,mBAAmB,CAAC,EAAG,KAAK,IAAI,gBAAgB,CAAC,CACvD,CACD,SAAS,EAAG,EAAG,CACb,MAAM,EAAI,EAAE,sBAAsB,KAAM,eAAe,GAAK,CAAE,EAAE,EAAI,EAAE,QAAQ,CAAC,EAC/E,IAAM,GAAK,EAAE,OAAO,EAAG,CAAC,EAAI4N,GAAE,KAAK,+EAA+E,EAAG,EAAE,oBAAoB,IAAI,EAAG,KAAK,KAAK,gBAAgB,CAAC,CAC9K,CACD,oBAAoB,EAAG,CACrB,MAAM,EAAI,EAAE,sBAAsB,KAAM,eAAe,GAAK,GAC5D,UAAW,KAAK,EACd,EAAE,QAAO,EACX,EAAE,yBAAyB,KAAM,eAAe,CACjD,CAID,cAAe,CACb,OAAO6iF,IAAG,SACX,CACH,EACAA,GAAG,UAAY,eACfpjF,GAAE,eAAgBojF,EAAE,UACpB,cAAiBxB,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,qBAAuB,CAAE,EAAE,KAAK,MAAQ,KAAK,qBAAqB,OAAO,EAAG,KAAK,aAAe,KAAK,mBAAmB,eAAgBtB,EAAE,EAAG,KAAK,OAAO,WAAa,KAAK,OAAO,aAAe,OAAS,KAAK,OAAO,WAAa,EAAG,KAAK,OAAO,WAAa,KAAK,IAAI,EAAG,KAAK,IAAI,KAAK,OAAO,WAAY,KAAK,OAAO,kBAAoB,CAAC,CAAC,EAAG,KAAK,SAAW,GACjY,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,kBAAmB,IACjD,KAAK,SAAS,KAAK,KAAK,sBAAsB,MAAM,CAAC,EAAE,CAAC,CAC3D,CACD,kBAAkB,EAAG,CACnB,MAAM,EAAI,KAAK,qBACf,GAAI,EAAE,OAAS,EAAG,EAAE,sBAAsB,KAAM,eAAe,EAAG,CAChE,MAAM,EAAI,EAAE,sBAAsB,KAAM,eAAe,EACvD,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAE,KAAK,EAAE,CAAC,CAAC,CACd,KACC,SAAS,EAAI,EAAG,EAAI,KAAK,OAAO,kBAAmB,IACjD,EAAE,KAAK,CAAC,EACZ,OAAO,CACR,CACD,eAAe,EAAG,EAAG,CACnB,GAAI,KAAK,OAAO,SAAU,CACxB,MAAM,EAAI,KAAK,MAAM,KAAK,SAAW,EAAE,MAAM,EAC7C,OAAO,EAAE,CAAC,CACX,KACC,QAAO,EAAI,CACd,CACD,SAAS,EAAG,EAAG,CACb,MAAM,EAAI,EAAE,sBAAsB,KAAM,cAAc,GAAK,KAAK,OAAO,WAAa,EACpF,IAAI,EAAI,KAAK,kBAAkB,CAAC,EAChC,GAAI,IAAM,KAAK,MAAO,CACpB,EAAE,yBAAyB,KAAM,cAAc,EAAG,EAAE,yBAAyB,KAAM,eAAe,EAClG,MACD,CACD,IAAI3tF,EAAI,KAAK,eAAe,EAAG,CAAC,EAChC,GAAIA,GAAK,KAAK,OAAO,mBAAqB,KAAK,OAAO,KACpDA,EAAI,UACGA,GAAK,KAAK,OAAO,mBAAqB,CAAC,KAAK,OAAO,KAC1D,OACF,GAAI,EAAI,EAAE,OAAQC,GAAMA,IAAMD,CAAC,EAAG,EAAE,SAAW,EAC7C,QAASC,EAAI,EAAGA,EAAI,KAAK,OAAO,kBAAmBA,IACjD,EAAE,KAAKA,CAAC,EACZ,EAAE,sBAAsB,KAAM,gBAAiB,CAAC,EAAG,EAAE,sBAAsB,KAAM,eAAgBD,CAAC,EAAG,KAAK,aAAa,SAASA,EAAG,CAAC,EAAG,KAAK,SAASA,CAAC,EAAE,gBAAgB,CAAC,CAC1K,CAID,cAAe,CACb,MAAO,kBACR,CAKD,UAAU,EAAG,CACX,MAAM,UAAU,CAAC,EAAG,EAAE,OAAO,kBAAoB,KAAK,OAAO,kBAAmB,EAAE,OAAO,SAAW,KAAK,OAAO,SAAU,EAAE,OAAO,KAAO,KAAK,OAAO,KAAM,EAAE,OAAO,WAAa,KAAK,OAAO,UAC/L,CACH,EACAqN,GAAE,mBAAoBqjF,GAAE,UACxB,cAAiBzB,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,UAAY,KAAK,kBAAkB,YAAaxB,EAAE,EAAG,KAAK,YAAc,GACxG,QAAS,EAAI,EAAG,GAAK,KAAK,OAAO,MAAM,OAAQ,IAC7C,KAAK,YAAY,KAAK,KAAK,sBAAsB,MAAM,CAAC,EAAE,CAAC,CAC9D,CACD,SAAS,EAAG,EAAG,CACb,MAAM,EAAI,KAAK,UAAU,SAAS,CAAC,EACnC,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,MAAM,OAAQ,IAC5C,GAAI,IAAM,KAAK,OAAO,MAAM,CAAC,EAAG,CAC9B,KAAK,YAAY,CAAC,EAAE,gBAAgB,CAAC,EACrC,MACD,CACH,KAAK,YAAY,KAAK,YAAY,OAAS,CAAC,EAAE,gBAAgB,CAAC,CAChE,CAID,cAAe,CACb,MAAO,eACR,CAKD,UAAU,EAAG,CACX,MAAM,UAAU,CAAC,EAAG,EAAE,MAAQ,KAAK,OAAO,KAC3C,CACH,EACApgF,GAAE,gBAAiBsjF,GAAE,UACrB,cAAiBb,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,QAAU,GAAI,KAAK,uBAAyB,GAAI,KAAK,MAAQ,KAAK,qBAAqB,OAAO,EAC9H,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,iBAAkB,IAChD,KAAK,QAAQ,KAAK,KAAK,qBAAqB,KAAK,CAAC,EAAE,CAAC,CACxD,CACD,2BAA2B,EAAG,CAC5B,MAAM,EAAI,KAAK,uBACf,GAAI,EAAE,OAAS,EAAG,EAAE,sBAAsB,KAAM,iBAAiB,EAAG,CAClE,MAAM,EAAI,EAAE,sBAAsB,KAAM,iBAAiB,EACzD,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAE,KAAK,EAAE,CAAC,CAAC,CACd,KACC,SAAS,EAAI,EAAG,EAAI,KAAK,OAAO,iBAAkB,IAChD,EAAE,KAAK,EAAE,EACb,OAAO,CACR,CACD,SAAS,EAAG,EAAG,CACb,MAAM,EAAI,KAAK,2BAA2B,CAAC,EAC3C,GAAI,IAAM,KAAK,MACb,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,iBAAkB,IAChD,EAAE,CAAC,EAAI,WACF,IAAM,KAAK,GAClB,EAAE,CAAC,EAAI,OACJ,CACH,MAAM,EAAI,KAAK,QAAQ,QAAQ,CAAC,EAChC,GAAK,IAAM,EAAE,EAAI,CAAC,EAAI,GACvB,CACD,GAAI,EAAE,sBAAsB,KAAM,kBAAmB,EAAE,OAAO,EAAG,EAAE,MAAO,GAAM,CAAC,EAAG,CAClF,KAAK,IAAI,gBAAgB,CAAC,EAC1B,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,iBAAkB,IAChD,EAAE,CAAC,EAAI,EACV,CACF,CAID,cAAe,CACb,MAAO,gBACR,CAKD,UAAU,EAAG,CACX,MAAM,UAAU,CAAC,EAAG,EAAE,OAAO,iBAAmB,KAAK,OAAO,gBAC7D,CACH,EACAziF,GAAE,iBAAkBujF,GAAE,UACtB,cAAiBd,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,MAAQ,KAAK,mBAAmB,QAASnC,EAAE,EAAG,KAAK,MAAQ,KAAK,qBAAqB,OAAO,CAC5G,CACD,SAAS,EAAG,EAAG,CACb,GAAI,IAAM,KAAK,MAAO,CACpB,EAAE,sBAAsB,KAAM,QAAS,CAAC,EAAG,KAAK,MAAM,SAAS,EAAG,CAAC,EACnE,MACD,CACD,MAAM,GAAK,EAAE,sBAAsB,KAAM,OAAO,GAAK,GAAK,EAC1D,EAAE,sBAAsB,KAAM,QAAS,CAAC,EAAG,KAAK,MAAM,SAAS,EAAG,CAAC,EAAG,KAAK,IAAI,gBAAgB,CAAC,CACjG,CAID,cAAe,CACb,MAAO,gBACR,CACH,EACAtgF,GAAE,iBAAkBwjF,GAAE,SACtB,MAAMC,YAAWhB,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,UAAY,KAAK,kBAAkB,YAAalC,EAAE,EAAG,KAAK,SAAW,KAAK,sBAAsB,UAAU,CAC3I,CACD,SAAS,EAAG,EAAG,CACb,IAAIntF,EACJ,IAAID,EAAI,KAAK,UAAU,SAAS,CAAC,EACjC,KAAMC,EAAI,KAAK,SAAW,MAAQA,EAAE,MAAQ,CAACD,GAAK,KAAK,SAAS,gBAAgB,CAAC,EAAGA,GAClF,KAAK,SAAS,gBAAgB,CAAC,EAAGA,EAAI,KAAK,UAAU,SAAS,CAAC,EACjE,KAAK,IAAI,gBAAgB,CAAC,CAC3B,CAID,cAAe,CACb,OAAOswF,IAAG,SACX,CAKD,UAAU,EAAG,CACX,IAAI,EACJ,MAAM,UAAU,CAAC,EAAG,EAAE,MAAQ,EAAI,KAAK,SAAW,KAAO,OAAS,EAAE,IACrE,CACH,EACAA,GAAG,UAAY,mBACfzjF,GAAEyjF,GAAG,UAAWA,EAAE,UAClB,cAAiBhB,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,MAAQ,KAAK,kBAAkB,QAASnC,EAAE,EAAG,KAAK,MAAQ,KAAK,qBAAqB,OAAO,EAAG,KAAK,aAAe,KAAK,mBAAmB,eAAgBA,EAAE,CAC5K,CACD,SAAS,EAAG,EAAG,CACb,GAAI,IAAM,KAAK,MAAO,CACpB,EAAE,sBAAsB,KAAM,gBAAiB,CAAC,EAChD,MACD,CACD,MAAM,EAAI,KAAK,MAAM,SAAS,CAAC,EAAG3tF,EAAI,EAAE,sBAAsB,KAAM,gBAAiB,CAAC,EAAI,EAC1F,KAAK,aAAa,SAASA,EAAG,CAAC,EAAG,EAAE,sBAAsB,KAAM,gBAAiBA,CAAC,EAAGA,GAAK,IAAM,KAAK,IAAI,gBAAgB,CAAC,EAAG,EAAE,sBAAsB,KAAM,gBAAiB,CAAC,EAC9K,CAID,cAAe,CACb,MAAO,iBACR,CACH,EACAqN,GAAE,kBAAmB0jF,GAAE,EACvB,MAAMC,YAAW/B,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,KAAO,KAAK,sBAAsB,MAAM,EAAG,KAAK,MAAQ,KAAK,sBAAsB,OAAO,EAAG,KAAK,KAAO,KAAK,mBAAmB,OAAQrB,EAAE,CAC3J,CACD,SAAS,EAAG,EAAG,CACb,IAAI,EAAI,EAAE,sBAAsB,KAAM,QAAS,EAAE,EACjD,EAAI,CAAC,EAAG,EAAE,sBAAsB,KAAM,QAAS,CAAC,EAAG,KAAK,KAAK,SAAS,EAAG,CAAC,EAAG,EAAI,KAAK,KAAK,gBAAgB,CAAC,EAAI,KAAK,MAAM,gBAAgB,CAAC,CAC7I,CAID,cAAe,CACb,MAAO,iBACR,CACH,CACAvgF,GAAE,kBAAmB2jF,GAAE,SACvB,MAAMC,YAAWhC,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,SAAW,GAC3C,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,kBAAmB,IACjD,KAAK,SAAS,KAAK,KAAK,sBAAsB,GAAG,CAAC,EAAE,CAAC,CACxD,CACD,SAAS,EAAG,CACV,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,kBAAmB,IACjD,KAAK,SAAS,CAAC,EAAE,gBAAgB,CAAC,CACrC,CAID,cAAe,CACb,OAAOgC,IAAG,SACX,CACH,EACAA,GAAG,UAAY,kBACf5jF,GAAE4jF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWhC,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,wBAA0B,IAAIiB,GAAG,EAAE,WAAY,IAAI,EAAG,KAAK,2BAA6B,IAAIA,GAAG,EAAE,cAAe,IAAI,EAAG,KAAK,MAAQ,KAAK,kBAAkB,QAASxC,EAAE,EAAG,KAAK,KAAO,KAAK,kBAAkB,OAAQC,EAAE,EAAG,KAAK,KAAO,KAAK,kBAAkB,OAAQD,EAAE,EAAG,KAAK,GAAK,KAAK,kBAAkB,KAAMA,EAAE,EAAG,KAAK,kBAAoB,KAAK,mBAAmB,oBAAqBF,EAAE,CAC9Z,CAKD,qBAAqB,EAAG,CACtB,MAAM,EAAI,KAAK,wBAAwB,YAAY,KAAK,OAAO,cAAe,CAAC,EAAG,EAAI,EAAE,KAAK,UAAU,EAAE,MAAM,EAAG,EAAI,KAAK,2BAA2B,YAAY,KAAK,OAAO,cAAe,CAAC,EAAGztF,EAAI,EAAE,KAAK,IAAI,EAAE,MAAM,EACxN,GAAI,CAAC,GAAK,CAACA,EACT,MAAM,IAAI,MAAM,mDAAmD,EACrE,MAAMC,EAAI,EAAE,sBAAsB,KAAM,oBAAoB,GAAK,GAAI,EAAI,KAAK,kBAAkB,SAAS,CAAC,EAC1G,GAAI,GAAK,EAAE,OACT,EAAE,QAAO,MACN,CACH,MAAMqC,EAAI,EAAE,cAAc,MAAM,qBAAqB,EAAG,CAACtC,CAAC,EAAG,KAAK,KAAK,SAAS,CAAC,EAAG,KAAK,GAAG,SAAS,CAAC,EAAG,KAAK,KAAK,SAAS,CAAC,EAAG,KAAK,MAAM,SAAS,CAAC,EAAG,IAAM,KAAK,gBAAgBsC,EAAG,CAAC,CAAC,EACxL,KAAK,kBAAkB,SAASA,EAAG,CAAC,EAAGrC,EAAE,KAAKqC,CAAC,CAChD,CACD,EAAE,sBAAsB,KAAM,qBAAsBrC,CAAC,CACtD,CACD,SAAS,EAAG,CACV,KAAK,mBAAmB,CAAC,EAAG,KAAK,IAAI,gBAAgB,CAAC,CACvD,CACD,gBAAgB,EAAG,EAAG,CACpB,MAAM,EAAI,EAAE,sBAAsB,KAAM,oBAAoB,GAAK,CAAE,EAAE,EAAI,EAAE,QAAQ,CAAC,EACpF,IAAM,IAAM,EAAE,OAAO,EAAG,CAAC,EAAG,EAAE,oBAAoB,IAAI,EAAG,KAAK,KAAK,gBAAgB,CAAC,CACrF,CAKD,oBAAoB,EAAG,CACrB,MAAM,EAAI,EAAE,sBAAsB,KAAM,oBAAoB,GAAK,GACjE,UAAW,KAAK,EACd,EAAE,KAAI,EACR,EAAE,yBAAyB,KAAM,oBAAoB,CACtD,CAID,cAAe,CACb,OAAOixF,IAAG,SACX,CAKD,UAAU,EAAI,GAAI,CAChB,MAAM,UAAU,CAAC,EAAG,EAAE,OAAO,WAAa,KAAK,OAAO,WAAY,EAAE,OAAO,cAAgB,KAAK,OAAO,aACxG,CACH,EACAA,GAAG,UAAY,uBACf7jF,GAAE6jF,GAAG,UAAWA,EAAE,EAClB,MAAMC,YAAWrB,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,gBAAkB,KAAK,kBAAkB,kBAAmBrC,EAAE,CAC9E,CACD,SAAS,EAAG,CACV,KAAK,gBAAgB,SAAS,CAAC,EAAE,OAAQ,KAAK,IAAI,gBAAgB,CAAC,CACpE,CAID,cAAe,CACb,MAAO,sBACR,CACH,CACApgF,GAAE,uBAAwB8jF,GAAE,EAC5B,MAAMC,YAAWtB,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,iBAAmB,KAAK,kBAAkB,mBAAoBrC,EAAE,CAChF,CACD,SAAS,EAAG,CACV,KAAK,iBAAiB,SAAS,CAAC,EAAE,QAAS,KAAK,IAAI,gBAAgB,CAAC,CACtE,CAID,cAAe,CACb,MAAO,uBACR,CACH,CACApgF,GAAE,wBAAyB+jF,GAAE,EAC7B,MAAMC,YAAWrC,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,UAAY,KAAK,kBAAkB,YAAapB,EAAE,EAAG,KAAK,UAAY,KAAK,kBAAkB,YAAaH,EAAE,EAAG,KAAK,WAAa,KAAK,kBAAkB,aAAcA,EAAE,EAAG,KAAK,OAAS,KAAK,mBAAmB,SAAUA,EAAE,CAC7O,CAID,eAAe,EAAG,CAChB,KAAK,OAAO,SAAS,KAAK,UAAU,SAAS,CAAC,EAAI,KAAK,UAAU,SAAS,CAAC,EAAI,KAAK,WAAW,SAAS,CAAC,EAAG,CAAC,CAC9G,CAKD,cAAe,CACb,MAAO,wBACR,CACH,CACApgF,GAAE,yBAA0BgkF,GAAE,SAC9B,MAAMC,YAAWtC,EAAG,CAKlB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,OAAS,KAAK,mBAAmB,EAAE,aAAcvB,EAAE,CACpF,CAID,eAAe,EAAG,CAChB,MAAM,EAAI,KAAK,OAAO,aACtB,EAAE,YAAY,CAAC,GAAK,KAAK,OAAO,SAAS,EAAE,YAAY,CAAC,EAAG,CAAC,CAC7D,CAKD,cAAe,CACb,OAAO6D,IAAG,SACX,CAKD,UAAU,EAAG,CACX,MAAM,UAAU,CAAC,EAAG,EAAE,OAAO,aAAe,KAAK,OAAO,YACzD,CACH,EACAA,GAAG,UAAY,qBACfjkF,GAAEikF,GAAG,UAAWA,EAAE,EAClB,MAAMC,YAAWvC,EAAG,CAKlB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,aAAe,KAAK,kBAAkB,eAAgBvB,EAAE,EAAG,KAAK,kBAAoB,KAAK,kBAAkB,oBAAqBA,EAAE,EAAG,KAAK,iBAAmB,KAAK,kBAAkB,mBAAoBK,EAAE,EAAG,KAAK,kBAAoB,KAAK,mBAAmB,oBAAqBA,EAAE,CACrS,CACD,eAAe,EAAG,CAChB,MAAM,EAAI,KAAK,aAAa,SAAS,CAAC,EAAG,EAAI,KAAK,kBAAkB,SAAS,CAAC,EAAG,EAAI,KAAK,iBAAiB,SAAS,CAAC,EAAG9tF,EAAI,EAAE,eAAc,EAAIC,EAAI,EAAE,eAAgB,EAAE,EAAI0P,EAAE,OAAO,CAAC,EAAE,SAAS1P,CAAC,EAClM,EAAE,OAAM,EACR,MAAM,EAAI0P,EAAE,OAAO,CAAC,EACpB,EAAE,cAAc3P,EAAG,CAAC,EACpB,MAAM,EAAI,KAAK,kBAAkB,SAAS,CAAC,EAC3CwP,EAAE,0BAA0B,EAAG,EAAG,CAAC,CACpC,CAKD,cAAe,CACb,MAAO,4BACR,CACH,CACAnC,GAAE,6BAA8BkkF,GAAE,EAClC,MAAMC,YAAWxC,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,OAAS,KAAK,mBAAmB,SAAUX,IAAG,EAAE,KAAK,CAAC,CACvF,CACD,eAAe,EAAG,CAChB,KAAK,OAAO,SAAS,KAAK,OAAO,MAAO,CAAC,CAC1C,CAKD,cAAe,CACb,MAAO,iBACR,CAMD,UAAU,EAAI,GAAI,EAAIM,GAAI,CACxB,MAAM,UAAU,CAAC,EAAG,EAAE,QAAS,KAAK,OAAO,MAAO,EAAE,MAAM,CAC3D,CACH,CACAthF,GAAE,kBAAmBmkF,GAAE,SACvB,MAAMC,YAAWzC,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,OAAS,EAAG,KAAK,MAAQ,KAAK,mBAAmB,QAASvB,EAAE,EAAG,KAAK,kBAAoB,IAAI0C,GAAG,EAAE,KAAM,IAAI,CAC3H,CACD,eAAe,EAAG,CAChB,MAAM,EAAI,KAAK,kBAAkB,YAAY,KAAK,OAAO,cAAe,CAAC,EAAG,EAAI,EAAE,KAAK,IAAI,EAAE,MAAM,EACnG,KAAK,MAAM,SAAS,EAAG,CAAC,CACzB,CAKD,cAAe,CACb,OAAOsB,IAAG,SACX,CAKD,UAAU,EAAI,GAAI,CAChB,MAAM,UAAU,CAAC,EAAG,EAAE,OAAO,KAAO,KAAK,OAAO,IACjD,CACH,EACAA,GAAG,UAAY,qBACfpkF,GAAEokF,GAAG,UAAWA,EAAE,EAClB,MAAMC,GAAK,uBAAwBC,GAAK,2BACxC,cAAiB3C,EAAG,CAClB,YAAY,EAAG,EAAG,CAChB,MAAM,CAAC,EAAG,KAAK,MAAQ,KAAK,mBAAmB,QAAS,CAAC,CAC1D,CACD,eAAe,EAAG,CAChB,MAAM,EAAI,EAAE,sBAAsB,KAAM2C,EAAE,EAAG,EAAI,EAAE,sBAAsB,KAAMD,EAAE,EACjF,GAAI,IAAM,QAAU,IAAM,EAAE,YAC1B,KAAK,MAAM,SAAS,EAAG,CAAC,MACrB,CACH,MAAM,EAAI,KAAK,aAAa,CAAC,EAC7B,EAAE,sBAAsB,KAAMA,GAAI,CAAC,EAAG,EAAE,sBAAsB,KAAMC,GAAI,EAAE,WAAW,EAAG,KAAK,MAAM,SAAS,EAAG,CAAC,CACjH,CACF,CACH,KACA,cAAiBC,EAAG,CAClB,YAAY,EAAG,EAAG,EAAG,EAAG5xF,EAAGC,EAAG,CAC5B,MAAM,EAAGA,CAAC,EAAG,KAAK,WAAa,EAAG,KAAK,WAAaD,EAAG,KAAK,EAAI,KAAK,kBAAkB,IAAK,CAAC,EAAG,KAAK,EAAI,KAAK,kBAAkB,IAAK,CAAC,CACvI,CAMD,aAAa,EAAG,CACd,OAAO,KAAK,WAAW,KAAK,EAAE,SAAS,CAAC,EAAG,KAAK,EAAE,SAAS,CAAC,CAAC,CAC9D,CAKD,cAAe,CACb,OAAO,KAAK,UACb,CACH,KACA,cAAiB4xF,EAAG,CAClB,YAAY,EAAG,EAAG,EAAG,EAAG5xF,EAAG,CACzB,MAAM,EAAGA,CAAC,EAAG,KAAK,WAAa,EAAG,KAAK,WAAa,EAAG,KAAK,EAAI,KAAK,kBAAkB,IAAK,CAAC,CAC9F,CAMD,aAAa,EAAG,CACd,OAAO,KAAK,WAAW,KAAK,EAAE,SAAS,CAAC,CAAC,CAC1C,CAKD,cAAe,CACb,OAAO,KAAK,UACb,CACH,EACA,MAAM6xF,GAAK,UAAWC,IAAK,WAAYC,IAAK,UAAWC,IAAK,WAC5D,MAAMC,YAAWC,EAAG,CAClB,YAAY,EAAG,CACb,MAAMtE,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,GAAK,EAAG,GAAGiE,EAAE,GAAGC,GAAE,GAAI,CAAC,CACpD,CACH,CACAzkF,GAAE,GAAGwkF,EAAE,GAAGC,GAAE,GAAIG,GAAE,EAClB,MAAME,YAAWD,EAAG,CAClB,YAAY,EAAG,CACb,MAAMtE,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,GAAK,EAAG,GAAGiE,EAAE,GAAGE,GAAE,GAAI,CAAC,CACpD,CACH,CACA1kF,GAAE,GAAGwkF,EAAE,GAAGE,GAAE,GAAII,GAAE,EAClB,MAAMC,YAAWC,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAK,GAAM,CAAC,EAAG,GAAGiE,EAAE,GAAGG,GAAE,GAAI,CAAC,CACzC,CACH,CACA3kF,GAAE,GAAGwkF,EAAE,GAAGG,GAAE,GAAII,GAAE,SAClB,cAAiBR,EAAG,CAClB,YAAY,EAAG,EAAG,EAAG,EAAG,CACtB,MAAM,EAAG,CAAC,EAAG,KAAK,WAAa,EAAG,KAAK,WAAa,CACrD,CAMD,aAAa,EAAG,CACd,OAAO,KAAK,YACb,CAKD,cAAe,CACb,OAAO,KAAK,UACb,CACH,KACA,cAAiBA,EAAG,CAClB,YAAY,EAAG,EAAG,EAAG,EAAG5xF,EAAGC,EAAG,EAAG,CAC/B,MAAM,EAAG,CAAC,EAAG,KAAK,WAAaD,EAAG,KAAK,WAAaC,EAAG,KAAK,EAAI,KAAK,kBAAkB,IAAK,CAAC,EAAG,KAAK,EAAI,KAAK,kBAAkB,IAAK,CAAC,EAAG,KAAK,EAAI,KAAK,kBAAkB,IAAK,CAAC,CAChL,CAMD,aAAa,EAAG,CACd,OAAO,KAAK,WAAW,KAAK,EAAE,SAAS,CAAC,EAAG,KAAK,EAAE,SAAS,CAAC,EAAG,KAAK,EAAE,SAAS,CAAC,CAAC,CAClF,CAKD,cAAe,CACb,OAAO,KAAK,UACb,CACH,EACA,SAASqyF,GAAGjyF,EAAG,CACb,OAAOA,EAAE,aAAeA,EAAE,aAAY,EAAK,EAC7C,CACA,SAASkyF,GAAGlyF,EAAG,EAAG,CAChB,OAAOA,IAAM,WAAa,IAAM,WAAaA,IAAM,WAAa,IAAM,WAAaA,IAAM,WAAa,IAAM,SAC9G,CACA,SAASmyF,GAAGnyF,EAAG,EAAG,CAChB,OAAOA,IAAM,UAAY,IAAM,QACjC,CACA,SAASoyF,GAAGpyF,EAAG,EAAG,CAChB,OAAOA,IAAM,oBAAsB,IAAM,kBAC3C,QACA,MAAMqyF,YAAWR,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,KAAK,gBAAgB,EAAG,CAAC,EAAGiF,IAAG,UAAW,CAAC,CACxE,CACD,gBAAgB,EAAG,EAAG,CACpB,MAAM,EAAIJ,GAAG,CAAC,EAAG,EAAIA,GAAG,CAAC,EACzB,OAAOC,GAAG,EAAG,CAAC,GAAKC,GAAG,EAAG,CAAC,GAAKC,GAAG,EAAG,CAAC,EAAI,EAAE,IAAI,CAAC,EAAI,EAAI,CAC1D,CACH,EACAC,GAAG,UAAY,aACfrlF,GAAEqlF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWT,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,KAAK,gBAAgB,EAAG,CAAC,EAAGkF,IAAG,UAAW,CAAC,CACxE,CACD,gBAAgB,EAAG,EAAG,CACpB,MAAM,EAAIL,GAAG,CAAC,EAAG,EAAIA,GAAG,CAAC,EACzB,OAAOC,GAAG,EAAG,CAAC,GAAKE,GAAG,EAAG,CAAC,EAAI,EAAE,SAAS,CAAC,EAAID,GAAG,EAAG,CAAC,EAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAI,EAAI,CACnF,CACH,EACAG,GAAG,UAAY,aACftlF,GAAEslF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWV,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,KAAK,qBAAqB,EAAG,CAAC,EAAGmF,IAAG,UAAW,CAAC,CAC7E,CACD,qBAAqB,EAAG,EAAG,CACzB,MAAM,EAAIN,GAAG,CAAC,EAAG,EAAIA,GAAG,CAAC,EACzB,OAAOC,GAAG,EAAG,CAAC,GAAKE,GAAG,EAAG,CAAC,EAAI,EAAE,SAAS,CAAC,EAAID,GAAG,EAAG,CAAC,EAAI5iF,EAAE,WAAW,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,CAAC,EAAI,EAAI,CACzW,CACH,EACAgjF,GAAG,UAAY,kBACfvlF,GAAEulF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWX,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,KAAK,mBAAmB,EAAG,CAAC,EAAGoF,IAAG,UAAW,CAAC,CAC3E,CACD,mBAAmB,EAAG,EAAG,CACvB,MAAM,EAAIP,GAAG,CAAC,EAAG,EAAIA,GAAG,CAAC,EACzB,OAAOC,GAAG,EAAG,CAAC,GAAKE,GAAG,EAAG,CAAC,EAAI,EAAE,OAAO,CAAC,EAAID,GAAG,EAAG,CAAC,EAAI5iF,EAAE,WAAW,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAI,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,CAAC,EAAI,EAAI,CACvW,CACH,EACAijF,GAAG,UAAY,gBACfxlF,GAAEwlF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWC,EAAG,CAClB,YAAY,EAAG,CACb,MAAMpF,GAAI,IAAM,KAAK,OAAQ,EAAEmF,IAAG,UAAW,CAAC,CAC/C,CACH,EACAA,GAAG,UAAY,gBACfzlF,GAAEylF,GAAG,UAAWA,EAAE,SAClB,MAAME,YAAWd,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAIE,GAAI,CAAC,EAAG,IAAM,KAAK,gBAAgB,EAAG,CAAC,EAAGqF,IAAG,UAAW,CAAC,CACxE,CACD,gBAAgB,EAAG,EAAG,CACpB,OAAQV,GAAG,CAAC,EAAC,CACX,IAAK,UACH,OAAO/iF,GAAE,IAAI,EAAG,CAAC,EACnB,IAAK,UACH,OAAOC,EAAE,IAAI,EAAG,CAAC,EACnB,IAAK,UACH,OAAOS,GAAG,IAAI,EAAG,CAAC,EACpB,QACE,MAAM,IAAI,MAAM,6BAA6B,CAAC,QAAQ,CAAC,EAAE,CAC5D,CACF,CACH,EACA+iF,GAAG,UAAY,aACf3lF,GAAE2lF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWF,EAAG,CAClB,YAAY,EAAG,CACb,MAAMpF,GAAI,IAAM,KAAK,EAAGsF,IAAG,UAAW,CAAC,CACxC,CACH,EACAA,GAAG,UAAY,WACf5lF,GAAE4lF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWH,EAAG,CAClB,YAAY,EAAG,CACb,MAAMpF,GAAI,IAAM,KAAK,GAAIuF,IAAG,UAAW,CAAC,CACzC,CACH,EACAA,GAAG,UAAY,YACf7lF,GAAE6lF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWJ,EAAG,CAClB,YAAY,EAAG,CACb,MAAMpF,GAAI,IAAM,OAAO,kBAAmBwF,IAAG,UAAW,CAAC,CAC1D,CACH,EACAA,GAAG,UAAY,aACf9lF,GAAE8lF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWL,EAAG,CAClB,YAAY,EAAG,CACb,MAAMpF,GAAI,IAAM,OAAO,IAAKyF,IAAG,UAAW,CAAC,CAC5C,CACH,EACAA,GAAG,UAAY,aACf/lF,GAAE+lF,GAAG,UAAWA,EAAE,EAClB,SAASC,GAAGhzF,EAAG,EAAG,CAChB,OAAQiyF,GAAGjyF,CAAC,EAAC,CACX,IAAK,mBACH,OAAO,IAAIitF,GAAG,EAAEjtF,EAAE,KAAK,CAAC,EAC1B,IAAK,UACH,OAAO,IAAIkP,GAAE,EAAElP,EAAE,CAAC,EAAG,EAAEA,EAAE,CAAC,CAAC,EAC7B,IAAK,UACH,OAAO,IAAImP,EAAE,EAAEnP,EAAE,CAAC,EAAG,EAAEA,EAAE,CAAC,EAAG,EAAEA,EAAE,CAAC,CAAC,EACrC,IAAK,UACH,OAAO,IAAI4P,GAAG,EAAE5P,EAAE,CAAC,EAAG,EAAEA,EAAE,CAAC,EAAG,EAAEA,EAAE,CAAC,EAAG,EAAEA,EAAE,CAAC,CAAC,EAC9C,IAAK,SACH,OAAOuP,EAAE,WAAW,EAAEvP,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,CAAC,CAAC,EAC1M,QACE,OAAO,EAAEA,CAAC,CACb,CACH,QACA,MAAMizF,YAAWjB,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,gBAAgB,CAAC,EAAG6F,IAAG,UAAW,CAAC,CAC9D,CACD,gBAAgB,EAAG,CACjB,OAAOD,GAAG,EAAG,KAAK,GAAG,CACtB,CACH,EACAC,GAAG,UAAY,aACfjmF,GAAEimF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWlB,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,iBAAiB,CAAC,EAAG8F,IAAG,UAAW,CAAC,CAC/D,CACD,iBAAiB,EAAG,CAClB,OAAOF,GAAG,EAAG,KAAK,IAAI,CACvB,CACH,EACAE,GAAG,UAAY,cACflmF,GAAEkmF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWnB,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,kBAAkB,CAAC,EAAG+F,IAAG,UAAW,CAAC,CAChE,CACD,kBAAkB,EAAG,CACnB,OAAOH,GAAG,EAAG,KAAK,KAAK,CACxB,CACH,EACAG,GAAG,UAAY,eACfnmF,GAAEmmF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWpB,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,kBAAkB,CAAC,EAAGgG,IAAG,UAAW,CAAC,CAChE,CACD,kBAAkB,EAAG,CACnB,OAAOJ,GAAG,EAAG,KAAK,KAAK,CACxB,CACH,EACAI,GAAG,UAAY,eACfpmF,GAAEomF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWrB,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,oBAAoB,CAAC,EAAGiG,IAAG,UAAW,CAAC,CAClE,CACD,oBAAoB,EAAG,CACrB,OAAOL,GAAG,EAAG,KAAK,IAAI,CACvB,CACH,EACAK,GAAG,UAAY,cACfrmF,GAAEqmF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWtB,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,kBAAkB,CAAC,EAAGkG,IAAG,UAAW,CAAC,CAChE,CACD,kBAAkB,EAAG,CACnB,OAAON,GAAG,EAAI,GAAM,EAAI,KAAK,MAAM,CAAC,CAAC,CACtC,CACH,EACAM,GAAG,UAAY,eACftmF,GAAEsmF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWvB,EAAG,CAKlB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,gBAAgB,CAAC,EAAGmG,IAAG,UAAW,CAAC,CAC9D,CACD,gBAAgB,EAAG,CACjB,OAAOP,GAAG,EAAI,GAAM,CAAC,CAAC,CACvB,CACH,EACAO,GAAG,UAAY,aACfvmF,GAAEumF,GAAG,UAAWA,EAAE,EAClB,SAASC,GAAGxzF,EAAG,EAAG,EAAG,CACnB,OAAQiyF,GAAGjyF,CAAC,EAAC,CACX,IAAK,mBACH,OAAO,IAAIitF,GAAG,EAAEjtF,EAAE,MAAO,EAAE,KAAK,CAAC,EACnC,IAAK,UACH,OAAO,IAAIkP,GAAE,EAAElP,EAAE,EAAG,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAG,EAAE,CAAC,CAAC,EACvC,IAAK,UACH,OAAO,IAAImP,EAAE,EAAEnP,EAAE,EAAG,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAG,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAG,EAAE,CAAC,CAAC,EACpD,IAAK,UACH,OAAO,IAAI4P,GAAG,EAAE5P,EAAE,EAAG,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAG,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAG,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAG,EAAE,CAAC,CAAC,EAClE,IAAK,SACH,OAAOuP,EAAE,WAAW,EAAEvP,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAChV,QACE,OAAO,EAAEA,EAAG,CAAC,CAChB,CACH,QACA,MAAMyzF,YAAW5B,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,KAAK,sBAAsB,EAAG,CAAC,EAAGqG,IAAG,UAAW,CAAC,CAC9E,CACD,sBAAsB,EAAG,EAAG,CAC1B,OAAOD,GAAG,EAAG,EAAG,CAAC,EAAG,IAAM,EAAI,CAAC,CAChC,CACH,EACAC,GAAG,UAAY,mBACfzmF,GAAEymF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW7B,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,KAAK,gBAAgB,EAAG,CAAC,EAAGsG,IAAG,UAAW,CAAC,CACxE,CACD,gBAAgB,EAAG,EAAG,CACpB,OAAOF,GAAG,EAAG,EAAG,KAAK,GAAG,CACzB,CACH,EACAE,GAAG,UAAY,aACf1mF,GAAE0mF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW9B,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,KAAK,gBAAgB,EAAG,CAAC,EAAGuG,IAAG,UAAW,CAAC,CACxE,CACD,gBAAgB,EAAG,EAAG,CACpB,OAAOH,GAAG,EAAG,EAAG,KAAK,GAAG,CACzB,CACH,EACAG,GAAG,UAAY,aACf3mF,GAAE2mF,GAAG,UAAWA,EAAE,EAClB,SAASC,IAAG5zF,EAAG,EAAG,EAAG,CACnB,OAAO,KAAK,IAAI,KAAK,IAAIA,EAAG,KAAK,IAAI,EAAG,CAAC,CAAC,EAAG,KAAK,IAAI,EAAG,CAAC,CAAC,CAC7D,CACA,SAAS6zF,IAAG7zF,EAAG,EAAG,EAAG,EAAG,CACtB,OAAQiyF,GAAGjyF,CAAC,EAAC,CACX,IAAK,mBACH,OAAO,IAAIitF,GAAG,EAAEjtF,EAAE,MAAO,EAAE,MAAO,EAAE,KAAK,CAAC,EAC5C,IAAK,UACH,OAAO,IAAIkP,GAAE,EAAElP,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,CAAC,EACjD,IAAK,UACH,OAAO,IAAImP,EAAE,EAAEnP,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,CAAC,EACnE,IAAK,UACH,OAAO,IAAI4P,GAAG,EAAE5P,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAG,EAAE,EAAG,EAAE,CAAC,CAAC,EACtF,IAAK,SACH,OAAOuP,EAAE,WAAW,EAAEvP,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,CAAC,EAAG,EAAEA,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EACtd,QACE,OAAO,EAAEA,EAAG,EAAG,CAAC,CACnB,CACH,QACA,MAAM8zF,YAAWC,EAAG,CAClB,YAAY,EAAG,CACb,MAAM3G,GAAIA,GAAIA,GAAIA,GAAI,CAAC,EAAG,EAAG,IAAM,KAAK,kBAAkB,EAAG,EAAG,CAAC,EAAG0G,IAAG,UAAW,CAAC,CACpF,CACD,kBAAkB,EAAG,EAAG,EAAG,CACzB,OAAOD,IAAG,EAAG,EAAG,EAAGD,GAAE,CACtB,CACH,EACAE,GAAG,UAAY,eACf9mF,GAAE8mF,GAAG,UAAWA,EAAE,EAClB,SAASE,IAAGh0F,EAAG,CACb,OAAO,KAAK,IAAI,KAAK,IAAIA,EAAG,CAAC,EAAG,CAAC,CACnC,QACA,MAAMi0F,YAAWjC,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,qBAAqB,CAAC,EAAG6G,IAAG,UAAW,CAAC,CACnE,CACD,qBAAqB,EAAG,CACtB,OAAOjB,GAAG,EAAGgB,GAAE,CAChB,CACH,EACAC,GAAG,UAAY,kBACfjnF,GAAEinF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWH,EAAG,CAClB,YAAY,EAAG,CACb,MAAM3G,GAAIA,GAAIA,GAAIA,GAAI,CAAC,EAAG,EAAG,IAAM,KAAK,wBAAwB,EAAG,EAAG,CAAC,EAAG8G,IAAG,UAAW,CAAC,CAC1F,CACD,aAAa,EAAG,EAAG,EAAG,CACpB,OAAQ,EAAI,GAAK,EAAI,EAAI,CAC1B,CACD,wBAAwB,EAAG,EAAG,EAAG,CAC/B,OAAOL,IAAG,EAAG,EAAG,EAAG,KAAK,YAAY,CACrC,CACH,EACAK,GAAG,UAAY,qBACflnF,GAAEknF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWtC,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAIG,GAAI,CAAC,EAAG,IAAM,KAAK,eAAe,EAAG,CAAC,EAAG4G,IAAG,UAAW,CAAC,CACvE,CACD,eAAe,EAAG,EAAG,CACnB,MAAM,EAAIlC,GAAG,CAAC,EAAG,EAAIA,GAAG,CAAC,EACzB,OAAOC,GAAG,EAAG,CAAC,GAAKC,GAAG,EAAG,CAAC,GAAKC,GAAG,EAAG,CAAC,EAAI,EAAE,OAAO,CAAC,EAAI,IAAM,CAC/D,CACH,EACA+B,GAAG,UAAY,YACfnnF,GAAEmnF,GAAG,UAAWA,EAAE,EAClB,SAASC,GAAGp0F,EAAG,EAAG,EAAG,CACnB,MAAM,EAAIiyF,GAAGjyF,CAAC,EAAG,EAAIiyF,GAAG,CAAC,EACzB,GAAI,IAAM,EAAG,CACX,GAAI,IAAM,GACR,OAAO,EAAEjyF,EAAG,CAAC,EACf,GAAI,IAAM,mBACR,OAAO,EAAEA,EAAE,MAAO,EAAE,KAAK,EAC3B,MAAM,IAAI,MAAM,kBAAkBA,CAAC,QAAQ,CAAC,EAAE,CAC/C,CACD,MAAM,IAAI,MAAM,GAAGA,CAAC,QAAQ,CAAC,0BAA0B,CACzD,QACA,MAAMq0F,YAAWxC,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAIG,GAAI,CAAC,EAAG,IAAM,KAAK,qBAAqB,EAAG,CAAC,EAAG8G,IAAG,UAAW,CAAC,CAC7E,CACD,qBAAqB,EAAG,EAAG,CACzB,OAAOD,GAAG,EAAG,EAAG,CAAC,EAAG,IAAM,EAAI,CAAC,CAChC,CACH,EACAC,GAAG,UAAY,kBACfrnF,GAAEqnF,GAAG,UAAWA,EAAE,UAClB,MAAMC,YAAWzC,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAIG,GAAI,CAAC,EAAG,IAAM,KAAK,4BAA4B,EAAG,CAAC,EAAG+G,IAAG,UAAW,CAAC,CACpF,CACD,4BAA4B,EAAG,EAAG,CAChC,OAAOF,GAAG,EAAG,EAAG,CAAC,EAAG,IAAM,GAAK,CAAC,CACjC,CACH,EACAE,IAAG,UAAY,gCACf,MAAMC,YAAW1C,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAIG,GAAI,CAAC,EAAG,IAAM,KAAK,wBAAwB,EAAG,CAAC,EAAGgH,IAAG,UAAW,CAAC,CAChF,CACD,wBAAwB,EAAG,EAAG,CAC5B,OAAOH,GAAG,EAAG,EAAG,CAAC,EAAG,IAAM,EAAI,CAAC,CAChC,CACH,EACAG,GAAG,UAAY,qBACfvnF,GAAEunF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW3C,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAIG,GAAI,CAAC,EAAG,IAAM,KAAK,+BAA+B,EAAG,CAAC,EAAGiH,IAAG,UAAW,CAAC,CACvF,CACD,+BAA+B,EAAG,EAAG,CACnC,OAAOJ,GAAG,EAAG,EAAG,CAAC,EAAG,IAAM,GAAK,CAAC,CACjC,CACH,EACAI,GAAG,UAAY,4BACfxnF,GAAEwnF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWzC,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIG,GAAK,GAAM,KAAK,kBAAkB,CAAC,EAAGkH,IAAG,UAAW,CAAC,CAChE,CACD,kBAAkB,EAAG,CACnB,MAAM,EAAIxC,GAAG,CAAC,EACd,GAAI,IAAM,GACR,OAAO,MAAM,CAAC,EAChB,GAAI,IAAM,mBACR,OAAO,MAAM,EAAE,KAAK,EACtB,MAAM,IAAI,MAAM,qBAAqB,CAAC,EAAE,CACzC,CACH,EACAwC,GAAG,UAAY,eACfznF,GAAEynF,GAAG,UAAWA,EAAE,UAClB,MAAMC,YAAW1C,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIG,GAAK,GAAM,KAAK,kBAAkB,CAAC,EAAGmH,IAAG,UAAW,CAAC,CAChE,CACD,kBAAkB,EAAG,CACnB,MAAM,EAAIzC,GAAG,CAAC,EACd,GAAI,IAAM,GACR,MAAO,CAAC,SAAS,CAAC,EACpB,GAAI,IAAM,mBACR,MAAO,CAAC,SAAS,EAAE,KAAK,EAC1B,MAAM,IAAI,MAAM,uBAAuB,CAAC,EAAE,CAC3C,CACH,EACAyC,IAAG,UAAY,sBACf,MAAMC,YAAW3C,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,qBAAqB,CAAC,EAAGuH,IAAG,UAAW,CAAC,CACnE,CACD,UAAU,EAAG,CACX,OAAO,EAAI,KAAK,GAAK,GACtB,CACD,qBAAqB,EAAG,CACtB,OAAO3B,GAAG,EAAG,KAAK,SAAS,CAC5B,CACH,EACA2B,GAAG,UAAY,kBACf3nF,GAAE2nF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW5C,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,qBAAqB,CAAC,EAAGwH,IAAG,UAAW,CAAC,CACnE,CACD,UAAU,EAAG,CACX,OAAO,EAAI,IAAM,KAAK,EACvB,CACD,qBAAqB,EAAG,CACtB,OAAO5B,GAAG,EAAG,KAAK,SAAS,CAC5B,CACH,EACA4B,GAAG,UAAY,kBACf5nF,GAAE4nF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW7C,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,gBAAgB,CAAC,EAAGyH,IAAG,UAAW,CAAC,CAC9D,CACD,gBAAgB,EAAG,CACjB,OAAO7B,GAAG,EAAG,KAAK,GAAG,CACtB,CACH,EACA6B,GAAG,UAAY,aACf7nF,GAAE6nF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW9C,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,gBAAgB,CAAC,EAAG0H,IAAG,UAAW,CAAC,CAC9D,CACD,gBAAgB,EAAG,CACjB,OAAO9B,GAAG,EAAG,KAAK,GAAG,CACtB,CACH,EACA8B,GAAG,UAAY,aACf9nF,GAAE8nF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW/C,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,gBAAgB,CAAC,EAAG2H,IAAG,UAAW,CAAC,CAC9D,CACD,gBAAgB,EAAG,CACjB,OAAO/B,GAAG,EAAG,KAAK,GAAG,CACtB,CACH,EACA+B,GAAG,UAAY,aACf/nF,GAAE+nF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWhD,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,iBAAiB,CAAC,EAAG4H,IAAG,UAAW,CAAC,CAC/D,CACD,iBAAiB,EAAG,CAClB,OAAOhC,GAAG,EAAG,KAAK,IAAI,CACvB,CACH,EACAgC,GAAG,UAAY,cACfhoF,GAAEgoF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWjD,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,iBAAiB,CAAC,EAAG6H,IAAG,UAAW,CAAC,CAC/D,CACD,iBAAiB,EAAG,CAClB,OAAOjC,GAAG,EAAG,KAAK,IAAI,CACvB,CACH,EACAiC,GAAG,UAAY,cACfjoF,GAAEioF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWlD,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,iBAAiB,CAAC,EAAG8H,IAAG,UAAW,CAAC,CAC/D,CACD,iBAAiB,EAAG,CAClB,OAAOlC,GAAG,EAAG,KAAK,IAAI,CACvB,CACH,EACAkC,GAAG,UAAY,cACfloF,GAAEkoF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWtD,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,KAAK,kBAAkB,EAAG,CAAC,EAAG+H,IAAG,UAAW,CAAC,CAC1E,CACD,kBAAkB,EAAG,EAAG,CACtB,OAAO3B,GAAG,EAAG,EAAG,KAAK,KAAK,CAC3B,CACH,EACA2B,GAAG,UAAY,eACfnoF,GAAEmoF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWpD,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,iBAAiB,CAAC,EAAGgI,IAAG,UAAW,CAAC,CAC/D,CACD,iBAAiB,EAAG,CAClB,OAAOpC,GAAG,EAAG,KAAK,IAAI,CACvB,CACH,EACAoC,GAAG,UAAY,cACfpoF,GAAEooF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWrD,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,iBAAiB,CAAC,EAAGiI,IAAG,UAAW,CAAC,CAC/D,CACD,iBAAiB,EAAG,CAClB,OAAOrC,GAAG,EAAG,KAAK,IAAI,CACvB,CACH,EACAqC,GAAG,UAAY,cACfroF,GAAEqoF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWtD,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,iBAAiB,CAAC,EAAGkI,IAAG,UAAW,CAAC,CAC/D,CACD,iBAAiB,EAAG,CAClB,OAAOtC,GAAG,EAAG,KAAK,IAAI,CACvB,CACH,EACAsC,GAAG,UAAY,cACftoF,GAAEsoF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWvD,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIE,GAAK,GAAM,KAAK,kBAAkB,CAAC,EAAGiI,IAAG,UAAW,CAAC,CAChE,CACD,kBAAkB,EAAG,CACnB,OAAOvC,GAAG,EAAG,KAAK,KAAK,CACxB,CACH,EACAuC,GAAG,UAAY,eACfvoF,GAAEuoF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWxD,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIE,GAAK,GAAM,KAAK,kBAAkB,CAAC,EAAGkI,IAAG,UAAW,CAAC,CAChE,CACD,kBAAkB,EAAG,CACnB,OAAOxC,GAAG,EAAG,KAAK,KAAK,CACxB,CACH,EACAwC,GAAG,UAAY,eACfxoF,GAAEwoF,GAAG,UAAWA,EAAE,EAClB,MAAMC,WAAWzD,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIE,GAAK,GAAM,KAAK,kBAAkB,CAAC,EAAGmI,GAAG,UAAW,CAAC,CAChE,CACD,kBAAkB,EAAG,CACnB,OAAOzC,GAAG,EAAG,KAAK,KAAK,CACxB,CACH,CACAyC,GAAG,UAAY,eACfzoF,GAAEyoF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW1D,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIE,GAAK,GAAM,KAAK,gBAAgB,CAAC,EAAGoI,IAAG,UAAW,CAAC,CAC9D,CACD,gBAAgB,EAAG,CACjB,OAAO1C,GAAG,EAAG,KAAK,GAAG,CACtB,CACH,EACA0C,GAAG,UAAY,aACf1oF,GAAE0oF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW3D,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIE,GAAK,GAAM,KAAK,gBAAgB,CAAC,EAAGqI,IAAG,UAAW,CAAC,CAC9D,CACD,gBAAgB,EAAG,CACjB,OAAO3C,GAAG,EAAG,KAAK,GAAG,CACtB,CACH,EACA2C,GAAG,UAAY,aACf3oF,GAAE2oF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW5D,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIE,GAAK,GAAM,KAAK,iBAAiB,CAAC,EAAGsI,IAAG,UAAW,CAAC,CAC/D,CACD,iBAAiB,EAAG,CAClB,OAAO5C,GAAG,EAAG,KAAK,IAAI,CACvB,CACH,EACA4C,GAAG,UAAY,cACf5oF,GAAE4oF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW7D,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIE,GAAK,GAAM,KAAK,kBAAkB,CAAC,EAAGuI,IAAG,UAAW,CAAC,CAChE,CACD,kBAAkB,EAAG,CACnB,OAAO7C,GAAG,EAAG,KAAK,KAAK,CACxB,CACH,EACA6C,GAAG,UAAY,eACf7oF,GAAE6oF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW9D,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIE,GAAK,GAAM,KAAK,iBAAiB,CAAC,EAAGwI,IAAG,UAAW,CAAC,CAC/D,CACD,iBAAiB,EAAG,CAClB,OAAO9C,GAAG,EAAG,KAAK,IAAI,CACvB,CACH,EACA8C,GAAG,UAAY,cACf9oF,GAAE8oF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW/D,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIE,GAAK,GAAM,KAAK,qBAAqB,CAAC,EAAGyI,IAAG,UAAW,CAAC,CACnE,CACD,qBAAqB,EAAG,CACtB,OAAO/C,GAAG,EAAG,KAAK,IAAI,CACvB,CACH,EACA+C,GAAG,UAAY,kBACf/oF,GAAE+oF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWnE,EAAG,CAClB,YAAY,EAAG,CACb,MAAMzE,GAAIE,GAAIA,GAAI,CAAC,EAAG,IAAM,KAAK,gBAAgB,EAAG,CAAC,EAAG0I,IAAG,UAAW,CAAC,CACxE,CACD,gBAAgB,EAAG,EAAG,CACpB,OAAOxC,GAAG,EAAG,EAAG,KAAK,GAAG,CACzB,CACH,EACAwC,GAAG,UAAY,aACfhpF,GAAEgpF,GAAG,UAAWA,EAAE,EAClB,MAAMC,WAAWjE,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIE,GAAK,GAAM,KAAK,mBAAmB,CAAC,EAAG2I,GAAG,UAAW,CAAC,CACjE,CACD,mBAAmB,EAAG,CACpB,OAAQhE,GAAG,CAAC,EAAC,CACX,IAAK,UACL,IAAK,UACL,IAAK,UACH,OAAO,EAAE,SACX,QACE,MAAM,IAAI,MAAM,kCAAkC,CAAC,EAAE,CACxD,CACF,CACH,CACAgE,GAAG,UAAY,gBACfjpF,GAAEipF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWlE,EAAG,CAClB,YAAY,EAAG,CACb,MAAM5E,GAAIA,GAAK,GAAM,KAAK,sBAAsB,CAAC,EAAG8I,IAAG,UAAW,CAAC,CACpE,CACD,sBAAsB,EAAG,CACvB,OAAQjE,GAAG,CAAC,EAAC,CACX,IAAK,UACL,IAAK,UACL,IAAK,UACH,OAAO,EAAE,YACX,QACE,MAAM,IAAI,MAAM,0BAA0B,CAAC,EAAE,CAChD,CACF,CACH,EACAiE,GAAG,UAAY,mBACflpF,GAAEkpF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWtE,EAAG,CAClB,YAAY,EAAG,CACb,MAAMpE,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAMt+E,EAAE,MAAM,EAAG,CAAC,EAAGgnF,IAAG,UAAW,CAAC,CAC3D,CACH,EACAA,GAAG,UAAY,eACfnpF,GAAEmpF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWvE,EAAG,CAClB,YAAY,EAAG,CACb,MAAMrE,GAAIF,GAAIE,GAAI,CAAC,EAAG,IAAMt+E,GAAE,UAAU,EAAGK,EAAE,UAAU,CAAC,CAAC,EAAG6mF,IAAG,UAAW,CAAC,CAC5E,CACH,EACAA,GAAG,UAAY,kBACfppF,GAAEopF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWtC,EAAG,CAClB,YAAY,EAAG,CACb,MAAMtG,GAAIA,GAAIH,GAAIG,GAAI,CAAC,EAAG,EAAG,IAAMt+E,EAAE,qBAAqB,EAAGI,EAAE,aAAa,EAAG,CAAC,CAAC,EAAG8mF,IAAG,UAAW,CAAC,CACpG,CACH,EACAA,GAAG,UAAY,kBACfrpF,GAAEqpF,GAAG,UAAWA,EAAE,EAClB,MAAMC,WAAWtE,EAAG,CAClB,YAAY,EAAG,CACb,MAAMrE,GAAIA,GAAK,GAAMp+E,EAAE,UAAU,CAAC,EAAG+mF,GAAG,UAAW,CAAC,CACrD,CACH,CACAA,GAAG,UAAY,mBACftpF,GAAEspF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWvE,EAAG,CAClB,YAAY,EAAG,CACb,MAAMrE,GAAIL,GAAK,GAAM,EAAE,YAAW,EAAIiJ,IAAG,UAAW,CAAC,CACtD,CACH,EACAA,GAAG,UAAY,qBACfvpF,GAAEupF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWxE,EAAG,CAClB,YAAY,EAAG,CACb,MAAMrE,GAAIA,GAAK,GAAMp+E,EAAE,OAAO,CAAC,EAAGinF,IAAG,UAAW,CAAC,CAClD,CACH,EACAA,GAAG,UAAY,sBACfxpF,GAAEwpF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW5E,EAAG,CAClB,YAAY,EAAG,CACb,MAAMlE,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,EAAE,SAAS,CAAC,EAAG8I,IAAG,UAAW,CAAC,CAC3D,CACH,EACAA,GAAG,UAAY,gBACfzpF,GAAEypF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW1E,EAAG,CAClB,YAAY,EAAG,CACb,MAAMjE,GAAIA,GAAK,GAAM,IAAId,GAAG,CAAC,EAAE,KAAK,EAAGyJ,IAAG,UAAW,CAAC,CACvD,CACH,EACAA,GAAG,UAAY,oBACf1pF,GAAE0pF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW9E,EAAG,CAClB,YAAY,EAAG,CACb,MAAM9D,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,IAAId,GAAG,EAAE,MAAQ,EAAE,KAAK,EAAG0J,IAAG,UAAW,CAAC,CACvE,CACH,EACAA,GAAG,UAAY,oBACf3pF,GAAE2pF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAW/E,EAAG,CAClB,YAAY,EAAG,CACb,MAAM9D,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,IAAId,GAAG,EAAE,MAAQ,EAAE,KAAK,EAAG2J,IAAG,UAAW,CAAC,CACvE,CACH,EACAA,GAAG,UAAY,mBACf5pF,GAAE4pF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWhF,EAAG,CAClB,YAAY,EAAG,CACb,MAAM9D,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,IAAId,GAAG,EAAE,MAAQ,EAAE,KAAK,EAAG4J,IAAG,UAAW,CAAC,CACvE,CACH,EACAA,GAAG,UAAY,oBACf7pF,GAAE6pF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWjF,EAAG,CAClB,YAAY,EAAG,CACb,MAAM9D,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,IAAId,GAAG,EAAE,OAAS,EAAE,KAAK,EAAG6J,IAAG,UAAW,CAAC,CACxE,CACH,EACAA,GAAG,UAAY,0BACf9pF,GAAE8pF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWlF,EAAG,CAClB,YAAY,EAAG,CACb,MAAM9D,GAAIA,GAAIA,GAAI,CAAC,EAAG,IAAM,IAAId,GAAG,EAAE,OAAS,EAAE,KAAK,EAAG8J,IAAG,UAAW,CAAC,CACxE,CACH,EACAA,GAAG,UAAY,2BACf/pF,GAAE+pF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWhF,EAAG,CAClB,YAAY,EAAG,CACb,MAAMjE,GAAIA,GAAK,GAAM,IAAId,GAAG,KAAK,MAAM,EAAE,KAAK,CAAC,EAAG+J,IAAG,UAAW,CAAC,CAClE,CACH,EACAA,GAAG,UAAY,2BACfhqF,GAAEgqF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWjF,EAAG,CAClB,YAAY,EAAG,CACb,MAAMjE,GAAIA,GAAK,GAAM,IAAId,GAAG,EAAE,MAAQ,GAAK,KAAK,MAAM,EAAE,MAAQ,CAAC,EAAE,KAAK,EAAI,EAAE,EAAGgK,IAAG,UAAW,CAAC,CACjG,CACH,EACAA,GAAG,UAAY,4BACfjqF,GAAEiqF,GAAG,UAAWA,EAAE,EAClB,SAASC,IAAGl3F,EAAG,CACb,IAAI,EAAI,EACR,KAAOA,GACL,GAAKA,EAAI,EAAGA,IAAM,EACpB,OAAO,CACT,QACA,MAAMm3F,YAAWnF,EAAG,CAClB,YAAY,EAAG,CACb,MAAMjE,GAAIA,GAAK,GAAM,IAAId,GAAGiK,IAAG,EAAE,KAAK,CAAC,EAAGC,IAAG,UAAW,CAAC,CAC1D,CACH,EACAA,GAAG,UAAY,sBACfnqF,GAAEmqF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWlI,EAAG,CAIlB,qBAAqB,EAAG,CACtB,GAAI,CAAC,EAAE,sBAAsB,KAAM,oBAAoB,EAAG,CACxD,MAAM/uF,EAAI,EAAE,cAAc,MAAM,kBAAkB,IAAI,IAAM,CAC1D,KAAK,SAAS,CAAC,CACvB,CAAO,EACD,EAAE,sBAAsB,KAAM,qBAAsBA,CAAC,CACtD,CACF,CAID,oBAAoB,EAAG,CACrB,MAAM,EAAI,EAAE,sBAAsB,KAAM,oBAAoB,EAC5D,EAAE,cAAc,MAAM,kBAAkB,OAAO,CAAC,EAAG,EAAE,yBAAyB,KAAM,oBAAoB,CACzG,CAID,cAAe,CACb,OAAOi3F,IAAG,SACX,CACH,EACAA,GAAG,UAAY,yBACfpqF,GAAE,yBAA0BoqF,EAAE,SAC9B,MAAMC,YAAWnI,EAAG,CAClB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,OAAS,EACxB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,UAAU,OAAQ,IAAK,CACrD,MAAM,EAAI,KAAK,OAAO,UAAU,CAAC,EACjC,KAAK,mBAAmB,EAAG9B,EAAE,CAC9B,CACF,CACD,qBAAqB,EAAG,CACtB,MAAM,EAAI,EAAE,cAAc,YAAY,yBAAyB,KAAK,OAAO,OAAO,EAClF,KAAK,eAAiB,EAAE,IAAK,GAAM,CACjC,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,KAAK,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC,EAAG,CAAC,EACtC,KAAK,SAAS,CAAC,CACrB,CAAK,CACF,CACD,oBAAoB,EAAG,CACrB,MAAM,EAAI,EAAE,cAAc,YAAY,yBAAyB,KAAK,OAAO,OAAO,EAClF,EAAI,EAAE,OAAO,KAAK,cAAc,EAAI7/E,GAAE,KAAK,kEAAkE,KAAK,OAAO,OAAO,EAAE,CACnI,CAID,cAAe,CACb,OAAO8pF,IAAG,SACX,CAKD,UAAU,EAAG,CACX,MAAM,UAAU,CAAC,EAAG,EAAE,QAAU,KAAK,OAAO,QAAS,EAAE,UAAY,KAAK,OAAO,SAChF,CACH,EACAA,GAAG,UAAY,4BACfrqF,GAAEqqF,GAAG,UAAWA,EAAE,SAClB,MAAMC,YAAWpI,EAAG,CAIlB,qBAAqB,EAAG,CACtB,GAAI,CAAC,EAAE,sBAAsB,KAAM,mBAAmB,EAAG,CACvD,MAAM/uF,EAAI,EAAE,cAAc,MAAM,yBAAyB,IAAI,IAAM,CACjE,KAAK,SAAS,CAAC,CACvB,CAAO,EACD,EAAE,sBAAsB,KAAM,oBAAqBA,CAAC,CACrD,CACF,CAID,oBAAoB,EAAG,CACrB,MAAM,EAAI,EAAE,sBAAsB,KAAM,mBAAmB,EAC3D,EAAE,cAAc,MAAM,yBAAyB,OAAO,CAAC,EAAG,EAAE,yBAAyB,KAAM,mBAAmB,CAC/G,CAID,cAAe,CACb,OAAOm3F,IAAG,SACX,CACH,EACAA,GAAG,UAAY,wBACftqF,GAAEsqF,GAAG,UAAWA,EAAE,EAClB,MAAMC,YAAWvqD,EAAG,CAClB,YAAY,EAAG,EAAG,CAChB,MAAM,EAAG,CAAC,CACX,CACD,MAAM,UAAU,EAAG,EAAG,CACpB,IAAI,EAAI,KAAK,SACb,EAAE,SAAWH,GAAG,EAAE,QAAQ,EAAG,EAAE,SAAS,GAAK,MAAQ,EAAE,SAAS,GAAK,MAAQ,EAAE,SAAS,GAAK,KAAO,EAAE,SAAWC,GAAG,EAAE,QAAQ,EAAI,EAAE,OAAO,IAAI39B,EAAE,EAAG,EAAG,CAAC,CAAC,EAAG,EAAE,QAAU09B,GAAG,EAAE,KAAK,EAClL,IAAI,EAAI7H,GAAG,YAAY,gBAAiB,CAAE,KAAM,EAAE,KAAM,gBAAiBpT,GAAE,UAAY,GACvF,EAAE,SAAS,EAAI,KAAK,GAAI,EAAE,OAAS,EACnC,IAAIjyB,EAAI,KAAK,WACX,IAAIkT,GAAG,EAAE,UAAU,EAAI,IAAK,EAAE,UAAU,EAAI,IAAK,EAAE,UAAU,EAAI,IAAK,EAAE,UAAU,CAAC,EACnF,IAAIA,GAAG,EAAE,gBAAgB,EAAI,IAAK,EAAE,gBAAgB,EAAI,IAAK,EAAE,gBAAgB,EAAI,IAAK,EAAE,gBAAgB,CAAC,EAC3G,EAAE,KACF,EAAE,SACF,EAAE,QACF,EAAE,YACR,EACI,KAAK,UAAYlT,EAAE,eAAe,GAAI,WAAW,EACjD,IAAIC,EAAI4wC,GAAG,cAAc,CAAC,EAC1B5wC,EAAE,WAAWD,CAAC,EACd,IAAI,EAAI,IAAIwtC,GACZ,EAAE,cAAchb,GAAG,iBAAiB,EAAGxyB,EAAE,yBAAyB,IAAI,IAAM,CAC1E,EAAE,aAAe,KAAO,EAAE,oBAAmB,EAAG,gBAAgB,EAAE,YAAa,CAAE,cAAe,EAAI,GAAIN,GAAG,mCAAmC,IAAI,CACnJ,GAAGM,EAAE,yBAAyB,IAAI,IAAM,CACvC,GAAI,EAAE,aAAe,MAAQyzB,GAAG,wBAAwB,GAAI,EAAG,UAAW,GAAI,GAAI,EAAE,QAASjkB,EAAE,MAAM,MAAM,IAAI,EAAG,EAAG,CAAC,EAAG,EAAE,iBAAmB,KAAM,CAClJ,IAAI,EAAIxP,EAAE,eAAe,GAAI,WAAW,EACxC,EAAE,MAAQ,IAAIiT,GAAG,EAAE,gBAAgB,EAAI,IAAK,EAAE,gBAAgB,EAAI,IAAK,EAAE,gBAAgB,EAAI,GAAG,EAAE,YAAW,EAAI,EAAE,MAAQ,EAAE,gBAAgB,CAC9I,CACDvT,GAAG,qCAAqC,IAAI,CAC7C,GAAGM,EAAE,uBAAuB,IAAI,IAAM,CACrC,GAAI,EAAE,aAAe,MAAQyzB,GAAG,wBAAwB,GAAI,EAAG,UAAW,GAAI,GAAI,EAAE,QAASjkB,EAAE,MAAO,EAAG,CAAC,EAAG,EAAE,iBAAmB,KAAM,CACtI,IAAI,EAAIxP,EAAE,eAAe,GAAI,WAAW,EACxC,EAAE,MAAQ,IAAIiT,GAAG,EAAE,UAAU,EAAI,IAAK,EAAE,UAAU,EAAI,IAAK,EAAE,UAAU,EAAI,GAAG,EAAE,YAAW,EAAI,EAAE,MAAQ,EAAE,UAAU,CACtH,CACDvT,GAAG,oCAAoC,IAAI,CACjD,CAAK,EAAG,EAAE,cAAgB,IAAI68B,GAAG,EAAE,SAAU,GAAG,EAAE,cAAc,eAAe,IAAIT,GAAGS,GAAG,oBAAqB,IAAM,CAC9G,GAAI,EAAE,aAAe,MAAQ9I,GAAG,wBAAwB,GAAI,EAAG,UAAW,GAAI,GAAI,EAAE,QAASjkB,EAAE,MAAO,EAAG,CAAC,EAAG,EAAE,iBAAmB,KAAM,CACtI,IAAI,EAAIxP,EAAE,eAAe,GAAI,WAAW,EACxC,EAAE,MAAQ,IAAIiT,GAAG,EAAE,UAAU,EAAI,IAAK,EAAE,UAAU,EAAI,IAAK,EAAE,UAAU,EAAI,GAAG,EAAE,YAAW,EAAI,EAAE,MAAQ,EAAE,UAAU,CACtH,CACF,EAAC,CACH,CACD,WAAW,EAAG,EAAG,EAAG,EAAGjT,EAAGC,EAAG,CAC3B,IAAI,EAAI,IAAIgxC,GACZ,EAAE,UAAY,EAAG,EAAE,sBAAwB,GAAI,EAAE,qBAAuB,GAAI,EAAE,YAAc,UAC5F,IAAI,EAAI,IAAIA,GACZ,EAAE,UAAY,EAAG,EAAE,WAAa,EAAE,YAAY,EAAE,EAAG,EAAE,MAAQ,EAAE,EAAG,EAAE,MAAQ,OAAQ,EAAE,OAAS,OAAQ,EAAE,aAAehxC,EAAG,EAAE,WAAW,CAAC,EACzI,IAAI,EAAI,IAAI8vC,GACZ,OAAO,EAAE,KAAO,EAAG,EAAE,OAAS,OAAQ,EAAE,MAAQ,OAAQ,EAAE,SAAW,EAAG,EAAE,MAAQ,EAAE,YAAY,EAAE,EAAG,EAAE,MAAQ,EAAE,EAAG,EAAE,wBAA0BH,GAAG,0BAA2B,EAAE,sBAAwBA,GAAG,0BAA2B,EAAE,oBAAsB5vC,EAAG,EAAE,qBAAuBA,EAAG,EAAE,mBAAqBA,EAAG,EAAE,sBAAwBA,EAAG,EAAE,aAAe8vC,GAAG,SAAU,EAAE,YAAc,GAAI,EAAE,WAAW,CAAC,EAAG,CACxZ,CAED,YAAY,EAAG,CACb,IAAI,EAAI,GACR,IAAI,EAAI,EAAE,MAAM,EAAE,WAAW,GAAG,EAAI,EAAI,CAAC,EACzC,EAAE,SAAW,EAAI,EAAI,CAAC,GAAG,CAAC,EAAE,IAAK9vC,GAAMA,EAAIA,CAAC,EAAE,KAAK,EAAE,EAAI,EAAE,SAAW,IAAM,EAAI,IAAK,EAAI,SAAS,EAAG,EAAE,EACvG,IAAI,EAAI,IAAIiT,IACT,KAAO,EAAI,GAAK,KAAO,MACtB,GAAK,EAAI,SAAW,WAAa,EAAI,GAAK,IAAM,MAChD,GAAK,EAAI,MAAQ,SAAW,EAAI,EAAI,IAAM,GAClD,EACI,OAAO,CACR,CACD,aAAa,EAAG,CACd,MAAO,MAAQ,GAAK,IAAM,KAAK,MAAM,EAAE,GAAK,EAAE,EAAI,KAAK,MAAM,EAAE,GAAK,CAAC,EAAI,KAAK,MAAM,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,MAAM,CAAC,CAC/G,CACD,aAAa,EAAG,CACd,MAAO,KAAO,GAAK,KAAK,MAAM,EAAE,CAAC,GAAK,KAAO,KAAK,MAAM,EAAE,CAAC,GAAK,KAAO,KAAK,MAAM,EAAE,CAAC,GAAK,GAAK,KAAK,MAAM,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,MAAM,CAAC,CACrI,CACD,gBAAgB,EAAG,CACjB,OAAO,IAAIA,GAAG,EAAE,EAAI,IAAK,EAAE,EAAI,IAAK,EAAE,EAAI,GAAG,CAC9C,CACH,CACA,MAAM4kF,GAAG,CACP,YAAY,EAAG,EAAG,EAAG,EAAG,CACtB,KAAK,oBAAsB,CAAE,EAAE,KAAK,UAAY,GAAI,KAAK,YAAc,GAAI,KAAK,GAAK,EAAE,GAAI,KAAK,KAAO,EAAE,KAAM,KAAK,gBAAkB,EAAG,KAAK,MAAQ,EAAE,SAAU,EAAE,KAAK,eAAiB,EAAG,KAAK,iBAAmB,CACtN,CACD,iBAAkB,CAChB,QAAQ,IAAI,4BAA8B,KAAK,IAAI,EAAG,KAAK,cAAgB,IAAIzpE,GAAG,KAAK,KAAM,KAAK,KAAK,EAAG,KAAK,cAAc,OAAS,KAAK,eAAgB,KAAK,oBAAoB,KAAK,IAAI0pE,IAAG,KAAM,KAAK,gBAAgB,QAAQ,CAAC,EAAG,KAAK,gBAAgB,oBAAoB,QAAS,GAAM,CAC7R,EAAE,MAAQ,cAAgB,KAAK,oBAAoB,KAAK,IAAIxqD,IAAG,KAAM,CAAC,CAAC,EAAG,EAAE,MAAQ,UAAY,KAAK,oBAAoB,KAAK,IAAIyqD,IAAG,KAAM,CAAC,CAAC,EAAG,EAAE,MAAQ,4BAA8B,KAAK,oBAAoB,KAAK,IAAIC,IAAG,KAAM,CAAC,CAAC,EAAG,EAAE,MAAQ,wBAA0B,KAAK,oBAAoB,KAAK,IAAIC,IAAG,KAAM,CAAC,CAAC,EAAG,EAAE,MAAQ,SAAW,KAAK,oBAAoB,KAAK,IAAIC,IAAG,KAAM,CAAC,CAAC,EAAG,EAAE,MAAQ,SAAW,KAAK,oBAAoB,KAAK,IAAInpD,IAAG,KAAM,CAAC,CAAC,EAAG,EAAE,MAAQ,QAAU,KAAK,oBAAoB,KAAK,IAAI6oD,IAAG,KAAM,CAAC,CAAC,CACxgB,GAAG,KAAK,UAAY,EACtB,CACD,MAAM,eAAe,EAAG,CACtB,GAAI,QAAQ,IAAI,2BAA6B,KAAK,IAAI,EAAG,KAAK,WAAa,QAAQ,IAAI,qBAAuB,KAAK,KAAO,uCAAuC,EAAG,KAAK,oBAAoB,EAAE,IAAM,KAAK,aAAe,MAAM,KAAK,iBAAiB,EAAE,EAAG,KAAK,gBAAe,EAAI,KAAK,0BAA2B,GAAG,EAAE,cACrT,MAAM,KAAK,wBAAwB,CAAE,MAAO,EAAE,MAAO,KAAM,EAAE,IAAI,CAAE,MAChE,CACH,IAAI,EAAI,KAAK,MAAM,aACnB,EAAE,MAAQ,EAAE,OAAS,KAAO,KAAK,gBAAgB,SAAS,EAAI,EAAE,MAAO,EAAE,KAAO,EAAE,MAAQ,KAAO,KAAK,gBAAgB,SAAS,EAAI,EAAE,IACtI,CACF,CACD,MAAM,eAAe,EAAI,CAAE,cAAe,GAAI,MAAO,OAAQ,KAAM,MAAM,EAAI,CAC3E,QAAQ,IAAI,2BAA6B,KAAK,IAAI,EAAG,EAAE,eAAiB,MAAM,KAAK,wBAAuB,EAAI,KAAK,oBAAoB,EAAE,CAC1I,CACD,oBAAoB,EAAG,CACrB,KAAK,cAAc,WAAW,CAAC,EAAG,KAAK,oBAAoB,QAAS,GAAM,CACxE,EAAI,EAAE,OAAQ,EAAG,EAAE,QAAO,CAChC,CAAK,CACF,CACD,iBAAiB,EAAG,CAClB,OAAO,IAAI,QAAS,GAAM,CACxB,QAAQ,IAAI,6BAA+B,KAAK,MAAQ,EAAI,sBAAwB,GAAG,EACvF,IAAI,EAAoB,IAAI,IAC5B,EAAE,IAAI,KAAK,gBAAgB,SAAS,eAAe,EAAG,KAAK,gBAAgB,oBAAoB,QAAS53F,GAAM,CAC5G,GAAIA,EAAE,MAAQ,aAAc,CAC1B,IAAIC,EAAID,EACR,EAAE,IAAIC,EAAE,cAAc,CACvB,CACD,GAAID,EAAE,MAAQ,SAAU,CACtB,IAAIC,EAAID,EACR,EAAE,IAAIC,EAAE,cAAc,CACvB,CACD,GAAID,EAAE,MAAQ,QAAS,CACrB,IAAIC,EAAID,EACR,EAAE,IAAIC,EAAE,cAAc,CACvB,CACD,GAAID,EAAE,MAAQ,QAAS,CACrB,IAAIC,EAAID,EACR,EAAE,IAAIC,EAAE,YAAY,EAAGA,EAAE,qBAAuB,EAAE,IAAIA,EAAE,mBAAmB,EAAGA,EAAE,mBAAqB,EAAE,IAAIA,EAAE,iBAAiB,CAC/H,CACD,GAAID,EAAE,MAAQ,2BAA4B,CACxC,IAAIC,EAAID,EACR,EAAE,IAAIC,EAAE,YAAY,EAAGA,EAAE,eAAiB,EAAE,IAAIA,EAAE,aAAa,EAAGA,EAAE,qBAAuB,EAAE,IAAIA,EAAE,mBAAmB,EAAGA,EAAE,mBAAqB,EAAE,IAAIA,EAAE,iBAAiB,CAC1K,CACD,GAAID,EAAE,MAAQ,uBAAwB,CACpC,IAAIC,EAAID,EACR,EAAE,IAAIC,EAAE,cAAc,EAAG,EAAE,IAAIA,EAAE,YAAY,CAC9C,CACT,CAAO,EAAG,GAAK,KAAK,MAAM,UAAS,EAAG,mBAChC,IAAI,EAAI,EACR,EAAE,QAAQ,MAAOD,GAAM,CACrB,MAAMo7B,GAAG,SAASp7B,CAAC,EAAE,iBAAgB,EAAI,IAAK,GAAK,EAAE,OAAS,QAAQ,IAAI,qBAAuB,KAAK,KAAO,SAAS,EAAG,KAAK,YAAc,GAAI,GAAK,KAAK,MAAM,UAAW,EAAC,cAAa,EAAI,EAAG,EACxM,CAAO,CACP,CAAK,CACF,CACD,2BAA4B,CAC1B,QAAQ,IAAI,yCAAyC,EACrD,IAAI,EAAI,GACR,KAAK,gBAAgB,oBAAoB,QAAS,GAAM,CACtD,EAAE,MAAQ,cAAgB,EAAE,KAAK,EAAE,iBAAiB,CACrD,GAAG,QAAQ,IAAI,WAAa,EAAE,OAAS,iCAAiC,EAAG,EAAE,QAAS,GAAM,CAC3F,IAAI,EAAI,KAAK,iBAAiB,cAAa,EAAG,KAAM,GAAM,EAAE,MAAO,GAAI,CAAC,EACxE,EAAE,aAAe,EAAE,iBAAiB,EAAE,CAC5C,CAAK,CACF,CACD,MAAM,wBAAwB,EAAI,CAAE,MAAO,OAAQ,KAAM,QAAU,CACjE,OAAO,QAAQ,IAAI,wCAAwC,EAAG,IAAI,QAAS,GAAM,CAC/E,IAAI,EAAI,IAAIwtC,GACZ,EAAE,cAAchb,GAAG,kBAAkB,EACrC,IAAI,EAAI,IAAIgb,GACZ,EAAE,cAAchb,GAAG,oBAAoB,EACvC,IAAIxyB,EAAI,KAAK,MAAM,aAAcC,EAAI,EAAE,OAAS,KAAO,KAAK,gBAAgB,SAAS,EAAI,EAAE,MAAO,EAAI,EAAE,MAAQ,KAAO,KAAK,gBAAgB,SAAS,EAAI,EAAE,KAC3JD,EAAE,OAAS,IAAIwP,EAAE,EAAG,EAAG,CAAC,EAAE,SAASxP,EAAE,OAAO,MAAM,GAAG,CAAC,EAAGA,EAAE,OAAS,KAAK,GAAIA,EAAE,OAAS,EAAI,KAAK,GAAIA,EAAE,OAAS,GAAKA,EAAE,MAAQ,EAAI,KAAK,GAAK,EAAGC,GAAK,EAAI,KAAK,GAAIA,GAAK,GAAKA,EAAI,EAAI,KAAK,GAAK,EAAG,KAAK,IAAID,EAAE,KAAK,EAAI,KAAK,IAAIC,CAAC,EAAI,KAAK,GAAKA,GAAK,KAAK,GAAK,EAAI,KAAK,IAAIA,CAAC,EAAI,KAAK,IAAID,EAAE,KAAK,EAAI,KAAK,KAAOC,GAAK,KAAK,GAAK,GAAID,EAAE,KAAO,IAC1U,IAAI,EAAI,GAAI,EAAI,IAChByzB,GAAG,wBAAwB,GAAIzzB,EAAG,SAAU,EAAG,EAAI,IAAM,EAAGA,EAAE,OAAQ,IAAIwP,EAAE,EAAG,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,WAAW,IAAM,CAC5GikB,GAAG,wBAAwB,GAAIzzB,EAAG,QAAS,EAAG,EAAI,IAAM,EAAGA,EAAE,MAAOC,EAAG,EAAG,CAAC,EAAGwzB,GAAG,wBAAwB,GAAIzzB,EAAG,OAAQ,EAAG,EAAI,IAAM,EAAGA,EAAE,KAAM,EAAG,EAAG,EAAG,IAAM,CAC7J,GACV,CAAS,CACF,EAAE,GAAG,CACZ,CAAK,CACF,CACD,MAAM,yBAA0B,CAC9B,OAAO,QAAQ,IAAI,wCAAwC,EAAG,IAAI,QAAS,GAAM,CAC/E,IAAI,EAAI,IAAIwtC,GACZ,EAAE,cAAchb,GAAG,iBAAiB,EACpC,IAAI,EAAI,KAAK,MAAM,aAAc,EAAI,GAAIxyB,EAAI,IAAKC,EAAI,GAAIiJ,EAAI,KAAK,MAAM,KAAK,KAAK,MAAM,SAAU,KAAK,MAAM,QAAQ,EAAE,WAAW,OAAO,SAAUpI,EAAI,IAAI0O,EAAEtG,EAAE,EAAG,EAAGA,EAAE,CAAC,EAAE,UAAS,EAAItI,EAAI,EAAE,OAAO,IAAIE,EAAE,MAAMb,CAAC,CAAC,EAAGY,EAAI2O,EAAE,QAC1NtG,EACA0G,EAAE,SAAU,EACZ,KAAK,MAAM,mBAAoB,EAC/B,EAAE,SAAS,SACT,KAAK,MAAM,UAAW,EAAC,eAAgB,EACvC,KAAK,MAAM,UAAW,EAAC,gBAAiB,CACzC,CACF,EAAE5J,EAAI,IAAIwJ,EAAEtG,EAAE,EAAG,EAAGA,EAAE,CAAC,EAAGjD,EAAI,EAAE,cAAa,EAAG,UACjDA,EAAE,EAAI,EACN,IAAIC,EAAIF,EAAE,EAAIC,EAAE,EAAID,EAAE,EAAIC,EAAE,EAAID,EAAE,EAAIC,EAAE,EAAGE,EAAI,KAAK,KAAKD,GAAKF,EAAE,OAAQ,EAAGC,EAAE,OAAQ,EAAC,EAAGG,EAAIvF,EAAE,EAAI,KAAK,MAAM,UAAW,EAAC,eAAgB,EAAG,EAAI,EAAE,MAAQsF,EAAI,EAAE,MAAQA,EACzK,WAAW,IAAM,CACf,IAAIqB,EAAI,KAAK,MAAM,UAAW,EAAC,mBAAkB,EAAI2V,EAAI3V,EAAE,MAAM,OAAQC,EAAID,EAAE,MAAM,WACrFA,EAAE,MAAM,WAAa,kBAAmBA,EAAE,MAAM,QAAU,cAAe,WAAW,IAAM,CACxFA,EAAE,MAAM,OAAS2V,CAC3B,EAAW,GAAG,EAAG,WAAW,IAAM,CACxB3V,EAAE,MAAM,WAAaC,CACtB,EAAE,IAAI,CACR,EAAEzH,EAAI,GAAG,EAAGyzB,GAAG,wBAAwB,GAAI,EAAG,QAAS,EAAGzzB,EAAI,IAAM,EAAG,EAAE,MAAOoG,EAAG,EAAG,CAAC,EAAGqtB,GAAG,wBAAwB,GAAI,EAAG,SAAU,EAAGzzB,EAAI,IAAM,EAAG,EAAE,OAAQY,EAAG,EAAG,CAAC,EAAG6yB,GAAG,wBAAwB,GAAI,EAAG,OAAQ,EAAGzzB,EAAI,IAAM,EAAG,EAAE,KAAM,EAAE,KAAM,EAAG,EAAG,IAAM,CAC/P,GACR,CAAO,CACP,CAAK,CACF,CAID,QAAQ,EAAG,CACT,KAAK,gBAAkB,KAAK,cAAc,KAAO,GAAI,KAAK,KAAO,CAClE,CAID,OAAQ,CACN,OAAO,KAAK,EACb,CACD,SAAU,CACR,OAAO,KAAK,IACb,CACD,UAAW,CACT,OAAO,KAAK,KACb,CACD,kBAAmB,CACjB,OAAO,KAAK,aACb,CACD,qBAAsB,CACpB,OAAO,KAAK,gBACb,CAED,oBAAqB,CACnB,OAAO,KAAK,SACb,CACD,wBAAyB,CACvB,OAAO,KAAK,mBACb,CACD,oBAAqB,CACnB,OAAO,KAAK,eACb,CACH,CACA,MAAMm4F,GAAG,CACP,YAAY,EAAG,EAAG,CAChB,KAAK,YAAc,GAAI,KAAK,WAAa,EAAG,KAAK,mBAAqB,EAAG,KAAK,kBAAoB,EAAE,gBACrG,CACD,OAAQ,CACN,IAAI,EAAI,IAAI/pE,GAAG,YAAY,EAC3B,KAAK,WAAW,WAAW,QAAS,GAAM,CACxC,IAAI,EAAI,IAAIypE,IAAG,EAAG,KAAK,mBAAoB,EAAG,IAAI,EAClD,KAAK,YAAY,KAAK,CAAC,CAC7B,CAAK,EACD,MAAM,EAAI,IAAI,gBAAgB,OAAO,SAAS,MAAM,EACpD,EAAE,IAAI,aAAa,IAAM,KAAK,kBAAoB,WAAW,EAAE,IAAI,aAAa,CAAC,GAAI,KAAK,gBAAgB,KAAK,kBAAmB,CAAE,cAAe,GAAI,EAAG,KAAK,2BAChK,CACD,MAAM,gBAAgB,EAAG,EAAI,CAAE,cAAe,GAAI,MAAO,OAAQ,KAAM,MAAM,EAAI,CAC/E,IAAI,EAAI,KAAK,YAAY,KAAM73F,GAAMA,EAAE,MAAK,GAAM,KAAK,iBAAiB,EACxE,EAAE,uBAAyBN,GAAG,8BAA8B,EAAG,KAAK,iBAAiB,EAAG,MAAM,EAAE,eAAe,CAAC,EAAGA,GAAG,6BAA6B,EAAG,KAAK,iBAAiB,GAAI,KAAK,kBAAoB,EAAG,KAAK,kBAAmBA,GAAG,8BAA8B,EAAG,KAAK,iBAAiB,EAAG,MAAM,KAAK,YAAY,KAAMM,GAAMA,EAAE,MAAK,GAAM,CAAC,EAAE,eAAe,CAAC,EAAGN,GAAG,6BAA6B,EAAG,KAAK,iBAAiB,CACja,CACD,2BAA4B,CAC1B,OAAO,WAAc,GAAM,CACzB,IAAI,EAAI,EAAE,MAAM,YAChB,KAAK,gBAAgB,EAAG,CAAE,cAAe,EAAE,CAAE,CACnD,EAAO,KAAK,iBACT,CACD,iBAAkB,CAChB,IAAI,EAAI,CAAE,YAAa,KAAK,iBAAmB,EAAE,EAAI,IAAI,IAAI,OAAO,SAAS,IAAI,EACjF,MAAM,EAAI,IAAI,gBAAgB,OAAO,SAAS,MAAM,EACpD,GAAI,EAAE,IAAI,aAAa,GAAK,EAAE,IAAI,aAAa,GAAK,KAAK,kBAAkB,SAAU,EACnF,OACF,EAAE,IAAI,cAAe,KAAK,kBAAkB,UAAU,EAAG,EAAE,OAAS,EAAE,SAAQ,EAC9E,IAAI,EAAI,EAAE,WACV,OAAO,QAAQ,UAAU,EAAG,GAAI,CAAC,CAClC,CACD,eAAgB,CACd,OAAO,KAAK,WACb,CACD,sBAAuB,CACrB,OAAO,KAAK,iBACb,CACD,oBAAqB,CACnB,OAAO,KAAK,YAAY,KAAM,GAAM,EAAE,MAAO,GAAI,KAAK,iBAAiB,CACxE,CACH,CACA,MAAM04F,GAAG,CACP,YAAY,EAAG,EAAG,CAChB,KAAK,WAAa,EAAG,KAAK,iBAAmB,IAAID,IAAG,EAAG,KAAK,UAAU,EAAG,KAAK,mBAAqB,CACpG,CACD,OAAQ,CACN/8D,GAAG,MAAM,KAAK,WAAW,WAAY,KAAK,kBAAkB,EAAG,KAAK,iBAAiB,MAAK,CAC3F,CAID,gBAAgB,EAAG,EAAI,CAAE,cAAe,GAAI,MAAO,OAAQ,KAAM,MAAM,EAAI,CACzE,KAAK,iBAAiB,gBAAgB,EAAG,CAAC,CAC3C,CAID,sBAAuB,CACrB,OAAO,KAAK,iBAAiB,sBAC9B,CACD,eAAgB,CACd,OAAO,KAAK,iBAAiB,eAC9B,CACH,CACA,IAAIi9D,GAAK,CAAE,QAAS,EAAI,EAAEC,IAAK,CAAE,EAAEC,GAAK,GAAIC,GAAK,GAAIC,GAAK,CAAE,EAAEC,GAAK,CAAE,EAAEC,GAAK,IAC3E,SAASt4F,EAAG,CACX,OAAO,eAAeA,EAAG,aAAc,CAAE,MAAO,EAAE,CAAE,EAAGA,EAAE,WAAaA,EAAE,iBAAmBA,EAAE,YAAcA,EAAE,cAAgBA,EAAE,UAAYA,EAAE,UAAYA,EAAE,WAAaA,EAAE,IAAMA,EAAE,EAAIA,EAAE,IAAMA,EAAE,MAAQA,EAAE,KAAOA,EAAE,WAAaA,EAAE,YAAc,OAChP,MAAM,CAAE,CACP,CACDA,EAAE,YAAc,EAAGA,EAAE,WAAa,wBAClC,MAAM,UAAU,CAAE,CAChB,YAAY+F,EAAG,CACb,GAAI,MAAO,EAAE,CAAC/F,EAAE,WAAW,KAAK+F,CAAC,EAC/B,MAAM,IAAI,MAAM,0CAA0C,EAC5D,KAAK,IAAMA,CACZ,CACD,UAAW,CACT,OAAO,KAAK,GACb,CACD,UAAW,CACT,MAAO,EACR,CACD,IAAI,OAAQ,CACV,MAAO,CAAE,CAAC,KAAK,GAAG,EAAG,CAAC,CACvB,CACF,CACD/F,EAAE,KAAO,EACT,MAAM,UAAU,CAAE,CAChB,YAAY+F,EAAG,CACb,MAAO,EAAE,KAAK,OAAS,OAAOA,GAAK,SAAW,CAACA,CAAC,EAAIA,CACrD,CACD,UAAW,CACT,OAAO,KAAK,GACb,CACD,UAAW,CACT,GAAI,KAAK,OAAO,OAAS,EACvB,MAAO,GACT,MAAMA,EAAI,KAAK,OAAO,CAAC,EACvB,OAAOA,IAAM,IAAMA,IAAM,IAC1B,CACD,IAAI,KAAM,CACR,IAAIA,EACJ,OAAQA,EAAI,KAAK,QAAU,MAAQA,IAAM,OAASA,EAAI,KAAK,KAAO,KAAK,OAAO,OAAO,CAACoB,EAAG,IAAM,GAAGA,CAAC,GAAG,CAAC,GAAI,EAAE,CAC9G,CACD,IAAI,OAAQ,CACV,IAAIpB,EACJ,OAAQA,EAAI,KAAK,UAAY,MAAQA,IAAM,OAASA,EAAI,KAAK,OAAS,KAAK,OAAO,OAAO,CAACoB,EAAG,KAAO,aAAa,IAAMA,EAAE,EAAE,GAAG,GAAKA,EAAE,EAAE,GAAG,GAAK,GAAK,GAAIA,GAAI,EAAE,CAC/J,CACF,CACDnH,EAAE,MAAQ,EAAGA,EAAE,IAAM,IAAI,EAAE,EAAE,EAC7B,SAAS,EAAE8F,KAAMC,EAAG,CAClB,MAAMoB,EAAI,CAACrB,EAAE,CAAC,CAAC,EACf,IAAI,EAAI,EACR,KAAO,EAAIC,EAAE,QACX,EAAEoB,EAAGpB,EAAE,CAAC,CAAC,EAAGoB,EAAE,KAAKrB,EAAE,EAAE,CAAC,CAAC,EAC3B,OAAO,IAAI,EAAEqB,CAAC,CACf,CACDnH,EAAE,EAAI,EACN,MAAML,EAAI,IAAI,EAAE,GAAG,EACnB,SAASC,EAAEkG,KAAMC,EAAG,CAClB,MAAMoB,EAAI,CAAC3G,EAAEsF,EAAE,CAAC,CAAC,CAAC,EAClB,IAAI,EAAI,EACR,KAAO,EAAIC,EAAE,QACXoB,EAAE,KAAKxH,CAAC,EAAG,EAAEwH,EAAGpB,EAAE,CAAC,CAAC,EAAGoB,EAAE,KAAKxH,EAAGa,EAAEsF,EAAE,EAAE,CAAC,CAAC,CAAC,EAC5C,OAAO,EAAEqB,CAAC,EAAG,IAAI,EAAEA,CAAC,CACrB,CACDnH,EAAE,IAAMJ,EACR,SAAS,EAAEkG,EAAGC,EAAG,CACfA,aAAa,EAAID,EAAE,KAAK,GAAGC,EAAE,MAAM,EAAIA,aAAa,EAAID,EAAE,KAAKC,CAAC,EAAID,EAAE,KAAK,EAAEC,CAAC,CAAC,CAChF,CACD/F,EAAE,WAAa,EACf,SAAS,EAAE8F,EAAG,CACZ,IAAIC,EAAI,EACR,KAAOA,EAAID,EAAE,OAAS,GAAK,CACzB,GAAIA,EAAEC,CAAC,IAAMpG,EAAG,CACd,MAAMwH,EAAI,EAAErB,EAAEC,EAAI,CAAC,EAAGD,EAAEC,EAAI,CAAC,CAAC,EAC9B,GAAIoB,IAAM,OAAQ,CAChBrB,EAAE,OAAOC,EAAI,EAAG,EAAGoB,CAAC,EACpB,QACD,CACDrB,EAAEC,GAAG,EAAI,GACV,CACDA,GACD,CACF,CACD,SAAS,EAAED,EAAGC,EAAG,CACf,GAAIA,IAAM,KACR,OAAOD,EACT,GAAIA,IAAM,KACR,OAAOC,EACT,GAAI,OAAOD,GAAK,SACd,OAAOC,aAAa,GAAKD,EAAEA,EAAE,OAAS,CAAC,IAAM,IAAM,OAAS,OAAOC,GAAK,SAAW,GAAGD,EAAE,MAAM,EAAG,EAAE,CAAC,GAAGC,CAAC,IAAMA,EAAE,CAAC,IAAM,IAAMD,EAAE,MAAM,EAAG,EAAE,EAAIC,EAAE,MAAM,CAAC,EAAI,OAC7J,GAAI,OAAOA,GAAK,UAAYA,EAAE,CAAC,IAAM,KAAO,EAAED,aAAa,GACzD,MAAO,IAAIA,CAAC,GAAGC,EAAE,MAAM,CAAC,CAAC,EAC5B,CACD,SAAS,EAAED,EAAGC,EAAG,CACf,OAAOA,EAAE,SAAQ,EAAKD,EAAIA,EAAE,SAAQ,EAAKC,EAAInG,IAAIkG,CAAC,GAAGC,CAAC,EACvD,CACD/F,EAAE,UAAY,EACd,SAAS,EAAE8F,EAAG,CACZ,OAAO,OAAOA,GAAK,UAAY,OAAOA,GAAK,WAAaA,IAAM,KAAOA,EAAItF,EAAE,MAAM,QAAQsF,CAAC,EAAIA,EAAE,KAAK,GAAG,EAAIA,CAAC,CAC9G,CACD,SAAS,EAAEA,EAAG,CACZ,OAAO,IAAI,EAAEtF,EAAEsF,CAAC,CAAC,CAClB,CACD9F,EAAE,UAAY,EACd,SAASQ,EAAEsF,EAAG,CACZ,OAAO,KAAK,UAAUA,CAAC,EAAE,QAAQ,UAAW,SAAS,EAAE,QAAQ,UAAW,SAAS,CACpF,CACD9F,EAAE,cAAgBQ,EAClB,SAASmF,EAAEG,EAAG,CACZ,OAAO,OAAOA,GAAK,UAAY9F,EAAE,WAAW,KAAK8F,CAAC,EAAI,IAAI,EAAE,IAAIA,CAAC,EAAE,EAAI,KAAKA,CAAC,GAC9E,CACD9F,EAAE,YAAc2F,EAChB,SAASC,EAAEE,EAAG,CACZ,GAAI,OAAOA,GAAK,UAAY9F,EAAE,WAAW,KAAK8F,CAAC,EAC7C,OAAO,IAAI,EAAE,GAAGA,CAAC,EAAE,EACrB,MAAM,IAAI,MAAM,iCAAiCA,CAAC,iCAAiC,CACpF,CACD9F,EAAE,iBAAmB4F,EACrB,SAASC,EAAEC,EAAG,CACZ,OAAO,IAAI,EAAEA,EAAE,SAAU,EAC1B,CACD9F,EAAE,WAAa6F,CACjB,GAAGyyF,EAAE,EACL,IAAIC,GAAK,IACR,SAASv4F,EAAG,CACX,OAAO,eAAeA,EAAG,aAAc,CAAE,MAAO,GAAI,EAAGA,EAAE,WAAaA,EAAE,eAAiBA,EAAE,MAAQA,EAAE,SAAWA,EAAE,eAAiB,OACnI,MAAM,EAAIs4F,GACV,MAAM,UAAU,KAAM,CACpB,YAAY,EAAG,CACb,MAAM,uBAAuB,CAAC,cAAc,EAAG,KAAK,MAAQ,EAAE,KAC/D,CACF,CACD,IAAI,GACH,SAAS,EAAG,CACX,EAAE,EAAE,QAAU,CAAC,EAAI,UAAW,EAAE,EAAE,UAAY,CAAC,EAAI,WACvD,GAAK,IAAMt4F,EAAE,eAAiB,EAAI,GAAG,EAAGA,EAAE,SAAW,CACjD,MAAO,IAAI,EAAE,KAAK,OAAO,EACzB,IAAK,IAAI,EAAE,KAAK,KAAK,EACrB,IAAK,IAAI,EAAE,KAAK,KAAK,CACzB,EACE,MAAM,CAAE,CACN,YAAY,CAAE,SAAU,EAAG,OAAQ,CAAG,EAAG,GAAI,CAC3C,KAAK,OAAS,GAAI,KAAK,UAAY,EAAG,KAAK,QAAU,CACtD,CACD,OAAO,EAAG,CACR,OAAO,aAAa,EAAE,KAAO,EAAI,KAAK,KAAK,CAAC,CAC7C,CACD,KAAK,EAAG,CACN,OAAO,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CACnC,CACD,SAAS,EAAG,CACV,MAAM,EAAI,KAAK,OAAO,CAAC,GAAK,KAAK,WAAW,CAAC,EAC7C,MAAO,GAAG,CAAC,GAAG,EAAE,OAAO,EACxB,CACD,WAAW,EAAG,CACZ,IAAI,EAAG,EACP,GAAI,GAAG,GAAK,EAAI,KAAK,WAAa,MAAQ,IAAM,OAAS,OAAS,EAAE,aAAe,MAAQ,IAAM,SAAW,EAAE,IAAI,CAAC,GAAK,KAAK,WAAa,CAAC,KAAK,UAAU,IAAI,CAAC,EAC7J,MAAM,IAAI,MAAM,oBAAoB,CAAC,gCAAgC,EACvE,OAAO,KAAK,OAAO,CAAC,EAAI,CAAE,OAAQ,EAAG,MAAO,EAC7C,CACF,CACDA,EAAE,MAAQ,EACV,MAAML,UAAU,EAAE,IAAK,CACrB,YAAY,EAAG,EAAG,CAChB,MAAM,CAAC,EAAG,KAAK,OAAS,CACzB,CACD,SAAS,EAAG,CAAE,SAAU,EAAG,UAAW,GAAK,CACzC,KAAK,MAAQ,EAAG,KAAK,aAAgB,EAAE,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAChE,CACF,CACDK,EAAE,eAAiBL,EACnB,MAAMC,KAAQ,EAAE,OAChB,MAAM,UAAU,CAAE,CAChB,YAAY,EAAG,CACb,MAAM,CAAC,EAAG,KAAK,QAAU,GAAI,KAAK,OAAS,EAAE,MAAO,KAAK,KAAO,CAAE,GAAG,EAAG,GAAI,EAAE,MAAQA,EAAI,EAAE,IAC7F,CACD,KAAM,CACJ,OAAO,KAAK,MACb,CACD,KAAK,EAAG,CACN,OAAO,IAAID,EAAE,EAAG,KAAK,SAAS,CAAC,CAAC,CACjC,CACD,MAAM,EAAG,EAAG,CACV,IAAI,EACJ,GAAI,EAAE,MAAQ,OACZ,MAAM,IAAI,MAAM,sCAAsC,EACxD,MAAM,EAAI,KAAK,OAAO,CAAC,EAAG,CAAE,OAAQa,CAAG,EAAG,EAAGmF,GAAK,EAAI,EAAE,OAAS,MAAQ,IAAM,OAAS,EAAI,EAAE,IAC9F,IAAIC,EAAI,KAAK,QAAQpF,CAAC,EACtB,GAAIoF,EAAG,CACL,MAAMG,EAAIH,EAAE,IAAID,CAAC,EACjB,GAAII,EACF,OAAOA,CACV,MACCH,EAAI,KAAK,QAAQpF,CAAC,EAAoB,IAAI,IAC5CoF,EAAE,IAAID,EAAG,CAAC,EACV,MAAME,EAAI,KAAK,OAAOrF,CAAC,IAAM,KAAK,OAAOA,CAAC,EAAI,CAAE,GAAGsF,EAAID,EAAE,OACzD,OAAOA,EAAEC,CAAC,EAAI,EAAE,IAAK,EAAE,SAAS,EAAG,CAAE,SAAUtF,EAAG,UAAWsF,CAAG,GAAG,CACpE,CACD,SAAS,EAAG,EAAG,CACb,MAAM,EAAI,KAAK,QAAQ,CAAC,EACxB,GAAI,EACF,OAAO,EAAE,IAAI,CAAC,CACjB,CACD,UAAU,EAAG,EAAI,KAAK,QAAS,CAC7B,OAAO,KAAK,cAAc,EAAI,GAAM,CAClC,GAAI,EAAE,YAAc,OAClB,MAAM,IAAI,MAAM,kBAAkB,CAAC,gBAAgB,EACrD,SAAW,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EACzC,CAAO,CACF,CACD,UAAU,EAAI,KAAK,QAAS,EAAG,EAAG,CAChC,OAAO,KAAK,cAAc,EAAI,GAAM,CAClC,GAAI,EAAE,QAAU,OACd,MAAM,IAAI,MAAM,kBAAkB,CAAC,gBAAgB,EACrD,OAAO,EAAE,MAAM,IACvB,EAAS,EAAG,CAAC,CACR,CACD,cAAc,EAAG,EAAG,EAAI,GAAI,EAAG,CAC7B,IAAItF,EAAI,EAAE,IACV,UAAWmF,KAAK,EAAG,CACjB,MAAMC,EAAI,EAAED,CAAC,EACb,GAAI,CAACC,EACH,SACF,MAAMC,EAAI,EAAEF,CAAC,EAAI,EAAEA,CAAC,GAAqB,IAAI,IAC7CC,EAAE,QAASE,GAAM,CACf,GAAID,EAAE,IAAIC,CAAC,EACT,OACFD,EAAE,IAAIC,EAAG,EAAE,OAAO,EAClB,IAAIC,EAAI,EAAED,CAAC,EACX,GAAIC,EAAG,CACL,MAAMoB,EAAI,KAAK,KAAK,IAAMnH,EAAE,SAAS,IAAMA,EAAE,SAAS,MACtDQ,KAAQ,EAAE,KAAKA,CAAC,GAAG2G,CAAC,IAAIrB,CAAC,MAAMC,CAAC,IAAI,KAAK,KAAK,EAAE,EAC5D,SAAqBA,EAAyB,IAAED,CAAC,EACrCtF,KAAQ,EAAE,KAAKA,CAAC,GAAGuF,CAAC,GAAG,KAAK,KAAK,EAAE,OAEnC,OAAM,IAAI,EAAED,CAAC,EACfD,EAAE,IAAIC,EAAG,EAAE,SAAS,CAC9B,CAAS,CACF,CACD,OAAOtF,CACR,CACF,CACDR,EAAE,WAAa,CACjB,GAAGu4F,EAAE,GACJ,SAASv4F,EAAG,CACX,OAAO,eAAeA,EAAG,aAAc,CAAE,MAAO,EAAE,CAAE,EAAGA,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,QAAUA,EAAE,UAAYA,EAAE,SAAWA,EAAE,eAAiBA,EAAE,WAAaA,EAAE,MAAQA,EAAE,KAAOA,EAAE,WAAaA,EAAE,UAAYA,EAAE,YAAcA,EAAE,IAAMA,EAAE,UAAYA,EAAE,IAAMA,EAAE,EAAI,OAC3P,MAAM,EAAIs4F,GAAI,EAAIC,GAClB,IAAI,EAAID,GACR,OAAO,eAAet4F,EAAG,IAAK,CAAE,WAAY,GAAI,IAAK,UAAW,CAC9D,OAAO,EAAE,CACb,EAAK,EAAG,OAAO,eAAeA,EAAG,MAAO,CAAE,WAAY,GAAI,IAAK,UAAW,CACtE,OAAO,EAAE,GACb,EAAK,EAAG,OAAO,eAAeA,EAAG,YAAa,CAAE,WAAY,GAAI,IAAK,UAAW,CAC5E,OAAO,EAAE,SACb,EAAK,EAAG,OAAO,eAAeA,EAAG,MAAO,CAAE,WAAY,GAAI,IAAK,UAAW,CACtE,OAAO,EAAE,GACb,EAAK,EAAG,OAAO,eAAeA,EAAG,cAAe,CAAE,WAAY,GAAI,IAAK,UAAW,CAC9E,OAAO,EAAE,WACb,EAAK,EAAG,OAAO,eAAeA,EAAG,YAAa,CAAE,WAAY,GAAI,IAAK,UAAW,CAC5E,OAAO,EAAE,SACb,EAAK,EAAG,OAAO,eAAeA,EAAG,aAAc,CAAE,WAAY,GAAI,IAAK,UAAW,CAC7E,OAAO,EAAE,UACb,EAAK,EAAG,OAAO,eAAeA,EAAG,OAAQ,CAAE,WAAY,GAAI,IAAK,UAAW,CACvE,OAAO,EAAE,IACV,EAAE,EACH,IAAI,EAAIu4F,GACR,OAAO,eAAev4F,EAAG,QAAS,CAAE,WAAY,GAAI,IAAK,UAAW,CAClE,OAAO,EAAE,KACb,EAAK,EAAG,OAAO,eAAeA,EAAG,aAAc,CAAE,WAAY,GAAI,IAAK,UAAW,CAC7E,OAAO,EAAE,UACb,EAAK,EAAG,OAAO,eAAeA,EAAG,iBAAkB,CAAE,WAAY,GAAI,IAAK,UAAW,CACjF,OAAO,EAAE,cACb,EAAK,EAAG,OAAO,eAAeA,EAAG,WAAY,CAAE,WAAY,GAAI,IAAK,UAAW,CAC3E,OAAO,EAAE,QACb,EAAK,EAAGA,EAAE,UAAY,CAClB,GAAI,IAAI,EAAE,MAAM,GAAG,EACnB,IAAK,IAAI,EAAE,MAAM,IAAI,EACrB,GAAI,IAAI,EAAE,MAAM,GAAG,EACnB,IAAK,IAAI,EAAE,MAAM,IAAI,EACrB,GAAI,IAAI,EAAE,MAAM,KAAK,EACrB,IAAK,IAAI,EAAE,MAAM,KAAK,EACtB,IAAK,IAAI,EAAE,MAAM,GAAG,EACpB,GAAI,IAAI,EAAE,MAAM,IAAI,EACpB,IAAK,IAAI,EAAE,MAAM,IAAI,EACrB,IAAK,IAAI,EAAE,MAAM,GAAG,CACxB,EACE,MAAML,CAAE,CACN,eAAgB,CACd,OAAO,IACR,CACD,cAAckQ,EAAGC,EAAG,CAClB,OAAO,IACR,CACF,CACD,MAAMlQ,UAAUD,CAAE,CAChB,YAAYkQ,EAAGC,EAAGC,EAAI,CACpB,QAAS,KAAK,QAAUF,EAAG,KAAK,KAAOC,EAAG,KAAK,IAAMC,CACtD,CACD,OAAO,CAAE,IAAKF,EAAG,GAAIC,CAAC,EAAI,CACxB,MAAMC,EAAKF,EAAI,EAAE,SAAS,IAAM,KAAK,QAASG,EAAK,KAAK,MAAQ,OAAS,GAAK,MAAM,KAAK,GAAG,GAC5F,MAAO,GAAGD,CAAE,IAAI,KAAK,IAAI,GAAGC,CAAE,IAAMF,CACrC,CACD,cAAcD,EAAGC,EAAG,CAClB,GAAID,EAAE,KAAK,KAAK,GAAG,EACjB,OAAO,KAAK,MAAQ,KAAK,IAAMjI,EAAG,KAAK,IAAKiI,EAAGC,CAAC,GAAI,IACvD,CACD,IAAI,OAAQ,CACV,OAAO,KAAK,eAAe,EAAE,YAAc,KAAK,IAAI,MAAQ,EAC7D,CACF,CACD,MAAM,UAAUnQ,CAAE,CAChB,YAAYkQ,EAAGC,EAAGC,EAAI,CACpB,QAAS,KAAK,IAAMF,EAAG,KAAK,IAAMC,EAAG,KAAK,YAAcC,CACzD,CACD,OAAO,CAAE,GAAIF,GAAK,CAChB,MAAO,GAAG,KAAK,GAAG,MAAM,KAAK,GAAG,IAAMA,CACvC,CACD,cAAcA,EAAGC,EAAG,CAClB,GAAI,EAAE,KAAK,eAAe,EAAE,MAAQ,CAACD,EAAE,KAAK,IAAI,GAAG,GAAK,CAAC,KAAK,aAC5D,OAAO,KAAK,IAAMjI,EAAG,KAAK,IAAKiI,EAAGC,CAAC,EAAG,IACzC,CACD,IAAI,OAAQ,CACV,MAAMD,EAAI,KAAK,eAAe,EAAE,KAAO,CAAE,EAAG,CAAE,GAAG,KAAK,IAAI,KAAK,EAC/D,OAAOlI,EAAGkI,EAAG,KAAK,GAAG,CACtB,CACF,CACD,MAAM,UAAU,CAAE,CAChB,YAAYA,EAAGC,EAAGC,EAAIC,EAAI,CACxB,MAAMH,EAAGE,EAAIC,CAAE,EAAG,KAAK,GAAKF,CAC7B,CACD,OAAO,CAAE,GAAID,GAAK,CAChB,MAAO,GAAG,KAAK,GAAG,IAAI,KAAK,EAAE,KAAK,KAAK,GAAG,IAAMA,CACjD,CACF,CACD,MAAM,UAAUlQ,CAAE,CAChB,YAAYkQ,EAAG,CACb,MAAK,EAAI,KAAK,MAAQA,EAAG,KAAK,MAAQ,EACvC,CACD,OAAO,CAAE,GAAIA,GAAK,CAChB,MAAO,GAAG,KAAK,KAAK,IAAMA,CAC3B,CACF,CACD,MAAM,UAAUlQ,CAAE,CAChB,YAAYkQ,EAAG,CACb,MAAK,EAAI,KAAK,MAAQA,EAAG,KAAK,MAAQ,EACvC,CACD,OAAO,CAAE,GAAIA,GAAK,CAChB,MAAO,QAAQ,KAAK,MAAQ,IAAI,KAAK,KAAK,GAAK,EAAE,IAAMA,CACxD,CACF,CACD,MAAM,UAAUlQ,CAAE,CAChB,YAAYkQ,EAAG,CACb,QAAS,KAAK,MAAQA,CACvB,CACD,OAAO,CAAE,GAAIA,GAAK,CAChB,MAAO,SAAS,KAAK,KAAK,IAAMA,CACjC,CACD,IAAI,OAAQ,CACV,OAAO,KAAK,MAAM,KACnB,CACF,CACD,MAAM,UAAUlQ,CAAE,CAChB,YAAYkQ,EAAG,CACb,QAAS,KAAK,KAAOA,CACtB,CACD,OAAO,CAAE,GAAIA,GAAK,CAChB,MAAO,GAAG,KAAK,IAAI,IAAMA,CAC1B,CACD,eAAgB,CACd,MAAO,GAAG,KAAK,IAAI,GAAK,KAAO,MAChC,CACD,cAAcA,EAAGC,EAAG,CAClB,OAAO,KAAK,KAAOlI,EAAG,KAAK,KAAMiI,EAAGC,CAAC,EAAG,IACzC,CACD,IAAI,OAAQ,CACV,OAAO,KAAK,gBAAgB,EAAE,YAAc,KAAK,KAAK,MAAQ,EAC/D,CACF,CACD,MAAMtP,UAAUb,CAAE,CAChB,YAAYkQ,EAAI,GAAI,CAClB,QAAS,KAAK,MAAQA,CACvB,CACD,OAAOA,EAAG,CACR,OAAO,KAAK,MAAM,OAAO,CAACC,EAAGC,IAAOD,EAAIC,EAAG,OAAOF,CAAC,EAAG,EAAE,CACzD,CACD,eAAgB,CACd,KAAM,CAAE,MAAOA,CAAG,EAAG,KACrB,IAAIC,EAAID,EAAE,OACV,KAAOC,KAAO,CACZ,MAAMC,EAAKF,EAAEC,CAAC,EAAE,cAAa,EAC7B,MAAM,QAAQC,CAAE,EAAIF,EAAE,OAAOC,EAAG,EAAG,GAAGC,CAAE,EAAIA,EAAKF,EAAEC,CAAC,EAAIC,EAAKF,EAAE,OAAOC,EAAG,CAAC,CAC3E,CACD,OAAOD,EAAE,OAAS,EAAI,KAAO,MAC9B,CACD,cAAcA,EAAGC,EAAG,CAClB,KAAM,CAAE,MAAOC,CAAI,EAAG,KACtB,IAAIC,EAAKD,EAAG,OACZ,KAAOC,KAAQ,CACb,MAAMC,EAAKF,EAAGC,CAAE,EAChBC,EAAG,cAAcJ,EAAGC,CAAC,IAAMjI,GAAGgI,EAAGI,EAAG,KAAK,EAAGF,EAAG,OAAOC,EAAI,CAAC,EAC5D,CACD,OAAOD,EAAG,OAAS,EAAI,KAAO,MAC/B,CACD,IAAI,OAAQ,CACV,OAAO,KAAK,MAAM,OAAO,CAACF,EAAGC,IAAMtI,EAAEqI,EAAGC,EAAE,KAAK,EAAG,CAAE,EACrD,CACF,CACD,MAAMnK,UAAUnF,CAAE,CAChB,OAAOqP,EAAG,CACR,MAAO,IAAMA,EAAE,GAAK,MAAM,OAAOA,CAAC,EAAI,IAAMA,EAAE,EAC/C,CACF,CACD,MAAMjK,UAAUpF,CAAE,CACjB,CACD,MAAMqF,UAAUF,CAAE,CACjB,CACDE,EAAE,KAAO,OACT,MAAMC,UAAUH,CAAE,CAChB,YAAYkK,EAAGC,EAAG,CAChB,MAAMA,CAAC,EAAG,KAAK,UAAYD,CAC5B,CACD,OAAOA,EAAG,CACR,IAAIC,EAAI,MAAM,KAAK,SAAS,IAAM,MAAM,OAAOD,CAAC,EAChD,OAAO,KAAK,OAASC,GAAK,QAAU,KAAK,KAAK,OAAOD,CAAC,GAAIC,CAC3D,CACD,eAAgB,CACd,MAAM,cAAa,EACnB,MAAMD,EAAI,KAAK,UACf,GAAIA,IAAM,GACR,OAAO,KAAK,MACd,IAAIC,EAAI,KAAK,KACb,GAAIA,EAAG,CACL,MAAMC,EAAKD,EAAE,gBACbA,EAAI,KAAK,KAAO,MAAM,QAAQC,CAAE,EAAI,IAAIlK,EAAEkK,CAAE,EAAIA,CACjD,CACD,GAAID,EACF,OAAOD,IAAM,GAAKC,aAAahK,EAAIgK,EAAIA,EAAE,MAAQ,KAAK,MAAM,OAAS,KAAO,IAAIhK,EAAEgC,GAAG+H,CAAC,EAAGC,aAAahK,EAAI,CAACgK,CAAC,EAAIA,EAAE,KAAK,EACzH,GAAI,EAAED,IAAM,IAAM,CAAC,KAAK,MAAM,QAC5B,OAAO,IACV,CACD,cAAcA,EAAGC,EAAG,CAClB,IAAIC,EACJ,GAAI,KAAK,MAAQA,EAAK,KAAK,QAAU,MAAQA,IAAO,OAAS,OAASA,EAAG,cAAcF,EAAGC,CAAC,EAAG,CAAC,EAAE,MAAM,cAAcD,EAAGC,CAAC,GAAK,KAAK,MACjI,OAAO,KAAK,UAAYlI,EAAG,KAAK,UAAWiI,EAAGC,CAAC,EAAG,IACrD,CACD,IAAI,OAAQ,CACV,MAAMD,EAAI,MAAM,MAChB,OAAOlI,EAAGkI,EAAG,KAAK,SAAS,EAAG,KAAK,MAAQrI,EAAEqI,EAAG,KAAK,KAAK,KAAK,EAAGA,CACnE,CACF,CACD/J,EAAE,KAAO,KACT,MAAMC,UAAUJ,CAAE,CACjB,CACDI,EAAE,KAAO,MACT,MAAMoB,UAAUpB,CAAE,CAChB,YAAY8J,EAAG,CACb,QAAS,KAAK,UAAYA,CAC3B,CACD,OAAOA,EAAG,CACR,MAAO,OAAO,KAAK,SAAS,IAAM,MAAM,OAAOA,CAAC,CACjD,CACD,cAAcA,EAAGC,EAAG,CAClB,GAAI,MAAM,cAAcD,EAAGC,CAAC,EAC1B,OAAO,KAAK,UAAYlI,EAAG,KAAK,UAAWiI,EAAGC,CAAC,EAAG,IACrD,CACD,IAAI,OAAQ,CACV,OAAOtI,EAAE,MAAM,MAAO,KAAK,UAAU,KAAK,CAC3C,CACF,CACD,MAAM,UAAUzB,CAAE,CAChB,YAAY8J,EAAGC,EAAGC,EAAIC,EAAI,CACxB,MAAO,EAAE,KAAK,QAAUH,EAAG,KAAK,KAAOC,EAAG,KAAK,KAAOC,EAAI,KAAK,GAAKC,CACrE,CACD,OAAOH,EAAG,CACR,MAAMC,EAAID,EAAE,IAAM,EAAE,SAAS,IAAM,KAAK,QAAS,CAAE,KAAME,EAAI,KAAMC,EAAI,GAAIC,CAAI,EAAG,KAClF,MAAO,OAAOH,CAAC,IAAIC,CAAE,IAAIC,CAAE,KAAKD,CAAE,IAAIE,CAAE,KAAKF,CAAE,MAAQ,MAAM,OAAOF,CAAC,CACtE,CACD,IAAI,OAAQ,CACV,MAAMA,EAAIlI,EAAG,MAAM,MAAO,KAAK,IAAI,EACnC,OAAOA,EAAGkI,EAAG,KAAK,EAAE,CACrB,CACF,CACD,MAAMzI,UAAUrB,CAAE,CAChB,YAAY8J,EAAGC,EAAGC,EAAIC,EAAI,CACxB,MAAO,EAAE,KAAK,KAAOH,EAAG,KAAK,QAAUC,EAAG,KAAK,KAAOC,EAAI,KAAK,SAAWC,CAC3E,CACD,OAAOH,EAAG,CACR,MAAO,OAAO,KAAK,OAAO,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,QAAQ,IAAM,MAAM,OAAOA,CAAC,CAC1F,CACD,cAAcA,EAAGC,EAAG,CAClB,GAAI,MAAM,cAAcD,EAAGC,CAAC,EAC1B,OAAO,KAAK,SAAWlI,EAAG,KAAK,SAAUiI,EAAGC,CAAC,EAAG,IACnD,CACD,IAAI,OAAQ,CACV,OAAOtI,EAAE,MAAM,MAAO,KAAK,SAAS,KAAK,CAC1C,CACF,CACD,MAAMH,UAAU1B,CAAE,CAChB,YAAYkK,EAAGC,EAAGC,EAAI,CACpB,QAAS,KAAK,KAAOF,EAAG,KAAK,KAAOC,EAAG,KAAK,MAAQC,CACrD,CACD,OAAOF,EAAG,CACR,MAAO,GAAG,KAAK,MAAQ,SAAW,EAAE,YAAY,KAAK,IAAI,IAAI,KAAK,IAAI,IAAM,MAAM,OAAOA,CAAC,CAC3F,CACF,CACDxI,EAAE,KAAO,OACT,MAAMC,UAAU9G,CAAE,CAChB,OAAOqP,EAAG,CACR,MAAO,UAAY,MAAM,OAAOA,CAAC,CAClC,CACF,CACDvI,EAAE,KAAO,SACT,MAAMC,UAAU5B,CAAE,CAChB,OAAOkK,EAAG,CACR,IAAIC,EAAI,MAAQ,MAAM,OAAOD,CAAC,EAC9B,OAAO,KAAK,QAAUC,GAAK,KAAK,MAAM,OAAOD,CAAC,GAAI,KAAK,UAAYC,GAAK,KAAK,QAAQ,OAAOD,CAAC,GAAIC,CAClG,CACD,eAAgB,CACd,IAAID,EAAGC,EACP,OAAO,MAAM,iBAAkBD,EAAI,KAAK,SAAW,MAAQA,IAAM,QAAUA,EAAE,cAAe,GAAGC,EAAI,KAAK,WAAa,MAAQA,IAAM,QAAUA,EAAE,cAAa,EAAI,IACjK,CACD,cAAcD,EAAGC,EAAG,CAClB,IAAIC,EAAIC,EACR,OAAO,MAAM,cAAcH,EAAGC,CAAC,GAAIC,EAAK,KAAK,SAAW,MAAQA,IAAO,QAAUA,EAAG,cAAcF,EAAGC,CAAC,GAAIE,EAAK,KAAK,WAAa,MAAQA,IAAO,QAAUA,EAAG,cAAcH,EAAGC,CAAC,EAAG,IACnL,CACD,IAAI,OAAQ,CACV,MAAMD,EAAI,MAAM,MAChB,OAAO,KAAK,OAASrI,EAAEqI,EAAG,KAAK,MAAM,KAAK,EAAG,KAAK,SAAWrI,EAAEqI,EAAG,KAAK,QAAQ,KAAK,EAAGA,CACxF,CACF,CACD,MAAM7G,UAAUrD,CAAE,CAChB,YAAYkK,EAAG,CACb,QAAS,KAAK,MAAQA,CACvB,CACD,OAAOA,EAAG,CACR,MAAO,SAAS,KAAK,KAAK,IAAM,MAAM,OAAOA,CAAC,CAC/C,CACF,CACD7G,EAAE,KAAO,QACT,MAAMvB,UAAU9B,CAAE,CAChB,OAAOkK,EAAG,CACR,MAAO,UAAY,MAAM,OAAOA,CAAC,CAClC,CACF,CACDpI,EAAE,KAAO,UACT,MAAMC,CAAE,CACN,YAAYmI,EAAGC,EAAI,GAAI,CACrB,KAAK,QAAU,GAAI,KAAK,aAAe,GAAI,KAAK,WAAa,CAAE,EAAE,KAAK,KAAO,CAAE,GAAGA,EAAG,GAAIA,EAAE,MAAQ;AAAA,EACrG,EAAI,EAAE,KAAK,UAAYD,EAAG,KAAK,OAAS,IAAI,EAAE,MAAM,CAAE,OAAQA,CAAC,CAAE,EAAG,KAAK,OAAS,CAAC,IAAIjK,CAAG,CACzF,CACD,UAAW,CACT,OAAO,KAAK,MAAM,OAAO,KAAK,IAAI,CACnC,CAED,KAAKiK,EAAG,CACN,OAAO,KAAK,OAAO,KAAKA,CAAC,CAC1B,CAED,UAAUA,EAAG,CACX,OAAO,KAAK,UAAU,KAAKA,CAAC,CAC7B,CAED,WAAWA,EAAGC,EAAG,CACf,MAAMC,EAAK,KAAK,UAAU,MAAMF,EAAGC,CAAC,EACpC,OAAQ,KAAK,QAAQC,EAAG,MAAM,IAAM,KAAK,QAAQA,EAAG,MAAM,EAAoB,IAAI,MAAQ,IAAIA,CAAE,EAAGA,CACpG,CACD,cAAcF,EAAGC,EAAG,CAClB,OAAO,KAAK,UAAU,SAASD,EAAGC,CAAC,CACpC,CAGD,UAAUD,EAAG,CACX,OAAO,KAAK,UAAU,UAAUA,EAAG,KAAK,OAAO,CAChD,CACD,WAAY,CACV,OAAO,KAAK,UAAU,UAAU,KAAK,OAAO,CAC7C,CACD,KAAKA,EAAGC,EAAGC,EAAIC,EAAI,CACjB,MAAMC,EAAK,KAAK,OAAO,OAAOH,CAAC,EAC/B,OAAOC,IAAO,QAAUC,IAAO,KAAK,WAAWC,EAAG,GAAG,EAAIF,GAAK,KAAK,UAAU,IAAInQ,EAAEiQ,EAAGI,EAAIF,CAAE,CAAC,EAAGE,CACjG,CAED,MAAMJ,EAAGC,EAAGC,EAAI,CACd,OAAO,KAAK,KAAK,EAAE,SAAS,MAAOF,EAAGC,EAAGC,CAAE,CAC5C,CAED,IAAIF,EAAGC,EAAGC,EAAI,CACZ,OAAO,KAAK,KAAK,EAAE,SAAS,IAAKF,EAAGC,EAAGC,CAAE,CAC1C,CAED,IAAIF,EAAGC,EAAGC,EAAI,CACZ,OAAO,KAAK,KAAK,EAAE,SAAS,IAAKF,EAAGC,EAAGC,CAAE,CAC1C,CAED,OAAOF,EAAGC,EAAGC,EAAI,CACf,OAAO,KAAK,UAAU,IAAI,EAAEF,EAAGC,EAAGC,CAAE,CAAC,CACtC,CAED,IAAIF,EAAGC,EAAG,CACR,OAAO,KAAK,UAAU,IAAI,EAAED,EAAG7P,EAAE,UAAU,IAAK8P,CAAC,CAAC,CACnD,CAED,KAAKD,EAAG,CACN,OAAO,OAAOA,GAAK,WAAaA,EAAG,EAAGA,IAAM,EAAE,KAAO,KAAK,UAAU,IAAI,EAAEA,CAAC,CAAC,EAAG,IAChF,CAED,UAAUA,EAAG,CACX,MAAMC,EAAI,CAAC,GAAG,EACd,SAAW,CAACC,EAAIC,CAAE,IAAKH,EACrBC,EAAE,OAAS,GAAKA,EAAE,KAAK,GAAG,EAAGA,EAAE,KAAKC,CAAE,GAAIA,IAAOC,GAAM,KAAK,KAAK,OAASF,EAAE,KAAK,GAAG,KAAO,EAAE,YAAYA,EAAGE,CAAE,GAChH,OAAOF,EAAE,KAAK,GAAG,EAAG,IAAI,EAAE,MAAMA,CAAC,CAClC,CAED,GAAGD,EAAGC,EAAGC,EAAI,CACX,GAAI,KAAK,WAAW,IAAIjK,EAAE+J,CAAC,CAAC,EAAGC,GAAKC,EAClC,KAAK,KAAKD,CAAC,EAAE,KAAM,EAAC,KAAKC,CAAE,EAAE,gBACtBD,EACP,KAAK,KAAKA,CAAC,EAAE,MAAK,UACXC,EACP,MAAM,IAAI,MAAM,0CAA0C,EAC5D,OAAO,IACR,CAED,OAAOF,EAAG,CACR,OAAO,KAAK,UAAU,IAAI/J,EAAE+J,CAAC,CAAC,CAC/B,CAED,MAAO,CACL,OAAO,KAAK,UAAU,IAAIhK,CAAG,CAC9B,CAED,OAAQ,CACN,OAAO,KAAK,cAAcC,EAAGD,CAAC,CAC/B,CACD,KAAKgK,EAAGC,EAAG,CACT,OAAO,KAAK,WAAWD,CAAC,EAAGC,GAAK,KAAK,KAAKA,CAAC,EAAE,OAAM,EAAI,IACxD,CAED,IAAID,EAAGC,EAAG,CACR,OAAO,KAAK,KAAK,IAAI3I,EAAE0I,CAAC,EAAGC,CAAC,CAC7B,CAED,SAASD,EAAGC,EAAGC,EAAIC,EAAIC,EAAK,KAAK,KAAK,IAAM,EAAE,SAAS,IAAM,EAAE,SAAS,IAAK,CAC3E,MAAMC,GAAK,KAAK,OAAO,OAAOL,CAAC,EAC/B,OAAO,KAAK,KAAK,IAAI,EAAEI,EAAIC,GAAIJ,EAAGC,CAAE,EAAG,IAAMC,EAAGE,EAAE,CAAC,CACpD,CAED,MAAML,EAAGC,EAAGC,EAAIC,EAAK,EAAE,SAAS,MAAO,CACrC,MAAMC,EAAK,KAAK,OAAO,OAAOJ,CAAC,EAC/B,GAAI,KAAK,KAAK,IAAK,CACjB,MAAMK,GAAKJ,aAAa,EAAE,KAAOA,EAAI,KAAK,IAAI,OAAQA,CAAC,EACvD,OAAO,KAAK,SAAS,KAAM,KAAO,EAAE,KAAKI,EAAE,UAAYC,IAAO,CAC5D,KAAK,IAAIF,KAAQ,EAAE,KAAKC,EAAE,IAAIC,EAAE,GAAG,EAAGJ,EAAGE,CAAE,CACrD,CAAS,CACF,CACD,OAAO,KAAK,KAAK,IAAI7I,EAAE,KAAM4I,EAAIC,EAAIH,CAAC,EAAG,IAAMC,EAAGE,CAAE,CAAC,CACtD,CAGD,MAAMJ,EAAGC,EAAGC,EAAIC,EAAK,KAAK,KAAK,IAAM,EAAE,SAAS,IAAM,EAAE,SAAS,MAAO,CACtE,GAAI,KAAK,KAAK,cACZ,OAAO,KAAK,MAAMH,KAAO,EAAE,iBAAiBC,CAAC,IAAKC,CAAE,EACtD,MAAME,EAAK,KAAK,OAAO,OAAOJ,CAAC,EAC/B,OAAO,KAAK,KAAK,IAAIzI,EAAE,KAAM4I,EAAIC,EAAIH,CAAC,EAAG,IAAMC,EAAGE,CAAE,CAAC,CACtD,CAED,QAAS,CACP,OAAO,KAAK,cAAclK,CAAC,CAC5B,CAED,MAAM8J,EAAG,CACP,OAAO,KAAK,UAAU,IAAI,EAAEA,CAAC,CAAC,CAC/B,CAED,MAAMA,EAAG,CACP,OAAO,KAAK,UAAU,IAAI,EAAEA,CAAC,CAAC,CAC/B,CAED,OAAOA,EAAG,CACR,MAAMC,EAAI,IAAIxI,EACd,GAAI,KAAK,WAAWwI,CAAC,EAAG,KAAK,KAAKD,CAAC,EAAGC,EAAE,MAAM,SAAW,EACvD,MAAM,IAAI,MAAM,wCAAwC,EAC1D,OAAO,KAAK,cAAcxI,CAAC,CAC5B,CAED,IAAIuI,EAAGC,EAAGC,EAAI,CACZ,GAAI,CAACD,GAAK,CAACC,EACT,MAAM,IAAI,MAAM,8CAA8C,EAChE,MAAMC,EAAK,IAAIzI,EACf,GAAI,KAAK,WAAWyI,CAAE,EAAG,KAAK,KAAKH,CAAC,EAAGC,EAAG,CACxC,MAAMG,EAAK,KAAK,KAAK,GAAG,EACxB,KAAK,UAAYD,EAAG,MAAQ,IAAIhH,EAAEiH,CAAE,EAAGH,EAAEG,CAAE,CAC5C,CACD,OAAOF,IAAO,KAAK,UAAYC,EAAG,QAAU,IAAIvI,EAAK,KAAK,KAAKsI,CAAE,GAAI,KAAK,cAAc/G,EAAGvB,CAAC,CAC7F,CAED,MAAMoI,EAAG,CACP,OAAO,KAAK,UAAU,IAAI,EAAEA,CAAC,CAAC,CAC/B,CAED,MAAMA,EAAGC,EAAG,CACV,OAAO,KAAK,aAAa,KAAK,KAAK,OAAO,MAAM,EAAGD,GAAK,KAAK,KAAKA,CAAC,EAAE,SAASC,CAAC,EAAG,IACnF,CAED,SAASD,EAAG,CACV,MAAMC,EAAI,KAAK,aAAa,IAAG,EAC/B,GAAIA,IAAM,OACR,MAAM,IAAI,MAAM,sCAAsC,EACxD,MAAMC,EAAK,KAAK,OAAO,OAASD,EAChC,GAAIC,EAAK,GAAKF,IAAM,QAAUE,IAAOF,EACnC,MAAM,IAAI,MAAM,mCAAmCE,CAAE,OAAOF,CAAC,WAAW,EAC1E,OAAO,KAAK,OAAO,OAASC,EAAG,IAChC,CAED,KAAKD,EAAGC,EAAI,EAAE,IAAKC,EAAIC,EAAI,CACzB,OAAO,KAAK,WAAW,IAAI3I,EAAEwI,EAAGC,EAAGC,CAAE,CAAC,EAAGC,GAAM,KAAK,KAAKA,CAAE,EAAE,QAAS,EAAE,IACzE,CAED,SAAU,CACR,OAAO,KAAK,cAAc3I,CAAC,CAC5B,CACD,SAASwI,EAAI,EAAG,CACd,KAAOA,KAAM,GACX,KAAK,MAAM,cAAe,EAAE,KAAK,MAAM,cAAc,KAAK,MAAM,MAAO,KAAK,UAAU,CACzF,CACD,UAAUA,EAAG,CACX,OAAO,KAAK,UAAU,MAAM,KAAKA,CAAC,EAAG,IACtC,CACD,WAAWA,EAAG,CACZ,KAAK,UAAU,MAAM,KAAKA,CAAC,EAAG,KAAK,OAAO,KAAKA,CAAC,CACjD,CACD,cAAcA,EAAGC,EAAG,CAClB,MAAMC,EAAK,KAAK,UAChB,GAAIA,aAAcF,GAAKC,GAAKC,aAAcD,EACxC,OAAO,KAAK,OAAO,IAAG,EAAI,KAC5B,MAAM,IAAI,MAAM,0BAA0BA,EAAI,GAAGD,EAAE,IAAI,IAAIC,EAAE,IAAI,GAAKD,EAAE,IAAI,GAAG,CAChF,CACD,UAAUA,EAAG,CACX,MAAMC,EAAI,KAAK,UACf,GAAI,EAAEA,aAAahK,GACjB,MAAM,IAAI,MAAM,8BAA8B,EAChD,OAAO,KAAK,UAAYgK,EAAE,KAAOD,EAAG,IACrC,CACD,IAAI,OAAQ,CACV,OAAO,KAAK,OAAO,CAAC,CACrB,CACD,IAAI,WAAY,CACd,MAAMA,EAAI,KAAK,OACf,OAAOA,EAAEA,EAAE,OAAS,CAAC,CACtB,CACD,IAAI,UAAUA,EAAG,CACf,MAAMC,EAAI,KAAK,OACfA,EAAEA,EAAE,OAAS,CAAC,EAAID,CACnB,CACF,CACD7P,EAAE,QAAU0H,EACZ,SAASF,EAAEmI,EAAGE,EAAG,CACf,UAAWC,KAAKD,EACdF,EAAEG,CAAC,GAAKH,EAAEG,CAAC,GAAK,IAAMD,EAAEC,CAAC,GAAK,GAChC,OAAOH,CACR,CACD,SAAShI,EAAGgI,EAAGE,EAAG,CAChB,OAAOA,aAAa,EAAE,YAAcrI,EAAEmI,EAAGE,EAAE,KAAK,EAAIF,CACrD,CACD,SAAS/H,EAAG+H,EAAGE,EAAGC,EAAG,CACnB,GAAIH,aAAa,EAAE,KACjB,OAAOI,EAAGJ,CAAC,EACb,GAAI,CAACK,EAAGL,CAAC,EACP,OAAOA,EACT,OAAO,IAAI,EAAE,MAAMA,EAAE,OAAO,OAAO,CAACM,EAAIC,MAAQA,cAAc,EAAE,OAASA,GAAKH,EAAGG,EAAE,GAAIA,cAAc,EAAE,MAAQD,EAAG,KAAK,GAAGC,GAAG,MAAM,EAAID,EAAG,KAAKC,EAAE,EAAGD,GAAK,EAAE,CAAC,EAC5J,SAASF,EAAGE,EAAI,CACd,MAAMC,GAAKJ,EAAEG,EAAG,GAAG,EACnB,OAAOC,KAAO,QAAUL,EAAEI,EAAG,GAAG,IAAM,EAAIA,GAAM,OAAOJ,EAAEI,EAAG,GAAG,EAAGC,GACnE,CACD,SAASF,EAAGC,EAAI,CACd,OAAOA,aAAc,EAAE,OAASA,EAAG,OAAO,KAAMC,IAAOA,cAAc,EAAE,MAAQL,EAAEK,GAAG,GAAG,IAAM,GAAKJ,EAAEI,GAAG,GAAG,IAAM,MAAM,CACvH,CACF,CACD,SAASrI,GAAG8H,EAAGE,EAAG,CAChB,UAAWC,KAAKD,EACdF,EAAEG,CAAC,GAAKH,EAAEG,CAAC,GAAK,IAAMD,EAAEC,CAAC,GAAK,EACjC,CACD,SAAShI,GAAG6H,EAAG,CACb,OAAO,OAAOA,GAAK,WAAa,OAAOA,GAAK,UAAYA,IAAM,KAAO,CAACA,KAAQ,EAAE,MAAMD,EAAEC,CAAC,CAAC,EAC3F,CACD3P,EAAE,IAAM8H,GACR,MAAMC,EAAK0H,EAAEzP,EAAE,UAAU,GAAG,EAC5B,SAASgI,MAAM2H,EAAG,CAChB,OAAOA,EAAE,OAAO5H,CAAE,CACnB,CACD/H,EAAE,IAAMgI,GACR,MAAMC,GAAKwH,EAAEzP,EAAE,UAAU,EAAE,EAC3B,SAASwP,KAAKG,EAAG,CACf,OAAOA,EAAE,OAAO1H,EAAE,CACnB,CACDjI,EAAE,GAAKwP,EACP,SAASC,EAAEE,EAAG,CACZ,MAAO,CAACE,EAAGC,IAAMD,IAAM,EAAE,IAAMC,EAAIA,IAAM,EAAE,IAAMD,KAAQ,EAAE,KAAKH,EAAEG,CAAC,CAAC,IAAIF,CAAC,IAAID,EAAEI,CAAC,CAAC,EAClF,CACD,SAASJ,EAAEC,EAAG,CACZ,OAAOA,aAAa,EAAE,KAAOA,KAAQ,EAAE,MAAMA,CAAC,GAC/C,CACH,GAAG0oF,EAAE,EACL,IAAIG,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,gBAAkBA,GAAG,aAAeA,GAAG,KAAOA,GAAG,QAAUA,GAAG,aAAeA,GAAG,qBAAuBA,GAAG,eAAiBA,GAAG,SAAWA,GAAG,oBAAsBA,GAAG,kBAAoBA,GAAG,eAAiBA,GAAG,iBAAmBA,GAAG,eAAiBA,GAAG,qBAAuBA,GAAG,eAAiBA,GAAG,kBAAoBA,GAAG,kBAAoBA,GAAG,OAAS,OAClW,MAAMC,GAAKJ,GAAIK,IAAKJ,GACpB,SAASK,IAAG34F,EAAG,CACb,MAAM,EAAI,GACV,UAAW,KAAKA,EACd,EAAE,CAAC,EAAI,GACT,OAAO,CACT,CACAw4F,GAAG,OAASG,IACZ,SAASC,IAAG54F,EAAG,EAAG,CAChB,OAAO,OAAO,GAAK,UAAY,EAAI,OAAO,KAAK,CAAC,EAAE,SAAW,EAAI,IAAM64F,IAAG74F,EAAG,CAAC,EAAG,CAAC84F,IAAG,EAAG94F,EAAE,KAAK,MAAM,GAAG,EAC1G,CACAw4F,GAAG,kBAAoBI,IACvB,SAASC,IAAG74F,EAAG,EAAIA,EAAE,OAAQ,CAC3B,KAAM,CAAE,KAAM,EAAG,KAAM,CAAC,EAAKA,EAC7B,GAAI,CAAC,EAAE,cAAgB,OAAO,GAAK,UACjC,OACF,MAAM,EAAI,EAAE,MAAM,SAClB,UAAWL,KAAK,EACd,EAAEA,CAAC,GAAKo5F,IAAG/4F,EAAG,qBAAqBL,CAAC,GAAG,CAC3C,CACA64F,GAAG,kBAAoBK,IACvB,SAASC,IAAG94F,EAAG,EAAG,CAChB,GAAI,OAAOA,GAAK,UACd,MAAO,CAACA,EACV,UAAW,KAAKA,EACd,GAAI,EAAE,CAAC,EACL,MAAO,GACX,MAAO,EACT,CACAw4F,GAAG,eAAiBM,IACpB,SAASE,IAAGh5F,EAAG,EAAG,CAChB,GAAI,OAAOA,GAAK,UACd,MAAO,CAACA,EACV,UAAW,KAAKA,EACd,GAAI,IAAM,QAAU,EAAE,IAAI,CAAC,EACzB,MAAO,GACX,MAAO,EACT,CACAw4F,GAAG,qBAAuBQ,IAC1B,SAASC,IAAG,CAAE,aAAcj5F,EAAG,WAAY,GAAK,EAAG,EAAG,EAAG,CACvD,GAAI,CAAC,EAAG,CACN,GAAI,OAAO,GAAK,UAAY,OAAO,GAAK,UACtC,OAAO,EACT,GAAI,OAAO,GAAK,SACd,SAAWy4F,GAAG,KAAK,CAAC,EACvB,CACD,SAAWA,GAAG,KAAKz4F,CAAC,GAAG,CAAC,MAAOy4F,GAAG,aAAa,CAAC,CAAC,EACnD,CACAD,GAAG,eAAiBS,IACpB,SAASC,IAAGl5F,EAAG,CACb,OAAOm5F,IAAG,mBAAmBn5F,CAAC,CAAC,CACjC,CACAw4F,GAAG,iBAAmBU,IACtB,SAASE,IAAGp5F,EAAG,CACb,OAAO,mBAAmBq5F,GAAGr5F,CAAC,CAAC,CACjC,CACAw4F,GAAG,eAAiBY,IACpB,SAASC,GAAGr5F,EAAG,CACb,OAAO,OAAOA,GAAK,SAAW,GAAGA,CAAC,GAAKA,EAAE,QAAQ,KAAM,IAAI,EAAE,QAAQ,MAAO,IAAI,CAClF,CACAw4F,GAAG,kBAAoBa,GACvB,SAASF,IAAGn5F,EAAG,CACb,OAAOA,EAAE,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,GAAG,CACjD,CACAw4F,GAAG,oBAAsBW,IACzB,SAASG,IAAGt5F,EAAG,EAAG,CAChB,GAAI,MAAM,QAAQA,CAAC,EACjB,UAAW,KAAKA,EACd,EAAE,CAAC,OAEL,EAAEA,CAAC,CACP,CACAw4F,GAAG,SAAWc,IACd,SAASC,GAAG,CAAE,WAAYv5F,EAAG,YAAa,EAAG,YAAa,EAAG,aAAc,GAAK,CAC9E,MAAO,CAAC,EAAGL,EAAGC,EAAG,IAAM,CACrB,MAAM,EAAIA,IAAM,OAASD,EAAIC,aAAa64F,GAAG,MAAQ94F,aAAa84F,GAAG,KAAOz4F,EAAE,EAAGL,EAAGC,CAAC,EAAI,EAAE,EAAGD,EAAGC,CAAC,EAAGA,GAAKD,aAAa84F,GAAG,MAAQ,EAAE,EAAG74F,EAAGD,CAAC,EAAGA,GAAK,EAAEA,EAAGC,CAAC,EACzJ,OAAO,IAAM64F,GAAG,MAAQ,EAAE,aAAaA,GAAG,MAAQ,EAAE,EAAG,CAAC,EAAI,CAChE,CACA,CACAD,GAAG,eAAiB,CAClB,MAAOe,GAAG,CACR,WAAY,CAACv5F,EAAG,EAAG,IAAMA,EAAE,MAAOy4F,GAAG,KAAK,CAAC,gBAAgB,CAAC,iBAAkB,IAAM,CAClFz4F,EAAE,MAAOy4F,GAAG,KAAK,CAAC,YAAa,IAAMz4F,EAAE,OAAO,EAAG,EAAE,EAAG,IAAMA,EAAE,OAAO,KAAOy4F,GAAG,KAAK,CAAC,QAAQ,EAAE,QAASA,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAC/I,CAAK,EACD,YAAa,CAACz4F,EAAG,EAAG,IAAMA,EAAE,MAAOy4F,GAAG,KAAK,CAAC,YAAa,IAAM,CAC7D,IAAM,GAAKz4F,EAAE,OAAO,EAAG,EAAE,GAAKA,EAAE,OAAO,KAAOy4F,GAAG,KAAK,CAAC,QAAQ,EAAGe,GAAGx5F,EAAG,EAAG,CAAC,EAClF,CAAK,EACD,YAAa,CAACA,EAAG,IAAMA,IAAM,GAAK,GAAK,CAAE,GAAGA,EAAG,GAAG,CAAG,EACrD,aAAcy5F,GAClB,CAAG,EACD,MAAOF,GAAG,CACR,WAAY,CAACv5F,EAAG,EAAG,IAAMA,EAAE,MAAOy4F,GAAG,KAAK,CAAC,gBAAgB,CAAC,iBAAkB,IAAMz4F,EAAE,OAAO,KAAOy4F,GAAG,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAC5J,YAAa,CAACz4F,EAAG,EAAG,IAAMA,EAAE,MAAOy4F,GAAG,KAAK,CAAC,YAAa,IAAMz4F,EAAE,OAAO,EAAG,IAAM,GAAK,MAASy4F,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAChI,YAAa,CAACz4F,EAAG,IAAMA,IAAM,GAAK,GAAK,KAAK,IAAIA,EAAG,CAAC,EACpD,aAAc,CAACA,EAAG,IAAMA,EAAE,IAAI,QAAS,CAAC,CAC5C,CAAG,CACH,EACA,SAASy5F,IAAGz5F,EAAG,EAAG,CAChB,GAAI,IAAM,GACR,OAAOA,EAAE,IAAI,QAAS,EAAE,EAC1B,MAAM,EAAIA,EAAE,IAAI,WAAay4F,GAAG,MAAM,EACtC,OAAO,IAAM,QAAUe,GAAGx5F,EAAG,EAAG,CAAC,EAAG,CACtC,CACAw4F,GAAG,qBAAuBiB,IAC1B,SAASD,GAAGx5F,EAAG,EAAG,EAAG,CACnB,OAAO,KAAK,CAAC,EAAE,QAAS,GAAMA,EAAE,UAAWy4F,GAAG,KAAK,CAAC,MAAOA,GAAG,aAAa,CAAC,CAAC,GAAI,EAAE,CAAC,CACtF,CACAD,GAAG,aAAegB,GAClB,MAAME,GAAK,GACX,SAASC,IAAG35F,EAAG,EAAG,CAChB,OAAOA,EAAE,WAAW,OAAQ,CAC1B,IAAK,EACL,KAAM05F,GAAG,EAAE,IAAI,IAAMA,GAAG,EAAE,IAAI,EAAI,IAAIhB,IAAG,MAAM,EAAE,IAAI,EACzD,CAAG,CACH,CACAF,GAAG,QAAUmB,IACb,IAAIC,IACH,SAAS55F,EAAG,CACXA,EAAEA,EAAE,IAAM,CAAC,EAAI,MAAOA,EAAEA,EAAE,IAAM,CAAC,EAAI,KACvC,GAAG45F,KAAOpB,GAAG,KAAOoB,GAAK,GAAG,EAC5B,SAASC,IAAG75F,EAAG,EAAG,EAAG,CACnB,GAAIA,aAAay4F,GAAG,KAAM,CACxB,MAAM,EAAI,IAAMmB,GAAG,IACnB,OAAO,EAAI,KAAQnB,GAAG,WAAWz4F,CAAC,YAAey4F,GAAG,YAAYz4F,CAAC,UAAY,KAAQy4F,GAAG,WAAWz4F,CAAC,MAASy4F,GAAG,WAAWz4F,CAAC,4CAC7H,CACD,OAAO,KAAQy4F,GAAG,aAAaz4F,CAAC,EAAE,SAAQ,EAAK,IAAMq5F,GAAGr5F,CAAC,CAC3D,CACAw4F,GAAG,aAAeqB,IAClB,SAASd,IAAG/4F,EAAG,EAAG,EAAIA,EAAE,KAAK,aAAc,CACzC,GAAI,EAAG,CACL,GAAI,EAAI,gBAAgB,CAAC,GAAI,IAAM,GACjC,MAAM,IAAI,MAAM,CAAC,EACnBA,EAAE,KAAK,OAAO,KAAK,CAAC,CACrB,CACH,CACAw4F,GAAG,gBAAkBO,IACrB,IAAIe,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAK1B,GAAI2B,IAAK,CAElB,KAAM,IAAID,GAAG,KAAK,MAAM,EAGxB,OAAQ,IAAIA,GAAG,KAAK,QAAQ,EAE5B,aAAc,IAAIA,GAAG,KAAK,cAAc,EACxC,WAAY,IAAIA,GAAG,KAAK,YAAY,EACpC,mBAAoB,IAAIA,GAAG,KAAK,oBAAoB,EACpD,SAAU,IAAIA,GAAG,KAAK,UAAU,EAEhC,eAAgB,IAAIA,GAAG,KAAK,gBAAgB,EAG5C,QAAS,IAAIA,GAAG,KAAK,SAAS,EAE9B,OAAQ,IAAIA,GAAG,KAAK,QAAQ,EAE5B,KAAM,IAAIA,GAAG,KAAK,MAAM,EAExB,KAAM,IAAIA,GAAG,KAAK,MAAM,EACxB,MAAO,IAAIA,GAAG,KAAK,OAAO,EAE1B,KAAM,IAAIA,GAAG,KAAK,MAAM,EACxB,QAAS,IAAIA,GAAG,KAAK,SAAS,EAC9B,QAAS,IAAIA,GAAG,KAAK,SAAS,EAC9B,SAAU,IAAIA,GAAG,KAAK,UAAU,CAClC,EACAD,GAAG,QAAUE,KACZ,SAASh6F,EAAG,CACX,OAAO,eAAeA,EAAG,aAAc,CAAE,MAAO,EAAI,GAAGA,EAAE,aAAeA,EAAE,iBAAmBA,EAAE,iBAAmBA,EAAE,YAAcA,EAAE,kBAAoBA,EAAE,aAAe,OACzK,MAAM,EAAIq4F,GAAI,EAAIG,GAAI,EAAIsB,GAC1B95F,EAAE,aAAe,CACf,QAAS,CAAC,CAAE,QAAS6F,QAAY,EAAE,kBAAkBA,CAAC,sBAC1D,EAAK7F,EAAE,kBAAoB,CACvB,QAAS,CAAC,CAAE,QAAS6F,EAAG,WAAYC,CAAC,IAAOA,KAAQ,EAAE,QAAQD,CAAC,qBAAqBC,CAAC,cAAiB,EAAE,QAAQD,CAAC,8BACrH,EACE,SAAS,EAAEA,EAAGC,EAAI9F,EAAE,aAAc+F,EAAGoB,EAAG,CACtC,KAAM,CAAE,GAAI,CAAG,EAAGtB,EAAG,CAAE,IAAKuB,EAAG,cAAeC,EAAG,UAAWC,CAAC,EAAK,EAAGC,EAAI,EAAE1B,EAAGC,EAAGC,CAAC,EAClFoB,IAAME,GAAKC,GAAK,EAAEF,EAAGG,CAAC,EAAI,EAAE,KAAO,EAAE,MAAMA,CAAC,GAAG,CAChD,CACDvH,EAAE,YAAc,EAChB,SAASL,EAAEkG,EAAGC,EAAI9F,EAAE,aAAc+F,EAAG,CACnC,KAAM,CAAE,GAAIoB,CAAG,EAAGtB,EAAG,CAAE,IAAK,EAAG,cAAeuB,EAAG,UAAWC,CAAC,EAAKF,EAAGG,EAAI,EAAEzB,EAAGC,EAAGC,CAAC,EAClF,EAAE,EAAGuB,CAAC,EAAGF,GAAKC,GAAK,EAAEF,EAAG,EAAE,QAAQ,OAAO,CAC1C,CACDnH,EAAE,iBAAmBL,EACrB,SAASC,EAAEiG,EAAGC,EAAG,CACfD,EAAE,OAAO,EAAE,QAAQ,OAAQC,CAAC,EAAGD,EAAE,MAAO,EAAE,KAAK,EAAE,QAAQ,OAAO,YAAa,IAAMA,EAAE,GAAGC,EAAG,IAAMD,EAAE,UAAW,EAAE,KAAK,EAAE,QAAQ,OAAO,UAAWC,CAAC,EAAG,IAAMD,EAAE,OAAO,EAAE,QAAQ,QAAS,IAAI,CAAC,CAAC,CAC9L,CACD7F,EAAE,iBAAmBJ,EACrB,SAAS,EAAE,CAAE,IAAKiG,EAAG,QAASC,EAAG,YAAaC,EAAG,KAAMoB,EAAG,UAAW,EAAG,GAAIC,CAAC,EAAI,CAC/E,GAAI,IAAM,OACR,MAAM,IAAI,MAAM,0BAA0B,EAC5C,MAAMC,EAAIxB,EAAE,KAAK,KAAK,EACtBA,EAAE,SAAS,IAAK,EAAG,EAAE,QAAQ,OAASyB,GAAM,CAC1CzB,EAAE,MAAMwB,KAAO,EAAE,KAAK,EAAE,QAAQ,OAAO,IAAIC,CAAC,GAAG,EAAGzB,EAAE,MAAO,EAAE,KAAKwB,CAAC,8BAA+B,IAAMxB,EAAE,UAAW,EAAE,KAAKwB,CAAC,mBAAqB,EAAE,WAAW,EAAE,QAAQ,aAAcD,EAAE,SAAS,CAAC,CAAC,EAAGvB,EAAE,UAAW,EAAE,KAAKwB,CAAC,iBAAmB,EAAE,OAAOD,EAAE,aAAa,IAAItB,CAAC,EAAE,EAAGsB,EAAE,KAAK,UAAYvB,EAAE,UAAW,EAAE,KAAKwB,CAAC,UAAWtB,CAAC,EAAGF,EAAE,UAAW,EAAE,KAAKwB,CAAC,QAASF,CAAC,EAC7W,CAAK,CACF,CACDnH,EAAE,aAAe,EACjB,SAAS,EAAE6F,EAAGC,EAAG,CACf,MAAMC,EAAIF,EAAE,MAAM,MAAOC,CAAC,EAC1BD,EAAE,MAAO,EAAE,KAAK,EAAE,QAAQ,OAAO,YAAa,IAAMA,EAAE,OAAO,EAAE,QAAQ,WAAa,EAAE,MAAME,CAAC,GAAG,KAAO,EAAE,KAAK,EAAE,QAAQ,OAAO,SAASA,CAAC,GAAG,EAAGF,EAAE,QAAS,EAAE,KAAK,EAAE,QAAQ,MAAM,IAAI,CACtL,CACD,SAAS,EAAEA,EAAGC,EAAG,CACf,KAAM,CAAE,IAAKC,EAAG,aAAcoB,EAAG,UAAW,CAAG,EAAGtB,EAClD,EAAE,OAASE,EAAE,SAAU,EAAE,SAASF,EAAE,eAAe,IAAIC,CAAC,GAAG,GAAKC,EAAE,UAAW,EAAE,KAAKoB,CAAC,UAAWrB,CAAC,EAAGC,EAAE,OAAO,EAAE,EAChH,CACD,MAAM,EAAI,CACR,QAAS,IAAI,EAAE,KAAK,SAAS,EAC7B,WAAY,IAAI,EAAE,KAAK,YAAY,EAEnC,OAAQ,IAAI,EAAE,KAAK,QAAQ,EAC3B,aAAc,IAAI,EAAE,KAAK,cAAc,EACvC,QAAS,IAAI,EAAE,KAAK,SAAS,EAC7B,OAAQ,IAAI,EAAE,KAAK,QAAQ,EAC3B,aAAc,IAAI,EAAE,KAAK,cAAc,CAC3C,EACE,SAAS,EAAEF,EAAGC,EAAGC,EAAG,CAClB,KAAM,CAAE,aAAcoB,GAAMtB,EAAE,GAC9B,OAAOsB,IAAM,MAAS,EAAE,OAAS,EAAEtB,EAAGC,EAAGC,CAAC,CAC3C,CACD,SAAS,EAAEF,EAAGC,EAAGC,EAAI,GAAI,CACvB,KAAM,CAAE,IAAKoB,EAAG,GAAI,CAAG,EAAGtB,EAAGuB,EAAI,CAC/B5G,EAAE,EAAGuF,CAAC,EACNJ,EAAEE,EAAGE,CAAC,CACZ,EACI,OAAOH,EAAEC,EAAGC,EAAGsB,CAAC,EAAGD,EAAE,OAAO,GAAGC,CAAC,CACjC,CACD,SAAS5G,EAAE,CAAE,UAAWqF,CAAG,EAAE,CAAE,aAAcC,GAAK,CAChD,MAAMC,EAAID,KAAQ,EAAE,OAAOD,CAAC,MAAO,EAAE,cAAcC,EAAG,EAAE,KAAK,GAAG,CAAC,GAAKD,EACtE,MAAO,CAAC,EAAE,QAAQ,gBAAkB,EAAE,WAAW,EAAE,QAAQ,aAAcE,CAAC,CAAC,CAC5E,CACD,SAASJ,EAAE,CAAE,QAASE,EAAG,GAAI,CAAE,cAAeC,CAAG,GAAI,CAAE,WAAYC,EAAG,aAAcoB,CAAC,EAAI,CACvF,IAAI,EAAIA,EAAIrB,KAAQ,EAAE,OAAOA,CAAC,IAAID,CAAC,GACnC,OAAOE,IAAM,KAAQ,EAAE,OAAO,CAAC,MAAO,EAAE,cAAcA,EAAG,EAAE,KAAK,GAAG,CAAC,IAAK,CAAC,EAAE,WAAY,CAAC,CAC1F,CACD,SAASH,EAAEC,EAAG,CAAE,OAAQC,EAAG,QAASC,CAAG,EAAEoB,EAAG,CAC1C,KAAM,CAAE,QAAS,EAAG,KAAMC,EAAG,YAAaC,EAAG,GAAIC,GAAMzB,EAAG,CAAE,KAAM0B,EAAG,aAAcyB,EAAG,aAAcvB,EAAG,WAAYC,CAAG,EAAGJ,EACzHH,EAAE,KAAK,CAAC,EAAE,QAAS,CAAC,EAAG,CAAC,EAAE,OAAQ,OAAOrB,GAAK,WAAaA,EAAED,CAAC,EAAIC,MAAS,EAAE,MAAM,CAAC,EAAGyB,EAAE,UAAYJ,EAAE,KAAK,CAAC,EAAE,QAAS,OAAOpB,GAAK,WAAaA,EAAEF,CAAC,EAAIE,CAAC,CAAC,EAAGwB,EAAE,SAAWJ,EAAE,KAAK,CAAC,EAAE,OAAQE,CAAC,EAAG,CAAC,EAAE,gBAAkB,EAAE,KAAKI,CAAC,GAAGC,CAAC,EAAE,EAAG,CAAC,EAAE,QAAQ,KAAMN,CAAC,CAAC,EAAG4B,GAAK7B,EAAE,KAAK,CAAC,EAAE,aAAc6B,CAAC,CAAC,CAC5R,CACH,GAAGovF,EAAE,EACL,OAAO,eAAeD,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,kBAAoBA,GAAG,qBAAuB,OACjD,MAAM8B,IAAK7B,GAAI8B,IAAK7B,GAAI8B,IAAKL,GAAIM,IAAK,CACpC,QAAS,yBACX,EACA,SAASC,IAAGr6F,EAAG,CACb,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,aAAc,CAAG,EAAGA,EAC/C,IAAM,GAAKs6F,IAAGt6F,EAAG,EAAE,EAAI,OAAO,GAAK,UAAY,EAAE,SAAW,GAAK,EAAE,OAAOm6F,IAAG,QAAQ,IAAI,GAAK,EAAE,UAAWD,IAAG,KAAK,CAAC,UAAW,IAAI,EAAG,EAAE,OAAO,EAAE,EACnJ,CACA/B,GAAG,qBAAuBkC,IAC1B,SAASE,IAAGv6F,EAAG,EAAG,CAChB,KAAM,CAAE,IAAK,EAAG,OAAQ,CAAC,EAAKA,EAC9B,IAAM,IAAM,EAAE,IAAI,EAAG,EAAE,EAAGs6F,IAAGt6F,CAAC,GAAK,EAAE,IAAI,EAAG,EAAE,CAChD,CACAm4F,GAAG,kBAAoBoC,IACvB,SAASD,IAAGt6F,EAAG,EAAG,CAChB,KAAM,CAAE,IAAK,EAAG,KAAM,CAAG,EAAGA,EAAG,EAAI,CACjC,IAAK,EACL,QAAS,eACT,KAAM,EACN,OAAQ,GACR,WAAY,GACZ,YAAa,GACb,OAAQ,CAAE,EACV,GAAIA,CACR,KACMi6F,IAAG,aAAa,EAAGG,IAAI,OAAQ,CAAC,CACtC,CACA,IAAII,GAAK,GAAIC,GAAK,GAClB,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,SAAWA,GAAG,WAAa,OAC9B,MAAMC,IAAK,CAAC,SAAU,SAAU,UAAW,UAAW,OAAQ,SAAU,OAAO,EAAGC,IAAK,IAAI,IAAID,GAAE,EACjG,SAASE,IAAG56F,EAAG,CACb,OAAO,OAAOA,GAAK,UAAY26F,IAAG,IAAI36F,CAAC,CACzC,CACAy6F,GAAG,WAAaG,IAChB,SAASC,KAAK,CACZ,MAAM76F,EAAI,CACR,OAAQ,CAAE,KAAM,SAAU,MAAO,EAAI,EACrC,OAAQ,CAAE,KAAM,SAAU,MAAO,EAAI,EACrC,MAAO,CAAE,KAAM,QAAS,MAAO,EAAI,EACnC,OAAQ,CAAE,KAAM,SAAU,MAAO,EAAI,CACzC,EACE,MAAO,CACL,MAAO,CAAE,GAAGA,EAAG,QAAS,GAAI,QAAS,GAAI,KAAM,EAAI,EACnD,MAAO,CAAC,CAAE,MAAO,CAAE,GAAIA,EAAE,OAAQA,EAAE,OAAQA,EAAE,MAAOA,EAAE,MAAM,EAC5D,KAAM,CAAE,MAAO,EAAI,EACnB,IAAK,CAAE,EACP,SAAU,CAAE,CAChB,CACA,CACAy6F,GAAG,SAAWI,IACd,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,cAAgBA,GAAG,eAAiBA,GAAG,sBAAwB,OAClE,SAASC,IAAG,CAAE,OAAQ/6F,EAAG,KAAM,CAAG,EAAE,EAAG,CACrC,MAAM,EAAI,EAAE,MAAM,MAAM,CAAC,EACzB,OAAO,GAAK,IAAM,IAAMg7F,IAAGh7F,EAAG,CAAC,CACjC,CACA86F,GAAG,sBAAwBC,IAC3B,SAASC,IAAGh7F,EAAG,EAAG,CAChB,OAAO,EAAE,MAAM,KAAM,GAAMi7F,IAAGj7F,EAAG,CAAC,CAAC,CACrC,CACA86F,GAAG,eAAiBE,IACpB,SAASC,IAAGj7F,EAAG,EAAG,CAChB,IAAI,EACJ,OAAOA,EAAE,EAAE,OAAO,IAAM,UAAY,EAAI,EAAE,WAAW,cAAgB,MAAQ,IAAM,OAAS,OAAS,EAAE,KAAM,GAAMA,EAAE,CAAC,IAAM,MAAM,EACpI,CACA86F,GAAG,cAAgBG,IACnB,OAAO,eAAeT,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,gBAAkBA,GAAG,eAAiBA,GAAG,cAAgBA,GAAG,uBAAyBA,GAAG,aAAeA,GAAG,eAAiBA,GAAG,SAAW,OAC5I,MAAMU,IAAKT,GAAIU,IAAKL,GAAIM,IAAKhD,GAAIiD,GAAKhD,GAAIiD,IAAK9C,GAC/C,IAAI+C,IACH,SAASv7F,EAAG,CACXA,EAAEA,EAAE,QAAU,CAAC,EAAI,UAAWA,EAAEA,EAAE,MAAQ,CAAC,EAAI,OACjD,GAAGu7F,KAAOf,GAAG,SAAWe,GAAK,GAAG,EAChC,SAASC,IAAGx7F,EAAG,CACb,MAAM,EAAIy7F,IAAGz7F,EAAE,IAAI,EACnB,GAAI,EAAE,SAAS,MAAM,GACnB,GAAIA,EAAE,WAAa,GACjB,MAAM,IAAI,MAAM,wCAAwC,MACrD,CACL,GAAI,CAAC,EAAE,QAAUA,EAAE,WAAa,OAC9B,MAAM,IAAI,MAAM,0CAA0C,EAC5DA,EAAE,WAAa,IAAM,EAAE,KAAK,MAAM,CACnC,CACD,OAAO,CACT,CACAw6F,GAAG,eAAiBgB,IACpB,SAASC,IAAGz7F,EAAG,CACb,MAAM,EAAI,MAAM,QAAQA,CAAC,EAAIA,EAAIA,EAAI,CAACA,CAAC,EAAI,GAC3C,GAAI,EAAE,MAAMk7F,IAAG,UAAU,EACvB,OAAO,EACT,MAAM,IAAI,MAAM,wCAA0C,EAAE,KAAK,GAAG,CAAC,CACvE,CACAV,GAAG,aAAeiB,IAClB,SAASC,IAAG17F,EAAG,EAAG,CAChB,KAAM,CAAE,IAAK,EAAG,KAAM,EAAG,KAAM,CAAC,EAAKA,EAAGL,EAAIg8F,IAAG,EAAG,EAAE,WAAW,EAAG/7F,EAAI,EAAE,OAAS,GAAK,EAAED,EAAE,SAAW,GAAK,EAAE,SAAW,MAASw7F,IAAG,uBAAuBn7F,EAAG,EAAE,CAAC,CAAC,GACjK,GAAIJ,EAAG,CACL,MAAM,EAAIg8F,GAAG,EAAG,EAAG,EAAE,cAAeL,GAAG,KAAK,EAC5C,EAAE,GAAG,EAAG,IAAM,CACZ57F,EAAE,OAASk8F,IAAG77F,EAAG,EAAGL,CAAC,EAAIm8F,GAAG97F,CAAC,CACnC,CAAK,CACF,CACD,OAAOJ,CACT,CACA46F,GAAG,uBAAyBkB,IAC5B,MAAMK,IAAqB,IAAI,IAAI,CAAC,SAAU,SAAU,UAAW,UAAW,MAAM,CAAC,EACrF,SAASJ,IAAG37F,EAAG,EAAG,CAChB,OAAO,EAAIA,EAAE,OAAQ,GAAM+7F,IAAG,IAAI,CAAC,GAAK,IAAM,SAAW,IAAM,OAAO,EAAI,EAC5E,CACA,SAASF,IAAG77F,EAAG,EAAG,EAAG,CACnB,KAAM,CAAE,IAAK,EAAG,KAAM,EAAG,KAAML,CAAG,EAAGK,EAAGJ,EAAI,EAAE,IAAI,cAAgBy7F,GAAG,YAAY,CAAC,EAAE,EAAG,EAAI,EAAE,IAAI,aAAeA,GAAG,aAAa,EAChI17F,EAAE,cAAgB,SAAW,EAAE,MAAO07F,GAAG,KAAKz7F,CAAC,iCAAiC,CAAC,QAAQ,CAAC,eAAgB,IAAM,EAAE,OAAO,KAAOy7F,GAAG,KAAK,CAAC,KAAK,EAAE,OAAOz7F,KAAOy7F,GAAG,YAAY,CAAC,EAAE,EAAE,GAAGO,GAAG,EAAG,EAAGj8F,EAAE,aAAa,EAAG,IAAM,EAAE,OAAO,EAAG,CAAC,CAAC,CAAC,EAAG,EAAE,MAAO07F,GAAG,KAAK,CAAC,gBAAgB,EAC1Q,UAAW,KAAK,GACbU,IAAG,IAAI,CAAC,GAAK,IAAM,SAAWp8F,EAAE,cAAgB,UAAY,EAAE,CAAC,EAClE,EAAE,KAAI,EAAIm8F,GAAG97F,CAAC,EAAG,EAAE,MAAO,EAAE,EAAE,MAAOq7F,GAAG,KAAK,CAAC,iBAAkB,IAAM,CACpE,EAAE,OAAO,EAAG,CAAC,EAAGW,IAAGh8F,EAAG,CAAC,CAC3B,CAAG,EACD,SAAS,EAAE,EAAG,CACZ,OAAQ,EAAC,CACP,IAAK,SACH,EAAE,UAAWq7F,GAAG,KAAKz7F,CAAC,mBAAmBA,CAAC,eAAe,EAAE,OAAO,KAAOy7F,GAAG,UAAU,CAAC,EAAE,EAAE,UAAWA,GAAG,KAAK,CAAC,WAAW,EAAE,OAAO,KAAOA,GAAG,MAAM,EACnJ,OACF,IAAK,SACH,EAAE,UAAWA,GAAG,KAAKz7F,CAAC,oBAAoB,CAAC;AAAA,oBAC/BA,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,KAAOy7F,GAAG,MAAM,CAAC,EAAE,EACjF,OACF,IAAK,UACH,EAAE,UAAWA,GAAG,KAAKz7F,CAAC,qBAAqB,CAAC;AAAA,oBAChCA,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,KAAOy7F,GAAG,MAAM,CAAC,EAAE,EACjG,OACF,IAAK,UACH,EAAE,UAAWA,GAAG,KAAK,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,EAAG,EAAE,EAAE,UAAWA,GAAG,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAG,EAAE,EAChJ,OACF,IAAK,OACH,EAAE,UAAWA,GAAG,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,YAAY,EAAG,EAAE,OAAO,EAAG,IAAI,EAClF,OACF,IAAK,QACH,EAAE,UAAWA,GAAG,KAAKz7F,CAAC,oBAAoBA,CAAC;AAAA,mBAChCA,CAAC,qBAAqB,CAAC,WAAW,EAAE,OAAO,KAAOy7F,GAAG,MAAM,CAAC,GAAG,CAC7E,CACF,CACH,CACA,SAASW,IAAG,CAAE,IAAKh8F,EAAG,WAAY,EAAG,mBAAoB,CAAG,EAAE,EAAG,CAC/DA,EAAE,MAAOq7F,GAAG,KAAK,CAAC,iBAAkB,IAAMr7F,EAAE,UAAWq7F,GAAG,KAAK,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC,CAC9E,CACA,SAASY,GAAGj8F,EAAG,EAAG,EAAG,EAAIu7F,GAAG,QAAS,CACnC,MAAM,EAAI,IAAMA,GAAG,QAAUF,GAAG,UAAU,GAAKA,GAAG,UAAU,IAC5D,IAAI17F,EACJ,OAAQK,EAAC,CACP,IAAK,OACH,SAAWq7F,GAAG,KAAK,CAAC,IAAI,CAAC,QAC3B,IAAK,QACH17F,KAAQ07F,GAAG,mBAAmB,CAAC,IAC/B,MACF,IAAK,SACH17F,KAAQ07F,GAAG,KAAK,CAAC,cAAc,CAAC,kCAAkC,CAAC,IACnE,MACF,IAAK,UACH17F,EAAIC,KAAMy7F,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAC5C,MACF,IAAK,SACH17F,EAAIC,EAAC,EACL,MACF,QACE,SAAWy7F,GAAG,YAAY,CAAC,IAAI,CAAC,IAAIr7F,CAAC,EACxC,CACD,OAAO,IAAMu7F,GAAG,QAAU57F,KAAQ07F,GAAG,KAAK17F,CAAC,EAC3C,SAASC,EAAE,EAAIy7F,GAAG,IAAK,CACrB,SAAWA,GAAG,QAASA,GAAG,YAAY,CAAC,eAAgB,EAAG,KAAQA,GAAG,cAAc,CAAC,IAAMA,GAAG,GAAG,CACjG,CACH,CACAb,GAAG,cAAgByB,GACnB,SAASL,GAAG57F,EAAG,EAAG,EAAG,EAAG,CACtB,GAAIA,EAAE,SAAW,EACf,OAAOi8F,GAAGj8F,EAAE,CAAC,EAAG,EAAG,EAAG,CAAC,EACzB,IAAI,EACJ,MAAML,KAAQ27F,IAAG,QAAQt7F,CAAC,EAC1B,GAAIL,EAAE,OAASA,EAAE,OAAQ,CACvB,MAAMC,KAAQy7F,GAAG,YAAY,CAAC,eAC9B,EAAI17F,EAAE,KAAOC,KAAQy7F,GAAG,MAAM,CAAC,OAAOz7F,CAAC,GAAI,OAAOD,EAAE,KAAM,OAAOA,EAAE,MAAO,OAAOA,EAAE,MACpF,MACC,EAAI07F,GAAG,IACT17F,EAAE,QAAU,OAAOA,EAAE,QACrB,UAAWC,KAAKD,EACd,KAAQ07F,GAAG,KAAK,EAAGY,GAAGr8F,EAAG,EAAG,EAAG,CAAC,CAAC,EACnC,OAAO,CACT,CACA46F,GAAG,eAAiBoB,GACpB,MAAMM,IAAK,CACT,QAAS,CAAC,CAAE,OAAQl8F,CAAG,IAAK,WAAWA,CAAC,GACxC,OAAQ,CAAC,CAAE,OAAQA,EAAG,YAAa,CAAC,IAAO,OAAOA,GAAK,YAAeq7F,GAAG,YAAYr7F,CAAC,OAAUq7F,GAAG,YAAY,CAAC,GAClH,EACA,SAASS,GAAG97F,EAAG,CACb,MAAM,EAAIm8F,IAAGn8F,CAAC,KACVo7F,IAAG,aAAa,EAAGc,GAAE,CAC3B,CACA1B,GAAG,gBAAkBsB,GACrB,SAASK,IAAGn8F,EAAG,CACb,KAAM,CAAE,IAAK,EAAG,KAAM,EAAG,OAAQ,CAAG,EAAGA,EAAG,KAAQs7F,IAAG,gBAAgBt7F,EAAG,EAAG,MAAM,EACjF,MAAO,CACL,IAAK,EACL,QAAS,OACT,KAAM,EACN,OAAQ,EAAE,KACV,WAAY,EACZ,YAAa,EACb,aAAc,EACd,OAAQ,CAAE,EACV,GAAIA,CACR,CACA,CACA,IAAIo8F,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,eAAiB,OACpB,MAAMC,GAAKhE,GAAIiE,IAAK9D,GACpB,SAAS+D,IAAGv8F,EAAG,EAAG,CAChB,KAAM,CAAE,WAAY,EAAG,MAAO,CAAG,EAAGA,EAAE,OACtC,GAAI,IAAM,UAAY,EACpB,UAAW,KAAK,EACdw8F,GAAGx8F,EAAG,EAAG,EAAE,CAAC,EAAE,OAAO,OACpB,IAAM,SAAW,MAAM,QAAQ,CAAC,GAAK,EAAE,QAAQ,CAAC,EAAGL,IAAM68F,GAAGx8F,EAAGL,EAAG,EAAE,OAAO,CAAC,CACnF,CACAy8F,GAAG,eAAiBG,IACpB,SAASC,GAAGx8F,EAAG,EAAG,EAAG,CACnB,KAAM,CAAE,IAAK,EAAG,cAAe,EAAG,KAAML,EAAG,KAAMC,CAAG,EAAGI,EACvD,GAAI,IAAM,OACR,OACF,MAAM,KAAQq8F,GAAG,KAAK18F,CAAC,MAAO08F,GAAG,aAAa,CAAC,CAAC,GAChD,GAAI,EAAG,IACDC,IAAG,iBAAiBt8F,EAAG,2BAA2B,CAAC,EAAE,EACzD,MACD,CACD,IAAI,KAAQq8F,GAAG,KAAK,CAAC,iBACrBz8F,EAAE,cAAgB,UAAY,KAAQy8F,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAY,EAAE,GAAG,KAAOA,GAAG,KAAK,CAAC,SAAUA,GAAG,WAAW,CAAC,CAAC,EAAE,CACvI,CACA,IAAII,GAAK,GAAIC,GAAK,GAClB,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,cAAgBA,GAAG,cAAgBA,GAAG,WAAaA,GAAG,iBAAmBA,GAAG,iBAAmBA,GAAG,oBAAsBA,GAAG,iBAAmBA,GAAG,eAAiBA,GAAG,cAAgBA,GAAG,YAAcA,GAAG,kBAAoBA,GAAG,iBAAmBA,GAAG,uBAAyB,OAClR,MAAMC,GAAKtE,GAAIuE,GAAKpE,GAAIqE,GAAK/C,GAAIgD,IAAKtE,GACtC,SAASuE,IAAG/8F,EAAG,EAAG,CAChB,KAAM,CAAE,IAAK,EAAG,KAAM,EAAG,GAAI,CAAG,EAAGA,EACnC,EAAE,GAAGg9F,GAAG,EAAG,EAAG,EAAG,EAAE,KAAK,aAAa,EAAG,IAAM,CAC5Ch9F,EAAE,UAAU,CAAE,mBAAqB28F,GAAG,KAAK,CAAC,EAAI,EAAE,EAAE,EAAG38F,EAAE,MAAK,CAClE,CAAG,CACH,CACA08F,GAAG,uBAAyBK,IAC5B,SAASE,IAAG,CAAE,IAAKj9F,EAAG,KAAM,EAAG,GAAI,CAAE,KAAM,CAAC,GAAM,EAAG,EAAG,CACtD,SAAW28F,GAAG,IAAI,GAAG,EAAE,IAAKh9F,MAAUg9F,GAAG,KAAKK,GAAGh9F,EAAG,EAAGL,EAAG,EAAE,aAAa,KAAOg9F,GAAG,KAAK,CAAC,MAAMh9F,CAAC,EAAE,CAAC,CAAC,CACtG,CACA+8F,GAAG,iBAAmBO,IACtB,SAASC,IAAGl9F,EAAG,EAAG,CAChBA,EAAE,UAAU,CAAE,gBAAiB,CAAC,EAAI,EAAE,EAAGA,EAAE,OAC7C,CACA08F,GAAG,kBAAoBQ,IACvB,SAASC,IAAGn9F,EAAG,CACb,OAAOA,EAAE,WAAW,OAAQ,CAE1B,IAAK,OAAO,UAAU,eACtB,QAAU28F,GAAG,mCACjB,CAAG,CACH,CACAD,GAAG,YAAcS,IACjB,SAASC,GAAGp9F,EAAG,EAAG,EAAG,CACnB,SAAW28F,GAAG,KAAKQ,IAAGn9F,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAC1C,CACA08F,GAAG,cAAgBU,GACnB,SAASC,IAAGr9F,EAAG,EAAG,EAAG,EAAG,CACtB,MAAM,KAAQ28F,GAAG,KAAK,CAAC,MAAOA,GAAG,aAAa,CAAC,CAAC,iBAChD,OAAO,KAAQA,GAAG,KAAK,CAAC,OAAOS,GAAGp9F,EAAG,EAAG,CAAC,CAAC,GAAK,CACjD,CACA08F,GAAG,eAAiBW,IACpB,SAASL,GAAGh9F,EAAG,EAAG,EAAG,EAAG,CACtB,MAAM,KAAQ28F,GAAG,KAAK,CAAC,MAAOA,GAAG,aAAa,CAAC,CAAC,iBAChD,OAAO,KAAQA,GAAG,IAAI,KAAOA,GAAG,KAAKS,GAAGp9F,EAAG,EAAG,CAAC,CAAC,CAAC,EAAI,CACvD,CACA08F,GAAG,iBAAmBM,GACtB,SAASM,IAAGt9F,EAAG,CACb,OAAOA,EAAI,OAAO,KAAKA,CAAC,EAAE,OAAQ,GAAM,IAAM,WAAW,EAAI,EAC/D,CACA08F,GAAG,oBAAsBY,IACzB,SAASC,IAAGv9F,EAAG,EAAG,CAChB,OAAOs9F,IAAG,CAAC,EAAE,OAAQ,GAAM,IAAKV,GAAG,mBAAmB58F,EAAG,EAAE,CAAC,CAAC,CAAC,CAChE,CACA08F,GAAG,iBAAmBa,IACtB,SAASC,IAAG,CAAE,WAAYx9F,EAAG,KAAM,EAAG,GAAI,CAAE,IAAK,EAAG,aAAc,EAAG,WAAY,EAAG,UAAWL,CAAG,EAAE,GAAIC,GAAK,EAAG,EAAG,EAAG,CACpH,MAAM,EAAI,KAAQ+8F,GAAG,KAAK38F,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAK,EAAG,EAAI,CACrD,CAAC68F,GAAG,QAAQ,gBAAkBF,GAAG,WAAWE,GAAG,QAAQ,aAAcl9F,CAAC,CAAC,EACvE,CAACk9F,GAAG,QAAQ,WAAYj9F,EAAE,UAAU,EACpC,CAACi9F,GAAG,QAAQ,mBAAoBj9F,EAAE,kBAAkB,EACpD,CAACi9F,GAAG,QAAQ,SAAUA,GAAG,QAAQ,QAAQ,CAC7C,EACEj9F,EAAE,KAAK,YAAc,EAAE,KAAK,CAACi9F,GAAG,QAAQ,eAAgBA,GAAG,QAAQ,cAAc,CAAC,EAClF,MAAM,KAAQF,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,GAC1C,OAAO,IAAMA,GAAG,OAAUA,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,OAAUA,GAAG,KAAK,CAAC,IAAI,CAAC,GAC7E,CACAD,GAAG,iBAAmBc,IACtB,MAAMC,OAASd,GAAG,eAClB,SAASe,IAAG,CAAE,IAAK19F,EAAG,GAAI,CAAE,KAAM,EAAK,EAAE,EAAG,CAC1C,MAAM,EAAI,EAAE,cAAgB,IAAM,GAAI,CAAE,OAAQ,CAAC,EAAK,EAAE,KAAML,EAAI,EAAE,EAAG,CAAC,EACxE,OAAOK,EAAE,WAAW,UAAW,CAC7B,IAAKL,EAAE,SAAU,EACjB,IAAKA,EACL,QAAUg9F,GAAG,KAAK,EAAE,OAAS,aAAec,OAASX,IAAG,SAAS98F,EAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GACrF,CAAG,CACH,CACA08F,GAAG,WAAagB,IAChB,SAASC,IAAG39F,EAAG,CACb,KAAM,CAAE,IAAK,EAAG,KAAM,EAAG,QAAS,EAAG,GAAI,CAAC,EAAKA,EAAGL,EAAI,EAAE,KAAK,OAAO,EACpE,GAAI,EAAE,UAAW,CACf,MAAM,EAAI,EAAE,IAAI,QAAS,EAAE,EAC3B,OAAOC,EAAE,IAAM,EAAE,OAAO,EAAG,EAAE,CAAC,EAAG,CAClC,CACD,OAAO,EAAE,IAAID,EAAG,EAAE,EAAGC,EAAE,IAAM,EAAE,MAAO,GAAGD,EACzC,SAASC,EAAE,EAAG,CACZ,MAAM,EAAI,EAAE,MAAM,SAAW+8F,GAAG,KAAK,CAAC,SAAS,EAC/C,EAAE,SAAS,IAAK,EAAG,EAAI,GAAM,CAC3B38F,EAAE,UAAU,CACV,QAAS,EACT,SAAU,EACV,aAAc48F,GAAG,KAAK,GAC9B,EAASj9F,CAAC,EAAG,EAAE,MAAOg9F,GAAG,KAAKh9F,CAAC,EAAG,CAAC,CACnC,CAAK,CACF,CACH,CACA+8F,GAAG,cAAgBiB,IACnB,SAASC,IAAG59F,EAAG,CACb,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,QAAS,EAAG,GAAI,CAAG,EAAGA,EACjD,GAAI,CAAC,MAAM,QAAQ,CAAC,EAClB,MAAM,IAAI,MAAM,0BAA0B,EAC5C,GAAI,EAAE,KAAMkC,MAAU06F,GAAG,mBAAmB,EAAG16F,CAAC,CAAC,GAAK,CAAC,EAAE,KAAK,YAC5D,OACF,MAAM,EAAI,EAAE,IAAI,QAAS,EAAE,EAAGqB,EAAI,EAAE,KAAK,QAAQ,EACjD,EAAE,MAAM,IAAM,EAAE,QAAQ,CAACrB,EAAGD,IAAM,CAChC,MAAM4G,EAAI7I,EAAE,UAAU,CACpB,QAAS,EACT,WAAYiC,EACZ,cAAe,EAChB,EAAEsB,CAAC,EACJ,EAAE,OAAO,KAAOo5F,GAAG,KAAK,CAAC,OAAOp5F,CAAC,EAAE,EAAGvD,EAAE,oBAAoB6I,EAAGtF,CAAC,GAAK,EAAE,MAAOo5F,GAAG,KAAK,CAAC,CAAC,CACzF,EAAC,EAAG38F,EAAE,OAAO,EAAG,IAAMA,EAAE,MAAO,EAAE,IAAMA,EAAE,MAAM,EAAE,CAAC,CACrD,CACA08F,GAAG,cAAgBkB,IACnB,OAAO,eAAenB,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,qBAAuBA,GAAG,gBAAkBA,GAAG,gBAAkBA,GAAG,iBAAmB,OAC1F,MAAMoB,GAAKxF,GAAIyF,GAAKhE,GAAIiE,IAAKrB,GAAIsB,IAAK5F,GACtC,SAAS6F,IAAGj+F,EAAG,EAAG,CAChB,KAAM,CAAE,IAAK,EAAG,QAAS,EAAG,OAAQ,EAAG,aAAcL,EAAG,GAAIC,CAAG,EAAGI,EAAG,EAAI,EAAE,MAAM,KAAKJ,EAAE,KAAM,EAAGD,EAAGC,CAAC,EAAG,EAAIs+F,IAAG,EAAG,EAAG,CAAC,EACtHt+F,EAAE,KAAK,iBAAmB,IAAMA,EAAE,KAAK,eAAe,EAAG,EAAE,EAC3D,MAAM,EAAI,EAAE,KAAK,OAAO,EACxBI,EAAE,UAAU,CACV,OAAQ,EACR,WAAY69F,GAAG,IACf,cAAe,GAAGj+F,EAAE,aAAa,IAAI,CAAC,GACtC,aAAc,EACd,cAAe,EACnB,EAAK,CAAC,EAAGI,EAAE,KAAK,EAAG,IAAMA,EAAE,MAAM,EAAE,CAAC,CACpC,CACAy8F,GAAG,iBAAmBwB,IACtB,SAASE,IAAGn+F,EAAG,EAAG,CAChB,IAAI,EACJ,KAAM,CAAE,IAAK,EAAG,QAAS,EAAG,OAAQL,EAAG,aAAcC,EAAG,MAAO,EAAG,GAAI,CAAC,EAAKI,EAC5Eo+F,IAAG,EAAG,CAAC,EACP,MAAM,EAAI,CAAC,GAAK,EAAE,QAAU,EAAE,QAAQ,KAAK,EAAE,KAAMz+F,EAAGC,EAAG,CAAC,EAAI,EAAE,SAAU,EAAIs+F,IAAG,EAAG,EAAG,CAAC,EAAG,EAAI,EAAE,IAAI,OAAO,EAC5Gl+F,EAAE,WAAW,EAAG,CAAC,EAAGA,EAAE,IAAI,EAAI,EAAE,SAAW,MAAQ,IAAM,OAAS,EAAI,CAAC,EACvE,SAAS,GAAI,CACX,GAAI,EAAE,SAAW,GACf4F,IAAK,EAAE,WAAay4F,GAAGr+F,CAAC,EAAG6F,EAAE,IAAM7F,EAAE,MAAK,CAAE,MACzC,CACH,MAAM8F,EAAI,EAAE,MAAQtF,EAAG,EAAGmF,EAAC,EAC3B,EAAE,WAAa04F,GAAGr+F,CAAC,EAAG6F,EAAE,IAAMy4F,IAAGt+F,EAAG8F,CAAC,CAAC,CACvC,CACF,CACD,SAAStF,GAAI,CACX,MAAMsF,EAAI,EAAE,IAAI,WAAY,IAAI,EAChC,OAAO,EAAE,IAAI,IAAMF,KAAMi4F,GAAG,UAAU,EAAI93F,GAAM,EAAE,OAAO,EAAG,EAAE,EAAE,MAAO83F,GAAG,KAAK93F,CAAC,eAAe,EAAE,eAAe,GAAI,IAAM,EAAE,OAAOD,KAAO+3F,GAAG,KAAK93F,CAAC,SAAS,EAAG,IAAM,EAAE,MAAMA,CAAC,CAAC,CAAC,EAAGD,CACpL,CACD,SAASH,GAAI,CACX,MAAMG,KAAQ+3F,GAAG,KAAK,CAAC,UACvB,OAAO,EAAE,OAAO/3F,EAAG,IAAI,EAAGF,EAAEi4F,GAAG,GAAG,EAAG/3F,CACtC,CACD,SAASF,EAAEE,EAAI,EAAE,SAAY+3F,GAAG,WAAaA,GAAG,IAAK,CACnD,MAAM93F,EAAI,EAAE,KAAK,YAAc+3F,GAAG,QAAQ,KAAOA,GAAG,QAAQ,KAAM32F,EAAI,EAAE,YAAa,GAAK,CAAC,GAAK,EAAE,SAAW,IAC7G,EAAE,OAAO,KAAO02F,GAAG,KAAK/3F,CAAC,MAAOi4F,IAAG,kBAAkB/9F,EAAG,EAAG+F,EAAGoB,CAAC,CAAC,GAAI,EAAE,SAAS,CAChF,CACD,SAAStB,EAAEC,EAAG,CACZ,IAAIC,EACJ,EAAE,MAAO83F,GAAG,MAAM93F,EAAI,EAAE,SAAW,MAAQA,IAAM,OAASA,EAAI,CAAC,EAAGD,CAAC,CACpE,CACH,CACA22F,GAAG,gBAAkB0B,IACrB,SAASE,GAAGr+F,EAAG,CACb,KAAM,CAAE,IAAK,EAAG,KAAM,EAAG,GAAI,CAAG,EAAGA,EACnC,EAAE,GAAG,EAAE,WAAY,IAAM,EAAE,OAAO,KAAO69F,GAAG,KAAK,EAAE,UAAU,IAAI,EAAE,kBAAkB,GAAG,CAAC,CAC3F,CACA,SAASS,IAAGt+F,EAAG,EAAG,CAChB,KAAM,CAAE,IAAK,CAAG,EAAGA,EACnB,EAAE,MAAO69F,GAAG,mBAAmB,CAAC,IAAK,IAAM,CACzC,EAAE,OAAOC,GAAG,QAAQ,WAAaD,GAAG,KAAKC,GAAG,QAAQ,OAAO,eAAe,CAAC,MAAMA,GAAG,QAAQ,OAAO,WAAW,CAAC,GAAG,EAAE,OAAOA,GAAG,QAAQ,UAAYD,GAAG,KAAKC,GAAG,QAAQ,OAAO,SAAS,KAAOE,IAAG,cAAch+F,CAAC,CAClN,EAAK,IAAMA,EAAE,MAAK,CAAE,CACpB,CACA,SAASo+F,IAAG,CAAE,UAAWp+F,CAAC,EAAI,EAAG,CAC/B,GAAI,EAAE,OAAS,CAACA,EAAE,OAChB,MAAM,IAAI,MAAM,8BAA8B,CAClD,CACA,SAASk+F,IAAGl+F,EAAG,EAAG,EAAG,CACnB,GAAI,IAAM,OACR,MAAM,IAAI,MAAM,YAAY,CAAC,qBAAqB,EACpD,OAAOA,EAAE,WAAW,UAAW,OAAO,GAAK,WAAa,CAAE,IAAK,CAAC,EAAK,CAAE,IAAK,EAAG,QAAU69F,GAAG,WAAW,CAAC,CAAC,CAAE,CAC7G,CACA,SAASU,IAAGv+F,EAAG,EAAG,EAAI,GAAI,CACxB,MAAO,CAAC,EAAE,QAAU,EAAE,KAAM,GAAM,IAAM,QAAU,MAAM,QAAQA,CAAC,EAAI,IAAM,SAAWA,GAAK,OAAOA,GAAK,UAAY,CAAC,MAAM,QAAQA,CAAC,EAAI,OAAOA,GAAK,GAAK,GAAK,OAAOA,EAAI,GAAG,CAC7K,CACAy8F,GAAG,gBAAkB8B,IACrB,SAASC,IAAG,CAAE,OAAQx+F,EAAG,KAAM,EAAG,KAAM,EAAG,cAAe,GAAK,EAAGL,EAAG,CACnE,GAAI,MAAM,QAAQ,EAAE,OAAO,EAAI,CAAC,EAAE,QAAQ,SAASA,CAAC,EAAI,EAAE,UAAYA,EACpE,MAAM,IAAI,MAAM,0BAA0B,EAC5C,MAAMC,EAAI,EAAE,aACZ,GAAIA,GAAK,MAAQA,EAAE,KAAM,GAAM,CAAC,OAAO,UAAU,eAAe,KAAKI,EAAG,CAAC,CAAC,EACxE,MAAM,IAAI,MAAM,2CAA2CL,CAAC,KAAKC,EAAE,KAAK,GAAG,CAAC,EAAE,EAChF,GAAI,EAAE,gBAAkB,CAAC,EAAE,eAAeI,EAAEL,CAAC,CAAC,EAAG,CAC/C,MAAMuC,EAAI,YAAYvC,CAAC,+BAA+B,CAAC,MAAQ,EAAE,WAAW,EAAE,eAAe,MAAM,EACnG,GAAI,EAAE,iBAAmB,MACvB,EAAE,OAAO,MAAMuC,CAAC,MAEhB,OAAM,IAAI,MAAMA,CAAC,CACpB,CACH,CACAu6F,GAAG,qBAAuB+B,IAC1B,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,oBAAsBA,GAAG,oBAAsBA,GAAG,aAAe,OACpE,MAAMC,GAAKrG,GAAIsG,IAAKnG,GACpB,SAASoG,IAAG5+F,EAAG,CAAE,QAAS,EAAG,WAAY,EAAG,OAAQ,EAAG,WAAY,EAAG,cAAeL,EAAG,aAAcC,GAAK,CACzG,GAAI,IAAM,QAAU,IAAM,OACxB,MAAM,IAAI,MAAM,sDAAsD,EACxE,GAAI,IAAM,OAAQ,CAChB,MAAM,EAAII,EAAE,OAAO,CAAC,EACpB,OAAO,IAAM,OAAS,CACpB,OAAQ,EACR,cAAgB0+F,GAAG,KAAK1+F,EAAE,UAAU,MAAO0+F,GAAG,aAAa,CAAC,CAAC,GAC7D,cAAe,GAAG1+F,EAAE,aAAa,IAAI,CAAC,EAC5C,EAAQ,CACF,OAAQ,EAAE,CAAC,EACX,cAAgB0+F,GAAG,KAAK1+F,EAAE,UAAU,MAAO0+F,GAAG,aAAa,CAAC,CAAC,MAAOA,GAAG,aAAa,CAAC,CAAC,GACtF,cAAe,GAAG1+F,EAAE,aAAa,IAAI,CAAC,OAAQ2+F,IAAG,gBAAgB,CAAC,CAAC,EACzE,CACG,CACD,GAAI,IAAM,OAAQ,CAChB,GAAI,IAAM,QAAUh/F,IAAM,QAAUC,IAAM,OACxC,MAAM,IAAI,MAAM,6EAA6E,EAC/F,MAAO,CACL,OAAQ,EACR,WAAY,EACZ,aAAcA,EACd,cAAeD,CACrB,CACG,CACD,MAAM,IAAI,MAAM,6CAA6C,CAC/D,CACA8+F,GAAG,aAAeG,IAClB,SAASC,IAAG7+F,EAAG,EAAG,CAAE,SAAU,EAAG,aAAc,EAAG,KAAM,EAAG,UAAWL,EAAG,aAAcC,CAAC,EAAI,CAC1F,GAAI,IAAM,QAAU,IAAM,OACxB,MAAM,IAAI,MAAM,qDAAqD,EACvE,KAAM,CAAE,IAAK,CAAG,EAAG,EACnB,GAAI,IAAM,OAAQ,CAChB,KAAM,CAAE,UAAW,EAAG,YAAa,EAAG,KAAM,CAAC,EAAK,EAAG,EAAI,EAAE,IAAI,UAAY8+F,GAAG,KAAK,EAAE,IAAI,MAAOA,GAAG,aAAa,CAAC,CAAC,GAAI,EAAE,EACxH,EAAE,CAAC,EAAG1+F,EAAE,aAAgB0+F,GAAG,OAAO,CAAC,MAAOC,IAAG,cAAc,EAAG,EAAG,EAAE,gBAAgB,CAAC,GAAI3+F,EAAE,sBAAyB0+F,GAAG,KAAK,CAAC,GAAI1+F,EAAE,YAAc,CAAC,GAAG,EAAGA,EAAE,kBAAkB,CAC5K,CACD,GAAI,IAAM,OAAQ,CAChB,MAAM,EAAI,aAAa0+F,GAAG,KAAO,EAAI,EAAE,IAAI,OAAQ,EAAG,EAAE,EACxD,EAAE,CAAC,EAAG9+F,IAAM,SAAWI,EAAE,aAAeJ,EACzC,CACDD,IAAMK,EAAE,UAAYL,GACpB,SAAS,EAAE,EAAG,CACZK,EAAE,KAAO,EAAGA,EAAE,UAAY,EAAE,UAAY,EAAGA,EAAE,UAAY,GAAI,EAAE,kBAAoC,IAAI,IAAOA,EAAE,WAAa,EAAE,KAAMA,EAAE,UAAY,CAAC,GAAG,EAAE,UAAW,CAAC,CACtK,CACH,CACAy+F,GAAG,oBAAsBI,IACzB,SAASC,IAAG9+F,EAAG,CAAE,iBAAkB,EAAG,YAAa,EAAG,cAAe,EAAG,aAAc,EAAG,UAAWL,CAAC,EAAI,CACvG,IAAM,SAAWK,EAAE,cAAgB,GAAI,IAAM,SAAWA,EAAE,aAAe,GAAIL,IAAM,SAAWK,EAAE,UAAYL,GAAIK,EAAE,iBAAmB,EAAGA,EAAE,YAAc,CAC1J,CACAy+F,GAAG,oBAAsBK,IACzB,IAAIC,GAAK,CAAE,EAAEC,IAAK,SAASh/F,EAAE,EAAG,EAAG,CACjC,GAAI,IAAM,EAAG,MAAO,GACpB,GAAI,GAAK,GAAK,OAAO,GAAK,UAAY,OAAO,GAAK,SAAU,CAC1D,GAAI,EAAE,cAAgB,EAAE,YAAa,MAAO,GAC5C,IAAI,EAAG,EAAGL,EACV,GAAI,MAAM,QAAQ,CAAC,EAAG,CACpB,GAAI,EAAI,EAAE,OAAQ,GAAK,EAAE,OAAQ,MAAO,GACxC,IAAK,EAAI,EAAG,MAAQ,GAClB,GAAI,CAACK,EAAE,EAAE,CAAC,EAAG,EAAE,CAAC,CAAC,EAAG,MAAO,GAC7B,MAAO,EACR,CACD,GAAI,EAAE,cAAgB,OAAQ,OAAO,EAAE,SAAW,EAAE,QAAU,EAAE,QAAU,EAAE,MAC5E,GAAI,EAAE,UAAY,OAAO,UAAU,QAAS,OAAO,EAAE,QAAO,IAAO,EAAE,QAAO,EAC5E,GAAI,EAAE,WAAa,OAAO,UAAU,SAAU,OAAO,EAAE,SAAQ,IAAO,EAAE,SAAQ,EAChF,GAAIL,EAAI,OAAO,KAAK,CAAC,EAAG,EAAIA,EAAE,OAAQ,IAAM,OAAO,KAAK,CAAC,EAAE,OAAQ,MAAO,GAC1E,IAAK,EAAI,EAAG,MAAQ,GAClB,GAAI,CAAC,OAAO,UAAU,eAAe,KAAK,EAAGA,EAAE,CAAC,CAAC,EAAG,MAAO,GAC7D,IAAK,EAAI,EAAG,MAAQ,GAAK,CACvB,IAAIC,EAAID,EAAE,CAAC,EACX,GAAI,CAACK,EAAE,EAAEJ,CAAC,EAAG,EAAEA,CAAC,CAAC,EAAG,MAAO,EAC5B,CACD,MAAO,EACR,CACD,OAAO,IAAM,GAAK,IAAM,CAC1B,EAAGq/F,IAAK,CAAE,QAAS,IAAMC,GAAKD,IAAG,QAAU,SAASj/F,EAAG,EAAG,EAAG,CAC3D,OAAO,GAAK,aAAe,EAAI,EAAG,EAAI,CAAE,GAAG,EAAI,EAAE,IAAM,EACvD,IAAI,EAAI,OAAO,GAAK,WAAa,EAAI,EAAE,KAAO,UAAW,CAC3D,EAAK,EAAI,EAAE,MAAQ,UAAW,CAC9B,EACEm/F,GAAG,EAAG,EAAG,EAAGn/F,EAAG,GAAIA,CAAC,CACtB,EACAk/F,GAAG,SAAW,CACZ,gBAAiB,GACjB,MAAO,GACP,SAAU,GACV,qBAAsB,GACtB,cAAe,GACf,IAAK,GACL,GAAI,GACJ,KAAM,GACN,KAAM,EACR,EACAA,GAAG,cAAgB,CACjB,MAAO,GACP,MAAO,GACP,MAAO,GACP,MAAO,EACT,EACAA,GAAG,cAAgB,CACjB,MAAO,GACP,YAAa,GACb,WAAY,GACZ,kBAAmB,GACnB,aAAc,EAChB,EACAA,GAAG,aAAe,CAChB,QAAS,GACT,KAAM,GACN,MAAO,GACP,SAAU,GACV,QAAS,GACT,QAAS,GACT,iBAAkB,GAClB,iBAAkB,GAClB,WAAY,GACZ,UAAW,GACX,UAAW,GACX,QAAS,GACT,OAAQ,GACR,SAAU,GACV,SAAU,GACV,YAAa,GACb,cAAe,GACf,cAAe,EACjB,EACA,SAASC,GAAGn/F,EAAG,EAAG,EAAG,EAAG,EAAGL,EAAGC,EAAG,EAAG,EAAG,EAAG,CACxC,GAAI,GAAK,OAAO,GAAK,UAAY,CAAC,MAAM,QAAQ,CAAC,EAAG,CAClD,EAAE,EAAG,EAAGD,EAAGC,EAAG,EAAG,EAAG,CAAC,EACrB,QAAS,KAAK,EAAG,CACf,IAAI,EAAI,EAAE,CAAC,EACX,GAAI,MAAM,QAAQ,CAAC,GACjB,GAAI,KAAKs/F,GAAG,cACV,QAAS,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5BC,GAAGn/F,EAAG,EAAG,EAAG,EAAE,CAAC,EAAG,EAAI,IAAM,EAAI,IAAM,EAAGL,EAAG,EAAG,EAAG,EAAG,CAAC,UACjD,KAAKu/F,GAAG,eACjB,GAAI,GAAK,OAAO,GAAK,SACnB,QAAS1+F,KAAK,EACZ2+F,GAAGn/F,EAAG,EAAG,EAAG,EAAEQ,CAAC,EAAG,EAAI,IAAM,EAAI,IAAM4+F,IAAG5+F,CAAC,EAAGb,EAAG,EAAG,EAAG,EAAGa,CAAC,OACxD,KAAK0+F,GAAG,UAAYl/F,EAAE,SAAW,EAAE,KAAKk/F,GAAG,gBAAkBC,GAAGn/F,EAAG,EAAG,EAAG,EAAG,EAAI,IAAM,EAAGL,EAAG,EAAG,EAAG,CAAC,CAC5G,CACD,EAAE,EAAG,EAAGA,EAAGC,EAAG,EAAG,EAAG,CAAC,CACtB,CACH,CACA,SAASw/F,IAAGp/F,EAAG,CACb,OAAOA,EAAE,QAAQ,KAAM,IAAI,EAAE,QAAQ,MAAO,IAAI,CAClD,CACA,IAAIq/F,IAAKJ,IAAG,QACZ,OAAO,eAAeF,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,cAAgBA,GAAG,WAAaA,GAAG,YAAcA,GAAG,aAAeA,GAAG,YAAcA,GAAG,UAAY,OACtG,MAAMO,IAAK9G,GAAI+G,IAAKP,IAAIQ,IAAKH,IAAII,IAAqB,IAAI,IAAI,CAC5D,OACA,SACA,UACA,YACA,YACA,gBACA,gBACA,WACA,WACA,UACA,UACA,cACA,aACA,WACA,OACA,OACF,CAAC,EACD,SAASC,IAAG1/F,EAAG,EAAI,GAAI,CACrB,OAAO,OAAOA,GAAK,UAAY,GAAK,IAAM,GAAK,CAAC2/F,GAAG3/F,CAAC,EAAI,EAAI4/F,IAAG5/F,CAAC,GAAK,EAAI,EAC3E,CACA++F,GAAG,UAAYW,IACf,MAAMG,IAAqB,IAAI,IAAI,CACjC,OACA,gBACA,mBACA,cACA,gBACF,CAAC,EACD,SAASF,GAAG3/F,EAAG,CACb,UAAW,KAAKA,EAAG,CACjB,GAAI6/F,IAAG,IAAI,CAAC,EACV,MAAO,GACT,MAAM,EAAI7/F,EAAE,CAAC,EACb,GAAI,MAAM,QAAQ,CAAC,GAAK,EAAE,KAAK2/F,EAAE,GAAK,OAAO,GAAK,UAAYA,GAAG,CAAC,EAChE,MAAO,EACV,CACD,MAAO,EACT,CACA,SAASC,IAAG5/F,EAAG,CACb,IAAI,EAAI,EACR,UAAW,KAAKA,EAGd,GAFI,IAAM,SAEN,IAAK,CAACy/F,IAAG,IAAI,CAAC,IAAM,OAAOz/F,EAAE,CAAC,GAAK,aAAgBs/F,IAAG,UAAUt/F,EAAE,CAAC,EAAI,GAAM,GAAK4/F,IAAG,CAAC,CAAC,EAAG,IAAM,EAAI,IACtG,MAAO,GAAI,EAEf,OAAO,CACT,CACA,SAASE,IAAG9/F,EAAG,EAAI,GAAI,EAAG,CACxB,IAAM,KAAO,EAAI+/F,GAAG,CAAC,GACrB,MAAM,EAAI//F,EAAE,MAAM,CAAC,EACnB,OAAOggG,IAAGhgG,EAAG,CAAC,CAChB,CACA++F,GAAG,YAAce,IACjB,SAASE,IAAGhgG,EAAG,EAAG,CAChB,OAAOA,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EAAI,GACxC,CACA++F,GAAG,aAAeiB,IAClB,MAAMC,IAAK,QACX,SAASF,GAAG//F,EAAG,CACb,OAAOA,EAAIA,EAAE,QAAQigG,IAAI,EAAE,EAAI,EACjC,CACAlB,GAAG,YAAcgB,GACjB,SAASG,IAAGlgG,EAAG,EAAG,EAAG,CACnB,OAAO,EAAI+/F,GAAG,CAAC,EAAG//F,EAAE,QAAQ,EAAG,CAAC,CAClC,CACA++F,GAAG,WAAamB,IAChB,MAAMC,IAAK,wBACX,SAASC,IAAGpgG,EAAG,EAAG,CAChB,GAAI,OAAOA,GAAK,UACd,MAAO,GACT,KAAM,CAAE,SAAU,EAAG,YAAa,CAAG,EAAG,KAAK,KAAM,EAAI+/F,GAAG//F,EAAE,CAAC,GAAK,CAAC,EAAGL,EAAI,CAAE,GAAI,CAAG,EAAEC,EAAIkgG,IAAG,EAAG,EAAG,EAAE,EAAG,EAAI,GAAI,EAAoB,IAAI,IACvI,OAAON,IAAGx/F,EAAG,CAAE,QAAS,IAAM,CAAC,EAAG,EAAGQ,EAAGmF,IAAM,CAC5C,GAAIA,IAAM,OACR,OACF,MAAMC,EAAIhG,EAAI,EACd,IAAIiG,EAAIlG,EAAEgG,CAAC,EACX,OAAO,EAAE,CAAC,GAAK,WAAaE,EAAIC,EAAE,KAAK,KAAM,EAAE,CAAC,CAAC,GAAIC,EAAE,KAAK,KAAM,EAAE,OAAO,EAAGA,EAAE,KAAK,KAAM,EAAE,cAAc,EAAGpG,EAAE,CAAC,EAAIkG,EACrH,SAASC,EAAEqB,EAAG,CACZ,MAAM,EAAI,KAAK,KAAK,YAAY,QAChC,GAAIA,EAAI44F,GAAGl6F,EAAI,EAAEA,EAAGsB,CAAC,EAAIA,CAAC,EAAG,EAAE,IAAIA,CAAC,EAClC,MAAM,EAAEA,CAAC,EACX,EAAE,IAAIA,CAAC,EACP,IAAIC,EAAI,KAAK,KAAKD,CAAC,EACnB,OAAO,OAAOC,GAAK,WAAaA,EAAI,KAAK,KAAKA,CAAC,GAAI,OAAOA,GAAK,SAAW,EAAE,EAAGA,EAAE,OAAQD,CAAC,EAAIA,IAAM44F,GAAGn6F,CAAC,IAAMuB,EAAE,CAAC,IAAM,KAAO,EAAE,EAAG,EAAEA,CAAC,EAAGA,CAAC,EAAG,EAAEA,CAAC,EAAI,GAAK,KAAK,KAAKA,CAAC,EAAIvB,GAAIuB,CAC7K,CACD,SAASpB,EAAEoB,EAAG,CACZ,GAAI,OAAOA,GAAK,SAAU,CACxB,GAAI,CAACg5F,IAAG,KAAKh5F,CAAC,EACZ,MAAM,IAAI,MAAM,mBAAmBA,CAAC,GAAG,EACzCrB,EAAE,KAAK,KAAM,IAAIqB,CAAC,EAAE,CACrB,CACF,CACF,GAAG,EACJ,SAAS,EAAE,EAAG,EAAG3G,EAAG,CAClB,GAAI,IAAM,QAAU,CAAC++F,IAAG,EAAG,CAAC,EAC1B,MAAM,EAAE/+F,CAAC,CACZ,CACD,SAAS,EAAE,EAAG,CACZ,OAAO,IAAI,MAAM,cAAc,CAAC,oCAAoC,CACrE,CACH,CACAu+F,GAAG,cAAgBqB,IACnB,OAAO,eAAelI,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,QAAUA,GAAG,WAAaA,GAAG,qBAAuB,OACvD,MAAMmI,IAAKlI,GAAImI,GAAK9F,GAAI+F,GAAKzF,GAAI0F,GAAKhG,GAAIiG,IAAKrE,GAAIsE,GAAKjE,GAAIkE,GAAKlC,GAAImC,GAAKvI,GAAIwI,GAAK/G,GAAIgH,IAAK/B,GAAIgC,GAAKvI,GAAIwI,GAAK5I,GAC9G,SAAS6I,IAAGjhG,EAAG,CACb,GAAIkhG,IAAGlhG,CAAC,IAAMmhG,IAAGnhG,CAAC,EAAGohG,IAAGphG,CAAC,GAAI,CAC3BqhG,IAAGrhG,CAAC,EACJ,MACD,CACDshG,IAAGthG,EAAG,OAAUqgG,IAAG,sBAAsBrgG,CAAC,CAAC,CAC7C,CACAk4F,GAAG,qBAAuB+I,IAC1B,SAASK,IAAG,CAAE,IAAKthG,EAAG,aAAc,EAAG,OAAQ,EAAG,UAAW,EAAG,KAAM,CAAC,EAAIL,EAAG,CAC5E,EAAE,KAAK,IAAMK,EAAE,KAAK,KAAO4gG,GAAG,KAAKC,GAAG,QAAQ,IAAI,KAAKA,GAAG,QAAQ,MAAM,GAAI,EAAE,OAAQ,IAAM,CAC1F7gG,EAAE,QAAS4gG,GAAG,mBAAmBW,GAAG,EAAG,CAAC,CAAC,EAAE,EAAGC,IAAGxhG,EAAG,CAAC,EAAGA,EAAE,KAAKL,CAAC,CACjE,GAAIK,EAAE,KAAK,KAAO4gG,GAAG,KAAKC,GAAG,QAAQ,IAAI,KAAKY,IAAG,CAAC,CAAC,GAAI,EAAE,OAAQ,IAAMzhG,EAAE,KAAKuhG,GAAG,EAAG,CAAC,CAAC,EAAE,KAAK5hG,CAAC,CAAC,CAClG,CACA,SAAS8hG,IAAGzhG,EAAG,CACb,SAAW4gG,GAAG,MAAMC,GAAG,QAAQ,YAAY,QAAQA,GAAG,QAAQ,UAAU,KAAKA,GAAG,QAAQ,kBAAkB,KAAKA,GAAG,QAAQ,QAAQ,IAAIA,GAAG,QAAQ,IAAI,GAAG7gG,EAAE,cAAiB4gG,GAAG,OAAOC,GAAG,QAAQ,cAAc,MAAQD,GAAG,GAAG,MAC9N,CACA,SAASY,IAAGxhG,EAAG,EAAG,CAChBA,EAAE,GAAG6gG,GAAG,QAAQ,OAAQ,IAAM,CAC5B7gG,EAAE,IAAI6gG,GAAG,QAAQ,gBAAkBD,GAAG,KAAKC,GAAG,QAAQ,MAAM,IAAIA,GAAG,QAAQ,YAAY,EAAE,EAAG7gG,EAAE,IAAI6gG,GAAG,QAAQ,cAAgBD,GAAG,KAAKC,GAAG,QAAQ,MAAM,IAAIA,GAAG,QAAQ,UAAU,EAAE,EAAG7gG,EAAE,IAAI6gG,GAAG,QAAQ,sBAAwBD,GAAG,KAAKC,GAAG,QAAQ,MAAM,IAAIA,GAAG,QAAQ,kBAAkB,EAAE,EAAG7gG,EAAE,IAAI6gG,GAAG,QAAQ,YAAcD,GAAG,KAAKC,GAAG,QAAQ,MAAM,IAAIA,GAAG,QAAQ,QAAQ,EAAE,EAAG,EAAE,YAAc7gG,EAAE,IAAI6gG,GAAG,QAAQ,kBAAoBD,GAAG,KAAKC,GAAG,QAAQ,MAAM,IAAIA,GAAG,QAAQ,cAAc,EAAE,CACje,EAAK,IAAM,CACP7gG,EAAE,IAAI6gG,GAAG,QAAQ,gBAAkBD,GAAG,MAAM,EAAG5gG,EAAE,IAAI6gG,GAAG,QAAQ,cAAgBD,GAAG,aAAa,EAAG5gG,EAAE,IAAI6gG,GAAG,QAAQ,sBAAwBD,GAAG,aAAa,EAAG5gG,EAAE,IAAI6gG,GAAG,QAAQ,SAAUA,GAAG,QAAQ,IAAI,EAAG,EAAE,YAAc7gG,EAAE,IAAI6gG,GAAG,QAAQ,kBAAoBD,GAAG,MAAM,CAC9Q,CAAG,CACH,CACA,SAASS,IAAGrhG,EAAG,CACb,KAAM,CAAE,OAAQ,EAAG,KAAM,EAAG,IAAK,CAAG,EAAGA,EACvCshG,IAAGthG,EAAG,IAAM,CACV,EAAE,UAAY,EAAE,UAAY0hG,IAAG1hG,CAAC,EAAG2hG,IAAG3hG,CAAC,EAAG,EAAE,IAAI6gG,GAAG,QAAQ,QAAS,IAAI,EAAG,EAAE,IAAIA,GAAG,QAAQ,OAAQ,CAAC,EAAG,EAAE,aAAee,IAAG5hG,CAAC,EAAG6hG,IAAG7hG,CAAC,EAAG8hG,IAAG9hG,CAAC,CAC/I,CAAG,CACH,CACA,SAAS4hG,IAAG5hG,EAAG,CACb,KAAM,CAAE,IAAK,EAAG,aAAc,CAAC,EAAKA,EACpCA,EAAE,UAAY,EAAE,MAAM,eAAiB4gG,GAAG,KAAK,CAAC,YAAY,EAAG,EAAE,MAAOA,GAAG,KAAK5gG,EAAE,SAAS,gBAAiB,IAAM,EAAE,UAAW4gG,GAAG,KAAK5gG,EAAE,SAAS,YAAc4gG,GAAG,aAAa,CAAC,EAAG,EAAE,MAAOA,GAAG,KAAK5gG,EAAE,SAAS,gBAAiB,IAAM,EAAE,UAAW4gG,GAAG,KAAK5gG,EAAE,SAAS,YAAc4gG,GAAG,aAAa,CAAC,CACxS,CACA,SAASW,GAAGvhG,EAAG,EAAG,CAChB,MAAM,EAAI,OAAOA,GAAK,UAAYA,EAAE,EAAE,QAAQ,EAC9C,OAAO,IAAM,EAAE,KAAK,QAAU,EAAE,KAAK,YAAe4gG,GAAG,mBAAmB,CAAC,MAAQA,GAAG,GACxF,CACA,SAASmB,IAAG/hG,EAAG,EAAG,CAChB,GAAIkhG,IAAGlhG,CAAC,IAAMmhG,IAAGnhG,CAAC,EAAGohG,IAAGphG,CAAC,GAAI,CAC3BgiG,IAAGhiG,EAAG,CAAC,EACP,MACD,IACGqgG,IAAG,mBAAmBrgG,EAAG,CAAC,CAChC,CACA,SAASohG,IAAG,CAAE,OAAQphG,EAAG,KAAM,CAAC,EAAI,CAClC,GAAI,OAAOA,GAAK,UACd,MAAO,CAACA,EACV,UAAW,KAAKA,EACd,GAAI,EAAE,MAAM,IAAI,CAAC,EACf,MAAO,GACX,MAAO,EACT,CACA,SAASkhG,IAAGlhG,EAAG,CACb,OAAO,OAAOA,EAAE,QAAU,SAC5B,CACA,SAASgiG,IAAGhiG,EAAG,EAAG,CAChB,KAAM,CAAE,OAAQ,EAAG,IAAK,EAAG,KAAM,CAAG,EAAGA,EACvC,EAAE,UAAY,EAAE,UAAY0hG,IAAG1hG,CAAC,EAAGiiG,IAAGjiG,CAAC,EAAGkiG,IAAGliG,CAAC,EAC9C,MAAML,EAAI,EAAE,MAAM,QAASkhG,GAAG,QAAQ,MAAM,EAC5CgB,IAAG7hG,EAAGL,CAAC,EAAG,EAAE,IAAI,KAAOihG,GAAG,KAAKjhG,CAAC,QAAQkhG,GAAG,QAAQ,MAAM,EAAE,CAC7D,CACA,SAASM,IAAGnhG,EAAG,IACT+gG,GAAG,mBAAmB/gG,CAAC,EAAGmiG,IAAGniG,CAAC,CACpC,CACA,SAAS6hG,IAAG7hG,EAAG,EAAG,CAChB,GAAIA,EAAE,KAAK,IACT,OAAOoiG,GAAGpiG,EAAG,GAAI,GAAI,CAAC,EACxB,MAAM,KAAQsgG,GAAG,gBAAgBtgG,EAAE,MAAM,EAAG,KAAQsgG,GAAG,wBAAwBtgG,EAAG,CAAC,EACnFoiG,GAAGpiG,EAAG,EAAG,CAAC,EAAG,CAAC,CAChB,CACA,SAASmiG,IAAGniG,EAAG,CACb,KAAM,CAAE,OAAQ,EAAG,cAAe,EAAG,KAAM,EAAG,KAAM,CAAG,EAAGA,EAC1D,EAAE,MAAQ,EAAE,0BAA6B+gG,GAAG,sBAAsB,EAAG,EAAE,KAAK,GAAK,EAAE,OAAO,KAAK,6CAA6C,CAAC,GAAG,CAClJ,CACA,SAASY,IAAG3hG,EAAG,CACb,KAAM,CAAE,OAAQ,EAAG,KAAM,CAAC,EAAKA,EAC/B,EAAE,UAAY,QAAU,EAAE,aAAe,EAAE,iBAAoB+gG,GAAG,iBAAiB/gG,EAAG,uCAAuC,CAC/H,CACA,SAASiiG,IAAGjiG,EAAG,CACb,MAAM,EAAIA,EAAE,OAAOA,EAAE,KAAK,QAAQ,EAClC,IAAMA,EAAE,UAAa8gG,IAAG,YAAY9gG,EAAE,KAAK,YAAaA,EAAE,OAAQ,CAAC,EACrE,CACA,SAASkiG,IAAGliG,EAAG,CACb,GAAIA,EAAE,OAAO,QAAU,CAACA,EAAE,UAAU,OAClC,MAAM,IAAI,MAAM,6BAA6B,CACjD,CACA,SAAS0hG,IAAG,CAAE,IAAK1hG,EAAG,UAAW,EAAG,OAAQ,EAAG,cAAe,EAAG,KAAM,CAAC,EAAI,CAC1E,MAAML,EAAI,EAAE,SACZ,GAAI,EAAE,WAAa,GACjBK,EAAE,QAAS4gG,GAAG,KAAKC,GAAG,QAAQ,IAAI,eAAelhG,CAAC,GAAG,UAC9C,OAAO,EAAE,UAAY,WAAY,CACxC,MAAMC,KAAQghG,GAAG,OAAO,CAAC,YAAa,EAAI5gG,EAAE,WAAW,OAAQ,CAAE,IAAK,EAAE,IAAI,CAAE,EAC9EA,EAAE,QAAS4gG,GAAG,KAAKC,GAAG,QAAQ,IAAI,kBAAkBlhG,CAAC,KAAKC,CAAC,KAAK,CAAC,UAAU,CAC5E,CACH,CACA,SAASkiG,IAAG9hG,EAAG,CACb,KAAM,CAAE,IAAK,EAAG,UAAW,EAAG,aAAc,EAAG,gBAAiB,EAAG,KAAML,CAAC,EAAKK,EAC/E,EAAE,OAAS,EAAE,MAAO4gG,GAAG,KAAKC,GAAG,QAAQ,MAAM,SAAU,IAAM,EAAE,OAAOA,GAAG,QAAQ,IAAI,EAAG,IAAM,EAAE,SAAUD,GAAG,SAAS,CAAC,IAAIC,GAAG,QAAQ,OAAO,GAAG,CAAC,GAAK,EAAE,UAAWD,GAAG,KAAK,CAAC,UAAWC,GAAG,QAAQ,OAAO,EAAGlhG,EAAE,aAAe0iG,IAAGriG,CAAC,EAAG,EAAE,UAAW4gG,GAAG,KAAKC,GAAG,QAAQ,MAAM,QAAQ,EACpR,CACA,SAASwB,IAAG,CAAE,IAAKriG,EAAG,UAAW,EAAG,MAAO,EAAG,MAAO,GAAK,CACxD,aAAa4gG,GAAG,MAAQ5gG,EAAE,UAAW4gG,GAAG,KAAK,CAAC,SAAU,CAAC,EAAG,aAAaA,GAAG,MAAQ5gG,EAAE,UAAW4gG,GAAG,KAAK,CAAC,SAAU,CAAC,CACvH,CACA,SAASwB,GAAGpiG,EAAG,EAAG,EAAG,EAAG,CACtB,KAAM,CAAE,IAAK,EAAG,OAAQL,EAAG,KAAMC,EAAG,UAAW,EAAG,KAAM,EAAG,KAAM,GAAMI,EAAG,CAAE,MAAO,CAAG,EAAG,EACzF,GAAIL,EAAE,OAAS,EAAE,uBAAyB,IAAKohG,GAAG,sBAAsBphG,EAAG,CAAC,GAAI,CAC9E,EAAE,MAAM,IAAM2iG,IAAGtiG,EAAG,OAAQ,EAAE,IAAI,KAAK,UAAU,CAAC,EAClD,MACD,CACD,EAAE,KAAOuiG,IAAGviG,EAAG,CAAC,EAAG,EAAE,MAAM,IAAM,CAC/B,UAAW,KAAK,EAAE,MAChB,EAAE,CAAC,EACL,EAAE,EAAE,IAAI,CACZ,CAAG,EACD,SAAS,EAAE,EAAG,IACRugG,GAAG,gBAAgB5gG,EAAG,CAAC,IAAM,EAAE,MAAQ,EAAE,MAAO6gG,GAAG,eAAe,EAAE,KAAM5gG,EAAG,EAAE,aAAa,CAAC,EAAG4iG,GAAGxiG,EAAG,CAAC,EAAG,EAAE,SAAW,GAAK,EAAE,CAAC,IAAM,EAAE,MAAQ,IAAM,EAAE,KAAI,KAAQwgG,GAAG,iBAAiBxgG,CAAC,GAAI,EAAE,MAAK,GAAMwiG,GAAGxiG,EAAG,CAAC,EAAG,GAAK,EAAE,MAAO4gG,GAAG,KAAKC,GAAG,QAAQ,MAAM,QAAQ,GAAK,CAAC,EAAE,EAC/Q,CACH,CACA,SAAS2B,GAAGxiG,EAAG,EAAG,CAChB,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,KAAM,CAAE,YAAa,EAAK,EAAGA,EACxD,MAASygG,IAAG,gBAAgBzgG,EAAG,EAAE,IAAI,EAAG,EAAE,MAAM,IAAM,CACpD,UAAWL,KAAK,EAAE,SACZ4gG,GAAG,eAAe,EAAG5gG,CAAC,GAAK2iG,IAAGtiG,EAAGL,EAAE,QAASA,EAAE,WAAY,EAAE,IAAI,CAC1E,CAAG,CACH,CACA,SAAS4iG,IAAGviG,EAAG,EAAG,CAChBA,EAAE,UAAU,MAAQ,CAACA,EAAE,KAAK,cAAgByiG,IAAGziG,EAAG,CAAC,EAAGA,EAAE,KAAK,iBAAmB0iG,IAAG1iG,EAAG,CAAC,EAAG2iG,IAAG3iG,EAAGA,EAAE,SAAS,EAC7G,CACA,SAASyiG,IAAGziG,EAAG,EAAG,CAChB,GAAI,EAAE,OAAQ,CACZ,GAAI,CAACA,EAAE,UAAU,OAAQ,CACvBA,EAAE,UAAY,EACd,MACD,CACD,EAAE,QAAS,GAAM,CACf4iG,IAAG5iG,EAAE,UAAW,CAAC,GAAK6iG,GAAG7iG,EAAG,SAAS,CAAC,6BAA6BA,EAAE,UAAU,KAAK,GAAG,CAAC,GAAG,CAC5F,GAAG8iG,IAAG9iG,EAAG,CAAC,CACZ,CACH,CACA,SAAS0iG,IAAG1iG,EAAG,EAAG,CAChB,EAAE,OAAS,GAAK,EAAE,EAAE,SAAW,GAAK,EAAE,SAAS,MAAM,IAAM6iG,GAAG7iG,EAAG,iDAAiD,CACpH,CACA,SAAS2iG,IAAG3iG,EAAG,EAAG,CAChB,MAAM,EAAIA,EAAE,KAAK,MAAM,IACvB,UAAW,KAAK,EAAG,CACjB,MAAM,EAAI,EAAE,CAAC,EACb,GAAI,OAAO,GAAK,aAAgBugG,GAAG,eAAevgG,EAAE,OAAQ,CAAC,EAAG,CAC9D,KAAM,CAAE,KAAML,GAAM,EAAE,WACtBA,EAAE,QAAU,CAACA,EAAE,KAAMC,GAAMmjG,IAAG,EAAGnjG,CAAC,CAAC,GAAKijG,GAAG7iG,EAAG,iBAAiBL,EAAE,KAAK,GAAG,CAAC,kBAAkB,CAAC,GAAG,CACjG,CACF,CACH,CACA,SAASojG,IAAG/iG,EAAG,EAAG,CAChB,OAAOA,EAAE,SAAS,CAAC,GAAK,IAAM,UAAYA,EAAE,SAAS,SAAS,CAChE,CACA,SAAS4iG,IAAG5iG,EAAG,EAAG,CAChB,OAAOA,EAAE,SAAS,CAAC,GAAK,IAAM,WAAaA,EAAE,SAAS,QAAQ,CAChE,CACA,SAAS8iG,IAAG9iG,EAAG,EAAG,CAChB,MAAM,EAAI,GACV,UAAW,KAAKA,EAAE,UAChB4iG,IAAG,EAAG,CAAC,EAAI,EAAE,KAAK,CAAC,EAAI,EAAE,SAAS,SAAS,GAAK,IAAM,UAAY,EAAE,KAAK,SAAS,EACpF5iG,EAAE,UAAY,CAChB,CACA,SAAS6iG,GAAG7iG,EAAG,EAAG,CAChB,MAAM,EAAIA,EAAE,UAAU,OAASA,EAAE,cACjC,GAAK,QAAQ,CAAC,qBAAuB+gG,GAAG,iBAAiB/gG,EAAG,EAAGA,EAAE,KAAK,WAAW,CACnF,CACA,IAAAgjG,IAAA,KAAS,CACP,YAAY,EAAG,EAAG,EAAG,CACnB,MAAQtC,GAAG,sBAAsB,EAAG,EAAG,CAAC,EAAG,KAAK,IAAM,EAAE,IAAK,KAAK,UAAY,EAAE,UAAW,KAAK,QAAU,EAAG,KAAK,KAAO,EAAE,KAAM,KAAK,OAAS,EAAE,OAAO,CAAC,EAAG,KAAK,MAAQ,EAAE,OAAS,EAAE,KAAK,OAAS,KAAK,QAAU,KAAK,OAAO,MAAO,KAAK,eAAkBK,GAAG,gBAAgB,EAAG,KAAK,OAAQ,EAAG,KAAK,KAAK,EAAG,KAAK,WAAa,EAAE,WAAY,KAAK,aAAe,EAAE,OAAQ,KAAK,OAAS,CAAE,EAAE,KAAK,GAAK,EAAG,KAAK,IAAM,EAAG,KAAK,MAC9Z,KAAK,WAAa,EAAE,IAAI,MAAM,UAAWkC,IAAG,KAAK,MAAO,CAAC,CAAC,UACnD,KAAK,WAAa,KAAK,YAAa,IAAKvC,GAAG,iBAAiB,KAAK,OAAQ,EAAE,WAAY,EAAE,cAAc,EAC/G,MAAM,IAAI,MAAM,GAAG,CAAC,kBAAkB,KAAK,UAAU,EAAE,UAAU,CAAC,EAAE,GACrE,SAAU,EAAI,EAAE,YAAc,EAAE,SAAW,MAAQ,KAAK,UAAY,EAAE,IAAI,MAAM,QAASG,GAAG,QAAQ,MAAM,EAC5G,CACD,OAAO,EAAG,EAAG,EAAG,CACd,KAAK,cAAeD,GAAG,KAAK,CAAC,EAAG,EAAG,CAAC,CACrC,CACD,WAAW,EAAG,EAAG,EAAG,CAClB,KAAK,IAAI,GAAG,CAAC,EAAG,EAAI,EAAC,EAAK,KAAK,MAAO,EAAE,GAAK,KAAK,IAAI,KAAI,EAAI,EAAG,EAAE,KAAK,WAAa,KAAK,IAAI,MAAK,GAAM,KAAK,UAAY,KAAK,IAAI,MAAO,EAAG,KAAK,IAAI,KAAI,CAC3J,CACD,KAAK,EAAG,EAAG,CACT,KAAK,cAAeA,GAAG,KAAK,CAAC,EAAG,OAAQ,CAAC,CAC1C,CACD,KAAK,EAAG,CACN,GAAI,IAAM,OAAQ,CAChB,KAAK,QAAS,KAAK,WAAa,KAAK,IAAI,GAAG,EAAE,EAC9C,MACD,CACD,KAAK,IAAI,GAAG,CAAC,EAAG,KAAK,QAAS,KAAK,UAAY,KAAK,IAAI,MAAK,EAAK,KAAK,IAAI,MAC5E,CACD,UAAU,EAAG,CACX,GAAI,CAAC,KAAK,MACR,OAAO,KAAK,KAAK,CAAC,EACpB,KAAM,CAAE,WAAY,CAAG,EAAG,KAC1B,KAAK,QAASA,GAAG,KAAK,CAAC,yBAA0BA,GAAG,IAAI,KAAK,aAAY,EAAI,CAAC,CAAC,GAAG,CACnF,CACD,MAAM,EAAG,EAAG,EAAG,CACb,GAAI,EAAG,CACL,KAAK,UAAU,CAAC,EAAG,KAAK,OAAO,EAAG,CAAC,EAAG,KAAK,UAAU,CAAE,GACvD,MACD,CACD,KAAK,OAAO,EAAG,CAAC,CACjB,CACD,OAAO,EAAG,EAAG,EACV,EAAII,GAAG,iBAAmBA,GAAG,aAAa,KAAM,KAAK,IAAI,MAAO,CAAC,CACnE,CACD,YAAa,IACPA,GAAG,aAAa,KAAM,KAAK,IAAI,YAAcA,GAAG,iBAAiB,CACtE,CACD,OAAQ,CACN,GAAI,KAAK,YAAc,OACrB,MAAM,IAAI,MAAM,yCAAyC,KACvDA,GAAG,kBAAkB,KAAK,IAAK,KAAK,SAAS,CAClD,CACD,GAAG,EAAG,CACJ,KAAK,WAAa,KAAK,IAAI,GAAG,CAAC,CAChC,CACD,UAAU,EAAG,EAAG,CACd,EAAI,OAAO,OAAO,KAAK,OAAQ,CAAC,EAAI,KAAK,OAAS,CACnD,CACD,WAAW,EAAG,EAAG,EAAIJ,GAAG,IAAK,CAC3B,KAAK,IAAI,MAAM,IAAM,CACnB,KAAK,WAAW,EAAG,CAAC,EAAG,EAAC,CAC9B,CAAK,CACF,CACD,WAAW,EAAIA,GAAG,IAAK,EAAIA,GAAG,IAAK,CACjC,GAAI,CAAC,KAAK,MACR,OACF,KAAM,CAAE,IAAK,EAAG,WAAY,EAAG,WAAYjhG,EAAG,IAAKC,CAAG,EAAG,KACzD,EAAE,MAAOghG,GAAG,OAAQA,GAAG,KAAK,CAAC,iBAAkB,CAAC,CAAC,EAAG,IAAMA,GAAG,KAAO,EAAE,OAAO,EAAG,EAAE,GAAIjhG,EAAE,QAAUC,EAAE,kBAAoB,EAAE,OAAO,KAAK,aAAc,GAAG,KAAK,WAAY,EAAE,IAAMghG,GAAG,KAAO,EAAE,OAAO,EAAG,EAAE,GAAI,EAAE,MAC/M,CACD,cAAe,CACb,KAAM,CAAE,IAAK,EAAG,WAAY,EAAG,WAAY,EAAG,IAAK,EAAG,GAAIjhG,CAAC,EAAK,KAChE,SAAWihG,GAAG,IAAIhhG,EAAC,EAAI,EAAG,GAC1B,SAASA,GAAI,CACX,GAAI,EAAE,OAAQ,CACZ,GAAI,EAAE,aAAaghG,GAAG,MACpB,MAAM,IAAI,MAAM,0BAA0B,EAC5C,MAAM,EAAI,MAAM,QAAQ,CAAC,EAAI,EAAI,CAAC,CAAC,EACnC,SAAWA,GAAG,QAASJ,GAAG,gBAAgB,EAAG,EAAG7gG,EAAE,KAAK,cAAe6gG,GAAG,SAAS,KAAK,CAAC,EACzF,CACD,OAAOI,GAAG,GACX,CACD,SAAS,GAAI,CACX,GAAI,EAAE,eAAgB,CACpB,MAAM,EAAI,EAAE,WAAW,gBAAiB,CAAE,IAAK,EAAE,cAAc,CAAE,EACjE,SAAWA,GAAG,MAAM,CAAC,IAAI,CAAC,GAC3B,CACD,OAAOA,GAAG,GACX,CACF,CACD,UAAU,EAAG,EAAG,CACd,MAAM,KAAQD,GAAG,cAAc,KAAK,GAAI,CAAC,KACrCA,GAAG,qBAAqB,EAAG,KAAK,GAAI,CAAC,KAAOA,GAAG,qBAAqB,EAAG,CAAC,EAC5E,MAAM,EAAI,CAAE,GAAG,KAAK,GAAI,GAAG,EAAG,MAAO,OAAQ,MAAO,MAAM,EAC1D,OAAOoB,IAAG,EAAG,CAAC,EAAG,CAClB,CACD,eAAe,EAAG,EAAG,CACnB,KAAM,CAAE,GAAI,EAAG,IAAK,CAAC,EAAK,KAC1B,EAAE,KAAK,cAAgB,EAAE,QAAU,IAAM,EAAE,QAAU,SAAW,EAAE,MAAQhB,GAAG,eAAe,MAAM,EAAG,EAAE,MAAO,EAAE,MAAO,CAAC,GAAI,EAAE,QAAU,IAAM,EAAE,QAAU,SAAW,EAAE,MAAQA,GAAG,eAAe,MAAM,EAAG,EAAE,MAAO,EAAE,MAAO,CAAC,GAC9N,CACD,oBAAoB,EAAG,EAAG,CACxB,KAAM,CAAE,GAAI,EAAG,IAAK,CAAC,EAAK,KAC1B,GAAI,EAAE,KAAK,cAAgB,EAAE,QAAU,IAAM,EAAE,QAAU,IACvD,OAAO,EAAE,GAAG,EAAG,IAAM,KAAK,eAAe,EAAGH,GAAG,IAAI,CAAC,EAAG,EAC1D,CACH,EACA1I,GAAG,WAAagL,IAChB,SAASZ,IAAGtiG,EAAG,EAAG,EAAG,EAAG,CACtB,MAAM,EAAI,IAAIkjG,IAAGljG,EAAG,EAAG,CAAC,EACxB,SAAU,EAAI,EAAE,KAAK,EAAG,CAAC,EAAI,EAAE,OAAS,EAAE,YAAe0gG,GAAG,iBAAiB,EAAG,CAAC,EAAI,UAAW,KAAQA,GAAG,kBAAkB,EAAG,CAAC,GAAK,EAAE,SAAW,EAAE,cAAiBA,GAAG,iBAAiB,EAAG,CAAC,CAChM,CACA,MAAMyC,IAAK,sBAAuBC,IAAK,mCACvC,SAASH,IAAGjjG,EAAG,CAAE,UAAW,EAAG,UAAW,EAAG,YAAa,GAAK,CAC7D,IAAI,EAAGL,EACP,GAAIK,IAAM,GACR,OAAO6gG,GAAG,QAAQ,SACpB,GAAI7gG,EAAE,CAAC,IAAM,IAAK,CAChB,GAAI,CAACmjG,IAAG,KAAKnjG,CAAC,EACZ,MAAM,IAAI,MAAM,yBAAyBA,CAAC,EAAE,EAC9C,EAAIA,EAAGL,EAAIkhG,GAAG,QAAQ,QAC1B,KAAS,CACL,MAAM,EAAIuC,IAAG,KAAKpjG,CAAC,EACnB,GAAI,CAAC,EACH,MAAM,IAAI,MAAM,yBAAyBA,CAAC,EAAE,EAC9C,MAAM,EAAI,CAAC,EAAE,CAAC,EACd,GAAI,EAAI,EAAE,CAAC,EAAG,IAAM,IAAK,CACvB,GAAI,GAAK,EACP,MAAM,IAAI,MAAM,EAAE,iBAAkB,CAAC,CAAC,EACxC,OAAO,EAAE,EAAI,CAAC,CACf,CACD,GAAI,EAAI,EACN,MAAM,IAAI,MAAM,EAAE,OAAQ,CAAC,CAAC,EAC9B,GAAIL,EAAI,EAAE,EAAI,CAAC,EAAG,CAAC,EACjB,OAAOA,CACV,CACD,IAAIC,EAAID,EACR,MAAM,EAAI,EAAE,MAAM,GAAG,EACrB,UAAW,KAAK,EACd,IAAMA,KAAQihG,GAAG,KAAKjhG,CAAC,MAAOihG,GAAG,gBAAiBG,GAAG,qBAAqB,CAAC,CAAC,CAAC,GAAInhG,KAAQghG,GAAG,KAAKhhG,CAAC,OAAOD,CAAC,IAC5G,OAAOC,EACP,SAAS,EAAE,EAAG,EAAG,CACf,MAAO,iBAAiB,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAChE,CACH,CACAs4F,GAAG,QAAU+K,IACb,IAAII,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,UACrD,cAAiB,KAAM,CACrB,YAAY,EAAG,CACb,MAAM,mBAAmB,EAAG,KAAK,OAAS,EAAG,KAAK,IAAM,KAAK,WAAa,EAC3E,CACH,EACAA,GAAG,QAAUC,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAKzE,GACX,MAAM0E,YAAW,KAAM,CACrB,YAAY,EAAG,EAAG,EAAG,EAAG,CACtB,MAAM,GAAK,2BAA2B,CAAC,YAAY,CAAC,EAAE,EAAG,KAAK,cAAiBD,GAAG,YAAY,EAAG,EAAG,CAAC,EAAG,KAAK,iBAAoBA,GAAG,gBAAiBA,GAAG,aAAa,EAAG,KAAK,UAAU,CAAC,CACzL,CACH,CACAD,GAAG,QAAUE,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,cAAgBA,GAAG,mBAAqBA,GAAG,WAAaA,GAAG,cAAgBA,GAAG,UAAY,OAC7F,MAAMC,GAAKtL,GAAIuL,IAAKP,GAAIQ,GAAK/J,GAAIgK,GAAK/E,GAAIgF,GAAKvL,GAAIwL,IAAK9L,GACxD,MAAM+L,EAAG,CACP,YAAY,EAAG,CACb,IAAI,EACJ,KAAK,KAAO,GAAI,KAAK,eAAiB,GACtC,IAAI,EACJ,OAAO,EAAE,QAAU,WAAa,EAAI,EAAE,QAAS,KAAK,OAAS,EAAE,OAAQ,KAAK,SAAW,EAAE,SAAU,KAAK,KAAO,EAAE,MAAQ,KAAM,KAAK,QAAU,EAAI,EAAE,UAAY,MAAQ,IAAM,OAAS,KAAQH,GAAG,aAAkC,IAAE,EAAE,UAAY,KAAK,CAAC,EAAG,KAAK,WAAa,EAAE,WAAY,KAAK,UAAY,EAAE,UAAW,KAAK,KAAO,EAAE,KAAM,KAAK,OAA8B,GAAE,OAAQ,KAAK,KAAO,EACzY,CACH,CACAJ,GAAG,UAAYO,GACf,SAASC,GAAGlkG,EAAG,CACb,MAAM,EAAImkG,IAAG,KAAK,KAAMnkG,CAAC,EACzB,GAAI,EACF,OAAO,EACT,MAAM,KAAQ8jG,GAAG,aAAa,KAAK,KAAK,YAAa9jG,EAAE,KAAK,MAAM,EAAG,CAAE,IAAK,EAAG,MAAO,CAAG,EAAG,KAAK,KAAK,KAAM,CAAE,cAAeL,CAAC,EAAK,KAAK,KAAMC,EAAI,IAAI+jG,GAAG,QAAQ,KAAK,MAAO,CAAE,IAAK,EAAG,MAAO,EAAG,cAAehkG,CAAC,CAAE,EACnN,IAAI,EACJK,EAAE,SAAW,EAAIJ,EAAE,WAAW,QAAS,CACrC,IAAKgkG,IAAG,QACR,QAAUD,GAAG,wDACd,IACD,MAAM,EAAI/jG,EAAE,UAAU,UAAU,EAChCI,EAAE,aAAe,EACjB,MAAM,EAAI,CACR,IAAKJ,EACL,UAAW,KAAK,KAAK,UACrB,KAAMikG,GAAG,QAAQ,KACjB,WAAYA,GAAG,QAAQ,WACvB,mBAAoBA,GAAG,QAAQ,mBAC/B,UAAW,CAACA,GAAG,QAAQ,IAAI,EAC3B,YAAa,CAACF,GAAG,GAAG,EAEpB,UAAW,EACX,UAAW,CAAE,EACb,kBAAmC,IAAI,IACvC,aAAc/jG,EAAE,WAAW,SAAU,KAAK,KAAK,KAAK,SAAW,GAAK,CAAE,IAAKI,EAAE,OAAQ,QAAU2jG,GAAG,WAAW3jG,EAAE,MAAM,CAAC,EAAK,CAAE,IAAKA,EAAE,MAAM,CAAE,EAC5I,aAAc,EACd,gBAAiB,EACjB,OAAQA,EAAE,OACV,UAAWA,EACX,OAAQ,EACR,OAAQA,EAAE,QAAU,EACpB,WAAY2jG,GAAG,IACf,cAAe3jG,EAAE,aAAe,KAAK,KAAK,IAAM,GAAK,KACrD,aAAe2jG,GAAG,OAClB,KAAM,KAAK,KACX,KAAM,IACV,EACE,IAAI,EACJ,GAAI,CACF,KAAK,cAAc,IAAI3jG,CAAC,KAAOgkG,IAAG,sBAAsB,CAAC,EAAGpkG,EAAE,SAAS,KAAK,KAAK,KAAK,QAAQ,EAC9F,MAAM,EAAIA,EAAE,WACZ,EAAI,GAAGA,EAAE,UAAUikG,GAAG,QAAQ,KAAK,CAAC,UAAU,CAAC,GAAI,KAAK,KAAK,KAAK,UAAY,EAAI,KAAK,KAAK,KAAK,QAAQ,EAAG7jG,CAAC,GAC7G,MAAMQ,EAAI,IAAI,SAAS,GAAGqjG,GAAG,QAAQ,IAAI,GAAI,GAAGA,GAAG,QAAQ,KAAK,GAAI,CAAC,EAAE,KAAM,KAAK,MAAM,IAAG,CAAE,EAC7F,GAAI,KAAK,MAAM,MAAM,EAAG,CAAE,IAAKrjG,CAAC,CAAE,EAAGA,EAAE,OAAS,KAAMA,EAAE,OAASR,EAAE,OAAQQ,EAAE,UAAYR,EAAGA,EAAE,SAAWQ,EAAE,OAAS,IAAK,KAAK,KAAK,KAAK,SAAW,KAAOA,EAAE,OAAS,CAAE,aAAc,EAAG,aAAc,EAAG,YAAaZ,EAAE,OAAO,GAAK,KAAK,KAAK,YAAa,CACzP,KAAM,CAAE,MAAO+F,EAAG,MAAOC,CAAC,EAAK,EAC/BpF,EAAE,UAAY,CACZ,MAAOmF,aAAag+F,GAAG,KAAO,OAASh+F,EACvC,MAAOC,aAAa+9F,GAAG,KAAO,OAAS/9F,EACvC,aAAcD,aAAag+F,GAAG,KAC9B,aAAc/9F,aAAa+9F,GAAG,IAC/B,EAAEnjG,EAAE,SAAWA,EAAE,OAAO,aAAgBmjG,GAAG,WAAWnjG,EAAE,SAAS,EACnE,CACD,OAAOR,EAAE,SAAWQ,EAAGR,CACxB,OAAQ,EAAG,CACV,MAAM,OAAOA,EAAE,SAAU,OAAOA,EAAE,aAAc,GAAK,KAAK,OAAO,MAAM,yCAA0C,CAAC,EAAG,CACzH,QAAY,CACR,KAAK,cAAc,OAAOA,CAAC,CAC5B,CACH,CACA0jG,GAAG,cAAgBQ,GACnB,SAASE,IAAGpkG,EAAG,EAAG,EAAG,CACnB,IAAI,EACJ,KAAQ8jG,GAAG,YAAY,KAAK,KAAK,YAAa,EAAG,CAAC,EAClD,MAAM,EAAI9jG,EAAE,KAAK,CAAC,EAClB,GAAI,EACF,OAAO,EACT,IAAIL,EAAI0kG,IAAG,KAAK,KAAMrkG,EAAG,CAAC,EAC1B,GAAIL,IAAM,OAAQ,CAChB,MAAMC,GAAK,EAAII,EAAE,aAAe,MAAQ,IAAM,OAAS,OAAS,EAAE,CAAC,EAAG,CAAE,SAAU,CAAG,EAAG,KAAK,KAC7FJ,IAAMD,EAAI,IAAIskG,GAAG,CAAE,OAAQrkG,EAAG,SAAU,EAAG,KAAMI,EAAG,OAAQ,CAAC,CAAE,EAChE,CACD,GAAIL,IAAM,OACR,OAAOK,EAAE,KAAK,CAAC,EAAIskG,IAAG,KAAK,KAAM3kG,CAAC,CACtC,CACA+jG,GAAG,WAAaU,IAChB,SAASE,IAAGtkG,EAAG,CACb,SAAW8jG,GAAG,WAAW9jG,EAAE,OAAQ,KAAK,KAAK,UAAU,EAAIA,EAAE,OAASA,EAAE,SAAWA,EAAIkkG,GAAG,KAAK,KAAMlkG,CAAC,CACxG,CACA,SAASmkG,IAAGnkG,EAAG,CACb,UAAW,KAAK,KAAK,cACnB,GAAIukG,IAAG,EAAGvkG,CAAC,EACT,OAAO,CACb,CACA0jG,GAAG,mBAAqBS,IACxB,SAASI,IAAGvkG,EAAG,EAAG,CAChB,OAAOA,EAAE,SAAW,EAAE,QAAUA,EAAE,OAAS,EAAE,MAAQA,EAAE,SAAW,EAAE,MACtE,CACA,SAASqkG,IAAGrkG,EAAG,EAAG,CAChB,IAAI,EACJ,KAAO,OAAQ,EAAI,KAAK,KAAK,CAAC,IAAM,UAClC,EAAI,EACN,OAAO,GAAK,KAAK,QAAQ,CAAC,GAAKwkG,GAAG,KAAK,KAAMxkG,EAAG,CAAC,CACnD,CACA,SAASwkG,GAAGxkG,EAAG,EAAG,CAChB,MAAM,EAAI,KAAK,KAAK,YAAY,MAAM,CAAC,EAAG,KAAQ8jG,GAAG,cAAc,KAAK,KAAK,YAAa,CAAC,EAC3F,IAAI,KAAQA,GAAG,aAAa,KAAK,KAAK,YAAa9jG,EAAE,OAAQ,MAAM,EACnE,GAAI,OAAO,KAAKA,EAAE,MAAM,EAAE,OAAS,GAAK,IAAM,EAC5C,OAAOykG,GAAG,KAAK,KAAM,EAAGzkG,CAAC,EAC3B,MAAML,KAAQmkG,GAAG,aAAa,CAAC,EAAGlkG,EAAI,KAAK,KAAKD,CAAC,GAAK,KAAK,QAAQA,CAAC,EACpE,GAAI,OAAOC,GAAK,SAAU,CACxB,MAAM,EAAI4kG,GAAG,KAAK,KAAMxkG,EAAGJ,CAAC,EAC5B,OAAO,OAA6B,GAAE,QAAW,SAAW,OAAS6kG,GAAG,KAAK,KAAM,EAAG,CAAC,CACxF,CACD,GAAI,OAA6B7kG,GAAE,QAAW,SAAU,CACtD,GAAIA,EAAE,UAAYskG,GAAG,KAAK,KAAMtkG,CAAC,EAAGD,OAAUmkG,GAAG,aAAa,CAAC,EAAG,CAChE,KAAM,CAAE,OAAQ,GAAMlkG,EAAG,CAAE,SAAU,CAAG,EAAG,KAAK,KAAM,EAAI,EAAE,CAAC,EAC7D,OAAO,IAAM,KAAQkkG,GAAG,YAAY,KAAK,KAAK,YAAa,EAAG,CAAC,GAAI,IAAIG,GAAG,CAAE,OAAQ,EAAG,SAAU,EAAG,KAAMjkG,EAAG,OAAQ,CAAC,CAAE,CACzH,CACD,OAAOykG,GAAG,KAAK,KAAM,EAAG7kG,CAAC,CAC1B,CACH,CACA8jG,GAAG,cAAgBc,GACnB,MAAME,IAAqB,IAAI,IAAI,CACjC,aACA,oBACA,OACA,eACA,aACF,CAAC,EACD,SAASD,GAAGzkG,EAAG,CAAE,OAAQ,EAAG,OAAQ,EAAG,KAAM,GAAK,CAChD,IAAI,EACJ,KAAM,EAAIA,EAAE,YAAc,MAAQ,IAAM,OAAS,OAAS,EAAE,CAAC,KAAO,IAClE,OACF,UAAW,KAAKA,EAAE,SAAS,MAAM,CAAC,EAAE,MAAM,GAAG,EAAG,CAC9C,GAAI,OAAO,GAAK,UACd,OACF,MAAM,EAAI,KAAM+jG,GAAG,kBAAkB,CAAC,CAAC,EACvC,GAAI,IAAM,OACR,OACF,EAAI,EACJ,MAAM,EAAI,OAAO,GAAK,UAAY,EAAE,KAAK,KAAK,QAAQ,EACtD,CAACW,IAAG,IAAI,CAAC,GAAK,IAAM,KAAQZ,GAAG,YAAY,KAAK,KAAK,YAAa,EAAG,CAAC,EACvE,CACD,IAAInkG,EACJ,GAAI,OAAO,GAAK,WAAa,EAAE,MAAQ,IAAKokG,GAAG,sBAAsB,EAAG,KAAK,KAAK,EAAG,CACnF,MAAM,KAAQD,GAAG,YAAY,KAAK,KAAK,YAAa,EAAG,EAAE,IAAI,EAC7DnkG,EAAI6kG,GAAG,KAAK,KAAM,EAAG,CAAC,CACvB,CACD,KAAM,CAAE,SAAU5kG,GAAM,KAAK,KAC7B,GAAID,EAAIA,GAAK,IAAIskG,GAAG,CAAE,OAAQ,EAAG,SAAUrkG,EAAG,KAAM,EAAG,OAAQ,EAAG,EAAGD,EAAE,SAAWA,EAAE,KAAK,OACvF,OAAOA,CACX,CACA,MAAMglG,IAAK,iFAAkFC,IAAK,sEAAuEC,IAAK,SAAUC,IAAK,CAC3L,OACF,EAAGC,IAAK,CACN,MAAO,CACL,KAAM,SACN,MAAO,CACL,CACE,OAAQ,uBACT,EACD,CACE,OAAQ,cACT,CACF,CACF,CACH,EAAGC,IAAK,GAAIC,IAAK,CACf,IAAKN,IACL,YAAaC,IACb,KAAMC,IACN,SAAUC,IACV,WAAYC,IACZ,qBAAsBC,GACxB,EACA,IAAIE,GAAK,GAAIC,GAAK,CAAE,QAAS,CAAE,GAC/B,+FACC,SAASnlG,EAAG,EAAG,EACb,SAAS,EAAG,EAAG,CACd,EAAE,CAAC,CACP,GAAKm5B,GAAI,SAAS,EAAG,CACjB,SAAS,GAAI,CACX,QAAS85C,EAAK,UAAU,OAAQC,GAAI,MAAMD,CAAE,EAAGmyB,GAAK,EAAGA,GAAKnyB,EAAImyB,KAC9DlyB,GAAEkyB,EAAE,EAAI,UAAUA,EAAE,EACtB,GAAIlyB,GAAE,OAAS,EAAG,CAChBA,GAAE,CAAC,EAAIA,GAAE,CAAC,EAAE,MAAM,EAAG,EAAE,EACvB,QAASmyB,GAAKnyB,GAAE,OAAS,EAAGoyB,GAAK,EAAGA,GAAKD,GAAI,EAAEC,GAC7CpyB,GAAEoyB,EAAE,EAAIpyB,GAAEoyB,EAAE,EAAE,MAAM,EAAG,EAAE,EAC3B,OAAOpyB,GAAEmyB,EAAE,EAAInyB,GAAEmyB,EAAE,EAAE,MAAM,CAAC,EAAGnyB,GAAE,KAAK,EAAE,CACzC,KACC,QAAOA,GAAE,CAAC,CACb,CACD,SAAS,EAAED,EAAI,CACb,MAAO,MAAQA,EAAK,GACrB,CACD,SAAStzE,EAAEszE,EAAI,CACb,OAAOA,IAAO,OAAS,YAAcA,IAAO,KAAO,OAAS,OAAO,UAAU,SAAS,KAAKA,CAAE,EAAE,MAAM,GAAG,EAAE,IAAK,EAAC,MAAM,GAAG,EAAE,QAAQ,aACpI,CACD,SAASrzE,EAAEqzE,EAAI,CACb,OAAOA,EAAG,aACX,CACD,SAAS,EAAEA,EAAI,CACb,OAAOA,GAAM,KAAOA,aAAc,MAAQA,EAAK,OAAOA,EAAG,QAAU,UAAYA,EAAG,OAASA,EAAG,aAAeA,EAAG,KAAO,CAACA,CAAE,EAAI,MAAM,UAAU,MAAM,KAAKA,CAAE,EAAI,EAChK,CACD,SAAS,EAAEA,EAAIC,GAAG,CAChB,IAAIkyB,GAAKnyB,EACT,GAAIC,GACF,QAASmyB,MAAMnyB,GACbkyB,GAAGC,EAAE,EAAInyB,GAAEmyB,EAAE,EACjB,OAAOD,EACR,CACD,SAAS,EAAEnyB,EAAI,CACb,IAAIC,GAAI,WAAYkyB,GAAK,QAASC,GAAK,EAAED,GAAI,UAAU,EAAGE,GAAK,EAAE,EAAE,UAAYD,GAAK,IAAMA,GAAKA,GAAK,IAAMA,GAAKA,EAAE,EAAI,IAAM,EAAE,cAAgBA,GAAK,IAAMA,GAAKA,EAAE,EAAI,IAAM,EAAE,IAAMA,GAAKA,EAAE,CAAC,EAAGE,GAAK,0BAA2B,GAAK,sCAAuCC,GAAK,EAAED,GAAI,EAAE,EAAGE,GAAKxyB,EAAK,8EAAgF,KAAMyyB,GAAKzyB,EAAK,oBAAsB,KAAM0yB,GAAK,EAAEzyB,GAAGkyB,GAAI,iBAAkBK,EAAE,EAChc,EAAEvyB,GAAI,EAAEA,GAAGkyB,GAAI,aAAa,EAAI,GAAG,EAAG,EAAE,EAAEE,GAAK,IAAM,EAAEK,GAAI,GAAI,OAAO,CAAC,EAAI,GAAG,EAC9E,IAAIC,GAAK,EAAE,EAAE,SAAS,EAAI,IAAM,EAAE,SAAWR,EAAE,EAAI,IAAM,EAAE,IAAMA,GAAKA,EAAE,EAAI,IAAM,EAAE,UAAYA,EAAE,EAAI,QAAUA,EAAE,EAAGS,GAAK,EAAED,GAAK,MAAQA,GAAK,MAAQA,GAAK,MAAQA,EAAE,EAAGE,GAAK,EAAET,GAAK,OAAO,EAAGU,GAAK,EAAE,EAAED,GAAK,MAAQA,EAAE,EAAI,IAAMD,EAAE,EAAGG,GAAK,EAAE,EAAEF,GAAK,KAAK,EAAI,MAAQC,EAAE,EAAGE,GAAK,EAAE,SAAW,EAAEH,GAAK,KAAK,EAAI,MAAQC,EAAE,EAAGG,GAAK,EAAE,EAAEJ,EAAE,EAAI,UAAY,EAAEA,GAAK,KAAK,EAAI,MAAQC,EAAE,EAAGI,GAAK,EAAE,EAAE,EAAEL,GAAK,KAAK,EAAI,QAAUA,EAAE,EAAI,UAAY,EAAEA,GAAK,KAAK,EAAI,MAAQC,EAAE,EAAGK,GAAK,EAAE,EAAE,EAAEN,GAAK,KAAK,EAAI,QAAUA,EAAE,EAAI,UAAY,EAAEA,GAAK,KAAK,EAAI,MAAQC,EAAE,EAAGM,GAAK,EAAE,EAAE,EAAEP,GAAK,KAAK,EAAI,QAAUA,EAAE,EAAI,UAAYA,GAAK,MAAQC,EAAE,EAAGO,GAAK,EAAE,EAAE,EAAER,GAAK,KAAK,EAAI,QAAUA,EAAE,EAAI,UAAYC,EAAE,EAAGQ,GAAK,EAAE,EAAE,EAAET,GAAK,KAAK,EAAI,QAAUA,EAAE,EAAI,UAAYA,EAAE,EAAGU,GAAK,EAAE,EAAE,EAAEV,GAAK,KAAK,EAAI,QAAUA,EAAE,EAAI,SAAS,EAAGW,GAAK,EAAE,CAACT,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAE,EAAE,KAAK,GAAG,CAAC,EAAGE,GAAK,EAAE,EAAEf,GAAK,IAAML,EAAE,EAAI,GAAG,EACz1B,EAAE,OAASD,GAAK,OAAS,EAAEM,GAAI,GAAI,OAAO,EAAI,GAAG,EAAG,EAAE,EAAEL,GAAK,IAAM,EAAEK,GAAI,EAAE,CAAC,EAAI,GAAG,EACnF,IAAIgB,GAAK,EAAErB,GAAK,IAAM,EAAEK,GAAI,GAAI,UAAU,CAAC,EAC3C,OAAO,EAAE,EAAEL,GAAK,IAAM,EAAEK,GAAI,GAAI,OAAO,CAAC,EAAI,GAAG,EAAG,EAAE,EAAEgB,GAAK,IAAM,EAAE,WAAYjB,EAAE,CAAC,EAAI,GAAG,EAAG,CAC1F,WAAY,IAAI,OAAO,EAAE,MAAOxyB,GAAGkyB,GAAI,aAAa,EAAG,GAAG,EAC1D,aAAc,IAAI,OAAO,EAAE,YAAaO,GAAI,EAAE,EAAG,GAAG,EACpD,SAAU,IAAI,OAAO,EAAE,kBAAmBA,GAAI,EAAE,EAAG,GAAG,EACtD,SAAU,IAAI,OAAO,EAAE,kBAAmBA,GAAI,EAAE,EAAG,GAAG,EACtD,kBAAmB,IAAI,OAAO,EAAE,eAAgBA,GAAI,EAAE,EAAG,GAAG,EAC5D,UAAW,IAAI,OAAO,EAAE,SAAUA,GAAI,GAAI,iBAAkBD,EAAE,EAAG,GAAG,EACpE,aAAc,IAAI,OAAO,EAAE,SAAUC,GAAI,GAAI,gBAAgB,EAAG,GAAG,EACnE,OAAQ,IAAI,OAAO,EAAE,MAAOA,GAAI,EAAE,EAAG,GAAG,EACxC,WAAY,IAAI,OAAOA,GAAI,GAAG,EAC9B,YAAa,IAAI,OAAO,EAAE,SAAUA,GAAIH,EAAE,EAAG,GAAG,EAChD,YAAa,IAAI,OAAOF,GAAI,GAAG,EAC/B,YAAa,IAAI,OAAO,KAAOO,GAAK,IAAI,EACxC,YAAa,IAAI,OAAO,SAAWY,GAAK,IAAM,EAAE,EAAE,eAAiBpB,GAAK,MAAM,EAAI,IAAMqB,GAAK,GAAG,EAAI,QAAQ,CAEpH,CACK,CACD,IAAI,EAAI,EAAE,EAAE,EAAG,EAAI,EAAE,EAAE,EAAG,EAAoB,UAAW,CACvD,SAASzzB,EAAGC,GAAGkyB,GAAI,CACjB,IAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAI,GAAK,OACpC,GAAI,CACF,QAASC,GAAKtyB,GAAE,OAAO,QAAQ,EAAC,EAAIuyB,GAAI,EAAEH,IAAMG,GAAKD,GAAG,KAAM,GAAE,QAAUH,GAAG,KAAKI,GAAG,KAAK,EAAG,EAAEL,IAAMC,GAAG,SAAWD,KAAME,GAAK,GAC5H,CACH,OAAQI,GAAI,CACXH,GAAK,GAAI,GAAKG,EACxB,QAAkB,CACR,GAAI,CACF,CAACJ,IAAME,GAAG,QAAUA,GAAG,OAAM,CACzC,QAAoB,CACR,GAAID,GAAI,MAAM,EACf,CACF,CACD,OAAOF,EACR,CACD,OAAO,SAASnyB,GAAGkyB,GAAI,CACrB,GAAI,MAAM,QAAQlyB,EAAC,EACjB,OAAOA,GACT,GAAI,OAAO,YAAY,OAAOA,EAAC,EAC7B,OAAOD,EAAGC,GAAGkyB,EAAE,EACjB,MAAM,IAAI,UAAU,sDAAsD,CAClF,CACA,IAAS5kG,EAAI,SAASyyE,EAAI,CACpB,GAAI,MAAM,QAAQA,CAAE,EAAG,CACrB,QAASC,GAAI,EAAGkyB,GAAK,MAAMnyB,EAAG,MAAM,EAAGC,GAAID,EAAG,OAAQC,KAAKkyB,GAAGlyB,EAAC,EAAID,EAAGC,EAAC,EACvE,OAAOkyB,EACR,KACC,QAAO,MAAM,KAAKnyB,CAAE,CACvB,EAAEttE,EAAI,WAAYC,EAAI,GAAIC,EAAI,EAAGC,EAAI,GAAIC,EAAI,GAAIoB,EAAI,IAAK,EAAI,GAAIC,EAAI,IAAKC,EAAI,IAAKC,EAAI,QAASC,EAAI,aAAcyB,EAAI,4BAA6BvB,EAAI,CACvJ,SAAU,kDACV,YAAa,iDACb,gBAAiB,eACvB,EAAOC,EAAI9B,EAAIC,EAAG2B,EAAI,KAAK,MAAOG,EAAK,OAAO,aAC1C,SAASC,EAAGqrE,EAAI,CACd,MAAM,IAAI,WAAWxrE,EAAEwrE,CAAE,CAAC,CAC3B,CACD,SAASprE,GAAGorE,EAAIC,GAAG,CACjB,QAASkyB,GAAK,CAAE,EAAEC,GAAKpyB,EAAG,OAAQoyB,MAChCD,GAAGC,EAAE,EAAInyB,GAAED,EAAGoyB,EAAE,CAAC,EACnB,OAAOD,EACR,CACD,SAASt9F,GAAGmrE,EAAIC,GAAG,CACjB,IAAIkyB,GAAKnyB,EAAG,MAAM,GAAG,EAAGoyB,GAAK,GAC7BD,GAAG,OAAS,IAAMC,GAAKD,GAAG,CAAC,EAAI,IAAKnyB,EAAKmyB,GAAG,CAAC,GAAInyB,EAAKA,EAAG,QAAQjqE,EAAG,GAAG,EACvE,IAAIs8F,GAAKryB,EAAG,MAAM,GAAG,EAAGsyB,GAAK19F,GAAGy9F,GAAIpyB,EAAC,EAAE,KAAK,GAAG,EAC/C,OAAOmyB,GAAKE,EACb,CACD,SAASx9F,EAAGkrE,EAAI,CACd,QAASC,GAAI,CAAE,EAAEkyB,GAAK,EAAGC,GAAKpyB,EAAG,OAAQmyB,GAAKC,IAAM,CAClD,IAAIC,GAAKryB,EAAG,WAAWmyB,IAAI,EAC3B,GAAIE,IAAM,OAASA,IAAM,OAASF,GAAKC,GAAI,CACzC,IAAIE,GAAKtyB,EAAG,WAAWmyB,IAAI,GAC1BG,GAAK,QAAU,MAAQryB,GAAE,OAAOoyB,GAAK,OAAS,KAAOC,GAAK,MAAQ,KAAK,GAAKryB,GAAE,KAAKoyB,EAAE,EAAGF,KAC1F,MACClyB,GAAE,KAAKoyB,EAAE,CACZ,CACD,OAAOpyB,EACR,CACD,IAAIlrE,GAAK,SAASkrE,EAAG,CACnB,OAAO,OAAO,cAAc,MAAM,OAAQ1yE,EAAE0yE,CAAC,CAAC,CACpD,EAAOjrE,GAAK,SAASirE,EAAG,CAClB,OAAOA,EAAI,GAAK,GAAKA,EAAI,GAAKA,EAAI,GAAK,GAAKA,EAAI,GAAKA,EAAI,GAAK,GAAKA,EAAI,GAAKttE,CAClF,EAAO4J,EAAI,SAAS0jE,EAAGkyB,GAAI,CACrB,OAAOlyB,EAAI,GAAK,IAAMA,EAAI,MAAQkyB,IAAM,IAAM,EAC/C,EAAE31F,EAAI,SAASyjE,EAAGkyB,GAAIC,GAAI,CACzB,IAAIC,GAAK,EACT,IACEpyB,EAAImyB,GAAK79F,EAAE0rE,EAAI/rE,CAAC,EAAI+rE,GAAK,EAAGA,GAAK1rE,EAAE0rE,EAAIkyB,EAAE,EAEzClyB,EAAIxrE,EAAI5B,GAAK,EACbw/F,IAAM1/F,EAENstE,EAAI1rE,EAAE0rE,EAAIxrE,CAAC,EACb,OAAOF,EAAE89F,IAAM59F,EAAI,GAAKwrE,GAAKA,EAAIntE,EAAE,CACzC,EAAO2J,EAAI,SAASwjE,EAAG,CACjB,IAAIkyB,GAAK,GAAIC,GAAKnyB,EAAE,OAAQoyB,GAAK,EAAGC,GAAKn+F,EAAGw/F,GAAK,EAAGpB,GAAKtyB,EAAE,YAAY7rE,CAAC,EACxEm+F,GAAK,IAAMA,GAAK,GAChB,QAASC,GAAK,EAAGA,GAAKD,GAAI,EAAEC,GAC1BvyB,EAAE,WAAWuyB,EAAE,GAAK,KAAO79F,EAAG,WAAW,EAAGw9F,GAAG,KAAKlyB,EAAE,WAAWuyB,EAAE,CAAC,EACtE,QAASC,GAAKF,GAAK,EAAIA,GAAK,EAAI,EAAGE,GAAKL,IAAM,CAC5C,QACMM,GAAKL,GAAIM,GAAK,EAAGC,GAAKjgG,GAG1BigG,IAAMjgG,EACN,CACA8/F,IAAML,IAAMz9F,EAAG,eAAe,EAC9B,IAAIk+F,GAAK79F,GAAGirE,EAAE,WAAWwyB,IAAI,CAAC,GAC7BI,IAAMlgG,GAAKkgG,GAAKt+F,GAAG7B,EAAI2/F,IAAMM,EAAE,IAAMh+F,EAAG,UAAU,EAAG09F,IAAMQ,GAAKF,GACjE,IAAIG,GAAKF,IAAMe,GAAK/gG,EAAIggG,IAAMe,GAAK9gG,EAAIA,EAAI+/F,GAAKe,GAChD,GAAId,GAAKC,GACP,MACF,IAAIC,GAAKpgG,EAAImgG,GACbH,GAAKp+F,EAAE7B,EAAIqgG,EAAE,GAAKp+F,EAAG,UAAU,EAAGg+F,IAAMI,EACzC,CACD,IAAIC,GAAKb,GAAG,OAAS,EACrBwB,GAAKn3F,EAAE61F,GAAKK,GAAIM,GAAIN,IAAM,CAAC,EAAGn+F,EAAE89F,GAAKW,EAAE,EAAItgG,EAAI4/F,IAAM39F,EAAG,UAAU,EAAG29F,IAAM/9F,EAAE89F,GAAKW,EAAE,EAAGX,IAAMW,GAAIb,GAAG,OAAOE,KAAM,EAAGC,EAAE,CACvH,CACD,OAAO,OAAO,cAAc,MAAM,OAAQH,EAAE,CAClD,EAAOz1F,EAAI,SAASujE,EAAG,CACjB,IAAIkyB,GAAK,GACTlyB,EAAInrE,EAAGmrE,CAAC,EACR,IAAImyB,GAAKnyB,EAAE,OAAQoyB,GAAKl+F,EAAGm+F,GAAK,EAAGqB,GAAK,EAAGpB,GAAK,GAAIC,GAAK,GAAIC,GAAK,OAClE,GAAI,CACF,QAASC,GAAKzyB,EAAE,OAAO,QAAQ,EAAC,EAAI0yB,GAAI,EAAEJ,IAAMI,GAAKD,GAAG,KAAM,GAAE,MAAOH,GAAK,GAAI,CAC9E,IAAIK,GAAKD,GAAG,MACZC,GAAK,KAAOT,GAAG,KAAKz9F,EAAGk+F,EAAE,CAAC,CAC3B,CACF,OAAQgB,GAAI,CACXpB,GAAK,GAAIC,GAAKmB,EACtB,QAAgB,CACR,GAAI,CACF,CAACrB,IAAMG,GAAG,QAAUA,GAAG,OAAM,CACvC,QAAkB,CACR,GAAIF,GACF,MAAMC,EACT,CACF,CACD,IAAII,GAAKV,GAAG,OAAQW,GAAKD,GACzB,IAAKA,IAAMV,GAAG,KAAK/9F,CAAC,EAAG0+F,GAAKV,IAAM,CAChC,IAAIW,GAAKrgG,EAAGsgG,GAAK,GAAIC,GAAK,GAAIC,GAAK,OACnC,GAAI,CACF,QAASC,GAAKlzB,EAAE,OAAO,QAAQ,EAAC,EAAImzB,GAAI,EAAEJ,IAAMI,GAAKD,GAAG,KAAM,GAAE,MAAOH,GAAK,GAAI,CAC9E,IAAIK,GAAKD,GAAG,MACZC,IAAMhB,IAAMgB,GAAKN,KAAOA,GAAKM,GAC9B,CACF,OAAQO,GAAI,CACXX,GAAK,GAAIC,GAAKU,EACxB,QAAkB,CACR,GAAI,CACF,CAACZ,IAAMG,GAAG,QAAUA,GAAG,OAAM,CACzC,QAAoB,CACR,GAAIF,GACF,MAAMC,EACT,CACF,CACD,IAAII,GAAKR,GAAK,EACdC,GAAKV,GAAK99F,GAAG7B,EAAI4/F,IAAMgB,EAAE,GAAK3+F,EAAG,UAAU,EAAG29F,KAAOS,GAAKV,IAAMiB,GAAIjB,GAAKU,GACzE,IAAIQ,GAAK,GAAIC,GAAK,GAAIC,GAAK,OAC3B,GAAI,CACF,QAASC,GAAKzzB,EAAE,OAAO,QAAQ,EAAC,EAAI4zB,GAAI,EAAEN,IAAMM,GAAKH,GAAG,KAAM,GAAE,MAAOH,GAAK,GAAI,CAC9E,IAAIO,GAAKD,GAAG,MACZ,GAAIC,GAAKzB,IAAM,EAAEC,GAAK5/F,GAAKiC,EAAG,UAAU,EAAGm/F,IAAMzB,GAAI,CACnD,QACM0B,GAAKzB,GAAI0B,GAAKrhG,GAGlBqhG,IAAMrhG,EACN,CACA,IAAIshG,GAAKD,IAAML,GAAK/gG,EAAIohG,IAAML,GAAK9gG,EAAIA,EAAImhG,GAAKL,GAChD,GAAII,GAAKE,GACP,MACF,IAAIC,GAAKH,GAAKE,GAAIE,GAAKxhG,EAAIshG,GAC3B9B,GAAG,KAAKz9F,EAAG6H,EAAE03F,GAAKC,GAAKC,GAAI,CAAC,CAAC,CAAC,EAAGJ,GAAKx/F,EAAE2/F,GAAKC,EAAE,CAChD,CACDhC,GAAG,KAAKz9F,EAAG6H,EAAEw3F,GAAI,CAAC,CAAC,CAAC,EAAGJ,GAAKn3F,EAAE81F,GAAIgB,GAAIR,IAAMD,EAAE,EAAGP,GAAK,EAAG,EAAEQ,EAC5D,CACF,CACF,OAAQc,GAAI,CACXJ,GAAK,GAAIC,GAAKG,EACxB,QAAkB,CACR,GAAI,CACF,CAACL,IAAMG,GAAG,QAAUA,GAAG,OAAM,CACzC,QAAoB,CACR,GAAIF,GACF,MAAMC,EACT,CACF,CACD,EAAEnB,GAAI,EAAED,EACT,CACD,OAAOF,GAAG,KAAK,EAAE,CACvB,EAAOv1F,EAAI,SAASqjE,EAAG,CACjB,OAAOprE,GAAGorE,EAAG,SAASkyB,GAAI,CACxB,OAAO99F,EAAE,KAAK89F,EAAE,EAAI11F,EAAE01F,GAAG,MAAM,CAAC,EAAE,YAAa,GAAIA,EAC3D,CAAO,CACP,EAAOt1F,EAAI,SAASojE,EAAG,CACjB,OAAOprE,GAAGorE,EAAG,SAASkyB,GAAI,CACxB,OAAO79F,EAAE,KAAK69F,EAAE,EAAI,OAASz1F,EAAEy1F,EAAE,EAAIA,EAC7C,CAAO,CACF,EAAEr1F,EAAK,CAMN,QAAS,QAQT,KAAM,CACJ,OAAQhI,EACR,OAAQC,EACT,EACD,OAAQ0H,EACR,OAAQC,EACR,QAASG,EACT,UAAWD,CACjB,EAAOG,EAAK,GACR,SAASC,EAAGgjE,EAAI,CACd,IAAIC,GAAID,EAAG,WAAW,CAAC,EAAGmyB,GAAK,OAC/B,OAAOlyB,GAAI,GAAKkyB,GAAK,KAAOlyB,GAAE,SAAS,EAAE,EAAE,YAAa,EAAGA,GAAI,IAAMkyB,GAAK,IAAMlyB,GAAE,SAAS,EAAE,EAAE,YAAW,EAAKA,GAAI,KAAOkyB,GAAK,KAAOlyB,IAAK,EAAI,KAAK,SAAS,EAAE,EAAE,YAAW,EAAK,KAAOA,GAAI,GAAK,KAAK,SAAS,EAAE,EAAE,YAAW,EAAKkyB,GAAK,KAAOlyB,IAAK,GAAK,KAAK,SAAS,EAAE,EAAE,YAAW,EAAK,KAAOA,IAAK,EAAI,GAAK,KAAK,SAAS,EAAE,EAAE,YAAW,EAAK,KAAOA,GAAI,GAAK,KAAK,SAAS,EAAE,EAAE,YAAa,EAAEkyB,EACpY,CACD,SAASl1F,GAAG+iE,EAAI,CACd,QAASC,GAAI,GAAIkyB,GAAK,EAAGC,GAAKpyB,EAAG,OAAQmyB,GAAKC,IAAM,CAClD,IAAIC,GAAK,SAASryB,EAAG,OAAOmyB,GAAK,EAAG,CAAC,EAAG,EAAE,EAC1C,GAAIE,GAAK,IACPpyB,IAAK,OAAO,aAAaoyB,EAAE,EAAGF,IAAM,UAC7BE,IAAM,KAAOA,GAAK,IAAK,CAC9B,GAAID,GAAKD,IAAM,EAAG,CAChB,IAAIG,GAAK,SAAStyB,EAAG,OAAOmyB,GAAK,EAAG,CAAC,EAAG,EAAE,EAC1ClyB,IAAK,OAAO,cAAcoyB,GAAK,KAAO,EAAIC,GAAK,EAAE,CAClD,MACCryB,IAAKD,EAAG,OAAOmyB,GAAI,CAAC,EACtBA,IAAM,CAChB,SAAmBE,IAAM,IAAK,CACpB,GAAID,GAAKD,IAAM,EAAG,CAChB,IAAI,GAAK,SAASnyB,EAAG,OAAOmyB,GAAK,EAAG,CAAC,EAAG,EAAE,EAAGI,GAAK,SAASvyB,EAAG,OAAOmyB,GAAK,EAAG,CAAC,EAAG,EAAE,EACnFlyB,IAAK,OAAO,cAAcoyB,GAAK,KAAO,IAAM,GAAK,KAAO,EAAIE,GAAK,EAAE,CACpE,MACCtyB,IAAKD,EAAG,OAAOmyB,GAAI,CAAC,EACtBA,IAAM,CACP,MACClyB,IAAKD,EAAG,OAAOmyB,GAAI,CAAC,EAAGA,IAAM,CAChC,CACD,OAAOlyB,EACR,CACD,SAAS/iE,GAAG8iE,EAAIC,GAAG,CACjB,SAASkyB,GAAGC,GAAI,CACd,IAAIC,GAAKp1F,GAAGm1F,EAAE,EACd,OAAOC,GAAG,MAAMpyB,GAAE,UAAU,EAAIoyB,GAAKD,EACtC,CACD,OAAOpyB,EAAG,SAAWA,EAAG,OAAS,OAAOA,EAAG,MAAM,EAAE,QAAQC,GAAE,YAAakyB,EAAE,EAAE,YAAa,EAAC,QAAQlyB,GAAE,WAAY,EAAE,GAAID,EAAG,WAAa,SAAWA,EAAG,SAAW,OAAOA,EAAG,QAAQ,EAAE,QAAQC,GAAE,YAAakyB,EAAE,EAAE,QAAQlyB,GAAE,aAAcjjE,CAAE,EAAE,QAAQijE,GAAE,YAAatzE,CAAC,GAAIqzE,EAAG,OAAS,SAAWA,EAAG,KAAO,OAAOA,EAAG,IAAI,EAAE,QAAQC,GAAE,YAAakyB,EAAE,EAAE,YAAW,EAAG,QAAQlyB,GAAE,SAAUjjE,CAAE,EAAE,QAAQijE,GAAE,YAAatzE,CAAC,GAAIqzE,EAAG,OAAS,SAAWA,EAAG,KAAO,OAAOA,EAAG,IAAI,EAAE,QAAQC,GAAE,YAAakyB,EAAE,EAAE,QAAQnyB,EAAG,OAASC,GAAE,SAAWA,GAAE,kBAAmBjjE,CAAE,EAAE,QAAQijE,GAAE,YAAatzE,CAAC,GAAIqzE,EAAG,QAAU,SAAWA,EAAG,MAAQ,OAAOA,EAAG,KAAK,EAAE,QAAQC,GAAE,YAAakyB,EAAE,EAAE,QAAQlyB,GAAE,UAAWjjE,CAAE,EAAE,QAAQijE,GAAE,YAAatzE,CAAC,GAAIqzE,EAAG,WAAa,SAAWA,EAAG,SAAW,OAAOA,EAAG,QAAQ,EAAE,QAAQC,GAAE,YAAakyB,EAAE,EAAE,QAAQlyB,GAAE,aAAcjjE,CAAE,EAAE,QAAQijE,GAAE,YAAatzE,CAAC,GAAIqzE,CAC70B,CACD,SAAS7iE,GAAG6iE,EAAI,CACd,OAAOA,EAAG,QAAQ,UAAW,IAAI,GAAK,GACvC,CACD,SAAS5iE,GAAG4iE,EAAIC,GAAG,CACjB,IAAIkyB,GAAKnyB,EAAG,MAAMC,GAAE,WAAW,GAAK,CAAE,EAAEmyB,GAAK,EAAED,GAAI,CAAC,EAAGE,GAAKD,GAAG,CAAC,EAChE,OAAOC,GAAKA,GAAG,MAAM,GAAG,EAAE,IAAIl1F,EAAE,EAAE,KAAK,GAAG,EAAI6iE,CAC/C,CACD,SAAS3iE,EAAG2iE,EAAIC,GAAG,CACjB,IAAIkyB,GAAKnyB,EAAG,MAAMC,GAAE,WAAW,GAAK,GAAImyB,GAAK,EAAED,GAAI,CAAC,EAAGE,GAAKD,GAAG,CAAC,EAAGE,GAAKF,GAAG,CAAC,EAC5E,GAAIC,GAAI,CACN,QAAS,GAAKA,GAAG,YAAa,EAAC,MAAM,IAAI,EAAE,QAAS,EAAEE,GAAK,EAAE,GAAI,CAAC,EAAGC,GAAKD,GAAG,CAAC,EAAGE,GAAKF,GAAG,CAAC,EAAGG,GAAKD,GAAKA,GAAG,MAAM,GAAG,EAAE,IAAIt1F,EAAE,EAAI,GAAIw1F,GAAKH,GAAG,MAAM,GAAG,EAAE,IAAIr1F,EAAE,EAAGy1F,GAAK3yB,GAAE,YAAY,KAAK0yB,GAAGA,GAAG,OAAS,CAAC,CAAC,EAAGE,GAAKD,GAAK,EAAI,EAAGE,GAAKH,GAAG,OAASE,GAAIE,GAAK,MAAMF,EAAE,EAAGG,GAAK,EAAGA,GAAKH,GAAI,EAAEG,GAClRD,GAAGC,EAAE,EAAIN,GAAGM,EAAE,GAAKL,GAAGG,GAAKE,EAAE,GAAK,GACpCJ,KAAOG,GAAGF,GAAK,CAAC,EAAIz1F,GAAG21F,GAAGF,GAAK,CAAC,EAAG5yB,EAAC,GACpC,IAAIgzB,GAAKF,GAAG,OAAO,SAASO,GAAIC,GAAIC,GAAI,CACtC,GAAI,CAACD,IAAMA,KAAO,IAAK,CACrB,IAAIE,GAAKH,GAAGA,GAAG,OAAS,CAAC,EACzBG,IAAMA,GAAG,MAAQA,GAAG,SAAWD,GAAKC,GAAG,SAAWH,GAAG,KAAK,CAAE,MAAOE,GAAI,OAAQ,CAAC,CAAE,CACnF,CACD,OAAOF,EACjB,EAAW,EAAE,EAAGJ,GAAKD,GAAG,KAAK,SAASK,GAAIC,GAAI,CACpC,OAAOA,GAAG,OAASD,GAAG,MACvB,GAAE,CAAC,EAAGH,GAAK,OACZ,GAAID,IAAMA,GAAG,OAAS,EAAG,CACvB,IAAIE,GAAKL,GAAG,MAAM,EAAGG,GAAG,KAAK,EAAGG,GAAKN,GAAG,MAAMG,GAAG,MAAQA,GAAG,MAAM,EAClEC,GAAKC,GAAG,KAAK,GAAG,EAAI,KAAOC,GAAG,KAAK,GAAG,CACvC,MACCF,GAAKJ,GAAG,KAAK,GAAG,EAClB,OAAOT,KAAOa,IAAM,IAAMb,IAAKa,EAChC,KACC,QAAOnzB,CACV,CACD,IAAI1iE,EAAK,kIAAmIC,GAAK,GAAG,MAAM,OAAO,EAAE,CAAC,IAAM,OAC1K,SAASC,GAAGwiE,EAAI,CACd,IAAIC,GAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,GAAIkyB,GAAK,CAAE,EAAEC,GAAKnyB,GAAE,MAAQ,GAAK,EAAI,EAC9GA,GAAE,YAAc,WAAaD,GAAMC,GAAE,OAASA,GAAE,OAAS,IAAM,IAAM,KAAOD,GAC5E,IAAIqyB,GAAKryB,EAAG,MAAM1iE,CAAE,EACpB,GAAI+0F,GAAI,CACN90F,IAAM40F,GAAG,OAASE,GAAG,CAAC,EAAGF,GAAG,SAAWE,GAAG,CAAC,EAAGF,GAAG,KAAOE,GAAG,CAAC,EAAGF,GAAG,KAAO,SAASE,GAAG,CAAC,EAAG,EAAE,EAAGF,GAAG,KAAOE,GAAG,CAAC,GAAK,GAAIF,GAAG,MAAQE,GAAG,CAAC,EAAGF,GAAG,SAAWE,GAAG,CAAC,EAAG,MAAMF,GAAG,IAAI,IAAMA,GAAG,KAAOE,GAAG,CAAC,KAAOF,GAAG,OAASE,GAAG,CAAC,GAAK,OAAQF,GAAG,SAAWnyB,EAAG,QAAQ,GAAG,IAAM,GAAKqyB,GAAG,CAAC,EAAI,OAAQF,GAAG,KAAOnyB,EAAG,QAAQ,IAAI,IAAM,GAAKqyB,GAAG,CAAC,EAAI,OAAQF,GAAG,KAAO,SAASE,GAAG,CAAC,EAAG,EAAE,EAAGF,GAAG,KAAOE,GAAG,CAAC,GAAK,GAAIF,GAAG,MAAQnyB,EAAG,QAAQ,GAAG,IAAM,GAAKqyB,GAAG,CAAC,EAAI,OAAQF,GAAG,SAAWnyB,EAAG,QAAQ,GAAG,IAAM,GAAKqyB,GAAG,CAAC,EAAI,OAAQ,MAAMF,GAAG,IAAI,IAAMA,GAAG,KAAOnyB,EAAG,MAAM,+BAA+B,EAAIqyB,GAAG,CAAC,EAAI,SAAUF,GAAG,OAASA,GAAG,KAAO90F,EAAGD,GAAG+0F,GAAG,KAAMC,EAAE,EAAGA,EAAE,GAAID,GAAG,SAAW,QAAUA,GAAG,WAAa,QAAUA,GAAG,OAAS,QAAUA,GAAG,OAAS,QAAU,CAACA,GAAG,MAAQA,GAAG,QAAU,OAASA,GAAG,UAAY,gBAAkBA,GAAG,SAAW,OAASA,GAAG,UAAY,WAAaA,GAAG,WAAa,OAASA,GAAG,UAAY,WAAaA,GAAG,UAAY,MAAOlyB,GAAE,WAAaA,GAAE,YAAc,UAAYA,GAAE,YAAckyB,GAAG,YAAcA,GAAG,MAAQA,GAAG,OAAS,gBAAkBlyB,GAAE,UAAY,eAC1hC,IAAIqyB,GAAKv1F,GAAIkjE,GAAE,QAAUkyB,GAAG,QAAU,IAAI,YAAW,CAAE,EACvD,GAAI,CAAClyB,GAAE,iBAAmB,CAACqyB,IAAM,CAACA,GAAG,gBAAiB,CACpD,GAAIH,GAAG,OAASlyB,GAAE,YAAcqyB,IAAMA,GAAG,YACvC,GAAI,CACFH,GAAG,KAAOr1F,EAAG,QAAQq1F,GAAG,KAAK,QAAQC,GAAG,YAAan1F,EAAE,EAAE,YAAa,EACvE,OAAQ,GAAI,CACXk1F,GAAG,MAAQA,GAAG,OAAS,kEAAoE,EAC5F,CACHj1F,GAAGi1F,GAAI,CAAC,CACT,MACCj1F,GAAGi1F,GAAIC,EAAE,EACXE,IAAMA,GAAG,OAASA,GAAG,MAAMH,GAAIlyB,EAAC,CACjC,MACCkyB,GAAG,MAAQA,GAAG,OAAS,yBACzB,OAAOA,EACR,CACD,SAAS10F,GAAGuiE,EAAIC,GAAG,CACjB,IAAIkyB,GAAKlyB,GAAE,MAAQ,GAAK,EAAI,EAAGmyB,GAAK,GACpC,OAAOpyB,EAAG,WAAa,SAAWoyB,GAAG,KAAKpyB,EAAG,QAAQ,EAAGoyB,GAAG,KAAK,GAAG,GAAIpyB,EAAG,OAAS,QAAUoyB,GAAG,KAAK/0F,EAAGD,GAAG,OAAO4iE,EAAG,IAAI,EAAGmyB,EAAE,EAAGA,EAAE,EAAE,QAAQA,GAAG,YAAa,SAASE,GAAIC,GAAI,GAAI,CAChL,MAAO,IAAMA,IAAM,GAAK,MAAQ,GAAK,IAAM,GAC5C,EAAC,GAAI,OAAOtyB,EAAG,MAAQ,UAAY,OAAOA,EAAG,MAAQ,YAAcoyB,GAAG,KAAK,GAAG,EAAGA,GAAG,KAAK,OAAOpyB,EAAG,IAAI,CAAC,GAAIoyB,GAAG,OAASA,GAAG,KAAK,EAAE,EAAI,MACxI,CACD,IAAI10F,GAAK,WAAYupB,GAAK,cAAeC,GAAK,gBAAiBC,GAAK,yBACpE,SAASC,GAAG44C,EAAI,CACd,QAASC,GAAI,GAAID,EAAG,QAClB,GAAIA,EAAG,MAAMtiE,EAAE,EACbsiE,EAAKA,EAAG,QAAQtiE,GAAI,EAAE,UACfsiE,EAAG,MAAM/4C,EAAE,EAClB+4C,EAAKA,EAAG,QAAQ/4C,GAAI,GAAG,UAChB+4C,EAAG,MAAM94C,EAAE,EAClB84C,EAAKA,EAAG,QAAQ94C,GAAI,GAAG,EAAG+4C,GAAE,cACrBD,IAAO,KAAOA,IAAO,KAC5BA,EAAK,OACF,CACH,IAAImyB,GAAKnyB,EAAG,MAAM74C,EAAE,EACpB,GAAIgrE,GAAI,CACN,IAAIC,GAAKD,GAAG,CAAC,EACbnyB,EAAKA,EAAG,MAAMoyB,GAAG,MAAM,EAAGnyB,GAAE,KAAKmyB,EAAE,CACpC,KACC,OAAM,IAAI,MAAM,kCAAkC,CACrD,CACH,OAAOnyB,GAAE,KAAK,EAAE,CACjB,CACD,SAAS54C,GAAG24C,EAAI,CACd,IAAIC,GAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,CAAE,EAAEkyB,GAAKlyB,GAAE,IAAM,EAAI,EAAGmyB,GAAK,GAAIC,GAAKt1F,GAAIkjE,GAAE,QAAUD,EAAG,QAAU,IAAI,YAAa,GAC7J,GAAIqyB,IAAMA,GAAG,WAAaA,GAAG,UAAUryB,EAAIC,EAAC,EAAGD,EAAG,MAAQ,CAACmyB,GAAG,YAAY,KAAKnyB,EAAG,IAAI,IAChFC,GAAE,YAAcoyB,IAAMA,GAAG,YAC3B,GAAI,CACFryB,EAAG,KAAOC,GAAE,IAAMnjE,EAAG,UAAUkjE,EAAG,IAAI,EAAIljE,EAAG,QAAQkjE,EAAG,KAAK,QAAQmyB,GAAG,YAAal1F,EAAE,EAAE,YAAW,CAAE,CACvG,OAAQs1F,GAAI,CACXvyB,EAAG,MAAQA,EAAG,OAAS,+CAAiDC,GAAE,IAAM,UAAY,SAAW,kBAAoBsyB,EAC5H,CAELr1F,GAAG8iE,EAAImyB,EAAE,EAAGlyB,GAAE,YAAc,UAAYD,EAAG,SAAWoyB,GAAG,KAAKpyB,EAAG,MAAM,EAAGoyB,GAAG,KAAK,GAAG,GACrF,IAAIE,GAAK70F,GAAGuiE,EAAIC,EAAC,EACjB,GAAIqyB,KAAO,SAAWryB,GAAE,YAAc,UAAYmyB,GAAG,KAAK,IAAI,EAAGA,GAAG,KAAKE,EAAE,EAAGtyB,EAAG,MAAQA,EAAG,KAAK,OAAO,CAAC,IAAM,KAAOoyB,GAAG,KAAK,GAAG,GAAIpyB,EAAG,OAAS,OAAQ,CACvJ,IAAI,GAAKA,EAAG,KACZ,CAACC,GAAE,eAAiB,CAACoyB,IAAM,CAACA,GAAG,gBAAkB,GAAKjrE,GAAG,EAAE,GAAIkrE,KAAO,SAAW,GAAK,GAAG,QAAQ,QAAS,MAAM,GAAIF,GAAG,KAAK,EAAE,CAC/H,CACD,OAAOpyB,EAAG,QAAU,SAAWoyB,GAAG,KAAK,GAAG,EAAGA,GAAG,KAAKpyB,EAAG,KAAK,GAAIA,EAAG,WAAa,SAAWoyB,GAAG,KAAK,GAAG,EAAGA,GAAG,KAAKpyB,EAAG,QAAQ,GAAIoyB,GAAG,KAAK,EAAE,CAC5I,CACD,SAAS9qE,GAAG04C,EAAIC,GAAG,CACjB,IAAIkyB,GAAK,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,GAAIC,GAAK,UAAU,CAAC,EAAGC,GAAK,GACtG,OAAOD,KAAOpyB,EAAKxiE,GAAG6pB,GAAG24C,EAAImyB,EAAE,EAAGA,EAAE,EAAGlyB,GAAIziE,GAAG6pB,GAAG44C,GAAGkyB,EAAE,EAAGA,EAAE,GAAIA,GAAKA,IAAM,CAAE,EAAE,CAACA,GAAG,UAAYlyB,GAAE,QAAUoyB,GAAG,OAASpyB,GAAE,OAAQoyB,GAAG,SAAWpyB,GAAE,SAAUoyB,GAAG,KAAOpyB,GAAE,KAAMoyB,GAAG,KAAOpyB,GAAE,KAAMoyB,GAAG,KAAOjrE,GAAG64C,GAAE,MAAQ,EAAE,EAAGoyB,GAAG,MAAQpyB,GAAE,QAAUA,GAAE,WAAa,QAAUA,GAAE,OAAS,QAAUA,GAAE,OAAS,QAAUoyB,GAAG,SAAWpyB,GAAE,SAAUoyB,GAAG,KAAOpyB,GAAE,KAAMoyB,GAAG,KAAOpyB,GAAE,KAAMoyB,GAAG,KAAOjrE,GAAG64C,GAAE,MAAQ,EAAE,EAAGoyB,GAAG,MAAQpyB,GAAE,QAAUA,GAAE,MAAQA,GAAE,KAAK,OAAO,CAAC,IAAM,IAAMoyB,GAAG,KAAOjrE,GAAG64C,GAAE,IAAI,IAAMD,EAAG,WAAa,QAAUA,EAAG,OAAS,QAAUA,EAAG,OAAS,SAAW,CAACA,EAAG,KAAOqyB,GAAG,KAAO,IAAMpyB,GAAE,KAAOD,EAAG,KAAOqyB,GAAG,KAAOryB,EAAG,KAAK,MAAM,EAAGA,EAAG,KAAK,YAAY,GAAG,EAAI,CAAC,EAAIC,GAAE,KAAOoyB,GAAG,KAAOpyB,GAAE,KAAMoyB,GAAG,KAAOjrE,GAAGirE,GAAG,IAAI,GAAIA,GAAG,MAAQpyB,GAAE,QAAUoyB,GAAG,KAAOryB,EAAG,KAAMC,GAAE,QAAU,OAASoyB,GAAG,MAAQpyB,GAAE,MAAQoyB,GAAG,MAAQryB,EAAG,OAAQqyB,GAAG,SAAWryB,EAAG,SAAUqyB,GAAG,KAAOryB,EAAG,KAAMqyB,GAAG,KAAOryB,EAAG,MAAOqyB,GAAG,OAASryB,EAAG,QAASqyB,GAAG,SAAWpyB,GAAE,SAAUoyB,EACr6B,CACD,SAAS/rE,GAAG05C,EAAIC,GAAGkyB,GAAI,CACrB,IAAIC,GAAK,EAAE,CAAE,OAAQ,MAAM,EAAID,EAAE,EACjC,OAAO9qE,GAAGC,GAAG9pB,GAAGwiE,EAAIoyB,EAAE,EAAG50F,GAAGyiE,GAAGmyB,EAAE,EAAGA,GAAI,EAAE,EAAGA,EAAE,CAChD,CACD,SAAS7rE,GAAGy5C,EAAIC,GAAG,CACjB,OAAO,OAAOD,GAAM,SAAWA,EAAK34C,GAAG7pB,GAAGwiE,EAAIC,EAAC,EAAGA,EAAC,EAAIvzE,EAAEszE,CAAE,IAAM,WAAaA,EAAKxiE,GAAG6pB,GAAG24C,EAAIC,EAAC,EAAGA,EAAC,GAAID,CACvG,CACD,SAASx5C,GAAGw5C,EAAIC,GAAGkyB,GAAI,CACrB,OAAO,OAAOnyB,GAAM,SAAWA,EAAK34C,GAAG7pB,GAAGwiE,EAAImyB,EAAE,EAAGA,EAAE,EAAIzlG,EAAEszE,CAAE,IAAM,WAAaA,EAAK34C,GAAG24C,EAAImyB,EAAE,GAAI,OAAOlyB,IAAK,SAAWA,GAAI54C,GAAG7pB,GAAGyiE,GAAGkyB,EAAE,EAAGA,EAAE,EAAIzlG,EAAEuzE,EAAC,IAAM,WAAaA,GAAI54C,GAAG44C,GAAGkyB,EAAE,GAAInyB,IAAOC,EAC/L,CACD,SAASx5C,GAAGu5C,EAAIC,GAAG,CACjB,OAAOD,GAAMA,EAAG,SAAU,EAAC,QAAQ,CAACC,IAAK,CAACA,GAAE,IAAM,EAAE,OAAS,EAAE,OAAQjjE,CAAE,CAC1E,CACD,SAAS0pB,GAAGs5C,EAAIC,GAAG,CACjB,OAAOD,GAAMA,EAAG,SAAU,EAAC,QAAQ,CAACC,IAAK,CAACA,GAAE,IAAM,EAAE,YAAc,EAAE,YAAahjE,EAAE,CACpF,CACD,IAAI0pB,GAAK,CACP,OAAQ,OACR,WAAY,GACZ,MAAO,SAASs5C,EAAGkyB,GAAI,CACrB,OAAOlyB,EAAE,OAASA,EAAE,MAAQA,EAAE,OAAS,+BAAgCA,CACxE,EACD,UAAW,SAASA,EAAGkyB,GAAI,CACzB,IAAIC,GAAK,OAAOnyB,EAAE,MAAM,EAAE,YAAa,IAAK,QAC5C,OAAQA,EAAE,QAAUmyB,GAAK,IAAM,KAAOnyB,EAAE,OAAS,MAAQA,EAAE,KAAO,QAASA,EAAE,OAASA,EAAE,KAAO,KAAMA,CACtG,CACF,EAAEr5C,GAAK,CACN,OAAQ,QACR,WAAYD,GAAG,WACf,MAAOA,GAAG,MACV,UAAWA,GAAG,SACpB,EACI,SAASE,GAAGm5C,EAAI,CACd,OAAO,OAAOA,EAAG,QAAU,UAAYA,EAAG,OAAS,OAAOA,EAAG,MAAM,EAAE,YAAW,IAAO,KACxF,CACD,IAAIl5C,GAAK,CACP,OAAQ,KACR,WAAY,GACZ,MAAO,SAASm5C,EAAGkyB,GAAI,CACrB,IAAIC,GAAKnyB,EACT,OAAOmyB,GAAG,OAASvrE,GAAGurE,EAAE,EAAGA,GAAG,cAAgBA,GAAG,MAAQ,MAAQA,GAAG,MAAQ,IAAMA,GAAG,MAAQ,IAAKA,GAAG,KAAO,OAAQA,GAAG,MAAQ,OAAQA,EACxI,EACD,UAAW,SAASnyB,EAAGkyB,GAAI,CACzB,IAAKlyB,EAAE,QAAUp5C,GAAGo5C,CAAC,EAAI,IAAM,KAAOA,EAAE,OAAS,MAAQA,EAAE,KAAO,QAAS,OAAOA,EAAE,QAAU,YAAcA,EAAE,OAASA,EAAE,OAAS,MAAQ,KAAMA,EAAE,OAAS,QAASA,EAAE,aAAc,CAClL,IAAImyB,GAAKnyB,EAAE,aAAa,MAAM,GAAG,EAAGoyB,GAAK,EAAED,GAAI,CAAC,EAAGE,GAAKD,GAAG,CAAC,EAAGsB,GAAKtB,GAAG,CAAC,EACxEpyB,EAAE,KAAOqyB,IAAMA,KAAO,IAAMA,GAAK,OAAQryB,EAAE,MAAQ0zB,GAAI1zB,EAAE,aAAe,MACzE,CACD,OAAOA,EAAE,SAAW,OAAQA,CAC7B,CACF,EAAEl5C,GAAK,CACN,OAAQ,MACR,WAAYD,GAAG,WACf,MAAOA,GAAG,MACV,UAAWA,GAAG,SACpB,EAAOE,GAAK,GAAI0J,GAAK,mGAAoGsuC,GAAK,cAAeC,GAAK,EAAE,EAAE,UAAYD,GAAK,IAAMA,GAAKA,GAAK,IAAMA,GAAKA,EAAE,EAAI,IAAM,EAAE,cAAgBA,GAAK,IAAMA,GAAKA,EAAE,EAAI,IAAM,EAAE,IAAMA,GAAKA,EAAE,CAAC,EAAGE,GAAK,wDAAyDC,GAAK,6DAA8DC,GAAK,EAAED,GAAI,WAAW,EAAGJ,GAAK,sCAAuCM,GAAK,IAAI,OAAO3uC,GAAI,GAAG,EAAG4uC,GAAK,IAAI,OAAOL,GAAI,GAAG,EAAGM,GAAK,IAAI,OAAO,EAAE,MAAOL,GAAI,QAAS,QAASE,EAAE,EAAG,GAAG,EAAGI,GAAK,IAAI,OAAO,EAAE,MAAO9uC,GAAIquC,EAAE,EAAG,GAAG,EAAGU,GAAKD,GAC5mB,SAASE,GAAGM,EAAI,CACd,IAAIC,GAAIhjE,GAAG+iE,CAAE,EACb,OAAOC,GAAE,MAAMZ,EAAE,EAAIY,GAAID,CAC1B,CACD,IAAIL,GAAK,CACP,OAAQ,SACR,MAAO,SAASM,EAAGkyB,GAAI,CACrB,IAAIC,GAAKnyB,EAAGoyB,GAAKD,GAAG,GAAKA,GAAG,KAAOA,GAAG,KAAK,MAAM,GAAG,EAAI,GACxD,GAAIA,GAAG,KAAO,OAAQA,GAAG,MAAO,CAC9B,QAASE,GAAK,GAAIqB,GAAK,GAAIpB,GAAKH,GAAG,MAAM,MAAM,GAAG,EAAGI,GAAK,EAAGC,GAAKF,GAAG,OAAQC,GAAKC,GAAI,EAAED,GAAI,CAC1F,IAAIE,GAAKH,GAAGC,EAAE,EAAE,MAAM,GAAG,EACzB,OAAQE,GAAG,CAAC,EAAC,CACX,IAAK,KACH,QAASC,GAAKD,GAAG,CAAC,EAAE,MAAM,GAAG,EAAGE,GAAK,EAAGC,GAAKF,GAAG,OAAQC,GAAKC,GAAI,EAAED,GACjEP,GAAG,KAAKM,GAAGC,EAAE,CAAC,EAChB,MACF,IAAK,UACHR,GAAG,QAAU1rE,GAAGgsE,GAAG,CAAC,EAAGP,EAAE,EACzB,MACF,IAAK,OACHC,GAAG,KAAO1rE,GAAGgsE,GAAG,CAAC,EAAGP,EAAE,EACtB,MACF,QACEG,GAAK,GAAIqB,GAAGjtE,GAAGgsE,GAAG,CAAC,EAAGP,EAAE,CAAC,EAAIzrE,GAAGgsE,GAAG,CAAC,EAAGP,EAAE,EACzC,KACH,CACF,CACDG,KAAOF,GAAG,QAAUuB,GACrB,CACDvB,GAAG,MAAQ,OACX,QAASU,GAAK,EAAGC,GAAKV,GAAG,OAAQS,GAAKC,GAAI,EAAED,GAAI,CAC9C,IAAIE,GAAKX,GAAGS,EAAE,EAAE,MAAM,GAAG,EACzB,GAAIE,GAAG,CAAC,EAAItsE,GAAGssE,GAAG,CAAC,CAAC,EAAGb,GAAG,eACxBa,GAAG,CAAC,EAAItsE,GAAGssE,GAAG,CAAC,EAAGb,EAAE,EAAE,kBAEtB,IAAI,CACFa,GAAG,CAAC,EAAIl2F,EAAG,QAAQ4pB,GAAGssE,GAAG,CAAC,EAAGb,EAAE,EAAE,YAAa,EAC/C,OAAQc,GAAI,CACXb,GAAG,MAAQA,GAAG,OAAS,2EAA6Ea,EACrG,CACHZ,GAAGS,EAAE,EAAIE,GAAG,KAAK,GAAG,CACrB,CACD,OAAOZ,EACR,EACD,UAAW,SAASnyB,EAAGkyB,GAAI,CACzB,IAAIC,GAAKnyB,EAAGoyB,GAAK,EAAEpyB,EAAE,EAAE,EACvB,GAAIoyB,GAAI,CACN,QAASC,GAAK,EAAGqB,GAAKtB,GAAG,OAAQC,GAAKqB,GAAI,EAAErB,GAAI,CAC9C,IAAIC,GAAK,OAAOF,GAAGC,EAAE,CAAC,EAAGE,GAAKD,GAAG,YAAY,GAAG,EAAGE,GAAKF,GAAG,MAAM,EAAGC,EAAE,EAAE,QAAQlzB,GAAII,EAAE,EAAE,QAAQJ,GAAI3yE,CAAC,EAAE,QAAQ4yE,GAAIviE,CAAE,EAAG01F,GAAKH,GAAG,MAAMC,GAAK,CAAC,EAC5I,GAAI,CACFE,GAAKP,GAAG,IAAMr1F,EAAG,UAAU41F,EAAE,EAAI51F,EAAG,QAAQ4pB,GAAGgsE,GAAIP,EAAE,EAAE,YAAa,EACrE,OAAQW,GAAI,CACXV,GAAG,MAAQA,GAAG,OAAS,wDAA0DD,GAAG,IAAM,UAAY,SAAW,kBAAoBW,EACtI,CACDT,GAAGC,EAAE,EAAIG,GAAK,IAAMC,EACrB,CACDN,GAAG,KAAOC,GAAG,KAAK,GAAG,CACtB,CACD,IAAIM,GAAK1yB,EAAE,QAAUA,EAAE,SAAW,GAClCA,EAAE,UAAY0yB,GAAG,QAAU1yB,EAAE,SAAUA,EAAE,OAAS0yB,GAAG,KAAO1yB,EAAE,MAC9D,IAAI2yB,GAAK,GACT,QAASC,MAAMF,GACbA,GAAGE,EAAE,IAAM7rE,GAAG6rE,EAAE,GAAKD,GAAG,KAAKC,GAAG,QAAQvzB,GAAII,EAAE,EAAE,QAAQJ,GAAI3yE,CAAC,EAAE,QAAQ6yE,GAAIxiE,CAAE,EAAI,IAAM21F,GAAGE,EAAE,EAAE,QAAQvzB,GAAII,EAAE,EAAE,QAAQJ,GAAI3yE,CAAC,EAAE,QAAQ8yE,GAAIziE,CAAE,CAAC,EAC9I,OAAO41F,GAAG,SAAWR,GAAG,MAAQQ,GAAG,KAAK,GAAG,GAAIR,EAChD,CACP,EAAOxyB,GAAK,kBAAmBC,GAAK,CAC9B,OAAQ,MACR,MAAO,SAASI,EAAGkyB,GAAI,CACrB,IAAIC,GAAKnyB,EAAE,MAAQA,EAAE,KAAK,MAAML,EAAE,EAAGyyB,GAAKpyB,EAC1C,GAAImyB,GAAI,CACN,IAAIE,GAAKH,GAAG,QAAUE,GAAG,QAAU,MAAOsB,GAAKvB,GAAG,CAAC,EAAE,YAAW,EAAIG,GAAKH,GAAG,CAAC,EAAGI,GAAKF,GAAK,KAAOH,GAAG,KAAOwB,IAAKlB,GAAK11F,EAAGy1F,EAAE,EAC1HH,GAAG,IAAMsB,GAAItB,GAAG,IAAME,GAAIF,GAAG,KAAO,OAAQI,KAAOJ,GAAKI,GAAG,MAAMJ,GAAIF,EAAE,EACxE,MACCE,GAAG,MAAQA,GAAG,OAAS,yBACzB,OAAOA,EACR,EACD,UAAW,SAASpyB,EAAGkyB,GAAI,CACzB,IAAIC,GAAKD,GAAG,QAAUlyB,EAAE,QAAU,MAAOoyB,GAAKpyB,EAAE,IAAKqyB,GAAKF,GAAK,KAAOD,GAAG,KAAOE,IAAKsB,GAAK52F,EAAGu1F,EAAE,EAC/FqB,KAAO1zB,EAAI0zB,GAAG,UAAU1zB,EAAGkyB,EAAE,GAC7B,IAAII,GAAKtyB,EAAGuyB,GAAKvyB,EAAE,IACnB,OAAOsyB,GAAG,MAAQF,IAAMF,GAAG,KAAO,IAAMK,GAAID,EAC7C,CACP,EAAOzyB,GAAK,2DAA4DC,GAAK,CACvE,OAAQ,WACR,MAAO,SAASE,EAAGkyB,GAAI,CACrB,IAAIC,GAAKnyB,EACT,OAAOmyB,GAAG,KAAOA,GAAG,IAAKA,GAAG,IAAM,OAAQ,CAACD,GAAG,WAAa,CAACC,GAAG,MAAQ,CAACA,GAAG,KAAK,MAAMtyB,EAAE,KAAOsyB,GAAG,MAAQA,GAAG,OAAS,sBAAuBA,EAC9I,EACD,UAAW,SAASnyB,EAAGkyB,GAAI,CACzB,IAAIC,GAAKnyB,EACT,OAAOmyB,GAAG,KAAOnyB,EAAE,MAAQ,IAAI,YAAa,EAAEmyB,EAC/C,CACP,EACIr1F,EAAG4pB,GAAG,MAAM,EAAIA,GAAI5pB,EAAG6pB,GAAG,MAAM,EAAIA,GAAI7pB,EAAG+pB,GAAG,MAAM,EAAIA,GAAI/pB,EAAGgqB,GAAG,MAAM,EAAIA,GAAIhqB,EAAG4iE,GAAG,MAAM,EAAIA,GAAI5iE,EAAG8iE,GAAG,MAAM,EAAIA,GAAI9iE,EAAGgjE,GAAG,MAAM,EAAIA,GAAI,EAAE,QAAUhjE,EAAI,EAAE,WAAaC,EAAI,EAAE,YAAcC,GAAI,EAAE,MAAQO,GAAI,EAAE,kBAAoB4pB,GAAI,EAAE,UAAYC,GAAI,EAAE,kBAAoBC,GAAI,EAAE,QAAUhB,GAAI,EAAE,UAAYC,GAAI,EAAE,MAAQC,GAAI,EAAE,gBAAkBC,GAAI,EAAE,kBAAoBC,GAAI,OAAO,eAAe,EAAG,aAAc,CAAE,MAAO,EAAE,CAAE,CACjb,CAAG,CACH,GAAGwrE,GAAIA,GAAG,OAAO,EACjB,IAAIkC,IAAKlC,GAAG,QACZ,OAAO,eAAeD,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMoC,IAAKD,IACXC,IAAG,KAAO,0CACVpC,GAAG,QAAUoC,KACZ,SAAStnG,EAAG,CACX,OAAO,eAAeA,EAAG,aAAc,CAAE,MAAO,GAAI,EAAGA,EAAE,QAAUA,EAAE,KAAOA,EAAE,IAAMA,EAAE,UAAYA,EAAE,IAAMA,EAAE,EAAIA,EAAE,WAAa,OAC/H,IAAI,EAAIk4F,GACR,OAAO,eAAel4F,EAAG,aAAc,CAAE,WAAY,GAAI,IAAK,UAAW,CACvE,OAAO,EAAE,UACV,EAAE,EACH,IAAI,EAAIq4F,GACR,OAAO,eAAer4F,EAAG,IAAK,CAAE,WAAY,GAAI,IAAK,UAAW,CAC9D,OAAO,EAAE,CACb,EAAK,EAAG,OAAO,eAAeA,EAAG,MAAO,CAAE,WAAY,GAAI,IAAK,UAAW,CACtE,OAAO,EAAE,GACb,EAAK,EAAG,OAAO,eAAeA,EAAG,YAAa,CAAE,WAAY,GAAI,IAAK,UAAW,CAC5E,OAAO,EAAE,SACb,EAAK,EAAG,OAAO,eAAeA,EAAG,MAAO,CAAE,WAAY,GAAI,IAAK,UAAW,CACtE,OAAO,EAAE,GACb,EAAK,EAAG,OAAO,eAAeA,EAAG,OAAQ,CAAE,WAAY,GAAI,IAAK,UAAW,CACvE,OAAO,EAAE,IACb,EAAK,EAAG,OAAO,eAAeA,EAAG,UAAW,CAAE,WAAY,GAAI,IAAK,UAAW,CAC1E,OAAO,EAAE,OACV,EAAE,EACH,MAAM,EAAIqjG,GAAI,EAAIE,GAAI5jG,EAAI86F,GAAI76F,EAAI8jG,GAAI,EAAIrL,GAAI,EAAI0G,GAAI,EAAIvE,GAAI,EAAIhC,GAAI,EAAIyM,IAAI,EAAIC,GAAI1kG,EAAI,CAACgP,EAAGC,IAAM,IAAI,OAAOD,EAAGC,CAAC,EACnHjP,EAAE,KAAO,aACT,MAAMmF,EAAI,CAAC,mBAAoB,cAAe,aAAa,EAAGC,EAAoB,IAAI,IAAI,CACxF,WACA,YACA,QACA,UACA,OACA,SACA,UACA,UACA,UACA,gBACA,OACA,MACA,OACD,GAAGC,EAAI,CACN,cAAe,GACf,OAAQ,gDACR,SAAU,8CACV,aAAc,mDACd,WAAY,wDACZ,YAAa,sEACb,YAAa,oEACb,WAAY,oCACZ,eAAgB,0CAChB,eAAgB,0CAChB,YAAa,6CACb,eAAgB,+EAChB,MAAO,8CACP,UAAW,8CACX,UAAW,oBACZ,EAAEC,EAAI,CACL,sBAAuB,GACvB,iBAAkB,GAClB,QAAS,oEACb,EAAKC,EAAI,IACP,SAASoB,EAAEqI,EAAG,CACZ,IAAIC,EAAGC,EAAGC,EAAGE,EAAGC,EAAGC,EAAIC,EAAIC,EAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAAIC,EAAIC,GAAIC,GAAIC,GAAIC,GAAIupB,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIhB,GAC/F,MAAMC,GAAKhqB,EAAE,OAAQiqB,IAAMhqB,EAAID,EAAE,QAAU,MAAQC,IAAM,OAAS,OAASA,EAAE,SAAUiqB,GAAKD,KAAO,IAAMA,KAAO,OAAS,EAAIA,IAAM,EAAGE,IAAMhqB,GAAKD,EAAIF,EAAE,QAAU,MAAQE,IAAM,OAAS,OAASA,EAAE,UAAY,MAAQC,IAAM,OAASA,EAAInP,EAAGo5B,IAAM/pB,EAAIL,EAAE,eAAiB,MAAQK,IAAM,OAASA,EAAI,EAAE,QACvS,MAAO,CACL,cAAeE,GAAMD,EAAIN,EAAE,gBAAkB,MAAQM,IAAM,OAASA,EAAI0pB,MAAQ,MAAQzpB,IAAO,OAASA,EAAK,GAC7G,eAAgBE,GAAMD,EAAKR,EAAE,iBAAmB,MAAQQ,IAAO,OAASA,EAAKwpB,MAAQ,MAAQvpB,IAAO,OAASA,EAAK,GAClH,aAAcE,IAAMD,GAAKV,EAAE,eAAiB,MAAQU,KAAO,OAASA,GAAKspB,MAAQ,MAAQrpB,KAAO,OAASA,GAAK,MAC9G,cAAeE,IAAMD,GAAKZ,EAAE,gBAAkB,MAAQY,KAAO,OAASA,GAAKopB,MAAQ,MAAQnpB,KAAO,OAASA,GAAK,MAChH,gBAAiBE,GAAMD,EAAKd,EAAE,kBAAoB,MAAQc,IAAO,OAASA,EAAKkpB,MAAQ,MAAQjpB,IAAO,OAASA,EAAK,GACpH,KAAMf,EAAE,KAAO,CAAE,GAAGA,EAAE,KAAM,SAAUkqB,GAAI,OAAQC,EAAE,EAAK,CAAE,SAAUD,GAAI,OAAQC,EAAI,EACrF,cAAenpB,GAAKhB,EAAE,gBAAkB,MAAQgB,KAAO,OAASA,GAAKzK,EACrE,UAAW0K,GAAKjB,EAAE,YAAc,MAAQiB,KAAO,OAASA,GAAK1K,EAC7D,MAAO2K,GAAKlB,EAAE,QAAU,MAAQkB,KAAO,OAASA,GAAK,GACrD,UAAWC,GAAKnB,EAAE,YAAc,MAAQmB,KAAO,OAASA,GAAK,GAC7D,YAAaupB,GAAK1qB,EAAE,cAAgB,MAAQ0qB,KAAO,OAASA,GAAK,GACjE,UAAWC,GAAK3qB,EAAE,YAAc,MAAQ2qB,KAAO,OAASA,GAAK,MAC7D,eAAgBC,GAAK5qB,EAAE,iBAAmB,MAAQ4qB,KAAO,OAASA,GAAK,GACvE,gBAAiBC,GAAK7qB,EAAE,kBAAoB,MAAQ6qB,KAAO,OAASA,GAAK,GACzE,iBAAkBC,GAAK9qB,EAAE,mBAAqB,MAAQ8qB,KAAO,OAASA,GAAK,GAC3E,eAAgBC,GAAK/qB,EAAE,iBAAmB,MAAQ+qB,KAAO,OAASA,GAAK,GACvE,YAAahB,GAAK/pB,EAAE,cAAgB,MAAQ+pB,KAAO,OAASA,GAAK,GACjE,YAAaK,EACnB,CACG,CACD,MAAM,CAAE,CACN,YAAYnqB,EAAI,GAAI,CAClB,KAAK,QAAU,GAAI,KAAK,KAAO,GAAI,KAAK,QAAU,CAAE,EAAE,KAAK,cAAgC,IAAI,IAAO,KAAK,SAAW,GAAI,KAAK,OAAyB,IAAI,IAAOA,EAAI,KAAK,KAAO,CAAE,GAAGA,EAAG,GAAGtI,EAAEsI,CAAC,CAAC,EAClM,KAAM,CAAE,IAAKC,EAAG,MAAOC,CAAC,EAAK,KAAK,KAAK,KACvC,KAAK,MAAQ,IAAI,EAAE,WAAW,CAAE,MAAO,GAAI,SAAU/J,EAAG,IAAK8J,EAAG,MAAOC,CAAC,CAAE,EAAG,KAAK,OAASnI,EAAEiI,EAAE,MAAM,EACrG,MAAMI,EAAIJ,EAAE,gBACZA,EAAE,gBAAkB,GAAI,KAAK,SAAY9P,EAAE,UAAW,EAAEyH,EAAE,KAAK,KAAMvB,EAAG4J,EAAG,eAAe,EAAGrI,EAAE,KAAK,KAAMtB,EAAG2J,EAAG,aAAc,MAAM,EAAG,KAAK,UAAYhI,EAAE,KAAK,IAAI,EAAGgI,EAAE,SAAWlI,EAAE,KAAK,IAAI,EAAG,KAAK,iBAAgB,EAAI,KAAK,sBAAuB,EAAEkI,EAAE,UAAYzG,EAAE,KAAK,KAAMyG,EAAE,QAAQ,EAAG,OAAOA,EAAE,MAAQ,UAAY,KAAK,cAAcA,EAAE,IAAI,EAAGnI,EAAE,KAAK,IAAI,EAAGmI,EAAE,gBAAkBI,CAC5X,CACD,kBAAmB,CACjB,KAAK,WAAW,QAAQ,CACzB,CACD,uBAAwB,CACtB,KAAM,CAAE,MAAOJ,EAAG,KAAMC,EAAG,SAAUC,CAAC,EAAK,KAAK,KAChD,IAAIE,EAAI,EACRF,IAAM,OAASE,EAAI,CAAE,GAAG,GAAKA,EAAE,GAAKA,EAAE,IAAK,OAAOA,EAAE,KAAMH,GAAKD,GAAK,KAAK,cAAcI,EAAGA,EAAEF,CAAC,EAAG,EAAE,CACnG,CACD,aAAc,CACZ,KAAM,CAAE,KAAMF,EAAG,SAAUC,CAAG,EAAG,KAAK,KACtC,OAAO,KAAK,KAAK,YAAc,OAAOD,GAAK,SAAWA,EAAEC,CAAC,GAAKD,EAAI,MACnE,CACD,SAASA,EAAGC,EAAG,CACb,IAAIC,EACJ,GAAI,OAAOF,GAAK,UACd,GAAIE,EAAI,KAAK,UAAUF,CAAC,EAAG,CAACE,EAC1B,MAAM,IAAI,MAAM,8BAA8BF,CAAC,GAAG,OAEpDE,EAAI,KAAK,QAAQF,CAAC,EACpB,MAAMI,EAAIF,EAAED,CAAC,EACb,MAAO,WAAYC,IAAM,KAAK,OAASA,EAAE,QAASE,CACnD,CACD,QAAQJ,EAAGC,EAAG,CACZ,MAAMC,EAAI,KAAK,WAAWF,EAAGC,CAAC,EAC9B,OAAOC,EAAE,UAAY,KAAK,kBAAkBA,CAAC,CAC9C,CACD,aAAaF,EAAGC,EAAG,CACjB,GAAI,OAAO,KAAK,KAAK,YAAc,WACjC,MAAM,IAAI,MAAM,yCAAyC,EAC3D,KAAM,CAAE,WAAYC,GAAM,KAAK,KAC/B,OAAOE,EAAE,KAAK,KAAMJ,EAAGC,CAAC,EACxB,eAAeG,EAAEM,GAAIC,GAAI,CACvB,MAAMN,EAAE,KAAK,KAAMK,GAAG,OAAO,EAC7B,MAAME,GAAK,KAAK,WAAWF,GAAIC,EAAE,EACjC,OAAOC,GAAG,UAAYN,EAAG,KAAK,KAAMM,EAAE,CACvC,CACD,eAAeP,EAAEK,GAAI,CACnBA,IAAM,CAAC,KAAK,UAAUA,EAAE,GAAK,MAAMN,EAAE,KAAK,KAAM,CAAE,KAAMM,EAAE,EAAI,EAAE,CACjE,CACD,eAAeJ,EAAGI,GAAI,CACpB,GAAI,CACF,OAAO,KAAK,kBAAkBA,EAAE,CACjC,OAAQC,GAAI,CACX,GAAI,EAAEA,cAAc,EAAE,SACpB,MAAMA,GACR,OAAOJ,EAAG,KAAK,KAAMI,EAAE,EAAG,MAAMH,EAAG,KAAK,KAAMG,GAAG,aAAa,EAAGL,EAAG,KAAK,KAAMI,EAAE,CAClF,CACF,CACD,SAASH,EAAG,CAAE,cAAeG,GAAI,WAAYC,EAAE,EAAI,CACjD,GAAI,KAAK,KAAKD,EAAE,EACd,MAAM,IAAI,MAAM,aAAaA,EAAE,kBAAkBC,EAAE,qBAAqB,CAC3E,CACD,eAAeH,EAAGE,GAAI,CACpB,MAAMC,GAAK,MAAMF,GAAG,KAAK,KAAMC,EAAE,EACjC,KAAK,KAAKA,EAAE,GAAK,MAAML,EAAE,KAAK,KAAMM,GAAG,OAAO,EAAG,KAAK,KAAKD,EAAE,GAAK,KAAK,UAAUC,GAAID,GAAIT,CAAC,CAC3F,CACD,eAAeQ,GAAGC,GAAI,CACpB,MAAMC,GAAK,KAAK,SAASD,EAAE,EAC3B,GAAIC,GACF,OAAOA,GACT,GAAI,CACF,OAAO,MAAO,KAAK,SAASD,EAAE,EAAIR,EAAEQ,EAAE,EAChD,QAAkB,CACR,OAAO,KAAK,SAASA,EAAE,CACxB,CACF,CACF,CAED,UAAUV,EAAGC,EAAGC,EAAGE,EAAI,KAAK,KAAK,eAAgB,CAC/C,GAAI,MAAM,QAAQJ,CAAC,EAAG,CACpB,UAAWM,KAAMN,EACf,KAAK,UAAUM,EAAI,OAAQJ,EAAGE,CAAC,EACjC,OAAO,IACR,CACD,IAAIC,EACJ,GAAI,OAAOL,GAAK,SAAU,CACxB,KAAM,CAAE,SAAUM,GAAO,KAAK,KAC9B,GAAID,EAAIL,EAAEM,CAAE,EAAGD,IAAM,QAAU,OAAOA,GAAK,SACzC,MAAM,IAAI,MAAM,UAAUC,CAAE,iBAAiB,CAChD,CACD,OAAOL,KAAQ,EAAE,aAAaA,GAAKI,CAAC,EAAG,KAAK,aAAaJ,CAAC,EAAG,KAAK,QAAQA,CAAC,EAAI,KAAK,WAAWD,EAAGE,EAAGD,EAAGG,EAAG,EAAE,EAAG,IACjH,CAGD,cAAcJ,EAAGC,EAAGC,EAAI,KAAK,KAAK,eAAgB,CAChD,OAAO,KAAK,UAAUF,EAAGC,EAAG,GAAIC,CAAC,EAAG,IACrC,CAED,eAAeF,EAAGC,EAAG,CACnB,GAAI,OAAOD,GAAK,UACd,MAAO,GACT,IAAIE,EACJ,GAAIA,EAAIF,EAAE,QAASE,IAAM,QAAU,OAAOA,GAAK,SAC7C,MAAM,IAAI,MAAM,0BAA0B,EAC5C,GAAIA,EAAIA,GAAK,KAAK,KAAK,aAAe,KAAK,YAAa,EAAE,CAACA,EACzD,OAAO,KAAK,OAAO,KAAK,2BAA2B,EAAG,KAAK,OAAS,KAAM,GAC5E,MAAME,EAAI,KAAK,SAASF,EAAGF,CAAC,EAC5B,GAAI,CAACI,GAAKH,EAAG,CACX,MAAMI,EAAI,sBAAwB,KAAK,WAAU,EACjD,GAAI,KAAK,KAAK,iBAAmB,MAC/B,KAAK,OAAO,MAAMA,CAAC,MAEnB,OAAM,IAAI,MAAMA,CAAC,CACpB,CACD,OAAOD,CACR,CAGD,UAAUJ,EAAG,CACX,IAAIC,EACJ,KAAO,OAAQA,EAAIrI,EAAE,KAAK,KAAMoI,CAAC,IAAM,UACrCA,EAAIC,EACN,GAAIA,IAAM,OAAQ,CAChB,KAAM,CAAE,SAAUC,CAAC,EAAK,KAAK,KAAME,EAAI,IAAIjQ,EAAE,UAAU,CAAE,OAAQ,GAAI,SAAU+P,CAAG,GAClF,GAAID,EAAI9P,EAAE,cAAc,KAAK,KAAMiQ,EAAGJ,CAAC,EAAG,CAACC,EACzC,OACF,KAAK,KAAKD,CAAC,EAAIC,CAChB,CACD,OAAOA,EAAE,UAAY,KAAK,kBAAkBA,CAAC,CAC9C,CAKD,aAAaD,EAAG,CACd,GAAIA,aAAa,OACf,OAAO,KAAK,kBAAkB,KAAK,QAASA,CAAC,EAAG,KAAK,kBAAkB,KAAK,KAAMA,CAAC,EAAG,KACxF,OAAQ,OAAOA,EAAC,CACd,IAAK,YACH,OAAO,KAAK,kBAAkB,KAAK,OAAO,EAAG,KAAK,kBAAkB,KAAK,IAAI,EAAG,KAAK,OAAO,MAAK,EAAI,KACvG,IAAK,SAAU,CACb,MAAMC,EAAIrI,EAAE,KAAK,KAAMoI,CAAC,EACxB,OAAO,OAAOC,GAAK,UAAY,KAAK,OAAO,OAAOA,EAAE,MAAM,EAAG,OAAO,KAAK,QAAQD,CAAC,EAAG,OAAO,KAAK,KAAKA,CAAC,EAAG,IAC3G,CACD,IAAK,SAAU,CACb,MAAMC,EAAID,EACV,KAAK,OAAO,OAAOC,CAAC,EACpB,IAAIC,EAAIF,EAAE,KAAK,KAAK,QAAQ,EAC5B,OAAOE,IAAMA,KAAQ,EAAE,aAAaA,CAAC,EAAG,OAAO,KAAK,QAAQA,CAAC,EAAG,OAAO,KAAK,KAAKA,CAAC,GAAI,IACvF,CACD,QACE,MAAM,IAAI,MAAM,qCAAqC,CACxD,CACF,CAED,cAAcF,EAAG,CACf,UAAWC,KAAKD,EACd,KAAK,WAAWC,CAAC,EACnB,OAAO,IACR,CACD,WAAWD,EAAGC,EAAG,CACf,IAAIC,EACJ,GAAI,OAAOF,GAAK,SACdE,EAAIF,EAAG,OAAOC,GAAK,WAAa,KAAK,OAAO,KAAK,0DAA0D,EAAGA,EAAE,QAAUC,WACnH,OAAOF,GAAK,UAAYC,IAAM,QACrC,GAAIA,EAAID,EAAGE,EAAID,EAAE,QAAS,MAAM,QAAQC,CAAC,GAAK,CAACA,EAAE,OAC/C,MAAM,IAAI,MAAM,wDAAwD,MAE1E,OAAM,IAAI,MAAM,gCAAgC,EAClD,GAAI/H,EAAG,KAAK,KAAM+H,EAAGD,CAAC,EAAG,CAACA,EACxB,SAAW,EAAE,UAAUC,EAAIG,GAAMjI,GAAG,KAAK,KAAMiI,CAAC,CAAC,EAAG,KACtD/H,EAAG,KAAK,KAAM2H,CAAC,EACf,MAAMG,EAAI,CACR,GAAGH,EACH,QAAU,EAAE,cAAcA,EAAE,IAAI,EAChC,cAAgB,EAAE,cAAcA,EAAE,UAAU,CACpD,EACM,SAAW,EAAE,UAAUC,EAAGE,EAAE,KAAK,SAAW,EAAKC,GAAMjI,GAAG,KAAK,KAAMiI,EAAGD,CAAC,EAAKC,GAAMD,EAAE,KAAK,QAASE,GAAOlI,GAAG,KAAK,KAAMiI,EAAGD,EAAGE,CAAE,CAAC,CAAC,EAAG,IACvI,CACD,WAAWN,EAAG,CACZ,MAAMC,EAAI,KAAK,MAAM,IAAID,CAAC,EAC1B,OAAO,OAAOC,GAAK,SAAWA,EAAE,WAAa,CAAC,CAACA,CAChD,CAED,cAAcD,EAAG,CACf,KAAM,CAAE,MAAOC,CAAG,EAAG,KACrB,OAAOA,EAAE,SAASD,CAAC,EAAG,OAAOC,EAAE,IAAID,CAAC,EACpC,UAAWE,KAAKD,EAAE,MAAO,CACvB,MAAMG,EAAIF,EAAE,MAAM,UAAWG,GAAMA,EAAE,UAAYL,CAAC,EAClDI,GAAK,GAAKF,EAAE,MAAM,OAAOE,EAAG,CAAC,CAC9B,CACD,OAAO,IACR,CAED,UAAUJ,EAAGC,EAAG,CACd,OAAO,OAAOA,GAAK,WAAaA,EAAI,IAAI,OAAOA,CAAC,GAAI,KAAK,QAAQD,CAAC,EAAIC,EAAG,IAC1E,CACD,WAAWD,EAAI,KAAK,OAAQ,CAAE,UAAWC,EAAI,KAAM,QAASC,EAAI,MAAM,EAAK,GAAI,CAC7E,MAAO,CAACF,GAAKA,EAAE,SAAW,EAAI,YAAcA,EAAE,IAAKI,GAAM,GAAGF,CAAC,GAAGE,EAAE,YAAY,IAAIA,EAAE,OAAO,EAAE,EAAE,OAAO,CAACA,EAAGC,IAAMD,EAAIH,EAAII,CAAC,CAC1H,CACD,gBAAgBL,EAAGC,EAAG,CACpB,MAAMC,EAAI,KAAK,MAAM,IACrBF,EAAI,KAAK,MAAM,KAAK,UAAUA,CAAC,CAAC,EAChC,UAAWI,KAAKH,EAAG,CACjB,MAAMI,EAAID,EAAE,MAAM,GAAG,EAAE,MAAM,CAAC,EAC9B,IAAIE,EAAKN,EACT,UAAWO,KAAMF,EACfC,EAAKA,EAAGC,CAAE,EACZ,UAAWA,KAAML,EAAG,CAClB,MAAMM,EAAKN,EAAEK,CAAE,EACf,GAAI,OAAOC,GAAM,SACf,SACF,KAAM,CAAE,MAAOC,IAAOD,EAAG,WAAYE,GAAKJ,EAAGC,CAAE,EAC/CE,IAAMC,KAAOJ,EAAGC,CAAE,EAAI/H,GAAGkI,EAAE,EAC5B,CACF,CACD,OAAOV,CACR,CACD,kBAAkBA,EAAGC,EAAG,CACtB,UAAWC,KAAKF,EAAG,CACjB,MAAMI,EAAIJ,EAAEE,CAAC,GACZ,CAACD,GAAKA,EAAE,KAAKC,CAAC,KAAO,OAAOE,GAAK,SAAW,OAAOJ,EAAEE,CAAC,EAAIE,GAAK,CAACA,EAAE,OAAS,KAAK,OAAO,OAAOA,EAAE,MAAM,EAAG,OAAOJ,EAAEE,CAAC,GACrH,CACF,CACD,WAAWF,EAAGC,EAAGC,EAAGE,EAAI,KAAK,KAAK,eAAgBC,EAAI,KAAK,KAAK,cAAe,CAC7E,IAAIC,EACJ,KAAM,CAAE,SAAUC,GAAO,KAAK,KAC9B,GAAI,OAAOP,GAAK,SACdM,EAAKN,EAAEO,CAAE,MACN,CACH,GAAI,KAAK,KAAK,IACZ,MAAM,IAAI,MAAM,uBAAuB,EACzC,GAAI,OAAOP,GAAK,UACd,MAAM,IAAI,MAAM,kCAAkC,CACrD,CACD,IAAIQ,EAAK,KAAK,OAAO,IAAIR,CAAC,EAC1B,GAAIQ,IAAO,OACT,OAAOA,EACTN,KAAQ,EAAE,aAAaI,GAAMJ,CAAC,EAC9B,MAAMO,GAAK,EAAE,cAAc,KAAK,KAAMT,EAAGE,CAAC,EAC1C,OAAOM,EAAK,IAAIrQ,EAAE,UAAU,CAAE,OAAQ6P,EAAG,SAAUO,EAAI,KAAMN,EAAG,OAAQC,EAAG,UAAWO,GAAI,EAAG,KAAK,OAAO,IAAID,EAAG,OAAQA,CAAE,EAAGH,GAAK,CAACH,EAAE,WAAW,GAAG,IAAMA,GAAK,KAAK,aAAaA,CAAC,EAAG,KAAK,KAAKA,CAAC,EAAIM,GAAKJ,GAAK,KAAK,eAAeJ,EAAG,EAAE,EAAGQ,CAC1O,CACD,aAAaR,EAAG,CACd,GAAI,KAAK,QAAQA,CAAC,GAAK,KAAK,KAAKA,CAAC,EAChC,MAAM,IAAI,MAAM,0BAA0BA,CAAC,kBAAkB,CAChE,CACD,kBAAkBA,EAAG,CACnB,GAAIA,EAAE,KAAO,KAAK,mBAAmBA,CAAC,EAAI7P,EAAE,cAAc,KAAK,KAAM6P,CAAC,EAAG,CAACA,EAAE,SAC1E,MAAM,IAAI,MAAM,0BAA0B,EAC5C,OAAOA,EAAE,QACV,CACD,mBAAmBA,EAAG,CACpB,MAAMC,EAAI,KAAK,KACf,KAAK,KAAO,KAAK,UACjB,GAAI,CACF9P,EAAE,cAAc,KAAK,KAAM6P,CAAC,CACpC,QAAgB,CACR,KAAK,KAAOC,CACb,CACF,CACF,CACD,EAAE,gBAAkB,EAAE,QAAS,EAAE,gBAAkB,EAAE,QAAS1P,EAAE,QAAU,EAC1E,SAASoH,EAAEoI,EAAGC,EAAGC,EAAGC,EAAI,QAAS,CAC/B,UAAWE,KAAKL,EAAG,CACjB,MAAMM,EAAID,EACVC,KAAKL,GAAK,KAAK,OAAOE,CAAC,EAAE,GAAGD,CAAC,YAAYG,CAAC,KAAKL,EAAEM,CAAC,CAAC,EAAE,CACtD,CACF,CACD,SAASzI,EAAEmI,EAAG,CACZ,OAAOA,KAAQ,EAAE,aAAaA,CAAC,EAAG,KAAK,QAAQA,CAAC,GAAK,KAAK,KAAKA,CAAC,CACjE,CACD,SAASlI,GAAI,CACX,MAAMkI,EAAI,KAAK,KAAK,QACpB,GAAIA,EACF,GAAI,MAAM,QAAQA,CAAC,EACjB,KAAK,UAAUA,CAAC,MAEhB,WAAWC,KAAKD,EACd,KAAK,UAAUA,EAAEC,CAAC,EAAGA,CAAC,CAC7B,CACD,SAASlI,GAAI,CACX,UAAWiI,KAAK,KAAK,KAAK,QAAS,CACjC,MAAMC,EAAI,KAAK,KAAK,QAAQD,CAAC,EAC7BC,GAAK,KAAK,UAAUD,EAAGC,CAAC,CACzB,CACF,CACD,SAASzG,EAAEwG,EAAG,CACZ,GAAI,MAAM,QAAQA,CAAC,EAAG,CACpB,KAAK,cAAcA,CAAC,EACpB,MACD,CACD,KAAK,OAAO,KAAK,kDAAkD,EACnE,UAAWC,KAAKD,EAAG,CACjB,MAAME,EAAIF,EAAEC,CAAC,EACbC,EAAE,UAAYA,EAAE,QAAUD,GAAI,KAAK,WAAWC,CAAC,CAChD,CACF,CACD,SAASjI,GAAI,CACX,MAAM+H,EAAI,CAAE,GAAG,KAAK,IAAI,EACxB,UAAWC,KAAK9J,EACd,OAAO6J,EAAEC,CAAC,EACZ,OAAOD,CACR,CACD,MAAM9H,EAAI,CAAE,KAAM,CACjB,EAAE,MAAO,CACT,EAAE,OAAQ,CACb,GACE,SAASF,EAAEgI,EAAG,CACZ,GAAIA,IAAM,GACR,OAAO9H,EACT,GAAI8H,IAAM,OACR,OAAO,QACT,GAAIA,EAAE,KAAOA,EAAE,MAAQA,EAAE,MACvB,OAAOA,EACT,MAAM,IAAI,MAAM,mDAAmD,CACpE,CACD,MAAM7H,EAAK,0BACX,SAASC,EAAG4H,EAAGC,EAAG,CAChB,KAAM,CAAE,MAAOC,CAAG,EAAG,KACrB,MAAQ,EAAE,UAAUF,EAAIG,GAAM,CAC5B,GAAID,EAAE,SAASC,CAAC,EACd,MAAM,IAAI,MAAM,WAAWA,CAAC,qBAAqB,EACnD,GAAI,CAAChI,EAAG,KAAKgI,CAAC,EACZ,MAAM,IAAI,MAAM,WAAWA,CAAC,mBAAmB,CACvD,CAAK,EAAG,CAAC,CAACF,GAAKA,EAAE,OAAS,EAAE,SAAUA,GAAK,aAAcA,GACnD,MAAM,IAAI,MAAM,uDAAuD,CAC1E,CACD,SAAS5H,GAAG2H,EAAGC,EAAGC,EAAG,CACnB,IAAIC,EACJ,MAAME,EAAyBJ,GAAE,KACjC,GAAIC,GAAKG,EACP,MAAM,IAAI,MAAM,6CAA6C,EAC/D,KAAM,CAAE,MAAOC,CAAG,EAAG,KACrB,IAAIC,EAAKF,EAAIC,EAAE,KAAOA,EAAE,MAAM,KAAK,CAAC,CAAE,KAAMG,CAAI,IAAKA,IAAOP,CAAC,EAC7D,GAAIK,IAAOA,EAAK,CAAE,KAAML,EAAG,MAAO,EAAI,EAAEI,EAAE,MAAM,KAAKC,CAAE,GAAID,EAAE,SAASN,CAAC,EAAI,GAAI,CAACC,EAC9E,OACF,MAAMO,EAAK,CACT,QAASR,EACT,WAAY,CACV,GAAGC,EACH,QAAU,EAAE,cAAcA,EAAE,IAAI,EAChC,cAAgB,EAAE,cAAcA,EAAE,UAAU,CAC7C,CACP,EACIA,EAAE,OAAS3H,GAAG,KAAK,KAAMiI,EAAIC,EAAIP,EAAE,MAAM,EAAIM,EAAG,MAAM,KAAKC,CAAE,EAAGF,EAAE,IAAIN,CAAC,EAAIQ,GAAKL,EAAIF,EAAE,cAAgB,MAAQE,IAAM,QAAUA,EAAE,QAASM,GAAO,KAAK,WAAWA,CAAE,CAAC,CACpK,CACD,SAASnI,GAAG0H,EAAGC,EAAGC,EAAG,CACnB,MAAMC,EAAIH,EAAE,MAAM,UAAWK,GAAMA,EAAE,UAAYH,CAAC,EAClDC,GAAK,EAAIH,EAAE,MAAM,OAAOG,EAAG,EAAGF,CAAC,GAAKD,EAAE,MAAM,KAAKC,CAAC,EAAG,KAAK,OAAO,KAAK,QAAQC,CAAC,iBAAiB,EACjG,CACD,SAAS3H,EAAGyH,EAAG,CACb,GAAI,CAAE,WAAYC,CAAG,EAAGD,EACxBC,IAAM,SAAWD,EAAE,OAAS,KAAK,KAAK,QAAUC,EAAIxH,GAAGwH,CAAC,GAAID,EAAE,eAAiB,KAAK,QAAQC,EAAG,EAAE,EAClG,CACD,MAAMzH,GAAK,CACT,KAAM,gFACV,EACE,SAASC,GAAGuH,EAAG,CACb,MAAO,CAAE,MAAO,CAACA,EAAGxH,EAAE,CAAC,CACxB,CACH,GAAGiwF,GAAE,EACL,IAAIsP,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAC3B,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,IAAK,CACT,QAAS,KACT,MAAO,CACL,MAAM,IAAI,MAAM,sDAAsD,CACvE,CACH,EACAD,GAAG,QAAUC,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,QAAUA,GAAG,YAAc,OAC9B,MAAMC,IAAKrE,GAAIsE,GAAKnL,GAAIoL,GAAKzP,GAAI0P,GAAKjO,GAAIkO,GAAKtE,GAAIuE,GAAKzP,GAAI0P,IAAK,CAC/D,QAAS,OACT,WAAY,SACZ,KAAKloG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,GAAI,CAAC,EAAKA,EAAG,CAAE,OAAQ,EAAG,UAAWL,EAAG,aAAcC,EAAG,KAAM,EAAG,KAAM,GAAM,EAAG,CAAE,KAAM,CAAC,EAAKD,EAC1H,IAAK,IAAM,KAAO,IAAM,OAAS,IAAM,EAAE,OACvC,OAAO,EAAC,EACV,MAAM,EAAIqoG,GAAG,WAAW,KAAK,EAAG,EAAG,EAAG,CAAC,EACvC,GAAI,IAAM,OACR,MAAM,IAAIJ,IAAG,QAAQ,EAAE,KAAK,YAAa,EAAG,CAAC,EAC/C,GAAI,aAAaI,GAAG,UAClB,OAAO,EAAE,CAAC,EACZ,OAAOxnG,EAAE,CAAC,EACV,SAAS,GAAI,CACX,GAAIb,IAAM,EACR,OAAOwoG,GAAGnoG,EAAGJ,EAAGD,EAAGA,EAAE,MAAM,EAC7B,MAAMgG,EAAI,EAAE,WAAW,OAAQ,CAAE,IAAK,CAAC,CAAE,EACzC,OAAOwiG,GAAGnoG,KAAO8nG,GAAG,KAAKniG,CAAC,YAAa,EAAG,EAAE,MAAM,CACnD,CACD,SAAS,EAAEA,EAAG,CACZ,MAAMC,EAAIwiG,IAAGpoG,EAAG2F,CAAC,EACjBwiG,GAAGnoG,EAAG4F,EAAGD,EAAGA,EAAE,MAAM,CACrB,CACD,SAASnF,EAAEmF,EAAG,CACZ,MAAMC,EAAI,EAAE,WAAW,SAAU,EAAE,KAAK,SAAW,GAAK,CAAE,IAAKD,EAAG,QAAUmiG,GAAG,WAAWniG,CAAC,CAAG,EAAG,CAAE,IAAKA,CAAG,GAAGE,EAAI,EAAE,KAAK,OAAO,EAAGC,EAAI9F,EAAE,UAAU,CACjJ,OAAQ2F,EACR,UAAW,CAAE,EACb,WAAYmiG,GAAG,IACf,aAAcliG,EACd,cAAe,CAChB,EAAEC,CAAC,EACJ7F,EAAE,eAAe8F,CAAC,EAAG9F,EAAE,GAAG6F,CAAC,CAC5B,CACF,CACH,EACA,SAASuiG,IAAGpoG,EAAG,EAAG,CAChB,KAAM,CAAE,IAAK,CAAG,EAAGA,EACnB,OAAO,EAAE,SAAW,EAAE,WAAW,WAAY,CAAE,IAAK,EAAE,QAAQ,CAAE,KAAQ8nG,GAAG,KAAK,EAAE,WAAW,UAAW,CAAE,IAAK,CAAC,CAAE,CAAC,WACrH,CACAH,GAAG,YAAcS,IACjB,SAASD,GAAGnoG,EAAG,EAAG,EAAG,EAAG,CACtB,KAAM,CAAE,IAAK,EAAG,GAAIL,CAAC,EAAKK,EAAG,CAAE,UAAWJ,EAAG,UAAW,EAAG,KAAM,GAAMD,EAAG,EAAI,EAAE,YAAcooG,GAAG,QAAQ,KAAOD,GAAG,IACnH,EAAI,IAAM,IACV,SAAS,GAAI,CACX,GAAI,CAAC,EAAE,OACL,MAAM,IAAI,MAAM,wCAAwC,EAC1D,MAAMniG,EAAI,EAAE,IAAI,OAAO,EACvB,EAAE,IAAI,IAAM,CACV,EAAE,QAASmiG,GAAG,cAAeD,GAAG,kBAAkB7nG,EAAG,EAAG,CAAC,CAAC,EAAE,EAAGQ,EAAE,CAAC,EAAGZ,GAAK,EAAE,OAAO+F,EAAG,EAAE,CACzF,EAAGC,GAAM,CACR,EAAE,MAAOkiG,GAAG,OAAOliG,CAAC,eAAejG,EAAE,eAAe,IAAK,IAAM,EAAE,MAAMiG,CAAC,CAAC,EAAG,EAAEA,CAAC,EAAGhG,GAAK,EAAE,OAAO+F,EAAG,EAAE,CACtG,GAAG3F,EAAE,GAAG2F,CAAC,CACX,CACD,SAAS,GAAI,CACX3F,EAAE,UAAW6nG,GAAG,kBAAkB7nG,EAAG,EAAG,CAAC,EAAG,IAAMQ,EAAE,CAAC,EAAG,IAAM,EAAE,CAAC,CAAC,CACnE,CACD,SAAS,EAAEmF,EAAG,CACZ,MAAMC,KAAQkiG,GAAG,KAAKniG,CAAC,UACvB,EAAE,OAAOoiG,GAAG,QAAQ,WAAaD,GAAG,KAAKC,GAAG,QAAQ,OAAO,eAAeniG,CAAC,MAAMmiG,GAAG,QAAQ,OAAO,WAAWniG,CAAC,GAAG,EAAG,EAAE,OAAOmiG,GAAG,QAAQ,UAAYD,GAAG,KAAKC,GAAG,QAAQ,OAAO,SAAS,CACzL,CACD,SAASvnG,EAAEmF,EAAG,CACZ,IAAIC,EACJ,GAAI,CAACjG,EAAE,KAAK,YACV,OACF,MAAMkG,GAAKD,EAAyB,GAAE,YAAc,MAAQA,IAAM,OAAS,OAASA,EAAE,UACtF,GAAIjG,EAAE,QAAU,GACd,GAAIkG,GAAK,CAACA,EAAE,aACVA,EAAE,QAAU,SAAWlG,EAAE,MAAQsoG,GAAG,eAAe,MAAM,EAAGpiG,EAAE,MAAOlG,EAAE,KAAK,OACzE,CACH,MAAMmG,EAAI,EAAE,IAAI,WAAagiG,GAAG,KAAKniG,CAAC,kBAAkB,EACxDhG,EAAE,MAAQsoG,GAAG,eAAe,MAAM,EAAGniG,EAAGnG,EAAE,MAAOmoG,GAAG,IAAI,CACzD,CACH,GAAInoG,EAAE,QAAU,GACd,GAAIkG,GAAK,CAACA,EAAE,aACVA,EAAE,QAAU,SAAWlG,EAAE,MAAQsoG,GAAG,eAAe,MAAM,EAAGpiG,EAAE,MAAOlG,EAAE,KAAK,OACzE,CACH,MAAMmG,EAAI,EAAE,IAAI,WAAagiG,GAAG,KAAKniG,CAAC,kBAAkB,EACxDhG,EAAE,MAAQsoG,GAAG,eAAe,MAAM,EAAGniG,EAAGnG,EAAE,MAAOmoG,GAAG,IAAI,CACzD,CACJ,CACH,CACAH,GAAG,QAAUQ,GACbR,GAAG,QAAUO,IACb,OAAO,eAAeV,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMa,IAAKZ,GAAIa,IAAKX,GAAIY,IAAK,CAC3B,UACA,MACA,QACA,cACA,CAAE,QAAS,UAAY,EACvB,cACAF,IAAG,QACHC,IAAG,OACL,EACAd,GAAG,QAAUe,IACb,IAAIC,GAAK,GAAIC,GAAK,GAClB,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAKrQ,GAAIsQ,GAAKD,GAAG,UAAWE,GAAK,CACrC,QAAS,CAAE,MAAO,KAAM,GAAID,GAAG,IAAK,KAAMA,GAAG,EAAI,EACjD,QAAS,CAAE,MAAO,KAAM,GAAIA,GAAG,IAAK,KAAMA,GAAG,EAAI,EACjD,iBAAkB,CAAE,MAAO,IAAK,GAAIA,GAAG,GAAI,KAAMA,GAAG,GAAK,EACzD,iBAAkB,CAAE,MAAO,IAAK,GAAIA,GAAG,GAAI,KAAMA,GAAG,GAAK,CAC3D,EAAGE,IAAK,CACN,QAAS,CAAC,CAAE,QAAS7oG,EAAG,WAAY,CAAG,OAAS0oG,GAAG,eAAeE,GAAG5oG,CAAC,EAAE,KAAK,IAAI,CAAC,GAClF,OAAQ,CAAC,CAAE,QAASA,EAAG,WAAY,CAAG,OAAS0oG,GAAG,kBAAkBE,GAAG5oG,CAAC,EAAE,KAAK,YAAY,CAAC,GAC9F,EAAG8oG,IAAK,CACN,QAAS,OAAO,KAAKF,EAAE,EACvB,KAAM,SACN,WAAY,SACZ,MAAO,GACP,MAAOC,IACP,KAAK7oG,EAAG,CACN,KAAM,CAAE,QAAS,EAAG,KAAM,EAAG,WAAY,CAAG,EAAGA,EAC/CA,EAAE,aAAc0oG,GAAG,KAAK,CAAC,IAAIE,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAC9D,CACH,EACAH,GAAG,QAAUK,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAK3Q,GAAI4Q,IAAK,CAClB,QAAS,CAAC,CAAE,WAAYjpG,CAAG,OAASgpG,GAAG,2BAA2BhpG,CAAC,GACnE,OAAQ,CAAC,CAAE,WAAYA,QAAYgpG,GAAG,kBAAkBhpG,CAAC,GAC3D,EAAGkpG,IAAK,CACN,QAAS,aACT,KAAM,SACN,WAAY,SACZ,MAAO,GACP,MAAOD,IACP,KAAKjpG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,KAAM,EAAG,WAAY,EAAG,GAAI,CAAC,EAAKA,EAAGL,EAAI,EAAE,KAAK,oBAAqBC,EAAI,EAAE,IAAI,KAAK,EAAG,EAAID,KAAQqpG,GAAG,yBAAyBppG,CAAC,OAAOA,CAAC,UAAUD,CAAC,MAASqpG,GAAG,KAAKppG,CAAC,iBAAiBA,CAAC,IACvMI,EAAE,aAAcgpG,GAAG,MAAM,CAAC,cAAcppG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAChE,CACH,EACAmpG,GAAG,QAAUG,IACb,IAAIC,GAAK,GAAIC,GAAK,GAClB,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,SAASC,IAAGrpG,EAAG,CACb,MAAM,EAAIA,EAAE,OACZ,IAAI,EAAI,EAAG,EAAI,EAAG,EAClB,KAAO,EAAI,GACT,IAAK,EAAIA,EAAE,WAAW,GAAG,EAAG,GAAK,OAAS,GAAK,OAAS,EAAI,IAAM,EAAIA,EAAE,WAAW,CAAC,GAAI,EAAI,SAAW,OAAS,KAClH,OAAO,CACT,CACAopG,GAAG,QAAUC,IACbA,IAAG,KAAO,iDACV,OAAO,eAAeF,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMG,GAAKjR,GAAIkR,IAAK/Q,GAAIgR,IAAKJ,GAAIK,IAAK,CACpC,QAAQ,CAAE,QAASzpG,EAAG,WAAY,CAAC,EAAI,CACrC,MAAM,EAAIA,IAAM,YAAc,OAAS,QACvC,SAAWspG,GAAG,qBAAqB,CAAC,SAAS,CAAC,aAC/C,EACD,OAAQ,CAAC,CAAE,WAAYtpG,QAAYspG,GAAG,aAAatpG,CAAC,GACtD,EAAG0pG,IAAK,CACN,QAAS,CAAC,YAAa,WAAW,EAClC,KAAM,SACN,WAAY,SACZ,MAAO,GACP,MAAOD,IACP,KAAKzpG,EAAG,CACN,KAAM,CAAE,QAAS,EAAG,KAAM,EAAG,WAAY,EAAG,GAAI,CAAC,EAAKA,EAAGL,EAAI,IAAM,YAAc2pG,GAAG,UAAU,GAAKA,GAAG,UAAU,GAAI1pG,EAAI,EAAE,KAAK,UAAY,MAAS0pG,GAAG,KAAK,CAAC,aAAgBA,GAAG,QAASC,IAAG,SAASvpG,EAAE,IAAKwpG,IAAG,OAAO,CAAC,IAAI,CAAC,IAC5NxpG,EAAE,aAAcspG,GAAG,KAAK1pG,CAAC,IAAID,CAAC,IAAI,CAAC,EAAE,CACtC,CACH,EACAwpG,GAAG,QAAUO,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,IAAKlN,GAAImN,GAAKxR,GAAIyR,IAAK,CAC3B,QAAS,CAAC,CAAE,WAAY9pG,QAAY6pG,GAAG,2BAA2B7pG,CAAC,IACnE,OAAQ,CAAC,CAAE,WAAYA,QAAY6pG,GAAG,eAAe7pG,CAAC,GACxD,EAAG+pG,IAAK,CACN,QAAS,UACT,KAAM,SACN,WAAY,SACZ,MAAO,GACP,MAAOD,IACP,KAAK9pG,EAAG,CACN,KAAM,CAAE,KAAM,EAAG,MAAO,EAAG,OAAQ,EAAG,WAAY,EAAG,GAAIL,GAAMK,EAAGJ,EAAID,EAAE,KAAK,cAAgB,IAAM,GAAI,EAAI,KAAQkqG,GAAG,iBAAiB,CAAC,KAAKjqG,CAAC,QAAWgqG,IAAG,YAAY5pG,EAAG,CAAC,EAC5KA,EAAE,aAAc6pG,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CACxC,CACH,EACAF,GAAG,QAAUI,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAK5R,GAAI6R,IAAK,CAClB,QAAQ,CAAE,QAASlqG,EAAG,WAAY,CAAC,EAAI,CACrC,MAAM,EAAIA,IAAM,gBAAkB,OAAS,QAC3C,SAAWiqG,GAAG,qBAAqB,CAAC,SAAS,CAAC,aAC/C,EACD,OAAQ,CAAC,CAAE,WAAYjqG,QAAYiqG,GAAG,aAAajqG,CAAC,GACtD,EAAGmqG,IAAK,CACN,QAAS,CAAC,gBAAiB,eAAe,EAC1C,KAAM,SACN,WAAY,SACZ,MAAO,GACP,MAAOD,IACP,KAAKlqG,EAAG,CACN,KAAM,CAAE,QAAS,EAAG,KAAM,EAAG,WAAY,CAAC,EAAKA,EAAG,EAAI,IAAM,gBAAkBiqG,GAAG,UAAU,GAAKA,GAAG,UAAU,GAC7GjqG,EAAE,aAAciqG,GAAG,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAC1D,CACH,EACAD,GAAG,QAAUG,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAK3N,GAAI4N,GAAKjS,GAAIkS,IAAK/R,GAAIgS,IAAK,CACpC,QAAS,CAAC,CAAE,OAAQ,CAAE,gBAAiBxqG,CAAG,QAAWsqG,GAAG,oCAAoCtqG,CAAC,IAC7F,OAAQ,CAAC,CAAE,OAAQ,CAAE,gBAAiBA,CAAG,QAAWsqG,GAAG,uBAAuBtqG,CAAC,GACjF,EAAGyqG,IAAK,CACN,QAAS,WACT,KAAM,SACN,WAAY,QACZ,MAAO,GACP,MAAOD,IACP,KAAKxqG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,WAAY,EAAG,KAAM,EAAG,MAAOL,EAAG,GAAIC,GAAMI,EAAG,CAAE,KAAM,CAAG,EAAGJ,EACxF,GAAI,CAACD,GAAK,EAAE,SAAW,EACrB,OACF,MAAM,EAAI,EAAE,QAAU,EAAE,aACxB,GAAIC,EAAE,UAAY,EAAC,EAAK,EAAG,EAAE,EAAE,eAAgB,CAC7C,MAAMY,EAAIR,EAAE,aAAa,WAAY,CAAE,kBAAmB2F,CAAC,EAAK3F,EAAE,GAClE,UAAW4F,KAAK,EACd,GAA0BpF,IAAEoF,CAAC,IAAO,QAAU,CAACD,EAAE,IAAIC,CAAC,EAAG,CACvD,MAAMC,EAAIjG,EAAE,UAAU,OAASA,EAAE,cAAekG,EAAI,sBAAsBF,CAAC,wBAAwBC,CAAC,wBAChG0kG,IAAG,iBAAiB3qG,EAAGkG,EAAGlG,EAAE,KAAK,cAAc,CACpD,CACJ,CACD,SAAS,GAAI,CACX,GAAI,GAAKD,EACPK,EAAE,WAAWsqG,GAAG,IAAK,CAAC,MAEtB,WAAW9pG,KAAK,KACV6pG,GAAG,wBAAwBrqG,EAAGQ,CAAC,CACxC,CACD,SAAS,GAAI,CACX,MAAMA,EAAI,EAAE,IAAI,SAAS,EACzB,GAAI,GAAKb,EAAG,CACV,MAAMgG,EAAI,EAAE,IAAI,QAAS,EAAE,EAC3B3F,EAAE,WAAW2F,EAAG,IAAM,EAAEnF,EAAGmF,CAAC,CAAC,EAAG3F,EAAE,GAAG2F,CAAC,CACvC,MACC,EAAE,MAAO0kG,GAAG,kBAAkBrqG,EAAG,EAAGQ,CAAC,CAAC,KAAO6pG,GAAG,mBAAmBrqG,EAAGQ,CAAC,EAAG,EAAE,MAC/E,CACD,SAAS,GAAI,CACX,EAAE,MAAM,OAAQ,EAAIA,GAAM,CACxBR,EAAE,UAAU,CAAE,gBAAiBQ,CAAG,GAAG,EAAE,MAAO6pG,GAAG,kBAAkB,EAAG,EAAG7pG,EAAG,EAAE,aAAa,EAAG,IAAMR,EAAE,MAAK,CAAE,CACrH,CAAO,CACF,CACD,SAAS,EAAEQ,EAAGmF,EAAG,CACf3F,EAAE,UAAU,CAAE,gBAAiBQ,CAAC,CAAE,EAAG,EAAE,MAAMA,EAAG,EAAG,IAAM,CACvD,EAAE,OAAOmF,KAAO0kG,GAAG,gBAAgB,EAAG,EAAG7pG,EAAG,EAAE,aAAa,CAAC,EAAG,EAAE,MAAO8pG,GAAG,KAAK3kG,CAAC,EAAG,IAAM,CACxF3F,EAAE,MAAK,EAAI,EAAE,MAAK,CAC5B,CAAS,CACT,EAASsqG,GAAG,GAAG,CACV,CACF,CACH,EACAF,GAAG,QAAUK,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAKtS,GAAIuS,IAAK,CAClB,QAAQ,CAAE,QAAS5qG,EAAG,WAAY,CAAC,EAAI,CACrC,MAAM,EAAIA,IAAM,WAAa,OAAS,QACtC,SAAW2qG,GAAG,qBAAqB,CAAC,SAAS,CAAC,QAC/C,EACD,OAAQ,CAAC,CAAE,WAAY3qG,QAAY2qG,GAAG,aAAa3qG,CAAC,GACtD,EAAG6qG,IAAK,CACN,QAAS,CAAC,WAAY,UAAU,EAChC,KAAM,QACN,WAAY,SACZ,MAAO,GACP,MAAOD,IACP,KAAK5qG,EAAG,CACN,KAAM,CAAE,QAAS,EAAG,KAAM,EAAG,WAAY,CAAC,EAAKA,EAAG,EAAI,IAAM,WAAa2qG,GAAG,UAAU,GAAKA,GAAG,UAAU,GACxG3qG,EAAE,aAAc2qG,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAC7C,CACH,EACAD,GAAG,QAAUG,IACb,IAAIC,GAAK,GAAIC,GAAK,GAClB,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,IAAKhM,IACXgM,IAAG,KAAO,4CACVD,GAAG,QAAUC,IACb,OAAO,eAAeF,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMG,GAAKzQ,GAAI0Q,GAAK7S,GAAI8S,IAAK3S,GAAI4S,IAAKL,GAAIM,IAAK,CAC7C,QAAS,CAAC,CAAE,OAAQ,CAAE,EAAGrrG,EAAG,EAAG,CAAG,QAAWkrG,GAAG,+CAA+C,CAAC,QAAQlrG,CAAC,kBACzG,OAAQ,CAAC,CAAE,OAAQ,CAAE,EAAGA,EAAG,EAAG,CAAG,QAAWkrG,GAAG,SAASlrG,CAAC,QAAQ,CAAC,GACpE,EAAGsrG,IAAK,CACN,QAAS,cACT,KAAM,QACN,WAAY,UACZ,MAAO,GACP,MAAOD,IACP,KAAKrrG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,KAAM,EAAG,MAAO,EAAG,OAAQ,EAAG,aAAcL,EAAG,WAAYC,EAAG,GAAI,CAAG,EAAGI,EACxF,GAAI,CAAC,GAAK,CAAC,EACT,OACF,MAAM,EAAI,EAAE,IAAI,OAAO,EAAG,EAAIL,EAAE,SAAYsrG,GAAG,gBAAgBtrG,EAAE,KAAK,EAAI,GAC1EK,EAAE,WAAW,EAAG,KAAOkrG,GAAG,KAAKtrG,CAAC,YAAY,EAAGI,EAAE,GAAG,CAAC,EACrD,SAAS,GAAI,CACX,MAAM2F,EAAI,EAAE,IAAI,OAASulG,GAAG,KAAK,CAAC,SAAS,EAAGtlG,EAAI,EAAE,IAAI,GAAG,EAC3D5F,EAAE,UAAU,CAAE,EAAG2F,EAAG,EAAGC,EAAG,EAAG,EAAE,OAAO,EAAG,EAAE,EAAG,EAAE,MAAOslG,GAAG,KAAKvlG,CAAC,OAAQ,KAAO,EAAC,EAAK,EAAInF,GAAGmF,EAAGC,CAAC,CAAC,CAClG,CACD,SAAS,GAAI,CACX,OAAO,EAAE,OAAS,GAAK,CAAC,EAAE,KAAMD,GAAMA,IAAM,UAAYA,IAAM,OAAO,CACtE,CACD,SAAS,EAAEA,EAAGC,EAAG,CACf,MAAMC,EAAI,EAAE,KAAK,MAAM,EAAGC,KAAQmlG,GAAG,gBAAgB,EAAGplG,EAAG,EAAE,KAAK,cAAeolG,GAAG,SAAS,KAAK,EAAGllG,EAAI,EAAE,MAAM,aAAemlG,GAAG,MAAM,EACzI,EAAE,OAAQA,GAAG,MAAMvlG,CAAC,MAAO,IAAM,CAC/B,EAAE,IAAIE,KAAOqlG,GAAG,KAAK,CAAC,IAAIvlG,CAAC,GAAG,EAAG,EAAE,GAAGG,KAAOolG,GAAG,YAAY,EAAG,EAAE,OAAS,GAAK,EAAE,MAAOA,GAAG,YAAYrlG,CAAC,kBAAoBqlG,GAAG,KAAKrlG,CAAC,SAAS,EAAG,EAAE,MAAOqlG,GAAG,YAAYnlG,CAAC,IAAIF,CAAC,gBAAiB,IAAM,CACpM,EAAE,OAAOD,KAAOslG,GAAG,KAAKnlG,CAAC,IAAIF,CAAC,GAAG,EAAG7F,EAAE,MAAO,EAAE,EAAE,OAAO,EAAG,EAAE,EAAE,OAChE,GAAE,QAASkrG,GAAG,KAAKnlG,CAAC,IAAIF,CAAC,OAAOF,CAAC,EAAE,CAC5C,CAAO,CACF,CACD,SAASnF,EAAEmF,EAAGC,EAAG,CACf,MAAMC,KAAQslG,IAAG,SAAS,EAAGC,IAAG,OAAO,EAAGtlG,EAAI,EAAE,KAAK,OAAO,EAC5D,EAAE,MAAMA,CAAC,EAAE,OAAQolG,GAAG,MAAMvlG,CAAC,MAAO,IAAM,EAAE,OAAQulG,GAAG,KAAKtlG,CAAC,MAAMD,CAAC,KAAKC,CAAC,MAAO,IAAM,EAAE,MAAOslG,GAAG,KAAKrlG,CAAC,IAAI,CAAC,IAAIF,CAAC,MAAM,CAAC,IAAIC,CAAC,KAAM,IAAM,CACzI5F,EAAE,QAAS,EAAE,OAAO,EAAG,EAAE,EAAE,MAAM8F,CAAC,CACnC,EAAC,CAAC,CACJ,CACF,CACH,EACAglG,GAAG,QAAUQ,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAKnT,GAAIoT,IAAKjT,GAAIkT,IAAKX,GAAIY,IAAK,CACpC,QAAS,4BACT,OAAQ,CAAC,CAAE,WAAY3rG,QAAYwrG,GAAG,oBAAoBxrG,CAAC,GAC7D,EAAG4rG,IAAK,CACN,QAAS,QACT,MAAO,GACP,MAAOD,IACP,KAAK3rG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,KAAM,EAAG,MAAO,EAAG,WAAY,EAAG,OAAQL,CAAC,EAAKK,EAChE,GAAKL,GAAK,OAAOA,GAAK,SAAWK,EAAE,aAAcwrG,GAAG,SAAUC,IAAG,SAAS,EAAGC,IAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAI1rG,EAAE,QAASwrG,GAAG,KAAK7rG,CAAC,QAAQ,CAAC,EAAE,CAC1I,CACH,EACA4rG,GAAG,QAAUK,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAKzT,GAAI0T,IAAKvT,GAAIwT,IAAKjB,GAAIkB,IAAK,CACpC,QAAS,6CACT,OAAQ,CAAC,CAAE,WAAYjsG,QAAY8rG,GAAG,qBAAqB9rG,CAAC,GAC9D,EAAGksG,IAAK,CACN,QAAS,OACT,WAAY,QACZ,MAAO,GACP,MAAOD,IACP,KAAKjsG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,KAAM,EAAG,MAAO,EAAG,OAAQ,EAAG,WAAYL,EAAG,GAAIC,CAAC,EAAKI,EACvE,GAAI,CAAC,GAAK,EAAE,SAAW,EACrB,MAAM,IAAI,MAAM,gCAAgC,EAClD,MAAM,EAAI,EAAE,QAAUJ,EAAE,KAAK,SAC7B,IAAI,EACJ,MAAM,EAAI,IAAM,IAAM,KAAQmsG,IAAG,SAAS,EAAGC,IAAG,OAAO,GACvD,IAAI,EACJ,GAAI,GAAK,EACP,EAAI,EAAE,IAAI,OAAO,EAAGhsG,EAAE,WAAW,EAAG,CAAC,MAClC,CACH,GAAI,CAAC,MAAM,QAAQ,CAAC,EAClB,MAAM,IAAI,MAAM,0BAA0B,EAC5C,MAAMQ,EAAI,EAAE,MAAM,UAAWb,CAAC,EAC9B,KAAQmsG,GAAG,IAAI,GAAG,EAAE,IAAI,CAACnmG,EAAGC,IAAM,EAAEpF,EAAGoF,CAAC,CAAC,CAAC,CAC3C,CACD5F,EAAE,KAAK,CAAC,EACR,SAAS,GAAI,CACX,EAAE,OAAO,EAAG,EAAE,EAAG,EAAE,MAAM,IAAKL,EAAIa,GAAM,EAAE,MAAOsrG,GAAG,KAAK,EAAC,CAAE,IAAI,CAAC,KAAKtrG,CAAC,IAAK,IAAM,EAAE,OAAO,EAAG,EAAE,EAAE,MAAO,EAAC,CAC3G,CACD,SAAS,EAAEA,EAAGmF,EAAG,CACf,MAAMC,EAAI,EAAED,CAAC,EACb,OAAO,OAAOC,GAAK,UAAYA,IAAM,QAAWkmG,GAAG,KAAK,EAAG,KAAI,CAAC,KAAKtrG,CAAC,IAAImF,CAAC,QAAWmmG,GAAG,KAAK,CAAC,QAAQlmG,CAAC,EACzG,CACF,CACH,EACAimG,GAAG,QAAUK,IACb,OAAO,eAAe1D,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAM2D,IAAK1D,GAAI2D,IAAKrD,GAAIsD,IAAKlD,GAAImD,IAAK3C,GAAI4C,IAAKvC,GAAIwC,IAAKpC,GAAIqC,IAAK/B,GAAIgC,IAAK5B,GAAI6B,IAAKpB,GAAIqB,IAAKf,GAAIgB,IAAK,CAEnGV,IAAG,QACHC,IAAG,QAEHC,IAAG,QACHC,IAAG,QAEHC,IAAG,QACHC,IAAG,QAEHC,IAAG,QACHC,IAAG,QAEH,CAAE,QAAS,OAAQ,WAAY,CAAC,SAAU,OAAO,CAAG,EACpD,CAAE,QAAS,WAAY,WAAY,SAAW,EAC9CC,IAAG,QACHC,IAAG,OACL,EACApE,GAAG,QAAUqE,IACb,IAAIC,GAAK,GAAIC,GAAK,GAClB,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,wBAA0B,OAC7B,MAAMC,GAAK3U,GAAI4U,GAAKzU,GAAI0U,IAAK,CAC3B,QAAS,CAAC,CAAE,OAAQ,CAAE,IAAKltG,CAAG,QAAWgtG,GAAG,+BAA+BhtG,CAAC,SAC5E,OAAQ,CAAC,CAAE,OAAQ,CAAE,IAAKA,CAAG,QAAWgtG,GAAG,aAAahtG,CAAC,GAC3D,EAAGmtG,IAAK,CACN,QAAS,kBACT,KAAM,QACN,WAAY,CAAC,UAAW,QAAQ,EAChC,OAAQ,cACR,MAAOD,IACP,KAAKltG,EAAG,CACN,KAAM,CAAE,aAAc,EAAG,GAAI,CAAC,EAAKA,EAAG,CAAE,MAAO,CAAG,EAAG,EACrD,GAAI,CAAC,MAAM,QAAQ,CAAC,EAAG,IACjBitG,GAAG,iBAAiB,EAAG,sEAAsE,EACjG,MACD,CACDG,IAAGptG,EAAG,CAAC,CACR,CACH,EACA,SAASotG,IAAGptG,EAAG,EAAG,CAChB,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,KAAM,EAAG,QAASL,EAAG,GAAIC,CAAC,EAAKI,EAC1DJ,EAAE,MAAQ,GACV,MAAM,EAAI,EAAE,MAAM,SAAWotG,GAAG,KAAK,CAAC,SAAS,EAC/C,GAAI,IAAM,GACRhtG,EAAE,UAAU,CAAE,IAAK,EAAE,MAAQ,GAAGA,EAAE,QAASgtG,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAC9D,OAAO,GAAK,UAAY,IAAKC,GAAG,mBAAmBrtG,EAAG,CAAC,EAAG,CACjE,MAAM,EAAI,EAAE,IAAI,WAAaotG,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EACvD,EAAE,MAAOA,GAAG,KAAK,CAAC,EAAG,IAAM,EAAE,CAAC,CAAC,EAAGhtG,EAAE,GAAG,CAAC,CACzC,CACD,SAAS,EAAE,EAAG,CACZ,EAAE,SAAS,IAAK,EAAE,OAAQ,EAAI,GAAM,CAClCA,EAAE,UAAU,CAAE,QAASL,EAAG,SAAU,EAAG,aAAcstG,GAAG,KAAK,GAAG,EAAI,CAAC,EAAGrtG,EAAE,WAAa,EAAE,MAAOotG,GAAG,KAAK,CAAC,EAAG,IAAM,EAAE,MAAO,EACjI,CAAK,CACF,CACH,CACAD,GAAG,wBAA0BK,IAC7BL,GAAG,QAAUI,IACb,IAAIE,GAAK,GAAIC,GAAK,GAClB,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,cAAgB,OACnB,MAAMC,GAAKlV,GAAImV,GAAKhV,GAAIiV,IAAK/Q,GAAIgR,IAAK,CACpC,QAAS,QACT,KAAM,QACN,WAAY,CAAC,SAAU,QAAS,SAAS,EACzC,OAAQ,cACR,KAAK1tG,EAAG,CACN,KAAM,CAAE,OAAQ,EAAG,GAAI,CAAC,EAAKA,EAC7B,GAAI,MAAM,QAAQ,CAAC,EACjB,OAAO2tG,IAAG3tG,EAAG,kBAAmB,CAAC,EACnC,EAAE,MAAQ,GAAI,IAAKwtG,GAAG,mBAAmB,EAAG,CAAC,GAAKxtG,EAAE,MAAOytG,IAAG,eAAeztG,CAAC,CAAC,CAChF,CACH,EACA,SAAS2tG,IAAG3tG,EAAG,EAAG,EAAIA,EAAE,OAAQ,CAC9B,KAAM,CAAE,IAAK,EAAG,aAAc,EAAG,KAAML,EAAG,QAASC,EAAG,GAAI,CAAC,EAAKI,EAChE,EAAE,CAAC,EAAG,EAAE,KAAK,aAAe,EAAE,QAAU,EAAE,QAAU,KAAO,EAAE,MAAQwtG,GAAG,eAAe,MAAM,EAAG,EAAE,OAAQ,EAAE,KAAK,GACjH,MAAM,EAAI,EAAE,KAAK,OAAO,EAAG,EAAI,EAAE,MAAM,SAAWD,GAAG,KAAK5tG,CAAC,SAAS,EACpE,EAAE,QAAQ,CAAC,EAAG,IAAM,IACd6tG,GAAG,mBAAmB,EAAG,CAAC,IAAM,EAAE,MAAOD,GAAG,KAAK,CAAC,MAAM,CAAC,GAAI,IAAMvtG,EAAE,UAAU,CACjF,QAASJ,EACT,WAAY,EACZ,SAAU,CAChB,EAAO,CAAC,CAAC,EAAGI,EAAE,GAAG,CAAC,EAClB,CAAG,EACD,SAAS,EAAE,EAAG,CACZ,KAAM,CAAE,KAAM,EAAG,cAAeQ,CAAG,EAAG,EAAGmF,EAAI,EAAE,OAAQC,EAAID,IAAM,EAAE,WAAaA,IAAM,EAAE,UAAY,EAAE,CAAC,IAAM,IAC7G,GAAI,EAAE,cAAgB,CAACC,EAAG,CACxB,MAAMC,EAAI,IAAIjG,CAAC,QAAQ+F,CAAC,oCAAoC,CAAC,4CAA4CnF,CAAC,OACtGgtG,GAAG,iBAAiB,EAAG3nG,EAAG,EAAE,YAAY,CAC7C,CACF,CACH,CACAynG,GAAG,cAAgBK,IACnBL,GAAG,QAAUI,IACb,OAAO,eAAeL,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMO,IAAKN,GAAIO,IAAK,CAClB,QAAS,cACT,KAAM,QACN,WAAY,CAAC,OAAO,EACpB,OAAQ,cACR,KAAO7tG,MAAU4tG,IAAG,eAAe5tG,EAAG,OAAO,CAC/C,EACAqtG,GAAG,QAAUQ,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAK1V,GAAI2V,IAAKxV,GAAIyV,IAAKvR,GAAIwR,IAAKnB,GAAIoB,IAAK,CAC7C,QAAS,CAAC,CAAE,OAAQ,CAAE,IAAKnuG,CAAG,QAAW+tG,GAAG,+BAA+B/tG,CAAC,SAC5E,OAAQ,CAAC,CAAE,OAAQ,CAAE,IAAKA,CAAG,QAAW+tG,GAAG,aAAa/tG,CAAC,GAC3D,EAAGouG,IAAK,CACN,QAAS,QACT,KAAM,QACN,WAAY,CAAC,SAAU,SAAS,EAChC,OAAQ,cACR,MAAOD,IACP,KAAKnuG,EAAG,CACN,KAAM,CAAE,OAAQ,EAAG,aAAc,EAAG,GAAI,CAAG,EAAGA,EAAG,CAAE,YAAa,CAAC,EAAK,EACtE,EAAE,MAAQ,GAAI,IAAKguG,IAAG,mBAAmB,EAAG,CAAC,IAAM,KAAQE,IAAG,yBAAyBluG,EAAG,CAAC,EAAIA,EAAE,MAAOiuG,IAAG,eAAejuG,CAAC,CAAC,EAC7H,CACH,EACA8tG,GAAG,QAAUM,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAKjW,GAAIkW,GAAK/V,GAAIgW,IAAK,CAC3B,QAAS,CAAC,CAAE,OAAQ,CAAE,IAAKxuG,EAAG,IAAK,CAAG,KAAO,IAAM,UAAasuG,GAAG,6BAA6BtuG,CAAC,oBAAuBsuG,GAAG,6BAA6BtuG,CAAC,qBAAqB,CAAC,iBAC/K,OAAQ,CAAC,CAAE,OAAQ,CAAE,IAAKA,EAAG,IAAK,CAAG,KAAO,IAAM,UAAasuG,GAAG,mBAAmBtuG,CAAC,OAAUsuG,GAAG,mBAAmBtuG,CAAC,kBAAkB,CAAC,GAC5I,EAAGyuG,IAAK,CACN,QAAS,WACT,KAAM,QACN,WAAY,CAAC,SAAU,SAAS,EAChC,OAAQ,cACR,YAAa,GACb,MAAOD,IACP,KAAKxuG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,aAAc,EAAG,KAAM,EAAG,GAAIL,CAAC,EAAKK,EAC/D,IAAIJ,EAAG,EACP,KAAM,CAAE,YAAa,EAAG,YAAa,CAAC,EAAK,EAC3CD,EAAE,KAAK,MAAQC,EAAI,IAAM,OAAS,EAAI,EAAG,EAAI,GAAKA,EAAI,EACtD,MAAM,EAAI,EAAE,MAAM,SAAW0uG,GAAG,KAAK,CAAC,SAAS,EAC/C,GAAItuG,EAAE,UAAU,CAAE,IAAKJ,EAAG,IAAK,CAAG,GAAG,IAAM,QAAUA,IAAM,EAAG,IACxD2uG,GAAG,iBAAiB5uG,EAAG,sEAAsE,EACjG,MACD,CACD,GAAI,IAAM,QAAUC,EAAI,EAAG,IACrB2uG,GAAG,iBAAiB5uG,EAAG,iDAAiD,EAAGK,EAAE,OACjF,MACD,CACD,MAAQuuG,GAAG,mBAAmB5uG,EAAG,CAAC,EAAG,CACnC,IAAIiG,KAAQ0oG,GAAG,KAAK,CAAC,OAAO1uG,CAAC,GAC7B,IAAM,SAAWgG,KAAQ0oG,GAAG,KAAK1oG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAK5F,EAAE,KAAK4F,CAAC,EAC/D,MACD,CACDjG,EAAE,MAAQ,GACV,MAAM,EAAI,EAAE,KAAK,OAAO,EACxB,IAAM,QAAUC,IAAM,EAAIY,EAAE,EAAG,IAAM,EAAE,GAAG,EAAG,IAAM,EAAE,MAAK,CAAE,CAAC,EAAIZ,IAAM,GAAK,EAAE,IAAI,EAAG,EAAE,EAAG,IAAM,QAAU,EAAE,MAAO0uG,GAAG,KAAK,CAAC,cAAe,CAAC,IAAM,EAAE,IAAI,EAAG,EAAE,EAAG,EAAG,GAAGtuG,EAAE,OAAO,EAAG,IAAMA,EAAE,MAAK,CAAE,EACjM,SAAS,GAAI,CACX,MAAM4F,EAAI,EAAE,KAAK,QAAQ,EAAGC,EAAI,EAAE,IAAI,QAAS,CAAC,EAChDrF,EAAEoF,EAAG,IAAM,EAAE,GAAGA,EAAG,IAAMD,EAAEE,CAAC,CAAC,CAAC,CAC/B,CACD,SAASrF,EAAEoF,EAAGC,EAAG,CACf,EAAE,SAAS,IAAK,EAAG,EAAIC,GAAM,CAC3B9F,EAAE,UAAU,CACV,QAAS,WACT,SAAU8F,EACV,aAAcyoG,GAAG,KAAK,IACtB,cAAe,EACzB,EAAW3oG,CAAC,EAAGC,GACf,CAAO,CACF,CACD,SAASF,EAAEC,EAAG,CACZ,EAAE,QAAS0oG,GAAG,KAAK1oG,CAAC,IAAI,EAAG,IAAM,OAAS,EAAE,MAAO0oG,GAAG,KAAK1oG,CAAC,OAAOhG,CAAC,GAAI,IAAM,EAAE,OAAO,EAAG,EAAE,EAAE,MAAO,IAAK,EAAE,MAAO0uG,GAAG,KAAK1oG,CAAC,MAAM,CAAC,GAAI,IAAM,EAAE,OAAO,EAAG,EAAE,EAAE,MAAK,CAAE,EAAGhG,IAAM,EAAI,EAAE,OAAO,EAAG,EAAE,EAAI,EAAE,MAAO0uG,GAAG,KAAK1oG,CAAC,OAAOhG,CAAC,GAAI,IAAM,EAAE,OAAO,EAAG,EAAE,CAAC,EACvP,CACF,CACH,EACAyuG,GAAG,QAAUI,IACb,IAAIC,GAAK,IACR,SAAS1uG,EAAG,CACX,OAAO,eAAeA,EAAG,aAAc,CAAE,MAAO,EAAI,GAAGA,EAAE,mBAAqBA,EAAE,qBAAuBA,EAAE,MAAQ,OACjH,MAAM,EAAIq4F,GAAI,EAAIG,GAAI,EAAIkE,GAC1B18F,EAAE,MAAQ,CACR,QAAS,CAAC,CAAE,OAAQ,CAAE,SAAU,EAAG,UAAW,EAAG,KAAM,CAAC,KAAS,CAC/D,MAAM,EAAI,IAAM,EAAI,WAAa,aACjC,SAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,aACxD,EACD,OAAQ,CAAC,CAAE,OAAQ,CAAE,SAAU,EAAG,UAAW,EAAG,KAAM,EAAG,gBAAiB,CAAC,QAAa,EAAE,gBAAgB,CAAC;AAAA,uBACxF,CAAC;AAAA,iBACP,CAAC;AAAA,YACN,CAAC,GAEb,EACE,MAAM,EAAI,CACR,QAAS,eACT,KAAM,SACN,WAAY,SACZ,MAAOA,EAAE,MACT,KAAK,EAAG,CACN,KAAM,CAAC,EAAG,CAAC,EAAIL,EAAE,CAAC,EAClBC,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,CAChB,CACL,EACE,SAASD,EAAE,CAAE,OAAQ,GAAK,CACxB,MAAM,EAAI,GAAI,EAAI,GAClB,UAAW,KAAK,EAAG,CACjB,GAAI,IAAM,YACR,SACF,MAAM,EAAI,MAAM,QAAQ,EAAE,CAAC,CAAC,EAAI,EAAI,EACpC,EAAE,CAAC,EAAI,EAAE,CAAC,CACX,CACD,MAAO,CAAC,EAAG,CAAC,CACb,CACD,SAASC,EAAE,EAAG,EAAI,EAAE,OAAQ,CAC1B,KAAM,CAAE,IAAK,EAAG,KAAM,EAAG,GAAI,CAAG,EAAG,EACnC,GAAI,OAAO,KAAK,CAAC,EAAE,SAAW,EAC5B,OACF,MAAMY,EAAI,EAAE,IAAI,SAAS,EACzB,UAAWmF,KAAK,EAAG,CACjB,MAAMC,EAAI,EAAED,CAAC,EACb,GAAIC,EAAE,SAAW,EACf,SACF,MAAMC,KAAQ,EAAE,gBAAgB,EAAG,EAAGF,EAAG,EAAE,KAAK,aAAa,EAC7D,EAAE,UAAU,CACV,SAAUA,EACV,UAAWC,EAAE,OACb,KAAMA,EAAE,KAAK,IAAI,CACzB,CAAO,EAAG,EAAE,UAAY,EAAE,GAAGC,EAAG,IAAM,CAC9B,UAAWC,KAAKF,KACV,EAAE,wBAAwB,EAAGE,CAAC,CACrC,IAAK,EAAE,MAAO,EAAE,KAAKD,CAAC,WAAY,EAAE,kBAAkB,EAAGD,EAAGpF,CAAC,CAAC,GAAG,KAAO,EAAE,mBAAmB,EAAGA,CAAC,EAAG,EAAE,KAAM,EAC9G,CACF,CACDR,EAAE,qBAAuBJ,EACzB,SAAS,EAAE,EAAG,EAAI,EAAE,OAAQ,CAC1B,KAAM,CAAE,IAAK,EAAG,KAAM,EAAG,QAAS,EAAG,GAAIY,CAAC,EAAK,EAAGmF,EAAI,EAAE,KAAK,OAAO,EACpE,UAAWC,KAAK,KACV,EAAE,mBAAmBpF,EAAG,EAAEoF,CAAC,CAAC,IAAM,EAAE,MAClC,EAAE,gBAAgB,EAAG,EAAGA,EAAGpF,EAAE,KAAK,aAAa,EACnD,IAAM,CACJ,MAAMqF,EAAI,EAAE,UAAU,CAAE,QAAS,EAAG,WAAYD,GAAKD,CAAC,EACtD,EAAE,oBAAoBE,EAAGF,CAAC,CAC3B,EACD,IAAM,EAAE,IAAIA,EAAG,EAAE,CAElB,EAAE,EAAE,GAAGA,CAAC,EACZ,CACD3F,EAAE,mBAAqB,EAAGA,EAAE,QAAU,CACxC,GAAG0uG,EAAE,EACL,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,IAAKvW,GAAIwW,IAAKrW,GAAIsW,IAAK,CAC3B,QAAS,8BACT,OAAQ,CAAC,CAAE,OAAQ9uG,CAAG,OAAS4uG,IAAG,oBAAoB5uG,EAAE,YAAY,GACtE,EAAG+uG,IAAK,CACN,QAAS,gBACT,KAAM,SACN,WAAY,CAAC,SAAU,SAAS,EAChC,MAAOD,IACP,KAAK9uG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,KAAM,EAAG,GAAI,CAAG,EAAGA,EAC9C,MAAQ6uG,IAAG,mBAAmB,EAAG,CAAC,EAChC,OACF,MAAMlvG,EAAI,EAAE,KAAK,OAAO,EACxB,EAAE,MAAM,MAAO,EAAIC,GAAM,CACvBI,EAAE,UAAU,CAAE,aAAcJ,CAAC,CAAE,EAAGI,EAAE,UAAU,CAC5C,QAAS,gBACT,KAAMJ,EACN,UAAW,CAAC,QAAQ,EACpB,aAAcA,EACd,cAAe,EACvB,EAASD,CAAC,EAAG,EAAE,MAAOivG,IAAG,KAAKjvG,CAAC,EAAG,IAAM,CAChCK,EAAE,MAAM,EAAE,EAAG,EAAE,WAAa,EAAE,OACtC,CAAO,CACF,GAAGA,EAAE,GAAGL,CAAC,CACX,CACH,EACAgvG,GAAG,QAAUI,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAKvS,GAAIwS,GAAK7W,GAAI8W,IAAKrV,GAAIsV,GAAK5W,GAAI6W,IAAK,CAC7C,QAAS,sCACT,OAAQ,CAAC,CAAE,OAAQrvG,CAAG,OAASkvG,GAAG,0BAA0BlvG,EAAE,kBAAkB,GAClF,EAAGsvG,IAAK,CACN,QAAS,uBACT,KAAM,CAAC,QAAQ,EACf,WAAY,CAAC,UAAW,QAAQ,EAChC,eAAgB,GAChB,YAAa,GACb,MAAOD,IACP,KAAKrvG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,aAAc,EAAG,KAAM,EAAG,UAAWL,EAAG,GAAIC,CAAC,EAAKI,EAC7E,GAAI,CAACL,EACH,MAAM,IAAI,MAAM,0BAA0B,EAC5C,KAAM,CAAE,UAAW,EAAG,KAAM,CAAC,EAAKC,EAClC,GAAIA,EAAE,MAAQ,GAAI,EAAE,mBAAqB,UAAawvG,GAAG,mBAAmBxvG,EAAG,CAAC,EAC9E,OACF,MAAM,KAAQqvG,GAAG,qBAAqB,EAAE,UAAU,EAAG,KAAQA,GAAG,qBAAqB,EAAE,iBAAiB,EACxG,EAAG,EAAEjvG,EAAE,MAAOkvG,GAAG,KAAKvvG,CAAC,QAAQwvG,IAAG,QAAQ,MAAM,EAAE,EAClD,SAAS,GAAI,CACX,EAAE,MAAM,MAAO,EAAItpG,GAAM,CACvB,CAAC,EAAE,QAAU,CAAC,EAAE,OAASF,EAAEE,CAAC,EAAI,EAAE,GAAG,EAAEA,CAAC,EAAG,IAAMF,EAAEE,CAAC,CAAC,CAC7D,CAAO,CACF,CACD,SAAS,EAAEA,EAAG,CACZ,IAAIC,EACJ,GAAI,EAAE,OAAS,EAAG,CAChB,MAAMC,KAAQqpG,GAAG,gBAAgBxvG,EAAG,EAAE,WAAY,YAAY,EAC9DkG,KAAQmpG,GAAG,eAAe,EAAGlpG,EAAGF,CAAC,CACzC,MAAa,EAAE,OAASC,KAAQopG,GAAG,IAAI,GAAG,EAAE,IAAKnpG,MAAUmpG,GAAG,KAAKrpG,CAAC,QAAQE,CAAC,EAAE,CAAC,EAAID,EAAIopG,GAAG,IACrF,OAAO,EAAE,SAAWppG,KAAQopG,GAAG,IAAIppG,EAAG,GAAG,EAAE,IAAKC,MAAUmpG,GAAG,QAASD,GAAG,YAAYjvG,EAAG+F,CAAC,CAAC,SAASF,CAAC,GAAG,CAAC,MAAQqpG,GAAG,KAAKppG,CAAC,CAC1H,CACD,SAAStF,EAAEqF,EAAG,CACZ,EAAE,QAASqpG,GAAG,YAAY,CAAC,IAAIrpG,CAAC,GAAG,CACpC,CACD,SAASF,EAAEE,EAAG,CACZ,GAAI,EAAE,mBAAqB,OAAS,EAAE,kBAAoB,IAAM,GAAI,CAClErF,EAAEqF,CAAC,EACH,MACD,CACD,GAAI,IAAM,GAAI,CACZ7F,EAAE,UAAU,CAAE,mBAAoB6F,CAAC,CAAE,EAAG7F,EAAE,QAAS,GAAK,EAAE,MAAK,EAC/D,MACD,CACD,GAAI,OAAO,GAAK,UAAY,IAAKovG,GAAG,mBAAmBxvG,EAAG,CAAC,EAAG,CAC5D,MAAMkG,EAAI,EAAE,KAAK,OAAO,EACxB,EAAE,mBAAqB,WAAaF,EAAEC,EAAGC,EAAG,EAAE,EAAG,EAAE,MAAOopG,GAAG,KAAKppG,CAAC,EAAG,IAAM,CAC1E9F,EAAE,MAAK,EAAIQ,EAAEqF,CAAC,CACxB,CAAS,IAAMD,EAAEC,EAAGC,CAAC,EAAG,GAAK,EAAE,MAAOopG,GAAG,KAAKppG,CAAC,EAAG,IAAM,EAAE,MAAO,GAC1D,CACF,CACD,SAASF,EAAEC,EAAGC,EAAGC,EAAG,CAClB,MAAMoB,EAAI,CACR,QAAS,uBACT,SAAUtB,EACV,aAAcupG,GAAG,KAAK,GAC9B,EACMrpG,IAAM,IAAM,OAAO,OAAOoB,EAAG,CAC3B,cAAe,GACf,aAAc,GACd,UAAW,EACZ,GAAGnH,EAAE,UAAUmH,EAAGrB,CAAC,CACrB,CACF,CACH,EACAkpG,GAAG,QAAUM,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,IAAKtX,GAAIuX,GAAK/S,GAAIgT,GAAKlX,GAAImX,GAAKX,GAAIY,IAAK,CAC7C,QAAS,aACT,KAAM,SACN,WAAY,SACZ,KAAK5vG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,aAAc,EAAG,KAAM,EAAG,GAAIL,CAAC,EAAKK,EAC/DL,EAAE,KAAK,mBAAqB,OAAS,EAAE,uBAAyB,QAAUgwG,GAAG,QAAQ,KAAK,IAAIH,IAAG,WAAW7vG,EAAGgwG,GAAG,QAAS,sBAAsB,CAAC,EAClJ,MAAM/vG,KAAQ6vG,GAAG,qBAAqB,CAAC,EACvC,UAAW,KAAK7vG,EACdD,EAAE,kBAAkB,IAAI,CAAC,EAC3BA,EAAE,KAAK,aAAeC,EAAE,QAAUD,EAAE,QAAU,KAAOA,EAAE,MAAQ+vG,GAAG,eAAe,MAAM,KAAOA,GAAG,QAAQ9vG,CAAC,EAAGD,EAAE,KAAK,GACpH,MAAM,EAAIC,EAAE,OAAQ,GAAM,IAAK8vG,GAAG,mBAAmB/vG,EAAG,EAAE,CAAC,CAAC,CAAC,EAC7D,GAAI,EAAE,SAAW,EACf,OACF,MAAM,EAAI,EAAE,KAAK,OAAO,EACxB,UAAW,KAAK,EACd,EAAE,CAAC,EAAI,EAAE,CAAC,GAAK,EAAE,MAAO8vG,GAAG,gBAAgB,EAAG,EAAG,EAAG9vG,EAAE,KAAK,aAAa,CAAC,EAAG,EAAE,CAAC,EAAGA,EAAE,WAAa,EAAE,KAAI,EAAG,IAAI,EAAG,EAAE,EAAG,EAAE,MAAK,GAAKK,EAAE,GAAG,kBAAkB,IAAI,CAAC,EAAGA,EAAE,GAAG,CAAC,EACzK,SAAS,EAAE,EAAG,CACZ,OAAOL,EAAE,KAAK,aAAe,CAACA,EAAE,eAAiB,EAAE,CAAC,EAAE,UAAY,MACnE,CACD,SAAS,EAAE,EAAG,CACZK,EAAE,UAAU,CACV,QAAS,aACT,WAAY,EACZ,SAAU,CACX,EAAE,CAAC,CACL,CACF,CACH,EACAuvG,GAAG,QAAUK,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAKpT,GAAIqT,GAAK1X,GAAI2X,GAAKxX,GAAIyX,GAAKzX,GAAI0X,IAAK,CAC7C,QAAS,oBACT,KAAM,SACN,WAAY,SACZ,KAAKlwG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,KAAM,EAAG,aAAc,EAAG,GAAIL,CAAG,EAAGK,EAAG,CAAE,KAAMJ,GAAMD,EAAG,KAAQmwG,GAAG,qBAAqB,CAAC,EAAG,EAAI,EAAE,OAAQlqG,MAAUoqG,GAAG,mBAAmBrwG,EAAG,EAAEiG,CAAC,CAAC,CAAC,EAC7K,GAAI,EAAE,SAAW,GAAK,EAAE,SAAW,EAAE,SAAW,CAACjG,EAAE,KAAK,aAAeA,EAAE,QAAU,IACjF,OACF,MAAM,EAAIC,EAAE,cAAgB,CAACA,EAAE,yBAA2B,EAAE,WAAY,EAAI,EAAE,KAAK,OAAO,EAC1FD,EAAE,QAAU,IAAM,EAAEA,EAAE,iBAAiBowG,GAAG,QAAUpwG,EAAE,SAAYswG,GAAG,sBAAsB,EAAGtwG,EAAE,KAAK,GACrG,KAAM,CAAE,MAAO,CAAG,EAAGA,EACrB,IACA,SAAS,GAAI,CACX,UAAWiG,KAAK,EACd,GAAKpF,EAAEoF,CAAC,EAAGjG,EAAE,UAAYgG,EAAEC,CAAC,GAAK,EAAE,IAAI,EAAG,EAAE,EAAGD,EAAEC,CAAC,EAAG,EAAE,GAAG,CAAC,EAC9D,CACD,SAASpF,EAAEoF,EAAG,CACZ,UAAWC,KAAK,EACd,IAAI,OAAOD,CAAC,EAAE,KAAKC,CAAC,MAASmqG,GAAG,iBAAiBrwG,EAAG,YAAYkG,CAAC,oBAAoBD,CAAC,gCAAgC,CACzH,CACD,SAASD,EAAEC,EAAG,CACZ,EAAE,MAAM,MAAO,EAAIC,GAAM,CACvB,EAAE,MAAOkqG,GAAG,QAASD,GAAG,YAAY9vG,EAAG4F,CAAC,CAAC,SAASC,CAAC,IAAK,IAAM,CAC5D,MAAMC,EAAI,EAAE,SAASF,CAAC,EACtBE,GAAK9F,EAAE,UAAU,CACf,QAAS,oBACT,WAAY4F,EACZ,SAAUC,EACV,aAAcoqG,GAAG,KAAK,GAClC,EAAa,CAAC,EAAGtwG,EAAE,KAAK,aAAe,IAAM,GAAK,EAAE,UAAWowG,GAAG,KAAK,CAAC,IAAIlqG,CAAC,IAAK,EAAE,EAAI,CAACC,GAAK,CAACnG,EAAE,WAAa,EAAE,MAAOowG,GAAG,KAAK,CAAC,EAAG,IAAM,EAAE,MAAK,CAAE,CAClJ,CAAS,CACT,CAAO,CACF,CACF,CACH,EACAF,GAAG,QAAUK,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,IAAK5X,GAAI6X,IAAK,CAClB,QAAS,MACT,WAAY,CAAC,SAAU,SAAS,EAChC,YAAa,GACb,KAAKrwG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,GAAI,CAAG,EAAGA,EACrC,MAAQowG,IAAG,mBAAmB,EAAG,CAAC,EAAG,CACnCpwG,EAAE,KAAI,EACN,MACD,CACD,MAAM,EAAI,EAAE,KAAK,OAAO,EACxBA,EAAE,UAAU,CACV,QAAS,MACT,cAAe,GACf,aAAc,GACd,UAAW,EACZ,EAAE,CAAC,EAAGA,EAAE,WAAW,EAAG,IAAMA,EAAE,QAAS,IAAMA,EAAE,MAAO,EACxD,EACD,MAAO,CAAE,QAAS,mBAAqB,CACzC,EACAmwG,GAAG,QAAUE,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,IAAK7T,GAAI8T,IAAK,CAClB,QAAS,QACT,WAAY,QACZ,YAAa,GACb,KAAMD,IAAG,cACT,MAAO,CAAE,QAAS,8BAAgC,CACpD,EACAD,GAAG,QAAUE,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAKrY,GAAIsY,IAAKnY,GAAIoY,IAAK,CAC3B,QAAS,yCACT,OAAQ,CAAC,CAAE,OAAQ5wG,CAAG,OAAS0wG,GAAG,sBAAsB1wG,EAAE,OAAO,GACnE,EAAG6wG,IAAK,CACN,QAAS,QACT,WAAY,QACZ,YAAa,GACb,MAAOD,IACP,KAAK5wG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,aAAc,EAAG,GAAI,CAAG,EAAGA,EACtD,GAAI,CAAC,MAAM,QAAQ,CAAC,EAClB,MAAM,IAAI,MAAM,0BAA0B,EAC5C,GAAI,EAAE,KAAK,eAAiB,EAAE,cAC5B,OACF,MAAML,EAAI,EAAGC,EAAI,EAAE,IAAI,QAAS,EAAE,EAAG,EAAI,EAAE,IAAI,UAAW,IAAI,EAAG,EAAI,EAAE,KAAK,QAAQ,EACpFI,EAAE,UAAU,CAAE,QAAS,CAAG,GAAG,EAAE,MAAM,CAAC,EAAGA,EAAE,OAAOJ,EAAG,IAAMI,EAAE,MAAO,EAAE,IAAMA,EAAE,MAAM,EAAE,CAAC,EACvF,SAAS,GAAI,CACXL,EAAE,QAAQ,CAAC,EAAG,IAAM,CAClB,IAAI,KACAgxG,IAAG,mBAAmB,EAAG,CAAC,EAAI,EAAE,IAAI,EAAG,EAAE,EAAI,EAAI3wG,EAAE,UAAU,CAC/D,QAAS,QACT,WAAY,EACZ,cAAe,EACzB,EAAW,CAAC,EAAG,EAAI,GAAK,EAAE,MAAO0wG,GAAG,KAAK,CAAC,OAAO9wG,CAAC,EAAE,EAAE,OAAOA,EAAG,EAAE,EAAE,OAAO,KAAO8wG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,KAAI,EAAI,EAAE,GAAG,EAAG,IAAM,CACnH,EAAE,OAAO9wG,EAAG,EAAE,EAAG,EAAE,OAAO,EAAG,CAAC,EAAG,GAAKI,EAAE,eAAe,EAAG0wG,GAAG,IAAI,CAC3E,CAAS,CACT,CAAO,CACF,CACF,CACH,EACAD,GAAG,QAAUI,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,IAAKvY,GAAIwY,IAAK,CAClB,QAAS,QACT,WAAY,QACZ,KAAKhxG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,GAAI,CAAG,EAAGA,EACrC,GAAI,CAAC,MAAM,QAAQ,CAAC,EAClB,MAAM,IAAI,MAAM,0BAA0B,EAC5C,MAAM,EAAI,EAAE,KAAK,OAAO,EACxB,EAAE,QAAQ,CAACL,EAAGC,IAAM,CAClB,MAAQmxG,IAAG,mBAAmB,EAAGpxG,CAAC,EAChC,OACF,MAAM,EAAIK,EAAE,UAAU,CAAE,QAAS,QAAS,WAAYJ,GAAK,CAAC,EAC5DI,EAAE,GAAG,CAAC,EAAGA,EAAE,eAAe,CAAC,CACjC,CAAK,CACF,CACH,EACA8wG,GAAG,QAAUE,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAK7Y,GAAI8Y,IAAK3Y,GAAI4Y,IAAK,CAC3B,QAAS,CAAC,CAAE,OAAQpxG,CAAG,OAASkxG,GAAG,mBAAmBlxG,EAAE,QAAQ,WAChE,OAAQ,CAAC,CAAE,OAAQA,CAAG,OAASkxG,GAAG,sBAAsBlxG,EAAE,QAAQ,GACpE,EAAGqxG,IAAK,CACN,QAAS,KACT,WAAY,CAAC,SAAU,SAAS,EAChC,YAAa,GACb,MAAOD,IACP,KAAKpxG,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,aAAc,EAAG,GAAI,CAAG,EAAGA,EAC3C,EAAE,OAAS,QAAU,EAAE,OAAS,WAAcmxG,IAAG,iBAAiB,EAAG,2CAA2C,EAChH,MAAM,EAAIG,GAAG,EAAG,MAAM,EAAG3xG,EAAI2xG,GAAG,EAAG,MAAM,EACzC,GAAI,CAAC,GAAK,CAAC3xG,EACT,OACF,MAAMC,EAAI,EAAE,IAAI,QAAS,EAAE,EAAG,EAAI,EAAE,KAAK,QAAQ,EACjD,GAAI,EAAG,EAAEI,EAAE,MAAK,EAAI,GAAKL,EAAG,CAC1B,MAAM,EAAI,EAAE,IAAI,UAAU,EAC1BK,EAAE,UAAU,CAAE,SAAU,CAAG,GAAG,EAAE,GAAG,EAAG,EAAE,OAAQ,CAAC,EAAG,EAAE,OAAQ,CAAC,CAAC,CACtE,MAAW,EAAI,EAAE,GAAG,EAAG,EAAE,MAAM,CAAC,EAAI,EAAE,MAAOkxG,GAAG,KAAK,CAAC,EAAG,EAAE,MAAM,CAAC,EAC9DlxG,EAAE,KAAKJ,EAAG,IAAMI,EAAE,MAAM,EAAE,CAAC,EAC3B,SAAS,GAAI,CACX,MAAM,EAAIA,EAAE,UAAU,CACpB,QAAS,KACT,cAAe,GACf,aAAc,GACd,UAAW,EACZ,EAAE,CAAC,EACJA,EAAE,eAAe,CAAC,CACnB,CACD,SAAS,EAAE,EAAG,EAAG,CACf,MAAO,IAAM,CACX,MAAM,EAAIA,EAAE,UAAU,CAAE,QAAS,CAAC,EAAI,CAAC,EACvC,EAAE,OAAOJ,EAAG,CAAC,EAAGI,EAAE,oBAAoB,EAAGJ,CAAC,EAAG,EAAI,EAAE,OAAO,KAAOsxG,GAAG,KAAK,CAAC,EAAE,EAAIlxG,EAAE,UAAU,CAAE,SAAU,CAAG,EACnH,CACK,CACF,CACH,EACA,SAASsxG,GAAGtxG,EAAG,EAAG,CAChB,MAAM,EAAIA,EAAE,OAAO,CAAC,EACpB,OAAO,IAAM,QAAU,IAAKmxG,IAAG,mBAAmBnxG,EAAG,CAAC,CACxD,CACAixG,GAAG,QAAUI,IACb,IAAIE,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,IAAKhZ,GAAIiZ,IAAK,CAClB,QAAS,CAAC,OAAQ,MAAM,EACxB,WAAY,CAAC,SAAU,SAAS,EAChC,KAAK,CAAE,QAASzxG,EAAG,aAAc,EAAG,GAAI,GAAK,CAC3C,EAAE,KAAO,WAAcwxG,IAAG,iBAAiB,EAAG,IAAIxxG,CAAC,2BAA2B,CAC/E,CACH,EACAuxG,GAAG,QAAUE,IACb,OAAO,eAAe3E,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAM4E,IAAK3E,GAAI4E,IAAKtE,GAAIuE,IAAKtE,GAAIuE,IAAK/D,GAAIgE,IAAKzD,GAAI0D,IAAKrD,GAAIsD,IAAKrD,GAAIsD,IAAKjD,GAAIkD,IAAK3C,GAAI4C,IAAKtC,GAAIuC,IAAKjC,GAAIkC,IAAK/B,GAAIgC,IAAK7B,GAAI8B,IAAKzB,GAAI0B,IAAKvB,GAAIwB,IAAKlB,GAClJ,SAASmB,IAAG1yG,EAAI,GAAI,CAClB,MAAM,EAAI,CAERoyG,IAAG,QACHC,IAAG,QACHC,IAAG,QACHC,IAAG,QACHC,IAAG,QACHC,IAAG,QAEHT,IAAG,QACHC,IAAG,QACHF,IAAG,QACHG,IAAG,QACHC,IAAG,OACP,EACE,OAAOnyG,EAAI,EAAE,KAAK2xG,IAAG,QAASE,IAAG,OAAO,EAAI,EAAE,KAAKH,IAAG,QAASE,IAAG,OAAO,EAAG,EAAE,KAAKE,IAAG,OAAO,EAAG,CAClG,CACAhF,GAAG,QAAU4F,IACb,IAAIC,GAAK,GAAIC,GAAK,GAClB,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,cAAgB,OACnB,MAAMC,GAAKxa,GAAIya,IAAKhZ,GAAIiZ,GAAKrP,GAAIsP,IAAKrL,GAAIsL,IAAK,CAC7C,QAAS,iBACT,WAAY,SACZ,KAAOjzG,GAAMkzG,IAAGlzG,EAAGA,EAAE,MAAM,CAC7B,EACA,SAASkzG,IAAGlzG,EAAG,EAAG,CAChB,KAAM,CAAE,IAAK,EAAG,GAAI,CAAC,EAAKA,EAC1B,EAAE,UAAU,KAAK,eAAe,CAAC,EAAI,GACrC,MAAM,KAAQ6yG,GAAG,KAAKC,IAAG,QAAQ,cAAc,MAAOD,GAAG,aAAa,CAAC,CAAC,GAAIlzG,EAAI,EAAE,gBAAkB,IAAM,EAAE,aAAewzG,IAAGnzG,CAAC,EAC/H,EAAE,MAAO6yG,GAAG,MAAM,CAAC,GAAI,IAAM,EAAE,OAAO,EAAGlzG,CAAC,CAAC,CAC7C,CACAizG,GAAG,cAAgBM,IACnB,SAASC,IAAGnzG,EAAG,CACb,KAAM,CAAE,UAAW,EAAG,OAAQ,EAAG,KAAM,CAAC,EAAKA,EAAE,GAAI,CAAE,KAAM,EAAG,OAAQL,EAAG,UAAWC,EAAG,KAAM,CAAC,EAAK,EAAE,KAAM,CAAE,SAAU,CAAG,EAAG,EAAE,KAAM,EAAI,IAAImzG,GAAG,UAAU,CAAE,OAAQ,EAAG,SAAU,EAAG,KAAM,EAAG,OAAQpzG,EAAG,UAAWC,EAAG,KAAM,CAAC,CAAE,EAC/N,OAAOmzG,GAAG,cAAc,KAAK,EAAG,CAAC,KAAOC,IAAG,aAAahzG,EAAG,CAAC,CAC9D,CACA4yG,GAAG,QAAUK,IACb,IAAIG,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,WAAa,OAChB,MAAMC,GAAKhb,GAAIib,IAAKxZ,GAAIyZ,GAAK5L,GAAI6L,IAAK,CACpC,QAAS,cACT,WAAY,SACZ,KAAOxzG,GAAMyzG,IAAGzzG,EAAGA,EAAE,MAAM,CAC7B,EACA,SAASyzG,IAAGzzG,EAAG,EAAG,CAChB,KAAM,CAAE,IAAK,EAAG,QAAS,EAAG,GAAI,CAAG,EAAGA,EACtC,GAAI,EAAE,CAAC,IAAM,IACX,MAAM,IAAI,MAAM,IAAI,CAAC,yCAAyC,EAChE,MAAML,EAAI,EAAE,MAAM,CAAC,EACnB,GAAI,EAAE,UACJC,QACG,CACH,MAAM,EAAI,EAAE,IAAI,QAAS,EAAE,EAC3BA,EAAE,CAAC,EAAGI,EAAE,GAAG,CAAC,CACb,CACD,SAASJ,EAAE,EAAG,CACZ,GAAI,EAAE,UAAU,KAAK,eAAeD,CAAC,EAAG,CACtC,MAAM,EAAI,EAAE,IAAI,QAAU0zG,GAAG,KAAKC,IAAG,QAAQ,cAAc,MAAOD,GAAG,aAAa1zG,CAAC,CAAC,EAAE,EACtF,EAAE,GAAG,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAE,aAAc,CAAC,CAAC,CACtC,MACC,EAAE,EAAE,aAAc,CAAC,EAAC,CACvB,CACD,SAAS,EAAE,EAAG,EAAG,CACf,OAAO,EAAI,IAAM,EAAE,MAAM,IAAM,IACzB4zG,GAAG,SAASvzG,EAAG,CAAC,EAAG,EAAE,IAAI,EAAG,EAAE,CACxC,CAAK,EAAI,OAAUuzG,GAAG,SAASvzG,EAAG,CAAC,CAChC,CACH,CACAozG,GAAG,WAAaK,IAChBL,GAAG,QAAUI,IACb,IAAIE,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,IAAKf,GAAIgB,IAAKpb,GAAIqb,IAAK,CAC3B,QAAS,mBACT,WAAY,UACZ,KAAK7zG,EAAG,CACNA,EAAE,UAAa2zG,IAAG,eAAe3zG,EAAG,EAAE,KAAQ4zG,IAAG,iBAAiB5zG,EAAE,GAAI,oCAAoC,CAC7G,CACH,EACA0zG,GAAG,QAAUG,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,IAAKX,GAAIY,IAAK,CAClB,QAAS,gBACT,WAAY,SACZ,KAAOh0G,MAAU+zG,IAAG,YAAY/zG,EAAGA,EAAE,MAAM,CAC7C,EACA8zG,GAAG,QAAUE,IACb,OAAO,eAAerB,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMsB,IAAKrB,GAAIsB,IAAKd,GAAIe,IAAKT,GAAIU,IAAKN,GAAIO,IAAK,CAACJ,IAAG,QAASC,IAAG,QAASC,IAAG,QAASC,IAAG,OAAO,EAC9FzB,GAAG,QAAU0B,IACb,IAAIC,GAAK,GAAIC,GAAK,GAClB,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAK9F,GAAI+F,IAAK,CAClB,QAAS,oBACT,KAAM,SACN,WAAY,SACZ,MAAOD,GAAG,MACV,KAAOx0G,MAAUw0G,GAAG,sBAAsBx0G,CAAC,CAC7C,EACAu0G,GAAG,QAAUE,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,IAAKjG,GAAIkG,IAAK,CAClB,QAAS,mBACT,KAAM,SACN,WAAY,SACZ,KAAO50G,MAAU20G,IAAG,oBAAoB30G,CAAC,CAC3C,EACA00G,GAAG,QAAUE,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,IAAKtc,GAAIuc,IAAK,CAClB,QAAS,CAAC,cAAe,aAAa,EACtC,KAAM,QACN,WAAY,SACZ,KAAK,CAAE,QAAS/0G,EAAG,aAAc,EAAG,GAAI,GAAK,CAC3C,EAAE,WAAa,WAAc80G,IAAG,iBAAiB,EAAG,IAAI90G,CAAC,iCAAiC,CAC3F,CACH,EACA60G,GAAG,QAAUE,IACb,OAAO,eAAeT,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMU,IAAKT,GAAIU,IAAKP,GAAIQ,IAAKL,GAAIM,IAAK,CAACH,IAAG,QAASC,IAAG,QAASC,IAAG,OAAO,EACzEZ,GAAG,QAAUa,IACb,IAAIC,GAAK,GAAIC,GAAK,GAClB,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAKjd,GAAIkd,GAAK/c,GAAIgd,IAAK1b,GAAI2b,IAAK,CACpC,QAAS,uCACT,OAAQ,CAAC,CAAE,OAAQz1G,CAAG,OAASs1G,GAAG,2BAA2Bt1G,EAAE,mBAAmB,GACpF,EAAG01G,IAAK,CACN,QAAS,wBACT,KAAM,SACN,WAAY,CAAC,UAAW,QAAQ,EAChC,YAAa,GACb,MAAOD,IACP,KAAKz1G,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,KAAM,EAAG,UAAW,EAAG,GAAIL,CAAC,EAAKK,EAC5D,GAAI,CAAC,EACH,MAAM,IAAI,MAAM,0BAA0B,EAC5C,KAAM,CAAE,UAAWJ,EAAG,MAAO,CAAC,EAAKD,EACnC,aAAa21G,GAAG,KAAO,EAAE,MAAOA,GAAG,KAAK,CAAC,YAAa,IAAM,EAAE,MAAM,MAAO,EAAI,GAAM,EAAE,GAAG,EAAE,EAAG,CAAC,EAAG,IAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAI,IAAM,IAAM,EAAE,MAAM,MAAO,EAAI,GAAM,IAAM,OAAS,EAAE,CAAC,EAAI,EAAE,GAAG,EAAE,EAAG,CAAC,EAAG,IAAM,EAAE,CAAC,CAAC,CAAC,EAAG31G,EAAE,MAAQ,GAAIK,EAAE,MAAOs1G,GAAG,KAAK,CAAC,QAAQE,IAAG,QAAQ,MAAM,EAAE,EACrQ,SAAS,EAAE,EAAG,CACZ,GAAI,IAAM,GAAI,CACZx1G,EAAE,UAAU,CAAE,oBAAqB,CAAC,CAAE,EAAGA,EAAE,QAASJ,GAAK,EAAE,MAAK,EAChE,MACD,CACD,GAAI,IAAK21G,GAAG,mBAAmB51G,EAAG,CAAC,EAAG,CACpC,MAAM,EAAI,EAAE,KAAK,OAAO,EACxBK,EAAE,UAAU,CACV,QAAS,wBACT,SAAU,EACV,aAAcu1G,GAAG,KAAK,GACvB,EAAE,CAAC,EAAG31G,GAAK,EAAE,MAAO01G,GAAG,KAAK,CAAC,EAAG,IAAM,EAAE,MAAO,EACjD,CACF,CACD,SAAS,EAAE,EAAG,EAAG,CACf,SAAWA,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GACpC,CACD,SAAS,EAAE,EAAG,EAAG,CACf,MAAM90G,EAAI,GACV,UAAWmF,KAAK,EACd,EAAEA,CAAC,IAAM,IAAMnF,EAAE,QAAS80G,GAAG,KAAK,CAAC,QAAQ3vG,CAAC,EAAE,EAChD,SAAW2vG,GAAG,KAAK,GAAG90G,CAAC,CACxB,CACF,CACH,EACA60G,GAAG,QAAUK,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAKvd,GAAIwd,GAAKrd,GAAIsd,IAAK,CAC3B,QAAS,CAAC,CAAE,OAAQ,CAAE,IAAK91G,CAAG,QAAW41G,GAAG,+BAA+B51G,CAAC,SAC5E,OAAQ,CAAC,CAAE,OAAQ,CAAE,IAAKA,CAAG,QAAW41G,GAAG,aAAa51G,CAAC,GAC3D,EAAG+1G,IAAK,CACN,QAAS,mBACT,KAAM,QACN,WAAY,CAAC,UAAW,QAAQ,EAChC,MAAOD,IACP,KAAK91G,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,OAAQ,EAAG,KAAM,EAAG,GAAI,CAAC,EAAKA,EAAGL,EAAI,EAAE,OAAS,EAChE,GAAIA,IAAM,GACR,OACF,MAAMC,EAAI,EAAE,MAAM,SAAWg2G,GAAG,KAAK,CAAC,SAAS,EAC/C,GAAI,IAAM,GACR51G,EAAE,UAAU,CAAE,IAAKL,CAAG,GAAGK,EAAE,QAAS41G,GAAG,KAAKh2G,CAAC,MAAMD,CAAC,EAAE,UAC/C,OAAO,GAAK,UAAY,IAAKk2G,GAAG,mBAAmB,EAAG,CAAC,EAAG,CACjE,MAAM,EAAI,EAAE,IAAI,WAAaD,GAAG,KAAKh2G,CAAC,OAAOD,CAAC,EAAE,EAChD,EAAE,MAAOi2G,GAAG,KAAK,CAAC,EAAG,IAAM,EAAE,EAAGj2G,CAAC,CAAC,EAAGK,EAAE,GAAG,CAAC,CAC5C,CACD,EAAE,MAAQ,GACV,SAAS,EAAE,EAAG,EAAG,CACf,EAAE,SAAS,IAAK,EAAGJ,EAAI,GAAM,CAC3BI,EAAE,UAAU,CAAE,QAAS,mBAAoB,SAAU,EAAG,aAAc61G,GAAG,KAAK,GAAG,EAAI,CAAC,EAAG,EAAE,WAAa,EAAE,MAAOD,GAAG,KAAK,CAAC,EAAG,IAAM,EAAE,MAAO,EACpJ,CAAO,CACF,CACF,CACH,EACAD,GAAG,QAAUI,IACb,OAAO,eAAeX,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMY,IAAKX,GAAIY,IAAKN,GAAIO,IAAK,CAACF,IAAG,QAASC,IAAG,OAAO,EACpDb,GAAG,QAAUc,IACb,IAAIC,GAAK,GAAIC,GAAK,GAClB,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMC,GAAKhe,GAAIie,IAAK,CAClB,QAAS,CAAC,CAAE,WAAYt2G,QAAYq2G,GAAG,0BAA0Br2G,CAAC,IAClE,OAAQ,CAAC,CAAE,WAAYA,QAAYq2G,GAAG,cAAcr2G,CAAC,GACvD,EAAGu2G,IAAK,CACN,QAAS,SACT,KAAM,CAAC,SAAU,QAAQ,EACzB,WAAY,SACZ,MAAO,GACP,MAAOD,IACP,KAAKt2G,EAAG,EAAG,CACT,KAAM,CAAE,IAAK,EAAG,KAAM,EAAG,MAAO,EAAG,OAAQL,EAAG,WAAYC,EAAG,GAAI,CAAG,EAAGI,EAAG,CAAE,KAAM,EAAG,cAAe,EAAG,UAAW,EAAG,KAAM,CAAC,EAAK,EACjI,GAAI,CAAC,EAAE,gBACL,OACF,EAAI,IAAMQ,IACV,SAAS,GAAI,CACX,MAAMmF,EAAI,EAAE,WAAW,UAAW,CAChC,IAAK,EAAE,QACP,KAAM,EAAE,KAAK,OACd,GAAGC,EAAI,EAAE,MAAM,UAAYywG,GAAG,KAAK1wG,CAAC,IAAI/F,CAAC,GAAG,EAAGiG,EAAI,EAAE,IAAI,OAAO,EAAGC,EAAI,EAAE,IAAI,QAAQ,EACtF,EAAE,MAAOuwG,GAAG,YAAYzwG,CAAC,qBAAqBA,CAAC,sBAAuB,IAAM,EAAE,OAAOC,KAAOwwG,GAAG,KAAKzwG,CAAC,mBAAmB,EAAE,OAAOE,KAAOuwG,GAAG,KAAKzwG,CAAC,WAAW,EAAG,IAAM,EAAE,OAAOC,KAAOwwG,GAAG,YAAY,EAAE,OAAOvwG,EAAGF,CAAC,CAAC,EAAG5F,EAAE,aAAcq2G,GAAG,IAAItwG,EAAC,EAAIoB,EAAC,CAAE,CAAC,EACrP,SAASpB,GAAI,CACX,OAAO,EAAE,eAAiB,GAAKswG,GAAG,OAAUA,GAAG,KAAKz2G,CAAC,QAAQkG,CAAC,EAC/D,CACD,SAASqB,GAAI,CACX,MAAM,EAAI,EAAE,UAAakvG,GAAG,MAAMzwG,CAAC,kBAAkBE,CAAC,IAAI,CAAC,OAAOA,CAAC,IAAI,CAAC,QAAWuwG,GAAG,KAAKvwG,CAAC,IAAI,CAAC,IAAKsB,KAAQivG,GAAG,aAAavwG,CAAC,oBAAoB,CAAC,MAAMA,CAAC,SAAS,CAAC,KACrK,SAAWuwG,GAAG,KAAKvwG,CAAC,OAAOA,CAAC,gBAAgBD,CAAC,QAAQ,CAAC,QAAQuB,CAAC,EAChE,CACF,CACD,SAAS5G,GAAI,CACX,MAAMmF,EAAI,EAAE,QAAQhG,CAAC,EACrB,GAAI,CAACgG,EAAG,CACNI,IACA,MACD,CACD,GAAIJ,IAAM,GACR,OACF,KAAM,CAACC,EAAGC,EAAGC,CAAC,EAAIqB,EAAExB,CAAC,EACrBC,IAAM,GAAK5F,EAAE,KAAK,EAAG,GACrB,SAAS+F,GAAI,CACX,GAAI,EAAE,eAAiB,GAAI,CACzB,EAAE,OAAO,KAAKqB,EAAG,GACjB,MACD,CACD,MAAM,IAAI,MAAMA,EAAC,CAAE,EACnB,SAASA,GAAI,CACX,MAAO,mBAAmBzH,CAAC,gCAAgC,CAAC,GAC7D,CACF,CACD,SAASwH,EAAEC,EAAG,CACZ,MAAMC,EAAID,aAAa,UAAaivG,GAAG,YAAYjvG,CAAC,EAAI,EAAE,KAAK,WAAcivG,GAAG,KAAK,EAAE,KAAK,OAAO,MAAOA,GAAG,aAAa12G,CAAC,CAAC,GAAK,OAAQ2H,EAAI,EAAE,WAAW,UAAW,CAAE,IAAK3H,EAAG,IAAKyH,EAAG,KAAMC,CAAC,CAAE,EAChM,OAAO,OAAOD,GAAK,UAAY,EAAEA,aAAa,QAAU,CAACA,EAAE,MAAQ,SAAUA,EAAE,YAAcivG,GAAG,KAAK/uG,CAAC,WAAW,EAAI,CAAC,SAAUF,EAAGE,CAAC,CACrI,CACD,SAAS,GAAI,CACX,GAAI,OAAO3B,GAAK,UAAY,EAAEA,aAAa,SAAWA,EAAE,MAAO,CAC7D,GAAI,CAAC,EAAE,OACL,MAAM,IAAI,MAAM,6BAA6B,EAC/C,SAAW0wG,GAAG,WAAWvwG,CAAC,IAAI,CAAC,GAChC,CACD,OAAO,OAAOD,GAAK,cAAiBwwG,GAAG,KAAKvwG,CAAC,IAAI,CAAC,OAAUuwG,GAAG,KAAKvwG,CAAC,SAAS,CAAC,GAChF,CACF,CACF,CACH,EACAswG,GAAG,QAAUG,IACb,OAAO,eAAeJ,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMK,IAAKJ,GAAIK,IAAK,CAACD,IAAG,OAAO,EAC/BL,GAAG,QAAUM,IACb,IAAIC,GAAK,GACT,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,kBAAoBA,GAAG,mBAAqB,OAC/CA,GAAG,mBAAqB,CACtB,QACA,cACA,UACA,aACA,WACA,YACA,UACF,EACAA,GAAG,kBAAoB,CACrB,mBACA,kBACA,eACF,EACA,OAAO,eAAenP,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMoP,IAAKnP,GAAIoP,IAAKpO,GAAIqO,IAAK/J,GAAIgK,IAAKnE,GAAIoE,IAAKzC,GAAI0C,IAAK5B,GAAI6B,IAAKd,GAAIe,GAAKR,GAAIS,IAAK,CACjFL,IAAG,QACHH,IAAG,QACHC,IAAG,WACCC,IAAG,SAAS,EAAE,EAClBI,IAAG,QACHC,GAAG,mBACHA,GAAG,kBACHH,IAAG,QACHC,IAAG,OACL,EACAzP,GAAG,QAAU4P,IACb,IAAIC,GAAK,GAAIC,GAAK,GAClB,OAAO,eAAeA,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrDA,GAAG,WAAa,OAChB,IAAIC,IACH,SAASt3G,EAAG,CACXA,EAAE,IAAM,MAAOA,EAAE,QAAU,SAC7B,GAAGs3G,KAAOD,GAAG,WAAaC,GAAK,GAAG,EAClC,OAAO,eAAeF,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMG,GAAKlf,GAAImf,GAAKH,GAAII,GAAK/T,GAAIgU,IAAKnU,GAAIoU,IAAKnf,GAAIof,IAAK,CACtD,QAAS,CAAC,CAAE,OAAQ,CAAE,WAAY53G,EAAG,QAAS,CAAG,KAAOA,IAAMw3G,GAAG,WAAW,IAAM,QAAQ,CAAC,mBAAqB,iBAAiB,CAAC,qBAClI,OAAQ,CAAC,CAAE,OAAQ,CAAE,WAAYx3G,EAAG,IAAK,EAAG,QAAS,CAAG,QAAWu3G,GAAG,aAAav3G,CAAC,UAAU,CAAC,eAAe,CAAC,GACjH,EAAG63G,IAAK,CACN,QAAS,gBACT,KAAM,SACN,WAAY,SACZ,MAAOD,IACP,KAAK53G,EAAG,CACN,KAAM,CAAE,IAAK,EAAG,KAAM,EAAG,OAAQ,EAAG,aAAc,EAAG,GAAIL,CAAC,EAAKK,EAAG,CAAE,MAAOJ,CAAG,EAAG,EACjF,GAAI,CAACD,EAAE,KAAK,cACV,MAAM,IAAI,MAAM,8CAA8C,EAChE,MAAM,EAAI,EAAE,aACZ,GAAI,OAAO,GAAK,SACd,MAAM,IAAI,MAAM,sCAAsC,EACxD,GAAI,EAAE,QACJ,MAAM,IAAI,MAAM,yCAAyC,EAC3D,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,uCAAuC,EACzD,MAAM,EAAI,EAAE,IAAI,QAAS,EAAE,EAAG,EAAI,EAAE,MAAM,SAAW23G,GAAG,KAAK,CAAC,MAAOA,GAAG,aAAa,CAAC,CAAC,EAAE,EACzF,EAAE,MAAOA,GAAG,YAAY,CAAC,eAAgB,IAAM,EAAG,EAAE,IAAMv3G,EAAE,MAAM,GAAI,CAAE,WAAYw3G,GAAG,WAAW,IAAK,IAAK,EAAG,QAAS,CAAG,EAAC,EAAGx3G,EAAE,GAAG,CAAC,EACrI,SAAS,GAAI,CACX,MAAMQ,EAAI,IACV,EAAE,GAAG,EAAE,EACP,UAAWmF,KAAKnF,EACd,EAAE,UAAW+2G,GAAG,KAAK,CAAC,QAAQ5xG,CAAC,EAAE,EAAG,EAAE,OAAO,EAAG,EAAEnF,EAAEmF,CAAC,CAAC,CAAC,EACzD,EAAE,KAAI,EAAI3F,EAAE,MAAM,GAAI,CAAE,WAAYw3G,GAAG,WAAW,QAAS,IAAK,EAAG,QAAS,CAAC,CAAE,EAAG,EAAE,OACrF,CACD,SAAS,EAAEh3G,EAAG,CACZ,MAAMmF,EAAI,EAAE,KAAK,OAAO,EAAGC,EAAI5F,EAAE,UAAU,CAAE,QAAS,QAAS,WAAYQ,CAAG,EAAEmF,CAAC,EACjF,OAAO3F,EAAE,eAAe4F,EAAG2xG,GAAG,IAAI,EAAG5xG,CACtC,CACD,SAAS,GAAI,CACX,IAAInF,EACJ,MAAMmF,EAAI,CAAE,EAAEC,EAAIE,EAAE,CAAC,EACrB,IAAID,EAAI,GACR,QAAS,EAAI,EAAG,EAAIjG,EAAE,OAAQ,IAAK,CACjC,IAAIwH,EAAIxH,EAAE,CAAC,EACX,GAAIwH,GAAK,MAAQA,EAAE,MAAQ,IAAKuwG,IAAG,sBAAsBvwG,EAAGzH,EAAE,KAAK,KAAK,EAAG,CACzE,MAAM2H,EAAIF,EAAE,KACZ,GAAIA,EAAIqwG,GAAG,WAAW,KAAK93G,EAAE,KAAMA,EAAE,UAAU,KAAMA,EAAE,OAAQ2H,CAAC,EAAGF,aAAaqwG,GAAG,YAAcrwG,EAAIA,EAAE,QAASA,IAAM,OACpH,MAAM,IAAIswG,IAAG,QAAQ/3G,EAAE,KAAK,YAAaA,EAAE,OAAQ2H,CAAC,CACvD,CACD,MAAMD,GAAK7G,EAAyB4G,GAAE,cAAgB,MAAQ5G,IAAM,OAAS,OAASA,EAAE,CAAC,EACzF,GAAI,OAAO6G,GAAK,SACd,MAAM,IAAI,MAAM,iFAAiF,CAAC,GAAG,EACvGxB,EAAIA,IAAMD,GAAKE,EAAEsB,CAAC,GAAIrB,EAAEsB,EAAG,CAAC,CAC7B,CACD,GAAI,CAACxB,EACH,MAAM,IAAI,MAAM,mBAAmB,CAAC,oBAAoB,EAC1D,OAAOF,EACP,SAASG,EAAE,CAAE,SAAU,GAAK,CAC1B,OAAO,MAAM,QAAQ,CAAC,GAAK,EAAE,SAAS,CAAC,CACxC,CACD,SAASC,EAAE,EAAGqB,EAAG,CACf,GAAI,EAAE,MACJD,EAAE,EAAE,MAAOC,CAAC,UACL,EAAE,KACT,UAAWC,KAAK,EAAE,KAChBF,EAAEE,EAAGD,CAAC,MAER,OAAM,IAAI,MAAM,8BAA8B,CAAC,+BAA+B,CACjF,CACD,SAASD,EAAE,EAAGC,EAAG,CACf,GAAI,OAAO,GAAK,UAAY,KAAKzB,EAC/B,MAAM,IAAI,MAAM,mBAAmB,CAAC,iCAAiC,EACvEA,EAAE,CAAC,EAAIyB,CACR,CACF,CACF,CACH,EACAgwG,GAAG,QAAUS,IACb,IAAIC,GAAK,GACT,MAAMC,IAAK,+CAAgDC,IAAK,+CAAgDC,IAAK,CACnH,mDAAoD,GACpD,yDAA0D,GAC1D,0DAA2D,GAC3D,yDAA0D,GAC1D,wDAAyD,GACzD,gEAAiE,GACjE,sDAAuD,EACzD,EAAGC,IAAK,OAAQC,IAAK,iDAAkDC,IAAK,CAC1E,CACE,KAAM,WACP,EACD,CACE,KAAM,iBACP,EACD,CACE,KAAM,kBACP,EACD,CACE,KAAM,iBACP,EACD,CACE,KAAM,gBACP,EACD,CACE,KAAM,wBACP,EACD,CACE,KAAM,cACP,CACH,EAAGC,IAAK,CACN,SACA,SACF,EAAGC,IAAK,yJAA0JC,IAAK,CACrK,YAAa,CACX,SAAU,8CACV,KAAM,SACN,qBAAsB,CACpB,YAAa,OACd,EACD,WAAY,GACZ,QAAS,CAAE,CACZ,EACD,aAAc,CACZ,SAAU,wIACV,KAAM,SACN,qBAAsB,CACpB,MAAO,CACL,CACE,YAAa,OACd,EACD,CACE,KAAM,oCACP,CACF,CACF,EACD,WAAY,GACZ,QAAS,CAAE,CACZ,EACD,iBAAkB,CAChB,SAAU,4DACV,KAAM,gCACN,WAAY,EACb,EACD,cAAe,CACb,SAAU,sDACV,KAAM,sCACN,WAAY,EACb,CACH,EAAGC,IAAK,CACN,QAAST,IACT,IAAKC,IACL,YAAaC,IACb,eAAgBC,IAChB,MAAOC,IACP,MAAOC,IACP,KAAMC,IACN,SAAUC,IACV,WAAYC,GACd,EAAGE,IAAK,+CAAgDC,IAAK,wDAAyDC,IAAK,CACzH,yDAA0D,EAC5D,EAAGC,IAAK,OAAQC,IAAK,oCAAqCC,IAAK,CAC7D,SACA,SACF,EAAGC,IAAK,CACN,YAAa,CACX,KAAM,qBACP,EACD,MAAO,CACL,YAAa,OACd,EACD,SAAU,CACR,YAAa,OACd,EACD,qBAAsB,CACpB,YAAa,OACd,EACD,WAAY,CACV,KAAM,SACN,qBAAsB,CACpB,YAAa,OACd,EACD,QAAS,CAAE,CACZ,EACD,kBAAmB,CACjB,KAAM,SACN,qBAAsB,CACpB,YAAa,OACd,EACD,cAAe,CACb,OAAQ,OACT,EACD,QAAS,CAAE,CACZ,EACD,iBAAkB,CAChB,KAAM,SACN,qBAAsB,CACpB,YAAa,OACd,EACD,QAAS,CAAE,CACZ,EACD,cAAe,CACb,YAAa,OACd,EACD,GAAI,CACF,YAAa,OACd,EACD,KAAM,CACJ,YAAa,OACd,EACD,KAAM,CACJ,YAAa,OACd,EACD,MAAO,CACL,KAAM,qBACP,EACD,MAAO,CACL,KAAM,qBACP,EACD,MAAO,CACL,KAAM,qBACP,EACD,IAAK,CACH,YAAa,OACd,CACH,EAAGC,IAAK,CACN,YAAa,CACX,KAAM,QACN,SAAU,EACV,MAAO,CACL,YAAa,OACd,CACF,CACH,EAAGC,IAAK,CACN,QAASR,IACT,IAAKC,IACL,YAAaC,IACb,eAAgBC,IAChB,MAAOC,IACP,KAAMC,IACN,WAAYC,IACZ,MAAOC,GACT,EAAGE,IAAK,+CAAgDC,IAAK,yDAA0DC,IAAK,CAC1H,0DAA2D,EAC7D,EAAGC,IAAK,OAAQC,IAAK,gDAAiDC,IAAK,CACzE,SACA,SACF,EAAGC,IAAK,CACN,iBAAkB,CAChB,YAAa,OACd,EACD,sBAAuB,CACrB,YAAa,OACd,CACH,EAAGC,IAAK,CACN,QAASP,IACT,IAAKC,IACL,YAAaC,IACb,eAAgBC,IAChB,MAAOC,IACP,KAAMC,IACN,WAAYC,GACd,EAAGE,IAAK,+CAAgDC,IAAK,qDAAsDC,IAAK,CACtH,sDAAuD,EACzD,EAAGC,IAAK,OAAQC,IAAK,iCAAkCC,IAAK,CAC1D,SACA,SACF,EAAGC,IAAK,CACN,gBAAiB,CACf,KAAM,QACP,EACD,iBAAkB,CAChB,KAAM,QACP,EACD,cAAe,CACb,YAAa,OACd,CACH,EAAGC,IAAK,CACN,QAASP,IACT,IAAKC,IACL,YAAaC,IACb,eAAgBC,IAChB,MAAOC,IACP,KAAMC,IACN,WAAYC,GACd,EAAGE,IAAK,+CAAgDC,IAAK,kDAAmDC,IAAK,CACnH,mDAAoD,EACtD,EAAGC,IAAK,OAAQC,IAAK,8BAA+BC,IAAK,CACvD,SACA,SACF,EAAGC,IAAK,CACN,IAAK,CACH,KAAM,6BACN,SAAU,mCACV,QAAS,WACV,EACD,QAAS,CACP,KAAM,mBACP,EACD,KAAM,CACJ,KAAM,4BACP,EACD,QAAS,CACP,KAAM,sBACP,EACD,YAAa,CACX,KAAM,4BACP,EACD,eAAgB,CACd,KAAM,sBACP,EACD,YAAa,CACX,KAAM,SACN,cAAe,CACb,KAAM,mBACP,EACD,qBAAsB,CACpB,KAAM,SACP,CACF,EACD,SAAU,CACR,KAAM,QACP,EACD,MAAO,CACL,KAAM,SACN,qBAAsB,CACpB,YAAa,OACd,CACF,CACH,EAAGC,IAAK,CACN,aAAc,CACZ,KAAM,SACN,QAAS,4BACV,EACD,UAAW,CACT,KAAM,SACN,OAAQ,KACT,EACD,mBAAoB,CAClB,KAAM,SACN,OAAQ,eACT,CACH,EAAGC,IAAK,CACN,QAASR,IACT,IAAKC,IACL,YAAaC,IACb,eAAgBC,IAChB,MAAOC,IACP,KAAMC,IACN,WAAYC,IACZ,MAAOC,GACT,EAAGE,IAAK,+CAAgDC,IAAK,+DAAgEC,IAAK,CAChI,gEAAiE,EACnE,EAAGC,IAAK,OAAQC,IAAK,uDAAwDC,IAAK,CAChF,SACA,SACF,EAAGC,IAAK,CACN,OAAQ,CACN,KAAM,QACP,CACH,EAAGC,IAAK,CACN,QAASP,IACT,IAAKC,IACL,YAAaC,IACb,eAAgBC,IAChB,MAAOC,IACP,KAAMC,IACN,WAAYC,GACd,EAAGE,IAAK,+CAAgDC,IAAK,uDAAwDC,IAAK,CACxH,wDAAyD,EAC3D,EAAGC,IAAK,OAAQC,IAAK,mCAAoCC,IAAK,CAC5D,SACA,SACF,EAAGC,IAAK,CACN,MAAO,CACL,KAAM,QACP,EACD,YAAa,CACX,KAAM,QACP,EACD,QAAS,GACT,WAAY,CACV,KAAM,UACN,QAAS,EACV,EACD,SAAU,CACR,KAAM,UACN,QAAS,EACV,EACD,UAAW,CACT,KAAM,UACN,QAAS,EACV,EACD,SAAU,CACR,KAAM,QACN,MAAO,EACR,CACH,EAAGC,IAAK,CACN,QAASP,IACT,IAAKC,IACL,YAAaC,IACb,eAAgBC,IAChB,MAAOC,IACP,KAAMC,IACN,WAAYC,GACd,EAAGE,IAAK,+CAAgDC,IAAK,wDAAyDC,IAAK,CACzH,yDAA0D,EAC5D,EAAGC,IAAK,OAAQC,IAAK,oCAAqCC,IAAK,CAC7D,SACA,SACF,EAAGC,IAAK,CACN,KAAM,CACJ,MAAO,CACL,CACE,KAAM,qBACP,EACD,CACE,KAAM,QACN,MAAO,CACL,KAAM,qBACP,EACD,SAAU,EACV,YAAa,EACd,CACF,CACF,EACD,MAAO,GACP,KAAM,CACJ,KAAM,QACN,MAAO,EACR,EACD,WAAY,CACV,KAAM,SACN,iBAAkB,CACnB,EACD,QAAS,CACP,KAAM,QACP,EACD,iBAAkB,CAChB,KAAM,QACP,EACD,QAAS,CACP,KAAM,QACP,EACD,iBAAkB,CAChB,KAAM,QACP,EACD,UAAW,CACT,KAAM,4BACP,EACD,UAAW,CACT,KAAM,oCACP,EACD,QAAS,CACP,KAAM,SACN,OAAQ,OACT,EACD,SAAU,CACR,KAAM,4BACP,EACD,SAAU,CACR,KAAM,oCACP,EACD,YAAa,CACX,KAAM,UACN,QAAS,EACV,EACD,YAAa,CACX,KAAM,4BACP,EACD,YAAa,CACX,KAAM,6BACN,QAAS,CACV,EACD,cAAe,CACb,KAAM,4BACP,EACD,cAAe,CACb,KAAM,oCACP,EACD,SAAU,CACR,KAAM,qBACP,EACD,kBAAmB,CACjB,KAAM,SACN,qBAAsB,CACpB,KAAM,qBACP,CACF,CACH,EAAGC,IAAK,CACN,mBAAoB,CAClB,KAAM,UACN,QAAS,CACV,EACD,2BAA4B,CAC1B,KAAM,6BACN,QAAS,CACV,EACD,YAAa,CACX,KAAM,CACJ,QACA,UACA,UACA,OACA,SACA,SACA,QACD,CACF,EACD,YAAa,CACX,KAAM,QACN,MAAO,CACL,KAAM,QACP,EACD,YAAa,GACb,QAAS,CAAE,CACZ,CACH,EAAGC,IAAK,CACN,QAASR,IACT,IAAKC,IACL,YAAaC,IACb,eAAgBC,IAChB,MAAOC,IACP,KAAMC,IACN,WAAYC,IACZ,MAAOC,GACT,EACA,OAAO,eAAepE,GAAI,aAAc,CAAE,MAAO,EAAE,CAAE,EACrD,MAAMsE,IAAK5D,IAAI6D,IAAKpD,IAAIqD,IAAK7C,IAAI8C,IAAKtC,IAAIuC,IAAK9B,IAAI+B,IAAKvB,IAAIwB,IAAKhB,IAAIiB,IAAKR,IAAIS,IAAK,CAAC,aAAa,EACjG,SAASC,IAAG78G,EAAG,CACb,MAAO,CACLo8G,IACAC,IACAC,IACAC,IACAC,IACA,EAAE,KAAMC,GAAE,EACVC,IACA,EAAE,KAAMC,GAAE,CACX,EAAC,QAAS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AAW,CACT,MAAO,YACP,YAAa,GACb,KAAM,SACN,SAAU,CACR,KACA,OACA,mBACA,WACA,sBACA,UACD,EACD,WAAY,CACV,GAAI,CACF,KAAM,SACP,EACD,KAAM,CACJ,KAAM,QACP,EACD,SAAU,CACR,KAAM,kBACP,EACD,iBAAkB,CAChB,KAAM,SACP,EACD,SAAU,CACR,KAAM,iBACP,EACD,oBAAqB,CACnB,MAAO,0BACP,KAAM,QACN,MAAO,CACL,MAAO,CACL,CACE,KAAM,oBACP,EACD,CACE,KAAM,kCACP,EACD,CACE,KAAM,8BACP,EACD,CACE,KAAM,eACP,EACD,CACE,KAAM,gBACP,EACD,CACE,KAAM,eACP,EACD,CACE,KAAM,cACP,CACF,CACF,CACF,CACF,CACF,EACD,mBAAoB,CAClB,MAAO,qBACP,KAAM,SACN,WAAY,CACV,KAAM,CACJ,KAAM,QACP,CACF,CACF,EACD,SAAU,CACR,MAAO,WACP,KAAM,SACN,MAAO,CACL,CACE,KAAM,4BACP,EACD,CACE,SAAU,CACR,iBACD,EACD,WAAY,CACV,gBAAiB,CACf,KAAM,SACP,EACD,KAAM,CACJ,KAAM,SACN,QAAS,UACV,CACF,CACF,CACF,CACF,EACD,gBAAiB,CACf,MAAO,kBACP,KAAM,SACN,MAAO,CACL,CACE,KAAM,4BACP,EACD,CACE,SAAU,CACR,WACA,WACA,QACA,gBACD,EACD,WAAY,CACV,SAAU,CACR,KAAM,iBACP,EACD,SAAU,CACR,KAAM,iBACP,EACD,MAAO,CACL,KAAM,iBACP,EACD,MAAO,CACL,KAAM,QACP,EACD,OAAQ,CACN,KAAM,QACP,EACD,eAAgB,CACd,KAAM,SACP,CACF,CACF,CACF,CACF,EACD,gBAAiB,CACf,MAAO,kBACP,KAAM,SACN,MAAO,CACL,CACE,KAAM,4BACP,CACF,CACF,EACD,yBAA0B,CACxB,MAAO,2BACP,KAAM,SACN,MAAO,CACL,CACE,KAAM,yBACP,EACD,CACE,SAAU,CACR,eACA,WACA,UACA,UACA,WACD,EACD,WAAY,CACV,aAAc,CACZ,KAAM,SACP,EACD,SAAU,CACR,KAAM,QACP,EACD,QAAS,CACP,KAAM,QACP,EACD,QAAS,CACP,KAAM,QACP,EACD,UAAW,CACT,KAAM,QACP,EACD,oBAAqB,CACnB,KAAM,SACP,EACD,kBAAmB,CACjB,KAAM,SACP,EACD,UAAW,CACT,KAAM,SACP,EACD,eAAgB,CACd,KAAM,iBACP,EACD,cAAe,CACb,KAAM,SACP,EACD,KAAM,CACJ,KAAM,UACN,QAAS,EACV,EACD,MAAO,CACL,KAAM,UACN,QAAS,EACV,EACD,SAAU,CACR,KAAM,UACN,QAAS,EACV,EACD,SAAU,CACR,KAAM,UACN,QAAS,EACV,EACD,KAAM,CACJ,KAAM,SACN,QAAS,0BACV,CACF,CACF,CACF,CACF,EACD,qBAAsB,CACpB,MAAO,uBACP,KAAM,SACN,MAAO,CACL,CACE,KAAM,yBACP,EACD,CACE,SAAU,CACR,iBACA,eACA,WACA,UACA,UACA,WACD,EACD,WAAY,CACV,eAAgB,CACd,KAAM,SACP,EACD,aAAc,CACZ,KAAM,SACP,EACD,SAAU,CACR,KAAM,QACP,EACD,QAAS,CACP,KAAM,QACP,EACD,QAAS,CACP,KAAM,QACP,EACD,UAAW,CACT,KAAM,QACP,EACD,KAAM,CACJ,KAAM,SACN,QAAS,sBACV,CACF,CACF,CACF,CACF,EACD,MAAO,CACL,MAAO,QACP,KAAM,SACN,MAAO,CACL,CACE,KAAM,4BACP,EACD,CACE,SAAU,CACR,eACA,WACA,WACA,QACA,QACA,QACD,EACD,WAAY,CACV,aAAc,CACZ,KAAM,SACP,EACD,SAAU,CACR,KAAM,iBACP,EACD,SAAU,CACR,KAAM,iBACP,EACD,MAAO,CACL,KAAM,iBACP,EACD,MAAO,CACL,KAAM,QACP,EACD,OAAQ,CACN,KAAM,QACP,EACD,KAAM,CACJ,KAAM,SACN,QAAS,OACV,EACD,IAAK,CACH,KAAM,QACP,EACD,KAAM,CACJ,KAAM,UACN,QAAS,EACV,EACD,MAAO,CACL,KAAM,UACN,QAAS,EACV,EACD,SAAU,CACR,KAAM,UACN,QAAS,EACV,EACD,oBAAqB,CACnB,KAAM,SACP,EACD,kBAAmB,CACjB,KAAM,SACP,CACF,CACF,CACF,CACF,EACD,WAAY,CACV,MAAO,aACP,KAAM,SACN,MAAO,CACL,CACE,KAAM,yBACP,EACD,CACE,SAAU,CACR,mBACD,EACD,WAAY,CACV,kBAAmB,CACjB,KAAM,SACP,EACD,KAAM,CACJ,KAAM,SACN,QAAS,YACV,CACF,CACF,CACF,CACF,EACD,OAAQ,CACN,MAAO,SACP,KAAM,SACN,MAAO,CACL,CACE,KAAM,yBACP,EACD,CACE,SAAU,CACR,KACD,EACD,WAAY,CACV,IAAK,CACH,KAAM,QACP,EACD,KAAM,CACJ,KAAM,SACN,QAAS,QACV,CACF,CACF,CACF,CACF,EACD,MAAO,CACL,MAAO,QACP,KAAM,SACN,MAAO,CACL,CACE,KAAM,yBACP,EACD,CACE,WAAY,CACV,IAAK,CACH,KAAM,QACP,EACD,KAAM,CACJ,KAAM,SACN,QAAS,OACV,CACF,CACF,CACF,CACF,EACD,KAAM,CACJ,MAAO,OACP,KAAM,SACN,MAAO,CACL,CACE,KAAM,4BACP,EACD,CACE,WAAY,CACV,SAAU,CACR,KAAM,iBACP,EACD,SAAU,CACR,KAAM,iBACP,EACD,MAAO,CACL,KAAM,iBACP,EACD,KAAM,CACJ,KAAM,SACN,QAAS,EACV,EACD,KAAM,CACJ,KAAM,SACN,QAAS,cACV,EACD,UAAW,CACT,KAAM,iBACP,EACD,gBAAiB,CACf,KAAM,iBACP,EACD,SAAU,CACR,KAAM,SACN,QAAS,EACV,EACD,gBAAiB,CACf,KAAM,iBACP,EACD,QAAS,CACP,KAAM,SACN,QAAS,EACV,EACD,aAAc,CACZ,KAAM,SACN,QAAS,EACV,EACD,YAAa,CACX,KAAM,SACP,CACF,CACF,CACF,CACF,EACD,UAAW,CACT,MAAO,YACP,KAAM,SACN,SAAU,CACR,KACA,MACA,MACD,EACD,WAAY,CACV,GAAI,CACF,KAAM,SACP,EACD,IAAK,CACH,KAAM,QACP,EACD,KAAM,CACJ,KAAM,QACP,EACD,UAAW,CACT,MAAO,iBACP,KAAM,QACN,MAAO,CACL,MAAO,gBACP,KAAM,SACN,SAAU,CACR,MACA,MACD,EACD,WAAY,CACV,IAAK,CACH,KAAM,QACP,EACD,KAAM,CACJ,KAAM,SACN,KAAM,CACJ,UACA,iBACA,KACA,gBACD,CACF,EACD,QAAS,CACP,KAAM,SACN,KAAM,CACJ,SACA,SACA,UACA,OACA,SACA,YACD,CACF,EACD,eAAgB,CACd,KAAM,SACP,EACD,eAAgB,CACd,KAAM,SACP,CACF,CACF,CACF,CACF,CACF,EACD,iBAAkB,CAChB,MAAO,mBACP,KAAM,SACN,MAAO,CACL,CACE,KAAM,mBACP,EACD,CACE,WAAY,CACV,KAAM,CACJ,KAAM,SACN,QAAS,SACV,CACF,CACF,CACF,CACF,EACD,eAAgB,CACd,MAAO,iBACP,KAAM,SACN,MAAO,CACL,CACE,KAAM,mBACP,EACD,CACE,WAAY,CACV,KAAM,CACJ,KAAM,SACN,QAAS,OACV,EACD,SAAU,CACR,KAAM,UACN,QAAS,EACV,CACF,CACF,CACF,CACF,EACD,QAAS,CACP,KAAM,SACN,SAAU,CACR,IACA,IACA,IACA,GACD,EACD,WAAY,CACV,EAAG,CACD,KAAM,SACN,QAAS,CACV,EACD,EAAG,CACD,KAAM,SACN,QAAS,CACV,EACD,EAAG,CACD,KAAM,SACN,QAAS,CACV,EACD,EAAG,CACD,KAAM,SACN,QAAS,CACV,CACF,CACF,EACD,QAAS,CACP,KAAM,SACN,SAAU,CACR,IACA,IACA,GACD,EACD,WAAY,CACV,EAAG,CACD,KAAM,SACN,QAAS,CACV,EACD,EAAG,CACD,KAAM,SACN,QAAS,CACV,EACD,EAAG,CACD,KAAM,SACN,QAAS,CACV,CACF,CACF,EACD,QAAS,CACP,KAAM,SACN,SAAU,CACR,IACA,GACD,EACD,WAAY,CACV,EAAG,CACD,KAAM,SACN,QAAS,CACV,EACD,EAAG,CACD,KAAM,SACN,QAAS,CACV,CACF,CACF,CACH,EAAGC,IAAK,CACN,MAAOR,IACP,YAAaC,IAC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0B,IACb,eAAgBR,IAChB,MAAOf,IACP,KAAMjB,IACN,WAAYmC,GACd,EAAGP,IAAK,+CAAgDK,IAAK,wDAAyDF,IAAK,CACzH,yDAA0D,EAC5D,EAAGR,IAAK,OAAQO,IAAK,oCAAqCyJ,IAAK,CAC7D,SACA,SACF,EAAG5J,IAAK,CACN,KAAM,CACJ,MAAO,CACL,CACE,KAAM,qBACP,EACD,CACE,KAAM,QACN,MAAO,CACL,KAAM,qBACP,EACD,SAAU,EACV,YAAa,EACd,CACF,CACF,EACD,MAAO,GACP,KAAM,CACJ,KAAM,QACN,MAAO,EACR,EACD,WAAY,CACV,KAAM,SACN,iBAAkB,CACnB,EACD,QAAS,CACP,KAAM,QACP,EACD,iBAAkB,CAChB,KAAM,QACP,EACD,QAAS,CACP,KAAM,QACP,EACD,iBAAkB,CAChB,KAAM,QACP,EACD,UAAW,CACT,KAAM,4BACP,EACD,UAAW,CACT,KAAM,oCACP,EACD,QAAS,CACP,KAAM,SACN,OAAQ,OACT,EACD,SAAU,CACR,KAAM,4BACP,EACD,SAAU,CACR,KAAM,oCACP,EACD,YAAa,CACX,KAAM,UACN,QAAS,EACV,EACD,YAAa,CACX,KAAM,4BACP,EACD,YAAa,CACX,KAAM,6BACN,QAAS,CACV,EACD,cAAe,CACb,KAAM,4BACP,EACD,cAAe,CACb,KAAM,oCACP,EACD,SAAU,CACR,KAAM,qBACP,EACD,kBAAmB,CACjB,KAAM,SACN,qBAAsB,CACpB,KAAM,qBACP,CACF,CACH,EAAG6hD,IAAK,CACN,mBAAoB,CAClB,KAAM,UACN,QAAS,CACV,EACD,2BAA4B,CAC1B,KAAM,6BACN,QAAS,CACV,EACD,YAAa,CACX,KAAM,CACJ,QACA,UACA,UACA,OACA,SACA,SACA,QACD,CACF,EACD,YAAa,CACX,KAAM,QACN,MAAO,CACL,KAAM,QACP,EACD,YAAa,GACb,QAAS,CAAE,CACZ,CACH,EAAGC,IAAK,CACN,QAAS7hD,IACT,IAAKK,IACL,YAAaF,IACb,eAAgBR,IAChB,MAAOO,IACP,KAAMyJ,IACN,WAAY5J,IACZ,MAAO6hD,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ACA,eACA,iBACD,EACD,WAAY,CACV,QAAS,CACP,MAAO,eACP,KAAM,QACP,EACD,aAAc,CACZ,MAAO,gBACP,KAAM,QACP,EACD,gBAAiB,CACf,MAAO,mBACP,KAAM,QACP,CACF,CACF,EACD,aAAc,CACZ,MAAO,eACP,KAAM,SACN,SAAU,CACR,aACD,EACD,WAAY,CACV,YAAa,CACX,KAAM,cACP,EACD,cAAe,CACb,KAAM,cACP,CACF,CACF,EACD,MAAO,CACL,MAAO,QACP,KAAM,QACN,MAAO,CACL,MAAO,OACP,KAAM,SACN,WAAY,CACV,KAAM,CACJ,MAAO,WACP,KAAM,QACP,CACF,CACF,CACF,EACD,UAAW,CACT,MAAO,YACP,YAAa,GACb,KAAM,SACN,SAAU,CACR,WACD,EACD,WAAY,CACV,UAAW,CACT,MAAO,oBACP,KAAM,UACN,QAAS,EACV,EACD,SAAU,CACR,MAAO,wBACP,KAAM,SACN,KAAM,CACJ,WACA,YACA,cACD,EACD,QAAS,UACV,CACF,CACF,EACD,MAAO,CACL,MAAO,QACP,KAAM,SACN,YAAa,0BACb,WAAY,CACV,aAAc,CACZ,KAAM,SACN,MAAO,gBACP,QAAS,SACV,EACD,eAAgB,CACd,KAAM,SACN,MAAO,kBACP,QAAS,SACV,EACD,YAAa,CACX,KAAM,SACN,MAAO,eACP,QAAS,SACV,CACF,CACF,EACD,WAAY,CACV,MAAO,aACP,KAAM,SACN,SAAU,CACR,YACA,MACA,kBACD,EACD,WAAY,CACV,UAAW,CACT,MAAO,kBACP,KAAM,UACN,QAAS,EACV,EACD,UAAW,CACT,MAAO,4CACP,KAAM,UACN,QAAS,EACV,EACD,IAAK,CACH,MAAO,MACP,KAAM,SACN,SAAU,CACR,WACD,EACD,WAAY,CACV,UAAW,CACT,MAAO,aACP,KAAM,UACN,QAAS,EACV,EACD,QAAS,CACP,MAAO,aACP,KAAM,QACP,EACD,cAAe,CACb,MAAO,iBACP,KAAM,SACN,QAAS,GACV,EACD,aAAc,CACZ,MAAO,gBACP,KAAM,SACN,QAAS,GACV,EACD,KAAM,CACJ,MAAO,OACP,KAAM,QACN,MAAO,CACL,MAAO,MACP,KAAM,SACN,WAAY,CACV,YAAa,CACX,MAAO,cACP,YAAa,8BACb,KAAM,QACP,EACD,SAAU,CACR,MAAO,WACP,KAAM,SACN,WAAY,CACV,KAAM,CACJ,MAAO,WACP,KAAM,SACN,QAAS,GACV,EACD,KAAM,CACJ,MAAO,WACP,KAAM,SACN,QAAS,GACV,CACF,CACF,CACF,CACF,CACF,CACF,CACF,EACD,iBAAkB,CAChB,MAAO,mBACP,KAAM,SACN,WAAY,CACV,UAAW,CACT,MAAO,yBACP,KAAM,UACN,QAAS,EACV,EACD,eAAgB,CACd,MAAO,iBACP,YAAa,uDACb,KAAM,QACN,MAAO,CACL,MAAO,YACP,KAAM,SACN,SAAU,CACR,aACD,EACD,WAAY,CACV,YAAa,CACX,MAAO,cACP,KAAM,QACP,EACD,cAAe,CACb,MAAO,gBACP,KAAM,QACP,CACF,CACF,CACF,CACF,CACF,CACF,CACF,EACD,SAAU,CACR,MAAO,WACP,KAAM,SACN,WAAY,CACV,UAAW,CACT,MAAO,6BACP,KAAM,UACN,QAAS,EACV,EACD,YAAa,CACX,MAAO,gCACP,KAAM,UACN,QAAS,EACV,EACD,OAAQ,CACN,MAAO,iBACP,KAAM,QACN,MAAO,CACL,MAAO,gBACP,KAAM,SACN,SAAU,CACR,QACA,aACD,EACD,WAAY,CACV,MAAO,CACL,MAAO,qBACP,KAAM,QACP,EACD,YAAa,CACX,MAAO,2BACP,KAAM,QACP,EACD,kBAAmB,CACjB,MAAO,iCACP,KAAM,QACP,CACF,CACF,CACF,CACF,CACF,EACD,WAAY,CACV,MAAO,aACP,KAAM,SACN,SAAU,CACR,WACD,EACD,WAAY,CACV,UAAW,CACT,MAAO,+BACP,KAAM,UACN,QAAS,EACV,CACF,CACF,EACD,GAAI,CACF,MAAO,iBACP,KAAM,SACN,SAAU,CACR,WACD,EACD,WAAY,CACV,UAAW,CACT,KAAM,UACN,QAAS,EACV,CACF,CACF,CACH,EAAGmF,IAAK,CACN,KAAM,CACJ,MAAO,OACP,KAAM,SACN,S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GA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAG1+C,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGyK,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,CAAC,EAAGmyD,GAAK,CAAC,CAAC,GAAI,EAAE,EAAG,CAAC,GAAIo0H,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,CAAC,EAAGjgI,GAAK,CAAC,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,GAAG,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,CAAC,EAAGsN,GAAK,CAAC,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI2yH,EAAE,EAAG,CAAC,GAAIA,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,IAAI,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,CAAC,EAAG78N,GAAK,CAAC,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,GAAG,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,CAAC,EAAG8I,GAAK,CAAC,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,C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,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAM,CAAC,EAAG,CAAC,EAAGM,IAAK,CAAC,IAAI,WAAW,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAA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,CACD,EAAG,GACH,EAAG,EACL,EAAG,CACD,EAAG,GACH,EAAG,EACL,EAAG,CACD,EAAG,EACH,EAAG,EACL,EAAG,CACD,EAAG,EACH,EAAG,EACL,EAAG,CACD,EAAG,GACH,EAAG,CACL,EAAG,CACD,EAAG,GACH,EAAG,CACL,CAAC,EAAG,CAAC,CACH,EAAG,GACH,EAAG,EACL,EAAG,CACD,EAAG,GACH,EAAG,EACL,EAAG,CACD,EAAG,GACH,EAAG,EACL,EAAG,CACD,EAAG,EACH,EAAG,EACL,EAAG,CACD,EAAG,EACH,EAAG,EACL,EAAG,CACD,EAAG,GACH,EAAG,CACL,EAAG,CACD,EAAG,GACH,EAAG,CACL,EAAG,CACD,EAAG,GACH,EAAG,CACL,EAAG,CACD,EAAG,GACH,EAAG,CACL,CAAC,CAAC,EAAGhzE,GAAK,CAAC,CACT,OAAQ,CAAC,CACP,EAAG,EACH,EAAG,EACP,EAAK,CACD,EAAG,EACH,EAAG,EACP,EAAK,CACD,EAAG,GACH,EAAG,CACP,CAAG,EACD,UAAW,CAAC,CACV,EAAG,EACH,EAAG,EACP,EAAK,CACD,EAAG,EACH,EAAG,EACP,EAAK,CACD,EAAG,GACH,EAAG,CACP,EAAK,CACD,EAAG,EACH,EAAG,CACP,EAAK,CACD,EAAG,EACH,EAAG,CACP,EAAK,CACD,EAAG,GACH,EAAG,CACP,EAAK,CACD,EAAG,EACH,EAAG,CACP,EAAK,CACD,EAAG,EACH,EAAG,CACP,CAAG,CACH,EAAG,CACD,OAAQ,CAAC,CACP,EAAG,GACH,EAAG,EACP,EAAK,CACD,EAAG,EACH,EAAG,EACP,EAAK,CACD,EAAG,EACH,EAAG,EACP,EAAK,CACD,EAAG,GACH,EAAG,CACP,CAAG,EACD,UAAW,CAAC,CACV,EAAG,EACH,EAAG,EACP,EAAK,CACD,EAAG,GACH,EAAG,CACP,EAAK,CACD,EAAG,EACH,EAAG,CACP,EAAK,CACD,EAAG,EACH,EAAG,CACP,EAAK,CACD,EAAG,EACH,EAAG,CACP,EAAK,CACD,EAAG,EACH,EAAG,CACP,CAAG,CACH,CAAC,EAAGgu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E,SAAW,MAAOA,EAAE,SAAW,IAAKA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,MAAOA,EAAE,UAAY,MAAOA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,MAAOA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,MAAOA,EAAE,UAAY,MAAOA,EAAE,UAAY,KAAMA,EAAE,QAAU,KAAMA,EAAE,QAAU,KAAMA,EAAE,QAAU,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,MAAOA,EAAE,UAAY,MAAOA,EAAE,UAAY,MAAOA,EAAE,UAAY,MAAOA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,MAAOA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAAE,UAAY,KAAMA,EAA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AM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,KAAMA,EAAE,IAAM,MAAOA,EAAE,IAAM,KAAMA,EAAE,IAAM,MAAOA,EAAE,KAAO,MAAOA,EAAE,IAAM,MAAOA,EAAE,KAAO,MAAOA,EAAE,IAAM,KAAMA,EAAE,IAAM,KAAMA,EAAE,IAAM,KAAMA,EAAE,IAAM,MAAOA,EAAE,IAAM,KAAMA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,IAAM,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,KAAMA,EAAE,KAAO,KAAMA,EAAE,KAAO,KAAMA,EAAE,KAAO,KAAMA,EAAE,KAAO,KAAMA,EAAE,KAAO,KAAMA,EAAE,KAAO,KAAMA,EAAE,KAAO,KAAMA,EAAE,KAAO,KAAMA,EAAE,KAAO,KAAMA,EAAE,KAAO,KAAMA,EAAE,KAAO,KAAMA,EAAE,KAAO,KAAMA,EAAE,KAAO,KAAMA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KAAO,MAAOA,EAAE,KA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AM,KAAM,IAAI,EAAG,CAAC,IAAK,IAAK,MAAO,KAAK,EAAG,CAAC,IAAK,IAAK,KAAM,IAAI,EAAG,CAAC,IAAK,IAAI,EAAG,CAAC,MAAO,KAAK,EAAG,CAAC,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,KAAK,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,MAAO,KAAK,EAAG,CAAC,KAAM,KAAM,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,KAAM,MAAO,KAAK,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,KAAM,MAAO,MAAO,MAAO,KAAK,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,KAAM,MAAO,KAAK,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAAG,CAAC,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,IAAI,EAAG,CAAC,KAAM,KAAK,EAAG,CAAC,MAAO,KAAK,EAAG,CAAC,MAAO,KAAK,EAAG,CAAC,MAAO,MAAO,MAAO,KAAK,EAAG,CAAC,MAAO,MAAO,MAAO,KAAK,EAAG,CAAC,MAAO,KAAK,EAAG,CAAC,MAAO,KAAK,EAAG,CAAC,MAAO,KAAK,EAAG,CA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EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,MAAOA,EAAE,GAAG,EAAI,MAAOA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,MAAOA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,KAAMA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,MAAOA,EAAE,GAAG,EAAI,MAAOA,EAAE,GAAG,EAAI,MAAOA,EAAE,GAAG,EAAI,MAAOA,EAAE,GAAG,EAAI,MAAOA,EAAE,GAAG,EAAI,MAAOA,EAAE,GAAG,EAAI,MAAOA,EAAE,GAAG,EAAI,MAAOA,EAAE,GAAG,EAAI,MAAOA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,MAAOA,EAAE,IAAI,EAAI,MAAOA,EAAE,IAAI,EAAI,MAAOA,EAAE,IAAI,EAAI,MAAOA,EAAE,IAAI,EAAI,MAAOA,EAAE,IAAI,EAAI,MAAOA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,MAAOA,EAAE,IAAI,EAAI,IAAKA,EAAE,IAAI,EAAI,MAAOA,EAAE,IAAI,EAAI,KAAMA,EAAE,IAAI,EAAI,IACnnM,CAAC,EAAGiZ,IAAKmgD,GAAG,SAASp5D,EAAG,CACtBA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,GACvC,CAAC,EAAGsZ,IAAK8/C,GAAG,SAASp5D,EAAG,CACtBA,EAAE,CAAC,EAAI,GAAIA,EAAE,CAAC,EAAI,GAAIA,EAAE,CAAC,EAAI,IAAKA,EAAE,CAAC,EAAI,IAAKA,EAAE,CAAC,EAAI,IAAKA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,IAAKA,EAAE,EAAE,EAAI,GAAIA,EAAE,EAAE,EAAI,IAAKA,EAAE,GAAG,EAAI,GAAIA,EAAE,GAAG,EAAI,GAAIA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,GAAIA,EAAE,GAAG,EAAI,GAAIA,EAAE,GAAG,EAAI,GAAIA,EAAE,GAAG,EAAI,GAAIA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,GAAIA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,GAAIA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,GAAIA,EAAE,GAAG,EAAI,GAAIA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,GAAG,EAAI,IAAKA,EAAE,G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EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,KAAO,IAAK,EAAE,IAAM,IAAK,EAAE,KAAO,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,KAAO,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,KAAO,IAAK,EAAE,IAAM,IAAK,EAAE,KAAO,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,IAAM,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,EAAE,KAAO,IAAK,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S,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,OAAS,OAAS,MAAQ,MAAQ,MAAQ,MAAQ,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,MAAQ,EAAG,EAAG,MAAQ,MAAQ,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,EAAG,EAAG,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,EAAG,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,MAAQ,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,EAAG,EAAG,QAAS,QAAS,OAAS,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,OAAS,EAAG,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,EAAG,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,MAAQ,OAAS,GAAK,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,OAAS,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGZ,IAAK,CACvtJ,WAAY,OACZ,QAAS,KACX,EAAGpE,IAAK,CAAC,OAAQ,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAO,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAQ,OAAS,EAAG,QAAS,EAAG,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,EAAG,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,QAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,MAAQ,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,EAAG,EAAG,QAAS,QAAS,OAAS,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,OAAS,EAAG,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAQ,QAAS,OAAS,QAAS,EAAG,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,MAAQ,OAAS,GAAK,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,OAAS,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGpC,IAAK,CAC5vJ,WAAY,OACZ,QAAS,KACX,EAAGgH,IAAK,CAAC,OAAQ,EAAG,EAAG,EAAG,QAAS,OAAQ,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,MAAQ,MAAQ,MAAQ,OAAS,MAAQ,OAAS,QAAS,MAAQ,MAAQ,QAAS,QAAS,OAAS,QAAS,OAAS,MAAQ,OAAS,MAAQ,MAAQ,QAAS,OAAS,QAAS,MAAQ,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAQ,OAAS,EAAG,QAAS,EAAG,OAAS,KAAO,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,MAAQ,MAAQ,MAAQ,OAAS,MAAQ,OAAS,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,EAAG,EAAG,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,MAAQ,QAAS,EAAG,EAAG,OAAS,OAAS,QAAS,EAAG,EAAG,OAAS,MAAQ,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,EAAG,EAAG,OAAS,MAAQ,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,QAAS,EAAG,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,MAAQ,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,EAAG,OAAQ,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,MAAQ,OAAS,MAAQ,MAAQ,OAAS,OAAS,OAAS,OAAS,QAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,KAAO,OAAS,OAAS,MAAQ,OAAS,QAAS,OAAS,QAAS,MAAQ,OAAS,OAAS,MAAQ,KAAO,QAAS,OAAS,OAAS,OAAQ,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,MAAQ,QAAS,OAAS,OAAS,OAAS,QAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,EAAG,EAAG,OAAS,OAAS,EAAG,OAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,OAAQ,OAAQ,OAAS,OAAS,QAAS,OAAS,QAAS,EAAG,EAAG,OAAQ,OAAQ,QAAS,OAAQ,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,OAAS,EAAG,QAAS,OAAS,OAAS,OAAS,KAAO,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,EAAG,OAAS,MAAQ,OAAS,OAAS,QAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,MAAQ,OAAS,GAAK,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,OAAQ,OAAS,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGC,IAAK,CACjrJ,WAAY,OACZ,QAAS,KACX,EAAGjC,IAAK,CAAC,OAAQ,EAAG,EAAG,EAAG,QAAS,OAAQ,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,MAAQ,OAAS,OAAS,MAAQ,OAAS,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAQ,OAAS,EAAG,QAAS,EAAG,OAAS,KAAO,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,MAAQ,QAAS,EAAG,EAAG,OAAS,OAAS,QAAS,EAAG,EAAG,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,MAAQ,OAAS,OAAS,QAAS,EAAG,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,OAAS,OAAS,MAAQ,OAAS,OAAS,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,EAAG,OAAQ,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,QAAS,OAAS,OAAS,MAAQ,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,EAAG,EAAG,OAAS,OAAS,EAAG,OAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,OAAQ,OAAQ,OAAS,OAAS,QAAS,OAAS,QAAS,EAAG,EAAG,OAAQ,OAAQ,QAAS,OAAQ,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,OAAS,EAAG,QAAS,OAAS,OAAS,OAAS,KAAO,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,EAAG,OAAS,MAAQ,OAAS,OAAS,QAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,MAAQ,OAAS,GAAK,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,OAAQ,OAAS,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,QAAS,EAAG,EAAG,EAAG,QAAS,OAAS,OAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGyB,IAAK,CAC1uJ,WAAY,OACZ,QAAS,KACX,EAAGH,IAAK,CAAC,OAAS,EAAG,EAAG,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAQ,OAAS,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,QAAS,QAAS,QAAS,QAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAQ,OAAS,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAQ,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAQ,OAAQ,OAAS,OAAQ,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,EAAG,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,EAAG,EAAG,OAAS,EAAG,OAAS,OAAQ,OAAS,EAAG,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,OAAS,QAAS,OAAQ,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAS,QAAS,OAAQ,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,MAAQ,MAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,EAAG,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,MAAQ,QAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,EAAG,QAAS,EAAG,QAAS,EAAG,OAAQ,OAAS,OAAS,OAAS,EAAG,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,EAAG,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAQ,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,MAAQ,EAAG,OAAQ,QAAS,QAAS,OAAS,QAAS,OAAQ,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,OAAQ,QAAS,OAAS,OAAS,OAAS,MAAQ,QAAS,QAAS,QAAS,EAAG,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAQ,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,MAAQ,QAAS,OAAQ,QAAS,OAAS,QAAS,QAAS,EAAG,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,EAAG,QAAS,MAAQ,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,MAAQ,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,EAAG,OAAS,QAAS,QAAS,MAAQ,OAAQ,OAAS,EAAG,QAAS,OAAS,EAAG,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAQ,OAAS,OAAQ,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,EAAG,EAAG,QAAS,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,EAAG,EAAG,OAAS,EAAG,EAAG,OAAS,OAAQ,OAAQ,OAAQ,OAAQ,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,EAAG,EAAG,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,EAAG,OAAS,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,EAAG,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,QAAS,QAAS,QAAS,QAAS,QAAS,EAAG,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,QAAS,IAAK,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,EAAG,OAAS,OAAS,EAAG,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,EAAG,OAAS,QAAS,EAAG,EAAG,OAAS,OAAS,QAAS,MAAQ,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGxD,IAAK,CACviL,WAAY,IACZ,QAAS,EACX,EAAG+C,IAAK,CAAC,OAAS,EAAG,EAAG,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAQ,OAAS,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,QAAS,QAAS,QAAS,QAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAQ,OAAS,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAQ,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAQ,OAAQ,OAAS,OAAQ,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,EAAG,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,EAAG,EAAG,OAAS,EAAG,OAAS,OAAQ,OAAS,EAAG,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,OAAS,QAAS,OAAQ,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAS,QAAS,OAAQ,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,MAAQ,MAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,EAAG,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,MAAQ,QAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,EAAG,QAAS,EAAG,QAAS,EAAG,OAAQ,OAAS,OAAS,OAAS,EAAG,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,QAAS,OAAS,OAAS,OAAS,MAAQ,OAAQ,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAQ,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,EAAG,OAAQ,QAAS,OAAS,QAAS,QAAS,OAAQ,OAAS,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,EAAG,QAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAQ,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,OAAQ,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,OAAS,EAAG,QAAS,EAAG,EAAG,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,MAAQ,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,EAAG,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAQ,OAAQ,OAAQ,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,QAAS,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,EAAG,EAAG,OAAS,EAAG,EAAG,OAAS,OAAQ,OAAQ,OAAQ,OAAQ,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,EAAG,EAAG,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,EAAG,OAAS,OAAS,EAAG,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,EAAG,EAAG,EAAG,QAAS,EAAG,EAAG,OAAS,EAAG,QAAS,QAAS,QAAS,QAAS,QAAS,EAAG,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,QAAS,IAAK,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,EAAG,OAAS,OAAS,EAAG,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,EAAG,OAAS,QAAS,EAAG,EAAG,OAAS,OAAS,QAAS,MAAQ,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGsB,IAAK,CAC1iL,WAAY,KACZ,QAAS,EACX,EAAGxC,IAAK,CAAC,OAAS,EAAG,EAAG,OAAQ,OAAQ,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAQ,OAAS,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,EAAG,QAAS,QAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAQ,EAAG,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,OAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,OAAQ,OAAS,EAAG,OAAS,EAAG,EAAG,EAAG,QAAS,OAAQ,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,EAAG,EAAG,OAAS,EAAG,MAAQ,OAAQ,OAAS,EAAG,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,EAAG,OAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,EAAG,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,EAAG,OAAS,EAAG,OAAS,EAAG,OAAS,EAAG,OAAS,OAAQ,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAS,OAAQ,OAAQ,OAAS,QAAS,EAAG,OAAS,QAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,MAAQ,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,EAAG,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,EAAG,QAAS,EAAG,QAAS,EAAG,QAAS,EAAG,QAAS,OAAQ,QAAS,OAAS,QAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,EAAG,QAAS,QAAS,EAAG,QAAS,EAAG,QAAS,EAAG,OAAS,OAAS,QAAS,OAAS,EAAG,OAAS,QAAS,QAAS,QAAS,EAAG,QAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,EAAG,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAQ,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,QAAS,EAAG,OAAQ,QAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,EAAG,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,QAAS,EAAG,OAAQ,OAAS,QAAS,QAAS,EAAG,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,QAAS,OAAQ,OAAQ,EAAG,QAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,MAAQ,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAQ,QAAS,OAAS,MAAQ,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,EAAG,OAAS,EAAG,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAQ,EAAG,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,EAAG,OAAS,EAAG,EAAG,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,QAAS,OAAS,OAAS,OAAS,EAAG,OAAS,QAAS,EAAG,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,EAAG,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,QAAS,QAAS,QAAS,MAAQ,QAAS,EAAG,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,QAAS,IAAK,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,EAAG,OAAS,OAAS,EAAG,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,EAAG,OAAS,QAAS,EAAG,EAAG,OAAS,OAAS,QAAS,MAAQ,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGmc,IAAK,CAC55K,WAAY,KACZ,QAAS,EACX,EAAGC,IAAK,CAAC,OAAS,EAAG,EAAG,OAAQ,OAAQ,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAQ,OAAS,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,EAAG,QAAS,QAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAQ,EAAG,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,OAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,OAAQ,OAAS,EAAG,OAAS,EAAG,EAAG,EAAG,QAAS,OAAQ,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,EAAG,EAAG,OAAS,EAAG,MAAQ,OAAQ,OAAS,EAAG,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,EAAG,OAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,EAAG,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,EAAG,OAAS,EAAG,OAAS,EAAG,OAAS,EAAG,OAAS,QAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAS,OAAQ,OAAQ,QAAS,QAAS,EAAG,OAAS,QAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,EAAG,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,EAAG,QAAS,EAAG,QAAS,EAAG,QAAS,EAAG,QAAS,OAAQ,QAAS,OAAS,QAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,EAAG,QAAS,QAAS,EAAG,QAAS,EAAG,QAAS,EAAG,OAAS,OAAS,QAAS,OAAS,EAAG,OAAS,QAAS,QAAS,QAAS,EAAG,QAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAQ,OAAS,QAAS,QAAS,OAAS,QAAS,OAAQ,QAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,EAAG,OAAQ,QAAS,OAAS,QAAS,OAAS,OAAS,QAAS,OAAS,OAAS,EAAG,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,EAAG,QAAS,OAAS,QAAS,QAAS,EAAG,MAAQ,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,OAAQ,EAAG,OAAS,OAAS,EAAG,QAAS,OAAS,MAAQ,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,MAAQ,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAQ,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,QAAS,OAAS,EAAG,OAAS,EAAG,OAAQ,EAAG,QAAS,QAAS,OAAS,OAAQ,EAAG,QAAS,QAAS,MAAQ,EAAG,QAAS,OAAS,OAAS,OAAS,OAAQ,MAAQ,EAAG,OAAS,OAAQ,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,EAAG,OAAS,EAAG,EAAG,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,QAAS,OAAS,OAAS,OAAS,EAAG,OAAS,QAAS,EAAG,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,EAAG,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,QAAS,QAAS,QAAS,MAAQ,QAAS,EAAG,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,QAAS,IAAK,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,EAAG,OAAS,OAAS,EAAG,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,EAAG,OAAS,QAAS,EAAG,EAAG,OAAS,OAAS,QAAS,MAAQ,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGyD,IAAK,CACh2K,WAAY,IACZ,QAAS,EACX,EAAG1qB,GAAK,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAAGiZ,GAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGigD,GAAK,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAAGx1F,GAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG2gD,GAAK,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAAGmpC,GAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGzS,GAAK,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAAGrzB,GAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGJ,IAAK,CAAC,QAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAQ,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAO,MAAQ,OAAS,OAAS,OAAQ,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,KAAO,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAQ,MAAQ,QAAS,OAAS,OAAS,OAAS,QAAS,EAAG,EAAG,OAAS,EAAG,OAAS,OAAS,OAAS,EAAG,QAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,QAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAQ,OAAS,OAAQ,OAAS,OAAQ,OAAS,OAAQ,OAAS,KAAO,QAAS,OAAS,OAAQ,EAAG,EAAG,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,MAAO,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,KAAO,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,EAAG,EAAG,MAAQ,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,KAAO,MAAQ,KAAO,MAAQ,KAAO,EAAG,OAAS,OAAS,OAAS,KAAO,MAAQ,OAAS,MAAQ,EAAG,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,MAAQ,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAQ,OAAS,OAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,OAAQ,OAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,QAAS,OAAQ,OAAS,MAAQ,OAAS,OAAS,QAAS,MAAQ,OAAS,MAAQ,EAAG,OAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,MAAQ,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,EAAG,KAAO,KAAO,KAAO,OAAS,OAAS,OAAS,EAAG,MAAO,EAAG,EAAG,OAAS,OAAS,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,IAAM,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,OAAS,OAAS,QAAS,OAAQ,QAAS,EAAG,EAAG,QAAS,QAAS,QAAS,EAAG,QAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGO,IAAK,CACrv/B,WAAY,IACZ,QAAS,EACX,EAAGoB,IAAK,CAAC,QAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,GAAK,OAAS,MAAQ,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,EAAG,EAAG,QAAS,EAAG,OAAS,OAAS,QAAS,EAAG,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,KAAO,OAAS,KAAO,EAAG,EAAG,OAAS,KAAO,EAAG,EAAG,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,GAAK,OAAS,GAAK,OAAS,GAAK,EAAG,OAAS,OAAS,OAAS,KAAO,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,OAAS,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,EAAG,KAAO,KAAO,KAAO,MAAQ,MAAQ,OAAS,EAAG,KAAM,EAAG,EAAG,OAAS,OAAS,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,KAAO,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,OAAS,OAAS,QAAS,QAAS,QAAS,EAAG,EAAG,QAAS,QAAS,QAAS,EAAG,QAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGC,IAAK,CACv8I,WAAY,IACZ,QAAS,EACX,EAAGF,IAAK,CAAC,QAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,MAAQ,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAQ,QAAS,OAAQ,QAAS,OAAS,QAAS,OAAS,OAAS,KAAO,OAAS,OAAS,OAAQ,OAAS,OAAS,QAAS,QAAS,KAAO,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,QAAS,OAAS,IAAM,KAAO,KAAO,KAAO,IAAM,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,MAAQ,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,EAAG,EAAG,QAAS,EAAG,OAAS,OAAS,QAAS,EAAG,MAAQ,OAAS,MAAQ,MAAQ,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,KAAO,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,KAAO,OAAS,KAAO,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,OAAS,KAAO,OAAS,KAAO,OAAS,KAAO,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,KAAO,QAAS,EAAG,EAAG,KAAO,OAAS,QAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,KAAO,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,KAAO,OAAS,KAAO,EAAG,EAAG,OAAS,KAAO,EAAG,EAAG,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,OAAS,KAAO,OAAS,MAAQ,IAAM,MAAQ,IAAM,MAAQ,IAAM,EAAG,OAAS,OAAS,OAAS,KAAO,MAAQ,OAAS,MAAQ,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,MAAQ,OAAS,OAAS,QAAS,OAAS,MAAQ,OAAS,KAAO,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,KAAO,OAAS,OAAS,IAAM,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,KAAO,OAAS,KAAO,OAAS,KAAO,OAAS,KAAO,MAAQ,EAAG,OAAS,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,EAAG,MAAO,MAAO,MAAO,OAAS,OAAS,OAAS,EAAG,MAAO,EAAG,EAAG,OAAS,OAAS,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,KAAO,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,OAAS,OAAS,QAAS,OAAS,QAAS,EAAG,EAAG,QAAS,QAAS,QAAS,EAAG,QAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGG,IAAK,CACt4I,WAAY,IACZ,QAAS,EACX,EAAGG,IAAK,CAAC,QAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,QAAS,OAAS,MAAQ,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,IAAM,MAAQ,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAQ,QAAS,OAAQ,QAAS,OAAS,OAAS,OAAS,OAAQ,KAAO,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,KAAO,QAAS,QAAS,OAAS,OAAS,OAAQ,QAAS,OAAS,KAAO,QAAS,OAAS,KAAO,QAAS,KAAO,KAAO,KAAO,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,EAAG,EAAG,OAAS,EAAG,OAAS,OAAS,OAAS,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,QAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,OAAQ,KAAO,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,OAAS,KAAO,OAAS,KAAO,OAAS,KAAO,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,IAAM,QAAS,EAAG,EAAG,KAAO,OAAS,QAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,KAAO,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,KAAO,OAAS,KAAO,EAAG,EAAG,OAAS,KAAO,EAAG,EAAG,OAAS,KAAO,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,MAAQ,KAAO,MAAQ,OAAS,KAAO,OAAS,KAAO,OAAS,KAAO,EAAG,OAAS,OAAS,OAAS,KAAO,OAAS,MAAQ,OAAS,EAAG,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,KAAO,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,KAAO,KAAO,OAAS,KAAO,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,MAAQ,KAAO,MAAQ,EAAG,OAAS,EAAG,EAAG,EAAG,OAAS,OAAS,OAAS,EAAG,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,EAAG,MAAO,EAAG,EAAG,OAAS,OAAS,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,KAAO,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,OAAS,OAAS,QAAS,MAAO,QAAS,EAAG,EAAG,OAAQ,QAAS,QAAS,EAAG,QAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGU,IAAK,CACx5I,WAAY,IACZ,QAAS,EACX,EAAGZ,IAAK,CAAC,QAAS,EAAG,EAAG,OAAS,MAAQ,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAQ,OAAQ,QAAS,OAAQ,MAAQ,QAAS,MAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAQ,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAS,MAAQ,QAAS,OAAS,OAAS,KAAO,QAAS,OAAQ,MAAQ,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,EAAG,QAAS,OAAS,OAAS,OAAS,OAAQ,QAAS,OAAQ,OAAQ,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAQ,OAAS,OAAQ,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAQ,MAAQ,QAAS,QAAS,EAAG,QAAS,QAAS,MAAQ,OAAQ,QAAS,QAAS,QAAS,OAAQ,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,EAAG,OAAS,MAAQ,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAO,QAAS,KAAO,QAAS,KAAO,QAAS,EAAG,EAAG,QAAS,OAAS,QAAS,QAAS,OAAQ,QAAS,OAAQ,QAAS,OAAQ,QAAS,OAAQ,QAAS,OAAQ,QAAS,OAAS,QAAS,MAAQ,QAAS,EAAG,EAAG,QAAS,OAAS,QAAS,EAAG,EAAG,OAAS,MAAQ,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,EAAG,EAAG,QAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAQ,OAAS,OAAQ,OAAS,OAAQ,OAAS,OAAS,OAAS,QAAS,EAAG,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,QAAS,OAAS,MAAQ,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAQ,OAAS,OAAQ,QAAS,QAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAQ,OAAS,QAAS,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAQ,QAAS,QAAS,OAAS,OAAQ,OAAQ,QAAS,QAAS,QAAS,OAAS,OAAQ,OAAS,QAAS,OAAQ,OAAS,OAAS,OAAS,MAAQ,QAAS,QAAS,QAAS,OAAS,OAAQ,OAAS,QAAS,QAAS,OAAQ,QAAS,OAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,EAAG,QAAS,OAAS,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,MAAO,QAAS,QAAS,QAAS,OAAS,QAAS,EAAG,QAAS,OAAS,QAAS,QAAS,QAAS,EAAG,EAAG,EAAG,KAAO,EAAG,EAAG,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,QAAS,EAAG,OAAS,OAAS,OAAQ,QAAS,QAAS,OAAS,MAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,OAAS,OAAS,EAAG,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,EAAG,QAAS,QAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,OAAQ,QAAS,QAAS,QAAS,EAAG,EAAG,EAAG,QAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGC,IAAK,CACtrJ,WAAY,QACZ,QAAS,CACX,EAAG6B,IAAK,CAAC,QAAS,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,MAAO,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,MAAQ,QAAS,MAAQ,QAAS,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,OAAS,QAAS,OAAQ,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,EAAG,QAAS,MAAQ,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAQ,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,MAAO,MAAO,EAAG,MAAO,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,EAAG,OAAS,MAAQ,QAAS,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,QAAS,OAAS,QAAS,OAAS,OAAQ,QAAS,OAAQ,QAAS,OAAQ,QAAS,OAAQ,QAAS,OAAQ,QAAS,OAAS,QAAS,OAAS,QAAS,EAAG,EAAG,QAAS,OAAS,QAAS,EAAG,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,EAAG,EAAG,QAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,EAAG,EAAG,OAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,MAAO,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,QAAS,OAAS,OAAQ,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,QAAS,MAAQ,QAAS,OAAS,OAAQ,OAAS,QAAS,MAAQ,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,MAAO,MAAQ,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,EAAG,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,EAAG,QAAS,OAAS,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,MAAO,QAAS,QAAS,QAAS,OAAS,QAAS,EAAG,QAAS,OAAS,QAAS,QAAS,MAAO,EAAG,EAAG,EAAG,KAAO,EAAG,EAAG,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,QAAS,EAAG,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,MAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,OAAS,OAAS,EAAG,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,EAAG,QAAS,QAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,OAAQ,QAAS,QAAS,QAAS,EAAG,EAAG,EAAG,QAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG3B,IAAK,CAChtJ,WAAY,QACZ,QAAS,CACX,EAAGC,IAAK,CAAC,QAAS,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAQ,QAAS,OAAQ,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,OAAS,MAAQ,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,EAAG,OAAS,OAAS,OAAS,QAAS,QAAS,OAAQ,MAAQ,QAAS,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,EAAG,OAAS,OAAS,QAAS,QAAS,QAAS,MAAQ,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,MAAQ,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,EAAG,EAAG,OAAS,OAAS,QAAS,EAAG,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,EAAG,EAAG,QAAS,QAAS,MAAQ,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,EAAG,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,IAAK,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,QAAS,OAAS,OAAS,OAAQ,KAAM,QAAS,IAAK,OAAQ,OAAQ,OAAS,QAAS,QAAS,KAAM,OAAS,QAAS,QAAS,IAAK,QAAS,OAAQ,QAAS,OAAQ,QAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,QAAS,OAAQ,QAAS,OAAS,OAAQ,OAAQ,IAAK,OAAQ,OAAS,OAAQ,OAAQ,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,OAAS,EAAG,QAAS,OAAS,EAAG,EAAG,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,EAAG,QAAS,OAAS,OAAS,QAAS,OAAS,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,EAAG,EAAG,MAAO,EAAG,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,OAAS,OAAS,EAAG,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,EAAG,QAAS,QAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,OAAQ,QAAS,QAAS,QAAS,EAAG,EAAG,EAAG,QAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGC,IAAK,CACtuJ,WAAY,QACZ,QAAS,CACX,EAAGgB,IAAK,CAAC,QAAS,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,QAAS,OAAQ,OAAS,OAAS,QAAS,OAAQ,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAQ,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,QAAS,OAAQ,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,MAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,MAAO,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,QAAS,QAAS,OAAS,OAAQ,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,OAAS,EAAG,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAQ,OAAS,QAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,EAAG,EAAG,MAAQ,QAAS,MAAQ,QAAS,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,QAAS,OAAS,MAAQ,OAAS,QAAS,OAAS,QAAS,EAAG,EAAG,OAAS,OAAS,QAAS,EAAG,EAAG,OAAS,OAAQ,OAAS,OAAS,OAAS,QAAS,QAAS,QAAS,EAAG,EAAG,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,OAAS,OAAS,QAAS,EAAG,EAAG,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,OAAS,MAAQ,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,QAAS,OAAS,QAAS,IAAK,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,OAAS,OAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAQ,OAAS,OAAS,MAAQ,OAAQ,OAAS,MAAQ,OAAQ,OAAS,QAAS,IAAK,QAAS,OAAQ,OAAS,QAAS,QAAS,OAAS,QAAS,QAAS,QAAS,IAAK,QAAS,OAAS,QAAS,QAAS,OAAS,QAAS,MAAQ,QAAS,OAAS,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,IAAK,QAAS,QAAS,QAAS,QAAS,OAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,MAAQ,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OAAS,QAAS,OAAS,QAAS,OAAS,QAAS,MAAQ,OAAS,EAAG,QAAS,OAAS,EAAG,EAAG,OAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,QAAS,OAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,QAAS,EAAG,QAAS,OAAS,OAAS,QAAS,OAAS,EAAG,EAAG,EAAG,OAAS,EAAG,EAAG,QAAS,QAAS,QAAS,QAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAG,EAAG,MAAO,EAAG,OAAS,OAAS,OAAQ,QAAS,QAAS,OAAS,OAAS,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,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K,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAAG3H,IAAK,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,K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f,EACD,EAAG,CACD,GAAIA,GAAE,KACN,QAAS,EACT,aAAc,EACf,EACD,KAAM,CACJ,GAAIA,GAAE,OACN,QAAS,EACT,aAAc,EACf,EACD,EAAG,CACD,GAAIA,GAAE,WACN,QAAS,EACT,aAAc,EACf,EACD,KAAM,CACJ,GAAIA,GAAE,aACN,QAAS,EACT,aAAc,EACf,EACD,EAAG,CACD,GAAIA,GAAE,gBACN,QAAS,EACT,aAAc,EACf,EACD,KAAM,CACJ,GAAIA,GAAE,kBACN,QAAS,EACT,aAAc,EACf,EACD,EAAG,CACD,GAAIA,GAAE,QACN,QAAS,EACT,aAAc,EACf,EACD,EAAG,CACD,GAAIA,GAAE,KACN,QAAS,EACT,aAAc,EACf,EACD,KAAM,CACJ,GAAIA,GAAE,OACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,UACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,QACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,eACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,eACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,UACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,WACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,QACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,qBACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,YACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,SACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,mBACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,cACN,QAAS,EACT,aAAc,EACf,EACD,KAAM,CACJ,GAAIA,GAAE,SACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,SACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,eACN,QAAS,EACT,aAAc,EACf,EACD,IAAK,CACH,GAAIA,GAAE,iBACN,QAAS,EACT,aAAc,EACf,EACD,IAAK,CACH,GAAIA,GAAE,2BACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,aACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,sBACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,oBACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,kBACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,eACN,QAAS,EACT,aAAc,EACf,EACD,IAAK,CACH,GAAIA,GAAE,gBACN,QAAS,GACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,aACN,QAAS,EACT,aAAc,EACf,EACD,IAAK,CACH,GAAIA,GAAE,cACN,QAAS,GACT,aAAc,EACf,EACD,EAAG,CACD,GAAIA,GAAE,cACN,QAAS,EACT,aAAc,EACf,EACD,EAAG,CACD,GAAIA,GAAE,YACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,kBACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,gBACN,QAAS,EACT,aAAc,EACf,EACD,EAAG,CACD,GAAIA,GAAE,mBACN,QAAS,EACT,aAAc,EACf,EACD,EAAG,CACD,GAAIA,GAAE,iBACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,YACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,iBACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,eACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,eACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,aACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,UACN,QAAS,EACT,aAAc,EACf,EACD,GAAI,CACF,GAAIA,GAAE,eACN,QAAS,E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AAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,EAAE,CAAC,EAAG,KAAK,OAAS,IAAI,WAAW,CAAC,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,I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","names":["uP","dP$1","fP$1","dP","bs","fP","sC$1","pP$1","G","sC","r","n","pP","rC$1","uS","a","Nt","rC","i","s","Me","_P$1","d","f","u","dS","$e","us","Tl","mh","l_","Uj","Ip","nC","aC","oC","_g","mP","gn","gP","lC","hx","mg","hC","fS","xP","_P","cC","h","l","vP","TP","SP","uC","L","bP$1","EP","yP$1","Nl$1","Nl","mu","gg","cx","ux","h_","Dr","z","CP","AP","sf$1","o","RP$1","sf","Wi$1","Wi","OP","Om","wP","NP","pS","_S","Jf","FP","dC","mS","gu","UP","LP","kP","fC","BP","t","wm","Pp","DP","VP","MP","PP","_p","IP","Nm","xg","Dm","pC","RP","_C","p","_","m","x","v","mC","GP","dx","zP","WP","gS","HP","si$1","si","ks$1","ks","Es$1","gC$1","xC$1","Ka$1","Ka","XP$1","vC","we","T","b","S","C","P","j","F","$","ne","te","le","_e","Se","Ie","de","gC","xC","XP","Es","e","pc$1","$P$1","Xe","$P","yP","bP","c","_u","pc","N","TC$1","YP","YP$1","vg","jP","SC","fx","bC","EC","yC","CC","AC","RC","IC","nn$1","nn","KP","KP$1","ee","TC","xS","qP","Hs$1","QP","Di$1","Di","Zc$1","Zc","ZP$1","Wh","Go","Ia","JP","eM","tM","px","_x","mx","iM","kj","Hh$1","PC","Mp","Dp","gx","sM","Xi","ZP","xx","rf","Qo","xu","rM","Sx","DC","Hh","vx","MC","Tx","nM","Wc","aM","Op","U","Oi","Gj","Jc$1","Jc","vo","zj","J","Hs","Wj","On$1","On","fs$1","fs","Tg$1","_l$1","_l","Ct","eu","mp","cs","tt","_s$1","_s","oM","lM","OC","nr","Wt","qr","Vi","wC","$n","Gr","Q","g","se","ke","w","O","Y","M","k","W","Ne","V","K","ie","fe","pe","ve","Ue","ht","Ee","Je","St","Yt","yt","Ui","is","ul","qi$1","qi","y","ep","gp","hM","Sg","vn","cM","ce","I","xt","bi","nf","bx","Zs","af","uM","Ex","NC","dM","yx","fM","co","Re$1","Re","gh","xh","vh","Th","re$1","re","Ce","wt$1","wt","vS","Ae","Ae$1","FC","Li$1","Li","LC","BC","pt","Ve$1","Ve","ys$1","R","R$1","ys","Cs$1","Mi$1","Mi","wp$1","Hn$1","Hn","Mo","pM$1","Ys$1","Ys","pM","me$1","me","Ji","Pe$1","Pe","VC$1","VC","rn$1","rn","Ma$1","Ma","bg$1","bg","He","et","SS","bS","ES","yS","CS","AS","_c$1","_c","pl$1","mM$1","pl","RS","IS","gM$1","PS$1","xM$1","PS","mM","gM","vM$1","xM","MS$1","ts$1","ts","Mn","_M","MS","vM","Cs","TS","Pr","_n$1","_n","of$1","of","Qt$1","Qt","TM$1","DS","De","TM","wp","Tg","OS","zs$1","zs","wS","NS","SM$1","va","bM$1","lf$1","lf","bM","vu$1","vu","_a$1","_a","mn$1","mn","xr$1","xr","FS","LS","BS","Kt","VS","US","kS","GS","zS","WS","HS","XS","$S","YS","jS","KS","qS","QS","ZS","JS","eb","tb","ib","sb","rb","nb","ab","ob","lb","hb","cb","ub","db","fb","pb","_b","mb","gb","xb","vb","ds$1","ds","EM$1","yM","CM","Tb","an$1","an","tp","Sb","Fm","Eg","AM","RM","Np","E","PM","MM","DM","OM","wM","NM","FM","LM","BM","VM","UM","kM","GM","zM","WM","HM","XM","$M","YM","jM","KM","qM","QM","ZM","JM","eD","tD","iD","sD","rD","nD","aD","oD","lD","hD","cD","uD","dD","fD","pD","_D","mD","gD","xD","vD","TD","SD","bD","ED","yD","CD","AD","RD","ID","PD","MD","DD","OD","wD","ND","FD","LD","BD","VD","UD","kD","GD","zD","WD","HD","XD","$D","YD","jD","bb","KD","qD","QD","Bt","xp$1","JD","eO","UC","tO","iO","sO","rO","nO","aO","oO","lO","Pn","fh","Eb","Ta","hO$1","xp","Sl$1","Sl","Mt","Cx","kC","GC","Hj","At$1","At","X","Zi","Ax$1","Ax","uO","Ds$1","dO","fO","Lm","c_$1","to$1","Ds","zC","WC","yb","js$1","js","c_","to","pO","Ii","Be","_O","mO","ra","HC","gO","xO","vO","TO","SO","Rx","ip","Cb","ga","fa","bO","EO","yO","Fp$1","Fp","cO","CO","AO","RO","bl$1","bl","IO","PO","XC","es","sp","ih","Pi$1","Pi","yg$1","Yn","yg","$C$1","u_$1","u_","$C","d_$1","d_","qc$1","ii","qc","OO","wO","NO","FO","LO$1","Ix$1","Ix","Px$1","Px","Lp$1","Lp","Mx$1","Mx","Dx$1","Dx","Ox$1","Ox","wx$1","wx","Nx$1","Nx","YC$1","BO$1","VO","VO$1","YC","UO$1","yl$1","yl","tn$1","tn","kO$1","Hc","GO","zO","Fx$1","da","WO","Wa","Ha","Xh$1","Xh","uo$1","uo","Ab","Rb","XO","it","Fx","IM","ZD","hO","BO","UO","kO","DO","MO","LO","EM","HO","$O$1","Lt","Cg","$O","Bp","YO","jC","Lx","Bx","jO","Xj","Fe","Ag$1","Kn$1","Kn","io$1","io","Bm","Vm","Ib","Nr","zr$1","zr","f_$1","f_","KO","$h","or$1","or","Ag","vp$1","ge","vp","Ts$1","Ts","qO","Ks$1","Ks","QO","Ye","ZO$1","JO","ew","tw$1","iw$1","tw","ZO","Pt","iw","To$1","To","Ln","tl","sw","Tn","sh","Pb","Mb","Oa","il","mc","p_","So","na","hf","ci","pi","cf","rw","Fl","nw","__","gc","m_","uf","g_","Vx","df","xc","x_","ff","zx","Ux","kx","KC","pf","_f","Gx","v_","T_","mf","ue","fo","aw$1","qC$1","ow$1","Db","Db$1","lw$1","hw$1","H","hw","ow","lw","aw","cw$1","Ti$1","Ti","$j","Yj","jj","Kj","qj","Qj","SM","Yh$1","Yh","ZC","JC","e0","t0","i0","s0","Un","oe","Cl$1","Cl","dw","Vr$1","Vr","fw","$i","lr","S_$1","Wx$1","Wx","Xr","aa$1","aa","_w","gf$1","gf","S_","ri","cw","Hx","Ca$1","Ca","nt","mw$1","gw$1","mw","rr","gw","Xx$1","b_$1","Rg","Xx","xw","b_","xf$1","xf","r0$1","$x","a0","o0$1","vc$1","vc","o0","r0","n0","Sn$1","Sn","E_$1","E_","y_$1","y_","fi","oa","C_$1","C_","A_","cn","jh","Tt","Ri$1","Ri","l0","Zj","Os$1","Os","Ob","wb","Nb","Fb","bw$1","Tw","Sw","vw","R_$1","R_","I_$1","I_","bw","Ew","Ew$1","Tc","vf$1","vf","at","Ll","bn","yw$1","BH","FU","Cw$1","yw","__vitePreload","Xc","h0","c0","Jj","Ig","bt","Dt","lt","Ht","yi","zi","rt","gt","ki","Kr","gs","fr","pr","Er","gi","Ni","hr","Aw","Yx","u0$1","u0","Iw","Pw$1","Rw","on","Pw","ui$1","ui","Tu$1","Ps","Tu","Mw","Dw","f0","ln","d0","Bw","Lw","Fw","Nw","ww","Ow","Vw","dt","p0","Zo","qC","tK","jx","P_","iK","Tf","Ya","_0","m0","Sf","Kx","qx","sK","Qx","Uw","Bl","rK","tu","g0","nK","x0","v0","aK","Zx","Tr","oK","Jx","hn","lK","ev","Da","hK","T0","tv","cK","M_","Vl","Um","Or","Sc","kw","Gw","zw","Ww","Hw","Xw","$w","Yw","jw","Kw","qw","Qw","Zw","Jw","eN","tN","iN","sN","rN","nN","aN","oN","lN","hN","cN","uN","dN","fN","pN","_N","mN","gN","xN","vN","Jo","S0","b0","E0","Sh","Wo","iv","uK","km$1","TN","dK$1","SN$1","km","y0","D_","SN","O_","fK","w_","C0","N_","pK","sv","_K","rv","Ul","mK","nv","gK","A0","F_","xK","av","L_","vK","bN","EN","yN","CN","AN","RN","Vp$1","Vp","ov","Vn","TK","lv","hv","SK","Fi$1","Fi","R0$1","Pg","Pg$1","B_","IN","R0","V_","PN","MN","DN$1","ON","DN","I0","wN","U_","Up$1","dr$1","xe","NN","FN","LN","BN","VN","UN","kN","GN","zN","WN","HN","XN","$N","YN","jN","KN","qN","QN","ZN","JN","eF","tF","iF","sF","rF","nF","aF","oF","lF","hF","cF","uF","dF","fF","pF","_F","mF","gF","xF","vF","TF","SF","bF","EF","yF","CF","AF","RF","IF","PF","MF","DF","OF","wF","NF","FF","LF","BF","VF","UF","kF","GF","zF","WF","HF","XF","$F","YF","jF","KF","qF","QF","ZF","JF","e1","t1","i1","s1","r1","n1","a1","o1","l1","h1","c1","u1","d1","f1","p1","_1","m1","g1","x1","v1","T1","S1","b1","No$1","No","P0","Fo","Mg","Dg","bK","EK","br$1","br","dr","E1","sl","Gm","ye","Up","y1","M0","D0","O0","_i","q","bf$1","C1","Il","cv","w0","bf","A1","uv","zo","I1","P1","M1","D1","O1","w1","N1","F1","L1","B1","mt","V1","Mr","k_","Lb","vr","k1$1","Si","N0$1","k1","N0","F0","H1","li$1","li","rh","$c","Xa","dl","cr$1","cr","Xt$1","Xt","dv$1","dv","Le","zm","Og","$r","so$1","so","Wm$1","ea","X1$1","$1","Y1","j1","K1","L0$1","X1","wa","q1$1","ir","Wm","q1","L0","po","Q1","Z1","J1","eL$1","$a$1","$a","eL","Bb","Vb","CK$1","iL$1","iL","tL","Qn$1","Qn","rL$1","Hr","rL","bc$1","bc","Su$1","Su","vi$1","vi","Fr$1","Fr","Ub","kb","Gb","AK$1","pn$1","pn","$s","nL$1","B0","B0$1","rl$1","rl","G_$1","G_","Js","kl$1","kl","Yr","V0","V0$1","zb","We","U0","U0$1","fv","aL","Ef","dn","k0","oL","pv","lL","hL","G0","z_","cL","uL","dL","fL","pL","_L","W_","mL","gL","xL","vL","TL","SL","Ec$1","Ec","bL","EL","yL","CL","z0","AL","_v","RL","Wb","IL","mv","PL","H_$1","H_","IK$1","Kh$1","Kh","Hb","uw","QC","ML","nh","X_$1","X_","DL$1","DL","OL","wL","NL","FL","qh$1","qh","qa$1","qa","LL","BL","VL","UL","Lo$1","Lo","PK","kL","GL","kp$1","kp","Qh$1","Qh","W0","W0$1","Gl","Ci$1","Ci","Xb","$b","qs","Zh","Yb","Zh$1","Jt","H0","Ke","Ke$1","Lr$1","Lr","zL$1","zL","wK$1","X0","$0","WL$1","WL","NK","ah$1","yc$1","yc","ah","HL","jb","Kb","qb","Qb","Zb","$_","XL","Jb","eE","tE","Hm","iE","sE","rE","nE","$L","Xm","YL","jL","aE","oE","$m","lE","Ym","hE","KL","qL","QL","ZL","JL","eB","tB","ti$1","ti","cE","iB","Pl$1","Pl","sB","rB","wg$1","nB","aB","gv","Ng","iu","xv","Y_","oB","wg","lB","vv","Y0","Gp","uE","Tv","FK","LK","hB","cB$1","uB","dE$1","jm","Yc","Km","fB","pB","_B","mB","gB","xB","vB$1","j0","TB","SB","bB$1","Jh","qm","bB","cB","fE","vB","dE","dB","EB","j_$1","j_","yB$1","pE","yB","yf","CB","AB","Do","Bo","zp","BK","un","Xn","su","RB","IB","PB","MB","DB","OB","wB","NB","FB","LB","BB","VB","UB","kB","As","K_","_E","ps","Ml$1","Ml","GB","zB","q_","VK","ur","WB","HB","XB","$B","YB","jB","KB","qB","QB","ZB","JB","e2","t2","i2","s2","r2","n2","a2","o2","l2","h2","c2","u2","d2","f2","p2","_2","m2","g2","x2","v2","T2","S2","b2","E2","y2","C2","A2","R2","I2","P2","M2","D2","O2","w2","N2","F2","L2","B2","V2","U2","k2","G2","z2","W2","H2","X2","$2","Y2","j2","K2","q2","Q2","Z2","J2","eV","tV","iV","sV","rV","nV","aV","oV","lV","hV","cV","uV","dV","fV","pV","_V","mV","ws","gV","Sr","xV","Cc","vV","Na","TV","wi","oh","Ut","mE","qe","SV","bV","Ir$1","Ir","EV","Cf","gE","ru","xE","Wp","yV","CV","AV","ai$1","ai","RV","IV","Wr$1","Wr","vE","st","zl$1","ec","zl","PV","Qm","Ss$1","K0","Ss","MV","q0$1","Q0$1","q0","Is$1","ta","Is","A","B","TE$1","DV","SE","bE","tc$1","tc","Ge","Hp","nu","EE","ze","Qa","ct","xa","OV","Zm","yE","ot","Sv","bv","Ev","yv","au","Af","Q_","Xp","Cr","wV","vs$1","vs","Cv","NV","FV","LV","Fa","rs","Av","Jm","Ai","TE","rp","Qr","Fg","ia","pw","Z0$1","BV","Z_$1","Z_","Z0","Lg","Bg","zn","VV","J0$1","jt","J0","CE","np","UV","Al","kV","J_$1","J_","Q0","UK","Rv","GV","zV","WV","HV","En$1","En","XV","$V","YV","jV","KV","xn","qV","QV","gr","AE","Iv$1","Iv","ZV","JV","e3","t3","ic$1","ic","i3$1","i3","s3","r3","n3","a3","o3","l3","h3","c3","u3","d3","f3","p3","_3","m3","g3","x3","v3","T3","S3","b3","E3","y3","C3","A3","R3","I3","P3","M3","je$1","je","D3","O3","w3","N3","F3","L3","Wl$1","Wl","B3","V3","U3$1","U3","RE","G3","xs","lh","ap","Us","k3","z3$1","z3","em","nl$1","nl","Vg$1","W3","H3","X3","$3","eA$1","Ho","Vg","eA","bh$1","bh","Pv","Za$1","Za","Y3$1","tm","Y3","tA","iA","Ug$1","Ug","IE$1","Aa$1","Aa","Rf$1","Rf","j3$1","Mv","j3","K3$1","q3","Q3","Z3","J3","eU","tU","iU$1","Ja$1","Ja","K3","iU","kK","Tp$1","Tp","uh","Vo","PE","sU","ph","sA","op","$p","ME","sL","IE","Yp$1","Yp","Ei$1","Ei","wr","_o","mo","DE","Eh","bu","Dv","rU","nU","aU","oU","lU","hU","cU","uU","dU","fU","pU","_U","im","rA","bU","mU","gU","xU","vU","TU","SU","EU$1","EU","yU$1","yU","CU","AU","GK$1","zK$1","ja","el","RU","eg","Uo","IU","PU","MU","WK","kg","lp","Gg","Ov","DU$1","DU","Oo","OE$1","Zn$1","Zn","OE","OU","wU","jp","wE","Bi","nA","aA","wv","oA","Nv","Hl","Ac","lA","hA","cA","uA","dA","fA","pA","If","_A","mA","gA","xA","Kp","Fn","Eu","sc","vA","Pf","TA","SA","bA","EA","yA","CA","sm","AA","RA","IA","PA","MA","DA","OA","wA","NA","FA","Fv","Lv","LA","BA","VA","UA","kA","GA","zA","WA","HA","XA","$A","YA","jA","zg","KA","Sp$1","qA","Sp","QA","Bv","ZA","JA","eR","tR","iR","sR","Xl","Mf","$l","Dl","yu","al","rc","NU","ms","rR","nR","Jr","aR","Vv","oR","lR","rm","hR","cR","uR","Wg","Uv","xi","dR","NE","LU","Df","Gs$1","Gs","qt","go","BU","VU","UU","kU","GU","FE","LE","BE","zU","WU","HU","XU","$U","pR","VE","Ns","YU","jU","KU","qU","QU","ZU","JU","ek","tk","Cu","ik","sk$1","rk","nk","ak","Hg","ok","lk","hk","Br$1","Br","wo$1","wo","hp","Au$1","Au","El$1","El","nc","nc$1","In","bp","ma$1","ma","ck","uk","dk","fk","pk","_k","mk","gk","xk","vk","Tk","Sk","qp","HK$1","bk$1","Ak","UE","Ek$1","yk$1","yh","yh$1","Ck$1","Ak$1","yk","Ek","Ck","bk","Rk","Rk$1","kE","GE","zE","fR","Vs","_R","Hi","WE","HE","Ik","XK","Pk","Mk","Dk","D","XE","$E","YE$1","Ze$1","YE","Ze","mR","Vt","Ok$1","as","kv","sn$1","sn","Ok","Gv","gR","xR","vR","TR","SR","bR","ER","yR","CR","wk","AR","RR","zv","IR","PR","Rr","MR","Nk","Ms","DR","jn","OR","Fk","wR","NR","Lk","Bk","Vk","Uk","FR","Rt","LR","BR","kk","Gk","zk","Wk","Hk","Xk","Wv","VR","Hv","nm","$k","Yk","jk","Kk","qk","Qk","Sa","UR","Zk","Jk","eG","kR","GR","tG","ba","Xv","iG","sG","rG","nG","aG","oG","lG","$v","hG","ut","zR","cG","uG","dG","fG","pG","_G","mG","Qp","Ar","Ar$1","Xo","Of$1","Of","am","wf$1","wf","om","lm$1","lm","hm$1","hm","Nf$1","Nf","cm","$o","Yv$1","Yv","WR$1","gG","xG","vG","TG","SG$1","WR","SG","bG","EG","yG$1","nL","yG","HR$1","CG$1","XR$1","Zr$1","Ru$1","Ru","AG","RG","IG","PG","Zp","Zr","XR","CG","HR","jE","Yo$1","Yo","$R","YR","jR","KR","qR","QR","ZR","JR","oi","MG","DG","OG","wG","NG","FG","LG","BG","Jn","ac$1","ac","oc$1","oc","VG$1","tg$1","KE","$K$1","VG","tr","fn","Yf","Ql","Bc","Zl","Vc","Ua","jf","Uc","Kf","la","ka","Jl","kc","eh","Ga","ae","Z","tg","jv$1","jv","qE","QE","ZE","JE","ey","ty","iy","sy","ry","ny","UG","UG$1","Rl$1","YK$1","ou","ay","kG","eI","um","tI","lc","ay$1","Rl","kG$1","um$1","lc$1","ou$1","eI$1","tI$1","oy","ly","GG","zG","dm","Ft$1","WG","HG","Kv","XG","$G","qv","Ft","YG","jG","La","KG","qG","Rc","QG","ZG","fm","JG","ez","Ba","Jp","tz","iz","sz","cy","rz","nz","Qv","az","oz","pm","lz","hz","cz","uz","Ic","dz","fz","Pc","pz","_z","mz","gz","Zv","xz","vz","Tz","Sz","bz","Ez","yz","Cz","Az","Rz","iI","Et$1","Et","Iz","Pz","Mz","Dz","Yl","Oz","wz","jl","Nz","Fz","Mc","Kl$1","Kl","Lz","Bz","er","hy","uy","Vz","Uz","kz","Gz","zz","Wz","Hz","Xz","$z","Rs","Yz","jz","Ff","Kz","qz","Qz","Bn","Zz","Jz","kt","e4$1","t4","i4","s4","r4","n4","a4","o4","l4","h4","c4","mi","e4","u4","d4","ol","sk","f4","p4","dy","_4","m4","g4","x4","v4","T4","yn","S4","b4","Lf","E4","y4","C4","A4","R4","I4","P4","M4","D4","O4","w4","w4$1","N4$1","N4","F4","L4","B4","V4","U4$1","eo$1","eo","U4","k4","k4$1","G4","z4","W4","H4","X4","$4","Y4","j4","_m","q4","K4$1","_m$1","K4","sr$1","sr","Q4","Z4$1","Z4","J4","eW","tW","iW","sW","rW","nW","Bf$1","Bf","aW","oW","lW","hW","cW","Iu","Iu$1","sI$1","uW","sI","ig$1","fy","py$1","ig","dW","fW","pW","_y","_W","mW","gW","xW","vW","TW","SW","bW","EW","yW","CW","AW","RW","IW","PW","MW","DW","OW","wW","NW","Jv","FW","LW","BW","Jv$1","py","KK$1","ql","VW","UW","kW","GW","zW","WW","HW","XW","$W","eT$1","eT","wn","YW","jW","KW","qW","QW","my","Va$1","ZW","JW","Va","QK$1","eH","tH","iH","sH","rH","nH","aH","oH","rI$1","rI","bo$1","bo","jo","Ch$1","Ch","lH","rg","ag","ng","og","sg","xy","gy","nI$1","nI","Xg","tT","aI","hH","_h$1","_h","e_$1","e_","yo","mm","hI","gm","oI","cH","lI","ZK","uH","vy","Ty$1","Ty","hc","ei$1","ei","Pu$1","Pu","Ea$1","Ea","cc$1","cc","$g$1","$g","t_$1","t_","dH","Co$1","Ao","fH","pH","Sy","by","_H","lg","Wn","Co","mH","gH","xH","Yg","jg","ro","vH","Ah","TH","Rh","Ih","SH$1","Ph","Mh","Dh","bH","Oh","pa","wh","Nh","no","Fh","Lh","EH$1","yH$1","EH","CH$1","lu$1","lu","yH","CH","Ep","cI","RH","uI","Ey","IH","AH","Bh","Vh","PH","MH","DH","OH","fI$1","dI","fI","Uh","kh","wH","pI","ao","NH","Nn","FH","Ol","LH","_I$1","_I","SH","yy","Kg$1","ji$1","ji","jr$1","jr","Oe","VH","hi","Ws","qg","oo","UH","Ko","kH","GH","zH","Ki","WH","Kg","Qg","mI","gI","HH","iT","xm","XH","ll$1","Zg","ll","Pa","sT","Jg$1","Jg","rT","uc","Vf","Cy","Mu$1","Mu","hu$1","hu","Du","Cn","Ou","Ay","i_$1","vm","i_","Tm","$H","wu","YH","jH","Sm","KH","qH","QH","ZH","Nu","JH","eX","Fu","Lu","tX","iX","sX","Bu","rX","nX","Vu","Ry","Iy","bm","Dc","xI","vI","TI","aX","os","oX","lX","$t","Qs","kf","Gf","zf","Uu","ku","Gu","zu","Wu","Uf","Hu","Xu","$u","Yu","ju","Gi","Ku","qu","Qu","Zu","Ju","ed","td","Wf","id","sd","rd","hX","SI","nd","nT","cX","ad","od","ld","Em","hd","aT","cd","ud","dd","oT","fd","pd","_d","md","gd","xd","vd","Td","Sd","bd","Ed","yd","Cd","Ad","Rd","Id","Pd","Md","Dd","Od","wd","Nd","Fd","Ld","Bd","Vd","Ud","kd","Gd","zd","Wd","Hd","Xd","$d","Yd","jd","Kd","qd","Qd","uX","Zd","ym","Jd","ef","dX","fX","U1","R1","G1","z1","W1","pX","_X","ex","bI","sa","dc","Hf","Gt","tf","tx","Qe","Yi","mX","gX","xX","EI","yI","RI","vX","TX","SX","CI","bX","lT","EX","Py","hT","AI","My","yX","ix","CX","An","yr","AX","RX","IX","PX","MX","DX","II","OX","ar","wl","wX","NX","FX","LX","lo","BX","PI","MI","VX","UX","kX","zt","DI","Gh","GX","OI","zX","WX","cT","HX","uT","wI","XX","sx","$X","YX","Cm","hh","jX","KX","Dy","Ra","Zt","ns","dT","Ro","qX","QX","pT","ZX","JX","NI","fT","e5","FI","t5","i5","s5","r5","n5","a5","Ur","ml","o5","l5","h5","LI","c5","d5","Oy","u5","f5","p5","qo","ya","BI","_5","m5","g5","mr","VI","UI","ko","yp","x5","v5","T5","S5","b5","E5","y5","rx","kI","C5","GI","zh","zI","A5","R5","I5","P5","WI","wy","_T","s_","M5","cu","hg","ft","It","D5","ho","jc","O5","$I","YI","XI","F5","HI","Ny","N5","w5","KI","k5","L5","jI","W5","B5","V5","G5","z5","U5","Fy","H5","ZI","X5","Ly","$5","Y5","j5","qI","mT","q5","K5","QI$1","JI","QI","Q5","Z5","Xf","J5","Oc","cg","e$","kr","kn","t$","fl","qn","By","i$","Am","gT","eP","s$","a$","r$","n$","Rm","ug","o$","l$","h$","c$","u$","d$","f$","p$","xT","nx","he","be","Te","_t","di","ss","Fs","ni","Qi","Ls","Ot","ls","Xs","hs","Eo","ha","ca","th","hl","Rn","ua","cl","za","Gc","vt","zc","oS","lS","qf","Qf","Zf","hS","cS","_$","tP","vT","TT","ST","m$","xo","g$","Vy","en","ch","Uy","cp","x$","Cp","iP","v$","T$","S$","bT","ET","r_","Io","n_","b$","E$","yT","uu","y$","C$","CT","AT","sP","gl","A$","R$","I$","P$","RT","M$","a_","D$","O$","IT","du","w$","N$","PT","Kc","fu","F$","L$","B$","MT","pu","V$","U$","DT","$f","rP","dg","_r","k$","G$","z$","W$","OT","ax","H$","X$","$$","Y$","wT","Qc","j$","K$","q$","Q$","Z$","J$","eY","tY","iY","sY","rY","nY","aY","oY","lY","NT","wc","xl","ox","hY","cY","nP","FT","Nc","ky","Ap","uY","dY","aP","fY","pY","LT","Gy","_Y","mY","gY","xY","vY","BT","Dn","up","TY","SY","Im","VT","oP","bY","EY","yY","Pm","dp","Gn","CY","fp","AY","RY","UT","IY","zy","fg","Wy","PY","kT","Hy","pp","Xy","$y","MY","GT","DY","OY","zT","wY","NY","WT","Rp","FY","LY","BY","HT","VY","UY","XT","o_","lP","kY","GY","Yy","$T","zY","WY","HY","XY","$Y","YY","jY","KY","qY","QY","ZY","JY","e6","t6","i6","s6","r6","n6","a6","YT","Fc","pg","o6","jy","l6","h6","hP","c6","Lc","Ky","u6","qy","d6","cP","jT","f6","p6","_6","KT","m6","g6","x6","v6","T6","S6","b6","qT","QT","Qy","E6","ZT","y6","C6","JT","A6","R6","I6","P6","M6","D6","eS","tS","Po","Zy","O6","w6","N6","iS","vl","Jy","F6","L6","B6","V6","U6","sS","rS","Bs","k6","G6","z6","W6","fc","H6","X6","$6","Y6","j6","K6","q6","eC","Q6","nS","Mm","tC","dh","lx","iC","Z6","J6","e8","t8","aS","i8","s8","r8","n8","a8","o8","l8","h8","c8","u8","d8","f8","p8","_8","m8","g8","x8","v8","T8","S8","b8","E8","y8","C8","A8","R8","I8","P8","M8","D8","O8","w8","N8","F8","L8","B8","V8","U8","k8","G8","z8","W8","H8","X8","$8","Y8","j8","K8","q8","Q8","Z8","J8","ej","tj","ij","sj","rj","nj","aj","oj","lj","hj","cj","uj","dj","fj","pj","_j","mj","gj","xj","vj","Tj","Sj","bj","Ej","yj","Cj","Aj","Rj","Ij","Pj","Mj","Dj","Oj","wj","Nj","Fj","Lj","Bj","Vj","JK$1","Cw","Flux360LogicSingleton","instance","makeMap","str","expectsLowerCase","set","val","EMPTY_OBJ","EMPTY_ARR","NOOP","isOn","key","isModelListener","extend","remove","arr","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","toRawType","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","cache","camelizeRE","camelize","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","oldValue","invokeArrayFns","fns","arg","def","obj","writable","looseToNumber","toNumber","_globalThis","getGlobalThis","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","name","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","isRef","toDisplayString","replacer","_key","entries","val2","stringifySymbol","activeEffectScope","EffectScope","detached","currentEffectScope","fromParent","last","effectScope","recordEffectScope","effect","scope","getCurrentScope","onScopeDispose","activeEffect","ReactiveEffect","trigger","scheduler","pauseTracking","dep","triggerComputed","resetTracking","lastShouldTrack","shouldTrack","lastEffect","preCleanupEffect","postCleanupEffect","computed","effect2","cleanupDepEffect","trackId","pauseScheduleStack","trackStack","pauseScheduling","resetScheduling","queueEffectSchedulers","trackEffect","debuggerEventExtraInfo","oldDep","triggerEffects","dirtyLevel","tracking","createDep","cleanup","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","track","target","type","depsMap","newValue","oldTarget","deps","newLength","key2","getDepFromReactive","object","isNonTrackableKeys","builtInSymbols","arrayInstrumentations","createArrayInstrumentations","instrumentations","args","toRaw","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","readonly","reactive","MutableReactiveHandler","isOldValueReadonly","isReadonly","isShallow","hadKey","result","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","get","rawTarget","rawKey","has2","wrap","toReadonly","toReactive","has","size","add","get2","deleteEntry","clear","hadItems","createForEach","callback","thisArg","observed","createIterableMethod","method","targetIsMap","isPair","isKeyOnly","innerIterator","done","createReadonlyMethod","createInstrumentations","mutableInstrumentations2","shallowInstrumentations2","readonlyInstrumentations2","shallowReadonlyInstrumentations2","mutableInstrumentations","readonlyInstrumentations","shallowInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","shallow","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isReactive","isProxy","raw","markRaw","ComputedRefImpl","getter","_setter","isSSR","triggerRefValue","self","trackRefValue","getterOrOptions","debugOptions","setter","onlyGetter","ref2","newVal","oldVal","ref","createRef","shallowRef","rawValue","RefImpl","__v_isShallow","useDirectValue","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","toRefs","propertyToRef","ObjectRefImpl","_object","_defaultValue","GetterRefImpl","_getter","toRef","source","defaultValue","callWithErrorHandling","err","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","cur","exposedInstance","errorInfo","errorCapturedHooks","appErrorHandler","logError","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","findInsertionIndex","start","end","middle","middleJob","middleJobId","getId","queueJob","job","queueFlush","flushJobs","invalidateJob","queuePostFlushCb","flushPreFlushCbs","seen","flushPostFlushCbs","deduped","comparator","diff","check","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","pushScopeId","popScopeId","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","withDirectives","vnode","directives","getComponentPublicInstance","bindings","dir","modifiers","traverse","invokeDirectiveHook","prevVNode","oldBindings","binding","hook","leaveCbKey","enterCbKey","useTransitionState","state","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionPropsValidators","recursiveGetSubtree","subTree","BaseTransitionImpl","props","slots","getCurrentInstance","children","getTransitionRawChildren","child","Comment","rawProps","mode","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","hooks","setTransitionHooks","oldChild","oldInnerChild","isSameVNodeType","leavingHooks","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","BaseTransition","leavingVNodes","postClone","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","callHook","callAsyncHook","hook2","leavingVNode","afterHook","cancelHook","called","cancelled","vnode2","hooks2","isKeepAlive","cloneVNode","shapeFlag","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","options","extraOptions","isAsyncWrapper","onActivated","registerKeepAliveHook","onDeactivated","currentInstance","wrappedHook","current","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","reset","setCurrentInstance","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onBeforeUpdate","onUpdated","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","component","warnMissing","Component","selfName","getComponentName","resolve","registry","renderList","renderItem","index","cached","keys","renderSlot","fallback","noSlotted","createVNode","slot","openBlock","validSlotContent","ensureValidVNode","rendered","createBlock","vnodes","isVNode","getPublicInstance","isStatefulComponent","publicPropertiesMap","resolveMergedOptions","instanceWatch","hasSetupBinding","PublicInstanceProxyHandlers","setupState","data","accessCache","appContext","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","propsOptions","descriptor","normalizePropsOrEmits","applyOptions","publicThis","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","render","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","inheritAttrs","components","filters","resolveInjections","methodHandler","opt","createWatcher","provides","provide","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","normalizeInject","inject","createPathGetter","handler","watch","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","mergeOptions","from","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","isMounted","app","version","plugin","mixin","directive","rootContainer","isHydrate","namespace","lastApp","currentApp","parentProvides","treatDefaultAsFactory","hasInjectionContext","internalObjectProto","createInternalObject","isInternalObject","initProps","isStateful","attrs","setFullProps","updateProps","rawPrevProps","optimized","patchFlag","rawCurrentProps","hasAttrsChanged","propsToUpdate","isEmitListener","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","mixinPropsCache","normalizePropsOptions","comp","hasExtends","extendProps","raw2","normalizedKey","validatePropName","prop","propType","shouldCast","shouldCastTrue","typeName","isInternalKey","normalizeSlotValue","normalizeVNode","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","assignSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","setRef","rawRef","oldRawRef","parentSuspense","isUnmount","refValue","owner","oldRef","refs","_isString","_isRef","doSet","existing","queuePostRenderEffect","TeleportEndKey","isTeleport","isTeleportDisabled","isTargetSVG","isTargetMathML","resolveTarget","select","targetSelector","TeleportImpl","container","anchor","parentComponent","slotScopeIds","internals","mountChildren","patchChildren","patchBlockChildren","insert","querySelector","createText","createComment","disabled","dynamicChildren","placeholder","mainAnchor","targetAnchor","prepareAnchor","mount","container2","anchor2","wasDisabled","currentContainer","currentAnchor","traverseStaticChildren","moveTeleport","nextTarget","updateCssVars","unmount","hostRemove","doRemove","targetStart","shouldRemove","hydrateTeleport","parentAnchor","move","moveType","isReorder","node","nextSibling","parentNode","hydrateChildren","targetNode","Teleport","queueEffectWithSuspense","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","getNextHostNode","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","moveStaticNode","next","removeStaticNode","mountElement","patchElement","vnodeHook","transition","dirs","resolveChildrenNamespace","setScopeId","invokeVNodeHook","needCallTransitionHooks","needTransition","scopeId","parentVNode","cloneIfMounted","oldProps","newProps","toggleRecurse","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","shouldUpdateComponent","updateComponentPreRender","componentUpdateFn","parent","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","originNext","nextTree","renderComponentRoot","prevTree","updateHOCHostEl","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","scopedInitialVNode","update","nextVNode","prevProps","prevShapeFlag","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","nextPos","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","leave","delayLeave","afterLeave","remove2","performLeave","cacheIndex","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","removeFragment","performRemove","bum","invalidateMount","teleportEnd","currentNamespace","allowed","ch1","ch2","len","arrI","subComponent","ssrContextKey","useSSRContext","INITIAL_WATCHER_VALUE","doWatch","immediate","deep","flush","once","onTrack","onTrigger","_cb","unwatch","reactiveGetter","source2","forceTrigger","isMultiSource","onCleanup","baseGetter","ssrCleanup","path","segments","depth","getModelModifiers","modelName","emit","event","rawArgs","handlerName","onceHandler","normalizeEmitsOptions","extendEmits","normalizedFromExtend","withProxy","renderCache","fallthroughAttrs","proxyToUse","thisProxy","render2","getFunctionalFallthrough","blockStack","root","filterModelListeners","prevChildren","nextProps","nextChildren","emits","hasPropsChanged","dynamicProps","emitsOptions","nextKeys","isSuspense","suspense","currentBlock","disableTracking","closeBlock","isBlockTreeEnabled","setupBlock","createElementBlock","createBaseVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","klass","style","extraProps","mergeRef","cloneTransition","mergedProps","mergeProps","createTextVNode","text","flag","createCommentVNode","asBlock","slotFlag","toMerge","incoming","emptyAppContext","uid","internalSetCurrentInstance","setInSSRSetupState","registerGlobalSetter","setters","unsetCurrentInstance","setupResult","setupStatefulComponent","setup","setupContext","createSetupContext","resolvedResult","handleSetupResult","finishComponentSetup","compile","skipOptions","template","isCustomElement","compilerOptions","delimiters","componentCompilerOptions","finalCompilerOptions","attrsProxyHandlers","includeInferred","computed$1","propsOrChildren","svgNS","mathmlNS","doc","templateContainer","nodeOps","tag","selector","content","before","wrapper","TRANSITION","ANIMATION","vtcKey","Transition","resolveTransitionProps","DOMTransitionPropsValidators","hasExplicitCallback","baseProps","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","_vtc","endId","expectedType","explicitTimeout","resolveIfNotStale","timeout","propCount","getTransitionInfo","endEvent","ended","onEnd","styles","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","toMs","patchClass","isSVG","transitionClasses","vShowOriginalDisplay","vShowHidden","vShow","setDisplay","CSS_VAR_TEXT","displayRE","patchStyle","isCssString","hasControlledDisplay","prevStyle","setStyle","cssVarText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","patchDOMProp","needRemove","addEventListener","removeEventListener","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","patchStopImmediatePropagation","originalStop","isNativeOn","patchProp","shouldSetAsProp","rendererOptions","renderer","ensureRenderer","createApp","containerOrSelector","normalizeContainer","resolveRootNamespace","isVue2","activePinia","setActivePinia","pinia","piniaSymbol","MutationType","createPinia","toBeInstalled","noop","addSubscription","subscriptions","removeSubscription","idx","triggerSubscriptions","fallbackRunWithContext","ACTION_MARKER","ACTION_NAME","mergeReactiveObjects","patchToApply","subPatch","targetValue","skipHydrateSymbol","shouldHydrate","assign","isComputed","createOptionsStore","hot","actions","getters","initialState","store","localState","computedGetters","createSetupStore","$id","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","isSyncListening","actionSubscriptions","debuggerEvents","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","$reset","newState","$state","$dispose","action","wrappedAction","afterCallbackList","onErrorCallbackList","after","onError","error","partialStore","stopWatcher","setupStore","actionValue","extender","defineStore","idOrOptions","setupOptions","isSetupStore","useStore","hasContext","storeToRefs","methodMap","nativeAPI","unprefixedMethods","returnValue","methodList","eventNameMap","screenfull","element","reject","onFullScreenEntered","returnPromise","onFullScreenExit","eventName","__webpack_require__","exports","definition","__webpack_exports__","AbortException","AnnotationEditorLayer","AnnotationEditorParamsType","AnnotationEditorType","AnnotationEditorUIManager","AnnotationLayer","AnnotationMode","CMapCompressionType","ColorPicker","DOMSVGFactory","DrawLayer","util_FeatureTest","GlobalWorkerOptions","util_ImageKind","InvalidPDFException","MissingPDFException","OPS","PDFDataRangeTransport","PDFDateString","PDFWorker","PasswordResponses","PermissionFlag","PixelsPerInch","RenderingCancelledException","TextLayer","UnexpectedResponseException","Util","VerbosityLevel","XfaLayer","build","createValidAbsoluteUrl","fetchData","getDocument","getFilenameFromUrl","getPdfFilenameFromUrl","getXfaPageViewport","isDataScheme","isPdfFile","noContextMenu","normalizeUnicode","setLayerDimensions","shadow","isNodeJS","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","MAX_IMAGE_SIZE_TO_CACHE","LINE_FACTOR","RenderingIntentFlag","AnnotationEditorPrefix","TextRenderingMode","AnnotationType","AnnotationBorderStyleType","verbosity","setVerbosityLevel","level","getVerbosityLevel","info","msg","warn","unreachable","assert","cond","_isValidProtocol","url","baseUrl","stringToUTF8String","absoluteUrl","nonSerializable","BaseException","message","PasswordException","code","UnknownErrorException","details","status","FormatError","bytesToString","bytes","length","MAX_ARGUMENT_COUNT","strBuf","chunkEnd","chunk","stringToBytes","string32","objectFromMap","map","isLittleEndian","buffer8","isEvalSupported","hexNumbers","transform","minMax","temp","transpose","first","second","rect","rect1","rect2","xLow","xHigh","yLow","yHigh","#getExtremumOnCurve","ttt","#getExtremum","delta","sqrtDelta","NormalizeRegex","NormalizationMap","getUuid","buf","AnnotationPrefix","FontRenderOps","BaseFilterFactory","maps","fgColor","bgColor","filterName","newFgColor","newBgColor","keepHCM","BaseCanvasFactory","#enableHWA","enableHWA","width","height","canvas","canvasAndContext","BaseCMapReaderFactory","isCompressed","compressionType","reason","BaseStandardFontDataFactory","filename","BaseSVGFactory","skipDimensions","svg","SVG_NS","DOMFilterFactory","#baseUrl","#_cache","#_defs","#docId","#document","#_hcmCache","#id","docId","ownerDocument","#cache","#hcmCache","#defs","div","#createTables","mapR","buffer","table","mapG","mapB","bufferR","bufferG","bufferB","#createUrl","tableR","tableG","tableB","filter","#createFilter","#addTransferMapConversion","fgRGB","#getRGB","bgRGB","#addGrayConversion","getSteps","tableA","#addTransferMapAlphaConversion","#addLuminosityConversion","fgGray","bgGray","newFgRGB","newBgRGB","step","newStart","newStep","feColorMatrix","#appendFeFunc","feComponentTransfer","func","feFunc","rTable","gTable","bTable","aTable","color","getRGB","DOMCanvasFactory","isValidFetchUrl","response","request","DOMCMapReaderFactory","DOMStandardFontDataFactory","PageViewport","viewBox","scale","rotation","offsetX","offsetY","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","topLeft","bottomRight","extraDelay","defaultFilename","reURI","reFilename","splitURI","suggestedFilename","StatTimer","outBuf","longest","protocol","pdfDateStringRegex","input","matches","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","xfaPage","colorRGB","getColorValues","colors","span","computedColor","getCurrentTransform","getCurrentTransformInverse","viewport","mustFlip","mustRotate","pageWidth","pageHeight","useRound","widthStr","heightStr","EditorToolbar","#toolbar","#colorPicker","#editor","#buttons","editor","editToolbar","signal","#pointerDown","buttons","position","#addDeleteButton","#focusIn","#focusOut","#addListenersToElement","button","#divider","divider","colorPicker","HighlightToolbar","#uiManager","uiManager","#render","#addHighlightButton","#getLastPoint","boxes","isLTR","lastY","lastX","box","bindEvents","names","opacityToHex","opacity","IdManager","ImageManager","#baseId","image","promise","#get","rawData","mustRemoveAspectRatioPromise","fileReader","imageElement","imagePromise","file","lastModified","CommandManager","#commands","#locked","#maxSize","#position","maxSize","cmd","undo","post","mustExec","overwriteIfSameType","keepUndo","save","KeyboardManager","callbacks","isMac","isMacKey","#serialize","bubbles","checker","ColorManager","rgb","RGB","#abortController","#activeEditor","#allEditors","#allLayers","#altTextManager","#annotationStorage","#changedExistingAnnotations","#commandManager","#currentPageIndex","#deletedAnnotationsElementIds","#draggingEditors","#editorTypes","#editorsToRescale","#enableHighlightFloatingButton","#enableUpdatedAddImage","#filterFactory","#focusMainContainerTimeoutId","#highlightColors","#highlightWhenShiftUp","#highlightToolbar","#idManager","#isEnabled","#isWaiting","#lastActiveElement","#mainHighlightColorPicker","#mlManager","#mode","#selectedEditors","#selectedTextNode","#pageColors","#showAllStates","#boundBlur","#boundFocus","#boundCopy","#boundCut","#boundPaste","#boundKeydown","#boundKeyup","#boundOnEditingAction","#boundOnPageChanging","#boundOnScaleChanging","#boundOnRotationChanging","#previousStates","#translation","#translationTimeoutId","#container","#viewer","proto","arrowChecker","textInputChecker","_self","small","big","viewer","altTextManager","eventBus","pdfDocument","pageColors","highlightColors","enableHighlightFloatingButton","enableUpdatedAddImage","mlManager","#addSelectionListener","#addDragAndDropListeners","#addKeyboardManager","layer","pair","pageNumber","layerX","layerY","pagesRotation","#getAnchorElementForSelection","anchorNode","#getLayerForTextLayer","textLayer","currentLayer","methodOfCreation","selection","anchorOffset","focusNode","focusOffset","isNoneMode","#displayHighlightToolbar","#selectionChange","#dispatchUpdateStates","activeLayer","pointerup","#onSelectEnd","#addFocusManager","#removeFocusManager","activeElement","lastEditor","lastActiveElement","#removeKeyboardManager","#addCopyPasteListeners","#removeCopyPasteListeners","editorType","editors","serialized","clipboardData","newEditors","deserializedEditor","#addEditorToLayer","#selectEditors","#dispatchUpdateUI","isEditing","#isEmpty","types","pageIndex","editId","isFromKeyboard","#disableAll","#enableAll","visible","updateButton","mustWait","annotationElementId","#lastSelectedEditor","params","noCommit","totalX","totalY","TIME_TO_WAIT","mustBeAddedInUndoStack","newX","newY","newPageIndex","savedX","savedY","savedPageIndex","parentWidth","parentHeight","rotator","range","annotation","editorId","AltText","#altText","#altTextDecorative","#altTextButton","#altTextTooltip","#altTextTooltipTimeout","#altTextWasFromKeyBoard","l10nPromise","altText","onClick","#setState","decorative","enabled","tooltip","DELAY_TO_SHOW_TOOLTIP","AnnotationEditor","#accessibilityData","#allResizerDivs","#disabled","#keepAspectRatio","#resizersDiv","#savedDimensions","#boundFocusin","#boundFocusout","#editToolbar","#focusedResizerName","#hasBeenClicked","#initialPosition","#isEditing","#isInEditMode","#isResizerEnabledForKeyboard","#moveInDOMTimeout","#prevDragX","#prevDragY","#telemetryTimeouts","#isDraggable","#zIndex","resize","parameters","pageX","pageY","fakeEditor","FakeEditor","l10n","_uiManager","_type","_value","mime","#stopResizing","#translate","_borderLineWidth","#rotatePoint","angle","#getRotationMatrix","parentScale","scaledWidth","scaledHeight","widthPercent","heightPercent","#createResizers","classes","#resizerPointerdown","boundResizerPointermove","#resizerPointermove","savedDraggable","pointerMoveOptions","savedWidth","savedHeight","savedParentCursor","savedCursor","pointerUpCallback","#addResizeToUndoStack","newWidth","newHeight","minWidth","minHeight","round","rotationMatrix","transf","invRotationMatrix","invTransf","getPoint","getOpposite","isDiagonal","isHorizontal","point","oppositePoint","transfOppositePoint","oppositeX","oppositeY","ratioX","ratioY","deltaX","deltaY","oldDiag","#setUpDragSession","#selectOnPointerEvent","isSelected","pointerMoveCallback","shiftX","shiftY","_angle","isForCopying","boundResizerKeydown","#resizerKeydown","boundResizerBlur","#resizerBlur","#resizerFocus","firstPosition","nextFirstPosition","#setResizerTabIndex","aspectRatio","firstChild","SEED","MASK_HIGH","MASK_LOW","MurmurHash3_64","seed","blockCounts","tailLength","dataUint32","C1_LOW","C2_LOW","SerializableEmpty","AnnotationStorage","#modified","#modifiedIds","#storage","modified","entry","#setModified","PrintAnnotationStorage","hash","transfer","hasBitmap","stats","typeToEditor","editorStats","counters","count","ids","#serializable","clone","FontLoader","#systemFonts","styleElement","nativeFontFace","rule","styleSheet","_inspectFont","loadedName","src","fontFace","font","hasFonts","supported","completeRequest","loadingRequests","otherRequest","testFont","int32","offset","spliceString","chunk1","chunk2","isFontReady","loadTestFontId","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","FontFaceObject","translatedData","disableFontFace","inspectFont","css","objs","character","cmds","commands","packageCapability","packageMap","http","https","path2d","NodePackages","node_utils_fetchData","NodeFilterFactory","NodeCanvasFactory","NodeCMapReaderFactory","NodeStandardFontDataFactory","PathType","applyBoundingBox","bbox","region","BaseShadingPattern","RadialAxialShadingPattern","grad","colorStop","inverse","pathType","pattern","ownerBBox","tmpCanvas","tmpCtx","domMatrix","drawTriangle","coords","rowSize","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","car","cag","cab","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","verticesPerRow","rows","cols","MeshShadingPattern","combinedScale","backgroundColor","cachedCanvases","boundsWidth","boundsHeight","scaleX","scaleY","paddedWidth","paddedHeight","matrixScale","temporaryPatternCanvas","DummyShadingPattern","getShadingPattern","PaintType","TilingPattern","canvasGraphicsFactory","baseTransform","operatorList","xstep","ystep","paintType","tilingType","curMatrixScale","dimx","dimy","graphics","adjustedX0","adjustedY0","adjustedX1","adjustedY1","realOutputSize","bboxWidth","bboxHeight","cssColor","matrix","convertBlackAndWhiteToRGBA","srcPos","dest","nonBlackColor","inverseDecode","black","zeroMapping","oneMapping","widthInSource","widthRemainder","srcLength","destPos","max","elem","MIN_FONT_SIZE","MAX_FONT_SIZE","EXECUTION_TIME","EXECUTION_STEPS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","mirrorContextOperations","destCtx","cp1x","cp1y","cp2x","cp2y","CachedCanvases","canvasFactory","canvasEntry","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","compileType3Glyph","imgData","POINT_TO_PROCESS_LIMIT","POINT_TYPES","width1","points","lineSize","pos","mask","sum","steps","CanvasExtraState","xStrokePad","yStrokePad","intersect","putBinaryImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","thisChunkHeight","elemsInThisChunk","dest32","dest32DataLength","fullSrcDiff","white","srcDiff","kEnd","kEndUnrolled","srcByte","putBinaryImageMask","copyCtxState","sourceCtx","properties","property","resetCtxToDefault","getImageSmoothingEnabled","interpolate","actualScale","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","CanvasGraphics","canvasCtx","commonObjs","filterFactory","optionalContentConfig","markedContentStack","annotationCanvasMap","transparency","background","savedFillStyle","transparentCanvas","executionStartIdx","continueCallback","stepper","argsArray","fnArray","argsArrayLen","chunkOperations","endTime","fnId","depObjId","objsPool","#restoreInitialState","#drawFilter","hcmFilterId","savedFilter","img","inverseTransform","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","fillColor","isPatternFill","currentTransform","cacheKey","scaled","maskCanvas","mainKey","cachedImage","maskToCanvas","minX","maxX","drawnWidth","drawnHeight","fillCanvas","fillCtx","limit","dashArray","dashPhase","intent","flatness","states","inSMaskMode","cacheId","scratchCanvas","dirtyBox","smask","suspendedCtx","layerCtx","layerBox","layerOffsetX","layerOffsetY","layerWidth","layerHeight","maskCtx","subtype","backdrop","transferMap","maskOffsetX","maskOffsetY","maskX","maskY","clip","old","ops","startX","startY","isScalingMatrix","minMaxForBezier","consumePath","strokeColor","needRestore","paths","spacing","leading","fontRefName","fontObj","typeface","bold","italic","browserFontSize","rise","patternTransform","textRenderingMode","fontSize","fillStrokeMode","isAddToPathSet","patternFill","addToPath","glyphs","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","lineWidth","chars","glyph","restoreNeeded","accent","scaledX","scaledY","vmetric","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","fontMatrix","isTextInvisible","spacingLength","xWidth","yWidth","llx","lly","urx","ury","objId","inv","group","currentCtx","bounds","canvasBounds","groupCtx","currentMtx","hasOwnCanvas","viewportScale","canvasWidth","canvasHeight","skewX","skewY","positions","trans","images","bitmap","imgToPaint","clipBox","isEmpty","absDet","normX","normY","scaledLineWidth","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","dashes","#port","#src","CallbackKind","StreamKind","wrapReason","MessageHandler","sourceName","targetName","comObj","#processStreamMessage","callbackId","capability","cbSourceName","cbTargetName","#createStreamSink","actionName","transfers","queueingStrategy","streamId","controller","startCapability","pullCapability","cancelCapability","streamSink","lastDesiredSize","streamController","#deleteStreamController","Metadata","#metadataMap","#data","parsedData","INTERNAL","OptionalContentGroup","#isDisplay","#isPrint","#userSet","#visible","renderingIntent","usage","print","view","internal","userSet","OptionalContentConfig","#cachedGetHash","#groups","#initialHash","#order","off","#evaluateVisibilityExpression","array","operator","preserveRB","PDFDataTransportStream","pdfDataRangeTransport","disableRange","disableStream","initialData","progressiveDone","contentDispositionFilename","begin","loaded","total","found","rangeReader","evt","reader","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","stream","requestCapability","getFilenameFromContentDispositionHeader","contentDisposition","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","flags","textdecode","encoding","decoder","contentDispositionStr","match","iter","quot","part","parts","quotindex","extvalue","encodingend","charset","hex","validateRangeRequestCapabilities","getResponseHeader","isHttp","rangeChunkSize","returnValues","extractFilenameFromHeader","createResponseStatusError","validateResponseStatus","createFetchOptions","headers","withCredentials","abortController","createHeaders","httpHeaders","getArrayBuffer","PDFFetchStream","PDFFetchStreamReader","PDFFetchStreamRangeReader","allowRangeRequests","suggestedLength","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","network_getArrayBuffer","xhr","NetworkManager","listeners","xhrId","pendingRequest","xhrStatus","rangeHeader","PDFNetworkStream","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","manager","fullRequestXhrId","fullRequestXhr","fileUriRegex","parseUrl","sourceUrl","parsedUrl","PDFNodeStream","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","readableStream","BaseRangeReader","createRequestOptions","handleResponse","stat","MAX_TEXT_DIVS_TO_RENDER","DEFAULT_FONT_SIZE","DEFAULT_FONT_ASCENT","#capability","#disableProcessItems","#fontInspectorEnabled","#lang","#layoutTextParams","#pageHeight","#pageWidth","#reader","#rootContainer","#rotation","#scale","#styleCache","#textContentItemsStr","#textContentSource","#textDivs","#textDivProperties","#transform","#ascentCache","#canvasContexts","#minFontSize","#pendingTextLayers","textContentSource","#ensureMinFontSizeComputed","pump","#processItems","onBefore","#getCtx","#layout","abortEx","items","textDivs","textContentItemsStr","#appendText","geom","textDiv","textDivProperties","fontFamily","fontHeight","fontAscent","#getAscent","left","top","scaleFactorStr","divStyle","shouldScaleText","absScaleX","absScaleY","prevFontSize","prevFontFamily","lang","canvasContext","cachedAscent","savedFont","metrics","ascent","descent","ratio","pixels","XfaText","xfa","output","walk","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DELAYED_CLEANUP_TIMEOUT","DefaultCanvasFactory","DefaultCMapReaderFactory","DefaultFilterFactory","DefaultStandardFontDataFactory","task","PDFDocumentLoadingTask","getUrlProp","getDataProp","password","rangeTransport","worker","docBaseUrl","cMapUrl","cMapPacked","CMapReaderFactory","standardFontDataUrl","StandardFontDataFactory","ignoreErrors","maxImageSize","isOffscreenCanvasSupported","canvasMaxAreaInBytes","fontExtraProperties","enableXfa","disableAutoFetch","pdfBug","useSystemFonts","useWorkerFetch","transportFactory","workerParams","docParams","transportParams","workerIdPromise","networkStream","workerId","messageHandler","transport","WorkerTransport","isRefProxy","listener","PDFDocumentProxy","pdfInfo","keepLoadedFonts","PDFPageProxy","#delayedCleanupTimeout","#pendingCleanup","pageInfo","PDFObjects","annotationMode","optionalContentConfigPromise","printAnnotationStorage","intentArgs","#abortDelayedCleanup","intentState","intentPrint","complete","internalRenderTask","#tryCleanup","InternalRenderTask","renderTask","operatorListChanged","opListTask","includeMarkedContent","disableNormalization","textContent","waitOn","resetStats","success","delayed","renderTasks","operatorListChunk","annotationStorageSerializable","modifiedIds","force","delay","curCacheKey","curIntentState","LoopbackPort","#listeners","#deferred","PDFWorkerUtil","otherUrl","other","#workerPorts","port","#resolve","#mainThreadWorkerMessageHandler","workerSrc","terminateEarly","sendTest","testObj","WorkerMessageHandler","workerHandler","cachedPort","#methodPromises","#pageCache","#pagePromises","#pageRefCache","#passwordCapability","loadingTask","factory","#cacheSimpleMethod","cachedPromise","isOpList","annotationStorage","modifiedIdsHash","cacheKeyBuf","page","terminated","sink","readyReason","headersCapability","fullReader","exception","updatePassword","exportedData","exportedError","imageRef","pageProxy","imageData","results","refStr","INITIAL_DATA","#objs","#ensureObj","RenderTask","#internalRenderTask","separateAnnots","#rAF","#canvasInUse","useRequestAnimationFrame","makeColorComp","scaleAndClamp","ColorConverters","html","storage","storedData","option","linkService","attributes","isHTMLAnchorElement","rootHtml","isNotForRichText","rootDiv","stack","childHtml","DEFAULT_TAB_INDEX","annotation_layer_DEFAULT_FONT_SIZE","GetElementsByNameSet","getRectDims","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","TextWidgetAnnotationElement","RadioButtonWidgetAnnotationElement","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","SignatureWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","#updates","#hasBorder","#popupElement","isRenderable","ignoreBorder","createQuadrilaterals","titleObj","contentsObj","richText","#setRectEdited","currentRect","horizontalRadius","verticalRadius","radius","borderColor","elementWidth","elementHeight","setColor","jsName","styleName","colorType","colorArray","display","hidden","jsEvent","commonActions","detail","eventProxy","quadPoints","rectBlX","rectBlY","rectTrX","rectTrY","trX","trY","blX","blY","svgBuffer","borderWidth","svgFactory","defs","clipPath","rectWidth","rectHeight","popup","skipId","fields","fieldObj","exportValues","exportValue","domElement","triggers","link","isBound","#bindAttachment","#bindSetOCGState","#setInternalLink","destination","attachment","resetForm","otherClickAction","resetFormFields","resetFormRefs","include","allFields","fieldIds","fieldName","field","allIds","elementData","baseName","valueGetter","TEXT_ALIGNMENT","fontColor","computedFontSize","BORDER_SIZE","roundToOneDecimal","numberOfLines","lineHeight","isRequired","keyInStorage","maxLen","fieldFormattedValues","blurListener","formattedValue","charLimit","commitKey","_blurListener","selectionStart","selectionEnd","selStart","selEnd","combWidth","checked","checkbox","curChecked","radio","pdfButtonValue","linkElement","selectElement","addAnEmptyEntry","optionElement","removeEmptyEntry","noneOptionElement","getValue","isExport","multiple","selectedValues","getItems","displayValue","selectChild","indices","change","elements","PopupElement","elementIds","#boundKeyDown","#keyDown","#boundHide","#hide","#boundShow","#show","#boundToggle","#toggle","#color","#contentsObj","#dateObj","#elements","#parent","#parentRect","#pinned","#popup","#rect","#richText","#titleObj","#wasVisible","modificationDate","parentRect","open","baseColor","header","title","#html","contents","#fontSize","#fontColor","#makePopupContent","popupLines","popupContent","lineAttributes","line","lines","#setPosition","useParentRect","normalizedRect","HORIZONTAL_SPACE_AFTER_ANNOTATION","popupLeft","popupTop","lineSpan","#line","#square","square","#circle","circle","#polyline","vertices","borderStyle","popupRef","polyline","#polylines","inkLists","inkList","#trigger","#download","#accessibilityManager","#annotationCanvasMap","#editableAnnotations","accessibilityManager","annotationEditorUIManager","#appendElement","contentElement","annotations","popupToElements","elementParams","isPopupAnnotation","#setAnnotationCanvasMap","EOL_PATTERN","FreeTextEditor","#boundEditorDivBlur","#boundEditorDivFocus","#boundEditorDivInput","#boundEditorDivKeydown","#boundEditorDivPaste","#content","#editorDivId","#initialData","#updateFontSize","#updateColor","setFontsize","#setEditorDimensions","savedFontsize","col","savedColor","#extractText","#getNodeContent","savedDisplay","savedVisibility","savedText","newText","setText","#setContent","baseX","baseY","posX","posY","paste","#deserializeContent","startContainer","startOffset","bufferBefore","bufferAfter","newRange","beforeLength","acc","#serializeContent","textPosition","padding","#hasElementChanged","Outliner","#box","#verticalEdges","#intervals","innerMargin","EPSILON","right","shiftedMinX","shiftedMinY","lastEdge","lastPoint","edge","outlineVerticalEdges","#breakEdge","#insert","#remove","#getOutlines","edges","allEdges","edge1","edge2","outlines","outline","lastPointX","lastPointY","HighlightOutline","#binarySearch","Outline","_bbox","_rotation","FreeHighlightOutline","#outlines","polygon","prevX","prevY","FreeOutliner","#bottom","#innerMargin","#isLTR","#top","#last","#lastX","#lastY","#min","#min_dist","#scaleFactor","#thickness","#points","#MIN_DIST","#MIN_DIFF","#MIN","scaleFactor","thickness","#getLastCoords","lastTop","lastBottom","diffX","diffY","diffD","thX","thY","bottom","lastTopX","lastTopY","lastBottomX","lastBottomY","#bbox","#outline","#computeMinMax","#rescale","#rescaleAndSwap","ltrCallback","outliner","#boundPointerDown","#button","#buttonSwatch","#defaultColor","#dropdown","#dropdownWasFromKeyboard","#isMainColorPicker","#eventBus","#type","#openDropdown","swatch","dropdown","#getDropdownRoot","#colorSelect","#isDropdownVisible","HighlightEditor","#anchorNode","#anchorOffset","#boxes","#clipPathId","#focusOutlines","#focusNode","#focusOffset","#highlightDiv","#highlightOutlines","#isFreeHighlight","#keydown","#lastPoint","#opacity","#outlineId","#text","#methodOfCreation","#createFreeOutlines","#addToDrawLayer","#createOutlines","outlinerForOutline","highlightOutlines","highlightId","clipPathId","extraThickness","#rotateBbox","#updateThickness","savedThickness","setThickness","#changeThickness","toolbar","#getRotation","#cleanDrawLayer","mustBeSelected","drawLayer","highlightDiv","direction","#setCaret","#serializeBoxes","#serializeOutlines","pointerMove","#highlightMove","pointerDownOptions","pointerDown","#endHighlight","InkEditor","#baseHeight","#baseWidth","#boundCanvasPointermove","#boundCanvasPointerleave","#boundCanvasPointerup","#boundCanvasPointerdown","#canvasContextMenuTimeoutId","#currentPath2D","#disableEditing","#hasSomethingToDraw","#isCanvasInitialized","#observer","#realWidth","#realHeight","#requestFrameCallback","#updateOpacity","#fitToContent","#redraw","setOpacity","savedOpacity","#createCanvas","#createObserver","#setCanvasDims","#getInitialBBox","parentRotation","#setStroke","#startDrawing","#drawPoints","#draw","currentPath","path2D","#makeBezierCurve","#endPath","#stopDrawing","bezier","#generateBezierPoints","lastPoints","bezierPoints","control1","control2","#updateTransform","#endDrawing","roundedWidth","roundedHeight","#setScaleFactor","#getPadding","scaleFactorW","scaleFactorH","#buildPath2D","#toPDFCoordinates","#fromPDFCoordinates","#serializePaths","p10","p11","p20","p21","p30","p31","p40","p41","#getBbox","xMin","xMax","yMin","yMax","firstTime","prevTranslationX","prevTranslationY","unscaledPadding","StampEditor","#bitmap","#bitmapId","#bitmapPromise","#bitmapUrl","#bitmapFile","#bitmapFileName","#canvas","#hasMLBeenQueried","#resizeTimeoutId","#isSvg","#hasBeenAddedInUndoStack","#getBitmapFetched","fromId","#getBitmapDone","#getBitmap","MAX_RATIO","factor","#drawBitmap","#setDimensions","#scaleBitmap","bitmapWidth","bitmapHeight","prevWidth","prevHeight","offscreen","#mlGuessAltText","#serializeBitmap","toUrl","bitmapUrl","bitmapId","isSvg","accessibilityData","area","prevData","#allowClick","#annotationLayer","#boundPointerup","#boundPointerdown","#boundTextLayerPointerDown","#editorFocusTimeoutId","#editors","#hadPointerDown","#isCleaningUp","#isDisabling","#textLayer","annotationLayer","editorTypes","#cleanup","classList","isCommitting","annotationElementIds","editables","editable","changedAnnotations","resetAnnotations","#textLayerPointerDown","#currentEditorType","#createNewEditor","#getCenterPoint","isCentered","oldRotation","#mapping","#toUpdate","#setBox","#createSVG","#createClipPath","pathId","clipPathUse","isPathUpdatable","use","maskId","use1","use2","className","__webpack_exports__getDocument","inBrowser","makeSymbol","shareable","generateFormatCacheKey","locale","friendlyJSONstringify","json","isNumber","isDate","isRegExp","isEmptyObject","escapeHtml","rawText","join","separator","incrementer","isNotObjectOrIsArray","deepCopy","des","createPosition","column","createLocation","loc","RE_ARGS","format","identifier","CompileWarnCodes","warnMessages","createCompileWarn","CompileErrorCodes","errorMessages","createCompileError","domain","messages","defaultOnError","CHAR_SP","CHAR_CR","CHAR_LF","CHAR_LS","CHAR_PS","createScanner","_buf","_index","_line","_column","_peekOffset","isCRLF","isLF","isPS","isLS","isLineEnd","peekOffset","charAt","currentChar","currentPeek","peek","resetPeek","skipToPeek","EOF","DOT","LITERAL_DELIMITER","ERROR_DOMAIN$3","createTokenizer","location","_scnr","currentOffset","currentPosition","_initLoc","_initOffset","_context","emitError","getToken","token","getEndToken","eat","scnr","peekSpaces","skipSpaces","isIdentifierStart","isNumberStart","isNamedIdentifierStart","currentType","isListIdentifierStart","isLiteralStart","isLinkedDotStart","isLinkedModifierStart","isLinkedDelimiterStart","isLinkedReferStart","isTextStart","isPluralStart","detectModuloStart","spaces","hasSpace","detectModulo","takeChar","isIdentifier","takeIdentifierChar","isNamedIdentifier","takeNamedIdentifierChar","isDigit","takeDigit","isHexDigit","takeHexDigit","getDigits","num","readModulo","readText","readNamedIdentifier","readListIdentifier","isLiteral","readLiteral","literal","readEscapeSequence","readUnicodeEscapeSequence","unicode","digits","sequence","isInvalidIdentifier","readInvalidIdentifier","identifiers","readLinkedModifier","readLinkedRefer","readPlural","plural","readTokenInPlaceholder","readTokenInLinked","validNamedIdentifier","validListIdentifier","validLiteral","readToken","isModulo","nextToken","startLoc","endLoc","ERROR_DOMAIN$2","KNOWN_ESCAPES","fromEscapeSequence","codePoint4","codePoint6","codePoint","createParser","onWarn","tokenzer","emitWarn","startNode","endNode","parseText","tokenizer","parseList","parseNamed","modulo","parseLiteral","parseLinkedModifier","getTokenCaption","parseLinkedKey","parseLinked","linkedNode","parsed","nextContext","emptyLinkedKeyNode","parseMessage","endOffset","parsePlural","msgNode","hasEmptyMessage","parseResource","parse","createTransformer","ast","traverseNodes","nodes","transformer","traverseNode","optimize","body","optimizeMessageNode","ERROR_DOMAIN$1","minify","resource","cases","valueNode","linked","list","named","ERROR_DOMAIN","createCodeGenerator","sourceMap","breakLineCode","_needIndent","push","_newline","withBreakLine","_breakLineCode","indent","withNewLine","deindent","newline","generateLinkedNode","generator","helper","generateNode","generateMessageNode","needIndent","generatePluralNode","generateResource","generate","helpers","baseCompile","assignedOptions","jit","enalbeMinify","enambeOptimize","initFeatureFlags","pathStateMachine","literalValueRE","exp","stripQuotes","getPathCharType","formatSubPath","trimmed","subPathDepth","newChar","typeMap","maybeUnescapeQuote","nextChar","resolveWithKeyValue","resolveValue","hit","DEFAULT_MODIFIER","DEFAULT_MESSAGE","DEFAULT_MESSAGE_DATA_TYPE","DEFAULT_NORMALIZE","DEFAULT_INTERPOLATE","pluralDefault","choice","choicesLength","getPluralIndex","normalizeNamed","pluralIndex","createMessageContext","pluralRule","orgPluralRule","_list","_named","_modifier","normalize","arg1","arg2","modifier","devtools","setDevToolsHook","initI18nDevTools","i18n","meta","translateDevTools","createDevToolsHook","payloads","code$1","inc$1","CoreWarnCodes","inc","CoreErrorCodes","createCoreError","getLocale","resolveLocale","_resolveLocale","fallbackWithSimple","fallbackWithLocaleChain","startLocale","DEFAULT_LOCALE","chain","block","appendBlockToChain","defaults","blocks","follow","appendLocaleToChain","tokens","appendItemToChain","VERSION","NOT_REOSLVED","MISSING_RESOLVE_VALUE","getDefaultLinkedModifiers","_compiler","registerMessageCompiler","compiler","_resolver","registerMessageResolver","resolver","_fallbacker","registerLocaleFallbacker","fallbacker","_additionalMeta","setAdditionalMeta","getAdditionalMeta","_fallbackContext","setFallbackContext","getFallbackContext","_cid","createCoreContext","_locale","fallbackLocale","datetimeFormats","numberFormats","pluralRules","missing","missingWarn","fallbackWarn","fallbackFormat","unresolving","postTranslation","processor","warnHtmlMessage","escapeParameter","messageCompiler","messageResolver","localeFallbacker","fallbackContext","internalOptions","__datetimeFormatters","__numberFormatters","__meta","handleMissing","updateFallbackLocale","isAlmostSameLocale","compareLocale","isImplicitFallback","targetLocale","locales","formatParts","formatMessageParts","_static","acm","formatMessagePart","linkedKey","linkedModifier","defaultOnCacheKey","compileCache","isMessageAST","detectError","baseCompile$1","compileToFunction","NOOP_MESSAGE_FUNCTION","isMessageFunction","translate","parseTranslateArgs","resolvedMessage","defaultMsgOrKey","enableDefaultMsg","escapeParams","formatScope","resolveMessageFormat","cacheBaseKey","occurred","compileMessageFormat","ctxOptions","getMessageContextOptions","msgContext","messaged","evaluateMessage","missingRet","getCompileContext","msgCtx","arg3","datetime","overrides","parseDateTimeArgs","datetimeFormat","formatter","DATETIME_FORMAT_OPTIONS_KEYS","arg4","dateTime","clearDateTimeFormat","number","parseNumberArgs","numberFormat","NUMBER_FORMAT_OPTIONS_KEYS","clearNumberFormat","I18nErrorCodes","createI18nError","TranslateVNodeSymbol","DatetimePartsSymbol","NumberPartsSymbol","SetPluralRulesSymbol","InejctWithOptionSymbol","DisposeSymbol","handleFlatJson","subKeys","lastIndex","currentObj","hasStringValue","getLocaleMessages","__i18n","flatJson","custom","getComponentOptions","adjustI18nResources","componentOptions","createTextNode","DEVTOOLS_META","NOOP_RETURN_ARRAY","NOOP_RETURN_FALSE","composerID","defineCoreMissingHandler","getMetaInfo","createComposer","VueI18nLegacy","__root","__injectWithOption","_isGlobal","_ref","translateExistCompatible","_inheritLocale","_fallbackLocale","_messages","_datetimeFormats","_numberFormats","_missingWarn","_fallbackWarn","_fallbackRoot","_fallbackFormat","_missing","_runtimeMissing","_postTranslation","_warnHtmlMessage","_escapeParameter","_modifiers","_pluralRules","trackReactivityValues","getPostTranslationHandler","setPostTranslationHandler","getMissingHandler","setMissingHandler","wrapWithDeps","argumentParser","warnType","fallbackSuccess","fallbackFail","successCondition","translateVNode","numberParts","datetimeParts","setPluralRules","rules","getLocaleMessage","resolveMessages","targetLocaleMessages","messageValue","setLocaleMessage","_message","mergeLocaleMessage","getDateTimeFormat","setDateTimeFormat","mergeDateTimeFormat","getNumberFormat","setNumberFormat","mergeNumberFormat","composer","convertComposerOptions","fallbackRoot","pluralizationRules","inheritLocale","sharedMessages","createVueI18n","__extender","vueI18n","baseFormatProps","getInterpolateArg","getFragmentableTag","TranslationImpl","useI18n","assignedAttrs","Translation","renderFormatter","slotKeys","partFormatter","NumberFormatImpl","NumberFormat","DatetimeFormatImpl","DatetimeFormat","getComposer$2","i18nInternal","vTDirective","_process","parsedValue","parseValue","makeParams","apply","pluginOptions","useI18nComponentName","defineMixin","vuei18n","optionsI18n","mergeToGlobal","_vueI18n","I18nInjectionKey","createI18n","__legacyMode","__globalInjection","__allowComposition","__instances","globalScope","__global","createGlobal","symbol","__getInstance","__setInstance","__deleteInstance","opts","globalReleaseHandler","injectGlobalFields","unmountApp","getI18nInstance","getGlobalComposer","getScope","useI18nForLegacy","getComposer","composerOptions","setupLifeCycle","legacyMode","useComponent","getParentComponentInstance","_composer","dispose","isLocalScope","warpWithDeps","sync","globalExportProps","globalExportMethods","desc","L9","U9","T9","J9","H9","P9","Y9","O9","_9","K9","q9","W9","j9","$9","V9","X9","e7","t7","A7","Z9","z9","i7","s7","n7","a7","r7","o7","c7","g7","l7","h7","I7","u7","d7","f7","C7","Q7","E7","B7","b7","p7","D7","m7","x7","w7","S7","y7","k7","F7","R7","v7","N7","M7","G7","L7","U7","T7","H7","P7","J7","Y7","K7","O7","_7","q7","W7","j7","$7","V7","X7","Z7","z7","M9","sQ","oQ","N9","G9","eQ","AQ","iQ","tQ","nQ","aQ","rQ","cQ","gQ","lQ","hQ","IQ","uQ","dQ","fQ","EQ","CQ","BQ","QQ","pQ","mQ","xQ","yQ","bQ","wQ","SQ","DQ","kQ","FQ","RQ","vQ","NQ","GQ","LQ","MQ","UQ","TQ","e9","t9","A9","i9","s9","n9","HQ","a9","r9","JQ","YQ","PQ","o9","OQ","c9","_Q","KQ","qQ","WQ","g9","l9","h9","I9","u9","d9","jQ","f9","C9","B9","E9","Q9","$Q","VQ","XQ","p9","eJ","tJ","AJ","iJ","sJ","nJ","aJ","rJ","oJ","cJ","gJ","lJ","hJ","IJ","uJ","dJ","fJ","CJ","BJ","EJ","QJ","pJ","mJ","xJ","yJ","bJ","wJ","SJ","DJ","kJ","FJ","RJ","vJ","NJ","GJ","MJ","LJ","UJ","TJ","HJ","PJ","JJ","YJ","OJ","_J","KJ","qJ","WJ","jJ","$J","VJ","XJ","ZJ","zJ","ZQ","m9","x9","zQ","y9","b9","w9","S9","D9","k9","F9","eK","AK","IK","dK","CK","QK","yK","wK","DK","RK","GK","MK","HK","JK","YK","OK","KK","qK","jK","$K","zK","eq","tq","R9","Aq","v9","iq","sq","yq","Flux360InterfaceSingleton","flux360Logic","Flux360Logic","logicConfig","flux360Interface","Flux360Interface","interfaceConfig","situationComponent","texture"],"sources":["../../../node_modules/flux-360-logic/dist/index-CpY_tVle.js","../../../src/logic/Flux360LogicSingleton.ts","../../../node_modules/@vue/shared/dist/shared.esm-bundler.js","../../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../../node_modules/pinia/node_modules/vue-demi/lib/index.mjs","../../../node_modules/pinia/dist/pinia.mjs","../../../node_modules/screenfull/index.js","../../../node_modules/pdfjs-dist/build/pdf.mjs","../../../node_modules/@intlify/shared/dist/shared.mjs","../../../node_modules/@intlify/message-compiler/dist/message-compiler.esm-browser.js","../../../node_modules/@intlify/core-base/dist/core-base.mjs","../../../node_modules/vue-i18n/dist/vue-i18n.mjs","../../../node_modules/flux-360-interface/dist/flux_360_interface.js","../../../src/interface/Flux360InterfaceSingleton.ts","../../../src/main.ts"],"sourcesContent":["const uP = \"0.0.56\";\nclass dP {\n constructor() {\n this.onBeforeSetup = [], this.onAfterSetup = [], this.onGraphicsEngineCreated = [], this.onBeforeSituationLeave = [], this.onAfterSituationLeave = [], this.onBeforeSituationEnter = [], this.onAfterSituationEnter = [], this.onBeforeSituationComponentCreated = [], this.onAfterSituationComponentCreated = [], this.onSituationComponentClicked = [], this.onSituationComponentHoverOver = [], this.onSituationComponentHoverOut = [], this.onBeforePanoramaAnimationStarted = [];\n }\n}\nclass fP {\n constructor() {\n this.callbacks = new dP();\n }\n // Before Setup\n triggerOnBeforeSetup() {\n this.callbacks.onBeforeSetup.forEach((e) => e());\n }\n registerOnBeforeSetup(e) {\n this.callbacks.onBeforeSetup.push(e);\n }\n // After Setup\n triggerOnAfterSetup() {\n this.callbacks.onAfterSetup.forEach((e) => e());\n }\n registerOnAfterSetup(e) {\n this.callbacks.onAfterSetup.push(e);\n }\n removeOnAfterSetup(e) {\n this.removeCallback(e, this.callbacks.onAfterSetup);\n }\n // Before Situation Leave\n triggerOnBeforeSituationLeave(e, t) {\n this.callbacks.onBeforeSituationLeave.forEach((i) => i(e, t));\n }\n registerOnBeforeSituationLeave(e) {\n this.callbacks.onBeforeSituationLeave.push(e);\n }\n removeOnBeforeSituationLeave(e) {\n this.removeCallback(e, this.callbacks.onBeforeSituationLeave);\n }\n // After Situation Leave\n triggerOnAfterSituationLeave(e, t) {\n this.callbacks.onAfterSituationLeave.forEach((i) => i(e, t));\n }\n registerOnAfterSituationLeave(e) {\n this.callbacks.onAfterSituationLeave.push(e);\n }\n removeOnAfterSituationLeave(e) {\n this.removeCallback(e, this.callbacks.onAfterSituationLeave);\n }\n // Before Situation Enter\n triggerOnBeforeSituationEnter(e, t) {\n this.callbacks.onBeforeSituationEnter.forEach((i) => i(e, t));\n }\n registerOnBeforeSituationEnter(e) {\n this.callbacks.onBeforeSituationEnter.push(e);\n }\n removeOnBeforeSituationEnter(e) {\n this.removeCallback(e, this.callbacks.onBeforeSituationEnter);\n }\n // After Situation Enter\n triggerOnAfterSituationEnter(e, t) {\n this.callbacks.onAfterSituationEnter.forEach((i) => i(e, t));\n }\n registerOnAfterSituationEnter(e) {\n this.callbacks.onAfterSituationEnter.push(e);\n }\n removeOnAfterSituationEnter(e) {\n this.removeCallback(e, this.callbacks.onAfterSituationEnter);\n }\n // Graphics Engine created\n triggerOnGraphicsEngineCreated(e) {\n this.callbacks.onGraphicsEngineCreated.forEach((t) => t(e));\n }\n registerOnGraphicsEngineCreated(e) {\n this.callbacks.onGraphicsEngineCreated.push(e);\n }\n removeOnGraphicsEngineCreated(e) {\n this.removeCallback(e, this.callbacks.onGraphicsEngineCreated);\n }\n // After SituationComponent created\n triggerOnAfterSituationComponentCreated(e) {\n this.callbacks.onAfterSituationComponentCreated.forEach((t) => t(e));\n }\n registerOnAfterSituationComponentCreated(e) {\n this.callbacks.onAfterSituationComponentCreated.push(e);\n }\n removeOnAfterSituationComponentCreated(e) {\n this.removeCallback(e, this.callbacks.onAfterSituationComponentCreated);\n }\n // Before SituationComponent created \n triggerOnBeforeSituationComponentCreated(e) {\n this.callbacks.onBeforeSituationComponentCreated.forEach((t) => t(e));\n }\n registerOnBeforeSituationComponentCreated(e) {\n this.callbacks.onBeforeSituationComponentCreated.push(e);\n }\n removeOnBeforeSituationComponentCreated(e) {\n this.removeCallback(e, this.callbacks.onBeforeSituationComponentCreated);\n }\n // SituationComponent clicked\n triggerOnSituationComponentClicked(e) {\n this.callbacks.onSituationComponentClicked.forEach((t) => t(e));\n }\n registerOnSituationComponentClicked(e) {\n this.callbacks.onSituationComponentClicked.push(e);\n }\n removeOnSituationComponentClicked(e) {\n this.removeCallback(e, this.callbacks.onSituationComponentClicked);\n }\n // SituationComponent Hover Over\n triggerOnSituationComponentHoverOver(e) {\n this.callbacks.onSituationComponentHoverOver.forEach((t) => t(e));\n }\n registerOnSituationComponentHoverOver(e) {\n this.callbacks.onSituationComponentHoverOver.push(e);\n }\n removeOnSituationComponentHoverOver(e) {\n this.removeCallback(e, this.callbacks.onSituationComponentHoverOver);\n }\n // SituationComponent Hover Out\n triggerOnSituationComponentHoverOut(e) {\n this.callbacks.onSituationComponentHoverOut.forEach((t) => t(e));\n }\n registerOnSituationComponentHoverOut(e) {\n this.callbacks.onSituationComponentHoverOut.push(e);\n }\n removeOnSituationComponentHoverOut(e) {\n this.removeCallback(e, this.callbacks.onSituationComponentHoverOut);\n }\n // Before Panorama Animation Started\n triggerOnBeforePanoramaAnimationStarted(e) {\n this.callbacks.onBeforePanoramaAnimationStarted.forEach((t) => t(e));\n }\n registerOnBeforePanoramaAnimationStarted(e) {\n this.callbacks.onBeforePanoramaAnimationStarted.push(e);\n }\n removeOnBeforePanoramaAnimationStarted(e) {\n this.removeCallback(e, this.callbacks.onBeforePanoramaAnimationStarted);\n }\n removeCallback(e, t) {\n const i = t.indexOf(e);\n i > -1 && t.splice(i, 1);\n }\n}\nconst bs = new fP();\nclass sC {\n /**\n * Create a new EventState\n * @param mask defines the mask associated with this state\n * @param skipNextObservers defines a flag which will instruct the observable to skip following observers when set to true\n * @param target defines the original target of the state\n * @param currentTarget defines the current target of the state\n */\n constructor(e, t = !1, i, s) {\n this.initialize(e, t, i, s);\n }\n /**\n * Initialize the current event state\n * @param mask defines the mask associated with this state\n * @param skipNextObservers defines a flag which will instruct the observable to skip following observers when set to true\n * @param target defines the original target of the state\n * @param currentTarget defines the current target of the state\n * @returns the current event state\n */\n initialize(e, t = !1, i, s) {\n return this.mask = e, this.skipNextObservers = t, this.target = i, this.currentTarget = s, this;\n }\n}\nclass pP {\n /**\n * Creates a new observer\n * @param callback defines the callback to call when the observer is notified\n * @param mask defines the mask of the observer (used to filter notifications)\n * @param scope defines the current scope used to restore the JS context\n */\n constructor(e, t, i = null) {\n this.callback = e, this.mask = t, this.scope = i, this._willBeUnregistered = !1, this.unregisterOnNextCall = !1, this._remove = null;\n }\n /**\n * Remove the observer from its observable\n * This can be used instead of using the observable's remove function.\n */\n remove() {\n this._remove && this._remove();\n }\n}\nclass G {\n /**\n * Create an observable from a Promise.\n * @param promise a promise to observe for fulfillment.\n * @param onErrorObservable an observable to notify if a promise was rejected.\n * @returns the new Observable\n */\n static FromPromise(e, t) {\n const i = new G();\n return e.then((s) => {\n i.notifyObservers(s);\n }).catch((s) => {\n if (t)\n t.notifyObservers(s);\n else\n throw s;\n }), i;\n }\n /**\n * Gets the list of observers\n * Note that observers that were recently deleted may still be present in the list because they are only really deleted on the next javascript tick!\n */\n get observers() {\n return this._observers;\n }\n /**\n * Creates a new observable\n * @param onObserverAdded defines a callback to call when a new observer is added\n * @param notifyIfTriggered If set to true the observable will notify when an observer was added if the observable was already triggered.\n */\n constructor(e, t = !1) {\n this.notifyIfTriggered = t, this._observers = new Array(), this._numObserversMarkedAsDeleted = 0, this._hasNotified = !1, this._eventState = new sC(0), e && (this._onObserverAdded = e);\n }\n add(e, t = -1, i = !1, s = null, r = !1) {\n if (!e)\n return null;\n const n = new pP(e, t, s);\n return n.unregisterOnNextCall = r, i ? this._observers.unshift(n) : this._observers.push(n), this._onObserverAdded && this._onObserverAdded(n), this._hasNotified && this.notifyIfTriggered && this._lastNotifiedValue !== void 0 && this.notifyObserver(n, this._lastNotifiedValue), n._remove = () => {\n this.remove(n);\n }, n;\n }\n addOnce(e) {\n return this.add(e, void 0, void 0, void 0, !0);\n }\n /**\n * Remove an Observer from the Observable object\n * @param observer the instance of the Observer to remove\n * @returns false if it doesn't belong to this Observable\n */\n remove(e) {\n return e ? (e._remove = null, this._observers.indexOf(e) !== -1 ? (this._deferUnregister(e), !0) : !1) : !1;\n }\n /**\n * Remove a callback from the Observable object\n * @param callback the callback to remove\n * @param scope optional scope. If used only the callbacks with this scope will be removed\n * @returns false if it doesn't belong to this Observable\n */\n removeCallback(e, t) {\n for (let i = 0; i < this._observers.length; i++) {\n const s = this._observers[i];\n if (!s._willBeUnregistered && s.callback === e && (!t || t === s.scope))\n return this._deferUnregister(s), !0;\n }\n return !1;\n }\n /**\n * @internal\n */\n _deferUnregister(e) {\n e._willBeUnregistered || (this._numObserversMarkedAsDeleted++, e.unregisterOnNextCall = !1, e._willBeUnregistered = !0, setTimeout(() => {\n this._remove(e);\n }, 0));\n }\n // This should only be called when not iterating over _observers to avoid callback skipping.\n // Removes an observer from the _observer Array.\n _remove(e, t = !0) {\n if (!e)\n return !1;\n const i = this._observers.indexOf(e);\n return i !== -1 ? (t && this._numObserversMarkedAsDeleted--, this._observers.splice(i, 1), !0) : !1;\n }\n /**\n * Moves the observable to the top of the observer list making it get called first when notified\n * @param observer the observer to move\n */\n makeObserverTopPriority(e) {\n this._remove(e, !1), this._observers.unshift(e);\n }\n /**\n * Moves the observable to the bottom of the observer list making it get called last when notified\n * @param observer the observer to move\n */\n makeObserverBottomPriority(e) {\n this._remove(e, !1), this._observers.push(e);\n }\n /**\n * Notify all Observers by calling their respective callback with the given data\n * Will return true if all observers were executed, false if an observer set skipNextObservers to true, then prevent the subsequent ones to execute\n * @param eventData defines the data to send to all observers\n * @param mask defines the mask of the current notification (observers with incompatible mask (ie mask & observer.mask === 0) will not be notified)\n * @param target defines the original target of the state\n * @param currentTarget defines the current target of the state\n * @param userInfo defines any user info to send to observers\n * @returns false if the complete observer chain was not processed (because one observer set the skipNextObservers to true)\n */\n notifyObservers(e, t = -1, i, s, r) {\n if (this.notifyIfTriggered && (this._hasNotified = !0, this._lastNotifiedValue = e), !this._observers.length)\n return !0;\n const n = this._eventState;\n n.mask = t, n.target = i, n.currentTarget = s, n.skipNextObservers = !1, n.lastReturnValue = e, n.userInfo = r;\n for (const o of this._observers)\n if (!o._willBeUnregistered && (o.mask & t && (o.unregisterOnNextCall && this._deferUnregister(o), o.scope ? n.lastReturnValue = o.callback.apply(o.scope, [e, n]) : n.lastReturnValue = o.callback(e, n)), n.skipNextObservers))\n return !1;\n return !0;\n }\n /**\n * Notify a specific observer\n * @param observer defines the observer to notify\n * @param eventData defines the data to be sent to each callback\n * @param mask is used to filter observers defaults to -1\n */\n notifyObserver(e, t, i = -1) {\n if (this.notifyIfTriggered && (this._hasNotified = !0, this._lastNotifiedValue = t), e._willBeUnregistered)\n return;\n const s = this._eventState;\n s.mask = i, s.skipNextObservers = !1, e.unregisterOnNextCall && this._deferUnregister(e), e.callback(t, s);\n }\n /**\n * Gets a boolean indicating if the observable has at least one observer\n * @returns true is the Observable has at least one Observer registered\n */\n hasObservers() {\n return this._observers.length - this._numObserversMarkedAsDeleted > 0;\n }\n /**\n * Clear the list of observers\n */\n clear() {\n for (; this._observers.length; ) {\n const e = this._observers.pop();\n e && (e._remove = null);\n }\n this._onObserverAdded = null, this._numObserversMarkedAsDeleted = 0, this.cleanLastNotifiedState();\n }\n /**\n * Clean the last notified state - both the internal last value and the has-notified flag\n */\n cleanLastNotifiedState() {\n this._hasNotified = !1, this._lastNotifiedValue = void 0;\n }\n /**\n * Clone the current observable\n * @returns a new observable\n */\n clone() {\n const e = new G();\n return e._observers = this._observers.slice(0), e;\n }\n /**\n * Does this observable handles observer registered with a given mask\n * @param mask defines the mask to be tested\n * @returns whether or not one observer registered with the given mask is handled\n **/\n hasSpecificMask(e = -1) {\n for (const t of this._observers)\n if (t.mask & e || t.mask === e)\n return !0;\n return !1;\n }\n}\nclass rC {\n /**\n * | Value | Type | Description |\n * | ----- | ------------------ | ----------- |\n * | 0 | CLAMP_ADDRESSMODE | |\n * | 1 | WRAP_ADDRESSMODE | |\n * | 2 | MIRROR_ADDRESSMODE | |\n */\n get wrapU() {\n return this._cachedWrapU;\n }\n set wrapU(e) {\n this._cachedWrapU = e;\n }\n /**\n * | Value | Type | Description |\n * | ----- | ------------------ | ----------- |\n * | 0 | CLAMP_ADDRESSMODE | |\n * | 1 | WRAP_ADDRESSMODE | |\n * | 2 | MIRROR_ADDRESSMODE | |\n */\n get wrapV() {\n return this._cachedWrapV;\n }\n set wrapV(e) {\n this._cachedWrapV = e;\n }\n /**\n * | Value | Type | Description |\n * | ----- | ------------------ | ----------- |\n * | 0 | CLAMP_ADDRESSMODE | |\n * | 1 | WRAP_ADDRESSMODE | |\n * | 2 | MIRROR_ADDRESSMODE | |\n */\n get wrapR() {\n return this._cachedWrapR;\n }\n set wrapR(e) {\n this._cachedWrapR = e;\n }\n /**\n * With compliant hardware and browser (supporting anisotropic filtering)\n * this defines the level of anisotropic filtering in the texture.\n * The higher the better but the slower.\n */\n get anisotropicFilteringLevel() {\n return this._cachedAnisotropicFilteringLevel;\n }\n set anisotropicFilteringLevel(e) {\n this._cachedAnisotropicFilteringLevel = e;\n }\n /**\n * Gets or sets the comparison function (513, 514, etc). Set 0 to not use a comparison function\n */\n get comparisonFunction() {\n return this._comparisonFunction;\n }\n set comparisonFunction(e) {\n this._comparisonFunction = e;\n }\n /**\n * Indicates to use the mip maps (if available on the texture).\n * Thanks to this flag, you can instruct the sampler to not sample the mipmaps even if they exist (and if the sampling mode is set to a value that normally samples the mipmaps!)\n */\n get useMipMaps() {\n return this._useMipMaps;\n }\n set useMipMaps(e) {\n this._useMipMaps = e;\n }\n /**\n * Creates a Sampler instance\n */\n constructor() {\n this.samplingMode = -1, this._useMipMaps = !0, this._cachedWrapU = null, this._cachedWrapV = null, this._cachedWrapR = null, this._cachedAnisotropicFilteringLevel = null, this._comparisonFunction = 0;\n }\n /**\n * Sets all the parameters of the sampler\n * @param wrapU u address mode (default: TEXTURE_WRAP_ADDRESSMODE)\n * @param wrapV v address mode (default: TEXTURE_WRAP_ADDRESSMODE)\n * @param wrapR r address mode (default: TEXTURE_WRAP_ADDRESSMODE)\n * @param anisotropicFilteringLevel anisotropic level (default: 1)\n * @param samplingMode sampling mode (default: 2)\n * @param comparisonFunction comparison function (default: 0 - no comparison function)\n * @returns the current sampler instance\n */\n setParameters(e = 1, t = 1, i = 1, s = 1, r = 2, n = 0) {\n return this._cachedWrapU = e, this._cachedWrapV = t, this._cachedWrapR = i, this._cachedAnisotropicFilteringLevel = s, this.samplingMode = r, this._comparisonFunction = n, this;\n }\n /**\n * Compares this sampler with another one\n * @param other sampler to compare with\n * @returns true if the samplers have the same parametres, else false\n */\n compareSampler(e) {\n return this._cachedWrapU === e._cachedWrapU && this._cachedWrapV === e._cachedWrapV && this._cachedWrapR === e._cachedWrapR && this._cachedAnisotropicFilteringLevel === e._cachedAnisotropicFilteringLevel && this.samplingMode === e.samplingMode && this._comparisonFunction === e._comparisonFunction && this._useMipMaps === e._useMipMaps;\n }\n}\nvar uS;\n(function(a) {\n a[a.Unknown = 0] = \"Unknown\", a[a.Url = 1] = \"Url\", a[a.Temp = 2] = \"Temp\", a[a.Raw = 3] = \"Raw\", a[a.Dynamic = 4] = \"Dynamic\", a[a.RenderTarget = 5] = \"RenderTarget\", a[a.MultiRenderTarget = 6] = \"MultiRenderTarget\", a[a.Cube = 7] = \"Cube\", a[a.CubeRaw = 8] = \"CubeRaw\", a[a.CubePrefiltered = 9] = \"CubePrefiltered\", a[a.Raw3D = 10] = \"Raw3D\", a[a.Raw2DArray = 11] = \"Raw2DArray\", a[a.DepthStencil = 12] = \"DepthStencil\", a[a.CubeRawRGBD = 13] = \"CubeRawRGBD\", a[a.Depth = 14] = \"Depth\";\n})(uS || (uS = {}));\nclass Nt extends rC {\n /**\n * Gets a boolean indicating if the texture uses mipmaps\n * TODO implements useMipMaps as a separate setting from generateMipMaps\n */\n get useMipMaps() {\n return this.generateMipMaps;\n }\n set useMipMaps(e) {\n this.generateMipMaps = e;\n }\n /** Gets the unique id of the internal texture */\n get uniqueId() {\n return this._uniqueId;\n }\n /** @internal */\n _setUniqueId(e) {\n this._uniqueId = e;\n }\n /**\n * Gets the Engine the texture belongs to.\n * @returns The babylon engine\n */\n getEngine() {\n return this._engine;\n }\n /**\n * Gets the data source type of the texture\n */\n get source() {\n return this._source;\n }\n /**\n * Creates a new InternalTexture\n * @param engine defines the engine to use\n * @param source defines the type of data that will be used\n * @param delayAllocation if the texture allocation should be delayed (default: false)\n */\n constructor(e, t, i = !1) {\n super(), this.isReady = !1, this.isCube = !1, this.is3D = !1, this.is2DArray = !1, this.isMultiview = !1, this.url = \"\", this.generateMipMaps = !1, this.samples = 0, this.type = -1, this.format = -1, this.onLoadedObservable = new G(), this.onErrorObservable = new G(), this.onRebuildCallback = null, this.width = 0, this.height = 0, this.depth = 0, this.baseWidth = 0, this.baseHeight = 0, this.baseDepth = 0, this.invertY = !1, this._invertVScale = !1, this._associatedChannel = -1, this._source = 0, this._buffer = null, this._bufferView = null, this._bufferViewArray = null, this._bufferViewArrayArray = null, this._size = 0, this._extension = \"\", this._files = null, this._workingCanvas = null, this._workingContext = null, this._cachedCoordinatesMode = null, this._isDisabled = !1, this._compression = null, this._sphericalPolynomial = null, this._sphericalPolynomialPromise = null, this._sphericalPolynomialComputed = !1, this._lodGenerationScale = 0, this._lodGenerationOffset = 0, this._useSRGBBuffer = !1, this._creationFlags = 0, this._lodTextureHigh = null, this._lodTextureMid = null, this._lodTextureLow = null, this._isRGBD = !1, this._linearSpecularLOD = !1, this._irradianceTexture = null, this._hardwareTexture = null, this._maxLodLevel = null, this._references = 1, this._gammaSpace = null, this._premulAlpha = !1, this._dynamicTextureSource = null, this._engine = e, this._source = t, this._uniqueId = Nt._Counter++, i || (this._hardwareTexture = e._createHardwareTexture());\n }\n /**\n * Increments the number of references (ie. the number of Texture that point to it)\n */\n incrementReferences() {\n this._references++;\n }\n /**\n * Change the size of the texture (not the size of the content)\n * @param width defines the new width\n * @param height defines the new height\n * @param depth defines the new depth (1 by default)\n */\n updateSize(e, t, i = 1) {\n this._engine.updateTextureDimensions(this, e, t, i), this.width = e, this.height = t, this.depth = i, this.baseWidth = e, this.baseHeight = t, this.baseDepth = i, this._size = e * t * i;\n }\n /** @internal */\n _rebuild() {\n if (this.isReady = !1, this._cachedCoordinatesMode = null, this._cachedWrapU = null, this._cachedWrapV = null, this._cachedWrapR = null, this._cachedAnisotropicFilteringLevel = null, this.onRebuildCallback) {\n const t = this.onRebuildCallback(this), i = (s) => {\n s._swapAndDie(this, !1), this.isReady = t.isReady;\n };\n t.isAsync ? t.proxy.then(i) : i(t.proxy);\n return;\n }\n let e;\n switch (this.source) {\n case 2:\n break;\n case 1:\n e = this._engine.createTexture(\n this._originalUrl ?? this.url,\n !this.generateMipMaps,\n this.invertY,\n null,\n this.samplingMode,\n // Do not use Proxy here as it could be fully synchronous\n // and proxy would be undefined.\n (t) => {\n t._swapAndDie(this, !1), this.isReady = !0;\n },\n null,\n this._buffer,\n void 0,\n this.format,\n this._extension,\n void 0,\n void 0,\n void 0,\n this._useSRGBBuffer\n );\n return;\n case 3:\n e = this._engine.createRawTexture(this._bufferView, this.baseWidth, this.baseHeight, this.format, this.generateMipMaps, this.invertY, this.samplingMode, this._compression, this.type, this._creationFlags, this._useSRGBBuffer), e._swapAndDie(this, !1), this.isReady = !0;\n break;\n case 10:\n e = this._engine.createRawTexture3D(this._bufferView, this.baseWidth, this.baseHeight, this.baseDepth, this.format, this.generateMipMaps, this.invertY, this.samplingMode, this._compression, this.type), e._swapAndDie(this, !1), this.isReady = !0;\n break;\n case 11:\n e = this._engine.createRawTexture2DArray(this._bufferView, this.baseWidth, this.baseHeight, this.baseDepth, this.format, this.generateMipMaps, this.invertY, this.samplingMode, this._compression, this.type), e._swapAndDie(this, !1), this.isReady = !0;\n break;\n case 4:\n e = this._engine.createDynamicTexture(this.baseWidth, this.baseHeight, this.generateMipMaps, this.samplingMode), e._swapAndDie(this, !1), this._dynamicTextureSource && this._engine.updateDynamicTexture(this, this._dynamicTextureSource, this.invertY, this._premulAlpha, this.format, !0);\n break;\n case 7:\n e = this._engine.createCubeTexture(this.url, null, this._files, !this.generateMipMaps, () => {\n e._swapAndDie(this, !1), this.isReady = !0;\n }, null, this.format, this._extension, !1, 0, 0, null, void 0, this._useSRGBBuffer, ArrayBuffer.isView(this._buffer) ? this._buffer : null);\n return;\n case 8:\n e = this._engine.createRawCubeTexture(this._bufferViewArray, this.width, this._originalFormat ?? this.format, this.type, this.generateMipMaps, this.invertY, this.samplingMode, this._compression), e._swapAndDie(this, !1), this.isReady = !0;\n break;\n case 13:\n return;\n case 9:\n e = this._engine.createPrefilteredCubeTexture(this.url, null, this._lodGenerationScale, this._lodGenerationOffset, (t) => {\n t && t._swapAndDie(this, !1), this.isReady = !0;\n }, null, this.format, this._extension), e._sphericalPolynomial = this._sphericalPolynomial;\n return;\n }\n }\n /**\n * @internal\n */\n _swapAndDie(e, t = !0) {\n var r;\n (r = this._hardwareTexture) == null || r.setUsage(e._source, this.generateMipMaps, this.is2DArray, this.isCube, this.is3D, this.width, this.height, this.depth), e._hardwareTexture = this._hardwareTexture, t && (e._isRGBD = this._isRGBD), this._lodTextureHigh && (e._lodTextureHigh && e._lodTextureHigh.dispose(), e._lodTextureHigh = this._lodTextureHigh), this._lodTextureMid && (e._lodTextureMid && e._lodTextureMid.dispose(), e._lodTextureMid = this._lodTextureMid), this._lodTextureLow && (e._lodTextureLow && e._lodTextureLow.dispose(), e._lodTextureLow = this._lodTextureLow), this._irradianceTexture && (e._irradianceTexture && e._irradianceTexture.dispose(), e._irradianceTexture = this._irradianceTexture);\n const i = this._engine.getLoadedTexturesCache();\n let s = i.indexOf(this);\n s !== -1 && i.splice(s, 1), s = i.indexOf(e), s === -1 && i.push(e);\n }\n /**\n * Dispose the current allocated resources\n */\n dispose() {\n this._references--, this.onLoadedObservable.clear(), this.onErrorObservable.clear(), this._references === 0 && (this._engine._releaseTexture(this), this._hardwareTexture = null, this._dynamicTextureSource = null);\n }\n}\nNt._Counter = 0;\nclass Me {\n /**\n * Gets the latest created engine\n */\n static get LastCreatedEngine() {\n return this.Instances.length === 0 ? null : this.Instances[this.Instances.length - 1];\n }\n /**\n * Gets the latest created scene\n */\n static get LastCreatedScene() {\n return this._LastCreatedScene;\n }\n}\nMe.Instances = [];\nMe.OnEnginesDisposedObservable = new G();\nMe._LastCreatedScene = null;\nMe.UseFallbackTexture = !0;\nMe.FallbackTexture = \"\";\nclass _P {\n constructor() {\n this._valueCache = {}, this.vertexCompilationError = null, this.fragmentCompilationError = null, this.programLinkError = null, this.programValidationError = null, this._isDisposed = !1;\n }\n get isAsync() {\n return this.isParallelCompiled;\n }\n get isReady() {\n return this.program ? this.isParallelCompiled ? this.engine._isRenderingStateCompiled(this) : !0 : !1;\n }\n _handlesSpectorRebuildCallback(e) {\n e && this.program && e(this.program);\n }\n setEngine(e) {\n this.engine = e;\n }\n _fillEffectInformation(e, t, i, s, r, n, o, l) {\n const h = this.engine;\n if (h.supportsUniformBuffers)\n for (const d in t)\n e.bindUniformBlock(d, t[d]);\n this.engine.getUniforms(this, i).forEach((d, f) => {\n s[i[f]] = d;\n }), this._uniforms = s;\n let u;\n for (u = 0; u < r.length; u++)\n e.getUniform(r[u]) == null && (r.splice(u, 1), u--);\n r.forEach((d, f) => {\n n[d] = f;\n });\n for (const d of h.getAttributes(this, o))\n l.push(d);\n }\n /**\n * Release all associated resources.\n **/\n dispose() {\n this._uniforms = {}, this._isDisposed = !0;\n }\n /**\n * @internal\n */\n _cacheMatrix(e, t) {\n const i = this._valueCache[e], s = t.updateFlag;\n return i !== void 0 && i === s ? !1 : (this._valueCache[e] = s, !0);\n }\n /**\n * @internal\n */\n _cacheFloat2(e, t, i) {\n let s = this._valueCache[e];\n if (!s || s.length !== 2)\n return s = [t, i], this._valueCache[e] = s, !0;\n let r = !1;\n return s[0] !== t && (s[0] = t, r = !0), s[1] !== i && (s[1] = i, r = !0), r;\n }\n /**\n * @internal\n */\n _cacheFloat3(e, t, i, s) {\n let r = this._valueCache[e];\n if (!r || r.length !== 3)\n return r = [t, i, s], this._valueCache[e] = r, !0;\n let n = !1;\n return r[0] !== t && (r[0] = t, n = !0), r[1] !== i && (r[1] = i, n = !0), r[2] !== s && (r[2] = s, n = !0), n;\n }\n /**\n * @internal\n */\n _cacheFloat4(e, t, i, s, r) {\n let n = this._valueCache[e];\n if (!n || n.length !== 4)\n return n = [t, i, s, r], this._valueCache[e] = n, !0;\n let o = !1;\n return n[0] !== t && (n[0] = t, o = !0), n[1] !== i && (n[1] = i, o = !0), n[2] !== s && (n[2] = s, o = !0), n[3] !== r && (n[3] = r, o = !0), o;\n }\n /**\n * Sets an integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n */\n setInt(e, t) {\n const i = this._valueCache[e];\n i !== void 0 && i === t || this.engine.setInt(this._uniforms[e], t) && (this._valueCache[e] = t);\n }\n /**\n * Sets a int2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int2.\n * @param y Second int in int2.\n */\n setInt2(e, t, i) {\n this._cacheFloat2(e, t, i) && (this.engine.setInt2(this._uniforms[e], t, i) || (this._valueCache[e] = null));\n }\n /**\n * Sets a int3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int3.\n * @param y Second int in int3.\n * @param z Third int in int3.\n */\n setInt3(e, t, i, s) {\n this._cacheFloat3(e, t, i, s) && (this.engine.setInt3(this._uniforms[e], t, i, s) || (this._valueCache[e] = null));\n }\n /**\n * Sets a int4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int4.\n * @param y Second int in int4.\n * @param z Third int in int4.\n * @param w Fourth int in int4.\n */\n setInt4(e, t, i, s, r) {\n this._cacheFloat4(e, t, i, s, r) && (this.engine.setInt4(this._uniforms[e], t, i, s, r) || (this._valueCache[e] = null));\n }\n /**\n * Sets an int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray(e, t) {\n this._valueCache[e] = null, this.engine.setIntArray(this._uniforms[e], t);\n }\n /**\n * Sets an int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray2(e, t) {\n this._valueCache[e] = null, this.engine.setIntArray2(this._uniforms[e], t);\n }\n /**\n * Sets an int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray3(e, t) {\n this._valueCache[e] = null, this.engine.setIntArray3(this._uniforms[e], t);\n }\n /**\n * Sets an int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray4(e, t) {\n this._valueCache[e] = null, this.engine.setIntArray4(this._uniforms[e], t);\n }\n /**\n * Sets an unsigned integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n */\n setUInt(e, t) {\n const i = this._valueCache[e];\n i !== void 0 && i === t || this.engine.setUInt(this._uniforms[e], t) && (this._valueCache[e] = t);\n }\n /**\n * Sets an unsigned int2 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint2.\n * @param y Second unsigned int in uint2.\n */\n setUInt2(e, t, i) {\n this._cacheFloat2(e, t, i) && (this.engine.setUInt2(this._uniforms[e], t, i) || (this._valueCache[e] = null));\n }\n /**\n * Sets an unsigned int3 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint3.\n * @param y Second unsigned int in uint3.\n * @param z Third unsigned int in uint3.\n */\n setUInt3(e, t, i, s) {\n this._cacheFloat3(e, t, i, s) && (this.engine.setUInt3(this._uniforms[e], t, i, s) || (this._valueCache[e] = null));\n }\n /**\n * Sets an unsigned int4 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint4.\n * @param y Second unsigned int in uint4.\n * @param z Third unsigned int in uint4.\n * @param w Fourth unsigned int in uint4.\n */\n setUInt4(e, t, i, s, r) {\n this._cacheFloat4(e, t, i, s, r) && (this.engine.setUInt4(this._uniforms[e], t, i, s, r) || (this._valueCache[e] = null));\n }\n /**\n * Sets an unsigned int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray(e, t) {\n this._valueCache[e] = null, this.engine.setUIntArray(this._uniforms[e], t);\n }\n /**\n * Sets an unsigned int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray2(e, t) {\n this._valueCache[e] = null, this.engine.setUIntArray2(this._uniforms[e], t);\n }\n /**\n * Sets an unsigned int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray3(e, t) {\n this._valueCache[e] = null, this.engine.setUIntArray3(this._uniforms[e], t);\n }\n /**\n * Sets an unsigned int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray4(e, t) {\n this._valueCache[e] = null, this.engine.setUIntArray4(this._uniforms[e], t);\n }\n /**\n * Sets an array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray(e, t) {\n this._valueCache[e] = null, this.engine.setArray(this._uniforms[e], t);\n }\n /**\n * Sets an array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray2(e, t) {\n this._valueCache[e] = null, this.engine.setArray2(this._uniforms[e], t);\n }\n /**\n * Sets an array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray3(e, t) {\n this._valueCache[e] = null, this.engine.setArray3(this._uniforms[e], t);\n }\n /**\n * Sets an array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray4(e, t) {\n this._valueCache[e] = null, this.engine.setArray4(this._uniforms[e], t);\n }\n /**\n * Sets matrices on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrices matrices to be set.\n */\n setMatrices(e, t) {\n t && (this._valueCache[e] = null, this.engine.setMatrices(this._uniforms[e], t));\n }\n /**\n * Sets matrix on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix(e, t) {\n this._cacheMatrix(e, t) && (this.engine.setMatrices(this._uniforms[e], t.asArray()) || (this._valueCache[e] = null));\n }\n /**\n * Sets a 3x3 matrix on a uniform variable. (Specified as [1,2,3,4,5,6,7,8,9] will result in [1,2,3][4,5,6][7,8,9] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix3x3(e, t) {\n this._valueCache[e] = null, this.engine.setMatrix3x3(this._uniforms[e], t);\n }\n /**\n * Sets a 2x2 matrix on a uniform variable. (Specified as [1,2,3,4] will result in [1,2][3,4] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix2x2(e, t) {\n this._valueCache[e] = null, this.engine.setMatrix2x2(this._uniforms[e], t);\n }\n /**\n * Sets a float on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value value to be set.\n */\n setFloat(e, t) {\n const i = this._valueCache[e];\n i !== void 0 && i === t || this.engine.setFloat(this._uniforms[e], t) && (this._valueCache[e] = t);\n }\n /**\n * Sets a Vector2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector2 vector2 to be set.\n */\n setVector2(e, t) {\n this._cacheFloat2(e, t.x, t.y) && (this.engine.setFloat2(this._uniforms[e], t.x, t.y) || (this._valueCache[e] = null));\n }\n /**\n * Sets a float2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float2.\n * @param y Second float in float2.\n */\n setFloat2(e, t, i) {\n this._cacheFloat2(e, t, i) && (this.engine.setFloat2(this._uniforms[e], t, i) || (this._valueCache[e] = null));\n }\n /**\n * Sets a Vector3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector3 Value to be set.\n */\n setVector3(e, t) {\n this._cacheFloat3(e, t.x, t.y, t.z) && (this.engine.setFloat3(this._uniforms[e], t.x, t.y, t.z) || (this._valueCache[e] = null));\n }\n /**\n * Sets a float3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float3.\n * @param y Second float in float3.\n * @param z Third float in float3.\n */\n setFloat3(e, t, i, s) {\n this._cacheFloat3(e, t, i, s) && (this.engine.setFloat3(this._uniforms[e], t, i, s) || (this._valueCache[e] = null));\n }\n /**\n * Sets a Vector4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector4 Value to be set.\n */\n setVector4(e, t) {\n this._cacheFloat4(e, t.x, t.y, t.z, t.w) && (this.engine.setFloat4(this._uniforms[e], t.x, t.y, t.z, t.w) || (this._valueCache[e] = null));\n }\n /**\n * Sets a Quaternion on a uniform variable.\n * @param uniformName Name of the variable.\n * @param quaternion Value to be set.\n */\n setQuaternion(e, t) {\n this._cacheFloat4(e, t.x, t.y, t.z, t.w) && (this.engine.setFloat4(this._uniforms[e], t.x, t.y, t.z, t.w) || (this._valueCache[e] = null));\n }\n /**\n * Sets a float4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float4.\n * @param y Second float in float4.\n * @param z Third float in float4.\n * @param w Fourth float in float4.\n */\n setFloat4(e, t, i, s, r) {\n this._cacheFloat4(e, t, i, s, r) && (this.engine.setFloat4(this._uniforms[e], t, i, s, r) || (this._valueCache[e] = null));\n }\n /**\n * Sets a Color3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n */\n setColor3(e, t) {\n this._cacheFloat3(e, t.r, t.g, t.b) && (this.engine.setFloat3(this._uniforms[e], t.r, t.g, t.b) || (this._valueCache[e] = null));\n }\n /**\n * Sets a Color4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n * @param alpha Alpha value to be set.\n */\n setColor4(e, t, i) {\n this._cacheFloat4(e, t.r, t.g, t.b, i) && (this.engine.setFloat4(this._uniforms[e], t.r, t.g, t.b, i) || (this._valueCache[e] = null));\n }\n /**\n * Sets a Color4 on a uniform variable\n * @param uniformName defines the name of the variable\n * @param color4 defines the value to be set\n */\n setDirectColor4(e, t) {\n this._cacheFloat4(e, t.r, t.g, t.b, t.a) && (this.engine.setFloat4(this._uniforms[e], t.r, t.g, t.b, t.a) || (this._valueCache[e] = null));\n }\n _getVertexShaderCode() {\n return this.vertexShader ? this.engine._getShaderSource(this.vertexShader) : null;\n }\n _getFragmentShaderCode() {\n return this.fragmentShader ? this.engine._getShaderSource(this.fragmentShader) : null;\n }\n}\nconst dS = {};\nfunction $e(a, e = !1) {\n if (!(e && dS[a]))\n return dS[a] = !0, `${a} needs to be imported before as it contains a side-effect required by your code.`;\n}\nfunction us() {\n return typeof window < \"u\";\n}\nfunction Tl() {\n return typeof navigator < \"u\";\n}\nfunction mh() {\n return typeof document < \"u\";\n}\nfunction l_(a) {\n let e = \"\", t = a.firstChild;\n for (; t; )\n t.nodeType === 3 && (e += t.textContent), t = t.nextSibling;\n return e;\n}\nconst Uj = {\n /**\n * Checks if the window object exists\n * @returns true if the window object exists\n */\n IsWindowObjectExist: us,\n /**\n * Checks if the navigator object exists\n * @returns true if the navigator object exists\n */\n IsNavigatorAvailable: Tl,\n /**\n * Check if the document object exists\n * @returns true if the document object exists\n */\n IsDocumentAvailable: mh,\n /**\n * Extracts text content from a DOM element hierarchy\n * @param element defines the root element\n * @returns a string\n */\n GetDOMTextContent: l_\n}, Ip = {};\nfunction nC(a, e, t = \"\") {\n return t + (e ? e + `\n` : \"\") + a;\n}\nfunction aC(a, e, t, i, s, r, n) {\n const o = n || Ip.loadFile;\n if (o)\n return o(a, e, t, i, s, r);\n throw $e(\"FileTools\");\n}\nfunction oC(a, e, t, i) {\n if (a) {\n e ? a.IS_NDC_HALF_ZRANGE = \"\" : delete a.IS_NDC_HALF_ZRANGE, t ? a.USE_REVERSE_DEPTHBUFFER = \"\" : delete a.USE_REVERSE_DEPTHBUFFER, i ? a.USE_EXACT_SRGB_CONVERSIONS = \"\" : delete a.USE_EXACT_SRGB_CONVERSIONS;\n return;\n } else {\n let s = \"\";\n return e && (s += \"#define IS_NDC_HALF_ZRANGE\"), t && (s && (s += `\n`), s += \"#define USE_REVERSE_DEPTHBUFFER\"), i && (s && (s += `\n`), s += \"#define USE_EXACT_SRGB_CONVERSIONS\"), s;\n }\n}\nconst _g = /* @__PURE__ */ new WeakMap(), mP = {\n _webGLVersion: 2,\n cachedPipelines: {}\n};\nfunction gn(a) {\n let e = _g.get(a);\n if (!e) {\n if (!a)\n return mP;\n e = {\n // use feature detection. instanceof returns false. This only exists on WebGL2 context\n _webGLVersion: a.TEXTURE_BINDING_3D ? 2 : 1,\n _context: a,\n cachedPipelines: {}\n }, _g.set(a, e);\n }\n return e;\n}\nfunction gP(a) {\n _g.delete(a);\n}\nfunction lC(a, e, t, i, s, r) {\n const n = gn(i);\n r || (r = n._createShaderProgramInjection ?? hx);\n const o = mg(e, \"vertex\", i, n._contextWasLost), l = mg(t, \"fragment\", i, n._contextWasLost);\n return r(a, o, l, i, s, n.validateShaderPrograms);\n}\nfunction hC(a, e, t, i, s, r = null, n) {\n const o = gn(s);\n n || (n = o._createShaderProgramInjection ?? hx);\n const l = o._webGLVersion > 1 ? `#version 300 es\n#define WEBGL2 \n` : \"\", h = fS(e, \"vertex\", i, l, s, o._contextWasLost), c = fS(t, \"fragment\", i, l, s, o._contextWasLost);\n return n(a, h, c, s, r, o.validateShaderPrograms);\n}\nfunction xP(a, e) {\n const t = new _P(), i = gn(a);\n return i.parallelShaderCompile && (t.isParallelCompiled = !0), t.context = i._context, t;\n}\nfunction hx(a, e, t, i, s = null, r) {\n const n = i.createProgram();\n if (a.program = n, !n)\n throw new Error(\"Unable to create program\");\n return i.attachShader(n, e), i.attachShader(n, t), i.linkProgram(n), a.context = i, a.vertexShader = e, a.fragmentShader = t, a.isParallelCompiled || cC(a, i, r), n;\n}\nfunction cC(a, e, t) {\n const i = a.context, s = a.vertexShader, r = a.fragmentShader, n = a.program;\n if (!i.getProgramParameter(n, i.LINK_STATUS)) {\n if (!e.getShaderParameter(s, e.COMPILE_STATUS)) {\n const h = e.getShaderInfoLog(s);\n if (h)\n throw a.vertexCompilationError = h, new Error(\"VERTEX SHADER \" + h);\n }\n if (!e.getShaderParameter(r, e.COMPILE_STATUS)) {\n const h = e.getShaderInfoLog(r);\n if (h)\n throw a.fragmentCompilationError = h, new Error(\"FRAGMENT SHADER \" + h);\n }\n const l = i.getProgramInfoLog(n);\n if (l)\n throw a.programLinkError = l, new Error(l);\n }\n if (\n /*this.*/\n t && (i.validateProgram(n), !i.getProgramParameter(n, i.VALIDATE_STATUS))\n ) {\n const h = i.getProgramInfoLog(n);\n if (h)\n throw a.programValidationError = h, new Error(h);\n }\n i.deleteShader(s), i.deleteShader(r), a.vertexShader = void 0, a.fragmentShader = void 0, a.onCompiled && (a.onCompiled(), a.onCompiled = void 0);\n}\nfunction vP(a, e, t, i, s, r, n, o, l, h = \"\", c, u) {\n const d = gn(a.context);\n c || (c = d.createRawShaderProgramInjection ?? lC), u || (u = d.createShaderProgramInjection ?? hC);\n const f = a;\n i ? f.program = c(f, e, t, f.context, l) : f.program = u(f, e, t, o, f.context, l), f.program.__SPECTOR_rebuildProgram = n;\n}\nfunction fS(a, e, t, i, s, r) {\n return mg(nC(a, t, i), e, s, r);\n}\nfunction mg(a, e, t, i) {\n const s = t.createShader(e === \"vertex\" ? t.VERTEX_SHADER : t.FRAGMENT_SHADER);\n if (!s) {\n let r = t.NO_ERROR, n = t.NO_ERROR;\n for (; (n = t.getError()) !== t.NO_ERROR; )\n r = n;\n throw new Error(`Something went wrong while creating a gl ${e} shader object. gl error=${r}, gl isContextLost=${t.isContextLost()}, _contextWasLost=${i}`);\n }\n return t.shaderSource(s, a), t.compileShader(s), s;\n}\nfunction TP(a, e) {\n e.useProgram(a);\n}\nfunction SP(a, e) {\n const t = a;\n if (!t.isParallelCompiled) {\n e(a);\n return;\n }\n const i = t.onCompiled;\n t.onCompiled = () => {\n i == null || i(), e(a);\n };\n}\nfunction uC(a) {\n return a.getPipelineContext === void 0;\n}\nclass L {\n static _CheckLimit(e, t) {\n let i = L._LogLimitOutputs[e];\n return i ? i.current++ : (i = { limit: t, current: 1 }, L._LogLimitOutputs[e] = i), i.current <= i.limit;\n }\n static _GenerateLimitMessage(e, t = 1) {\n const i = L._LogLimitOutputs[e];\n if (!i || !L.MessageLimitReached)\n return;\n const s = this._Levels[t];\n i.current === i.limit && L[s.name](L.MessageLimitReached.replace(/%LIMIT%/g, \"\" + i.limit).replace(/%TYPE%/g, s.name ?? \"\"));\n }\n static _AddLogEntry(e) {\n L._LogCache = e + L._LogCache, L.OnNewCacheEntry && L.OnNewCacheEntry(e);\n }\n static _FormatMessage(e) {\n const t = (s) => s < 10 ? \"0\" + s : \"\" + s, i = /* @__PURE__ */ new Date();\n return \"[\" + t(i.getHours()) + \":\" + t(i.getMinutes()) + \":\" + t(i.getSeconds()) + \"]: \" + e;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static _LogDisabled(e, t) {\n }\n static _LogEnabled(e = 1, t, i) {\n const s = Array.isArray(t) ? t[0] : t;\n if (i !== void 0 && !L._CheckLimit(s, i))\n return;\n const r = L._FormatMessage(s), n = this._Levels[e], o = Array.isArray(t) ? t.slice(1) : [];\n n.logFunc && n.logFunc(\"BJS - \" + r, ...o);\n const l = `
${r}

`;\n L._AddLogEntry(l), L._GenerateLimitMessage(s, e);\n }\n /**\n * Gets current log cache (list of logs)\n */\n static get LogCache() {\n return L._LogCache;\n }\n /**\n * Clears the log cache\n */\n static ClearLogCache() {\n L._LogCache = \"\", L._LogLimitOutputs = {}, L.errorsCount = 0;\n }\n /**\n * Sets the current log level (MessageLogLevel / WarningLogLevel / ErrorLogLevel)\n */\n static set LogLevels(e) {\n L.Log = L._LogDisabled, L.Warn = L._LogDisabled, L.Error = L._LogDisabled, [L.MessageLogLevel, L.WarningLogLevel, L.ErrorLogLevel].forEach((t) => {\n if ((e & t) === t) {\n const i = this._Levels[t];\n L[i.name] = L._LogEnabled.bind(L, t);\n }\n });\n }\n}\nL.NoneLogLevel = 0;\nL.MessageLogLevel = 1;\nL.WarningLogLevel = 2;\nL.ErrorLogLevel = 4;\nL.AllLogLevel = 7;\nL.MessageLimitReached = \"Too many %TYPE%s (%LIMIT%), no more %TYPE%s will be reported for this message.\";\nL._LogCache = \"\";\nL._LogLimitOutputs = {};\nL._Levels = [\n {},\n { color: \"white\", logFunc: console.log, name: \"Log\" },\n { color: \"orange\", logFunc: console.warn, name: \"Warn\" },\n {},\n { color: \"red\", logFunc: console.error, name: \"Error\" }\n];\nL.errorsCount = 0;\nL.Log = L._LogEnabled.bind(L, L.MessageLogLevel);\nL.Warn = L._LogEnabled.bind(L, L.WarningLogLevel);\nL.Error = L._LogEnabled.bind(L, L.ErrorLogLevel);\nclass bP {\n constructor() {\n this.shaderLanguage = 0;\n }\n postProcessor(e, t, i, s, r) {\n if (r.drawBuffersExtensionDisabled) {\n const n = /#extension.+GL_EXT_draw_buffers.+(enable|require)/g;\n e = e.replace(n, \"\");\n }\n return e;\n }\n}\nconst EP = /(flat\\s)?\\s*varying\\s*.*/;\nclass yP {\n constructor() {\n this.shaderLanguage = 0;\n }\n attributeProcessor(e) {\n return e.replace(\"attribute\", \"in\");\n }\n varyingCheck(e, t) {\n return EP.test(e);\n }\n varyingProcessor(e, t) {\n return e.replace(\"varying\", t ? \"in\" : \"out\");\n }\n postProcessor(e, t, i) {\n const s = e.search(/#extension.+GL_EXT_draw_buffers.+require/) !== -1, r = /#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g;\n if (e = e.replace(r, \"\"), e = e.replace(/texture2D\\s*\\(/g, \"texture(\"), i) {\n const n = e.search(/layout *\\(location *= *0\\) *out/g) !== -1;\n e = e.replace(/texture2DLodEXT\\s*\\(/g, \"textureLod(\"), e = e.replace(/textureCubeLodEXT\\s*\\(/g, \"textureLod(\"), e = e.replace(/textureCube\\s*\\(/g, \"texture(\"), e = e.replace(/gl_FragDepthEXT/g, \"gl_FragDepth\"), e = e.replace(/gl_FragColor/g, \"glFragColor\"), e = e.replace(/gl_FragData/g, \"glFragData\"), e = e.replace(/void\\s+?main\\s*\\(/g, (s || n ? \"\" : `layout(location = 0) out vec4 glFragColor;\n`) + \"void main(\");\n } else if (t.indexOf(\"#define MULTIVIEW\") !== -1)\n return `#extension GL_OVR_multiview2 : require\nlayout (num_views = 2) in;\n` + e;\n return e;\n }\n}\nclass Nl {\n /**\n * Gets the underlying buffer\n */\n get underlyingResource() {\n return null;\n }\n /**\n * Constructs the buffer\n */\n constructor() {\n this.references = 0, this.capacity = 0, this.is32Bits = !1, this.uniqueId = Nl._Counter++;\n }\n}\nNl._Counter = 0;\nclass _u extends Nl {\n constructor(e) {\n super(), this._buffer = e;\n }\n get underlyingResource() {\n return this._buffer;\n }\n}\nfunction mu(a) {\n let e = 1;\n do\n e *= 2;\n while (e < a);\n return e === a;\n}\nfunction gg(a, e, t) {\n return a * (1 - t) + e * t;\n}\nfunction cx(a) {\n const e = ux(a), t = h_(a);\n return e - a > a - t ? t : e;\n}\nfunction ux(a) {\n return a--, a |= a >> 1, a |= a >> 2, a |= a >> 4, a |= a >> 8, a |= a >> 16, a++, a;\n}\nfunction h_(a) {\n return a = a | a >> 1, a = a | a >> 2, a = a | a >> 4, a = a | a >> 8, a = a | a >> 16, a - (a >> 1);\n}\nfunction Dr(a, e, t = 2) {\n let i;\n switch (t) {\n case 1:\n i = h_(a);\n break;\n case 2:\n i = cx(a);\n break;\n case 3:\n default:\n i = ux(a);\n break;\n }\n return Math.min(i, e);\n}\nclass z {\n /**\n * Gets the shaders repository path for a given shader language\n * @param shaderLanguage the shader language\n * @returns the path to the shaders repository\n */\n static GetShadersRepository(e = 0) {\n return e === 0 ? z.ShadersRepository : z.ShadersRepositoryWGSL;\n }\n /**\n * Gets the shaders store of a given shader language\n * @param shaderLanguage the shader language\n * @returns the shaders store\n */\n static GetShadersStore(e = 0) {\n return e === 0 ? z.ShadersStore : z.ShadersStoreWGSL;\n }\n /**\n * Gets the include shaders store of a given shader language\n * @param shaderLanguage the shader language\n * @returns the include shaders store\n */\n static GetIncludesShadersStore(e = 0) {\n return e === 0 ? z.IncludesShadersStore : z.IncludesShadersStoreWGSL;\n }\n}\nz.ShadersRepository = \"src/Shaders/\";\nz.ShadersStore = {};\nz.IncludesShadersStore = {};\nz.ShadersRepositoryWGSL = \"src/ShadersWGSL/\";\nz.ShadersStoreWGSL = {};\nz.IncludesShadersStoreWGSL = {};\nconst CP = \"attribute\", AP = \"varying\";\nclass sf {\n constructor() {\n this.children = [];\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isValid(e) {\n return !0;\n }\n process(e, t) {\n var s, r, n, o, l, h;\n let i = \"\";\n if (this.line) {\n let c = this.line;\n const u = t.processor;\n if (u) {\n u.lineProcessor && (c = u.lineProcessor(c, t.isFragment, t.processingContext));\n const d = ((s = t.processor) == null ? void 0 : s.attributeKeywordName) ?? CP, f = t.isFragment && ((r = t.processor) != null && r.varyingFragmentKeywordName) ? (n = t.processor) == null ? void 0 : n.varyingFragmentKeywordName : !t.isFragment && ((o = t.processor) != null && o.varyingVertexKeywordName) ? (l = t.processor) == null ? void 0 : l.varyingVertexKeywordName : AP;\n !t.isFragment && u.attributeProcessor && this.line.startsWith(d) ? c = u.attributeProcessor(this.line, e, t.processingContext) : u.varyingProcessor && ((h = u.varyingCheck) != null && h.call(u, this.line, t.isFragment) || !u.varyingCheck && this.line.startsWith(f)) ? c = u.varyingProcessor(this.line, t.isFragment, e, t.processingContext) : u.uniformProcessor && u.uniformRegexp && u.uniformRegexp.test(this.line) ? t.lookForClosingBracketForUniformBuffer || (c = u.uniformProcessor(this.line, t.isFragment, e, t.processingContext)) : u.uniformBufferProcessor && u.uniformBufferRegexp && u.uniformBufferRegexp.test(this.line) ? t.lookForClosingBracketForUniformBuffer || (c = u.uniformBufferProcessor(this.line, t.isFragment, t.processingContext), t.lookForClosingBracketForUniformBuffer = !0) : u.textureProcessor && u.textureRegexp && u.textureRegexp.test(this.line) ? c = u.textureProcessor(this.line, t.isFragment, e, t.processingContext) : (u.uniformProcessor || u.uniformBufferProcessor) && this.line.startsWith(\"uniform\") && !t.lookForClosingBracketForUniformBuffer && (/uniform\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s+(\\S+)\\s*;/.test(this.line) ? u.uniformProcessor && (c = u.uniformProcessor(this.line, t.isFragment, e, t.processingContext)) : u.uniformBufferProcessor && (c = u.uniformBufferProcessor(this.line, t.isFragment, t.processingContext), t.lookForClosingBracketForUniformBuffer = !0)), t.lookForClosingBracketForUniformBuffer && this.line.indexOf(\"}\") !== -1 && (t.lookForClosingBracketForUniformBuffer = !1, u.endOfUniformBufferProcessor && (c = u.endOfUniformBufferProcessor(this.line, t.isFragment, t.processingContext)));\n }\n i += c + `\n`;\n }\n return this.children.forEach((c) => {\n i += c.process(e, t);\n }), this.additionalDefineKey && (e[this.additionalDefineKey] = this.additionalDefineValue || \"true\"), i;\n }\n}\nclass RP {\n constructor() {\n this._lines = [];\n }\n get currentLine() {\n return this._lines[this.lineIndex];\n }\n get canRead() {\n return this.lineIndex < this._lines.length - 1;\n }\n set lines(e) {\n this._lines.length = 0;\n for (const t of e) {\n if (!t || t === \"\\r\")\n continue;\n if (t[0] === \"#\") {\n this._lines.push(t);\n continue;\n }\n const i = t.trim();\n if (!i)\n continue;\n if (i.startsWith(\"//\")) {\n this._lines.push(t);\n continue;\n }\n const s = i.indexOf(\";\");\n if (s === -1)\n this._lines.push(i);\n else if (s === i.length - 1)\n i.length > 1 && this._lines.push(i);\n else {\n const r = t.split(\";\");\n for (let n = 0; n < r.length; n++) {\n let o = r[n];\n o && (o = o.trim(), o && this._lines.push(o + (n !== r.length - 1 ? \";\" : \"\")));\n }\n }\n }\n }\n}\nclass Dm extends sf {\n process(e, t) {\n for (let i = 0; i < this.children.length; i++) {\n const s = this.children[i];\n if (s.isValid(e))\n return s.process(e, t);\n }\n return \"\";\n }\n}\nclass IP extends sf {\n isValid(e) {\n return this.testExpression.isTrue(e);\n }\n}\nclass Wi {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isTrue(e) {\n return !0;\n }\n static postfixToInfix(e) {\n const t = [];\n for (const i of e)\n if (Wi._OperatorPriority[i] === void 0)\n t.push(i);\n else {\n const s = t[t.length - 1], r = t[t.length - 2];\n t.length -= 2, t.push(`(${r}${i}${s})`);\n }\n return t[t.length - 1];\n }\n /**\n * Converts an infix expression to a postfix expression.\n *\n * This method is used to transform infix expressions, which are more human-readable,\n * into postfix expressions, also known as Reverse Polish Notation (RPN), that can be\n * evaluated more efficiently by a computer. The conversion is based on the operator\n * priority defined in _OperatorPriority.\n *\n * The function employs a stack-based algorithm for the conversion and caches the result\n * to improve performance. The cache keeps track of each converted expression's access time\n * to manage the cache size and optimize memory usage. When the cache size exceeds a specified\n * limit, the least recently accessed items in the cache are deleted.\n *\n * The cache mechanism is particularly helpful for shader compilation, where the same infix\n * expressions might be encountered repeatedly, hence the caching can speed up the process.\n *\n * @param infix - The infix expression to be converted.\n * @returns The postfix expression as an array of strings.\n */\n static infixToPostfix(e) {\n const t = Wi._InfixToPostfixCache.get(e);\n if (t)\n return t.accessTime = Date.now(), t.result;\n if (!e.includes(\"&&\") && !e.includes(\"||\") && !e.includes(\")\") && !e.includes(\"(\"))\n return [e];\n const i = [];\n let s = -1;\n const r = () => {\n c = c.trim(), c !== \"\" && (i.push(c), c = \"\");\n }, n = (u) => {\n s < Wi._Stack.length - 1 && (Wi._Stack[++s] = u);\n }, o = () => Wi._Stack[s], l = () => s === -1 ? \"!!INVALID EXPRESSION!!\" : Wi._Stack[s--];\n let h = 0, c = \"\";\n for (; h < e.length; ) {\n const u = e.charAt(h), d = h < e.length - 1 ? e.substr(h, 2) : \"\";\n if (u === \"(\")\n c = \"\", n(u);\n else if (u === \")\") {\n for (r(); s !== -1 && o() !== \"(\"; )\n i.push(l());\n l();\n } else if (Wi._OperatorPriority[d] > 1) {\n for (r(); s !== -1 && Wi._OperatorPriority[o()] >= Wi._OperatorPriority[d]; )\n i.push(l());\n n(d), h++;\n } else\n c += u;\n h++;\n }\n for (r(); s !== -1; )\n o() === \"(\" ? l() : i.push(l());\n return Wi._InfixToPostfixCache.size >= Wi.InfixToPostfixCacheLimitSize && Wi.ClearCache(), Wi._InfixToPostfixCache.set(e, { result: i, accessTime: Date.now() }), i;\n }\n static ClearCache() {\n const e = Array.from(Wi._InfixToPostfixCache.entries()).sort((t, i) => t[1].accessTime - i[1].accessTime);\n for (let t = 0; t < Wi.InfixToPostfixCacheCleanupSize; t++)\n Wi._InfixToPostfixCache.delete(e[t][0]);\n }\n}\nWi.InfixToPostfixCacheLimitSize = 5e4;\nWi.InfixToPostfixCacheCleanupSize = 25e3;\nWi._InfixToPostfixCache = /* @__PURE__ */ new Map();\nWi._OperatorPriority = {\n \")\": 0,\n \"(\": 1,\n \"||\": 2,\n \"&&\": 3\n};\nWi._Stack = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\"];\nclass Pp extends Wi {\n constructor(e, t = !1) {\n super(), this.define = e, this.not = t;\n }\n isTrue(e) {\n let t = e[this.define] !== void 0;\n return this.not && (t = !t), t;\n }\n}\nclass PP extends Wi {\n isTrue(e) {\n return this.leftOperand.isTrue(e) || this.rightOperand.isTrue(e);\n }\n}\nclass MP extends Wi {\n isTrue(e) {\n return this.leftOperand.isTrue(e) && this.rightOperand.isTrue(e);\n }\n}\nclass DP extends Wi {\n constructor(e, t, i) {\n super(), this.define = e, this.operand = t, this.testValue = i;\n }\n isTrue(e) {\n let t = e[this.define];\n t === void 0 && (t = this.define);\n let i = !1;\n const s = parseInt(t), r = parseInt(this.testValue);\n switch (this.operand) {\n case \">\":\n i = s > r;\n break;\n case \"<\":\n i = s < r;\n break;\n case \"<=\":\n i = s <= r;\n break;\n case \">=\":\n i = s >= r;\n break;\n case \"==\":\n i = s === r;\n break;\n case \"!=\":\n i = s !== r;\n break;\n }\n return i;\n }\n}\nconst OP = /defined\\s*?\\((.+?)\\)/g, Om = /defined\\s*?\\[(.+?)\\]/g, wP = /#include\\s?<(.+)>(\\((.*)\\))*(\\[(.*)\\])*/g, NP = /__decl__/, pS = /light\\{X\\}.(\\w*)/g, _S = /\\{X\\}/g, Jf = [], FP = /(#ifdef)|(#else)|(#elif)|(#endif)|(#ifndef)|(#if)/;\nfunction dC(a) {\n a.processor && a.processor.initializeShaders && a.processor.initializeShaders(a.processingContext);\n}\nfunction mS(a, e, t, i) {\n var s;\n (s = e.processor) != null && s.preProcessShaderCode && (a = e.processor.preProcessShaderCode(a, e.isFragment)), gu(a, e, (r) => {\n e.processCodeAfterIncludes && (r = e.processCodeAfterIncludes(e.isFragment ? \"fragment\" : \"vertex\", r, e.defines));\n const n = UP(r, e, i);\n t(n, r);\n });\n}\nfunction LP(a, e, t, i) {\n var s;\n (s = e.processor) != null && s.preProcessShaderCode && (a = e.processor.preProcessShaderCode(a, e.isFragment)), gu(a, e, (r) => {\n e.processCodeAfterIncludes && (r = e.processCodeAfterIncludes(e.isFragment ? \"fragment\" : \"vertex\", r, e.defines));\n const n = kP(r, e, i);\n t(n, r);\n });\n}\nfunction fC(a, e, t) {\n return !t.processor || !t.processor.finalizeShaders ? { vertexCode: a, fragmentCode: e } : t.processor.finalizeShaders(a, e, t.processingContext);\n}\nfunction BP(a, e) {\n var i;\n if ((i = e.processor) != null && i.noPrecision)\n return a;\n const t = e.shouldUseHighPrecisionShader;\n return a.indexOf(\"precision highp float\") === -1 ? t ? a = `precision highp float;\n` + a : a = `precision mediump float;\n` + a : t || (a = a.replace(\"precision highp float\", \"precision mediump float\")), a;\n}\nfunction wm(a) {\n const t = /defined\\((.+)\\)/.exec(a);\n if (t && t.length)\n return new Pp(t[1].trim(), a[0] === \"!\");\n const i = [\"==\", \"!=\", \">=\", \"<=\", \"<\", \">\"];\n let s = \"\", r = 0;\n for (s of i)\n if (r = a.indexOf(s), r > -1)\n break;\n if (r === -1)\n return new Pp(a);\n const n = a.substring(0, r).trim(), o = a.substring(r + s.length).trim();\n return new DP(n, s, o);\n}\nfunction VP(a) {\n a = a.replace(OP, \"defined[$1]\");\n const e = Wi.infixToPostfix(a), t = [];\n for (const s of e)\n if (s !== \"||\" && s !== \"&&\")\n t.push(s);\n else if (t.length >= 2) {\n let r = t[t.length - 1], n = t[t.length - 2];\n t.length -= 2;\n const o = s == \"&&\" ? new MP() : new PP();\n typeof r == \"string\" && (r = r.replace(Om, \"defined($1)\")), typeof n == \"string\" && (n = n.replace(Om, \"defined($1)\")), o.leftOperand = typeof n == \"string\" ? wm(n) : n, o.rightOperand = typeof r == \"string\" ? wm(r) : r, t.push(o);\n }\n let i = t[t.length - 1];\n return typeof i == \"string\" && (i = i.replace(Om, \"defined($1)\")), typeof i == \"string\" ? wm(i) : i;\n}\nfunction _p(a, e) {\n const t = new IP(), i = a.substring(0, e);\n let s = a.substring(e);\n return s = s.substring(0, (s.indexOf(\"//\") + 1 || s.length + 1) - 1).trim(), i === \"#ifdef\" ? t.testExpression = new Pp(s) : i === \"#ifndef\" ? t.testExpression = new Pp(s, !0) : t.testExpression = VP(s), t;\n}\nfunction Nm(a, e, t) {\n let i = a.currentLine;\n for (; xg(a, t); ) {\n i = a.currentLine;\n const s = i.substring(0, 5).toLowerCase();\n if (s === \"#else\") {\n const r = new sf();\n e.children.push(r), xg(a, r);\n return;\n } else if (s === \"#elif\") {\n const r = _p(i, 5);\n e.children.push(r), t = r;\n }\n }\n}\nfunction xg(a, e) {\n for (; a.canRead; ) {\n a.lineIndex++;\n const t = a.currentLine;\n if (t.indexOf(\"#\") >= 0) {\n const s = FP.exec(t);\n if (s && s.length) {\n switch (s[0]) {\n case \"#ifdef\": {\n const n = new Dm();\n e.children.push(n);\n const o = _p(t, 6);\n n.children.push(o), Nm(a, n, o);\n break;\n }\n case \"#else\":\n case \"#elif\":\n return !0;\n case \"#endif\":\n return !1;\n case \"#ifndef\": {\n const n = new Dm();\n e.children.push(n);\n const o = _p(t, 7);\n n.children.push(o), Nm(a, n, o);\n break;\n }\n case \"#if\": {\n const n = new Dm(), o = _p(t, 3);\n e.children.push(n), n.children.push(o), Nm(a, n, o);\n break;\n }\n }\n continue;\n }\n }\n const i = new sf();\n if (i.line = t, e.children.push(i), t[0] === \"#\" && t[1] === \"d\") {\n const s = t.replace(\";\", \"\").split(\" \");\n i.additionalDefineKey = s[1], s.length === 3 && (i.additionalDefineValue = s[2]);\n }\n }\n return !1;\n}\nfunction pC(a, e, t) {\n const i = new sf(), s = new RP();\n return s.lineIndex = -1, s.lines = a.split(`\n`), xg(s, i), i.process(e, t);\n}\nfunction _C(a, e) {\n var s;\n const t = a.defines, i = {};\n for (const r of t) {\n const o = r.replace(\"#define\", \"\").replace(\";\", \"\").trim().split(\" \");\n i[o[0]] = o.length > 1 ? o[1] : \"\";\n }\n return ((s = a.processor) == null ? void 0 : s.shaderLanguage) === 0 && (i.GL_ES = \"true\"), i.__VERSION__ = a.version, i[a.platformName] = \"true\", oC(i, e == null ? void 0 : e.isNDCHalfZRange, e == null ? void 0 : e.useReverseDepthBuffer, e == null ? void 0 : e.useExactSrgbConversions), i;\n}\nfunction UP(a, e, t) {\n let i = BP(a, e);\n if (!e.processor || e.processor.shaderLanguage === 0 && i.indexOf(\"#version 3\") !== -1 && (i = i.replace(\"#version 300 es\", \"\"), !e.processor.parseGLES3))\n return i;\n const s = e.defines, r = _C(e, t);\n return e.processor.preProcessor && (i = e.processor.preProcessor(i, s, r, e.isFragment, e.processingContext)), i = pC(i, r, e), e.processor.postProcessor && (i = e.processor.postProcessor(i, s, e.isFragment, e.processingContext, t ? {\n drawBuffersExtensionDisabled: !t.getCaps().drawBuffersExtension\n } : {})), t != null && t._features.needShaderCodeInlining && (i = t.inlineShaderCode(i)), i;\n}\nfunction kP(a, e, t) {\n var n, o;\n let i = a;\n const s = e.defines, r = _C(e, t);\n return (n = e.processor) != null && n.preProcessor && (i = e.processor.preProcessor(i, s, r, e.isFragment, e.processingContext)), i = pC(i, r, e), (o = e.processor) != null && o.postProcessor && (i = e.processor.postProcessor(i, s, e.isFragment, e.processingContext, t ? {\n drawBuffersExtensionDisabled: !t.getCaps().drawBuffersExtension\n } : {})), t._features.needShaderCodeInlining && (i = t.inlineShaderCode(i)), i;\n}\nfunction gu(a, e, t) {\n Jf.length = 0;\n let i;\n for (; (i = wP.exec(a)) !== null; )\n Jf.push(i);\n let s = String(a), r = [a], n = !1;\n for (const o of Jf) {\n let l = o[1];\n if (l.indexOf(\"__decl__\") !== -1 && (l = l.replace(NP, \"\"), e.supportsUniformBuffers && (l = l.replace(\"Vertex\", \"Ubo\").replace(\"Fragment\", \"Ubo\")), l = l + \"Declaration\"), e.includesShadersStore[l]) {\n let h = e.includesShadersStore[l];\n if (o[2]) {\n const u = o[3].split(\",\");\n for (let d = 0; d < u.length; d += 2) {\n const f = new RegExp(u[d], \"g\"), p = u[d + 1];\n h = h.replace(f, p);\n }\n }\n if (o[4]) {\n const u = o[5];\n if (u.indexOf(\"..\") !== -1) {\n const d = u.split(\"..\"), f = parseInt(d[0]);\n let p = parseInt(d[1]), _ = h.slice(0);\n h = \"\", isNaN(p) && (p = e.indexParameters[d[1]]);\n for (let m = f; m < p; m++)\n e.supportsUniformBuffers || (_ = _.replace(pS, (x, v) => v + \"{X}\")), h += _.replace(_S, m.toString()) + `\n`;\n } else\n e.supportsUniformBuffers || (h = h.replace(pS, (d, f) => f + \"{X}\")), h = h.replace(_S, u);\n }\n const c = [];\n for (const u of r) {\n const d = u.split(o[0]);\n for (let f = 0; f < d.length - 1; f++)\n c.push(d[f]), c.push(h);\n c.push(d[d.length - 1]);\n }\n r = c, n = n || h.indexOf(\"#include<\") >= 0 || h.indexOf(\"#include <\") >= 0;\n } else {\n const h = e.shadersRepository + \"ShadersInclude/\" + l + \".fx\";\n mC.loadFile(h, (c) => {\n e.includesShadersStore[l] = c, gu(r.join(\"\"), e, t);\n });\n return;\n }\n }\n Jf.length = 0, s = r.join(\"\"), n ? gu(s.toString(), e, t) : t(s);\n}\nconst mC = {\n /**\n * Loads a file from a url\n * @param url url to load\n * @param onSuccess callback called when the file successfully loads\n * @param onProgress callback called while file is loading (if the server supports this mode)\n * @param offlineProvider defines the offline provider for caching\n * @param useArrayBuffer defines a boolean indicating that date must be returned as ArrayBuffer\n * @param onError callback called when the file fails to load\n * @returns a file request object\n * @internal\n */\n loadFile: (a, e, t, i, s, r) => {\n throw $e(\"FileTools\");\n }\n};\nfunction GP(a, e) {\n return gn(e).cachedPipelines[a];\n}\nfunction dx(a) {\n const e = a._name, t = a.context;\n if (e && t) {\n const i = gn(t), s = i.cachedPipelines[e];\n s == null || s.dispose(), delete i.cachedPipelines[e];\n }\n}\nfunction zP(a, e, t, i, s, r, n) {\n let o, l;\n const h = us() ? r == null ? void 0 : r.getHostDocument() : null;\n typeof e == \"string\" ? o = e : e.vertexSource ? o = \"source:\" + e.vertexSource : e.vertexElement ? o = (h == null ? void 0 : h.getElementById(e.vertexElement)) || e.vertexElement : o = e.vertex || e, typeof e == \"string\" ? l = e : e.fragmentSource ? l = \"source:\" + e.fragmentSource : e.fragmentElement ? l = (h == null ? void 0 : h.getElementById(e.fragmentElement)) || e.fragmentElement : l = e.fragment || e;\n const c = [void 0, void 0], u = () => {\n if (c[0] && c[1]) {\n a.isFragment = !0;\n const [d, f] = c;\n mS(f, a, (p, _) => {\n n && (n._fragmentSourceCodeBeforeMigration = _), t && (p = t(\"fragment\", p));\n const m = fC(d, p, a);\n a = null;\n const x = WP(m.vertexCode, m.fragmentCode, e, s);\n i == null || i(x.vertexSourceCode, x.fragmentSourceCode);\n }, r);\n }\n };\n gS(o, \"Vertex\", \"\", (d) => {\n dC(a), mS(d, a, (f, p) => {\n n && (n._rawVertexSourceCode = d, n._vertexSourceCodeBeforeMigration = p), t && (f = t(\"vertex\", f)), c[0] = f, u();\n }, r);\n }, s), gS(l, \"Fragment\", \"Pixel\", (d) => {\n n && (n._rawFragmentSourceCode = d), c[1] = d, u();\n }, s);\n}\nfunction gS(a, e, t, i, s, r) {\n if (typeof HTMLElement < \"u\" && a instanceof HTMLElement) {\n const l = l_(a);\n i(l);\n return;\n }\n if (a.substr(0, 7) === \"source:\") {\n i(a.substr(7));\n return;\n }\n if (a.substr(0, 7) === \"base64:\") {\n const l = window.atob(a.substr(7));\n i(l);\n return;\n }\n const n = z.GetShadersStore(s);\n if (n[a + e + \"Shader\"]) {\n i(n[a + e + \"Shader\"]);\n return;\n }\n if (t && n[a + t + \"Shader\"]) {\n i(n[a + t + \"Shader\"]);\n return;\n }\n let o;\n if (a[0] === \".\" || a[0] === \"/\" || a.indexOf(\"http\") > -1 ? o = a : o = z.GetShadersRepository(s) + a, r = r || aC, !r)\n throw new Error(\"loadFileInjection is not defined\");\n r(o + \".\" + e.toLowerCase() + \".fx\", i);\n}\nfunction WP(a, e, t, i) {\n if (t) {\n const s = t.vertexElement || t.vertex || t.spectorName || t, r = t.fragmentElement || t.fragment || t.spectorName || t;\n return {\n vertexSourceCode: (i === 1 ? \"//\" : \"\") + \"#define SHADER_NAME vertex:\" + s + `\n` + a,\n fragmentSourceCode: (i === 1 ? \"//\" : \"\") + \"#define SHADER_NAME fragment:\" + r + `\n` + e\n };\n } else\n return {\n vertexSourceCode: a,\n fragmentSourceCode: e\n };\n}\nconst HP = (a, e, t, i) => {\n try {\n const s = a.existingPipelineContext || e(a.shaderProcessingContext);\n if (s._name = a.name, a.name && a.context) {\n const r = gn(a.context);\n r.cachedPipelines[a.name] = s;\n }\n return t(s, a.vertex, a.fragment, !!a.createAsRaw, \"\", \"\", a.rebuildRebind, a.defines, a.transformFeedbackVaryings, \"\"), i(s, () => {\n var r;\n (r = a.onRenderingStateCompiled) == null || r.call(a, s);\n }), s;\n } catch (s) {\n throw L.Error(\"Error compiling effect\"), s;\n }\n};\nclass si {\n /**\n * Gets or sets the relative url used to load shaders if using the engine in non-minified mode\n */\n static get ShadersRepository() {\n return z.ShadersRepository;\n }\n static set ShadersRepository(e) {\n z.ShadersRepository = e;\n }\n /**\n * Observable that will be called when effect is bound.\n */\n get onBindObservable() {\n return this._onBindObservable || (this._onBindObservable = new G()), this._onBindObservable;\n }\n /**\n * Gets the shader language type used to write vertex and fragment source code.\n */\n get shaderLanguage() {\n return this._shaderLanguage;\n }\n /**\n * Instantiates an effect.\n * An effect can be used to create/manage/execute vertex and fragment shaders.\n * @param baseName Name of the effect.\n * @param attributesNamesOrOptions List of attribute names that will be passed to the shader or set of all options to create the effect.\n * @param uniformsNamesOrEngine List of uniform variable names that will be passed to the shader or the engine that will be used to render effect.\n * @param samplers List of sampler variables that will be passed to the shader.\n * @param engine Engine to be used to render the effect\n * @param defines Define statements to be added to the shader.\n * @param fallbacks Possible fallbacks for this effect to improve performance when needed.\n * @param onCompiled Callback that will be called when the shader is compiled.\n * @param onError Callback that will be called if an error occurs during shader compilation.\n * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. \\{lights: 10\\})\n * @param key Effect Key identifying uniquely compiled shader variants\n * @param shaderLanguage the language the shader is written in (default: GLSL)\n */\n constructor(e, t, i, s = null, r, n = null, o = null, l = null, h = null, c, u = \"\", d = 0) {\n this.defines = \"\", this.onCompiled = null, this.onError = null, this.onBind = null, this.uniqueId = 0, this.onCompileObservable = new G(), this.onErrorObservable = new G(), this._onBindObservable = null, this._isDisposed = !1, this._bonesComputationForcedToCPU = !1, this._uniformBuffersNames = {}, this._multiTarget = !1, this._samplers = {}, this._isReady = !1, this._compilationError = \"\", this._allFallbacksProcessed = !1, this._uniforms = {}, this._key = \"\", this._fallbacks = null, this._vertexSourceCodeOverride = \"\", this._fragmentSourceCodeOverride = \"\", this._transformFeedbackVaryings = null, this._pipelineContext = null, this._vertexSourceCode = \"\", this._fragmentSourceCode = \"\", this._vertexSourceCodeBeforeMigration = \"\", this._fragmentSourceCodeBeforeMigration = \"\", this._rawVertexSourceCode = \"\", this._rawFragmentSourceCode = \"\", this._processCodeAfterIncludes = void 0, this._processFinalCode = null, this.name = e, this._key = u;\n const f = this._key.replace(/\\r/g, \"\").replace(/\\n/g, \"|\");\n let p;\n if (t.attributes) {\n const _ = t;\n if (this._engine = i, this._attributesNames = _.attributes, this._uniformsNames = _.uniformsNames.concat(_.samplers), this._samplerList = _.samplers.slice(), this.defines = _.defines, this.onError = _.onError, this.onCompiled = _.onCompiled, this._fallbacks = _.fallbacks, this._indexParameters = _.indexParameters, this._transformFeedbackVaryings = _.transformFeedbackVaryings || null, this._multiTarget = !!_.multiTarget, this._shaderLanguage = _.shaderLanguage ?? 0, _.uniformBuffersNames) {\n this._uniformBuffersNamesList = _.uniformBuffersNames.slice();\n for (let m = 0; m < _.uniformBuffersNames.length; m++)\n this._uniformBuffersNames[_.uniformBuffersNames[m]] = m;\n }\n this._processFinalCode = _.processFinalCode ?? null, this._processCodeAfterIncludes = _.processCodeAfterIncludes ?? void 0, p = _.existingPipelineContext;\n } else\n this._engine = r, this.defines = n ?? \"\", this._uniformsNames = i.concat(s), this._samplerList = s ? s.slice() : [], this._attributesNames = t, this._uniformBuffersNamesList = [], this._shaderLanguage = d, this.onError = h, this.onCompiled = l, this._indexParameters = c, this._fallbacks = o;\n this._engine.shaderPlatformName === \"WEBGL2\" && (p = GP(f, this._engine._gl) ?? p), this._attributeLocationByName = {}, this.uniqueId = si._UniqueIdSeed++, p ? (this._pipelineContext = p, this._pipelineContext.setEngine(this._engine), this._onRenderingStateCompiled(this._pipelineContext), this._pipelineContext.program && (this._pipelineContext.program.__SPECTOR_rebuildProgram = this._rebuildProgram.bind(this))) : this._processShaderCode();\n }\n /** @internal */\n _processShaderCode(e = null, t = !1, i = null) {\n this._processingContext = i || this._engine._getShaderProcessingContext(this._shaderLanguage);\n const s = {\n defines: this.defines.split(`\n`),\n indexParameters: this._indexParameters,\n isFragment: !1,\n shouldUseHighPrecisionShader: this._engine._shouldUseHighPrecisionShader,\n processor: e ?? this._engine._getShaderProcessor(this._shaderLanguage),\n supportsUniformBuffers: this._engine.supportsUniformBuffers,\n shadersRepository: z.GetShadersRepository(this._shaderLanguage),\n includesShadersStore: z.GetIncludesShadersStore(this._shaderLanguage),\n version: (this._engine.version * 100).toString(),\n platformName: this._engine.shaderPlatformName,\n processingContext: this._processingContext,\n isNDCHalfZRange: this._engine.isNDCHalfZRange,\n useReverseDepthBuffer: this._engine.useReverseDepthBuffer,\n processCodeAfterIncludes: this._processCodeAfterIncludes\n };\n zP(s, this.name, this._processFinalCode, (r, n) => {\n this._vertexSourceCode = r, this._fragmentSourceCode = n, this._prepareEffect(t);\n }, this._shaderLanguage, this._engine, this);\n }\n /**\n * Unique key for this effect\n */\n get key() {\n return this._key;\n }\n /**\n * If the effect has been compiled and prepared.\n * @returns if the effect is compiled and prepared.\n */\n isReady() {\n try {\n return this._isReadyInternal();\n } catch {\n return !1;\n }\n }\n _isReadyInternal() {\n return this._isReady ? !0 : this._pipelineContext ? this._pipelineContext.isReady : !1;\n }\n /**\n * The engine the effect was initialized with.\n * @returns the engine.\n */\n getEngine() {\n return this._engine;\n }\n /**\n * The pipeline context for this effect\n * @returns the associated pipeline context\n */\n getPipelineContext() {\n return this._pipelineContext;\n }\n /**\n * The set of names of attribute variables for the shader.\n * @returns An array of attribute names.\n */\n getAttributesNames() {\n return this._attributesNames;\n }\n /**\n * Returns the attribute at the given index.\n * @param index The index of the attribute.\n * @returns The location of the attribute.\n */\n getAttributeLocation(e) {\n return this._attributes[e];\n }\n /**\n * Returns the attribute based on the name of the variable.\n * @param name of the attribute to look up.\n * @returns the attribute location.\n */\n getAttributeLocationByName(e) {\n return this._attributeLocationByName[e];\n }\n /**\n * The number of attributes.\n * @returns the number of attributes.\n */\n getAttributesCount() {\n return this._attributes.length;\n }\n /**\n * Gets the index of a uniform variable.\n * @param uniformName of the uniform to look up.\n * @returns the index.\n */\n getUniformIndex(e) {\n return this._uniformsNames.indexOf(e);\n }\n /**\n * Returns the attribute based on the name of the variable.\n * @param uniformName of the uniform to look up.\n * @returns the location of the uniform.\n */\n getUniform(e) {\n return this._uniforms[e];\n }\n /**\n * Returns an array of sampler variable names\n * @returns The array of sampler variable names.\n */\n getSamplers() {\n return this._samplerList;\n }\n /**\n * Returns an array of uniform variable names\n * @returns The array of uniform variable names.\n */\n getUniformNames() {\n return this._uniformsNames;\n }\n /**\n * Returns an array of uniform buffer variable names\n * @returns The array of uniform buffer variable names.\n */\n getUniformBuffersNames() {\n return this._uniformBuffersNamesList;\n }\n /**\n * Returns the index parameters used to create the effect\n * @returns The index parameters object\n */\n getIndexParameters() {\n return this._indexParameters;\n }\n /**\n * The error from the last compilation.\n * @returns the error string.\n */\n getCompilationError() {\n return this._compilationError;\n }\n /**\n * Gets a boolean indicating that all fallbacks were used during compilation\n * @returns true if all fallbacks were used\n */\n allFallbacksProcessed() {\n return this._allFallbacksProcessed;\n }\n /**\n * Adds a callback to the onCompiled observable and call the callback immediately if already ready.\n * @param func The callback to be used.\n */\n executeWhenCompiled(e) {\n if (this.isReady()) {\n e(this);\n return;\n }\n this.onCompileObservable.add((t) => {\n e(t);\n }), (!this._pipelineContext || this._pipelineContext.isAsync) && setTimeout(() => {\n this._checkIsReady(null);\n }, 16);\n }\n _checkIsReady(e) {\n try {\n if (this._isReadyInternal())\n return;\n } catch (t) {\n this._processCompilationErrors(t, e);\n return;\n }\n this._isDisposed || setTimeout(() => {\n this._checkIsReady(e);\n }, 16);\n }\n /**\n * Gets the vertex shader source code of this effect\n * This is the final source code that will be compiled, after all the processing has been done (pre-processing applied, code injection/replacement, etc)\n */\n get vertexSourceCode() {\n var e;\n return this._vertexSourceCodeOverride && this._fragmentSourceCodeOverride ? this._vertexSourceCodeOverride : ((e = this._pipelineContext) == null ? void 0 : e._getVertexShaderCode()) ?? this._vertexSourceCode;\n }\n /**\n * Gets the fragment shader source code of this effect\n * This is the final source code that will be compiled, after all the processing has been done (pre-processing applied, code injection/replacement, etc)\n */\n get fragmentSourceCode() {\n var e;\n return this._vertexSourceCodeOverride && this._fragmentSourceCodeOverride ? this._fragmentSourceCodeOverride : ((e = this._pipelineContext) == null ? void 0 : e._getFragmentShaderCode()) ?? this._fragmentSourceCode;\n }\n /**\n * Gets the vertex shader source code before migration.\n * This is the source code after the include directives have been replaced by their contents but before the code is migrated, i.e. before ShaderProcess._ProcessShaderConversion is executed.\n * This method is, among other things, responsible for parsing #if/#define directives as well as converting GLES2 syntax to GLES3 (in the case of WebGL).\n */\n get vertexSourceCodeBeforeMigration() {\n return this._vertexSourceCodeBeforeMigration;\n }\n /**\n * Gets the fragment shader source code before migration.\n * This is the source code after the include directives have been replaced by their contents but before the code is migrated, i.e. before ShaderProcess._ProcessShaderConversion is executed.\n * This method is, among other things, responsible for parsing #if/#define directives as well as converting GLES2 syntax to GLES3 (in the case of WebGL).\n */\n get fragmentSourceCodeBeforeMigration() {\n return this._fragmentSourceCodeBeforeMigration;\n }\n /**\n * Gets the vertex shader source code before it has been modified by any processing\n */\n get rawVertexSourceCode() {\n return this._rawVertexSourceCode;\n }\n /**\n * Gets the fragment shader source code before it has been modified by any processing\n */\n get rawFragmentSourceCode() {\n return this._rawFragmentSourceCode;\n }\n getPipelineGenerationOptions() {\n return {\n platformName: this._engine.shaderPlatformName,\n shaderLanguage: this._shaderLanguage,\n shaderNameOrContent: this.name,\n key: this._key,\n defines: this.defines.split(`\n`),\n addGlobalDefines: !1,\n extendedProcessingOptions: {\n indexParameters: this._indexParameters,\n isNDCHalfZRange: this._engine.isNDCHalfZRange,\n useReverseDepthBuffer: this._engine.useReverseDepthBuffer,\n supportsUniformBuffers: this._engine.supportsUniformBuffers\n },\n extendedCreatePipelineOptions: {\n transformFeedbackVaryings: this._transformFeedbackVaryings,\n createAsRaw: !!(this._vertexSourceCodeOverride && this._fragmentSourceCodeOverride)\n }\n };\n }\n /**\n * Recompiles the webGL program\n * @param vertexSourceCode The source code for the vertex shader.\n * @param fragmentSourceCode The source code for the fragment shader.\n * @param onCompiled Callback called when completed.\n * @param onError Callback called on error.\n * @internal\n */\n _rebuildProgram(e, t, i, s) {\n this._isReady = !1, this._vertexSourceCodeOverride = e, this._fragmentSourceCodeOverride = t, this.onError = (r, n) => {\n s && s(n);\n }, this.onCompiled = () => {\n var n, o;\n const r = this.getEngine().scenes;\n if (r)\n for (let l = 0; l < r.length; l++)\n r[l].markAllMaterialsAsDirty(63);\n (o = (n = this._pipelineContext)._handlesSpectorRebuildCallback) == null || o.call(n, i);\n }, this._fallbacks = null, this._prepareEffect();\n }\n _onRenderingStateCompiled(e) {\n if (this._pipelineContext = e, this._pipelineContext.setEngine(this._engine), this._attributes = [], this._pipelineContext._fillEffectInformation(this, this._uniformBuffersNames, this._uniformsNames, this._uniforms, this._samplerList, this._samplers, this._attributesNames, this._attributes), this._attributesNames)\n for (let t = 0; t < this._attributesNames.length; t++) {\n const i = this._attributesNames[t];\n this._attributeLocationByName[i] = this._attributes[t];\n }\n this._engine.bindSamplers(this), this._compilationError = \"\", this._isReady = !0, this.onCompiled && this.onCompiled(this), this.onCompileObservable.notifyObservers(this), this.onCompileObservable.clear(), this._fallbacks && this._fallbacks.unBindMesh();\n }\n /**\n * Prepares the effect\n * @internal\n */\n _prepareEffect(e = !1) {\n const t = this._pipelineContext;\n this._isReady = !1;\n try {\n const i = !!(this._vertexSourceCodeOverride && this._fragmentSourceCodeOverride), s = i ? null : this.defines, r = i ? this._vertexSourceCodeOverride : this._vertexSourceCode, n = i ? this._fragmentSourceCodeOverride : this._fragmentSourceCode, o = this._engine;\n this._pipelineContext = HP({\n existingPipelineContext: e ? t : null,\n vertex: r,\n fragment: n,\n context: o.shaderPlatformName === \"WEBGL2\" ? o._gl : void 0,\n rebuildRebind: (l, h, c, u) => this._rebuildProgram(l, h, c, u),\n defines: s,\n transformFeedbackVaryings: this._transformFeedbackVaryings,\n name: this._key.replace(/\\r/g, \"\").replace(/\\n/g, \"|\"),\n createAsRaw: i,\n parallelShaderCompile: o._caps.parallelShaderCompile,\n shaderProcessingContext: this._processingContext,\n onRenderingStateCompiled: (l) => {\n t && !e && this._engine._deletePipelineContext(t), l && this._onRenderingStateCompiled(l);\n }\n }, this._engine.createPipelineContext.bind(this._engine), this._engine._preparePipelineContext.bind(this._engine), this._engine._executeWhenRenderingStateIsCompiled.bind(this._engine)), this._pipelineContext.isAsync && this._checkIsReady(t);\n } catch (i) {\n this._processCompilationErrors(i, t);\n }\n }\n _getShaderCodeAndErrorLine(e, t, i) {\n const s = i ? /FRAGMENT SHADER ERROR: 0:(\\d+?):/ : /VERTEX SHADER ERROR: 0:(\\d+?):/;\n let r = null;\n if (t && e) {\n const n = t.match(s);\n if (n && n.length === 2) {\n const o = parseInt(n[1]), l = e.split(`\n`, -1);\n l.length >= o && (r = `Offending line [${o}] in ${i ? \"fragment\" : \"vertex\"} code: ${l[o - 1]}`);\n }\n }\n return [e, r];\n }\n _processCompilationErrors(e, t = null) {\n var n, o, l;\n this._compilationError = e.message;\n const i = this._attributesNames, s = this._fallbacks;\n if (L.Error(\"Unable to compile effect:\"), L.Error(\"Uniforms: \" + this._uniformsNames.map(function(h) {\n return \" \" + h;\n })), L.Error(\"Attributes: \" + i.map(function(h) {\n return \" \" + h;\n })), L.Error(`Defines:\n` + this.defines), si.LogShaderCodeOnCompilationError) {\n let h = null, c = null, u = null;\n (n = this._pipelineContext) != null && n._getVertexShaderCode() && ([u, h] = this._getShaderCodeAndErrorLine(this._pipelineContext._getVertexShaderCode(), this._compilationError, !1), u && (L.Error(\"Vertex code:\"), L.Error(u))), (o = this._pipelineContext) != null && o._getFragmentShaderCode() && ([u, c] = this._getShaderCodeAndErrorLine((l = this._pipelineContext) == null ? void 0 : l._getFragmentShaderCode(), this._compilationError, !0), u && (L.Error(\"Fragment code:\"), L.Error(u))), h && L.Error(h), c && L.Error(c);\n }\n L.Error(\"Error: \" + this._compilationError);\n const r = () => {\n this.onError && this.onError(this, this._compilationError), this.onErrorObservable.notifyObservers(this);\n };\n t && (this._pipelineContext = t, this._isReady = !0, r()), s ? (this._pipelineContext = null, s.hasMoreFallbacks ? (this._allFallbacksProcessed = !1, L.Error(\"Trying next fallback.\"), this.defines = s.reduce(this.defines, this), this._prepareEffect()) : (this._allFallbacksProcessed = !0, r(), this.onErrorObservable.clear(), this._fallbacks && this._fallbacks.unBindMesh())) : (this._allFallbacksProcessed = !0, t || r());\n }\n /**\n * Checks if the effect is supported. (Must be called after compilation)\n */\n get isSupported() {\n return this._compilationError === \"\";\n }\n /**\n * Binds a texture to the engine to be used as output of the shader.\n * @param channel Name of the output variable.\n * @param texture Texture to bind.\n * @internal\n */\n _bindTexture(e, t) {\n this._engine._bindTexture(this._samplers[e], t, e);\n }\n /**\n * Sets a texture on the engine to be used in the shader.\n * @param channel Name of the sampler variable.\n * @param texture Texture to set.\n */\n setTexture(e, t) {\n this._engine.setTexture(this._samplers[e], this._uniforms[e], t, e);\n }\n /**\n * Sets an array of textures on the engine to be used in the shader.\n * @param channel Name of the variable.\n * @param textures Textures to set.\n */\n setTextureArray(e, t) {\n const i = e + \"Ex\";\n if (this._samplerList.indexOf(i + \"0\") === -1) {\n const s = this._samplerList.indexOf(e);\n for (let n = 1; n < t.length; n++) {\n const o = i + (n - 1).toString();\n this._samplerList.splice(s + n, 0, o);\n }\n let r = 0;\n for (const n of this._samplerList)\n this._samplers[n] = r, r += 1;\n }\n this._engine.setTextureArray(this._samplers[e], this._uniforms[e], t, e);\n }\n /**\n * Binds a buffer to a uniform.\n * @param buffer Buffer to bind.\n * @param name Name of the uniform variable to bind to.\n */\n bindUniformBuffer(e, t) {\n const i = this._uniformBuffersNames[t];\n i === void 0 || si._BaseCache[i] === e && this._engine._features.useUBOBindingCache || (si._BaseCache[i] = e, this._engine.bindUniformBufferBase(e, i, t));\n }\n /**\n * Binds block to a uniform.\n * @param blockName Name of the block to bind.\n * @param index Index to bind.\n */\n bindUniformBlock(e, t) {\n this._engine.bindUniformBlock(this._pipelineContext, e, t);\n }\n /**\n * Sets an integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n * @returns this effect.\n */\n setInt(e, t) {\n return this._pipelineContext.setInt(e, t), this;\n }\n /**\n * Sets an int2 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int2.\n * @param y Second int in int2.\n * @returns this effect.\n */\n setInt2(e, t, i) {\n return this._pipelineContext.setInt2(e, t, i), this;\n }\n /**\n * Sets an int3 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int3.\n * @param y Second int in int3.\n * @param z Third int in int3.\n * @returns this effect.\n */\n setInt3(e, t, i, s) {\n return this._pipelineContext.setInt3(e, t, i, s), this;\n }\n /**\n * Sets an int4 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int4.\n * @param y Second int in int4.\n * @param z Third int in int4.\n * @param w Fourth int in int4.\n * @returns this effect.\n */\n setInt4(e, t, i, s, r) {\n return this._pipelineContext.setInt4(e, t, i, s, r), this;\n }\n /**\n * Sets an int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setIntArray(e, t) {\n return this._pipelineContext.setIntArray(e, t), this;\n }\n /**\n * Sets an int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setIntArray2(e, t) {\n return this._pipelineContext.setIntArray2(e, t), this;\n }\n /**\n * Sets an int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setIntArray3(e, t) {\n return this._pipelineContext.setIntArray3(e, t), this;\n }\n /**\n * Sets an int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setIntArray4(e, t) {\n return this._pipelineContext.setIntArray4(e, t), this;\n }\n /**\n * Sets an unsigned integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n * @returns this effect.\n */\n setUInt(e, t) {\n return this._pipelineContext.setUInt(e, t), this;\n }\n /**\n * Sets an unsigned int2 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint2.\n * @param y Second unsigned int in uint2.\n * @returns this effect.\n */\n setUInt2(e, t, i) {\n return this._pipelineContext.setUInt2(e, t, i), this;\n }\n /**\n * Sets an unsigned int3 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint3.\n * @param y Second unsigned int in uint3.\n * @param z Third unsigned int in uint3.\n * @returns this effect.\n */\n setUInt3(e, t, i, s) {\n return this._pipelineContext.setUInt3(e, t, i, s), this;\n }\n /**\n * Sets an unsigned int4 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint4.\n * @param y Second unsigned int in uint4.\n * @param z Third unsigned int in uint4.\n * @param w Fourth unsigned int in uint4.\n * @returns this effect.\n */\n setUInt4(e, t, i, s, r) {\n return this._pipelineContext.setUInt4(e, t, i, s, r), this;\n }\n /**\n * Sets an unsigned int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setUIntArray(e, t) {\n return this._pipelineContext.setUIntArray(e, t), this;\n }\n /**\n * Sets an unsigned int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setUIntArray2(e, t) {\n return this._pipelineContext.setUIntArray2(e, t), this;\n }\n /**\n * Sets an unsigned int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setUIntArray3(e, t) {\n return this._pipelineContext.setUIntArray3(e, t), this;\n }\n /**\n * Sets an unsigned int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setUIntArray4(e, t) {\n return this._pipelineContext.setUIntArray4(e, t), this;\n }\n /**\n * Sets an float array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setFloatArray(e, t) {\n return this._pipelineContext.setArray(e, t), this;\n }\n /**\n * Sets an float array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setFloatArray2(e, t) {\n return this._pipelineContext.setArray2(e, t), this;\n }\n /**\n * Sets an float array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setFloatArray3(e, t) {\n return this._pipelineContext.setArray3(e, t), this;\n }\n /**\n * Sets an float array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setFloatArray4(e, t) {\n return this._pipelineContext.setArray4(e, t), this;\n }\n /**\n * Sets an array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setArray(e, t) {\n return this._pipelineContext.setArray(e, t), this;\n }\n /**\n * Sets an array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setArray2(e, t) {\n return this._pipelineContext.setArray2(e, t), this;\n }\n /**\n * Sets an array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setArray3(e, t) {\n return this._pipelineContext.setArray3(e, t), this;\n }\n /**\n * Sets an array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n * @returns this effect.\n */\n setArray4(e, t) {\n return this._pipelineContext.setArray4(e, t), this;\n }\n /**\n * Sets matrices on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrices matrices to be set.\n * @returns this effect.\n */\n setMatrices(e, t) {\n return this._pipelineContext.setMatrices(e, t), this;\n }\n /**\n * Sets matrix on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n * @returns this effect.\n */\n setMatrix(e, t) {\n return this._pipelineContext.setMatrix(e, t), this;\n }\n /**\n * Sets a 3x3 matrix on a uniform variable. (Specified as [1,2,3,4,5,6,7,8,9] will result in [1,2,3][4,5,6][7,8,9] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n * @returns this effect.\n */\n setMatrix3x3(e, t) {\n return this._pipelineContext.setMatrix3x3(e, t), this;\n }\n /**\n * Sets a 2x2 matrix on a uniform variable. (Specified as [1,2,3,4] will result in [1,2][3,4] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n * @returns this effect.\n */\n setMatrix2x2(e, t) {\n return this._pipelineContext.setMatrix2x2(e, t), this;\n }\n /**\n * Sets a float on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value value to be set.\n * @returns this effect.\n */\n setFloat(e, t) {\n return this._pipelineContext.setFloat(e, t), this;\n }\n /**\n * Sets a boolean on a uniform variable.\n * @param uniformName Name of the variable.\n * @param bool value to be set.\n * @returns this effect.\n */\n setBool(e, t) {\n return this._pipelineContext.setInt(e, t ? 1 : 0), this;\n }\n /**\n * Sets a Vector2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector2 vector2 to be set.\n * @returns this effect.\n */\n setVector2(e, t) {\n return this._pipelineContext.setVector2(e, t), this;\n }\n /**\n * Sets a float2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float2.\n * @param y Second float in float2.\n * @returns this effect.\n */\n setFloat2(e, t, i) {\n return this._pipelineContext.setFloat2(e, t, i), this;\n }\n /**\n * Sets a Vector3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector3 Value to be set.\n * @returns this effect.\n */\n setVector3(e, t) {\n return this._pipelineContext.setVector3(e, t), this;\n }\n /**\n * Sets a float3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float3.\n * @param y Second float in float3.\n * @param z Third float in float3.\n * @returns this effect.\n */\n setFloat3(e, t, i, s) {\n return this._pipelineContext.setFloat3(e, t, i, s), this;\n }\n /**\n * Sets a Vector4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector4 Value to be set.\n * @returns this effect.\n */\n setVector4(e, t) {\n return this._pipelineContext.setVector4(e, t), this;\n }\n /**\n * Sets a Quaternion on a uniform variable.\n * @param uniformName Name of the variable.\n * @param quaternion Value to be set.\n * @returns this effect.\n */\n setQuaternion(e, t) {\n return this._pipelineContext.setQuaternion(e, t), this;\n }\n /**\n * Sets a float4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float4.\n * @param y Second float in float4.\n * @param z Third float in float4.\n * @param w Fourth float in float4.\n * @returns this effect.\n */\n setFloat4(e, t, i, s, r) {\n return this._pipelineContext.setFloat4(e, t, i, s, r), this;\n }\n /**\n * Sets a Color3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n * @returns this effect.\n */\n setColor3(e, t) {\n return this._pipelineContext.setColor3(e, t), this;\n }\n /**\n * Sets a Color4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n * @param alpha Alpha value to be set.\n * @returns this effect.\n */\n setColor4(e, t, i) {\n return this._pipelineContext.setColor4(e, t, i), this;\n }\n /**\n * Sets a Color4 on a uniform variable\n * @param uniformName defines the name of the variable\n * @param color4 defines the value to be set\n * @returns this effect.\n */\n setDirectColor4(e, t) {\n return this._pipelineContext.setDirectColor4(e, t), this;\n }\n /**\n * Release all associated resources.\n **/\n dispose() {\n this._pipelineContext && dx(this._pipelineContext), this._engine._releaseEffect(this), this._isDisposed = !0;\n }\n /**\n * This function will add a new shader to the shader store\n * @param name the name of the shader\n * @param pixelShader optional pixel shader content\n * @param vertexShader optional vertex shader content\n * @param shaderLanguage the language the shader is written in (default: GLSL)\n */\n static RegisterShader(e, t, i, s = 0) {\n t && (z.GetShadersStore(s)[`${e}PixelShader`] = t), i && (z.GetShadersStore(s)[`${e}VertexShader`] = i);\n }\n /**\n * Resets the cache of effects.\n */\n static ResetCache() {\n si._BaseCache = {};\n }\n}\nsi.LogShaderCodeOnCompilationError = !0;\nsi._UniqueIdSeed = 0;\nsi._BaseCache = {};\nsi.ShadersStore = z.ShadersStore;\nsi.IncludesShadersStore = z.IncludesShadersStore;\nclass ks {\n /**\n * @internal\n */\n static SetMatrixPrecision(e) {\n if (ks.MatrixTrackPrecisionChange = !1, e && !ks.MatrixUse64Bits && ks.MatrixTrackedMatrices)\n for (let t = 0; t < ks.MatrixTrackedMatrices.length; ++t) {\n const i = ks.MatrixTrackedMatrices[t], s = i._m;\n i._m = new Array(16);\n for (let r = 0; r < 16; ++r)\n i._m[r] = s[r];\n }\n ks.MatrixUse64Bits = e, ks.MatrixCurrentType = ks.MatrixUse64Bits ? Array : Float32Array, ks.MatrixTrackedMatrices = null;\n }\n}\nks.MatrixUse64Bits = !1;\nks.MatrixTrackPrecisionChange = !0;\nks.MatrixCurrentType = Float32Array;\nks.MatrixTrackedMatrices = [];\nclass Es {\n /**\n * Gets either window.performance.now() if supported or Date.now() else\n */\n static get Now() {\n return us() && window.performance && window.performance.now ? window.performance.now() : Date.now();\n }\n}\nclass gC {\n /**\n * Initializes the state.\n * @param reset\n */\n constructor(e = !0) {\n this._isDepthTestDirty = !1, this._isDepthMaskDirty = !1, this._isDepthFuncDirty = !1, this._isCullFaceDirty = !1, this._isCullDirty = !1, this._isZOffsetDirty = !1, this._isFrontFaceDirty = !1, e && this.reset();\n }\n get isDirty() {\n return this._isDepthFuncDirty || this._isDepthTestDirty || this._isDepthMaskDirty || this._isCullFaceDirty || this._isCullDirty || this._isZOffsetDirty || this._isFrontFaceDirty;\n }\n get zOffset() {\n return this._zOffset;\n }\n set zOffset(e) {\n this._zOffset !== e && (this._zOffset = e, this._isZOffsetDirty = !0);\n }\n get zOffsetUnits() {\n return this._zOffsetUnits;\n }\n set zOffsetUnits(e) {\n this._zOffsetUnits !== e && (this._zOffsetUnits = e, this._isZOffsetDirty = !0);\n }\n get cullFace() {\n return this._cullFace;\n }\n set cullFace(e) {\n this._cullFace !== e && (this._cullFace = e, this._isCullFaceDirty = !0);\n }\n get cull() {\n return this._cull;\n }\n set cull(e) {\n this._cull !== e && (this._cull = e, this._isCullDirty = !0);\n }\n get depthFunc() {\n return this._depthFunc;\n }\n set depthFunc(e) {\n this._depthFunc !== e && (this._depthFunc = e, this._isDepthFuncDirty = !0);\n }\n get depthMask() {\n return this._depthMask;\n }\n set depthMask(e) {\n this._depthMask !== e && (this._depthMask = e, this._isDepthMaskDirty = !0);\n }\n get depthTest() {\n return this._depthTest;\n }\n set depthTest(e) {\n this._depthTest !== e && (this._depthTest = e, this._isDepthTestDirty = !0);\n }\n get frontFace() {\n return this._frontFace;\n }\n set frontFace(e) {\n this._frontFace !== e && (this._frontFace = e, this._isFrontFaceDirty = !0);\n }\n reset() {\n this._depthMask = !0, this._depthTest = !0, this._depthFunc = null, this._cullFace = null, this._cull = null, this._zOffset = 0, this._zOffsetUnits = 0, this._frontFace = null, this._isDepthTestDirty = !0, this._isDepthMaskDirty = !0, this._isDepthFuncDirty = !1, this._isCullFaceDirty = !1, this._isCullDirty = !1, this._isZOffsetDirty = !0, this._isFrontFaceDirty = !1;\n }\n apply(e) {\n this.isDirty && (this._isCullDirty && (this.cull ? e.enable(e.CULL_FACE) : e.disable(e.CULL_FACE), this._isCullDirty = !1), this._isCullFaceDirty && (e.cullFace(this.cullFace), this._isCullFaceDirty = !1), this._isDepthMaskDirty && (e.depthMask(this.depthMask), this._isDepthMaskDirty = !1), this._isDepthTestDirty && (this.depthTest ? e.enable(e.DEPTH_TEST) : e.disable(e.DEPTH_TEST), this._isDepthTestDirty = !1), this._isDepthFuncDirty && (e.depthFunc(this.depthFunc), this._isDepthFuncDirty = !1), this._isZOffsetDirty && (this.zOffset || this.zOffsetUnits ? (e.enable(e.POLYGON_OFFSET_FILL), e.polygonOffset(this.zOffset, this.zOffsetUnits)) : e.disable(e.POLYGON_OFFSET_FILL), this._isZOffsetDirty = !1), this._isFrontFaceDirty && (e.frontFace(this.frontFace), this._isFrontFaceDirty = !1));\n }\n}\nclass xC {\n get isDirty() {\n return this._isStencilTestDirty || this._isStencilMaskDirty || this._isStencilFuncDirty || this._isStencilOpDirty;\n }\n get func() {\n return this._func;\n }\n set func(e) {\n this._func !== e && (this._func = e, this._isStencilFuncDirty = !0);\n }\n get funcRef() {\n return this._funcRef;\n }\n set funcRef(e) {\n this._funcRef !== e && (this._funcRef = e, this._isStencilFuncDirty = !0);\n }\n get funcMask() {\n return this._funcMask;\n }\n set funcMask(e) {\n this._funcMask !== e && (this._funcMask = e, this._isStencilFuncDirty = !0);\n }\n get opStencilFail() {\n return this._opStencilFail;\n }\n set opStencilFail(e) {\n this._opStencilFail !== e && (this._opStencilFail = e, this._isStencilOpDirty = !0);\n }\n get opDepthFail() {\n return this._opDepthFail;\n }\n set opDepthFail(e) {\n this._opDepthFail !== e && (this._opDepthFail = e, this._isStencilOpDirty = !0);\n }\n get opStencilDepthPass() {\n return this._opStencilDepthPass;\n }\n set opStencilDepthPass(e) {\n this._opStencilDepthPass !== e && (this._opStencilDepthPass = e, this._isStencilOpDirty = !0);\n }\n get mask() {\n return this._mask;\n }\n set mask(e) {\n this._mask !== e && (this._mask = e, this._isStencilMaskDirty = !0);\n }\n get enabled() {\n return this._enabled;\n }\n set enabled(e) {\n this._enabled !== e && (this._enabled = e, this._isStencilTestDirty = !0);\n }\n constructor(e = !0) {\n this._isStencilTestDirty = !1, this._isStencilMaskDirty = !1, this._isStencilFuncDirty = !1, this._isStencilOpDirty = !1, this.useStencilGlobalOnly = !1, e && this.reset();\n }\n reset() {\n var e;\n this.stencilMaterial = void 0, (e = this.stencilGlobal) == null || e.reset(), this._isStencilTestDirty = !0, this._isStencilMaskDirty = !0, this._isStencilFuncDirty = !0, this._isStencilOpDirty = !0;\n }\n apply(e) {\n var i;\n if (!e)\n return;\n const t = !this.useStencilGlobalOnly && !!((i = this.stencilMaterial) != null && i.enabled);\n this.enabled = t ? this.stencilMaterial.enabled : this.stencilGlobal.enabled, this.func = t ? this.stencilMaterial.func : this.stencilGlobal.func, this.funcRef = t ? this.stencilMaterial.funcRef : this.stencilGlobal.funcRef, this.funcMask = t ? this.stencilMaterial.funcMask : this.stencilGlobal.funcMask, this.opStencilFail = t ? this.stencilMaterial.opStencilFail : this.stencilGlobal.opStencilFail, this.opDepthFail = t ? this.stencilMaterial.opDepthFail : this.stencilGlobal.opDepthFail, this.opStencilDepthPass = t ? this.stencilMaterial.opStencilDepthPass : this.stencilGlobal.opStencilDepthPass, this.mask = t ? this.stencilMaterial.mask : this.stencilGlobal.mask, this.isDirty && (this._isStencilTestDirty && (this.enabled ? e.enable(e.STENCIL_TEST) : e.disable(e.STENCIL_TEST), this._isStencilTestDirty = !1), this._isStencilMaskDirty && (e.stencilMask(this.mask), this._isStencilMaskDirty = !1), this._isStencilFuncDirty && (e.stencilFunc(this.func, this.funcRef, this.funcMask), this._isStencilFuncDirty = !1), this._isStencilOpDirty && (e.stencilOp(this.opStencilFail, this.opDepthFail, this.opStencilDepthPass), this._isStencilOpDirty = !1));\n }\n}\nclass Ka {\n constructor() {\n this.reset();\n }\n reset() {\n this.enabled = !1, this.mask = 255, this.func = Ka.ALWAYS, this.funcRef = 1, this.funcMask = 255, this.opStencilFail = Ka.KEEP, this.opDepthFail = Ka.KEEP, this.opStencilDepthPass = Ka.REPLACE;\n }\n get stencilFunc() {\n return this.func;\n }\n set stencilFunc(e) {\n this.func = e;\n }\n get stencilFuncRef() {\n return this.funcRef;\n }\n set stencilFuncRef(e) {\n this.funcRef = e;\n }\n get stencilFuncMask() {\n return this.funcMask;\n }\n set stencilFuncMask(e) {\n this.funcMask = e;\n }\n get stencilOpStencilFail() {\n return this.opStencilFail;\n }\n set stencilOpStencilFail(e) {\n this.opStencilFail = e;\n }\n get stencilOpDepthFail() {\n return this.opDepthFail;\n }\n set stencilOpDepthFail(e) {\n this.opDepthFail = e;\n }\n get stencilOpStencilDepthPass() {\n return this.opStencilDepthPass;\n }\n set stencilOpStencilDepthPass(e) {\n this.opStencilDepthPass = e;\n }\n get stencilMask() {\n return this.mask;\n }\n set stencilMask(e) {\n this.mask = e;\n }\n get stencilTest() {\n return this.enabled;\n }\n set stencilTest(e) {\n this.enabled = e;\n }\n}\nKa.ALWAYS = 519;\nKa.KEEP = 7680;\nKa.REPLACE = 7681;\nclass XP {\n /**\n * Initializes the state.\n */\n constructor() {\n this._blendFunctionParameters = new Array(4), this._blendEquationParameters = new Array(2), this._blendConstants = new Array(4), this._isBlendConstantsDirty = !1, this._alphaBlend = !1, this._isAlphaBlendDirty = !1, this._isBlendFunctionParametersDirty = !1, this._isBlendEquationParametersDirty = !1, this.reset();\n }\n get isDirty() {\n return this._isAlphaBlendDirty || this._isBlendFunctionParametersDirty || this._isBlendEquationParametersDirty;\n }\n get alphaBlend() {\n return this._alphaBlend;\n }\n set alphaBlend(e) {\n this._alphaBlend !== e && (this._alphaBlend = e, this._isAlphaBlendDirty = !0);\n }\n setAlphaBlendConstants(e, t, i, s) {\n this._blendConstants[0] === e && this._blendConstants[1] === t && this._blendConstants[2] === i && this._blendConstants[3] === s || (this._blendConstants[0] = e, this._blendConstants[1] = t, this._blendConstants[2] = i, this._blendConstants[3] = s, this._isBlendConstantsDirty = !0);\n }\n setAlphaBlendFunctionParameters(e, t, i, s) {\n this._blendFunctionParameters[0] === e && this._blendFunctionParameters[1] === t && this._blendFunctionParameters[2] === i && this._blendFunctionParameters[3] === s || (this._blendFunctionParameters[0] = e, this._blendFunctionParameters[1] = t, this._blendFunctionParameters[2] = i, this._blendFunctionParameters[3] = s, this._isBlendFunctionParametersDirty = !0);\n }\n setAlphaEquationParameters(e, t) {\n this._blendEquationParameters[0] === e && this._blendEquationParameters[1] === t || (this._blendEquationParameters[0] = e, this._blendEquationParameters[1] = t, this._isBlendEquationParametersDirty = !0);\n }\n reset() {\n this._alphaBlend = !1, this._blendFunctionParameters[0] = null, this._blendFunctionParameters[1] = null, this._blendFunctionParameters[2] = null, this._blendFunctionParameters[3] = null, this._blendEquationParameters[0] = null, this._blendEquationParameters[1] = null, this._blendConstants[0] = null, this._blendConstants[1] = null, this._blendConstants[2] = null, this._blendConstants[3] = null, this._isAlphaBlendDirty = !0, this._isBlendFunctionParametersDirty = !1, this._isBlendEquationParametersDirty = !1, this._isBlendConstantsDirty = !1;\n }\n apply(e) {\n this.isDirty && (this._isAlphaBlendDirty && (this._alphaBlend ? e.enable(e.BLEND) : e.disable(e.BLEND), this._isAlphaBlendDirty = !1), this._isBlendFunctionParametersDirty && (e.blendFuncSeparate(this._blendFunctionParameters[0], this._blendFunctionParameters[1], this._blendFunctionParameters[2], this._blendFunctionParameters[3]), this._isBlendFunctionParametersDirty = !1), this._isBlendEquationParametersDirty && (e.blendEquationSeparate(this._blendEquationParameters[0], this._blendEquationParameters[1]), this._isBlendEquationParametersDirty = !1), this._isBlendConstantsDirty && (e.blendColor(this._blendConstants[0], this._blendConstants[1], this._blendConstants[2], this._blendConstants[3]), this._isBlendConstantsDirty = !1));\n }\n}\nfunction vC(a, e) {\n if (us()) {\n const { requestAnimationFrame: t } = e || window;\n if (typeof t == \"function\")\n return t(a);\n } else if (typeof requestAnimationFrame == \"function\")\n return requestAnimationFrame(a);\n return setTimeout(a, 16);\n}\nclass we {\n /**\n * Gets the current frame id\n */\n get frameId() {\n return this._frameId;\n }\n /**\n * Gets a boolean indicating if the engine runs in WebGPU or not.\n */\n get isWebGPU() {\n return this._isWebGPU;\n }\n /**\n * @internal\n */\n _getShaderProcessor(e) {\n return this._shaderProcessor;\n }\n /**\n * Gets the shader platform name used by the effects.\n */\n get shaderPlatformName() {\n return this._shaderPlatformName;\n }\n _clearEmptyResources() {\n this._emptyTexture = null, this._emptyCubeTexture = null, this._emptyTexture3D = null, this._emptyTexture2DArray = null;\n }\n /**\n * Gets or sets a boolean indicating if depth buffer should be reverse, going from far to near.\n * This can provide greater z depth for distant objects.\n */\n get useReverseDepthBuffer() {\n return this._useReverseDepthBuffer;\n }\n set useReverseDepthBuffer(e) {\n e !== this._useReverseDepthBuffer && (this._useReverseDepthBuffer = e, e ? this._depthCullingState.depthFunc = 518 : this._depthCullingState.depthFunc = 515);\n }\n /**\n * Enable or disable color writing\n * @param enable defines the state to set\n */\n setColorWrite(e) {\n e !== this._colorWrite && (this._colorWriteChanged = !0, this._colorWrite = e);\n }\n /**\n * Gets a boolean indicating if color writing is enabled\n * @returns the current color writing state\n */\n getColorWrite() {\n return this._colorWrite;\n }\n /**\n * Gets the depth culling state manager\n */\n get depthCullingState() {\n return this._depthCullingState;\n }\n /**\n * Gets the alpha state manager\n */\n get alphaState() {\n return this._alphaState;\n }\n /**\n * Gets the stencil state manager\n */\n get stencilState() {\n return this._stencilState;\n }\n /**\n * Gets the stencil state composer\n */\n get stencilStateComposer() {\n return this._stencilStateComposer;\n }\n /** @internal */\n _getGlobalDefines(e) {\n if (e) {\n this.isNDCHalfZRange ? e.IS_NDC_HALF_ZRANGE = \"\" : delete e.IS_NDC_HALF_ZRANGE, this.useReverseDepthBuffer ? e.USE_REVERSE_DEPTHBUFFER = \"\" : delete e.USE_REVERSE_DEPTHBUFFER, this.useExactSrgbConversions ? e.USE_EXACT_SRGB_CONVERSIONS = \"\" : delete e.USE_EXACT_SRGB_CONVERSIONS;\n return;\n } else {\n let t = \"\";\n return this.isNDCHalfZRange && (t += \"#define IS_NDC_HALF_ZRANGE\"), this.useReverseDepthBuffer && (t && (t += `\n`), t += \"#define USE_REVERSE_DEPTHBUFFER\"), this.useExactSrgbConversions && (t && (t += `\n`), t += \"#define USE_EXACT_SRGB_CONVERSIONS\"), t;\n }\n }\n _rebuildInternalTextures() {\n const e = this._internalTexturesCache.slice();\n for (const t of e)\n t._rebuild();\n }\n _rebuildRenderTargetWrappers() {\n const e = this._renderTargetWrapperCache.slice();\n for (const t of e)\n t._rebuild();\n }\n _rebuildEffects() {\n for (const e in this._compiledEffects) {\n const t = this._compiledEffects[e];\n t._pipelineContext = null, t._prepareEffect();\n }\n si.ResetCache();\n }\n _rebuildGraphicsResources() {\n var e;\n this.wipeCaches(!0), this._rebuildEffects(), (e = this._rebuildComputeEffects) == null || e.call(this), this._rebuildBuffers(), this._rebuildInternalTextures(), this._rebuildTextures(), this._rebuildRenderTargetWrappers(), this.wipeCaches(!0);\n }\n _flagContextRestored() {\n L.Warn(this.name + \" context successfully restored.\"), this.onContextRestoredObservable.notifyObservers(this), this._contextWasLost = !1;\n }\n _restoreEngineAfterContextLost(e) {\n setTimeout(async () => {\n this._clearEmptyResources();\n const t = this._depthCullingState.depthTest, i = this._depthCullingState.depthFunc, s = this._depthCullingState.depthMask, r = this._stencilState.stencilTest;\n await e(), this._rebuildGraphicsResources(), this._depthCullingState.depthTest = t, this._depthCullingState.depthFunc = i, this._depthCullingState.depthMask = s, this._stencilState.stencilTest = r, this._flagContextRestored();\n }, 0);\n }\n /** Gets a boolean indicating if the engine was disposed */\n get isDisposed() {\n return this._isDisposed;\n }\n /**\n * Enables or disables the snapshot rendering mode\n * Note that the WebGL engine does not support snapshot rendering so setting the value won't have any effect for this engine\n */\n get snapshotRendering() {\n return !1;\n }\n set snapshotRendering(e) {\n }\n /**\n * Gets or sets the snapshot rendering mode\n */\n get snapshotRenderingMode() {\n return 0;\n }\n set snapshotRenderingMode(e) {\n }\n /**\n * Returns the string \"AbstractEngine\"\n * @returns \"AbstractEngine\"\n */\n getClassName() {\n return \"AbstractEngine\";\n }\n /**\n * Gets the default empty texture\n */\n get emptyTexture() {\n return this._emptyTexture || (this._emptyTexture = this.createRawTexture(new Uint8Array(4), 1, 1, 5, !1, !1, 1)), this._emptyTexture;\n }\n /**\n * Gets the default empty 3D texture\n */\n get emptyTexture3D() {\n return this._emptyTexture3D || (this._emptyTexture3D = this.createRawTexture3D(new Uint8Array(4), 1, 1, 1, 5, !1, !1, 1)), this._emptyTexture3D;\n }\n /**\n * Gets the default empty 2D array texture\n */\n get emptyTexture2DArray() {\n return this._emptyTexture2DArray || (this._emptyTexture2DArray = this.createRawTexture2DArray(new Uint8Array(4), 1, 1, 1, 5, !1, !1, 1)), this._emptyTexture2DArray;\n }\n /**\n * Gets the default empty cube texture\n */\n get emptyCubeTexture() {\n if (!this._emptyCubeTexture) {\n const e = new Uint8Array(4), t = [e, e, e, e, e, e];\n this._emptyCubeTexture = this.createRawCubeTexture(t, 1, 5, 0, !1, !1, 1);\n }\n return this._emptyCubeTexture;\n }\n /**\n * Gets the list of current active render loop functions\n * @returns a read only array with the current render loop functions\n */\n get activeRenderLoops() {\n return this._activeRenderLoops;\n }\n /**\n * stop executing a render loop function and remove it from the execution array\n * @param renderFunction defines the function to be removed. If not provided all functions will be removed.\n */\n stopRenderLoop(e) {\n if (!e) {\n this._activeRenderLoops.length = 0, this._cancelFrame();\n return;\n }\n const t = this._activeRenderLoops.indexOf(e);\n t >= 0 && (this._activeRenderLoops.splice(t, 1), this._activeRenderLoops.length == 0 && this._cancelFrame());\n }\n _cancelFrame() {\n if (this._frameHandler !== 0) {\n const e = this._frameHandler;\n if (this._frameHandler = 0, us()) {\n const { cancelAnimationFrame: t } = this.getHostWindow() || window;\n if (typeof t == \"function\")\n return t(e);\n } else if (typeof cancelAnimationFrame == \"function\")\n return cancelAnimationFrame(e);\n return clearTimeout(e);\n }\n }\n /**\n * Begin a new frame\n */\n beginFrame() {\n this.onBeginFrameObservable.notifyObservers(this);\n }\n /**\n * End the current frame\n */\n endFrame() {\n this._frameId++, this.onEndFrameObservable.notifyObservers(this);\n }\n /** @internal */\n _renderLoop() {\n if (this._frameHandler = 0, !this._contextWasLost) {\n let e = !0;\n (this._isDisposed || !this.renderEvenInBackground && this._windowIsBackground) && (e = !1), e && (this.beginFrame(), this._renderViews() || this._renderFrame(), this.endFrame());\n }\n this._activeRenderLoops.length > 0 && this._frameHandler === 0 && (this._frameHandler = this._queueNewFrame(this._boundRenderFunction, this.getHostWindow()));\n }\n /** @internal */\n _renderFrame() {\n for (let e = 0; e < this._activeRenderLoops.length; e++) {\n const t = this._activeRenderLoops[e];\n t();\n }\n }\n /** @internal */\n _renderViews() {\n return !1;\n }\n /**\n * Can be used to override the current requestAnimationFrame requester.\n * @internal\n */\n _queueNewFrame(e, t) {\n return vC(e, t);\n }\n /**\n * Register and execute a render loop. The engine can have more than one render function\n * @param renderFunction defines the function to continuously execute\n */\n runRenderLoop(e) {\n this._activeRenderLoops.indexOf(e) === -1 && (this._activeRenderLoops.push(e), this._activeRenderLoops.length === 1 && this._frameHandler === 0 && (this._frameHandler = this._queueNewFrame(this._boundRenderFunction, this.getHostWindow())));\n }\n /**\n * Gets a boolean indicating if depth testing is enabled\n * @returns the current state\n */\n getDepthBuffer() {\n return this._depthCullingState.depthTest;\n }\n /**\n * Enable or disable depth buffering\n * @param enable defines the state to set\n */\n setDepthBuffer(e) {\n this._depthCullingState.depthTest = e;\n }\n /**\n * Set the z offset Factor to apply to current rendering\n * @param value defines the offset to apply\n */\n setZOffset(e) {\n this._depthCullingState.zOffset = this.useReverseDepthBuffer ? -e : e;\n }\n /**\n * Gets the current value of the zOffset Factor\n * @returns the current zOffset Factor state\n */\n getZOffset() {\n const e = this._depthCullingState.zOffset;\n return this.useReverseDepthBuffer ? -e : e;\n }\n /**\n * Set the z offset Units to apply to current rendering\n * @param value defines the offset to apply\n */\n setZOffsetUnits(e) {\n this._depthCullingState.zOffsetUnits = this.useReverseDepthBuffer ? -e : e;\n }\n /**\n * Gets the current value of the zOffset Units\n * @returns the current zOffset Units state\n */\n getZOffsetUnits() {\n const e = this._depthCullingState.zOffsetUnits;\n return this.useReverseDepthBuffer ? -e : e;\n }\n /**\n * Gets host window\n * @returns the host window object\n */\n getHostWindow() {\n return us() ? this._renderingCanvas && this._renderingCanvas.ownerDocument && this._renderingCanvas.ownerDocument.defaultView ? this._renderingCanvas.ownerDocument.defaultView : window : null;\n }\n /**\n * (WebGPU only) True (default) to be in compatibility mode, meaning rendering all existing scenes without artifacts (same rendering than WebGL).\n * Setting the property to false will improve performances but may not work in some scenes if some precautions are not taken.\n * See https://doc.babylonjs.com/setup/support/webGPU/webGPUOptimization/webGPUNonCompatibilityMode for more details\n */\n get compatibilityMode() {\n return this._compatibilityMode;\n }\n set compatibilityMode(e) {\n this._compatibilityMode = !0;\n }\n _rebuildTextures() {\n for (const e of this.scenes)\n e._rebuildTextures();\n for (const e of this._virtualScenes)\n e._rebuildTextures();\n }\n /**\n * @internal\n */\n _releaseRenderTargetWrapper(e) {\n const t = this._renderTargetWrapperCache.indexOf(e);\n t !== -1 && this._renderTargetWrapperCache.splice(t, 1);\n }\n /**\n * Gets the current viewport\n */\n get currentViewport() {\n return this._cachedViewport;\n }\n /**\n * Set the WebGL's viewport\n * @param viewport defines the viewport element to be used\n * @param requiredWidth defines the width required for rendering. If not provided the rendering canvas' width is used\n * @param requiredHeight defines the height required for rendering. If not provided the rendering canvas' height is used\n */\n setViewport(e, t, i) {\n const s = t || this.getRenderWidth(), r = i || this.getRenderHeight(), n = e.x || 0, o = e.y || 0;\n this._cachedViewport = e, this._viewport(n * s, o * r, s * e.width, r * e.height);\n }\n /**\n * Create an image to use with canvas\n * @returns IImage interface\n */\n createCanvasImage() {\n return document.createElement(\"img\");\n }\n /**\n * Returns a string describing the current engine\n */\n get description() {\n let e = this.name + this.version;\n return this._caps.parallelShaderCompile && (e += \" - Parallel shader compilation\"), e;\n }\n _createTextureBase(e, t, i, s, r = 3, n = null, o = null, l, h, c = null, u = null, d = null, f = null, p, _, m) {\n e = e || \"\";\n const x = e.substr(0, 5) === \"data:\", v = e.substr(0, 5) === \"blob:\", T = x && e.indexOf(\";base64,\") !== -1, E = u || new Nt(\n this,\n 1\n /* InternalTextureSource.Url */\n );\n E !== u && (E.label = e.substring(0, 60));\n const b = e;\n this._transformTextureUrl && !T && !u && !c && (e = this._transformTextureUrl(e)), b !== e && (E._originalUrl = b);\n const S = e.lastIndexOf(\".\");\n let C = f || (S > -1 ? e.substring(S).toLowerCase() : \"\"), P = null;\n C.indexOf(\"?\") > -1 && (C = C.split(\"?\")[0]);\n for (const j of we._TextureLoaders)\n if (j.canLoad(C, p)) {\n P = j;\n break;\n }\n s && s.addPendingData(E), E.url = e, E.generateMipMaps = !t, E.samplingMode = r, E.invertY = i, E._useSRGBBuffer = this._getUseSRGBBuffer(!!m, t), this._doNotHandleContextLost || (E._buffer = c);\n let F = null;\n n && !u && (F = E.onLoadedObservable.add(n)), u || this._internalTexturesCache.push(E);\n const $ = (j, ne) => {\n s && s.removePendingData(E), e === b ? (F && E.onLoadedObservable.remove(F), Me.UseFallbackTexture && e !== Me.FallbackTexture && this._createTextureBase(Me.FallbackTexture, t, E.invertY, s, r, null, o, l, h, c, E), j = (j || \"Unknown error\") + (Me.UseFallbackTexture ? \" - Fallback texture was used\" : \"\"), E.onErrorObservable.notifyObservers({ message: j, exception: ne }), o && o(j, ne)) : (L.Warn(`Failed to load ${e}, falling back to ${b}`), this._createTextureBase(b, t, E.invertY, s, r, n, o, l, h, c, E, d, f, p, _, m));\n };\n if (P) {\n const j = (ne) => {\n P.loadData(ne, E, (te, le, _e, Se, Ie, de) => {\n de ? $(\"TextureLoader failed to load data\") : l(E, C, s, { width: te, height: le }, E.invertY, !_e, Se, () => (Ie(), !1), r);\n }, _);\n };\n c ? c instanceof ArrayBuffer ? j(new Uint8Array(c)) : ArrayBuffer.isView(c) ? j(c) : o && o(\"Unable to load: only ArrayBuffer or ArrayBufferView is supported\", null) : this._loadFile(e, (ne) => j(new Uint8Array(ne)), void 0, s ? s.offlineProvider : void 0, !0, (ne, te) => {\n $(\"Unable to load \" + (ne && ne.responseURL, te));\n });\n } else {\n const j = (ne) => {\n v && !this._doNotHandleContextLost && (E._buffer = ne), l(E, C, s, ne, E.invertY, t, !1, h, r);\n };\n !x || T ? c && (typeof c.decoding == \"string\" || c.close) ? j(c) : we._FileToolsLoadImage(e || \"\", j, $, s ? s.offlineProvider : null, p, E.invertY && this._features.needsInvertingBitmap ? { imageOrientation: \"flipY\" } : void 0) : typeof c == \"string\" || c instanceof ArrayBuffer || ArrayBuffer.isView(c) || c instanceof Blob ? we._FileToolsLoadImage(c, j, $, s ? s.offlineProvider : null, p, E.invertY && this._features.needsInvertingBitmap ? { imageOrientation: \"flipY\" } : void 0) : c && j(c);\n }\n return E;\n }\n _rebuildBuffers() {\n for (const e of this._uniformBuffers)\n e._rebuildAfterContextLost();\n }\n /** @internal */\n get _shouldUseHighPrecisionShader() {\n return !!(this._caps.highPrecisionShaderSupported && this._highPrecisionShadersAllowed);\n }\n /**\n * Gets host document\n * @returns the host document object\n */\n getHostDocument() {\n return this._renderingCanvas && this._renderingCanvas.ownerDocument ? this._renderingCanvas.ownerDocument : mh() ? document : null;\n }\n /**\n * Gets the list of loaded textures\n * @returns an array containing all loaded textures\n */\n getLoadedTexturesCache() {\n return this._internalTexturesCache;\n }\n /**\n * Clears the list of texture accessible through engine.\n * This can help preventing texture load conflict due to name collision.\n */\n clearInternalTexturesCache() {\n this._internalTexturesCache.length = 0;\n }\n /**\n * Gets the object containing all engine capabilities\n * @returns the EngineCapabilities object\n */\n getCaps() {\n return this._caps;\n }\n /**\n * Reset the texture cache to empty state\n */\n resetTextureCache() {\n for (const e in this._boundTexturesCache)\n Object.prototype.hasOwnProperty.call(this._boundTexturesCache, e) && (this._boundTexturesCache[e] = null);\n this._currentTextureChannel = -1;\n }\n /**\n * Gets or sets the name of the engine\n */\n get name() {\n return this._name;\n }\n set name(e) {\n this._name = e;\n }\n /**\n * Returns the current npm package of the sdk\n */\n // Not mixed with Version for tooling purpose.\n static get NpmPackage() {\n return \"babylonjs@7.15.0\";\n }\n /**\n * Returns the current version of the framework\n */\n static get Version() {\n return \"7.15.0\";\n }\n /**\n * Gets the HTML canvas attached with the current webGL context\n * @returns a HTML canvas\n */\n getRenderingCanvas() {\n return this._renderingCanvas;\n }\n /**\n * Gets the audio context specified in engine initialization options\n * @returns an Audio Context\n */\n getAudioContext() {\n return this._audioContext;\n }\n /**\n * Gets the audio destination specified in engine initialization options\n * @returns an audio destination node\n */\n getAudioDestination() {\n return this._audioDestination;\n }\n /**\n * Defines the hardware scaling level.\n * By default the hardware scaling level is computed from the window device ratio.\n * if level = 1 then the engine will render at the exact resolution of the canvas. If level = 0.5 then the engine will render at twice the size of the canvas.\n * @param level defines the level to use\n */\n setHardwareScalingLevel(e) {\n this._hardwareScalingLevel = e, this.resize();\n }\n /**\n * Gets the current hardware scaling level.\n * By default the hardware scaling level is computed from the window device ratio.\n * if level = 1 then the engine will render at the exact resolution of the canvas. If level = 0.5 then the engine will render at twice the size of the canvas.\n * @returns a number indicating the current hardware scaling level\n */\n getHardwareScalingLevel() {\n return this._hardwareScalingLevel;\n }\n /**\n * Gets or sets a boolean indicating if resources should be retained to be able to handle context lost events\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#handling-webgl-context-lost\n */\n get doNotHandleContextLost() {\n return this._doNotHandleContextLost;\n }\n set doNotHandleContextLost(e) {\n this._doNotHandleContextLost = e;\n }\n /**\n * Returns true if the stencil buffer has been enabled through the creation option of the context.\n */\n get isStencilEnable() {\n return this._isStencilEnable;\n }\n /**\n * Gets the options used for engine creation\n * @returns EngineOptions object\n */\n getCreationOptions() {\n return this._creationOptions;\n }\n /**\n * Creates a new engine\n * @param antialias defines whether anti-aliasing should be enabled. If undefined, it means that the underlying engine is free to enable it or not\n * @param options defines further options to be sent to the creation context\n * @param adaptToDeviceRatio defines whether to adapt to the device's viewport characteristics (default: false)\n */\n constructor(e, t, i) {\n var n, o;\n this._colorWrite = !0, this._colorWriteChanged = !0, this._depthCullingState = new gC(), this._stencilStateComposer = new xC(), this._stencilState = new Ka(), this._alphaState = new XP(), this._alphaMode = 1, this._alphaEquation = 0, this._activeRequests = [], this._badOS = !1, this._badDesktopOS = !1, this._compatibilityMode = !0, this._internalTexturesCache = new Array(), this._currentRenderTarget = null, this._boundTexturesCache = {}, this._activeChannel = 0, this._currentTextureChannel = -1, this._viewportCached = { x: 0, y: 0, z: 0, w: 0 }, this._isWebGPU = !1, this.onCanvasBlurObservable = new G(), this.onCanvasFocusObservable = new G(), this.onNewSceneAddedObservable = new G(), this.onResizeObservable = new G(), this.onCanvasPointerOutObservable = new G(), this.disablePerformanceMonitorInBackground = !1, this.disableVertexArrayObjects = !1, this._frameId = 0, this.hostInformation = {\n isMobile: !1\n }, this.isFullscreen = !1, this.enableOfflineSupport = !1, this.disableManifestCheck = !1, this.disableContextMenu = !0, this.currentRenderPassId = 0, this.isPointerLock = !1, this.postProcesses = [], this.canvasTabIndex = 1, this._contextWasLost = !1, this._useReverseDepthBuffer = !1, this.isNDCHalfZRange = !1, this.hasOriginBottomLeft = !0, this._renderTargetWrapperCache = new Array(), this._compiledEffects = {}, this._isDisposed = !1, this.scenes = [], this._virtualScenes = new Array(), this.onBeforeTextureInitObservable = new G(), this.renderEvenInBackground = !0, this.preventCacheWipeBetweenFrames = !1, this._frameHandler = 0, this._activeRenderLoops = new Array(), this._windowIsBackground = !1, this._boundRenderFunction = () => this._renderLoop(), this.onBeforeShaderCompilationObservable = new G(), this.onAfterShaderCompilationObservable = new G(), this.onBeginFrameObservable = new G(), this.onEndFrameObservable = new G(), this._transformTextureUrl = null, this._uniformBuffers = new Array(), this._storageBuffers = new Array(), this._highPrecisionShadersAllowed = !0, this.onContextLostObservable = new G(), this.onContextRestoredObservable = new G(), this._name = \"\", this.premultipliedAlpha = !0, this.adaptToDeviceRatio = !1, this._lastDevicePixelRatio = 1, this._doNotHandleContextLost = !1, this.cullBackFaces = null, this._renderPassNames = [\"main\"], this._fps = 60, this._deltaTime = 0, this._deterministicLockstep = !1, this._lockstepMaxSteps = 4, this._timeStep = 1 / 60, this.onDisposeObservable = new G(), Me.Instances.push(this), this.startTime = Es.Now, this._stencilStateComposer.stencilGlobal = this._stencilState, ks.SetMatrixPrecision(!!t.useHighPrecisionMatrix), Tl() && navigator.userAgent && (this._badOS = /iPad/i.test(navigator.userAgent) || /iPhone/i.test(navigator.userAgent), this._badDesktopOS = /^((?!chrome|android).)*safari/i.test(navigator.userAgent)), this.adaptToDeviceRatio = i ?? !1, t.antialias = e ?? t.antialias, t.deterministicLockstep = t.deterministicLockstep ?? !1, t.lockstepMaxSteps = t.lockstepMaxSteps ?? 4, t.timeStep = t.timeStep ?? 1 / 60, t.audioEngine = t.audioEngine ?? !0, t.stencil = t.stencil ?? !0, this._audioContext = ((n = t.audioEngineOptions) == null ? void 0 : n.audioContext) ?? null, this._audioDestination = ((o = t.audioEngineOptions) == null ? void 0 : o.audioDestination) ?? null, this.premultipliedAlpha = t.premultipliedAlpha ?? !0, this._doNotHandleContextLost = !!t.doNotHandleContextLost, this._isStencilEnable = !!t.stencil, this.useExactSrgbConversions = t.useExactSrgbConversions ?? !1;\n const s = us() && window.devicePixelRatio || 1, r = t.limitDeviceRatio || s;\n i = i || t.adaptToDeviceRatio || !1, this._hardwareScalingLevel = i ? 1 / Math.min(r, s) : 1, this._lastDevicePixelRatio = s, this._creationOptions = t;\n }\n /**\n * Resize the view according to the canvas' size\n * @param forceSetSize true to force setting the sizes of the underlying canvas\n */\n resize(e = !1) {\n let t, i;\n if (this.adaptToDeviceRatio) {\n const s = us() && window.devicePixelRatio || 1, r = this._lastDevicePixelRatio / s;\n this._lastDevicePixelRatio = s, this._hardwareScalingLevel *= r;\n }\n if (us() && mh())\n if (this._renderingCanvas) {\n const s = this._renderingCanvas.getBoundingClientRect ? this._renderingCanvas.getBoundingClientRect() : {\n // fallback to last solution in case the function doesn't exist\n width: this._renderingCanvas.width * this._hardwareScalingLevel,\n height: this._renderingCanvas.height * this._hardwareScalingLevel\n };\n t = this._renderingCanvas.clientWidth || s.width || this._renderingCanvas.width || 100, i = this._renderingCanvas.clientHeight || s.height || this._renderingCanvas.height || 100;\n } else\n t = window.innerWidth, i = window.innerHeight;\n else\n t = this._renderingCanvas ? this._renderingCanvas.width : 100, i = this._renderingCanvas ? this._renderingCanvas.height : 100;\n this.setSize(t / this._hardwareScalingLevel, i / this._hardwareScalingLevel, e);\n }\n /**\n * Force a specific size of the canvas\n * @param width defines the new canvas' width\n * @param height defines the new canvas' height\n * @param forceSetSize true to force setting the sizes of the underlying canvas\n * @returns true if the size was changed\n */\n setSize(e, t, i = !1) {\n if (!this._renderingCanvas || (e = e | 0, t = t | 0, !i && this._renderingCanvas.width === e && this._renderingCanvas.height === t))\n return !1;\n if (this._renderingCanvas.width = e, this._renderingCanvas.height = t, this.scenes) {\n for (let s = 0; s < this.scenes.length; s++) {\n const r = this.scenes[s];\n for (let n = 0; n < r.cameras.length; n++) {\n const o = r.cameras[n];\n o._currentRenderId = 0;\n }\n }\n this.onResizeObservable.hasObservers() && this.onResizeObservable.notifyObservers(this);\n }\n return !0;\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Creates a raw texture\n * @param data defines the data to store in the texture\n * @param width defines the width of the texture\n * @param height defines the height of the texture\n * @param format defines the format of the data\n * @param generateMipMaps defines if the engine should generate the mip levels\n * @param invertY defines if data must be stored with Y axis inverted\n * @param samplingMode defines the required sampling mode (Texture.NEAREST_SAMPLINGMODE by default)\n * @param compression defines the compression used (null by default)\n * @param type defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_INT by default)\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns the raw texture inside an InternalTexture\n */\n createRawTexture(e, t, i, s, r, n, o, l, h, c, u) {\n throw $e(\"engine.rawTexture\");\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Creates a new raw cube texture\n * @param data defines the array of data to use to create each face\n * @param size defines the size of the textures\n * @param format defines the format of the data\n * @param type defines the type of the data (like Engine.TEXTURETYPE_UNSIGNED_INT)\n * @param generateMipMaps defines if the engine should generate the mip levels\n * @param invertY defines if data must be stored with Y axis inverted\n * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)\n * @param compression defines the compression used (null by default)\n * @returns the cube texture as an InternalTexture\n */\n createRawCubeTexture(e, t, i, s, r, n, o, l) {\n throw $e(\"engine.rawTexture\");\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Creates a new raw 3D texture\n * @param data defines the data used to create the texture\n * @param width defines the width of the texture\n * @param height defines the height of the texture\n * @param depth defines the depth of the texture\n * @param format defines the format of the texture\n * @param generateMipMaps defines if the engine must generate mip levels\n * @param invertY defines if data must be stored with Y axis inverted\n * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)\n * @param compression defines the compressed used (can be null)\n * @param textureType defines the compressed used (can be null)\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n * @returns a new raw 3D texture (stored in an InternalTexture)\n */\n createRawTexture3D(e, t, i, s, r, n, o, l, h, c, u) {\n throw $e(\"engine.rawTexture\");\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Creates a new raw 2D array texture\n * @param data defines the data used to create the texture\n * @param width defines the width of the texture\n * @param height defines the height of the texture\n * @param depth defines the number of layers of the texture\n * @param format defines the format of the texture\n * @param generateMipMaps defines if the engine must generate mip levels\n * @param invertY defines if data must be stored with Y axis inverted\n * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)\n * @param compression defines the compressed used (can be null)\n * @param textureType defines the compressed used (can be null)\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n * @returns a new raw 2D array texture (stored in an InternalTexture)\n */\n createRawTexture2DArray(e, t, i, s, r, n, o, l, h, c, u) {\n throw $e(\"engine.rawTexture\");\n }\n /**\n * Shared initialization across engines types.\n * @param canvas The canvas associated with this instance of the engine.\n */\n _sharedInit(e) {\n this._renderingCanvas = e;\n }\n _setupMobileChecks() {\n navigator && navigator.userAgent && (this._checkForMobile = () => {\n const e = navigator.userAgent;\n this.hostInformation.isMobile = e.indexOf(\"Mobile\") !== -1 || // Needed for iOS 13+ detection on iPad (inspired by solution from https://stackoverflow.com/questions/9038625/detect-if-device-is-ios)\n e.indexOf(\"Mac\") !== -1 && mh() && \"ontouchend\" in document;\n }, this._checkForMobile(), us() && window.addEventListener(\"resize\", this._checkForMobile));\n }\n /**\n * creates and returns a new video element\n * @param constraints video constraints\n * @returns video element\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n createVideoElement(e) {\n return document.createElement(\"video\");\n }\n /**\n * @internal\n */\n _reportDrawCall(e = 1) {\n var t;\n (t = this._drawCalls) == null || t.addCount(e, !1);\n }\n /**\n * Gets the current framerate\n * @returns a number representing the framerate\n */\n getFps() {\n return this._fps;\n }\n /**\n * Gets the time spent between current and previous frame\n * @returns a number representing the delta time in ms\n */\n getDeltaTime() {\n return this._deltaTime;\n }\n /**\n * Gets a boolean indicating that the engine is running in deterministic lock step mode\n * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#deterministic-lockstep\n * @returns true if engine is in deterministic lock step mode\n */\n isDeterministicLockStep() {\n return this._deterministicLockstep;\n }\n /**\n * Gets the max steps when engine is running in deterministic lock step\n * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#deterministic-lockstep\n * @returns the max steps\n */\n getLockstepMaxSteps() {\n return this._lockstepMaxSteps;\n }\n /**\n * Returns the time in ms between steps when using deterministic lock step.\n * @returns time step in (ms)\n */\n getTimeStep() {\n return this._timeStep * 1e3;\n }\n /**\n * Engine abstraction for loading and creating an image bitmap from a given source string.\n * @param imageSource source to load the image from.\n * @param options An object that sets options for the image's extraction.\n */\n _createImageBitmapFromSource(e, t) {\n throw new Error(\"createImageBitmapFromSource is not implemented\");\n }\n /**\n * Engine abstraction for createImageBitmap\n * @param image source for image\n * @param options An object that sets options for the image's extraction.\n * @returns ImageBitmap\n */\n createImageBitmap(e, t) {\n return createImageBitmap(e, t);\n }\n /**\n * Resize an image and returns the image data as an uint8array\n * @param image image to resize\n * @param bufferWidth destination buffer width\n * @param bufferHeight destination buffer height\n */\n resizeImageBitmap(e, t, i) {\n throw new Error(\"resizeImageBitmap is not implemented\");\n }\n /**\n * Get Font size information\n * @param font font name\n */\n getFontOffset(e) {\n throw new Error(\"getFontOffset is not implemented\");\n }\n static _CreateCanvas(e, t) {\n if (typeof document > \"u\")\n return new OffscreenCanvas(e, t);\n const i = document.createElement(\"canvas\");\n return i.width = e, i.height = t, i;\n }\n /**\n * Create a canvas. This method is overridden by other engines\n * @param width width\n * @param height height\n * @returns ICanvas interface\n */\n createCanvas(e, t) {\n return we._CreateCanvas(e, t);\n }\n /**\n * Loads an image as an HTMLImageElement.\n * @param input url string, ArrayBuffer, or Blob to load\n * @param onLoad callback called when the image successfully loads\n * @param onError callback called when the image fails to load\n * @param offlineProvider offline provider for caching\n * @param mimeType optional mime type\n * @param imageBitmapOptions optional the options to use when creating an ImageBitmap\n * @returns the HTMLImageElement of the loaded image\n * @internal\n */\n static _FileToolsLoadImage(e, t, i, s, r, n) {\n throw $e(\"FileTools\");\n }\n /**\n * @internal\n */\n _loadFile(e, t, i, s, r, n) {\n const o = aC(e, t, i, s, r, n);\n return this._activeRequests.push(o), o.onCompleteObservable.add(() => {\n const l = this._activeRequests.indexOf(o);\n l !== -1 && this._activeRequests.splice(l, 1);\n }), o;\n }\n /**\n * Loads a file from a url\n * @param url url to load\n * @param onSuccess callback called when the file successfully loads\n * @param onProgress callback called while file is loading (if the server supports this mode)\n * @param offlineProvider defines the offline provider for caching\n * @param useArrayBuffer defines a boolean indicating that date must be returned as ArrayBuffer\n * @param onError callback called when the file fails to load\n * @returns a file request object\n * @internal\n */\n static _FileToolsLoadFile(e, t, i, s, r, n) {\n if (Ip.loadFile)\n return Ip.loadFile(e, t, i, s, r, n);\n throw $e(\"FileTools\");\n }\n /**\n * Dispose and release all associated resources\n */\n dispose() {\n var t;\n for (this.releaseEffects(), this._isDisposed = !0, this.stopRenderLoop(), this._emptyTexture && (this._releaseTexture(this._emptyTexture), this._emptyTexture = null), this._emptyCubeTexture && (this._releaseTexture(this._emptyCubeTexture), this._emptyCubeTexture = null), this._renderingCanvas = null, this.onBeforeTextureInitObservable && this.onBeforeTextureInitObservable.clear(); this.postProcesses.length; )\n this.postProcesses[0].dispose();\n for (; this.scenes.length; )\n this.scenes[0].dispose();\n for (; this._virtualScenes.length; )\n this._virtualScenes[0].dispose();\n (t = this.releaseComputeEffects) == null || t.call(this), si.ResetCache();\n for (const i of this._activeRequests)\n i.abort();\n this._boundRenderFunction = null, this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this.onResizeObservable.clear(), this.onCanvasBlurObservable.clear(), this.onCanvasFocusObservable.clear(), this.onCanvasPointerOutObservable.clear(), this.onNewSceneAddedObservable.clear(), us() && window.removeEventListener(\"resize\", this._checkForMobile);\n const e = Me.Instances.indexOf(this);\n e >= 0 && Me.Instances.splice(e, 1), Me.Instances.length || (Me.OnEnginesDisposedObservable.notifyObservers(this), Me.OnEnginesDisposedObservable.clear()), this.onBeginFrameObservable.clear(), this.onEndFrameObservable.clear();\n }\n /**\n * Method called to create the default loading screen.\n * This can be overridden in your own app.\n * @param canvas The rendering canvas element\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static DefaultLoadingScreenFactory(e) {\n throw $e(\"LoadingScreen\");\n }\n}\nwe._TextureLoaders = [];\nwe._RenderPassIdCounter = 0;\nwe._RescalePostProcessFactory = null;\nclass pc {\n get underlyingResource() {\n return this._webGLTexture;\n }\n constructor(e = null, t) {\n if (this._MSAARenderBuffers = null, this._context = t, !e && (e = t.createTexture(), !e))\n throw new Error(\"Unable to create webGL texture\");\n this.set(e);\n }\n setUsage() {\n }\n set(e) {\n this._webGLTexture = e;\n }\n reset() {\n this._webGLTexture = null, this._MSAARenderBuffers = null;\n }\n addMSAARenderBuffer(e) {\n this._MSAARenderBuffers || (this._MSAARenderBuffers = []), this._MSAARenderBuffers.push(e);\n }\n releaseMSAARenderBuffers() {\n if (this._MSAARenderBuffers) {\n for (const e of this._MSAARenderBuffers)\n this._context.deleteRenderbuffer(e);\n this._MSAARenderBuffers = null;\n }\n }\n getMSAARenderBuffer(e = 0) {\n var t;\n return ((t = this._MSAARenderBuffers) == null ? void 0 : t[e]) ?? null;\n }\n release() {\n this.releaseMSAARenderBuffers(), this._webGLTexture && this._context.deleteTexture(this._webGLTexture), this.reset();\n }\n}\nclass $P {\n}\nclass Xe extends we {\n /**\n * Gets or sets the name of the engine\n */\n get name() {\n return this._name;\n }\n set name(e) {\n this._name = e;\n }\n /**\n * Returns the version of the engine\n */\n get version() {\n return this._webGLVersion;\n }\n /**\n * Gets or sets the relative url used to load shaders if using the engine in non-minified mode\n */\n static get ShadersRepository() {\n return si.ShadersRepository;\n }\n static set ShadersRepository(e) {\n si.ShadersRepository = e;\n }\n /**\n * Gets a boolean indicating that the engine supports uniform buffers\n * @see https://doc.babylonjs.com/setup/support/webGL2#uniform-buffer-objets\n */\n get supportsUniformBuffers() {\n return this.webGLVersion > 1 && !this.disableUniformBuffers;\n }\n /**\n * Gets a boolean indicating that only power of 2 textures are supported\n * Please note that you can still use non power of 2 textures but in this case the engine will forcefully convert them\n */\n get needPOTTextures() {\n return this._webGLVersion < 2 || this.forcePOTTextures;\n }\n get _supportsHardwareTextureRescaling() {\n return !1;\n }\n /**\n * sets the object from which width and height will be taken from when getting render width and height\n * Will fallback to the gl object\n * @param dimensions the framebuffer width and height that will be used.\n */\n set framebufferDimensionsObject(e) {\n this._framebufferDimensionsObject = e;\n }\n /**\n * Creates a new snapshot at the next frame using the current snapshotRenderingMode\n */\n snapshotRenderingReset() {\n this.snapshotRendering = !1;\n }\n /**\n * Creates a new engine\n * @param canvasOrContext defines the canvas or WebGL context to use for rendering. If you provide a WebGL context, Babylon.js will not hook events on the canvas (like pointers, keyboards, etc...) so no event observables will be available. This is mostly used when Babylon.js is used as a plugin on a system which already used the WebGL context\n * @param antialias defines whether anti-aliasing should be enabled (default value is \"undefined\", meaning that the browser may or may not enable it)\n * @param options defines further options to be sent to the getContext() function\n * @param adaptToDeviceRatio defines whether to adapt to the device's viewport characteristics (default: false)\n */\n constructor(e, t, i, s) {\n if (i = i || {}, super(t ?? i.antialias, i, s), this._name = \"WebGL\", this.forcePOTTextures = !1, this.validateShaderPrograms = !1, this.disableUniformBuffers = !1, this._webGLVersion = 1, this._vertexAttribArraysEnabled = [], this._uintIndicesCurrentlySet = !1, this._currentBoundBuffer = new Array(), this._currentFramebuffer = null, this._dummyFramebuffer = null, this._currentBufferPointers = new Array(), this._currentInstanceLocations = new Array(), this._currentInstanceBuffers = new Array(), this._vaoRecordInProgress = !1, this._mustWipeVertexAttributes = !1, this._nextFreeTextureSlots = new Array(), this._maxSimultaneousTextures = 0, this._maxMSAASamplesOverride = null, this._unpackFlipYCached = null, this.enableUnpackFlipYCached = !0, this._boundUniforms = {}, !e)\n return;\n let r = null;\n if (e.getContext) {\n if (r = e, this._renderingCanvas = r, i.preserveDrawingBuffer === void 0 && (i.preserveDrawingBuffer = !1), i.xrCompatible === void 0 && (i.xrCompatible = !1), navigator && navigator.userAgent) {\n this._setupMobileChecks();\n const l = navigator.userAgent;\n for (const h of Xe.ExceptionList) {\n const c = h.key, u = h.targets;\n if (new RegExp(c).test(l)) {\n if (h.capture && h.captureConstraint) {\n const f = h.capture, p = h.captureConstraint, m = new RegExp(f).exec(l);\n if (m && m.length > 0 && parseInt(m[m.length - 1]) >= p)\n continue;\n }\n for (const f of u)\n switch (f) {\n case \"uniformBuffer\":\n this.disableUniformBuffers = !0;\n break;\n case \"vao\":\n this.disableVertexArrayObjects = !0;\n break;\n case \"antialias\":\n i.antialias = !1;\n break;\n case \"maxMSAASamples\":\n this._maxMSAASamplesOverride = 1;\n break;\n }\n }\n }\n }\n if (this._doNotHandleContextLost || (this._onContextLost = (l) => {\n l.preventDefault(), this._contextWasLost = !0, L.Warn(\"WebGL context lost.\"), this.onContextLostObservable.notifyObservers(this);\n }, this._onContextRestored = () => {\n this._restoreEngineAfterContextLost(() => this._initGLContext());\n }, r.addEventListener(\"webglcontextlost\", this._onContextLost, !1), r.addEventListener(\"webglcontextrestored\", this._onContextRestored, !1), i.powerPreference = i.powerPreference || \"high-performance\"), this._badDesktopOS && (i.xrCompatible = !1), !i.disableWebGL2Support)\n try {\n this._gl = r.getContext(\"webgl2\", i) || r.getContext(\"experimental-webgl2\", i), this._gl && (this._webGLVersion = 2, this._shaderPlatformName = \"WEBGL2\", this._gl.deleteQuery || (this._webGLVersion = 1, this._shaderPlatformName = \"WEBGL1\"));\n } catch {\n }\n if (!this._gl) {\n if (!r)\n throw new Error(\"The provided canvas is null or undefined.\");\n try {\n this._gl = r.getContext(\"webgl\", i) || r.getContext(\"experimental-webgl\", i);\n } catch {\n throw new Error(\"WebGL not supported\");\n }\n }\n if (!this._gl)\n throw new Error(\"WebGL not supported\");\n } else {\n this._gl = e, this._renderingCanvas = this._gl.canvas, this._gl.renderbufferStorageMultisample ? (this._webGLVersion = 2, this._shaderPlatformName = \"WEBGL2\") : this._shaderPlatformName = \"WEBGL1\";\n const l = this._gl.getContextAttributes();\n l && (i.stencil = l.stencil);\n }\n this._gl.pixelStorei(this._gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, this._gl.NONE), i.useHighPrecisionFloats !== void 0 && (this._highPrecisionShadersAllowed = i.useHighPrecisionFloats), this.resize(), this._initGLContext(), this._initFeatures();\n for (let l = 0; l < this._caps.maxVertexAttribs; l++)\n this._currentBufferPointers[l] = new $P();\n this._shaderProcessor = this.webGLVersion > 1 ? new yP() : new bP();\n const n = `Babylon.js v${Xe.Version}`;\n L.Log(n + ` - ${this.description}`), this._renderingCanvas && this._renderingCanvas.setAttribute && this._renderingCanvas.setAttribute(\"data-engine\", n);\n const o = gn(this._gl);\n o.validateShaderPrograms = this.validateShaderPrograms, o.parallelShaderCompile = this._caps.parallelShaderCompile;\n }\n _clearEmptyResources() {\n this._dummyFramebuffer = null, super._clearEmptyResources();\n }\n /**\n * @internal\n */\n _getShaderProcessingContext(e) {\n return null;\n }\n /**\n * Gets a boolean indicating if all created effects are ready\n * @returns true if all effects are ready\n */\n areAllEffectsReady() {\n for (const e in this._compiledEffects)\n if (!this._compiledEffects[e].isReady())\n return !1;\n return !0;\n }\n _initGLContext() {\n this._caps = {\n maxTexturesImageUnits: this._gl.getParameter(this._gl.MAX_TEXTURE_IMAGE_UNITS),\n maxCombinedTexturesImageUnits: this._gl.getParameter(this._gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS),\n maxVertexTextureImageUnits: this._gl.getParameter(this._gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS),\n maxTextureSize: this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE),\n maxSamples: this._webGLVersion > 1 ? this._gl.getParameter(this._gl.MAX_SAMPLES) : 1,\n maxCubemapTextureSize: this._gl.getParameter(this._gl.MAX_CUBE_MAP_TEXTURE_SIZE),\n maxRenderTextureSize: this._gl.getParameter(this._gl.MAX_RENDERBUFFER_SIZE),\n maxVertexAttribs: this._gl.getParameter(this._gl.MAX_VERTEX_ATTRIBS),\n maxVaryingVectors: this._gl.getParameter(this._gl.MAX_VARYING_VECTORS),\n maxFragmentUniformVectors: this._gl.getParameter(this._gl.MAX_FRAGMENT_UNIFORM_VECTORS),\n maxVertexUniformVectors: this._gl.getParameter(this._gl.MAX_VERTEX_UNIFORM_VECTORS),\n parallelShaderCompile: this._gl.getExtension(\"KHR_parallel_shader_compile\") || void 0,\n standardDerivatives: this._webGLVersion > 1 || this._gl.getExtension(\"OES_standard_derivatives\") !== null,\n maxAnisotropy: 1,\n astc: this._gl.getExtension(\"WEBGL_compressed_texture_astc\") || this._gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_astc\"),\n bptc: this._gl.getExtension(\"EXT_texture_compression_bptc\") || this._gl.getExtension(\"WEBKIT_EXT_texture_compression_bptc\"),\n s3tc: this._gl.getExtension(\"WEBGL_compressed_texture_s3tc\") || this._gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\"),\n // eslint-disable-next-line @typescript-eslint/naming-convention\n s3tc_srgb: this._gl.getExtension(\"WEBGL_compressed_texture_s3tc_srgb\") || this._gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc_srgb\"),\n pvrtc: this._gl.getExtension(\"WEBGL_compressed_texture_pvrtc\") || this._gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\"),\n etc1: this._gl.getExtension(\"WEBGL_compressed_texture_etc1\") || this._gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_etc1\"),\n etc2: this._gl.getExtension(\"WEBGL_compressed_texture_etc\") || this._gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_etc\") || this._gl.getExtension(\"WEBGL_compressed_texture_es3_0\"),\n textureAnisotropicFilterExtension: this._gl.getExtension(\"EXT_texture_filter_anisotropic\") || this._gl.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\") || this._gl.getExtension(\"MOZ_EXT_texture_filter_anisotropic\"),\n uintIndices: this._webGLVersion > 1 || this._gl.getExtension(\"OES_element_index_uint\") !== null,\n fragmentDepthSupported: this._webGLVersion > 1 || this._gl.getExtension(\"EXT_frag_depth\") !== null,\n highPrecisionShaderSupported: !1,\n timerQuery: this._gl.getExtension(\"EXT_disjoint_timer_query_webgl2\") || this._gl.getExtension(\"EXT_disjoint_timer_query\"),\n supportOcclusionQuery: this._webGLVersion > 1,\n canUseTimestampForTimerQuery: !1,\n drawBuffersExtension: !1,\n maxMSAASamples: 1,\n colorBufferFloat: !!(this._webGLVersion > 1 && this._gl.getExtension(\"EXT_color_buffer_float\")),\n supportFloatTexturesResolve: !1,\n rg11b10ufColorRenderable: !1,\n colorBufferHalfFloat: !!(this._webGLVersion > 1 && this._gl.getExtension(\"EXT_color_buffer_half_float\")),\n textureFloat: !!(this._webGLVersion > 1 || this._gl.getExtension(\"OES_texture_float\")),\n textureHalfFloat: !!(this._webGLVersion > 1 || this._gl.getExtension(\"OES_texture_half_float\")),\n textureHalfFloatRender: !1,\n textureFloatLinearFiltering: !1,\n textureFloatRender: !1,\n textureHalfFloatLinearFiltering: !1,\n vertexArrayObject: !1,\n instancedArrays: !1,\n textureLOD: !!(this._webGLVersion > 1 || this._gl.getExtension(\"EXT_shader_texture_lod\")),\n texelFetch: this._webGLVersion !== 1,\n blendMinMax: !1,\n multiview: this._gl.getExtension(\"OVR_multiview2\"),\n oculusMultiview: this._gl.getExtension(\"OCULUS_multiview\"),\n depthTextureExtension: !1,\n canUseGLInstanceID: this._webGLVersion > 1,\n canUseGLVertexID: this._webGLVersion > 1,\n supportComputeShaders: !1,\n supportSRGBBuffers: !1,\n supportTransformFeedbacks: this._webGLVersion > 1,\n textureMaxLevel: this._webGLVersion > 1,\n texture2DArrayMaxLayerCount: this._webGLVersion > 1 ? this._gl.getParameter(this._gl.MAX_ARRAY_TEXTURE_LAYERS) : 128,\n disableMorphTargetTexture: !1\n }, this._caps.supportFloatTexturesResolve = this._caps.colorBufferFloat, this._caps.rg11b10ufColorRenderable = this._caps.colorBufferFloat, this._glVersion = this._gl.getParameter(this._gl.VERSION);\n const e = this._gl.getExtension(\"WEBGL_debug_renderer_info\");\n if (e != null && (this._glRenderer = this._gl.getParameter(e.UNMASKED_RENDERER_WEBGL), this._glVendor = this._gl.getParameter(e.UNMASKED_VENDOR_WEBGL)), this._glVendor || (this._glVendor = this._gl.getParameter(this._gl.VENDOR) || \"Unknown vendor\"), this._glRenderer || (this._glRenderer = this._gl.getParameter(this._gl.RENDERER) || \"Unknown renderer\"), this._gl.HALF_FLOAT_OES !== 36193 && (this._gl.HALF_FLOAT_OES = 36193), this._gl.RGBA16F !== 34842 && (this._gl.RGBA16F = 34842), this._gl.RGBA32F !== 34836 && (this._gl.RGBA32F = 34836), this._gl.DEPTH24_STENCIL8 !== 35056 && (this._gl.DEPTH24_STENCIL8 = 35056), this._caps.timerQuery && (this._webGLVersion === 1 && (this._gl.getQuery = this._caps.timerQuery.getQueryEXT.bind(this._caps.timerQuery)), this._caps.canUseTimestampForTimerQuery = (this._gl.getQuery(this._caps.timerQuery.TIMESTAMP_EXT, this._caps.timerQuery.QUERY_COUNTER_BITS_EXT) ?? 0) > 0), this._caps.maxAnisotropy = this._caps.textureAnisotropicFilterExtension ? this._gl.getParameter(this._caps.textureAnisotropicFilterExtension.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : 0, this._caps.textureFloatLinearFiltering = !!(this._caps.textureFloat && this._gl.getExtension(\"OES_texture_float_linear\")), this._caps.textureFloatRender = !!(this._caps.textureFloat && this._canRenderToFloatFramebuffer()), this._caps.textureHalfFloatLinearFiltering = !!(this._webGLVersion > 1 || this._caps.textureHalfFloat && this._gl.getExtension(\"OES_texture_half_float_linear\")), this._caps.astc && (this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR), this._caps.bptc && (this._gl.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT = this._caps.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT), this._caps.s3tc_srgb && (this._gl.COMPRESSED_SRGB_S3TC_DXT1_EXT = this._caps.s3tc_srgb.COMPRESSED_SRGB_S3TC_DXT1_EXT, this._gl.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = this._caps.s3tc_srgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, this._gl.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = this._caps.s3tc_srgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT), this._caps.etc2 && (this._gl.COMPRESSED_SRGB8_ETC2 = this._caps.etc2.COMPRESSED_SRGB8_ETC2, this._gl.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = this._caps.etc2.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC), this._webGLVersion > 1 && this._gl.HALF_FLOAT_OES !== 5131 && (this._gl.HALF_FLOAT_OES = 5131), this._caps.textureHalfFloatRender = this._caps.textureHalfFloat && this._canRenderToHalfFloatFramebuffer(), this._webGLVersion > 1)\n this._caps.drawBuffersExtension = !0, this._caps.maxMSAASamples = this._maxMSAASamplesOverride !== null ? this._maxMSAASamplesOverride : this._gl.getParameter(this._gl.MAX_SAMPLES);\n else {\n const t = this._gl.getExtension(\"WEBGL_draw_buffers\");\n if (t !== null) {\n this._caps.drawBuffersExtension = !0, this._gl.drawBuffers = t.drawBuffersWEBGL.bind(t), this._gl.DRAW_FRAMEBUFFER = this._gl.FRAMEBUFFER;\n for (let i = 0; i < 16; i++)\n this._gl[\"COLOR_ATTACHMENT\" + i + \"_WEBGL\"] = t[\"COLOR_ATTACHMENT\" + i + \"_WEBGL\"];\n }\n }\n if (this._webGLVersion > 1)\n this._caps.depthTextureExtension = !0;\n else {\n const t = this._gl.getExtension(\"WEBGL_depth_texture\");\n t != null && (this._caps.depthTextureExtension = !0, this._gl.UNSIGNED_INT_24_8 = t.UNSIGNED_INT_24_8_WEBGL);\n }\n if (this.disableVertexArrayObjects)\n this._caps.vertexArrayObject = !1;\n else if (this._webGLVersion > 1)\n this._caps.vertexArrayObject = !0;\n else {\n const t = this._gl.getExtension(\"OES_vertex_array_object\");\n t != null && (this._caps.vertexArrayObject = !0, this._gl.createVertexArray = t.createVertexArrayOES.bind(t), this._gl.bindVertexArray = t.bindVertexArrayOES.bind(t), this._gl.deleteVertexArray = t.deleteVertexArrayOES.bind(t));\n }\n if (this._webGLVersion > 1)\n this._caps.instancedArrays = !0;\n else {\n const t = this._gl.getExtension(\"ANGLE_instanced_arrays\");\n t != null ? (this._caps.instancedArrays = !0, this._gl.drawArraysInstanced = t.drawArraysInstancedANGLE.bind(t), this._gl.drawElementsInstanced = t.drawElementsInstancedANGLE.bind(t), this._gl.vertexAttribDivisor = t.vertexAttribDivisorANGLE.bind(t)) : this._caps.instancedArrays = !1;\n }\n if (this._gl.getShaderPrecisionFormat) {\n const t = this._gl.getShaderPrecisionFormat(this._gl.VERTEX_SHADER, this._gl.HIGH_FLOAT), i = this._gl.getShaderPrecisionFormat(this._gl.FRAGMENT_SHADER, this._gl.HIGH_FLOAT);\n t && i && (this._caps.highPrecisionShaderSupported = t.precision !== 0 && i.precision !== 0);\n }\n if (this._webGLVersion > 1)\n this._caps.blendMinMax = !0;\n else {\n const t = this._gl.getExtension(\"EXT_blend_minmax\");\n t != null && (this._caps.blendMinMax = !0, this._gl.MAX = t.MAX_EXT, this._gl.MIN = t.MIN_EXT);\n }\n if (!this._caps.supportSRGBBuffers) {\n if (this._webGLVersion > 1)\n this._caps.supportSRGBBuffers = !0, this._glSRGBExtensionValues = {\n SRGB: WebGL2RenderingContext.SRGB,\n SRGB8: WebGL2RenderingContext.SRGB8,\n SRGB8_ALPHA8: WebGL2RenderingContext.SRGB8_ALPHA8\n };\n else {\n const t = this._gl.getExtension(\"EXT_sRGB\");\n t != null && (this._caps.supportSRGBBuffers = !0, this._glSRGBExtensionValues = {\n SRGB: t.SRGB_EXT,\n SRGB8: t.SRGB_ALPHA_EXT,\n SRGB8_ALPHA8: t.SRGB_ALPHA_EXT\n });\n }\n this._caps.supportSRGBBuffers = this._caps.supportSRGBBuffers && !!(this._creationOptions && this._creationOptions.forceSRGBBufferSupportState);\n }\n this._depthCullingState.depthTest = !0, this._depthCullingState.depthFunc = this._gl.LEQUAL, this._depthCullingState.depthMask = !0, this._maxSimultaneousTextures = this._caps.maxCombinedTexturesImageUnits;\n for (let t = 0; t < this._maxSimultaneousTextures; t++)\n this._nextFreeTextureSlots.push(t);\n this._glRenderer === \"Mali-G72\" && (this._caps.disableMorphTargetTexture = !0);\n }\n _initFeatures() {\n this._features = {\n forceBitmapOverHTMLImageElement: typeof HTMLImageElement > \"u\",\n supportRenderAndCopyToLodForFloatTextures: this._webGLVersion !== 1,\n supportDepthStencilTexture: this._webGLVersion !== 1,\n supportShadowSamplers: this._webGLVersion !== 1,\n uniformBufferHardCheckMatrix: !1,\n allowTexturePrefiltering: this._webGLVersion !== 1,\n trackUbosInFrame: !1,\n checkUbosContentBeforeUpload: !1,\n supportCSM: this._webGLVersion !== 1,\n basisNeedsPOT: this._webGLVersion === 1,\n support3DTextures: this._webGLVersion !== 1,\n needTypeSuffixInShaderConstants: this._webGLVersion !== 1,\n supportMSAA: this._webGLVersion !== 1,\n supportSSAO2: this._webGLVersion !== 1,\n supportExtendedTextureFormats: this._webGLVersion !== 1,\n supportSwitchCaseInShader: this._webGLVersion !== 1,\n supportSyncTextureRead: !0,\n needsInvertingBitmap: !0,\n useUBOBindingCache: !0,\n needShaderCodeInlining: !1,\n needToAlwaysBindUniformBuffers: !1,\n supportRenderPasses: !1,\n supportSpriteInstancing: !0,\n forceVertexBufferStrideAndOffsetMultiple4Bytes: !1,\n _checkNonFloatVertexBuffersDontRecreatePipelineContext: !1,\n _collectUbosUpdatedInFrame: !1\n };\n }\n /**\n * Gets version of the current webGL context\n * Keep it for back compat - use version instead\n */\n get webGLVersion() {\n return this._webGLVersion;\n }\n /**\n * Gets a string identifying the name of the class\n * @returns \"Engine\" string\n */\n getClassName() {\n return \"ThinEngine\";\n }\n /** @internal */\n _prepareWorkingCanvas() {\n if (this._workingCanvas)\n return;\n this._workingCanvas = this.createCanvas(1, 1);\n const e = this._workingCanvas.getContext(\"2d\");\n e && (this._workingContext = e);\n }\n /**\n * Gets an object containing information about the current engine context\n * @returns an object containing the vendor, the renderer and the version of the current engine context\n */\n getInfo() {\n return this.getGlInfo();\n }\n /**\n * Gets an object containing information about the current webGL context\n * @returns an object containing the vendor, the renderer and the version of the current webGL context\n */\n getGlInfo() {\n return {\n vendor: this._glVendor,\n renderer: this._glRenderer,\n version: this._glVersion\n };\n }\n /**Gets driver info if available */\n extractDriverInfo() {\n const e = this.getGlInfo();\n return e && e.renderer ? e.renderer : \"\";\n }\n /**\n * Gets the current render width\n * @param useScreen defines if screen size must be used (or the current render target if any)\n * @returns a number defining the current render width\n */\n getRenderWidth(e = !1) {\n return !e && this._currentRenderTarget ? this._currentRenderTarget.width : this._framebufferDimensionsObject ? this._framebufferDimensionsObject.framebufferWidth : this._gl.drawingBufferWidth;\n }\n /**\n * Gets the current render height\n * @param useScreen defines if screen size must be used (or the current render target if any)\n * @returns a number defining the current render height\n */\n getRenderHeight(e = !1) {\n return !e && this._currentRenderTarget ? this._currentRenderTarget.height : this._framebufferDimensionsObject ? this._framebufferDimensionsObject.framebufferHeight : this._gl.drawingBufferHeight;\n }\n /**\n * Clear the current render buffer or the current render target (if any is set up)\n * @param color defines the color to use\n * @param backBuffer defines if the back buffer must be cleared\n * @param depth defines if the depth buffer must be cleared\n * @param stencil defines if the stencil buffer must be cleared\n */\n clear(e, t, i, s = !1) {\n var o, l;\n const r = this.stencilStateComposer.useStencilGlobalOnly;\n this.stencilStateComposer.useStencilGlobalOnly = !0, this.applyStates(), this.stencilStateComposer.useStencilGlobalOnly = r;\n let n = 0;\n if (t && e) {\n let h = !0;\n if (this._currentRenderTarget) {\n const c = (o = this._currentRenderTarget.texture) == null ? void 0 : o.format;\n if (c === 8 || c === 9 || c === 10 || c === 11) {\n const u = (l = this._currentRenderTarget.texture) == null ? void 0 : l.type;\n u === 7 || u === 5 ? (Xe._TempClearColorUint32[0] = e.r * 255, Xe._TempClearColorUint32[1] = e.g * 255, Xe._TempClearColorUint32[2] = e.b * 255, Xe._TempClearColorUint32[3] = e.a * 255, this._gl.clearBufferuiv(this._gl.COLOR, 0, Xe._TempClearColorUint32), h = !1) : (Xe._TempClearColorInt32[0] = e.r * 255, Xe._TempClearColorInt32[1] = e.g * 255, Xe._TempClearColorInt32[2] = e.b * 255, Xe._TempClearColorInt32[3] = e.a * 255, this._gl.clearBufferiv(this._gl.COLOR, 0, Xe._TempClearColorInt32), h = !1);\n }\n }\n h && (this._gl.clearColor(e.r, e.g, e.b, e.a !== void 0 ? e.a : 1), n |= this._gl.COLOR_BUFFER_BIT);\n }\n i && (this.useReverseDepthBuffer ? (this._depthCullingState.depthFunc = this._gl.GEQUAL, this._gl.clearDepth(0)) : this._gl.clearDepth(1), n |= this._gl.DEPTH_BUFFER_BIT), s && (this._gl.clearStencil(0), n |= this._gl.STENCIL_BUFFER_BIT), this._gl.clear(n);\n }\n /**\n * @internal\n */\n _viewport(e, t, i, s) {\n (e !== this._viewportCached.x || t !== this._viewportCached.y || i !== this._viewportCached.z || s !== this._viewportCached.w) && (this._viewportCached.x = e, this._viewportCached.y = t, this._viewportCached.z = i, this._viewportCached.w = s, this._gl.viewport(e, t, i, s));\n }\n /**\n * End the current frame\n */\n endFrame() {\n super.endFrame(), this._badOS && this.flushFramebuffer();\n }\n /**\n * Gets the performance monitor attached to this engine\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#engineinstrumentation\n */\n get performanceMonitor() {\n throw new Error(\"Not Supported by ThinEngine\");\n }\n /**\n * Binds the frame buffer to the specified texture.\n * @param rtWrapper The render target wrapper to render to\n * @param faceIndex The face of the texture to render to in case of cube texture and if the render target wrapper is not a multi render target\n * @param requiredWidth The width of the target to render to\n * @param requiredHeight The height of the target to render to\n * @param forceFullscreenViewport Forces the viewport to be the entire texture/screen if true\n * @param lodLevel Defines the lod level to bind to the frame buffer\n * @param layer Defines the 2d array index to bind to the frame buffer if the render target wrapper is not a multi render target\n */\n bindFramebuffer(e, t = 0, i, s, r, n = 0, o = 0) {\n var u, d, f, p, _, m;\n const l = e;\n this._currentRenderTarget && this.unBindFramebuffer(this._currentRenderTarget), this._currentRenderTarget = e, this._bindUnboundFramebuffer(l._MSAAFramebuffer ? l._MSAAFramebuffer : l._framebuffer);\n const h = this._gl;\n e.isMulti || (e.is2DArray || e.is3D ? h.framebufferTextureLayer(h.FRAMEBUFFER, h.COLOR_ATTACHMENT0, (u = e.texture._hardwareTexture) == null ? void 0 : u.underlyingResource, n, o) : e.isCube ? h.framebufferTexture2D(h.FRAMEBUFFER, h.COLOR_ATTACHMENT0, h.TEXTURE_CUBE_MAP_POSITIVE_X + t, (d = e.texture._hardwareTexture) == null ? void 0 : d.underlyingResource, n) : l._currentLOD !== n && (h.framebufferTexture2D(h.FRAMEBUFFER, h.COLOR_ATTACHMENT0, h.TEXTURE_2D, (f = e.texture._hardwareTexture) == null ? void 0 : f.underlyingResource, n), l._currentLOD = n));\n const c = e._depthStencilTexture;\n if (c) {\n e.is3D && (e.texture.width !== c.width || e.texture.height !== c.height || e.texture.depth !== c.depth) && L.Warn(\"Depth/Stencil attachment for 3D target must have same dimensions as color attachment\");\n const x = e._depthStencilTextureWithStencil ? h.DEPTH_STENCIL_ATTACHMENT : h.DEPTH_ATTACHMENT;\n e.is2DArray || e.is3D ? h.framebufferTextureLayer(h.FRAMEBUFFER, x, (p = c._hardwareTexture) == null ? void 0 : p.underlyingResource, n, o) : e.isCube ? h.framebufferTexture2D(h.FRAMEBUFFER, x, h.TEXTURE_CUBE_MAP_POSITIVE_X + t, (_ = c._hardwareTexture) == null ? void 0 : _.underlyingResource, n) : h.framebufferTexture2D(h.FRAMEBUFFER, x, h.TEXTURE_2D, (m = c._hardwareTexture) == null ? void 0 : m.underlyingResource, n);\n }\n this._cachedViewport && !r ? this.setViewport(this._cachedViewport, i, s) : (i || (i = e.width, n && (i = i / Math.pow(2, n))), s || (s = e.height, n && (s = s / Math.pow(2, n))), this._viewport(0, 0, i, s)), this.wipeCaches();\n }\n /**\n * Set various states to the webGL context\n * @param culling defines culling state: true to enable culling, false to disable it\n * @param zOffset defines the value to apply to zOffset (0 by default)\n * @param force defines if states must be applied even if cache is up to date\n * @param reverseSide defines if culling must be reversed (CCW if false, CW if true)\n * @param cullBackFaces true to cull back faces, false to cull front faces (if culling is enabled)\n * @param stencil stencil states to set\n * @param zOffsetUnits defines the value to apply to zOffsetUnits (0 by default)\n */\n setState(e, t = 0, i, s = !1, r, n, o = 0) {\n (this._depthCullingState.cull !== e || i) && (this._depthCullingState.cull = e);\n const l = this.cullBackFaces ?? r ?? !0 ? this._gl.BACK : this._gl.FRONT;\n (this._depthCullingState.cullFace !== l || i) && (this._depthCullingState.cullFace = l), this.setZOffset(t), this.setZOffsetUnits(o);\n const h = s ? this._gl.CW : this._gl.CCW;\n (this._depthCullingState.frontFace !== h || i) && (this._depthCullingState.frontFace = h), this._stencilStateComposer.stencilMaterial = n;\n }\n /**\n * @internal\n */\n _bindUnboundFramebuffer(e) {\n this._currentFramebuffer !== e && (this._gl.bindFramebuffer(this._gl.FRAMEBUFFER, e), this._currentFramebuffer = e);\n }\n /** @internal */\n _currentFrameBufferIsDefaultFrameBuffer() {\n return this._currentFramebuffer === null;\n }\n /**\n * Generates the mipmaps for a texture\n * @param texture texture to generate the mipmaps for\n */\n generateMipmaps(e) {\n const t = this._getTextureTarget(e);\n this._bindTextureDirectly(t, e, !0), this._gl.generateMipmap(t), this._bindTextureDirectly(t, null);\n }\n /**\n * Unbind the current render target texture from the webGL context\n * @param texture defines the render target wrapper to unbind\n * @param disableGenerateMipMaps defines a boolean indicating that mipmaps must not be generated\n * @param onBeforeUnbind defines a function which will be called before the effective unbind\n */\n unBindFramebuffer(e, t = !1, i) {\n var n;\n const s = e;\n this._currentRenderTarget = null;\n const r = this._gl;\n if (s._MSAAFramebuffer) {\n if (e.isMulti) {\n this.unBindMultiColorAttachmentFramebuffer(e, t, i);\n return;\n }\n r.bindFramebuffer(r.READ_FRAMEBUFFER, s._MSAAFramebuffer), r.bindFramebuffer(r.DRAW_FRAMEBUFFER, s._framebuffer), r.blitFramebuffer(0, 0, e.width, e.height, 0, 0, e.width, e.height, r.COLOR_BUFFER_BIT, r.NEAREST);\n }\n (n = e.texture) != null && n.generateMipMaps && !t && !e.isCube && this.generateMipmaps(e.texture), i && (s._MSAAFramebuffer && this._bindUnboundFramebuffer(s._framebuffer), i()), this._bindUnboundFramebuffer(null);\n }\n /**\n * Force a webGL flush (ie. a flush of all waiting webGL commands)\n */\n flushFramebuffer() {\n this._gl.flush();\n }\n /**\n * Unbind the current render target and bind the default framebuffer\n */\n restoreDefaultFramebuffer() {\n this._currentRenderTarget ? this.unBindFramebuffer(this._currentRenderTarget) : this._bindUnboundFramebuffer(null), this._cachedViewport && this.setViewport(this._cachedViewport), this.wipeCaches();\n }\n // VBOs\n /** @internal */\n _resetVertexBufferBinding() {\n this.bindArrayBuffer(null), this._cachedVertexBuffers = null;\n }\n /**\n * Creates a vertex buffer\n * @param data the data or size for the vertex buffer\n * @param _updatable whether the buffer should be created as updatable\n * @param _label defines the label of the buffer (for debug purpose)\n * @returns the new WebGL static buffer\n */\n createVertexBuffer(e, t, i) {\n return this._createVertexBuffer(e, this._gl.STATIC_DRAW);\n }\n _createVertexBuffer(e, t) {\n const i = this._gl.createBuffer();\n if (!i)\n throw new Error(\"Unable to create vertex buffer\");\n const s = new _u(i);\n return this.bindArrayBuffer(s), typeof e != \"number\" ? e instanceof Array ? (this._gl.bufferData(this._gl.ARRAY_BUFFER, new Float32Array(e), t), s.capacity = e.length * 4) : (this._gl.bufferData(this._gl.ARRAY_BUFFER, e, t), s.capacity = e.byteLength) : (this._gl.bufferData(this._gl.ARRAY_BUFFER, new Uint8Array(e), t), s.capacity = e), this._resetVertexBufferBinding(), s.references = 1, s;\n }\n /**\n * Creates a dynamic vertex buffer\n * @param data the data for the dynamic vertex buffer\n * @param _label defines the label of the buffer (for debug purpose)\n * @returns the new WebGL dynamic buffer\n */\n createDynamicVertexBuffer(e, t) {\n return this._createVertexBuffer(e, this._gl.DYNAMIC_DRAW);\n }\n _resetIndexBufferBinding() {\n this.bindIndexBuffer(null), this._cachedIndexBuffer = null;\n }\n /**\n * Creates a new index buffer\n * @param indices defines the content of the index buffer\n * @param updatable defines if the index buffer must be updatable\n * @param _label defines the label of the buffer (for debug purpose)\n * @returns a new webGL buffer\n */\n createIndexBuffer(e, t, i) {\n const s = this._gl.createBuffer(), r = new _u(s);\n if (!s)\n throw new Error(\"Unable to create index buffer\");\n this.bindIndexBuffer(r);\n const n = this._normalizeIndexData(e);\n return this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER, n, t ? this._gl.DYNAMIC_DRAW : this._gl.STATIC_DRAW), this._resetIndexBufferBinding(), r.references = 1, r.is32Bits = n.BYTES_PER_ELEMENT === 4, r;\n }\n _normalizeIndexData(e) {\n if (e.BYTES_PER_ELEMENT === 2)\n return e;\n if (this._caps.uintIndices) {\n if (e instanceof Uint32Array)\n return e;\n for (let i = 0; i < e.length; i++)\n if (e[i] >= 65535)\n return new Uint32Array(e);\n return new Uint16Array(e);\n }\n return new Uint16Array(e);\n }\n /**\n * Bind a webGL buffer to the webGL context\n * @param buffer defines the buffer to bind\n */\n bindArrayBuffer(e) {\n this._vaoRecordInProgress || this._unbindVertexArrayObject(), this._bindBuffer(e, this._gl.ARRAY_BUFFER);\n }\n /**\n * Bind a specific block at a given index in a specific shader program\n * @param pipelineContext defines the pipeline context to use\n * @param blockName defines the block name\n * @param index defines the index where to bind the block\n */\n bindUniformBlock(e, t, i) {\n const s = e.program, r = this._gl.getUniformBlockIndex(s, t);\n this._gl.uniformBlockBinding(s, r, i);\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n bindIndexBuffer(e) {\n this._vaoRecordInProgress || this._unbindVertexArrayObject(), this._bindBuffer(e, this._gl.ELEMENT_ARRAY_BUFFER);\n }\n _bindBuffer(e, t) {\n (this._vaoRecordInProgress || this._currentBoundBuffer[t] !== e) && (this._gl.bindBuffer(t, e ? e.underlyingResource : null), this._currentBoundBuffer[t] = e);\n }\n /**\n * update the bound buffer with the given data\n * @param data defines the data to update\n */\n updateArrayBuffer(e) {\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, e);\n }\n _vertexAttribPointer(e, t, i, s, r, n, o) {\n const l = this._currentBufferPointers[t];\n if (!l)\n return;\n let h = !1;\n l.active ? (l.buffer !== e && (l.buffer = e, h = !0), l.size !== i && (l.size = i, h = !0), l.type !== s && (l.type = s, h = !0), l.normalized !== r && (l.normalized = r, h = !0), l.stride !== n && (l.stride = n, h = !0), l.offset !== o && (l.offset = o, h = !0)) : (h = !0, l.active = !0, l.index = t, l.size = i, l.type = s, l.normalized = r, l.stride = n, l.offset = o, l.buffer = e), (h || this._vaoRecordInProgress) && (this.bindArrayBuffer(e), s === this._gl.UNSIGNED_INT || s === this._gl.INT ? this._gl.vertexAttribIPointer(t, i, s, n, o) : this._gl.vertexAttribPointer(t, i, s, r, n, o));\n }\n /**\n * @internal\n */\n _bindIndexBufferWithCache(e) {\n e != null && this._cachedIndexBuffer !== e && (this._cachedIndexBuffer = e, this.bindIndexBuffer(e), this._uintIndicesCurrentlySet = e.is32Bits);\n }\n _bindVertexBuffersAttributes(e, t, i) {\n const s = t.getAttributesNames();\n this._vaoRecordInProgress || this._unbindVertexArrayObject(), this.unbindAllAttributes();\n for (let r = 0; r < s.length; r++) {\n const n = t.getAttributeLocation(r);\n if (n >= 0) {\n const o = s[r];\n let l = null;\n if (i && (l = i[o]), l || (l = e[o]), !l)\n continue;\n this._gl.enableVertexAttribArray(n), this._vaoRecordInProgress || (this._vertexAttribArraysEnabled[n] = !0);\n const h = l.getBuffer();\n h && (this._vertexAttribPointer(h, n, l.getSize(), l.type, l.normalized, l.byteStride, l.byteOffset), l.getIsInstanced() && (this._gl.vertexAttribDivisor(n, l.getInstanceDivisor()), this._vaoRecordInProgress || (this._currentInstanceLocations.push(n), this._currentInstanceBuffers.push(h))));\n }\n }\n }\n /**\n * Records a vertex array object\n * @see https://doc.babylonjs.com/setup/support/webGL2#vertex-array-objects\n * @param vertexBuffers defines the list of vertex buffers to store\n * @param indexBuffer defines the index buffer to store\n * @param effect defines the effect to store\n * @param overrideVertexBuffers defines optional list of avertex buffers that overrides the entries in vertexBuffers\n * @returns the new vertex array object\n */\n recordVertexArrayObject(e, t, i, s) {\n const r = this._gl.createVertexArray();\n if (!r)\n throw new Error(\"Unable to create VAO\");\n return this._vaoRecordInProgress = !0, this._gl.bindVertexArray(r), this._mustWipeVertexAttributes = !0, this._bindVertexBuffersAttributes(e, i, s), this.bindIndexBuffer(t), this._vaoRecordInProgress = !1, this._gl.bindVertexArray(null), r;\n }\n /**\n * Bind a specific vertex array object\n * @see https://doc.babylonjs.com/setup/support/webGL2#vertex-array-objects\n * @param vertexArrayObject defines the vertex array object to bind\n * @param indexBuffer defines the index buffer to bind\n */\n bindVertexArrayObject(e, t) {\n this._cachedVertexArrayObject !== e && (this._cachedVertexArrayObject = e, this._gl.bindVertexArray(e), this._cachedVertexBuffers = null, this._cachedIndexBuffer = null, this._uintIndicesCurrentlySet = t != null && t.is32Bits, this._mustWipeVertexAttributes = !0);\n }\n /**\n * Bind webGl buffers directly to the webGL context\n * @param vertexBuffer defines the vertex buffer to bind\n * @param indexBuffer defines the index buffer to bind\n * @param vertexDeclaration defines the vertex declaration to use with the vertex buffer\n * @param vertexStrideSize defines the vertex stride of the vertex buffer\n * @param effect defines the effect associated with the vertex buffer\n */\n bindBuffersDirectly(e, t, i, s, r) {\n if (this._cachedVertexBuffers !== e || this._cachedEffectForVertexBuffers !== r) {\n this._cachedVertexBuffers = e, this._cachedEffectForVertexBuffers = r;\n const n = r.getAttributesCount();\n this._unbindVertexArrayObject(), this.unbindAllAttributes();\n let o = 0;\n for (let l = 0; l < n; l++)\n if (l < i.length) {\n const h = r.getAttributeLocation(l);\n h >= 0 && (this._gl.enableVertexAttribArray(h), this._vertexAttribArraysEnabled[h] = !0, this._vertexAttribPointer(e, h, i[l], this._gl.FLOAT, !1, s, o)), o += i[l] * 4;\n }\n }\n this._bindIndexBufferWithCache(t);\n }\n _unbindVertexArrayObject() {\n this._cachedVertexArrayObject && (this._cachedVertexArrayObject = null, this._gl.bindVertexArray(null));\n }\n /**\n * Bind a list of vertex buffers to the webGL context\n * @param vertexBuffers defines the list of vertex buffers to bind\n * @param indexBuffer defines the index buffer to bind\n * @param effect defines the effect associated with the vertex buffers\n * @param overrideVertexBuffers defines optional list of avertex buffers that overrides the entries in vertexBuffers\n */\n bindBuffers(e, t, i, s) {\n (this._cachedVertexBuffers !== e || this._cachedEffectForVertexBuffers !== i) && (this._cachedVertexBuffers = e, this._cachedEffectForVertexBuffers = i, this._bindVertexBuffersAttributes(e, i, s)), this._bindIndexBufferWithCache(t);\n }\n /**\n * Unbind all instance attributes\n */\n unbindInstanceAttributes() {\n let e;\n for (let t = 0, i = this._currentInstanceLocations.length; t < i; t++) {\n const s = this._currentInstanceBuffers[t];\n e != s && s.references && (e = s, this.bindArrayBuffer(s));\n const r = this._currentInstanceLocations[t];\n this._gl.vertexAttribDivisor(r, 0);\n }\n this._currentInstanceBuffers.length = 0, this._currentInstanceLocations.length = 0;\n }\n /**\n * Release and free the memory of a vertex array object\n * @param vao defines the vertex array object to delete\n */\n releaseVertexArrayObject(e) {\n this._gl.deleteVertexArray(e);\n }\n /**\n * @internal\n */\n _releaseBuffer(e) {\n return e.references--, e.references === 0 ? (this._deleteBuffer(e), !0) : !1;\n }\n _deleteBuffer(e) {\n this._gl.deleteBuffer(e.underlyingResource);\n }\n /**\n * Update the content of a webGL buffer used with instantiation and bind it to the webGL context\n * @param instancesBuffer defines the webGL buffer to update and bind\n * @param data defines the data to store in the buffer\n * @param offsetLocations defines the offsets or attributes information used to determine where data must be stored in the buffer\n */\n updateAndBindInstancesBuffer(e, t, i) {\n if (this.bindArrayBuffer(e), t && this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, t), i[0].index !== void 0)\n this.bindInstancesBuffer(e, i, !0);\n else\n for (let s = 0; s < 4; s++) {\n const r = i[s];\n this._vertexAttribArraysEnabled[r] || (this._gl.enableVertexAttribArray(r), this._vertexAttribArraysEnabled[r] = !0), this._vertexAttribPointer(e, r, 4, this._gl.FLOAT, !1, 64, s * 16), this._gl.vertexAttribDivisor(r, 1), this._currentInstanceLocations.push(r), this._currentInstanceBuffers.push(e);\n }\n }\n /**\n * Bind the content of a webGL buffer used with instantiation\n * @param instancesBuffer defines the webGL buffer to bind\n * @param attributesInfo defines the offsets or attributes information used to determine where data must be stored in the buffer\n * @param computeStride defines Whether to compute the strides from the info or use the default 0\n */\n bindInstancesBuffer(e, t, i = !0) {\n this.bindArrayBuffer(e);\n let s = 0;\n if (i)\n for (let r = 0; r < t.length; r++) {\n const n = t[r];\n s += n.attributeSize * 4;\n }\n for (let r = 0; r < t.length; r++) {\n const n = t[r];\n n.index === void 0 && (n.index = this._currentEffect.getAttributeLocationByName(n.attributeName)), !(n.index < 0) && (this._vertexAttribArraysEnabled[n.index] || (this._gl.enableVertexAttribArray(n.index), this._vertexAttribArraysEnabled[n.index] = !0), this._vertexAttribPointer(e, n.index, n.attributeSize, n.attributeType || this._gl.FLOAT, n.normalized || !1, s, n.offset), this._gl.vertexAttribDivisor(n.index, n.divisor === void 0 ? 1 : n.divisor), this._currentInstanceLocations.push(n.index), this._currentInstanceBuffers.push(e));\n }\n }\n /**\n * Disable the instance attribute corresponding to the name in parameter\n * @param name defines the name of the attribute to disable\n */\n disableInstanceAttributeByName(e) {\n if (!this._currentEffect)\n return;\n const t = this._currentEffect.getAttributeLocationByName(e);\n this.disableInstanceAttribute(t);\n }\n /**\n * Disable the instance attribute corresponding to the location in parameter\n * @param attributeLocation defines the attribute location of the attribute to disable\n */\n disableInstanceAttribute(e) {\n let t = !1, i;\n for (; (i = this._currentInstanceLocations.indexOf(e)) !== -1; )\n this._currentInstanceLocations.splice(i, 1), this._currentInstanceBuffers.splice(i, 1), t = !0, i = this._currentInstanceLocations.indexOf(e);\n t && (this._gl.vertexAttribDivisor(e, 0), this.disableAttributeByIndex(e));\n }\n /**\n * Disable the attribute corresponding to the location in parameter\n * @param attributeLocation defines the attribute location of the attribute to disable\n */\n disableAttributeByIndex(e) {\n this._gl.disableVertexAttribArray(e), this._vertexAttribArraysEnabled[e] = !1, this._currentBufferPointers[e].active = !1;\n }\n /**\n * Send a draw order\n * @param useTriangles defines if triangles must be used to draw (else wireframe will be used)\n * @param indexStart defines the starting index\n * @param indexCount defines the number of index to draw\n * @param instancesCount defines the number of instances to draw (if instantiation is enabled)\n */\n draw(e, t, i, s) {\n this.drawElementsType(e ? 0 : 1, t, i, s);\n }\n /**\n * Draw a list of points\n * @param verticesStart defines the index of first vertex to draw\n * @param verticesCount defines the count of vertices to draw\n * @param instancesCount defines the number of instances to draw (if instantiation is enabled)\n */\n drawPointClouds(e, t, i) {\n this.drawArraysType(2, e, t, i);\n }\n /**\n * Draw a list of unindexed primitives\n * @param useTriangles defines if triangles must be used to draw (else wireframe will be used)\n * @param verticesStart defines the index of first vertex to draw\n * @param verticesCount defines the count of vertices to draw\n * @param instancesCount defines the number of instances to draw (if instantiation is enabled)\n */\n drawUnIndexed(e, t, i, s) {\n this.drawArraysType(e ? 0 : 1, t, i, s);\n }\n /**\n * Draw a list of indexed primitives\n * @param fillMode defines the primitive to use\n * @param indexStart defines the starting index\n * @param indexCount defines the number of index to draw\n * @param instancesCount defines the number of instances to draw (if instantiation is enabled)\n */\n drawElementsType(e, t, i, s) {\n this.applyStates(), this._reportDrawCall();\n const r = this._drawMode(e), n = this._uintIndicesCurrentlySet ? this._gl.UNSIGNED_INT : this._gl.UNSIGNED_SHORT, o = this._uintIndicesCurrentlySet ? 4 : 2;\n s ? this._gl.drawElementsInstanced(r, i, n, t * o, s) : this._gl.drawElements(r, i, n, t * o);\n }\n /**\n * Draw a list of unindexed primitives\n * @param fillMode defines the primitive to use\n * @param verticesStart defines the index of first vertex to draw\n * @param verticesCount defines the count of vertices to draw\n * @param instancesCount defines the number of instances to draw (if instantiation is enabled)\n */\n drawArraysType(e, t, i, s) {\n this.applyStates(), this._reportDrawCall();\n const r = this._drawMode(e);\n s ? this._gl.drawArraysInstanced(r, t, i, s) : this._gl.drawArrays(r, t, i);\n }\n _drawMode(e) {\n switch (e) {\n case 0:\n return this._gl.TRIANGLES;\n case 2:\n return this._gl.POINTS;\n case 1:\n return this._gl.LINES;\n case 3:\n return this._gl.POINTS;\n case 4:\n return this._gl.LINES;\n case 5:\n return this._gl.LINE_LOOP;\n case 6:\n return this._gl.LINE_STRIP;\n case 7:\n return this._gl.TRIANGLE_STRIP;\n case 8:\n return this._gl.TRIANGLE_FAN;\n default:\n return this._gl.TRIANGLES;\n }\n }\n // Shaders\n /**\n * @internal\n */\n _releaseEffect(e) {\n this._compiledEffects[e._key] && delete this._compiledEffects[e._key];\n const t = e.getPipelineContext();\n t && this._deletePipelineContext(t);\n }\n /**\n * @internal\n */\n _deletePipelineContext(e) {\n const t = e;\n t && t.program && (t.program.__SPECTOR_rebuildProgram = null, dx(t), this._gl.deleteProgram(t.program));\n }\n /**\n * @internal\n */\n _getGlobalDefines(e) {\n return oC(e, this.isNDCHalfZRange, this.useReverseDepthBuffer, this.useExactSrgbConversions);\n }\n /**\n * Create a new effect (used to store vertex/fragment shaders)\n * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)\n * @param attributesNamesOrOptions defines either a list of attribute names or an IEffectCreationOptions object\n * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use\n * @param samplers defines an array of string used to represent textures\n * @param defines defines the string containing the defines to use to compile the shaders\n * @param fallbacks defines the list of potential fallbacks to use if shader compilation fails\n * @param onCompiled defines a function to call when the effect creation is successful\n * @param onError defines a function to call when the effect creation has failed\n * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)\n * @param shaderLanguage the language the shader is written in (default: GLSL)\n * @returns the new Effect\n */\n createEffect(e, t, i, s, r, n, o, l, h, c = 0) {\n const u = typeof e == \"string\" ? e : e.vertexToken || e.vertexSource || e.vertexElement || e.vertex, d = typeof e == \"string\" ? e : e.fragmentToken || e.fragmentSource || e.fragmentElement || e.fragment, f = this._getGlobalDefines();\n let p = r ?? t.defines ?? \"\";\n f && (p += f);\n const _ = u + \"+\" + d + \"@\" + p;\n if (this._compiledEffects[_]) {\n const x = this._compiledEffects[_];\n return o && x.isReady() && o(x), x;\n }\n this._gl && gn(this._gl);\n const m = new si(e, t, i, s, this, r, n, o, l, h, _, t.shaderLanguage ?? c);\n return this._compiledEffects[_] = m, m;\n }\n /**\n * @internal\n */\n _getShaderSource(e) {\n return this._gl.getShaderSource(e);\n }\n /**\n * Directly creates a webGL program\n * @param pipelineContext defines the pipeline context to attach to\n * @param vertexCode defines the vertex shader code to use\n * @param fragmentCode defines the fragment shader code to use\n * @param context defines the webGL context to use (if not set, the current one will be used)\n * @param transformFeedbackVaryings defines the list of transform feedback varyings to use\n * @returns the new webGL program\n */\n createRawShaderProgram(e, t, i, s, r = null) {\n const n = gn(this._gl);\n return n._contextWasLost = this._contextWasLost, n.validateShaderPrograms = this.validateShaderPrograms, lC(e, t, i, s || this._gl, r);\n }\n /**\n * Creates a webGL program\n * @param pipelineContext defines the pipeline context to attach to\n * @param vertexCode defines the vertex shader code to use\n * @param fragmentCode defines the fragment shader code to use\n * @param defines defines the string containing the defines to use to compile the shaders\n * @param context defines the webGL context to use (if not set, the current one will be used)\n * @param transformFeedbackVaryings defines the list of transform feedback varyings to use\n * @returns the new webGL program\n */\n createShaderProgram(e, t, i, s, r, n = null) {\n const o = gn(this._gl);\n return o._contextWasLost = this._contextWasLost, o.validateShaderPrograms = this.validateShaderPrograms, hC(e, t, i, s, r || this._gl, n);\n }\n /**\n * Inline functions in shader code that are marked to be inlined\n * @param code code to inline\n * @returns inlined code\n */\n inlineShaderCode(e) {\n return e;\n }\n /**\n * Creates a new pipeline context\n * @param shaderProcessingContext defines the shader processing context used during the processing if available\n * @returns the new pipeline\n */\n createPipelineContext(e) {\n if (this._gl) {\n const i = gn(this._gl);\n i.parallelShaderCompile = this._caps.parallelShaderCompile;\n }\n const t = xP(this._gl);\n return t.engine = this, t;\n }\n /**\n * Creates a new material context\n * @returns the new context\n */\n createMaterialContext() {\n }\n /**\n * Creates a new draw context\n * @returns the new context\n */\n createDrawContext() {\n }\n _finalizePipelineContext(e) {\n return cC(e, this._gl, this.validateShaderPrograms);\n }\n /**\n * @internal\n */\n _preparePipelineContext(e, t, i, s, r, n, o, l, h, c) {\n const u = gn(this._gl);\n return u._contextWasLost = this._contextWasLost, u.validateShaderPrograms = this.validateShaderPrograms, u._createShaderProgramInjection = this._createShaderProgram.bind(this), u.createRawShaderProgramInjection = this.createRawShaderProgram.bind(this), u.createShaderProgramInjection = this.createShaderProgram.bind(this), u.loadFileInjection = this._loadFile.bind(this), vP(e, t, i, s, r, n, o, l, h, c);\n }\n _createShaderProgram(e, t, i, s, r = null) {\n return hx(e, t, i, s, r);\n }\n /**\n * @internal\n */\n _isRenderingStateCompiled(e) {\n const t = e;\n return this._isDisposed || t._isDisposed ? !1 : this._gl.getProgramParameter(t.program, this._caps.parallelShaderCompile.COMPLETION_STATUS_KHR) ? (this._finalizePipelineContext(t), !0) : !1;\n }\n /**\n * @internal\n */\n _executeWhenRenderingStateIsCompiled(e, t) {\n SP(e, t);\n }\n /**\n * Gets the list of webGL uniform locations associated with a specific program based on a list of uniform names\n * @param pipelineContext defines the pipeline context to use\n * @param uniformsNames defines the list of uniform names\n * @returns an array of webGL uniform locations\n */\n getUniforms(e, t) {\n const i = new Array(), s = e;\n for (let r = 0; r < t.length; r++)\n i.push(this._gl.getUniformLocation(s.program, t[r]));\n return i;\n }\n /**\n * Gets the list of active attributes for a given webGL program\n * @param pipelineContext defines the pipeline context to use\n * @param attributesNames defines the list of attribute names to get\n * @returns an array of indices indicating the offset of each attribute\n */\n getAttributes(e, t) {\n const i = [], s = e;\n for (let r = 0; r < t.length; r++)\n try {\n i.push(this._gl.getAttribLocation(s.program, t[r]));\n } catch {\n i.push(-1);\n }\n return i;\n }\n /**\n * Activates an effect, making it the current one (ie. the one used for rendering)\n * @param effect defines the effect to activate\n */\n enableEffect(e) {\n e = e !== null && uC(e) ? e.effect : e, !(!e || e === this._currentEffect) && (this._stencilStateComposer.stencilMaterial = void 0, e = e, this.bindSamplers(e), this._currentEffect = e, e.onBind && e.onBind(e), e._onBindObservable && e._onBindObservable.notifyObservers(e));\n }\n /**\n * Set the value of an uniform to a number (int)\n * @param uniform defines the webGL uniform location where to store the value\n * @param value defines the int number to store\n * @returns true if the value was set\n */\n setInt(e, t) {\n return e ? (this._gl.uniform1i(e, t), !0) : !1;\n }\n /**\n * Set the value of an uniform to a int2\n * @param uniform defines the webGL uniform location where to store the value\n * @param x defines the 1st component of the value\n * @param y defines the 2nd component of the value\n * @returns true if the value was set\n */\n setInt2(e, t, i) {\n return e ? (this._gl.uniform2i(e, t, i), !0) : !1;\n }\n /**\n * Set the value of an uniform to a int3\n * @param uniform defines the webGL uniform location where to store the value\n * @param x defines the 1st component of the value\n * @param y defines the 2nd component of the value\n * @param z defines the 3rd component of the value\n * @returns true if the value was set\n */\n setInt3(e, t, i, s) {\n return e ? (this._gl.uniform3i(e, t, i, s), !0) : !1;\n }\n /**\n * Set the value of an uniform to a int4\n * @param uniform defines the webGL uniform location where to store the value\n * @param x defines the 1st component of the value\n * @param y defines the 2nd component of the value\n * @param z defines the 3rd component of the value\n * @param w defines the 4th component of the value\n * @returns true if the value was set\n */\n setInt4(e, t, i, s, r) {\n return e ? (this._gl.uniform4i(e, t, i, s, r), !0) : !1;\n }\n /**\n * Set the value of an uniform to an array of int32\n * @param uniform defines the webGL uniform location where to store the value\n * @param array defines the array of int32 to store\n * @returns true if the value was set\n */\n setIntArray(e, t) {\n return e ? (this._gl.uniform1iv(e, t), !0) : !1;\n }\n /**\n * Set the value of an uniform to an array of int32 (stored as vec2)\n * @param uniform defines the webGL uniform location where to store the value\n * @param array defines the array of int32 to store\n * @returns true if the value was set\n */\n setIntArray2(e, t) {\n return !e || t.length % 2 !== 0 ? !1 : (this._gl.uniform2iv(e, t), !0);\n }\n /**\n * Set the value of an uniform to an array of int32 (stored as vec3)\n * @param uniform defines the webGL uniform location where to store the value\n * @param array defines the array of int32 to store\n * @returns true if the value was set\n */\n setIntArray3(e, t) {\n return !e || t.length % 3 !== 0 ? !1 : (this._gl.uniform3iv(e, t), !0);\n }\n /**\n * Set the value of an uniform to an array of int32 (stored as vec4)\n * @param uniform defines the webGL uniform location where to store the value\n * @param array defines the array of int32 to store\n * @returns true if the value was set\n */\n setIntArray4(e, t) {\n return !e || t.length % 4 !== 0 ? !1 : (this._gl.uniform4iv(e, t), !0);\n }\n /**\n * Set the value of an uniform to a number (unsigned int)\n * @param uniform defines the webGL uniform location where to store the value\n * @param value defines the unsigned int number to store\n * @returns true if the value was set\n */\n setUInt(e, t) {\n return e ? (this._gl.uniform1ui(e, t), !0) : !1;\n }\n /**\n * Set the value of an uniform to a unsigned int2\n * @param uniform defines the webGL uniform location where to store the value\n * @param x defines the 1st component of the value\n * @param y defines the 2nd component of the value\n * @returns true if the value was set\n */\n setUInt2(e, t, i) {\n return e ? (this._gl.uniform2ui(e, t, i), !0) : !1;\n }\n /**\n * Set the value of an uniform to a unsigned int3\n * @param uniform defines the webGL uniform location where to store the value\n * @param x defines the 1st component of the value\n * @param y defines the 2nd component of the value\n * @param z defines the 3rd component of the value\n * @returns true if the value was set\n */\n setUInt3(e, t, i, s) {\n return e ? (this._gl.uniform3ui(e, t, i, s), !0) : !1;\n }\n /**\n * Set the value of an uniform to a unsigned int4\n * @param uniform defines the webGL uniform location where to store the value\n * @param x defines the 1st component of the value\n * @param y defines the 2nd component of the value\n * @param z defines the 3rd component of the value\n * @param w defines the 4th component of the value\n * @returns true if the value was set\n */\n setUInt4(e, t, i, s, r) {\n return e ? (this._gl.uniform4ui(e, t, i, s, r), !0) : !1;\n }\n /**\n * Set the value of an uniform to an array of unsigned int32\n * @param uniform defines the webGL uniform location where to store the value\n * @param array defines the array of unsigned int32 to store\n * @returns true if the value was set\n */\n setUIntArray(e, t) {\n return e ? (this._gl.uniform1uiv(e, t), !0) : !1;\n }\n /**\n * Set the value of an uniform to an array of unsigned int32 (stored as vec2)\n * @param uniform defines the webGL uniform location where to store the value\n * @param array defines the array of unsigned int32 to store\n * @returns true if the value was set\n */\n setUIntArray2(e, t) {\n return !e || t.length % 2 !== 0 ? !1 : (this._gl.uniform2uiv(e, t), !0);\n }\n /**\n * Set the value of an uniform to an array of unsigned int32 (stored as vec3)\n * @param uniform defines the webGL uniform location where to store the value\n * @param array defines the array of unsigned int32 to store\n * @returns true if the value was set\n */\n setUIntArray3(e, t) {\n return !e || t.length % 3 !== 0 ? !1 : (this._gl.uniform3uiv(e, t), !0);\n }\n /**\n * Set the value of an uniform to an array of unsigned int32 (stored as vec4)\n * @param uniform defines the webGL uniform location where to store the value\n * @param array defines the array of unsigned int32 to store\n * @returns true if the value was set\n */\n setUIntArray4(e, t) {\n return !e || t.length % 4 !== 0 ? !1 : (this._gl.uniform4uiv(e, t), !0);\n }\n /**\n * Set the value of an uniform to an array of number\n * @param uniform defines the webGL uniform location where to store the value\n * @param array defines the array of number to store\n * @returns true if the value was set\n */\n setArray(e, t) {\n return !e || t.length < 1 ? !1 : (this._gl.uniform1fv(e, t), !0);\n }\n /**\n * Set the value of an uniform to an array of number (stored as vec2)\n * @param uniform defines the webGL uniform location where to store the value\n * @param array defines the array of number to store\n * @returns true if the value was set\n */\n setArray2(e, t) {\n return !e || t.length % 2 !== 0 ? !1 : (this._gl.uniform2fv(e, t), !0);\n }\n /**\n * Set the value of an uniform to an array of number (stored as vec3)\n * @param uniform defines the webGL uniform location where to store the value\n * @param array defines the array of number to store\n * @returns true if the value was set\n */\n setArray3(e, t) {\n return !e || t.length % 3 !== 0 ? !1 : (this._gl.uniform3fv(e, t), !0);\n }\n /**\n * Set the value of an uniform to an array of number (stored as vec4)\n * @param uniform defines the webGL uniform location where to store the value\n * @param array defines the array of number to store\n * @returns true if the value was set\n */\n setArray4(e, t) {\n return !e || t.length % 4 !== 0 ? !1 : (this._gl.uniform4fv(e, t), !0);\n }\n /**\n * Set the value of an uniform to an array of float32 (stored as matrices)\n * @param uniform defines the webGL uniform location where to store the value\n * @param matrices defines the array of float32 to store\n * @returns true if the value was set\n */\n setMatrices(e, t) {\n return e ? (this._gl.uniformMatrix4fv(e, !1, t), !0) : !1;\n }\n /**\n * Set the value of an uniform to a matrix (3x3)\n * @param uniform defines the webGL uniform location where to store the value\n * @param matrix defines the Float32Array representing the 3x3 matrix to store\n * @returns true if the value was set\n */\n setMatrix3x3(e, t) {\n return e ? (this._gl.uniformMatrix3fv(e, !1, t), !0) : !1;\n }\n /**\n * Set the value of an uniform to a matrix (2x2)\n * @param uniform defines the webGL uniform location where to store the value\n * @param matrix defines the Float32Array representing the 2x2 matrix to store\n * @returns true if the value was set\n */\n setMatrix2x2(e, t) {\n return e ? (this._gl.uniformMatrix2fv(e, !1, t), !0) : !1;\n }\n /**\n * Set the value of an uniform to a number (float)\n * @param uniform defines the webGL uniform location where to store the value\n * @param value defines the float number to store\n * @returns true if the value was transferred\n */\n setFloat(e, t) {\n return e ? (this._gl.uniform1f(e, t), !0) : !1;\n }\n /**\n * Set the value of an uniform to a vec2\n * @param uniform defines the webGL uniform location where to store the value\n * @param x defines the 1st component of the value\n * @param y defines the 2nd component of the value\n * @returns true if the value was set\n */\n setFloat2(e, t, i) {\n return e ? (this._gl.uniform2f(e, t, i), !0) : !1;\n }\n /**\n * Set the value of an uniform to a vec3\n * @param uniform defines the webGL uniform location where to store the value\n * @param x defines the 1st component of the value\n * @param y defines the 2nd component of the value\n * @param z defines the 3rd component of the value\n * @returns true if the value was set\n */\n setFloat3(e, t, i, s) {\n return e ? (this._gl.uniform3f(e, t, i, s), !0) : !1;\n }\n /**\n * Set the value of an uniform to a vec4\n * @param uniform defines the webGL uniform location where to store the value\n * @param x defines the 1st component of the value\n * @param y defines the 2nd component of the value\n * @param z defines the 3rd component of the value\n * @param w defines the 4th component of the value\n * @returns true if the value was set\n */\n setFloat4(e, t, i, s, r) {\n return e ? (this._gl.uniform4f(e, t, i, s, r), !0) : !1;\n }\n // States\n /**\n * Apply all cached states (depth, culling, stencil and alpha)\n */\n applyStates() {\n if (this._depthCullingState.apply(this._gl), this._stencilStateComposer.apply(this._gl), this._alphaState.apply(this._gl), this._colorWriteChanged) {\n this._colorWriteChanged = !1;\n const e = this._colorWrite;\n this._gl.colorMask(e, e, e, e);\n }\n }\n // Textures\n /**\n * Force the entire cache to be cleared\n * You should not have to use this function unless your engine needs to share the webGL context with another engine\n * @param bruteForce defines a boolean to force clearing ALL caches (including stencil, detoh and alpha states)\n */\n wipeCaches(e) {\n this.preventCacheWipeBetweenFrames && !e || (this._currentEffect = null, this._viewportCached.x = 0, this._viewportCached.y = 0, this._viewportCached.z = 0, this._viewportCached.w = 0, this._unbindVertexArrayObject(), e && (this._currentProgram = null, this.resetTextureCache(), this._stencilStateComposer.reset(), this._depthCullingState.reset(), this._depthCullingState.depthFunc = this._gl.LEQUAL, this._alphaState.reset(), this._alphaMode = 1, this._alphaEquation = 0, this._colorWrite = !0, this._colorWriteChanged = !0, this._unpackFlipYCached = null, this._gl.pixelStorei(this._gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, this._gl.NONE), this._gl.pixelStorei(this._gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 0), this._mustWipeVertexAttributes = !0, this.unbindAllAttributes()), this._resetVertexBufferBinding(), this._cachedIndexBuffer = null, this._cachedEffectForVertexBuffers = null, this.bindIndexBuffer(null));\n }\n /**\n * @internal\n */\n _getSamplingParameters(e, t) {\n const i = this._gl;\n let s = i.NEAREST, r = i.NEAREST;\n switch (e) {\n case 11:\n s = i.LINEAR, t ? r = i.LINEAR_MIPMAP_NEAREST : r = i.LINEAR;\n break;\n case 3:\n s = i.LINEAR, t ? r = i.LINEAR_MIPMAP_LINEAR : r = i.LINEAR;\n break;\n case 8:\n s = i.NEAREST, t ? r = i.NEAREST_MIPMAP_LINEAR : r = i.NEAREST;\n break;\n case 4:\n s = i.NEAREST, t ? r = i.NEAREST_MIPMAP_NEAREST : r = i.NEAREST;\n break;\n case 5:\n s = i.NEAREST, t ? r = i.LINEAR_MIPMAP_NEAREST : r = i.LINEAR;\n break;\n case 6:\n s = i.NEAREST, t ? r = i.LINEAR_MIPMAP_LINEAR : r = i.LINEAR;\n break;\n case 7:\n s = i.NEAREST, r = i.LINEAR;\n break;\n case 1:\n s = i.NEAREST, r = i.NEAREST;\n break;\n case 9:\n s = i.LINEAR, t ? r = i.NEAREST_MIPMAP_NEAREST : r = i.NEAREST;\n break;\n case 10:\n s = i.LINEAR, t ? r = i.NEAREST_MIPMAP_LINEAR : r = i.NEAREST;\n break;\n case 2:\n s = i.LINEAR, r = i.LINEAR;\n break;\n case 12:\n s = i.LINEAR, r = i.NEAREST;\n break;\n }\n return {\n min: r,\n mag: s\n };\n }\n /** @internal */\n _createTexture() {\n const e = this._gl.createTexture();\n if (!e)\n throw new Error(\"Unable to create texture\");\n return e;\n }\n /** @internal */\n _createHardwareTexture() {\n return new pc(this._createTexture(), this._gl);\n }\n /**\n * Creates an internal texture without binding it to a framebuffer\n * @internal\n * @param size defines the size of the texture\n * @param options defines the options used to create the texture\n * @param delayGPUTextureCreation true to delay the texture creation the first time it is really needed. false to create it right away\n * @param source source type of the texture\n * @returns a new internal texture\n */\n _createInternalTexture(e, t, i = !0, s = 0) {\n let r = !1, n = 0, o = 3, l = 5, h = !1, c = 1, u;\n t !== void 0 && typeof t == \"object\" ? (r = !!t.generateMipMaps, n = t.type === void 0 ? 0 : t.type, o = t.samplingMode === void 0 ? 3 : t.samplingMode, l = t.format === void 0 ? 5 : t.format, h = t.useSRGBBuffer === void 0 ? !1 : t.useSRGBBuffer, c = t.samples ?? 1, u = t.label) : r = !!t, h && (h = this._caps.supportSRGBBuffers && (this.webGLVersion > 1 || this.isWebGPU)), (n === 1 && !this._caps.textureFloatLinearFiltering || n === 2 && !this._caps.textureHalfFloatLinearFiltering) && (o = 1), n === 1 && !this._caps.textureFloat && (n = 0, L.Warn(\"Float textures are not supported. Type forced to TEXTURETYPE_UNSIGNED_BYTE\"));\n const d = this._gl, f = new Nt(this, s), p = e.width || e, _ = e.height || e, m = e.depth || 0, x = e.layers || 0, v = this._getSamplingParameters(o, r), T = x !== 0 ? d.TEXTURE_2D_ARRAY : m !== 0 ? d.TEXTURE_3D : d.TEXTURE_2D, E = this._getRGBABufferInternalSizedFormat(n, l, h), b = this._getInternalFormat(l), S = this._getWebGLTextureType(n);\n return this._bindTextureDirectly(T, f), x !== 0 ? (f.is2DArray = !0, d.texImage3D(T, 0, E, p, _, x, 0, b, S, null)) : m !== 0 ? (f.is3D = !0, d.texImage3D(T, 0, E, p, _, m, 0, b, S, null)) : d.texImage2D(T, 0, E, p, _, 0, b, S, null), d.texParameteri(T, d.TEXTURE_MAG_FILTER, v.mag), d.texParameteri(T, d.TEXTURE_MIN_FILTER, v.min), d.texParameteri(T, d.TEXTURE_WRAP_S, d.CLAMP_TO_EDGE), d.texParameteri(T, d.TEXTURE_WRAP_T, d.CLAMP_TO_EDGE), r && this._gl.generateMipmap(T), this._bindTextureDirectly(T, null), f._useSRGBBuffer = h, f.baseWidth = p, f.baseHeight = _, f.width = p, f.height = _, f.depth = x, f.isReady = !0, f.samples = c, f.generateMipMaps = r, f.samplingMode = o, f.type = n, f.format = l, f.label = u, this._internalTexturesCache.push(f), f;\n }\n /**\n * @internal\n */\n _getUseSRGBBuffer(e, t) {\n return e && this._caps.supportSRGBBuffers && (this.webGLVersion > 1 || t);\n }\n /**\n * Usually called from Texture.ts.\n * Passed information to create a WebGLTexture\n * @param url defines a value which contains one of the following:\n * * A conventional http URL, e.g. 'http://...' or 'file://...'\n * * A base64 string of in-line texture data, e.g. 'data:image/jpg;base64,/...'\n * * An indicator that data being passed using the buffer parameter, e.g. 'data:mytexture.jpg'\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated. Ignored for compressed textures. They must be in the file\n * @param invertY when true, image is flipped when loaded. You probably want true. Certain compressed textures may invert this if their default is inverted (eg. ktx)\n * @param scene needed for loading to the correct scene\n * @param samplingMode mode with should be used sample / access the texture (Default: Texture.TRILINEAR_SAMPLINGMODE)\n * @param onLoad optional callback to be called upon successful completion\n * @param onError optional callback to be called upon failure\n * @param buffer a source of a file previously fetched as either a base64 string, an ArrayBuffer (compressed or image format), HTMLImageElement (image format), or a Blob\n * @param fallback an internal argument in case the function must be called again, due to etc1 not having alpha capabilities\n * @param format internal format. Default: RGB when extension is '.jpg' else RGBA. Ignored for compressed textures\n * @param forcedExtension defines the extension to use to pick the right loader\n * @param mimeType defines an optional mime type\n * @param loaderOptions options to be passed to the loader\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns a InternalTexture for assignment back into BABYLON.Texture\n */\n createTexture(e, t, i, s, r = 3, n = null, o = null, l = null, h = null, c = null, u = null, d, f, p, _) {\n return this._createTextureBase(e, t, i, s, r, n, o, (...m) => this._prepareWebGLTexture(...m, c), (m, x, v, T, E, b) => {\n const S = this._gl, C = v.width === m && v.height === x;\n E._creationFlags = p ?? 0;\n const P = this._getTexImageParametersForCreateTexture(E.format, E._useSRGBBuffer);\n if (C)\n return S.texImage2D(S.TEXTURE_2D, 0, P.internalFormat, P.format, P.type, v), !1;\n const N = this._caps.maxTextureSize;\n if (v.width > N || v.height > N || !this._supportsHardwareTextureRescaling)\n return this._prepareWorkingCanvas(), !this._workingCanvas || !this._workingContext || (this._workingCanvas.width = m, this._workingCanvas.height = x, this._workingContext.drawImage(v, 0, 0, v.width, v.height, 0, 0, m, x), S.texImage2D(S.TEXTURE_2D, 0, P.internalFormat, P.format, P.type, this._workingCanvas), E.width = m, E.height = x), !1;\n {\n const F = new Nt(\n this,\n 2\n /* InternalTextureSource.Temp */\n );\n this._bindTextureDirectly(S.TEXTURE_2D, F, !0), S.texImage2D(S.TEXTURE_2D, 0, P.internalFormat, P.format, P.type, v), this._rescaleTexture(F, E, s, P.format, () => {\n this._releaseTexture(F), this._bindTextureDirectly(S.TEXTURE_2D, E, !0), b();\n });\n }\n return !0;\n }, l, h, c, u, d, f, _);\n }\n /**\n * Calls to the GL texImage2D and texImage3D functions require three arguments describing the pixel format of the texture.\n * createTexture derives these from the babylonFormat and useSRGBBuffer arguments and also the file extension of the URL it's working with.\n * This function encapsulates that derivation for easy unit testing.\n * @param babylonFormat Babylon's format enum, as specified in ITextureCreationOptions.\n * @param fileExtension The file extension including the dot, e.g. .jpg.\n * @param useSRGBBuffer Use SRGB not linear.\n * @returns The options to pass to texImage2D or texImage3D calls.\n * @internal\n */\n _getTexImageParametersForCreateTexture(e, t) {\n let i, s;\n return this.webGLVersion === 1 ? (i = this._getInternalFormat(e, t), s = i) : (i = this._getInternalFormat(e, !1), s = this._getRGBABufferInternalSizedFormat(0, e, t)), {\n internalFormat: s,\n format: i,\n type: this._gl.UNSIGNED_BYTE\n };\n }\n /**\n * @internal\n */\n _rescaleTexture(e, t, i, s, r) {\n }\n /**\n * @internal\n */\n _unpackFlipY(e) {\n this._unpackFlipYCached !== e && (this._gl.pixelStorei(this._gl.UNPACK_FLIP_Y_WEBGL, e ? 1 : 0), this.enableUnpackFlipYCached && (this._unpackFlipYCached = e));\n }\n /** @internal */\n _getUnpackAlignement() {\n return this._gl.getParameter(this._gl.UNPACK_ALIGNMENT);\n }\n /** @internal */\n _getTextureTarget(e) {\n return e.isCube ? this._gl.TEXTURE_CUBE_MAP : e.is3D ? this._gl.TEXTURE_3D : e.is2DArray || e.isMultiview ? this._gl.TEXTURE_2D_ARRAY : this._gl.TEXTURE_2D;\n }\n /**\n * Update the sampling mode of a given texture\n * @param samplingMode defines the required sampling mode\n * @param texture defines the texture to update\n * @param generateMipMaps defines whether to generate mipmaps for the texture\n */\n updateTextureSamplingMode(e, t, i = !1) {\n const s = this._getTextureTarget(t), r = this._getSamplingParameters(e, t.useMipMaps || i);\n this._setTextureParameterInteger(s, this._gl.TEXTURE_MAG_FILTER, r.mag, t), this._setTextureParameterInteger(s, this._gl.TEXTURE_MIN_FILTER, r.min), i && (t.generateMipMaps = !0, this._gl.generateMipmap(s)), this._bindTextureDirectly(s, null), t.samplingMode = e;\n }\n /**\n * Update the dimensions of a texture\n * @param texture texture to update\n * @param width new width of the texture\n * @param height new height of the texture\n * @param depth new depth of the texture\n */\n updateTextureDimensions(e, t, i, s = 1) {\n }\n /**\n * Update the sampling mode of a given texture\n * @param texture defines the texture to update\n * @param wrapU defines the texture wrap mode of the u coordinates\n * @param wrapV defines the texture wrap mode of the v coordinates\n * @param wrapR defines the texture wrap mode of the r coordinates\n */\n updateTextureWrappingMode(e, t, i = null, s = null) {\n const r = this._getTextureTarget(e);\n t !== null && (this._setTextureParameterInteger(r, this._gl.TEXTURE_WRAP_S, this._getTextureWrapMode(t), e), e._cachedWrapU = t), i !== null && (this._setTextureParameterInteger(r, this._gl.TEXTURE_WRAP_T, this._getTextureWrapMode(i), e), e._cachedWrapV = i), (e.is2DArray || e.is3D) && s !== null && (this._setTextureParameterInteger(r, this._gl.TEXTURE_WRAP_R, this._getTextureWrapMode(s), e), e._cachedWrapR = s), this._bindTextureDirectly(r, null);\n }\n /**\n * @internal\n */\n _uploadCompressedDataToTextureDirectly(e, t, i, s, r, n = 0, o = 0) {\n const l = this._gl;\n let h = l.TEXTURE_2D;\n if (e.isCube && (h = l.TEXTURE_CUBE_MAP_POSITIVE_X + n), e._useSRGBBuffer)\n switch (t) {\n case 37492:\n case 36196:\n this._caps.etc2 ? t = l.COMPRESSED_SRGB8_ETC2 : e._useSRGBBuffer = !1;\n break;\n case 37496:\n this._caps.etc2 ? t = l.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : e._useSRGBBuffer = !1;\n break;\n case 36492:\n t = l.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT;\n break;\n case 37808:\n t = l.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR;\n break;\n case 33776:\n this._caps.s3tc_srgb ? t = l.COMPRESSED_SRGB_S3TC_DXT1_EXT : e._useSRGBBuffer = !1;\n break;\n case 33777:\n this._caps.s3tc_srgb ? t = l.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT : e._useSRGBBuffer = !1;\n break;\n case 33779:\n this._caps.s3tc_srgb ? t = l.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT : e._useSRGBBuffer = !1;\n break;\n default:\n e._useSRGBBuffer = !1;\n break;\n }\n this._gl.compressedTexImage2D(h, o, t, i, s, 0, r);\n }\n /**\n * @internal\n */\n _uploadDataToTextureDirectly(e, t, i = 0, s = 0, r, n = !1) {\n const o = this._gl, l = this._getWebGLTextureType(e.type), h = this._getInternalFormat(e.format), c = r === void 0 ? this._getRGBABufferInternalSizedFormat(e.type, e.format, e._useSRGBBuffer) : this._getInternalFormat(r, e._useSRGBBuffer);\n this._unpackFlipY(e.invertY);\n let u = o.TEXTURE_2D;\n e.isCube && (u = o.TEXTURE_CUBE_MAP_POSITIVE_X + i);\n const d = Math.round(Math.log(e.width) * Math.LOG2E), f = Math.round(Math.log(e.height) * Math.LOG2E), p = n ? e.width : Math.pow(2, Math.max(d - s, 0)), _ = n ? e.height : Math.pow(2, Math.max(f - s, 0));\n o.texImage2D(u, s, c, p, _, 0, h, l, t);\n }\n /**\n * Update a portion of an internal texture\n * @param texture defines the texture to update\n * @param imageData defines the data to store into the texture\n * @param xOffset defines the x coordinates of the update rectangle\n * @param yOffset defines the y coordinates of the update rectangle\n * @param width defines the width of the update rectangle\n * @param height defines the height of the update rectangle\n * @param faceIndex defines the face index if texture is a cube (0 by default)\n * @param lod defines the lod level to update (0 by default)\n * @param generateMipMaps defines whether to generate mipmaps or not\n */\n updateTextureData(e, t, i, s, r, n, o = 0, l = 0, h = !1) {\n const c = this._gl, u = this._getWebGLTextureType(e.type), d = this._getInternalFormat(e.format);\n this._unpackFlipY(e.invertY);\n let f = c.TEXTURE_2D, p = c.TEXTURE_2D;\n e.isCube && (p = c.TEXTURE_CUBE_MAP_POSITIVE_X + o, f = c.TEXTURE_CUBE_MAP), this._bindTextureDirectly(f, e, !0), c.texSubImage2D(p, l, i, s, r, n, d, u, t), h && this._gl.generateMipmap(p), this._bindTextureDirectly(f, null);\n }\n /**\n * @internal\n */\n _uploadArrayBufferViewToTexture(e, t, i = 0, s = 0) {\n const r = this._gl, n = e.isCube ? r.TEXTURE_CUBE_MAP : r.TEXTURE_2D;\n this._bindTextureDirectly(n, e, !0), this._uploadDataToTextureDirectly(e, t, i, s), this._bindTextureDirectly(n, null, !0);\n }\n _prepareWebGLTextureContinuation(e, t, i, s, r) {\n const n = this._gl;\n if (!n)\n return;\n const o = this._getSamplingParameters(r, !i);\n n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MAG_FILTER, o.mag), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MIN_FILTER, o.min), !i && !s && n.generateMipmap(n.TEXTURE_2D), this._bindTextureDirectly(n.TEXTURE_2D, null), t && t.removePendingData(e), e.onLoadedObservable.notifyObservers(e), e.onLoadedObservable.clear();\n }\n _prepareWebGLTexture(e, t, i, s, r, n, o, l, h, c) {\n const u = this.getCaps().maxTextureSize, d = Math.min(u, this.needPOTTextures ? Dr(s.width, u) : s.width), f = Math.min(u, this.needPOTTextures ? Dr(s.height, u) : s.height), p = this._gl;\n if (p) {\n if (!e._hardwareTexture) {\n i && i.removePendingData(e);\n return;\n }\n this._bindTextureDirectly(p.TEXTURE_2D, e, !0), this._unpackFlipY(r === void 0 ? !0 : !!r), e.baseWidth = s.width, e.baseHeight = s.height, e.width = d, e.height = f, e.isReady = !0, e.type = e.type !== -1 ? e.type : 0, e.format = e.format !== -1 ? e.format : c ?? (t === \".jpg\" && !e._useSRGBBuffer ? 4 : 5), !l(d, f, s, t, e, () => {\n this._prepareWebGLTextureContinuation(e, i, n, o, h);\n }) && this._prepareWebGLTextureContinuation(e, i, n, o, h);\n }\n }\n /**\n * @internal\n */\n _setupFramebufferDepthAttachments(e, t, i, s, r = 1) {\n const n = this._gl;\n if (e && t)\n return this._createRenderBuffer(i, s, r, n.DEPTH_STENCIL, n.DEPTH24_STENCIL8, n.DEPTH_STENCIL_ATTACHMENT);\n if (t) {\n let o = n.DEPTH_COMPONENT16;\n return this._webGLVersion > 1 && (o = n.DEPTH_COMPONENT32F), this._createRenderBuffer(i, s, r, o, o, n.DEPTH_ATTACHMENT);\n }\n return e ? this._createRenderBuffer(i, s, r, n.STENCIL_INDEX8, n.STENCIL_INDEX8, n.STENCIL_ATTACHMENT) : null;\n }\n /**\n * @internal\n */\n _createRenderBuffer(e, t, i, s, r, n, o = !0) {\n const h = this._gl.createRenderbuffer();\n return this._updateRenderBuffer(h, e, t, i, s, r, n, o);\n }\n _updateRenderBuffer(e, t, i, s, r, n, o, l = !0) {\n const h = this._gl;\n return h.bindRenderbuffer(h.RENDERBUFFER, e), s > 1 && h.renderbufferStorageMultisample ? h.renderbufferStorageMultisample(h.RENDERBUFFER, s, n, t, i) : h.renderbufferStorage(h.RENDERBUFFER, r, t, i), h.framebufferRenderbuffer(h.FRAMEBUFFER, o, h.RENDERBUFFER, e), l && h.bindRenderbuffer(h.RENDERBUFFER, null), e;\n }\n /**\n * @internal\n */\n _releaseTexture(e) {\n this._deleteTexture(e._hardwareTexture), this.unbindAllTextures();\n const t = this._internalTexturesCache.indexOf(e);\n t !== -1 && this._internalTexturesCache.splice(t, 1), e._lodTextureHigh && e._lodTextureHigh.dispose(), e._lodTextureMid && e._lodTextureMid.dispose(), e._lodTextureLow && e._lodTextureLow.dispose(), e._irradianceTexture && e._irradianceTexture.dispose();\n }\n _deleteTexture(e) {\n e == null || e.release();\n }\n _setProgram(e) {\n this._currentProgram !== e && (TP(e, this._gl), this._currentProgram = e);\n }\n /**\n * Binds an effect to the webGL context\n * @param effect defines the effect to bind\n */\n bindSamplers(e) {\n const t = e.getPipelineContext();\n this._setProgram(t.program);\n const i = e.getSamplers();\n for (let s = 0; s < i.length; s++) {\n const r = e.getUniform(i[s]);\n r && (this._boundUniforms[s] = r);\n }\n this._currentEffect = null;\n }\n _activateCurrentTexture() {\n this._currentTextureChannel !== this._activeChannel && (this._gl.activeTexture(this._gl.TEXTURE0 + this._activeChannel), this._currentTextureChannel = this._activeChannel);\n }\n /**\n * @internal\n */\n _bindTextureDirectly(e, t, i = !1, s = !1) {\n var l;\n let r = !1;\n const n = t && t._associatedChannel > -1;\n if (i && n && (this._activeChannel = t._associatedChannel), this._boundTexturesCache[this._activeChannel] !== t || s) {\n if (this._activateCurrentTexture(), t && t.isMultiview)\n throw L.Error([\"_bindTextureDirectly called with a multiview texture!\", e, t]), \"_bindTextureDirectly called with a multiview texture!\";\n this._gl.bindTexture(e, ((l = t == null ? void 0 : t._hardwareTexture) == null ? void 0 : l.underlyingResource) ?? null), this._boundTexturesCache[this._activeChannel] = t, t && (t._associatedChannel = this._activeChannel);\n } else i && (r = !0, this._activateCurrentTexture());\n return n && !i && this._bindSamplerUniformToChannel(t._associatedChannel, this._activeChannel), r;\n }\n /**\n * @internal\n */\n _bindTexture(e, t, i) {\n if (e === void 0)\n return;\n t && (t._associatedChannel = e), this._activeChannel = e;\n const s = t ? this._getTextureTarget(t) : this._gl.TEXTURE_2D;\n this._bindTextureDirectly(s, t);\n }\n /**\n * Unbind all textures from the webGL context\n */\n unbindAllTextures() {\n for (let e = 0; e < this._maxSimultaneousTextures; e++)\n this._activeChannel = e, this._bindTextureDirectly(this._gl.TEXTURE_2D, null), this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null), this.webGLVersion > 1 && (this._bindTextureDirectly(this._gl.TEXTURE_3D, null), this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY, null));\n }\n /**\n * Sets a texture to the according uniform.\n * @param channel The texture channel\n * @param uniform The uniform to set\n * @param texture The texture to apply\n * @param name The name of the uniform in the effect\n */\n setTexture(e, t, i, s) {\n e !== void 0 && (t && (this._boundUniforms[e] = t), this._setTexture(e, i));\n }\n _bindSamplerUniformToChannel(e, t) {\n const i = this._boundUniforms[e];\n !i || i._currentState === t || (this._gl.uniform1i(i, t), i._currentState = t);\n }\n _getTextureWrapMode(e) {\n switch (e) {\n case 1:\n return this._gl.REPEAT;\n case 0:\n return this._gl.CLAMP_TO_EDGE;\n case 2:\n return this._gl.MIRRORED_REPEAT;\n }\n return this._gl.REPEAT;\n }\n _setTexture(e, t, i = !1, s = !1, r = \"\") {\n if (!t)\n return this._boundTexturesCache[e] != null && (this._activeChannel = e, this._bindTextureDirectly(this._gl.TEXTURE_2D, null), this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null), this.webGLVersion > 1 && (this._bindTextureDirectly(this._gl.TEXTURE_3D, null), this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY, null))), !1;\n if (t.video) {\n this._activeChannel = e;\n const h = t.getInternalTexture();\n h && (h._associatedChannel = e), t.update();\n } else if (t.delayLoadState === 4)\n return t.delayLoad(), !1;\n let n;\n s ? n = t.depthStencilTexture : t.isReady() ? n = t.getInternalTexture() : t.isCube ? n = this.emptyCubeTexture : t.is3D ? n = this.emptyTexture3D : t.is2DArray ? n = this.emptyTexture2DArray : n = this.emptyTexture, !i && n && (n._associatedChannel = e);\n let o = !0;\n this._boundTexturesCache[e] === n && (i || this._bindSamplerUniformToChannel(n._associatedChannel, e), o = !1), this._activeChannel = e;\n const l = this._getTextureTarget(n);\n if (o && this._bindTextureDirectly(l, n, i), n && !n.isMultiview) {\n if (n.isCube && n._cachedCoordinatesMode !== t.coordinatesMode) {\n n._cachedCoordinatesMode = t.coordinatesMode;\n const h = t.coordinatesMode !== 3 && t.coordinatesMode !== 5 ? 1 : 0;\n t.wrapU = h, t.wrapV = h;\n }\n n._cachedWrapU !== t.wrapU && (n._cachedWrapU = t.wrapU, this._setTextureParameterInteger(l, this._gl.TEXTURE_WRAP_S, this._getTextureWrapMode(t.wrapU), n)), n._cachedWrapV !== t.wrapV && (n._cachedWrapV = t.wrapV, this._setTextureParameterInteger(l, this._gl.TEXTURE_WRAP_T, this._getTextureWrapMode(t.wrapV), n)), n.is3D && n._cachedWrapR !== t.wrapR && (n._cachedWrapR = t.wrapR, this._setTextureParameterInteger(l, this._gl.TEXTURE_WRAP_R, this._getTextureWrapMode(t.wrapR), n)), this._setAnisotropicLevel(l, n, t.anisotropicFilteringLevel);\n }\n return !0;\n }\n /**\n * Sets an array of texture to the webGL context\n * @param channel defines the channel where the texture array must be set\n * @param uniform defines the associated uniform location\n * @param textures defines the array of textures to bind\n * @param name name of the channel\n */\n setTextureArray(e, t, i, s) {\n if (!(e === void 0 || !t)) {\n (!this._textureUnits || this._textureUnits.length !== i.length) && (this._textureUnits = new Int32Array(i.length));\n for (let r = 0; r < i.length; r++) {\n const n = i[r].getInternalTexture();\n n ? (this._textureUnits[r] = e + r, n._associatedChannel = e + r) : this._textureUnits[r] = -1;\n }\n this._gl.uniform1iv(t, this._textureUnits);\n for (let r = 0; r < i.length; r++)\n this._setTexture(this._textureUnits[r], i[r], !0);\n }\n }\n /**\n * @internal\n */\n _setAnisotropicLevel(e, t, i) {\n const s = this._caps.textureAnisotropicFilterExtension;\n t.samplingMode !== 11 && t.samplingMode !== 3 && t.samplingMode !== 2 && (i = 1), s && t._cachedAnisotropicFilteringLevel !== i && (this._setTextureParameterFloat(e, s.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(i, this._caps.maxAnisotropy), t), t._cachedAnisotropicFilteringLevel = i);\n }\n _setTextureParameterFloat(e, t, i, s) {\n this._bindTextureDirectly(e, s, !0, !0), this._gl.texParameterf(e, t, i);\n }\n _setTextureParameterInteger(e, t, i, s) {\n s && this._bindTextureDirectly(e, s, !0, !0), this._gl.texParameteri(e, t, i);\n }\n /**\n * Unbind all vertex attributes from the webGL context\n */\n unbindAllAttributes() {\n if (this._mustWipeVertexAttributes) {\n this._mustWipeVertexAttributes = !1;\n for (let e = 0; e < this._caps.maxVertexAttribs; e++)\n this.disableAttributeByIndex(e);\n return;\n }\n for (let e = 0, t = this._vertexAttribArraysEnabled.length; e < t; e++)\n e >= this._caps.maxVertexAttribs || !this._vertexAttribArraysEnabled[e] || this.disableAttributeByIndex(e);\n }\n /**\n * Force the engine to release all cached effects. This means that next effect compilation will have to be done completely even if a similar effect was already compiled\n */\n releaseEffects() {\n for (const e in this._compiledEffects) {\n const t = this._compiledEffects[e].getPipelineContext();\n this._deletePipelineContext(t);\n }\n this._compiledEffects = {};\n }\n /**\n * Dispose and release all associated resources\n */\n dispose() {\n var e;\n us() && this._renderingCanvas && (this._doNotHandleContextLost || (this._renderingCanvas.removeEventListener(\"webglcontextlost\", this._onContextLost), this._renderingCanvas.removeEventListener(\"webglcontextrestored\", this._onContextRestored))), super.dispose(), this._dummyFramebuffer && this._gl.deleteFramebuffer(this._dummyFramebuffer), this.unbindAllAttributes(), this._boundUniforms = {}, this._workingCanvas = null, this._workingContext = null, this._currentBufferPointers.length = 0, this._currentProgram = null, this._creationOptions.loseContextOnDispose && ((e = this._gl.getExtension(\"WEBGL_lose_context\")) == null || e.loseContext()), gP(this._gl);\n }\n /**\n * Attach a new callback raised when context lost event is fired\n * @param callback defines the callback to call\n */\n attachContextLostEvent(e) {\n this._renderingCanvas && this._renderingCanvas.addEventListener(\"webglcontextlost\", e, !1);\n }\n /**\n * Attach a new callback raised when context restored event is fired\n * @param callback defines the callback to call\n */\n attachContextRestoredEvent(e) {\n this._renderingCanvas && this._renderingCanvas.addEventListener(\"webglcontextrestored\", e, !1);\n }\n /**\n * Get the current error code of the webGL context\n * @returns the error code\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getError\n */\n getError() {\n return this._gl.getError();\n }\n _canRenderToFloatFramebuffer() {\n return this._webGLVersion > 1 ? this._caps.colorBufferFloat : this._canRenderToFramebuffer(1);\n }\n _canRenderToHalfFloatFramebuffer() {\n return this._webGLVersion > 1 ? this._caps.colorBufferFloat : this._canRenderToFramebuffer(2);\n }\n // Thank you : http://stackoverflow.com/questions/28827511/webgl-ios-render-to-floating-point-texture\n _canRenderToFramebuffer(e) {\n const t = this._gl;\n for (; t.getError() !== t.NO_ERROR; )\n ;\n let i = !0;\n const s = t.createTexture();\n t.bindTexture(t.TEXTURE_2D, s), t.texImage2D(t.TEXTURE_2D, 0, this._getRGBABufferInternalSizedFormat(e), 1, 1, 0, t.RGBA, this._getWebGLTextureType(e), null), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, t.NEAREST), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MAG_FILTER, t.NEAREST);\n const r = t.createFramebuffer();\n t.bindFramebuffer(t.FRAMEBUFFER, r), t.framebufferTexture2D(t.FRAMEBUFFER, t.COLOR_ATTACHMENT0, t.TEXTURE_2D, s, 0);\n const n = t.checkFramebufferStatus(t.FRAMEBUFFER);\n if (i = i && n === t.FRAMEBUFFER_COMPLETE, i = i && t.getError() === t.NO_ERROR, i && (t.clear(t.COLOR_BUFFER_BIT), i = i && t.getError() === t.NO_ERROR), i) {\n t.bindFramebuffer(t.FRAMEBUFFER, null);\n const o = t.RGBA, l = t.UNSIGNED_BYTE, h = new Uint8Array(4);\n t.readPixels(0, 0, 1, 1, o, l, h), i = i && t.getError() === t.NO_ERROR;\n }\n for (t.deleteTexture(s), t.deleteFramebuffer(r), t.bindFramebuffer(t.FRAMEBUFFER, null); !i && t.getError() !== t.NO_ERROR; )\n ;\n return i;\n }\n /**\n * @internal\n */\n _getWebGLTextureType(e) {\n if (this._webGLVersion === 1) {\n switch (e) {\n case 1:\n return this._gl.FLOAT;\n case 2:\n return this._gl.HALF_FLOAT_OES;\n case 0:\n return this._gl.UNSIGNED_BYTE;\n case 8:\n return this._gl.UNSIGNED_SHORT_4_4_4_4;\n case 9:\n return this._gl.UNSIGNED_SHORT_5_5_5_1;\n case 10:\n return this._gl.UNSIGNED_SHORT_5_6_5;\n }\n return this._gl.UNSIGNED_BYTE;\n }\n switch (e) {\n case 3:\n return this._gl.BYTE;\n case 0:\n return this._gl.UNSIGNED_BYTE;\n case 4:\n return this._gl.SHORT;\n case 5:\n return this._gl.UNSIGNED_SHORT;\n case 6:\n return this._gl.INT;\n case 7:\n return this._gl.UNSIGNED_INT;\n case 1:\n return this._gl.FLOAT;\n case 2:\n return this._gl.HALF_FLOAT;\n case 8:\n return this._gl.UNSIGNED_SHORT_4_4_4_4;\n case 9:\n return this._gl.UNSIGNED_SHORT_5_5_5_1;\n case 10:\n return this._gl.UNSIGNED_SHORT_5_6_5;\n case 11:\n return this._gl.UNSIGNED_INT_2_10_10_10_REV;\n case 12:\n return this._gl.UNSIGNED_INT_24_8;\n case 13:\n return this._gl.UNSIGNED_INT_10F_11F_11F_REV;\n case 14:\n return this._gl.UNSIGNED_INT_5_9_9_9_REV;\n case 15:\n return this._gl.FLOAT_32_UNSIGNED_INT_24_8_REV;\n }\n return this._gl.UNSIGNED_BYTE;\n }\n /**\n * @internal\n */\n _getInternalFormat(e, t = !1) {\n let i = t ? this._glSRGBExtensionValues.SRGB8_ALPHA8 : this._gl.RGBA;\n switch (e) {\n case 0:\n i = this._gl.ALPHA;\n break;\n case 1:\n i = this._gl.LUMINANCE;\n break;\n case 2:\n i = this._gl.LUMINANCE_ALPHA;\n break;\n case 6:\n i = this._gl.RED;\n break;\n case 7:\n i = this._gl.RG;\n break;\n case 4:\n i = t ? this._glSRGBExtensionValues.SRGB : this._gl.RGB;\n break;\n case 5:\n i = t ? this._glSRGBExtensionValues.SRGB8_ALPHA8 : this._gl.RGBA;\n break;\n }\n if (this._webGLVersion > 1)\n switch (e) {\n case 8:\n i = this._gl.RED_INTEGER;\n break;\n case 9:\n i = this._gl.RG_INTEGER;\n break;\n case 10:\n i = this._gl.RGB_INTEGER;\n break;\n case 11:\n i = this._gl.RGBA_INTEGER;\n break;\n }\n return i;\n }\n /**\n * @internal\n */\n _getRGBABufferInternalSizedFormat(e, t, i = !1) {\n if (this._webGLVersion === 1) {\n if (t !== void 0)\n switch (t) {\n case 0:\n return this._gl.ALPHA;\n case 1:\n return this._gl.LUMINANCE;\n case 2:\n return this._gl.LUMINANCE_ALPHA;\n case 4:\n return i ? this._glSRGBExtensionValues.SRGB : this._gl.RGB;\n }\n return this._gl.RGBA;\n }\n switch (e) {\n case 3:\n switch (t) {\n case 6:\n return this._gl.R8_SNORM;\n case 7:\n return this._gl.RG8_SNORM;\n case 4:\n return this._gl.RGB8_SNORM;\n case 8:\n return this._gl.R8I;\n case 9:\n return this._gl.RG8I;\n case 10:\n return this._gl.RGB8I;\n case 11:\n return this._gl.RGBA8I;\n default:\n return this._gl.RGBA8_SNORM;\n }\n case 0:\n switch (t) {\n case 6:\n return this._gl.R8;\n case 7:\n return this._gl.RG8;\n case 4:\n return i ? this._glSRGBExtensionValues.SRGB8 : this._gl.RGB8;\n case 5:\n return i ? this._glSRGBExtensionValues.SRGB8_ALPHA8 : this._gl.RGBA8;\n case 8:\n return this._gl.R8UI;\n case 9:\n return this._gl.RG8UI;\n case 10:\n return this._gl.RGB8UI;\n case 11:\n return this._gl.RGBA8UI;\n case 0:\n return this._gl.ALPHA;\n case 1:\n return this._gl.LUMINANCE;\n case 2:\n return this._gl.LUMINANCE_ALPHA;\n default:\n return this._gl.RGBA8;\n }\n case 4:\n switch (t) {\n case 8:\n return this._gl.R16I;\n case 9:\n return this._gl.RG16I;\n case 10:\n return this._gl.RGB16I;\n case 11:\n return this._gl.RGBA16I;\n default:\n return this._gl.RGBA16I;\n }\n case 5:\n switch (t) {\n case 8:\n return this._gl.R16UI;\n case 9:\n return this._gl.RG16UI;\n case 10:\n return this._gl.RGB16UI;\n case 11:\n return this._gl.RGBA16UI;\n default:\n return this._gl.RGBA16UI;\n }\n case 6:\n switch (t) {\n case 8:\n return this._gl.R32I;\n case 9:\n return this._gl.RG32I;\n case 10:\n return this._gl.RGB32I;\n case 11:\n return this._gl.RGBA32I;\n default:\n return this._gl.RGBA32I;\n }\n case 7:\n switch (t) {\n case 8:\n return this._gl.R32UI;\n case 9:\n return this._gl.RG32UI;\n case 10:\n return this._gl.RGB32UI;\n case 11:\n return this._gl.RGBA32UI;\n default:\n return this._gl.RGBA32UI;\n }\n case 1:\n switch (t) {\n case 6:\n return this._gl.R32F;\n case 7:\n return this._gl.RG32F;\n case 4:\n return this._gl.RGB32F;\n case 5:\n return this._gl.RGBA32F;\n default:\n return this._gl.RGBA32F;\n }\n case 2:\n switch (t) {\n case 6:\n return this._gl.R16F;\n case 7:\n return this._gl.RG16F;\n case 4:\n return this._gl.RGB16F;\n case 5:\n return this._gl.RGBA16F;\n default:\n return this._gl.RGBA16F;\n }\n case 10:\n return this._gl.RGB565;\n case 13:\n return this._gl.R11F_G11F_B10F;\n case 14:\n return this._gl.RGB9_E5;\n case 8:\n return this._gl.RGBA4;\n case 9:\n return this._gl.RGB5_A1;\n case 11:\n switch (t) {\n case 5:\n return this._gl.RGB10_A2;\n case 11:\n return this._gl.RGB10_A2UI;\n default:\n return this._gl.RGB10_A2;\n }\n }\n return i ? this._glSRGBExtensionValues.SRGB8_ALPHA8 : this._gl.RGBA8;\n }\n /**\n * Reads pixels from the current frame buffer. Please note that this function can be slow\n * @param x defines the x coordinate of the rectangle where pixels must be read\n * @param y defines the y coordinate of the rectangle where pixels must be read\n * @param width defines the width of the rectangle where pixels must be read\n * @param height defines the height of the rectangle where pixels must be read\n * @param hasAlpha defines whether the output should have alpha or not (defaults to true)\n * @param flushRenderer true to flush the renderer from the pending commands before reading the pixels\n * @returns a ArrayBufferView promise (Uint8Array) containing RGBA colors\n */\n readPixels(e, t, i, s, r = !0, n = !0) {\n const o = r ? 4 : 3, l = r ? this._gl.RGBA : this._gl.RGB, h = new Uint8Array(s * i * o);\n return n && this.flushFramebuffer(), this._gl.readPixels(e, t, i, s, l, this._gl.UNSIGNED_BYTE, h), Promise.resolve(h);\n }\n /**\n * Gets a Promise indicating if the engine can be instantiated (ie. if a webGL context can be found)\n */\n static get IsSupportedAsync() {\n return Promise.resolve(this.isSupported());\n }\n /**\n * Gets a boolean indicating if the engine can be instantiated (ie. if a webGL context can be found)\n */\n static get IsSupported() {\n return this.isSupported();\n }\n /**\n * Gets a boolean indicating if the engine can be instantiated (ie. if a webGL context can be found)\n * @returns true if the engine can be created\n * @ignorenaming\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static isSupported() {\n if (this._HasMajorPerformanceCaveat !== null)\n return !this._HasMajorPerformanceCaveat;\n if (this._IsSupported === null)\n try {\n const e = we._CreateCanvas(1, 1), t = e.getContext(\"webgl\") || e.getContext(\"experimental-webgl\");\n this._IsSupported = t != null && !!window.WebGLRenderingContext;\n } catch {\n this._IsSupported = !1;\n }\n return this._IsSupported;\n }\n /**\n * Gets a boolean indicating if the engine can be instantiated on a performant device (ie. if a webGL context can be found and it does not use a slow implementation)\n */\n static get HasMajorPerformanceCaveat() {\n if (this._HasMajorPerformanceCaveat === null)\n try {\n const e = we._CreateCanvas(1, 1), t = e.getContext(\"webgl\", { failIfMajorPerformanceCaveat: !0 }) || e.getContext(\"experimental-webgl\", { failIfMajorPerformanceCaveat: !0 });\n this._HasMajorPerformanceCaveat = !t;\n } catch {\n this._HasMajorPerformanceCaveat = !1;\n }\n return this._HasMajorPerformanceCaveat;\n }\n}\nXe._TempClearColorUint32 = new Uint32Array(4);\nXe._TempClearColorInt32 = new Int32Array(4);\nXe.ExceptionList = [\n { key: \"Chrome/63.0\", capture: \"63\\\\.0\\\\.3239\\\\.(\\\\d+)\", captureConstraint: 108, targets: [\"uniformBuffer\"] },\n { key: \"Firefox/58\", capture: null, captureConstraint: null, targets: [\"uniformBuffer\"] },\n { key: \"Firefox/59\", capture: null, captureConstraint: null, targets: [\"uniformBuffer\"] },\n { key: \"Chrome/72.+?Mobile\", capture: null, captureConstraint: null, targets: [\"vao\"] },\n { key: \"Chrome/73.+?Mobile\", capture: null, captureConstraint: null, targets: [\"vao\"] },\n { key: \"Chrome/74.+?Mobile\", capture: null, captureConstraint: null, targets: [\"vao\"] },\n { key: \"Mac OS.+Chrome/71\", capture: null, captureConstraint: null, targets: [\"vao\"] },\n { key: \"Mac OS.+Chrome/72\", capture: null, captureConstraint: null, targets: [\"vao\"] },\n { key: \"Mac OS.+Chrome\", capture: null, captureConstraint: null, targets: [\"uniformBuffer\"] },\n { key: \"Chrome/12\\\\d\\\\..+?Mobile\", capture: null, captureConstraint: null, targets: [\"uniformBuffer\"] },\n // desktop osx safari 15.4\n { key: \".*AppleWebKit.*(15.4).*Safari\", capture: null, captureConstraint: null, targets: [\"antialias\", \"maxMSAASamples\"] },\n // mobile browsers using safari 15.4 on ios\n { key: \".*(15.4).*AppleWebKit.*Safari\", capture: null, captureConstraint: null, targets: [\"antialias\", \"maxMSAASamples\"] }\n];\nXe.CollisionsEpsilon = 1e-3;\nXe._ConcatenateShader = nC;\nXe._IsSupported = null;\nXe._HasMajorPerformanceCaveat = null;\nXe.CeilingPOT = ux;\nXe.FloorPOT = h_;\nXe.NearestPOT = cx;\nXe.GetExponentOfTwo = Dr;\nXe.QueueNewFrame = vC;\nclass TC {\n /**\n * constructor\n * @param frameSampleSize The number of samples required to saturate the sliding window\n */\n constructor(e = 30) {\n this._enabled = !0, this._rollingFrameTime = new YP(e);\n }\n /**\n * Samples current frame\n * @param timeMs A timestamp in milliseconds of the current frame to compare with other frames\n */\n sampleFrame(e = Es.Now) {\n if (this._enabled) {\n if (this._lastFrameTimeMs != null) {\n const t = e - this._lastFrameTimeMs;\n this._rollingFrameTime.add(t);\n }\n this._lastFrameTimeMs = e;\n }\n }\n /**\n * Returns the average frame time in milliseconds over the sliding window (or the subset of frames sampled so far)\n */\n get averageFrameTime() {\n return this._rollingFrameTime.average;\n }\n /**\n * Returns the variance frame time in milliseconds over the sliding window (or the subset of frames sampled so far)\n */\n get averageFrameTimeVariance() {\n return this._rollingFrameTime.variance;\n }\n /**\n * Returns the frame time of the most recent frame\n */\n get instantaneousFrameTime() {\n return this._rollingFrameTime.history(0);\n }\n /**\n * Returns the average framerate in frames per second over the sliding window (or the subset of frames sampled so far)\n */\n get averageFPS() {\n return 1e3 / this._rollingFrameTime.average;\n }\n /**\n * Returns the average framerate in frames per second using the most recent frame time\n */\n get instantaneousFPS() {\n const e = this._rollingFrameTime.history(0);\n return e === 0 ? 0 : 1e3 / e;\n }\n /**\n * Returns true if enough samples have been taken to completely fill the sliding window\n */\n get isSaturated() {\n return this._rollingFrameTime.isSaturated();\n }\n /**\n * Enables contributions to the sliding window sample set\n */\n enable() {\n this._enabled = !0;\n }\n /**\n * Disables contributions to the sliding window sample set\n * Samples will not be interpolated over the disabled period\n */\n disable() {\n this._enabled = !1, this._lastFrameTimeMs = null;\n }\n /**\n * Returns true if sampling is enabled\n */\n get isEnabled() {\n return this._enabled;\n }\n /**\n * Resets performance monitor\n */\n reset() {\n this._lastFrameTimeMs = null, this._rollingFrameTime.reset();\n }\n}\nclass YP {\n /**\n * constructor\n * @param length The number of samples required to saturate the sliding window\n */\n constructor(e) {\n this._samples = new Array(e), this.reset();\n }\n /**\n * Adds a sample to the sample set\n * @param v The sample value\n */\n add(e) {\n let t;\n if (this.isSaturated()) {\n const i = this._samples[this._pos];\n t = i - this.average, this.average -= t / (this._sampleCount - 1), this._m2 -= t * (i - this.average);\n } else\n this._sampleCount++;\n t = e - this.average, this.average += t / this._sampleCount, this._m2 += t * (e - this.average), this.variance = this._m2 / (this._sampleCount - 1), this._samples[this._pos] = e, this._pos++, this._pos %= this._samples.length;\n }\n /**\n * Returns previously added values or null if outside of history or outside the sliding window domain\n * @param i Index in history. For example, pass 0 for the most recent value and 1 for the value before that\n * @returns Value previously recorded with add() or null if outside of range\n */\n history(e) {\n if (e >= this._sampleCount || e >= this._samples.length)\n return 0;\n const t = this._wrapPosition(this._pos - 1);\n return this._samples[this._wrapPosition(t - e)];\n }\n /**\n * Returns true if enough samples have been taken to completely fill the sliding window\n * @returns true if sample-set saturated\n */\n isSaturated() {\n return this._sampleCount >= this._samples.length;\n }\n /**\n * Resets the rolling average (equivalent to 0 samples taken so far)\n */\n reset() {\n this.average = 0, this.variance = 0, this._sampleCount = 0, this._pos = 0, this._m2 = 0;\n }\n /**\n * Wraps a value around the sample range boundaries\n * @param i Position in sample range, for example if the sample length is 5, and i is -3, then 2 will be returned.\n * @returns Wrapped position in sample range\n */\n _wrapPosition(e) {\n const t = this._samples.length;\n return (e % t + t) % t;\n }\n}\nXe.prototype.setAlphaMode = function(a, e = !1) {\n if (this._alphaMode === a) {\n if (!e) {\n const t = a === 0;\n this.depthCullingState.depthMask !== t && (this.depthCullingState.depthMask = t);\n }\n return;\n }\n switch (a) {\n case 0:\n this._alphaState.alphaBlend = !1;\n break;\n case 7:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE), this._alphaState.alphaBlend = !0;\n break;\n case 8:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA), this._alphaState.alphaBlend = !0;\n break;\n case 2:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE), this._alphaState.alphaBlend = !0;\n break;\n case 6:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ZERO, this._gl.ONE), this._alphaState.alphaBlend = !0;\n break;\n case 1:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE, this._gl.ZERO, this._gl.ONE), this._alphaState.alphaBlend = !0;\n break;\n case 3:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ZERO, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE), this._alphaState.alphaBlend = !0;\n break;\n case 4:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_COLOR, this._gl.ZERO, this._gl.ONE, this._gl.ONE), this._alphaState.alphaBlend = !0;\n break;\n case 5:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE), this._alphaState.alphaBlend = !0;\n break;\n case 9:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.CONSTANT_COLOR, this._gl.ONE_MINUS_CONSTANT_COLOR, this._gl.CONSTANT_ALPHA, this._gl.ONE_MINUS_CONSTANT_ALPHA), this._alphaState.alphaBlend = !0;\n break;\n case 10:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA), this._alphaState.alphaBlend = !0;\n break;\n case 11:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ONE, this._gl.ONE), this._alphaState.alphaBlend = !0;\n break;\n case 12:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_ALPHA, this._gl.ONE, this._gl.ZERO, this._gl.ZERO), this._alphaState.alphaBlend = !0;\n break;\n case 13:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE_MINUS_DST_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA), this._alphaState.alphaBlend = !0;\n break;\n case 14:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA), this._alphaState.alphaBlend = !0;\n break;\n case 15:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ONE, this._gl.ZERO), this._alphaState.alphaBlend = !0;\n break;\n case 16:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ZERO, this._gl.ONE), this._alphaState.alphaBlend = !0;\n break;\n case 17:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA), this._alphaState.alphaBlend = !0;\n break;\n }\n e || (this.depthCullingState.depthMask = a === 0), this._alphaMode = a;\n};\nfunction vg(a, e, t = !1, i) {\n switch (a) {\n case 3: {\n const r = e instanceof ArrayBuffer ? new Int8Array(e) : new Int8Array(e);\n return i && r.set(new Int8Array(i)), r;\n }\n case 0: {\n const r = e instanceof ArrayBuffer ? new Uint8Array(e) : new Uint8Array(e);\n return i && r.set(new Uint8Array(i)), r;\n }\n case 4: {\n const r = e instanceof ArrayBuffer ? new Int16Array(e) : new Int16Array(t ? e / 2 : e);\n return i && r.set(new Int16Array(i)), r;\n }\n case 5:\n case 8:\n case 9:\n case 10:\n case 2: {\n const r = e instanceof ArrayBuffer ? new Uint16Array(e) : new Uint16Array(t ? e / 2 : e);\n return i && r.set(new Uint16Array(i)), r;\n }\n case 6: {\n const r = e instanceof ArrayBuffer ? new Int32Array(e) : new Int32Array(t ? e / 4 : e);\n return i && r.set(new Int32Array(i)), r;\n }\n case 7:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15: {\n const r = e instanceof ArrayBuffer ? new Uint32Array(e) : new Uint32Array(t ? e / 4 : e);\n return i && r.set(new Uint32Array(i)), r;\n }\n case 1: {\n const r = e instanceof ArrayBuffer ? new Float32Array(e) : new Float32Array(t ? e / 4 : e);\n return i && r.set(new Float32Array(i)), r;\n }\n }\n const s = e instanceof ArrayBuffer ? new Uint8Array(e) : new Uint8Array(e);\n return i && s.set(new Uint8Array(i)), s;\n}\nXe.prototype._readTexturePixelsSync = function(a, e, t, i = -1, s = 0, r = null, n = !0, o = !1, l = 0, h = 0) {\n var d, f;\n const c = this._gl;\n if (!c)\n throw new Error(\"Engine does not have gl rendering context.\");\n if (!this._dummyFramebuffer) {\n const p = c.createFramebuffer();\n if (!p)\n throw new Error(\"Unable to create dummy framebuffer\");\n this._dummyFramebuffer = p;\n }\n c.bindFramebuffer(c.FRAMEBUFFER, this._dummyFramebuffer), i > -1 ? c.framebufferTexture2D(c.FRAMEBUFFER, c.COLOR_ATTACHMENT0, c.TEXTURE_CUBE_MAP_POSITIVE_X + i, (d = a._hardwareTexture) == null ? void 0 : d.underlyingResource, s) : c.framebufferTexture2D(c.FRAMEBUFFER, c.COLOR_ATTACHMENT0, c.TEXTURE_2D, (f = a._hardwareTexture) == null ? void 0 : f.underlyingResource, s);\n let u = a.type !== void 0 ? this._getWebGLTextureType(a.type) : c.UNSIGNED_BYTE;\n if (o)\n r || (r = vg(a.type, 4 * e * t));\n else switch (u) {\n case c.UNSIGNED_BYTE:\n r || (r = new Uint8Array(4 * e * t)), u = c.UNSIGNED_BYTE;\n break;\n default:\n r || (r = new Float32Array(4 * e * t)), u = c.FLOAT;\n break;\n }\n return n && this.flushFramebuffer(), c.readPixels(l, h, e, t, c.RGBA, u, r), c.bindFramebuffer(c.FRAMEBUFFER, this._currentFramebuffer), r;\n};\nXe.prototype._readTexturePixels = function(a, e, t, i = -1, s = 0, r = null, n = !0, o = !1, l = 0, h = 0) {\n return Promise.resolve(this._readTexturePixelsSync(a, e, t, i, s, r, n, o, l, h));\n};\nXe.prototype.updateDynamicIndexBuffer = function(a, e, t = 0) {\n this._currentBoundBuffer[this._gl.ELEMENT_ARRAY_BUFFER] = null, this.bindIndexBuffer(a);\n let i;\n a.is32Bits ? i = e instanceof Uint32Array ? e : new Uint32Array(e) : i = e instanceof Uint16Array ? e : new Uint16Array(e), this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER, i, this._gl.DYNAMIC_DRAW), this._resetIndexBufferBinding();\n};\nXe.prototype.updateDynamicVertexBuffer = function(a, e, t, i) {\n this.bindArrayBuffer(a), t === void 0 && (t = 0);\n const s = e.byteLength || e.length;\n i === void 0 || i >= s && t === 0 ? e instanceof Array ? this._gl.bufferSubData(this._gl.ARRAY_BUFFER, t, new Float32Array(e)) : this._gl.bufferSubData(this._gl.ARRAY_BUFFER, t, e) : e instanceof Array ? this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, new Float32Array(e).subarray(t, t + i)) : (e instanceof ArrayBuffer ? e = new Uint8Array(e, t, i) : e = new Uint8Array(e.buffer, e.byteOffset + t, i), this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, e)), this._resetVertexBufferBinding();\n};\nwe.prototype.displayLoadingUI = function() {\n if (!us())\n return;\n const a = this.loadingScreen;\n a && a.displayLoadingUI();\n};\nwe.prototype.hideLoadingUI = function() {\n if (!us())\n return;\n const a = this._loadingScreen;\n a && a.hideLoadingUI();\n};\nObject.defineProperty(we.prototype, \"loadingScreen\", {\n get: function() {\n return !this._loadingScreen && this._renderingCanvas && (this._loadingScreen = we.DefaultLoadingScreenFactory(this._renderingCanvas)), this._loadingScreen;\n },\n set: function(a) {\n this._loadingScreen = a;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(we.prototype, \"loadingUIText\", {\n set: function(a) {\n this.loadingScreen.loadingUIText = a;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(we.prototype, \"loadingUIBackgroundColor\", {\n set: function(a) {\n this.loadingScreen.loadingUIBackgroundColor = a;\n },\n enumerable: !0,\n configurable: !0\n});\nwe.prototype.getInputElement = function() {\n return this._renderingCanvas;\n};\nwe.prototype.getRenderingCanvasClientRect = function() {\n return this._renderingCanvas ? this._renderingCanvas.getBoundingClientRect() : null;\n};\nwe.prototype.getInputElementClientRect = function() {\n return this._renderingCanvas ? this.getInputElement().getBoundingClientRect() : null;\n};\nwe.prototype.getAspectRatio = function(a, e = !1) {\n const t = a.viewport;\n return this.getRenderWidth(e) * t.width / (this.getRenderHeight(e) * t.height);\n};\nwe.prototype.getScreenAspectRatio = function() {\n return this.getRenderWidth(!0) / this.getRenderHeight(!0);\n};\nwe.prototype._verifyPointerLock = function() {\n var a;\n (a = this._onPointerLockChange) == null || a.call(this);\n};\nwe.prototype.setAlphaEquation = function(a) {\n if (this._alphaEquation !== a) {\n switch (a) {\n case 0:\n this._alphaState.setAlphaEquationParameters(32774, 32774);\n break;\n case 1:\n this._alphaState.setAlphaEquationParameters(32778, 32778);\n break;\n case 2:\n this._alphaState.setAlphaEquationParameters(32779, 32779);\n break;\n case 3:\n this._alphaState.setAlphaEquationParameters(32776, 32776);\n break;\n case 4:\n this._alphaState.setAlphaEquationParameters(32775, 32775);\n break;\n case 5:\n this._alphaState.setAlphaEquationParameters(32775, 32774);\n break;\n }\n this._alphaEquation = a;\n }\n};\nwe.prototype.getInputElement = function() {\n return this._renderingCanvas;\n};\nwe.prototype.getDepthFunction = function() {\n return this._depthCullingState.depthFunc;\n};\nwe.prototype.setDepthFunction = function(a) {\n this._depthCullingState.depthFunc = a;\n};\nwe.prototype.setDepthFunctionToGreater = function() {\n this.setDepthFunction(516);\n};\nwe.prototype.setDepthFunctionToGreaterOrEqual = function() {\n this.setDepthFunction(518);\n};\nwe.prototype.setDepthFunctionToLess = function() {\n this.setDepthFunction(513);\n};\nwe.prototype.setDepthFunctionToLessOrEqual = function() {\n this.setDepthFunction(515);\n};\nwe.prototype.getDepthWrite = function() {\n return this._depthCullingState.depthMask;\n};\nwe.prototype.setDepthWrite = function(a) {\n this._depthCullingState.depthMask = a;\n};\nwe.prototype.getStencilBuffer = function() {\n return this._stencilState.stencilTest;\n};\nwe.prototype.setStencilBuffer = function(a) {\n this._stencilState.stencilTest = a;\n};\nwe.prototype.getStencilMask = function() {\n return this._stencilState.stencilMask;\n};\nwe.prototype.setStencilMask = function(a) {\n this._stencilState.stencilMask = a;\n};\nwe.prototype.getStencilFunction = function() {\n return this._stencilState.stencilFunc;\n};\nwe.prototype.getStencilFunctionReference = function() {\n return this._stencilState.stencilFuncRef;\n};\nwe.prototype.getStencilFunctionMask = function() {\n return this._stencilState.stencilFuncMask;\n};\nwe.prototype.setStencilFunction = function(a) {\n this._stencilState.stencilFunc = a;\n};\nwe.prototype.setStencilFunctionReference = function(a) {\n this._stencilState.stencilFuncRef = a;\n};\nwe.prototype.setStencilFunctionMask = function(a) {\n this._stencilState.stencilFuncMask = a;\n};\nwe.prototype.getStencilOperationFail = function() {\n return this._stencilState.stencilOpStencilFail;\n};\nwe.prototype.getStencilOperationDepthFail = function() {\n return this._stencilState.stencilOpDepthFail;\n};\nwe.prototype.getStencilOperationPass = function() {\n return this._stencilState.stencilOpStencilDepthPass;\n};\nwe.prototype.setStencilOperationFail = function(a) {\n this._stencilState.stencilOpStencilFail = a;\n};\nwe.prototype.setStencilOperationDepthFail = function(a) {\n this._stencilState.stencilOpDepthFail = a;\n};\nwe.prototype.setStencilOperationPass = function(a) {\n this._stencilState.stencilOpStencilDepthPass = a;\n};\nwe.prototype.cacheStencilState = function() {\n this._cachedStencilBuffer = this.getStencilBuffer(), this._cachedStencilFunction = this.getStencilFunction(), this._cachedStencilMask = this.getStencilMask(), this._cachedStencilOperationPass = this.getStencilOperationPass(), this._cachedStencilOperationFail = this.getStencilOperationFail(), this._cachedStencilOperationDepthFail = this.getStencilOperationDepthFail(), this._cachedStencilReference = this.getStencilFunctionReference();\n};\nwe.prototype.restoreStencilState = function() {\n this.setStencilFunction(this._cachedStencilFunction), this.setStencilMask(this._cachedStencilMask), this.setStencilBuffer(this._cachedStencilBuffer), this.setStencilOperationPass(this._cachedStencilOperationPass), this.setStencilOperationFail(this._cachedStencilOperationFail), this.setStencilOperationDepthFail(this._cachedStencilOperationDepthFail), this.setStencilFunctionReference(this._cachedStencilReference);\n};\nwe.prototype.setAlphaConstants = function(a, e, t, i) {\n this._alphaState.setAlphaBlendConstants(a, e, t, i);\n};\nwe.prototype.getAlphaMode = function() {\n return this._alphaMode;\n};\nwe.prototype.getAlphaEquation = function() {\n return this._alphaEquation;\n};\nwe.prototype.getRenderPassNames = function() {\n return this._renderPassNames;\n};\nwe.prototype.getCurrentRenderPassName = function() {\n return this._renderPassNames[this.currentRenderPassId];\n};\nwe.prototype.createRenderPassId = function(a) {\n const e = ++we._RenderPassIdCounter;\n return this._renderPassNames[e] = a ?? \"NONAME\", e;\n};\nwe.prototype.releaseRenderPassId = function(a) {\n this._renderPassNames[a] = void 0;\n for (let e = 0; e < this.scenes.length; ++e) {\n const t = this.scenes[e];\n for (let i = 0; i < t.meshes.length; ++i) {\n const s = t.meshes[i];\n if (s.subMeshes)\n for (let r = 0; r < s.subMeshes.length; ++r)\n s.subMeshes[r]._removeDrawWrapper(a);\n }\n }\n};\nwe.prototype.createDepthStencilTexture = function(a, e, t) {\n if (e.isCube) {\n const i = a.width || a;\n return this._createDepthStencilCubeTexture(i, e);\n } else\n return this._createDepthStencilTexture(a, e, t);\n};\nfunction jP(a) {\n !a || !a.setAttribute || (a.setAttribute(\"touch-action\", \"none\"), a.style.touchAction = \"none\", a.style.webkitTapHighlightColor = \"transparent\");\n}\nfunction SC(a, e, t) {\n a._onCanvasFocus = () => {\n a.onCanvasFocusObservable.notifyObservers(a);\n }, a._onCanvasBlur = () => {\n a.onCanvasBlurObservable.notifyObservers(a);\n }, a._onCanvasContextMenu = (s) => {\n a.disableContextMenu && s.preventDefault();\n }, e.addEventListener(\"focus\", a._onCanvasFocus), e.addEventListener(\"blur\", a._onCanvasBlur), e.addEventListener(\"contextmenu\", a._onCanvasContextMenu), a._onBlur = () => {\n a.disablePerformanceMonitorInBackground && a.performanceMonitor.disable(), a._windowIsBackground = !0;\n }, a._onFocus = () => {\n a.disablePerformanceMonitorInBackground && a.performanceMonitor.enable(), a._windowIsBackground = !1;\n }, a._onCanvasPointerOut = (s) => {\n document.elementFromPoint(s.clientX, s.clientY) !== e && a.onCanvasPointerOutObservable.notifyObservers(s);\n };\n const i = a.getHostWindow();\n i && typeof i.addEventListener == \"function\" && (i.addEventListener(\"blur\", a._onBlur), i.addEventListener(\"focus\", a._onFocus)), e.addEventListener(\"pointerout\", a._onCanvasPointerOut), t.doNotHandleTouchAction || jP(e), !we.audioEngine && t.audioEngine && we.AudioEngineFactory && (we.audioEngine = we.AudioEngineFactory(a.getRenderingCanvas(), a.getAudioContext(), a.getAudioDestination())), mh() && (a._onFullscreenChange = () => {\n a.isFullscreen = !!document.fullscreenElement, a.isFullscreen && a._pointerLockRequested && e && fx(e);\n }, document.addEventListener(\"fullscreenchange\", a._onFullscreenChange, !1), document.addEventListener(\"webkitfullscreenchange\", a._onFullscreenChange, !1), a._onPointerLockChange = () => {\n a.isPointerLock = document.pointerLockElement === e;\n }, document.addEventListener(\"pointerlockchange\", a._onPointerLockChange, !1), document.addEventListener(\"webkitpointerlockchange\", a._onPointerLockChange, !1)), a.enableOfflineSupport = we.OfflineProviderFactory !== void 0, a._deterministicLockstep = !!t.deterministicLockstep, a._lockstepMaxSteps = t.lockstepMaxSteps || 0, a._timeStep = t.timeStep || 1 / 60;\n}\nfunction bC(a, e) {\n Me.Instances.length === 1 && we.audioEngine && (we.audioEngine.dispose(), we.audioEngine = null);\n const t = a.getHostWindow();\n t && typeof t.removeEventListener == \"function\" && (t.removeEventListener(\"blur\", a._onBlur), t.removeEventListener(\"focus\", a._onFocus)), e && (e.removeEventListener(\"focus\", a._onCanvasFocus), e.removeEventListener(\"blur\", a._onCanvasBlur), e.removeEventListener(\"pointerout\", a._onCanvasPointerOut), e.removeEventListener(\"contextmenu\", a._onCanvasContextMenu)), mh() && (document.removeEventListener(\"fullscreenchange\", a._onFullscreenChange), document.removeEventListener(\"mozfullscreenchange\", a._onFullscreenChange), document.removeEventListener(\"webkitfullscreenchange\", a._onFullscreenChange), document.removeEventListener(\"msfullscreenchange\", a._onFullscreenChange), document.removeEventListener(\"pointerlockchange\", a._onPointerLockChange), document.removeEventListener(\"mspointerlockchange\", a._onPointerLockChange), document.removeEventListener(\"mozpointerlockchange\", a._onPointerLockChange), document.removeEventListener(\"webkitpointerlockchange\", a._onPointerLockChange));\n}\nfunction EC(a) {\n const e = document.createElement(\"span\");\n e.textContent = \"Hg\", e.style.font = a;\n const t = document.createElement(\"div\");\n t.style.display = \"inline-block\", t.style.width = \"1px\", t.style.height = \"0px\", t.style.verticalAlign = \"bottom\";\n const i = document.createElement(\"div\");\n i.style.whiteSpace = \"nowrap\", i.appendChild(e), i.appendChild(t), document.body.appendChild(i);\n let s = 0, r = 0;\n try {\n r = t.getBoundingClientRect().top - e.getBoundingClientRect().top, t.style.verticalAlign = \"baseline\", s = t.getBoundingClientRect().top - e.getBoundingClientRect().top;\n } finally {\n document.body.removeChild(i);\n }\n return { ascent: s, height: r, descent: r - s };\n}\nfunction yC(a, e, t) {\n return new Promise((s, r) => {\n const n = new Image();\n n.onload = () => {\n n.decode().then(() => {\n a.createImageBitmap(n, t).then((o) => {\n s(o);\n });\n });\n }, n.onerror = () => {\n r(`Error loading image ${n.src}`);\n }, n.src = e;\n });\n}\nfunction CC(a, e, t, i) {\n const r = a.createCanvas(t, i).getContext(\"2d\");\n if (!r)\n throw new Error(\"Unable to get 2d context for resizeImageBitmap\");\n return r.drawImage(e, 0, 0), r.getImageData(0, 0, t, i).data;\n}\nfunction AC(a) {\n const e = a.requestFullscreen || a.webkitRequestFullscreen;\n e && e.call(a);\n}\nfunction RC() {\n const a = document;\n document.exitFullscreen ? document.exitFullscreen() : a.webkitCancelFullScreen && a.webkitCancelFullScreen();\n}\nfunction fx(a) {\n if (a.requestPointerLock) {\n const e = a.requestPointerLock();\n e instanceof Promise ? e.then(() => {\n a.focus();\n }).catch(() => {\n }) : a.focus();\n }\n}\nfunction IC() {\n document.exitPointerLock && document.exitPointerLock();\n}\nclass nn {\n /**\n * Returns the smallest value ever\n */\n get min() {\n return this._min;\n }\n /**\n * Returns the biggest value ever\n */\n get max() {\n return this._max;\n }\n /**\n * Returns the average value since the performance counter is running\n */\n get average() {\n return this._average;\n }\n /**\n * Returns the average value of the last second the counter was monitored\n */\n get lastSecAverage() {\n return this._lastSecAverage;\n }\n /**\n * Returns the current value\n */\n get current() {\n return this._current;\n }\n /**\n * Gets the accumulated total\n */\n get total() {\n return this._totalAccumulated;\n }\n /**\n * Gets the total value count\n */\n get count() {\n return this._totalValueCount;\n }\n /**\n * Creates a new counter\n */\n constructor() {\n this._startMonitoringTime = 0, this._min = 0, this._max = 0, this._average = 0, this._lastSecAverage = 0, this._current = 0, this._totalValueCount = 0, this._totalAccumulated = 0, this._lastSecAccumulated = 0, this._lastSecTime = 0, this._lastSecValueCount = 0;\n }\n /**\n * Call this method to start monitoring a new frame.\n * This scenario is typically used when you accumulate monitoring time many times for a single frame, you call this method at the start of the frame, then beginMonitoring to start recording and endMonitoring(false) to accumulated the recorded time to the PerfCounter or addCount() to accumulate a monitored count.\n */\n fetchNewFrame() {\n this._totalValueCount++, this._current = 0, this._lastSecValueCount++;\n }\n /**\n * Call this method to monitor a count of something (e.g. mesh drawn in viewport count)\n * @param newCount the count value to add to the monitored count\n * @param fetchResult true when it's the last time in the frame you add to the counter and you wish to update the statistics properties (min/max/average), false if you only want to update statistics.\n */\n addCount(e, t) {\n nn.Enabled && (this._current += e, t && this._fetchResult());\n }\n /**\n * Start monitoring this performance counter\n */\n beginMonitoring() {\n nn.Enabled && (this._startMonitoringTime = Es.Now);\n }\n /**\n * Compute the time lapsed since the previous beginMonitoring() call.\n * @param newFrame true by default to fetch the result and monitor a new frame, if false the time monitored will be added to the current frame counter\n */\n endMonitoring(e = !0) {\n if (!nn.Enabled)\n return;\n e && this.fetchNewFrame();\n const t = Es.Now;\n this._current = t - this._startMonitoringTime, e && this._fetchResult();\n }\n /**\n * Call this method to end the monitoring of a frame.\n * This scenario is typically used when you accumulate monitoring time many times for a single frame, you call this method at the end of the frame, after beginMonitoring to start recording and endMonitoring(false) to accumulated the recorded time to the PerfCounter or addCount() to accumulate a monitored count.\n */\n endFrame() {\n this._fetchResult();\n }\n /** @internal */\n _fetchResult() {\n this._totalAccumulated += this._current, this._lastSecAccumulated += this._current, this._min = Math.min(this._min, this._current), this._max = Math.max(this._max, this._current), this._average = this._totalAccumulated / this._totalValueCount;\n const e = Es.Now;\n e - this._lastSecTime > 1e3 && (this._lastSecAverage = this._lastSecAccumulated / this._lastSecValueCount, this._lastSecTime = e, this._lastSecAccumulated = 0, this._lastSecValueCount = 0);\n }\n}\nnn.Enabled = !0;\nwe.AudioEngineFactory = (a, e, t) => new KP(a, e, t);\nclass KP {\n /**\n * Gets the current AudioContext if available.\n */\n get audioContext() {\n return this._audioContextInitialized || this._initializeAudioContext(), this._audioContext;\n }\n /**\n * Instantiates a new audio engine.\n *\n * There should be only one per page as some browsers restrict the number\n * of audio contexts you can create.\n * @param hostElement defines the host element where to display the mute icon if necessary\n * @param audioContext defines the audio context to be used by the audio engine\n * @param audioDestination defines the audio destination node to be used by audio engine\n */\n constructor(e = null, t = null, i = null) {\n if (this._audioContext = null, this._audioContextInitialized = !1, this._muteButton = null, this._audioDestination = null, this.canUseWebAudio = !1, this.WarnedWebAudioUnsupported = !1, this.isMP3supported = !1, this.isOGGsupported = !1, this.unlocked = !1, this.useCustomUnlockedButton = !1, this.onAudioUnlockedObservable = new G(), this.onAudioLockedObservable = new G(), this._tryToRun = !1, this._onResize = () => {\n this._moveButtonToTopLeft();\n }, !us())\n return;\n typeof window.AudioContext < \"u\" && (this.canUseWebAudio = !0);\n const s = document.createElement(\"audio\");\n this._hostElement = e, this._audioContext = t, this._audioDestination = i;\n try {\n s && s.canPlayType && (s.canPlayType('audio/mpeg; codecs=\"mp3\"').replace(/^no$/, \"\") || s.canPlayType(\"audio/mp3\").replace(/^no$/, \"\")) && (this.isMP3supported = !0);\n } catch {\n }\n try {\n s && s.canPlayType && s.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, \"\") && (this.isOGGsupported = !0);\n } catch {\n }\n }\n /**\n * Flags the audio engine in Locked state.\n * This happens due to new browser policies preventing audio to autoplay.\n */\n lock() {\n this._triggerSuspendedState();\n }\n /**\n * Unlocks the audio engine once a user action has been done on the dom.\n * This is helpful to resume play once browser policies have been satisfied.\n */\n unlock() {\n var e, t;\n if (((e = this._audioContext) == null ? void 0 : e.state) === \"running\") {\n this._hideMuteButton(), this.unlocked || (this.unlocked = !0, this.onAudioUnlockedObservable.notifyObservers(this));\n return;\n }\n this._tryToRun ? (t = this._audioContext) == null || t.suspend().then(() => {\n this._tryToRun = !1, this._triggerRunningState();\n }) : this._triggerRunningState();\n }\n /** @internal */\n _resumeAudioContextOnStateChange() {\n var e;\n (e = this._audioContext) == null || e.addEventListener(\"statechange\", () => {\n var t;\n this.unlocked && ((t = this._audioContext) == null ? void 0 : t.state) !== \"running\" && this._resumeAudioContext();\n }, {\n once: !0,\n passive: !0,\n signal: AbortSignal.timeout(3e3)\n });\n }\n _resumeAudioContext() {\n var e;\n return (e = this._audioContext) != null && e.resume ? this._audioContext.resume() : Promise.resolve();\n }\n _initializeAudioContext() {\n try {\n this.canUseWebAudio && (this._audioContext || (this._audioContext = new AudioContext()), this.masterGain = this._audioContext.createGain(), this.masterGain.gain.value = 1, this._audioDestination || (this._audioDestination = this._audioContext.destination), this.masterGain.connect(this._audioDestination), this._audioContextInitialized = !0, this._audioContext.state === \"running\" && this._triggerRunningState());\n } catch (e) {\n this.canUseWebAudio = !1, L.Error(\"Web Audio: \" + e.message);\n }\n }\n _triggerRunningState() {\n this._tryToRun || (this._tryToRun = !0, this._resumeAudioContext().then(() => {\n this._tryToRun = !1, this._muteButton && this._hideMuteButton(), this.unlocked = !0, this.onAudioUnlockedObservable.notifyObservers(this);\n }).catch(() => {\n this._tryToRun = !1, this.unlocked = !1;\n }));\n }\n _triggerSuspendedState() {\n this.unlocked = !1, this.onAudioLockedObservable.notifyObservers(this), this._displayMuteButton();\n }\n _displayMuteButton() {\n if (this.useCustomUnlockedButton || this._muteButton)\n return;\n this._muteButton = document.createElement(\"BUTTON\"), this._muteButton.className = \"babylonUnmuteIcon\", this._muteButton.id = \"babylonUnmuteIconBtn\", this._muteButton.title = \"Unmute\";\n const t = \".babylonUnmuteIcon { position: absolute; left: 20px; top: 20px; height: 40px; width: 60px; background-color: rgba(51,51,51,0.7); background-image: url(\" + (window.SVGSVGElement ? \"data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2239%22%20height%3D%2232%22%20viewBox%3D%220%200%2039%2032%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M9.625%2018.938l-0.031%200.016h-4.953q-0.016%200-0.031-0.016v-12.453q0-0.016%200.031-0.016h4.953q0.031%200%200.031%200.016v12.453zM12.125%207.688l8.719-8.703v27.453l-8.719-8.719-0.016-0.047v-9.938zM23.359%207.875l1.406-1.406%204.219%204.203%204.203-4.203%201.422%201.406-4.219%204.219%204.219%204.203-1.484%201.359-4.141-4.156-4.219%204.219-1.406-1.422%204.219-4.203z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\" : \"https://cdn.babylonjs.com/Assets/audio.png\") + \"); background-size: 80%; background-repeat:no-repeat; background-position: center; background-position-y: 4px; border: none; outline: none; transition: transform 0.125s ease-out; cursor: pointer; z-index: 9999; } .babylonUnmuteIcon:hover { transform: scale(1.05) } .babylonUnmuteIcon:active { background-color: rgba(51,51,51,1) }\", i = document.createElement(\"style\");\n i.appendChild(document.createTextNode(t)), document.getElementsByTagName(\"head\")[0].appendChild(i), document.body.appendChild(this._muteButton), this._moveButtonToTopLeft(), this._muteButton.addEventListener(\"touchend\", () => {\n this._triggerRunningState();\n }, !0), this._muteButton.addEventListener(\"click\", () => {\n this.unlock();\n }, !0), window.addEventListener(\"resize\", this._onResize);\n }\n _moveButtonToTopLeft() {\n this._hostElement && this._muteButton && (this._muteButton.style.top = this._hostElement.offsetTop + 20 + \"px\", this._muteButton.style.left = this._hostElement.offsetLeft + 20 + \"px\");\n }\n _hideMuteButton() {\n this._muteButton && (document.body.removeChild(this._muteButton), this._muteButton = null);\n }\n /**\n * Destroy and release the resources associated with the audio context.\n */\n dispose() {\n this.canUseWebAudio && this._audioContextInitialized && (this._connectedAnalyser && this._audioContext && (this._connectedAnalyser.stopDebugCanvas(), this._connectedAnalyser.dispose(), this.masterGain.disconnect(), this.masterGain.connect(this._audioContext.destination), this._connectedAnalyser = null), this.masterGain.gain.value = 1), this.WarnedWebAudioUnsupported = !1, this._hideMuteButton(), window.removeEventListener(\"resize\", this._onResize), this.onAudioUnlockedObservable.clear(), this.onAudioLockedObservable.clear();\n }\n /**\n * Gets the global volume sets on the master gain.\n * @returns the global volume if set or -1 otherwise\n */\n getGlobalVolume() {\n return this.canUseWebAudio && this._audioContextInitialized ? this.masterGain.gain.value : -1;\n }\n /**\n * Sets the global volume of your experience (sets on the master gain).\n * @param newVolume Defines the new global volume of the application\n */\n setGlobalVolume(e) {\n this.canUseWebAudio && this._audioContextInitialized && (this.masterGain.gain.value = e);\n }\n /**\n * Connect the audio engine to an audio analyser allowing some amazing\n * synchronization between the sounds/music and your visualization (VuMeter for instance).\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#using-the-analyser\n * @param analyser The analyser to connect to the engine\n */\n connectToAnalyser(e) {\n this._connectedAnalyser && this._connectedAnalyser.stopDebugCanvas(), this.canUseWebAudio && this._audioContextInitialized && this._audioContext && (this._connectedAnalyser = e, this.masterGain.disconnect(), this._connectedAnalyser.connectAudioNodes(this.masterGain, this._audioContext.destination));\n }\n}\nclass ee extends Xe {\n /**\n * Returns the current npm package of the sdk\n */\n // Not mixed with Version for tooling purpose.\n static get NpmPackage() {\n return we.NpmPackage;\n }\n /**\n * Returns the current version of the framework\n */\n static get Version() {\n return we.Version;\n }\n /** Gets the list of created engines */\n static get Instances() {\n return Me.Instances;\n }\n /**\n * Gets the latest created engine\n */\n static get LastCreatedEngine() {\n return Me.LastCreatedEngine;\n }\n /**\n * Gets the latest created scene\n */\n static get LastCreatedScene() {\n return Me.LastCreatedScene;\n }\n /** @internal */\n /**\n * Will flag all materials in all scenes in all engines as dirty to trigger new shader compilation\n * @param flag defines which part of the materials must be marked as dirty\n * @param predicate defines a predicate used to filter which materials should be affected\n */\n static MarkAllMaterialsAsDirty(e, t) {\n for (let i = 0; i < ee.Instances.length; i++) {\n const s = ee.Instances[i];\n for (let r = 0; r < s.scenes.length; r++)\n s.scenes[r].markAllMaterialsAsDirty(e, t);\n }\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Method called to create the default loading screen.\n * This can be overridden in your own app.\n * @param canvas The rendering canvas element\n * @returns The loading screen\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static DefaultLoadingScreenFactory(e) {\n return we.DefaultLoadingScreenFactory(e);\n }\n get _supportsHardwareTextureRescaling() {\n return !!ee._RescalePostProcessFactory;\n }\n _measureFps() {\n this._performanceMonitor.sampleFrame(), this._fps = this._performanceMonitor.averageFPS, this._deltaTime = this._performanceMonitor.instantaneousFrameTime || 0;\n }\n /**\n * Gets the performance monitor attached to this engine\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#engineinstrumentation\n */\n get performanceMonitor() {\n return this._performanceMonitor;\n }\n // Events\n /**\n * Creates a new engine\n * @param canvasOrContext defines the canvas or WebGL context to use for rendering. If you provide a WebGL context, Babylon.js will not hook events on the canvas (like pointers, keyboards, etc...) so no event observables will be available. This is mostly used when Babylon.js is used as a plugin on a system which already used the WebGL context\n * @param antialias defines enable antialiasing (default: false)\n * @param options defines further options to be sent to the getContext() function\n * @param adaptToDeviceRatio defines whether to adapt to the device's viewport characteristics (default: false)\n */\n constructor(e, t, i, s = !1) {\n if (super(e, t, i, s), this.customAnimationFrameRequester = null, this._performanceMonitor = new TC(), this._drawCalls = new nn(), !!e && (this._features.supportRenderPasses = !0, i = this._creationOptions, e.getContext)) {\n const r = e;\n this._sharedInit(r);\n }\n }\n _initGLContext() {\n super._initGLContext(), this._rescalePostProcess = null;\n }\n /**\n * Shared initialization across engines types.\n * @param canvas The canvas associated with this instance of the engine.\n */\n _sharedInit(e) {\n super._sharedInit(e), SC(this, e, this._creationOptions);\n }\n /**\n * Resize an image and returns the image data as an uint8array\n * @param image image to resize\n * @param bufferWidth destination buffer width\n * @param bufferHeight destination buffer height\n * @returns an uint8array containing RGBA values of bufferWidth * bufferHeight size\n */\n resizeImageBitmap(e, t, i) {\n return CC(this, e, t, i);\n }\n /**\n * Engine abstraction for loading and creating an image bitmap from a given source string.\n * @param imageSource source to load the image from.\n * @param options An object that sets options for the image's extraction.\n * @returns ImageBitmap\n */\n _createImageBitmapFromSource(e, t) {\n return yC(this, e, t);\n }\n /**\n * Toggle full screen mode\n * @param requestPointerLock defines if a pointer lock should be requested from the user\n */\n switchFullscreen(e) {\n this.isFullscreen ? this.exitFullscreen() : this.enterFullscreen(e);\n }\n /**\n * Enters full screen mode\n * @param requestPointerLock defines if a pointer lock should be requested from the user\n */\n enterFullscreen(e) {\n this.isFullscreen || (this._pointerLockRequested = e, this._renderingCanvas && AC(this._renderingCanvas));\n }\n /**\n * Exits full screen mode\n */\n exitFullscreen() {\n this.isFullscreen && RC();\n }\n /** States */\n /**\n * Sets a boolean indicating if the dithering state is enabled or disabled\n * @param value defines the dithering state\n */\n setDitheringState(e) {\n e ? this._gl.enable(this._gl.DITHER) : this._gl.disable(this._gl.DITHER);\n }\n /**\n * Sets a boolean indicating if the rasterizer state is enabled or disabled\n * @param value defines the rasterizer state\n */\n setRasterizerState(e) {\n e ? this._gl.disable(this._gl.RASTERIZER_DISCARD) : this._gl.enable(this._gl.RASTERIZER_DISCARD);\n }\n /**\n * Directly set the WebGL Viewport\n * @param x defines the x coordinate of the viewport (in screen space)\n * @param y defines the y coordinate of the viewport (in screen space)\n * @param width defines the width of the viewport (in screen space)\n * @param height defines the height of the viewport (in screen space)\n * @returns the current viewport Object (if any) that is being replaced by this call. You can restore this viewport later on to go back to the original state\n */\n setDirectViewport(e, t, i, s) {\n const r = this._cachedViewport;\n return this._cachedViewport = null, this._viewport(e, t, i, s), r;\n }\n /**\n * Executes a scissor clear (ie. a clear on a specific portion of the screen)\n * @param x defines the x-coordinate of the bottom left corner of the clear rectangle\n * @param y defines the y-coordinate of the corner of the clear rectangle\n * @param width defines the width of the clear rectangle\n * @param height defines the height of the clear rectangle\n * @param clearColor defines the clear color\n */\n scissorClear(e, t, i, s, r) {\n this.enableScissor(e, t, i, s), this.clear(r, !0, !0, !0), this.disableScissor();\n }\n /**\n * Enable scissor test on a specific rectangle (ie. render will only be executed on a specific portion of the screen)\n * @param x defines the x-coordinate of the bottom left corner of the clear rectangle\n * @param y defines the y-coordinate of the corner of the clear rectangle\n * @param width defines the width of the clear rectangle\n * @param height defines the height of the clear rectangle\n */\n enableScissor(e, t, i, s) {\n const r = this._gl;\n r.enable(r.SCISSOR_TEST), r.scissor(e, t, i, s);\n }\n /**\n * Disable previously set scissor test rectangle\n */\n disableScissor() {\n const e = this._gl;\n e.disable(e.SCISSOR_TEST);\n }\n /**\n * @internal\n */\n _loadFileAsync(e, t, i) {\n return new Promise((s, r) => {\n this._loadFile(e, (n) => {\n s(n);\n }, void 0, t, i, (n, o) => {\n r(o);\n });\n });\n }\n /**\n * Gets the source code of the vertex shader associated with a specific webGL program\n * @param program defines the program to use\n * @returns a string containing the source code of the vertex shader associated with the program\n */\n getVertexShaderSource(e) {\n const t = this._gl.getAttachedShaders(e);\n return t ? this._gl.getShaderSource(t[0]) : null;\n }\n /**\n * Gets the source code of the fragment shader associated with a specific webGL program\n * @param program defines the program to use\n * @returns a string containing the source code of the fragment shader associated with the program\n */\n getFragmentShaderSource(e) {\n const t = this._gl.getAttachedShaders(e);\n return t ? this._gl.getShaderSource(t[1]) : null;\n }\n /**\n * sets the object from which width and height will be taken from when getting render width and height\n * Will fallback to the gl object\n * @param dimensions the framebuffer width and height that will be used.\n */\n set framebufferDimensionsObject(e) {\n this._framebufferDimensionsObject = e, this._framebufferDimensionsObject && this.onResizeObservable.notifyObservers(this);\n }\n _rebuildBuffers() {\n for (const e of this.scenes)\n e.resetCachedMaterial(), e._rebuildGeometries();\n for (const e of this._virtualScenes)\n e.resetCachedMaterial(), e._rebuildGeometries();\n super._rebuildBuffers();\n }\n /**\n * Get Font size information\n * @param font font name\n * @returns an object containing ascent, height and descent\n */\n getFontOffset(e) {\n return EC(e);\n }\n _cancelFrame() {\n if (this.customAnimationFrameRequester) {\n if (this._frameHandler !== 0) {\n this._frameHandler = 0;\n const { cancelAnimationFrame: e } = this.customAnimationFrameRequester;\n e && e(this.customAnimationFrameRequester.requestID);\n }\n } else\n super._cancelFrame();\n }\n _renderLoop() {\n if (this._frameHandler = 0, !this._contextWasLost) {\n let e = !0;\n (this.isDisposed || !this.renderEvenInBackground && this._windowIsBackground) && (e = !1), e && (this.beginFrame(), this._renderViews() || this._renderFrame(), this.endFrame());\n }\n this._activeRenderLoops.length > 0 && this._frameHandler === 0 && (this.customAnimationFrameRequester ? (this.customAnimationFrameRequester.requestID = this._queueNewFrame(this.customAnimationFrameRequester.renderFunction || this._boundRenderFunction, this.customAnimationFrameRequester), this._frameHandler = this.customAnimationFrameRequester.requestID) : this._frameHandler = this._queueNewFrame(this._boundRenderFunction, this.getHostWindow()));\n }\n /**\n * Enters Pointerlock mode\n */\n enterPointerlock() {\n this._renderingCanvas && fx(this._renderingCanvas);\n }\n /**\n * Exits Pointerlock mode\n */\n exitPointerlock() {\n IC();\n }\n /**\n * Begin a new frame\n */\n beginFrame() {\n this._measureFps(), super.beginFrame();\n }\n _deletePipelineContext(e) {\n const t = e;\n t && t.program && t.transformFeedback && (this.deleteTransformFeedback(t.transformFeedback), t.transformFeedback = null), super._deletePipelineContext(e);\n }\n createShaderProgram(e, t, i, s, r, n = null) {\n r = r || this._gl, this.onBeforeShaderCompilationObservable.notifyObservers(this);\n const o = super.createShaderProgram(e, t, i, s, r, n);\n return this.onAfterShaderCompilationObservable.notifyObservers(this), o;\n }\n _createShaderProgram(e, t, i, s, r = null) {\n const n = s.createProgram();\n if (e.program = n, !n)\n throw new Error(\"Unable to create program\");\n if (s.attachShader(n, t), s.attachShader(n, i), this.webGLVersion > 1 && r) {\n const o = this.createTransformFeedback();\n this.bindTransformFeedback(o), this.setTranformFeedbackVaryings(n, r), e.transformFeedback = o;\n }\n return s.linkProgram(n), this.webGLVersion > 1 && r && this.bindTransformFeedback(null), e.context = s, e.vertexShader = t, e.fragmentShader = i, e.isParallelCompiled || this._finalizePipelineContext(e), n;\n }\n /**\n * @internal\n */\n _releaseTexture(e) {\n super._releaseTexture(e);\n }\n /**\n * @internal\n */\n _releaseRenderTargetWrapper(e) {\n super._releaseRenderTargetWrapper(e), this.scenes.forEach((t) => {\n t.postProcesses.forEach((i) => {\n i._outputTexture === e && (i._outputTexture = null);\n }), t.cameras.forEach((i) => {\n i._postProcesses.forEach((s) => {\n s && s._outputTexture === e && (s._outputTexture = null);\n });\n });\n });\n }\n /**\n * @internal\n * Rescales a texture\n * @param source input texture\n * @param destination destination texture\n * @param scene scene to use to render the resize\n * @param internalFormat format to use when resizing\n * @param onComplete callback to be called when resize has completed\n */\n _rescaleTexture(e, t, i, s, r) {\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, this._gl.LINEAR), this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, this._gl.LINEAR), this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_S, this._gl.CLAMP_TO_EDGE), this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_T, this._gl.CLAMP_TO_EDGE);\n const n = this.createRenderTargetTexture({\n width: t.width,\n height: t.height\n }, {\n generateMipMaps: !1,\n type: 0,\n samplingMode: 2,\n generateDepthBuffer: !1,\n generateStencilBuffer: !1\n });\n !this._rescalePostProcess && ee._RescalePostProcessFactory && (this._rescalePostProcess = ee._RescalePostProcessFactory(this)), this._rescalePostProcess && (this._rescalePostProcess.externalTextureSamplerBinding = !0, this._rescalePostProcess.getEffect().executeWhenCompiled(() => {\n this._rescalePostProcess.onApply = function(l) {\n l._bindTexture(\"textureSampler\", e);\n };\n let o = i;\n o || (o = this.scenes[this.scenes.length - 1]), o.postProcessManager.directRender([this._rescalePostProcess], n, !0), this._bindTextureDirectly(this._gl.TEXTURE_2D, t, !0), this._gl.copyTexImage2D(this._gl.TEXTURE_2D, 0, s, 0, 0, t.width, t.height, 0), this.unBindFramebuffer(n), n.dispose(), r && r();\n }));\n }\n /**\n * Wraps an external web gl texture in a Babylon texture.\n * @param texture defines the external texture\n * @param hasMipMaps defines whether the external texture has mip maps (default: false)\n * @param samplingMode defines the sampling mode for the external texture (default: 3)\n * @param width defines the width for the external texture (default: 0)\n * @param height defines the height for the external texture (default: 0)\n * @returns the babylon internal texture\n */\n wrapWebGLTexture(e, t = !1, i = 3, s = 0, r = 0) {\n const n = new pc(e, this._gl), o = new Nt(this, 0, !0);\n return o._hardwareTexture = n, o.baseWidth = s, o.baseHeight = r, o.width = s, o.height = r, o.isReady = !0, o.useMipMaps = t, this.updateTextureSamplingMode(i, o), o;\n }\n /**\n * @internal\n */\n _uploadImageToTexture(e, t, i = 0, s = 0) {\n const r = this._gl, n = this._getWebGLTextureType(e.type), o = this._getInternalFormat(e.format), l = this._getRGBABufferInternalSizedFormat(e.type, o), h = e.isCube ? r.TEXTURE_CUBE_MAP : r.TEXTURE_2D;\n this._bindTextureDirectly(h, e, !0), this._unpackFlipY(e.invertY);\n let c = r.TEXTURE_2D;\n e.isCube && (c = r.TEXTURE_CUBE_MAP_POSITIVE_X + i), r.texImage2D(c, s, l, o, n, t), this._bindTextureDirectly(h, null, !0);\n }\n /**\n * Updates a depth texture Comparison Mode and Function.\n * If the comparison Function is equal to 0, the mode will be set to none.\n * Otherwise, this only works in webgl 2 and requires a shadow sampler in the shader.\n * @param texture The texture to set the comparison function for\n * @param comparisonFunction The comparison function to set, 0 if no comparison required\n */\n updateTextureComparisonFunction(e, t) {\n if (this.webGLVersion === 1) {\n L.Error(\"WebGL 1 does not support texture comparison.\");\n return;\n }\n const i = this._gl;\n e.isCube ? (this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, e, !0), t === 0 ? (i.texParameteri(i.TEXTURE_CUBE_MAP, i.TEXTURE_COMPARE_FUNC, 515), i.texParameteri(i.TEXTURE_CUBE_MAP, i.TEXTURE_COMPARE_MODE, i.NONE)) : (i.texParameteri(i.TEXTURE_CUBE_MAP, i.TEXTURE_COMPARE_FUNC, t), i.texParameteri(i.TEXTURE_CUBE_MAP, i.TEXTURE_COMPARE_MODE, i.COMPARE_REF_TO_TEXTURE)), this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null)) : (this._bindTextureDirectly(this._gl.TEXTURE_2D, e, !0), t === 0 ? (i.texParameteri(i.TEXTURE_2D, i.TEXTURE_COMPARE_FUNC, 515), i.texParameteri(i.TEXTURE_2D, i.TEXTURE_COMPARE_MODE, i.NONE)) : (i.texParameteri(i.TEXTURE_2D, i.TEXTURE_COMPARE_FUNC, t), i.texParameteri(i.TEXTURE_2D, i.TEXTURE_COMPARE_MODE, i.COMPARE_REF_TO_TEXTURE)), this._bindTextureDirectly(this._gl.TEXTURE_2D, null)), e._comparisonFunction = t;\n }\n /**\n * Creates a webGL buffer to use with instantiation\n * @param capacity defines the size of the buffer\n * @returns the webGL buffer\n */\n createInstancesBuffer(e) {\n const t = this._gl.createBuffer();\n if (!t)\n throw new Error(\"Unable to create instance buffer\");\n const i = new _u(t);\n return i.capacity = e, this.bindArrayBuffer(i), this._gl.bufferData(this._gl.ARRAY_BUFFER, e, this._gl.DYNAMIC_DRAW), i.references = 1, i;\n }\n /**\n * Delete a webGL buffer used with instantiation\n * @param buffer defines the webGL buffer to delete\n */\n deleteInstancesBuffer(e) {\n this._gl.deleteBuffer(e);\n }\n _clientWaitAsync(e, t = 0, i = 10) {\n const s = this._gl;\n return new Promise((r, n) => {\n const o = () => {\n const l = s.clientWaitSync(e, t, 0);\n if (l == s.WAIT_FAILED) {\n n();\n return;\n }\n if (l == s.TIMEOUT_EXPIRED) {\n setTimeout(o, i);\n return;\n }\n r();\n };\n o();\n });\n }\n /**\n * @internal\n */\n _readPixelsAsync(e, t, i, s, r, n, o) {\n if (this._webGLVersion < 2)\n throw new Error(\"_readPixelsAsync only work on WebGL2+\");\n const l = this._gl, h = l.createBuffer();\n l.bindBuffer(l.PIXEL_PACK_BUFFER, h), l.bufferData(l.PIXEL_PACK_BUFFER, o.byteLength, l.STREAM_READ), l.readPixels(e, t, i, s, r, n, 0), l.bindBuffer(l.PIXEL_PACK_BUFFER, null);\n const c = l.fenceSync(l.SYNC_GPU_COMMANDS_COMPLETE, 0);\n return c ? (l.flush(), this._clientWaitAsync(c, 0, 10).then(() => (l.deleteSync(c), l.bindBuffer(l.PIXEL_PACK_BUFFER, h), l.getBufferSubData(l.PIXEL_PACK_BUFFER, 0, o), l.bindBuffer(l.PIXEL_PACK_BUFFER, null), l.deleteBuffer(h), o))) : null;\n }\n dispose() {\n this.hideLoadingUI(), this._rescalePostProcess && this._rescalePostProcess.dispose(), bC(this, this._renderingCanvas), super.dispose();\n }\n}\nee.ALPHA_DISABLE = 0;\nee.ALPHA_ADD = 1;\nee.ALPHA_COMBINE = 2;\nee.ALPHA_SUBTRACT = 3;\nee.ALPHA_MULTIPLY = 4;\nee.ALPHA_MAXIMIZED = 5;\nee.ALPHA_ONEONE = 6;\nee.ALPHA_PREMULTIPLIED = 7;\nee.ALPHA_PREMULTIPLIED_PORTERDUFF = 8;\nee.ALPHA_INTERPOLATE = 9;\nee.ALPHA_SCREENMODE = 10;\nee.DELAYLOADSTATE_NONE = 0;\nee.DELAYLOADSTATE_LOADED = 1;\nee.DELAYLOADSTATE_LOADING = 2;\nee.DELAYLOADSTATE_NOTLOADED = 4;\nee.NEVER = 512;\nee.ALWAYS = 519;\nee.LESS = 513;\nee.EQUAL = 514;\nee.LEQUAL = 515;\nee.GREATER = 516;\nee.GEQUAL = 518;\nee.NOTEQUAL = 517;\nee.KEEP = 7680;\nee.REPLACE = 7681;\nee.INCR = 7682;\nee.DECR = 7683;\nee.INVERT = 5386;\nee.INCR_WRAP = 34055;\nee.DECR_WRAP = 34056;\nee.TEXTURE_CLAMP_ADDRESSMODE = 0;\nee.TEXTURE_WRAP_ADDRESSMODE = 1;\nee.TEXTURE_MIRROR_ADDRESSMODE = 2;\nee.TEXTUREFORMAT_ALPHA = 0;\nee.TEXTUREFORMAT_LUMINANCE = 1;\nee.TEXTUREFORMAT_LUMINANCE_ALPHA = 2;\nee.TEXTUREFORMAT_RGB = 4;\nee.TEXTUREFORMAT_RGBA = 5;\nee.TEXTUREFORMAT_RED = 6;\nee.TEXTUREFORMAT_R = 6;\nee.TEXTUREFORMAT_RG = 7;\nee.TEXTUREFORMAT_RED_INTEGER = 8;\nee.TEXTUREFORMAT_R_INTEGER = 8;\nee.TEXTUREFORMAT_RG_INTEGER = 9;\nee.TEXTUREFORMAT_RGB_INTEGER = 10;\nee.TEXTUREFORMAT_RGBA_INTEGER = 11;\nee.TEXTURETYPE_UNSIGNED_BYTE = 0;\nee.TEXTURETYPE_UNSIGNED_INT = 0;\nee.TEXTURETYPE_FLOAT = 1;\nee.TEXTURETYPE_HALF_FLOAT = 2;\nee.TEXTURETYPE_BYTE = 3;\nee.TEXTURETYPE_SHORT = 4;\nee.TEXTURETYPE_UNSIGNED_SHORT = 5;\nee.TEXTURETYPE_INT = 6;\nee.TEXTURETYPE_UNSIGNED_INTEGER = 7;\nee.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 = 8;\nee.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 = 9;\nee.TEXTURETYPE_UNSIGNED_SHORT_5_6_5 = 10;\nee.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV = 11;\nee.TEXTURETYPE_UNSIGNED_INT_24_8 = 12;\nee.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV = 13;\nee.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV = 14;\nee.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV = 15;\nee.TEXTURE_NEAREST_SAMPLINGMODE = 1;\nee.TEXTURE_BILINEAR_SAMPLINGMODE = 2;\nee.TEXTURE_TRILINEAR_SAMPLINGMODE = 3;\nee.TEXTURE_NEAREST_NEAREST_MIPLINEAR = 8;\nee.TEXTURE_LINEAR_LINEAR_MIPNEAREST = 11;\nee.TEXTURE_LINEAR_LINEAR_MIPLINEAR = 3;\nee.TEXTURE_NEAREST_NEAREST_MIPNEAREST = 4;\nee.TEXTURE_NEAREST_LINEAR_MIPNEAREST = 5;\nee.TEXTURE_NEAREST_LINEAR_MIPLINEAR = 6;\nee.TEXTURE_NEAREST_LINEAR = 7;\nee.TEXTURE_NEAREST_NEAREST = 1;\nee.TEXTURE_LINEAR_NEAREST_MIPNEAREST = 9;\nee.TEXTURE_LINEAR_NEAREST_MIPLINEAR = 10;\nee.TEXTURE_LINEAR_LINEAR = 2;\nee.TEXTURE_LINEAR_NEAREST = 12;\nee.TEXTURE_EXPLICIT_MODE = 0;\nee.TEXTURE_SPHERICAL_MODE = 1;\nee.TEXTURE_PLANAR_MODE = 2;\nee.TEXTURE_CUBIC_MODE = 3;\nee.TEXTURE_PROJECTION_MODE = 4;\nee.TEXTURE_SKYBOX_MODE = 5;\nee.TEXTURE_INVCUBIC_MODE = 6;\nee.TEXTURE_EQUIRECTANGULAR_MODE = 7;\nee.TEXTURE_FIXED_EQUIRECTANGULAR_MODE = 8;\nee.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE = 9;\nee.SCALEMODE_FLOOR = 1;\nee.SCALEMODE_NEAREST = 2;\nee.SCALEMODE_CEILING = 3;\nconst xS = (a, e, t) => !a || a.getClassName && a.getClassName() === \"Mesh\" ? null : a.getClassName && (a.getClassName() === \"SubMesh\" || a.getClassName() === \"PhysicsBody\") ? a.clone(e) : a.clone ? a.clone() : Array.isArray(a) ? a.slice() : t && typeof a == \"object\" ? { ...a } : null;\nfunction qP(a) {\n const e = [];\n do\n Object.getOwnPropertyNames(a).forEach(function(t) {\n e.indexOf(t) === -1 && e.push(t);\n });\n while (a = Object.getPrototypeOf(a));\n return e;\n}\nclass Hs {\n /**\n * Tries to copy an object by duplicating every property\n * @param source defines the source object\n * @param destination defines the target object\n * @param doNotCopyList defines a list of properties to avoid\n * @param mustCopyList defines a list of properties to copy (even if they start with _)\n * @param shallowCopyValues defines wether properties referencing objects (none cloneable) must be shallow copied (false by default)\n * @remarks shallowCopyValues will not instantite the copied values which makes it only usable for \"JSON objects\"\n */\n static DeepCopy(e, t, i, s, r = !1) {\n const n = qP(e);\n for (const o of n) {\n if (o[0] === \"_\" && (!s || s.indexOf(o) === -1) || o.endsWith(\"Observable\") || i && i.indexOf(o) !== -1)\n continue;\n const l = e[o], h = typeof l;\n if (h !== \"function\")\n try {\n if (h === \"object\")\n if (l instanceof Uint8Array)\n t[o] = Uint8Array.from(l);\n else if (l instanceof Array) {\n if (t[o] = [], l.length > 0)\n if (typeof l[0] == \"object\")\n for (let c = 0; c < l.length; c++) {\n const u = xS(l[c], t, r);\n t[o].indexOf(u) === -1 && t[o].push(u);\n }\n else\n t[o] = l.slice(0);\n } else\n t[o] = xS(l, t, r);\n else\n t[o] = l;\n } catch (c) {\n L.Warn(c.message);\n }\n }\n }\n}\nfunction QP() {\n return typeof _native < \"u\" && _native.XMLHttpRequest ? new _native.XMLHttpRequest() : new XMLHttpRequest();\n}\nclass Di {\n constructor() {\n this._xhr = QP(), this._requestURL = \"\";\n }\n /**\n * This function can be called to check if there are request modifiers for network requests\n * @returns true if there are any custom requests available\n */\n static get IsCustomRequestAvailable() {\n return Object.keys(Di.CustomRequestHeaders).length > 0 || Di.CustomRequestModifiers.length > 0;\n }\n _injectCustomRequestHeaders() {\n if (!this._shouldSkipRequestModifications(this._requestURL))\n for (const e in Di.CustomRequestHeaders) {\n const t = Di.CustomRequestHeaders[e];\n t && this._xhr.setRequestHeader(e, t);\n }\n }\n _shouldSkipRequestModifications(e) {\n return Di.SkipRequestModificationForBabylonCDN && (e.includes(\"preview.babylonjs.com\") || e.includes(\"cdn.babylonjs.com\"));\n }\n /**\n * Gets or sets a function to be called when loading progress changes\n */\n get onprogress() {\n return this._xhr.onprogress;\n }\n set onprogress(e) {\n this._xhr.onprogress = e;\n }\n /**\n * Returns client's state\n */\n get readyState() {\n return this._xhr.readyState;\n }\n /**\n * Returns client's status\n */\n get status() {\n return this._xhr.status;\n }\n /**\n * Returns client's status as a text\n */\n get statusText() {\n return this._xhr.statusText;\n }\n /**\n * Returns client's response\n */\n get response() {\n return this._xhr.response;\n }\n /**\n * Returns client's response url\n */\n get responseURL() {\n return this._xhr.responseURL;\n }\n /**\n * Returns client's response as text\n */\n get responseText() {\n return this._xhr.responseText;\n }\n /**\n * Gets or sets the expected response type\n */\n get responseType() {\n return this._xhr.responseType;\n }\n set responseType(e) {\n this._xhr.responseType = e;\n }\n /**\n * Gets or sets the timeout value in milliseconds\n */\n get timeout() {\n return this._xhr.timeout;\n }\n set timeout(e) {\n this._xhr.timeout = e;\n }\n addEventListener(e, t, i) {\n this._xhr.addEventListener(e, t, i);\n }\n removeEventListener(e, t, i) {\n this._xhr.removeEventListener(e, t, i);\n }\n /**\n * Cancels any network activity\n */\n abort() {\n this._xhr.abort();\n }\n /**\n * Initiates the request. The optional argument provides the request body. The argument is ignored if request method is GET or HEAD\n * @param body defines an optional request body\n */\n send(e) {\n Di.CustomRequestHeaders && this._injectCustomRequestHeaders(), this._xhr.send(e);\n }\n /**\n * Sets the request method, request URL\n * @param method defines the method to use (GET, POST, etc..)\n * @param url defines the url to connect with\n */\n open(e, t) {\n for (const i of Di.CustomRequestModifiers) {\n if (this._shouldSkipRequestModifications(t))\n return;\n i(this._xhr, t);\n }\n t = t.replace(\"file:http:\", \"http:\"), t = t.replace(\"file:https:\", \"https:\"), this._requestURL = t, this._xhr.open(e, t, !0);\n }\n /**\n * Sets the value of a request header.\n * @param name The name of the header whose value is to be set\n * @param value The value to set as the body of the header\n */\n setRequestHeader(e, t) {\n this._xhr.setRequestHeader(e, t);\n }\n /**\n * Get the string containing the text of a particular header's value.\n * @param name The name of the header\n * @returns The string containing the text of the given header name\n */\n getResponseHeader(e) {\n return this._xhr.getResponseHeader(e);\n }\n}\nDi.CustomRequestHeaders = {};\nDi.CustomRequestModifiers = new Array();\nDi.SkipRequestModificationForBabylonCDN = !0;\nclass Zc {\n}\nZc.FilesToLoad = {};\nclass ZP {\n /**\n * Function used to defines an exponential back off strategy\n * @param maxRetries defines the maximum number of retries (3 by default)\n * @param baseInterval defines the interval between retries\n * @returns the strategy function to use\n */\n static ExponentialBackoff(e = 3, t = 500) {\n return (i, s, r) => s.status !== 0 || r >= e || i.indexOf(\"file:\") !== -1 ? -1 : Math.pow(2, r) * t;\n }\n}\nclass Wh extends Error {\n}\nWh._setPrototypeOf = Object.setPrototypeOf || ((a, e) => (a.__proto__ = e, a));\nconst Go = {\n // Mesh errors 0-999\n /** Invalid or empty mesh vertex positions. */\n MeshInvalidPositionsError: 0,\n // Texture errors 1000-1999\n /** Unsupported texture found. */\n UnsupportedTextureError: 1e3,\n // GLTFLoader errors 2000-2999\n /** Unexpected magic number found in GLTF file header. */\n GLTFLoaderUnexpectedMagicError: 2e3,\n // SceneLoader errors 3000-3999\n /** SceneLoader generic error code. Ideally wraps the inner exception. */\n SceneLoaderError: 3e3,\n // File related errors 4000-4999\n /** Load file error */\n LoadFileError: 4e3,\n /** Request file error */\n RequestFileError: 4001,\n /** Read file error */\n ReadFileError: 4002\n};\nclass Ia extends Wh {\n /**\n * Creates a new RuntimeError\n * @param message defines the message of the error\n * @param errorCode the error code\n * @param innerError the error that caused the outer error\n */\n constructor(e, t, i) {\n super(e), this.errorCode = t, this.innerError = i, this.name = \"RuntimeError\", Wh._setPrototypeOf(this, Ia.prototype);\n }\n}\nconst JP = (a, e) => a.endsWith(e), eM = (a, e) => a ? a.startsWith(e) : !1, tM = (a) => {\n if (typeof TextDecoder < \"u\")\n return new TextDecoder().decode(a);\n let e = \"\";\n for (let t = 0; t < a.byteLength; t++)\n e += String.fromCharCode(a[t]);\n return e;\n}, px = (a) => {\n const e = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let t = \"\", i, s, r, n, o, l, h, c = 0;\n const u = ArrayBuffer.isView(a) ? new Uint8Array(a.buffer, a.byteOffset, a.byteLength) : new Uint8Array(a);\n for (; c < u.length; )\n i = u[c++], s = c < u.length ? u[c++] : Number.NaN, r = c < u.length ? u[c++] : Number.NaN, n = i >> 2, o = (i & 3) << 4 | s >> 4, l = (s & 15) << 2 | r >> 6, h = r & 63, isNaN(s) ? l = h = 64 : isNaN(r) && (h = 64), t += e.charAt(n) + e.charAt(o) + e.charAt(l) + e.charAt(h);\n return t;\n}, _x = (a) => atob(a), mx = (a) => {\n const e = _x(a), t = e.length, i = new Uint8Array(new ArrayBuffer(t));\n for (let s = 0; s < t; s++)\n i[s] = e.charCodeAt(s);\n return i.buffer;\n}, iM = (a, e) => {\n let t = String(a);\n for (; t.length < e; )\n t = \"0\" + t;\n return t;\n}, kj = {\n EndsWith: JP,\n StartsWith: eM,\n Decode: tM,\n EncodeArrayBufferToBase64: px,\n DecodeBase64ToString: _x,\n DecodeBase64ToBinary: mx,\n PadNumber: iM\n};\nclass Hh {\n /**\n * Polyfill for setImmediate\n * @param action defines the action to execute after the current execution block\n */\n static SetImmediate(e) {\n us() && window.setImmediate ? window.setImmediate(e) : setTimeout(e, 1);\n }\n}\nconst PC = new RegExp(/^data:([^,]+\\/[^,]+)?;base64,/i);\nclass Mp extends Ia {\n /**\n * Creates a new LoadFileError\n * @param message defines the message of the error\n * @param object defines the optional web request\n */\n constructor(e, t) {\n super(e, Go.LoadFileError), this.name = \"LoadFileError\", Wh._setPrototypeOf(this, Mp.prototype), t instanceof Di ? this.request = t : this.file = t;\n }\n}\nclass Dp extends Ia {\n /**\n * Creates a new LoadFileError\n * @param message defines the message of the error\n * @param request defines the optional web request\n */\n constructor(e, t) {\n super(e, Go.RequestFileError), this.request = t, this.name = \"RequestFileError\", Wh._setPrototypeOf(this, Dp.prototype);\n }\n}\nclass gx extends Ia {\n /**\n * Creates a new ReadFileError\n * @param message defines the message of the error\n * @param file defines the optional file\n */\n constructor(e, t) {\n super(e, Go.ReadFileError), this.file = t, this.name = \"ReadFileError\", Wh._setPrototypeOf(this, gx.prototype);\n }\n}\nconst sM = (a) => (a = a.replace(/#/gm, \"%23\"), a), Xi = {\n /**\n * Gets or sets the retry strategy to apply when an error happens while loading an asset.\n * When defining this function, return the wait time before trying again or return -1 to\n * stop retrying and error out.\n */\n DefaultRetryStrategy: ZP.ExponentialBackoff(),\n /**\n * Gets or sets the base URL to use to load assets\n */\n BaseUrl: \"\",\n /**\n * Default behaviour for cors in the application.\n * It can be a string if the expected behavior is identical in the entire app.\n * Or a callback to be able to set it per url or on a group of them (in case of Video source for instance)\n */\n CorsBehavior: \"anonymous\",\n /**\n * Gets or sets a function used to pre-process url before using them to load assets\n * @param url\n * @returns the processed url\n */\n PreprocessUrl: (a) => a,\n /**\n * Gets or sets the base URL to use to load scripts\n * Used for both JS and WASM\n */\n ScriptBaseUrl: \"\",\n /**\n * Gets or sets a function used to pre-process script url before using them to load.\n * Used for both JS and WASM\n * @param url defines the url to process\n * @returns the processed url\n */\n ScriptPreprocessUrl: (a) => a,\n /**\n * Gets or sets a function used to clean the url before using it to load assets\n * @param url defines the url to clean\n * @returns the cleaned url\n */\n CleanUrl: sM\n}, xx = (a, e) => {\n if (!(a && a.indexOf(\"data:\") === 0) && Xi.CorsBehavior)\n if (typeof Xi.CorsBehavior == \"string\" || Xi.CorsBehavior instanceof String)\n e.crossOrigin = Xi.CorsBehavior;\n else {\n const t = Xi.CorsBehavior(a);\n t && (e.crossOrigin = t);\n }\n}, rf = (a, e, t, i, s = \"\", r) => {\n const n = Me.LastCreatedEngine;\n if (typeof HTMLImageElement > \"u\" && !(n != null && n._features.forceBitmapOverHTMLImageElement))\n return t(\"LoadImage is only supported in web or BabylonNative environments.\"), null;\n let o, l = !1;\n a instanceof ArrayBuffer || ArrayBuffer.isView(a) ? typeof Blob < \"u\" && typeof URL < \"u\" ? (o = URL.createObjectURL(new Blob([a], { type: s })), l = !0) : o = `data:${s};base64,` + px(a) : a instanceof Blob ? (o = URL.createObjectURL(a), l = !0) : (o = Xi.CleanUrl(a), o = Xi.PreprocessUrl(o));\n const h = (b) => {\n if (t) {\n const S = o || a.toString();\n t(`Error while trying to load image: ${S.indexOf(\"http\") === 0 || S.length <= 128 ? S : S.slice(0, 128) + \"...\"}`, b);\n }\n };\n if (n != null && n._features.forceBitmapOverHTMLImageElement)\n return Qo(o, (b) => {\n n.createImageBitmap(new Blob([b], { type: s }), { premultiplyAlpha: \"none\", ...r }).then((S) => {\n e(S), l && URL.revokeObjectURL(o);\n }).catch((S) => {\n t && t(\"Error while trying to load image: \" + a, S);\n });\n }, void 0, i || void 0, !0, (b, S) => {\n h(S);\n }), null;\n const c = new Image();\n xx(o, c);\n const u = [], d = () => {\n u.forEach((b) => {\n b.target.addEventListener(b.name, b.handler);\n });\n }, f = () => {\n u.forEach((b) => {\n b.target.removeEventListener(b.name, b.handler);\n }), u.length = 0;\n }, p = () => {\n f(), e(c), l && c.src && URL.revokeObjectURL(c.src);\n }, _ = (b) => {\n f(), h(b), l && c.src && URL.revokeObjectURL(c.src);\n }, m = (b) => {\n if (b.blockedURI !== c.src)\n return;\n f();\n const S = new Error(`CSP violation of policy ${b.effectiveDirective} ${b.blockedURI}. Current policy is ${b.originalPolicy}`);\n Me.UseFallbackTexture = !1, h(S), l && c.src && URL.revokeObjectURL(c.src), c.src = \"\";\n };\n u.push({ target: c, name: \"load\", handler: p }), u.push({ target: c, name: \"error\", handler: _ }), u.push({ target: document, name: \"securitypolicyviolation\", handler: m }), d();\n const x = o.substring(0, 5) === \"blob:\", v = o.substring(0, 5) === \"data:\", T = () => {\n x || v || !Di.IsCustomRequestAvailable ? c.src = o : Qo(o, (b, S, C) => {\n const P = !s && C ? C : s, N = new Blob([b], { type: P }), F = URL.createObjectURL(N);\n l = !0, c.src = F;\n }, void 0, i || void 0, !0, (b, S) => {\n h(S);\n });\n }, E = () => {\n i && i.loadImage(o, c);\n };\n if (!x && !v && i && i.enableTexturesOffline)\n i.open(E, T);\n else {\n if (o.indexOf(\"file:\") !== -1) {\n const b = decodeURIComponent(o.substring(5).toLowerCase());\n if (Zc.FilesToLoad[b] && typeof URL < \"u\") {\n try {\n let S;\n try {\n S = URL.createObjectURL(Zc.FilesToLoad[b]);\n } catch {\n S = URL.createObjectURL(Zc.FilesToLoad[b]);\n }\n c.src = S, l = !0;\n } catch {\n c.src = \"\";\n }\n return c;\n }\n }\n T();\n }\n return c;\n}, xu = (a, e, t, i, s) => {\n const r = new FileReader(), n = {\n onCompleteObservable: new G(),\n abort: () => r.abort()\n };\n return r.onloadend = () => n.onCompleteObservable.notifyObservers(n), s && (r.onerror = () => {\n s(new gx(`Unable to read ${a.name}`, a));\n }), r.onload = (o) => {\n e(o.target.result);\n }, t && (r.onprogress = t), i ? r.readAsArrayBuffer(a) : r.readAsText(a), n;\n}, Qo = (a, e, t, i, s, r, n) => {\n if (a.name)\n return xu(a, e, t, s, r ? (c) => {\n r(void 0, c);\n } : void 0);\n const o = a;\n if (o.indexOf(\"file:\") !== -1) {\n let c = decodeURIComponent(o.substring(5).toLowerCase());\n c.indexOf(\"./\") === 0 && (c = c.substring(2));\n const u = Zc.FilesToLoad[c];\n if (u)\n return xu(u, e, t, s, r ? (d) => r(void 0, new Mp(d.message, d.file)) : void 0);\n }\n const { match: l, type: h } = rM(o);\n if (l) {\n const c = {\n onCompleteObservable: new G(),\n abort: () => () => {\n }\n };\n try {\n const u = s ? Sx(o) : DC(o);\n e(u, void 0, h);\n } catch (u) {\n r ? r(void 0, u) : L.Error(u.message || \"Failed to parse the Data URL\");\n }\n return Hh.SetImmediate(() => {\n c.onCompleteObservable.notifyObservers(c);\n }), c;\n }\n return vx(o, (c, u) => {\n e(c, u == null ? void 0 : u.responseURL, u == null ? void 0 : u.getResponseHeader(\"content-type\"));\n }, t, i, s, r ? (c) => {\n r(c.request, new Mp(c.message, c.request));\n } : void 0, n);\n}, vx = (a, e, t, i, s, r, n) => {\n a = Xi.CleanUrl(a), a = Xi.PreprocessUrl(a);\n const o = Xi.BaseUrl + a;\n let l = !1;\n const h = {\n onCompleteObservable: new G(),\n abort: () => l = !0\n }, c = () => {\n let u = new Di(), d = null, f;\n const p = () => {\n u && (t && u.removeEventListener(\"progress\", t), f && u.removeEventListener(\"readystatechange\", f), u.removeEventListener(\"loadend\", _));\n };\n let _ = () => {\n p(), h.onCompleteObservable.notifyObservers(h), h.onCompleteObservable.clear(), t = void 0, f = null, _ = null, r = void 0, n = void 0, e = void 0;\n };\n h.abort = () => {\n l = !0, _ && _(), u && u.readyState !== (XMLHttpRequest.DONE || 4) && u.abort(), d !== null && (clearTimeout(d), d = null), u = null;\n };\n const m = (v) => {\n const T = v.message || \"Unknown error\";\n r && u ? r(new Dp(T, u)) : L.Error(T);\n }, x = (v) => {\n if (u) {\n if (u.open(\"GET\", o), n)\n try {\n n(u);\n } catch (T) {\n m(T);\n return;\n }\n s && (u.responseType = \"arraybuffer\"), t && u.addEventListener(\"progress\", t), _ && u.addEventListener(\"loadend\", _), f = () => {\n if (!(l || !u) && u.readyState === (XMLHttpRequest.DONE || 4)) {\n if (f && u.removeEventListener(\"readystatechange\", f), u.status >= 200 && u.status < 300 || u.status === 0 && (!us() || MC())) {\n try {\n e && e(s ? u.response : u.responseText, u);\n } catch (b) {\n m(b);\n }\n return;\n }\n const T = Xi.DefaultRetryStrategy;\n if (T) {\n const b = T(o, u, v);\n if (b !== -1) {\n p(), u = new Di(), d = setTimeout(() => x(v + 1), b);\n return;\n }\n }\n const E = new Dp(\"Error status: \" + u.status + \" \" + u.statusText + \" - Unable to load \" + o, u);\n r && r(E);\n }\n }, u.addEventListener(\"readystatechange\", f), u.send();\n }\n };\n x(0);\n };\n if (i && i.enableSceneOffline) {\n const u = (f) => {\n f && f.status > 400 ? r && r(f) : c();\n }, d = () => {\n i && i.loadFile(Xi.BaseUrl + a, (f) => {\n !l && e && e(f), h.onCompleteObservable.notifyObservers(h);\n }, t ? (f) => {\n !l && t && t(f);\n } : void 0, u, s);\n };\n i.open(d, u);\n } else\n c();\n return h;\n}, MC = () => typeof location < \"u\" && location.protocol === \"file:\", Tx = (a) => PC.test(a), rM = (a) => {\n const e = PC.exec(a);\n return e === null || e.length === 0 ? { match: !1, type: \"\" } : { match: !0, type: e[0].replace(\"data:\", \"\").replace(\"base64,\", \"\") };\n};\nfunction Sx(a) {\n return mx(a.split(\",\")[1]);\n}\nconst DC = (a) => _x(a.split(\",\")[1]), nM = () => {\n we._FileToolsLoadImage = rf, Ip.loadFile = Qo, mC.loadFile = Qo;\n};\nnM();\nlet Wc;\nconst aM = (a, e, t, i, s, r, n, o, l, h) => {\n Wc = {\n DecodeBase64UrlToBinary: a,\n DecodeBase64UrlToString: e,\n DefaultRetryStrategy: t.DefaultRetryStrategy,\n BaseUrl: t.BaseUrl,\n CorsBehavior: t.CorsBehavior,\n PreprocessUrl: t.PreprocessUrl,\n IsBase64DataUrl: i,\n IsFileURL: s,\n LoadFile: r,\n LoadImage: n,\n ReadFile: o,\n RequestFile: l,\n SetCorsBehavior: h\n }, Object.defineProperty(Wc, \"DefaultRetryStrategy\", {\n get: function() {\n return t.DefaultRetryStrategy;\n },\n set: function(c) {\n t.DefaultRetryStrategy = c;\n }\n }), Object.defineProperty(Wc, \"BaseUrl\", {\n get: function() {\n return t.BaseUrl;\n },\n set: function(c) {\n t.BaseUrl = c;\n }\n }), Object.defineProperty(Wc, \"PreprocessUrl\", {\n get: function() {\n return t.PreprocessUrl;\n },\n set: function(c) {\n t.PreprocessUrl = c;\n }\n }), Object.defineProperty(Wc, \"CorsBehavior\", {\n get: function() {\n return t.CorsBehavior;\n },\n set: function(c) {\n t.CorsBehavior = c;\n }\n });\n};\naM(Sx, DC, Xi, Tx, MC, Qo, rf, xu, vx, xx);\nconst Op = {};\nfunction U(a, e) {\n Op[a] = e;\n}\nfunction Oi(a) {\n return Op[a];\n}\nfunction Gj(a) {\n for (const e in Op)\n if (a instanceof Op[e] && !e.includes(\"Abstract\"))\n return e;\n return \"Unknown\";\n}\nclass Jc {\n /**\n * Tries to instantiate a new object from a given class name\n * @param className defines the class name to instantiate\n * @returns the new object or null if the system was not able to do the instantiation\n */\n static Instantiate(e) {\n if (this.RegisteredExternalClasses && this.RegisteredExternalClasses[e])\n return this.RegisteredExternalClasses[e];\n const t = Oi(e);\n if (t)\n return t;\n L.Warn(e + \" not found, you may have missed an import.\");\n const i = e.split(\".\");\n let s = window || this;\n for (let r = 0, n = i.length; r < n; r++)\n s = s[i[r]];\n return typeof s != \"function\" ? null : s;\n }\n}\nJc.RegisteredExternalClasses = {};\nfunction vo() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (a) => {\n const e = Math.random() * 16 | 0;\n return (a === \"x\" ? e : e & 3 | 8).toString(16);\n });\n}\nconst zj = {\n /**\n * Implementation from http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#answer-2117523\n * Be aware Math.random() could cause collisions, but:\n * \"All but 6 of the 128 bits of the ID are randomly generated, which means that for any two ids, there's a 1 in 2^^122 (or 5.3x10^^36) chance they'll collide\"\n * @returns a pseudo random id\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n RandomId: vo\n};\nclass J {\n /**\n * Gets or sets the base URL to use to load assets\n */\n static get BaseUrl() {\n return Xi.BaseUrl;\n }\n static set BaseUrl(e) {\n Xi.BaseUrl = e;\n }\n /**\n * Gets or sets the clean URL function to use to load assets\n */\n static get CleanUrl() {\n return Xi.CleanUrl;\n }\n static set CleanUrl(e) {\n Xi.CleanUrl = e;\n }\n /**\n * This function checks whether a URL is absolute or not.\n * It will also detect data and blob URLs\n * @param url the url to check\n * @returns is the url absolute or relative\n */\n static IsAbsoluteUrl(e) {\n return e.indexOf(\"//\") === 0 ? !0 : e.indexOf(\"://\") === -1 || e.indexOf(\".\") === -1 || e.indexOf(\"/\") === -1 || e.indexOf(\":\") > e.indexOf(\"/\") ? !1 : e.indexOf(\"://\") < e.indexOf(\".\") || e.indexOf(\"data:\") === 0 || e.indexOf(\"blob:\") === 0;\n }\n /**\n * Sets the base URL to use to load scripts\n */\n static set ScriptBaseUrl(e) {\n Xi.ScriptBaseUrl = e;\n }\n static get ScriptBaseUrl() {\n return Xi.ScriptBaseUrl;\n }\n /**\n * Sets a preprocessing function to run on a source URL before importing it\n * Note that this function will execute AFTER the base URL is appended to the URL\n */\n static set ScriptPreprocessUrl(e) {\n Xi.ScriptPreprocessUrl = e;\n }\n static get ScriptPreprocessUrl() {\n return Xi.ScriptPreprocessUrl;\n }\n /**\n * Gets or sets the retry strategy to apply when an error happens while loading an asset\n */\n static get DefaultRetryStrategy() {\n return Xi.DefaultRetryStrategy;\n }\n static set DefaultRetryStrategy(e) {\n Xi.DefaultRetryStrategy = e;\n }\n /**\n * Default behavior for cors in the application.\n * It can be a string if the expected behavior is identical in the entire app.\n * Or a callback to be able to set it per url or on a group of them (in case of Video source for instance)\n */\n static get CorsBehavior() {\n return Xi.CorsBehavior;\n }\n static set CorsBehavior(e) {\n Xi.CorsBehavior = e;\n }\n /**\n * Gets or sets a global variable indicating if fallback texture must be used when a texture cannot be loaded\n * @ignorenaming\n */\n static get UseFallbackTexture() {\n return Me.UseFallbackTexture;\n }\n static set UseFallbackTexture(e) {\n Me.UseFallbackTexture = e;\n }\n /**\n * Use this object to register external classes like custom textures or material\n * to allow the loaders to instantiate them\n */\n static get RegisteredExternalClasses() {\n return Jc.RegisteredExternalClasses;\n }\n static set RegisteredExternalClasses(e) {\n Jc.RegisteredExternalClasses = e;\n }\n /**\n * Texture content used if a texture cannot loaded\n * @ignorenaming\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static get fallbackTexture() {\n return Me.FallbackTexture;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static set fallbackTexture(e) {\n Me.FallbackTexture = e;\n }\n /**\n * Read the content of a byte array at a specified coordinates (taking in account wrapping)\n * @param u defines the coordinate on X axis\n * @param v defines the coordinate on Y axis\n * @param width defines the width of the source data\n * @param height defines the height of the source data\n * @param pixels defines the source byte array\n * @param color defines the output color\n */\n static FetchToRef(e, t, i, s, r, n) {\n const o = Math.abs(e) * i % i | 0, l = Math.abs(t) * s % s | 0, h = (o + l * i) * 4;\n n.r = r[h] / 255, n.g = r[h + 1] / 255, n.b = r[h + 2] / 255, n.a = r[h + 3] / 255;\n }\n /**\n * Interpolates between a and b via alpha\n * @param a The lower value (returned when alpha = 0)\n * @param b The upper value (returned when alpha = 1)\n * @param alpha The interpolation-factor\n * @returns The mixed value\n */\n static Mix(e, t, i) {\n return 0;\n }\n /**\n * Tries to instantiate a new object from a given class name\n * @param className defines the class name to instantiate\n * @returns the new object or null if the system was not able to do the instantiation\n */\n static Instantiate(e) {\n return Jc.Instantiate(e);\n }\n /**\n * Polyfill for setImmediate\n * @param action defines the action to execute after the current execution block\n */\n static SetImmediate(e) {\n Hh.SetImmediate(e);\n }\n /**\n * Function indicating if a number is an exponent of 2\n * @param value defines the value to test\n * @returns true if the value is an exponent of 2\n */\n static IsExponentOfTwo(e) {\n return !0;\n }\n /**\n * Returns the nearest 32-bit single precision float representation of a Number\n * @param value A Number. If the parameter is of a different type, it will get converted\n * to a number or to NaN if it cannot be converted\n * @returns number\n */\n static FloatRound(e) {\n return Math.fround(e);\n }\n /**\n * Extracts the filename from a path\n * @param path defines the path to use\n * @returns the filename\n */\n static GetFilename(e) {\n const t = e.lastIndexOf(\"/\");\n return t < 0 ? e : e.substring(t + 1);\n }\n /**\n * Extracts the \"folder\" part of a path (everything before the filename).\n * @param uri The URI to extract the info from\n * @param returnUnchangedIfNoSlash Do not touch the URI if no slashes are present\n * @returns The \"folder\" part of the path\n */\n static GetFolderPath(e, t = !1) {\n const i = e.lastIndexOf(\"/\");\n return i < 0 ? t ? e : \"\" : e.substring(0, i + 1);\n }\n /**\n * Convert an angle in radians to degrees\n * @param angle defines the angle to convert\n * @returns the angle in degrees\n */\n static ToDegrees(e) {\n return e * 180 / Math.PI;\n }\n /**\n * Convert an angle in degrees to radians\n * @param angle defines the angle to convert\n * @returns the angle in radians\n */\n static ToRadians(e) {\n return e * Math.PI / 180;\n }\n /**\n * Smooth angle changes (kind of low-pass filter), in particular for device orientation \"shaking\"\n * Use trigonometric functions to avoid discontinuity (0/360, -180/180)\n * @param previousAngle defines last angle value, in degrees\n * @param newAngle defines new angle value, in degrees\n * @param smoothFactor defines smoothing sensitivity; min 0: no smoothing, max 1: new data ignored\n * @returns the angle in degrees\n */\n static SmoothAngleChange(e, t, i = 0.9) {\n const s = this.ToRadians(e), r = this.ToRadians(t);\n return this.ToDegrees(Math.atan2((1 - i) * Math.sin(r) + i * Math.sin(s), (1 - i) * Math.cos(r) + i * Math.cos(s)));\n }\n /**\n * Returns an array if obj is not an array\n * @param obj defines the object to evaluate as an array\n * @param allowsNullUndefined defines a boolean indicating if obj is allowed to be null or undefined\n * @returns either obj directly if obj is an array or a new array containing obj\n */\n static MakeArray(e, t) {\n return t !== !0 && (e === void 0 || e == null) ? null : Array.isArray(e) ? e : [e];\n }\n /**\n * Gets the pointer prefix to use\n * @param engine defines the engine we are finding the prefix for\n * @returns \"pointer\" if touch is enabled. Else returns \"mouse\"\n */\n static GetPointerPrefix(e) {\n let t = \"pointer\";\n return us() && !window.PointerEvent && (t = \"mouse\"), e._badDesktopOS && !e._badOS && // And not ipad pros who claim to be macs...\n !(document && \"ontouchend\" in document) && (t = \"mouse\"), t;\n }\n /**\n * Sets the cors behavior on a dom element. This will add the required Tools.CorsBehavior to the element.\n * @param url define the url we are trying\n * @param element define the dom element where to configure the cors policy\n * @param element.crossOrigin\n */\n static SetCorsBehavior(e, t) {\n xx(e, t);\n }\n /**\n * Sets the referrerPolicy behavior on a dom element.\n * @param referrerPolicy define the referrer policy to use\n * @param element define the dom element where to configure the referrer policy\n * @param element.referrerPolicy\n */\n static SetReferrerPolicyBehavior(e, t) {\n t.referrerPolicy = e;\n }\n // External files\n /**\n * Gets or sets a function used to pre-process url before using them to load assets\n */\n static get PreprocessUrl() {\n return Xi.PreprocessUrl;\n }\n static set PreprocessUrl(e) {\n Xi.PreprocessUrl = e;\n }\n /**\n * Loads an image as an HTMLImageElement.\n * @param input url string, ArrayBuffer, or Blob to load\n * @param onLoad callback called when the image successfully loads\n * @param onError callback called when the image fails to load\n * @param offlineProvider offline provider for caching\n * @param mimeType optional mime type\n * @param imageBitmapOptions optional the options to use when creating an ImageBitmap\n * @returns the HTMLImageElement of the loaded image\n */\n static LoadImage(e, t, i, s, r, n) {\n return rf(e, t, i, s, r, n);\n }\n /**\n * Loads a file from a url\n * @param url url string, ArrayBuffer, or Blob to load\n * @param onSuccess callback called when the file successfully loads\n * @param onProgress callback called while file is loading (if the server supports this mode)\n * @param offlineProvider defines the offline provider for caching\n * @param useArrayBuffer defines a boolean indicating that date must be returned as ArrayBuffer\n * @param onError callback called when the file fails to load\n * @returns a file request object\n */\n static LoadFile(e, t, i, s, r, n) {\n return Qo(e, t, i, s, r, n);\n }\n /**\n * Loads a file from a url\n * @param url the file url to load\n * @param useArrayBuffer defines a boolean indicating that date must be returned as ArrayBuffer\n * @returns a promise containing an ArrayBuffer corresponding to the loaded file\n */\n static LoadFileAsync(e, t = !0) {\n return new Promise((i, s) => {\n Qo(e, (r) => {\n i(r);\n }, void 0, void 0, t, (r, n) => {\n s(n);\n });\n });\n }\n /**\n * Get a script URL including preprocessing\n * @param scriptUrl the script Url to process\n * @param forceAbsoluteUrl force the script to be an absolute url (adding the current base url if necessary)\n * @returns a modified URL to use\n */\n static GetBabylonScriptURL(e, t) {\n if (!e)\n return \"\";\n if (J.ScriptBaseUrl && e.startsWith(J._DefaultCdnUrl)) {\n const i = J.ScriptBaseUrl[J.ScriptBaseUrl.length - 1] === \"/\" ? J.ScriptBaseUrl.substring(0, J.ScriptBaseUrl.length - 1) : J.ScriptBaseUrl;\n e = e.replace(J._DefaultCdnUrl, i);\n }\n return e = J.ScriptPreprocessUrl(e), t && (e = J.GetAbsoluteUrl(e)), e;\n }\n /**\n * This function is used internally by babylon components to load a script (identified by an url). When the url returns, the\n * content of this file is added into a new script element, attached to the DOM (body element)\n * @param scriptUrl defines the url of the script to load\n * @param onSuccess defines the callback called when the script is loaded\n * @param onError defines the callback to call if an error occurs\n * @param scriptId defines the id of the script element\n */\n static LoadBabylonScript(e, t, i, s) {\n e = J.GetBabylonScriptURL(e), J.LoadScript(e, t, i);\n }\n /**\n * Load an asynchronous script (identified by an url). When the url returns, the\n * content of this file is added into a new script element, attached to the DOM (body element)\n * @param scriptUrl defines the url of the script to laod\n * @returns a promise request object\n */\n static LoadBabylonScriptAsync(e) {\n return e = J.GetBabylonScriptURL(e), J.LoadScriptAsync(e);\n }\n /**\n * This function is used internally by babylon components to load a script (identified by an url). When the url returns, the\n * content of this file is added into a new script element, attached to the DOM (body element)\n * @param scriptUrl defines the url of the script to load\n * @param onSuccess defines the callback called when the script is loaded\n * @param onError defines the callback to call if an error occurs\n * @param scriptId defines the id of the script element\n */\n static LoadScript(e, t, i, s) {\n if (typeof importScripts == \"function\") {\n try {\n importScripts(e), t();\n } catch (o) {\n i == null || i(`Unable to load script '${e}' in worker`, o);\n }\n return;\n } else if (!us()) {\n i == null || i(`Cannot load script '${e}' outside of a window or a worker`);\n return;\n }\n const r = document.getElementsByTagName(\"head\")[0], n = document.createElement(\"script\");\n n.setAttribute(\"type\", \"text/javascript\"), n.setAttribute(\"src\", e), s && (n.id = s), n.onload = () => {\n t && t();\n }, n.onerror = (o) => {\n i && i(`Unable to load script '${e}'`, o);\n }, r.appendChild(n);\n }\n /**\n * Load an asynchronous script (identified by an url). When the url returns, the\n * content of this file is added into a new script element, attached to the DOM (body element)\n * @param scriptUrl defines the url of the script to load\n * @param scriptId defines the id of the script element\n * @returns a promise request object\n */\n static LoadScriptAsync(e, t) {\n return new Promise((i, s) => {\n this.LoadScript(e, () => {\n i();\n }, (r, n) => {\n s(n || new Error(r));\n }, t);\n });\n }\n /**\n * Loads a file from a blob\n * @param fileToLoad defines the blob to use\n * @param callback defines the callback to call when data is loaded\n * @param progressCallback defines the callback to call during loading process\n * @returns a file request object\n */\n static ReadFileAsDataURL(e, t, i) {\n const s = new FileReader(), r = {\n onCompleteObservable: new G(),\n abort: () => s.abort()\n };\n return s.onloadend = () => {\n r.onCompleteObservable.notifyObservers(r);\n }, s.onload = (n) => {\n t(n.target.result);\n }, s.onprogress = i, s.readAsDataURL(e), r;\n }\n /**\n * Reads a file from a File object\n * @param file defines the file to load\n * @param onSuccess defines the callback to call when data is loaded\n * @param onProgress defines the callback to call during loading process\n * @param useArrayBuffer defines a boolean indicating that data must be returned as an ArrayBuffer\n * @param onError defines the callback to call when an error occurs\n * @returns a file request object\n */\n static ReadFile(e, t, i, s, r) {\n return xu(e, t, i, s, r);\n }\n /**\n * Creates a data url from a given string content\n * @param content defines the content to convert\n * @returns the new data url link\n */\n static FileAsURL(e) {\n const t = new Blob([e]);\n return window.URL.createObjectURL(t);\n }\n /**\n * Format the given number to a specific decimal format\n * @param value defines the number to format\n * @param decimals defines the number of decimals to use\n * @returns the formatted string\n */\n static Format(e, t = 2) {\n return e.toFixed(t);\n }\n /**\n * Tries to copy an object by duplicating every property\n * @param source defines the source object\n * @param destination defines the target object\n * @param doNotCopyList defines a list of properties to avoid\n * @param mustCopyList defines a list of properties to copy (even if they start with _)\n */\n static DeepCopy(e, t, i, s) {\n Hs.DeepCopy(e, t, i, s);\n }\n /**\n * Gets a boolean indicating if the given object has no own property\n * @param obj defines the object to test\n * @returns true if object has no own property\n */\n static IsEmpty(e) {\n for (const t in e)\n if (Object.prototype.hasOwnProperty.call(e, t))\n return !1;\n return !0;\n }\n /**\n * Function used to register events at window level\n * @param windowElement defines the Window object to use\n * @param events defines the events to register\n */\n static RegisterTopRootEvents(e, t) {\n for (let i = 0; i < t.length; i++) {\n const s = t[i];\n e.addEventListener(s.name, s.handler, !1);\n try {\n window.parent && window.parent.addEventListener(s.name, s.handler, !1);\n } catch {\n }\n }\n }\n /**\n * Function used to unregister events from window level\n * @param windowElement defines the Window object to use\n * @param events defines the events to unregister\n */\n static UnregisterTopRootEvents(e, t) {\n for (let i = 0; i < t.length; i++) {\n const s = t[i];\n e.removeEventListener(s.name, s.handler);\n try {\n e.parent && e.parent.removeEventListener(s.name, s.handler);\n } catch {\n }\n }\n }\n /**\n * Dumps the current bound framebuffer\n * @param width defines the rendering width\n * @param height defines the rendering height\n * @param engine defines the hosting engine\n * @param successCallback defines the callback triggered once the data are available\n * @param mimeType defines the mime type of the result\n * @param fileName defines the filename to download. If present, the result will automatically be downloaded\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n * @returns a void promise\n */\n static async DumpFramebuffer(e, t, i, s, r = \"image/png\", n, o) {\n throw $e(\"DumpTools\");\n }\n /**\n * Dumps an array buffer\n * @param width defines the rendering width\n * @param height defines the rendering height\n * @param data the data array\n * @param successCallback defines the callback triggered once the data are available\n * @param mimeType defines the mime type of the result\n * @param fileName defines the filename to download. If present, the result will automatically be downloaded\n * @param invertY true to invert the picture in the Y dimension\n * @param toArrayBuffer true to convert the data to an ArrayBuffer (encoded as `mimeType`) instead of a base64 string\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n */\n static DumpData(e, t, i, s, r = \"image/png\", n, o = !1, l = !1, h) {\n throw $e(\"DumpTools\");\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Dumps an array buffer\n * @param width defines the rendering width\n * @param height defines the rendering height\n * @param data the data array\n * @param mimeType defines the mime type of the result\n * @param fileName defines the filename to download. If present, the result will automatically be downloaded\n * @param invertY true to invert the picture in the Y dimension\n * @param toArrayBuffer true to convert the data to an ArrayBuffer (encoded as `mimeType`) instead of a base64 string\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n * @returns a promise that resolve to the final data\n */\n static DumpDataAsync(e, t, i, s = \"image/png\", r, n = !1, o = !1, l) {\n throw $e(\"DumpTools\");\n }\n static _IsOffScreenCanvas(e) {\n return e.convertToBlob !== void 0;\n }\n /**\n * Converts the canvas data to blob.\n * This acts as a polyfill for browsers not supporting the to blob function.\n * @param canvas Defines the canvas to extract the data from (can be an offscreen canvas)\n * @param successCallback Defines the callback triggered once the data are available\n * @param mimeType Defines the mime type of the result\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n */\n static ToBlob(e, t, i = \"image/png\", s) {\n !J._IsOffScreenCanvas(e) && !e.toBlob && (e.toBlob = function(r, n, o) {\n setTimeout(() => {\n const l = atob(this.toDataURL(n, o).split(\",\")[1]), h = l.length, c = new Uint8Array(h);\n for (let u = 0; u < h; u++)\n c[u] = l.charCodeAt(u);\n r(new Blob([c]));\n });\n }), J._IsOffScreenCanvas(e) ? e.convertToBlob({\n type: i,\n quality: s\n }).then((r) => t(r)) : e.toBlob(function(r) {\n t(r);\n }, i, s);\n }\n /**\n * Download a Blob object\n * @param blob the Blob object\n * @param fileName the file name to download\n */\n static DownloadBlob(e, t) {\n if (\"download\" in document.createElement(\"a\")) {\n if (!t) {\n const i = /* @__PURE__ */ new Date();\n t = \"screenshot_\" + ((i.getFullYear() + \"-\" + (i.getMonth() + 1)).slice(2) + \"-\" + i.getDate() + \"_\" + i.getHours() + \"-\" + (\"0\" + i.getMinutes()).slice(-2)) + \".png\";\n }\n J.Download(e, t);\n } else if (e && typeof URL < \"u\") {\n const i = URL.createObjectURL(e), s = window.open(\"\");\n if (!s)\n return;\n const r = s.document.createElement(\"img\");\n r.onload = function() {\n URL.revokeObjectURL(i);\n }, r.src = i, s.document.body.appendChild(r);\n }\n }\n /**\n * Encodes the canvas data to base 64, or automatically downloads the result if `fileName` is defined.\n * @param canvas The canvas to get the data from, which can be an offscreen canvas.\n * @param successCallback The callback which is triggered once the data is available. If `fileName` is defined, the callback will be invoked after the download occurs, and the `data` argument will be an empty string.\n * @param mimeType The mime type of the result.\n * @param fileName The name of the file to download. If defined, the result will automatically be downloaded. If not defined, and `successCallback` is also not defined, the result will automatically be downloaded with an auto-generated file name.\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n */\n static EncodeScreenshotCanvasData(e, t, i = \"image/png\", s, r) {\n if (typeof s == \"string\" || !t)\n this.ToBlob(e, function(n) {\n n && J.DownloadBlob(n, s), t && t(\"\");\n }, i, r);\n else if (t) {\n if (J._IsOffScreenCanvas(e)) {\n e.convertToBlob({\n type: i,\n quality: r\n }).then((o) => {\n const l = new FileReader();\n l.readAsDataURL(o), l.onloadend = () => {\n const h = l.result;\n t(h);\n };\n });\n return;\n }\n const n = e.toDataURL(i, r);\n t(n);\n }\n }\n /**\n * Downloads a blob in the browser\n * @param blob defines the blob to download\n * @param fileName defines the name of the downloaded file\n */\n static Download(e, t) {\n if (typeof URL > \"u\")\n return;\n const i = window.URL.createObjectURL(e), s = document.createElement(\"a\");\n document.body.appendChild(s), s.style.display = \"none\", s.href = i, s.download = t, s.addEventListener(\"click\", () => {\n s.parentElement && s.parentElement.removeChild(s);\n }), s.click(), window.URL.revokeObjectURL(i);\n }\n /**\n * Will return the right value of the noPreventDefault variable\n * Needed to keep backwards compatibility to the old API.\n *\n * @param args arguments passed to the attachControl function\n * @returns the correct value for noPreventDefault\n */\n static BackCompatCameraNoPreventDefault(e) {\n return typeof e[0] == \"boolean\" ? e[0] : typeof e[1] == \"boolean\" ? e[1] : !1;\n }\n /**\n * Captures a screenshot of the current rendering\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/renderToPNG\n * @param engine defines the rendering engine\n * @param camera defines the source camera\n * @param size This parameter can be set to a single number or to an object with the\n * following (optional) properties: precision, width, height. If a single number is passed,\n * it will be used for both width and height. If an object is passed, the screenshot size\n * will be derived from the parameters. The precision property is a multiplier allowing\n * rendering at a higher or lower resolution\n * @param successCallback defines the callback receives a single parameter which contains the\n * screenshot as a string of base64-encoded characters. This string can be assigned to the\n * src parameter of an to display it\n * @param mimeType defines the MIME type of the screenshot image (default: image/png).\n * Check your browser for supported MIME types\n * @param forceDownload force the system to download the image even if a successCallback is provided\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static CreateScreenshot(e, t, i, s, r = \"image/png\", n = !1, o) {\n throw $e(\"ScreenshotTools\");\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Captures a screenshot of the current rendering\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/renderToPNG\n * @param engine defines the rendering engine\n * @param camera defines the source camera\n * @param size This parameter can be set to a single number or to an object with the\n * following (optional) properties: precision, width, height. If a single number is passed,\n * it will be used for both width and height. If an object is passed, the screenshot size\n * will be derived from the parameters. The precision property is a multiplier allowing\n * rendering at a higher or lower resolution\n * @param mimeType defines the MIME type of the screenshot image (default: image/png).\n * Check your browser for supported MIME types\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n * @returns screenshot as a string of base64-encoded characters. This string can be assigned\n * to the src parameter of an to display it\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static CreateScreenshotAsync(e, t, i, s = \"image/png\", r) {\n throw $e(\"ScreenshotTools\");\n }\n /**\n * Generates an image screenshot from the specified camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/renderToPNG\n * @param engine The engine to use for rendering\n * @param camera The camera to use for rendering\n * @param size This parameter can be set to a single number or to an object with the\n * following (optional) properties: precision, width, height. If a single number is passed,\n * it will be used for both width and height. If an object is passed, the screenshot size\n * will be derived from the parameters. The precision property is a multiplier allowing\n * rendering at a higher or lower resolution\n * @param successCallback The callback receives a single parameter which contains the\n * screenshot as a string of base64-encoded characters. This string can be assigned to the\n * src parameter of an to display it\n * @param mimeType The MIME type of the screenshot image (default: image/png).\n * Check your browser for supported MIME types\n * @param samples Texture samples (default: 1)\n * @param antialiasing Whether antialiasing should be turned on or not (default: false)\n * @param fileName A name for for the downloaded file.\n * @param renderSprites Whether the sprites should be rendered or not (default: false)\n * @param enableStencilBuffer Whether the stencil buffer should be enabled or not (default: false)\n * @param useLayerMask if the camera's layer mask should be used to filter what should be rendered (default: true)\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static CreateScreenshotUsingRenderTarget(e, t, i, s, r = \"image/png\", n = 1, o = !1, l, h = !1, c = !1, u = !0, d) {\n throw $e(\"ScreenshotTools\");\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Generates an image screenshot from the specified camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/renderToPNG\n * @param engine The engine to use for rendering\n * @param camera The camera to use for rendering\n * @param size This parameter can be set to a single number or to an object with the\n * following (optional) properties: precision, width, height. If a single number is passed,\n * it will be used for both width and height. If an object is passed, the screenshot size\n * will be derived from the parameters. The precision property is a multiplier allowing\n * rendering at a higher or lower resolution\n * @param mimeType The MIME type of the screenshot image (default: image/png).\n * Check your browser for supported MIME types\n * @param samples Texture samples (default: 1)\n * @param antialiasing Whether antialiasing should be turned on or not (default: false)\n * @param fileName A name for for the downloaded file.\n * @returns screenshot as a string of base64-encoded characters. This string can be assigned\n * @param renderSprites Whether the sprites should be rendered or not (default: false)\n * @param enableStencilBuffer Whether the stencil buffer should be enabled or not (default: false)\n * @param useLayerMask if the camera's layer mask should be used to filter what should be rendered (default: true)\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n * to the src parameter of an to display it\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static CreateScreenshotUsingRenderTargetAsync(e, t, i, s = \"image/png\", r = 1, n = !1, o, l = !1, h = !1, c = !0, u) {\n throw $e(\"ScreenshotTools\");\n }\n /**\n * Implementation from http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#answer-2117523\n * Be aware Math.random() could cause collisions, but:\n * \"All but 6 of the 128 bits of the ID are randomly generated, which means that for any two ids, there's a 1 in 2^^122 (or 5.3x10^^36) chance they'll collide\"\n * @returns a pseudo random id\n */\n static RandomId() {\n return vo();\n }\n /**\n * Test if the given uri is a base64 string\n * @deprecated Please use FileTools.IsBase64DataUrl instead.\n * @param uri The uri to test\n * @returns True if the uri is a base64 string or false otherwise\n */\n static IsBase64(e) {\n return Tx(e);\n }\n /**\n * Decode the given base64 uri.\n * @deprecated Please use FileTools.DecodeBase64UrlToBinary instead.\n * @param uri The uri to decode\n * @returns The decoded base64 data.\n */\n static DecodeBase64(e) {\n return Sx(e);\n }\n /**\n * Gets a value indicating the number of loading errors\n * @ignorenaming\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static get errorsCount() {\n return L.errorsCount;\n }\n /**\n * Log a message to the console\n * @param message defines the message to log\n */\n static Log(e) {\n L.Log(e);\n }\n /**\n * Write a warning message to the console\n * @param message defines the message to log\n */\n static Warn(e) {\n L.Warn(e);\n }\n /**\n * Write an error message to the console\n * @param message defines the message to log\n */\n static Error(e) {\n L.Error(e);\n }\n /**\n * Gets current log cache (list of logs)\n */\n static get LogCache() {\n return L.LogCache;\n }\n /**\n * Clears the log cache\n */\n static ClearLogCache() {\n L.ClearLogCache();\n }\n /**\n * Sets the current log level (MessageLogLevel / WarningLogLevel / ErrorLogLevel)\n */\n static set LogLevels(e) {\n L.LogLevels = e;\n }\n /**\n * Sets the current performance log level\n */\n static set PerformanceLogLevel(e) {\n if ((e & J.PerformanceUserMarkLogLevel) === J.PerformanceUserMarkLogLevel) {\n J.StartPerformanceCounter = J._StartUserMark, J.EndPerformanceCounter = J._EndUserMark;\n return;\n }\n if ((e & J.PerformanceConsoleLogLevel) === J.PerformanceConsoleLogLevel) {\n J.StartPerformanceCounter = J._StartPerformanceConsole, J.EndPerformanceCounter = J._EndPerformanceConsole;\n return;\n }\n J.StartPerformanceCounter = J._StartPerformanceCounterDisabled, J.EndPerformanceCounter = J._EndPerformanceCounterDisabled;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static _StartPerformanceCounterDisabled(e, t) {\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static _EndPerformanceCounterDisabled(e, t) {\n }\n static _StartUserMark(e, t = !0) {\n if (!J._Performance) {\n if (!us())\n return;\n J._Performance = window.performance;\n }\n !t || !J._Performance.mark || J._Performance.mark(e + \"-Begin\");\n }\n static _EndUserMark(e, t = !0) {\n !t || !J._Performance.mark || (J._Performance.mark(e + \"-End\"), J._Performance.measure(e, e + \"-Begin\", e + \"-End\"));\n }\n static _StartPerformanceConsole(e, t = !0) {\n t && (J._StartUserMark(e, t), console.time && console.time(e));\n }\n static _EndPerformanceConsole(e, t = !0) {\n t && (J._EndUserMark(e, t), console.timeEnd(e));\n }\n /**\n * Gets either window.performance.now() if supported or Date.now() else\n */\n static get Now() {\n return Es.Now;\n }\n /**\n * This method will return the name of the class used to create the instance of the given object.\n * It will works only on Javascript basic data types (number, string, ...) and instance of class declared with the @className decorator.\n * @param object the object to get the class name from\n * @param isType defines if the object is actually a type\n * @returns the name of the class, will be \"object\" for a custom data type not using the @className decorator\n */\n static GetClassName(e, t = !1) {\n let i = null;\n return !t && e.getClassName ? i = e.getClassName() : (e instanceof Object && (i = (t ? e : Object.getPrototypeOf(e)).constructor.__bjsclassName__), i || (i = typeof e)), i;\n }\n /**\n * Gets the first element of an array satisfying a given predicate\n * @param array defines the array to browse\n * @param predicate defines the predicate to use\n * @returns null if not found or the element\n */\n static First(e, t) {\n for (const i of e)\n if (t(i))\n return i;\n return null;\n }\n /**\n * This method will return the name of the full name of the class, including its owning module (if any).\n * It will works only on Javascript basic data types (number, string, ...) and instance of class declared with the @className decorator or implementing a method getClassName():string (in which case the module won't be specified).\n * @param object the object to get the class name from\n * @param isType defines if the object is actually a type\n * @returns a string that can have two forms: \"moduleName.className\" if module was specified when the class' Name was registered or \"className\" if there was not module specified.\n * @ignorenaming\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static getFullClassName(e, t = !1) {\n let i = null, s = null;\n if (!t && e.getClassName)\n i = e.getClassName();\n else {\n if (e instanceof Object) {\n const r = t ? e : Object.getPrototypeOf(e);\n i = r.constructor.__bjsclassName__, s = r.constructor.__bjsmoduleName__;\n }\n i || (i = typeof e);\n }\n return i ? (s != null ? s + \".\" : \"\") + i : null;\n }\n /**\n * Returns a promise that resolves after the given amount of time.\n * @param delay Number of milliseconds to delay\n * @returns Promise that resolves after the given amount of time\n */\n static DelayAsync(e) {\n return new Promise((t) => {\n setTimeout(() => {\n t();\n }, e);\n });\n }\n /**\n * Utility function to detect if the current user agent is Safari\n * @returns whether or not the current user agent is safari\n */\n static IsSafari() {\n return Tl() ? /^((?!chrome|android).)*safari/i.test(navigator.userAgent) : !1;\n }\n}\nJ.UseCustomRequestHeaders = !1;\nJ.CustomRequestHeaders = Di.CustomRequestHeaders;\nJ.GetDOMTextContent = l_;\nJ._DefaultCdnUrl = \"https://cdn.babylonjs.com\";\nJ.GetAbsoluteUrl = typeof document == \"object\" ? (a) => {\n const e = document.createElement(\"a\");\n return e.href = a, e.href;\n} : typeof URL == \"function\" && typeof location == \"object\" ? (a) => new URL(a, location.origin).href : () => {\n throw new Error(\"Unable to get absolute URL. Override BABYLON.Tools.GetAbsoluteUrl to a custom implementation for the current context.\");\n};\nJ.NoneLogLevel = L.NoneLogLevel;\nJ.MessageLogLevel = L.MessageLogLevel;\nJ.WarningLogLevel = L.WarningLogLevel;\nJ.ErrorLogLevel = L.ErrorLogLevel;\nJ.AllLogLevel = L.AllLogLevel;\nJ.IsWindowObjectExist = us;\nJ.PerformanceNoneLogLevel = 0;\nJ.PerformanceUserMarkLogLevel = 1;\nJ.PerformanceConsoleLogLevel = 2;\nJ.StartPerformanceCounter = J._StartPerformanceCounterDisabled;\nJ.EndPerformanceCounter = J._EndPerformanceCounterDisabled;\nfunction Wj(a, e) {\n return (t) => {\n t.__bjsclassName__ = a, t.__bjsmoduleName__ = e ?? null;\n };\n}\nclass On {\n /**\n * Constructor.\n * @param iterations the number of iterations.\n * @param func the function to run each iteration\n * @param successCallback the callback that will be called upon successful execution\n * @param offset starting offset.\n */\n constructor(e, t, i, s = 0) {\n this.iterations = e, this.index = s - 1, this._done = !1, this._fn = t, this._successCallback = i;\n }\n /**\n * Execute the next iteration. Must be called after the last iteration was finished.\n */\n executeNext() {\n this._done || (this.index + 1 < this.iterations ? (++this.index, this._fn(this)) : this.breakLoop());\n }\n /**\n * Break the loop and run the success callback.\n */\n breakLoop() {\n this._done = !0, this._successCallback();\n }\n /**\n * Create and run an async loop.\n * @param iterations the number of iterations.\n * @param fn the function to run each iteration\n * @param successCallback the callback that will be called upon successful execution\n * @param offset starting offset.\n * @returns the created async loop object\n */\n static Run(e, t, i, s = 0) {\n const r = new On(e, t, i, s);\n return r.executeNext(), r;\n }\n /**\n * A for-loop that will run a given number of iterations synchronous and the rest async.\n * @param iterations total number of iterations\n * @param syncedIterations number of synchronous iterations in each async iteration.\n * @param fn the function to call each iteration.\n * @param callback a success call back that will be called when iterating stops.\n * @param breakFunction a break condition (optional)\n * @param timeout timeout settings for the setTimeout function. default - 0.\n * @returns the created async loop object\n */\n static SyncAsyncForLoop(e, t, i, s, r, n = 0) {\n return On.Run(Math.ceil(e / t), (o) => {\n r && r() ? o.breakLoop() : setTimeout(() => {\n for (let l = 0; l < t; ++l) {\n const h = o.index * t + l;\n if (h >= e)\n break;\n if (i(h), r && r()) {\n o.breakLoop();\n break;\n }\n }\n o.executeNext();\n }, n);\n }, s);\n }\n}\nJ.Mix = gg;\nJ.IsExponentOfTwo = mu;\nMe.FallbackTexture = \"data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBmRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAAQAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQubmV0IDQuMC41AP/bAEMABAIDAwMCBAMDAwQEBAQFCQYFBQUFCwgIBgkNCw0NDQsMDA4QFBEODxMPDAwSGBITFRYXFxcOERkbGRYaFBYXFv/bAEMBBAQEBQUFCgYGChYPDA8WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFv/AABEIAQABAAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APH6KKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76P//Z\";\nclass fs {\n /**\n * Instantiates a Smart Array.\n * @param capacity defines the default capacity of the array.\n */\n constructor(e) {\n this.length = 0, this.data = new Array(e), this._id = fs._GlobalId++;\n }\n /**\n * Pushes a value at the end of the active data.\n * @param value defines the object to push in the array.\n */\n push(e) {\n this.data[this.length++] = e, this.length > this.data.length && (this.data.length *= 2);\n }\n /**\n * Iterates over the active data and apply the lambda to them.\n * @param func defines the action to apply on each value.\n */\n forEach(e) {\n for (let t = 0; t < this.length; t++)\n e(this.data[t]);\n }\n /**\n * Sorts the full sets of data.\n * @param compareFn defines the comparison function to apply.\n */\n sort(e) {\n this.data.sort(e);\n }\n /**\n * Resets the active data to an empty array.\n */\n reset() {\n this.length = 0;\n }\n /**\n * Releases all the data from the array as well as the array.\n */\n dispose() {\n this.reset(), this.data && (this.data.length = 0);\n }\n /**\n * Concats the active data with a given array.\n * @param array defines the data to concatenate with.\n */\n concat(e) {\n if (e.length !== 0) {\n this.length + e.length > this.data.length && (this.data.length = (this.length + e.length) * 2);\n for (let t = 0; t < e.length; t++)\n this.data[this.length++] = (e.data || e)[t];\n }\n }\n /**\n * Returns the position of a value in the active data.\n * @param value defines the value to find the index for\n * @returns the index if found in the active data otherwise -1\n */\n indexOf(e) {\n const t = this.data.indexOf(e);\n return t >= this.length ? -1 : t;\n }\n /**\n * Returns whether an element is part of the active data.\n * @param value defines the value to look for\n * @returns true if found in the active data otherwise false\n */\n contains(e) {\n return this.indexOf(e) !== -1;\n }\n}\nfs._GlobalId = 0;\nclass Mo extends fs {\n constructor() {\n super(...arguments), this._duplicateId = 0;\n }\n /**\n * Pushes a value at the end of the active data.\n * THIS DOES NOT PREVENT DUPPLICATE DATA\n * @param value defines the object to push in the array.\n */\n push(e) {\n super.push(e), e.__smartArrayFlags || (e.__smartArrayFlags = {}), e.__smartArrayFlags[this._id] = this._duplicateId;\n }\n /**\n * Pushes a value at the end of the active data.\n * If the data is already present, it won t be added again\n * @param value defines the object to push in the array.\n * @returns true if added false if it was already present\n */\n pushNoDuplicate(e) {\n return e.__smartArrayFlags && e.__smartArrayFlags[this._id] === this._duplicateId ? !1 : (this.push(e), !0);\n }\n /**\n * Resets the active data to an empty array.\n */\n reset() {\n super.reset(), this._duplicateId++;\n }\n /**\n * Concats the active data with a given array.\n * This ensures no duplicate will be present in the result.\n * @param array defines the data to concatenate with.\n */\n concatWithNoDuplicate(e) {\n if (e.length !== 0) {\n this.length + e.length > this.data.length && (this.data.length = (this.length + e.length) * 2);\n for (let t = 0; t < e.length; t++) {\n const i = (e.data || e)[t];\n this.pushNoDuplicate(i);\n }\n }\n }\n}\nclass Tg {\n constructor() {\n this._count = 0, this._data = {};\n }\n /**\n * This will clear this dictionary and copy the content from the 'source' one.\n * If the T value is a custom object, it won't be copied/cloned, the same object will be used\n * @param source the dictionary to take the content from and copy to this dictionary\n */\n copyFrom(e) {\n this.clear(), e.forEach((t, i) => this.add(t, i));\n }\n /**\n * Get a value based from its key\n * @param key the given key to get the matching value from\n * @returns the value if found, otherwise undefined is returned\n */\n get(e) {\n const t = this._data[e];\n if (t !== void 0)\n return t;\n }\n /**\n * Get a value from its key or add it if it doesn't exist.\n * This method will ensure you that a given key/data will be present in the dictionary.\n * @param key the given key to get the matching value from\n * @param factory the factory that will create the value if the key is not present in the dictionary.\n * The factory will only be invoked if there's no data for the given key.\n * @returns the value corresponding to the key.\n */\n getOrAddWithFactory(e, t) {\n let i = this.get(e);\n return i !== void 0 || (i = t(e), i && this.add(e, i)), i;\n }\n /**\n * Get a value from its key if present in the dictionary otherwise add it\n * @param key the key to get the value from\n * @param val if there's no such key/value pair in the dictionary add it with this value\n * @returns the value corresponding to the key\n */\n getOrAdd(e, t) {\n const i = this.get(e);\n return i !== void 0 ? i : (this.add(e, t), t);\n }\n /**\n * Check if there's a given key in the dictionary\n * @param key the key to check for\n * @returns true if the key is present, false otherwise\n */\n contains(e) {\n return this._data[e] !== void 0;\n }\n /**\n * Add a new key and its corresponding value\n * @param key the key to add\n * @param value the value corresponding to the key\n * @returns true if the operation completed successfully, false if we couldn't insert the key/value because there was already this key in the dictionary\n */\n add(e, t) {\n return this._data[e] !== void 0 ? !1 : (this._data[e] = t, ++this._count, !0);\n }\n /**\n * Update a specific value associated to a key\n * @param key defines the key to use\n * @param value defines the value to store\n * @returns true if the value was updated (or false if the key was not found)\n */\n set(e, t) {\n return this._data[e] === void 0 ? !1 : (this._data[e] = t, !0);\n }\n /**\n * Get the element of the given key and remove it from the dictionary\n * @param key defines the key to search\n * @returns the value associated with the key or null if not found\n */\n getAndRemove(e) {\n const t = this.get(e);\n return t !== void 0 ? (delete this._data[e], --this._count, t) : null;\n }\n /**\n * Remove a key/value from the dictionary.\n * @param key the key to remove\n * @returns true if the item was successfully deleted, false if no item with such key exist in the dictionary\n */\n remove(e) {\n return this.contains(e) ? (delete this._data[e], --this._count, !0) : !1;\n }\n /**\n * Clear the whole content of the dictionary\n */\n clear() {\n this._data = {}, this._count = 0;\n }\n /**\n * Gets the current count\n */\n get count() {\n return this._count;\n }\n /**\n * Execute a callback on each key/val of the dictionary.\n * Note that you can remove any element in this dictionary in the callback implementation\n * @param callback the callback to execute on a given key/value pair\n */\n forEach(e) {\n for (const t in this._data) {\n const i = this._data[t];\n e(t, i);\n }\n }\n /**\n * Execute a callback on every occurrence of the dictionary until it returns a valid TRes object.\n * If the callback returns null or undefined the method will iterate to the next key/value pair\n * Note that you can remove any element in this dictionary in the callback implementation\n * @param callback the callback to execute, if it return a valid T instanced object the enumeration will stop and the object will be returned\n * @returns the first item\n */\n first(e) {\n for (const t in this._data) {\n const i = this._data[t], s = e(t, i);\n if (s)\n return s;\n }\n return null;\n }\n}\nclass _l {\n /**\n * Evaluate a query\n * @param query defines the query to evaluate\n * @param evaluateCallback defines the callback used to filter result\n * @returns true if the query matches\n */\n static Eval(e, t) {\n return e.match(/\\([^()]*\\)/g) ? e = e.replace(/\\([^()]*\\)/g, (i) => (i = i.slice(1, i.length - 1), _l._HandleParenthesisContent(i, t))) : e = _l._HandleParenthesisContent(e, t), e === \"true\" ? !0 : e === \"false\" ? !1 : _l.Eval(e, t);\n }\n static _HandleParenthesisContent(e, t) {\n t = t || ((r) => r === \"true\");\n let i;\n const s = e.split(\"||\");\n for (const r in s)\n if (Object.prototype.hasOwnProperty.call(s, r)) {\n let n = _l._SimplifyNegation(s[r].trim());\n const o = n.split(\"&&\");\n if (o.length > 1)\n for (let l = 0; l < o.length; ++l) {\n const h = _l._SimplifyNegation(o[l].trim());\n if (h !== \"true\" && h !== \"false\" ? h[0] === \"!\" ? i = !t(h.substring(1)) : i = t(h) : i = h === \"true\", !i) {\n n = \"false\";\n break;\n }\n }\n if (i || n === \"true\") {\n i = !0;\n break;\n }\n n !== \"true\" && n !== \"false\" ? n[0] === \"!\" ? i = !t(n.substring(1)) : i = t(n) : i = n === \"true\";\n }\n return i ? \"true\" : \"false\";\n }\n static _SimplifyNegation(e) {\n return e = e.replace(/^[\\s!]+/, (t) => (t = t.replace(/[\\s]/g, () => \"\"), t.length % 2 ? \"!\" : \"\")), e = e.trim(), e === \"!true\" ? e = \"false\" : e === \"!false\" && (e = \"true\"), e;\n }\n}\nclass Ct {\n /**\n * Adds support for tags on the given object\n * @param obj defines the object to use\n */\n static EnableFor(e) {\n e._tags = e._tags || {}, e.hasTags = () => Ct.HasTags(e), e.addTags = (t) => Ct.AddTagsTo(e, t), e.removeTags = (t) => Ct.RemoveTagsFrom(e, t), e.matchesTagsQuery = (t) => Ct.MatchesQuery(e, t);\n }\n /**\n * Removes tags support\n * @param obj defines the object to use\n */\n static DisableFor(e) {\n delete e._tags, delete e.hasTags, delete e.addTags, delete e.removeTags, delete e.matchesTagsQuery;\n }\n /**\n * Gets a boolean indicating if the given object has tags\n * @param obj defines the object to use\n * @returns a boolean\n */\n static HasTags(e) {\n if (!e._tags)\n return !1;\n const t = e._tags;\n for (const i in t)\n if (Object.prototype.hasOwnProperty.call(t, i))\n return !0;\n return !1;\n }\n /**\n * Gets the tags available on a given object\n * @param obj defines the object to use\n * @param asString defines if the tags must be returned as a string instead of an array of strings\n * @returns the tags\n */\n static GetTags(e, t = !0) {\n if (!e._tags)\n return null;\n if (t) {\n const i = [];\n for (const s in e._tags)\n Object.prototype.hasOwnProperty.call(e._tags, s) && e._tags[s] === !0 && i.push(s);\n return i.join(\" \");\n } else\n return e._tags;\n }\n /**\n * Adds tags to an object\n * @param obj defines the object to use\n * @param tagsString defines the tag string. The tags 'true' and 'false' are reserved and cannot be used as tags.\n * A tag cannot start with '||', '&&', and '!'. It cannot contain whitespaces\n */\n static AddTagsTo(e, t) {\n if (!t || typeof t != \"string\")\n return;\n t.split(\" \").forEach(function(s) {\n Ct._AddTagTo(e, s);\n });\n }\n /**\n * @internal\n */\n static _AddTagTo(e, t) {\n t = t.trim(), !(t === \"\" || t === \"true\" || t === \"false\") && (t.match(/[\\s]/) || t.match(/^([!]|([|]|[&]){2})/) || (Ct.EnableFor(e), e._tags[t] = !0));\n }\n /**\n * Removes specific tags from a specific object\n * @param obj defines the object to use\n * @param tagsString defines the tags to remove\n */\n static RemoveTagsFrom(e, t) {\n if (!Ct.HasTags(e))\n return;\n const i = t.split(\" \");\n for (const s in i)\n Ct._RemoveTagFrom(e, i[s]);\n }\n /**\n * @internal\n */\n static _RemoveTagFrom(e, t) {\n delete e._tags[t];\n }\n /**\n * Defines if tags hosted on an object match a given query\n * @param obj defines the object to use\n * @param tagsQuery defines the tag query\n * @returns a boolean\n */\n static MatchesQuery(e, t) {\n return t === void 0 ? !0 : t === \"\" ? Ct.HasTags(e) : _l.Eval(t, (i) => Ct.HasTags(e) && e._tags[i]);\n }\n}\nconst eu = 1 / 2.2, mp = 2.2, cs = (1 + Math.sqrt(5)) / 2, tt = 1e-3;\nclass _s {\n /**\n * Returns an array of the given size filled with elements built from the given constructor and the parameters.\n * @param size the number of element to construct and put in the array.\n * @param itemBuilder a callback responsible for creating new instance of item. Called once per array entry.\n * @returns a new array filled with new objects.\n */\n static BuildArray(e, t) {\n const i = [];\n for (let s = 0; s < e; ++s)\n i.push(t());\n return i;\n }\n /**\n * Returns a tuple of the given size filled with elements built from the given constructor and the parameters.\n * @param size he number of element to construct and put in the tuple.\n * @param itemBuilder a callback responsible for creating new instance of item. Called once per tuple entry.\n * @returns a new tuple filled with new objects.\n */\n static BuildTuple(e, t) {\n return _s.BuildArray(e, t);\n }\n}\nfunction oM(a, e, t) {\n const i = a[e];\n if (typeof i != \"function\")\n return null;\n const s = function() {\n const r = a.length, n = s.previous.apply(a, arguments);\n return t(e, r), n;\n };\n return i.next = s, s.previous = i, a[e] = s, () => {\n const r = s.previous;\n if (!r)\n return;\n const n = s.next;\n n ? (r.next = n, n.previous = r) : (r.next = void 0, a[e] = r), s.next = void 0, s.previous = void 0;\n };\n}\nconst lM = [\"push\", \"splice\", \"pop\", \"shift\", \"unshift\"];\nfunction OC(a, e) {\n const t = lM.map((i) => oM(a, i, e));\n return () => {\n t.forEach((i) => {\n i == null || i();\n });\n };\n}\nfunction nr(a, e, t = 1401298e-51) {\n return Math.abs(a - e) <= t;\n}\nfunction Wt(a, e) {\n return a === e ? a : Math.random() * (e - a) + a;\n}\nfunction qr(a, e, t) {\n return a + (e - a) * t;\n}\nfunction Vi(a, e = 0, t = 1) {\n return Math.min(t, Math.max(e, a));\n}\nfunction wC(a) {\n return a -= Math.PI * 2 * Math.floor((a + Math.PI) / (Math.PI * 2)), a;\n}\nfunction $n(a) {\n const e = a.toString(16);\n return a <= 15 ? (\"0\" + e).toUpperCase() : e.toUpperCase();\n}\nconst Gr = (a) => parseInt(a.toString().replace(/\\W/g, \"\"));\nclass Q {\n /**\n * Creates a new Vector2 from the given x and y coordinates\n * @param x defines the first coordinate\n * @param y defines the second coordinate\n */\n constructor(e = 0, t = 0) {\n this.x = e, this.y = t;\n }\n /**\n * Gets a string with the Vector2 coordinates\n * @returns a string with the Vector2 coordinates\n */\n toString() {\n return `{X: ${this.x} Y: ${this.y}}`;\n }\n /**\n * Gets class name\n * @returns the string \"Vector2\"\n */\n getClassName() {\n return \"Vector2\";\n }\n /**\n * Gets current vector hash code\n * @returns the Vector2 hash code as a number\n */\n getHashCode() {\n const e = Gr(this.x), t = Gr(this.y);\n let i = e;\n return i = i * 397 ^ t, i;\n }\n // Operators\n /**\n * Sets the Vector2 coordinates in the given array or Float32Array from the given index.\n * Example Playground https://playground.babylonjs.com/#QYBWV4#15\n * @param array defines the source array\n * @param index defines the offset in source array\n * @returns the current Vector2\n */\n toArray(e, t = 0) {\n return e[t] = this.x, e[t + 1] = this.y, this;\n }\n /**\n * Update the current vector from an array\n * Example Playground https://playground.babylonjs.com/#QYBWV4#39\n * @param array defines the destination array\n * @param offset defines the offset in the destination array\n * @returns the current Vector2\n */\n fromArray(e, t = 0) {\n return Q.FromArrayToRef(e, t, this), this;\n }\n /**\n * Copy the current vector to an array\n * Example Playground https://playground.babylonjs.com/#QYBWV4#40\n * @returns a new array with 2 elements: the Vector2 coordinates.\n */\n asArray() {\n return [this.x, this.y];\n }\n /**\n * Sets the Vector2 coordinates with the given Vector2 coordinates\n * Example Playground https://playground.babylonjs.com/#QYBWV4#24\n * @param source defines the source Vector2\n * @returns the current updated Vector2\n */\n copyFrom(e) {\n return this.x = e.x, this.y = e.y, this;\n }\n /**\n * Sets the Vector2 coordinates with the given floats\n * Example Playground https://playground.babylonjs.com/#QYBWV4#25\n * @param x defines the first coordinate\n * @param y defines the second coordinate\n * @returns the current updated Vector2\n */\n copyFromFloats(e, t) {\n return this.x = e, this.y = t, this;\n }\n /**\n * Sets the Vector2 coordinates with the given floats\n * Example Playground https://playground.babylonjs.com/#QYBWV4#62\n * @param x defines the first coordinate\n * @param y defines the second coordinate\n * @returns the current updated Vector2\n */\n set(e, t) {\n return this.copyFromFloats(e, t);\n }\n /**\n * Copies the given float to the current Vector2 coordinates\n * @param v defines the x and y coordinates of the operand\n * @returns the current updated Vector2\n */\n setAll(e) {\n return this.copyFromFloats(e, e);\n }\n /**\n * Add another vector with the current one\n * Example Playground https://playground.babylonjs.com/#QYBWV4#11\n * @param otherVector defines the other vector\n * @returns a new Vector2 set with the addition of the current Vector2 and the given one coordinates\n */\n add(e) {\n return new Q(this.x + e.x, this.y + e.y);\n }\n /**\n * Sets the \"result\" coordinates with the addition of the current Vector2 and the given one coordinates\n * Example Playground https://playground.babylonjs.com/#QYBWV4#12\n * @param otherVector defines the other vector\n * @param result defines the target vector\n * @returns result input\n */\n addToRef(e, t) {\n return t.x = this.x + e.x, t.y = this.y + e.y, t;\n }\n /**\n * Set the Vector2 coordinates by adding the given Vector2 coordinates\n * Example Playground https://playground.babylonjs.com/#QYBWV4#13\n * @param otherVector defines the other vector\n * @returns the current updated Vector2\n */\n addInPlace(e) {\n return this.x += e.x, this.y += e.y, this;\n }\n /**\n * Adds the given coordinates to the current Vector2\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @returns the current updated Vector2\n */\n addInPlaceFromFloats(e, t) {\n return this.x += e, this.y += t, this;\n }\n /**\n * Gets a new Vector2 by adding the current Vector2 coordinates to the given Vector3 x, y coordinates\n * Example Playground https://playground.babylonjs.com/#QYBWV4#14\n * @param otherVector defines the other vector\n * @returns a new Vector2\n */\n addVector3(e) {\n return new Q(this.x + e.x, this.y + e.y);\n }\n /**\n * Gets a new Vector2 set with the subtracted coordinates of the given one from the current Vector2\n * Example Playground https://playground.babylonjs.com/#QYBWV4#61\n * @param otherVector defines the other vector\n * @returns a new Vector2\n */\n subtract(e) {\n return new Q(this.x - e.x, this.y - e.y);\n }\n /**\n * Sets the \"result\" coordinates with the subtraction of the given one from the current Vector2 coordinates.\n * Example Playground https://playground.babylonjs.com/#QYBWV4#63\n * @param otherVector defines the other vector\n * @param result defines the target vector\n * @returns result input\n */\n subtractToRef(e, t) {\n return t.x = this.x - e.x, t.y = this.y - e.y, t;\n }\n /**\n * Sets the current Vector2 coordinates by subtracting from it the given one coordinates\n * Example Playground https://playground.babylonjs.com/#QYBWV4#88\n * @param otherVector defines the other vector\n * @returns the current updated Vector2\n */\n subtractInPlace(e) {\n return this.x -= e.x, this.y -= e.y, this;\n }\n /**\n * Multiplies in place the current Vector2 coordinates by the given ones\n * Example Playground https://playground.babylonjs.com/#QYBWV4#43\n * @param otherVector defines the other vector\n * @returns the current updated Vector2\n */\n multiplyInPlace(e) {\n return this.x *= e.x, this.y *= e.y, this;\n }\n /**\n * Returns a new Vector2 set with the multiplication of the current Vector2 and the given one coordinates\n * Example Playground https://playground.babylonjs.com/#QYBWV4#42\n * @param otherVector defines the other vector\n * @returns a new Vector2\n */\n multiply(e) {\n return new Q(this.x * e.x, this.y * e.y);\n }\n /**\n * Sets \"result\" coordinates with the multiplication of the current Vector2 and the given one coordinates\n * Example Playground https://playground.babylonjs.com/#QYBWV4#44\n * @param otherVector defines the other vector\n * @param result defines the target vector\n * @returns result input\n */\n multiplyToRef(e, t) {\n return t.x = this.x * e.x, t.y = this.y * e.y, t;\n }\n /**\n * Gets a new Vector2 set with the Vector2 coordinates multiplied by the given floats\n * Example Playground https://playground.babylonjs.com/#QYBWV4#89\n * @param x defines the first coordinate\n * @param y defines the second coordinate\n * @returns a new Vector2\n */\n multiplyByFloats(e, t) {\n return new Q(this.x * e, this.y * t);\n }\n /**\n * Returns a new Vector2 set with the Vector2 coordinates divided by the given one coordinates\n * Example Playground https://playground.babylonjs.com/#QYBWV4#27\n * @param otherVector defines the other vector\n * @returns a new Vector2\n */\n divide(e) {\n return new Q(this.x / e.x, this.y / e.y);\n }\n /**\n * Sets the \"result\" coordinates with the Vector2 divided by the given one coordinates\n * Example Playground https://playground.babylonjs.com/#QYBWV4#30\n * @param otherVector defines the other vector\n * @param result defines the target vector\n * @returns result input\n */\n divideToRef(e, t) {\n return t.x = this.x / e.x, t.y = this.y / e.y, t;\n }\n /**\n * Divides the current Vector2 coordinates by the given ones\n * Example Playground https://playground.babylonjs.com/#QYBWV4#28\n * @param otherVector defines the other vector\n * @returns the current updated Vector2\n */\n divideInPlace(e) {\n return this.x = this.x / e.x, this.y = this.y / e.y, this;\n }\n /**\n * Updates the current Vector2 with the minimal coordinate values between its and the given vector ones\n * @param other defines the second operand\n * @returns the current updated Vector2\n */\n minimizeInPlace(e) {\n return this.minimizeInPlaceFromFloats(e.x, e.y);\n }\n /**\n * Updates the current Vector2 with the maximal coordinate values between its and the given vector ones.\n * @param other defines the second operand\n * @returns the current updated Vector2\n */\n maximizeInPlace(e) {\n return this.maximizeInPlaceFromFloats(e.x, e.y);\n }\n /**\n * Updates the current Vector2 with the minimal coordinate values between its and the given coordinates\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @returns the current updated Vector2\n */\n minimizeInPlaceFromFloats(e, t) {\n return this.x = Math.min(e, this.x), this.y = Math.min(t, this.y), this;\n }\n /**\n * Updates the current Vector2 with the maximal coordinate values between its and the given coordinates.\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @returns the current updated Vector2\n */\n maximizeInPlaceFromFloats(e, t) {\n return this.x = Math.max(e, this.x), this.y = Math.max(t, this.y), this;\n }\n /**\n * Returns a new Vector2 set with the subtraction of the given floats from the current Vector2 coordinates\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @returns the resulting Vector2\n */\n subtractFromFloats(e, t) {\n return new Q(this.x - e, this.y - t);\n }\n /**\n * Subtracts the given floats from the current Vector2 coordinates and set the given vector \"result\" with this result\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @param result defines the Vector2 object where to store the result\n * @returns the result\n */\n subtractFromFloatsToRef(e, t, i) {\n return i.x = this.x - e, i.y = this.y - t, i;\n }\n /**\n * Gets a new Vector2 with current Vector2 negated coordinates\n * @returns a new Vector2\n */\n negate() {\n return new Q(-this.x, -this.y);\n }\n /**\n * Negate this vector in place\n * Example Playground https://playground.babylonjs.com/#QYBWV4#23\n * @returns this\n */\n negateInPlace() {\n return this.x *= -1, this.y *= -1, this;\n }\n /**\n * Negate the current Vector2 and stores the result in the given vector \"result\" coordinates\n * Example Playground https://playground.babylonjs.com/#QYBWV4#41\n * @param result defines the Vector3 object where to store the result\n * @returns the result\n */\n negateToRef(e) {\n return e.x = -this.x, e.y = -this.y, e;\n }\n /**\n * Multiply the Vector2 coordinates by\n * Example Playground https://playground.babylonjs.com/#QYBWV4#59\n * @param scale defines the scaling factor\n * @returns the current updated Vector2\n */\n scaleInPlace(e) {\n return this.x *= e, this.y *= e, this;\n }\n /**\n * Returns a new Vector2 scaled by \"scale\" from the current Vector2\n * Example Playground https://playground.babylonjs.com/#QYBWV4#52\n * @param scale defines the scaling factor\n * @returns a new Vector2\n */\n scale(e) {\n return new Q(this.x * e, this.y * e);\n }\n /**\n * Scale the current Vector2 values by a factor to a given Vector2\n * Example Playground https://playground.babylonjs.com/#QYBWV4#57\n * @param scale defines the scale factor\n * @param result defines the Vector2 object where to store the result\n * @returns result input\n */\n scaleToRef(e, t) {\n return t.x = this.x * e, t.y = this.y * e, t;\n }\n /**\n * Scale the current Vector2 values by a factor and add the result to a given Vector2\n * Example Playground https://playground.babylonjs.com/#QYBWV4#58\n * @param scale defines the scale factor\n * @param result defines the Vector2 object where to store the result\n * @returns result input\n */\n scaleAndAddToRef(e, t) {\n return t.x += this.x * e, t.y += this.y * e, t;\n }\n /**\n * Gets a boolean if two vectors are equals\n * Example Playground https://playground.babylonjs.com/#QYBWV4#31\n * @param otherVector defines the other vector\n * @returns true if the given vector coordinates strictly equal the current Vector2 ones\n */\n equals(e) {\n return e && this.x === e.x && this.y === e.y;\n }\n /**\n * Gets a boolean if two vectors are equals (using an epsilon value)\n * Example Playground https://playground.babylonjs.com/#QYBWV4#32\n * @param otherVector defines the other vector\n * @param epsilon defines the minimal distance to consider equality\n * @returns true if the given vector coordinates are close to the current ones by a distance of epsilon.\n */\n equalsWithEpsilon(e, t = tt) {\n return e && nr(this.x, e.x, t) && nr(this.y, e.y, t);\n }\n /**\n * Returns true if the current Vector2 coordinates equals the given floats\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @returns true if both vectors are equal\n */\n equalsToFloats(e, t) {\n return this.x === e && this.y === t;\n }\n /**\n * Gets a new Vector2 from current Vector2 floored values\n * Example Playground https://playground.babylonjs.com/#QYBWV4#35\n * eg (1.2, 2.31) returns (1, 2)\n * @returns a new Vector2\n */\n floor() {\n return new Q(Math.floor(this.x), Math.floor(this.y));\n }\n /**\n * Gets the current Vector2's floored values and stores them in result\n * @param result the Vector2 to store the result in\n * @returns the result Vector2\n */\n floorToRef(e) {\n return e.x = Math.floor(this.x), e.y = Math.floor(this.y), e;\n }\n /**\n * Gets a new Vector2 from current Vector2 fractional values\n * Example Playground https://playground.babylonjs.com/#QYBWV4#34\n * eg (1.2, 2.31) returns (0.2, 0.31)\n * @returns a new Vector2\n */\n fract() {\n return new Q(this.x - Math.floor(this.x), this.y - Math.floor(this.y));\n }\n /**\n * Gets the current Vector2's fractional values and stores them in result\n * @param result the Vector2 to store the result in\n * @returns the result Vector2\n */\n fractToRef(e) {\n return e.x = this.x - Math.floor(this.x), e.y = this.y - Math.floor(this.y), e;\n }\n /**\n * Rotate the current vector into a given result vector\n * Example Playground https://playground.babylonjs.com/#QYBWV4#49\n * @param angle defines the rotation angle\n * @param result defines the result vector where to store the rotated vector\n * @returns result input\n */\n rotateToRef(e, t) {\n const i = Math.cos(e), s = Math.sin(e), r = i * this.x - s * this.y, n = s * this.x + i * this.y;\n return t.x = r, t.y = n, t;\n }\n // Properties\n /**\n * Gets the length of the vector\n * @returns the vector length (float)\n */\n length() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n }\n /**\n * Gets the vector squared length\n * @returns the vector squared length (float)\n */\n lengthSquared() {\n return this.x * this.x + this.y * this.y;\n }\n // Methods\n /**\n * Normalize the vector\n * Example Playground https://playground.babylonjs.com/#QYBWV4#48\n * @returns the current updated Vector2\n */\n normalize() {\n return this.normalizeFromLength(this.length());\n }\n /**\n * Normalize the current Vector2 with the given input length.\n * Please note that this is an in place operation.\n * @param len the length of the vector\n * @returns the current updated Vector2\n */\n normalizeFromLength(e) {\n return e === 0 || e === 1 ? this : this.scaleInPlace(1 / e);\n }\n /**\n * Normalize the current Vector2 to a new vector\n * @returns the new Vector2\n */\n normalizeToNew() {\n const e = new Q();\n return this.normalizeToRef(e), e;\n }\n /**\n * Normalize the current Vector2 to the reference\n * @param result define the Vector to update\n * @returns the updated Vector2\n */\n normalizeToRef(e) {\n const t = this.length();\n return t === 0 && (e.x = this.x, e.y = this.y), this.scaleToRef(1 / t, e);\n }\n /**\n * Gets a new Vector2 copied from the Vector2\n * Example Playground https://playground.babylonjs.com/#QYBWV4#20\n * @returns a new Vector2\n */\n clone() {\n return new Q(this.x, this.y);\n }\n /**\n * Gets the dot product of the current vector and the vector \"otherVector\"\n * @param otherVector defines second vector\n * @returns the dot product (float)\n */\n dot(e) {\n return this.x * e.x + this.y * e.y;\n }\n // Statics\n /**\n * Gets a new Vector2(0, 0)\n * @returns a new Vector2\n */\n static Zero() {\n return new Q(0, 0);\n }\n /**\n * Gets a new Vector2(1, 1)\n * @returns a new Vector2\n */\n static One() {\n return new Q(1, 1);\n }\n /**\n * Returns a new Vector2 with random values between min and max\n * @param min the minimum random value\n * @param max the maximum random value\n * @returns a Vector2 with random values between min and max\n */\n static Random(e = 0, t = 1) {\n return new Q(Wt(e, t), Wt(e, t));\n }\n /**\n * Sets a Vector2 with random values between min and max\n * @param min the minimum random value\n * @param max the maximum random value\n * @param ref the ref to store the values in\n * @returns the ref with random values between min and max\n */\n static RandomToRef(e = 0, t = 1, i) {\n return i.copyFromFloats(Wt(e, t), Wt(e, t));\n }\n /**\n * Gets a zero Vector2 that must not be updated\n */\n static get ZeroReadOnly() {\n return Q._ZeroReadOnly;\n }\n /**\n * Gets a new Vector2 set from the given index element of the given array\n * Example Playground https://playground.babylonjs.com/#QYBWV4#79\n * @param array defines the data source\n * @param offset defines the offset in the data source\n * @returns a new Vector2\n */\n static FromArray(e, t = 0) {\n return new Q(e[t], e[t + 1]);\n }\n /**\n * Sets \"result\" from the given index element of the given array\n * Example Playground https://playground.babylonjs.com/#QYBWV4#80\n * @param array defines the data source\n * @param offset defines the offset in the data source\n * @param result defines the target vector\n * @returns result input\n */\n static FromArrayToRef(e, t, i) {\n return i.x = e[t], i.y = e[t + 1], i;\n }\n /**\n * Sets the given vector \"result\" with the given floats.\n * @param x defines the x coordinate of the source\n * @param y defines the y coordinate of the source\n * @param result defines the Vector2 where to store the result\n * @returns the result vector\n */\n static FromFloatsToRef(e, t, i) {\n return i.copyFromFloats(e, t), i;\n }\n /**\n * Gets a new Vector2 located for \"amount\" (float) on the CatmullRom spline defined by the given four Vector2\n * Example Playground https://playground.babylonjs.com/#QYBWV4#65\n * @param value1 defines 1st point of control\n * @param value2 defines 2nd point of control\n * @param value3 defines 3rd point of control\n * @param value4 defines 4th point of control\n * @param amount defines the interpolation factor\n * @returns a new Vector2\n */\n static CatmullRom(e, t, i, s, r) {\n const n = r * r, o = r * n, l = 0.5 * (2 * t.x + (-e.x + i.x) * r + (2 * e.x - 5 * t.x + 4 * i.x - s.x) * n + (-e.x + 3 * t.x - 3 * i.x + s.x) * o), h = 0.5 * (2 * t.y + (-e.y + i.y) * r + (2 * e.y - 5 * t.y + 4 * i.y - s.y) * n + (-e.y + 3 * t.y - 3 * i.y + s.y) * o);\n return new Q(l, h);\n }\n /**\n * Sets reference with same the coordinates than \"value\" ones if the vector \"value\" is in the square defined by \"min\" and \"max\".\n * If a coordinate of \"value\" is lower than \"min\" coordinates, the returned Vector2 is given this \"min\" coordinate.\n * If a coordinate of \"value\" is greater than \"max\" coordinates, the returned Vector2 is given this \"max\" coordinate\n * @param value defines the value to clamp\n * @param min defines the lower limit\n * @param max defines the upper limit\n * @param ref the reference\n * @returns the reference\n */\n static ClampToRef(e, t, i, s) {\n return s.x = Vi(e.x, t.x, i.x), s.y = Vi(e.y, t.y, i.y), s;\n }\n /**\n * Returns a new Vector2 set with same the coordinates than \"value\" ones if the vector \"value\" is in the square defined by \"min\" and \"max\".\n * If a coordinate of \"value\" is lower than \"min\" coordinates, the returned Vector2 is given this \"min\" coordinate.\n * If a coordinate of \"value\" is greater than \"max\" coordinates, the returned Vector2 is given this \"max\" coordinate\n * Example Playground https://playground.babylonjs.com/#QYBWV4#76\n * @param value defines the value to clamp\n * @param min defines the lower limit\n * @param max defines the upper limit\n * @returns a new Vector2\n */\n static Clamp(e, t, i) {\n const s = Vi(e.x, t.x, i.x), r = Vi(e.y, t.y, i.y);\n return new Q(s, r);\n }\n /**\n * Returns a new Vector2 located for \"amount\" (float) on the Hermite spline defined by the vectors \"value1\", \"value2\", \"tangent1\", \"tangent2\"\n * Example Playground https://playground.babylonjs.com/#QYBWV4#81\n * @param value1 defines the 1st control point\n * @param tangent1 defines the outgoing tangent\n * @param value2 defines the 2nd control point\n * @param tangent2 defines the incoming tangent\n * @param amount defines the interpolation factor\n * @returns a new Vector2\n */\n static Hermite(e, t, i, s, r) {\n const n = r * r, o = r * n, l = 2 * o - 3 * n + 1, h = -2 * o + 3 * n, c = o - 2 * n + r, u = o - n, d = e.x * l + i.x * h + t.x * c + s.x * u, f = e.y * l + i.y * h + t.y * c + s.y * u;\n return new Q(d, f);\n }\n /**\n * Returns a new Vector2 which is the 1st derivative of the Hermite spline defined by the vectors \"value1\", \"value2\", \"tangent1\", \"tangent2\".\n * Example Playground https://playground.babylonjs.com/#QYBWV4#82\n * @param value1 defines the first control point\n * @param tangent1 defines the first tangent\n * @param value2 defines the second control point\n * @param tangent2 defines the second tangent\n * @param time define where the derivative must be done\n * @returns 1st derivative\n */\n static Hermite1stDerivative(e, t, i, s, r) {\n return this.Hermite1stDerivativeToRef(e, t, i, s, r, new Q());\n }\n /**\n * Returns a new Vector2 which is the 1st derivative of the Hermite spline defined by the vectors \"value1\", \"value2\", \"tangent1\", \"tangent2\".\n * Example Playground https://playground.babylonjs.com/#QYBWV4#83\n * @param value1 defines the first control point\n * @param tangent1 defines the first tangent\n * @param value2 defines the second control point\n * @param tangent2 defines the second tangent\n * @param time define where the derivative must be done\n * @param result define where the derivative will be stored\n * @returns result input\n */\n static Hermite1stDerivativeToRef(e, t, i, s, r, n) {\n const o = r * r;\n return n.x = (o - r) * 6 * e.x + (3 * o - 4 * r + 1) * t.x + (-o + r) * 6 * i.x + (3 * o - 2 * r) * s.x, n.y = (o - r) * 6 * e.y + (3 * o - 4 * r + 1) * t.y + (-o + r) * 6 * i.y + (3 * o - 2 * r) * s.y, n;\n }\n /**\n * Returns a new Vector2 located for \"amount\" (float) on the linear interpolation between the vector \"start\" adn the vector \"end\".\n * Example Playground https://playground.babylonjs.com/#QYBWV4#84\n * @param start defines the start vector\n * @param end defines the end vector\n * @param amount defines the interpolation factor\n * @returns a new Vector2\n */\n static Lerp(e, t, i) {\n return Q.LerpToRef(e, t, i, new Q());\n }\n /**\n * Sets the given vector \"result\" with the result of the linear interpolation from the vector \"start\" for \"amount\" to the vector \"end\"\n * @param start defines the start value\n * @param end defines the end value\n * @param amount max defines amount between both (between 0 and 1)\n * @param result defines the Vector2 where to store the result\n * @returns result input\n */\n static LerpToRef(e, t, i, s) {\n return s.x = e.x + (t.x - e.x) * i, s.y = e.y + (t.y - e.y) * i, s;\n }\n /**\n * Gets the dot product of the vector \"left\" and the vector \"right\"\n * Example Playground https://playground.babylonjs.com/#QYBWV4#90\n * @param left defines first vector\n * @param right defines second vector\n * @returns the dot product (float)\n */\n static Dot(e, t) {\n return e.x * t.x + e.y * t.y;\n }\n /**\n * Returns a new Vector2 equal to the normalized given vector\n * Example Playground https://playground.babylonjs.com/#QYBWV4#46\n * @param vector defines the vector to normalize\n * @returns a new Vector2\n */\n static Normalize(e) {\n return Q.NormalizeToRef(e, new Q());\n }\n /**\n * Normalize a given vector into a second one\n * Example Playground https://playground.babylonjs.com/#QYBWV4#50\n * @param vector defines the vector to normalize\n * @param result defines the vector where to store the result\n * @returns result input\n */\n static NormalizeToRef(e, t) {\n return e.normalizeToRef(t), t;\n }\n /**\n * Gets a new Vector2 set with the minimal coordinate values from the \"left\" and \"right\" vectors\n * Example Playground https://playground.babylonjs.com/#QYBWV4#86\n * @param left defines 1st vector\n * @param right defines 2nd vector\n * @returns a new Vector2\n */\n static Minimize(e, t) {\n const i = e.x < t.x ? e.x : t.x, s = e.y < t.y ? e.y : t.y;\n return new Q(i, s);\n }\n /**\n * Gets a new Vector2 set with the maximal coordinate values from the \"left\" and \"right\" vectors\n * Example Playground https://playground.babylonjs.com/#QYBWV4#86\n * @param left defines 1st vector\n * @param right defines 2nd vector\n * @returns a new Vector2\n */\n static Maximize(e, t) {\n const i = e.x > t.x ? e.x : t.x, s = e.y > t.y ? e.y : t.y;\n return new Q(i, s);\n }\n /**\n * Gets a new Vector2 set with the transformed coordinates of the given vector by the given transformation matrix\n * Example Playground https://playground.babylonjs.com/#QYBWV4#17\n * @param vector defines the vector to transform\n * @param transformation defines the matrix to apply\n * @returns a new Vector2\n */\n static Transform(e, t) {\n return Q.TransformToRef(e, t, new Q());\n }\n /**\n * Transforms the given vector coordinates by the given transformation matrix and stores the result in the vector \"result\" coordinates\n * Example Playground https://playground.babylonjs.com/#QYBWV4#19\n * @param vector defines the vector to transform\n * @param transformation defines the matrix to apply\n * @param result defines the target vector\n * @returns result input\n */\n static TransformToRef(e, t, i) {\n const s = t.m, r = e.x * s[0] + e.y * s[4] + s[12], n = e.x * s[1] + e.y * s[5] + s[13];\n return i.x = r, i.y = n, i;\n }\n /**\n * Determines if a given vector is included in a triangle\n * Example Playground https://playground.babylonjs.com/#QYBWV4#87\n * @param p defines the vector to test\n * @param p0 defines 1st triangle point\n * @param p1 defines 2nd triangle point\n * @param p2 defines 3rd triangle point\n * @returns true if the point \"p\" is in the triangle defined by the vectors \"p0\", \"p1\", \"p2\"\n */\n static PointInTriangle(e, t, i, s) {\n const r = 0.5 * (-i.y * s.x + t.y * (-i.x + s.x) + t.x * (i.y - s.y) + i.x * s.y), n = r < 0 ? -1 : 1, o = (t.y * s.x - t.x * s.y + (s.y - t.y) * e.x + (t.x - s.x) * e.y) * n, l = (t.x * i.y - t.y * i.x + (t.y - i.y) * e.x + (i.x - t.x) * e.y) * n;\n return o > 0 && l > 0 && o + l < 2 * r * n;\n }\n /**\n * Gets the distance between the vectors \"value1\" and \"value2\"\n * Example Playground https://playground.babylonjs.com/#QYBWV4#71\n * @param value1 defines first vector\n * @param value2 defines second vector\n * @returns the distance between vectors\n */\n static Distance(e, t) {\n return Math.sqrt(Q.DistanceSquared(e, t));\n }\n /**\n * Returns the squared distance between the vectors \"value1\" and \"value2\"\n * Example Playground https://playground.babylonjs.com/#QYBWV4#72\n * @param value1 defines first vector\n * @param value2 defines second vector\n * @returns the squared distance between vectors\n */\n static DistanceSquared(e, t) {\n const i = e.x - t.x, s = e.y - t.y;\n return i * i + s * s;\n }\n /**\n * Gets a new Vector2 located at the center of the vectors \"value1\" and \"value2\"\n * Example Playground https://playground.babylonjs.com/#QYBWV4#86\n * Example Playground https://playground.babylonjs.com/#QYBWV4#66\n * @param value1 defines first vector\n * @param value2 defines second vector\n * @returns a new Vector2\n */\n static Center(e, t) {\n return Q.CenterToRef(e, t, new Q());\n }\n /**\n * Gets the center of the vectors \"value1\" and \"value2\" and stores the result in the vector \"ref\"\n * Example Playground https://playground.babylonjs.com/#QYBWV4#66\n * @param value1 defines first vector\n * @param value2 defines second vector\n * @param ref defines third vector\n * @returns ref\n */\n static CenterToRef(e, t, i) {\n return i.copyFromFloats((e.x + t.x) / 2, (e.y + t.y) / 2);\n }\n /**\n * Gets the shortest distance (float) between the point \"p\" and the segment defined by the two points \"segA\" and \"segB\".\n * Example Playground https://playground.babylonjs.com/#QYBWV4#77\n * @param p defines the middle point\n * @param segA defines one point of the segment\n * @param segB defines the other point of the segment\n * @returns the shortest distance\n */\n static DistanceOfPointFromSegment(e, t, i) {\n const s = Q.DistanceSquared(t, i);\n if (s === 0)\n return Q.Distance(e, t);\n const r = i.subtract(t), n = Math.max(0, Math.min(1, Q.Dot(e.subtract(t), r) / s)), o = t.add(r.multiplyByFloats(n, n));\n return Q.Distance(e, o);\n }\n}\nQ._ZeroReadOnly = Q.Zero();\nObject.defineProperties(Q.prototype, {\n dimension: { value: [2] },\n rank: { value: 1 }\n});\nclass g {\n /** Gets or sets the x coordinate */\n get x() {\n return this._x;\n }\n set x(e) {\n this._x = e, this._isDirty = !0;\n }\n /** Gets or sets the y coordinate */\n get y() {\n return this._y;\n }\n set y(e) {\n this._y = e, this._isDirty = !0;\n }\n /** Gets or sets the z coordinate */\n get z() {\n return this._z;\n }\n set z(e) {\n this._z = e, this._isDirty = !0;\n }\n /**\n * Creates a new Vector3 object from the given x, y, z (floats) coordinates.\n * @param x defines the first coordinates (on X axis)\n * @param y defines the second coordinates (on Y axis)\n * @param z defines the third coordinates (on Z axis)\n */\n constructor(e = 0, t = 0, i = 0) {\n this._isDirty = !0, this._x = e, this._y = t, this._z = i;\n }\n /**\n * Creates a string representation of the Vector3\n * Example Playground https://playground.babylonjs.com/#R1F8YU#67\n * @returns a string with the Vector3 coordinates.\n */\n toString() {\n return `{X: ${this._x} Y: ${this._y} Z: ${this._z}}`;\n }\n /**\n * Gets the class name\n * @returns the string \"Vector3\"\n */\n getClassName() {\n return \"Vector3\";\n }\n /**\n * Creates the Vector3 hash code\n * @returns a number which tends to be unique between Vector3 instances\n */\n getHashCode() {\n const e = Gr(this._x), t = Gr(this._y), i = Gr(this._z);\n let s = e;\n return s = s * 397 ^ t, s = s * 397 ^ i, s;\n }\n // Operators\n /**\n * Creates an array containing three elements : the coordinates of the Vector3\n * Example Playground https://playground.babylonjs.com/#R1F8YU#10\n * @returns a new array of numbers\n */\n asArray() {\n return [this._x, this._y, this._z];\n }\n /**\n * Populates the given array or Float32Array from the given index with the successive coordinates of the Vector3\n * Example Playground https://playground.babylonjs.com/#R1F8YU#65\n * @param array defines the destination array\n * @param index defines the offset in the destination array\n * @returns the current Vector3\n */\n toArray(e, t = 0) {\n return e[t] = this._x, e[t + 1] = this._y, e[t + 2] = this._z, this;\n }\n /**\n * Update the current vector from an array\n * Example Playground https://playground.babylonjs.com/#R1F8YU#24\n * @param array defines the destination array\n * @param offset defines the offset in the destination array\n * @returns the current Vector3\n */\n fromArray(e, t = 0) {\n return g.FromArrayToRef(e, t, this), this;\n }\n /**\n * Converts the current Vector3 into a quaternion (considering that the Vector3 contains Euler angles representation of a rotation)\n * Example Playground https://playground.babylonjs.com/#R1F8YU#66\n * @returns a new Quaternion object, computed from the Vector3 coordinates\n */\n toQuaternion() {\n return se.RotationYawPitchRoll(this._y, this._x, this._z);\n }\n /**\n * Adds the given vector to the current Vector3\n * Example Playground https://playground.babylonjs.com/#R1F8YU#4\n * @param otherVector defines the second operand\n * @returns the current updated Vector3\n */\n addInPlace(e) {\n return this._x += e._x, this._y += e._y, this._z += e._z, this._isDirty = !0, this;\n }\n /**\n * Adds the given coordinates to the current Vector3\n * Example Playground https://playground.babylonjs.com/#R1F8YU#5\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @param z defines the z coordinate of the operand\n * @returns the current updated Vector3\n */\n addInPlaceFromFloats(e, t, i) {\n return this._x += e, this._y += t, this._z += i, this._isDirty = !0, this;\n }\n /**\n * Gets a new Vector3, result of the addition the current Vector3 and the given vector\n * Example Playground https://playground.babylonjs.com/#R1F8YU#3\n * @param otherVector defines the second operand\n * @returns the resulting Vector3\n */\n add(e) {\n return new g(this._x + e._x, this._y + e._y, this._z + e._z);\n }\n /**\n * Adds the current Vector3 to the given one and stores the result in the vector \"result\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#6\n * @param otherVector defines the second operand\n * @param result defines the Vector3 object where to store the result\n * @returns the result\n */\n addToRef(e, t) {\n return t.copyFromFloats(this._x + e._x, this._y + e._y, this._z + e._z);\n }\n /**\n * Subtract the given vector from the current Vector3\n * Example Playground https://playground.babylonjs.com/#R1F8YU#61\n * @param otherVector defines the second operand\n * @returns the current updated Vector3\n */\n subtractInPlace(e) {\n return this._x -= e._x, this._y -= e._y, this._z -= e._z, this._isDirty = !0, this;\n }\n /**\n * Returns a new Vector3, result of the subtraction of the given vector from the current Vector3\n * Example Playground https://playground.babylonjs.com/#R1F8YU#60\n * @param otherVector defines the second operand\n * @returns the resulting Vector3\n */\n subtract(e) {\n return new g(this._x - e._x, this._y - e._y, this._z - e._z);\n }\n /**\n * Subtracts the given vector from the current Vector3 and stores the result in the vector \"result\".\n * Example Playground https://playground.babylonjs.com/#R1F8YU#63\n * @param otherVector defines the second operand\n * @param result defines the Vector3 object where to store the result\n * @returns the result\n */\n subtractToRef(e, t) {\n return this.subtractFromFloatsToRef(e._x, e._y, e._z, t);\n }\n /**\n * Returns a new Vector3 set with the subtraction of the given floats from the current Vector3 coordinates\n * Example Playground https://playground.babylonjs.com/#R1F8YU#62\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @param z defines the z coordinate of the operand\n * @returns the resulting Vector3\n */\n subtractFromFloats(e, t, i) {\n return new g(this._x - e, this._y - t, this._z - i);\n }\n /**\n * Subtracts the given floats from the current Vector3 coordinates and set the given vector \"result\" with this result\n * Example Playground https://playground.babylonjs.com/#R1F8YU#64\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @param z defines the z coordinate of the operand\n * @param result defines the Vector3 object where to store the result\n * @returns the result\n */\n subtractFromFloatsToRef(e, t, i, s) {\n return s.copyFromFloats(this._x - e, this._y - t, this._z - i);\n }\n /**\n * Gets a new Vector3 set with the current Vector3 negated coordinates\n * Example Playground https://playground.babylonjs.com/#R1F8YU#35\n * @returns a new Vector3\n */\n negate() {\n return new g(-this._x, -this._y, -this._z);\n }\n /**\n * Negate this vector in place\n * Example Playground https://playground.babylonjs.com/#R1F8YU#36\n * @returns this\n */\n negateInPlace() {\n return this._x *= -1, this._y *= -1, this._z *= -1, this._isDirty = !0, this;\n }\n /**\n * Negate the current Vector3 and stores the result in the given vector \"result\" coordinates\n * Example Playground https://playground.babylonjs.com/#R1F8YU#37\n * @param result defines the Vector3 object where to store the result\n * @returns the result\n */\n negateToRef(e) {\n return e.copyFromFloats(this._x * -1, this._y * -1, this._z * -1);\n }\n /**\n * Multiplies the Vector3 coordinates by the float \"scale\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#56\n * @param scale defines the multiplier factor\n * @returns the current updated Vector3\n */\n scaleInPlace(e) {\n return this._x *= e, this._y *= e, this._z *= e, this._isDirty = !0, this;\n }\n /**\n * Returns a new Vector3 set with the current Vector3 coordinates multiplied by the float \"scale\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#53\n * @param scale defines the multiplier factor\n * @returns a new Vector3\n */\n scale(e) {\n return new g(this._x * e, this._y * e, this._z * e);\n }\n /**\n * Multiplies the current Vector3 coordinates by the float \"scale\" and stores the result in the given vector \"result\" coordinates\n * Example Playground https://playground.babylonjs.com/#R1F8YU#57\n * @param scale defines the multiplier factor\n * @param result defines the Vector3 object where to store the result\n * @returns the result\n */\n scaleToRef(e, t) {\n return t.copyFromFloats(this._x * e, this._y * e, this._z * e);\n }\n /**\n * Creates a vector normal (perpendicular) to the current Vector3 and stores the result in the given vector\n * Out of the infinite possibilities the normal chosen is the one formed by rotating the current vector\n * 90 degrees about an axis which lies perpendicular to the current vector\n * and its projection on the xz plane. In the case of a current vector in the xz plane\n * the normal is calculated to be along the y axis.\n * Example Playground https://playground.babylonjs.com/#R1F8YU#230\n * Example Playground https://playground.babylonjs.com/#R1F8YU#231\n * @param result defines the Vector3 object where to store the resultant normal\n * @returns the result\n */\n getNormalToRef(e) {\n const t = this.length();\n let i = Math.acos(this.y / t);\n const s = Math.atan2(this.z, this.x);\n i > Math.PI / 2 ? i -= Math.PI / 2 : i += Math.PI / 2;\n const r = t * Math.sin(i) * Math.cos(s), n = t * Math.cos(i), o = t * Math.sin(i) * Math.sin(s);\n return e.set(r, n, o), e;\n }\n /**\n * Rotates the vector using the given unit quaternion and stores the new vector in result\n * Example Playground https://playground.babylonjs.com/#R1F8YU#9\n * @param q the unit quaternion representing the rotation\n * @param result the output vector\n * @returns the result\n */\n applyRotationQuaternionToRef(e, t) {\n const i = this._x, s = this._y, r = this._z, n = e._x, o = e._y, l = e._z, h = e._w, c = 2 * (o * r - l * s), u = 2 * (l * i - n * r), d = 2 * (n * s - o * i);\n return t._x = i + h * c + o * d - l * u, t._y = s + h * u + l * c - n * d, t._z = r + h * d + n * u - o * c, t._isDirty = !0, t;\n }\n /**\n * Rotates the vector in place using the given unit quaternion\n * Example Playground https://playground.babylonjs.com/#R1F8YU#8\n * @param q the unit quaternion representing the rotation\n * @returns the current updated Vector3\n */\n applyRotationQuaternionInPlace(e) {\n return this.applyRotationQuaternionToRef(e, this);\n }\n /**\n * Rotates the vector using the given unit quaternion and returns the new vector\n * Example Playground https://playground.babylonjs.com/#R1F8YU#7\n * @param q the unit quaternion representing the rotation\n * @returns a new Vector3\n */\n applyRotationQuaternion(e) {\n return this.applyRotationQuaternionToRef(e, new g());\n }\n /**\n * Scale the current Vector3 values by a factor and add the result to a given Vector3\n * Example Playground https://playground.babylonjs.com/#R1F8YU#55\n * @param scale defines the scale factor\n * @param result defines the Vector3 object where to store the result\n * @returns result input\n */\n scaleAndAddToRef(e, t) {\n return t.addInPlaceFromFloats(this._x * e, this._y * e, this._z * e);\n }\n /**\n * Projects the current point Vector3 to a plane along a ray starting from a specified origin and passing through the current point Vector3.\n * Example Playground https://playground.babylonjs.com/#R1F8YU#48\n * @param plane defines the plane to project to\n * @param origin defines the origin of the projection ray\n * @returns the projected vector3\n */\n projectOnPlane(e, t) {\n return this.projectOnPlaneToRef(e, t, new g());\n }\n /**\n * Projects the current point Vector3 to a plane along a ray starting from a specified origin and passing through the current point Vector3.\n * Example Playground https://playground.babylonjs.com/#R1F8YU#49\n * @param plane defines the plane to project to\n * @param origin defines the origin of the projection ray\n * @param result defines the Vector3 where to store the result\n * @returns result input\n */\n projectOnPlaneToRef(e, t, i) {\n const s = e.normal, r = e.d, n = ke.Vector3[0];\n this.subtractToRef(t, n), n.normalize();\n const o = g.Dot(n, s);\n if (Math.abs(o) < 1e-10)\n i.setAll(1 / 0);\n else {\n const l = -(g.Dot(t, s) + r) / o, h = n.scaleInPlace(l);\n t.addToRef(h, i);\n }\n return i;\n }\n /**\n * Returns true if the current Vector3 and the given vector coordinates are strictly equal\n * Example Playground https://playground.babylonjs.com/#R1F8YU#19\n * @param otherVector defines the second operand\n * @returns true if both vectors are equals\n */\n equals(e) {\n return e && this._x === e._x && this._y === e._y && this._z === e._z;\n }\n /**\n * Returns true if the current Vector3 and the given vector coordinates are distant less than epsilon\n * Example Playground https://playground.babylonjs.com/#R1F8YU#21\n * @param otherVector defines the second operand\n * @param epsilon defines the minimal distance to define values as equals\n * @returns true if both vectors are distant less than epsilon\n */\n equalsWithEpsilon(e, t = tt) {\n return e && nr(this._x, e._x, t) && nr(this._y, e._y, t) && nr(this._z, e._z, t);\n }\n /**\n * Returns true if the current Vector3 coordinates equals the given floats\n * Example Playground https://playground.babylonjs.com/#R1F8YU#20\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @param z defines the z coordinate of the operand\n * @returns true if both vectors are equal\n */\n equalsToFloats(e, t, i) {\n return this._x === e && this._y === t && this._z === i;\n }\n /**\n * Multiplies the current Vector3 coordinates by the given ones\n * Example Playground https://playground.babylonjs.com/#R1F8YU#32\n * @param otherVector defines the second operand\n * @returns the current updated Vector3\n */\n multiplyInPlace(e) {\n return this._x *= e._x, this._y *= e._y, this._z *= e._z, this._isDirty = !0, this;\n }\n /**\n * Returns a new Vector3, result of the multiplication of the current Vector3 by the given vector\n * Example Playground https://playground.babylonjs.com/#R1F8YU#31\n * @param otherVector defines the second operand\n * @returns the new Vector3\n */\n multiply(e) {\n return this.multiplyByFloats(e._x, e._y, e._z);\n }\n /**\n * Multiplies the current Vector3 by the given one and stores the result in the given vector \"result\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#33\n * @param otherVector defines the second operand\n * @param result defines the Vector3 object where to store the result\n * @returns the result\n */\n multiplyToRef(e, t) {\n return t.copyFromFloats(this._x * e._x, this._y * e._y, this._z * e._z);\n }\n /**\n * Returns a new Vector3 set with the result of the multiplication of the current Vector3 coordinates by the given floats\n * Example Playground https://playground.babylonjs.com/#R1F8YU#34\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @param z defines the z coordinate of the operand\n * @returns the new Vector3\n */\n multiplyByFloats(e, t, i) {\n return new g(this._x * e, this._y * t, this._z * i);\n }\n /**\n * Returns a new Vector3 set with the result of the division of the current Vector3 coordinates by the given ones\n * Example Playground https://playground.babylonjs.com/#R1F8YU#16\n * @param otherVector defines the second operand\n * @returns the new Vector3\n */\n divide(e) {\n return new g(this._x / e._x, this._y / e._y, this._z / e._z);\n }\n /**\n * Divides the current Vector3 coordinates by the given ones and stores the result in the given vector \"result\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#18\n * @param otherVector defines the second operand\n * @param result defines the Vector3 object where to store the result\n * @returns the result\n */\n divideToRef(e, t) {\n return t.copyFromFloats(this._x / e._x, this._y / e._y, this._z / e._z);\n }\n /**\n * Divides the current Vector3 coordinates by the given ones.\n * Example Playground https://playground.babylonjs.com/#R1F8YU#17\n * @param otherVector defines the second operand\n * @returns the current updated Vector3\n */\n divideInPlace(e) {\n return this._x = this._x / e._x, this._y = this._y / e._y, this._z = this._z / e._z, this._isDirty = !0, this;\n }\n /**\n * Updates the current Vector3 with the minimal coordinate values between its and the given vector ones\n * Example Playground https://playground.babylonjs.com/#R1F8YU#29\n * @param other defines the second operand\n * @returns the current updated Vector3\n */\n minimizeInPlace(e) {\n return this.minimizeInPlaceFromFloats(e._x, e._y, e._z);\n }\n /**\n * Updates the current Vector3 with the maximal coordinate values between its and the given vector ones.\n * Example Playground https://playground.babylonjs.com/#R1F8YU#27\n * @param other defines the second operand\n * @returns the current updated Vector3\n */\n maximizeInPlace(e) {\n return this.maximizeInPlaceFromFloats(e._x, e._y, e._z);\n }\n /**\n * Updates the current Vector3 with the minimal coordinate values between its and the given coordinates\n * Example Playground https://playground.babylonjs.com/#R1F8YU#30\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @param z defines the z coordinate of the operand\n * @returns the current updated Vector3\n */\n minimizeInPlaceFromFloats(e, t, i) {\n return e < this._x && (this.x = e), t < this._y && (this.y = t), i < this._z && (this.z = i), this;\n }\n /**\n * Updates the current Vector3 with the maximal coordinate values between its and the given coordinates.\n * Example Playground https://playground.babylonjs.com/#R1F8YU#28\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @param z defines the z coordinate of the operand\n * @returns the current updated Vector3\n */\n maximizeInPlaceFromFloats(e, t, i) {\n return e > this._x && (this.x = e), t > this._y && (this.y = t), i > this._z && (this.z = i), this;\n }\n /**\n * Due to float precision, scale of a mesh could be uniform but float values are off by a small fraction\n * Check if is non uniform within a certain amount of decimal places to account for this\n * @param epsilon the amount the values can differ\n * @returns if the vector is non uniform to a certain number of decimal places\n */\n isNonUniformWithinEpsilon(e) {\n const t = Math.abs(this._x), i = Math.abs(this._y);\n if (!nr(t, i, e))\n return !0;\n const s = Math.abs(this._z);\n return !nr(t, s, e) || !nr(i, s, e);\n }\n /**\n * Gets a boolean indicating that the vector is non uniform meaning x, y or z are not all the same\n */\n get isNonUniform() {\n const e = Math.abs(this._x), t = Math.abs(this._y);\n if (e !== t)\n return !0;\n const i = Math.abs(this._z);\n return e !== i;\n }\n /**\n * Gets the current Vector3's floored values and stores them in result\n * @param result the vector to store the result in\n * @returns the result vector\n */\n floorToRef(e) {\n return e._x = Math.floor(this._x), e._y = Math.floor(this._y), e._z = Math.floor(this._z), e._isDirty = !0, e;\n }\n /**\n * Gets a new Vector3 from current Vector3 floored values\n * Example Playground https://playground.babylonjs.com/#R1F8YU#22\n * @returns a new Vector3\n */\n floor() {\n return new g(Math.floor(this.x), Math.floor(this.y), Math.floor(this.z));\n }\n /**\n * Gets the current Vector3's fractional values and stores them in result\n * @param result the vector to store the result in\n * @returns the result vector\n */\n fractToRef(e) {\n return e._x = this.x - Math.floor(this._x), e._y = this.y - Math.floor(this._y), e._z = this.z - Math.floor(this._z), e._isDirty = !0, e;\n }\n /**\n * Gets a new Vector3 from current Vector3 fractional values\n * Example Playground https://playground.babylonjs.com/#R1F8YU#23\n * @returns a new Vector3\n */\n fract() {\n return new g(this.x - Math.floor(this._x), this.y - Math.floor(this._y), this.z - Math.floor(this._z));\n }\n // Properties\n /**\n * Gets the length of the Vector3\n * Example Playground https://playground.babylonjs.com/#R1F8YU#25\n * @returns the length of the Vector3\n */\n length() {\n return Math.sqrt(this.lengthSquared());\n }\n /**\n * Gets the squared length of the Vector3\n * Example Playground https://playground.babylonjs.com/#R1F8YU#26\n * @returns squared length of the Vector3\n */\n lengthSquared() {\n return this._x * this._x + this._y * this._y + this._z * this._z;\n }\n /**\n * Gets a boolean indicating if the vector contains a zero in one of its components\n * Example Playground https://playground.babylonjs.com/#R1F8YU#1\n */\n get hasAZeroComponent() {\n return this._x * this._y * this._z === 0;\n }\n /**\n * Normalize the current Vector3.\n * Please note that this is an in place operation.\n * Example Playground https://playground.babylonjs.com/#R1F8YU#122\n * @returns the current updated Vector3\n */\n normalize() {\n return this.normalizeFromLength(this.length());\n }\n /**\n * Reorders the x y z properties of the vector in place\n * Example Playground https://playground.babylonjs.com/#R1F8YU#44\n * @param order new ordering of the properties (eg. for vector 1,2,3 with \"ZYX\" will produce 3,2,1)\n * @returns the current updated vector\n */\n reorderInPlace(e) {\n if (e = e.toLowerCase(), e === \"xyz\")\n return this;\n const t = ke.Vector3[0].copyFrom(this);\n return this.x = t[e[0]], this.y = t[e[1]], this.z = t[e[2]], this;\n }\n /**\n * Rotates the vector around 0,0,0 by a quaternion\n * Example Playground https://playground.babylonjs.com/#R1F8YU#47\n * @param quaternion the rotation quaternion\n * @param result vector to store the result\n * @returns the resulting vector\n */\n rotateByQuaternionToRef(e, t) {\n return e.toRotationMatrix(ke.Matrix[0]), g.TransformCoordinatesToRef(this, ke.Matrix[0], t), t;\n }\n /**\n * Rotates a vector around a given point\n * Example Playground https://playground.babylonjs.com/#R1F8YU#46\n * @param quaternion the rotation quaternion\n * @param point the point to rotate around\n * @param result vector to store the result\n * @returns the resulting vector\n */\n rotateByQuaternionAroundPointToRef(e, t, i) {\n return this.subtractToRef(t, ke.Vector3[0]), ke.Vector3[0].rotateByQuaternionToRef(e, ke.Vector3[0]), t.addToRef(ke.Vector3[0], i), i;\n }\n /**\n * Returns a new Vector3 as the cross product of the current vector and the \"other\" one\n * The cross product is then orthogonal to both current and \"other\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#14\n * @param other defines the right operand\n * @returns the cross product\n */\n cross(e) {\n return g.CrossToRef(this, e, new g());\n }\n /**\n * Normalize the current Vector3 with the given input length.\n * Please note that this is an in place operation.\n * Example Playground https://playground.babylonjs.com/#R1F8YU#123\n * @param len the length of the vector\n * @returns the current updated Vector3\n */\n normalizeFromLength(e) {\n return e === 0 || e === 1 ? this : this.scaleInPlace(1 / e);\n }\n /**\n * Normalize the current Vector3 to a new vector\n * Example Playground https://playground.babylonjs.com/#R1F8YU#124\n * @returns the new Vector3\n */\n normalizeToNew() {\n return this.normalizeToRef(new g());\n }\n /**\n * Normalize the current Vector3 to the reference\n * Example Playground https://playground.babylonjs.com/#R1F8YU#125\n * @param reference define the Vector3 to update\n * @returns the updated Vector3\n */\n normalizeToRef(e) {\n const t = this.length();\n return t === 0 || t === 1 ? e.copyFrom(this) : this.scaleToRef(1 / t, e);\n }\n /**\n * Creates a new Vector3 copied from the current Vector3\n * Example Playground https://playground.babylonjs.com/#R1F8YU#11\n * @returns the new Vector3\n */\n clone() {\n return new g(this._x, this._y, this._z);\n }\n /**\n * Copies the given vector coordinates to the current Vector3 ones\n * Example Playground https://playground.babylonjs.com/#R1F8YU#12\n * @param source defines the source Vector3\n * @returns the current updated Vector3\n */\n copyFrom(e) {\n return this.copyFromFloats(e._x, e._y, e._z);\n }\n /**\n * Copies the given floats to the current Vector3 coordinates\n * Example Playground https://playground.babylonjs.com/#R1F8YU#13\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @param z defines the z coordinate of the operand\n * @returns the current updated Vector3\n */\n copyFromFloats(e, t, i) {\n return this._x = e, this._y = t, this._z = i, this._isDirty = !0, this;\n }\n /**\n * Copies the given floats to the current Vector3 coordinates\n * Example Playground https://playground.babylonjs.com/#R1F8YU#58\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @param z defines the z coordinate of the operand\n * @returns the current updated Vector3\n */\n set(e, t, i) {\n return this.copyFromFloats(e, t, i);\n }\n /**\n * Copies the given float to the current Vector3 coordinates\n * Example Playground https://playground.babylonjs.com/#R1F8YU#59\n * @param v defines the x, y and z coordinates of the operand\n * @returns the current updated Vector3\n */\n setAll(e) {\n return this._x = this._y = this._z = e, this._isDirty = !0, this;\n }\n // Statics\n /**\n * Get the clip factor between two vectors\n * Example Playground https://playground.babylonjs.com/#R1F8YU#126\n * @param vector0 defines the first operand\n * @param vector1 defines the second operand\n * @param axis defines the axis to use\n * @param size defines the size along the axis\n * @returns the clip factor\n */\n static GetClipFactor(e, t, i, s) {\n const r = g.Dot(e, i), n = g.Dot(t, i);\n return (r - s) / (r - n);\n }\n /**\n * Get angle between two vectors\n * Example Playground https://playground.babylonjs.com/#R1F8YU#86\n * @param vector0 the starting point\n * @param vector1 the ending point\n * @param normal direction of the normal\n * @returns the angle between vector0 and vector1\n */\n static GetAngleBetweenVectors(e, t, i) {\n const s = e.normalizeToRef(ke.Vector3[1]), r = t.normalizeToRef(ke.Vector3[2]);\n let n = g.Dot(s, r);\n n = Vi(n, -1, 1);\n const o = Math.acos(n), l = ke.Vector3[3];\n return g.CrossToRef(s, r, l), g.Dot(l, i) > 0 ? isNaN(o) ? 0 : o : isNaN(o) ? -Math.PI : -Math.acos(n);\n }\n /**\n * Get angle between two vectors projected on a plane\n * Example Playground https://playground.babylonjs.com/#R1F8YU#87\n * Expectation compute time: 0.01 ms (median) and 0.02 ms (percentile 95%)\n * @param vector0 angle between vector0 and vector1\n * @param vector1 angle between vector0 and vector1\n * @param normal Normal of the projection plane\n * @returns the angle in radians (float) between vector0 and vector1 projected on the plane with the specified normal\n */\n static GetAngleBetweenVectorsOnPlane(e, t, i) {\n ke.Vector3[0].copyFrom(e);\n const s = ke.Vector3[0];\n ke.Vector3[1].copyFrom(t);\n const r = ke.Vector3[1];\n ke.Vector3[2].copyFrom(i);\n const n = ke.Vector3[2], o = ke.Vector3[3], l = ke.Vector3[4];\n s.normalize(), r.normalize(), n.normalize(), g.CrossToRef(n, s, o), g.CrossToRef(o, n, l);\n const h = Math.atan2(g.Dot(r, o), g.Dot(r, l));\n return wC(h);\n }\n /**\n * Gets the rotation that aligns the roll axis (Y) to the line joining the start point to the target point and stores it in the ref Vector3\n * Example PG https://playground.babylonjs.com/#R1F8YU#189\n * @param start the starting point\n * @param target the target point\n * @param ref the vector3 to store the result\n * @returns ref in the form (pitch, yaw, 0)\n */\n static PitchYawRollToMoveBetweenPointsToRef(e, t, i) {\n const s = w.Vector3[0];\n return t.subtractToRef(e, s), i._y = Math.atan2(s.x, s.z) || 0, i._x = Math.atan2(Math.sqrt(s.x ** 2 + s.z ** 2), s.y) || 0, i._z = 0, i._isDirty = !0, i;\n }\n /**\n * Gets the rotation that aligns the roll axis (Y) to the line joining the start point to the target point\n * Example PG https://playground.babylonjs.com/#R1F8YU#188\n * @param start the starting point\n * @param target the target point\n * @returns the rotation in the form (pitch, yaw, 0)\n */\n static PitchYawRollToMoveBetweenPoints(e, t) {\n const i = g.Zero();\n return g.PitchYawRollToMoveBetweenPointsToRef(e, t, i);\n }\n /**\n * Slerp between two vectors. See also `SmoothToRef`\n * Slerp is a spherical linear interpolation\n * giving a slow in and out effect\n * Example Playground 1 https://playground.babylonjs.com/#R1F8YU#108\n * Example Playground 2 https://playground.babylonjs.com/#R1F8YU#109\n * @param vector0 Start vector\n * @param vector1 End vector\n * @param slerp amount (will be clamped between 0 and 1)\n * @param result The slerped vector\n * @returns The slerped vector\n */\n static SlerpToRef(e, t, i, s) {\n i = Vi(i, 0, 1);\n const r = ke.Vector3[0], n = ke.Vector3[1];\n r.copyFrom(e);\n const o = r.length();\n r.normalizeFromLength(o), n.copyFrom(t);\n const l = n.length();\n n.normalizeFromLength(l);\n const h = g.Dot(r, n);\n let c, u;\n if (h < 1 - tt) {\n const d = Math.acos(h), f = 1 / Math.sin(d);\n c = Math.sin((1 - i) * d) * f, u = Math.sin(i * d) * f;\n } else\n c = 1 - i, u = i;\n return r.scaleInPlace(c), n.scaleInPlace(u), s.copyFrom(r).addInPlace(n), s.scaleInPlace(qr(o, l, i)), s;\n }\n /**\n * Smooth interpolation between two vectors using Slerp\n * Example Playground https://playground.babylonjs.com/#R1F8YU#110\n * @param source source vector\n * @param goal goal vector\n * @param deltaTime current interpolation frame\n * @param lerpTime total interpolation time\n * @param result the smoothed vector\n * @returns the smoothed vector\n */\n static SmoothToRef(e, t, i, s, r) {\n return g.SlerpToRef(e, t, s === 0 ? 1 : i / s, r), r;\n }\n /**\n * Returns a new Vector3 set from the index \"offset\" of the given array\n * Example Playground https://playground.babylonjs.com/#R1F8YU#83\n * @param array defines the source array\n * @param offset defines the offset in the source array\n * @returns the new Vector3\n */\n static FromArray(e, t = 0) {\n return new g(e[t], e[t + 1], e[t + 2]);\n }\n /**\n * Returns a new Vector3 set from the index \"offset\" of the given Float32Array\n * @param array defines the source array\n * @param offset defines the offset in the source array\n * @returns the new Vector3\n * @deprecated Please use FromArray instead.\n */\n static FromFloatArray(e, t) {\n return g.FromArray(e, t);\n }\n /**\n * Sets the given vector \"result\" with the element values from the index \"offset\" of the given array\n * Example Playground https://playground.babylonjs.com/#R1F8YU#84\n * @param array defines the source array\n * @param offset defines the offset in the source array\n * @param result defines the Vector3 where to store the result\n * @returns result input\n */\n static FromArrayToRef(e, t, i) {\n return i._x = e[t], i._y = e[t + 1], i._z = e[t + 2], i._isDirty = !0, i;\n }\n /**\n * Sets the given vector \"result\" with the element values from the index \"offset\" of the given Float32Array\n * @param array defines the source array\n * @param offset defines the offset in the source array\n * @param result defines the Vector3 where to store the result\n * @deprecated Please use FromArrayToRef instead.\n * @returns result input\n */\n static FromFloatArrayToRef(e, t, i) {\n return g.FromArrayToRef(e, t, i);\n }\n /**\n * Sets the given vector \"result\" with the given floats.\n * Example Playground https://playground.babylonjs.com/#R1F8YU#85\n * @param x defines the x coordinate of the source\n * @param y defines the y coordinate of the source\n * @param z defines the z coordinate of the source\n * @param result defines the Vector3 where to store the result\n * @returns the result vector\n */\n static FromFloatsToRef(e, t, i, s) {\n return s.copyFromFloats(e, t, i), s;\n }\n /**\n * Returns a new Vector3 set to (0.0, 0.0, 0.0)\n * @returns a new empty Vector3\n */\n static Zero() {\n return new g(0, 0, 0);\n }\n /**\n * Returns a new Vector3 set to (1.0, 1.0, 1.0)\n * @returns a new Vector3\n */\n static One() {\n return new g(1, 1, 1);\n }\n /**\n * Returns a new Vector3 set to (0.0, 1.0, 0.0)\n * Example Playground https://playground.babylonjs.com/#R1F8YU#71\n * @returns a new up Vector3\n */\n static Up() {\n return new g(0, 1, 0);\n }\n /**\n * Gets an up Vector3 that must not be updated\n */\n static get UpReadOnly() {\n return g._UpReadOnly;\n }\n /**\n * Gets a down Vector3 that must not be updated\n */\n static get DownReadOnly() {\n return g._DownReadOnly;\n }\n /**\n * Gets a right Vector3 that must not be updated\n */\n static get RightReadOnly() {\n return g._RightReadOnly;\n }\n /**\n * Gets a left Vector3 that must not be updated\n */\n static get LeftReadOnly() {\n return g._LeftReadOnly;\n }\n /**\n * Gets a forward Vector3 that must not be updated\n */\n static get LeftHandedForwardReadOnly() {\n return g._LeftHandedForwardReadOnly;\n }\n /**\n * Gets a forward Vector3 that must not be updated\n */\n static get RightHandedForwardReadOnly() {\n return g._RightHandedForwardReadOnly;\n }\n /**\n * Gets a backward Vector3 that must not be updated\n */\n static get LeftHandedBackwardReadOnly() {\n return g._LeftHandedBackwardReadOnly;\n }\n /**\n * Gets a backward Vector3 that must not be updated\n */\n static get RightHandedBackwardReadOnly() {\n return g._RightHandedBackwardReadOnly;\n }\n /**\n * Gets a zero Vector3 that must not be updated\n */\n static get ZeroReadOnly() {\n return g._ZeroReadOnly;\n }\n /**\n * Gets a one Vector3 that must not be updated\n */\n static get OneReadOnly() {\n return g._OneReadOnly;\n }\n /**\n * Returns a new Vector3 set to (0.0, -1.0, 0.0)\n * Example Playground https://playground.babylonjs.com/#R1F8YU#71\n * @returns a new down Vector3\n */\n static Down() {\n return new g(0, -1, 0);\n }\n /**\n * Returns a new Vector3 set to (0.0, 0.0, 1.0)\n * Example Playground https://playground.babylonjs.com/#R1F8YU#71\n * @param rightHandedSystem is the scene right-handed (negative z)\n * @returns a new forward Vector3\n */\n static Forward(e = !1) {\n return new g(0, 0, e ? -1 : 1);\n }\n /**\n * Returns a new Vector3 set to (0.0, 0.0, -1.0)\n * Example Playground https://playground.babylonjs.com/#R1F8YU#71\n * @param rightHandedSystem is the scene right-handed (negative-z)\n * @returns a new Backward Vector3\n */\n static Backward(e = !1) {\n return new g(0, 0, e ? 1 : -1);\n }\n /**\n * Returns a new Vector3 set to (1.0, 0.0, 0.0)\n * Example Playground https://playground.babylonjs.com/#R1F8YU#71\n * @returns a new right Vector3\n */\n static Right() {\n return new g(1, 0, 0);\n }\n /**\n * Returns a new Vector3 set to (-1.0, 0.0, 0.0)\n * Example Playground https://playground.babylonjs.com/#R1F8YU#71\n * @returns a new left Vector3\n */\n static Left() {\n return new g(-1, 0, 0);\n }\n /**\n * Returns a new Vector3 with random values between min and max\n * @param min the minimum random value\n * @param max the maximum random value\n * @returns a Vector3 with random values between min and max\n */\n static Random(e = 0, t = 1) {\n return new g(Wt(e, t), Wt(e, t), Wt(e, t));\n }\n /**\n * Sets a Vector3 with random values between min and max\n * @param min the minimum random value\n * @param max the maximum random value\n * @param ref the ref to store the values in\n * @returns the ref with random values between min and max\n */\n static RandomToRef(e = 0, t = 1, i) {\n return i.copyFromFloats(Wt(e, t), Wt(e, t), Wt(e, t));\n }\n /**\n * Returns a new Vector3 set with the result of the transformation by the given matrix of the given vector.\n * This method computes transformed coordinates only, not transformed direction vectors (ie. it takes translation in account)\n * Example Playground https://playground.babylonjs.com/#R1F8YU#111\n * @param vector defines the Vector3 to transform\n * @param transformation defines the transformation matrix\n * @returns the transformed Vector3\n */\n static TransformCoordinates(e, t) {\n const i = g.Zero();\n return g.TransformCoordinatesToRef(e, t, i), i;\n }\n /**\n * Sets the given vector \"result\" coordinates with the result of the transformation by the given matrix of the given vector\n * This method computes transformed coordinates only, not transformed direction vectors (ie. it takes translation in account)\n * Example Playground https://playground.babylonjs.com/#R1F8YU#113\n * @param vector defines the Vector3 to transform\n * @param transformation defines the transformation matrix\n * @param result defines the Vector3 where to store the result\n * @returns result input\n */\n static TransformCoordinatesToRef(e, t, i) {\n return g.TransformCoordinatesFromFloatsToRef(e._x, e._y, e._z, t, i), i;\n }\n /**\n * Sets the given vector \"result\" coordinates with the result of the transformation by the given matrix of the given floats (x, y, z)\n * This method computes transformed coordinates only, not transformed direction vectors\n * Example Playground https://playground.babylonjs.com/#R1F8YU#115\n * @param x define the x coordinate of the source vector\n * @param y define the y coordinate of the source vector\n * @param z define the z coordinate of the source vector\n * @param transformation defines the transformation matrix\n * @param result defines the Vector3 where to store the result\n * @returns result input\n */\n static TransformCoordinatesFromFloatsToRef(e, t, i, s, r) {\n const n = s.m, o = e * n[0] + t * n[4] + i * n[8] + n[12], l = e * n[1] + t * n[5] + i * n[9] + n[13], h = e * n[2] + t * n[6] + i * n[10] + n[14], c = 1 / (e * n[3] + t * n[7] + i * n[11] + n[15]);\n return r._x = o * c, r._y = l * c, r._z = h * c, r._isDirty = !0, r;\n }\n /**\n * Returns a new Vector3 set with the result of the normal transformation by the given matrix of the given vector\n * This methods computes transformed normalized direction vectors only (ie. it does not apply translation)\n * Example Playground https://playground.babylonjs.com/#R1F8YU#112\n * @param vector defines the Vector3 to transform\n * @param transformation defines the transformation matrix\n * @returns the new Vector3\n */\n static TransformNormal(e, t) {\n const i = g.Zero();\n return g.TransformNormalToRef(e, t, i), i;\n }\n /**\n * Sets the given vector \"result\" with the result of the normal transformation by the given matrix of the given vector\n * This methods computes transformed normalized direction vectors only (ie. it does not apply translation)\n * Example Playground https://playground.babylonjs.com/#R1F8YU#114\n * @param vector defines the Vector3 to transform\n * @param transformation defines the transformation matrix\n * @param result defines the Vector3 where to store the result\n * @returns result input\n */\n static TransformNormalToRef(e, t, i) {\n return this.TransformNormalFromFloatsToRef(e._x, e._y, e._z, t, i), i;\n }\n /**\n * Sets the given vector \"result\" with the result of the normal transformation by the given matrix of the given floats (x, y, z)\n * This methods computes transformed normalized direction vectors only (ie. it does not apply translation)\n * Example Playground https://playground.babylonjs.com/#R1F8YU#116\n * @param x define the x coordinate of the source vector\n * @param y define the y coordinate of the source vector\n * @param z define the z coordinate of the source vector\n * @param transformation defines the transformation matrix\n * @param result defines the Vector3 where to store the result\n * @returns result input\n */\n static TransformNormalFromFloatsToRef(e, t, i, s, r) {\n const n = s.m;\n return r._x = e * n[0] + t * n[4] + i * n[8], r._y = e * n[1] + t * n[5] + i * n[9], r._z = e * n[2] + t * n[6] + i * n[10], r._isDirty = !0, r;\n }\n /**\n * Returns a new Vector3 located for \"amount\" on the CatmullRom interpolation spline defined by the vectors \"value1\", \"value2\", \"value3\", \"value4\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#69\n * @param value1 defines the first control point\n * @param value2 defines the second control point\n * @param value3 defines the third control point\n * @param value4 defines the fourth control point\n * @param amount defines the amount on the spline to use\n * @returns the new Vector3\n */\n static CatmullRom(e, t, i, s, r) {\n const n = r * r, o = r * n, l = 0.5 * (2 * t._x + (-e._x + i._x) * r + (2 * e._x - 5 * t._x + 4 * i._x - s._x) * n + (-e._x + 3 * t._x - 3 * i._x + s._x) * o), h = 0.5 * (2 * t._y + (-e._y + i._y) * r + (2 * e._y - 5 * t._y + 4 * i._y - s._y) * n + (-e._y + 3 * t._y - 3 * i._y + s._y) * o), c = 0.5 * (2 * t._z + (-e._z + i._z) * r + (2 * e._z - 5 * t._z + 4 * i._z - s._z) * n + (-e._z + 3 * t._z - 3 * i._z + s._z) * o);\n return new g(l, h, c);\n }\n /**\n * Returns a new Vector3 set with the coordinates of \"value\", if the vector \"value\" is in the cube defined by the vectors \"min\" and \"max\"\n * If a coordinate value of \"value\" is lower than one of the \"min\" coordinate, then this \"value\" coordinate is set with the \"min\" one\n * If a coordinate value of \"value\" is greater than one of the \"max\" coordinate, then this \"value\" coordinate is set with the \"max\" one\n * Example Playground https://playground.babylonjs.com/#R1F8YU#76\n * @param value defines the current value\n * @param min defines the lower range value\n * @param max defines the upper range value\n * @returns the new Vector3\n */\n static Clamp(e, t, i) {\n const s = new g();\n return g.ClampToRef(e, t, i, s), s;\n }\n /**\n * Sets the given vector \"result\" with the coordinates of \"value\", if the vector \"value\" is in the cube defined by the vectors \"min\" and \"max\"\n * If a coordinate value of \"value\" is lower than one of the \"min\" coordinate, then this \"value\" coordinate is set with the \"min\" one\n * If a coordinate value of \"value\" is greater than one of the \"max\" coordinate, then this \"value\" coordinate is set with the \"max\" one\n * Example Playground https://playground.babylonjs.com/#R1F8YU#77\n * @param value defines the current value\n * @param min defines the lower range value\n * @param max defines the upper range value\n * @param result defines the Vector3 where to store the result\n * @returns result input\n */\n static ClampToRef(e, t, i, s) {\n let r = e._x;\n r = r > i._x ? i._x : r, r = r < t._x ? t._x : r;\n let n = e._y;\n n = n > i._y ? i._y : n, n = n < t._y ? t._y : n;\n let o = e._z;\n return o = o > i._z ? i._z : o, o = o < t._z ? t._z : o, s.copyFromFloats(r, n, o), s;\n }\n /**\n * Checks if a given vector is inside a specific range\n * Example Playground https://playground.babylonjs.com/#R1F8YU#75\n * @param v defines the vector to test\n * @param min defines the minimum range\n * @param max defines the maximum range\n */\n static CheckExtends(e, t, i) {\n t.minimizeInPlace(e), i.maximizeInPlace(e);\n }\n /**\n * Returns a new Vector3 located for \"amount\" (float) on the Hermite interpolation spline defined by the vectors \"value1\", \"tangent1\", \"value2\", \"tangent2\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#89\n * @param value1 defines the first control point\n * @param tangent1 defines the first tangent vector\n * @param value2 defines the second control point\n * @param tangent2 defines the second tangent vector\n * @param amount defines the amount on the interpolation spline (between 0 and 1)\n * @returns the new Vector3\n */\n static Hermite(e, t, i, s, r) {\n const n = r * r, o = r * n, l = 2 * o - 3 * n + 1, h = -2 * o + 3 * n, c = o - 2 * n + r, u = o - n, d = e._x * l + i._x * h + t._x * c + s._x * u, f = e._y * l + i._y * h + t._y * c + s._y * u, p = e._z * l + i._z * h + t._z * c + s._z * u;\n return new g(d, f, p);\n }\n /**\n * Returns a new Vector3 which is the 1st derivative of the Hermite spline defined by the vectors \"value1\", \"value2\", \"tangent1\", \"tangent2\".\n * Example Playground https://playground.babylonjs.com/#R1F8YU#90\n * @param value1 defines the first control point\n * @param tangent1 defines the first tangent\n * @param value2 defines the second control point\n * @param tangent2 defines the second tangent\n * @param time define where the derivative must be done\n * @returns 1st derivative\n */\n static Hermite1stDerivative(e, t, i, s, r) {\n const n = new g();\n return this.Hermite1stDerivativeToRef(e, t, i, s, r, n), n;\n }\n /**\n * Update a Vector3 with the 1st derivative of the Hermite spline defined by the vectors \"value1\", \"value2\", \"tangent1\", \"tangent2\".\n * Example Playground https://playground.babylonjs.com/#R1F8YU#91\n * @param value1 defines the first control point\n * @param tangent1 defines the first tangent\n * @param value2 defines the second control point\n * @param tangent2 defines the second tangent\n * @param time define where the derivative must be done\n * @param result define where to store the derivative\n * @returns result input\n */\n static Hermite1stDerivativeToRef(e, t, i, s, r, n) {\n const o = r * r;\n return n._x = (o - r) * 6 * e._x + (3 * o - 4 * r + 1) * t._x + (-o + r) * 6 * i._x + (3 * o - 2 * r) * s._x, n._y = (o - r) * 6 * e._y + (3 * o - 4 * r + 1) * t._y + (-o + r) * 6 * i._y + (3 * o - 2 * r) * s._y, n._z = (o - r) * 6 * e._z + (3 * o - 4 * r + 1) * t._z + (-o + r) * 6 * i._z + (3 * o - 2 * r) * s._z, n._isDirty = !0, n;\n }\n /**\n * Returns a new Vector3 located for \"amount\" (float) on the linear interpolation between the vectors \"start\" and \"end\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#95\n * @param start defines the start value\n * @param end defines the end value\n * @param amount max defines amount between both (between 0 and 1)\n * @returns the new Vector3\n */\n static Lerp(e, t, i) {\n const s = new g(0, 0, 0);\n return g.LerpToRef(e, t, i, s), s;\n }\n /**\n * Sets the given vector \"result\" with the result of the linear interpolation from the vector \"start\" for \"amount\" to the vector \"end\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#93\n * @param start defines the start value\n * @param end defines the end value\n * @param amount max defines amount between both (between 0 and 1)\n * @param result defines the Vector3 where to store the result\n * @returns result input\n */\n static LerpToRef(e, t, i, s) {\n return s._x = e._x + (t._x - e._x) * i, s._y = e._y + (t._y - e._y) * i, s._z = e._z + (t._z - e._z) * i, s._isDirty = !0, s;\n }\n /**\n * Returns the dot product (float) between the vectors \"left\" and \"right\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#82\n * @param left defines the left operand\n * @param right defines the right operand\n * @returns the dot product\n */\n static Dot(e, t) {\n return e._x * t._x + e._y * t._y + e._z * t._z;\n }\n /**\n * Returns the dot product (float) between the current vectors and \"otherVector\"\n * @param otherVector defines the right operand\n * @returns the dot product\n */\n dot(e) {\n return this._x * e._x + this._y * e._y + this._z * e._z;\n }\n /**\n * Returns a new Vector3 as the cross product of the vectors \"left\" and \"right\"\n * The cross product is then orthogonal to both \"left\" and \"right\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#15\n * @param left defines the left operand\n * @param right defines the right operand\n * @returns the cross product\n */\n static Cross(e, t) {\n const i = new g();\n return g.CrossToRef(e, t, i), i;\n }\n /**\n * Sets the given vector \"result\" with the cross product of \"left\" and \"right\"\n * The cross product is then orthogonal to both \"left\" and \"right\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#78\n * @param left defines the left operand\n * @param right defines the right operand\n * @param result defines the Vector3 where to store the result\n * @returns result input\n */\n static CrossToRef(e, t, i) {\n const s = e._y * t._z - e._z * t._y, r = e._z * t._x - e._x * t._z, n = e._x * t._y - e._y * t._x;\n return i.copyFromFloats(s, r, n), i;\n }\n /**\n * Returns a new Vector3 as the normalization of the given vector\n * Example Playground https://playground.babylonjs.com/#R1F8YU#98\n * @param vector defines the Vector3 to normalize\n * @returns the new Vector3\n */\n static Normalize(e) {\n const t = g.Zero();\n return g.NormalizeToRef(e, t), t;\n }\n /**\n * Sets the given vector \"result\" with the normalization of the given first vector\n * Example Playground https://playground.babylonjs.com/#R1F8YU#98\n * @param vector defines the Vector3 to normalize\n * @param result defines the Vector3 where to store the result\n * @returns result input\n */\n static NormalizeToRef(e, t) {\n return e.normalizeToRef(t), t;\n }\n /**\n * Project a Vector3 onto screen space\n * Example Playground https://playground.babylonjs.com/#R1F8YU#101\n * @param vector defines the Vector3 to project\n * @param world defines the world matrix to use\n * @param transform defines the transform (view x projection) matrix to use\n * @param viewport defines the screen viewport to use\n * @returns the new Vector3\n */\n static Project(e, t, i, s) {\n const r = new g();\n return g.ProjectToRef(e, t, i, s, r), r;\n }\n /**\n * Project a Vector3 onto screen space to reference\n * Example Playground https://playground.babylonjs.com/#R1F8YU#102\n * @param vector defines the Vector3 to project\n * @param world defines the world matrix to use\n * @param transform defines the transform (view x projection) matrix to use\n * @param viewport defines the screen viewport to use\n * @param result the vector in which the screen space will be stored\n * @returns result input\n */\n static ProjectToRef(e, t, i, s, r) {\n var _;\n const n = s.width, o = s.height, l = s.x, h = s.y, c = ke.Matrix[1], u = (_ = Me.LastCreatedEngine) == null ? void 0 : _.isNDCHalfZRange, d = u ? 1 : 0.5, f = u ? 0 : 0.5;\n O.FromValuesToRef(n / 2, 0, 0, 0, 0, -o / 2, 0, 0, 0, 0, d, 0, l + n / 2, o / 2 + h, f, 1, c);\n const p = ke.Matrix[0];\n return t.multiplyToRef(i, p), p.multiplyToRef(c, p), g.TransformCoordinatesToRef(e, p, r), r;\n }\n /**\n * Reflects a vector off the plane defined by a normalized normal\n * @param inDirection defines the vector direction\n * @param normal defines the normal - Must be normalized\n * @returns the resulting vector\n */\n static Reflect(e, t) {\n return this.ReflectToRef(e, t, new g());\n }\n /**\n * Reflects a vector off the plane defined by a normalized normal to reference\n * @param inDirection defines the vector direction\n * @param normal defines the normal - Must be normalized\n * @param ref defines the Vector3 where to store the result\n * @returns the resulting vector\n */\n static ReflectToRef(e, t, i) {\n const s = w.Vector3[0];\n return s.copyFrom(t).scaleInPlace(2 * g.Dot(e, t)), i.copyFrom(e).subtractInPlace(s);\n }\n /**\n * @internal\n */\n static _UnprojectFromInvertedMatrixToRef(e, t, i) {\n g.TransformCoordinatesToRef(e, t, i);\n const s = t.m, r = e._x * s[3] + e._y * s[7] + e._z * s[11] + s[15];\n return nr(r, 1) && i.scaleInPlace(1 / r), i;\n }\n /**\n * Unproject from screen space to object space\n * Example Playground https://playground.babylonjs.com/#R1F8YU#121\n * @param source defines the screen space Vector3 to use\n * @param viewportWidth defines the current width of the viewport\n * @param viewportHeight defines the current height of the viewport\n * @param world defines the world matrix to use (can be set to Identity to go to world space)\n * @param transform defines the transform (view x projection) matrix to use\n * @returns the new Vector3\n */\n static UnprojectFromTransform(e, t, i, s, r) {\n return this.Unproject(e, t, i, s, r, O.IdentityReadOnly);\n }\n /**\n * Unproject from screen space to object space\n * Example Playground https://playground.babylonjs.com/#R1F8YU#117\n * @param source defines the screen space Vector3 to use\n * @param viewportWidth defines the current width of the viewport\n * @param viewportHeight defines the current height of the viewport\n * @param world defines the world matrix to use (can be set to Identity to go to world space)\n * @param view defines the view matrix to use\n * @param projection defines the projection matrix to use\n * @returns the new Vector3\n */\n static Unproject(e, t, i, s, r, n) {\n const o = new g();\n return g.UnprojectToRef(e, t, i, s, r, n, o), o;\n }\n /**\n * Unproject from screen space to object space\n * Example Playground https://playground.babylonjs.com/#R1F8YU#119\n * @param source defines the screen space Vector3 to use\n * @param viewportWidth defines the current width of the viewport\n * @param viewportHeight defines the current height of the viewport\n * @param world defines the world matrix to use (can be set to Identity to go to world space)\n * @param view defines the view matrix to use\n * @param projection defines the projection matrix to use\n * @param result defines the Vector3 where to store the result\n * @returns result input\n */\n static UnprojectToRef(e, t, i, s, r, n, o) {\n return g.UnprojectFloatsToRef(e._x, e._y, e._z, t, i, s, r, n, o), o;\n }\n /**\n * Unproject from screen space to object space\n * Example Playground https://playground.babylonjs.com/#R1F8YU#120\n * @param sourceX defines the screen space x coordinate to use\n * @param sourceY defines the screen space y coordinate to use\n * @param sourceZ defines the screen space z coordinate to use\n * @param viewportWidth defines the current width of the viewport\n * @param viewportHeight defines the current height of the viewport\n * @param world defines the world matrix to use (can be set to Identity to go to world space)\n * @param view defines the view matrix to use\n * @param projection defines the projection matrix to use\n * @param result defines the Vector3 where to store the result\n * @returns result input\n */\n static UnprojectFloatsToRef(e, t, i, s, r, n, o, l, h) {\n var d;\n const c = ke.Matrix[0];\n n.multiplyToRef(o, c), c.multiplyToRef(l, c), c.invert();\n const u = ke.Vector3[0];\n return u.x = e / s * 2 - 1, u.y = -(t / r * 2 - 1), (d = Me.LastCreatedEngine) != null && d.isNDCHalfZRange ? u.z = i : u.z = 2 * i - 1, g._UnprojectFromInvertedMatrixToRef(u, c, h), h;\n }\n /**\n * Gets the minimal coordinate values between two Vector3\n * Example Playground https://playground.babylonjs.com/#R1F8YU#97\n * @param left defines the first operand\n * @param right defines the second operand\n * @returns the new Vector3\n */\n static Minimize(e, t) {\n const i = new g();\n return i.copyFrom(e), i.minimizeInPlace(t), i;\n }\n /**\n * Gets the maximal coordinate values between two Vector3\n * Example Playground https://playground.babylonjs.com/#R1F8YU#96\n * @param left defines the first operand\n * @param right defines the second operand\n * @returns the new Vector3\n */\n static Maximize(e, t) {\n const i = new g();\n return i.copyFrom(e), i.maximizeInPlace(t), i;\n }\n /**\n * Returns the distance between the vectors \"value1\" and \"value2\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#81\n * @param value1 defines the first operand\n * @param value2 defines the second operand\n * @returns the distance\n */\n static Distance(e, t) {\n return Math.sqrt(g.DistanceSquared(e, t));\n }\n /**\n * Returns the squared distance between the vectors \"value1\" and \"value2\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#80\n * @param value1 defines the first operand\n * @param value2 defines the second operand\n * @returns the squared distance\n */\n static DistanceSquared(e, t) {\n const i = e._x - t._x, s = e._y - t._y, r = e._z - t._z;\n return i * i + s * s + r * r;\n }\n /**\n * Projects \"vector\" on the triangle determined by its extremities \"p0\", \"p1\" and \"p2\", stores the result in \"ref\"\n * and returns the distance to the projected point.\n * Example Playground https://playground.babylonjs.com/#R1F8YU#104\n * From http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.104.4264&rep=rep1&type=pdf\n *\n * @param vector the vector to get distance from\n * @param p0 extremity of the triangle\n * @param p1 extremity of the triangle\n * @param p2 extremity of the triangle\n * @param ref variable to store the result to\n * @returns The distance between \"ref\" and \"vector\"\n */\n static ProjectOnTriangleToRef(e, t, i, s, r) {\n const n = ke.Vector3[0], o = ke.Vector3[1], l = ke.Vector3[2], h = ke.Vector3[3], c = ke.Vector3[4];\n i.subtractToRef(t, n), s.subtractToRef(t, o), s.subtractToRef(i, l);\n const u = n.length(), d = o.length(), f = l.length();\n if (u < tt || d < tt || f < tt)\n return r.copyFrom(t), g.Distance(e, t);\n e.subtractToRef(t, c), g.CrossToRef(n, o, h);\n const p = h.length();\n if (p < tt)\n return r.copyFrom(t), g.Distance(e, t);\n h.normalizeFromLength(p);\n let _ = c.length();\n if (_ < tt)\n return r.copyFrom(t), 0;\n c.normalizeFromLength(_);\n const m = g.Dot(h, c), x = ke.Vector3[5], v = ke.Vector3[6];\n x.copyFrom(h).scaleInPlace(-_ * m), v.copyFrom(e).addInPlace(x);\n const T = ke.Vector3[4], E = ke.Vector3[5], b = ke.Vector3[7], S = ke.Vector3[8];\n T.copyFrom(n).scaleInPlace(1 / u), S.copyFrom(o).scaleInPlace(1 / d), T.addInPlace(S).scaleInPlace(-1), E.copyFrom(n).scaleInPlace(-1 / u), S.copyFrom(l).scaleInPlace(1 / f), E.addInPlace(S).scaleInPlace(-1), b.copyFrom(l).scaleInPlace(-1 / f), S.copyFrom(o).scaleInPlace(-1 / d), b.addInPlace(S).scaleInPlace(-1);\n const C = ke.Vector3[9];\n let P;\n C.copyFrom(v).subtractInPlace(t), g.CrossToRef(T, C, S), P = g.Dot(S, h);\n const N = P;\n C.copyFrom(v).subtractInPlace(i), g.CrossToRef(E, C, S), P = g.Dot(S, h);\n const F = P;\n C.copyFrom(v).subtractInPlace(s), g.CrossToRef(b, C, S), P = g.Dot(S, h);\n const $ = P, j = ke.Vector3[10];\n let ne, te;\n N > 0 && F < 0 ? (j.copyFrom(n), ne = t, te = i) : F > 0 && $ < 0 ? (j.copyFrom(l), ne = i, te = s) : (j.copyFrom(o).scaleInPlace(-1), ne = s, te = t);\n const le = ke.Vector3[9], _e = ke.Vector3[4];\n if (ne.subtractToRef(v, S), te.subtractToRef(v, le), g.CrossToRef(S, le, _e), !(g.Dot(_e, h) < 0))\n return r.copyFrom(v), Math.abs(_ * m);\n const Ie = ke.Vector3[5];\n g.CrossToRef(j, _e, Ie), Ie.normalize();\n const de = ke.Vector3[9];\n de.copyFrom(ne).subtractInPlace(v);\n const Y = de.length();\n if (Y < tt)\n return r.copyFrom(ne), g.Distance(e, ne);\n de.normalizeFromLength(Y);\n const M = g.Dot(Ie, de), k = ke.Vector3[7];\n k.copyFrom(v).addInPlace(Ie.scaleInPlace(Y * M)), S.copyFrom(k).subtractInPlace(ne), _ = j.length(), j.normalizeFromLength(_);\n let W = g.Dot(S, j) / Math.max(_, tt);\n return W = Vi(W, 0, 1), k.copyFrom(ne).addInPlace(j.scaleInPlace(W * _)), r.copyFrom(k), g.Distance(e, k);\n }\n /**\n * Returns a new Vector3 located at the center between \"value1\" and \"value2\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#72\n * @param value1 defines the first operand\n * @param value2 defines the second operand\n * @returns the new Vector3\n */\n static Center(e, t) {\n return g.CenterToRef(e, t, g.Zero());\n }\n /**\n * Gets the center of the vectors \"value1\" and \"value2\" and stores the result in the vector \"ref\"\n * Example Playground https://playground.babylonjs.com/#R1F8YU#73\n * @param value1 defines first vector\n * @param value2 defines second vector\n * @param ref defines third vector\n * @returns ref\n */\n static CenterToRef(e, t, i) {\n return i.copyFromFloats((e._x + t._x) / 2, (e._y + t._y) / 2, (e._z + t._z) / 2);\n }\n /**\n * Given three orthogonal normalized left-handed oriented Vector3 axis in space (target system),\n * RotationFromAxis() returns the rotation Euler angles (ex : rotation.x, rotation.y, rotation.z) to apply\n * to something in order to rotate it from its local system to the given target system\n * Note: axis1, axis2 and axis3 are normalized during this operation\n * Example Playground https://playground.babylonjs.com/#R1F8YU#106\n * @param axis1 defines the first axis\n * @param axis2 defines the second axis\n * @param axis3 defines the third axis\n * @returns a new Vector3\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/transforms/center_origin/target_align\n */\n static RotationFromAxis(e, t, i) {\n const s = new g();\n return g.RotationFromAxisToRef(e, t, i, s), s;\n }\n /**\n * The same than RotationFromAxis but updates the given ref Vector3 parameter instead of returning a new Vector3\n * Example Playground https://playground.babylonjs.com/#R1F8YU#107\n * @param axis1 defines the first axis\n * @param axis2 defines the second axis\n * @param axis3 defines the third axis\n * @param ref defines the Vector3 where to store the result\n * @returns result input\n */\n static RotationFromAxisToRef(e, t, i, s) {\n const r = ke.Quaternion[0];\n return se.RotationQuaternionFromAxisToRef(e, t, i, r), r.toEulerAnglesToRef(s), s;\n }\n}\ng._UpReadOnly = g.Up();\ng._DownReadOnly = g.Down();\ng._LeftHandedForwardReadOnly = g.Forward(!1);\ng._RightHandedForwardReadOnly = g.Forward(!0);\ng._LeftHandedBackwardReadOnly = g.Backward(!1);\ng._RightHandedBackwardReadOnly = g.Backward(!0);\ng._RightReadOnly = g.Right();\ng._LeftReadOnly = g.Left();\ng._ZeroReadOnly = g.Zero();\ng._OneReadOnly = g.One();\nObject.defineProperties(g.prototype, {\n dimension: { value: [3] },\n rank: { value: 1 }\n});\nclass Ne {\n /**\n * Creates a Vector4 object from the given floats.\n * @param x x value of the vector\n * @param y y value of the vector\n * @param z z value of the vector\n * @param w w value of the vector\n */\n constructor(e = 0, t = 0, i = 0, s = 0) {\n this.x = e, this.y = t, this.z = i, this.w = s;\n }\n /**\n * Returns the string with the Vector4 coordinates.\n * @returns a string containing all the vector values\n */\n toString() {\n return `{X: ${this.x} Y: ${this.y} Z: ${this.z} W: ${this.w}}`;\n }\n /**\n * Returns the string \"Vector4\".\n * @returns \"Vector4\"\n */\n getClassName() {\n return \"Vector4\";\n }\n /**\n * Returns the Vector4 hash code.\n * @returns a unique hash code\n */\n getHashCode() {\n const e = Gr(this.x), t = Gr(this.y), i = Gr(this.z), s = Gr(this.w);\n let r = e;\n return r = r * 397 ^ t, r = r * 397 ^ i, r = r * 397 ^ s, r;\n }\n // Operators\n /**\n * Returns a new array populated with 4 elements : the Vector4 coordinates.\n * @returns the resulting array\n */\n asArray() {\n return [this.x, this.y, this.z, this.w];\n }\n /**\n * Populates the given array from the given index with the Vector4 coordinates.\n * @param array array to populate\n * @param index index of the array to start at (default: 0)\n * @returns the Vector4.\n */\n toArray(e, t) {\n return t === void 0 && (t = 0), e[t] = this.x, e[t + 1] = this.y, e[t + 2] = this.z, e[t + 3] = this.w, this;\n }\n /**\n * Update the current vector from an array\n * @param array defines the destination array\n * @param offset defines the offset in the destination array\n * @returns the current Vector3\n */\n fromArray(e, t = 0) {\n return Ne.FromArrayToRef(e, t, this), this;\n }\n /**\n * Adds the given vector to the current Vector4.\n * @param otherVector the vector to add\n * @returns the updated Vector4.\n */\n addInPlace(e) {\n return this.x += e.x, this.y += e.y, this.z += e.z, this.w += e.w, this;\n }\n /**\n * Adds the given coordinates to the current Vector4\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @param z defines the z coordinate of the operand\n * @param w defines the w coordinate of the operand\n * @returns the current updated Vector4\n */\n addInPlaceFromFloats(e, t, i, s) {\n return this.x += e, this.y += t, this.z += i, this.w += s, this;\n }\n /**\n * Returns a new Vector4 as the result of the addition of the current Vector4 and the given one.\n * @param otherVector the vector to add\n * @returns the resulting vector\n */\n add(e) {\n return new Ne(this.x + e.x, this.y + e.y, this.z + e.z, this.w + e.w);\n }\n /**\n * Updates the given vector \"result\" with the result of the addition of the current Vector4 and the given one.\n * @param otherVector the vector to add\n * @param result the vector to store the result\n * @returns result input\n */\n addToRef(e, t) {\n return t.x = this.x + e.x, t.y = this.y + e.y, t.z = this.z + e.z, t.w = this.w + e.w, t;\n }\n /**\n * Subtract in place the given vector from the current Vector4.\n * @param otherVector the vector to subtract\n * @returns the updated Vector4.\n */\n subtractInPlace(e) {\n return this.x -= e.x, this.y -= e.y, this.z -= e.z, this.w -= e.w, this;\n }\n /**\n * Returns a new Vector4 with the result of the subtraction of the given vector from the current Vector4.\n * @param otherVector the vector to add\n * @returns the new vector with the result\n */\n subtract(e) {\n return new Ne(this.x - e.x, this.y - e.y, this.z - e.z, this.w - e.w);\n }\n /**\n * Sets the given vector \"result\" with the result of the subtraction of the given vector from the current Vector4.\n * @param otherVector the vector to subtract\n * @param result the vector to store the result\n * @returns result input\n */\n subtractToRef(e, t) {\n return t.x = this.x - e.x, t.y = this.y - e.y, t.z = this.z - e.z, t.w = this.w - e.w, t;\n }\n /**\n * Returns a new Vector4 set with the result of the subtraction of the given floats from the current Vector4 coordinates.\n * @param x value to subtract\n * @param y value to subtract\n * @param z value to subtract\n * @param w value to subtract\n * @returns new vector containing the result\n */\n subtractFromFloats(e, t, i, s) {\n return new Ne(this.x - e, this.y - t, this.z - i, this.w - s);\n }\n /**\n * Sets the given vector \"result\" set with the result of the subtraction of the given floats from the current Vector4 coordinates.\n * @param x value to subtract\n * @param y value to subtract\n * @param z value to subtract\n * @param w value to subtract\n * @param result the vector to store the result in\n * @returns result input\n */\n subtractFromFloatsToRef(e, t, i, s, r) {\n return r.x = this.x - e, r.y = this.y - t, r.z = this.z - i, r.w = this.w - s, r;\n }\n /**\n * Returns a new Vector4 set with the current Vector4 negated coordinates.\n * @returns a new vector with the negated values\n */\n negate() {\n return new Ne(-this.x, -this.y, -this.z, -this.w);\n }\n /**\n * Negate this vector in place\n * @returns this\n */\n negateInPlace() {\n return this.x *= -1, this.y *= -1, this.z *= -1, this.w *= -1, this;\n }\n /**\n * Negate the current Vector4 and stores the result in the given vector \"result\" coordinates\n * @param result defines the Vector3 object where to store the result\n * @returns the result\n */\n negateToRef(e) {\n return e.x = -this.x, e.y = -this.y, e.z = -this.z, e.w = -this.w, e;\n }\n /**\n * Multiplies the current Vector4 coordinates by scale (float).\n * @param scale the number to scale with\n * @returns the updated Vector4.\n */\n scaleInPlace(e) {\n return this.x *= e, this.y *= e, this.z *= e, this.w *= e, this;\n }\n /**\n * Returns a new Vector4 set with the current Vector4 coordinates multiplied by scale (float).\n * @param scale the number to scale with\n * @returns a new vector with the result\n */\n scale(e) {\n return new Ne(this.x * e, this.y * e, this.z * e, this.w * e);\n }\n /**\n * Sets the given vector \"result\" with the current Vector4 coordinates multiplied by scale (float).\n * @param scale the number to scale with\n * @param result a vector to store the result in\n * @returns result input\n */\n scaleToRef(e, t) {\n return t.x = this.x * e, t.y = this.y * e, t.z = this.z * e, t.w = this.w * e, t;\n }\n /**\n * Scale the current Vector4 values by a factor and add the result to a given Vector4\n * @param scale defines the scale factor\n * @param result defines the Vector4 object where to store the result\n * @returns result input\n */\n scaleAndAddToRef(e, t) {\n return t.x += this.x * e, t.y += this.y * e, t.z += this.z * e, t.w += this.w * e, t;\n }\n /**\n * Boolean : True if the current Vector4 coordinates are stricly equal to the given ones.\n * @param otherVector the vector to compare against\n * @returns true if they are equal\n */\n equals(e) {\n return e && this.x === e.x && this.y === e.y && this.z === e.z && this.w === e.w;\n }\n /**\n * Boolean : True if the current Vector4 coordinates are each beneath the distance \"epsilon\" from the given vector ones.\n * @param otherVector vector to compare against\n * @param epsilon (Default: very small number)\n * @returns true if they are equal\n */\n equalsWithEpsilon(e, t = tt) {\n return e && nr(this.x, e.x, t) && nr(this.y, e.y, t) && nr(this.z, e.z, t) && nr(this.w, e.w, t);\n }\n /**\n * Boolean : True if the given floats are strictly equal to the current Vector4 coordinates.\n * @param x x value to compare against\n * @param y y value to compare against\n * @param z z value to compare against\n * @param w w value to compare against\n * @returns true if equal\n */\n equalsToFloats(e, t, i, s) {\n return this.x === e && this.y === t && this.z === i && this.w === s;\n }\n /**\n * Multiplies in place the current Vector4 by the given one.\n * @param otherVector vector to multiple with\n * @returns the updated Vector4.\n */\n multiplyInPlace(e) {\n return this.x *= e.x, this.y *= e.y, this.z *= e.z, this.w *= e.w, this;\n }\n /**\n * Returns a new Vector4 set with the multiplication result of the current Vector4 and the given one.\n * @param otherVector vector to multiple with\n * @returns resulting new vector\n */\n multiply(e) {\n return new Ne(this.x * e.x, this.y * e.y, this.z * e.z, this.w * e.w);\n }\n /**\n * Updates the given vector \"result\" with the multiplication result of the current Vector4 and the given one.\n * @param otherVector vector to multiple with\n * @param result vector to store the result\n * @returns result input\n */\n multiplyToRef(e, t) {\n return t.x = this.x * e.x, t.y = this.y * e.y, t.z = this.z * e.z, t.w = this.w * e.w, t;\n }\n /**\n * Returns a new Vector4 set with the multiplication result of the given floats and the current Vector4 coordinates.\n * @param x x value multiply with\n * @param y y value multiply with\n * @param z z value multiply with\n * @param w w value multiply with\n * @returns resulting new vector\n */\n multiplyByFloats(e, t, i, s) {\n return new Ne(this.x * e, this.y * t, this.z * i, this.w * s);\n }\n /**\n * Returns a new Vector4 set with the division result of the current Vector4 by the given one.\n * @param otherVector vector to devide with\n * @returns resulting new vector\n */\n divide(e) {\n return new Ne(this.x / e.x, this.y / e.y, this.z / e.z, this.w / e.w);\n }\n /**\n * Updates the given vector \"result\" with the division result of the current Vector4 by the given one.\n * @param otherVector vector to devide with\n * @param result vector to store the result\n * @returns result input\n */\n divideToRef(e, t) {\n return t.x = this.x / e.x, t.y = this.y / e.y, t.z = this.z / e.z, t.w = this.w / e.w, t;\n }\n /**\n * Divides the current Vector3 coordinates by the given ones.\n * @param otherVector vector to devide with\n * @returns the updated Vector3.\n */\n divideInPlace(e) {\n return this.divideToRef(e, this);\n }\n /**\n * Updates the Vector4 coordinates with the minimum values between its own and the given vector ones\n * @param other defines the second operand\n * @returns the current updated Vector4\n */\n minimizeInPlace(e) {\n return e.x < this.x && (this.x = e.x), e.y < this.y && (this.y = e.y), e.z < this.z && (this.z = e.z), e.w < this.w && (this.w = e.w), this;\n }\n /**\n * Updates the Vector4 coordinates with the maximum values between its own and the given vector ones\n * @param other defines the second operand\n * @returns the current updated Vector4\n */\n maximizeInPlace(e) {\n return e.x > this.x && (this.x = e.x), e.y > this.y && (this.y = e.y), e.z > this.z && (this.z = e.z), e.w > this.w && (this.w = e.w), this;\n }\n /**\n * Updates the current Vector4 with the minimal coordinate values between its and the given coordinates\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @param z defines the z coordinate of the operand\n * @param w defines the w coordinate of the operand\n * @returns the current updated Vector4\n */\n minimizeInPlaceFromFloats(e, t, i, s) {\n return this.x = Math.min(e, this.x), this.y = Math.min(t, this.y), this.z = Math.min(i, this.z), this.w = Math.min(s, this.w), this;\n }\n /**\n * Updates the current Vector4 with the maximal coordinate values between its and the given coordinates.\n * @param x defines the x coordinate of the operand\n * @param y defines the y coordinate of the operand\n * @param z defines the z coordinate of the operand\n * @param w defines the w coordinate of the operand\n * @returns the current updated Vector4\n */\n maximizeInPlaceFromFloats(e, t, i, s) {\n return this.x = Math.max(e, this.x), this.y = Math.max(t, this.y), this.z = Math.max(i, this.z), this.w = Math.max(s, this.w), this;\n }\n /**\n * Gets the current Vector4's floored values and stores them in result\n * @param result the vector to store the result in\n * @returns the result vector\n */\n floorToRef(e) {\n return e.x = Math.floor(this.x), e.y = Math.floor(this.y), e.z = Math.floor(this.z), e.w = Math.floor(this.w), e;\n }\n /**\n * Gets a new Vector4 from current Vector4 floored values\n * @returns a new Vector4\n */\n floor() {\n return new Ne(Math.floor(this.x), Math.floor(this.y), Math.floor(this.z), Math.floor(this.w));\n }\n /**\n * Gets the current Vector4's fractional values and stores them in result\n * @param result the vector to store the result in\n * @returns the result vector\n */\n fractToRef(e) {\n return e.x = this.x - Math.floor(this.x), e.y = this.y - Math.floor(this.y), e.z = this.z - Math.floor(this.z), e.w = this.w - Math.floor(this.w), e;\n }\n /**\n * Gets a new Vector4 from current Vector4 fractional values\n * @returns a new Vector4\n */\n fract() {\n return new Ne(this.x - Math.floor(this.x), this.y - Math.floor(this.y), this.z - Math.floor(this.z), this.w - Math.floor(this.w));\n }\n // Properties\n /**\n * Returns the Vector4 length (float).\n * @returns the length\n */\n length() {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n }\n /**\n * Returns the Vector4 squared length (float).\n * @returns the length squared\n */\n lengthSquared() {\n return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n }\n // Methods\n /**\n * Normalizes in place the Vector4.\n * @returns the updated Vector4.\n */\n normalize() {\n return this.normalizeFromLength(this.length());\n }\n /**\n * Normalize the current Vector4 with the given input length.\n * Please note that this is an in place operation.\n * @param len the length of the vector\n * @returns the current updated Vector4\n */\n normalizeFromLength(e) {\n return e === 0 || e === 1 ? this : this.scaleInPlace(1 / e);\n }\n /**\n * Normalize the current Vector4 to a new vector\n * @returns the new Vector4\n */\n normalizeToNew() {\n return this.normalizeToRef(new Ne());\n }\n /**\n * Normalize the current Vector4 to the reference\n * @param reference define the Vector4 to update\n * @returns the updated Vector4\n */\n normalizeToRef(e) {\n const t = this.length();\n return t === 0 || t === 1 ? (e.x = this.x, e.y = this.y, e.z = this.z, e.w = this.w, e) : this.scaleToRef(1 / t, e);\n }\n /**\n * Returns a new Vector3 from the Vector4 (x, y, z) coordinates.\n * @returns this converted to a new vector3\n */\n toVector3() {\n return new g(this.x, this.y, this.z);\n }\n /**\n * Returns a new Vector4 copied from the current one.\n * @returns the new cloned vector\n */\n clone() {\n return new Ne(this.x, this.y, this.z, this.w);\n }\n /**\n * Updates the current Vector4 with the given one coordinates.\n * @param source the source vector to copy from\n * @returns the updated Vector4.\n */\n copyFrom(e) {\n return this.x = e.x, this.y = e.y, this.z = e.z, this.w = e.w, this;\n }\n /**\n * Updates the current Vector4 coordinates with the given floats.\n * @param x float to copy from\n * @param y float to copy from\n * @param z float to copy from\n * @param w float to copy from\n * @returns the updated Vector4.\n */\n copyFromFloats(e, t, i, s) {\n return this.x = e, this.y = t, this.z = i, this.w = s, this;\n }\n /**\n * Updates the current Vector4 coordinates with the given floats.\n * @param x float to set from\n * @param y float to set from\n * @param z float to set from\n * @param w float to set from\n * @returns the updated Vector4.\n */\n set(e, t, i, s) {\n return this.copyFromFloats(e, t, i, s);\n }\n /**\n * Copies the given float to the current Vector4 coordinates\n * @param v defines the x, y, z and w coordinates of the operand\n * @returns the current updated Vector4\n */\n setAll(e) {\n return this.x = this.y = this.z = this.w = e, this;\n }\n /**\n * Returns the dot product (float) between the current vectors and \"otherVector\"\n * @param otherVector defines the right operand\n * @returns the dot product\n */\n dot(e) {\n return this.x * e.x + this.y * e.y + this.z * e.z + this.w * e.w;\n }\n // Statics\n /**\n * Returns a new Vector4 set from the starting index of the given array.\n * @param array the array to pull values from\n * @param offset the offset into the array to start at\n * @returns the new vector\n */\n static FromArray(e, t) {\n return t || (t = 0), new Ne(e[t], e[t + 1], e[t + 2], e[t + 3]);\n }\n /**\n * Updates the given vector \"result\" from the starting index of the given array.\n * @param array the array to pull values from\n * @param offset the offset into the array to start at\n * @param result the vector to store the result in\n * @returns result input\n */\n static FromArrayToRef(e, t, i) {\n return i.x = e[t], i.y = e[t + 1], i.z = e[t + 2], i.w = e[t + 3], i;\n }\n /**\n * Updates the given vector \"result\" from the starting index of the given Float32Array.\n * @param array the array to pull values from\n * @param offset the offset into the array to start at\n * @param result the vector to store the result in\n * @returns result input\n */\n static FromFloatArrayToRef(e, t, i) {\n return Ne.FromArrayToRef(e, t, i), i;\n }\n /**\n * Updates the given vector \"result\" coordinates from the given floats.\n * @param x float to set from\n * @param y float to set from\n * @param z float to set from\n * @param w float to set from\n * @param result the vector to the floats in\n * @returns result input\n */\n static FromFloatsToRef(e, t, i, s, r) {\n return r.x = e, r.y = t, r.z = i, r.w = s, r;\n }\n /**\n * Returns a new Vector4 set to (0.0, 0.0, 0.0, 0.0)\n * @returns the new vector\n */\n static Zero() {\n return new Ne(0, 0, 0, 0);\n }\n /**\n * Returns a new Vector4 set to (1.0, 1.0, 1.0, 1.0)\n * @returns the new vector\n */\n static One() {\n return new Ne(1, 1, 1, 1);\n }\n /**\n * Returns a new Vector4 with random values between min and max\n * @param min the minimum random value\n * @param max the maximum random value\n * @returns a Vector4 with random values between min and max\n */\n static Random(e = 0, t = 1) {\n return new Ne(Wt(e, t), Wt(e, t), Wt(e, t), Wt(e, t));\n }\n /**\n * Sets a Vector4 with random values between min and max\n * @param min the minimum random value\n * @param max the maximum random value\n * @param ref the ref to store the values in\n * @returns the ref with random values between min and max\n */\n static RandomToRef(e = 0, t = 1, i) {\n return i.x = Wt(e, t), i.y = Wt(e, t), i.z = Wt(e, t), i.w = Wt(e, t), i;\n }\n /**\n * Returns a new Vector4 set with the coordinates of \"value\", if the vector \"value\" is in the cube defined by the vectors \"min\" and \"max\"\n * If a coordinate value of \"value\" is lower than one of the \"min\" coordinate, then this \"value\" coordinate is set with the \"min\" one\n * If a coordinate value of \"value\" is greater than one of the \"max\" coordinate, then this \"value\" coordinate is set with the \"max\" one\n * @param value defines the current value\n * @param min defines the lower range value\n * @param max defines the upper range value\n * @returns the new Vector4\n */\n static Clamp(e, t, i) {\n return Ne.ClampToRef(e, t, i, new Ne());\n }\n /**\n * Sets the given vector \"result\" with the coordinates of \"value\", if the vector \"value\" is in the cube defined by the vectors \"min\" and \"max\"\n * If a coordinate value of \"value\" is lower than one of the \"min\" coordinate, then this \"value\" coordinate is set with the \"min\" one\n * If a coordinate value of \"value\" is greater than one of the \"max\" coordinate, then this \"value\" coordinate is set with the \"max\" one\n * @param value defines the current value\n * @param min defines the lower range value\n * @param max defines the upper range value\n * @param result defines the Vector4 where to store the result\n * @returns result input\n */\n static ClampToRef(e, t, i, s) {\n return s.x = Vi(e.x, t.x, i.x), s.y = Vi(e.y, t.y, i.y), s.z = Vi(e.z, t.z, i.z), s.w = Vi(e.w, t.w, i.w), s;\n }\n /**\n * Checks if a given vector is inside a specific range\n * Example Playground https://playground.babylonjs.com/#R1F8YU#75\n * @param v defines the vector to test\n * @param min defines the minimum range\n * @param max defines the maximum range\n */\n static CheckExtends(e, t, i) {\n t.minimizeInPlace(e), i.maximizeInPlace(e);\n }\n /**\n * Gets a zero Vector4 that must not be updated\n */\n static get ZeroReadOnly() {\n return Ne._ZeroReadOnly;\n }\n /**\n * Returns a new normalized Vector4 from the given one.\n * @param vector the vector to normalize\n * @returns the vector\n */\n static Normalize(e) {\n return Ne.NormalizeToRef(e, new Ne());\n }\n /**\n * Updates the given vector \"result\" from the normalization of the given one.\n * @param vector the vector to normalize\n * @param result the vector to store the result in\n * @returns result input\n */\n static NormalizeToRef(e, t) {\n return e.normalizeToRef(t), t;\n }\n /**\n * Returns a vector with the minimum values from the left and right vectors\n * @param left left vector to minimize\n * @param right right vector to minimize\n * @returns a new vector with the minimum of the left and right vector values\n */\n static Minimize(e, t) {\n const i = new Ne();\n return i.copyFrom(e), i.minimizeInPlace(t), i;\n }\n /**\n * Returns a vector with the maximum values from the left and right vectors\n * @param left left vector to maximize\n * @param right right vector to maximize\n * @returns a new vector with the maximum of the left and right vector values\n */\n static Maximize(e, t) {\n const i = new Ne();\n return i.copyFrom(e), i.maximizeInPlace(t), i;\n }\n /**\n * Returns the distance (float) between the vectors \"value1\" and \"value2\".\n * @param value1 value to calulate the distance between\n * @param value2 value to calulate the distance between\n * @returns the distance between the two vectors\n */\n static Distance(e, t) {\n return Math.sqrt(Ne.DistanceSquared(e, t));\n }\n /**\n * Returns the squared distance (float) between the vectors \"value1\" and \"value2\".\n * @param value1 value to calulate the distance between\n * @param value2 value to calulate the distance between\n * @returns the distance between the two vectors squared\n */\n static DistanceSquared(e, t) {\n const i = e.x - t.x, s = e.y - t.y, r = e.z - t.z, n = e.w - t.w;\n return i * i + s * s + r * r + n * n;\n }\n /**\n * Returns a new Vector4 located at the center between the vectors \"value1\" and \"value2\".\n * @param value1 value to calulate the center between\n * @param value2 value to calulate the center between\n * @returns the center between the two vectors\n */\n static Center(e, t) {\n return Ne.CenterToRef(e, t, new Ne());\n }\n /**\n * Gets the center of the vectors \"value1\" and \"value2\" and stores the result in the vector \"ref\"\n * @param value1 defines first vector\n * @param value2 defines second vector\n * @param ref defines third vector\n * @returns ref\n */\n static CenterToRef(e, t, i) {\n return i.x = (e.x + t.x) / 2, i.y = (e.y + t.y) / 2, i.z = (e.z + t.z) / 2, i.w = (e.w + t.w) / 2, i;\n }\n /**\n * Returns a new Vector4 set with the result of the transformation by the given matrix of the given vector.\n * This method computes tranformed coordinates only, not transformed direction vectors (ie. it takes translation in account)\n * The difference with Vector3.TransformCoordinates is that the w component is not used to divide the other coordinates but is returned in the w coordinate instead\n * @param vector defines the Vector3 to transform\n * @param transformation defines the transformation matrix\n * @returns the transformed Vector4\n */\n static TransformCoordinates(e, t) {\n return Ne.TransformCoordinatesToRef(e, t, new Ne());\n }\n /**\n * Sets the given vector \"result\" coordinates with the result of the transformation by the given matrix of the given vector\n * This method computes tranformed coordinates only, not transformed direction vectors (ie. it takes translation in account)\n * The difference with Vector3.TransformCoordinatesToRef is that the w component is not used to divide the other coordinates but is returned in the w coordinate instead\n * @param vector defines the Vector3 to transform\n * @param transformation defines the transformation matrix\n * @param result defines the Vector4 where to store the result\n * @returns result input\n */\n static TransformCoordinatesToRef(e, t, i) {\n return Ne.TransformCoordinatesFromFloatsToRef(e._x, e._y, e._z, t, i), i;\n }\n /**\n * Sets the given vector \"result\" coordinates with the result of the transformation by the given matrix of the given floats (x, y, z)\n * This method computes tranformed coordinates only, not transformed direction vectors\n * The difference with Vector3.TransformCoordinatesFromFloatsToRef is that the w component is not used to divide the other coordinates but is returned in the w coordinate instead\n * @param x define the x coordinate of the source vector\n * @param y define the y coordinate of the source vector\n * @param z define the z coordinate of the source vector\n * @param transformation defines the transformation matrix\n * @param result defines the Vector4 where to store the result\n * @returns result input\n */\n static TransformCoordinatesFromFloatsToRef(e, t, i, s, r) {\n const n = s.m, o = e * n[0] + t * n[4] + i * n[8] + n[12], l = e * n[1] + t * n[5] + i * n[9] + n[13], h = e * n[2] + t * n[6] + i * n[10] + n[14], c = e * n[3] + t * n[7] + i * n[11] + n[15];\n return r.x = o, r.y = l, r.z = h, r.w = c, r;\n }\n /**\n * Returns a new Vector4 set with the result of the normal transformation by the given matrix of the given vector.\n * This methods computes transformed normalized direction vectors only.\n * @param vector the vector to transform\n * @param transformation the transformation matrix to apply\n * @returns the new vector\n */\n static TransformNormal(e, t) {\n return Ne.TransformNormalToRef(e, t, new Ne());\n }\n /**\n * Sets the given vector \"result\" with the result of the normal transformation by the given matrix of the given vector.\n * This methods computes transformed normalized direction vectors only.\n * @param vector the vector to transform\n * @param transformation the transformation matrix to apply\n * @param result the vector to store the result in\n * @returns result input\n */\n static TransformNormalToRef(e, t, i) {\n const s = t.m, r = e.x * s[0] + e.y * s[4] + e.z * s[8], n = e.x * s[1] + e.y * s[5] + e.z * s[9], o = e.x * s[2] + e.y * s[6] + e.z * s[10];\n return i.x = r, i.y = n, i.z = o, i.w = e.w, i;\n }\n /**\n * Sets the given vector \"result\" with the result of the normal transformation by the given matrix of the given floats (x, y, z, w).\n * This methods computes transformed normalized direction vectors only.\n * @param x value to transform\n * @param y value to transform\n * @param z value to transform\n * @param w value to transform\n * @param transformation the transformation matrix to apply\n * @param result the vector to store the results in\n * @returns result input\n */\n static TransformNormalFromFloatsToRef(e, t, i, s, r, n) {\n const o = r.m;\n return n.x = e * o[0] + t * o[4] + i * o[8], n.y = e * o[1] + t * o[5] + i * o[9], n.z = e * o[2] + t * o[6] + i * o[10], n.w = s, n;\n }\n /**\n * Creates a new Vector4 from a Vector3\n * @param source defines the source data\n * @param w defines the 4th component (default is 0)\n * @returns a new Vector4\n */\n static FromVector3(e, t = 0) {\n return new Ne(e._x, e._y, e._z, t);\n }\n /**\n * Returns the dot product (float) between the vectors \"left\" and \"right\"\n * @param left defines the left operand\n * @param right defines the right operand\n * @returns the dot product\n */\n static Dot(e, t) {\n return e.x * t.x + e.y * t.y + e.z * t.z + e.w * t.w;\n }\n}\nNe._ZeroReadOnly = Ne.Zero();\nObject.defineProperties(Ne.prototype, {\n dimension: { value: [4] },\n rank: { value: 1 }\n});\nclass se {\n /** Gets or sets the x coordinate */\n get x() {\n return this._x;\n }\n set x(e) {\n this._x = e, this._isDirty = !0;\n }\n /** Gets or sets the y coordinate */\n get y() {\n return this._y;\n }\n set y(e) {\n this._y = e, this._isDirty = !0;\n }\n /** Gets or sets the z coordinate */\n get z() {\n return this._z;\n }\n set z(e) {\n this._z = e, this._isDirty = !0;\n }\n /** Gets or sets the w coordinate */\n get w() {\n return this._w;\n }\n set w(e) {\n this._w = e, this._isDirty = !0;\n }\n /**\n * Creates a new Quaternion from the given floats\n * @param x defines the first component (0 by default)\n * @param y defines the second component (0 by default)\n * @param z defines the third component (0 by default)\n * @param w defines the fourth component (1.0 by default)\n */\n constructor(e = 0, t = 0, i = 0, s = 1) {\n this._isDirty = !0, this._x = e, this._y = t, this._z = i, this._w = s;\n }\n /**\n * Gets a string representation for the current quaternion\n * @returns a string with the Quaternion coordinates\n */\n toString() {\n return `{X: ${this._x} Y: ${this._y} Z: ${this._z} W: ${this._w}}`;\n }\n /**\n * Gets the class name of the quaternion\n * @returns the string \"Quaternion\"\n */\n getClassName() {\n return \"Quaternion\";\n }\n /**\n * Gets a hash code for this quaternion\n * @returns the quaternion hash code\n */\n getHashCode() {\n const e = Gr(this._x), t = Gr(this._y), i = Gr(this._z), s = Gr(this._w);\n let r = e;\n return r = r * 397 ^ t, r = r * 397 ^ i, r = r * 397 ^ s, r;\n }\n /**\n * Copy the quaternion to an array\n * Example Playground https://playground.babylonjs.com/#L49EJ7#13\n * @returns a new array populated with 4 elements from the quaternion coordinates\n */\n asArray() {\n return [this._x, this._y, this._z, this._w];\n }\n /**\n * Stores from the starting index in the given array the Quaternion successive values\n * Example Playground https://playground.babylonjs.com/#L49EJ7#59\n * @param array defines the array where to store the x,y,z,w components\n * @param index defines an optional index in the target array to define where to start storing values\n * @returns the current Quaternion object\n */\n toArray(e, t = 0) {\n return e[t] = this._x, e[t + 1] = this._y, e[t + 2] = this._z, e[t + 3] = this._w, this;\n }\n fromArray(e, t = 0) {\n return se.FromArrayToRef(e, t, this);\n }\n /**\n * Check if two quaternions are equals\n * Example Playground https://playground.babylonjs.com/#L49EJ7#38\n * @param otherQuaternion defines the second operand\n * @returns true if the current quaternion and the given one coordinates are strictly equals\n */\n equals(e) {\n return e && this._x === e._x && this._y === e._y && this._z === e._z && this._w === e._w;\n }\n /**\n * Gets a boolean if two quaternions are equals (using an epsilon value)\n * Example Playground https://playground.babylonjs.com/#L49EJ7#37\n * @param otherQuaternion defines the other quaternion\n * @param epsilon defines the minimal distance to consider equality\n * @returns true if the given quaternion coordinates are close to the current ones by a distance of epsilon.\n */\n equalsWithEpsilon(e, t = tt) {\n return e && nr(this._x, e._x, t) && nr(this._y, e._y, t) && nr(this._z, e._z, t) && nr(this._w, e._w, t);\n }\n /**\n * Clone the current quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#12\n * @returns a new quaternion copied from the current one\n */\n clone() {\n return new se(this._x, this._y, this._z, this._w);\n }\n /**\n * Copy a quaternion to the current one\n * Example Playground https://playground.babylonjs.com/#L49EJ7#86\n * @param other defines the other quaternion\n * @returns the updated current quaternion\n */\n copyFrom(e) {\n return this._x = e._x, this._y = e._y, this._z = e._z, this._w = e._w, this._isDirty = !0, this;\n }\n /**\n * Updates the current quaternion with the given float coordinates\n * Example Playground https://playground.babylonjs.com/#L49EJ7#87\n * @param x defines the x coordinate\n * @param y defines the y coordinate\n * @param z defines the z coordinate\n * @param w defines the w coordinate\n * @returns the updated current quaternion\n */\n copyFromFloats(e, t, i, s) {\n return this._x = e, this._y = t, this._z = i, this._w = s, this._isDirty = !0, this;\n }\n /**\n * Updates the current quaternion from the given float coordinates\n * Example Playground https://playground.babylonjs.com/#L49EJ7#56\n * @param x defines the x coordinate\n * @param y defines the y coordinate\n * @param z defines the z coordinate\n * @param w defines the w coordinate\n * @returns the updated current quaternion\n */\n set(e, t, i, s) {\n return this.copyFromFloats(e, t, i, s);\n }\n setAll(e) {\n return this.copyFromFloats(e, e, e, e);\n }\n /**\n * Adds two quaternions\n * Example Playground https://playground.babylonjs.com/#L49EJ7#10\n * @param other defines the second operand\n * @returns a new quaternion as the addition result of the given one and the current quaternion\n */\n add(e) {\n return new se(this._x + e._x, this._y + e._y, this._z + e._z, this._w + e._w);\n }\n /**\n * Add a quaternion to the current one\n * Example Playground https://playground.babylonjs.com/#L49EJ7#11\n * @param other defines the quaternion to add\n * @returns the current quaternion\n */\n addInPlace(e) {\n return this._x += e._x, this._y += e._y, this._z += e._z, this._w += e._w, this._isDirty = !0, this;\n }\n addToRef(e, t) {\n return t._x = this._x + e._x, t._y = this._y + e._y, t._z = this._z + e._z, t._w = this._w + e._w, t._isDirty = !0, t;\n }\n addInPlaceFromFloats(e, t, i, s) {\n return this._x += e, this._y += t, this._z += i, this._w += s, this._isDirty = !0, this;\n }\n subtractToRef(e, t) {\n return t._x = this._x - e._x, t._y = this._y - e._y, t._z = this._z - e._z, t._w = this._w - e._w, t._isDirty = !0, t;\n }\n subtractFromFloats(e, t, i, s) {\n return this.subtractFromFloatsToRef(e, t, i, s, new se());\n }\n subtractFromFloatsToRef(e, t, i, s, r) {\n return r._x = this._x - e, r._y = this._y - t, r._z = this._z - i, r._w = this._w - s, r._isDirty = !0, r;\n }\n /**\n * Subtract two quaternions\n * Example Playground https://playground.babylonjs.com/#L49EJ7#57\n * @param other defines the second operand\n * @returns a new quaternion as the subtraction result of the given one from the current one\n */\n subtract(e) {\n return new se(this._x - e._x, this._y - e._y, this._z - e._z, this._w - e._w);\n }\n /**\n * Subtract a quaternion to the current one\n * Example Playground https://playground.babylonjs.com/#L49EJ7#58\n * @param other defines the quaternion to subtract\n * @returns the current quaternion\n */\n subtractInPlace(e) {\n return this._x -= e._x, this._y -= e._y, this._z -= e._z, this._w -= e._w, this._isDirty = !0, this;\n }\n /**\n * Multiplies the current quaternion by a scale factor\n * Example Playground https://playground.babylonjs.com/#L49EJ7#88\n * @param value defines the scale factor\n * @returns a new quaternion set by multiplying the current quaternion coordinates by the float \"scale\"\n */\n scale(e) {\n return new se(this._x * e, this._y * e, this._z * e, this._w * e);\n }\n /**\n * Scale the current quaternion values by a factor and stores the result to a given quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#89\n * @param scale defines the scale factor\n * @param result defines the Quaternion object where to store the result\n * @returns result input\n */\n scaleToRef(e, t) {\n return t._x = this._x * e, t._y = this._y * e, t._z = this._z * e, t._w = this._w * e, t._isDirty = !0, t;\n }\n /**\n * Multiplies in place the current quaternion by a scale factor\n * Example Playground https://playground.babylonjs.com/#L49EJ7#90\n * @param value defines the scale factor\n * @returns the current modified quaternion\n */\n scaleInPlace(e) {\n return this._x *= e, this._y *= e, this._z *= e, this._w *= e, this._isDirty = !0, this;\n }\n /**\n * Scale the current quaternion values by a factor and add the result to a given quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#91\n * @param scale defines the scale factor\n * @param result defines the Quaternion object where to store the result\n * @returns result input\n */\n scaleAndAddToRef(e, t) {\n return t._x += this._x * e, t._y += this._y * e, t._z += this._z * e, t._w += this._w * e, t._isDirty = !0, t;\n }\n /**\n * Multiplies two quaternions\n * Example Playground https://playground.babylonjs.com/#L49EJ7#43\n * @param q1 defines the second operand\n * @returns a new quaternion set as the multiplication result of the current one with the given one \"q1\"\n */\n multiply(e) {\n const t = new se(0, 0, 0, 1);\n return this.multiplyToRef(e, t), t;\n }\n /**\n * Sets the given \"result\" as the multiplication result of the current one with the given one \"q1\"\n * Example Playground https://playground.babylonjs.com/#L49EJ7#45\n * @param q1 defines the second operand\n * @param result defines the target quaternion\n * @returns the current quaternion\n */\n multiplyToRef(e, t) {\n const i = this._x * e._w + this._y * e._z - this._z * e._y + this._w * e._x, s = -this._x * e._z + this._y * e._w + this._z * e._x + this._w * e._y, r = this._x * e._y - this._y * e._x + this._z * e._w + this._w * e._z, n = -this._x * e._x - this._y * e._y - this._z * e._z + this._w * e._w;\n return t.copyFromFloats(i, s, r, n), t;\n }\n /**\n * Updates the current quaternion with the multiplication of itself with the given one \"q1\"\n * Example Playground https://playground.babylonjs.com/#L49EJ7#46\n * @param other defines the second operand\n * @returns the currentupdated quaternion\n */\n multiplyInPlace(e) {\n return this.multiplyToRef(e, this);\n }\n multiplyByFloats(e, t, i, s) {\n return this._x *= e, this._y *= t, this._z *= i, this._w *= s, this._isDirty = !0, this;\n }\n /**\n * @internal\n * Do not use\n */\n divide(e) {\n throw new ReferenceError(\"Can not divide a quaternion\");\n }\n /**\n * @internal\n * Do not use\n */\n divideToRef(e, t) {\n throw new ReferenceError(\"Can not divide a quaternion\");\n }\n /**\n * @internal\n * Do not use\n */\n divideInPlace(e) {\n throw new ReferenceError(\"Can not divide a quaternion\");\n }\n /**\n * @internal\n * Do not use\n */\n minimizeInPlace() {\n throw new ReferenceError(\"Can not minimize a quaternion\");\n }\n /**\n * @internal\n * Do not use\n */\n minimizeInPlaceFromFloats() {\n throw new ReferenceError(\"Can not minimize a quaternion\");\n }\n /**\n * @internal\n * Do not use\n */\n maximizeInPlace() {\n throw new ReferenceError(\"Can not maximize a quaternion\");\n }\n /**\n * @internal\n * Do not use\n */\n maximizeInPlaceFromFloats() {\n throw new ReferenceError(\"Can not maximize a quaternion\");\n }\n negate() {\n return this.negateToRef(new se());\n }\n negateInPlace() {\n return this._x = -this._x, this._y = -this._y, this._z = -this._z, this._w = -this._w, this._isDirty = !0, this;\n }\n negateToRef(e) {\n return e._x = -this._x, e._y = -this._y, e._z = -this._z, e._w = -this._w, e._isDirty = !0, e;\n }\n equalsToFloats(e, t, i, s) {\n return this._x === e && this._y === t && this._z === i && this._w === s;\n }\n /**\n * @internal\n * Do not use\n */\n floorToRef(e) {\n throw new ReferenceError(\"Can not floor a quaternion\");\n }\n /**\n * @internal\n * Do not use\n */\n floor() {\n throw new ReferenceError(\"Can not floor a quaternion\");\n }\n /**\n * @internal\n * Do not use\n */\n fractToRef(e) {\n throw new ReferenceError(\"Can not fract a quaternion\");\n }\n /**\n * @internal\n * Do not use\n */\n fract() {\n throw new ReferenceError(\"Can not fract a quaternion\");\n }\n /**\n * Conjugates the current quaternion and stores the result in the given quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#81\n * @param ref defines the target quaternion\n * @returns result input\n */\n conjugateToRef(e) {\n return e.copyFromFloats(-this._x, -this._y, -this._z, this._w), e;\n }\n /**\n * Conjugates in place the current quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#82\n * @returns the current updated quaternion\n */\n conjugateInPlace() {\n return this._x *= -1, this._y *= -1, this._z *= -1, this._isDirty = !0, this;\n }\n /**\n * Conjugates (1-q) the current quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#83\n * @returns a new quaternion\n */\n conjugate() {\n return new se(-this._x, -this._y, -this._z, this._w);\n }\n /**\n * Returns the inverse of the current quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#84\n * @returns a new quaternion\n */\n invert() {\n const e = this.conjugate(), t = this.lengthSquared();\n return t == 0 || t == 1 || e.scaleInPlace(1 / t), e;\n }\n /**\n * Invert in place the current quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#85\n * @returns this quaternion\n */\n invertInPlace() {\n this.conjugateInPlace();\n const e = this.lengthSquared();\n return e == 0 || e == 1 ? this : (this.scaleInPlace(1 / e), this);\n }\n /**\n * Gets squared length of current quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#29\n * @returns the quaternion length (float)\n */\n lengthSquared() {\n return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n }\n /**\n * Gets length of current quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#28\n * @returns the quaternion length (float)\n */\n length() {\n return Math.sqrt(this.lengthSquared());\n }\n /**\n * Normalize in place the current quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#54\n * @returns the current updated quaternion\n */\n normalize() {\n return this.normalizeFromLength(this.length());\n }\n /**\n * Normalize the current quaternion with the given input length.\n * Please note that this is an in place operation.\n * @param len the length of the quaternion\n * @returns the current updated Quaternion\n */\n normalizeFromLength(e) {\n return e === 0 || e === 1 ? this : this.scaleInPlace(1 / e);\n }\n /**\n * Normalize a copy of the current quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#55\n * @returns the normalized quaternion\n */\n normalizeToNew() {\n const e = new se(0, 0, 0, 1);\n return this.normalizeToRef(e), e;\n }\n /**\n * Normalize the current Quaternion to the reference\n * @param reference define the Quaternion to update\n * @returns the updated Quaternion\n */\n normalizeToRef(e) {\n const t = this.length();\n return t === 0 || t === 1 ? e.copyFromFloats(this._x, this._y, this._z, this._w) : this.scaleToRef(1 / t, e);\n }\n /**\n * Returns a new Vector3 set with the Euler angles translated from the current quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#32\n * @returns a new Vector3 containing the Euler angles\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/transforms/center_origin/rotation_conventions\n */\n toEulerAngles() {\n const e = g.Zero();\n return this.toEulerAnglesToRef(e), e;\n }\n /**\n * Sets the given vector3 \"result\" with the Euler angles translated from the current quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#31\n * @param result defines the vector which will be filled with the Euler angles\n * @returns result input\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/transforms/center_origin/rotation_conventions\n */\n toEulerAnglesToRef(e) {\n const t = this._z, i = this._x, s = this._y, r = this._w, n = s * t - i * r, o = 0.4999999;\n if (n < -o)\n e._y = 2 * Math.atan2(s, r), e._x = Math.PI / 2, e._z = 0, e._isDirty = !0;\n else if (n > o)\n e._y = 2 * Math.atan2(s, r), e._x = -Math.PI / 2, e._z = 0, e._isDirty = !0;\n else {\n const l = r * r, h = t * t, c = i * i, u = s * s;\n e._z = Math.atan2(2 * (i * s + t * r), -h - c + u + l), e._x = Math.asin(-2 * n), e._y = Math.atan2(2 * (t * i + s * r), h - c - u + l), e._isDirty = !0;\n }\n return e;\n }\n /**\n * Sets the given vector3 \"result\" with the Alpha, Beta, Gamma Euler angles translated from the current quaternion\n * @param result defines the vector which will be filled with the Euler angles\n * @returns result input\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/transforms/center_origin/rotation_conventions\n */\n toAlphaBetaGammaToRef(e) {\n const t = this._z, i = this._x, s = this._y, r = this._w, n = Math.sqrt(i * i + s * s), o = Math.sqrt(t * t + r * r), l = 2 * Math.atan2(n, o), h = 2 * Math.atan2(t, r), c = 2 * Math.atan2(s, i), u = (h + c) / 2, d = (h - c) / 2;\n return e.set(d, l, u), e;\n }\n /**\n * Updates the given rotation matrix with the current quaternion values\n * Example Playground https://playground.babylonjs.com/#L49EJ7#67\n * @param result defines the target matrix\n * @returns the updated matrix with the rotation\n */\n toRotationMatrix(e) {\n return O.FromQuaternionToRef(this, e), e;\n }\n /**\n * Updates the current quaternion from the given rotation matrix values\n * Example Playground https://playground.babylonjs.com/#L49EJ7#41\n * @param matrix defines the source matrix\n * @returns the current updated quaternion\n */\n fromRotationMatrix(e) {\n return se.FromRotationMatrixToRef(e, this), this;\n }\n /**\n * Returns the dot product (float) between the current quaternions and \"other\"\n * @param other defines the right operand\n * @returns the dot product\n */\n dot(e) {\n return this._x * e._x + this._y * e._y + this._z * e._z + this._w * e._w;\n }\n // Statics\n /**\n * Creates a new quaternion from a rotation matrix\n * Example Playground https://playground.babylonjs.com/#L49EJ7#101\n * @param matrix defines the source matrix\n * @returns a new quaternion created from the given rotation matrix values\n */\n static FromRotationMatrix(e) {\n const t = new se();\n return se.FromRotationMatrixToRef(e, t), t;\n }\n /**\n * Updates the given quaternion with the given rotation matrix values\n * Example Playground https://playground.babylonjs.com/#L49EJ7#102\n * @param matrix defines the source matrix\n * @param result defines the target quaternion\n * @returns result input\n */\n static FromRotationMatrixToRef(e, t) {\n const i = e.m, s = i[0], r = i[4], n = i[8], o = i[1], l = i[5], h = i[9], c = i[2], u = i[6], d = i[10], f = s + l + d;\n let p;\n return f > 0 ? (p = 0.5 / Math.sqrt(f + 1), t._w = 0.25 / p, t._x = (u - h) * p, t._y = (n - c) * p, t._z = (o - r) * p, t._isDirty = !0) : s > l && s > d ? (p = 2 * Math.sqrt(1 + s - l - d), t._w = (u - h) / p, t._x = 0.25 * p, t._y = (r + o) / p, t._z = (n + c) / p, t._isDirty = !0) : l > d ? (p = 2 * Math.sqrt(1 + l - s - d), t._w = (n - c) / p, t._x = (r + o) / p, t._y = 0.25 * p, t._z = (h + u) / p, t._isDirty = !0) : (p = 2 * Math.sqrt(1 + d - s - l), t._w = (o - r) / p, t._x = (n + c) / p, t._y = (h + u) / p, t._z = 0.25 * p, t._isDirty = !0), t;\n }\n /**\n * Returns the dot product (float) between the quaternions \"left\" and \"right\"\n * Example Playground https://playground.babylonjs.com/#L49EJ7#61\n * @param left defines the left operand\n * @param right defines the right operand\n * @returns the dot product\n */\n static Dot(e, t) {\n return e._x * t._x + e._y * t._y + e._z * t._z + e._w * t._w;\n }\n /**\n * Checks if the orientations of two rotation quaternions are close to each other\n * Example Playground https://playground.babylonjs.com/#L49EJ7#60\n * @param quat0 defines the first quaternion to check\n * @param quat1 defines the second quaternion to check\n * @param epsilon defines closeness, 0 same orientation, 1 PI apart, default 0.1\n * @returns true if the two quaternions are close to each other within epsilon\n */\n static AreClose(e, t, i = 0.1) {\n const s = se.Dot(e, t);\n return 1 - s * s <= i;\n }\n /**\n * Smooth interpolation between two quaternions using Slerp\n * Example Playground https://playground.babylonjs.com/#L49EJ7#93\n * @param source source quaternion\n * @param goal goal quaternion\n * @param deltaTime current interpolation frame\n * @param lerpTime total interpolation time\n * @param result the smoothed quaternion\n * @returns the smoothed quaternion\n */\n static SmoothToRef(e, t, i, s, r) {\n let n = s === 0 ? 1 : i / s;\n return n = Vi(n, 0, 1), se.SlerpToRef(e, t, n, r), r;\n }\n /**\n * Creates an empty quaternion\n * @returns a new quaternion set to (0.0, 0.0, 0.0)\n */\n static Zero() {\n return new se(0, 0, 0, 0);\n }\n /**\n * Inverse a given quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#103\n * @param q defines the source quaternion\n * @returns a new quaternion as the inverted current quaternion\n */\n static Inverse(e) {\n return new se(-e._x, -e._y, -e._z, e._w);\n }\n /**\n * Inverse a given quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#104\n * @param q defines the source quaternion\n * @param result the quaternion the result will be stored in\n * @returns the result quaternion\n */\n static InverseToRef(e, t) {\n return t.set(-e._x, -e._y, -e._z, e._w), t;\n }\n /**\n * Creates an identity quaternion\n * @returns the identity quaternion\n */\n static Identity() {\n return new se(0, 0, 0, 1);\n }\n /**\n * Gets a boolean indicating if the given quaternion is identity\n * @param quaternion defines the quaternion to check\n * @returns true if the quaternion is identity\n */\n static IsIdentity(e) {\n return e && e._x === 0 && e._y === 0 && e._z === 0 && e._w === 1;\n }\n /**\n * Creates a quaternion from a rotation around an axis\n * Example Playground https://playground.babylonjs.com/#L49EJ7#72\n * @param axis defines the axis to use\n * @param angle defines the angle to use\n * @returns a new quaternion created from the given axis (Vector3) and angle in radians (float)\n */\n static RotationAxis(e, t) {\n return se.RotationAxisToRef(e, t, new se());\n }\n /**\n * Creates a rotation around an axis and stores it into the given quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#73\n * @param axis defines the axis to use\n * @param angle defines the angle to use\n * @param result defines the target quaternion\n * @returns the target quaternion\n */\n static RotationAxisToRef(e, t, i) {\n const s = Math.sin(t / 2);\n return e.normalize(), i._w = Math.cos(t / 2), i._x = e._x * s, i._y = e._y * s, i._z = e._z * s, i._isDirty = !0, i;\n }\n /**\n * Creates a new quaternion from data stored into an array\n * Example Playground https://playground.babylonjs.com/#L49EJ7#63\n * @param array defines the data source\n * @param offset defines the offset in the source array where the data starts\n * @returns a new quaternion\n */\n static FromArray(e, t) {\n return t || (t = 0), new se(e[t], e[t + 1], e[t + 2], e[t + 3]);\n }\n /**\n * Updates the given quaternion \"result\" from the starting index of the given array.\n * Example Playground https://playground.babylonjs.com/#L49EJ7#64\n * @param array the array to pull values from\n * @param offset the offset into the array to start at\n * @param result the quaternion to store the result in\n * @returns result input\n */\n static FromArrayToRef(e, t, i) {\n return i._x = e[t], i._y = e[t + 1], i._z = e[t + 2], i._w = e[t + 3], i._isDirty = !0, i;\n }\n /**\n * Sets the given quaternion \"result\" with the given floats.\n * @param x defines the x coordinate of the source\n * @param y defines the y coordinate of the source\n * @param z defines the z coordinate of the source\n * @param w defines the w coordinate of the source\n * @param result defines the quaternion where to store the result\n * @returns the result quaternion\n */\n static FromFloatsToRef(e, t, i, s, r) {\n return r.copyFromFloats(e, t, i, s), r;\n }\n /**\n * Create a quaternion from Euler rotation angles\n * Example Playground https://playground.babylonjs.com/#L49EJ7#33\n * @param x Pitch\n * @param y Yaw\n * @param z Roll\n * @returns the new Quaternion\n */\n static FromEulerAngles(e, t, i) {\n const s = new se();\n return se.RotationYawPitchRollToRef(t, e, i, s), s;\n }\n /**\n * Updates a quaternion from Euler rotation angles\n * Example Playground https://playground.babylonjs.com/#L49EJ7#34\n * @param x Pitch\n * @param y Yaw\n * @param z Roll\n * @param result the quaternion to store the result\n * @returns the updated quaternion\n */\n static FromEulerAnglesToRef(e, t, i, s) {\n return se.RotationYawPitchRollToRef(t, e, i, s), s;\n }\n /**\n * Create a quaternion from Euler rotation vector\n * Example Playground https://playground.babylonjs.com/#L49EJ7#35\n * @param vec the Euler vector (x Pitch, y Yaw, z Roll)\n * @returns the new Quaternion\n */\n static FromEulerVector(e) {\n const t = new se();\n return se.RotationYawPitchRollToRef(e._y, e._x, e._z, t), t;\n }\n /**\n * Updates a quaternion from Euler rotation vector\n * Example Playground https://playground.babylonjs.com/#L49EJ7#36\n * @param vec the Euler vector (x Pitch, y Yaw, z Roll)\n * @param result the quaternion to store the result\n * @returns the updated quaternion\n */\n static FromEulerVectorToRef(e, t) {\n return se.RotationYawPitchRollToRef(e._y, e._x, e._z, t), t;\n }\n /**\n * Updates a quaternion so that it rotates vector vecFrom to vector vecTo\n * Example Playground - https://playground.babylonjs.com/#L49EJ7#70\n * @param vecFrom defines the direction vector from which to rotate\n * @param vecTo defines the direction vector to which to rotate\n * @param result the quaternion to store the result\n * @param epsilon defines the minimal dot value to define vecs as opposite. Default: `BABYLON.Epsilon`\n * @returns the updated quaternion\n */\n static FromUnitVectorsToRef(e, t, i, s = tt) {\n const r = g.Dot(e, t) + 1;\n return r < s ? Math.abs(e.x) > Math.abs(e.z) ? i.set(-e.y, e.x, 0, 0) : i.set(0, -e.z, e.y, 0) : (g.CrossToRef(e, t, w.Vector3[0]), i.set(w.Vector3[0].x, w.Vector3[0].y, w.Vector3[0].z, r)), i.normalize();\n }\n /**\n * Creates a new quaternion from the given Euler float angles (y, x, z)\n * Example Playground https://playground.babylonjs.com/#L49EJ7#77\n * @param yaw defines the rotation around Y axis\n * @param pitch defines the rotation around X axis\n * @param roll defines the rotation around Z axis\n * @returns the new quaternion\n */\n static RotationYawPitchRoll(e, t, i) {\n const s = new se();\n return se.RotationYawPitchRollToRef(e, t, i, s), s;\n }\n /**\n * Creates a new rotation from the given Euler float angles (y, x, z) and stores it in the target quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#78\n * @param yaw defines the rotation around Y axis\n * @param pitch defines the rotation around X axis\n * @param roll defines the rotation around Z axis\n * @param result defines the target quaternion\n * @returns result input\n */\n static RotationYawPitchRollToRef(e, t, i, s) {\n const r = i * 0.5, n = t * 0.5, o = e * 0.5, l = Math.sin(r), h = Math.cos(r), c = Math.sin(n), u = Math.cos(n), d = Math.sin(o), f = Math.cos(o);\n return s._x = f * c * h + d * u * l, s._y = d * u * h - f * c * l, s._z = f * u * l - d * c * h, s._w = f * u * h + d * c * l, s._isDirty = !0, s;\n }\n /**\n * Creates a new quaternion from the given Euler float angles expressed in z-x-z orientation\n * Example Playground https://playground.babylonjs.com/#L49EJ7#68\n * @param alpha defines the rotation around first axis\n * @param beta defines the rotation around second axis\n * @param gamma defines the rotation around third axis\n * @returns the new quaternion\n */\n static RotationAlphaBetaGamma(e, t, i) {\n const s = new se();\n return se.RotationAlphaBetaGammaToRef(e, t, i, s), s;\n }\n /**\n * Creates a new quaternion from the given Euler float angles expressed in z-x-z orientation and stores it in the target quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#69\n * @param alpha defines the rotation around first axis\n * @param beta defines the rotation around second axis\n * @param gamma defines the rotation around third axis\n * @param result defines the target quaternion\n * @returns result input\n */\n static RotationAlphaBetaGammaToRef(e, t, i, s) {\n const r = (i + e) * 0.5, n = (i - e) * 0.5, o = t * 0.5;\n return s._x = Math.cos(n) * Math.sin(o), s._y = Math.sin(n) * Math.sin(o), s._z = Math.sin(r) * Math.cos(o), s._w = Math.cos(r) * Math.cos(o), s._isDirty = !0, s;\n }\n /**\n * Creates a new quaternion containing the rotation value to reach the target (axis1, axis2, axis3) orientation as a rotated XYZ system (axis1, axis2 and axis3 are normalized during this operation)\n * Example Playground https://playground.babylonjs.com/#L49EJ7#75\n * @param axis1 defines the first axis\n * @param axis2 defines the second axis\n * @param axis3 defines the third axis\n * @returns the new quaternion\n */\n static RotationQuaternionFromAxis(e, t, i) {\n const s = new se(0, 0, 0, 0);\n return se.RotationQuaternionFromAxisToRef(e, t, i, s), s;\n }\n /**\n * Creates a rotation value to reach the target (axis1, axis2, axis3) orientation as a rotated XYZ system (axis1, axis2 and axis3 are normalized during this operation) and stores it in the target quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#76\n * @param axis1 defines the first axis\n * @param axis2 defines the second axis\n * @param axis3 defines the third axis\n * @param ref defines the target quaternion\n * @returns result input\n */\n static RotationQuaternionFromAxisToRef(e, t, i, s) {\n const r = ke.Matrix[0];\n return O.FromXYZAxesToRef(e.normalize(), t.normalize(), i.normalize(), r), se.FromRotationMatrixToRef(r, s), s;\n }\n /**\n * Creates a new rotation value to orient an object to look towards the given forward direction, the up direction being oriented like \"up\".\n * This function works in left handed mode\n * Example Playground https://playground.babylonjs.com/#L49EJ7#96\n * @param forward defines the forward direction - Must be normalized and orthogonal to up.\n * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.\n * @returns A new quaternion oriented toward the specified forward and up.\n */\n static FromLookDirectionLH(e, t) {\n const i = new se();\n return se.FromLookDirectionLHToRef(e, t, i), i;\n }\n /**\n * Creates a new rotation value to orient an object to look towards the given forward direction with the up direction being oriented like \"up\", and stores it in the target quaternion.\n * This function works in left handed mode\n * Example Playground https://playground.babylonjs.com/#L49EJ7#97\n * @param forward defines the forward direction - Must be normalized and orthogonal to up.\n * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.\n * @param ref defines the target quaternion.\n * @returns result input\n */\n static FromLookDirectionLHToRef(e, t, i) {\n const s = ke.Matrix[0];\n return O.LookDirectionLHToRef(e, t, s), se.FromRotationMatrixToRef(s, i), i;\n }\n /**\n * Creates a new rotation value to orient an object to look towards the given forward direction, the up direction being oriented like \"up\".\n * This function works in right handed mode\n * Example Playground https://playground.babylonjs.com/#L49EJ7#98\n * @param forward defines the forward direction - Must be normalized and orthogonal to up.\n * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.\n * @returns A new quaternion oriented toward the specified forward and up.\n */\n static FromLookDirectionRH(e, t) {\n const i = new se();\n return se.FromLookDirectionRHToRef(e, t, i), i;\n }\n /**\n * Creates a new rotation value to orient an object to look towards the given forward direction with the up direction being oriented like \"up\", and stores it in the target quaternion.\n * This function works in right handed mode\n * Example Playground https://playground.babylonjs.com/#L49EJ7#105\n * @param forward defines the forward direction - Must be normalized and orthogonal to up.\n * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.\n * @param ref defines the target quaternion.\n * @returns result input\n */\n static FromLookDirectionRHToRef(e, t, i) {\n const s = ke.Matrix[0];\n return O.LookDirectionRHToRef(e, t, s), se.FromRotationMatrixToRef(s, i);\n }\n /**\n * Interpolates between two quaternions\n * Example Playground https://playground.babylonjs.com/#L49EJ7#79\n * @param left defines first quaternion\n * @param right defines second quaternion\n * @param amount defines the gradient to use\n * @returns the new interpolated quaternion\n */\n static Slerp(e, t, i) {\n const s = se.Identity();\n return se.SlerpToRef(e, t, i, s), s;\n }\n /**\n * Interpolates between two quaternions and stores it into a target quaternion\n * Example Playground https://playground.babylonjs.com/#L49EJ7#92\n * @param left defines first quaternion\n * @param right defines second quaternion\n * @param amount defines the gradient to use\n * @param result defines the target quaternion\n * @returns result input\n */\n static SlerpToRef(e, t, i, s) {\n let r, n, o = e._x * t._x + e._y * t._y + e._z * t._z + e._w * t._w, l = !1;\n if (o < 0 && (l = !0, o = -o), o > 0.999999)\n n = 1 - i, r = l ? -i : i;\n else {\n const h = Math.acos(o), c = 1 / Math.sin(h);\n n = Math.sin((1 - i) * h) * c, r = l ? -Math.sin(i * h) * c : Math.sin(i * h) * c;\n }\n return s._x = n * e._x + r * t._x, s._y = n * e._y + r * t._y, s._z = n * e._z + r * t._z, s._w = n * e._w + r * t._w, s._isDirty = !0, s;\n }\n /**\n * Interpolate between two quaternions using Hermite interpolation\n * Example Playground https://playground.babylonjs.com/#L49EJ7#47\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/drawCurves#hermite-quaternion-spline\n * @param value1 defines first quaternion\n * @param tangent1 defines the incoming tangent\n * @param value2 defines second quaternion\n * @param tangent2 defines the outgoing tangent\n * @param amount defines the target quaternion\n * @returns the new interpolated quaternion\n */\n static Hermite(e, t, i, s, r) {\n const n = r * r, o = r * n, l = 2 * o - 3 * n + 1, h = -2 * o + 3 * n, c = o - 2 * n + r, u = o - n, d = e._x * l + i._x * h + t._x * c + s._x * u, f = e._y * l + i._y * h + t._y * c + s._y * u, p = e._z * l + i._z * h + t._z * c + s._z * u, _ = e._w * l + i._w * h + t._w * c + s._w * u;\n return new se(d, f, p, _);\n }\n /**\n * Returns a new Quaternion which is the 1st derivative of the Hermite spline defined by the quaternions \"value1\", \"value2\", \"tangent1\", \"tangent2\".\n * Example Playground https://playground.babylonjs.com/#L49EJ7#48\n * @param value1 defines the first control point\n * @param tangent1 defines the first tangent\n * @param value2 defines the second control point\n * @param tangent2 defines the second tangent\n * @param time define where the derivative must be done\n * @returns 1st derivative\n */\n static Hermite1stDerivative(e, t, i, s, r) {\n const n = new se();\n return this.Hermite1stDerivativeToRef(e, t, i, s, r, n), n;\n }\n /**\n * Update a Quaternion with the 1st derivative of the Hermite spline defined by the quaternions \"value1\", \"value2\", \"tangent1\", \"tangent2\".\n * Example Playground https://playground.babylonjs.com/#L49EJ7#49\n * @param value1 defines the first control point\n * @param tangent1 defines the first tangent\n * @param value2 defines the second control point\n * @param tangent2 defines the second tangent\n * @param time define where the derivative must be done\n * @param result define where to store the derivative\n * @returns result input\n */\n static Hermite1stDerivativeToRef(e, t, i, s, r, n) {\n const o = r * r;\n return n._x = (o - r) * 6 * e._x + (3 * o - 4 * r + 1) * t._x + (-o + r) * 6 * i._x + (3 * o - 2 * r) * s._x, n._y = (o - r) * 6 * e._y + (3 * o - 4 * r + 1) * t._y + (-o + r) * 6 * i._y + (3 * o - 2 * r) * s._y, n._z = (o - r) * 6 * e._z + (3 * o - 4 * r + 1) * t._z + (-o + r) * 6 * i._z + (3 * o - 2 * r) * s._z, n._w = (o - r) * 6 * e._w + (3 * o - 4 * r + 1) * t._w + (-o + r) * 6 * i._w + (3 * o - 2 * r) * s._w, n._isDirty = !0, n;\n }\n /**\n * Returns a new Quaternion as the normalization of the given Quaternion\n * @param quat defines the Quaternion to normalize\n * @returns the new Quaternion\n */\n static Normalize(e) {\n const t = se.Zero();\n return se.NormalizeToRef(e, t), t;\n }\n /**\n * Sets the given Quaternion \"result\" with the normalization of the given first Quaternion\n * @param quat defines the Quaternion to normalize\n * @param result defines the Quaternion where to store the result\n * @returns result input\n */\n static NormalizeToRef(e, t) {\n return e.normalizeToRef(t), t;\n }\n /**\n * Returns a new Quaternion set with the coordinates of \"value\", if the quaternion \"value\" is in the cube defined by the quaternions \"min\" and \"max\"\n * If a coordinate value of \"value\" is lower than one of the \"min\" coordinate, then this \"value\" coordinate is set with the \"min\" one\n * If a coordinate value of \"value\" is greater than one of the \"max\" coordinate, then this \"value\" coordinate is set with the \"max\" one\n * @param value defines the current value\n * @param min defines the lower range value\n * @param max defines the upper range value\n * @returns the new Quaternion\n */\n static Clamp(e, t, i) {\n const s = new se();\n return se.ClampToRef(e, t, i, s), s;\n }\n /**\n * Sets the given quaternion \"result\" with the coordinates of \"value\", if the quaternion \"value\" is in the cube defined by the quaternions \"min\" and \"max\"\n * If a coordinate value of \"value\" is lower than one of the \"min\" coordinate, then this \"value\" coordinate is set with the \"min\" one\n * If a coordinate value of \"value\" is greater than one of the \"max\" coordinate, then this \"value\" coordinate is set with the \"max\" one\n * @param value defines the current value\n * @param min defines the lower range value\n * @param max defines the upper range value\n * @param result defines the Quaternion where to store the result\n * @returns result input\n */\n static ClampToRef(e, t, i, s) {\n return s.copyFromFloats(Vi(e.x, t.x, i.x), Vi(e.y, t.y, i.y), Vi(e.z, t.z, i.z), Vi(e.w, t.w, i.w));\n }\n /**\n * Returns a new Quaternion with random values between min and max\n * @param min the minimum random value\n * @param max the maximum random value\n * @returns a Quaternion with random values between min and max\n */\n static Random(e = 0, t = 1) {\n return new se(Wt(e, t), Wt(e, t), Wt(e, t), Wt(e, t));\n }\n /**\n * Sets a Quaternion with random values between min and max\n * @param min the minimum random value\n * @param max the maximum random value\n * @param ref the ref to store the values in\n * @returns the ref with random values between min and max\n */\n static RandomToRef(e = 0, t = 1, i) {\n return i.copyFromFloats(Wt(e, t), Wt(e, t), Wt(e, t), Wt(e, t));\n }\n /**\n * Do not use\n * @internal\n */\n static Minimize() {\n throw new ReferenceError(\"Quaternion.Minimize does not make sense\");\n }\n /**\n * Do not use\n * @internal\n */\n static Maximize() {\n throw new ReferenceError(\"Quaternion.Maximize does not make sense\");\n }\n /**\n * Returns the distance (float) between the quaternions \"value1\" and \"value2\".\n * @param value1 value to calulate the distance between\n * @param value2 value to calulate the distance between\n * @returns the distance between the two quaternions\n */\n static Distance(e, t) {\n return Math.sqrt(se.DistanceSquared(e, t));\n }\n /**\n * Returns the squared distance (float) between the quaternions \"value1\" and \"value2\".\n * @param value1 value to calulate the distance between\n * @param value2 value to calulate the distance between\n * @returns the distance between the two quaternions squared\n */\n static DistanceSquared(e, t) {\n const i = e.x - t.x, s = e.y - t.y, r = e.z - t.z, n = e.w - t.w;\n return i * i + s * s + r * r + n * n;\n }\n /**\n * Returns a new Quaternion located at the center between the quaternions \"value1\" and \"value2\".\n * @param value1 value to calulate the center between\n * @param value2 value to calulate the center between\n * @returns the center between the two quaternions\n */\n static Center(e, t) {\n return se.CenterToRef(e, t, se.Zero());\n }\n /**\n * Gets the center of the quaternions \"value1\" and \"value2\" and stores the result in the quaternion \"ref\"\n * @param value1 defines first quaternion\n * @param value2 defines second quaternion\n * @param ref defines third quaternion\n * @returns ref\n */\n static CenterToRef(e, t, i) {\n return i.copyFromFloats((e.x + t.x) / 2, (e.y + t.y) / 2, (e.z + t.z) / 2, (e.w + t.w) / 2);\n }\n}\nObject.defineProperties(se.prototype, {\n dimension: { value: [4] },\n rank: { value: 1 }\n});\nclass O {\n /**\n * Gets the precision of matrix computations\n */\n static get Use64Bits() {\n return ks.MatrixUse64Bits;\n }\n /**\n * Gets the internal data of the matrix\n */\n get m() {\n return this._m;\n }\n /**\n * Update the updateFlag to indicate that the matrix has been updated\n */\n markAsUpdated() {\n this.updateFlag = O._UpdateFlagSeed++, this._isIdentity = !1, this._isIdentity3x2 = !1, this._isIdentityDirty = !0, this._isIdentity3x2Dirty = !0;\n }\n _updateIdentityStatus(e, t = !1, i = !1, s = !0) {\n this._isIdentity = e, this._isIdentity3x2 = e || i, this._isIdentityDirty = this._isIdentity ? !1 : t, this._isIdentity3x2Dirty = this._isIdentity3x2 ? !1 : s;\n }\n /**\n * Creates an empty matrix (filled with zeros)\n */\n constructor() {\n this._isIdentity = !1, this._isIdentityDirty = !0, this._isIdentity3x2 = !0, this._isIdentity3x2Dirty = !0, this.updateFlag = -1, ks.MatrixTrackPrecisionChange && ks.MatrixTrackedMatrices.push(this), this._m = new ks.MatrixCurrentType(16), this.markAsUpdated();\n }\n // Properties\n /**\n * Check if the current matrix is identity\n * @returns true is the matrix is the identity matrix\n */\n isIdentity() {\n if (this._isIdentityDirty) {\n this._isIdentityDirty = !1;\n const e = this._m;\n this._isIdentity = e[0] === 1 && e[1] === 0 && e[2] === 0 && e[3] === 0 && e[4] === 0 && e[5] === 1 && e[6] === 0 && e[7] === 0 && e[8] === 0 && e[9] === 0 && e[10] === 1 && e[11] === 0 && e[12] === 0 && e[13] === 0 && e[14] === 0 && e[15] === 1;\n }\n return this._isIdentity;\n }\n /**\n * Check if the current matrix is identity as a texture matrix (3x2 store in 4x4)\n * @returns true is the matrix is the identity matrix\n */\n isIdentityAs3x2() {\n return this._isIdentity3x2Dirty && (this._isIdentity3x2Dirty = !1, this._m[0] !== 1 || this._m[5] !== 1 || this._m[15] !== 1 ? this._isIdentity3x2 = !1 : this._m[1] !== 0 || this._m[2] !== 0 || this._m[3] !== 0 || this._m[4] !== 0 || this._m[6] !== 0 || this._m[7] !== 0 || this._m[8] !== 0 || this._m[9] !== 0 || this._m[10] !== 0 || this._m[11] !== 0 || this._m[12] !== 0 || this._m[13] !== 0 || this._m[14] !== 0 ? this._isIdentity3x2 = !1 : this._isIdentity3x2 = !0), this._isIdentity3x2;\n }\n /**\n * Gets the determinant of the matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#34\n * @returns the matrix determinant\n */\n determinant() {\n if (this._isIdentity === !0)\n return 1;\n const e = this._m, t = e[0], i = e[1], s = e[2], r = e[3], n = e[4], o = e[5], l = e[6], h = e[7], c = e[8], u = e[9], d = e[10], f = e[11], p = e[12], _ = e[13], m = e[14], x = e[15], v = d * x - m * f, T = u * x - _ * f, E = u * m - _ * d, b = c * x - p * f, S = c * m - d * p, C = c * _ - p * u, P = +(o * v - l * T + h * E), N = -(n * v - l * b + h * S), F = +(n * T - o * b + h * C), $ = -(n * E - o * S + l * C);\n return t * P + i * N + s * F + r * $;\n }\n // Methods\n /**\n * Gets a string with the Matrix values\n * @returns a string with the Matrix values\n */\n toString() {\n return `{${this.m[0]}, ${this.m[1]}, ${this.m[2]}, ${this.m[3]}\n${this.m[4]}, ${this.m[5]}, ${this.m[6]}, ${this.m[7]}\n${this.m[8]}, ${this.m[9]}, ${this.m[10]}, ${this.m[11]}\n${this.m[12]}, ${this.m[13]}, ${this.m[14]}, ${this.m[15]}}`;\n }\n toArray(e = null, t = 0) {\n if (!e)\n return this._m;\n const i = this._m;\n for (let s = 0; s < 16; s++)\n e[t + s] = i[s];\n return this;\n }\n /**\n * Returns the matrix as a Float32Array or Array\n * Example Playground - https://playground.babylonjs.com/#AV9X17#114\n * @returns the matrix underlying array.\n */\n asArray() {\n return this._m;\n }\n fromArray(e, t = 0) {\n return O.FromArrayToRef(e, t, this);\n }\n copyFromFloats(...e) {\n return O.FromArrayToRef(e, 0, this);\n }\n set(...e) {\n const t = this._m;\n for (let i = 0; i < 16; i++)\n t[i] = e[i];\n return this.markAsUpdated(), this;\n }\n setAll(e) {\n const t = this._m;\n for (let i = 0; i < 16; i++)\n t[i] = e;\n return this.markAsUpdated(), this;\n }\n /**\n * Inverts the current matrix in place\n * Example Playground - https://playground.babylonjs.com/#AV9X17#118\n * @returns the current inverted matrix\n */\n invert() {\n return this.invertToRef(this), this;\n }\n /**\n * Sets all the matrix elements to zero\n * @returns the current matrix\n */\n reset() {\n return O.FromValuesToRef(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, this), this._updateIdentityStatus(!1), this;\n }\n /**\n * Adds the current matrix with a second one\n * Example Playground - https://playground.babylonjs.com/#AV9X17#44\n * @param other defines the matrix to add\n * @returns a new matrix as the addition of the current matrix and the given one\n */\n add(e) {\n const t = new O();\n return this.addToRef(e, t), t;\n }\n /**\n * Sets the given matrix \"result\" to the addition of the current matrix and the given one\n * Example Playground - https://playground.babylonjs.com/#AV9X17#45\n * @param other defines the matrix to add\n * @param result defines the target matrix\n * @returns result input\n */\n addToRef(e, t) {\n const i = this._m, s = t._m, r = e.m;\n for (let n = 0; n < 16; n++)\n s[n] = i[n] + r[n];\n return t.markAsUpdated(), t;\n }\n /**\n * Adds in place the given matrix to the current matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#46\n * @param other defines the second operand\n * @returns the current updated matrix\n */\n addToSelf(e) {\n const t = this._m, i = e.m;\n return t[0] += i[0], t[1] += i[1], t[2] += i[2], t[3] += i[3], t[4] += i[4], t[5] += i[5], t[6] += i[6], t[7] += i[7], t[8] += i[8], t[9] += i[9], t[10] += i[10], t[11] += i[11], t[12] += i[12], t[13] += i[13], t[14] += i[14], t[15] += i[15], this.markAsUpdated(), this;\n }\n addInPlace(e) {\n const t = this._m, i = e.m;\n for (let s = 0; s < 16; s++)\n t[s] += i[s];\n return this.markAsUpdated(), this;\n }\n addInPlaceFromFloats(...e) {\n const t = this._m;\n for (let i = 0; i < 16; i++)\n t[i] += e[i];\n return this.markAsUpdated(), this;\n }\n subtract(e) {\n const t = this._m, i = e.m;\n for (let s = 0; s < 16; s++)\n t[s] -= i[s];\n return this.markAsUpdated(), this;\n }\n subtractToRef(e, t) {\n const i = this._m, s = e.m, r = t._m;\n for (let n = 0; n < 16; n++)\n r[n] = i[n] - s[n];\n return t.markAsUpdated(), t;\n }\n subtractInPlace(e) {\n const t = this._m, i = e.m;\n for (let s = 0; s < 16; s++)\n t[s] -= i[s];\n return this.markAsUpdated(), this;\n }\n subtractFromFloats(...e) {\n return this.subtractFromFloatsToRef(...e, new O());\n }\n subtractFromFloatsToRef(...e) {\n const t = e.pop(), i = this._m, s = t._m, r = e;\n for (let n = 0; n < 16; n++)\n s[n] = i[n] - r[n];\n return t.markAsUpdated(), t;\n }\n /**\n * Sets the given matrix to the current inverted Matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#119\n * @param other defines the target matrix\n * @returns result input\n */\n invertToRef(e) {\n if (this._isIdentity === !0)\n return O.IdentityToRef(e), e;\n const t = this._m, i = t[0], s = t[1], r = t[2], n = t[3], o = t[4], l = t[5], h = t[6], c = t[7], u = t[8], d = t[9], f = t[10], p = t[11], _ = t[12], m = t[13], x = t[14], v = t[15], T = f * v - x * p, E = d * v - m * p, b = d * x - m * f, S = u * v - _ * p, C = u * x - f * _, P = u * m - _ * d, N = +(l * T - h * E + c * b), F = -(o * T - h * S + c * C), $ = +(o * E - l * S + c * P), j = -(o * b - l * C + h * P), ne = i * N + s * F + r * $ + n * j;\n if (ne === 0)\n return e.copyFrom(this), e;\n const te = 1 / ne, le = h * v - x * c, _e = l * v - m * c, Se = l * x - m * h, Ie = o * v - _ * c, de = o * x - _ * h, Y = o * m - _ * l, M = h * p - f * c, k = l * p - d * c, W = l * f - d * h, V = o * p - u * c, K = o * f - u * h, ie = o * d - u * l, fe = -(s * T - r * E + n * b), pe = +(i * T - r * S + n * C), ve = -(i * E - s * S + n * P), Ue = +(i * b - s * C + r * P), ht = +(s * le - r * _e + n * Se), Ee = -(i * le - r * Ie + n * de), Je = +(i * _e - s * Ie + n * Y), St = -(i * Se - s * de + r * Y), Yt = -(s * M - r * k + n * W), yt = +(i * M - r * V + n * K), Ui = -(i * k - s * V + n * ie), is = +(i * W - s * K + r * ie);\n return O.FromValuesToRef(N * te, fe * te, ht * te, Yt * te, F * te, pe * te, Ee * te, yt * te, $ * te, ve * te, Je * te, Ui * te, j * te, Ue * te, St * te, is * te, e), e;\n }\n /**\n * add a value at the specified position in the current Matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#47\n * @param index the index of the value within the matrix. between 0 and 15.\n * @param value the value to be added\n * @returns the current updated matrix\n */\n addAtIndex(e, t) {\n return this._m[e] += t, this.markAsUpdated(), this;\n }\n /**\n * mutiply the specified position in the current Matrix by a value\n * @param index the index of the value within the matrix. between 0 and 15.\n * @param value the value to be added\n * @returns the current updated matrix\n */\n multiplyAtIndex(e, t) {\n return this._m[e] *= t, this.markAsUpdated(), this;\n }\n /**\n * Inserts the translation vector (using 3 floats) in the current matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#120\n * @param x defines the 1st component of the translation\n * @param y defines the 2nd component of the translation\n * @param z defines the 3rd component of the translation\n * @returns the current updated matrix\n */\n setTranslationFromFloats(e, t, i) {\n return this._m[12] = e, this._m[13] = t, this._m[14] = i, this.markAsUpdated(), this;\n }\n /**\n * Adds the translation vector (using 3 floats) in the current matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#20\n * Example Playground - https://playground.babylonjs.com/#AV9X17#48\n * @param x defines the 1st component of the translation\n * @param y defines the 2nd component of the translation\n * @param z defines the 3rd component of the translation\n * @returns the current updated matrix\n */\n addTranslationFromFloats(e, t, i) {\n return this._m[12] += e, this._m[13] += t, this._m[14] += i, this.markAsUpdated(), this;\n }\n /**\n * Inserts the translation vector in the current matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#121\n * @param vector3 defines the translation to insert\n * @returns the current updated matrix\n */\n setTranslation(e) {\n return this.setTranslationFromFloats(e._x, e._y, e._z);\n }\n /**\n * Gets the translation value of the current matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#122\n * @returns a new Vector3 as the extracted translation from the matrix\n */\n getTranslation() {\n return new g(this._m[12], this._m[13], this._m[14]);\n }\n /**\n * Fill a Vector3 with the extracted translation from the matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#123\n * @param result defines the Vector3 where to store the translation\n * @returns the current matrix\n */\n getTranslationToRef(e) {\n return e.x = this._m[12], e.y = this._m[13], e.z = this._m[14], e;\n }\n /**\n * Remove rotation and scaling part from the matrix\n * @returns the updated matrix\n */\n removeRotationAndScaling() {\n const e = this.m;\n return O.FromValuesToRef(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, e[12], e[13], e[14], e[15], this), this._updateIdentityStatus(e[12] === 0 && e[13] === 0 && e[14] === 0 && e[15] === 1), this;\n }\n /**\n * Copy the current matrix from the given one\n * Example Playground - https://playground.babylonjs.com/#AV9X17#21\n * @param other defines the source matrix\n * @returns the current updated matrix\n */\n copyFrom(e) {\n e.copyToArray(this._m);\n const t = e;\n return this.updateFlag = t.updateFlag, this._updateIdentityStatus(t._isIdentity, t._isIdentityDirty, t._isIdentity3x2, t._isIdentity3x2Dirty), this;\n }\n /**\n * Populates the given array from the starting index with the current matrix values\n * @param array defines the target array\n * @param offset defines the offset in the target array where to start storing values\n * @returns the current matrix\n */\n copyToArray(e, t = 0) {\n const i = this._m;\n return e[t] = i[0], e[t + 1] = i[1], e[t + 2] = i[2], e[t + 3] = i[3], e[t + 4] = i[4], e[t + 5] = i[5], e[t + 6] = i[6], e[t + 7] = i[7], e[t + 8] = i[8], e[t + 9] = i[9], e[t + 10] = i[10], e[t + 11] = i[11], e[t + 12] = i[12], e[t + 13] = i[13], e[t + 14] = i[14], e[t + 15] = i[15], this;\n }\n /**\n * Multiply two matrices\n * Example Playground - https://playground.babylonjs.com/#AV9X17#15\n * A.multiply(B) means apply B to A so result is B x A\n * @param other defines the second operand\n * @returns a new matrix set with the multiplication result of the current Matrix and the given one\n */\n multiply(e) {\n const t = new O();\n return this.multiplyToRef(e, t), t;\n }\n /**\n * This method performs component-by-component in-place multiplication, rather than true matrix multiplication.\n * Use multiply or multiplyToRef for matrix multiplication.\n * @param other defines the second operand\n * @returns the current updated matrix\n */\n multiplyInPlace(e) {\n const t = this._m, i = e.m;\n for (let s = 0; s < 16; s++)\n t[s] *= i[s];\n return this.markAsUpdated(), this;\n }\n /**\n * This method performs a component-by-component multiplication of the current matrix with the array of transmitted numbers.\n * Use multiply or multiplyToRef for matrix multiplication.\n * @param floats defines the array of numbers to multiply the matrix by\n * @returns the current updated matrix\n */\n multiplyByFloats(...e) {\n const t = this._m;\n for (let i = 0; i < 16; i++)\n t[i] *= e[i];\n return this.markAsUpdated(), this;\n }\n /**\n * Multiples the current matrix by the given floats and stores them in the given ref\n * @param args The floats and ref\n * @returns The updated ref\n */\n multiplyByFloatsToRef(...e) {\n const t = e.pop(), i = this._m, s = t._m, r = e;\n for (let n = 0; n < 16; n++)\n s[n] = i[n] * r[n];\n return t.markAsUpdated(), t;\n }\n /**\n * Sets the given matrix \"result\" with the multiplication result of the current Matrix and the given one\n * A.multiplyToRef(B, R) means apply B to A and store in R and R = B x A\n * Example Playground - https://playground.babylonjs.com/#AV9X17#16\n * @param other defines the second operand\n * @param result defines the matrix where to store the multiplication\n * @returns result input\n */\n multiplyToRef(e, t) {\n return this._isIdentity ? (t.copyFrom(e), t) : e._isIdentity ? (t.copyFrom(this), t) : (this.multiplyToArray(e, t._m, 0), t.markAsUpdated(), t);\n }\n /**\n * Sets the Float32Array \"result\" from the given index \"offset\" with the multiplication of the current matrix and the given one\n * @param other defines the second operand\n * @param result defines the array where to store the multiplication\n * @param offset defines the offset in the target array where to start storing values\n * @returns the current matrix\n */\n multiplyToArray(e, t, i) {\n const s = this._m, r = e.m, n = s[0], o = s[1], l = s[2], h = s[3], c = s[4], u = s[5], d = s[6], f = s[7], p = s[8], _ = s[9], m = s[10], x = s[11], v = s[12], T = s[13], E = s[14], b = s[15], S = r[0], C = r[1], P = r[2], N = r[3], F = r[4], $ = r[5], j = r[6], ne = r[7], te = r[8], le = r[9], _e = r[10], Se = r[11], Ie = r[12], de = r[13], Y = r[14], M = r[15];\n return t[i] = n * S + o * F + l * te + h * Ie, t[i + 1] = n * C + o * $ + l * le + h * de, t[i + 2] = n * P + o * j + l * _e + h * Y, t[i + 3] = n * N + o * ne + l * Se + h * M, t[i + 4] = c * S + u * F + d * te + f * Ie, t[i + 5] = c * C + u * $ + d * le + f * de, t[i + 6] = c * P + u * j + d * _e + f * Y, t[i + 7] = c * N + u * ne + d * Se + f * M, t[i + 8] = p * S + _ * F + m * te + x * Ie, t[i + 9] = p * C + _ * $ + m * le + x * de, t[i + 10] = p * P + _ * j + m * _e + x * Y, t[i + 11] = p * N + _ * ne + m * Se + x * M, t[i + 12] = v * S + T * F + E * te + b * Ie, t[i + 13] = v * C + T * $ + E * le + b * de, t[i + 14] = v * P + T * j + E * _e + b * Y, t[i + 15] = v * N + T * ne + E * Se + b * M, this;\n }\n divide(e) {\n return this.divideToRef(e, new O());\n }\n divideToRef(e, t) {\n const i = this._m, s = e.m, r = t._m;\n for (let n = 0; n < 16; n++)\n r[n] = i[n] / s[n];\n return t.markAsUpdated(), t;\n }\n divideInPlace(e) {\n const t = this._m, i = e.m;\n for (let s = 0; s < 16; s++)\n t[s] /= i[s];\n return this.markAsUpdated(), this;\n }\n minimizeInPlace(e) {\n const t = this._m, i = e.m;\n for (let s = 0; s < 16; s++)\n t[s] = Math.min(t[s], i[s]);\n return this.markAsUpdated(), this;\n }\n minimizeInPlaceFromFloats(...e) {\n const t = this._m;\n for (let i = 0; i < 16; i++)\n t[i] = Math.min(t[i], e[i]);\n return this.markAsUpdated(), this;\n }\n maximizeInPlace(e) {\n const t = this._m, i = e.m;\n for (let s = 0; s < 16; s++)\n t[s] = Math.min(t[s], i[s]);\n return this.markAsUpdated(), this;\n }\n maximizeInPlaceFromFloats(...e) {\n const t = this._m;\n for (let i = 0; i < 16; i++)\n t[i] = Math.min(t[i], e[i]);\n return this.markAsUpdated(), this;\n }\n negate() {\n return this.negateToRef(new O());\n }\n negateInPlace() {\n const e = this._m;\n for (let t = 0; t < 16; t++)\n e[t] = -e[t];\n return this.markAsUpdated(), this;\n }\n negateToRef(e) {\n const t = this._m, i = e._m;\n for (let s = 0; s < 16; s++)\n i[s] = -t[s];\n return e.markAsUpdated(), e;\n }\n /**\n * Check equality between this matrix and a second one\n * @param value defines the second matrix to compare\n * @returns true is the current matrix and the given one values are strictly equal\n */\n equals(e) {\n const t = e;\n if (!t)\n return !1;\n if ((this._isIdentity || t._isIdentity) && !this._isIdentityDirty && !t._isIdentityDirty)\n return this._isIdentity && t._isIdentity;\n const i = this.m, s = t.m;\n return i[0] === s[0] && i[1] === s[1] && i[2] === s[2] && i[3] === s[3] && i[4] === s[4] && i[5] === s[5] && i[6] === s[6] && i[7] === s[7] && i[8] === s[8] && i[9] === s[9] && i[10] === s[10] && i[11] === s[11] && i[12] === s[12] && i[13] === s[13] && i[14] === s[14] && i[15] === s[15];\n }\n equalsWithEpsilon(e, t = 0) {\n const i = this._m, s = e.m;\n for (let r = 0; r < 16; r++)\n if (!nr(i[r], s[r], t))\n return !1;\n return !0;\n }\n equalsToFloats(...e) {\n const t = this._m;\n for (let i = 0; i < 16; i++)\n if (t[i] != e[i])\n return !1;\n return !0;\n }\n floor() {\n return this.floorToRef(new O());\n }\n floorToRef(e) {\n const t = this._m, i = e._m;\n for (let s = 0; s < 16; s++)\n i[s] = Math.floor(t[s]);\n return e.markAsUpdated(), e;\n }\n fract() {\n return this.fractToRef(new O());\n }\n fractToRef(e) {\n const t = this._m, i = e._m;\n for (let s = 0; s < 16; s++)\n i[s] = t[s] - Math.floor(t[s]);\n return e.markAsUpdated(), e;\n }\n /**\n * Clone the current matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#18\n * @returns a new matrix from the current matrix\n */\n clone() {\n const e = new O();\n return e.copyFrom(this), e;\n }\n /**\n * Returns the name of the current matrix class\n * @returns the string \"Matrix\"\n */\n getClassName() {\n return \"Matrix\";\n }\n /**\n * Gets the hash code of the current matrix\n * @returns the hash code\n */\n getHashCode() {\n let e = Gr(this._m[0]);\n for (let t = 1; t < 16; t++)\n e = e * 397 ^ Gr(this._m[t]);\n return e;\n }\n /**\n * Decomposes the current Matrix into a translation, rotation and scaling components of the provided node\n * Example Playground - https://playground.babylonjs.com/#AV9X17#13\n * @param node the node to decompose the matrix to\n * @returns true if operation was successful\n */\n decomposeToTransformNode(e) {\n return e.rotationQuaternion = e.rotationQuaternion || new se(), this.decompose(e.scaling, e.rotationQuaternion, e.position);\n }\n /**\n * Decomposes the current Matrix into a translation, rotation and scaling components\n * Example Playground - https://playground.babylonjs.com/#AV9X17#12\n * @param scale defines the scale vector3 given as a reference to update\n * @param rotation defines the rotation quaternion given as a reference to update\n * @param translation defines the translation vector3 given as a reference to update\n * @param preserveScalingNode Use scaling sign coming from this node. Otherwise scaling sign might change.\n * @param useAbsoluteScaling Use scaling sign coming from this absoluteScaling when true or scaling otherwise.\n * @returns true if operation was successful\n */\n decompose(e, t, i, s, r = !0) {\n if (this._isIdentity)\n return i && i.setAll(0), e && e.setAll(1), t && t.copyFromFloats(0, 0, 0, 1), !0;\n const n = this._m;\n if (i && i.copyFromFloats(n[12], n[13], n[14]), e = e || ke.Vector3[0], e.x = Math.sqrt(n[0] * n[0] + n[1] * n[1] + n[2] * n[2]), e.y = Math.sqrt(n[4] * n[4] + n[5] * n[5] + n[6] * n[6]), e.z = Math.sqrt(n[8] * n[8] + n[9] * n[9] + n[10] * n[10]), s) {\n const o = (r ? s.absoluteScaling.x : s.scaling.x) < 0 ? -1 : 1, l = (r ? s.absoluteScaling.y : s.scaling.y) < 0 ? -1 : 1, h = (r ? s.absoluteScaling.z : s.scaling.z) < 0 ? -1 : 1;\n e.x *= o, e.y *= l, e.z *= h;\n } else\n this.determinant() <= 0 && (e.y *= -1);\n if (e._x === 0 || e._y === 0 || e._z === 0)\n return t && t.copyFromFloats(0, 0, 0, 1), !1;\n if (t) {\n const o = 1 / e._x, l = 1 / e._y, h = 1 / e._z;\n O.FromValuesToRef(n[0] * o, n[1] * o, n[2] * o, 0, n[4] * l, n[5] * l, n[6] * l, 0, n[8] * h, n[9] * h, n[10] * h, 0, 0, 0, 0, 1, ke.Matrix[0]), se.FromRotationMatrixToRef(ke.Matrix[0], t);\n }\n return !0;\n }\n /**\n * Gets specific row of the matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#36\n * @param index defines the number of the row to get\n * @returns the index-th row of the current matrix as a new Vector4\n */\n getRow(e) {\n if (e < 0 || e > 3)\n return null;\n const t = e * 4;\n return new Ne(this._m[t + 0], this._m[t + 1], this._m[t + 2], this._m[t + 3]);\n }\n /**\n * Gets specific row of the matrix to ref\n * Example Playground - https://playground.babylonjs.com/#AV9X17#36\n * @param index defines the number of the row to get\n * @param rowVector vector to store the index-th row of the current matrix\n * @returns result input\n */\n getRowToRef(e, t) {\n if (e >= 0 && e <= 3) {\n const i = e * 4;\n t.x = this._m[i + 0], t.y = this._m[i + 1], t.z = this._m[i + 2], t.w = this._m[i + 3];\n }\n return t;\n }\n /**\n * Sets the index-th row of the current matrix to the vector4 values\n * Example Playground - https://playground.babylonjs.com/#AV9X17#36\n * @param index defines the number of the row to set\n * @param row defines the target vector4\n * @returns the updated current matrix\n */\n setRow(e, t) {\n return this.setRowFromFloats(e, t.x, t.y, t.z, t.w);\n }\n /**\n * Compute the transpose of the matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#40\n * @returns the new transposed matrix\n */\n transpose() {\n const e = new O();\n return O.TransposeToRef(this, e), e;\n }\n /**\n * Compute the transpose of the matrix and store it in a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#41\n * @param result defines the target matrix\n * @returns result input\n */\n transposeToRef(e) {\n return O.TransposeToRef(this, e), e;\n }\n /**\n * Sets the index-th row of the current matrix with the given 4 x float values\n * Example Playground - https://playground.babylonjs.com/#AV9X17#36\n * @param index defines the row index\n * @param x defines the x component to set\n * @param y defines the y component to set\n * @param z defines the z component to set\n * @param w defines the w component to set\n * @returns the updated current matrix\n */\n setRowFromFloats(e, t, i, s, r) {\n if (e < 0 || e > 3)\n return this;\n const n = e * 4;\n return this._m[n + 0] = t, this._m[n + 1] = i, this._m[n + 2] = s, this._m[n + 3] = r, this.markAsUpdated(), this;\n }\n /**\n * Compute a new matrix set with the current matrix values multiplied by scale (float)\n * @param scale defines the scale factor\n * @returns a new matrix\n */\n scale(e) {\n const t = new O();\n return this.scaleToRef(e, t), t;\n }\n /**\n * Scale the current matrix values by a factor to a given result matrix\n * @param scale defines the scale factor\n * @param result defines the matrix to store the result\n * @returns result input\n */\n scaleToRef(e, t) {\n for (let i = 0; i < 16; i++)\n t._m[i] = this._m[i] * e;\n return t.markAsUpdated(), t;\n }\n /**\n * Scale the current matrix values by a factor and add the result to a given matrix\n * @param scale defines the scale factor\n * @param result defines the Matrix to store the result\n * @returns result input\n */\n scaleAndAddToRef(e, t) {\n for (let i = 0; i < 16; i++)\n t._m[i] += this._m[i] * e;\n return t.markAsUpdated(), t;\n }\n scaleInPlace(e) {\n const t = this._m;\n for (let i = 0; i < 16; i++)\n t[i] *= e;\n return this.markAsUpdated(), this;\n }\n /**\n * Writes to the given matrix a normal matrix, computed from this one (using values from identity matrix for fourth row and column).\n * Example Playground - https://playground.babylonjs.com/#AV9X17#17\n * @param ref matrix to store the result\n * @returns the reference matrix\n */\n toNormalMatrix(e) {\n const t = ke.Matrix[0];\n this.invertToRef(t), t.transposeToRef(e);\n const i = e._m;\n return O.FromValuesToRef(i[0], i[1], i[2], 0, i[4], i[5], i[6], 0, i[8], i[9], i[10], 0, 0, 0, 0, 1, e), e;\n }\n /**\n * Gets only rotation part of the current matrix\n * @returns a new matrix sets to the extracted rotation matrix from the current one\n */\n getRotationMatrix() {\n const e = new O();\n return this.getRotationMatrixToRef(e), e;\n }\n /**\n * Extracts the rotation matrix from the current one and sets it as the given \"result\"\n * @param result defines the target matrix to store data to\n * @returns result input\n */\n getRotationMatrixToRef(e) {\n const t = ke.Vector3[0];\n if (!this.decompose(t))\n return O.IdentityToRef(e), e;\n const i = this._m, s = 1 / t._x, r = 1 / t._y, n = 1 / t._z;\n return O.FromValuesToRef(i[0] * s, i[1] * s, i[2] * s, 0, i[4] * r, i[5] * r, i[6] * r, 0, i[8] * n, i[9] * n, i[10] * n, 0, 0, 0, 0, 1, e), e;\n }\n /**\n * Toggles model matrix from being right handed to left handed in place and vice versa\n * @returns the current updated matrix\n */\n toggleModelMatrixHandInPlace() {\n const e = this._m;\n return e[2] *= -1, e[6] *= -1, e[8] *= -1, e[9] *= -1, e[14] *= -1, this.markAsUpdated(), this;\n }\n /**\n * Toggles projection matrix from being right handed to left handed in place and vice versa\n * @returns the current updated matrix\n */\n toggleProjectionMatrixHandInPlace() {\n const e = this._m;\n return e[8] *= -1, e[9] *= -1, e[10] *= -1, e[11] *= -1, this.markAsUpdated(), this;\n }\n // Statics\n /**\n * Creates a matrix from an array\n * Example Playground - https://playground.babylonjs.com/#AV9X17#42\n * @param array defines the source array\n * @param offset defines an offset in the source array\n * @returns a new Matrix set from the starting index of the given array\n */\n static FromArray(e, t = 0) {\n const i = new O();\n return O.FromArrayToRef(e, t, i), i;\n }\n /**\n * Copy the content of an array into a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#43\n * @param array defines the source array\n * @param offset defines an offset in the source array\n * @param result defines the target matrix\n * @returns result input\n */\n static FromArrayToRef(e, t, i) {\n for (let s = 0; s < 16; s++)\n i._m[s] = e[s + t];\n return i.markAsUpdated(), i;\n }\n /**\n * Stores an array into a matrix after having multiplied each component by a given factor\n * Example Playground - https://playground.babylonjs.com/#AV9X17#50\n * @param array defines the source array\n * @param offset defines the offset in the source array\n * @param scale defines the scaling factor\n * @param result defines the target matrix\n * @returns result input\n */\n static FromFloat32ArrayToRefScaled(e, t, i, s) {\n return s._m[0] = e[0 + t] * i, s._m[1] = e[1 + t] * i, s._m[2] = e[2 + t] * i, s._m[3] = e[3 + t] * i, s._m[4] = e[4 + t] * i, s._m[5] = e[5 + t] * i, s._m[6] = e[6 + t] * i, s._m[7] = e[7 + t] * i, s._m[8] = e[8 + t] * i, s._m[9] = e[9 + t] * i, s._m[10] = e[10 + t] * i, s._m[11] = e[11 + t] * i, s._m[12] = e[12 + t] * i, s._m[13] = e[13 + t] * i, s._m[14] = e[14 + t] * i, s._m[15] = e[15 + t] * i, s.markAsUpdated(), s;\n }\n /**\n * Gets an identity matrix that must not be updated\n */\n static get IdentityReadOnly() {\n return O._IdentityReadOnly;\n }\n /**\n * Stores a list of values (16) inside a given matrix\n * @param initialM11 defines 1st value of 1st row\n * @param initialM12 defines 2nd value of 1st row\n * @param initialM13 defines 3rd value of 1st row\n * @param initialM14 defines 4th value of 1st row\n * @param initialM21 defines 1st value of 2nd row\n * @param initialM22 defines 2nd value of 2nd row\n * @param initialM23 defines 3rd value of 2nd row\n * @param initialM24 defines 4th value of 2nd row\n * @param initialM31 defines 1st value of 3rd row\n * @param initialM32 defines 2nd value of 3rd row\n * @param initialM33 defines 3rd value of 3rd row\n * @param initialM34 defines 4th value of 3rd row\n * @param initialM41 defines 1st value of 4th row\n * @param initialM42 defines 2nd value of 4th row\n * @param initialM43 defines 3rd value of 4th row\n * @param initialM44 defines 4th value of 4th row\n * @param result defines the target matrix\n */\n static FromValuesToRef(e, t, i, s, r, n, o, l, h, c, u, d, f, p, _, m, x) {\n const v = x._m;\n v[0] = e, v[1] = t, v[2] = i, v[3] = s, v[4] = r, v[5] = n, v[6] = o, v[7] = l, v[8] = h, v[9] = c, v[10] = u, v[11] = d, v[12] = f, v[13] = p, v[14] = _, v[15] = m, x.markAsUpdated();\n }\n /**\n * Creates new matrix from a list of values (16)\n * @param initialM11 defines 1st value of 1st row\n * @param initialM12 defines 2nd value of 1st row\n * @param initialM13 defines 3rd value of 1st row\n * @param initialM14 defines 4th value of 1st row\n * @param initialM21 defines 1st value of 2nd row\n * @param initialM22 defines 2nd value of 2nd row\n * @param initialM23 defines 3rd value of 2nd row\n * @param initialM24 defines 4th value of 2nd row\n * @param initialM31 defines 1st value of 3rd row\n * @param initialM32 defines 2nd value of 3rd row\n * @param initialM33 defines 3rd value of 3rd row\n * @param initialM34 defines 4th value of 3rd row\n * @param initialM41 defines 1st value of 4th row\n * @param initialM42 defines 2nd value of 4th row\n * @param initialM43 defines 3rd value of 4th row\n * @param initialM44 defines 4th value of 4th row\n * @returns the new matrix\n */\n static FromValues(e, t, i, s, r, n, o, l, h, c, u, d, f, p, _, m) {\n const x = new O(), v = x._m;\n return v[0] = e, v[1] = t, v[2] = i, v[3] = s, v[4] = r, v[5] = n, v[6] = o, v[7] = l, v[8] = h, v[9] = c, v[10] = u, v[11] = d, v[12] = f, v[13] = p, v[14] = _, v[15] = m, x.markAsUpdated(), x;\n }\n /**\n * Creates a new matrix composed by merging scale (vector3), rotation (quaternion) and translation (vector3)\n * Example Playground - https://playground.babylonjs.com/#AV9X17#24\n * @param scale defines the scale vector3\n * @param rotation defines the rotation quaternion\n * @param translation defines the translation vector3\n * @returns a new matrix\n */\n static Compose(e, t, i) {\n const s = new O();\n return O.ComposeToRef(e, t, i, s), s;\n }\n /**\n * Sets a matrix to a value composed by merging scale (vector3), rotation (quaternion) and translation (vector3)\n * Example Playground - https://playground.babylonjs.com/#AV9X17#25\n * @param scale defines the scale vector3\n * @param rotation defines the rotation quaternion\n * @param translation defines the translation vector3\n * @param result defines the target matrix\n * @returns result input\n */\n static ComposeToRef(e, t, i, s) {\n const r = s._m, n = t._x, o = t._y, l = t._z, h = t._w, c = n + n, u = o + o, d = l + l, f = n * c, p = n * u, _ = n * d, m = o * u, x = o * d, v = l * d, T = h * c, E = h * u, b = h * d, S = e._x, C = e._y, P = e._z;\n return r[0] = (1 - (m + v)) * S, r[1] = (p + b) * S, r[2] = (_ - E) * S, r[3] = 0, r[4] = (p - b) * C, r[5] = (1 - (f + v)) * C, r[6] = (x + T) * C, r[7] = 0, r[8] = (_ + E) * P, r[9] = (x - T) * P, r[10] = (1 - (f + m)) * P, r[11] = 0, r[12] = i._x, r[13] = i._y, r[14] = i._z, r[15] = 1, s.markAsUpdated(), s;\n }\n /**\n * Creates a new identity matrix\n * @returns a new identity matrix\n */\n static Identity() {\n const e = O.FromValues(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n return e._updateIdentityStatus(!0), e;\n }\n /**\n * Creates a new identity matrix and stores the result in a given matrix\n * @param result defines the target matrix\n * @returns result input\n */\n static IdentityToRef(e) {\n return O.FromValuesToRef(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, e), e._updateIdentityStatus(!0), e;\n }\n /**\n * Creates a new zero matrix\n * @returns a new zero matrix\n */\n static Zero() {\n const e = O.FromValues(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n return e._updateIdentityStatus(!1), e;\n }\n /**\n * Creates a new rotation matrix for \"angle\" radians around the X axis\n * Example Playground - https://playground.babylonjs.com/#AV9X17#97\n * @param angle defines the angle (in radians) to use\n * @returns the new matrix\n */\n static RotationX(e) {\n const t = new O();\n return O.RotationXToRef(e, t), t;\n }\n /**\n * Creates a new matrix as the invert of a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#124\n * @param source defines the source matrix\n * @returns the new matrix\n */\n static Invert(e) {\n const t = new O();\n return e.invertToRef(t), t;\n }\n /**\n * Creates a new rotation matrix for \"angle\" radians around the X axis and stores it in a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#98\n * @param angle defines the angle (in radians) to use\n * @param result defines the target matrix\n * @returns result input\n */\n static RotationXToRef(e, t) {\n const i = Math.sin(e), s = Math.cos(e);\n return O.FromValuesToRef(1, 0, 0, 0, 0, s, i, 0, 0, -i, s, 0, 0, 0, 0, 1, t), t._updateIdentityStatus(s === 1 && i === 0), t;\n }\n /**\n * Creates a new rotation matrix for \"angle\" radians around the Y axis\n * Example Playground - https://playground.babylonjs.com/#AV9X17#99\n * @param angle defines the angle (in radians) to use\n * @returns the new matrix\n */\n static RotationY(e) {\n const t = new O();\n return O.RotationYToRef(e, t), t;\n }\n /**\n * Creates a new rotation matrix for \"angle\" radians around the Y axis and stores it in a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#100\n * @param angle defines the angle (in radians) to use\n * @param result defines the target matrix\n * @returns result input\n */\n static RotationYToRef(e, t) {\n const i = Math.sin(e), s = Math.cos(e);\n return O.FromValuesToRef(s, 0, -i, 0, 0, 1, 0, 0, i, 0, s, 0, 0, 0, 0, 1, t), t._updateIdentityStatus(s === 1 && i === 0), t;\n }\n /**\n * Creates a new rotation matrix for \"angle\" radians around the Z axis\n * Example Playground - https://playground.babylonjs.com/#AV9X17#101\n * @param angle defines the angle (in radians) to use\n * @returns the new matrix\n */\n static RotationZ(e) {\n const t = new O();\n return O.RotationZToRef(e, t), t;\n }\n /**\n * Creates a new rotation matrix for \"angle\" radians around the Z axis and stores it in a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#102\n * @param angle defines the angle (in radians) to use\n * @param result defines the target matrix\n * @returns result input\n */\n static RotationZToRef(e, t) {\n const i = Math.sin(e), s = Math.cos(e);\n return O.FromValuesToRef(s, i, 0, 0, -i, s, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, t), t._updateIdentityStatus(s === 1 && i === 0), t;\n }\n /**\n * Creates a new rotation matrix for \"angle\" radians around the given axis\n * Example Playground - https://playground.babylonjs.com/#AV9X17#96\n * @param axis defines the axis to use\n * @param angle defines the angle (in radians) to use\n * @returns the new matrix\n */\n static RotationAxis(e, t) {\n const i = new O();\n return O.RotationAxisToRef(e, t, i), i;\n }\n /**\n * Creates a new rotation matrix for \"angle\" radians around the given axis and stores it in a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#94\n * @param axis defines the axis to use\n * @param angle defines the angle (in radians) to use\n * @param result defines the target matrix\n * @returns result input\n */\n static RotationAxisToRef(e, t, i) {\n const s = Math.sin(-t), r = Math.cos(-t), n = 1 - r;\n e.normalize();\n const o = i._m;\n return o[0] = e._x * e._x * n + r, o[1] = e._x * e._y * n - e._z * s, o[2] = e._x * e._z * n + e._y * s, o[3] = 0, o[4] = e._y * e._x * n + e._z * s, o[5] = e._y * e._y * n + r, o[6] = e._y * e._z * n - e._x * s, o[7] = 0, o[8] = e._z * e._x * n - e._y * s, o[9] = e._z * e._y * n + e._x * s, o[10] = e._z * e._z * n + r, o[11] = 0, o[12] = 0, o[13] = 0, o[14] = 0, o[15] = 1, i.markAsUpdated(), i;\n }\n /**\n * Takes normalised vectors and returns a rotation matrix to align \"from\" with \"to\".\n * Taken from http://www.iquilezles.org/www/articles/noacos/noacos.htm\n * Example Playground - https://playground.babylonjs.com/#AV9X17#93\n * @param from defines the vector to align\n * @param to defines the vector to align to\n * @param result defines the target matrix\n * @param useYAxisForCoplanar defines a boolean indicating that we should favor Y axis for coplanar vectors (default is false)\n * @returns result input\n */\n static RotationAlignToRef(e, t, i, s = !1) {\n const r = g.Dot(t, e), n = i._m;\n if (r < -1 + tt)\n n[0] = -1, n[1] = 0, n[2] = 0, n[3] = 0, n[4] = 0, n[5] = s ? 1 : -1, n[6] = 0, n[7] = 0, n[8] = 0, n[9] = 0, n[10] = s ? -1 : 1, n[11] = 0;\n else {\n const o = g.Cross(t, e), l = 1 / (1 + r);\n n[0] = o._x * o._x * l + r, n[1] = o._y * o._x * l - o._z, n[2] = o._z * o._x * l + o._y, n[3] = 0, n[4] = o._x * o._y * l + o._z, n[5] = o._y * o._y * l + r, n[6] = o._z * o._y * l - o._x, n[7] = 0, n[8] = o._x * o._z * l - o._y, n[9] = o._y * o._z * l + o._x, n[10] = o._z * o._z * l + r, n[11] = 0;\n }\n return n[12] = 0, n[13] = 0, n[14] = 0, n[15] = 1, i.markAsUpdated(), i;\n }\n /**\n * Creates a rotation matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#103\n * Example Playground - https://playground.babylonjs.com/#AV9X17#105\n * @param yaw defines the yaw angle in radians (Y axis)\n * @param pitch defines the pitch angle in radians (X axis)\n * @param roll defines the roll angle in radians (Z axis)\n * @returns the new rotation matrix\n */\n static RotationYawPitchRoll(e, t, i) {\n const s = new O();\n return O.RotationYawPitchRollToRef(e, t, i, s), s;\n }\n /**\n * Creates a rotation matrix and stores it in a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#104\n * @param yaw defines the yaw angle in radians (Y axis)\n * @param pitch defines the pitch angle in radians (X axis)\n * @param roll defines the roll angle in radians (Z axis)\n * @param result defines the target matrix\n * @returns result input\n */\n static RotationYawPitchRollToRef(e, t, i, s) {\n return se.RotationYawPitchRollToRef(e, t, i, ke.Quaternion[0]), ke.Quaternion[0].toRotationMatrix(s), s;\n }\n /**\n * Creates a scaling matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#107\n * @param x defines the scale factor on X axis\n * @param y defines the scale factor on Y axis\n * @param z defines the scale factor on Z axis\n * @returns the new matrix\n */\n static Scaling(e, t, i) {\n const s = new O();\n return O.ScalingToRef(e, t, i, s), s;\n }\n /**\n * Creates a scaling matrix and stores it in a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#108\n * @param x defines the scale factor on X axis\n * @param y defines the scale factor on Y axis\n * @param z defines the scale factor on Z axis\n * @param result defines the target matrix\n * @returns result input\n */\n static ScalingToRef(e, t, i, s) {\n return O.FromValuesToRef(e, 0, 0, 0, 0, t, 0, 0, 0, 0, i, 0, 0, 0, 0, 1, s), s._updateIdentityStatus(e === 1 && t === 1 && i === 1), s;\n }\n /**\n * Creates a translation matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#109\n * @param x defines the translation on X axis\n * @param y defines the translation on Y axis\n * @param z defines the translationon Z axis\n * @returns the new matrix\n */\n static Translation(e, t, i) {\n const s = new O();\n return O.TranslationToRef(e, t, i, s), s;\n }\n /**\n * Creates a translation matrix and stores it in a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#110\n * @param x defines the translation on X axis\n * @param y defines the translation on Y axis\n * @param z defines the translationon Z axis\n * @param result defines the target matrix\n * @returns result input\n */\n static TranslationToRef(e, t, i, s) {\n return O.FromValuesToRef(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, e, t, i, 1, s), s._updateIdentityStatus(e === 0 && t === 0 && i === 0), s;\n }\n /**\n * Returns a new Matrix whose values are the interpolated values for \"gradient\" (float) between the ones of the matrices \"startValue\" and \"endValue\".\n * Example Playground - https://playground.babylonjs.com/#AV9X17#55\n * @param startValue defines the start value\n * @param endValue defines the end value\n * @param gradient defines the gradient factor\n * @returns the new matrix\n */\n static Lerp(e, t, i) {\n const s = new O();\n return O.LerpToRef(e, t, i, s), s;\n }\n /**\n * Set the given matrix \"result\" as the interpolated values for \"gradient\" (float) between the ones of the matrices \"startValue\" and \"endValue\".\n * Example Playground - https://playground.babylonjs.com/#AV9X17#54\n * @param startValue defines the start value\n * @param endValue defines the end value\n * @param gradient defines the gradient factor\n * @param result defines the Matrix object where to store data\n * @returns result input\n */\n static LerpToRef(e, t, i, s) {\n const r = s._m, n = e.m, o = t.m;\n for (let l = 0; l < 16; l++)\n r[l] = n[l] * (1 - i) + o[l] * i;\n return s.markAsUpdated(), s;\n }\n /**\n * Builds a new matrix whose values are computed by:\n * * decomposing the \"startValue\" and \"endValue\" matrices into their respective scale, rotation and translation matrices\n * * interpolating for \"gradient\" (float) the values between each of these decomposed matrices between the start and the end\n * * recomposing a new matrix from these 3 interpolated scale, rotation and translation matrices\n * Example Playground - https://playground.babylonjs.com/#AV9X17#22\n * Example Playground - https://playground.babylonjs.com/#AV9X17#51\n * @param startValue defines the first matrix\n * @param endValue defines the second matrix\n * @param gradient defines the gradient between the two matrices\n * @returns the new matrix\n */\n static DecomposeLerp(e, t, i) {\n const s = new O();\n return O.DecomposeLerpToRef(e, t, i, s), s;\n }\n /**\n * Update a matrix to values which are computed by:\n * * decomposing the \"startValue\" and \"endValue\" matrices into their respective scale, rotation and translation matrices\n * * interpolating for \"gradient\" (float) the values between each of these decomposed matrices between the start and the end\n * * recomposing a new matrix from these 3 interpolated scale, rotation and translation matrices\n * Example Playground - https://playground.babylonjs.com/#AV9X17#23\n * Example Playground - https://playground.babylonjs.com/#AV9X17#53\n * @param startValue defines the first matrix\n * @param endValue defines the second matrix\n * @param gradient defines the gradient between the two matrices\n * @param result defines the target matrix\n * @returns result input\n */\n static DecomposeLerpToRef(e, t, i, s) {\n const r = ke.Vector3[0], n = ke.Quaternion[0], o = ke.Vector3[1];\n e.decompose(r, n, o);\n const l = ke.Vector3[2], h = ke.Quaternion[1], c = ke.Vector3[3];\n t.decompose(l, h, c);\n const u = ke.Vector3[4];\n g.LerpToRef(r, l, i, u);\n const d = ke.Quaternion[2];\n se.SlerpToRef(n, h, i, d);\n const f = ke.Vector3[5];\n return g.LerpToRef(o, c, i, f), O.ComposeToRef(u, d, f, s), s;\n }\n /**\n * Creates a new matrix that transforms vertices from world space to camera space. It takes three vectors as arguments that together describe the position and orientation of the camera.\n * This function generates a matrix suitable for a left handed coordinate system\n * Example Playground - https://playground.babylonjs.com/#AV9X17#58\n * Example Playground - https://playground.babylonjs.com/#AV9X17#59\n * @param eye defines the final position of the entity\n * @param target defines where the entity should look at\n * @param up defines the up vector for the entity\n * @returns the new matrix\n */\n static LookAtLH(e, t, i) {\n const s = new O();\n return O.LookAtLHToRef(e, t, i, s), s;\n }\n /**\n * Sets the given \"result\" Matrix to a matrix that transforms vertices from world space to camera space. It takes three vectors as arguments that together describe the position and orientation of the camera.\n * This function generates a matrix suitable for a left handed coordinate system\n * Example Playground - https://playground.babylonjs.com/#AV9X17#60\n * Example Playground - https://playground.babylonjs.com/#AV9X17#61\n * @param eye defines the final position of the entity\n * @param target defines where the entity should look at\n * @param up defines the up vector for the entity\n * @param result defines the target matrix\n * @returns result input\n */\n static LookAtLHToRef(e, t, i, s) {\n const r = ke.Vector3[0], n = ke.Vector3[1], o = ke.Vector3[2];\n t.subtractToRef(e, o), o.normalize(), g.CrossToRef(i, o, r);\n const l = r.lengthSquared();\n l === 0 ? r.x = 1 : r.normalizeFromLength(Math.sqrt(l)), g.CrossToRef(o, r, n), n.normalize();\n const h = -g.Dot(r, e), c = -g.Dot(n, e), u = -g.Dot(o, e);\n return O.FromValuesToRef(r._x, n._x, o._x, 0, r._y, n._y, o._y, 0, r._z, n._z, o._z, 0, h, c, u, 1, s), s;\n }\n /**\n * Creates a new matrix that transforms vertices from world space to camera space. It takes three vectors as arguments that together describe the position and orientation of the camera.\n * This function generates a matrix suitable for a right handed coordinate system\n * Example Playground - https://playground.babylonjs.com/#AV9X17#62\n * Example Playground - https://playground.babylonjs.com/#AV9X17#63\n * @param eye defines the final position of the entity\n * @param target defines where the entity should look at\n * @param up defines the up vector for the entity\n * @returns the new matrix\n */\n static LookAtRH(e, t, i) {\n const s = new O();\n return O.LookAtRHToRef(e, t, i, s), s;\n }\n /**\n * Sets the given \"result\" Matrix to a matrix that transforms vertices from world space to camera space. It takes three vectors as arguments that together describe the position and orientation of the camera.\n * This function generates a matrix suitable for a right handed coordinate system\n * Example Playground - https://playground.babylonjs.com/#AV9X17#64\n * Example Playground - https://playground.babylonjs.com/#AV9X17#65\n * @param eye defines the final position of the entity\n * @param target defines where the entity should look at\n * @param up defines the up vector for the entity\n * @param result defines the target matrix\n * @returns result input\n */\n static LookAtRHToRef(e, t, i, s) {\n const r = ke.Vector3[0], n = ke.Vector3[1], o = ke.Vector3[2];\n e.subtractToRef(t, o), o.normalize(), g.CrossToRef(i, o, r);\n const l = r.lengthSquared();\n l === 0 ? r.x = 1 : r.normalizeFromLength(Math.sqrt(l)), g.CrossToRef(o, r, n), n.normalize();\n const h = -g.Dot(r, e), c = -g.Dot(n, e), u = -g.Dot(o, e);\n return O.FromValuesToRef(r._x, n._x, o._x, 0, r._y, n._y, o._y, 0, r._z, n._z, o._z, 0, h, c, u, 1, s), s;\n }\n /**\n * Creates a new matrix that transforms vertices from world space to camera space. It takes two vectors as arguments that together describe the orientation of the camera. The position is assumed to be at the origin (0,0,0)\n * This function generates a matrix suitable for a left handed coordinate system\n * Example Playground - https://playground.babylonjs.com/#AV9X17#66\n * @param forward defines the forward direction - Must be normalized and orthogonal to up.\n * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.\n * @returns the new matrix\n */\n static LookDirectionLH(e, t) {\n const i = new O();\n return O.LookDirectionLHToRef(e, t, i), i;\n }\n /**\n * Sets the given \"result\" Matrix to a matrix that transforms vertices from world space to camera space. It takes two vectors as arguments that together describe the orientation of the camera. The position is assumed to be at the origin (0,0,0)\n * This function generates a matrix suitable for a left handed coordinate system\n * Example Playground - https://playground.babylonjs.com/#AV9X17#67\n * @param forward defines the forward direction - Must be normalized and orthogonal to up.\n * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.\n * @param result defines the target matrix\n * @returns result input\n */\n static LookDirectionLHToRef(e, t, i) {\n const s = ke.Vector3[0];\n s.copyFrom(e), s.scaleInPlace(-1);\n const r = ke.Vector3[1];\n return g.CrossToRef(t, s, r), O.FromValuesToRef(r._x, r._y, r._z, 0, t._x, t._y, t._z, 0, s._x, s._y, s._z, 0, 0, 0, 0, 1, i), i;\n }\n /**\n * Creates a new matrix that transforms vertices from world space to camera space. It takes two vectors as arguments that together describe the orientation of the camera. The position is assumed to be at the origin (0,0,0)\n * This function generates a matrix suitable for a right handed coordinate system\n * Example Playground - https://playground.babylonjs.com/#AV9X17#68\n * @param forward defines the forward direction - Must be normalized and orthogonal to up.\n * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.\n * @returns the new matrix\n */\n static LookDirectionRH(e, t) {\n const i = new O();\n return O.LookDirectionRHToRef(e, t, i), i;\n }\n /**\n * Sets the given \"result\" Matrix to a matrix that transforms vertices from world space to camera space. It takes two vectors as arguments that together describe the orientation of the camera. The position is assumed to be at the origin (0,0,0)\n * This function generates a matrix suitable for a right handed coordinate system\n * Example Playground - https://playground.babylonjs.com/#AV9X17#69\n * @param forward defines the forward direction - Must be normalized and orthogonal to up.\n * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.\n * @param result defines the target matrix\n * @returns result input\n */\n static LookDirectionRHToRef(e, t, i) {\n const s = ke.Vector3[2];\n return g.CrossToRef(t, e, s), O.FromValuesToRef(s._x, s._y, s._z, 0, t._x, t._y, t._z, 0, e._x, e._y, e._z, 0, 0, 0, 0, 1, i), i;\n }\n /**\n * Create a left-handed orthographic projection matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#70\n * @param width defines the viewport width\n * @param height defines the viewport height\n * @param znear defines the near clip plane\n * @param zfar defines the far clip plane\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @returns a new matrix as a left-handed orthographic projection matrix\n */\n static OrthoLH(e, t, i, s, r) {\n const n = new O();\n return O.OrthoLHToRef(e, t, i, s, n, r), n;\n }\n /**\n * Store a left-handed orthographic projection to a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#71\n * @param width defines the viewport width\n * @param height defines the viewport height\n * @param znear defines the near clip plane\n * @param zfar defines the far clip plane\n * @param result defines the target matrix\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @returns result input\n */\n static OrthoLHToRef(e, t, i, s, r, n) {\n const o = i, l = s, h = 2 / e, c = 2 / t, u = 2 / (l - o), d = -(l + o) / (l - o);\n return O.FromValuesToRef(h, 0, 0, 0, 0, c, 0, 0, 0, 0, u, 0, 0, 0, d, 1, r), n && r.multiplyToRef(ul, r), r._updateIdentityStatus(h === 1 && c === 1 && u === 1 && d === 0), r;\n }\n /**\n * Create a left-handed orthographic projection matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#72\n * @param left defines the viewport left coordinate\n * @param right defines the viewport right coordinate\n * @param bottom defines the viewport bottom coordinate\n * @param top defines the viewport top coordinate\n * @param znear defines the near clip plane\n * @param zfar defines the far clip plane\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @returns a new matrix as a left-handed orthographic projection matrix\n */\n static OrthoOffCenterLH(e, t, i, s, r, n, o) {\n const l = new O();\n return O.OrthoOffCenterLHToRef(e, t, i, s, r, n, l, o), l;\n }\n /**\n * Stores a left-handed orthographic projection into a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#73\n * @param left defines the viewport left coordinate\n * @param right defines the viewport right coordinate\n * @param bottom defines the viewport bottom coordinate\n * @param top defines the viewport top coordinate\n * @param znear defines the near clip plane\n * @param zfar defines the far clip plane\n * @param result defines the target matrix\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @returns result input\n */\n static OrthoOffCenterLHToRef(e, t, i, s, r, n, o, l) {\n const h = r, c = n, u = 2 / (t - e), d = 2 / (s - i), f = 2 / (c - h), p = -(c + h) / (c - h), _ = (e + t) / (e - t), m = (s + i) / (i - s);\n return O.FromValuesToRef(u, 0, 0, 0, 0, d, 0, 0, 0, 0, f, 0, _, m, p, 1, o), l && o.multiplyToRef(ul, o), o.markAsUpdated(), o;\n }\n /**\n * Stores a left-handed oblique projection into a given matrix\n * @param left defines the viewport left coordinate\n * @param right defines the viewport right coordinate\n * @param bottom defines the viewport bottom coordinate\n * @param top defines the viewport top coordinate\n * @param znear defines the near clip plane\n * @param zfar defines the far clip plane\n * @param length Length of the shear\n * @param angle Angle (along X/Y Plane) to apply shear\n * @param distance Distance from shear point\n * @param result defines the target matrix\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @returns result input\n */\n static ObliqueOffCenterLHToRef(e, t, i, s, r, n, o, l, h, c, u) {\n const d = -o * Math.cos(l), f = -o * Math.sin(l);\n return O.TranslationToRef(0, 0, -h, ke.Matrix[1]), O.FromValuesToRef(1, 0, 0, 0, 0, 1, 0, 0, d, f, 1, 0, 0, 0, 0, 1, ke.Matrix[0]), ke.Matrix[1].multiplyToRef(ke.Matrix[0], ke.Matrix[0]), O.TranslationToRef(0, 0, h, ke.Matrix[1]), ke.Matrix[0].multiplyToRef(ke.Matrix[1], ke.Matrix[0]), O.OrthoOffCenterLHToRef(e, t, i, s, r, n, c, u), ke.Matrix[0].multiplyToRef(c, c), c;\n }\n /**\n * Creates a right-handed orthographic projection matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#76\n * @param left defines the viewport left coordinate\n * @param right defines the viewport right coordinate\n * @param bottom defines the viewport bottom coordinate\n * @param top defines the viewport top coordinate\n * @param znear defines the near clip plane\n * @param zfar defines the far clip plane\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @returns a new matrix as a right-handed orthographic projection matrix\n */\n static OrthoOffCenterRH(e, t, i, s, r, n, o) {\n const l = new O();\n return O.OrthoOffCenterRHToRef(e, t, i, s, r, n, l, o), l;\n }\n /**\n * Stores a right-handed orthographic projection into a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#77\n * @param left defines the viewport left coordinate\n * @param right defines the viewport right coordinate\n * @param bottom defines the viewport bottom coordinate\n * @param top defines the viewport top coordinate\n * @param znear defines the near clip plane\n * @param zfar defines the far clip plane\n * @param result defines the target matrix\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @returns result input\n */\n static OrthoOffCenterRHToRef(e, t, i, s, r, n, o, l) {\n return O.OrthoOffCenterLHToRef(e, t, i, s, r, n, o, l), o._m[10] *= -1, o;\n }\n /**\n * Stores a right-handed oblique projection into a given matrix\n * @param left defines the viewport left coordinate\n * @param right defines the viewport right coordinate\n * @param bottom defines the viewport bottom coordinate\n * @param top defines the viewport top coordinate\n * @param znear defines the near clip plane\n * @param zfar defines the far clip plane\n * @param length Length of the shear\n * @param angle Angle (along X/Y Plane) to apply shear\n * @param distance Distance from shear point\n * @param result defines the target matrix\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @returns result input\n */\n static ObliqueOffCenterRHToRef(e, t, i, s, r, n, o, l, h, c, u) {\n const d = o * Math.cos(l), f = o * Math.sin(l);\n return O.TranslationToRef(0, 0, h, ke.Matrix[1]), O.FromValuesToRef(1, 0, 0, 0, 0, 1, 0, 0, d, f, 1, 0, 0, 0, 0, 1, ke.Matrix[0]), ke.Matrix[1].multiplyToRef(ke.Matrix[0], ke.Matrix[0]), O.TranslationToRef(0, 0, -h, ke.Matrix[1]), ke.Matrix[0].multiplyToRef(ke.Matrix[1], ke.Matrix[0]), O.OrthoOffCenterRHToRef(e, t, i, s, r, n, c, u), ke.Matrix[0].multiplyToRef(c, c), c;\n }\n /**\n * Creates a left-handed perspective projection matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#85\n * @param width defines the viewport width\n * @param height defines the viewport height\n * @param znear defines the near clip plane\n * @param zfar defines the far clip plane\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @param projectionPlaneTilt optional tilt angle of the projection plane around the X axis (horizontal)\n * @returns a new matrix as a left-handed perspective projection matrix\n */\n static PerspectiveLH(e, t, i, s, r, n = 0) {\n const o = new O(), l = i, h = s, c = 2 * l / e, u = 2 * l / t, d = (h + l) / (h - l), f = -2 * h * l / (h - l), p = Math.tan(n);\n return O.FromValuesToRef(c, 0, 0, 0, 0, u, 0, p, 0, 0, d, 1, 0, 0, f, 0, o), r && o.multiplyToRef(ul, o), o._updateIdentityStatus(!1), o;\n }\n /**\n * Creates a left-handed perspective projection matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#78\n * @param fov defines the horizontal field of view\n * @param aspect defines the aspect ratio\n * @param znear defines the near clip plane\n * @param zfar defines the far clip plane. If 0, assume we are in \"infinite zfar\" mode\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @param projectionPlaneTilt optional tilt angle of the projection plane around the X axis (horizontal)\n * @param reverseDepthBufferMode true to indicate that we are in a reverse depth buffer mode (meaning znear and zfar have been inverted when calling the function)\n * @returns a new matrix as a left-handed perspective projection matrix\n */\n static PerspectiveFovLH(e, t, i, s, r, n = 0, o = !1) {\n const l = new O();\n return O.PerspectiveFovLHToRef(e, t, i, s, l, !0, r, n, o), l;\n }\n /**\n * Stores a left-handed perspective projection into a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#81\n * @param fov defines the horizontal field of view\n * @param aspect defines the aspect ratio\n * @param znear defines the near clip plane\n * @param zfar defines the far clip plane. If 0, assume we are in \"infinite zfar\" mode\n * @param result defines the target matrix\n * @param isVerticalFovFixed defines it the fov is vertically fixed (default) or horizontally\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @param projectionPlaneTilt optional tilt angle of the projection plane around the X axis (horizontal)\n * @param reverseDepthBufferMode true to indicate that we are in a reverse depth buffer mode (meaning znear and zfar have been inverted when calling the function)\n * @returns result input\n */\n static PerspectiveFovLHToRef(e, t, i, s, r, n = !0, o, l = 0, h = !1) {\n const c = i, u = s, d = 1 / Math.tan(e * 0.5), f = n ? d / t : d, p = n ? d : d * t, _ = h && c === 0 ? -1 : u !== 0 ? (u + c) / (u - c) : 1, m = h && c === 0 ? 2 * u : u !== 0 ? -2 * u * c / (u - c) : -2 * c, x = Math.tan(l);\n return O.FromValuesToRef(f, 0, 0, 0, 0, p, 0, x, 0, 0, _, 1, 0, 0, m, 0, r), o && r.multiplyToRef(ul, r), r._updateIdentityStatus(!1), r;\n }\n /**\n * Stores a left-handed perspective projection into a given matrix with depth reversed\n * Example Playground - https://playground.babylonjs.com/#AV9X17#89\n * @param fov defines the horizontal field of view\n * @param aspect defines the aspect ratio\n * @param znear defines the near clip plane\n * @param zfar not used as infinity is used as far clip\n * @param result defines the target matrix\n * @param isVerticalFovFixed defines it the fov is vertically fixed (default) or horizontally\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @param projectionPlaneTilt optional tilt angle of the projection plane around the X axis (horizontal)\n * @returns result input\n */\n static PerspectiveFovReverseLHToRef(e, t, i, s, r, n = !0, o, l = 0) {\n const h = 1 / Math.tan(e * 0.5), c = n ? h / t : h, u = n ? h : h * t, d = Math.tan(l);\n return O.FromValuesToRef(c, 0, 0, 0, 0, u, 0, d, 0, 0, -i, 1, 0, 0, 1, 0, r), o && r.multiplyToRef(ul, r), r._updateIdentityStatus(!1), r;\n }\n /**\n * Creates a right-handed perspective projection matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#83\n * @param fov defines the horizontal field of view\n * @param aspect defines the aspect ratio\n * @param znear defines the near clip plane\n * @param zfar defines the far clip plane. If 0, assume we are in \"infinite zfar\" mode\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @param projectionPlaneTilt optional tilt angle of the projection plane around the X axis (horizontal)\n * @param reverseDepthBufferMode true to indicate that we are in a reverse depth buffer mode (meaning znear and zfar have been inverted when calling the function)\n * @returns a new matrix as a right-handed perspective projection matrix\n */\n static PerspectiveFovRH(e, t, i, s, r, n = 0, o = !1) {\n const l = new O();\n return O.PerspectiveFovRHToRef(e, t, i, s, l, !0, r, n, o), l;\n }\n /**\n * Stores a right-handed perspective projection into a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#84\n * @param fov defines the horizontal field of view\n * @param aspect defines the aspect ratio\n * @param znear defines the near clip plane\n * @param zfar defines the far clip plane. If 0, assume we are in \"infinite zfar\" mode\n * @param result defines the target matrix\n * @param isVerticalFovFixed defines it the fov is vertically fixed (default) or horizontally\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @param projectionPlaneTilt optional tilt angle of the projection plane around the X axis (horizontal)\n * @param reverseDepthBufferMode true to indicate that we are in a reverse depth buffer mode (meaning znear and zfar have been inverted when calling the function)\n * @returns result input\n */\n static PerspectiveFovRHToRef(e, t, i, s, r, n = !0, o, l = 0, h = !1) {\n const c = i, u = s, d = 1 / Math.tan(e * 0.5), f = n ? d / t : d, p = n ? d : d * t, _ = h && c === 0 ? 1 : u !== 0 ? -(u + c) / (u - c) : -1, m = h && c === 0 ? 2 * u : u !== 0 ? -2 * u * c / (u - c) : -2 * c, x = Math.tan(l);\n return O.FromValuesToRef(f, 0, 0, 0, 0, p, 0, x, 0, 0, _, -1, 0, 0, m, 0, r), o && r.multiplyToRef(ul, r), r._updateIdentityStatus(!1), r;\n }\n /**\n * Stores a right-handed perspective projection into a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#90\n * @param fov defines the horizontal field of view\n * @param aspect defines the aspect ratio\n * @param znear defines the near clip plane\n * @param zfar not used as infinity is used as far clip\n * @param result defines the target matrix\n * @param isVerticalFovFixed defines it the fov is vertically fixed (default) or horizontally\n * @param halfZRange true to generate NDC coordinates between 0 and 1 instead of -1 and 1 (default: false)\n * @param projectionPlaneTilt optional tilt angle of the projection plane around the X axis (horizontal)\n * @returns result input\n */\n static PerspectiveFovReverseRHToRef(e, t, i, s, r, n = !0, o, l = 0) {\n const h = 1 / Math.tan(e * 0.5), c = n ? h / t : h, u = n ? h : h * t, d = Math.tan(l);\n return O.FromValuesToRef(c, 0, 0, 0, 0, u, 0, d, 0, 0, -i, -1, 0, 0, -1, 0, r), o && r.multiplyToRef(ul, r), r._updateIdentityStatus(!1), r;\n }\n /**\n * Computes a complete transformation matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#113\n * @param viewport defines the viewport to use\n * @param world defines the world matrix\n * @param view defines the view matrix\n * @param projection defines the projection matrix\n * @param zmin defines the near clip plane\n * @param zmax defines the far clip plane\n * @returns the transformation matrix\n */\n static GetFinalMatrix(e, t, i, s, r, n) {\n const o = e.width, l = e.height, h = e.x, c = e.y, u = O.FromValues(o / 2, 0, 0, 0, 0, -l / 2, 0, 0, 0, 0, n - r, 0, h + o / 2, l / 2 + c, r, 1), d = new O();\n return t.multiplyToRef(i, d), d.multiplyToRef(s, d), d.multiplyToRef(u, d);\n }\n /**\n * Extracts a 2x2 matrix from a given matrix and store the result in a Float32Array\n * @param matrix defines the matrix to use\n * @returns a new Float32Array array with 4 elements : the 2x2 matrix extracted from the given matrix\n */\n static GetAsMatrix2x2(e) {\n const t = e.m, i = [t[0], t[1], t[4], t[5]];\n return ks.MatrixUse64Bits ? i : new Float32Array(i);\n }\n /**\n * Extracts a 3x3 matrix from a given matrix and store the result in a Float32Array\n * @param matrix defines the matrix to use\n * @returns a new Float32Array array with 9 elements : the 3x3 matrix extracted from the given matrix\n */\n static GetAsMatrix3x3(e) {\n const t = e.m, i = [t[0], t[1], t[2], t[4], t[5], t[6], t[8], t[9], t[10]];\n return ks.MatrixUse64Bits ? i : new Float32Array(i);\n }\n /**\n * Compute the transpose of a given matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#111\n * @param matrix defines the matrix to transpose\n * @returns the new matrix\n */\n static Transpose(e) {\n const t = new O();\n return O.TransposeToRef(e, t), t;\n }\n /**\n * Compute the transpose of a matrix and store it in a target matrix\n * Example Playground - https://playground.babylonjs.com/#AV9X17#112\n * @param matrix defines the matrix to transpose\n * @param result defines the target matrix\n * @returns result input\n */\n static TransposeToRef(e, t) {\n const i = e.m, s = i[0], r = i[4], n = i[8], o = i[12], l = i[1], h = i[5], c = i[9], u = i[13], d = i[2], f = i[6], p = i[10], _ = i[14], m = i[3], x = i[7], v = i[11], T = i[15], E = t._m;\n return E[0] = s, E[1] = r, E[2] = n, E[3] = o, E[4] = l, E[5] = h, E[6] = c, E[7] = u, E[8] = d, E[9] = f, E[10] = p, E[11] = _, E[12] = m, E[13] = x, E[14] = v, E[15] = T, t.markAsUpdated(), t._updateIdentityStatus(e._isIdentity, e._isIdentityDirty), t;\n }\n /**\n * Computes a reflection matrix from a plane\n * Example Playground - https://playground.babylonjs.com/#AV9X17#87\n * @param plane defines the reflection plane\n * @returns a new matrix\n */\n static Reflection(e) {\n const t = new O();\n return O.ReflectionToRef(e, t), t;\n }\n /**\n * Computes a reflection matrix from a plane\n * Example Playground - https://playground.babylonjs.com/#AV9X17#88\n * @param plane defines the reflection plane\n * @param result defines the target matrix\n * @returns result input\n */\n static ReflectionToRef(e, t) {\n e.normalize();\n const i = e.normal.x, s = e.normal.y, r = e.normal.z, n = -2 * i, o = -2 * s, l = -2 * r;\n return O.FromValuesToRef(n * i + 1, o * i, l * i, 0, n * s, o * s + 1, l * s, 0, n * r, o * r, l * r + 1, 0, n * e.d, o * e.d, l * e.d, 1, t), t;\n }\n /**\n * Sets the given matrix as a rotation matrix composed from the 3 left handed axes\n * @param xaxis defines the value of the 1st axis\n * @param yaxis defines the value of the 2nd axis\n * @param zaxis defines the value of the 3rd axis\n * @param result defines the target matrix\n * @returns result input\n */\n static FromXYZAxesToRef(e, t, i, s) {\n return O.FromValuesToRef(e._x, e._y, e._z, 0, t._x, t._y, t._z, 0, i._x, i._y, i._z, 0, 0, 0, 0, 1, s), s;\n }\n /**\n * Creates a rotation matrix from a quaternion and stores it in a target matrix\n * @param quat defines the quaternion to use\n * @param result defines the target matrix\n * @returns result input\n */\n static FromQuaternionToRef(e, t) {\n const i = e._x * e._x, s = e._y * e._y, r = e._z * e._z, n = e._x * e._y, o = e._z * e._w, l = e._z * e._x, h = e._y * e._w, c = e._y * e._z, u = e._x * e._w;\n return t._m[0] = 1 - 2 * (s + r), t._m[1] = 2 * (n + o), t._m[2] = 2 * (l - h), t._m[3] = 0, t._m[4] = 2 * (n - o), t._m[5] = 1 - 2 * (r + i), t._m[6] = 2 * (c + u), t._m[7] = 0, t._m[8] = 2 * (l + h), t._m[9] = 2 * (c - u), t._m[10] = 1 - 2 * (s + i), t._m[11] = 0, t._m[12] = 0, t._m[13] = 0, t._m[14] = 0, t._m[15] = 1, t.markAsUpdated(), t;\n }\n}\nO._UpdateFlagSeed = 0;\nO._IdentityReadOnly = O.Identity();\nObject.defineProperties(O.prototype, {\n dimension: { value: [4, 4] },\n rank: { value: 2 }\n});\nclass ke {\n}\nke.Vector3 = _s.BuildTuple(11, g.Zero);\nke.Matrix = _s.BuildTuple(2, O.Identity);\nke.Quaternion = _s.BuildTuple(3, se.Zero);\nclass w {\n}\nw.Vector2 = _s.BuildTuple(3, Q.Zero);\nw.Vector3 = _s.BuildTuple(13, g.Zero);\nw.Vector4 = _s.BuildTuple(3, Ne.Zero);\nw.Quaternion = _s.BuildTuple(3, se.Zero);\nw.Matrix = _s.BuildTuple(8, O.Identity);\nU(\"BABYLON.Vector2\", Q);\nU(\"BABYLON.Vector3\", g);\nU(\"BABYLON.Vector4\", Ne);\nU(\"BABYLON.Matrix\", O);\nconst ul = O.FromValues(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 1);\nclass qi {\n constructor() {\n this.rootNodes = [], this.cameras = [], this.lights = [], this.meshes = [], this.skeletons = [], this.particleSystems = [], this.animations = [], this.animationGroups = [], this.multiMaterials = [], this.materials = [], this.morphTargetManagers = [], this.geometries = [], this.transformNodes = [], this.actionManagers = [], this.textures = [], this._environmentTexture = null, this.postProcesses = [];\n }\n /**\n * Adds a parser in the list of available ones\n * @param name Defines the name of the parser\n * @param parser Defines the parser to add\n */\n static AddParser(e, t) {\n this._BabylonFileParsers[e] = t;\n }\n /**\n * Gets a general parser from the list of available ones\n * @param name Defines the name of the parser\n * @returns the requested parser or null\n */\n static GetParser(e) {\n return this._BabylonFileParsers[e] ? this._BabylonFileParsers[e] : null;\n }\n /**\n * Adds n individual parser in the list of available ones\n * @param name Defines the name of the parser\n * @param parser Defines the parser to add\n */\n static AddIndividualParser(e, t) {\n this._IndividualBabylonFileParsers[e] = t;\n }\n /**\n * Gets an individual parser from the list of available ones\n * @param name Defines the name of the parser\n * @returns the requested parser or null\n */\n static GetIndividualParser(e) {\n return this._IndividualBabylonFileParsers[e] ? this._IndividualBabylonFileParsers[e] : null;\n }\n /**\n * Parser json data and populate both a scene and its associated container object\n * @param jsonData Defines the data to parse\n * @param scene Defines the scene to parse the data for\n * @param container Defines the container attached to the parsing sequence\n * @param rootUrl Defines the root url of the data\n */\n static Parse(e, t, i, s) {\n for (const r in this._BabylonFileParsers)\n Object.prototype.hasOwnProperty.call(this._BabylonFileParsers, r) && this._BabylonFileParsers[r](e, t, i, s);\n }\n /**\n * Texture used in all pbr material as the reflection texture.\n * As in the majority of the scene they are the same (exception for multi room and so on),\n * this is easier to reference from here than from all the materials.\n */\n get environmentTexture() {\n return this._environmentTexture;\n }\n set environmentTexture(e) {\n this._environmentTexture = e;\n }\n /**\n * @returns all meshes, lights, cameras, transformNodes and bones\n */\n getNodes() {\n let e = [];\n return e = e.concat(this.meshes), e = e.concat(this.lights), e = e.concat(this.cameras), e = e.concat(this.transformNodes), this.skeletons.forEach((t) => e = e.concat(t.bones)), e;\n }\n}\nqi._BabylonFileParsers = {};\nqi._IndividualBabylonFileParsers = {};\nU(\"BABYLON.AbstractScene\", qi);\nfunction y(a, e, t, i) {\n var s = arguments.length, r = s < 3 ? e : i === null ? i = Object.getOwnPropertyDescriptor(e, t) : i, n;\n if (typeof Reflect == \"object\" && typeof Reflect.decorate == \"function\") r = Reflect.decorate(a, e, t, i);\n else for (var o = a.length - 1; o >= 0; o--) (n = a[o]) && (r = (s < 3 ? n(r) : s > 3 ? n(e, t, r) : n(e, t)) || r);\n return s > 3 && r && Object.defineProperty(e, t, r), r;\n}\nconst ep = {}, gp = {};\nfunction hM(a) {\n const e = a.getClassName();\n return gp[e] || (gp[e] = {}), gp[e];\n}\nfunction Sg(a) {\n const e = a.getClassName();\n if (ep[e])\n return ep[e];\n ep[e] = {};\n const t = ep[e];\n let i = a, s = e;\n for (; s; ) {\n const r = gp[s];\n for (const l in r)\n t[l] = r[l];\n let n, o = !1;\n do {\n if (n = Object.getPrototypeOf(i), !n.getClassName) {\n o = !0;\n break;\n }\n if (n.getClassName() !== s)\n break;\n i = n;\n } while (n);\n if (o)\n break;\n s = n.getClassName(), i = n;\n }\n return t;\n}\nfunction vn(a, e) {\n return (t, i) => {\n const s = hM(t);\n s[i] || (s[i] = { type: a, sourceName: e });\n };\n}\nfunction cM(a, e = null) {\n return (t, i) => {\n const s = e || \"_\" + i;\n Object.defineProperty(t, i, {\n get: function() {\n return this[s];\n },\n set: function(r) {\n typeof this.equals == \"function\" && this.equals(r) || this[s] !== r && (this[s] = r, t[a].apply(this));\n },\n enumerable: !0,\n configurable: !0\n });\n };\n}\nfunction ce(a, e = null) {\n return cM(a, e);\n}\nfunction I(a) {\n return vn(0, a);\n}\nfunction xt(a) {\n return vn(1, a);\n}\nfunction bi(a) {\n return vn(2, a);\n}\nfunction nf(a) {\n return vn(3, a);\n}\nfunction bx(a) {\n return vn(4, a);\n}\nfunction Zs(a) {\n return vn(5, a);\n}\nfunction af(a) {\n return vn(6, a);\n}\nfunction uM(a) {\n return vn(7, a);\n}\nfunction Ex(a) {\n return vn(8, a);\n}\nfunction NC(a) {\n return vn(9, a);\n}\nfunction dM(a) {\n return vn(10, a);\n}\nfunction yx(a) {\n return vn(12, a);\n}\nfunction fM(a) {\n return vn(11, a);\n}\nfunction co(a, e, t, i) {\n const s = t.value;\n t.value = (...r) => {\n let n = s;\n if (typeof _native < \"u\" && _native[e]) {\n const o = _native[e];\n i ? n = (...l) => i(...l) ? o(...l) : s(...l) : n = o;\n }\n return a[e] = n, n(...r);\n };\n}\nco.filter = function(a) {\n return (e, t, i) => co(e, t, i, a);\n};\nclass Re {\n /**\n * Returns -1 if value is negative and +1 is value is positive.\n * @param value the value\n * @returns the value itself if it's equal to zero.\n */\n static Sign(e) {\n return e = +e, e === 0 || isNaN(e) ? e : e > 0 ? 1 : -1;\n }\n /**\n * the log2 of value.\n * @param value the value to compute log2 of\n * @returns the log2 of value.\n */\n static Log2(e) {\n return Math.log(e) * Math.LOG2E;\n }\n /**\n * the floor part of a log2 value.\n * @param value the value to compute log2 of\n * @returns the log2 of value.\n */\n static ILog2(e) {\n if (Math.log2)\n return Math.floor(Math.log2(e));\n if (e < 0)\n return NaN;\n if (e === 0)\n return -1 / 0;\n let t = 0;\n if (e < 1) {\n for (; e < 1; )\n t++, e = e * 2;\n t = -t;\n } else if (e > 1)\n for (; e > 1; )\n t++, e = Math.floor(e / 2);\n return t;\n }\n /**\n * Loops the value, so that it is never larger than length and never smaller than 0.\n *\n * This is similar to the modulo operator but it works with floating point numbers.\n * For example, using 3.0 for t and 2.5 for length, the result would be 0.5.\n * With t = 5 and length = 2.5, the result would be 0.0.\n * Note, however, that the behaviour is not defined for negative numbers as it is for the modulo operator\n * @param value the value\n * @param length the length\n * @returns the looped value\n */\n static Repeat(e, t) {\n return e - Math.floor(e / t) * t;\n }\n /**\n * Normalize the value between 0.0 and 1.0 using min and max values\n * @param value value to normalize\n * @param min max to normalize between\n * @param max min to normalize between\n * @returns the normalized value\n */\n static Normalize(e, t, i) {\n return (e - t) / (i - t);\n }\n /**\n * Denormalize the value from 0.0 and 1.0 using min and max values\n * @param normalized value to denormalize\n * @param min max to denormalize between\n * @param max min to denormalize between\n * @returns the denormalized value\n */\n static Denormalize(e, t, i) {\n return e * (i - t) + t;\n }\n /**\n * Calculates the shortest difference between two given angles given in degrees.\n * @param current current angle in degrees\n * @param target target angle in degrees\n * @returns the delta\n */\n static DeltaAngle(e, t) {\n let i = Re.Repeat(t - e, 360);\n return i > 180 && (i -= 360), i;\n }\n /**\n * PingPongs the value t, so that it is never larger than length and never smaller than 0.\n * @param tx value\n * @param length length\n * @returns The returned value will move back and forth between 0 and length\n */\n static PingPong(e, t) {\n const i = Re.Repeat(e, t * 2);\n return t - Math.abs(i - t);\n }\n /**\n * Interpolates between min and max with smoothing at the limits.\n *\n * This function interpolates between min and max in a similar way to Lerp. However, the interpolation will gradually speed up\n * from the start and slow down toward the end. This is useful for creating natural-looking animation, fading and other transitions.\n * @param from from\n * @param to to\n * @param tx value\n * @returns the smooth stepped value\n */\n static SmoothStep(e, t, i) {\n let s = Re.Clamp(i);\n return s = -2 * s * s * s + 3 * s * s, t * s + e * (1 - s);\n }\n /**\n * Moves a value current towards target.\n *\n * This is essentially the same as Mathf.Lerp but instead the function will ensure that the speed never exceeds maxDelta.\n * Negative values of maxDelta pushes the value away from target.\n * @param current current value\n * @param target target value\n * @param maxDelta max distance to move\n * @returns resulting value\n */\n static MoveTowards(e, t, i) {\n let s = 0;\n return Math.abs(t - e) <= i ? s = t : s = e + Re.Sign(t - e) * i, s;\n }\n /**\n * Same as MoveTowards but makes sure the values interpolate correctly when they wrap around 360 degrees.\n *\n * Variables current and target are assumed to be in degrees. For optimization reasons, negative values of maxDelta\n * are not supported and may cause oscillation. To push current away from a target angle, add 180 to that angle instead.\n * @param current current value\n * @param target target value\n * @param maxDelta max distance to move\n * @returns resulting angle\n */\n static MoveTowardsAngle(e, t, i) {\n const s = Re.DeltaAngle(e, t);\n let r = 0;\n return -i < s && s < i ? r = t : (t = e + s, r = Re.MoveTowards(e, t, i)), r;\n }\n /**\n * Same as Lerp but makes sure the values interpolate correctly when they wrap around 360 degrees.\n * The parameter t is clamped to the range [0, 1]. Variables a and b are assumed to be in degrees.\n * @param start start value\n * @param end target value\n * @param amount amount to lerp between\n * @returns the lerped value\n */\n static LerpAngle(e, t, i) {\n let s = Re.Repeat(t - e, 360);\n return s > 180 && (s -= 360), e + s * Vi(i);\n }\n /**\n * Calculates the linear parameter t that produces the interpolant value within the range [a, b].\n * @param a start value\n * @param b target value\n * @param value value between a and b\n * @returns the inverseLerp value\n */\n static InverseLerp(e, t, i) {\n let s = 0;\n return e != t ? s = Vi((i - e) / (t - e)) : s = 0, s;\n }\n /**\n * Returns a new scalar located for \"amount\" (float) on the Hermite spline defined by the scalars \"value1\", \"value3\", \"tangent1\", \"tangent2\".\n * @see http://mathworld.wolfram.com/HermitePolynomial.html\n * @param value1 defines the first control point\n * @param tangent1 defines the first tangent\n * @param value2 defines the second control point\n * @param tangent2 defines the second tangent\n * @param amount defines the amount on the interpolation spline (between 0 and 1)\n * @returns hermite result\n */\n static Hermite(e, t, i, s, r) {\n const n = r * r, o = r * n, l = 2 * o - 3 * n + 1, h = -2 * o + 3 * n, c = o - 2 * n + r, u = o - n;\n return e * l + i * h + t * c + s * u;\n }\n /**\n * Returns a new scalar which is the 1st derivative of the Hermite spline defined by the scalars \"value1\", \"value2\", \"tangent1\", \"tangent2\".\n * @param value1 defines the first control point\n * @param tangent1 defines the first tangent\n * @param value2 defines the second control point\n * @param tangent2 defines the second tangent\n * @param time define where the derivative must be done\n * @returns 1st derivative\n */\n static Hermite1stDerivative(e, t, i, s, r) {\n const n = r * r;\n return (n - r) * 6 * e + (3 * n - 4 * r + 1) * t + (-n + r) * 6 * i + (3 * n - 2 * r) * s;\n }\n /**\n * This function returns percentage of a number in a given range.\n *\n * RangeToPercent(40,20,60) will return 0.5 (50%)\n * RangeToPercent(34,0,100) will return 0.34 (34%)\n * @param number to convert to percentage\n * @param min min range\n * @param max max range\n * @returns the percentage\n */\n static RangeToPercent(e, t, i) {\n return (e - t) / (i - t);\n }\n /**\n * This function returns number that corresponds to the percentage in a given range.\n *\n * PercentToRange(0.34,0,100) will return 34.\n * @param percent to convert to number\n * @param min min range\n * @param max max range\n * @returns the number\n */\n static PercentToRange(e, t, i) {\n return (i - t) * e + t;\n }\n /**\n * Returns the highest common factor of two integers.\n * @param a first parameter\n * @param b second parameter\n * @returns HCF of a and b\n */\n static HCF(e, t) {\n const i = e % t;\n return i === 0 ? t : Re.HCF(t, i);\n }\n}\nRe.TwoPi = Math.PI * 2;\nRe.WithinEpsilon = nr;\nRe.ToHex = $n;\nRe.Clamp = Vi;\nRe.Lerp = qr;\nRe.RandomRange = Wt;\nRe.NormalizeRadians = wC;\nfunction gh(a) {\n return Math.pow(a, mp);\n}\nfunction xh(a) {\n return a <= 0.04045 ? 0.0773993808 * a : Math.pow(0.947867299 * (a + 0.055), 2.4);\n}\nfunction vh(a) {\n return Math.pow(a, eu);\n}\nfunction Th(a) {\n return a <= 31308e-7 ? 12.92 * a : 1.055 * Math.pow(a, 0.41666) - 0.055;\n}\nclass re {\n /**\n * Creates a new Color3 object from red, green, blue values, all between 0 and 1\n * @param r defines the red component (between 0 and 1, default is 0)\n * @param g defines the green component (between 0 and 1, default is 0)\n * @param b defines the blue component (between 0 and 1, default is 0)\n */\n constructor(e = 0, t = 0, i = 0) {\n this.r = e, this.g = t, this.b = i;\n }\n /**\n * Creates a string with the Color3 current values\n * @returns the string representation of the Color3 object\n */\n toString() {\n return \"{R: \" + this.r + \" G:\" + this.g + \" B:\" + this.b + \"}\";\n }\n /**\n * Returns the string \"Color3\"\n * @returns \"Color3\"\n */\n getClassName() {\n return \"Color3\";\n }\n /**\n * Compute the Color3 hash code\n * @returns an unique number that can be used to hash Color3 objects\n */\n getHashCode() {\n let e = this.r * 255 | 0;\n return e = e * 397 ^ (this.g * 255 | 0), e = e * 397 ^ (this.b * 255 | 0), e;\n }\n // Operators\n /**\n * Stores in the given array from the given starting index the red, green, blue values as successive elements\n * @param array defines the array where to store the r,g,b components\n * @param index defines an optional index in the target array to define where to start storing values\n * @returns the current Color3 object\n */\n toArray(e, t = 0) {\n return e[t] = this.r, e[t + 1] = this.g, e[t + 2] = this.b, this;\n }\n /**\n * Update the current color with values stored in an array from the starting index of the given array\n * @param array defines the source array\n * @param offset defines an offset in the source array\n * @returns the current Color3 object\n */\n fromArray(e, t = 0) {\n return re.FromArrayToRef(e, t, this), this;\n }\n /**\n * Returns a new Color4 object from the current Color3 and the given alpha\n * @param alpha defines the alpha component on the new Color4 object (default is 1)\n * @returns a new Color4 object\n */\n toColor4(e = 1) {\n return new Ce(this.r, this.g, this.b, e);\n }\n /**\n * Returns a new array populated with 3 numeric elements : red, green and blue values\n * @returns the new array\n */\n asArray() {\n return [this.r, this.g, this.b];\n }\n /**\n * Returns the luminance value\n * @returns a float value\n */\n toLuminance() {\n return this.r * 0.3 + this.g * 0.59 + this.b * 0.11;\n }\n /**\n * Multiply each Color3 rgb values by the given Color3 rgb values in a new Color3 object\n * @param otherColor defines the second operand\n * @returns the new Color3 object\n */\n multiply(e) {\n return new re(this.r * e.r, this.g * e.g, this.b * e.b);\n }\n /**\n * Multiply the rgb values of the Color3 and the given Color3 and stores the result in the object \"result\"\n * @param otherColor defines the second operand\n * @param result defines the Color3 object where to store the result\n * @returns the result Color3\n */\n multiplyToRef(e, t) {\n return t.r = this.r * e.r, t.g = this.g * e.g, t.b = this.b * e.b, t;\n }\n /**\n * Multiplies the current Color3 coordinates by the given ones\n * @param otherColor defines the second operand\n * @returns the current updated Color3\n */\n multiplyInPlace(e) {\n return this.r *= e.r, this.g *= e.g, this.b *= e.b, this;\n }\n /**\n * Returns a new Color3 set with the result of the multiplication of the current Color3 coordinates by the given floats\n * @param r defines the r coordinate of the operand\n * @param g defines the g coordinate of the operand\n * @param b defines the b coordinate of the operand\n * @returns the new Color3\n */\n multiplyByFloats(e, t, i) {\n return new re(this.r * e, this.g * t, this.b * i);\n }\n /**\n * @internal\n * Do not use\n */\n divide(e) {\n throw new ReferenceError(\"Can not divide a color\");\n }\n /**\n * @internal\n * Do not use\n */\n divideToRef(e, t) {\n throw new ReferenceError(\"Can not divide a color\");\n }\n /**\n * @internal\n * Do not use\n */\n divideInPlace(e) {\n throw new ReferenceError(\"Can not divide a color\");\n }\n /**\n * Updates the current Color3 with the minimal coordinate values between its and the given color ones\n * @param other defines the second operand\n * @returns the current updated Color3\n */\n minimizeInPlace(e) {\n return this.minimizeInPlaceFromFloats(e.r, e.g, e.b);\n }\n /**\n * Updates the current Color3 with the maximal coordinate values between its and the given color ones.\n * @param other defines the second operand\n * @returns the current updated Color3\n */\n maximizeInPlace(e) {\n return this.maximizeInPlaceFromFloats(e.r, e.g, e.b);\n }\n /**\n * Updates the current Color3 with the minimal coordinate values between its and the given coordinates\n * @param r defines the r coordinate of the operand\n * @param g defines the g coordinate of the operand\n * @param b defines the b coordinate of the operand\n * @returns the current updated Color3\n */\n minimizeInPlaceFromFloats(e, t, i) {\n return this.r = Math.min(e, this.r), this.g = Math.min(t, this.g), this.b = Math.min(i, this.b), this;\n }\n /**\n * Updates the current Color3 with the maximal coordinate values between its and the given coordinates.\n * @param r defines the r coordinate of the operand\n * @param g defines the g coordinate of the operand\n * @param b defines the b coordinate of the operand\n * @returns the current updated Color3\n */\n maximizeInPlaceFromFloats(e, t, i) {\n return this.r = Math.max(e, this.r), this.g = Math.max(t, this.g), this.b = Math.max(i, this.b), this;\n }\n /**\n * @internal\n * Do not use\n */\n floorToRef(e) {\n throw new ReferenceError(\"Can not floor a color\");\n }\n /**\n * @internal\n * Do not use\n */\n floor() {\n throw new ReferenceError(\"Can not floor a color\");\n }\n /**\n * @internal\n * Do not use\n */\n fractToRef(e) {\n throw new ReferenceError(\"Can not fract a color\");\n }\n /**\n * @internal\n * Do not use\n */\n fract() {\n throw new ReferenceError(\"Can not fract a color\");\n }\n /**\n * Determines equality between Color3 objects\n * @param otherColor defines the second operand\n * @returns true if the rgb values are equal to the given ones\n */\n equals(e) {\n return e && this.r === e.r && this.g === e.g && this.b === e.b;\n }\n /**\n * Alias for equalsToFloats\n * @param r red color component\n * @param g green color component\n * @param b blue color component\n * @returns boolean\n */\n equalsFloats(e, t, i) {\n return this.equalsToFloats(e, t, i);\n }\n /**\n * Determines equality between the current Color3 object and a set of r,b,g values\n * @param r defines the red component to check\n * @param g defines the green component to check\n * @param b defines the blue component to check\n * @returns true if the rgb values are equal to the given ones\n */\n equalsToFloats(e, t, i) {\n return this.r === e && this.g === t && this.b === i;\n }\n /**\n * Returns true if the current Color3 and the given color coordinates are distant less than epsilon\n * @param otherColor defines the second operand\n * @param epsilon defines the minimal distance to define values as equals\n * @returns true if both colors are distant less than epsilon\n */\n equalsWithEpsilon(e, t = tt) {\n return Re.WithinEpsilon(this.r, e.r, t) && Re.WithinEpsilon(this.g, e.g, t) && Re.WithinEpsilon(this.b, e.b, t);\n }\n /**\n * @internal\n * Do not use\n */\n negate() {\n throw new ReferenceError(\"Can not negate a color\");\n }\n /**\n * @internal\n * Do not use\n */\n negateInPlace() {\n throw new ReferenceError(\"Can not negate a color\");\n }\n /**\n * @internal\n * Do not use\n */\n negateToRef(e) {\n throw new ReferenceError(\"Can not negate a color\");\n }\n /**\n * Creates a new Color3 with the current Color3 values multiplied by scale\n * @param scale defines the scaling factor to apply\n * @returns a new Color3 object\n */\n scale(e) {\n return new re(this.r * e, this.g * e, this.b * e);\n }\n /**\n * Multiplies the Color3 values by the float \"scale\"\n * @param scale defines the scaling factor to apply\n * @returns the current updated Color3\n */\n scaleInPlace(e) {\n return this.r *= e, this.g *= e, this.b *= e, this;\n }\n /**\n * Multiplies the rgb values by scale and stores the result into \"result\"\n * @param scale defines the scaling factor\n * @param result defines the Color3 object where to store the result\n * @returns the result Color3\n */\n scaleToRef(e, t) {\n return t.r = this.r * e, t.g = this.g * e, t.b = this.b * e, t;\n }\n /**\n * Scale the current Color3 values by a factor and add the result to a given Color3\n * @param scale defines the scale factor\n * @param result defines color to store the result into\n * @returns the result Color3\n */\n scaleAndAddToRef(e, t) {\n return t.r += this.r * e, t.g += this.g * e, t.b += this.b * e, t;\n }\n /**\n * Clamps the rgb values by the min and max values and stores the result into \"result\"\n * @param min defines minimum clamping value (default is 0)\n * @param max defines maximum clamping value (default is 1)\n * @param result defines color to store the result into\n * @returns the result Color3\n */\n clampToRef(e = 0, t = 1, i) {\n return i.r = Vi(this.r, e, t), i.g = Vi(this.g, e, t), i.b = Vi(this.b, e, t), i;\n }\n /**\n * Creates a new Color3 set with the added values of the current Color3 and of the given one\n * @param otherColor defines the second operand\n * @returns the new Color3\n */\n add(e) {\n return new re(this.r + e.r, this.g + e.g, this.b + e.b);\n }\n /**\n * Adds the given color to the current Color3\n * @param otherColor defines the second operand\n * @returns the current updated Color3\n */\n addInPlace(e) {\n return this.r += e.r, this.g += e.g, this.b += e.b, this;\n }\n /**\n * Adds the given coordinates to the current Color3\n * @param r defines the r coordinate of the operand\n * @param g defines the g coordinate of the operand\n * @param b defines the b coordinate of the operand\n * @returns the current updated Color3\n */\n addInPlaceFromFloats(e, t, i) {\n return this.r += e, this.g += t, this.b += i, this;\n }\n /**\n * Stores the result of the addition of the current Color3 and given one rgb values into \"result\"\n * @param otherColor defines the second operand\n * @param result defines Color3 object to store the result into\n * @returns the unmodified current Color3\n */\n addToRef(e, t) {\n return t.r = this.r + e.r, t.g = this.g + e.g, t.b = this.b + e.b, t;\n }\n /**\n * Returns a new Color3 set with the subtracted values of the given one from the current Color3\n * @param otherColor defines the second operand\n * @returns the new Color3\n */\n subtract(e) {\n return new re(this.r - e.r, this.g - e.g, this.b - e.b);\n }\n /**\n * Stores the result of the subtraction of given one from the current Color3 rgb values into \"result\"\n * @param otherColor defines the second operand\n * @param result defines Color3 object to store the result into\n * @returns the unmodified current Color3\n */\n subtractToRef(e, t) {\n return t.r = this.r - e.r, t.g = this.g - e.g, t.b = this.b - e.b, t;\n }\n /**\n * Subtract the given color from the current Color3\n * @param otherColor defines the second operand\n * @returns the current updated Color3\n */\n subtractInPlace(e) {\n return this.r -= e.r, this.g -= e.g, this.b -= e.b, this;\n }\n /**\n * Returns a new Color3 set with the subtraction of the given floats from the current Color3 coordinates\n * @param r defines the r coordinate of the operand\n * @param g defines the g coordinate of the operand\n * @param b defines the b coordinate of the operand\n * @returns the resulting Color3\n */\n subtractFromFloats(e, t, i) {\n return new re(this.r - e, this.g - t, this.b - i);\n }\n /**\n * Subtracts the given floats from the current Color3 coordinates and set the given color \"result\" with this result\n * @param r defines the r coordinate of the operand\n * @param g defines the g coordinate of the operand\n * @param b defines the b coordinate of the operand\n * @param result defines the Color3 object where to store the result\n * @returns the result\n */\n subtractFromFloatsToRef(e, t, i, s) {\n return s.r = this.r - e, s.g = this.g - t, s.b = this.b - i, s;\n }\n /**\n * Copy the current object\n * @returns a new Color3 copied the current one\n */\n clone() {\n return new re(this.r, this.g, this.b);\n }\n /**\n * Copies the rgb values from the source in the current Color3\n * @param source defines the source Color3 object\n * @returns the updated Color3 object\n */\n copyFrom(e) {\n return this.r = e.r, this.g = e.g, this.b = e.b, this;\n }\n /**\n * Updates the Color3 rgb values from the given floats\n * @param r defines the red component to read from\n * @param g defines the green component to read from\n * @param b defines the blue component to read from\n * @returns the current Color3 object\n */\n copyFromFloats(e, t, i) {\n return this.r = e, this.g = t, this.b = i, this;\n }\n /**\n * Updates the Color3 rgb values from the given floats\n * @param r defines the red component to read from\n * @param g defines the green component to read from\n * @param b defines the blue component to read from\n * @returns the current Color3 object\n */\n set(e, t, i) {\n return this.copyFromFloats(e, t, i);\n }\n /**\n * Copies the given float to the current Color3 coordinates\n * @param v defines the r, g and b coordinates of the operand\n * @returns the current updated Color3\n */\n setAll(e) {\n return this.r = this.g = this.b = e, this;\n }\n /**\n * Compute the Color3 hexadecimal code as a string\n * @returns a string containing the hexadecimal representation of the Color3 object\n */\n toHexString() {\n const e = Math.round(this.r * 255), t = Math.round(this.g * 255), i = Math.round(this.b * 255);\n return \"#\" + $n(e) + $n(t) + $n(i);\n }\n /**\n * Converts current color in rgb space to HSV values\n * @returns a new color3 representing the HSV values\n */\n toHSV() {\n return this.toHSVToRef(new re());\n }\n /**\n * Converts current color in rgb space to HSV values\n * @param result defines the Color3 where to store the HSV values\n * @returns the updated result\n */\n toHSVToRef(e) {\n const t = this.r, i = this.g, s = this.b, r = Math.max(t, i, s), n = Math.min(t, i, s);\n let o = 0, l = 0;\n const h = r, c = r - n;\n return r !== 0 && (l = c / r), r != n && (r == t ? (o = (i - s) / c, i < s && (o += 6)) : r == i ? o = (s - t) / c + 2 : r == s && (o = (t - i) / c + 4), o *= 60), e.r = o, e.g = l, e.b = h, e;\n }\n /**\n * Computes a new Color3 converted from the current one to linear space\n * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)\n * @returns a new Color3 object\n */\n toLinearSpace(e = !1) {\n const t = new re();\n return this.toLinearSpaceToRef(t, e), t;\n }\n /**\n * Converts the Color3 values to linear space and stores the result in \"convertedColor\"\n * @param convertedColor defines the Color3 object where to store the linear space version\n * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)\n * @returns the unmodified Color3\n */\n toLinearSpaceToRef(e, t = !1) {\n return t ? (e.r = xh(this.r), e.g = xh(this.g), e.b = xh(this.b)) : (e.r = gh(this.r), e.g = gh(this.g), e.b = gh(this.b)), this;\n }\n /**\n * Computes a new Color3 converted from the current one to gamma space\n * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)\n * @returns a new Color3 object\n */\n toGammaSpace(e = !1) {\n const t = new re();\n return this.toGammaSpaceToRef(t, e), t;\n }\n /**\n * Converts the Color3 values to gamma space and stores the result in \"convertedColor\"\n * @param convertedColor defines the Color3 object where to store the gamma space version\n * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)\n * @returns the unmodified Color3\n */\n toGammaSpaceToRef(e, t = !1) {\n return t ? (e.r = Th(this.r), e.g = Th(this.g), e.b = Th(this.b)) : (e.r = vh(this.r), e.g = vh(this.g), e.b = vh(this.b)), this;\n }\n /**\n * Converts Hue, saturation and value to a Color3 (RGB)\n * @param hue defines the hue (value between 0 and 360)\n * @param saturation defines the saturation (value between 0 and 1)\n * @param value defines the value (value between 0 and 1)\n * @param result defines the Color3 where to store the RGB values\n * @returns the updated result\n */\n static HSVtoRGBToRef(e, t, i, s) {\n const r = i * t, n = e / 60, o = r * (1 - Math.abs(n % 2 - 1));\n let l = 0, h = 0, c = 0;\n n >= 0 && n <= 1 ? (l = r, h = o) : n >= 1 && n <= 2 ? (l = o, h = r) : n >= 2 && n <= 3 ? (h = r, c = o) : n >= 3 && n <= 4 ? (h = o, c = r) : n >= 4 && n <= 5 ? (l = o, c = r) : n >= 5 && n <= 6 && (l = r, c = o);\n const u = i - r;\n return s.r = l + u, s.g = h + u, s.b = c + u, s;\n }\n /**\n * Converts Hue, saturation and value to a new Color3 (RGB)\n * @param hue defines the hue (value between 0 and 360)\n * @param saturation defines the saturation (value between 0 and 1)\n * @param value defines the value (value between 0 and 1)\n * @returns a new Color3 object\n */\n static FromHSV(e, t, i) {\n const s = new re(0, 0, 0);\n return re.HSVtoRGBToRef(e, t, i, s), s;\n }\n /**\n * Creates a new Color3 from the string containing valid hexadecimal values\n * @param hex defines a string containing valid hexadecimal values\n * @returns a new Color3 object\n */\n static FromHexString(e) {\n if (e.substring(0, 1) !== \"#\" || e.length !== 7)\n return new re(0, 0, 0);\n const t = parseInt(e.substring(1, 3), 16), i = parseInt(e.substring(3, 5), 16), s = parseInt(e.substring(5, 7), 16);\n return re.FromInts(t, i, s);\n }\n /**\n * Creates a new Color3 from the starting index of the given array\n * @param array defines the source array\n * @param offset defines an offset in the source array\n * @returns a new Color3 object\n */\n static FromArray(e, t = 0) {\n return new re(e[t], e[t + 1], e[t + 2]);\n }\n /**\n * Creates a new Color3 from the starting index element of the given array\n * @param array defines the source array to read from\n * @param offset defines the offset in the source array\n * @param result defines the target Color3 object\n */\n static FromArrayToRef(e, t = 0, i) {\n i.r = e[t], i.g = e[t + 1], i.b = e[t + 2];\n }\n /**\n * Creates a new Color3 from integer values (\\< 256)\n * @param r defines the red component to read from (value between 0 and 255)\n * @param g defines the green component to read from (value between 0 and 255)\n * @param b defines the blue component to read from (value between 0 and 255)\n * @returns a new Color3 object\n */\n static FromInts(e, t, i) {\n return new re(e / 255, t / 255, i / 255);\n }\n /**\n * Creates a new Color3 with values linearly interpolated of \"amount\" between the start Color3 and the end Color3\n * @param start defines the start Color3 value\n * @param end defines the end Color3 value\n * @param amount defines the gradient value between start and end\n * @returns a new Color3 object\n */\n static Lerp(e, t, i) {\n const s = new re(0, 0, 0);\n return re.LerpToRef(e, t, i, s), s;\n }\n /**\n * Creates a new Color3 with values linearly interpolated of \"amount\" between the start Color3 and the end Color3\n * @param left defines the start value\n * @param right defines the end value\n * @param amount defines the gradient factor\n * @param result defines the Color3 object where to store the result\n */\n static LerpToRef(e, t, i, s) {\n s.r = e.r + (t.r - e.r) * i, s.g = e.g + (t.g - e.g) * i, s.b = e.b + (t.b - e.b) * i;\n }\n /**\n * Returns a new Color3 located for \"amount\" (float) on the Hermite interpolation spline defined by the vectors \"value1\", \"tangent1\", \"value2\", \"tangent2\"\n * @param value1 defines the first control point\n * @param tangent1 defines the first tangent Color3\n * @param value2 defines the second control point\n * @param tangent2 defines the second tangent Color3\n * @param amount defines the amount on the interpolation spline (between 0 and 1)\n * @returns the new Color3\n */\n static Hermite(e, t, i, s, r) {\n const n = r * r, o = r * n, l = 2 * o - 3 * n + 1, h = -2 * o + 3 * n, c = o - 2 * n + r, u = o - n, d = e.r * l + i.r * h + t.r * c + s.r * u, f = e.g * l + i.g * h + t.g * c + s.g * u, p = e.b * l + i.b * h + t.b * c + s.b * u;\n return new re(d, f, p);\n }\n /**\n * Returns a new Color3 which is the 1st derivative of the Hermite spline defined by the colors \"value1\", \"value2\", \"tangent1\", \"tangent2\".\n * @param value1 defines the first control point\n * @param tangent1 defines the first tangent\n * @param value2 defines the second control point\n * @param tangent2 defines the second tangent\n * @param time define where the derivative must be done\n * @returns 1st derivative\n */\n static Hermite1stDerivative(e, t, i, s, r) {\n const n = re.Black();\n return this.Hermite1stDerivativeToRef(e, t, i, s, r, n), n;\n }\n /**\n * Returns a new Color3 which is the 1st derivative of the Hermite spline defined by the colors \"value1\", \"value2\", \"tangent1\", \"tangent2\".\n * @param value1 defines the first control point\n * @param tangent1 defines the first tangent\n * @param value2 defines the second control point\n * @param tangent2 defines the second tangent\n * @param time define where the derivative must be done\n * @param result define where to store the derivative\n */\n static Hermite1stDerivativeToRef(e, t, i, s, r, n) {\n const o = r * r;\n n.r = (o - r) * 6 * e.r + (3 * o - 4 * r + 1) * t.r + (-o + r) * 6 * i.r + (3 * o - 2 * r) * s.r, n.g = (o - r) * 6 * e.g + (3 * o - 4 * r + 1) * t.g + (-o + r) * 6 * i.g + (3 * o - 2 * r) * s.g, n.b = (o - r) * 6 * e.b + (3 * o - 4 * r + 1) * t.b + (-o + r) * 6 * i.b + (3 * o - 2 * r) * s.b;\n }\n /**\n * Returns a Color3 value containing a red color\n * @returns a new Color3 object\n */\n static Red() {\n return new re(1, 0, 0);\n }\n /**\n * Returns a Color3 value containing a green color\n * @returns a new Color3 object\n */\n static Green() {\n return new re(0, 1, 0);\n }\n /**\n * Returns a Color3 value containing a blue color\n * @returns a new Color3 object\n */\n static Blue() {\n return new re(0, 0, 1);\n }\n /**\n * Returns a Color3 value containing a black color\n * @returns a new Color3 object\n */\n static Black() {\n return new re(0, 0, 0);\n }\n /**\n * Gets a Color3 value containing a black color that must not be updated\n */\n static get BlackReadOnly() {\n return re._BlackReadOnly;\n }\n /**\n * Returns a Color3 value containing a white color\n * @returns a new Color3 object\n */\n static White() {\n return new re(1, 1, 1);\n }\n /**\n * Returns a Color3 value containing a purple color\n * @returns a new Color3 object\n */\n static Purple() {\n return new re(0.5, 0, 0.5);\n }\n /**\n * Returns a Color3 value containing a magenta color\n * @returns a new Color3 object\n */\n static Magenta() {\n return new re(1, 0, 1);\n }\n /**\n * Returns a Color3 value containing a yellow color\n * @returns a new Color3 object\n */\n static Yellow() {\n return new re(1, 1, 0);\n }\n /**\n * Returns a Color3 value containing a gray color\n * @returns a new Color3 object\n */\n static Gray() {\n return new re(0.5, 0.5, 0.5);\n }\n /**\n * Returns a Color3 value containing a teal color\n * @returns a new Color3 object\n */\n static Teal() {\n return new re(0, 1, 1);\n }\n /**\n * Returns a Color3 value containing a random color\n * @returns a new Color3 object\n */\n static Random() {\n return new re(Math.random(), Math.random(), Math.random());\n }\n}\nre._BlackReadOnly = re.Black();\nObject.defineProperties(re.prototype, {\n dimension: { value: [3] },\n rank: { value: 1 }\n});\nclass Ce {\n /**\n * Creates a new Color4 object from red, green, blue values, all between 0 and 1\n * @param r defines the red component (between 0 and 1, default is 0)\n * @param g defines the green component (between 0 and 1, default is 0)\n * @param b defines the blue component (between 0 and 1, default is 0)\n * @param a defines the alpha component (between 0 and 1, default is 1)\n */\n constructor(e = 0, t = 0, i = 0, s = 1) {\n this.r = e, this.g = t, this.b = i, this.a = s;\n }\n // Operators\n /**\n * Creates a new array populated with 4 numeric elements : red, green, blue, alpha values\n * @returns the new array\n */\n asArray() {\n return [this.r, this.g, this.b, this.a];\n }\n /**\n * Stores from the starting index in the given array the Color4 successive values\n * @param array defines the array where to store the r,g,b components\n * @param index defines an optional index in the target array to define where to start storing values\n * @returns the current Color4 object\n */\n toArray(e, t = 0) {\n return e[t] = this.r, e[t + 1] = this.g, e[t + 2] = this.b, e[t + 3] = this.a, this;\n }\n /**\n * Update the current color with values stored in an array from the starting index of the given array\n * @param array defines the source array\n * @param offset defines an offset in the source array\n * @returns the current Color4 object\n */\n fromArray(e, t = 0) {\n return this.r = e[t], this.g = e[t + 1], this.b = e[t + 2], this.a = e[t + 3], this;\n }\n /**\n * Determines equality between Color4 objects\n * @param otherColor defines the second operand\n * @returns true if the rgba values are equal to the given ones\n */\n equals(e) {\n return e && this.r === e.r && this.g === e.g && this.b === e.b && this.a === e.a;\n }\n /**\n * Creates a new Color4 set with the added values of the current Color4 and of the given one\n * @param otherColor defines the second operand\n * @returns a new Color4 object\n */\n add(e) {\n return new Ce(this.r + e.r, this.g + e.g, this.b + e.b, this.a + e.a);\n }\n /**\n * Updates the given color \"result\" with the result of the addition of the current Color4 and the given one.\n * @param otherColor the color to add\n * @param result the color to store the result\n * @returns result input\n */\n addToRef(e, t) {\n return t.r = this.r + e.r, t.g = this.g + e.g, t.b = this.b + e.b, t.a = this.a + e.a, t;\n }\n /**\n * Adds in place the given Color4 values to the current Color4 object\n * @param otherColor defines the second operand\n * @returns the current updated Color4 object\n */\n addInPlace(e) {\n return this.r += e.r, this.g += e.g, this.b += e.b, this.a += e.a, this;\n }\n /**\n * Adds the given coordinates to the current Color4\n * @param r defines the r coordinate of the operand\n * @param g defines the g coordinate of the operand\n * @param b defines the b coordinate of the operand\n * @param a defines the a coordinate of the operand\n * @returns the current updated Color4\n */\n addInPlaceFromFloats(e, t, i, s) {\n return this.r += e, this.g += t, this.b += i, this.a += s, this;\n }\n /**\n * Creates a new Color4 set with the subtracted values of the given one from the current Color4\n * @param otherColor defines the second operand\n * @returns a new Color4 object\n */\n subtract(e) {\n return new Ce(this.r - e.r, this.g - e.g, this.b - e.b, this.a - e.a);\n }\n /**\n * Subtracts the given ones from the current Color4 values and stores the results in \"result\"\n * @param otherColor defines the second operand\n * @param result defines the Color4 object where to store the result\n * @returns the result Color4 object\n */\n subtractToRef(e, t) {\n return t.r = this.r - e.r, t.g = this.g - e.g, t.b = this.b - e.b, t.a = this.a - e.a, t;\n }\n /**\n * Subtract in place the given color from the current Color4.\n * @param otherColor the color to subtract\n * @returns the updated Color4.\n */\n subtractInPlace(e) {\n return this.r -= e.r, this.g -= e.g, this.b -= e.b, this.a -= e.a, this;\n }\n /**\n * Returns a new Color4 set with the result of the subtraction of the given floats from the current Color4 coordinates.\n * @param r value to subtract\n * @param g value to subtract\n * @param b value to subtract\n * @param a value to subtract\n * @returns new color containing the result\n */\n subtractFromFloats(e, t, i, s) {\n return new Ce(this.r - e, this.g - t, this.b - i, this.a - s);\n }\n /**\n * Sets the given color \"result\" set with the result of the subtraction of the given floats from the current Color4 coordinates.\n * @param r value to subtract\n * @param g value to subtract\n * @param b value to subtract\n * @param a value to subtract\n * @param result the color to store the result in\n * @returns result input\n */\n subtractFromFloatsToRef(e, t, i, s, r) {\n return r.r = this.r - e, r.g = this.g - t, r.b = this.b - i, r.a = this.a - s, r;\n }\n /**\n * Creates a new Color4 with the current Color4 values multiplied by scale\n * @param scale defines the scaling factor to apply\n * @returns a new Color4 object\n */\n scale(e) {\n return new Ce(this.r * e, this.g * e, this.b * e, this.a * e);\n }\n /**\n * Multiplies the Color4 values by the float \"scale\"\n * @param scale defines the scaling factor to apply\n * @returns the current updated Color4\n */\n scaleInPlace(e) {\n return this.r *= e, this.g *= e, this.b *= e, this.a *= e, this;\n }\n /**\n * Multiplies the current Color4 values by scale and stores the result in \"result\"\n * @param scale defines the scaling factor to apply\n * @param result defines the Color4 object where to store the result\n * @returns the result Color4\n */\n scaleToRef(e, t) {\n return t.r = this.r * e, t.g = this.g * e, t.b = this.b * e, t.a = this.a * e, t;\n }\n /**\n * Scale the current Color4 values by a factor and add the result to a given Color4\n * @param scale defines the scale factor\n * @param result defines the Color4 object where to store the result\n * @returns the result Color4\n */\n scaleAndAddToRef(e, t) {\n return t.r += this.r * e, t.g += this.g * e, t.b += this.b * e, t.a += this.a * e, t;\n }\n /**\n * Clamps the rgb values by the min and max values and stores the result into \"result\"\n * @param min defines minimum clamping value (default is 0)\n * @param max defines maximum clamping value (default is 1)\n * @param result defines color to store the result into.\n * @returns the result Color4\n */\n clampToRef(e = 0, t = 1, i) {\n return i.r = Vi(this.r, e, t), i.g = Vi(this.g, e, t), i.b = Vi(this.b, e, t), i.a = Vi(this.a, e, t), i;\n }\n /**\n * Multiply an Color4 value by another and return a new Color4 object\n * @param color defines the Color4 value to multiply by\n * @returns a new Color4 object\n */\n multiply(e) {\n return new Ce(this.r * e.r, this.g * e.g, this.b * e.b, this.a * e.a);\n }\n /**\n * Multiply a Color4 value by another and push the result in a reference value\n * @param color defines the Color4 value to multiply by\n * @param result defines the Color4 to fill the result in\n * @returns the result Color4\n */\n multiplyToRef(e, t) {\n return t.r = this.r * e.r, t.g = this.g * e.g, t.b = this.b * e.b, t.a = this.a * e.a, t;\n }\n /**\n * Multiplies in place the current Color4 by the given one.\n * @param otherColor color to multiple with\n * @returns the updated Color4.\n */\n multiplyInPlace(e) {\n return this.r *= e.r, this.g *= e.g, this.b *= e.b, this.a *= e.a, this;\n }\n /**\n * Returns a new Color4 set with the multiplication result of the given floats and the current Color4 coordinates.\n * @param r value multiply with\n * @param g value multiply with\n * @param b value multiply with\n * @param a value multiply with\n * @returns resulting new color\n */\n multiplyByFloats(e, t, i, s) {\n return new Ce(this.r * e, this.g * t, this.b * i, this.a * s);\n }\n /**\n * @internal\n * Do not use\n */\n divide(e) {\n throw new ReferenceError(\"Can not divide a color\");\n }\n /**\n * @internal\n * Do not use\n */\n divideToRef(e, t) {\n throw new ReferenceError(\"Can not divide a color\");\n }\n /**\n * @internal\n * Do not use\n */\n divideInPlace(e) {\n throw new ReferenceError(\"Can not divide a color\");\n }\n /**\n * Updates the Color4 coordinates with the minimum values between its own and the given color ones\n * @param other defines the second operand\n * @returns the current updated Color4\n */\n minimizeInPlace(e) {\n return this.r = Math.min(this.r, e.r), this.g = Math.min(this.g, e.g), this.b = Math.min(this.b, e.b), this.a = Math.min(this.a, e.a), this;\n }\n /**\n * Updates the Color4 coordinates with the maximum values between its own and the given color ones\n * @param other defines the second operand\n * @returns the current updated Color4\n */\n maximizeInPlace(e) {\n return this.r = Math.max(this.r, e.r), this.g = Math.max(this.g, e.g), this.b = Math.max(this.b, e.b), this.a = Math.max(this.a, e.a), this;\n }\n /**\n * Updates the current Color4 with the minimal coordinate values between its and the given coordinates\n * @param r defines the r coordinate of the operand\n * @param g defines the g coordinate of the operand\n * @param b defines the b coordinate of the operand\n * @param a defines the a coordinate of the operand\n * @returns the current updated Color4\n */\n minimizeInPlaceFromFloats(e, t, i, s) {\n return this.r = Math.min(e, this.r), this.g = Math.min(t, this.g), this.b = Math.min(i, this.b), this.a = Math.min(s, this.a), this;\n }\n /**\n * Updates the current Color4 with the maximal coordinate values between its and the given coordinates.\n * @param r defines the r coordinate of the operand\n * @param g defines the g coordinate of the operand\n * @param b defines the b coordinate of the operand\n * @param a defines the a coordinate of the operand\n * @returns the current updated Color4\n */\n maximizeInPlaceFromFloats(e, t, i, s) {\n return this.r = Math.max(e, this.r), this.g = Math.max(t, this.g), this.b = Math.max(i, this.b), this.a = Math.max(s, this.a), this;\n }\n /**\n * @internal\n * Do not use\n */\n floorToRef(e) {\n throw new ReferenceError(\"Can not floor a color\");\n }\n /**\n * @internal\n * Do not use\n */\n floor() {\n throw new ReferenceError(\"Can not floor a color\");\n }\n /**\n * @internal\n * Do not use\n */\n fractToRef(e) {\n throw new ReferenceError(\"Can not fract a color\");\n }\n /**\n * @internal\n * Do not use\n */\n fract() {\n throw new ReferenceError(\"Can not fract a color\");\n }\n /**\n * @internal\n * Do not use\n */\n negate() {\n throw new ReferenceError(\"Can not negate a color\");\n }\n /**\n * @internal\n * Do not use\n */\n negateInPlace() {\n throw new ReferenceError(\"Can not negate a color\");\n }\n /**\n * @internal\n * Do not use\n */\n negateToRef(e) {\n throw new ReferenceError(\"Can not negate a color\");\n }\n /**\n * Boolean : True if the current Color4 coordinates are each beneath the distance \"epsilon\" from the given color ones.\n * @param otherColor color to compare against\n * @param epsilon (Default: very small number)\n * @returns true if they are equal\n */\n equalsWithEpsilon(e, t = tt) {\n return Re.WithinEpsilon(this.r, e.r, t) && Re.WithinEpsilon(this.g, e.g, t) && Re.WithinEpsilon(this.b, e.b, t) && Re.WithinEpsilon(this.a, e.a, t);\n }\n /**\n * Boolean : True if the given floats are strictly equal to the current Color4 coordinates.\n * @param x x value to compare against\n * @param y y value to compare against\n * @param z z value to compare against\n * @param w w value to compare against\n * @returns true if equal\n */\n equalsToFloats(e, t, i, s) {\n return this.r === e && this.g === t && this.b === i && this.a === s;\n }\n /**\n * Creates a string with the Color4 current values\n * @returns the string representation of the Color4 object\n */\n toString() {\n return \"{R: \" + this.r + \" G:\" + this.g + \" B:\" + this.b + \" A:\" + this.a + \"}\";\n }\n /**\n * Returns the string \"Color4\"\n * @returns \"Color4\"\n */\n getClassName() {\n return \"Color4\";\n }\n /**\n * Compute the Color4 hash code\n * @returns an unique number that can be used to hash Color4 objects\n */\n getHashCode() {\n let e = this.r * 255 | 0;\n return e = e * 397 ^ (this.g * 255 | 0), e = e * 397 ^ (this.b * 255 | 0), e = e * 397 ^ (this.a * 255 | 0), e;\n }\n /**\n * Creates a new Color4 copied from the current one\n * @returns a new Color4 object\n */\n clone() {\n return new Ce().copyFrom(this);\n }\n /**\n * Copies the given Color4 values into the current one\n * @param source defines the source Color4 object\n * @returns the current updated Color4 object\n */\n copyFrom(e) {\n return this.r = e.r, this.g = e.g, this.b = e.b, this.a = e.a, this;\n }\n /**\n * Copies the given float values into the current one\n * @param r defines the red component to read from\n * @param g defines the green component to read from\n * @param b defines the blue component to read from\n * @param a defines the alpha component to read from\n * @returns the current updated Color4 object\n */\n copyFromFloats(e, t, i, s) {\n return this.r = e, this.g = t, this.b = i, this.a = s, this;\n }\n /**\n * Copies the given float values into the current one\n * @param r defines the red component to read from\n * @param g defines the green component to read from\n * @param b defines the blue component to read from\n * @param a defines the alpha component to read from\n * @returns the current updated Color4 object\n */\n set(e, t, i, s) {\n return this.copyFromFloats(e, t, i, s);\n }\n /**\n * Copies the given float to the current Vector4 coordinates\n * @param v defines the r, g, b, and a coordinates of the operand\n * @returns the current updated Vector4\n */\n setAll(e) {\n return this.r = this.g = this.b = this.a = e, this;\n }\n /**\n * Compute the Color4 hexadecimal code as a string\n * @param returnAsColor3 defines if the string should only contains RGB values (off by default)\n * @returns a string containing the hexadecimal representation of the Color4 object\n */\n toHexString(e = !1) {\n const t = Math.round(this.r * 255), i = Math.round(this.g * 255), s = Math.round(this.b * 255);\n if (e)\n return \"#\" + $n(t) + $n(i) + $n(s);\n const r = Math.round(this.a * 255);\n return \"#\" + $n(t) + $n(i) + $n(s) + $n(r);\n }\n /**\n * Computes a new Color4 converted from the current one to linear space\n * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)\n * @returns a new Color4 object\n */\n toLinearSpace(e = !1) {\n const t = new Ce();\n return this.toLinearSpaceToRef(t, e), t;\n }\n /**\n * Converts the Color4 values to linear space and stores the result in \"convertedColor\"\n * @param convertedColor defines the Color4 object where to store the linear space version\n * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)\n * @returns the unmodified Color4\n */\n toLinearSpaceToRef(e, t = !1) {\n return t ? (e.r = xh(this.r), e.g = xh(this.g), e.b = xh(this.b)) : (e.r = gh(this.r), e.g = gh(this.g), e.b = gh(this.b)), e.a = this.a, this;\n }\n /**\n * Computes a new Color4 converted from the current one to gamma space\n * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)\n * @returns a new Color4 object\n */\n toGammaSpace(e = !1) {\n const t = new Ce();\n return this.toGammaSpaceToRef(t, e), t;\n }\n /**\n * Converts the Color4 values to gamma space and stores the result in \"convertedColor\"\n * @param convertedColor defines the Color4 object where to store the gamma space version\n * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)\n * @returns the unmodified Color4\n */\n toGammaSpaceToRef(e, t = !1) {\n return t ? (e.r = Th(this.r), e.g = Th(this.g), e.b = Th(this.b)) : (e.r = vh(this.r), e.g = vh(this.g), e.b = vh(this.b)), e.a = this.a, this;\n }\n // Statics\n /**\n * Creates a new Color4 from the string containing valid hexadecimal values.\n *\n * A valid hex string is either in the format #RRGGBB or #RRGGBBAA.\n *\n * When a hex string without alpha is passed, the resulting Color4 has\n * its alpha value set to 1.0.\n *\n * An invalid string results in a Color with all its channels set to 0.0,\n * i.e. \"transparent black\".\n *\n * @param hex defines a string containing valid hexadecimal values\n * @returns a new Color4 object\n */\n static FromHexString(e) {\n if (e.substring(0, 1) !== \"#\" || e.length !== 9 && e.length !== 7)\n return new Ce(0, 0, 0, 0);\n const t = parseInt(e.substring(1, 3), 16), i = parseInt(e.substring(3, 5), 16), s = parseInt(e.substring(5, 7), 16), r = e.length === 9 ? parseInt(e.substring(7, 9), 16) : 255;\n return Ce.FromInts(t, i, s, r);\n }\n /**\n * Creates a new Color4 object set with the linearly interpolated values of \"amount\" between the left Color4 object and the right Color4 object\n * @param left defines the start value\n * @param right defines the end value\n * @param amount defines the gradient factor\n * @returns a new Color4 object\n */\n static Lerp(e, t, i) {\n return Ce.LerpToRef(e, t, i, new Ce());\n }\n /**\n * Set the given \"result\" with the linearly interpolated values of \"amount\" between the left Color4 object and the right Color4 object\n * @param left defines the start value\n * @param right defines the end value\n * @param amount defines the gradient factor\n * @param result defines the Color4 object where to store data\n * @returns the updated result\n */\n static LerpToRef(e, t, i, s) {\n return s.r = e.r + (t.r - e.r) * i, s.g = e.g + (t.g - e.g) * i, s.b = e.b + (t.b - e.b) * i, s.a = e.a + (t.a - e.a) * i, s;\n }\n /**\n * Interpolate between two Color4 using Hermite interpolation\n * @param value1 defines first Color4\n * @param tangent1 defines the incoming tangent\n * @param value2 defines second Color4\n * @param tangent2 defines the outgoing tangent\n * @param amount defines the target Color4\n * @returns the new interpolated Color4\n */\n static Hermite(e, t, i, s, r) {\n const n = r * r, o = r * n, l = 2 * o - 3 * n + 1, h = -2 * o + 3 * n, c = o - 2 * n + r, u = o - n, d = e.r * l + i.r * h + t.r * c + s.r * u, f = e.g * l + i.g * h + t.g * c + s.g * u, p = e.b * l + i.b * h + t.b * c + s.b * u, _ = e.a * l + i.a * h + t.a * c + s.a * u;\n return new Ce(d, f, p, _);\n }\n /**\n * Returns a new Color4 which is the 1st derivative of the Hermite spline defined by the colors \"value1\", \"value2\", \"tangent1\", \"tangent2\".\n * @param value1 defines the first control point\n * @param tangent1 defines the first tangent\n * @param value2 defines the second control point\n * @param tangent2 defines the second tangent\n * @param time define where the derivative must be done\n * @returns 1st derivative\n */\n static Hermite1stDerivative(e, t, i, s, r) {\n const n = new Ce();\n return this.Hermite1stDerivativeToRef(e, t, i, s, r, n), n;\n }\n /**\n * Update a Color4 with the 1st derivative of the Hermite spline defined by the colors \"value1\", \"value2\", \"tangent1\", \"tangent2\".\n * @param value1 defines the first control point\n * @param tangent1 defines the first tangent\n * @param value2 defines the second control point\n * @param tangent2 defines the second tangent\n * @param time define where the derivative must be done\n * @param result define where to store the derivative\n */\n static Hermite1stDerivativeToRef(e, t, i, s, r, n) {\n const o = r * r;\n n.r = (o - r) * 6 * e.r + (3 * o - 4 * r + 1) * t.r + (-o + r) * 6 * i.r + (3 * o - 2 * r) * s.r, n.g = (o - r) * 6 * e.g + (3 * o - 4 * r + 1) * t.g + (-o + r) * 6 * i.g + (3 * o - 2 * r) * s.g, n.b = (o - r) * 6 * e.b + (3 * o - 4 * r + 1) * t.b + (-o + r) * 6 * i.b + (3 * o - 2 * r) * s.b, n.a = (o - r) * 6 * e.a + (3 * o - 4 * r + 1) * t.a + (-o + r) * 6 * i.a + (3 * o - 2 * r) * s.a;\n }\n /**\n * Creates a new Color4 from a Color3 and an alpha value\n * @param color3 defines the source Color3 to read from\n * @param alpha defines the alpha component (1.0 by default)\n * @returns a new Color4 object\n */\n static FromColor3(e, t = 1) {\n return new Ce(e.r, e.g, e.b, t);\n }\n /**\n * Creates a new Color4 from the starting index element of the given array\n * @param array defines the source array to read from\n * @param offset defines the offset in the source array\n * @returns a new Color4 object\n */\n static FromArray(e, t = 0) {\n return new Ce(e[t], e[t + 1], e[t + 2], e[t + 3]);\n }\n /**\n * Creates a new Color4 from the starting index element of the given array\n * @param array defines the source array to read from\n * @param offset defines the offset in the source array\n * @param result defines the target Color4 object\n */\n static FromArrayToRef(e, t = 0, i) {\n i.r = e[t], i.g = e[t + 1], i.b = e[t + 2], i.a = e[t + 3];\n }\n /**\n * Creates a new Color3 from integer values (less than 256)\n * @param r defines the red component to read from (value between 0 and 255)\n * @param g defines the green component to read from (value between 0 and 255)\n * @param b defines the blue component to read from (value between 0 and 255)\n * @param a defines the alpha component to read from (value between 0 and 255)\n * @returns a new Color3 object\n */\n static FromInts(e, t, i, s) {\n return new Ce(e / 255, t / 255, i / 255, s / 255);\n }\n /**\n * Check the content of a given array and convert it to an array containing RGBA data\n * If the original array was already containing count * 4 values then it is returned directly\n * @param colors defines the array to check\n * @param count defines the number of RGBA data to expect\n * @returns an array containing count * 4 values (RGBA)\n */\n static CheckColors4(e, t) {\n if (e.length === t * 3) {\n const i = [];\n for (let s = 0; s < e.length; s += 3) {\n const r = s / 3 * 4;\n i[r] = e[s], i[r + 1] = e[s + 1], i[r + 2] = e[s + 2], i[r + 3] = 1;\n }\n return i;\n }\n return e;\n }\n}\nObject.defineProperties(Ce.prototype, {\n dimension: { value: [4] },\n rank: { value: 1 }\n});\nclass wt {\n}\nwt.Color3 = _s.BuildArray(3, re.Black);\nwt.Color4 = _s.BuildArray(3, () => new Ce(0, 0, 0, 0));\nU(\"BABYLON.Color3\", re);\nU(\"BABYLON.Color4\", Ce);\nconst vS = function(a, e, t, i = {}) {\n const s = a();\n Ct && Ct.HasTags(e) && Ct.AddTagsTo(s, Ct.GetTags(e, !0));\n const r = Sg(s), n = {};\n for (const o in r) {\n const l = r[o], h = e[o], c = l.type;\n if (h != null && (o !== \"uniqueId\" || Ae.AllowLoadingUniqueId))\n switch (c) {\n case 0:\n case 6:\n case 11:\n s[o] = h;\n break;\n case 1:\n i.cloneTexturesOnlyOnce && n[h.uniqueId] ? s[o] = n[h.uniqueId] : (s[o] = t || h.isRenderTarget ? h : h.clone(), n[h.uniqueId] = s[o]);\n break;\n case 2:\n case 3:\n case 4:\n case 5:\n case 7:\n case 10:\n case 12:\n s[o] = t ? h : h.clone();\n break;\n }\n }\n return s;\n};\nclass Ae {\n /**\n * Appends the serialized animations from the source animations\n * @param source Source containing the animations\n * @param destination Target to store the animations\n */\n static AppendSerializedAnimations(e, t) {\n if (e.animations) {\n t.animations = [];\n for (let i = 0; i < e.animations.length; i++) {\n const s = e.animations[i];\n t.animations.push(s.serialize());\n }\n }\n }\n /**\n * Static function used to serialized a specific entity\n * @param entity defines the entity to serialize\n * @param serializationObject defines the optional target object where serialization data will be stored\n * @returns a JSON compatible object representing the serialization of the entity\n */\n static Serialize(e, t) {\n t || (t = {}), Ct && (t.tags = Ct.GetTags(e));\n const i = Sg(e);\n for (const s in i) {\n const r = i[s], n = r.sourceName || s, o = r.type, l = e[s];\n if (l != null && (s !== \"uniqueId\" || Ae.AllowLoadingUniqueId))\n switch (o) {\n case 0:\n t[n] = l;\n break;\n case 1:\n t[n] = l.serialize();\n break;\n case 2:\n t[n] = l.asArray();\n break;\n case 3:\n t[n] = l.serialize();\n break;\n case 4:\n t[n] = l.asArray();\n break;\n case 5:\n t[n] = l.asArray();\n break;\n case 6:\n t[n] = l.id;\n break;\n case 7:\n t[n] = l.serialize();\n break;\n case 8:\n t[n] = l.asArray();\n break;\n case 9:\n t[n] = l.serialize();\n break;\n case 10:\n t[n] = l.asArray();\n break;\n case 11:\n t[n] = l.id;\n break;\n case 12:\n t[n] = l.asArray();\n break;\n }\n }\n return t;\n }\n /**\n * Given a source json and a destination object in a scene, this function will parse the source and will try to apply its content to the destination object\n * @param source the source json data\n * @param destination the destination object\n * @param scene the scene where the object is\n * @param rootUrl root url to use to load assets\n */\n static ParseProperties(e, t, i, s) {\n s || (s = \"\");\n const r = Sg(t);\n for (const n in r) {\n const o = r[n], l = e[o.sourceName || n], h = o.type;\n if (l != null && (n !== \"uniqueId\" || Ae.AllowLoadingUniqueId)) {\n const c = t;\n switch (h) {\n case 0:\n c[n] = l;\n break;\n case 1:\n i && (c[n] = Ae._TextureParser(l, i, s));\n break;\n case 2:\n c[n] = re.FromArray(l);\n break;\n case 3:\n c[n] = Ae._FresnelParametersParser(l);\n break;\n case 4:\n c[n] = Q.FromArray(l);\n break;\n case 5:\n c[n] = g.FromArray(l);\n break;\n case 6:\n i && (c[n] = i.getLastMeshById(l));\n break;\n case 7:\n c[n] = Ae._ColorCurvesParser(l);\n break;\n case 8:\n c[n] = Ce.FromArray(l);\n break;\n case 9:\n c[n] = Ae._ImageProcessingConfigurationParser(l);\n break;\n case 10:\n c[n] = se.FromArray(l);\n break;\n case 11:\n i && (c[n] = i.getCameraById(l));\n break;\n case 12:\n c[n] = O.FromArray(l);\n break;\n }\n }\n }\n }\n /**\n * Creates a new entity from a serialization data object\n * @param creationFunction defines a function used to instanciated the new entity\n * @param source defines the source serialization data\n * @param scene defines the hosting scene\n * @param rootUrl defines the root url for resources\n * @returns a new entity\n */\n static Parse(e, t, i, s = null) {\n const r = e();\n return Ct && Ct.AddTagsTo(r, t.tags), Ae.ParseProperties(t, r, i, s), r;\n }\n /**\n * Clones an object\n * @param creationFunction defines the function used to instanciate the new object\n * @param source defines the source object\n * @param options defines the options to use\n * @returns the cloned object\n */\n static Clone(e, t, i = {}) {\n return vS(e, t, !1, i);\n }\n /**\n * Instanciates a new object based on a source one (some data will be shared between both object)\n * @param creationFunction defines the function used to instanciate the new object\n * @param source defines the source object\n * @returns the new object\n */\n static Instanciate(e, t) {\n return vS(e, t, !0);\n }\n}\nAe.AllowLoadingUniqueId = !1;\nAe._ImageProcessingConfigurationParser = (a) => {\n throw $e(\"ImageProcessingConfiguration\");\n};\nAe._FresnelParametersParser = (a) => {\n throw $e(\"FresnelParameters\");\n};\nAe._ColorCurvesParser = (a) => {\n throw $e(\"ColorCurves\");\n};\nAe._TextureParser = (a, e, t) => {\n throw $e(\"Texture\");\n};\nfunction FC(a) {\n a.push(\"vCameraColorCurveNeutral\", \"vCameraColorCurvePositive\", \"vCameraColorCurveNegative\");\n}\nclass Li {\n constructor() {\n this._dirty = !0, this._tempColor = new Ce(0, 0, 0, 0), this._globalCurve = new Ce(0, 0, 0, 0), this._highlightsCurve = new Ce(0, 0, 0, 0), this._midtonesCurve = new Ce(0, 0, 0, 0), this._shadowsCurve = new Ce(0, 0, 0, 0), this._positiveCurve = new Ce(0, 0, 0, 0), this._negativeCurve = new Ce(0, 0, 0, 0), this._globalHue = 30, this._globalDensity = 0, this._globalSaturation = 0, this._globalExposure = 0, this._highlightsHue = 30, this._highlightsDensity = 0, this._highlightsSaturation = 0, this._highlightsExposure = 0, this._midtonesHue = 30, this._midtonesDensity = 0, this._midtonesSaturation = 0, this._midtonesExposure = 0, this._shadowsHue = 30, this._shadowsDensity = 0, this._shadowsSaturation = 0, this._shadowsExposure = 0;\n }\n /**\n * Gets the global Hue value.\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\n */\n get globalHue() {\n return this._globalHue;\n }\n /**\n * Sets the global Hue value.\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\n */\n set globalHue(e) {\n this._globalHue = e, this._dirty = !0;\n }\n /**\n * Gets the global Density value.\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\n * Values less than zero provide a filter of opposite hue.\n */\n get globalDensity() {\n return this._globalDensity;\n }\n /**\n * Sets the global Density value.\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\n * Values less than zero provide a filter of opposite hue.\n */\n set globalDensity(e) {\n this._globalDensity = e, this._dirty = !0;\n }\n /**\n * Gets the global Saturation value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\n */\n get globalSaturation() {\n return this._globalSaturation;\n }\n /**\n * Sets the global Saturation value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\n */\n set globalSaturation(e) {\n this._globalSaturation = e, this._dirty = !0;\n }\n /**\n * Gets the global Exposure value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\n */\n get globalExposure() {\n return this._globalExposure;\n }\n /**\n * Sets the global Exposure value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\n */\n set globalExposure(e) {\n this._globalExposure = e, this._dirty = !0;\n }\n /**\n * Gets the highlights Hue value.\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\n */\n get highlightsHue() {\n return this._highlightsHue;\n }\n /**\n * Sets the highlights Hue value.\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\n */\n set highlightsHue(e) {\n this._highlightsHue = e, this._dirty = !0;\n }\n /**\n * Gets the highlights Density value.\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\n * Values less than zero provide a filter of opposite hue.\n */\n get highlightsDensity() {\n return this._highlightsDensity;\n }\n /**\n * Sets the highlights Density value.\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\n * Values less than zero provide a filter of opposite hue.\n */\n set highlightsDensity(e) {\n this._highlightsDensity = e, this._dirty = !0;\n }\n /**\n * Gets the highlights Saturation value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\n */\n get highlightsSaturation() {\n return this._highlightsSaturation;\n }\n /**\n * Sets the highlights Saturation value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\n */\n set highlightsSaturation(e) {\n this._highlightsSaturation = e, this._dirty = !0;\n }\n /**\n * Gets the highlights Exposure value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\n */\n get highlightsExposure() {\n return this._highlightsExposure;\n }\n /**\n * Sets the highlights Exposure value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\n */\n set highlightsExposure(e) {\n this._highlightsExposure = e, this._dirty = !0;\n }\n /**\n * Gets the midtones Hue value.\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\n */\n get midtonesHue() {\n return this._midtonesHue;\n }\n /**\n * Sets the midtones Hue value.\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\n */\n set midtonesHue(e) {\n this._midtonesHue = e, this._dirty = !0;\n }\n /**\n * Gets the midtones Density value.\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\n * Values less than zero provide a filter of opposite hue.\n */\n get midtonesDensity() {\n return this._midtonesDensity;\n }\n /**\n * Sets the midtones Density value.\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\n * Values less than zero provide a filter of opposite hue.\n */\n set midtonesDensity(e) {\n this._midtonesDensity = e, this._dirty = !0;\n }\n /**\n * Gets the midtones Saturation value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\n */\n get midtonesSaturation() {\n return this._midtonesSaturation;\n }\n /**\n * Sets the midtones Saturation value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\n */\n set midtonesSaturation(e) {\n this._midtonesSaturation = e, this._dirty = !0;\n }\n /**\n * Gets the midtones Exposure value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\n */\n get midtonesExposure() {\n return this._midtonesExposure;\n }\n /**\n * Sets the midtones Exposure value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\n */\n set midtonesExposure(e) {\n this._midtonesExposure = e, this._dirty = !0;\n }\n /**\n * Gets the shadows Hue value.\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\n */\n get shadowsHue() {\n return this._shadowsHue;\n }\n /**\n * Sets the shadows Hue value.\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\n */\n set shadowsHue(e) {\n this._shadowsHue = e, this._dirty = !0;\n }\n /**\n * Gets the shadows Density value.\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\n * Values less than zero provide a filter of opposite hue.\n */\n get shadowsDensity() {\n return this._shadowsDensity;\n }\n /**\n * Sets the shadows Density value.\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\n * Values less than zero provide a filter of opposite hue.\n */\n set shadowsDensity(e) {\n this._shadowsDensity = e, this._dirty = !0;\n }\n /**\n * Gets the shadows Saturation value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\n */\n get shadowsSaturation() {\n return this._shadowsSaturation;\n }\n /**\n * Sets the shadows Saturation value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\n */\n set shadowsSaturation(e) {\n this._shadowsSaturation = e, this._dirty = !0;\n }\n /**\n * Gets the shadows Exposure value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\n */\n get shadowsExposure() {\n return this._shadowsExposure;\n }\n /**\n * Sets the shadows Exposure value.\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\n */\n set shadowsExposure(e) {\n this._shadowsExposure = e, this._dirty = !0;\n }\n /**\n * Returns the class name\n * @returns The class name\n */\n getClassName() {\n return \"ColorCurves\";\n }\n /**\n * Binds the color curves to the shader.\n * @param colorCurves The color curve to bind\n * @param effect The effect to bind to\n * @param positiveUniform The positive uniform shader parameter\n * @param neutralUniform The neutral uniform shader parameter\n * @param negativeUniform The negative uniform shader parameter\n */\n static Bind(e, t, i = \"vCameraColorCurvePositive\", s = \"vCameraColorCurveNeutral\", r = \"vCameraColorCurveNegative\") {\n e._dirty && (e._dirty = !1, e._getColorGradingDataToRef(e._globalHue, e._globalDensity, e._globalSaturation, e._globalExposure, e._globalCurve), e._getColorGradingDataToRef(e._highlightsHue, e._highlightsDensity, e._highlightsSaturation, e._highlightsExposure, e._tempColor), e._tempColor.multiplyToRef(e._globalCurve, e._highlightsCurve), e._getColorGradingDataToRef(e._midtonesHue, e._midtonesDensity, e._midtonesSaturation, e._midtonesExposure, e._tempColor), e._tempColor.multiplyToRef(e._globalCurve, e._midtonesCurve), e._getColorGradingDataToRef(e._shadowsHue, e._shadowsDensity, e._shadowsSaturation, e._shadowsExposure, e._tempColor), e._tempColor.multiplyToRef(e._globalCurve, e._shadowsCurve), e._highlightsCurve.subtractToRef(e._midtonesCurve, e._positiveCurve), e._midtonesCurve.subtractToRef(e._shadowsCurve, e._negativeCurve)), t && (t.setFloat4(i, e._positiveCurve.r, e._positiveCurve.g, e._positiveCurve.b, e._positiveCurve.a), t.setFloat4(s, e._midtonesCurve.r, e._midtonesCurve.g, e._midtonesCurve.b, e._midtonesCurve.a), t.setFloat4(r, e._negativeCurve.r, e._negativeCurve.g, e._negativeCurve.b, e._negativeCurve.a));\n }\n /**\n * Returns color grading data based on a hue, density, saturation and exposure value.\n * @param hue\n * @param density\n * @param saturation The saturation.\n * @param exposure The exposure.\n * @param result The result data container.\n */\n _getColorGradingDataToRef(e, t, i, s, r) {\n e != null && (e = Li._Clamp(e, 0, 360), t = Li._Clamp(t, -100, 100), i = Li._Clamp(i, -100, 100), s = Li._Clamp(s, -100, 100), t = Li._ApplyColorGradingSliderNonlinear(t), t *= 0.5, s = Li._ApplyColorGradingSliderNonlinear(s), t < 0 && (t *= -1, e = (e + 180) % 360), Li._FromHSBToRef(e, t, 50 + 0.25 * s, r), r.scaleToRef(2, r), r.a = 1 + 0.01 * i);\n }\n /**\n * Takes an input slider value and returns an adjusted value that provides extra control near the centre.\n * @param value The input slider value in range [-100,100].\n * @returns Adjusted value.\n */\n static _ApplyColorGradingSliderNonlinear(e) {\n e /= 100;\n let t = Math.abs(e);\n return t = Math.pow(t, 2), e < 0 && (t *= -1), t *= 100, t;\n }\n /**\n * Returns an RGBA Color4 based on Hue, Saturation and Brightness (also referred to as value, HSV).\n * @param hue The hue (H) input.\n * @param saturation The saturation (S) input.\n * @param brightness The brightness (B) input.\n * @param result\n * @result An RGBA color represented as Vector4.\n */\n static _FromHSBToRef(e, t, i, s) {\n let r = Li._Clamp(e, 0, 360);\n const n = Li._Clamp(t / 100, 0, 1), o = Li._Clamp(i / 100, 0, 1);\n if (n === 0)\n s.r = o, s.g = o, s.b = o;\n else {\n r /= 60;\n const l = Math.floor(r), h = r - l, c = o * (1 - n), u = o * (1 - n * h), d = o * (1 - n * (1 - h));\n switch (l) {\n case 0:\n s.r = o, s.g = d, s.b = c;\n break;\n case 1:\n s.r = u, s.g = o, s.b = c;\n break;\n case 2:\n s.r = c, s.g = o, s.b = d;\n break;\n case 3:\n s.r = c, s.g = u, s.b = o;\n break;\n case 4:\n s.r = d, s.g = c, s.b = o;\n break;\n default:\n s.r = o, s.g = c, s.b = u;\n break;\n }\n }\n s.a = 1;\n }\n /**\n * Returns a value clamped between min and max\n * @param value The value to clamp\n * @param min The minimum of value\n * @param max The maximum of value\n * @returns The clamped value.\n */\n static _Clamp(e, t, i) {\n return Math.min(Math.max(e, t), i);\n }\n /**\n * Clones the current color curve instance.\n * @returns The cloned curves\n */\n clone() {\n return Ae.Clone(() => new Li(), this);\n }\n /**\n * Serializes the current color curve instance to a json representation.\n * @returns a JSON representation\n */\n serialize() {\n return Ae.Serialize(this);\n }\n /**\n * Parses the color curve from a json representation.\n * @param source the JSON source to parse\n * @returns The parsed curves\n */\n static Parse(e) {\n return Ae.Parse(() => new Li(), e, null, null);\n }\n}\nLi.PrepareUniforms = FC;\ny([\n I()\n], Li.prototype, \"_globalHue\", void 0);\ny([\n I()\n], Li.prototype, \"_globalDensity\", void 0);\ny([\n I()\n], Li.prototype, \"_globalSaturation\", void 0);\ny([\n I()\n], Li.prototype, \"_globalExposure\", void 0);\ny([\n I()\n], Li.prototype, \"_highlightsHue\", void 0);\ny([\n I()\n], Li.prototype, \"_highlightsDensity\", void 0);\ny([\n I()\n], Li.prototype, \"_highlightsSaturation\", void 0);\ny([\n I()\n], Li.prototype, \"_highlightsExposure\", void 0);\ny([\n I()\n], Li.prototype, \"_midtonesHue\", void 0);\ny([\n I()\n], Li.prototype, \"_midtonesDensity\", void 0);\ny([\n I()\n], Li.prototype, \"_midtonesSaturation\", void 0);\ny([\n I()\n], Li.prototype, \"_midtonesExposure\", void 0);\nAe._ColorCurvesParser = Li.Parse;\nfunction LC(a, e) {\n e.EXPOSURE && a.push(\"exposureLinear\"), e.CONTRAST && a.push(\"contrast\"), e.COLORGRADING && a.push(\"colorTransformSettings\"), (e.VIGNETTE || e.DITHER) && a.push(\"vInverseScreenSize\"), e.VIGNETTE && (a.push(\"vignetteSettings1\"), a.push(\"vignetteSettings2\")), e.COLORCURVES && FC(a), e.DITHER && a.push(\"ditherIntensity\");\n}\nfunction BC(a, e) {\n e.COLORGRADING && a.push(\"txColorTransform\");\n}\nclass pt {\n constructor() {\n this.colorCurves = new Li(), this._colorCurvesEnabled = !1, this._colorGradingEnabled = !1, this._colorGradingWithGreenDepth = !0, this._colorGradingBGR = !0, this._exposure = 1, this._toneMappingEnabled = !1, this._toneMappingType = pt.TONEMAPPING_STANDARD, this._contrast = 1, this.vignetteStretch = 0, this.vignetteCenterX = 0, this.vignetteCenterY = 0, this.vignetteWeight = 1.5, this.vignetteColor = new Ce(0, 0, 0, 0), this.vignetteCameraFov = 0.5, this._vignetteBlendMode = pt.VIGNETTEMODE_MULTIPLY, this._vignetteEnabled = !1, this._ditheringEnabled = !1, this._ditheringIntensity = 1 / 255, this._skipFinalColorClamp = !1, this._applyByPostProcess = !1, this._isEnabled = !0, this.onUpdateParameters = new G();\n }\n /**\n * Gets whether the color curves effect is enabled.\n */\n get colorCurvesEnabled() {\n return this._colorCurvesEnabled;\n }\n /**\n * Sets whether the color curves effect is enabled.\n */\n set colorCurvesEnabled(e) {\n this._colorCurvesEnabled !== e && (this._colorCurvesEnabled = e, this._updateParameters());\n }\n /**\n * Color grading LUT texture used in the effect if colorGradingEnabled is set to true\n */\n get colorGradingTexture() {\n return this._colorGradingTexture;\n }\n /**\n * Color grading LUT texture used in the effect if colorGradingEnabled is set to true\n */\n set colorGradingTexture(e) {\n this._colorGradingTexture !== e && (this._colorGradingTexture = e, this._updateParameters());\n }\n /**\n * Gets whether the color grading effect is enabled.\n */\n get colorGradingEnabled() {\n return this._colorGradingEnabled;\n }\n /**\n * Sets whether the color grading effect is enabled.\n */\n set colorGradingEnabled(e) {\n this._colorGradingEnabled !== e && (this._colorGradingEnabled = e, this._updateParameters());\n }\n /**\n * Gets whether the color grading effect is using a green depth for the 3d Texture.\n */\n get colorGradingWithGreenDepth() {\n return this._colorGradingWithGreenDepth;\n }\n /**\n * Sets whether the color grading effect is using a green depth for the 3d Texture.\n */\n set colorGradingWithGreenDepth(e) {\n this._colorGradingWithGreenDepth !== e && (this._colorGradingWithGreenDepth = e, this._updateParameters());\n }\n /**\n * Gets whether the color grading texture contains BGR values.\n */\n get colorGradingBGR() {\n return this._colorGradingBGR;\n }\n /**\n * Sets whether the color grading texture contains BGR values.\n */\n set colorGradingBGR(e) {\n this._colorGradingBGR !== e && (this._colorGradingBGR = e, this._updateParameters());\n }\n /**\n * Gets the Exposure used in the effect.\n */\n get exposure() {\n return this._exposure;\n }\n /**\n * Sets the Exposure used in the effect.\n */\n set exposure(e) {\n this._exposure !== e && (this._exposure = e, this._updateParameters());\n }\n /**\n * Gets whether the tone mapping effect is enabled.\n */\n get toneMappingEnabled() {\n return this._toneMappingEnabled;\n }\n /**\n * Sets whether the tone mapping effect is enabled.\n */\n set toneMappingEnabled(e) {\n this._toneMappingEnabled !== e && (this._toneMappingEnabled = e, this._updateParameters());\n }\n /**\n * Gets the type of tone mapping effect.\n */\n get toneMappingType() {\n return this._toneMappingType;\n }\n /**\n * Sets the type of tone mapping effect used in BabylonJS.\n */\n set toneMappingType(e) {\n this._toneMappingType !== e && (this._toneMappingType = e, this._updateParameters());\n }\n /**\n * Gets the contrast used in the effect.\n */\n get contrast() {\n return this._contrast;\n }\n /**\n * Sets the contrast used in the effect.\n */\n set contrast(e) {\n this._contrast !== e && (this._contrast = e, this._updateParameters());\n }\n /**\n * Back Compat: Vignette center Y Offset.\n * @deprecated use vignetteCenterY instead\n */\n get vignetteCentreY() {\n return this.vignetteCenterY;\n }\n set vignetteCentreY(e) {\n this.vignetteCenterY = e;\n }\n /**\n * Back Compat: Vignette center X Offset.\n * @deprecated use vignetteCenterX instead\n */\n get vignetteCentreX() {\n return this.vignetteCenterX;\n }\n set vignetteCentreX(e) {\n this.vignetteCenterX = e;\n }\n /**\n * Gets the vignette blend mode allowing different kind of effect.\n */\n get vignetteBlendMode() {\n return this._vignetteBlendMode;\n }\n /**\n * Sets the vignette blend mode allowing different kind of effect.\n */\n set vignetteBlendMode(e) {\n this._vignetteBlendMode !== e && (this._vignetteBlendMode = e, this._updateParameters());\n }\n /**\n * Gets whether the vignette effect is enabled.\n */\n get vignetteEnabled() {\n return this._vignetteEnabled;\n }\n /**\n * Sets whether the vignette effect is enabled.\n */\n set vignetteEnabled(e) {\n this._vignetteEnabled !== e && (this._vignetteEnabled = e, this._updateParameters());\n }\n /**\n * Gets whether the dithering effect is enabled.\n * The dithering effect can be used to reduce banding.\n */\n get ditheringEnabled() {\n return this._ditheringEnabled;\n }\n /**\n * Sets whether the dithering effect is enabled.\n * The dithering effect can be used to reduce banding.\n */\n set ditheringEnabled(e) {\n this._ditheringEnabled !== e && (this._ditheringEnabled = e, this._updateParameters());\n }\n /**\n * Gets the dithering intensity. 0 is no dithering. Default is 1.0 / 255.0.\n */\n get ditheringIntensity() {\n return this._ditheringIntensity;\n }\n /**\n * Sets the dithering intensity. 0 is no dithering. Default is 1.0 / 255.0.\n */\n set ditheringIntensity(e) {\n this._ditheringIntensity !== e && (this._ditheringIntensity = e, this._updateParameters());\n }\n /**\n * If apply by post process is set to true, setting this to true will skip the final color clamp step in the fragment shader\n * Applies to PBR materials.\n */\n get skipFinalColorClamp() {\n return this._skipFinalColorClamp;\n }\n /**\n * If apply by post process is set to true, setting this to true will skip the final color clamp step in the fragment shader\n * Applies to PBR materials.\n */\n set skipFinalColorClamp(e) {\n this._skipFinalColorClamp !== e && (this._skipFinalColorClamp = e, this._updateParameters());\n }\n /**\n * Gets whether the image processing is applied through a post process or not.\n */\n get applyByPostProcess() {\n return this._applyByPostProcess;\n }\n /**\n * Sets whether the image processing is applied through a post process or not.\n */\n set applyByPostProcess(e) {\n this._applyByPostProcess !== e && (this._applyByPostProcess = e, this._updateParameters());\n }\n /**\n * Gets whether the image processing is enabled or not.\n */\n get isEnabled() {\n return this._isEnabled;\n }\n /**\n * Sets whether the image processing is enabled or not.\n */\n set isEnabled(e) {\n this._isEnabled !== e && (this._isEnabled = e, this._updateParameters());\n }\n /**\n * Method called each time the image processing information changes requires to recompile the effect.\n */\n _updateParameters() {\n this.onUpdateParameters.notifyObservers(this);\n }\n /**\n * Gets the current class name.\n * @returns \"ImageProcessingConfiguration\"\n */\n getClassName() {\n return \"ImageProcessingConfiguration\";\n }\n /**\n * Prepare the list of defines associated to the shader.\n * @param defines the list of defines to complete\n * @param forPostProcess Define if we are currently in post process mode or not\n */\n prepareDefines(e, t = !1) {\n if (t !== this.applyByPostProcess || !this._isEnabled) {\n e.VIGNETTE = !1, e.TONEMAPPING = 0, e.CONTRAST = !1, e.EXPOSURE = !1, e.COLORCURVES = !1, e.COLORGRADING = !1, e.COLORGRADING3D = !1, e.DITHER = !1, e.IMAGEPROCESSING = !1, e.SKIPFINALCOLORCLAMP = this.skipFinalColorClamp, e.IMAGEPROCESSINGPOSTPROCESS = this.applyByPostProcess && this._isEnabled;\n return;\n }\n if (e.VIGNETTE = this.vignetteEnabled, e.VIGNETTEBLENDMODEMULTIPLY = this.vignetteBlendMode === pt._VIGNETTEMODE_MULTIPLY, e.VIGNETTEBLENDMODEOPAQUE = !e.VIGNETTEBLENDMODEMULTIPLY, !this._toneMappingEnabled)\n e.TONEMAPPING = 0;\n else\n switch (this._toneMappingType) {\n case pt.TONEMAPPING_KHR_PBR_NEUTRAL:\n e.TONEMAPPING = 3;\n break;\n case pt.TONEMAPPING_ACES:\n e.TONEMAPPING = 2;\n break;\n default:\n e.TONEMAPPING = 1;\n break;\n }\n e.CONTRAST = this.contrast !== 1, e.EXPOSURE = this.exposure !== 1, e.COLORCURVES = this.colorCurvesEnabled && !!this.colorCurves, e.COLORGRADING = this.colorGradingEnabled && !!this.colorGradingTexture, e.COLORGRADING ? e.COLORGRADING3D = this.colorGradingTexture.is3D : e.COLORGRADING3D = !1, e.SAMPLER3DGREENDEPTH = this.colorGradingWithGreenDepth, e.SAMPLER3DBGRMAP = this.colorGradingBGR, e.DITHER = this._ditheringEnabled, e.IMAGEPROCESSINGPOSTPROCESS = this.applyByPostProcess, e.SKIPFINALCOLORCLAMP = this.skipFinalColorClamp, e.IMAGEPROCESSING = e.VIGNETTE || !!e.TONEMAPPING || e.CONTRAST || e.EXPOSURE || e.COLORCURVES || e.COLORGRADING || e.DITHER;\n }\n /**\n * Returns true if all the image processing information are ready.\n * @returns True if ready, otherwise, false\n */\n isReady() {\n return !this.colorGradingEnabled || !this.colorGradingTexture || this.colorGradingTexture.isReady();\n }\n /**\n * Binds the image processing to the shader.\n * @param effect The effect to bind to\n * @param overrideAspectRatio Override the aspect ratio of the effect\n */\n bind(e, t) {\n if (this._colorCurvesEnabled && this.colorCurves && Li.Bind(this.colorCurves, e), this._vignetteEnabled || this._ditheringEnabled) {\n const i = 1 / e.getEngine().getRenderWidth(), s = 1 / e.getEngine().getRenderHeight();\n if (e.setFloat2(\"vInverseScreenSize\", i, s), this._ditheringEnabled && e.setFloat(\"ditherIntensity\", 0.5 * this._ditheringIntensity), this._vignetteEnabled) {\n const r = t ?? s / i;\n let n = Math.tan(this.vignetteCameraFov * 0.5), o = n * r;\n const l = Math.sqrt(o * n);\n o = gg(o, l, this.vignetteStretch), n = gg(n, l, this.vignetteStretch), e.setFloat4(\"vignetteSettings1\", o, n, -o * this.vignetteCenterX, -n * this.vignetteCenterY);\n const h = -2 * this.vignetteWeight;\n e.setFloat4(\"vignetteSettings2\", this.vignetteColor.r, this.vignetteColor.g, this.vignetteColor.b, h);\n }\n }\n if (e.setFloat(\"exposureLinear\", this.exposure), e.setFloat(\"contrast\", this.contrast), this.colorGradingTexture) {\n e.setTexture(\"txColorTransform\", this.colorGradingTexture);\n const i = this.colorGradingTexture.getSize().height;\n e.setFloat4(\n \"colorTransformSettings\",\n (i - 1) / i,\n // textureScale\n 0.5 / i,\n // textureOffset\n i,\n // textureSize\n this.colorGradingTexture.level\n // weight\n );\n }\n }\n /**\n * Clones the current image processing instance.\n * @returns The cloned image processing\n */\n clone() {\n return Ae.Clone(() => new pt(), this);\n }\n /**\n * Serializes the current image processing instance to a json representation.\n * @returns a JSON representation\n */\n serialize() {\n return Ae.Serialize(this);\n }\n /**\n * Parses the image processing from a json representation.\n * @param source the JSON source to parse\n * @returns The parsed image processing\n */\n static Parse(e) {\n const t = Ae.Parse(() => new pt(), e, null, null);\n return e.vignetteCentreX !== void 0 && (t.vignetteCenterX = e.vignetteCentreX), e.vignetteCentreY !== void 0 && (t.vignetteCenterY = e.vignetteCentreY), t;\n }\n /**\n * Used to apply the vignette as a mix with the pixel color.\n */\n static get VIGNETTEMODE_MULTIPLY() {\n return this._VIGNETTEMODE_MULTIPLY;\n }\n /**\n * Used to apply the vignette as a replacement of the pixel color.\n */\n static get VIGNETTEMODE_OPAQUE() {\n return this._VIGNETTEMODE_OPAQUE;\n }\n}\npt.TONEMAPPING_STANDARD = 0;\npt.TONEMAPPING_ACES = 1;\npt.TONEMAPPING_KHR_PBR_NEUTRAL = 2;\npt.PrepareUniforms = LC;\npt.PrepareSamplers = BC;\npt._VIGNETTEMODE_MULTIPLY = 0;\npt._VIGNETTEMODE_OPAQUE = 1;\ny([\n uM()\n], pt.prototype, \"colorCurves\", void 0);\ny([\n I()\n], pt.prototype, \"_colorCurvesEnabled\", void 0);\ny([\n xt(\"colorGradingTexture\")\n], pt.prototype, \"_colorGradingTexture\", void 0);\ny([\n I()\n], pt.prototype, \"_colorGradingEnabled\", void 0);\ny([\n I()\n], pt.prototype, \"_colorGradingWithGreenDepth\", void 0);\ny([\n I()\n], pt.prototype, \"_colorGradingBGR\", void 0);\ny([\n I()\n], pt.prototype, \"_exposure\", void 0);\ny([\n I()\n], pt.prototype, \"_toneMappingEnabled\", void 0);\ny([\n I()\n], pt.prototype, \"_toneMappingType\", void 0);\ny([\n I()\n], pt.prototype, \"_contrast\", void 0);\ny([\n I()\n], pt.prototype, \"vignetteStretch\", void 0);\ny([\n I()\n], pt.prototype, \"vignetteCenterX\", void 0);\ny([\n I()\n], pt.prototype, \"vignetteCenterY\", void 0);\ny([\n I()\n], pt.prototype, \"vignetteWeight\", void 0);\ny([\n Ex()\n], pt.prototype, \"vignetteColor\", void 0);\ny([\n I()\n], pt.prototype, \"vignetteCameraFov\", void 0);\ny([\n I()\n], pt.prototype, \"_vignetteBlendMode\", void 0);\ny([\n I()\n], pt.prototype, \"_vignetteEnabled\", void 0);\ny([\n I()\n], pt.prototype, \"_ditheringEnabled\", void 0);\ny([\n I()\n], pt.prototype, \"_ditheringIntensity\", void 0);\ny([\n I()\n], pt.prototype, \"_skipFinalColorClamp\", void 0);\ny([\n I()\n], pt.prototype, \"_applyByPostProcess\", void 0);\ny([\n I()\n], pt.prototype, \"_isEnabled\", void 0);\nAe._ImageProcessingConfigurationParser = pt.Parse;\nU(\"BABYLON.ImageProcessingConfiguration\", pt);\nXe.prototype.createUniformBuffer = function(a, e) {\n const t = this._gl.createBuffer();\n if (!t)\n throw new Error(\"Unable to create uniform buffer\");\n const i = new _u(t);\n return this.bindUniformBuffer(i), a instanceof Float32Array ? this._gl.bufferData(this._gl.UNIFORM_BUFFER, a, this._gl.STATIC_DRAW) : this._gl.bufferData(this._gl.UNIFORM_BUFFER, new Float32Array(a), this._gl.STATIC_DRAW), this.bindUniformBuffer(null), i.references = 1, i;\n};\nXe.prototype.createDynamicUniformBuffer = function(a, e) {\n const t = this._gl.createBuffer();\n if (!t)\n throw new Error(\"Unable to create dynamic uniform buffer\");\n const i = new _u(t);\n return this.bindUniformBuffer(i), a instanceof Float32Array ? this._gl.bufferData(this._gl.UNIFORM_BUFFER, a, this._gl.DYNAMIC_DRAW) : this._gl.bufferData(this._gl.UNIFORM_BUFFER, new Float32Array(a), this._gl.DYNAMIC_DRAW), this.bindUniformBuffer(null), i.references = 1, i;\n};\nXe.prototype.updateUniformBuffer = function(a, e, t, i) {\n this.bindUniformBuffer(a), t === void 0 && (t = 0), i === void 0 ? e instanceof Float32Array ? this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, t, e) : this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, t, new Float32Array(e)) : e instanceof Float32Array ? this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, 0, e.subarray(t, t + i)) : this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, 0, new Float32Array(e).subarray(t, t + i)), this.bindUniformBuffer(null);\n};\nXe.prototype.bindUniformBuffer = function(a) {\n this._gl.bindBuffer(this._gl.UNIFORM_BUFFER, a ? a.underlyingResource : null);\n};\nXe.prototype.bindUniformBufferBase = function(a, e, t) {\n this._gl.bindBufferBase(this._gl.UNIFORM_BUFFER, e, a ? a.underlyingResource : null);\n};\nXe.prototype.bindUniformBlock = function(a, e, t) {\n const i = a.program, s = this._gl.getUniformBlockIndex(i, e);\n s !== 4294967295 && this._gl.uniformBlockBinding(i, s, t);\n};\nclass Ve {\n /**\n * Instantiates a new Uniform buffer objects.\n *\n * Handles blocks of uniform on the GPU.\n *\n * If WebGL 2 is not available, this class falls back on traditional setUniformXXX calls.\n *\n * For more information, please refer to :\n * @see https://www.khronos.org/opengl/wiki/Uniform_Buffer_Object\n * @param engine Define the engine the buffer is associated with\n * @param data Define the data contained in the buffer\n * @param dynamic Define if the buffer is updatable\n * @param name to assign to the buffer (debugging purpose)\n * @param forceNoUniformBuffer define that this object must not rely on UBO objects\n */\n constructor(e, t, i, s, r = !1) {\n this._valueCache = {}, this._engine = e, this._noUBO = !e.supportsUniformBuffers || r, this._dynamic = i, this._name = s ?? \"no-name\", this._data = t || [], this._uniformLocations = {}, this._uniformSizes = {}, this._uniformArraySizes = {}, this._uniformLocationPointer = 0, this._needSync = !1, this._engine._features.trackUbosInFrame && (this._buffers = [], this._bufferIndex = -1, this._createBufferOnWrite = !1, this._currentFrameId = 0), this._noUBO ? (this.updateMatrix3x3 = this._updateMatrix3x3ForEffect, this.updateMatrix2x2 = this._updateMatrix2x2ForEffect, this.updateFloat = this._updateFloatForEffect, this.updateFloat2 = this._updateFloat2ForEffect, this.updateFloat3 = this._updateFloat3ForEffect, this.updateFloat4 = this._updateFloat4ForEffect, this.updateFloatArray = this._updateFloatArrayForEffect, this.updateArray = this._updateArrayForEffect, this.updateIntArray = this._updateIntArrayForEffect, this.updateUIntArray = this._updateUIntArrayForEffect, this.updateMatrix = this._updateMatrixForEffect, this.updateMatrices = this._updateMatricesForEffect, this.updateVector3 = this._updateVector3ForEffect, this.updateVector4 = this._updateVector4ForEffect, this.updateColor3 = this._updateColor3ForEffect, this.updateColor4 = this._updateColor4ForEffect, this.updateDirectColor4 = this._updateDirectColor4ForEffect, this.updateInt = this._updateIntForEffect, this.updateInt2 = this._updateInt2ForEffect, this.updateInt3 = this._updateInt3ForEffect, this.updateInt4 = this._updateInt4ForEffect, this.updateUInt = this._updateUIntForEffect, this.updateUInt2 = this._updateUInt2ForEffect, this.updateUInt3 = this._updateUInt3ForEffect, this.updateUInt4 = this._updateUInt4ForEffect) : (this._engine._uniformBuffers.push(this), this.updateMatrix3x3 = this._updateMatrix3x3ForUniform, this.updateMatrix2x2 = this._updateMatrix2x2ForUniform, this.updateFloat = this._updateFloatForUniform, this.updateFloat2 = this._updateFloat2ForUniform, this.updateFloat3 = this._updateFloat3ForUniform, this.updateFloat4 = this._updateFloat4ForUniform, this.updateFloatArray = this._updateFloatArrayForUniform, this.updateArray = this._updateArrayForUniform, this.updateIntArray = this._updateIntArrayForUniform, this.updateUIntArray = this._updateUIntArrayForUniform, this.updateMatrix = this._updateMatrixForUniform, this.updateMatrices = this._updateMatricesForUniform, this.updateVector3 = this._updateVector3ForUniform, this.updateVector4 = this._updateVector4ForUniform, this.updateColor3 = this._updateColor3ForUniform, this.updateColor4 = this._updateColor4ForUniform, this.updateDirectColor4 = this._updateDirectColor4ForUniform, this.updateInt = this._updateIntForUniform, this.updateInt2 = this._updateInt2ForUniform, this.updateInt3 = this._updateInt3ForUniform, this.updateInt4 = this._updateInt4ForUniform, this.updateUInt = this._updateUIntForUniform, this.updateUInt2 = this._updateUInt2ForUniform, this.updateUInt3 = this._updateUInt3ForUniform, this.updateUInt4 = this._updateUInt4ForUniform);\n }\n /**\n * Indicates if the buffer is using the WebGL2 UBO implementation,\n * or just falling back on setUniformXXX calls.\n */\n get useUbo() {\n return !this._noUBO;\n }\n /**\n * Indicates if the WebGL underlying uniform buffer is in sync\n * with the javascript cache data.\n */\n get isSync() {\n return !this._needSync;\n }\n /**\n * Indicates if the WebGL underlying uniform buffer is dynamic.\n * Also, a dynamic UniformBuffer will disable cache verification and always\n * update the underlying WebGL uniform buffer to the GPU.\n * @returns if Dynamic, otherwise false\n */\n isDynamic() {\n return this._dynamic !== void 0;\n }\n /**\n * The data cache on JS side.\n * @returns the underlying data as a float array\n */\n getData() {\n return this._bufferData;\n }\n /**\n * The underlying WebGL Uniform buffer.\n * @returns the webgl buffer\n */\n getBuffer() {\n return this._buffer;\n }\n /**\n * std140 layout specifies how to align data within an UBO structure.\n * See https://khronos.org/registry/OpenGL/specs/gl/glspec45.core.pdf#page=159\n * for specs.\n * @param size\n */\n _fillAlignment(e) {\n let t;\n if (e <= 2 ? t = e : t = 4, this._uniformLocationPointer % t !== 0) {\n const i = this._uniformLocationPointer;\n this._uniformLocationPointer += t - this._uniformLocationPointer % t;\n const s = this._uniformLocationPointer - i;\n for (let r = 0; r < s; r++)\n this._data.push(0);\n }\n }\n /**\n * Adds an uniform in the buffer.\n * Warning : the subsequents calls of this function must be in the same order as declared in the shader\n * for the layout to be correct ! The addUniform function only handles types like float, vec2, vec3, vec4, mat4,\n * meaning size=1,2,3,4 or 16. It does not handle struct types.\n * @param name Name of the uniform, as used in the uniform block in the shader.\n * @param size Data size, or data directly.\n * @param arraySize The number of elements in the array, 0 if not an array.\n */\n addUniform(e, t, i = 0) {\n if (this._noUBO || this._uniformLocations[e] !== void 0)\n return;\n let s;\n if (i > 0) {\n if (t instanceof Array)\n throw \"addUniform should not be use with Array in UBO: \" + e;\n if (this._fillAlignment(4), this._uniformArraySizes[e] = { strideSize: t, arraySize: i }, t == 16)\n t = t * i;\n else {\n const n = (4 - t) * i;\n t = t * i + n;\n }\n s = [];\n for (let r = 0; r < t; r++)\n s.push(0);\n } else {\n if (t instanceof Array)\n s = t, t = s.length;\n else {\n t = t, s = [];\n for (let r = 0; r < t; r++)\n s.push(0);\n }\n this._fillAlignment(t);\n }\n this._uniformSizes[e] = t, this._uniformLocations[e] = this._uniformLocationPointer, this._uniformLocationPointer += t;\n for (let r = 0; r < t; r++)\n this._data.push(s[r]);\n this._needSync = !0;\n }\n /**\n * Adds a Matrix 4x4 to the uniform buffer.\n * @param name Name of the uniform, as used in the uniform block in the shader.\n * @param mat A 4x4 matrix.\n */\n addMatrix(e, t) {\n this.addUniform(e, Array.prototype.slice.call(t.asArray()));\n }\n /**\n * Adds a vec2 to the uniform buffer.\n * @param name Name of the uniform, as used in the uniform block in the shader.\n * @param x Define the x component value of the vec2\n * @param y Define the y component value of the vec2\n */\n addFloat2(e, t, i) {\n const s = [t, i];\n this.addUniform(e, s);\n }\n /**\n * Adds a vec3 to the uniform buffer.\n * @param name Name of the uniform, as used in the uniform block in the shader.\n * @param x Define the x component value of the vec3\n * @param y Define the y component value of the vec3\n * @param z Define the z component value of the vec3\n */\n addFloat3(e, t, i, s) {\n const r = [t, i, s];\n this.addUniform(e, r);\n }\n /**\n * Adds a vec3 to the uniform buffer.\n * @param name Name of the uniform, as used in the uniform block in the shader.\n * @param color Define the vec3 from a Color\n */\n addColor3(e, t) {\n const i = [t.r, t.g, t.b];\n this.addUniform(e, i);\n }\n /**\n * Adds a vec4 to the uniform buffer.\n * @param name Name of the uniform, as used in the uniform block in the shader.\n * @param color Define the rgb components from a Color\n * @param alpha Define the a component of the vec4\n */\n addColor4(e, t, i) {\n const s = [t.r, t.g, t.b, i];\n this.addUniform(e, s);\n }\n /**\n * Adds a vec3 to the uniform buffer.\n * @param name Name of the uniform, as used in the uniform block in the shader.\n * @param vector Define the vec3 components from a Vector\n */\n addVector3(e, t) {\n const i = [t.x, t.y, t.z];\n this.addUniform(e, i);\n }\n /**\n * Adds a Matrix 3x3 to the uniform buffer.\n * @param name Name of the uniform, as used in the uniform block in the shader.\n */\n addMatrix3x3(e) {\n this.addUniform(e, 12);\n }\n /**\n * Adds a Matrix 2x2 to the uniform buffer.\n * @param name Name of the uniform, as used in the uniform block in the shader.\n */\n addMatrix2x2(e) {\n this.addUniform(e, 8);\n }\n /**\n * Effectively creates the WebGL Uniform Buffer, once layout is completed with `addUniform`.\n */\n create() {\n this._noUBO || this._buffer || (this._fillAlignment(4), this._bufferData = new Float32Array(this._data), this._rebuild(), this._needSync = !0);\n }\n // The result of this method is used for debugging purpose, as part of the buffer name\n // It is meant to more easily know what this buffer is about when debugging\n // Some buffers can have a lot of uniforms (several dozens), so the method only returns the first 10 of them\n // (should be enough to understand what the buffer is for)\n _getNames() {\n const e = [];\n let t = 0;\n for (const i in this._uniformLocations)\n if (e.push(i), ++t === 10)\n break;\n return e.join(\",\");\n }\n /** @internal */\n _rebuild() {\n this._noUBO || !this._bufferData || (this._dynamic ? this._buffer = this._engine.createDynamicUniformBuffer(this._bufferData, this._name + \"_UniformList:\" + this._getNames()) : this._buffer = this._engine.createUniformBuffer(this._bufferData, this._name + \"_UniformList:\" + this._getNames()), this._engine._features.trackUbosInFrame && (this._buffers.push([this._buffer, this._engine._features.checkUbosContentBeforeUpload ? this._bufferData.slice() : void 0]), this._bufferIndex = this._buffers.length - 1, this._createBufferOnWrite = !1));\n }\n /** @internal */\n _rebuildAfterContextLost() {\n this._engine._features.trackUbosInFrame && (this._buffers = [], this._currentFrameId = 0), this._rebuild();\n }\n /** @internal */\n get _numBuffers() {\n return this._buffers.length;\n }\n /** @internal */\n get _indexBuffer() {\n return this._bufferIndex;\n }\n /** Gets the name of this buffer */\n get name() {\n return this._name;\n }\n /** Gets the current effect */\n get currentEffect() {\n return this._currentEffect;\n }\n _buffersEqual(e, t) {\n for (let i = 0; i < e.length; ++i)\n if (e[i] !== t[i])\n return !1;\n return !0;\n }\n _copyBuffer(e, t) {\n for (let i = 0; i < e.length; ++i)\n t[i] = e[i];\n }\n /**\n * Updates the WebGL Uniform Buffer on the GPU.\n * If the `dynamic` flag is set to true, no cache comparison is done.\n * Otherwise, the buffer will be updated only if the cache differs.\n */\n update() {\n if (!this._noUBO) {\n if (this.bindUniformBuffer(), !this._buffer) {\n this.create();\n return;\n }\n if (!this._dynamic && !this._needSync) {\n this._createBufferOnWrite = this._engine._features.trackUbosInFrame;\n return;\n }\n if (this._buffers && this._buffers.length > 1 && this._buffers[this._bufferIndex][1])\n if (this._buffersEqual(this._bufferData, this._buffers[this._bufferIndex][1])) {\n this._needSync = !1, this._createBufferOnWrite = this._engine._features.trackUbosInFrame;\n return;\n } else\n this._copyBuffer(this._bufferData, this._buffers[this._bufferIndex][1]);\n this._engine.updateUniformBuffer(this._buffer, this._bufferData), this._engine._features._collectUbosUpdatedInFrame && (Ve._UpdatedUbosInFrame[this._name] || (Ve._UpdatedUbosInFrame[this._name] = 0), Ve._UpdatedUbosInFrame[this._name]++), this._needSync = !1, this._createBufferOnWrite = this._engine._features.trackUbosInFrame;\n }\n }\n _createNewBuffer() {\n this._bufferIndex + 1 < this._buffers.length ? (this._bufferIndex++, this._buffer = this._buffers[this._bufferIndex][0], this._createBufferOnWrite = !1, this._needSync = !0) : this._rebuild();\n }\n _checkNewFrame() {\n this._engine._features.trackUbosInFrame && this._currentFrameId !== this._engine.frameId && (this._currentFrameId = this._engine.frameId, this._createBufferOnWrite = !1, this._buffers && this._buffers.length > 0 ? (this._needSync = this._bufferIndex !== 0, this._bufferIndex = 0, this._buffer = this._buffers[this._bufferIndex][0]) : this._bufferIndex = -1);\n }\n /**\n * Updates the value of an uniform. The `update` method must be called afterwards to make it effective in the GPU.\n * @param uniformName Define the name of the uniform, as used in the uniform block in the shader.\n * @param data Define the flattened data\n * @param size Define the size of the data.\n */\n updateUniform(e, t, i) {\n this._checkNewFrame();\n let s = this._uniformLocations[e];\n if (s === void 0) {\n if (this._buffer) {\n L.Error(\"Cannot add an uniform after UBO has been created. uniformName=\" + e);\n return;\n }\n this.addUniform(e, i), s = this._uniformLocations[e];\n }\n if (this._buffer || this.create(), this._dynamic)\n for (let r = 0; r < i; r++)\n this._bufferData[s + r] = t[r];\n else {\n let r = !1;\n for (let n = 0; n < i; n++)\n (i === 16 && !this._engine._features.uniformBufferHardCheckMatrix || this._bufferData[s + n] !== Math.fround(t[n])) && (r = !0, this._createBufferOnWrite && this._createNewBuffer(), this._bufferData[s + n] = t[n]);\n this._needSync = this._needSync || r;\n }\n }\n /**\n * Updates the value of an uniform. The `update` method must be called afterwards to make it effective in the GPU.\n * @param uniformName Define the name of the uniform, as used in the uniform block in the shader.\n * @param data Define the flattened data\n * @param size Define the size of the data.\n */\n updateUniformArray(e, t, i) {\n this._checkNewFrame();\n const s = this._uniformLocations[e];\n if (s === void 0) {\n L.Error(\"Cannot add an uniform Array dynamically. Please, add it using addUniform and make sure that uniform buffers are supported by the current engine.\");\n return;\n }\n this._buffer || this.create();\n const r = this._uniformArraySizes[e];\n if (this._dynamic)\n for (let n = 0; n < i; n++)\n this._bufferData[s + n] = t[n];\n else {\n let n = !1, o = 0, l = 0;\n for (let h = 0; h < i; h++)\n if (this._bufferData[s + l * 4 + o] !== J.FloatRound(t[h]) && (n = !0, this._createBufferOnWrite && this._createNewBuffer(), this._bufferData[s + l * 4 + o] = t[h]), o++, o === r.strideSize) {\n for (; o < 4; o++)\n this._bufferData[s + l * 4 + o] = 0;\n o = 0, l++;\n }\n this._needSync = this._needSync || n;\n }\n }\n _cacheMatrix(e, t) {\n this._checkNewFrame();\n const i = this._valueCache[e], s = t.updateFlag;\n return i !== void 0 && i === s ? !1 : (this._valueCache[e] = s, !0);\n }\n // Update methods\n _updateMatrix3x3ForUniform(e, t) {\n for (let i = 0; i < 3; i++)\n Ve._TempBuffer[i * 4] = t[i * 3], Ve._TempBuffer[i * 4 + 1] = t[i * 3 + 1], Ve._TempBuffer[i * 4 + 2] = t[i * 3 + 2], Ve._TempBuffer[i * 4 + 3] = 0;\n this.updateUniform(e, Ve._TempBuffer, 12);\n }\n _updateMatrix3x3ForEffect(e, t) {\n this._currentEffect.setMatrix3x3(e, t);\n }\n _updateMatrix2x2ForEffect(e, t) {\n this._currentEffect.setMatrix2x2(e, t);\n }\n _updateMatrix2x2ForUniform(e, t) {\n for (let i = 0; i < 2; i++)\n Ve._TempBuffer[i * 4] = t[i * 2], Ve._TempBuffer[i * 4 + 1] = t[i * 2 + 1], Ve._TempBuffer[i * 4 + 2] = 0, Ve._TempBuffer[i * 4 + 3] = 0;\n this.updateUniform(e, Ve._TempBuffer, 8);\n }\n _updateFloatForEffect(e, t) {\n this._currentEffect.setFloat(e, t);\n }\n _updateFloatForUniform(e, t) {\n Ve._TempBuffer[0] = t, this.updateUniform(e, Ve._TempBuffer, 1);\n }\n _updateFloat2ForEffect(e, t, i, s = \"\") {\n this._currentEffect.setFloat2(e + s, t, i);\n }\n _updateFloat2ForUniform(e, t, i) {\n Ve._TempBuffer[0] = t, Ve._TempBuffer[1] = i, this.updateUniform(e, Ve._TempBuffer, 2);\n }\n _updateFloat3ForEffect(e, t, i, s, r = \"\") {\n this._currentEffect.setFloat3(e + r, t, i, s);\n }\n _updateFloat3ForUniform(e, t, i, s) {\n Ve._TempBuffer[0] = t, Ve._TempBuffer[1] = i, Ve._TempBuffer[2] = s, this.updateUniform(e, Ve._TempBuffer, 3);\n }\n _updateFloat4ForEffect(e, t, i, s, r, n = \"\") {\n this._currentEffect.setFloat4(e + n, t, i, s, r);\n }\n _updateFloat4ForUniform(e, t, i, s, r) {\n Ve._TempBuffer[0] = t, Ve._TempBuffer[1] = i, Ve._TempBuffer[2] = s, Ve._TempBuffer[3] = r, this.updateUniform(e, Ve._TempBuffer, 4);\n }\n _updateFloatArrayForEffect(e, t) {\n this._currentEffect.setFloatArray(e, t);\n }\n _updateFloatArrayForUniform(e, t) {\n this.updateUniformArray(e, t, t.length);\n }\n _updateArrayForEffect(e, t) {\n this._currentEffect.setArray(e, t);\n }\n _updateArrayForUniform(e, t) {\n this.updateUniformArray(e, t, t.length);\n }\n _updateIntArrayForEffect(e, t) {\n this._currentEffect.setIntArray(e, t);\n }\n _updateIntArrayForUniform(e, t) {\n Ve._TempBufferInt32View.set(t), this.updateUniformArray(e, Ve._TempBuffer, t.length);\n }\n _updateUIntArrayForEffect(e, t) {\n this._currentEffect.setUIntArray(e, t);\n }\n _updateUIntArrayForUniform(e, t) {\n Ve._TempBufferUInt32View.set(t), this.updateUniformArray(e, Ve._TempBuffer, t.length);\n }\n _updateMatrixForEffect(e, t) {\n this._currentEffect.setMatrix(e, t);\n }\n _updateMatrixForUniform(e, t) {\n this._cacheMatrix(e, t) && this.updateUniform(e, t.asArray(), 16);\n }\n _updateMatricesForEffect(e, t) {\n this._currentEffect.setMatrices(e, t);\n }\n _updateMatricesForUniform(e, t) {\n this.updateUniform(e, t, t.length);\n }\n _updateVector3ForEffect(e, t) {\n this._currentEffect.setVector3(e, t);\n }\n _updateVector3ForUniform(e, t) {\n Ve._TempBuffer[0] = t.x, Ve._TempBuffer[1] = t.y, Ve._TempBuffer[2] = t.z, this.updateUniform(e, Ve._TempBuffer, 3);\n }\n _updateVector4ForEffect(e, t) {\n this._currentEffect.setVector4(e, t);\n }\n _updateVector4ForUniform(e, t) {\n Ve._TempBuffer[0] = t.x, Ve._TempBuffer[1] = t.y, Ve._TempBuffer[2] = t.z, Ve._TempBuffer[3] = t.w, this.updateUniform(e, Ve._TempBuffer, 4);\n }\n _updateColor3ForEffect(e, t, i = \"\") {\n this._currentEffect.setColor3(e + i, t);\n }\n _updateColor3ForUniform(e, t) {\n Ve._TempBuffer[0] = t.r, Ve._TempBuffer[1] = t.g, Ve._TempBuffer[2] = t.b, this.updateUniform(e, Ve._TempBuffer, 3);\n }\n _updateColor4ForEffect(e, t, i, s = \"\") {\n this._currentEffect.setColor4(e + s, t, i);\n }\n _updateDirectColor4ForEffect(e, t, i = \"\") {\n this._currentEffect.setDirectColor4(e + i, t);\n }\n _updateColor4ForUniform(e, t, i) {\n Ve._TempBuffer[0] = t.r, Ve._TempBuffer[1] = t.g, Ve._TempBuffer[2] = t.b, Ve._TempBuffer[3] = i, this.updateUniform(e, Ve._TempBuffer, 4);\n }\n _updateDirectColor4ForUniform(e, t) {\n Ve._TempBuffer[0] = t.r, Ve._TempBuffer[1] = t.g, Ve._TempBuffer[2] = t.b, Ve._TempBuffer[3] = t.a, this.updateUniform(e, Ve._TempBuffer, 4);\n }\n _updateIntForEffect(e, t, i = \"\") {\n this._currentEffect.setInt(e + i, t);\n }\n _updateIntForUniform(e, t) {\n Ve._TempBufferInt32View[0] = t, this.updateUniform(e, Ve._TempBuffer, 1);\n }\n _updateInt2ForEffect(e, t, i, s = \"\") {\n this._currentEffect.setInt2(e + s, t, i);\n }\n _updateInt2ForUniform(e, t, i) {\n Ve._TempBufferInt32View[0] = t, Ve._TempBufferInt32View[1] = i, this.updateUniform(e, Ve._TempBuffer, 2);\n }\n _updateInt3ForEffect(e, t, i, s, r = \"\") {\n this._currentEffect.setInt3(e + r, t, i, s);\n }\n _updateInt3ForUniform(e, t, i, s) {\n Ve._TempBufferInt32View[0] = t, Ve._TempBufferInt32View[1] = i, Ve._TempBufferInt32View[2] = s, this.updateUniform(e, Ve._TempBuffer, 3);\n }\n _updateInt4ForEffect(e, t, i, s, r, n = \"\") {\n this._currentEffect.setInt4(e + n, t, i, s, r);\n }\n _updateInt4ForUniform(e, t, i, s, r) {\n Ve._TempBufferInt32View[0] = t, Ve._TempBufferInt32View[1] = i, Ve._TempBufferInt32View[2] = s, Ve._TempBufferInt32View[3] = r, this.updateUniform(e, Ve._TempBuffer, 4);\n }\n _updateUIntForEffect(e, t, i = \"\") {\n this._currentEffect.setUInt(e + i, t);\n }\n _updateUIntForUniform(e, t) {\n Ve._TempBufferUInt32View[0] = t, this.updateUniform(e, Ve._TempBuffer, 1);\n }\n _updateUInt2ForEffect(e, t, i, s = \"\") {\n this._currentEffect.setUInt2(e + s, t, i);\n }\n _updateUInt2ForUniform(e, t, i) {\n Ve._TempBufferUInt32View[0] = t, Ve._TempBufferUInt32View[1] = i, this.updateUniform(e, Ve._TempBuffer, 2);\n }\n _updateUInt3ForEffect(e, t, i, s, r = \"\") {\n this._currentEffect.setUInt3(e + r, t, i, s);\n }\n _updateUInt3ForUniform(e, t, i, s) {\n Ve._TempBufferUInt32View[0] = t, Ve._TempBufferUInt32View[1] = i, Ve._TempBufferUInt32View[2] = s, this.updateUniform(e, Ve._TempBuffer, 3);\n }\n _updateUInt4ForEffect(e, t, i, s, r, n = \"\") {\n this._currentEffect.setUInt4(e + n, t, i, s, r);\n }\n _updateUInt4ForUniform(e, t, i, s, r) {\n Ve._TempBufferUInt32View[0] = t, Ve._TempBufferUInt32View[1] = i, Ve._TempBufferUInt32View[2] = s, Ve._TempBufferUInt32View[3] = r, this.updateUniform(e, Ve._TempBuffer, 4);\n }\n /**\n * Sets a sampler uniform on the effect.\n * @param name Define the name of the sampler.\n * @param texture Define the texture to set in the sampler\n */\n setTexture(e, t) {\n this._currentEffect.setTexture(e, t);\n }\n /**\n * Sets a sampler uniform on the effect.\n * @param name Define the name of the sampler.\n * @param texture Define the (internal) texture to set in the sampler\n */\n bindTexture(e, t) {\n this._currentEffect._bindTexture(e, t);\n }\n /**\n * Directly updates the value of the uniform in the cache AND on the GPU.\n * @param uniformName Define the name of the uniform, as used in the uniform block in the shader.\n * @param data Define the flattened data\n */\n updateUniformDirectly(e, t) {\n this.updateUniform(e, t, t.length), this.update();\n }\n /**\n * Associates an effect to this uniform buffer\n * @param effect Define the effect to associate the buffer to\n * @param name Name of the uniform block in the shader.\n */\n bindToEffect(e, t) {\n this._currentEffect = e, this._currentEffectName = t;\n }\n /**\n * Binds the current (GPU) buffer to the effect\n */\n bindUniformBuffer() {\n !this._noUBO && this._buffer && this._currentEffect && this._currentEffect.bindUniformBuffer(this._buffer, this._currentEffectName);\n }\n /**\n * Dissociates the current effect from this uniform buffer\n */\n unbindEffect() {\n this._currentEffect = void 0, this._currentEffectName = void 0;\n }\n /**\n * Sets the current state of the class (_bufferIndex, _buffer) to point to the data buffer passed in parameter if this buffer is one of the buffers handled by the class (meaning if it can be found in the _buffers array)\n * This method is meant to be able to update a buffer at any time: just call setDataBuffer to set the class in the right state, call some updateXXX methods and then call udpate() => that will update the GPU buffer on the graphic card\n * @param dataBuffer buffer to look for\n * @returns true if the buffer has been found and the class internal state points to it, else false\n */\n setDataBuffer(e) {\n if (!this._buffers)\n return this._buffer === e;\n for (let t = 0; t < this._buffers.length; ++t)\n if (this._buffers[t][0] === e)\n return this._bufferIndex = t, this._buffer = e, this._createBufferOnWrite = !1, this._currentEffect = void 0, !0;\n return !1;\n }\n /**\n * Disposes the uniform buffer.\n */\n dispose() {\n if (this._noUBO)\n return;\n const e = this._engine._uniformBuffers, t = e.indexOf(this);\n if (t !== -1 && (e[t] = e[e.length - 1], e.pop()), this._engine._features.trackUbosInFrame && this._buffers)\n for (let i = 0; i < this._buffers.length; ++i) {\n const s = this._buffers[i][0];\n this._engine._releaseBuffer(s);\n }\n else this._buffer && this._engine._releaseBuffer(this._buffer) && (this._buffer = null);\n }\n}\nVe._UpdatedUbosInFrame = {};\nVe._MAX_UNIFORM_SIZE = 256;\nVe._TempBuffer = new Float32Array(Ve._MAX_UNIFORM_SIZE);\nVe._TempBufferInt32View = new Int32Array(Ve._TempBuffer.buffer);\nVe._TempBufferUInt32View = new Uint32Array(Ve._TempBuffer.buffer);\nclass ys {\n /**\n * Gets a boolean indicating if the Buffer is disposed\n */\n get isDisposed() {\n return this._isDisposed;\n }\n /**\n * Constructor\n * @param engine the engine\n * @param data the data to use for this buffer\n * @param updatable whether the data is updatable\n * @param stride the stride (optional)\n * @param postponeInternalCreation whether to postpone creating the internal WebGL buffer (optional)\n * @param instanced whether the buffer is instanced (optional)\n * @param useBytes set to true if the stride in in bytes (optional)\n * @param divisor sets an optional divisor for instances (1 by default)\n * @param label defines the label of the buffer (for debug purpose)\n */\n constructor(e, t, i, s = 0, r = !1, n = !1, o = !1, l, h) {\n this._isAlreadyOwned = !1, this._isDisposed = !1, e && e.getScene ? this._engine = e.getScene().getEngine() : this._engine = e, this._updatable = i, this._instanced = n, this._divisor = l || 1, this._label = h, t instanceof Nl ? (this._data = null, this._buffer = t) : (this._data = t, this._buffer = null), this.byteStride = o ? s : s * Float32Array.BYTES_PER_ELEMENT, r || this.create();\n }\n /**\n * Create a new VertexBuffer based on the current buffer\n * @param kind defines the vertex buffer kind (position, normal, etc.)\n * @param offset defines offset in the buffer (0 by default)\n * @param size defines the size in floats of attributes (position is 3 for instance)\n * @param stride defines the stride size in floats in the buffer (the offset to apply to reach next value when data is interleaved)\n * @param instanced defines if the vertex buffer contains indexed data\n * @param useBytes defines if the offset and stride are in bytes *\n * @param divisor sets an optional divisor for instances (1 by default)\n * @returns the new vertex buffer\n */\n createVertexBuffer(e, t, i, s, r, n = !1, o) {\n const l = n ? t : t * Float32Array.BYTES_PER_ELEMENT, h = s ? n ? s : s * Float32Array.BYTES_PER_ELEMENT : this.byteStride;\n return new R(this._engine, this, e, this._updatable, !0, h, r === void 0 ? this._instanced : r, l, i, void 0, void 0, !0, this._divisor || o);\n }\n // Properties\n /**\n * Gets a boolean indicating if the Buffer is updatable?\n * @returns true if the buffer is updatable\n */\n isUpdatable() {\n return this._updatable;\n }\n /**\n * Gets current buffer's data\n * @returns a DataArray or null\n */\n getData() {\n return this._data;\n }\n /**\n * Gets underlying native buffer\n * @returns underlying native buffer\n */\n getBuffer() {\n return this._buffer;\n }\n /**\n * Gets the stride in float32 units (i.e. byte stride / 4).\n * May not be an integer if the byte stride is not divisible by 4.\n * @returns the stride in float32 units\n * @deprecated Please use byteStride instead.\n */\n getStrideSize() {\n return this.byteStride / Float32Array.BYTES_PER_ELEMENT;\n }\n // Methods\n /**\n * Store data into the buffer. Creates the buffer if not used already.\n * If the buffer was already used, it will be updated only if it is updatable, otherwise it will do nothing.\n * @param data defines the data to store\n */\n create(e = null) {\n !e && this._buffer || (e = e || this._data, e && (this._buffer ? this._updatable && (this._engine.updateDynamicVertexBuffer(this._buffer, e), this._data = e) : this._updatable ? (this._buffer = this._engine.createDynamicVertexBuffer(e, this._label), this._data = e) : this._buffer = this._engine.createVertexBuffer(e, void 0, this._label)));\n }\n /** @internal */\n _rebuild() {\n if (this._data)\n this._buffer = null, this.create(this._data);\n else {\n if (!this._buffer)\n return;\n if (this._buffer.capacity > 0) {\n this._updatable ? this._buffer = this._engine.createDynamicVertexBuffer(this._buffer.capacity, this._label) : this._buffer = this._engine.createVertexBuffer(this._buffer.capacity, void 0, this._label);\n return;\n }\n L.Warn(`Missing data for buffer \"${this._label}\" ${this._buffer ? \"(uniqueId: \" + this._buffer.uniqueId + \")\" : \"\"}. Buffer reconstruction failed.`), this._buffer = null;\n }\n }\n /**\n * Update current buffer data\n * @param data defines the data to store\n */\n update(e) {\n this.create(e);\n }\n /**\n * Updates the data directly.\n * @param data the new data\n * @param offset the new offset\n * @param vertexCount the vertex count (optional)\n * @param useBytes set to true if the offset is in bytes\n */\n updateDirectly(e, t, i, s = !1) {\n this._buffer && this._updatable && (this._engine.updateDynamicVertexBuffer(this._buffer, e, s ? t : t * Float32Array.BYTES_PER_ELEMENT, i ? i * this.byteStride : void 0), t === 0 && i === void 0 ? this._data = e : this._data = null);\n }\n /** @internal */\n _increaseReferences() {\n if (this._buffer) {\n if (!this._isAlreadyOwned) {\n this._isAlreadyOwned = !0;\n return;\n }\n this._buffer.references++;\n }\n }\n /**\n * Release all resources\n */\n dispose() {\n this._buffer && this._engine._releaseBuffer(this._buffer) && (this._isDisposed = !0, this._data = null, this._buffer = null);\n }\n}\nclass R {\n /**\n * Gets a boolean indicating if the Buffer is disposed\n */\n get isDisposed() {\n return this._isDisposed;\n }\n /**\n * Gets or sets the instance divisor when in instanced mode\n */\n get instanceDivisor() {\n return this._instanceDivisor;\n }\n set instanceDivisor(e) {\n const t = e != 0;\n this._instanceDivisor = e, t !== this._instanced && (this._instanced = t, this._computeHashCode());\n }\n /**\n * Gets the max possible amount of vertices stored within the current vertex buffer.\n * We do not have the end offset or count so this will be too big for concatenated vertex buffers.\n * @internal\n */\n get _maxVerticesCount() {\n const e = this.getData();\n return e ? Array.isArray(e) ? e.length / (this.byteStride / 4) - this.byteOffset / 4 : (e.byteLength - this.byteOffset) / this.byteStride : 0;\n }\n /** @internal */\n constructor(e, t, i, s, r, n, o, l, h, c, u = !1, d = !1, f = 1, p = !1) {\n this._isDisposed = !1;\n let _ = !1;\n if (this.engine = e, typeof s == \"object\" && s !== null ? (_ = s.updatable ?? !1, r = s.postponeInternalCreation, n = s.stride, o = s.instanced, l = s.offset, h = s.size, c = s.type, u = s.normalized ?? !1, d = s.useBytes ?? !1, f = s.divisor ?? 1, p = s.takeBufferOwnership ?? !1, this._label = s.label) : _ = !!s, t instanceof ys ? (this._buffer = t, this._ownsBuffer = p) : (this._buffer = new ys(e, t, _, n, r, o, d, f, this._label), this._ownsBuffer = !0), this.uniqueId = R._Counter++, this._kind = i, c === void 0) {\n const x = this.getData();\n this.type = x ? R.GetDataType(x) : R.FLOAT;\n } else\n this.type = c;\n const m = R.GetTypeByteLength(this.type);\n d ? (this._size = h || (n ? n / m : R.DeduceStride(i)), this.byteStride = n || this._buffer.byteStride || this._size * m, this.byteOffset = l || 0) : (this._size = h || n || R.DeduceStride(i), this.byteStride = n ? n * m : this._buffer.byteStride || this._size * m, this.byteOffset = (l || 0) * m), this.normalized = u, this._instanced = o !== void 0 ? o : !1, this._instanceDivisor = o ? f : 0, this._alignBuffer(), this._computeHashCode();\n }\n _computeHashCode() {\n this.hashCode = (this.type - 5120 << 0) + ((this.normalized ? 1 : 0) << 3) + (this._size << 4) + ((this._instanced ? 1 : 0) << 6) + /* keep 5 bits free */\n (this.byteStride << 12);\n }\n /** @internal */\n _rebuild() {\n var e;\n (e = this._buffer) == null || e._rebuild();\n }\n /**\n * Returns the kind of the VertexBuffer (string)\n * @returns a string\n */\n getKind() {\n return this._kind;\n }\n // Properties\n /**\n * Gets a boolean indicating if the VertexBuffer is updatable?\n * @returns true if the buffer is updatable\n */\n isUpdatable() {\n return this._buffer.isUpdatable();\n }\n /**\n * Gets current buffer's data\n * @returns a DataArray or null\n */\n getData() {\n return this._buffer.getData();\n }\n /**\n * Gets current buffer's data as a float array. Float data is constructed if the vertex buffer data cannot be returned directly.\n * @param totalVertices number of vertices in the buffer to take into account\n * @param forceCopy defines a boolean indicating that the returned array must be cloned upon returning it\n * @returns a float array containing vertex data\n */\n getFloatData(e, t) {\n const i = this.getData();\n return i ? R.GetFloatData(i, this._size, this.type, this.byteOffset, this.byteStride, this.normalized, e, t) : null;\n }\n /**\n * Gets underlying native buffer\n * @returns underlying native buffer\n */\n getBuffer() {\n return this._buffer.getBuffer();\n }\n /**\n * Gets the Buffer instance that wraps the native GPU buffer\n * @returns the wrapper buffer\n */\n getWrapperBuffer() {\n return this._buffer;\n }\n /**\n * Gets the stride in float32 units (i.e. byte stride / 4).\n * May not be an integer if the byte stride is not divisible by 4.\n * @returns the stride in float32 units\n * @deprecated Please use byteStride instead.\n */\n getStrideSize() {\n return this.byteStride / R.GetTypeByteLength(this.type);\n }\n /**\n * Returns the offset as a multiple of the type byte length.\n * @returns the offset in bytes\n * @deprecated Please use byteOffset instead.\n */\n getOffset() {\n return this.byteOffset / R.GetTypeByteLength(this.type);\n }\n /**\n * Returns the number of components or the byte size per vertex attribute\n * @param sizeInBytes If true, returns the size in bytes or else the size in number of components of the vertex attribute (default: false)\n * @returns the number of components\n */\n getSize(e = !1) {\n return e ? this._size * R.GetTypeByteLength(this.type) : this._size;\n }\n /**\n * Gets a boolean indicating is the internal buffer of the VertexBuffer is instanced\n * @returns true if this buffer is instanced\n */\n getIsInstanced() {\n return this._instanced;\n }\n /**\n * Returns the instancing divisor, zero for non-instanced (integer).\n * @returns a number\n */\n getInstanceDivisor() {\n return this._instanceDivisor;\n }\n // Methods\n /**\n * Store data into the buffer. If the buffer was already used it will be either recreated or updated depending on isUpdatable property\n * @param data defines the data to store\n */\n create(e) {\n this._buffer.create(e), this._alignBuffer();\n }\n /**\n * Updates the underlying buffer according to the passed numeric array or Float32Array.\n * This function will create a new buffer if the current one is not updatable\n * @param data defines the data to store\n */\n update(e) {\n this._buffer.update(e), this._alignBuffer();\n }\n /**\n * Updates directly the underlying WebGLBuffer according to the passed numeric array or Float32Array.\n * Returns the directly updated WebGLBuffer.\n * @param data the new data\n * @param offset the new offset\n * @param useBytes set to true if the offset is in bytes\n */\n updateDirectly(e, t, i = !1) {\n this._buffer.updateDirectly(e, t, void 0, i), this._alignBuffer();\n }\n /**\n * Disposes the VertexBuffer and the underlying WebGLBuffer.\n */\n dispose() {\n this._ownsBuffer && this._buffer.dispose(), this._isDisposed = !0;\n }\n /**\n * Enumerates each value of this vertex buffer as numbers.\n * @param count the number of values to enumerate\n * @param callback the callback function called for each value\n */\n forEach(e, t) {\n R.ForEach(this._buffer.getData(), this.byteOffset, this.byteStride, this._size, this.type, e, this.normalized, t);\n }\n /** @internal */\n _alignBuffer() {\n }\n /**\n * Deduces the stride given a kind.\n * @param kind The kind string to deduce\n * @returns The deduced stride\n */\n static DeduceStride(e) {\n switch (e) {\n case R.UVKind:\n case R.UV2Kind:\n case R.UV3Kind:\n case R.UV4Kind:\n case R.UV5Kind:\n case R.UV6Kind:\n return 2;\n case R.NormalKind:\n case R.PositionKind:\n return 3;\n case R.ColorKind:\n case R.ColorInstanceKind:\n case R.MatricesIndicesKind:\n case R.MatricesIndicesExtraKind:\n case R.MatricesWeightsKind:\n case R.MatricesWeightsExtraKind:\n case R.TangentKind:\n return 4;\n default:\n throw new Error(\"Invalid kind '\" + e + \"'\");\n }\n }\n /**\n * Gets the vertex buffer type of the given data array.\n * @param data the data array\n * @returns the vertex buffer type\n */\n static GetDataType(e) {\n return e instanceof Int8Array ? R.BYTE : e instanceof Uint8Array ? R.UNSIGNED_BYTE : e instanceof Int16Array ? R.SHORT : e instanceof Uint16Array ? R.UNSIGNED_SHORT : e instanceof Int32Array ? R.INT : e instanceof Uint32Array ? R.UNSIGNED_INT : R.FLOAT;\n }\n /**\n * Gets the byte length of the given type.\n * @param type the type\n * @returns the number of bytes\n */\n static GetTypeByteLength(e) {\n switch (e) {\n case R.BYTE:\n case R.UNSIGNED_BYTE:\n return 1;\n case R.SHORT:\n case R.UNSIGNED_SHORT:\n return 2;\n case R.INT:\n case R.UNSIGNED_INT:\n case R.FLOAT:\n return 4;\n default:\n throw new Error(`Invalid type '${e}'`);\n }\n }\n /**\n * Enumerates each value of the given parameters as numbers.\n * @param data the data to enumerate\n * @param byteOffset the byte offset of the data\n * @param byteStride the byte stride of the data\n * @param componentCount the number of components per element\n * @param componentType the type of the component\n * @param count the number of values to enumerate\n * @param normalized whether the data is normalized\n * @param callback the callback function called for each value\n */\n static ForEach(e, t, i, s, r, n, o, l) {\n if (e instanceof Array) {\n let h = t / 4;\n const c = i / 4;\n for (let u = 0; u < n; u += s) {\n for (let d = 0; d < s; d++)\n l(e[h + d], u + d);\n h += c;\n }\n } else {\n const h = e instanceof ArrayBuffer ? new DataView(e) : new DataView(e.buffer, e.byteOffset, e.byteLength), c = R.GetTypeByteLength(r);\n for (let u = 0; u < n; u += s) {\n let d = t;\n for (let f = 0; f < s; f++) {\n const p = R._GetFloatValue(h, r, d, o);\n l(p, u + f), d += c;\n }\n t += i;\n }\n }\n }\n static _GetFloatValue(e, t, i, s) {\n switch (t) {\n case R.BYTE: {\n let r = e.getInt8(i);\n return s && (r = Math.max(r / 127, -1)), r;\n }\n case R.UNSIGNED_BYTE: {\n let r = e.getUint8(i);\n return s && (r = r / 255), r;\n }\n case R.SHORT: {\n let r = e.getInt16(i, !0);\n return s && (r = Math.max(r / 32767, -1)), r;\n }\n case R.UNSIGNED_SHORT: {\n let r = e.getUint16(i, !0);\n return s && (r = r / 65535), r;\n }\n case R.INT:\n return e.getInt32(i, !0);\n case R.UNSIGNED_INT:\n return e.getUint32(i, !0);\n case R.FLOAT:\n return e.getFloat32(i, !0);\n default:\n throw new Error(`Invalid component type ${t}`);\n }\n }\n /**\n * Gets the given data array as a float array. Float data is constructed if the data array cannot be returned directly.\n * @param data the input data array\n * @param size the number of components\n * @param type the component type\n * @param byteOffset the byte offset of the data\n * @param byteStride the byte stride of the data\n * @param normalized whether the data is normalized\n * @param totalVertices number of vertices in the buffer to take into account\n * @param forceCopy defines a boolean indicating that the returned array must be cloned upon returning it\n * @returns a float array containing vertex data\n */\n static GetFloatData(e, t, i, s, r, n, o, l) {\n const h = t * R.GetTypeByteLength(i), c = o * t;\n if (i !== R.FLOAT || r !== h) {\n const u = new Float32Array(c);\n return R.ForEach(e, s, r, t, i, c, n, (d, f) => u[f] = d), u;\n }\n if (!(e instanceof Array || e instanceof Float32Array) || s !== 0 || e.length !== c)\n if (e instanceof Array) {\n const u = s / 4;\n return e.slice(u, u + c);\n } else {\n if (e instanceof ArrayBuffer)\n return new Float32Array(e, s, c);\n {\n const u = e.byteOffset + s;\n if (l) {\n const f = new Float32Array(c), p = new Float32Array(e.buffer, u, c);\n return f.set(p), f;\n }\n return u % 4 ? (L.Warn(\"GetFloatData: copied misaligned data.\"), new Float32Array(e.buffer.slice(u, u + c * 4))) : new Float32Array(e.buffer, u, c);\n }\n }\n return l ? e.slice() : e;\n }\n}\nR._Counter = 0;\nR.BYTE = 5120;\nR.UNSIGNED_BYTE = 5121;\nR.SHORT = 5122;\nR.UNSIGNED_SHORT = 5123;\nR.INT = 5124;\nR.UNSIGNED_INT = 5125;\nR.FLOAT = 5126;\nR.PositionKind = \"position\";\nR.NormalKind = \"normal\";\nR.TangentKind = \"tangent\";\nR.UVKind = \"uv\";\nR.UV2Kind = \"uv2\";\nR.UV3Kind = \"uv3\";\nR.UV4Kind = \"uv4\";\nR.UV5Kind = \"uv5\";\nR.UV6Kind = \"uv6\";\nR.ColorKind = \"color\";\nR.ColorInstanceKind = \"instanceColor\";\nR.MatricesIndicesKind = \"matricesIndices\";\nR.MatricesWeightsKind = \"matricesWeights\";\nR.MatricesIndicesExtraKind = \"matricesIndicesExtra\";\nR.MatricesWeightsExtraKind = \"matricesWeightsExtra\";\nclass Cs {\n constructor() {\n this.hit = !1, this.distance = 0, this.pickedPoint = null, this.pickedMesh = null, this.bu = 0, this.bv = 0, this.faceId = -1, this.subMeshFaceId = -1, this.subMeshId = 0, this.pickedSprite = null, this.thinInstanceIndex = -1, this.ray = null, this.originMesh = null, this.aimTransform = null, this.gripTransform = null;\n }\n /**\n * Gets the normal corresponding to the face the pick collided with\n * @param useWorldCoordinates If the resulting normal should be relative to the world (default: false)\n * @param useVerticesNormals If the vertices normals should be used to calculate the normal instead of the normal map (default: true)\n * @returns The normal corresponding to the face the pick collided with\n * @remarks Note that the returned normal will always point towards the picking ray.\n */\n getNormal(e = !1, t = !0) {\n if (!this.pickedMesh || t && !this.pickedMesh.isVerticesDataPresent(R.NormalKind))\n return null;\n let i = this.pickedMesh.getIndices();\n (i == null ? void 0 : i.length) === 0 && (i = null);\n let s;\n const r = w.Vector3[0], n = w.Vector3[1], o = w.Vector3[2];\n if (t) {\n const h = this.pickedMesh.getVerticesData(R.NormalKind);\n let c = i ? g.FromArrayToRef(h, i[this.faceId * 3] * 3, r) : r.copyFromFloats(h[this.faceId * 3 * 3], h[this.faceId * 3 * 3 + 1], h[this.faceId * 3 * 3 + 2]), u = i ? g.FromArrayToRef(h, i[this.faceId * 3 + 1] * 3, n) : n.copyFromFloats(h[(this.faceId * 3 + 1) * 3], h[(this.faceId * 3 + 1) * 3 + 1], h[(this.faceId * 3 + 1) * 3 + 2]), d = i ? g.FromArrayToRef(h, i[this.faceId * 3 + 2] * 3, o) : o.copyFromFloats(h[(this.faceId * 3 + 2) * 3], h[(this.faceId * 3 + 2) * 3 + 1], h[(this.faceId * 3 + 2) * 3 + 2]);\n c = c.scale(this.bu), u = u.scale(this.bv), d = d.scale(1 - this.bu - this.bv), s = new g(c.x + u.x + d.x, c.y + u.y + d.y, c.z + u.z + d.z);\n } else {\n const h = this.pickedMesh.getVerticesData(R.PositionKind), c = i ? g.FromArrayToRef(h, i[this.faceId * 3] * 3, r) : r.copyFromFloats(h[this.faceId * 3 * 3], h[this.faceId * 3 * 3 + 1], h[this.faceId * 3 * 3 + 2]), u = i ? g.FromArrayToRef(h, i[this.faceId * 3 + 1] * 3, n) : n.copyFromFloats(h[(this.faceId * 3 + 1) * 3], h[(this.faceId * 3 + 1) * 3 + 1], h[(this.faceId * 3 + 1) * 3 + 2]), d = i ? g.FromArrayToRef(h, i[this.faceId * 3 + 2] * 3, o) : o.copyFromFloats(h[(this.faceId * 3 + 2) * 3], h[(this.faceId * 3 + 2) * 3 + 1], h[(this.faceId * 3 + 2) * 3 + 2]), f = c.subtract(u), p = d.subtract(u);\n s = g.Cross(f, p);\n }\n const l = (h, c) => {\n let u = h.getWorldMatrix();\n h.nonUniformScaling && (w.Matrix[0].copyFrom(u), u = w.Matrix[0], u.setTranslationFromFloats(0, 0, 0), u.invert(), u.transposeToRef(w.Matrix[1]), u = w.Matrix[1]), g.TransformNormalToRef(c, u, c);\n };\n if (e && l(this.pickedMesh, s), this.ray) {\n const h = w.Vector3[0].copyFrom(s);\n e || l(this.pickedMesh, h), g.Dot(h, this.ray.direction) > 0 && s.negateInPlace();\n }\n return s.normalize(), s;\n }\n /**\n * Gets the texture coordinates of where the pick occurred\n * @param uvSet The UV set to use to calculate the texture coordinates (default: VertexBuffer.UVKind)\n * @returns The vector containing the coordinates of the texture\n */\n getTextureCoordinates(e = R.UVKind) {\n if (!this.pickedMesh || !this.pickedMesh.isVerticesDataPresent(e))\n return null;\n const t = this.pickedMesh.getIndices();\n if (!t)\n return null;\n const i = this.pickedMesh.getVerticesData(e);\n if (!i)\n return null;\n let s = Q.FromArray(i, t[this.faceId * 3] * 2), r = Q.FromArray(i, t[this.faceId * 3 + 1] * 2), n = Q.FromArray(i, t[this.faceId * 3 + 2] * 2);\n return s = s.scale(this.bu), r = r.scale(this.bv), n = n.scale(1 - this.bu - this.bv), new Q(s.x + r.x + n.x, s.y + r.y + n.y);\n }\n}\nclass Mi {\n /**\n * Creates a new ActionEvent\n * @param source The mesh or sprite that triggered the action\n * @param pointerX The X mouse cursor position at the time of the event\n * @param pointerY The Y mouse cursor position at the time of the event\n * @param meshUnderPointer The mesh that is currently pointed at (can be null)\n * @param sourceEvent the original (browser) event that triggered the ActionEvent\n * @param additionalData additional data for the event\n */\n constructor(e, t, i, s, r, n) {\n this.source = e, this.pointerX = t, this.pointerY = i, this.meshUnderPointer = s, this.sourceEvent = r, this.additionalData = n;\n }\n /**\n * Helper function to auto-create an ActionEvent from a source mesh.\n * @param source The source mesh that triggered the event\n * @param evt The original (browser) event\n * @param additionalData additional data for the event\n * @returns the new ActionEvent\n */\n static CreateNew(e, t, i) {\n const s = e.getScene();\n return new Mi(e, s.pointerX, s.pointerY, s.meshUnderPointer || e, t, i);\n }\n /**\n * Helper function to auto-create an ActionEvent from a source sprite\n * @param source The source sprite that triggered the event\n * @param scene Scene associated with the sprite\n * @param evt The original (browser) event\n * @param additionalData additional data for the event\n * @returns the new ActionEvent\n */\n static CreateNewFromSprite(e, t, i, s) {\n return new Mi(e, t.pointerX, t.pointerY, t.meshUnderPointer, i, s);\n }\n /**\n * Helper function to auto-create an ActionEvent from a scene. If triggered by a mesh use ActionEvent.CreateNew\n * @param scene the scene where the event occurred\n * @param evt The original (browser) event\n * @returns the new ActionEvent\n */\n static CreateNewFromScene(e, t) {\n return new Mi(null, e.pointerX, e.pointerY, e.meshUnderPointer, t);\n }\n /**\n * Helper function to auto-create an ActionEvent from a primitive\n * @param prim defines the target primitive\n * @param pointerPos defines the pointer position\n * @param evt The original (browser) event\n * @param additionalData additional data for the event\n * @returns the new ActionEvent\n */\n static CreateNewFromPrimitive(e, t, i, s) {\n return new Mi(e, t.x, t.y, null, i, s);\n }\n}\nclass wp {\n /**\n * Creates a new instance PostProcess\n * @param scene The scene that the post process is associated with.\n */\n constructor(e) {\n this._vertexBuffers = {}, this._scene = e;\n }\n _prepareBuffers() {\n if (this._vertexBuffers[R.PositionKind])\n return;\n const e = [];\n e.push(1, 1), e.push(-1, 1), e.push(-1, -1), e.push(1, -1), this._vertexBuffers[R.PositionKind] = new R(this._scene.getEngine(), e, R.PositionKind, !1, !1, 2), this._buildIndexBuffer();\n }\n _buildIndexBuffer() {\n const e = [];\n e.push(0), e.push(1), e.push(2), e.push(0), e.push(2), e.push(3), this._indexBuffer = this._scene.getEngine().createIndexBuffer(e);\n }\n /**\n * Rebuilds the vertex buffers of the manager.\n * @internal\n */\n _rebuild() {\n const e = this._vertexBuffers[R.PositionKind];\n e && (e._rebuild(), this._buildIndexBuffer());\n }\n // Methods\n /**\n * Prepares a frame to be run through a post process.\n * @param sourceTexture The input texture to the post processes. (default: null)\n * @param postProcesses An array of post processes to be run. (default: null)\n * @returns True if the post processes were able to be run.\n * @internal\n */\n _prepareFrame(e = null, t = null) {\n const i = this._scene.activeCamera;\n return !i || (t = t || i._postProcesses.filter((s) => s != null), !t || t.length === 0 || !this._scene.postProcessesEnabled) ? !1 : (t[0].activate(i, e, t != null), !0);\n }\n /**\n * Manually render a set of post processes to a texture.\n * Please note, the frame buffer won't be unbound after the call in case you have more render to do.\n * @param postProcesses An array of post processes to be run.\n * @param targetTexture The render target wrapper to render to.\n * @param forceFullscreenViewport force gl.viewport to be full screen eg. 0,0,textureWidth,textureHeight\n * @param faceIndex defines the face to render to if a cubemap is defined as the target\n * @param lodLevel defines which lod of the texture to render to\n * @param doNotBindFrambuffer If set to true, assumes that the framebuffer has been bound previously\n */\n directRender(e, t = null, i = !1, s = 0, r = 0, n = !1) {\n var l;\n const o = this._scene.getEngine();\n for (let h = 0; h < e.length; h++) {\n h < e.length - 1 ? e[h + 1].activate(this._scene.activeCamera, t == null ? void 0 : t.texture) : (t ? o.bindFramebuffer(t, s, void 0, void 0, i, r) : n || o.restoreDefaultFramebuffer(), (l = o._debugInsertMarker) == null || l.call(o, `post process ${e[h].name} output`));\n const c = e[h], u = c.apply();\n u && (c.onBeforeRenderObservable.notifyObservers(u), this._prepareBuffers(), o.bindBuffers(this._vertexBuffers, this._indexBuffer, u), o.drawElementsType(0, 0, 6), c.onAfterRenderObservable.notifyObservers(u));\n }\n o.setDepthBuffer(!0), o.setDepthWrite(!0);\n }\n /**\n * Finalize the result of the output of the postprocesses.\n * @param doNotPresent If true the result will not be displayed to the screen.\n * @param targetTexture The render target wrapper to render to.\n * @param faceIndex The index of the face to bind the target texture to.\n * @param postProcesses The array of post processes to render.\n * @param forceFullscreenViewport force gl.viewport to be full screen eg. 0,0,textureWidth,textureHeight (default: false)\n * @internal\n */\n _finalizeFrame(e, t, i, s, r = !1) {\n var l;\n const n = this._scene.activeCamera;\n if (!n || (s = s || n._postProcesses.filter((h) => h != null), s.length === 0 || !this._scene.postProcessesEnabled))\n return;\n const o = this._scene.getEngine();\n for (let h = 0, c = s.length; h < c; h++) {\n const u = s[h];\n if (h < c - 1 ? u._outputTexture = s[h + 1].activate(n, t == null ? void 0 : t.texture) : (t ? (o.bindFramebuffer(t, i, void 0, void 0, r), u._outputTexture = t) : (o.restoreDefaultFramebuffer(), u._outputTexture = null), (l = o._debugInsertMarker) == null || l.call(o, `post process ${s[h].name} output`)), e)\n break;\n const d = u.apply();\n d && (u.onBeforeRenderObservable.notifyObservers(d), this._prepareBuffers(), o.bindBuffers(this._vertexBuffers, this._indexBuffer, d), o.drawElementsType(0, 0, 6), u.onAfterRenderObservable.notifyObservers(d));\n }\n o.setDepthBuffer(!0), o.setDepthWrite(!0), o.setAlphaMode(0);\n }\n /**\n * Disposes of the post process manager.\n */\n dispose() {\n const e = this._vertexBuffers[R.PositionKind];\n e && (e.dispose(), this._vertexBuffers[R.PositionKind] = null), this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), this._indexBuffer = null);\n }\n}\nclass Hn {\n /**\n * Set the opaque sort comparison function.\n * If null the sub meshes will be render in the order they were created\n */\n set opaqueSortCompareFn(e) {\n e ? this._opaqueSortCompareFn = e : this._opaqueSortCompareFn = Hn.PainterSortCompare, this._renderOpaque = this._renderOpaqueSorted;\n }\n /**\n * Set the alpha test sort comparison function.\n * If null the sub meshes will be render in the order they were created\n */\n set alphaTestSortCompareFn(e) {\n e ? this._alphaTestSortCompareFn = e : this._alphaTestSortCompareFn = Hn.PainterSortCompare, this._renderAlphaTest = this._renderAlphaTestSorted;\n }\n /**\n * Set the transparent sort comparison function.\n * If null the sub meshes will be render in the order they were created\n */\n set transparentSortCompareFn(e) {\n e ? this._transparentSortCompareFn = e : this._transparentSortCompareFn = Hn.defaultTransparentSortCompare, this._renderTransparent = this._renderTransparentSorted;\n }\n /**\n * Creates a new rendering group.\n * @param index The rendering group index\n * @param scene\n * @param opaqueSortCompareFn The opaque sort comparison function. If null no order is applied\n * @param alphaTestSortCompareFn The alpha test sort comparison function. If null no order is applied\n * @param transparentSortCompareFn The transparent sort comparison function. If null back to front + alpha index sort is applied\n */\n constructor(e, t, i = null, s = null, r = null) {\n this.index = e, this._opaqueSubMeshes = new fs(256), this._transparentSubMeshes = new fs(256), this._alphaTestSubMeshes = new fs(256), this._depthOnlySubMeshes = new fs(256), this._particleSystems = new fs(256), this._spriteManagers = new fs(256), this._empty = !0, this._edgesRenderers = new Mo(16), this._scene = t, this.opaqueSortCompareFn = i, this.alphaTestSortCompareFn = s, this.transparentSortCompareFn = r;\n }\n /**\n * Render all the sub meshes contained in the group.\n * @param customRenderFunction Used to override the default render behaviour of the group.\n * @param renderSprites\n * @param renderParticles\n * @param activeMeshes\n */\n render(e, t, i, s) {\n if (e) {\n e(this._opaqueSubMeshes, this._alphaTestSubMeshes, this._transparentSubMeshes, this._depthOnlySubMeshes);\n return;\n }\n const r = this._scene.getEngine();\n this._depthOnlySubMeshes.length !== 0 && (r.setColorWrite(!1), this._renderAlphaTest(this._depthOnlySubMeshes), r.setColorWrite(!0)), this._opaqueSubMeshes.length !== 0 && this._renderOpaque(this._opaqueSubMeshes), this._alphaTestSubMeshes.length !== 0 && this._renderAlphaTest(this._alphaTestSubMeshes);\n const n = r.getStencilBuffer();\n if (r.setStencilBuffer(!1), t && this._renderSprites(), i && this._renderParticles(s), this.onBeforeTransparentRendering && this.onBeforeTransparentRendering(), this._transparentSubMeshes.length !== 0 || this._scene.useOrderIndependentTransparency) {\n if (r.setStencilBuffer(n), this._scene.useOrderIndependentTransparency) {\n const o = this._scene.depthPeelingRenderer.render(this._transparentSubMeshes);\n o.length && this._renderTransparent(o);\n } else\n this._renderTransparent(this._transparentSubMeshes);\n r.setAlphaMode(0);\n }\n if (r.setStencilBuffer(!1), this._edgesRenderers.length) {\n for (let o = 0; o < this._edgesRenderers.length; o++)\n this._edgesRenderers.data[o].render();\n r.setAlphaMode(0);\n }\n r.setStencilBuffer(n);\n }\n /**\n * Renders the opaque submeshes in the order from the opaqueSortCompareFn.\n * @param subMeshes The submeshes to render\n */\n _renderOpaqueSorted(e) {\n Hn._RenderSorted(e, this._opaqueSortCompareFn, this._scene.activeCamera, !1);\n }\n /**\n * Renders the opaque submeshes in the order from the alphatestSortCompareFn.\n * @param subMeshes The submeshes to render\n */\n _renderAlphaTestSorted(e) {\n Hn._RenderSorted(e, this._alphaTestSortCompareFn, this._scene.activeCamera, !1);\n }\n /**\n * Renders the opaque submeshes in the order from the transparentSortCompareFn.\n * @param subMeshes The submeshes to render\n */\n _renderTransparentSorted(e) {\n Hn._RenderSorted(e, this._transparentSortCompareFn, this._scene.activeCamera, !0);\n }\n /**\n * Renders the submeshes in a specified order.\n * @param subMeshes The submeshes to sort before render\n * @param sortCompareFn The comparison function use to sort\n * @param camera The camera position use to preprocess the submeshes to help sorting\n * @param transparent Specifies to activate blending if true\n */\n static _RenderSorted(e, t, i, s) {\n let r = 0, n;\n const o = i ? i.globalPosition : Hn._ZeroVector;\n if (s)\n for (; r < e.length; r++)\n n = e.data[r], n._alphaIndex = n.getMesh().alphaIndex, n._distanceToCamera = g.Distance(n.getBoundingInfo().boundingSphere.centerWorld, o);\n const l = e.length === e.data.length ? e.data : e.data.slice(0, e.length);\n t && l.sort(t);\n const h = l[0].getMesh().getScene();\n for (r = 0; r < l.length; r++)\n if (n = l[r], !(h._activeMeshesFrozenButKeepClipping && !n.isInFrustum(h._frustumPlanes))) {\n if (s) {\n const c = n.getMaterial();\n if (c && c.needDepthPrePass) {\n const u = c.getScene().getEngine();\n u.setColorWrite(!1), u.setAlphaMode(0), n.render(!1), u.setColorWrite(!0);\n }\n }\n n.render(s);\n }\n }\n /**\n * Build in function which can be applied to ensure meshes of a special queue (opaque, alpha test, transparent)\n * are rendered back to front if in the same alpha index.\n *\n * @param a The first submesh\n * @param b The second submesh\n * @returns The result of the comparison\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static defaultTransparentSortCompare(e, t) {\n return e._alphaIndex > t._alphaIndex ? 1 : e._alphaIndex < t._alphaIndex ? -1 : Hn.backToFrontSortCompare(e, t);\n }\n /**\n * Build in function which can be applied to ensure meshes of a special queue (opaque, alpha test, transparent)\n * are rendered back to front.\n *\n * @param a The first submesh\n * @param b The second submesh\n * @returns The result of the comparison\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static backToFrontSortCompare(e, t) {\n return e._distanceToCamera < t._distanceToCamera ? 1 : e._distanceToCamera > t._distanceToCamera ? -1 : 0;\n }\n /**\n * Build in function which can be applied to ensure meshes of a special queue (opaque, alpha test, transparent)\n * are rendered front to back (prevent overdraw).\n *\n * @param a The first submesh\n * @param b The second submesh\n * @returns The result of the comparison\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static frontToBackSortCompare(e, t) {\n return e._distanceToCamera < t._distanceToCamera ? -1 : e._distanceToCamera > t._distanceToCamera ? 1 : 0;\n }\n /**\n * Build in function which can be applied to ensure meshes of a special queue (opaque, alpha test, transparent)\n * are grouped by material then geometry.\n *\n * @param a The first submesh\n * @param b The second submesh\n * @returns The result of the comparison\n */\n static PainterSortCompare(e, t) {\n const i = e.getMesh(), s = t.getMesh();\n return i.material && s.material ? i.material.uniqueId - s.material.uniqueId : i.uniqueId - s.uniqueId;\n }\n /**\n * Resets the different lists of submeshes to prepare a new frame.\n */\n prepare() {\n this._opaqueSubMeshes.reset(), this._transparentSubMeshes.reset(), this._alphaTestSubMeshes.reset(), this._depthOnlySubMeshes.reset(), this._particleSystems.reset(), this.prepareSprites(), this._edgesRenderers.reset(), this._empty = !0;\n }\n /**\n * Resets the different lists of sprites to prepare a new frame.\n */\n prepareSprites() {\n this._spriteManagers.reset();\n }\n dispose() {\n this._opaqueSubMeshes.dispose(), this._transparentSubMeshes.dispose(), this._alphaTestSubMeshes.dispose(), this._depthOnlySubMeshes.dispose(), this._particleSystems.dispose(), this._spriteManagers.dispose(), this._edgesRenderers.dispose();\n }\n /**\n * Inserts the submesh in its correct queue depending on its material.\n * @param subMesh The submesh to dispatch\n * @param [mesh] Optional reference to the submeshes's mesh. Provide if you have an exiting reference to improve performance.\n * @param [material] Optional reference to the submeshes's material. Provide if you have an exiting reference to improve performance.\n */\n dispatch(e, t, i) {\n t === void 0 && (t = e.getMesh()), i === void 0 && (i = e.getMaterial()), i != null && (i.needAlphaBlendingForMesh(t) ? this._transparentSubMeshes.push(e) : i.needAlphaTesting() ? (i.needDepthPrePass && this._depthOnlySubMeshes.push(e), this._alphaTestSubMeshes.push(e)) : (i.needDepthPrePass && this._depthOnlySubMeshes.push(e), this._opaqueSubMeshes.push(e)), t._renderingGroup = this, t._edgesRenderer && t.isEnabled() && t.isVisible && t._edgesRenderer.isEnabled && this._edgesRenderers.pushNoDuplicate(t._edgesRenderer), this._empty = !1);\n }\n dispatchSprites(e) {\n this._spriteManagers.push(e), this._empty = !1;\n }\n dispatchParticles(e) {\n this._particleSystems.push(e), this._empty = !1;\n }\n _renderParticles(e) {\n if (this._particleSystems.length === 0)\n return;\n const t = this._scene.activeCamera;\n this._scene.onBeforeParticlesRenderingObservable.notifyObservers(this._scene);\n for (let i = 0; i < this._particleSystems.length; i++) {\n const s = this._particleSystems.data[i];\n if ((t && t.layerMask & s.layerMask) === 0)\n continue;\n const r = s.emitter;\n (!r.position || !e || e.indexOf(r) !== -1) && this._scene._activeParticles.addCount(s.render(), !1);\n }\n this._scene.onAfterParticlesRenderingObservable.notifyObservers(this._scene);\n }\n _renderSprites() {\n if (!this._scene.spritesEnabled || this._spriteManagers.length === 0)\n return;\n const e = this._scene.activeCamera;\n this._scene.onBeforeSpritesRenderingObservable.notifyObservers(this._scene);\n for (let t = 0; t < this._spriteManagers.length; t++) {\n const i = this._spriteManagers.data[t];\n (e && e.layerMask & i.layerMask) !== 0 && i.render();\n }\n this._scene.onAfterSpritesRenderingObservable.notifyObservers(this._scene);\n }\n}\nHn._ZeroVector = g.Zero();\nclass pM {\n}\nclass Ys {\n /**\n * Gets or sets a boolean indicating that the manager will not reset between frames.\n * This means that if a mesh becomes invisible or transparent it will not be visible until this boolean is set to false again.\n * By default, the rendering manager will dispatch all active meshes per frame (moving them to the transparent, opaque or alpha testing lists).\n * By turning this property on, you will accelerate the rendering by keeping all these lists unchanged between frames.\n */\n get maintainStateBetweenFrames() {\n return this._maintainStateBetweenFrames;\n }\n set maintainStateBetweenFrames(e) {\n e !== this._maintainStateBetweenFrames && (this._maintainStateBetweenFrames = e, this._maintainStateBetweenFrames || this.restoreDispachedFlags());\n }\n /**\n * Restore wasDispatched flags on the lists of elements to render.\n */\n restoreDispachedFlags() {\n for (const e of this._scene.meshes)\n if (e.subMeshes)\n for (const t of e.subMeshes)\n t._wasDispatched = !1;\n if (this._scene.spriteManagers)\n for (const e of this._scene.spriteManagers)\n e._wasDispatched = !1;\n for (const e of this._scene.particleSystems)\n e._wasDispatched = !1;\n }\n /**\n * Instantiates a new rendering group for a particular scene\n * @param scene Defines the scene the groups belongs to\n */\n constructor(e) {\n this._useSceneAutoClearSetup = !1, this._renderingGroups = new Array(), this._autoClearDepthStencil = {}, this._customOpaqueSortCompareFn = {}, this._customAlphaTestSortCompareFn = {}, this._customTransparentSortCompareFn = {}, this._renderingGroupInfo = new pM(), this._maintainStateBetweenFrames = !1, this._scene = e;\n for (let t = Ys.MIN_RENDERINGGROUPS; t < Ys.MAX_RENDERINGGROUPS; t++)\n this._autoClearDepthStencil[t] = { autoClear: !0, depth: !0, stencil: !0 };\n }\n /**\n * @returns the rendering group with the specified id.\n * @param id the id of the rendering group (0 by default)\n */\n getRenderingGroup(e) {\n const t = e || 0;\n return this._prepareRenderingGroup(t), this._renderingGroups[t];\n }\n _clearDepthStencilBuffer(e = !0, t = !0) {\n this._depthStencilBufferAlreadyCleaned || (this._scene.getEngine().clear(null, !1, e, t), this._depthStencilBufferAlreadyCleaned = !0);\n }\n /**\n * Renders the entire managed groups. This is used by the scene or the different render targets.\n * @internal\n */\n render(e, t, i, s) {\n const r = this._renderingGroupInfo;\n if (r.scene = this._scene, r.camera = this._scene.activeCamera, this._scene.spriteManagers && s)\n for (let n = 0; n < this._scene.spriteManagers.length; n++) {\n const o = this._scene.spriteManagers[n];\n this.dispatchSprites(o);\n }\n for (let n = Ys.MIN_RENDERINGGROUPS; n < Ys.MAX_RENDERINGGROUPS; n++) {\n this._depthStencilBufferAlreadyCleaned = n === Ys.MIN_RENDERINGGROUPS;\n const o = this._renderingGroups[n];\n if (!o || o._empty)\n continue;\n const l = 1 << n;\n if (r.renderingGroupId = n, this._scene.onBeforeRenderingGroupObservable.notifyObservers(r, l), Ys.AUTOCLEAR) {\n const h = this._useSceneAutoClearSetup ? this._scene.getAutoClearDepthStencilSetup(n) : this._autoClearDepthStencil[n];\n h && h.autoClear && this._clearDepthStencilBuffer(h.depth, h.stencil);\n }\n for (const h of this._scene._beforeRenderingGroupDrawStage)\n h.action(n);\n o.render(e, s, i, t);\n for (const h of this._scene._afterRenderingGroupDrawStage)\n h.action(n);\n this._scene.onAfterRenderingGroupObservable.notifyObservers(r, l);\n }\n }\n /**\n * Resets the different information of the group to prepare a new frame\n * @internal\n */\n reset() {\n if (!this.maintainStateBetweenFrames)\n for (let e = Ys.MIN_RENDERINGGROUPS; e < Ys.MAX_RENDERINGGROUPS; e++) {\n const t = this._renderingGroups[e];\n t && t.prepare();\n }\n }\n /**\n * Resets the sprites information of the group to prepare a new frame\n * @internal\n */\n resetSprites() {\n if (!this.maintainStateBetweenFrames)\n for (let e = Ys.MIN_RENDERINGGROUPS; e < Ys.MAX_RENDERINGGROUPS; e++) {\n const t = this._renderingGroups[e];\n t && t.prepareSprites();\n }\n }\n /**\n * Dispose and release the group and its associated resources.\n * @internal\n */\n dispose() {\n this.freeRenderingGroups(), this._renderingGroups.length = 0, this._renderingGroupInfo = null;\n }\n /**\n * Clear the info related to rendering groups preventing retention points during dispose.\n */\n freeRenderingGroups() {\n for (let e = Ys.MIN_RENDERINGGROUPS; e < Ys.MAX_RENDERINGGROUPS; e++) {\n const t = this._renderingGroups[e];\n t && t.dispose();\n }\n }\n _prepareRenderingGroup(e) {\n this._renderingGroups[e] === void 0 && (this._renderingGroups[e] = new Hn(e, this._scene, this._customOpaqueSortCompareFn[e], this._customAlphaTestSortCompareFn[e], this._customTransparentSortCompareFn[e]));\n }\n /**\n * Add a sprite manager to the rendering manager in order to render it this frame.\n * @param spriteManager Define the sprite manager to render\n */\n dispatchSprites(e) {\n this.maintainStateBetweenFrames && e._wasDispatched || (e._wasDispatched = !0, this.getRenderingGroup(e.renderingGroupId).dispatchSprites(e));\n }\n /**\n * Add a particle system to the rendering manager in order to render it this frame.\n * @param particleSystem Define the particle system to render\n */\n dispatchParticles(e) {\n this.maintainStateBetweenFrames && e._wasDispatched || (e._wasDispatched = !0, this.getRenderingGroup(e.renderingGroupId).dispatchParticles(e));\n }\n /**\n * Add a submesh to the manager in order to render it this frame\n * @param subMesh The submesh to dispatch\n * @param mesh Optional reference to the submeshes's mesh. Provide if you have an exiting reference to improve performance.\n * @param material Optional reference to the submeshes's material. Provide if you have an exiting reference to improve performance.\n */\n dispatch(e, t, i) {\n t === void 0 && (t = e.getMesh()), !(this.maintainStateBetweenFrames && e._wasDispatched) && (e._wasDispatched = !0, this.getRenderingGroup(t.renderingGroupId).dispatch(e, t, i));\n }\n /**\n * Overrides the default sort function applied in the rendering group to prepare the meshes.\n * This allowed control for front to back rendering or reversely depending of the special needs.\n *\n * @param renderingGroupId The rendering group id corresponding to its index\n * @param opaqueSortCompareFn The opaque queue comparison function use to sort.\n * @param alphaTestSortCompareFn The alpha test queue comparison function use to sort.\n * @param transparentSortCompareFn The transparent queue comparison function use to sort.\n */\n setRenderingOrder(e, t = null, i = null, s = null) {\n if (this._customOpaqueSortCompareFn[e] = t, this._customAlphaTestSortCompareFn[e] = i, this._customTransparentSortCompareFn[e] = s, this._renderingGroups[e]) {\n const r = this._renderingGroups[e];\n r.opaqueSortCompareFn = this._customOpaqueSortCompareFn[e], r.alphaTestSortCompareFn = this._customAlphaTestSortCompareFn[e], r.transparentSortCompareFn = this._customTransparentSortCompareFn[e];\n }\n }\n /**\n * Specifies whether or not the stencil and depth buffer are cleared between two rendering groups.\n *\n * @param renderingGroupId The rendering group id corresponding to its index\n * @param autoClearDepthStencil Automatically clears depth and stencil between groups if true.\n * @param depth Automatically clears depth between groups if true and autoClear is true.\n * @param stencil Automatically clears stencil between groups if true and autoClear is true.\n */\n setRenderingAutoClearDepthStencil(e, t, i = !0, s = !0) {\n this._autoClearDepthStencil[e] = {\n autoClear: t,\n depth: i,\n stencil: s\n };\n }\n /**\n * Gets the current auto clear configuration for one rendering group of the rendering\n * manager.\n * @param index the rendering group index to get the information for\n * @returns The auto clear setup for the requested rendering group\n */\n getAutoClearDepthStencilSetup(e) {\n return this._autoClearDepthStencil[e];\n }\n}\nYs.MAX_RENDERINGGROUPS = 4;\nYs.MIN_RENDERINGGROUPS = 0;\nYs.AUTOCLEAR = !0;\nclass me {\n}\nme.NAME_EFFECTLAYER = \"EffectLayer\";\nme.NAME_LAYER = \"Layer\";\nme.NAME_LENSFLARESYSTEM = \"LensFlareSystem\";\nme.NAME_BOUNDINGBOXRENDERER = \"BoundingBoxRenderer\";\nme.NAME_PARTICLESYSTEM = \"ParticleSystem\";\nme.NAME_GAMEPAD = \"Gamepad\";\nme.NAME_SIMPLIFICATIONQUEUE = \"SimplificationQueue\";\nme.NAME_GEOMETRYBUFFERRENDERER = \"GeometryBufferRenderer\";\nme.NAME_PREPASSRENDERER = \"PrePassRenderer\";\nme.NAME_DEPTHRENDERER = \"DepthRenderer\";\nme.NAME_DEPTHPEELINGRENDERER = \"DepthPeelingRenderer\";\nme.NAME_POSTPROCESSRENDERPIPELINEMANAGER = \"PostProcessRenderPipelineManager\";\nme.NAME_SPRITE = \"Sprite\";\nme.NAME_SUBSURFACE = \"SubSurface\";\nme.NAME_OUTLINERENDERER = \"Outline\";\nme.NAME_PROCEDURALTEXTURE = \"ProceduralTexture\";\nme.NAME_SHADOWGENERATOR = \"ShadowGenerator\";\nme.NAME_OCTREE = \"Octree\";\nme.NAME_PHYSICSENGINE = \"PhysicsEngine\";\nme.NAME_AUDIO = \"Audio\";\nme.NAME_FLUIDRENDERER = \"FluidRenderer\";\nme.STEP_ISREADYFORMESH_EFFECTLAYER = 0;\nme.STEP_BEFOREEVALUATEACTIVEMESH_BOUNDINGBOXRENDERER = 0;\nme.STEP_EVALUATESUBMESH_BOUNDINGBOXRENDERER = 0;\nme.STEP_PREACTIVEMESH_BOUNDINGBOXRENDERER = 0;\nme.STEP_CAMERADRAWRENDERTARGET_EFFECTLAYER = 1;\nme.STEP_BEFORECAMERADRAW_PREPASS = 0;\nme.STEP_BEFORECAMERADRAW_EFFECTLAYER = 1;\nme.STEP_BEFORECAMERADRAW_LAYER = 2;\nme.STEP_BEFORERENDERTARGETDRAW_PREPASS = 0;\nme.STEP_BEFORERENDERTARGETDRAW_LAYER = 1;\nme.STEP_BEFORERENDERINGMESH_PREPASS = 0;\nme.STEP_BEFORERENDERINGMESH_OUTLINE = 1;\nme.STEP_AFTERRENDERINGMESH_PREPASS = 0;\nme.STEP_AFTERRENDERINGMESH_OUTLINE = 1;\nme.STEP_AFTERRENDERINGGROUPDRAW_EFFECTLAYER_DRAW = 0;\nme.STEP_AFTERRENDERINGGROUPDRAW_BOUNDINGBOXRENDERER = 1;\nme.STEP_BEFORECAMERAUPDATE_SIMPLIFICATIONQUEUE = 0;\nme.STEP_BEFORECAMERAUPDATE_GAMEPAD = 1;\nme.STEP_BEFORECLEAR_PROCEDURALTEXTURE = 0;\nme.STEP_BEFORECLEAR_PREPASS = 1;\nme.STEP_BEFORERENDERTARGETCLEAR_PREPASS = 0;\nme.STEP_AFTERRENDERTARGETDRAW_PREPASS = 0;\nme.STEP_AFTERRENDERTARGETDRAW_LAYER = 1;\nme.STEP_AFTERCAMERADRAW_PREPASS = 0;\nme.STEP_AFTERCAMERADRAW_EFFECTLAYER = 1;\nme.STEP_AFTERCAMERADRAW_LENSFLARESYSTEM = 2;\nme.STEP_AFTERCAMERADRAW_EFFECTLAYER_DRAW = 3;\nme.STEP_AFTERCAMERADRAW_LAYER = 4;\nme.STEP_AFTERCAMERADRAW_FLUIDRENDERER = 5;\nme.STEP_AFTERCAMERAPOSTPROCESS_LAYER = 0;\nme.STEP_AFTERRENDERTARGETPOSTPROCESS_LAYER = 0;\nme.STEP_AFTERRENDER_AUDIO = 0;\nme.STEP_GATHERRENDERTARGETS_DEPTHRENDERER = 0;\nme.STEP_GATHERRENDERTARGETS_GEOMETRYBUFFERRENDERER = 1;\nme.STEP_GATHERRENDERTARGETS_SHADOWGENERATOR = 2;\nme.STEP_GATHERRENDERTARGETS_POSTPROCESSRENDERPIPELINEMANAGER = 3;\nme.STEP_GATHERACTIVECAMERARENDERTARGETS_DEPTHRENDERER = 0;\nme.STEP_GATHERACTIVECAMERARENDERTARGETS_FLUIDRENDERER = 1;\nme.STEP_POINTERMOVE_SPRITE = 0;\nme.STEP_POINTERDOWN_SPRITE = 0;\nme.STEP_POINTERUP_SPRITE = 0;\nclass Ji extends Array {\n /**\n * Hide ctor from the rest of the world.\n * @param items The items to add.\n */\n constructor(e) {\n super(...e);\n }\n /**\n * Creates a new Stage.\n * @returns A new instance of a Stage\n */\n static Create() {\n return Object.create(Ji.prototype);\n }\n /**\n * Registers a step in an ordered way in the targeted stage.\n * @param index Defines the position to register the step in\n * @param component Defines the component attached to the step\n * @param action Defines the action to launch during the step\n */\n registerStep(e, t, i) {\n let s = 0, r = Number.MAX_VALUE;\n for (; s < this.length && (r = this[s].index, !(e < r)); s++)\n ;\n this.splice(s, 0, { index: e, component: t, action: i.bind(t) });\n }\n /**\n * Clears all the steps from the stage.\n */\n clear() {\n this.length = 0;\n }\n}\nclass Pe {\n}\nPe.POINTERDOWN = 1;\nPe.POINTERUP = 2;\nPe.POINTERMOVE = 4;\nPe.POINTERWHEEL = 8;\nPe.POINTERPICK = 16;\nPe.POINTERTAP = 32;\nPe.POINTERDOUBLETAP = 64;\nclass VC {\n /**\n * Instantiates the base class of pointers info.\n * @param type Defines the type of event (PointerEventTypes)\n * @param event Defines the related dom event\n */\n constructor(e, t) {\n this.type = e, this.event = t;\n }\n}\nclass _M extends VC {\n /**\n * Instantiates a PointerInfoPre to store pointer related info to the onPrePointerObservable event.\n * @param type Defines the type of event (PointerEventTypes)\n * @param event Defines the related dom event\n * @param localX Defines the local x coordinates of the pointer when the event occured\n * @param localY Defines the local y coordinates of the pointer when the event occured\n */\n constructor(e, t, i, s) {\n super(e, t), this.ray = null, this.originalPickingInfo = null, this.skipOnPointerObservable = !1, this.localPosition = new Q(i, s);\n }\n}\nclass Mn extends VC {\n /**\n * Defines the picking info associated with this PointerInfo object (if applicable)\n */\n get pickInfo() {\n return this._pickInfo || this._generatePickInfo(), this._pickInfo;\n }\n /**\n * Instantiates a PointerInfo to store pointer related info to the onPointerObservable event.\n * @param type Defines the type of event (PointerEventTypes)\n * @param event Defines the related dom event\n * @param pickInfo Defines the picking info associated to the info (if any)\n * @param inputManager Defines the InputManager to use if there is no pickInfo\n */\n constructor(e, t, i, s = null) {\n super(e, t), this._pickInfo = i, this._inputManager = s;\n }\n /**\n * Generates the picking info if needed\n */\n /** @internal */\n _generatePickInfo() {\n this._inputManager && (this._pickInfo = this._inputManager._pickMove(this.event), this._inputManager._setRayOnPointerInfo(this._pickInfo, this.event), this._inputManager = null);\n }\n}\nclass rn {\n constructor() {\n this.hoverCursor = \"\", this.actions = [], this.isRecursive = !1, this.disposeWhenUnowned = !0;\n }\n /**\n * Does exist one action manager with at least one trigger\n **/\n static get HasTriggers() {\n for (const e in rn.Triggers)\n if (Object.prototype.hasOwnProperty.call(rn.Triggers, e))\n return !0;\n return !1;\n }\n /**\n * Does exist one action manager with at least one pick trigger\n **/\n static get HasPickTriggers() {\n for (const e in rn.Triggers)\n if (Object.prototype.hasOwnProperty.call(rn.Triggers, e)) {\n const t = parseInt(e);\n if (t >= 1 && t <= 7)\n return !0;\n }\n return !1;\n }\n /**\n * Does exist one action manager that handles actions of a given trigger\n * @param trigger defines the trigger to be tested\n * @returns a boolean indicating whether the trigger is handled by at least one action manager\n **/\n static HasSpecificTrigger(e) {\n for (const t in rn.Triggers)\n if (Object.prototype.hasOwnProperty.call(rn.Triggers, t) && parseInt(t) === e)\n return !0;\n return !1;\n }\n}\nrn.Triggers = {};\nclass Ma {\n}\nMa.KEYDOWN = 1;\nMa.KEYUP = 2;\nclass bg {\n /**\n * Instantiates a new keyboard info.\n * This class is used to store keyboard related info for the onKeyboardObservable event.\n * @param type Defines the type of event (KeyboardEventTypes)\n * @param event Defines the related dom event\n */\n constructor(e, t) {\n this.type = e, this.event = t;\n }\n}\nclass TS extends bg {\n /**\n * Defines whether the engine should skip the next onKeyboardObservable associated to this pre.\n * @deprecated use skipOnKeyboardObservable property instead\n */\n get skipOnPointerObservable() {\n return this.skipOnKeyboardObservable;\n }\n set skipOnPointerObservable(e) {\n this.skipOnKeyboardObservable = e;\n }\n /**\n * Instantiates a new keyboard pre info.\n * This class is used to store keyboard related info for the onPreKeyboardObservable event.\n * @param type Defines the type of event (KeyboardEventTypes)\n * @param event Defines the related dom event\n */\n constructor(e, t) {\n super(e, t), this.type = e, this.event = t, this.skipOnKeyboardObservable = !1;\n }\n}\nvar He;\n(function(a) {\n a[a.Generic = 0] = \"Generic\", a[a.Keyboard = 1] = \"Keyboard\", a[a.Mouse = 2] = \"Mouse\", a[a.Touch = 3] = \"Touch\", a[a.DualShock = 4] = \"DualShock\", a[a.Xbox = 5] = \"Xbox\", a[a.Switch = 6] = \"Switch\", a[a.DualSense = 7] = \"DualSense\";\n})(He || (He = {}));\nvar et;\n(function(a) {\n a[a.Horizontal = 0] = \"Horizontal\", a[a.Vertical = 1] = \"Vertical\", a[a.LeftClick = 2] = \"LeftClick\", a[a.MiddleClick = 3] = \"MiddleClick\", a[a.RightClick = 4] = \"RightClick\", a[a.BrowserBack = 5] = \"BrowserBack\", a[a.BrowserForward = 6] = \"BrowserForward\", a[a.MouseWheelX = 7] = \"MouseWheelX\", a[a.MouseWheelY = 8] = \"MouseWheelY\", a[a.MouseWheelZ = 9] = \"MouseWheelZ\", a[a.Move = 12] = \"Move\";\n})(et || (et = {}));\nvar SS;\n(function(a) {\n a[a.Horizontal = 0] = \"Horizontal\", a[a.Vertical = 1] = \"Vertical\", a[a.LeftClick = 2] = \"LeftClick\", a[a.MiddleClick = 3] = \"MiddleClick\", a[a.RightClick = 4] = \"RightClick\", a[a.BrowserBack = 5] = \"BrowserBack\", a[a.BrowserForward = 6] = \"BrowserForward\", a[a.MouseWheelX = 7] = \"MouseWheelX\", a[a.MouseWheelY = 8] = \"MouseWheelY\", a[a.MouseWheelZ = 9] = \"MouseWheelZ\", a[a.DeltaHorizontal = 10] = \"DeltaHorizontal\", a[a.DeltaVertical = 11] = \"DeltaVertical\";\n})(SS || (SS = {}));\nvar bS;\n(function(a) {\n a[a.Cross = 0] = \"Cross\", a[a.Circle = 1] = \"Circle\", a[a.Square = 2] = \"Square\", a[a.Triangle = 3] = \"Triangle\", a[a.L1 = 4] = \"L1\", a[a.R1 = 5] = \"R1\", a[a.L2 = 6] = \"L2\", a[a.R2 = 7] = \"R2\", a[a.Share = 8] = \"Share\", a[a.Options = 9] = \"Options\", a[a.L3 = 10] = \"L3\", a[a.R3 = 11] = \"R3\", a[a.DPadUp = 12] = \"DPadUp\", a[a.DPadDown = 13] = \"DPadDown\", a[a.DPadLeft = 14] = \"DPadLeft\", a[a.DPadRight = 15] = \"DPadRight\", a[a.Home = 16] = \"Home\", a[a.TouchPad = 17] = \"TouchPad\", a[a.LStickXAxis = 18] = \"LStickXAxis\", a[a.LStickYAxis = 19] = \"LStickYAxis\", a[a.RStickXAxis = 20] = \"RStickXAxis\", a[a.RStickYAxis = 21] = \"RStickYAxis\";\n})(bS || (bS = {}));\nvar ES;\n(function(a) {\n a[a.Cross = 0] = \"Cross\", a[a.Circle = 1] = \"Circle\", a[a.Square = 2] = \"Square\", a[a.Triangle = 3] = \"Triangle\", a[a.L1 = 4] = \"L1\", a[a.R1 = 5] = \"R1\", a[a.L2 = 6] = \"L2\", a[a.R2 = 7] = \"R2\", a[a.Create = 8] = \"Create\", a[a.Options = 9] = \"Options\", a[a.L3 = 10] = \"L3\", a[a.R3 = 11] = \"R3\", a[a.DPadUp = 12] = \"DPadUp\", a[a.DPadDown = 13] = \"DPadDown\", a[a.DPadLeft = 14] = \"DPadLeft\", a[a.DPadRight = 15] = \"DPadRight\", a[a.Home = 16] = \"Home\", a[a.TouchPad = 17] = \"TouchPad\", a[a.LStickXAxis = 18] = \"LStickXAxis\", a[a.LStickYAxis = 19] = \"LStickYAxis\", a[a.RStickXAxis = 20] = \"RStickXAxis\", a[a.RStickYAxis = 21] = \"RStickYAxis\";\n})(ES || (ES = {}));\nvar yS;\n(function(a) {\n a[a.A = 0] = \"A\", a[a.B = 1] = \"B\", a[a.X = 2] = \"X\", a[a.Y = 3] = \"Y\", a[a.LB = 4] = \"LB\", a[a.RB = 5] = \"RB\", a[a.LT = 6] = \"LT\", a[a.RT = 7] = \"RT\", a[a.Back = 8] = \"Back\", a[a.Start = 9] = \"Start\", a[a.LS = 10] = \"LS\", a[a.RS = 11] = \"RS\", a[a.DPadUp = 12] = \"DPadUp\", a[a.DPadDown = 13] = \"DPadDown\", a[a.DPadLeft = 14] = \"DPadLeft\", a[a.DPadRight = 15] = \"DPadRight\", a[a.Home = 16] = \"Home\", a[a.LStickXAxis = 17] = \"LStickXAxis\", a[a.LStickYAxis = 18] = \"LStickYAxis\", a[a.RStickXAxis = 19] = \"RStickXAxis\", a[a.RStickYAxis = 20] = \"RStickYAxis\";\n})(yS || (yS = {}));\nvar CS;\n(function(a) {\n a[a.B = 0] = \"B\", a[a.A = 1] = \"A\", a[a.Y = 2] = \"Y\", a[a.X = 3] = \"X\", a[a.L = 4] = \"L\", a[a.R = 5] = \"R\", a[a.ZL = 6] = \"ZL\", a[a.ZR = 7] = \"ZR\", a[a.Minus = 8] = \"Minus\", a[a.Plus = 9] = \"Plus\", a[a.LS = 10] = \"LS\", a[a.RS = 11] = \"RS\", a[a.DPadUp = 12] = \"DPadUp\", a[a.DPadDown = 13] = \"DPadDown\", a[a.DPadLeft = 14] = \"DPadLeft\", a[a.DPadRight = 15] = \"DPadRight\", a[a.Home = 16] = \"Home\", a[a.Capture = 17] = \"Capture\", a[a.LStickXAxis = 18] = \"LStickXAxis\", a[a.LStickYAxis = 19] = \"LStickYAxis\", a[a.RStickXAxis = 20] = \"RStickXAxis\", a[a.RStickYAxis = 21] = \"RStickYAxis\";\n})(CS || (CS = {}));\nvar AS;\n(function(a) {\n a[a.PointerMove = 0] = \"PointerMove\", a[a.PointerDown = 1] = \"PointerDown\", a[a.PointerUp = 2] = \"PointerUp\";\n})(AS || (AS = {}));\nclass _c {\n}\n_c.DOM_DELTA_PIXEL = 0;\n_c.DOM_DELTA_LINE = 1;\n_c.DOM_DELTA_PAGE = 2;\nclass pl {\n /**\n * Create device input events based on provided type and slot\n *\n * @param deviceType Type of device\n * @param deviceSlot \"Slot\" or index that device is referenced in\n * @param inputIndex Id of input to be checked\n * @param currentState Current value for given input\n * @param deviceInputSystem Reference to DeviceInputSystem\n * @param elementToAttachTo HTMLElement to reference as target for inputs\n * @param pointerId PointerId to use for pointer events\n * @returns IUIEvent object\n */\n static CreateDeviceEvent(e, t, i, s, r, n, o) {\n switch (e) {\n case He.Keyboard:\n return this._CreateKeyboardEvent(i, s, r, n);\n case He.Mouse:\n if (i === et.MouseWheelX || i === et.MouseWheelY || i === et.MouseWheelZ)\n return this._CreateWheelEvent(e, t, i, s, r, n);\n case He.Touch:\n return this._CreatePointerEvent(e, t, i, s, r, n, o);\n default:\n throw `Unable to generate event for device ${He[e]}`;\n }\n }\n /**\n * Creates pointer event\n *\n * @param deviceType Type of device\n * @param deviceSlot \"Slot\" or index that device is referenced in\n * @param inputIndex Id of input to be checked\n * @param currentState Current value for given input\n * @param deviceInputSystem Reference to DeviceInputSystem\n * @param elementToAttachTo HTMLElement to reference as target for inputs\n * @param pointerId PointerId to use for pointer events\n * @returns IUIEvent object (Pointer)\n */\n static _CreatePointerEvent(e, t, i, s, r, n, o) {\n const l = this._CreateMouseEvent(e, t, i, s, r, n);\n e === He.Mouse ? (l.deviceType = He.Mouse, l.pointerId = 1, l.pointerType = \"mouse\") : (l.deviceType = He.Touch, l.pointerId = o ?? t, l.pointerType = \"touch\");\n let h = 0;\n return h += r.pollInput(e, t, et.LeftClick), h += r.pollInput(e, t, et.RightClick) * 2, h += r.pollInput(e, t, et.MiddleClick) * 4, l.buttons = h, i === et.Move ? l.type = \"pointermove\" : i >= et.LeftClick && i <= et.RightClick && (l.type = s === 1 ? \"pointerdown\" : \"pointerup\", l.button = i - 2), l;\n }\n /**\n * Create Mouse Wheel Event\n * @param deviceType Type of device\n * @param deviceSlot \"Slot\" or index that device is referenced in\n * @param inputIndex Id of input to be checked\n * @param currentState Current value for given input\n * @param deviceInputSystem Reference to DeviceInputSystem\n * @param elementToAttachTo HTMLElement to reference as target for inputs\n * @returns IUIEvent object (Wheel)\n */\n static _CreateWheelEvent(e, t, i, s, r, n) {\n const o = this._CreateMouseEvent(e, t, i, s, r, n);\n switch (o.pointerId = 1, o.type = \"wheel\", o.deltaMode = _c.DOM_DELTA_PIXEL, o.deltaX = 0, o.deltaY = 0, o.deltaZ = 0, i) {\n case et.MouseWheelX:\n o.deltaX = s;\n break;\n case et.MouseWheelY:\n o.deltaY = s;\n break;\n case et.MouseWheelZ:\n o.deltaZ = s;\n break;\n }\n return o;\n }\n /**\n * Create Mouse Event\n * @param deviceType Type of device\n * @param deviceSlot \"Slot\" or index that device is referenced in\n * @param inputIndex Id of input to be checked\n * @param currentState Current value for given input\n * @param deviceInputSystem Reference to DeviceInputSystem\n * @param elementToAttachTo HTMLElement to reference as target for inputs\n * @returns IUIEvent object (Mouse)\n */\n static _CreateMouseEvent(e, t, i, s, r, n) {\n const o = this._CreateEvent(n), l = r.pollInput(e, t, et.Horizontal), h = r.pollInput(e, t, et.Vertical);\n return n ? (o.movementX = 0, o.movementY = 0, o.offsetX = o.movementX - n.getBoundingClientRect().x, o.offsetY = o.movementY - n.getBoundingClientRect().y) : (o.movementX = r.pollInput(\n e,\n t,\n 10\n /* NativePointerInput.DeltaHorizontal */\n ), o.movementY = r.pollInput(\n e,\n t,\n 11\n /* NativePointerInput.DeltaVertical */\n ), o.offsetX = 0, o.offsetY = 0), this._CheckNonCharacterKeys(o, r), o.clientX = l, o.clientY = h, o.x = l, o.y = h, o.deviceType = e, o.deviceSlot = t, o.inputIndex = i, o;\n }\n /**\n * Create Keyboard Event\n * @param inputIndex Id of input to be checked\n * @param currentState Current value for given input\n * @param deviceInputSystem Reference to DeviceInputSystem\n * @param elementToAttachTo HTMLElement to reference as target for inputs\n * @returns IEvent object (Keyboard)\n */\n static _CreateKeyboardEvent(e, t, i, s) {\n const r = this._CreateEvent(s);\n return this._CheckNonCharacterKeys(r, i), r.deviceType = He.Keyboard, r.deviceSlot = 0, r.inputIndex = e, r.type = t === 1 ? \"keydown\" : \"keyup\", r.key = String.fromCharCode(e), r.keyCode = e, r;\n }\n /**\n * Add parameters for non-character keys (Ctrl, Alt, Meta, Shift)\n * @param evt Event object to add parameters to\n * @param deviceInputSystem DeviceInputSystem to pull values from\n */\n static _CheckNonCharacterKeys(e, t) {\n const i = t.isDeviceAvailable(He.Keyboard), s = i && t.pollInput(He.Keyboard, 0, 18) === 1, r = i && t.pollInput(He.Keyboard, 0, 17) === 1, n = i && (t.pollInput(He.Keyboard, 0, 91) === 1 || t.pollInput(He.Keyboard, 0, 92) === 1 || t.pollInput(He.Keyboard, 0, 93) === 1), o = i && t.pollInput(He.Keyboard, 0, 16) === 1;\n e.altKey = s, e.ctrlKey = r, e.metaKey = n, e.shiftKey = o;\n }\n /**\n * Create base event object\n * @param elementToAttachTo Value to use as event target\n * @returns\n */\n static _CreateEvent(e) {\n const t = {};\n return t.preventDefault = () => {\n }, t.target = e, t;\n }\n}\nclass mM {\n constructor(e, t, i) {\n this._nativeInput = _native.DeviceInputSystem ? new _native.DeviceInputSystem(e, t, (s, r, n, o) => {\n const l = pl.CreateDeviceEvent(s, r, n, o, this);\n i(s, r, l);\n }) : this._createDummyNativeInput();\n }\n // Public functions\n /**\n * Checks for current device input value, given an id and input index. Throws exception if requested device not initialized.\n * @param deviceType Enum specifying device type\n * @param deviceSlot \"Slot\" or index that device is referenced in\n * @param inputIndex Id of input to be checked\n * @returns Current value of input\n */\n pollInput(e, t, i) {\n return this._nativeInput.pollInput(e, t, i);\n }\n /**\n * Check for a specific device in the DeviceInputSystem\n * @param deviceType Type of device to check for\n * @returns bool with status of device's existence\n */\n isDeviceAvailable(e) {\n return e === He.Mouse || e === He.Touch;\n }\n /**\n * Dispose of all the observables\n */\n dispose() {\n this._nativeInput.dispose();\n }\n /**\n * For versions of BabylonNative that don't have the NativeInput plugin initialized, create a dummy version\n * @returns Object with dummy functions\n */\n _createDummyNativeInput() {\n return {\n pollInput: () => 0,\n isDeviceAvailable: () => !1,\n dispose: () => {\n }\n };\n }\n}\nconst RS = 255, IS = Object.keys(et).length / 2;\nclass gM {\n /**\n * Constructor for the WebDeviceInputSystem\n * @param engine Engine to reference\n * @param onDeviceConnected Callback to execute when device is connected\n * @param onDeviceDisconnected Callback to execute when device is disconnected\n * @param onInputChanged Callback to execute when input changes on device\n */\n constructor(e, t, i, s) {\n this._inputs = [], this._keyboardActive = !1, this._pointerActive = !1, this._usingSafari = J.IsSafari(), this._usingMacOS = Tl() && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform), this._keyboardDownEvent = (r) => {\n }, this._keyboardUpEvent = (r) => {\n }, this._keyboardBlurEvent = (r) => {\n }, this._pointerMoveEvent = (r) => {\n }, this._pointerDownEvent = (r) => {\n }, this._pointerUpEvent = (r) => {\n }, this._pointerCancelEvent = (r) => {\n }, this._pointerWheelEvent = (r) => {\n }, this._pointerBlurEvent = (r) => {\n }, this._pointerMacOSChromeOutEvent = (r) => {\n }, this._eventsAttached = !1, this._mouseId = -1, this._isUsingFirefox = Tl() && navigator.userAgent && navigator.userAgent.indexOf(\"Firefox\") !== -1, this._isUsingChromium = Tl() && navigator.userAgent && navigator.userAgent.indexOf(\"Chrome\") !== -1, this._maxTouchPoints = 0, this._pointerInputClearObserver = null, this._gamepadConnectedEvent = (r) => {\n }, this._gamepadDisconnectedEvent = (r) => {\n }, this._eventPrefix = J.GetPointerPrefix(e), this._engine = e, this._onDeviceConnected = t, this._onDeviceDisconnected = i, this._onInputChanged = s, this._mouseId = this._isUsingFirefox ? 0 : 1, this._enableEvents(), this._usingMacOS && (this._metaKeys = []), this._engine._onEngineViewChanged || (this._engine._onEngineViewChanged = () => {\n this._enableEvents();\n });\n }\n // Public functions\n /**\n * Checks for current device input value, given an id and input index. Throws exception if requested device not initialized.\n * @param deviceType Enum specifying device type\n * @param deviceSlot \"Slot\" or index that device is referenced in\n * @param inputIndex Id of input to be checked\n * @returns Current value of input\n */\n pollInput(e, t, i) {\n const s = this._inputs[e][t];\n if (!s)\n throw `Unable to find device ${He[e]}`;\n e >= He.DualShock && e <= He.DualSense && this._updateDevice(e, t, i);\n const r = s[i];\n if (r === void 0)\n throw `Unable to find input ${i} for device ${He[e]} in slot ${t}`;\n return i === et.Move && J.Warn(\"Unable to provide information for PointerInput.Move. Try using PointerInput.Horizontal or PointerInput.Vertical for move data.\"), r;\n }\n /**\n * Check for a specific device in the DeviceInputSystem\n * @param deviceType Type of device to check for\n * @returns bool with status of device's existence\n */\n isDeviceAvailable(e) {\n return this._inputs[e] !== void 0;\n }\n /**\n * Dispose of all the eventlisteners\n */\n dispose() {\n this._onDeviceConnected = () => {\n }, this._onDeviceDisconnected = () => {\n }, this._onInputChanged = () => {\n }, delete this._engine._onEngineViewChanged, this._elementToAttachTo && this._disableEvents();\n }\n /**\n * Enable listening for user input events\n */\n _enableEvents() {\n const e = this == null ? void 0 : this._engine.getInputElement();\n if (e && (!this._eventsAttached || this._elementToAttachTo !== e)) {\n if (this._disableEvents(), this._inputs) {\n for (const t of this._inputs)\n if (t)\n for (const i in t) {\n const s = +i, r = t[s];\n if (r)\n for (let n = 0; n < r.length; n++)\n r[n] = 0;\n }\n }\n this._elementToAttachTo = e, this._elementToAttachTo.tabIndex = this._elementToAttachTo.tabIndex !== -1 ? this._elementToAttachTo.tabIndex : this._engine.canvasTabIndex, this._handleKeyActions(), this._handlePointerActions(), this._handleGamepadActions(), this._eventsAttached = !0, this._checkForConnectedDevices();\n }\n }\n /**\n * Disable listening for user input events\n */\n _disableEvents() {\n this._elementToAttachTo && (this._elementToAttachTo.removeEventListener(\"blur\", this._keyboardBlurEvent), this._elementToAttachTo.removeEventListener(\"blur\", this._pointerBlurEvent), this._elementToAttachTo.removeEventListener(\"keydown\", this._keyboardDownEvent), this._elementToAttachTo.removeEventListener(\"keyup\", this._keyboardUpEvent), this._elementToAttachTo.removeEventListener(this._eventPrefix + \"move\", this._pointerMoveEvent), this._elementToAttachTo.removeEventListener(this._eventPrefix + \"down\", this._pointerDownEvent), this._elementToAttachTo.removeEventListener(this._eventPrefix + \"up\", this._pointerUpEvent), this._elementToAttachTo.removeEventListener(this._eventPrefix + \"cancel\", this._pointerCancelEvent), this._elementToAttachTo.removeEventListener(this._wheelEventName, this._pointerWheelEvent), this._usingMacOS && this._isUsingChromium && this._elementToAttachTo.removeEventListener(\"lostpointercapture\", this._pointerMacOSChromeOutEvent), window.removeEventListener(\"gamepadconnected\", this._gamepadConnectedEvent), window.removeEventListener(\"gamepaddisconnected\", this._gamepadDisconnectedEvent)), this._pointerInputClearObserver && this._engine.onEndFrameObservable.remove(this._pointerInputClearObserver), this._eventsAttached = !1;\n }\n /**\n * Checks for existing connections to devices and register them, if necessary\n * Currently handles gamepads and mouse\n */\n _checkForConnectedDevices() {\n if (navigator.getGamepads) {\n const e = navigator.getGamepads();\n for (const t of e)\n t && this._addGamePad(t);\n }\n typeof matchMedia == \"function\" && matchMedia(\"(pointer:fine)\").matches && this._addPointerDevice(He.Mouse, 0, 0, 0);\n }\n // Private functions\n /**\n * Add a gamepad to the DeviceInputSystem\n * @param gamepad A single DOM Gamepad object\n */\n _addGamePad(e) {\n const t = this._getGamepadDeviceType(e.id), i = e.index;\n this._gamepads = this._gamepads || new Array(e.index + 1), this._registerDevice(t, i, e.buttons.length + e.axes.length), this._gamepads[i] = t;\n }\n /**\n * Add pointer device to DeviceInputSystem\n * @param deviceType Type of Pointer to add\n * @param deviceSlot Pointer ID (0 for mouse, pointerId for Touch)\n * @param currentX Current X at point of adding\n * @param currentY Current Y at point of adding\n */\n _addPointerDevice(e, t, i, s) {\n this._pointerActive || (this._pointerActive = !0), this._registerDevice(e, t, IS);\n const r = this._inputs[e][t];\n r[0] = i, r[1] = s;\n }\n /**\n * Add device and inputs to device array\n * @param deviceType Enum specifying device type\n * @param deviceSlot \"Slot\" or index that device is referenced in\n * @param numberOfInputs Number of input entries to create for given device\n */\n _registerDevice(e, t, i) {\n if (t === void 0)\n throw `Unable to register device ${He[e]} to undefined slot.`;\n if (this._inputs[e] || (this._inputs[e] = {}), !this._inputs[e][t]) {\n const s = new Array(i);\n s.fill(0), this._inputs[e][t] = s, this._onDeviceConnected(e, t);\n }\n }\n /**\n * Given a specific device name, remove that device from the device map\n * @param deviceType Enum specifying device type\n * @param deviceSlot \"Slot\" or index that device is referenced in\n */\n _unregisterDevice(e, t) {\n this._inputs[e][t] && (delete this._inputs[e][t], this._onDeviceDisconnected(e, t));\n }\n /**\n * Handle all actions that come from keyboard interaction\n */\n _handleKeyActions() {\n this._keyboardDownEvent = (e) => {\n this._keyboardActive || (this._keyboardActive = !0, this._registerDevice(He.Keyboard, 0, RS));\n const t = this._inputs[He.Keyboard][0];\n if (t) {\n t[e.keyCode] = 1;\n const i = e;\n i.inputIndex = e.keyCode, this._usingMacOS && e.metaKey && e.key !== \"Meta\" && (this._metaKeys.includes(e.keyCode) || this._metaKeys.push(e.keyCode)), this._onInputChanged(He.Keyboard, 0, i);\n }\n }, this._keyboardUpEvent = (e) => {\n this._keyboardActive || (this._keyboardActive = !0, this._registerDevice(He.Keyboard, 0, RS));\n const t = this._inputs[He.Keyboard][0];\n if (t) {\n t[e.keyCode] = 0;\n const i = e;\n if (i.inputIndex = e.keyCode, this._usingMacOS && e.key === \"Meta\" && this._metaKeys.length > 0) {\n for (const s of this._metaKeys) {\n const r = pl.CreateDeviceEvent(He.Keyboard, 0, s, 0, this, this._elementToAttachTo);\n t[s] = 0, this._onInputChanged(He.Keyboard, 0, r);\n }\n this._metaKeys.splice(0, this._metaKeys.length);\n }\n this._onInputChanged(He.Keyboard, 0, i);\n }\n }, this._keyboardBlurEvent = () => {\n if (this._keyboardActive) {\n const e = this._inputs[He.Keyboard][0];\n for (let t = 0; t < e.length; t++)\n if (e[t] !== 0) {\n e[t] = 0;\n const i = pl.CreateDeviceEvent(He.Keyboard, 0, t, 0, this, this._elementToAttachTo);\n this._onInputChanged(He.Keyboard, 0, i);\n }\n this._usingMacOS && this._metaKeys.splice(0, this._metaKeys.length);\n }\n }, this._elementToAttachTo.addEventListener(\"keydown\", this._keyboardDownEvent), this._elementToAttachTo.addEventListener(\"keyup\", this._keyboardUpEvent), this._elementToAttachTo.addEventListener(\"blur\", this._keyboardBlurEvent);\n }\n /**\n * Handle all actions that come from pointer interaction\n */\n _handlePointerActions() {\n this._maxTouchPoints = Tl() && navigator.maxTouchPoints || 2, this._activeTouchIds || (this._activeTouchIds = new Array(this._maxTouchPoints));\n for (let i = 0; i < this._maxTouchPoints; i++)\n this._activeTouchIds[i] = -1;\n this._pointerMoveEvent = (i) => {\n const s = this._getPointerType(i);\n let r = s === He.Mouse ? 0 : this._activeTouchIds.indexOf(i.pointerId);\n if (s === He.Touch && r === -1) {\n const o = this._activeTouchIds.indexOf(-1);\n if (o >= 0)\n r = o, this._activeTouchIds[o] = i.pointerId, this._onDeviceConnected(s, r);\n else {\n J.Warn(`Max number of touches exceeded. Ignoring touches in excess of ${this._maxTouchPoints}`);\n return;\n }\n }\n this._inputs[s] || (this._inputs[s] = {}), this._inputs[s][r] || this._addPointerDevice(s, r, i.clientX, i.clientY);\n const n = this._inputs[s][r];\n if (n) {\n const o = i;\n o.inputIndex = et.Move, n[et.Horizontal] = i.clientX, n[et.Vertical] = i.clientY, s === He.Touch && n[et.LeftClick] === 0 && (n[et.LeftClick] = 1), i.pointerId === void 0 && (i.pointerId = this._mouseId), this._onInputChanged(s, r, o), !this._usingSafari && i.button !== -1 && (o.inputIndex = i.button + 2, n[i.button + 2] = n[i.button + 2] ? 0 : 1, this._onInputChanged(s, r, o));\n }\n }, this._pointerDownEvent = (i) => {\n const s = this._getPointerType(i);\n let r = s === He.Mouse ? 0 : i.pointerId;\n if (s === He.Touch) {\n let o = this._activeTouchIds.indexOf(i.pointerId);\n if (o === -1 && (o = this._activeTouchIds.indexOf(-1)), o >= 0)\n r = o, this._activeTouchIds[o] = i.pointerId;\n else {\n J.Warn(`Max number of touches exceeded. Ignoring touches in excess of ${this._maxTouchPoints}`);\n return;\n }\n }\n this._inputs[s] || (this._inputs[s] = {}), this._inputs[s][r] ? s === He.Touch && this._onDeviceConnected(s, r) : this._addPointerDevice(s, r, i.clientX, i.clientY);\n const n = this._inputs[s][r];\n if (n) {\n const o = n[et.Horizontal], l = n[et.Vertical];\n if (s === He.Mouse) {\n if (i.pointerId === void 0 && (i.pointerId = this._mouseId), !document.pointerLockElement)\n try {\n this._elementToAttachTo.setPointerCapture(this._mouseId);\n } catch {\n }\n } else if (i.pointerId && !document.pointerLockElement)\n try {\n this._elementToAttachTo.setPointerCapture(i.pointerId);\n } catch {\n }\n n[et.Horizontal] = i.clientX, n[et.Vertical] = i.clientY, n[i.button + 2] = 1;\n const h = i;\n h.inputIndex = i.button + 2, this._onInputChanged(s, r, h), (o !== i.clientX || l !== i.clientY) && (h.inputIndex = et.Move, this._onInputChanged(s, r, h));\n }\n }, this._pointerUpEvent = (i) => {\n var o, l, h, c, u;\n const s = this._getPointerType(i), r = s === He.Mouse ? 0 : this._activeTouchIds.indexOf(i.pointerId);\n if (s === He.Touch) {\n if (r === -1)\n return;\n this._activeTouchIds[r] = -1;\n }\n const n = (o = this._inputs[s]) == null ? void 0 : o[r];\n if (n && n[i.button + 2] !== 0) {\n const d = n[et.Horizontal], f = n[et.Vertical];\n n[et.Horizontal] = i.clientX, n[et.Vertical] = i.clientY, n[i.button + 2] = 0;\n const p = i;\n i.pointerId === void 0 && (i.pointerId = this._mouseId), (d !== i.clientX || f !== i.clientY) && (p.inputIndex = et.Move, this._onInputChanged(s, r, p)), p.inputIndex = i.button + 2, s === He.Mouse && this._mouseId >= 0 && ((h = (l = this._elementToAttachTo).hasPointerCapture) != null && h.call(l, this._mouseId)) ? this._elementToAttachTo.releasePointerCapture(this._mouseId) : i.pointerId && ((u = (c = this._elementToAttachTo).hasPointerCapture) != null && u.call(c, i.pointerId)) && this._elementToAttachTo.releasePointerCapture(i.pointerId), this._onInputChanged(s, r, p), s === He.Touch && this._onDeviceDisconnected(s, r);\n }\n }, this._pointerCancelEvent = (i) => {\n var s, r, n, o;\n if (i.pointerType === \"mouse\") {\n const l = this._inputs[He.Mouse][0];\n this._mouseId >= 0 && ((r = (s = this._elementToAttachTo).hasPointerCapture) != null && r.call(s, this._mouseId)) && this._elementToAttachTo.releasePointerCapture(this._mouseId);\n for (let h = et.LeftClick; h <= et.BrowserForward; h++)\n if (l[h] === 1) {\n l[h] = 0;\n const c = pl.CreateDeviceEvent(He.Mouse, 0, h, 0, this, this._elementToAttachTo);\n this._onInputChanged(He.Mouse, 0, c);\n }\n } else {\n const l = this._activeTouchIds.indexOf(i.pointerId);\n if (l === -1)\n return;\n (o = (n = this._elementToAttachTo).hasPointerCapture) != null && o.call(n, i.pointerId) && this._elementToAttachTo.releasePointerCapture(i.pointerId), this._inputs[He.Touch][l][et.LeftClick] = 0;\n const h = pl.CreateDeviceEvent(He.Touch, l, et.LeftClick, 0, this, this._elementToAttachTo, i.pointerId);\n this._onInputChanged(He.Touch, l, h), this._activeTouchIds[l] = -1, this._onDeviceDisconnected(He.Touch, l);\n }\n }, this._wheelEventName = \"onwheel\" in document.createElement(\"div\") ? \"wheel\" : document.onmousewheel !== void 0 ? \"mousewheel\" : \"DOMMouseScroll\";\n let e = !1;\n const t = function() {\n };\n try {\n const i = Object.defineProperty({}, \"passive\", {\n get: function() {\n e = !0;\n }\n });\n this._elementToAttachTo.addEventListener(\"test\", t, i), this._elementToAttachTo.removeEventListener(\"test\", t, i);\n } catch {\n }\n this._pointerBlurEvent = () => {\n var i, s, r, n, o;\n if (this.isDeviceAvailable(He.Mouse)) {\n const l = this._inputs[He.Mouse][0];\n this._mouseId >= 0 && ((s = (i = this._elementToAttachTo).hasPointerCapture) != null && s.call(i, this._mouseId)) && this._elementToAttachTo.releasePointerCapture(this._mouseId);\n for (let h = et.LeftClick; h <= et.BrowserForward; h++)\n if (l[h] === 1) {\n l[h] = 0;\n const c = pl.CreateDeviceEvent(He.Mouse, 0, h, 0, this, this._elementToAttachTo);\n this._onInputChanged(He.Mouse, 0, c);\n }\n }\n if (this.isDeviceAvailable(He.Touch)) {\n const l = this._inputs[He.Touch];\n for (let h = 0; h < this._activeTouchIds.length; h++) {\n const c = this._activeTouchIds[h];\n if ((n = (r = this._elementToAttachTo).hasPointerCapture) != null && n.call(r, c) && this._elementToAttachTo.releasePointerCapture(c), c !== -1 && ((o = l[h]) == null ? void 0 : o[et.LeftClick]) === 1) {\n l[h][et.LeftClick] = 0;\n const u = pl.CreateDeviceEvent(He.Touch, h, et.LeftClick, 0, this, this._elementToAttachTo, c);\n this._onInputChanged(He.Touch, h, u), this._activeTouchIds[h] = -1, this._onDeviceDisconnected(He.Touch, h);\n }\n }\n }\n }, this._pointerWheelEvent = (i) => {\n const s = He.Mouse, r = 0;\n this._inputs[s] || (this._inputs[s] = []), this._inputs[s][r] || (this._pointerActive = !0, this._registerDevice(s, r, IS));\n const n = this._inputs[s][r];\n if (n) {\n n[et.MouseWheelX] = i.deltaX || 0, n[et.MouseWheelY] = i.deltaY || i.wheelDelta || 0, n[et.MouseWheelZ] = i.deltaZ || 0;\n const o = i;\n i.pointerId === void 0 && (i.pointerId = this._mouseId), n[et.MouseWheelX] !== 0 && (o.inputIndex = et.MouseWheelX, this._onInputChanged(s, r, o)), n[et.MouseWheelY] !== 0 && (o.inputIndex = et.MouseWheelY, this._onInputChanged(s, r, o)), n[et.MouseWheelZ] !== 0 && (o.inputIndex = et.MouseWheelZ, this._onInputChanged(s, r, o));\n }\n }, this._usingMacOS && this._isUsingChromium && (this._pointerMacOSChromeOutEvent = (i) => {\n i.buttons > 1 && this._pointerCancelEvent(i);\n }, this._elementToAttachTo.addEventListener(\"lostpointercapture\", this._pointerMacOSChromeOutEvent)), this._elementToAttachTo.addEventListener(this._eventPrefix + \"move\", this._pointerMoveEvent), this._elementToAttachTo.addEventListener(this._eventPrefix + \"down\", this._pointerDownEvent), this._elementToAttachTo.addEventListener(this._eventPrefix + \"up\", this._pointerUpEvent), this._elementToAttachTo.addEventListener(this._eventPrefix + \"cancel\", this._pointerCancelEvent), this._elementToAttachTo.addEventListener(\"blur\", this._pointerBlurEvent), this._elementToAttachTo.addEventListener(this._wheelEventName, this._pointerWheelEvent, e ? { passive: !1 } : !1), this._pointerInputClearObserver = this._engine.onEndFrameObservable.add(() => {\n if (this.isDeviceAvailable(He.Mouse)) {\n const i = this._inputs[He.Mouse][0];\n i[et.MouseWheelX] = 0, i[et.MouseWheelY] = 0, i[et.MouseWheelZ] = 0;\n }\n });\n }\n /**\n * Handle all actions that come from gamepad interaction\n */\n _handleGamepadActions() {\n this._gamepadConnectedEvent = (e) => {\n this._addGamePad(e.gamepad);\n }, this._gamepadDisconnectedEvent = (e) => {\n if (this._gamepads) {\n const t = this._getGamepadDeviceType(e.gamepad.id), i = e.gamepad.index;\n this._unregisterDevice(t, i), delete this._gamepads[i];\n }\n }, window.addEventListener(\"gamepadconnected\", this._gamepadConnectedEvent), window.addEventListener(\"gamepaddisconnected\", this._gamepadDisconnectedEvent);\n }\n /**\n * Update all non-event based devices with each frame\n * @param deviceType Enum specifying device type\n * @param deviceSlot \"Slot\" or index that device is referenced in\n * @param inputIndex Id of input to be checked\n */\n _updateDevice(e, t, i) {\n const s = navigator.getGamepads()[t];\n if (s && e === this._gamepads[t]) {\n const r = this._inputs[e][t];\n i >= s.buttons.length ? r[i] = s.axes[i - s.buttons.length].valueOf() : r[i] = s.buttons[i].value;\n }\n }\n /**\n * Gets DeviceType from the device name\n * @param deviceName Name of Device from DeviceInputSystem\n * @returns DeviceType enum value\n */\n _getGamepadDeviceType(e) {\n return e.indexOf(\"054c\") !== -1 ? e.indexOf(\"0ce6\") !== -1 ? He.DualSense : He.DualShock : e.indexOf(\"Xbox One\") !== -1 || e.search(\"Xbox 360\") !== -1 || e.search(\"xinput\") !== -1 ? He.Xbox : e.indexOf(\"057e\") !== -1 ? He.Switch : He.Generic;\n }\n /**\n * Get DeviceType from a given pointer/mouse/touch event.\n * @param evt PointerEvent to evaluate\n * @returns DeviceType interpreted from event\n */\n _getPointerType(e) {\n let t = He.Mouse;\n return (e.pointerType === \"touch\" || e.pointerType === \"pen\" || e.touches) && (t = He.Touch), t;\n }\n}\nclass PS {\n /**\n * Default Constructor\n * @param deviceInputSystem - Reference to DeviceInputSystem\n * @param deviceType - Type of device\n * @param deviceSlot - \"Slot\" or index that device is referenced in\n */\n constructor(e, t, i = 0) {\n this.deviceType = t, this.deviceSlot = i, this.onInputChangedObservable = new G(), this._deviceInputSystem = e;\n }\n /**\n * Get input for specific input\n * @param inputIndex - index of specific input on device\n * @returns Input value from DeviceInputSystem\n */\n getInput(e) {\n return this._deviceInputSystem.pollInput(this.deviceType, this.deviceSlot, e);\n }\n}\nclass xM {\n constructor(e) {\n this._registeredManagers = new Array(), this._refCount = 0, this.registerManager = (n) => {\n for (let o = 0; o < this._devices.length; o++) {\n const l = this._devices[o];\n for (const h in l) {\n const c = +h;\n n._addDevice(new PS(this._deviceInputSystem, o, c));\n }\n }\n this._registeredManagers.push(n);\n }, this.unregisterManager = (n) => {\n const o = this._registeredManagers.indexOf(n);\n o > -1 && this._registeredManagers.splice(o, 1);\n };\n const t = Object.keys(He).length / 2;\n this._devices = new Array(t);\n const i = (n, o) => {\n this._devices[n] || (this._devices[n] = new Array()), this._devices[n][o] || (this._devices[n][o] = o);\n for (const l of this._registeredManagers) {\n const h = new PS(this._deviceInputSystem, n, o);\n l._addDevice(h);\n }\n }, s = (n, o) => {\n var l;\n (l = this._devices[n]) != null && l[o] && delete this._devices[n][o];\n for (const h of this._registeredManagers)\n h._removeDevice(n, o);\n }, r = (n, o, l) => {\n if (l)\n for (const h of this._registeredManagers)\n h._onInputChanged(n, o, l);\n };\n typeof _native < \"u\" ? this._deviceInputSystem = new mM(i, s, r) : this._deviceInputSystem = new gM(e, i, s, r);\n }\n dispose() {\n this._deviceInputSystem.dispose();\n }\n}\nclass vM {\n // Public Functions\n /**\n * Gets a DeviceSource, given a type and slot\n * @param deviceType - Type of Device\n * @param deviceSlot - Slot or ID of device\n * @returns DeviceSource\n */\n getDeviceSource(e, t) {\n if (t === void 0) {\n if (this._firstDevice[e] === void 0)\n return null;\n t = this._firstDevice[e];\n }\n return !this._devices[e] || this._devices[e][t] === void 0 ? null : this._devices[e][t];\n }\n /**\n * Gets an array of DeviceSource objects for a given device type\n * @param deviceType - Type of Device\n * @returns All available DeviceSources of a given type\n */\n getDeviceSources(e) {\n return this._devices[e] ? this._devices[e].filter((t) => !!t) : [];\n }\n /**\n * Default constructor\n * @param engine - Used to get canvas (if applicable)\n */\n constructor(e) {\n const t = Object.keys(He).length / 2;\n this._devices = new Array(t), this._firstDevice = new Array(t), this._engine = e, this._engine._deviceSourceManager || (this._engine._deviceSourceManager = new xM(e)), this._engine._deviceSourceManager._refCount++, this.onDeviceConnectedObservable = new G((i) => {\n for (const s of this._devices)\n if (s)\n for (const r of s)\n r && this.onDeviceConnectedObservable.notifyObserver(i, r);\n }), this.onDeviceDisconnectedObservable = new G(), this._engine._deviceSourceManager.registerManager(this), this._onDisposeObserver = e.onDisposeObservable.add(() => {\n this.dispose();\n });\n }\n /**\n * Dispose of DeviceSourceManager\n */\n dispose() {\n this.onDeviceConnectedObservable.clear(), this.onDeviceDisconnectedObservable.clear(), this._engine._deviceSourceManager && (this._engine._deviceSourceManager.unregisterManager(this), --this._engine._deviceSourceManager._refCount < 1 && (this._engine._deviceSourceManager.dispose(), delete this._engine._deviceSourceManager)), this._engine.onDisposeObservable.remove(this._onDisposeObserver);\n }\n // Hidden Functions\n /**\n * @param deviceSource - Source to add\n * @internal\n */\n _addDevice(e) {\n this._devices[e.deviceType] || (this._devices[e.deviceType] = new Array()), this._devices[e.deviceType][e.deviceSlot] || (this._devices[e.deviceType][e.deviceSlot] = e, this._updateFirstDevices(e.deviceType)), this.onDeviceConnectedObservable.notifyObservers(e);\n }\n /**\n * @param deviceType - DeviceType\n * @param deviceSlot - DeviceSlot\n * @internal\n */\n _removeDevice(e, t) {\n var s, r;\n const i = (s = this._devices[e]) == null ? void 0 : s[t];\n this.onDeviceDisconnectedObservable.notifyObservers(i), (r = this._devices[e]) != null && r[t] && delete this._devices[e][t], this._updateFirstDevices(e);\n }\n /**\n * @param deviceType - DeviceType\n * @param deviceSlot - DeviceSlot\n * @param eventData - Event\n * @internal\n */\n _onInputChanged(e, t, i) {\n var s, r;\n (r = (s = this._devices[e]) == null ? void 0 : s[t]) == null || r.onInputChangedObservable.notifyObservers(i);\n }\n // Private Functions\n _updateFirstDevices(e) {\n switch (e) {\n case He.Keyboard:\n case He.Mouse:\n this._firstDevice[e] = 0;\n break;\n case He.Touch:\n case He.DualSense:\n case He.DualShock:\n case He.Xbox:\n case He.Switch:\n case He.Generic: {\n delete this._firstDevice[e];\n const t = this._devices[e];\n if (t) {\n for (let i = 0; i < t.length; i++)\n if (t[i]) {\n this._firstDevice[e] = i;\n break;\n }\n }\n break;\n }\n }\n }\n}\nclass MS {\n constructor() {\n this._singleClick = !1, this._doubleClick = !1, this._hasSwiped = !1, this._ignore = !1;\n }\n get singleClick() {\n return this._singleClick;\n }\n get doubleClick() {\n return this._doubleClick;\n }\n get hasSwiped() {\n return this._hasSwiped;\n }\n get ignore() {\n return this._ignore;\n }\n set singleClick(e) {\n this._singleClick = e;\n }\n set doubleClick(e) {\n this._doubleClick = e;\n }\n set hasSwiped(e) {\n this._hasSwiped = e;\n }\n set ignore(e) {\n this._ignore = e;\n }\n}\nclass ts {\n /**\n * Creates a new InputManager\n * @param scene - defines the hosting scene\n */\n constructor(e) {\n this._alreadyAttached = !1, this._meshPickProceed = !1, this._currentPickResult = null, this._previousPickResult = null, this._totalPointersPressed = 0, this._doubleClickOccured = !1, this._isSwiping = !1, this._swipeButtonPressed = -1, this._skipPointerTap = !1, this._isMultiTouchGesture = !1, this._pointerX = 0, this._pointerY = 0, this._startingPointerPosition = new Q(0, 0), this._previousStartingPointerPosition = new Q(0, 0), this._startingPointerTime = 0, this._previousStartingPointerTime = 0, this._pointerCaptures = {}, this._meshUnderPointerId = {}, this._movePointerInfo = null, this._cameraObserverCount = 0, this._delayedClicks = [null, null, null, null, null], this._deviceSourceManager = null, this._scene = e || Me.LastCreatedScene, this._scene;\n }\n /**\n * Gets the mesh that is currently under the pointer\n * @returns Mesh that the pointer is pointer is hovering over\n */\n get meshUnderPointer() {\n return this._movePointerInfo && (this._movePointerInfo._generatePickInfo(), this._movePointerInfo = null), this._pointerOverMesh;\n }\n /**\n * When using more than one pointer (for example in XR) you can get the mesh under the specific pointer\n * @param pointerId - the pointer id to use\n * @returns The mesh under this pointer id or null if not found\n */\n getMeshUnderPointerByPointerId(e) {\n return this._meshUnderPointerId[e] || null;\n }\n /**\n * Gets the pointer coordinates in 2D without any translation (ie. straight out of the pointer event)\n * @returns Vector with X/Y values directly from pointer event\n */\n get unTranslatedPointer() {\n return new Q(this._unTranslatedPointerX, this._unTranslatedPointerY);\n }\n /**\n * Gets or sets the current on-screen X position of the pointer\n * @returns Translated X with respect to screen\n */\n get pointerX() {\n return this._pointerX;\n }\n set pointerX(e) {\n this._pointerX = e;\n }\n /**\n * Gets or sets the current on-screen Y position of the pointer\n * @returns Translated Y with respect to screen\n */\n get pointerY() {\n return this._pointerY;\n }\n set pointerY(e) {\n this._pointerY = e;\n }\n _updatePointerPosition(e) {\n const t = this._scene.getEngine().getInputElementClientRect();\n t && (this._pointerX = e.clientX - t.left, this._pointerY = e.clientY - t.top, this._unTranslatedPointerX = this._pointerX, this._unTranslatedPointerY = this._pointerY);\n }\n _processPointerMove(e, t) {\n const i = this._scene, s = i.getEngine(), r = s.getInputElement();\n r && (r.tabIndex = s.canvasTabIndex, i.doNotHandleCursors || (r.style.cursor = i.defaultCursor)), this._setCursorAndPointerOverMesh(e, t, i);\n for (const l of i._pointerMoveStage) {\n e = e || this._pickMove(t);\n const h = !!(e != null && e.pickedMesh);\n e = l.action(this._unTranslatedPointerX, this._unTranslatedPointerY, e, h, r);\n }\n const n = t.inputIndex >= et.MouseWheelX && t.inputIndex <= et.MouseWheelZ ? Pe.POINTERWHEEL : Pe.POINTERMOVE;\n i.onPointerMove && (e = e || this._pickMove(t), i.onPointerMove(t, e, n));\n let o;\n e ? (o = new Mn(n, t, e), this._setRayOnPointerInfo(e, t)) : (o = new Mn(n, t, null, this), this._movePointerInfo = o), i.onPointerObservable.hasObservers() && i.onPointerObservable.notifyObservers(o, n);\n }\n // Pointers handling\n /** @internal */\n _setRayOnPointerInfo(e, t) {\n const i = this._scene;\n e && i._pickingAvailable && (e.ray || (e.ray = i.createPickingRay(t.offsetX, t.offsetY, O.Identity(), i.activeCamera)));\n }\n /** @internal */\n _addCameraPointerObserver(e, t) {\n return this._cameraObserverCount++, this._scene.onPointerObservable.add(e, t);\n }\n /** @internal */\n _removeCameraPointerObserver(e) {\n return this._cameraObserverCount--, this._scene.onPointerObservable.remove(e);\n }\n _checkForPicking() {\n return !!(this._scene.onPointerObservable.observers.length > this._cameraObserverCount || this._scene.onPointerPick);\n }\n _checkPrePointerObservable(e, t, i) {\n const s = this._scene, r = new _M(i, t, this._unTranslatedPointerX, this._unTranslatedPointerY);\n return e && (r.originalPickingInfo = e, r.ray = e.ray, t.pointerType === \"xr-near\" && e.originMesh && (r.nearInteractionPickingInfo = e)), s.onPrePointerObservable.notifyObservers(r, i), !!r.skipOnPointerObservable;\n }\n /** @internal */\n _pickMove(e) {\n const t = this._scene, i = t.pick(this._unTranslatedPointerX, this._unTranslatedPointerY, t.pointerMovePredicate, t.pointerMoveFastCheck, t.cameraToUseForPointers, t.pointerMoveTrianglePredicate);\n return this._setCursorAndPointerOverMesh(i, e, t), i;\n }\n _setCursorAndPointerOverMesh(e, t, i) {\n const r = i.getEngine().getInputElement();\n if (e != null && e.pickedMesh) {\n if (this.setPointerOverMesh(e.pickedMesh, t.pointerId, e, t), !i.doNotHandleCursors && r && this._pointerOverMesh) {\n const n = this._pointerOverMesh._getActionManagerForTrigger();\n n && n.hasPointerTriggers && (r.style.cursor = n.hoverCursor || i.hoverCursor);\n }\n } else\n this.setPointerOverMesh(null, t.pointerId, e, t);\n }\n /**\n * Use this method to simulate a pointer move on a mesh\n * The pickResult parameter can be obtained from a scene.pick or scene.pickWithRay\n * @param pickResult - pickingInfo of the object wished to simulate pointer event on\n * @param pointerEventInit - pointer event state to be used when simulating the pointer event (eg. pointer id for multitouch)\n */\n simulatePointerMove(e, t) {\n const i = new PointerEvent(\"pointermove\", t);\n i.inputIndex = et.Move, !this._checkPrePointerObservable(e, i, Pe.POINTERMOVE) && this._processPointerMove(e, i);\n }\n /**\n * Use this method to simulate a pointer down on a mesh\n * The pickResult parameter can be obtained from a scene.pick or scene.pickWithRay\n * @param pickResult - pickingInfo of the object wished to simulate pointer event on\n * @param pointerEventInit - pointer event state to be used when simulating the pointer event (eg. pointer id for multitouch)\n */\n simulatePointerDown(e, t) {\n const i = new PointerEvent(\"pointerdown\", t);\n i.inputIndex = i.button + 2, !this._checkPrePointerObservable(e, i, Pe.POINTERDOWN) && this._processPointerDown(e, i);\n }\n _processPointerDown(e, t) {\n const i = this._scene;\n if (e != null && e.pickedMesh) {\n this._pickedDownMesh = e.pickedMesh;\n const n = e.pickedMesh._getActionManagerForTrigger();\n if (n) {\n if (n.hasPickTriggers)\n switch (n.processTrigger(5, Mi.CreateNew(e.pickedMesh, t, e)), t.button) {\n case 0:\n n.processTrigger(2, Mi.CreateNew(e.pickedMesh, t, e));\n break;\n case 1:\n n.processTrigger(4, Mi.CreateNew(e.pickedMesh, t, e));\n break;\n case 2:\n n.processTrigger(3, Mi.CreateNew(e.pickedMesh, t, e));\n break;\n }\n n.hasSpecificTrigger(8) && window.setTimeout(() => {\n const o = i.pick(this._unTranslatedPointerX, this._unTranslatedPointerY, (l) => l.isPickable && l.isVisible && l.isReady() && l.actionManager && l.actionManager.hasSpecificTrigger(8) && l === this._pickedDownMesh, !1, i.cameraToUseForPointers);\n o != null && o.pickedMesh && n && this._totalPointersPressed !== 0 && Date.now() - this._startingPointerTime > ts.LongPressDelay && !this._isPointerSwiping() && (this._startingPointerTime = 0, n.processTrigger(8, Mi.CreateNew(o.pickedMesh, t)));\n }, ts.LongPressDelay);\n }\n } else\n for (const n of i._pointerDownStage)\n e = n.action(this._unTranslatedPointerX, this._unTranslatedPointerY, e, t, !1);\n let s;\n const r = Pe.POINTERDOWN;\n e ? (i.onPointerDown && i.onPointerDown(t, e, r), s = new Mn(r, t, e), this._setRayOnPointerInfo(e, t)) : s = new Mn(r, t, null, this), i.onPointerObservable.hasObservers() && i.onPointerObservable.notifyObservers(s, r);\n }\n /**\n * @internal\n * @internals Boolean if delta for pointer exceeds drag movement threshold\n */\n _isPointerSwiping() {\n return this._isSwiping;\n }\n /**\n * Use this method to simulate a pointer up on a mesh\n * The pickResult parameter can be obtained from a scene.pick or scene.pickWithRay\n * @param pickResult - pickingInfo of the object wished to simulate pointer event on\n * @param pointerEventInit - pointer event state to be used when simulating the pointer event (eg. pointer id for multitouch)\n * @param doubleTap - indicates that the pointer up event should be considered as part of a double click (false by default)\n */\n simulatePointerUp(e, t, i) {\n const s = new PointerEvent(\"pointerup\", t);\n s.inputIndex = et.Move;\n const r = new MS();\n i ? r.doubleClick = !0 : r.singleClick = !0, !this._checkPrePointerObservable(e, s, Pe.POINTERUP) && this._processPointerUp(e, s, r);\n }\n _processPointerUp(e, t, i) {\n const s = this._scene;\n if (e != null && e.pickedMesh) {\n if (this._pickedUpMesh = e.pickedMesh, this._pickedDownMesh === this._pickedUpMesh && (s.onPointerPick && s.onPointerPick(t, e), i.singleClick && !i.ignore && s.onPointerObservable.observers.length > this._cameraObserverCount)) {\n const n = Pe.POINTERPICK, o = new Mn(n, t, e);\n this._setRayOnPointerInfo(e, t), s.onPointerObservable.notifyObservers(o, n);\n }\n const r = e.pickedMesh._getActionManagerForTrigger();\n if (r && !i.ignore) {\n r.processTrigger(7, Mi.CreateNew(e.pickedMesh, t, e)), !i.hasSwiped && i.singleClick && r.processTrigger(1, Mi.CreateNew(e.pickedMesh, t, e));\n const n = e.pickedMesh._getActionManagerForTrigger(6);\n i.doubleClick && n && n.processTrigger(6, Mi.CreateNew(e.pickedMesh, t, e));\n }\n } else if (!i.ignore)\n for (const r of s._pointerUpStage)\n e = r.action(this._unTranslatedPointerX, this._unTranslatedPointerY, e, t, i.doubleClick);\n if (this._pickedDownMesh && this._pickedDownMesh !== this._pickedUpMesh) {\n const r = this._pickedDownMesh._getActionManagerForTrigger(16);\n r && r.processTrigger(16, Mi.CreateNew(this._pickedDownMesh, t));\n }\n if (!i.ignore) {\n const r = new Mn(Pe.POINTERUP, t, e);\n if (this._setRayOnPointerInfo(e, t), s.onPointerObservable.notifyObservers(r, Pe.POINTERUP), s.onPointerUp && s.onPointerUp(t, e, Pe.POINTERUP), !i.hasSwiped && !this._skipPointerTap && !this._isMultiTouchGesture) {\n let n = 0;\n if (i.singleClick ? n = Pe.POINTERTAP : i.doubleClick && (n = Pe.POINTERDOUBLETAP), n) {\n const o = new Mn(n, t, e);\n s.onPointerObservable.hasObservers() && s.onPointerObservable.hasSpecificMask(n) && s.onPointerObservable.notifyObservers(o, n);\n }\n }\n }\n }\n /**\n * Gets a boolean indicating if the current pointer event is captured (meaning that the scene has already handled the pointer down)\n * @param pointerId - defines the pointer id to use in a multi-touch scenario (0 by default)\n * @returns true if the pointer was captured\n */\n isPointerCaptured(e = 0) {\n return this._pointerCaptures[e];\n }\n /**\n * Attach events to the canvas (To handle actionManagers triggers and raise onPointerMove, onPointerDown and onPointerUp\n * @param attachUp - defines if you want to attach events to pointerup\n * @param attachDown - defines if you want to attach events to pointerdown\n * @param attachMove - defines if you want to attach events to pointermove\n * @param elementToAttachTo - defines the target DOM element to attach to (will use the canvas by default)\n */\n attachControl(e = !0, t = !0, i = !0, s = null) {\n const r = this._scene, n = r.getEngine();\n s || (s = n.getInputElement()), this._alreadyAttached && this.detachControl(), s && (this._alreadyAttachedTo = s), this._deviceSourceManager = new vM(n), this._initActionManager = (o) => {\n if (!this._meshPickProceed) {\n const l = r.skipPointerUpPicking || r._registeredActions === 0 && !this._checkForPicking() && !r.onPointerUp ? null : r.pick(this._unTranslatedPointerX, this._unTranslatedPointerY, r.pointerUpPredicate, r.pointerUpFastCheck, r.cameraToUseForPointers, r.pointerUpTrianglePredicate);\n this._currentPickResult = l, l && (o = l.hit && l.pickedMesh ? l.pickedMesh._getActionManagerForTrigger() : null), this._meshPickProceed = !0;\n }\n return o;\n }, this._delayedSimpleClick = (o, l, h) => {\n if ((Date.now() - this._previousStartingPointerTime > ts.DoubleClickDelay && !this._doubleClickOccured || o !== this._previousButtonPressed) && (this._doubleClickOccured = !1, l.singleClick = !0, l.ignore = !1, this._delayedClicks[o])) {\n const c = this._delayedClicks[o].evt, u = Pe.POINTERTAP, d = new Mn(u, c, this._currentPickResult);\n r.onPointerObservable.hasObservers() && r.onPointerObservable.hasSpecificMask(u) && r.onPointerObservable.notifyObservers(d, u), this._delayedClicks[o] = null;\n }\n }, this._initClickEvent = (o, l, h, c) => {\n var _, m;\n const u = new MS();\n this._currentPickResult = null;\n let d = null, f = o.hasSpecificMask(Pe.POINTERPICK) || l.hasSpecificMask(Pe.POINTERPICK) || o.hasSpecificMask(Pe.POINTERTAP) || l.hasSpecificMask(Pe.POINTERTAP) || o.hasSpecificMask(Pe.POINTERDOUBLETAP) || l.hasSpecificMask(Pe.POINTERDOUBLETAP);\n !f && rn && (d = this._initActionManager(d, u), d && (f = d.hasPickTriggers));\n let p = !1;\n if (f) {\n const x = h.button;\n if (u.hasSwiped = this._isPointerSwiping(), !u.hasSwiped) {\n let v = !ts.ExclusiveDoubleClickMode;\n if (v || (v = !o.hasSpecificMask(Pe.POINTERDOUBLETAP) && !l.hasSpecificMask(Pe.POINTERDOUBLETAP), v && !rn.HasSpecificTrigger(6) && (d = this._initActionManager(d, u), d && (v = !d.hasSpecificTrigger(6)))), v)\n (Date.now() - this._previousStartingPointerTime > ts.DoubleClickDelay || x !== this._previousButtonPressed) && (u.singleClick = !0, c(u, this._currentPickResult), p = !0);\n else {\n const E = {\n evt: h,\n clickInfo: u,\n timeoutId: window.setTimeout(this._delayedSimpleClick.bind(this, x, u, c), ts.DoubleClickDelay)\n };\n this._delayedClicks[x] = E;\n }\n let T = o.hasSpecificMask(Pe.POINTERDOUBLETAP) || l.hasSpecificMask(Pe.POINTERDOUBLETAP);\n !T && rn.HasSpecificTrigger(6) && (d = this._initActionManager(d, u), d && (T = d.hasSpecificTrigger(6))), T && (x === this._previousButtonPressed && Date.now() - this._previousStartingPointerTime < ts.DoubleClickDelay && !this._doubleClickOccured ? (!u.hasSwiped && !this._isPointerSwiping() ? (this._previousStartingPointerTime = 0, this._doubleClickOccured = !0, u.doubleClick = !0, u.ignore = !1, ts.ExclusiveDoubleClickMode && this._delayedClicks[x] && (clearTimeout((_ = this._delayedClicks[x]) == null ? void 0 : _.timeoutId), this._delayedClicks[x] = null), c(u, this._currentPickResult)) : (this._doubleClickOccured = !1, this._previousStartingPointerTime = this._startingPointerTime, this._previousStartingPointerPosition.x = this._startingPointerPosition.x, this._previousStartingPointerPosition.y = this._startingPointerPosition.y, this._previousButtonPressed = x, ts.ExclusiveDoubleClickMode ? (this._delayedClicks[x] && (clearTimeout((m = this._delayedClicks[x]) == null ? void 0 : m.timeoutId), this._delayedClicks[x] = null), c(u, this._previousPickResult)) : c(u, this._currentPickResult)), p = !0) : (this._doubleClickOccured = !1, this._previousStartingPointerTime = this._startingPointerTime, this._previousStartingPointerPosition.x = this._startingPointerPosition.x, this._previousStartingPointerPosition.y = this._startingPointerPosition.y, this._previousButtonPressed = x));\n }\n }\n p || c(u, this._currentPickResult);\n }, this._onPointerMove = (o) => {\n if (this._updatePointerPosition(o), !this._isSwiping && this._swipeButtonPressed !== -1 && (this._isSwiping = Math.abs(this._startingPointerPosition.x - this._pointerX) > ts.DragMovementThreshold || Math.abs(this._startingPointerPosition.y - this._pointerY) > ts.DragMovementThreshold), n.isPointerLock && n._verifyPointerLock(), this._checkPrePointerObservable(null, o, o.inputIndex >= et.MouseWheelX && o.inputIndex <= et.MouseWheelZ ? Pe.POINTERWHEEL : Pe.POINTERMOVE) || !r.cameraToUseForPointers && !r.activeCamera)\n return;\n if (r.skipPointerMovePicking) {\n this._processPointerMove(new Cs(), o);\n return;\n }\n r.pointerMovePredicate || (r.pointerMovePredicate = (h) => h.isPickable && h.isVisible && h.isReady() && h.isEnabled() && (h.enablePointerMoveEvents || r.constantlyUpdateMeshUnderPointer || h._getActionManagerForTrigger() !== null) && (!r.cameraToUseForPointers || (r.cameraToUseForPointers.layerMask & h.layerMask) !== 0));\n const l = r._registeredActions > 0 || r.constantlyUpdateMeshUnderPointer ? this._pickMove(o) : null;\n this._processPointerMove(l, o);\n }, this._onPointerDown = (o) => {\n var h;\n if (this._totalPointersPressed++, this._pickedDownMesh = null, this._meshPickProceed = !1, ts.ExclusiveDoubleClickMode) {\n for (let c = 0; c < this._delayedClicks.length; c++)\n if (this._delayedClicks[c])\n if (o.button === c)\n clearTimeout((h = this._delayedClicks[c]) == null ? void 0 : h.timeoutId);\n else {\n const u = this._delayedClicks[c].clickInfo;\n this._doubleClickOccured = !1, u.singleClick = !0, u.ignore = !1;\n const d = this._delayedClicks[c].evt, f = Pe.POINTERTAP, p = new Mn(f, d, this._currentPickResult);\n r.onPointerObservable.hasObservers() && r.onPointerObservable.hasSpecificMask(f) && r.onPointerObservable.notifyObservers(p, f), this._delayedClicks[c] = null;\n }\n }\n if (this._updatePointerPosition(o), this._swipeButtonPressed === -1 && (this._swipeButtonPressed = o.button), r.preventDefaultOnPointerDown && s && (o.preventDefault(), s.focus()), this._startingPointerPosition.x = this._pointerX, this._startingPointerPosition.y = this._pointerY, this._startingPointerTime = Date.now(), this._checkPrePointerObservable(null, o, Pe.POINTERDOWN) || !r.cameraToUseForPointers && !r.activeCamera)\n return;\n this._pointerCaptures[o.pointerId] = !0, r.pointerDownPredicate || (r.pointerDownPredicate = (c) => c.isPickable && c.isVisible && c.isReady() && c.isEnabled() && (!r.cameraToUseForPointers || (r.cameraToUseForPointers.layerMask & c.layerMask) !== 0)), this._pickedDownMesh = null;\n let l;\n r.skipPointerDownPicking || r._registeredActions === 0 && !this._checkForPicking() && !r.onPointerDown ? l = new Cs() : l = r.pick(this._unTranslatedPointerX, this._unTranslatedPointerY, r.pointerDownPredicate, r.pointerDownFastCheck, r.cameraToUseForPointers, r.pointerDownTrianglePredicate), this._processPointerDown(l, o);\n }, this._onPointerUp = (o) => {\n this._totalPointersPressed !== 0 && (this._totalPointersPressed--, this._pickedUpMesh = null, this._meshPickProceed = !1, this._updatePointerPosition(o), r.preventDefaultOnPointerUp && s && (o.preventDefault(), s.focus()), this._initClickEvent(r.onPrePointerObservable, r.onPointerObservable, o, (l, h) => {\n if (r.onPrePointerObservable.hasObservers() && (this._skipPointerTap = !1, !l.ignore)) {\n if (this._checkPrePointerObservable(null, o, Pe.POINTERUP)) {\n this._swipeButtonPressed === o.button && (this._isSwiping = !1, this._swipeButtonPressed = -1), o.buttons === 0 && (this._pointerCaptures[o.pointerId] = !1);\n return;\n }\n l.hasSwiped || (l.singleClick && r.onPrePointerObservable.hasSpecificMask(Pe.POINTERTAP) && this._checkPrePointerObservable(null, o, Pe.POINTERTAP) && (this._skipPointerTap = !0), l.doubleClick && r.onPrePointerObservable.hasSpecificMask(Pe.POINTERDOUBLETAP) && this._checkPrePointerObservable(null, o, Pe.POINTERDOUBLETAP) && (this._skipPointerTap = !0));\n }\n if (!this._pointerCaptures[o.pointerId]) {\n this._swipeButtonPressed === o.button && (this._isSwiping = !1, this._swipeButtonPressed = -1);\n return;\n }\n o.buttons === 0 && (this._pointerCaptures[o.pointerId] = !1), !(!r.cameraToUseForPointers && !r.activeCamera) && (r.pointerUpPredicate || (r.pointerUpPredicate = (c) => c.isPickable && c.isVisible && c.isReady() && c.isEnabled() && (!r.cameraToUseForPointers || (r.cameraToUseForPointers.layerMask & c.layerMask) !== 0)), !this._meshPickProceed && (rn && rn.HasTriggers || this._checkForPicking() || r.onPointerUp) && this._initActionManager(null, l), h || (h = this._currentPickResult), this._processPointerUp(h, o, l), this._previousPickResult = this._currentPickResult, this._swipeButtonPressed === o.button && (this._isSwiping = !1, this._swipeButtonPressed = -1));\n }));\n }, this._onKeyDown = (o) => {\n const l = Ma.KEYDOWN;\n if (r.onPreKeyboardObservable.hasObservers()) {\n const h = new TS(l, o);\n if (r.onPreKeyboardObservable.notifyObservers(h, l), h.skipOnKeyboardObservable)\n return;\n }\n if (r.onKeyboardObservable.hasObservers()) {\n const h = new bg(l, o);\n r.onKeyboardObservable.notifyObservers(h, l);\n }\n r.actionManager && r.actionManager.processTrigger(14, Mi.CreateNewFromScene(r, o));\n }, this._onKeyUp = (o) => {\n const l = Ma.KEYUP;\n if (r.onPreKeyboardObservable.hasObservers()) {\n const h = new TS(l, o);\n if (r.onPreKeyboardObservable.notifyObservers(h, l), h.skipOnKeyboardObservable)\n return;\n }\n if (r.onKeyboardObservable.hasObservers()) {\n const h = new bg(l, o);\n r.onKeyboardObservable.notifyObservers(h, l);\n }\n r.actionManager && r.actionManager.processTrigger(15, Mi.CreateNewFromScene(r, o));\n }, this._deviceSourceManager.onDeviceConnectedObservable.add((o) => {\n o.deviceType === He.Mouse ? o.onInputChangedObservable.add((l) => {\n this._originMouseEvent = l, l.inputIndex === et.LeftClick || l.inputIndex === et.MiddleClick || l.inputIndex === et.RightClick || l.inputIndex === et.BrowserBack || l.inputIndex === et.BrowserForward ? t && o.getInput(l.inputIndex) === 1 ? this._onPointerDown(l) : e && o.getInput(l.inputIndex) === 0 && this._onPointerUp(l) : i && (l.inputIndex === et.Move ? this._onPointerMove(l) : (l.inputIndex === et.MouseWheelX || l.inputIndex === et.MouseWheelY || l.inputIndex === et.MouseWheelZ) && this._onPointerMove(l));\n }) : o.deviceType === He.Touch ? o.onInputChangedObservable.add((l) => {\n l.inputIndex === et.LeftClick && (t && o.getInput(l.inputIndex) === 1 ? (this._onPointerDown(l), this._totalPointersPressed > 1 && (this._isMultiTouchGesture = !0)) : e && o.getInput(l.inputIndex) === 0 && (this._onPointerUp(l), this._totalPointersPressed === 0 && (this._isMultiTouchGesture = !1))), i && l.inputIndex === et.Move && this._onPointerMove(l);\n }) : o.deviceType === He.Keyboard && o.onInputChangedObservable.add((l) => {\n l.type === \"keydown\" ? this._onKeyDown(l) : l.type === \"keyup\" && this._onKeyUp(l);\n });\n }), this._alreadyAttached = !0;\n }\n /**\n * Detaches all event handlers\n */\n detachControl() {\n this._alreadyAttached && (this._deviceSourceManager.dispose(), this._deviceSourceManager = null, this._alreadyAttachedTo && !this._scene.doNotHandleCursors && (this._alreadyAttachedTo.style.cursor = this._scene.defaultCursor), this._alreadyAttached = !1, this._alreadyAttachedTo = null);\n }\n /**\n * Force the value of meshUnderPointer\n * @param mesh - defines the mesh to use\n * @param pointerId - optional pointer id when using more than one pointer. Defaults to 0\n * @param pickResult - optional pickingInfo data used to find mesh\n * @param evt - optional pointer event\n */\n setPointerOverMesh(e, t = 0, i, s) {\n if (this._meshUnderPointerId[t] === e && (!e || !e._internalAbstractMeshDataInfo._pointerOverDisableMeshTesting))\n return;\n const r = this._meshUnderPointerId[t];\n let n;\n r && (n = r._getActionManagerForTrigger(10), n && n.processTrigger(10, Mi.CreateNew(r, s, { pointerId: t }))), e ? (this._meshUnderPointerId[t] = e, this._pointerOverMesh = e, n = e._getActionManagerForTrigger(9), n && n.processTrigger(9, Mi.CreateNew(e, s, { pointerId: t, pickResult: i }))) : (delete this._meshUnderPointerId[t], this._pointerOverMesh = null);\n }\n /**\n * Gets the mesh under the pointer\n * @returns a Mesh or null if no mesh is under the pointer\n */\n getPointerOverMesh() {\n return this.meshUnderPointer;\n }\n /**\n * @param mesh - Mesh to invalidate\n * @internal\n */\n _invalidateMesh(e) {\n this._pointerOverMesh === e && (this._pointerOverMesh = null), this._pickedDownMesh === e && (this._pickedDownMesh = null), this._pickedUpMesh === e && (this._pickedUpMesh = null);\n for (const t in this._meshUnderPointerId)\n this._meshUnderPointerId[t] === e && delete this._meshUnderPointerId[t];\n }\n}\nts.DragMovementThreshold = 10;\nts.LongPressDelay = 500;\nts.DoubleClickDelay = 300;\nts.ExclusiveDoubleClickMode = !1;\nclass Pr {\n /**\n * Creates a Plane object according to the given floats a, b, c, d and the plane equation : ax + by + cz + d = 0\n * @param a a component of the plane\n * @param b b component of the plane\n * @param c c component of the plane\n * @param d d component of the plane\n */\n constructor(e, t, i, s) {\n this.normal = new g(e, t, i), this.d = s;\n }\n /**\n * @returns the plane coordinates as a new array of 4 elements [a, b, c, d].\n */\n asArray() {\n return [this.normal.x, this.normal.y, this.normal.z, this.d];\n }\n // Methods\n /**\n * @returns a new plane copied from the current Plane.\n */\n clone() {\n return new Pr(this.normal.x, this.normal.y, this.normal.z, this.d);\n }\n /**\n * @returns the string \"Plane\".\n */\n getClassName() {\n return \"Plane\";\n }\n /**\n * @returns the Plane hash code.\n */\n getHashCode() {\n let e = this.normal.getHashCode();\n return e = e * 397 ^ (this.d | 0), e;\n }\n /**\n * Normalize the current Plane in place.\n * @returns the updated Plane.\n */\n normalize() {\n const e = Math.sqrt(this.normal.x * this.normal.x + this.normal.y * this.normal.y + this.normal.z * this.normal.z);\n let t = 0;\n return e !== 0 && (t = 1 / e), this.normal.x *= t, this.normal.y *= t, this.normal.z *= t, this.d *= t, this;\n }\n /**\n * Applies a transformation the plane and returns the result\n * @param transformation the transformation matrix to be applied to the plane\n * @returns a new Plane as the result of the transformation of the current Plane by the given matrix.\n */\n transform(e) {\n const t = Pr._TmpMatrix;\n e.invertToRef(t);\n const i = t.m, s = this.normal.x, r = this.normal.y, n = this.normal.z, o = this.d, l = s * i[0] + r * i[1] + n * i[2] + o * i[3], h = s * i[4] + r * i[5] + n * i[6] + o * i[7], c = s * i[8] + r * i[9] + n * i[10] + o * i[11], u = s * i[12] + r * i[13] + n * i[14] + o * i[15];\n return new Pr(l, h, c, u);\n }\n /**\n * Compute the dot product between the point and the plane normal\n * @param point point to calculate the dot product with\n * @returns the dot product (float) of the point coordinates and the plane normal.\n */\n dotCoordinate(e) {\n return this.normal.x * e.x + this.normal.y * e.y + this.normal.z * e.z + this.d;\n }\n /**\n * Updates the current Plane from the plane defined by the three given points.\n * @param point1 one of the points used to construct the plane\n * @param point2 one of the points used to construct the plane\n * @param point3 one of the points used to construct the plane\n * @returns the updated Plane.\n */\n copyFromPoints(e, t, i) {\n const s = t.x - e.x, r = t.y - e.y, n = t.z - e.z, o = i.x - e.x, l = i.y - e.y, h = i.z - e.z, c = r * h - n * l, u = n * o - s * h, d = s * l - r * o, f = Math.sqrt(c * c + u * u + d * d);\n let p;\n return f !== 0 ? p = 1 / f : p = 0, this.normal.x = c * p, this.normal.y = u * p, this.normal.z = d * p, this.d = -(this.normal.x * e.x + this.normal.y * e.y + this.normal.z * e.z), this;\n }\n /**\n * Checks if the plane is facing a given direction (meaning if the plane's normal is pointing in the opposite direction of the given vector).\n * Note that for this function to work as expected you should make sure that:\n * - direction and the plane normal are normalized\n * - epsilon is a number just bigger than -1, something like -0.99 for eg\n * @param direction the direction to check if the plane is facing\n * @param epsilon value the dot product is compared against (returns true if dot <= epsilon)\n * @returns True if the plane is facing the given direction\n */\n isFrontFacingTo(e, t) {\n return g.Dot(this.normal, e) <= t;\n }\n /**\n * Calculates the distance to a point\n * @param point point to calculate distance to\n * @returns the signed distance (float) from the given point to the Plane.\n */\n signedDistanceTo(e) {\n return g.Dot(e, this.normal) + this.d;\n }\n // Statics\n /**\n * Creates a plane from an array\n * @param array the array to create a plane from\n * @returns a new Plane from the given array.\n */\n static FromArray(e) {\n return new Pr(e[0], e[1], e[2], e[3]);\n }\n /**\n * Creates a plane from three points\n * @param point1 point used to create the plane\n * @param point2 point used to create the plane\n * @param point3 point used to create the plane\n * @returns a new Plane defined by the three given points.\n */\n static FromPoints(e, t, i) {\n const s = new Pr(0, 0, 0, 0);\n return s.copyFromPoints(e, t, i), s;\n }\n /**\n * Creates a plane from an origin point and a normal\n * @param origin origin of the plane to be constructed\n * @param normal normal of the plane to be constructed\n * @returns a new Plane the normal vector to this plane at the given origin point.\n */\n static FromPositionAndNormal(e, t) {\n const i = new Pr(0, 0, 0, 0);\n return this.FromPositionAndNormalToRef(e, t, i);\n }\n /**\n * Updates the given Plane \"result\" from an origin point and a normal.\n * @param origin origin of the plane to be constructed\n * @param normal the normalized normals of the plane to be constructed\n * @param result defines the Plane where to store the result\n * @returns result input\n */\n static FromPositionAndNormalToRef(e, t, i) {\n return i.normal.copyFrom(t), i.normal.normalize(), i.d = -e.dot(i.normal), i;\n }\n /**\n * Calculates the distance from a plane and a point\n * @param origin origin of the plane to be constructed\n * @param normal normal of the plane to be constructed\n * @param point point to calculate distance to\n * @returns the signed distance between the plane defined by the normal vector at the \"origin\"\" point and the given other point.\n */\n static SignedDistanceToPlaneFromPositionAndNormal(e, t, i) {\n const s = -(t.x * e.x + t.y * e.y + t.z * e.z);\n return g.Dot(i, t) + s;\n }\n}\nPr._TmpMatrix = O.Identity();\nclass _n {\n /**\n * Gets the planes representing the frustum\n * @param transform matrix to be applied to the returned planes\n * @returns a new array of 6 Frustum planes computed by the given transformation matrix.\n */\n static GetPlanes(e) {\n const t = [];\n for (let i = 0; i < 6; i++)\n t.push(new Pr(0, 0, 0, 0));\n return _n.GetPlanesToRef(e, t), t;\n }\n /**\n * Gets the near frustum plane transformed by the transform matrix\n * @param transform transformation matrix to be applied to the resulting frustum plane\n * @param frustumPlane the resulting frustum plane\n */\n static GetNearPlaneToRef(e, t) {\n const i = e.m;\n t.normal.x = i[3] + i[2], t.normal.y = i[7] + i[6], t.normal.z = i[11] + i[10], t.d = i[15] + i[14], t.normalize();\n }\n /**\n * Gets the far frustum plane transformed by the transform matrix\n * @param transform transformation matrix to be applied to the resulting frustum plane\n * @param frustumPlane the resulting frustum plane\n */\n static GetFarPlaneToRef(e, t) {\n const i = e.m;\n t.normal.x = i[3] - i[2], t.normal.y = i[7] - i[6], t.normal.z = i[11] - i[10], t.d = i[15] - i[14], t.normalize();\n }\n /**\n * Gets the left frustum plane transformed by the transform matrix\n * @param transform transformation matrix to be applied to the resulting frustum plane\n * @param frustumPlane the resulting frustum plane\n */\n static GetLeftPlaneToRef(e, t) {\n const i = e.m;\n t.normal.x = i[3] + i[0], t.normal.y = i[7] + i[4], t.normal.z = i[11] + i[8], t.d = i[15] + i[12], t.normalize();\n }\n /**\n * Gets the right frustum plane transformed by the transform matrix\n * @param transform transformation matrix to be applied to the resulting frustum plane\n * @param frustumPlane the resulting frustum plane\n */\n static GetRightPlaneToRef(e, t) {\n const i = e.m;\n t.normal.x = i[3] - i[0], t.normal.y = i[7] - i[4], t.normal.z = i[11] - i[8], t.d = i[15] - i[12], t.normalize();\n }\n /**\n * Gets the top frustum plane transformed by the transform matrix\n * @param transform transformation matrix to be applied to the resulting frustum plane\n * @param frustumPlane the resulting frustum plane\n */\n static GetTopPlaneToRef(e, t) {\n const i = e.m;\n t.normal.x = i[3] - i[1], t.normal.y = i[7] - i[5], t.normal.z = i[11] - i[9], t.d = i[15] - i[13], t.normalize();\n }\n /**\n * Gets the bottom frustum plane transformed by the transform matrix\n * @param transform transformation matrix to be applied to the resulting frustum plane\n * @param frustumPlane the resulting frustum plane\n */\n static GetBottomPlaneToRef(e, t) {\n const i = e.m;\n t.normal.x = i[3] + i[1], t.normal.y = i[7] + i[5], t.normal.z = i[11] + i[9], t.d = i[15] + i[13], t.normalize();\n }\n /**\n * Sets the given array \"frustumPlanes\" with the 6 Frustum planes computed by the given transformation matrix.\n * @param transform transformation matrix to be applied to the resulting frustum planes\n * @param frustumPlanes the resulting frustum planes\n */\n static GetPlanesToRef(e, t) {\n _n.GetNearPlaneToRef(e, t[0]), _n.GetFarPlaneToRef(e, t[1]), _n.GetLeftPlaneToRef(e, t[2]), _n.GetRightPlaneToRef(e, t[3]), _n.GetTopPlaneToRef(e, t[4]), _n.GetBottomPlaneToRef(e, t[5]);\n }\n /**\n * Tests if a point is located between the frustum planes.\n * @param point defines the point to test\n * @param frustumPlanes defines the frustum planes to test\n * @returns true if the point is located between the frustum planes\n */\n static IsPointInFrustum(e, t) {\n for (let i = 0; i < 6; i++)\n if (t[i].dotCoordinate(e) < 0)\n return !1;\n return !0;\n }\n}\nclass of {\n /**\n * Gets an unique (relatively to the current scene) Id\n */\n static get UniqueId() {\n const e = this._UniqueIdCounter;\n return this._UniqueIdCounter++, e;\n }\n}\nof._UniqueIdCounter = 1;\nclass Qt {\n /**\n * Sort function to order lights for rendering.\n * @param a First Light object to compare to second.\n * @param b Second Light object to compare first.\n * @returns -1 to reduce's a's index relative to be, 0 for no change, 1 to increase a's index relative to b.\n */\n static CompareLightsPriority(e, t) {\n return e.shadowEnabled !== t.shadowEnabled ? (t.shadowEnabled ? 1 : 0) - (e.shadowEnabled ? 1 : 0) : t.renderPriority - e.renderPriority;\n }\n}\nQt.FALLOFF_DEFAULT = 0;\nQt.FALLOFF_PHYSICAL = 1;\nQt.FALLOFF_GLTF = 2;\nQt.FALLOFF_STANDARD = 3;\nQt.LIGHTMAP_DEFAULT = 0;\nQt.LIGHTMAP_SPECULAR = 1;\nQt.LIGHTMAP_SHADOWSONLY = 2;\nQt.INTENSITYMODE_AUTOMATIC = 0;\nQt.INTENSITYMODE_LUMINOUSPOWER = 1;\nQt.INTENSITYMODE_LUMINOUSINTENSITY = 2;\nQt.INTENSITYMODE_ILLUMINANCE = 3;\nQt.INTENSITYMODE_LUMINANCE = 4;\nQt.LIGHTTYPEID_POINTLIGHT = 0;\nQt.LIGHTTYPEID_DIRECTIONALLIGHT = 1;\nQt.LIGHTTYPEID_SPOTLIGHT = 2;\nQt.LIGHTTYPEID_HEMISPHERICLIGHT = 3;\nclass TM {\n constructor() {\n this.pointerDownFastCheck = !1, this.pointerUpFastCheck = !1, this.pointerMoveFastCheck = !1, this.skipPointerMovePicking = !1, this.skipPointerDownPicking = !1, this.skipPointerUpPicking = !1;\n }\n}\nvar DS;\n(function(a) {\n a[a.BackwardCompatible = 0] = \"BackwardCompatible\", a[a.Intermediate = 1] = \"Intermediate\", a[a.Aggressive = 2] = \"Aggressive\";\n})(DS || (DS = {}));\nclass De extends qi {\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Factory used to create the default material.\n * @param scene The scene to create the material for\n * @returns The default material\n */\n static DefaultMaterialFactory(e) {\n throw $e(\"StandardMaterial\");\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Factory used to create the a collision coordinator.\n * @returns The collision coordinator\n */\n static CollisionCoordinatorFactory() {\n throw $e(\"DefaultCollisionCoordinator\");\n }\n /**\n * Texture used in all pbr material as the reflection texture.\n * As in the majority of the scene they are the same (exception for multi room and so on),\n * this is easier to reference from here than from all the materials.\n */\n get environmentTexture() {\n return this._environmentTexture;\n }\n /**\n * Texture used in all pbr material as the reflection texture.\n * As in the majority of the scene they are the same (exception for multi room and so on),\n * this is easier to set here than in all the materials.\n */\n set environmentTexture(e) {\n this._environmentTexture !== e && (this._environmentTexture = e, this.markAllMaterialsAsDirty(1));\n }\n /**\n * Default image processing configuration used either in the rendering\n * Forward main pass or through the imageProcessingPostProcess if present.\n * As in the majority of the scene they are the same (exception for multi camera),\n * this is easier to reference from here than from all the materials and post process.\n *\n * No setter as we it is a shared configuration, you can set the values instead.\n */\n get imageProcessingConfiguration() {\n return this._imageProcessingConfiguration;\n }\n /**\n * Gets or sets a value indicating how to treat performance relatively to ease of use and backward compatibility\n */\n get performancePriority() {\n return this._performancePriority;\n }\n set performancePriority(e) {\n if (e !== this._performancePriority) {\n switch (this._performancePriority = e, e) {\n case 0:\n this.skipFrustumClipping = !1, this._renderingManager.maintainStateBetweenFrames = !1, this.skipPointerMovePicking = !1, this.autoClear = !0;\n break;\n case 1:\n this.skipFrustumClipping = !1, this._renderingManager.maintainStateBetweenFrames = !1, this.skipPointerMovePicking = !0, this.autoClear = !1;\n break;\n case 2:\n this.skipFrustumClipping = !0, this._renderingManager.maintainStateBetweenFrames = !0, this.skipPointerMovePicking = !0, this.autoClear = !1;\n break;\n }\n this.onScenePerformancePriorityChangedObservable.notifyObservers(e);\n }\n }\n /**\n * Gets or sets a boolean indicating if all rendering must be done in wireframe\n */\n set forceWireframe(e) {\n this._forceWireframe !== e && (this._forceWireframe = e, this.markAllMaterialsAsDirty(16));\n }\n get forceWireframe() {\n return this._forceWireframe;\n }\n /**\n * Gets or sets a boolean indicating if we should skip the frustum clipping part of the active meshes selection\n */\n set skipFrustumClipping(e) {\n this._skipFrustumClipping !== e && (this._skipFrustumClipping = e);\n }\n get skipFrustumClipping() {\n return this._skipFrustumClipping;\n }\n /**\n * Gets or sets a boolean indicating if all rendering must be done in point cloud\n */\n set forcePointsCloud(e) {\n this._forcePointsCloud !== e && (this._forcePointsCloud = e, this.markAllMaterialsAsDirty(16));\n }\n get forcePointsCloud() {\n return this._forcePointsCloud;\n }\n /**\n * Gets or sets the animation properties override\n */\n get animationPropertiesOverride() {\n return this._animationPropertiesOverride;\n }\n set animationPropertiesOverride(e) {\n this._animationPropertiesOverride = e;\n }\n /** Sets a function to be executed when this scene is disposed. */\n set onDispose(e) {\n this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), this._onDisposeObserver = this.onDisposeObservable.add(e);\n }\n /** Sets a function to be executed before rendering this scene */\n set beforeRender(e) {\n this._onBeforeRenderObserver && this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver), e && (this._onBeforeRenderObserver = this.onBeforeRenderObservable.add(e));\n }\n /** Sets a function to be executed after rendering this scene */\n set afterRender(e) {\n this._onAfterRenderObserver && this.onAfterRenderObservable.remove(this._onAfterRenderObserver), e && (this._onAfterRenderObserver = this.onAfterRenderObservable.add(e));\n }\n /** Sets a function to be executed before rendering a camera*/\n set beforeCameraRender(e) {\n this._onBeforeCameraRenderObserver && this.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver), this._onBeforeCameraRenderObserver = this.onBeforeCameraRenderObservable.add(e);\n }\n /** Sets a function to be executed after rendering a camera*/\n set afterCameraRender(e) {\n this._onAfterCameraRenderObserver && this.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver), this._onAfterCameraRenderObserver = this.onAfterCameraRenderObservable.add(e);\n }\n /**\n * Gets or sets a predicate used to select candidate meshes for a pointer down event\n */\n get pointerDownPredicate() {\n return this._pointerPickingConfiguration.pointerDownPredicate;\n }\n set pointerDownPredicate(e) {\n this._pointerPickingConfiguration.pointerDownPredicate = e;\n }\n /**\n * Gets or sets a predicate used to select candidate meshes for a pointer up event\n */\n get pointerUpPredicate() {\n return this._pointerPickingConfiguration.pointerUpPredicate;\n }\n set pointerUpPredicate(e) {\n this._pointerPickingConfiguration.pointerUpPredicate = e;\n }\n /**\n * Gets or sets a predicate used to select candidate meshes for a pointer move event\n */\n get pointerMovePredicate() {\n return this._pointerPickingConfiguration.pointerMovePredicate;\n }\n set pointerMovePredicate(e) {\n this._pointerPickingConfiguration.pointerMovePredicate = e;\n }\n /**\n * Gets or sets a predicate used to select candidate meshes for a pointer down event\n */\n get pointerDownFastCheck() {\n return this._pointerPickingConfiguration.pointerDownFastCheck;\n }\n set pointerDownFastCheck(e) {\n this._pointerPickingConfiguration.pointerDownFastCheck = e;\n }\n /**\n * Gets or sets a predicate used to select candidate meshes for a pointer up event\n */\n get pointerUpFastCheck() {\n return this._pointerPickingConfiguration.pointerUpFastCheck;\n }\n set pointerUpFastCheck(e) {\n this._pointerPickingConfiguration.pointerUpFastCheck = e;\n }\n /**\n * Gets or sets a predicate used to select candidate meshes for a pointer move event\n */\n get pointerMoveFastCheck() {\n return this._pointerPickingConfiguration.pointerMoveFastCheck;\n }\n set pointerMoveFastCheck(e) {\n this._pointerPickingConfiguration.pointerMoveFastCheck = e;\n }\n /**\n * Gets or sets a boolean indicating if the user want to entirely skip the picking phase when a pointer move event occurs.\n */\n get skipPointerMovePicking() {\n return this._pointerPickingConfiguration.skipPointerMovePicking;\n }\n set skipPointerMovePicking(e) {\n this._pointerPickingConfiguration.skipPointerMovePicking = e;\n }\n /**\n * Gets or sets a boolean indicating if the user want to entirely skip the picking phase when a pointer down event occurs.\n */\n get skipPointerDownPicking() {\n return this._pointerPickingConfiguration.skipPointerDownPicking;\n }\n set skipPointerDownPicking(e) {\n this._pointerPickingConfiguration.skipPointerDownPicking = e;\n }\n /**\n * Gets or sets a boolean indicating if the user want to entirely skip the picking phase when a pointer up event occurs. Off by default.\n */\n get skipPointerUpPicking() {\n return this._pointerPickingConfiguration.skipPointerUpPicking;\n }\n set skipPointerUpPicking(e) {\n this._pointerPickingConfiguration.skipPointerUpPicking = e;\n }\n /**\n * Gets the pointer coordinates without any translation (ie. straight out of the pointer event)\n */\n get unTranslatedPointer() {\n return this._inputManager.unTranslatedPointer;\n }\n /**\n * Gets or sets the distance in pixel that you have to move to prevent some events. Default is 10 pixels\n */\n static get DragMovementThreshold() {\n return ts.DragMovementThreshold;\n }\n static set DragMovementThreshold(e) {\n ts.DragMovementThreshold = e;\n }\n /**\n * Time in milliseconds to wait to raise long press events if button is still pressed. Default is 500 ms\n */\n static get LongPressDelay() {\n return ts.LongPressDelay;\n }\n static set LongPressDelay(e) {\n ts.LongPressDelay = e;\n }\n /**\n * Time in milliseconds to wait to raise long press events if button is still pressed. Default is 300 ms\n */\n static get DoubleClickDelay() {\n return ts.DoubleClickDelay;\n }\n static set DoubleClickDelay(e) {\n ts.DoubleClickDelay = e;\n }\n /** If you need to check double click without raising a single click at first click, enable this flag */\n static get ExclusiveDoubleClickMode() {\n return ts.ExclusiveDoubleClickMode;\n }\n static set ExclusiveDoubleClickMode(e) {\n ts.ExclusiveDoubleClickMode = e;\n }\n /**\n * Bind the current view position to an effect.\n * @param effect The effect to be bound\n * @param variableName name of the shader variable that will hold the eye position\n * @param isVector3 true to indicates that variableName is a Vector3 and not a Vector4\n * @returns the computed eye position\n */\n bindEyePosition(e, t = \"vEyePosition\", i = !1) {\n const s = this._forcedViewPosition ? this._forcedViewPosition : this._mirroredCameraPosition ? this._mirroredCameraPosition : this.activeCamera.globalPosition, r = this.useRightHandedSystem === (this._mirroredCameraPosition != null);\n return w.Vector4[0].set(s.x, s.y, s.z, r ? -1 : 1), e && (i ? e.setFloat3(t, w.Vector4[0].x, w.Vector4[0].y, w.Vector4[0].z) : e.setVector4(t, w.Vector4[0])), w.Vector4[0];\n }\n /**\n * Update the scene ubo before it can be used in rendering processing\n * @returns the scene UniformBuffer\n */\n finalizeSceneUbo() {\n const e = this.getSceneUniformBuffer(), t = this.bindEyePosition(null);\n return e.updateFloat4(\"vEyePosition\", t.x, t.y, t.z, t.w), e.update(), e;\n }\n /**\n * Gets or sets a boolean indicating if the scene must use right-handed coordinates system\n */\n set useRightHandedSystem(e) {\n this._useRightHandedSystem !== e && (this._useRightHandedSystem = e, this.markAllMaterialsAsDirty(16));\n }\n get useRightHandedSystem() {\n return this._useRightHandedSystem;\n }\n /**\n * Sets the step Id used by deterministic lock step\n * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#deterministic-lockstep\n * @param newStepId defines the step Id\n */\n setStepId(e) {\n this._currentStepId = e;\n }\n /**\n * Gets the step Id used by deterministic lock step\n * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#deterministic-lockstep\n * @returns the step Id\n */\n getStepId() {\n return this._currentStepId;\n }\n /**\n * Gets the internal step used by deterministic lock step\n * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#deterministic-lockstep\n * @returns the internal step\n */\n getInternalStep() {\n return this._currentInternalStep;\n }\n /**\n * Gets or sets a boolean indicating if fog is enabled on this scene\n * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/environment_introduction#fog\n * (Default is true)\n */\n set fogEnabled(e) {\n this._fogEnabled !== e && (this._fogEnabled = e, this.markAllMaterialsAsDirty(16));\n }\n get fogEnabled() {\n return this._fogEnabled;\n }\n /**\n * Gets or sets the fog mode to use\n * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/environment_introduction#fog\n * | mode | value |\n * | --- | --- |\n * | FOGMODE_NONE | 0 |\n * | FOGMODE_EXP | 1 |\n * | FOGMODE_EXP2 | 2 |\n * | FOGMODE_LINEAR | 3 |\n */\n set fogMode(e) {\n this._fogMode !== e && (this._fogMode = e, this.markAllMaterialsAsDirty(16));\n }\n get fogMode() {\n return this._fogMode;\n }\n /**\n * Flag indicating that the frame buffer binding is handled by another component\n */\n get prePass() {\n return !!this.prePassRenderer && this.prePassRenderer.defaultRT.enabled;\n }\n /**\n * Gets or sets a boolean indicating if shadows are enabled on this scene\n */\n set shadowsEnabled(e) {\n this._shadowsEnabled !== e && (this._shadowsEnabled = e, this.markAllMaterialsAsDirty(2));\n }\n get shadowsEnabled() {\n return this._shadowsEnabled;\n }\n /**\n * Gets or sets a boolean indicating if lights are enabled on this scene\n */\n set lightsEnabled(e) {\n this._lightsEnabled !== e && (this._lightsEnabled = e, this.markAllMaterialsAsDirty(2));\n }\n get lightsEnabled() {\n return this._lightsEnabled;\n }\n /** All of the active cameras added to this scene. */\n get activeCameras() {\n return this._activeCameras;\n }\n set activeCameras(e) {\n this._unObserveActiveCameras && (this._unObserveActiveCameras(), this._unObserveActiveCameras = null), e && (this._unObserveActiveCameras = OC(e, () => {\n this.onActiveCamerasChanged.notifyObservers(this);\n })), this._activeCameras = e;\n }\n /** Gets or sets the current active camera */\n get activeCamera() {\n return this._activeCamera;\n }\n set activeCamera(e) {\n e !== this._activeCamera && (this._activeCamera = e, this.onActiveCameraChanged.notifyObservers(this));\n }\n /** The default material used on meshes when no material is affected */\n get defaultMaterial() {\n return this._defaultMaterial || (this._defaultMaterial = De.DefaultMaterialFactory(this)), this._defaultMaterial;\n }\n /** The default material used on meshes when no material is affected */\n set defaultMaterial(e) {\n this._defaultMaterial = e;\n }\n /**\n * Gets or sets a boolean indicating if textures are enabled on this scene\n */\n set texturesEnabled(e) {\n this._texturesEnabled !== e && (this._texturesEnabled = e, this.markAllMaterialsAsDirty(1));\n }\n get texturesEnabled() {\n return this._texturesEnabled;\n }\n /**\n * Gets or sets a boolean indicating if skeletons are enabled on this scene\n */\n set skeletonsEnabled(e) {\n this._skeletonsEnabled !== e && (this._skeletonsEnabled = e, this.markAllMaterialsAsDirty(8));\n }\n get skeletonsEnabled() {\n return this._skeletonsEnabled;\n }\n /** @internal */\n get collisionCoordinator() {\n return this._collisionCoordinator || (this._collisionCoordinator = De.CollisionCoordinatorFactory(), this._collisionCoordinator.init(this)), this._collisionCoordinator;\n }\n /**\n * Gets the scene's rendering manager\n */\n get renderingManager() {\n return this._renderingManager;\n }\n /**\n * Gets the list of frustum planes (built from the active camera)\n */\n get frustumPlanes() {\n return this._frustumPlanes;\n }\n /**\n * Registers the transient components if needed.\n */\n _registerTransientComponents() {\n if (this._transientComponents.length > 0) {\n for (const e of this._transientComponents)\n e.register();\n this._transientComponents.length = 0;\n }\n }\n /**\n * @internal\n * Add a component to the scene.\n * Note that the ccomponent could be registered on th next frame if this is called after\n * the register component stage.\n * @param component Defines the component to add to the scene\n */\n _addComponent(e) {\n this._components.push(e), this._transientComponents.push(e);\n const t = e;\n t.addFromContainer && t.serialize && this._serializableComponents.push(t);\n }\n /**\n * @internal\n * Gets a component from the scene.\n * @param name defines the name of the component to retrieve\n * @returns the component or null if not present\n */\n _getComponent(e) {\n for (const t of this._components)\n if (t.name === e)\n return t;\n return null;\n }\n /**\n * Creates a new Scene\n * @param engine defines the engine to use to render this scene\n * @param options defines the scene options\n */\n constructor(e, t) {\n super(), this._inputManager = new ts(this), this.cameraToUseForPointers = null, this._isScene = !0, this._blockEntityCollection = !1, this.autoClear = !0, this.autoClearDepthAndStencil = !0, this.clearColor = new Ce(0.2, 0.2, 0.3, 1), this.ambientColor = new re(0, 0, 0), this.environmentIntensity = 1, this._performancePriority = 0, this.onScenePerformancePriorityChangedObservable = new G(), this._forceWireframe = !1, this._skipFrustumClipping = !1, this._forcePointsCloud = !1, this.animationsEnabled = !0, this._animationPropertiesOverride = null, this.useConstantAnimationDeltaTime = !1, this.constantlyUpdateMeshUnderPointer = !1, this.hoverCursor = \"pointer\", this.defaultCursor = \"\", this.doNotHandleCursors = !1, this.preventDefaultOnPointerDown = !0, this.preventDefaultOnPointerUp = !0, this.metadata = null, this.reservedDataStore = null, this.disableOfflineSupportExceptionRules = [], this.onDisposeObservable = new G(), this._onDisposeObserver = null, this.onBeforeRenderObservable = new G(), this._onBeforeRenderObserver = null, this.onAfterRenderObservable = new G(), this.onAfterRenderCameraObservable = new G(), this._onAfterRenderObserver = null, this.onBeforeAnimationsObservable = new G(), this.onAfterAnimationsObservable = new G(), this.onBeforeDrawPhaseObservable = new G(), this.onAfterDrawPhaseObservable = new G(), this.onReadyObservable = new G(), this.onBeforeCameraRenderObservable = new G(), this._onBeforeCameraRenderObserver = null, this.onAfterCameraRenderObservable = new G(), this._onAfterCameraRenderObserver = null, this.onBeforeActiveMeshesEvaluationObservable = new G(), this.onAfterActiveMeshesEvaluationObservable = new G(), this.onBeforeParticlesRenderingObservable = new G(), this.onAfterParticlesRenderingObservable = new G(), this.onDataLoadedObservable = new G(), this.onNewCameraAddedObservable = new G(), this.onCameraRemovedObservable = new G(), this.onNewLightAddedObservable = new G(), this.onLightRemovedObservable = new G(), this.onNewGeometryAddedObservable = new G(), this.onGeometryRemovedObservable = new G(), this.onNewTransformNodeAddedObservable = new G(), this.onTransformNodeRemovedObservable = new G(), this.onNewMeshAddedObservable = new G(), this.onMeshRemovedObservable = new G(), this.onNewSkeletonAddedObservable = new G(), this.onSkeletonRemovedObservable = new G(), this.onNewMaterialAddedObservable = new G(), this.onNewMultiMaterialAddedObservable = new G(), this.onMaterialRemovedObservable = new G(), this.onMultiMaterialRemovedObservable = new G(), this.onNewTextureAddedObservable = new G(), this.onTextureRemovedObservable = new G(), this.onBeforeRenderTargetsRenderObservable = new G(), this.onAfterRenderTargetsRenderObservable = new G(), this.onBeforeStepObservable = new G(), this.onAfterStepObservable = new G(), this.onActiveCameraChanged = new G(), this.onActiveCamerasChanged = new G(), this.onBeforeRenderingGroupObservable = new G(), this.onAfterRenderingGroupObservable = new G(), this.onMeshImportedObservable = new G(), this.onAnimationFileImportedObservable = new G(), this._registeredForLateAnimationBindings = new Mo(256), this._pointerPickingConfiguration = new TM(), this.onPrePointerObservable = new G(), this.onPointerObservable = new G(), this.onPreKeyboardObservable = new G(), this.onKeyboardObservable = new G(), this._useRightHandedSystem = !1, this._timeAccumulator = 0, this._currentStepId = 0, this._currentInternalStep = 0, this._fogEnabled = !0, this._fogMode = De.FOGMODE_NONE, this.fogColor = new re(0.2, 0.2, 0.3), this.fogDensity = 0.1, this.fogStart = 0, this.fogEnd = 1e3, this.needsPreviousWorldMatrices = !1, this._shadowsEnabled = !0, this._lightsEnabled = !0, this._unObserveActiveCameras = null, this._texturesEnabled = !0, this.physicsEnabled = !0, this.particlesEnabled = !0, this.spritesEnabled = !0, this._skeletonsEnabled = !0, this.lensFlaresEnabled = !0, this.collisionsEnabled = !0, this.gravity = new g(0, -9.807, 0), this.postProcessesEnabled = !0, this.renderTargetsEnabled = !0, this.dumpNextRenderTargets = !1, this.customRenderTargets = [], this.importedMeshesFiles = [], this.probesEnabled = !0, this._meshesForIntersections = new Mo(256), this.proceduralTexturesEnabled = !0, this._totalVertices = new nn(), this._activeIndices = new nn(), this._activeParticles = new nn(), this._activeBones = new nn(), this._animationTime = 0, this.animationTimeScale = 1, this._renderId = 0, this._frameId = 0, this._executeWhenReadyTimeoutId = null, this._intermediateRendering = !1, this._defaultFrameBufferCleared = !1, this._viewUpdateFlag = -1, this._projectionUpdateFlag = -1, this._toBeDisposed = new Array(256), this._activeRequests = new Array(), this._pendingData = new Array(), this._isDisposed = !1, this.dispatchAllSubMeshesOfActiveMeshes = !1, this._activeMeshes = new fs(256), this._processedMaterials = new fs(256), this._renderTargets = new Mo(256), this._materialsRenderTargets = new Mo(256), this._activeParticleSystems = new fs(256), this._activeSkeletons = new Mo(32), this._softwareSkinnedMeshes = new Mo(32), this._activeAnimatables = new Array(), this._transformMatrix = O.Zero(), this.requireLightSorting = !1, this._components = [], this._serializableComponents = [], this._transientComponents = [], this._beforeCameraUpdateStage = Ji.Create(), this._beforeClearStage = Ji.Create(), this._beforeRenderTargetClearStage = Ji.Create(), this._gatherRenderTargetsStage = Ji.Create(), this._gatherActiveCameraRenderTargetsStage = Ji.Create(), this._isReadyForMeshStage = Ji.Create(), this._beforeEvaluateActiveMeshStage = Ji.Create(), this._evaluateSubMeshStage = Ji.Create(), this._preActiveMeshStage = Ji.Create(), this._cameraDrawRenderTargetStage = Ji.Create(), this._beforeCameraDrawStage = Ji.Create(), this._beforeRenderTargetDrawStage = Ji.Create(), this._beforeRenderingGroupDrawStage = Ji.Create(), this._beforeRenderingMeshStage = Ji.Create(), this._afterRenderingMeshStage = Ji.Create(), this._afterRenderingGroupDrawStage = Ji.Create(), this._afterCameraDrawStage = Ji.Create(), this._afterCameraPostProcessStage = Ji.Create(), this._afterRenderTargetDrawStage = Ji.Create(), this._afterRenderTargetPostProcessStage = Ji.Create(), this._afterRenderStage = Ji.Create(), this._pointerMoveStage = Ji.Create(), this._pointerDownStage = Ji.Create(), this._pointerUpStage = Ji.Create(), this._geometriesByUniqueId = null, this._defaultMeshCandidates = {\n data: [],\n length: 0\n }, this._defaultSubMeshCandidates = {\n data: [],\n length: 0\n }, this._preventFreeActiveMeshesAndRenderingGroups = !1, this._activeMeshesFrozen = !1, this._activeMeshesFrozenButKeepClipping = !1, this._skipEvaluateActiveMeshesCompletely = !1, this._allowPostProcessClearColor = !0, this.getDeterministicFrameTime = () => this._engine.getTimeStep(), this._registeredActions = 0, this._blockMaterialDirtyMechanism = !1, this._perfCollector = null, this.activeCameras = [];\n const i = {\n useGeometryUniqueIdsMap: !0,\n useMaterialMeshMap: !0,\n useClonedMeshMap: !0,\n virtual: !1,\n ...t\n };\n e = this._engine = e || Me.LastCreatedEngine, i.virtual ? e._virtualScenes.push(this) : (Me._LastCreatedScene = this, e.scenes.push(this)), this._uid = null, this._renderingManager = new Ys(this), wp && (this.postProcessManager = new wp(this)), us() && this.attachControl(), this._createUbo(), pt && (this._imageProcessingConfiguration = new pt()), this.setDefaultCandidateProviders(), i.useGeometryUniqueIdsMap && (this._geometriesByUniqueId = {}), this.useMaterialMeshMap = i.useMaterialMeshMap, this.useClonedMeshMap = i.useClonedMeshMap, (!t || !t.virtual) && e.onNewSceneAddedObservable.notifyObservers(this);\n }\n /**\n * Gets a string identifying the name of the class\n * @returns \"Scene\" string\n */\n getClassName() {\n return \"Scene\";\n }\n /**\n * @internal\n */\n _getDefaultMeshCandidates() {\n return this._defaultMeshCandidates.data = this.meshes, this._defaultMeshCandidates.length = this.meshes.length, this._defaultMeshCandidates;\n }\n /**\n * @internal\n */\n _getDefaultSubMeshCandidates(e) {\n return this._defaultSubMeshCandidates.data = e.subMeshes, this._defaultSubMeshCandidates.length = e.subMeshes.length, this._defaultSubMeshCandidates;\n }\n /**\n * Sets the default candidate providers for the scene.\n * This sets the getActiveMeshCandidates, getActiveSubMeshCandidates, getIntersectingSubMeshCandidates\n * and getCollidingSubMeshCandidates to their default function\n */\n setDefaultCandidateProviders() {\n this.getActiveMeshCandidates = () => this._getDefaultMeshCandidates(), this.getActiveSubMeshCandidates = (e) => this._getDefaultSubMeshCandidates(e), this.getIntersectingSubMeshCandidates = (e, t) => this._getDefaultSubMeshCandidates(e), this.getCollidingSubMeshCandidates = (e, t) => this._getDefaultSubMeshCandidates(e);\n }\n /**\n * Gets the mesh that is currently under the pointer\n */\n get meshUnderPointer() {\n return this._inputManager.meshUnderPointer;\n }\n /**\n * Gets or sets the current on-screen X position of the pointer\n */\n get pointerX() {\n return this._inputManager.pointerX;\n }\n set pointerX(e) {\n this._inputManager.pointerX = e;\n }\n /**\n * Gets or sets the current on-screen Y position of the pointer\n */\n get pointerY() {\n return this._inputManager.pointerY;\n }\n set pointerY(e) {\n this._inputManager.pointerY = e;\n }\n /**\n * Gets the cached material (ie. the latest rendered one)\n * @returns the cached material\n */\n getCachedMaterial() {\n return this._cachedMaterial;\n }\n /**\n * Gets the cached effect (ie. the latest rendered one)\n * @returns the cached effect\n */\n getCachedEffect() {\n return this._cachedEffect;\n }\n /**\n * Gets the cached visibility state (ie. the latest rendered one)\n * @returns the cached visibility state\n */\n getCachedVisibility() {\n return this._cachedVisibility;\n }\n /**\n * Gets a boolean indicating if the current material / effect / visibility must be bind again\n * @param material defines the current material\n * @param effect defines the current effect\n * @param visibility defines the current visibility state\n * @returns true if one parameter is not cached\n */\n isCachedMaterialInvalid(e, t, i = 1) {\n return this._cachedEffect !== t || this._cachedMaterial !== e || this._cachedVisibility !== i;\n }\n /**\n * Gets the engine associated with the scene\n * @returns an Engine\n */\n getEngine() {\n return this._engine;\n }\n /**\n * Gets the total number of vertices rendered per frame\n * @returns the total number of vertices rendered per frame\n */\n getTotalVertices() {\n return this._totalVertices.current;\n }\n /**\n * Gets the performance counter for total vertices\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#instrumentation\n */\n get totalVerticesPerfCounter() {\n return this._totalVertices;\n }\n /**\n * Gets the total number of active indices rendered per frame (You can deduce the number of rendered triangles by dividing this number by 3)\n * @returns the total number of active indices rendered per frame\n */\n getActiveIndices() {\n return this._activeIndices.current;\n }\n /**\n * Gets the performance counter for active indices\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#instrumentation\n */\n get totalActiveIndicesPerfCounter() {\n return this._activeIndices;\n }\n /**\n * Gets the total number of active particles rendered per frame\n * @returns the total number of active particles rendered per frame\n */\n getActiveParticles() {\n return this._activeParticles.current;\n }\n /**\n * Gets the performance counter for active particles\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#instrumentation\n */\n get activeParticlesPerfCounter() {\n return this._activeParticles;\n }\n /**\n * Gets the total number of active bones rendered per frame\n * @returns the total number of active bones rendered per frame\n */\n getActiveBones() {\n return this._activeBones.current;\n }\n /**\n * Gets the performance counter for active bones\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#instrumentation\n */\n get activeBonesPerfCounter() {\n return this._activeBones;\n }\n /**\n * Gets the array of active meshes\n * @returns an array of AbstractMesh\n */\n getActiveMeshes() {\n return this._activeMeshes;\n }\n /**\n * Gets the animation ratio (which is 1.0 is the scene renders at 60fps and 2 if the scene renders at 30fps, etc.)\n * @returns a number\n */\n getAnimationRatio() {\n return this._animationRatio !== void 0 ? this._animationRatio : 1;\n }\n /**\n * Gets an unique Id for the current render phase\n * @returns a number\n */\n getRenderId() {\n return this._renderId;\n }\n /**\n * Gets an unique Id for the current frame\n * @returns a number\n */\n getFrameId() {\n return this._frameId;\n }\n /** Call this function if you want to manually increment the render Id*/\n incrementRenderId() {\n this._renderId++;\n }\n _createUbo() {\n this.setSceneUniformBuffer(this.createSceneUniformBuffer());\n }\n /**\n * Use this method to simulate a pointer move on a mesh\n * The pickResult parameter can be obtained from a scene.pick or scene.pickWithRay\n * @param pickResult pickingInfo of the object wished to simulate pointer event on\n * @param pointerEventInit pointer event state to be used when simulating the pointer event (eg. pointer id for multitouch)\n * @returns the current scene\n */\n simulatePointerMove(e, t) {\n return this._inputManager.simulatePointerMove(e, t), this;\n }\n /**\n * Use this method to simulate a pointer down on a mesh\n * The pickResult parameter can be obtained from a scene.pick or scene.pickWithRay\n * @param pickResult pickingInfo of the object wished to simulate pointer event on\n * @param pointerEventInit pointer event state to be used when simulating the pointer event (eg. pointer id for multitouch)\n * @returns the current scene\n */\n simulatePointerDown(e, t) {\n return this._inputManager.simulatePointerDown(e, t), this;\n }\n /**\n * Use this method to simulate a pointer up on a mesh\n * The pickResult parameter can be obtained from a scene.pick or scene.pickWithRay\n * @param pickResult pickingInfo of the object wished to simulate pointer event on\n * @param pointerEventInit pointer event state to be used when simulating the pointer event (eg. pointer id for multitouch)\n * @param doubleTap indicates that the pointer up event should be considered as part of a double click (false by default)\n * @returns the current scene\n */\n simulatePointerUp(e, t, i) {\n return this._inputManager.simulatePointerUp(e, t, i), this;\n }\n /**\n * Gets a boolean indicating if the current pointer event is captured (meaning that the scene has already handled the pointer down)\n * @param pointerId defines the pointer id to use in a multi-touch scenario (0 by default)\n * @returns true if the pointer was captured\n */\n isPointerCaptured(e = 0) {\n return this._inputManager.isPointerCaptured(e);\n }\n /**\n * Attach events to the canvas (To handle actionManagers triggers and raise onPointerMove, onPointerDown and onPointerUp\n * @param attachUp defines if you want to attach events to pointerup\n * @param attachDown defines if you want to attach events to pointerdown\n * @param attachMove defines if you want to attach events to pointermove\n */\n attachControl(e = !0, t = !0, i = !0) {\n this._inputManager.attachControl(e, t, i);\n }\n /** Detaches all event handlers*/\n detachControl() {\n this._inputManager.detachControl();\n }\n /**\n * This function will check if the scene can be rendered (textures are loaded, shaders are compiled)\n * Delay loaded resources are not taking in account\n * @param checkRenderTargets true to also check that the meshes rendered as part of a render target are ready (default: true)\n * @returns true if all required resources are ready\n */\n isReady(e = !0) {\n var n, o;\n if (this._isDisposed)\n return !1;\n let t;\n const i = this.getEngine(), s = i.currentRenderPassId;\n i.currentRenderPassId = ((n = this.activeCamera) == null ? void 0 : n.renderPassId) ?? s;\n let r = !0;\n for (this._pendingData.length > 0 && (r = !1), (o = this.prePassRenderer) == null || o.update(), this.useOrderIndependentTransparency && this.depthPeelingRenderer && r && (r = this.depthPeelingRenderer.isReady()), e && (this._processedMaterials.reset(), this._materialsRenderTargets.reset()), t = 0; t < this.meshes.length; t++) {\n const l = this.meshes[t];\n if (!l.subMeshes || l.subMeshes.length === 0)\n continue;\n if (!l.isReady(!0)) {\n r = !1;\n continue;\n }\n const h = l.hasThinInstances || l.getClassName() === \"InstancedMesh\" || l.getClassName() === \"InstancedLinesMesh\" || i.getCaps().instancedArrays && l.instances.length > 0;\n for (const u of this._isReadyForMeshStage)\n u.action(l, h) || (r = !1);\n if (!e)\n continue;\n const c = l.material || this.defaultMaterial;\n if (c)\n if (c._storeEffectOnSubMeshes)\n for (const u of l.subMeshes) {\n const d = u.getMaterial();\n d && d.hasRenderTargetTextures && d.getRenderTargetTextures != null && this._processedMaterials.indexOf(d) === -1 && (this._processedMaterials.push(d), this._materialsRenderTargets.concatWithNoDuplicate(d.getRenderTargetTextures()));\n }\n else\n c.hasRenderTargetTextures && c.getRenderTargetTextures != null && this._processedMaterials.indexOf(c) === -1 && (this._processedMaterials.push(c), this._materialsRenderTargets.concatWithNoDuplicate(c.getRenderTargetTextures()));\n }\n if (e)\n for (t = 0; t < this._materialsRenderTargets.length; ++t)\n this._materialsRenderTargets.data[t].isReadyForRendering() || (r = !1);\n for (t = 0; t < this.geometries.length; t++)\n this.geometries[t].delayLoadState === 2 && (r = !1);\n if (this.activeCameras && this.activeCameras.length > 0)\n for (const l of this.activeCameras)\n l.isReady(!0) || (r = !1);\n else this.activeCamera && (this.activeCamera.isReady(!0) || (r = !1));\n for (const l of this.particleSystems)\n l.isReady() || (r = !1);\n if (this.layers)\n for (const l of this.layers)\n l.isReady() || (r = !1);\n return i.areAllEffectsReady() || (r = !1), i.currentRenderPassId = s, r;\n }\n /** Resets all cached information relative to material (including effect and visibility) */\n resetCachedMaterial() {\n this._cachedMaterial = null, this._cachedEffect = null, this._cachedVisibility = null;\n }\n /**\n * Registers a function to be called before every frame render\n * @param func defines the function to register\n */\n registerBeforeRender(e) {\n this.onBeforeRenderObservable.add(e);\n }\n /**\n * Unregisters a function called before every frame render\n * @param func defines the function to unregister\n */\n unregisterBeforeRender(e) {\n this.onBeforeRenderObservable.removeCallback(e);\n }\n /**\n * Registers a function to be called after every frame render\n * @param func defines the function to register\n */\n registerAfterRender(e) {\n this.onAfterRenderObservable.add(e);\n }\n /**\n * Unregisters a function called after every frame render\n * @param func defines the function to unregister\n */\n unregisterAfterRender(e) {\n this.onAfterRenderObservable.removeCallback(e);\n }\n _executeOnceBeforeRender(e) {\n const t = () => {\n e(), setTimeout(() => {\n this.unregisterBeforeRender(t);\n });\n };\n this.registerBeforeRender(t);\n }\n /**\n * The provided function will run before render once and will be disposed afterwards.\n * A timeout delay can be provided so that the function will be executed in N ms.\n * The timeout is using the browser's native setTimeout so time percision cannot be guaranteed.\n * @param func The function to be executed.\n * @param timeout optional delay in ms\n */\n executeOnceBeforeRender(e, t) {\n t !== void 0 ? setTimeout(() => {\n this._executeOnceBeforeRender(e);\n }, t) : this._executeOnceBeforeRender(e);\n }\n /**\n * This function can help adding any object to the list of data awaited to be ready in order to check for a complete scene loading.\n * @param data defines the object to wait for\n */\n addPendingData(e) {\n this._pendingData.push(e);\n }\n /**\n * Remove a pending data from the loading list which has previously been added with addPendingData.\n * @param data defines the object to remove from the pending list\n */\n removePendingData(e) {\n const t = this.isLoading, i = this._pendingData.indexOf(e);\n i !== -1 && this._pendingData.splice(i, 1), t && !this.isLoading && this.onDataLoadedObservable.notifyObservers(this);\n }\n /**\n * Returns the number of items waiting to be loaded\n * @returns the number of items waiting to be loaded\n */\n getWaitingItemsCount() {\n return this._pendingData.length;\n }\n /**\n * Returns a boolean indicating if the scene is still loading data\n */\n get isLoading() {\n return this._pendingData.length > 0;\n }\n /**\n * Registers a function to be executed when the scene is ready\n * @param func - the function to be executed\n * @param checkRenderTargets true to also check that the meshes rendered as part of a render target are ready (default: false)\n */\n executeWhenReady(e, t = !1) {\n this.onReadyObservable.addOnce(e), this._executeWhenReadyTimeoutId === null && this._checkIsReady(t);\n }\n /**\n * Returns a promise that resolves when the scene is ready\n * @param checkRenderTargets true to also check that the meshes rendered as part of a render target are ready (default: false)\n * @returns A promise that resolves when the scene is ready\n */\n whenReadyAsync(e = !1) {\n return new Promise((t) => {\n this.executeWhenReady(() => {\n t();\n }, e);\n });\n }\n /**\n * @internal\n */\n _checkIsReady(e = !1) {\n if (this._registerTransientComponents(), this.isReady(e)) {\n this.onReadyObservable.notifyObservers(this), this.onReadyObservable.clear(), this._executeWhenReadyTimeoutId = null;\n return;\n }\n if (this._isDisposed) {\n this.onReadyObservable.clear(), this._executeWhenReadyTimeoutId = null;\n return;\n }\n this._executeWhenReadyTimeoutId = setTimeout(() => {\n this.incrementRenderId(), this._checkIsReady(e);\n }, 100);\n }\n /**\n * Gets all animatable attached to the scene\n */\n get animatables() {\n return this._activeAnimatables;\n }\n /**\n * Resets the last animation time frame.\n * Useful to override when animations start running when loading a scene for the first time.\n */\n resetLastAnimationTimeFrame() {\n this._animationTimeLast = Es.Now;\n }\n // Matrix\n /**\n * Gets the current view matrix\n * @returns a Matrix\n */\n getViewMatrix() {\n return this._viewMatrix;\n }\n /**\n * Gets the current projection matrix\n * @returns a Matrix\n */\n getProjectionMatrix() {\n return this._projectionMatrix;\n }\n /**\n * Gets the current transform matrix\n * @returns a Matrix made of View * Projection\n */\n getTransformMatrix() {\n return this._transformMatrix;\n }\n /**\n * Sets the current transform matrix\n * @param viewL defines the View matrix to use\n * @param projectionL defines the Projection matrix to use\n * @param viewR defines the right View matrix to use (if provided)\n * @param projectionR defines the right Projection matrix to use (if provided)\n */\n setTransformMatrix(e, t, i, s) {\n !i && !s && this._multiviewSceneUbo && (this._multiviewSceneUbo.dispose(), this._multiviewSceneUbo = null), !(this._viewUpdateFlag === e.updateFlag && this._projectionUpdateFlag === t.updateFlag) && (this._viewUpdateFlag = e.updateFlag, this._projectionUpdateFlag = t.updateFlag, this._viewMatrix = e, this._projectionMatrix = t, this._viewMatrix.multiplyToRef(this._projectionMatrix, this._transformMatrix), this._frustumPlanes ? _n.GetPlanesToRef(this._transformMatrix, this._frustumPlanes) : this._frustumPlanes = _n.GetPlanes(this._transformMatrix), this._multiviewSceneUbo && this._multiviewSceneUbo.useUbo ? this._updateMultiviewUbo(i, s) : this._sceneUbo.useUbo && (this._sceneUbo.updateMatrix(\"viewProjection\", this._transformMatrix), this._sceneUbo.updateMatrix(\"view\", this._viewMatrix), this._sceneUbo.updateMatrix(\"projection\", this._projectionMatrix)));\n }\n /**\n * Gets the uniform buffer used to store scene data\n * @returns a UniformBuffer\n */\n getSceneUniformBuffer() {\n return this._multiviewSceneUbo ? this._multiviewSceneUbo : this._sceneUbo;\n }\n /**\n * Creates a scene UBO\n * @param name name of the uniform buffer (optional, for debugging purpose only)\n * @returns a new ubo\n */\n createSceneUniformBuffer(e) {\n const t = new Ve(this._engine, void 0, !1, e ?? \"scene\");\n return t.addUniform(\"viewProjection\", 16), t.addUniform(\"view\", 16), t.addUniform(\"projection\", 16), t.addUniform(\"vEyePosition\", 4), t;\n }\n /**\n * Sets the scene ubo\n * @param ubo the ubo to set for the scene\n */\n setSceneUniformBuffer(e) {\n this._sceneUbo = e, this._viewUpdateFlag = -1, this._projectionUpdateFlag = -1;\n }\n /**\n * Gets an unique (relatively to the current scene) Id\n * @returns an unique number for the scene\n */\n getUniqueId() {\n return of.UniqueId;\n }\n /**\n * Add a mesh to the list of scene's meshes\n * @param newMesh defines the mesh to add\n * @param recursive if all child meshes should also be added to the scene\n */\n addMesh(e, t = !1) {\n this._blockEntityCollection || (this.meshes.push(e), e._resyncLightSources(), e.parent || e._addToSceneRootNodes(), this.onNewMeshAddedObservable.notifyObservers(e), t && e.getChildMeshes().forEach((i) => {\n this.addMesh(i);\n }));\n }\n /**\n * Remove a mesh for the list of scene's meshes\n * @param toRemove defines the mesh to remove\n * @param recursive if all child meshes should also be removed from the scene\n * @returns the index where the mesh was in the mesh list\n */\n removeMesh(e, t = !1) {\n const i = this.meshes.indexOf(e);\n return i !== -1 && (this.meshes[i] = this.meshes[this.meshes.length - 1], this.meshes.pop(), e.parent || e._removeFromSceneRootNodes()), this._inputManager._invalidateMesh(e), this.onMeshRemovedObservable.notifyObservers(e), t && e.getChildMeshes().forEach((s) => {\n this.removeMesh(s);\n }), i;\n }\n /**\n * Add a transform node to the list of scene's transform nodes\n * @param newTransformNode defines the transform node to add\n */\n addTransformNode(e) {\n this._blockEntityCollection || e.getScene() === this && e._indexInSceneTransformNodesArray !== -1 || (e._indexInSceneTransformNodesArray = this.transformNodes.length, this.transformNodes.push(e), e.parent || e._addToSceneRootNodes(), this.onNewTransformNodeAddedObservable.notifyObservers(e));\n }\n /**\n * Remove a transform node for the list of scene's transform nodes\n * @param toRemove defines the transform node to remove\n * @returns the index where the transform node was in the transform node list\n */\n removeTransformNode(e) {\n const t = e._indexInSceneTransformNodesArray;\n if (t !== -1) {\n if (t !== this.transformNodes.length - 1) {\n const i = this.transformNodes[this.transformNodes.length - 1];\n this.transformNodes[t] = i, i._indexInSceneTransformNodesArray = t;\n }\n e._indexInSceneTransformNodesArray = -1, this.transformNodes.pop(), e.parent || e._removeFromSceneRootNodes();\n }\n return this.onTransformNodeRemovedObservable.notifyObservers(e), t;\n }\n /**\n * Remove a skeleton for the list of scene's skeletons\n * @param toRemove defines the skeleton to remove\n * @returns the index where the skeleton was in the skeleton list\n */\n removeSkeleton(e) {\n const t = this.skeletons.indexOf(e);\n return t !== -1 && (this.skeletons.splice(t, 1), this.onSkeletonRemovedObservable.notifyObservers(e), this._executeActiveContainerCleanup(this._activeSkeletons)), t;\n }\n /**\n * Remove a morph target for the list of scene's morph targets\n * @param toRemove defines the morph target to remove\n * @returns the index where the morph target was in the morph target list\n */\n removeMorphTargetManager(e) {\n const t = this.morphTargetManagers.indexOf(e);\n return t !== -1 && this.morphTargetManagers.splice(t, 1), t;\n }\n /**\n * Remove a light for the list of scene's lights\n * @param toRemove defines the light to remove\n * @returns the index where the light was in the light list\n */\n removeLight(e) {\n const t = this.lights.indexOf(e);\n if (t !== -1) {\n for (const i of this.meshes)\n i._removeLightSource(e, !1);\n this.lights.splice(t, 1), this.sortLightsByPriority(), e.parent || e._removeFromSceneRootNodes();\n }\n return this.onLightRemovedObservable.notifyObservers(e), t;\n }\n /**\n * Remove a camera for the list of scene's cameras\n * @param toRemove defines the camera to remove\n * @returns the index where the camera was in the camera list\n */\n removeCamera(e) {\n const t = this.cameras.indexOf(e);\n if (t !== -1 && (this.cameras.splice(t, 1), e.parent || e._removeFromSceneRootNodes()), this.activeCameras) {\n const i = this.activeCameras.indexOf(e);\n i !== -1 && this.activeCameras.splice(i, 1);\n }\n return this.activeCamera === e && (this.cameras.length > 0 ? this.activeCamera = this.cameras[0] : this.activeCamera = null), this.onCameraRemovedObservable.notifyObservers(e), t;\n }\n /**\n * Remove a particle system for the list of scene's particle systems\n * @param toRemove defines the particle system to remove\n * @returns the index where the particle system was in the particle system list\n */\n removeParticleSystem(e) {\n const t = this.particleSystems.indexOf(e);\n return t !== -1 && (this.particleSystems.splice(t, 1), this._executeActiveContainerCleanup(this._activeParticleSystems)), t;\n }\n /**\n * Remove a animation for the list of scene's animations\n * @param toRemove defines the animation to remove\n * @returns the index where the animation was in the animation list\n */\n removeAnimation(e) {\n const t = this.animations.indexOf(e);\n return t !== -1 && this.animations.splice(t, 1), t;\n }\n /**\n * Will stop the animation of the given target\n * @param target - the target\n * @param animationName - the name of the animation to stop (all animations will be stopped if both this and targetMask are empty)\n * @param targetMask - a function that determines if the animation should be stopped based on its target (all animations will be stopped if both this and animationName are empty)\n */\n stopAnimation(e, t, i) {\n }\n /**\n * Removes the given animation group from this scene.\n * @param toRemove The animation group to remove\n * @returns The index of the removed animation group\n */\n removeAnimationGroup(e) {\n const t = this.animationGroups.indexOf(e);\n return t !== -1 && this.animationGroups.splice(t, 1), t;\n }\n /**\n * Removes the given multi-material from this scene.\n * @param toRemove The multi-material to remove\n * @returns The index of the removed multi-material\n */\n removeMultiMaterial(e) {\n const t = this.multiMaterials.indexOf(e);\n return t !== -1 && this.multiMaterials.splice(t, 1), this.onMultiMaterialRemovedObservable.notifyObservers(e), t;\n }\n /**\n * Removes the given material from this scene.\n * @param toRemove The material to remove\n * @returns The index of the removed material\n */\n removeMaterial(e) {\n const t = e._indexInSceneMaterialArray;\n if (t !== -1 && t < this.materials.length) {\n if (t !== this.materials.length - 1) {\n const i = this.materials[this.materials.length - 1];\n this.materials[t] = i, i._indexInSceneMaterialArray = t;\n }\n e._indexInSceneMaterialArray = -1, this.materials.pop();\n }\n return this.onMaterialRemovedObservable.notifyObservers(e), t;\n }\n /**\n * Removes the given action manager from this scene.\n * @deprecated\n * @param toRemove The action manager to remove\n * @returns The index of the removed action manager\n */\n removeActionManager(e) {\n const t = this.actionManagers.indexOf(e);\n return t !== -1 && this.actionManagers.splice(t, 1), t;\n }\n /**\n * Removes the given texture from this scene.\n * @param toRemove The texture to remove\n * @returns The index of the removed texture\n */\n removeTexture(e) {\n const t = this.textures.indexOf(e);\n return t !== -1 && this.textures.splice(t, 1), this.onTextureRemovedObservable.notifyObservers(e), t;\n }\n /**\n * Adds the given light to this scene\n * @param newLight The light to add\n */\n addLight(e) {\n if (!this._blockEntityCollection) {\n this.lights.push(e), this.sortLightsByPriority(), e.parent || e._addToSceneRootNodes();\n for (const t of this.meshes)\n t.lightSources.indexOf(e) === -1 && (t.lightSources.push(e), t._resyncLightSources());\n this.onNewLightAddedObservable.notifyObservers(e);\n }\n }\n /**\n * Sorts the list list based on light priorities\n */\n sortLightsByPriority() {\n this.requireLightSorting && this.lights.sort(Qt.CompareLightsPriority);\n }\n /**\n * Adds the given camera to this scene\n * @param newCamera The camera to add\n */\n addCamera(e) {\n this._blockEntityCollection || (this.cameras.push(e), this.onNewCameraAddedObservable.notifyObservers(e), e.parent || e._addToSceneRootNodes());\n }\n /**\n * Adds the given skeleton to this scene\n * @param newSkeleton The skeleton to add\n */\n addSkeleton(e) {\n this._blockEntityCollection || (this.skeletons.push(e), this.onNewSkeletonAddedObservable.notifyObservers(e));\n }\n /**\n * Adds the given particle system to this scene\n * @param newParticleSystem The particle system to add\n */\n addParticleSystem(e) {\n this._blockEntityCollection || this.particleSystems.push(e);\n }\n /**\n * Adds the given animation to this scene\n * @param newAnimation The animation to add\n */\n addAnimation(e) {\n this._blockEntityCollection || this.animations.push(e);\n }\n /**\n * Adds the given animation group to this scene.\n * @param newAnimationGroup The animation group to add\n */\n addAnimationGroup(e) {\n this._blockEntityCollection || this.animationGroups.push(e);\n }\n /**\n * Adds the given multi-material to this scene\n * @param newMultiMaterial The multi-material to add\n */\n addMultiMaterial(e) {\n this._blockEntityCollection || (this.multiMaterials.push(e), this.onNewMultiMaterialAddedObservable.notifyObservers(e));\n }\n /**\n * Adds the given material to this scene\n * @param newMaterial The material to add\n */\n addMaterial(e) {\n this._blockEntityCollection || e.getScene() === this && e._indexInSceneMaterialArray !== -1 || (e._indexInSceneMaterialArray = this.materials.length, this.materials.push(e), this.onNewMaterialAddedObservable.notifyObservers(e));\n }\n /**\n * Adds the given morph target to this scene\n * @param newMorphTargetManager The morph target to add\n */\n addMorphTargetManager(e) {\n this._blockEntityCollection || this.morphTargetManagers.push(e);\n }\n /**\n * Adds the given geometry to this scene\n * @param newGeometry The geometry to add\n */\n addGeometry(e) {\n this._blockEntityCollection || (this._geometriesByUniqueId && (this._geometriesByUniqueId[e.uniqueId] = this.geometries.length), this.geometries.push(e));\n }\n /**\n * Adds the given action manager to this scene\n * @deprecated\n * @param newActionManager The action manager to add\n */\n addActionManager(e) {\n this.actionManagers.push(e);\n }\n /**\n * Adds the given texture to this scene.\n * @param newTexture The texture to add\n */\n addTexture(e) {\n this._blockEntityCollection || (this.textures.push(e), this.onNewTextureAddedObservable.notifyObservers(e));\n }\n /**\n * Switch active camera\n * @param newCamera defines the new active camera\n * @param attachControl defines if attachControl must be called for the new active camera (default: true)\n */\n switchActiveCamera(e, t = !0) {\n this._engine.getInputElement() && (this.activeCamera && this.activeCamera.detachControl(), this.activeCamera = e, t && e.attachControl());\n }\n /**\n * sets the active camera of the scene using its Id\n * @param id defines the camera's Id\n * @returns the new active camera or null if none found.\n */\n setActiveCameraById(e) {\n const t = this.getCameraById(e);\n return t ? (this.activeCamera = t, t) : null;\n }\n /**\n * sets the active camera of the scene using its name\n * @param name defines the camera's name\n * @returns the new active camera or null if none found.\n */\n setActiveCameraByName(e) {\n const t = this.getCameraByName(e);\n return t ? (this.activeCamera = t, t) : null;\n }\n /**\n * get an animation group using its name\n * @param name defines the material's name\n * @returns the animation group or null if none found.\n */\n getAnimationGroupByName(e) {\n for (let t = 0; t < this.animationGroups.length; t++)\n if (this.animationGroups[t].name === e)\n return this.animationGroups[t];\n return null;\n }\n _getMaterial(e, t) {\n for (let i = 0; i < this.materials.length; i++) {\n const s = this.materials[i];\n if (t(s))\n return s;\n }\n if (e)\n for (let i = 0; i < this.multiMaterials.length; i++) {\n const s = this.multiMaterials[i];\n if (t(s))\n return s;\n }\n return null;\n }\n /**\n * Get a material using its unique id\n * @param uniqueId defines the material's unique id\n * @param allowMultiMaterials determines whether multimaterials should be considered\n * @returns the material or null if none found.\n */\n getMaterialByUniqueID(e, t = !1) {\n return this._getMaterial(t, (i) => i.uniqueId === e);\n }\n /**\n * get a material using its id\n * @param id defines the material's Id\n * @param allowMultiMaterials determines whether multimaterials should be considered\n * @returns the material or null if none found.\n */\n getMaterialById(e, t = !1) {\n return this._getMaterial(t, (i) => i.id === e);\n }\n /**\n * Gets a material using its name\n * @param name defines the material's name\n * @param allowMultiMaterials determines whether multimaterials should be considered\n * @returns the material or null if none found.\n */\n getMaterialByName(e, t = !1) {\n return this._getMaterial(t, (i) => i.name === e);\n }\n /**\n * Gets a last added material using a given id\n * @param id defines the material's id\n * @param allowMultiMaterials determines whether multimaterials should be considered\n * @returns the last material with the given id or null if none found.\n */\n getLastMaterialById(e, t = !1) {\n for (let i = this.materials.length - 1; i >= 0; i--)\n if (this.materials[i].id === e)\n return this.materials[i];\n if (t) {\n for (let i = this.multiMaterials.length - 1; i >= 0; i--)\n if (this.multiMaterials[i].id === e)\n return this.multiMaterials[i];\n }\n return null;\n }\n /**\n * Get a texture using its unique id\n * @param uniqueId defines the texture's unique id\n * @returns the texture or null if none found.\n */\n getTextureByUniqueId(e) {\n for (let t = 0; t < this.textures.length; t++)\n if (this.textures[t].uniqueId === e)\n return this.textures[t];\n return null;\n }\n /**\n * Gets a texture using its name\n * @param name defines the texture's name\n * @returns the texture or null if none found.\n */\n getTextureByName(e) {\n for (let t = 0; t < this.textures.length; t++)\n if (this.textures[t].name === e)\n return this.textures[t];\n return null;\n }\n /**\n * Gets a camera using its Id\n * @param id defines the Id to look for\n * @returns the camera or null if not found\n */\n getCameraById(e) {\n for (let t = 0; t < this.cameras.length; t++)\n if (this.cameras[t].id === e)\n return this.cameras[t];\n return null;\n }\n /**\n * Gets a camera using its unique Id\n * @param uniqueId defines the unique Id to look for\n * @returns the camera or null if not found\n */\n getCameraByUniqueId(e) {\n for (let t = 0; t < this.cameras.length; t++)\n if (this.cameras[t].uniqueId === e)\n return this.cameras[t];\n return null;\n }\n /**\n * Gets a camera using its name\n * @param name defines the camera's name\n * @returns the camera or null if none found.\n */\n getCameraByName(e) {\n for (let t = 0; t < this.cameras.length; t++)\n if (this.cameras[t].name === e)\n return this.cameras[t];\n return null;\n }\n /**\n * Gets a bone using its Id\n * @param id defines the bone's Id\n * @returns the bone or null if not found\n */\n getBoneById(e) {\n for (let t = 0; t < this.skeletons.length; t++) {\n const i = this.skeletons[t];\n for (let s = 0; s < i.bones.length; s++)\n if (i.bones[s].id === e)\n return i.bones[s];\n }\n return null;\n }\n /**\n * Gets a bone using its id\n * @param name defines the bone's name\n * @returns the bone or null if not found\n */\n getBoneByName(e) {\n for (let t = 0; t < this.skeletons.length; t++) {\n const i = this.skeletons[t];\n for (let s = 0; s < i.bones.length; s++)\n if (i.bones[s].name === e)\n return i.bones[s];\n }\n return null;\n }\n /**\n * Gets a light node using its name\n * @param name defines the light's name\n * @returns the light or null if none found.\n */\n getLightByName(e) {\n for (let t = 0; t < this.lights.length; t++)\n if (this.lights[t].name === e)\n return this.lights[t];\n return null;\n }\n /**\n * Gets a light node using its Id\n * @param id defines the light's Id\n * @returns the light or null if none found.\n */\n getLightById(e) {\n for (let t = 0; t < this.lights.length; t++)\n if (this.lights[t].id === e)\n return this.lights[t];\n return null;\n }\n /**\n * Gets a light node using its scene-generated unique Id\n * @param uniqueId defines the light's unique Id\n * @returns the light or null if none found.\n */\n getLightByUniqueId(e) {\n for (let t = 0; t < this.lights.length; t++)\n if (this.lights[t].uniqueId === e)\n return this.lights[t];\n return null;\n }\n /**\n * Gets a particle system by Id\n * @param id defines the particle system Id\n * @returns the corresponding system or null if none found\n */\n getParticleSystemById(e) {\n for (let t = 0; t < this.particleSystems.length; t++)\n if (this.particleSystems[t].id === e)\n return this.particleSystems[t];\n return null;\n }\n /**\n * Gets a geometry using its Id\n * @param id defines the geometry's Id\n * @returns the geometry or null if none found.\n */\n getGeometryById(e) {\n for (let t = 0; t < this.geometries.length; t++)\n if (this.geometries[t].id === e)\n return this.geometries[t];\n return null;\n }\n _getGeometryByUniqueId(e) {\n if (this._geometriesByUniqueId) {\n const t = this._geometriesByUniqueId[e];\n if (t !== void 0)\n return this.geometries[t];\n } else\n for (let t = 0; t < this.geometries.length; t++)\n if (this.geometries[t].uniqueId === e)\n return this.geometries[t];\n return null;\n }\n /**\n * Add a new geometry to this scene\n * @param geometry defines the geometry to be added to the scene.\n * @param force defines if the geometry must be pushed even if a geometry with this id already exists\n * @returns a boolean defining if the geometry was added or not\n */\n pushGeometry(e, t) {\n return !t && this._getGeometryByUniqueId(e.uniqueId) ? !1 : (this.addGeometry(e), this.onNewGeometryAddedObservable.notifyObservers(e), !0);\n }\n /**\n * Removes an existing geometry\n * @param geometry defines the geometry to be removed from the scene\n * @returns a boolean defining if the geometry was removed or not\n */\n removeGeometry(e) {\n let t;\n if (this._geometriesByUniqueId) {\n if (t = this._geometriesByUniqueId[e.uniqueId], t === void 0)\n return !1;\n } else if (t = this.geometries.indexOf(e), t < 0)\n return !1;\n if (t !== this.geometries.length - 1) {\n const i = this.geometries[this.geometries.length - 1];\n i && (this.geometries[t] = i, this._geometriesByUniqueId && (this._geometriesByUniqueId[i.uniqueId] = t));\n }\n return this._geometriesByUniqueId && (this._geometriesByUniqueId[e.uniqueId] = void 0), this.geometries.pop(), this.onGeometryRemovedObservable.notifyObservers(e), !0;\n }\n /**\n * Gets the list of geometries attached to the scene\n * @returns an array of Geometry\n */\n getGeometries() {\n return this.geometries;\n }\n /**\n * Gets the first added mesh found of a given Id\n * @param id defines the Id to search for\n * @returns the mesh found or null if not found at all\n */\n getMeshById(e) {\n for (let t = 0; t < this.meshes.length; t++)\n if (this.meshes[t].id === e)\n return this.meshes[t];\n return null;\n }\n /**\n * Gets a list of meshes using their Id\n * @param id defines the Id to search for\n * @returns a list of meshes\n */\n getMeshesById(e) {\n return this.meshes.filter(function(t) {\n return t.id === e;\n });\n }\n /**\n * Gets the first added transform node found of a given Id\n * @param id defines the Id to search for\n * @returns the found transform node or null if not found at all.\n */\n getTransformNodeById(e) {\n for (let t = 0; t < this.transformNodes.length; t++)\n if (this.transformNodes[t].id === e)\n return this.transformNodes[t];\n return null;\n }\n /**\n * Gets a transform node with its auto-generated unique Id\n * @param uniqueId defines the unique Id to search for\n * @returns the found transform node or null if not found at all.\n */\n getTransformNodeByUniqueId(e) {\n for (let t = 0; t < this.transformNodes.length; t++)\n if (this.transformNodes[t].uniqueId === e)\n return this.transformNodes[t];\n return null;\n }\n /**\n * Gets a list of transform nodes using their Id\n * @param id defines the Id to search for\n * @returns a list of transform nodes\n */\n getTransformNodesById(e) {\n return this.transformNodes.filter(function(t) {\n return t.id === e;\n });\n }\n /**\n * Gets a mesh with its auto-generated unique Id\n * @param uniqueId defines the unique Id to search for\n * @returns the found mesh or null if not found at all.\n */\n getMeshByUniqueId(e) {\n for (let t = 0; t < this.meshes.length; t++)\n if (this.meshes[t].uniqueId === e)\n return this.meshes[t];\n return null;\n }\n /**\n * Gets a the last added mesh using a given Id\n * @param id defines the Id to search for\n * @returns the found mesh or null if not found at all.\n */\n getLastMeshById(e) {\n for (let t = this.meshes.length - 1; t >= 0; t--)\n if (this.meshes[t].id === e)\n return this.meshes[t];\n return null;\n }\n /**\n * Gets a the last transform node using a given Id\n * @param id defines the Id to search for\n * @returns the found mesh or null if not found at all.\n */\n getLastTransformNodeById(e) {\n for (let t = this.transformNodes.length - 1; t >= 0; t--)\n if (this.transformNodes[t].id === e)\n return this.transformNodes[t];\n return null;\n }\n /**\n * Gets a the last added node (Mesh, Camera, Light) using a given Id\n * @param id defines the Id to search for\n * @returns the found node or null if not found at all\n */\n getLastEntryById(e) {\n let t;\n for (t = this.meshes.length - 1; t >= 0; t--)\n if (this.meshes[t].id === e)\n return this.meshes[t];\n for (t = this.transformNodes.length - 1; t >= 0; t--)\n if (this.transformNodes[t].id === e)\n return this.transformNodes[t];\n for (t = this.cameras.length - 1; t >= 0; t--)\n if (this.cameras[t].id === e)\n return this.cameras[t];\n for (t = this.lights.length - 1; t >= 0; t--)\n if (this.lights[t].id === e)\n return this.lights[t];\n return null;\n }\n /**\n * Gets a node (Mesh, Camera, Light) using a given Id\n * @param id defines the Id to search for\n * @returns the found node or null if not found at all\n */\n getNodeById(e) {\n const t = this.getMeshById(e);\n if (t)\n return t;\n const i = this.getTransformNodeById(e);\n if (i)\n return i;\n const s = this.getLightById(e);\n if (s)\n return s;\n const r = this.getCameraById(e);\n if (r)\n return r;\n const n = this.getBoneById(e);\n return n || null;\n }\n /**\n * Gets a node (Mesh, Camera, Light) using a given name\n * @param name defines the name to search for\n * @returns the found node or null if not found at all.\n */\n getNodeByName(e) {\n const t = this.getMeshByName(e);\n if (t)\n return t;\n const i = this.getTransformNodeByName(e);\n if (i)\n return i;\n const s = this.getLightByName(e);\n if (s)\n return s;\n const r = this.getCameraByName(e);\n if (r)\n return r;\n const n = this.getBoneByName(e);\n return n || null;\n }\n /**\n * Gets a mesh using a given name\n * @param name defines the name to search for\n * @returns the found mesh or null if not found at all.\n */\n getMeshByName(e) {\n for (let t = 0; t < this.meshes.length; t++)\n if (this.meshes[t].name === e)\n return this.meshes[t];\n return null;\n }\n /**\n * Gets a transform node using a given name\n * @param name defines the name to search for\n * @returns the found transform node or null if not found at all.\n */\n getTransformNodeByName(e) {\n for (let t = 0; t < this.transformNodes.length; t++)\n if (this.transformNodes[t].name === e)\n return this.transformNodes[t];\n return null;\n }\n /**\n * Gets a skeleton using a given Id (if many are found, this function will pick the last one)\n * @param id defines the Id to search for\n * @returns the found skeleton or null if not found at all.\n */\n getLastSkeletonById(e) {\n for (let t = this.skeletons.length - 1; t >= 0; t--)\n if (this.skeletons[t].id === e)\n return this.skeletons[t];\n return null;\n }\n /**\n * Gets a skeleton using a given auto generated unique id\n * @param uniqueId defines the unique id to search for\n * @returns the found skeleton or null if not found at all.\n */\n getSkeletonByUniqueId(e) {\n for (let t = 0; t < this.skeletons.length; t++)\n if (this.skeletons[t].uniqueId === e)\n return this.skeletons[t];\n return null;\n }\n /**\n * Gets a skeleton using a given id (if many are found, this function will pick the first one)\n * @param id defines the id to search for\n * @returns the found skeleton or null if not found at all.\n */\n getSkeletonById(e) {\n for (let t = 0; t < this.skeletons.length; t++)\n if (this.skeletons[t].id === e)\n return this.skeletons[t];\n return null;\n }\n /**\n * Gets a skeleton using a given name\n * @param name defines the name to search for\n * @returns the found skeleton or null if not found at all.\n */\n getSkeletonByName(e) {\n for (let t = 0; t < this.skeletons.length; t++)\n if (this.skeletons[t].name === e)\n return this.skeletons[t];\n return null;\n }\n /**\n * Gets a morph target manager using a given id (if many are found, this function will pick the last one)\n * @param id defines the id to search for\n * @returns the found morph target manager or null if not found at all.\n */\n getMorphTargetManagerById(e) {\n for (let t = 0; t < this.morphTargetManagers.length; t++)\n if (this.morphTargetManagers[t].uniqueId === e)\n return this.morphTargetManagers[t];\n return null;\n }\n /**\n * Gets a morph target using a given id (if many are found, this function will pick the first one)\n * @param id defines the id to search for\n * @returns the found morph target or null if not found at all.\n */\n getMorphTargetById(e) {\n for (let t = 0; t < this.morphTargetManagers.length; ++t) {\n const i = this.morphTargetManagers[t];\n for (let s = 0; s < i.numTargets; ++s) {\n const r = i.getTarget(s);\n if (r.id === e)\n return r;\n }\n }\n return null;\n }\n /**\n * Gets a morph target using a given name (if many are found, this function will pick the first one)\n * @param name defines the name to search for\n * @returns the found morph target or null if not found at all.\n */\n getMorphTargetByName(e) {\n for (let t = 0; t < this.morphTargetManagers.length; ++t) {\n const i = this.morphTargetManagers[t];\n for (let s = 0; s < i.numTargets; ++s) {\n const r = i.getTarget(s);\n if (r.name === e)\n return r;\n }\n }\n return null;\n }\n /**\n * Gets a post process using a given name (if many are found, this function will pick the first one)\n * @param name defines the name to search for\n * @returns the found post process or null if not found at all.\n */\n getPostProcessByName(e) {\n for (let t = 0; t < this.postProcesses.length; ++t) {\n const i = this.postProcesses[t];\n if (i.name === e)\n return i;\n }\n return null;\n }\n /**\n * Gets a boolean indicating if the given mesh is active\n * @param mesh defines the mesh to look for\n * @returns true if the mesh is in the active list\n */\n isActiveMesh(e) {\n return this._activeMeshes.indexOf(e) !== -1;\n }\n /**\n * Return a unique id as a string which can serve as an identifier for the scene\n */\n get uid() {\n return this._uid || (this._uid = J.RandomId()), this._uid;\n }\n /**\n * Add an externally attached data from its key.\n * This method call will fail and return false, if such key already exists.\n * If you don't care and just want to get the data no matter what, use the more convenient getOrAddExternalDataWithFactory() method.\n * @param key the unique key that identifies the data\n * @param data the data object to associate to the key for this Engine instance\n * @returns true if no such key were already present and the data was added successfully, false otherwise\n */\n addExternalData(e, t) {\n return this._externalData || (this._externalData = new Tg()), this._externalData.add(e, t);\n }\n /**\n * Get an externally attached data from its key\n * @param key the unique key that identifies the data\n * @returns the associated data, if present (can be null), or undefined if not present\n */\n getExternalData(e) {\n return this._externalData ? this._externalData.get(e) : null;\n }\n /**\n * Get an externally attached data from its key, create it using a factory if it's not already present\n * @param key the unique key that identifies the data\n * @param factory the factory that will be called to create the instance if and only if it doesn't exists\n * @returns the associated data, can be null if the factory returned null.\n */\n getOrAddExternalDataWithFactory(e, t) {\n return this._externalData || (this._externalData = new Tg()), this._externalData.getOrAddWithFactory(e, t);\n }\n /**\n * Remove an externally attached data from the Engine instance\n * @param key the unique key that identifies the data\n * @returns true if the data was successfully removed, false if it doesn't exist\n */\n removeExternalData(e) {\n return this._externalData.remove(e);\n }\n _evaluateSubMesh(e, t, i, s) {\n if (s || e.isInFrustum(this._frustumPlanes)) {\n for (const n of this._evaluateSubMeshStage)\n n.action(t, e);\n const r = e.getMaterial();\n r != null && (r.hasRenderTargetTextures && r.getRenderTargetTextures != null && this._processedMaterials.indexOf(r) === -1 && (this._processedMaterials.push(r), this._materialsRenderTargets.concatWithNoDuplicate(r.getRenderTargetTextures())), this._renderingManager.dispatch(e, t, r));\n }\n }\n /**\n * Clear the processed materials smart array preventing retention point in material dispose.\n */\n freeProcessedMaterials() {\n this._processedMaterials.dispose();\n }\n /** Gets or sets a boolean blocking all the calls to freeActiveMeshes and freeRenderingGroups\n * It can be used in order to prevent going through methods freeRenderingGroups and freeActiveMeshes several times to improve performance\n * when disposing several meshes in a row or a hierarchy of meshes.\n * When used, it is the responsibility of the user to blockfreeActiveMeshesAndRenderingGroups back to false.\n */\n get blockfreeActiveMeshesAndRenderingGroups() {\n return this._preventFreeActiveMeshesAndRenderingGroups;\n }\n set blockfreeActiveMeshesAndRenderingGroups(e) {\n this._preventFreeActiveMeshesAndRenderingGroups !== e && (e && (this.freeActiveMeshes(), this.freeRenderingGroups()), this._preventFreeActiveMeshesAndRenderingGroups = e);\n }\n /**\n * Clear the active meshes smart array preventing retention point in mesh dispose.\n */\n freeActiveMeshes() {\n if (!this.blockfreeActiveMeshesAndRenderingGroups && (this._activeMeshes.dispose(), this.activeCamera && this.activeCamera._activeMeshes && this.activeCamera._activeMeshes.dispose(), this.activeCameras))\n for (let e = 0; e < this.activeCameras.length; e++) {\n const t = this.activeCameras[e];\n t && t._activeMeshes && t._activeMeshes.dispose();\n }\n }\n /**\n * Clear the info related to rendering groups preventing retention points during dispose.\n */\n freeRenderingGroups() {\n if (!this.blockfreeActiveMeshesAndRenderingGroups && (this._renderingManager && this._renderingManager.freeRenderingGroups(), this.textures))\n for (let e = 0; e < this.textures.length; e++) {\n const t = this.textures[e];\n t && t.renderList && t.freeRenderingGroups();\n }\n }\n /** @internal */\n _isInIntermediateRendering() {\n return this._intermediateRendering;\n }\n /**\n * Use this function to stop evaluating active meshes. The current list will be keep alive between frames\n * @param skipEvaluateActiveMeshes defines an optional boolean indicating that the evaluate active meshes step must be completely skipped\n * @param onSuccess optional success callback\n * @param onError optional error callback\n * @param freezeMeshes defines if meshes should be frozen (true by default)\n * @param keepFrustumCulling defines if you want to keep running the frustum clipping (false by default)\n * @returns the current scene\n */\n freezeActiveMeshes(e = !1, t, i, s = !0, r = !1) {\n return this.executeWhenReady(() => {\n if (!this.activeCamera) {\n i && i(\"No active camera found\");\n return;\n }\n if (this._frustumPlanes || this.updateTransformMatrix(), this._evaluateActiveMeshes(), this._activeMeshesFrozen = !0, this._activeMeshesFrozenButKeepClipping = r, this._skipEvaluateActiveMeshesCompletely = e, s)\n for (let n = 0; n < this._activeMeshes.length; n++)\n this._activeMeshes.data[n]._freeze();\n t && t();\n }), this;\n }\n /**\n * Use this function to restart evaluating active meshes on every frame\n * @returns the current scene\n */\n unfreezeActiveMeshes() {\n for (let e = 0; e < this.meshes.length; e++) {\n const t = this.meshes[e];\n t._internalAbstractMeshDataInfo && (t._internalAbstractMeshDataInfo._isActive = !1);\n }\n for (let e = 0; e < this._activeMeshes.length; e++)\n this._activeMeshes.data[e]._unFreeze();\n return this._activeMeshesFrozen = !1, this;\n }\n _executeActiveContainerCleanup(e) {\n !(this._engine.snapshotRendering && this._engine.snapshotRenderingMode === 1) && this._activeMeshesFrozen && this._activeMeshes.length || this.onBeforeRenderObservable.addOnce(() => e.dispose());\n }\n _evaluateActiveMeshes() {\n var i;\n if (this._engine.snapshotRendering && this._engine.snapshotRenderingMode === 1) {\n this._activeMeshes.length > 0 && ((i = this.activeCamera) == null || i._activeMeshes.reset(), this._activeMeshes.reset(), this._renderingManager.reset(), this._processedMaterials.reset(), this._activeParticleSystems.reset(), this._activeSkeletons.reset(), this._softwareSkinnedMeshes.reset());\n return;\n }\n if (this._activeMeshesFrozen && this._activeMeshes.length) {\n if (!this._skipEvaluateActiveMeshesCompletely) {\n const s = this._activeMeshes.length;\n for (let r = 0; r < s; r++)\n this._activeMeshes.data[r].computeWorldMatrix();\n }\n if (this._activeParticleSystems) {\n const s = this._activeParticleSystems.length;\n for (let r = 0; r < s; r++)\n this._activeParticleSystems.data[r].animate();\n }\n this._renderingManager.resetSprites();\n return;\n }\n if (!this.activeCamera)\n return;\n this.onBeforeActiveMeshesEvaluationObservable.notifyObservers(this), this.activeCamera._activeMeshes.reset(), this._activeMeshes.reset(), this._renderingManager.reset(), this._processedMaterials.reset(), this._activeParticleSystems.reset(), this._activeSkeletons.reset(), this._softwareSkinnedMeshes.reset(), this._materialsRenderTargets.reset();\n for (const s of this._beforeEvaluateActiveMeshStage)\n s.action();\n const e = this.getActiveMeshCandidates(), t = e.length;\n for (let s = 0; s < t; s++) {\n const r = e.data[s];\n if (r._internalAbstractMeshDataInfo._currentLODIsUpToDate = !1, r.isBlocked || (this._totalVertices.addCount(r.getTotalVertices(), !1), !r.isReady() || !r.isEnabled() || r.scaling.hasAZeroComponent))\n continue;\n r.computeWorldMatrix(), r.actionManager && r.actionManager.hasSpecificTriggers2(12, 13) && this._meshesForIntersections.pushNoDuplicate(r);\n let n = this.customLODSelector ? this.customLODSelector(r, this.activeCamera) : r.getLOD(this.activeCamera);\n if (r._internalAbstractMeshDataInfo._currentLOD = n, r._internalAbstractMeshDataInfo._currentLODIsUpToDate = !0, n != null && (n !== r && n.billboardMode !== 0 && n.computeWorldMatrix(), r._preActivate(), r.isVisible && r.visibility > 0 && r.layerMask & this.activeCamera.layerMask && (this._skipFrustumClipping || r.alwaysSelectAsActiveMesh || r.isInFrustum(this._frustumPlanes)))) {\n this._activeMeshes.push(r), this.activeCamera._activeMeshes.push(r), n !== r && n._activate(this._renderId, !1);\n for (const o of this._preActiveMeshStage)\n o.action(r);\n r._activate(this._renderId, !1) && (r.isAnInstance ? r._internalAbstractMeshDataInfo._actAsRegularMesh && (n = r) : n._internalAbstractMeshDataInfo._onlyForInstances = !1, n._internalAbstractMeshDataInfo._isActive = !0, this._activeMesh(r, n)), r._postActivate();\n }\n }\n if (this.onAfterActiveMeshesEvaluationObservable.notifyObservers(this), this.particlesEnabled) {\n this.onBeforeParticlesRenderingObservable.notifyObservers(this);\n for (let s = 0; s < this.particleSystems.length; s++) {\n const r = this.particleSystems[s];\n if (!r.isStarted() || !r.emitter)\n continue;\n const n = r.emitter;\n (!n.position || n.isEnabled()) && (this._activeParticleSystems.push(r), r.animate(), this._renderingManager.dispatchParticles(r));\n }\n this.onAfterParticlesRenderingObservable.notifyObservers(this);\n }\n }\n _activeMesh(e, t) {\n this._skeletonsEnabled && t.skeleton !== null && t.skeleton !== void 0 && (this._activeSkeletons.pushNoDuplicate(t.skeleton) && (t.skeleton.prepare(), this._activeBones.addCount(t.skeleton.bones.length, !1)), t.computeBonesUsingShaders || this._softwareSkinnedMeshes.pushNoDuplicate(t));\n let i = e.hasInstances || e.isAnInstance || this.dispatchAllSubMeshesOfActiveMeshes || this._skipFrustumClipping || t.alwaysSelectAsActiveMesh;\n if (t && t.subMeshes && t.subMeshes.length > 0) {\n const s = this.getActiveSubMeshCandidates(t), r = s.length;\n i = i || r === 1;\n for (let n = 0; n < r; n++) {\n const o = s.data[n];\n this._evaluateSubMesh(o, t, e, i);\n }\n }\n }\n /**\n * Update the transform matrix to update from the current active camera\n * @param force defines a boolean used to force the update even if cache is up to date\n */\n updateTransformMatrix(e) {\n const t = this.activeCamera;\n if (t)\n if (t._renderingMultiview) {\n const i = t._rigCameras[0], s = t._rigCameras[1];\n this.setTransformMatrix(i.getViewMatrix(), i.getProjectionMatrix(e), s.getViewMatrix(), s.getProjectionMatrix(e));\n } else\n this.setTransformMatrix(t.getViewMatrix(), t.getProjectionMatrix(e));\n }\n _bindFrameBuffer(e, t = !0) {\n e && e._multiviewTexture ? e._multiviewTexture._bindFrameBuffer() : e && e.outputRenderTarget ? e.outputRenderTarget._bindFrameBuffer() : this._engine._currentFrameBufferIsDefaultFrameBuffer() || this._engine.restoreDefaultFramebuffer(), t && this._clearFrameBuffer(e);\n }\n _clearFrameBuffer(e) {\n if (!(e && e._multiviewTexture)) if (e && e.outputRenderTarget && !e._renderingMultiview) {\n const t = e.outputRenderTarget;\n t.onClearObservable.hasObservers() ? t.onClearObservable.notifyObservers(this._engine) : !t.skipInitialClear && !e.isRightCamera && (this.autoClear && this._engine.clear(t.clearColor || this.clearColor, !t._cleared, !0, !0), t._cleared = !0);\n } else\n this._defaultFrameBufferCleared ? this._engine.clear(null, !1, !0, !0) : (this._defaultFrameBufferCleared = !0, this._clear());\n }\n /**\n * @internal\n */\n _renderForCamera(e, t, i = !0) {\n var n;\n if (e && e._skipRendering)\n return;\n const s = this._engine;\n if (this._activeCamera = e, !this.activeCamera)\n throw new Error(\"Active camera not set\");\n if (s.setViewport(this.activeCamera.viewport), this.resetCachedMaterial(), this._renderId++, !this.prePass && i) {\n let o = !0;\n e._renderingMultiview && e.outputRenderTarget && (o = e.outputRenderTarget.skipInitialClear, this.autoClear && (this._defaultFrameBufferCleared = !1, e.outputRenderTarget.skipInitialClear = !1)), this._bindFrameBuffer(this._activeCamera), e._renderingMultiview && e.outputRenderTarget && (e.outputRenderTarget.skipInitialClear = o);\n }\n this.updateTransformMatrix(), this.onBeforeCameraRenderObservable.notifyObservers(this.activeCamera), this._evaluateActiveMeshes();\n for (let o = 0; o < this._softwareSkinnedMeshes.length; o++) {\n const l = this._softwareSkinnedMeshes.data[o];\n l.applySkeleton(l.skeleton);\n }\n this.onBeforeRenderTargetsRenderObservable.notifyObservers(this), this._renderTargets.concatWithNoDuplicate(this._materialsRenderTargets), e.customRenderTargets && e.customRenderTargets.length > 0 && this._renderTargets.concatWithNoDuplicate(e.customRenderTargets), t && t.customRenderTargets && t.customRenderTargets.length > 0 && this._renderTargets.concatWithNoDuplicate(t.customRenderTargets), this.environmentTexture && this.environmentTexture.isRenderTarget && this._renderTargets.pushNoDuplicate(this.environmentTexture);\n for (const o of this._gatherActiveCameraRenderTargetsStage)\n o.action(this._renderTargets);\n let r = !1;\n if (this.renderTargetsEnabled) {\n if (this._intermediateRendering = !0, this._renderTargets.length > 0) {\n J.StartPerformanceCounter(\"Render targets\", this._renderTargets.length > 0);\n for (let o = 0; o < this._renderTargets.length; o++) {\n const l = this._renderTargets.data[o];\n if (l._shouldRender()) {\n this._renderId++;\n const h = l.activeCamera && l.activeCamera !== this.activeCamera;\n l.render(h, this.dumpNextRenderTargets), r = !0;\n }\n }\n J.EndPerformanceCounter(\"Render targets\", this._renderTargets.length > 0), this._renderId++;\n }\n for (const o of this._cameraDrawRenderTargetStage)\n r = o.action(this.activeCamera) || r;\n this._intermediateRendering = !1;\n }\n this._engine.currentRenderPassId = ((n = e.outputRenderTarget) == null ? void 0 : n.renderPassId) ?? e.renderPassId ?? 0, r && !this.prePass && (this._bindFrameBuffer(this._activeCamera, !1), this.updateTransformMatrix()), this.onAfterRenderTargetsRenderObservable.notifyObservers(this), this.postProcessManager && !e._multiviewTexture && !this.prePass && this.postProcessManager._prepareFrame();\n for (const o of this._beforeCameraDrawStage)\n o.action(this.activeCamera);\n this.onBeforeDrawPhaseObservable.notifyObservers(this), s.snapshotRendering && s.snapshotRenderingMode === 1 && this.finalizeSceneUbo(), this._renderingManager.render(null, null, !0, !0), this.onAfterDrawPhaseObservable.notifyObservers(this);\n for (const o of this._afterCameraDrawStage)\n o.action(this.activeCamera);\n if (this.postProcessManager && !e._multiviewTexture) {\n const o = e.outputRenderTarget ? e.outputRenderTarget.renderTarget : void 0;\n this.postProcessManager._finalizeFrame(e.isIntermediate, o);\n }\n for (const o of this._afterCameraPostProcessStage)\n o.action(this.activeCamera);\n this._renderTargets.reset(), this.onAfterCameraRenderObservable.notifyObservers(this.activeCamera);\n }\n _processSubCameras(e, t = !0) {\n if (e.cameraRigMode === 0 || e._renderingMultiview) {\n e._renderingMultiview && !this._multiviewSceneUbo && this._createMultiviewUbo(), this._renderForCamera(e, void 0, t), this.onAfterRenderCameraObservable.notifyObservers(e);\n return;\n }\n if (e._useMultiviewToSingleView)\n this._renderMultiviewToSingleView(e);\n else {\n this.onBeforeCameraRenderObservable.notifyObservers(e);\n for (let i = 0; i < e._rigCameras.length; i++)\n this._renderForCamera(e._rigCameras[i], e);\n }\n this._activeCamera = e, this.updateTransformMatrix(), this.onAfterRenderCameraObservable.notifyObservers(e);\n }\n _checkIntersections() {\n for (let e = 0; e < this._meshesForIntersections.length; e++) {\n const t = this._meshesForIntersections.data[e];\n if (t.actionManager)\n for (let i = 0; t.actionManager && i < t.actionManager.actions.length; i++) {\n const s = t.actionManager.actions[i];\n if (s.trigger === 12 || s.trigger === 13) {\n const r = s.getTriggerParameter(), n = r.mesh ? r.mesh : r, o = n.intersectsMesh(t, r.usePreciseIntersection), l = t._intersectionsInProgress.indexOf(n);\n o && l === -1 ? s.trigger === 12 ? (s._executeCurrent(Mi.CreateNew(t, void 0, n)), t._intersectionsInProgress.push(n)) : s.trigger === 13 && t._intersectionsInProgress.push(n) : !o && l > -1 && (s.trigger === 13 && s._executeCurrent(Mi.CreateNew(t, void 0, n)), (!t.actionManager.hasSpecificTrigger(13, (h) => {\n const c = h.mesh ? h.mesh : h;\n return n === c;\n }) || s.trigger === 13) && t._intersectionsInProgress.splice(l, 1));\n }\n }\n }\n }\n /**\n * @internal\n */\n _advancePhysicsEngineStep(e) {\n }\n /** @internal */\n _animate(e) {\n }\n /** Execute all animations (for a frame) */\n animate() {\n if (this._engine.isDeterministicLockStep()) {\n let e = Math.max(De.MinDeltaTime, Math.min(this._engine.getDeltaTime(), De.MaxDeltaTime)) + this._timeAccumulator;\n const t = this._engine.getTimeStep(), i = 1e3 / t / 1e3;\n let s = 0;\n const r = this._engine.getLockstepMaxSteps();\n let n = Math.floor(e / t);\n for (n = Math.min(n, r); e > 0 && s < n; )\n this.onBeforeStepObservable.notifyObservers(this), this._animationRatio = t * i, this._animate(t), this.onAfterAnimationsObservable.notifyObservers(this), this.physicsEnabled && this._advancePhysicsEngineStep(t), this.onAfterStepObservable.notifyObservers(this), this._currentStepId++, s++, e -= t;\n this._timeAccumulator = e < 0 ? 0 : e;\n } else {\n const e = this.useConstantAnimationDeltaTime ? 16 : Math.max(De.MinDeltaTime, Math.min(this._engine.getDeltaTime(), De.MaxDeltaTime));\n this._animationRatio = e * (60 / 1e3), this._animate(), this.onAfterAnimationsObservable.notifyObservers(this), this.physicsEnabled && this._advancePhysicsEngineStep(e);\n }\n }\n _clear() {\n (this.autoClearDepthAndStencil || this.autoClear) && this._engine.clear(this.clearColor, this.autoClear || this.forceWireframe || this.forcePointsCloud, this.autoClearDepthAndStencil, this.autoClearDepthAndStencil);\n }\n _checkCameraRenderTarget(e) {\n var t;\n if (e != null && e.outputRenderTarget && !(e != null && e.isRigCamera) && (e.outputRenderTarget._cleared = !1), (t = e == null ? void 0 : e.rigCameras) != null && t.length)\n for (let i = 0; i < e.rigCameras.length; ++i) {\n const s = e.rigCameras[i].outputRenderTarget;\n s && (s._cleared = !1);\n }\n }\n /**\n * Resets the draw wrappers cache of all meshes\n * @param passId If provided, releases only the draw wrapper corresponding to this render pass id\n */\n resetDrawCache(e) {\n if (this.meshes)\n for (const t of this.meshes)\n t.resetDrawCache(e);\n }\n /**\n * Render the scene\n * @param updateCameras defines a boolean indicating if cameras must update according to their inputs (true by default)\n * @param ignoreAnimations defines a boolean indicating if animations should not be executed (false by default)\n */\n render(e = !0, t = !1) {\n var r, n;\n if (this.isDisposed)\n return;\n this.onReadyObservable.hasObservers() && this._executeWhenReadyTimeoutId === null && this._checkIsReady(), this._frameId++, this._defaultFrameBufferCleared = !1, this._checkCameraRenderTarget(this.activeCamera), (r = this.activeCameras) != null && r.length && this.activeCameras.forEach(this._checkCameraRenderTarget), this._registerTransientComponents(), this._activeParticles.fetchNewFrame(), this._totalVertices.fetchNewFrame(), this._activeIndices.fetchNewFrame(), this._activeBones.fetchNewFrame(), this._meshesForIntersections.reset(), this.resetCachedMaterial(), this.onBeforeAnimationsObservable.notifyObservers(this), this.actionManager && this.actionManager.processTrigger(11), t || this.animate();\n for (const o of this._beforeCameraUpdateStage)\n o.action();\n if (e) {\n if (this.activeCameras && this.activeCameras.length > 0)\n for (let o = 0; o < this.activeCameras.length; o++) {\n const l = this.activeCameras[o];\n if (l.update(), l.cameraRigMode !== 0)\n for (let h = 0; h < l._rigCameras.length; h++)\n l._rigCameras[h].update();\n }\n else if (this.activeCamera && (this.activeCamera.update(), this.activeCamera.cameraRigMode !== 0))\n for (let o = 0; o < this.activeCamera._rigCameras.length; o++)\n this.activeCamera._rigCameras[o].update();\n }\n this.onBeforeRenderObservable.notifyObservers(this);\n const i = this.getEngine();\n this.onBeforeRenderTargetsRenderObservable.notifyObservers(this);\n const s = (n = this.activeCameras) != null && n.length ? this.activeCameras[0] : this.activeCamera;\n if (this.renderTargetsEnabled) {\n J.StartPerformanceCounter(\"Custom render targets\", this.customRenderTargets.length > 0), this._intermediateRendering = !0;\n for (let o = 0; o < this.customRenderTargets.length; o++) {\n const l = this.customRenderTargets[o];\n if (l._shouldRender()) {\n if (this._renderId++, this.activeCamera = l.activeCamera || this.activeCamera, !this.activeCamera)\n throw new Error(\"Active camera not set\");\n i.setViewport(this.activeCamera.viewport), this.updateTransformMatrix(), l.render(s !== this.activeCamera, this.dumpNextRenderTargets);\n }\n }\n J.EndPerformanceCounter(\"Custom render targets\", this.customRenderTargets.length > 0), this._intermediateRendering = !1, this._renderId++;\n }\n this._engine.currentRenderPassId = (s == null ? void 0 : s.renderPassId) ?? 0, this.activeCamera = s, this._activeCamera && this._activeCamera.cameraRigMode !== 22 && !this.prePass && this._bindFrameBuffer(this._activeCamera, !1), this.onAfterRenderTargetsRenderObservable.notifyObservers(this);\n for (const o of this._beforeClearStage)\n o.action();\n this._clearFrameBuffer(this.activeCamera);\n for (const o of this._gatherRenderTargetsStage)\n o.action(this._renderTargets);\n if (this.activeCameras && this.activeCameras.length > 0)\n for (let o = 0; o < this.activeCameras.length; o++)\n this._processSubCameras(this.activeCameras[o], o > 0);\n else {\n if (!this.activeCamera)\n throw new Error(\"No camera defined\");\n this._processSubCameras(this.activeCamera, !!this.activeCamera.outputRenderTarget);\n }\n this._checkIntersections();\n for (const o of this._afterRenderStage)\n o.action();\n if (this.afterRender && this.afterRender(), this.onAfterRenderObservable.notifyObservers(this), this._toBeDisposed.length) {\n for (let o = 0; o < this._toBeDisposed.length; o++) {\n const l = this._toBeDisposed[o];\n l && l.dispose();\n }\n this._toBeDisposed.length = 0;\n }\n this.dumpNextRenderTargets && (this.dumpNextRenderTargets = !1), this._activeBones.addCount(0, !0), this._activeIndices.addCount(0, !0), this._activeParticles.addCount(0, !0), this._engine.restoreDefaultFramebuffer();\n }\n /**\n * Freeze all materials\n * A frozen material will not be updatable but should be faster to render\n * Note: multimaterials will not be frozen, but their submaterials will\n */\n freezeMaterials() {\n for (let e = 0; e < this.materials.length; e++)\n this.materials[e].freeze();\n }\n /**\n * Unfreeze all materials\n * A frozen material will not be updatable but should be faster to render\n */\n unfreezeMaterials() {\n for (let e = 0; e < this.materials.length; e++)\n this.materials[e].unfreeze();\n }\n /**\n * Releases all held resources\n */\n dispose() {\n if (this.isDisposed)\n return;\n this.beforeRender = null, this.afterRender = null, this.metadata = null, this.skeletons.length = 0, this.morphTargetManagers.length = 0, this._transientComponents.length = 0, this._isReadyForMeshStage.clear(), this._beforeEvaluateActiveMeshStage.clear(), this._evaluateSubMeshStage.clear(), this._preActiveMeshStage.clear(), this._cameraDrawRenderTargetStage.clear(), this._beforeCameraDrawStage.clear(), this._beforeRenderTargetDrawStage.clear(), this._beforeRenderingGroupDrawStage.clear(), this._beforeRenderingMeshStage.clear(), this._afterRenderingMeshStage.clear(), this._afterRenderingGroupDrawStage.clear(), this._afterCameraDrawStage.clear(), this._afterRenderTargetDrawStage.clear(), this._afterRenderStage.clear(), this._beforeCameraUpdateStage.clear(), this._beforeClearStage.clear(), this._gatherRenderTargetsStage.clear(), this._gatherActiveCameraRenderTargetsStage.clear(), this._pointerMoveStage.clear(), this._pointerDownStage.clear(), this._pointerUpStage.clear(), this.importedMeshesFiles = [], this.stopAllAnimations && (this._activeAnimatables.forEach((r) => {\n r.onAnimationEndObservable.clear(), r.onAnimationEnd = null;\n }), this.stopAllAnimations()), this.resetCachedMaterial(), this.activeCamera && (this.activeCamera._activeMeshes.dispose(), this.activeCamera = null), this.activeCameras = null, this._activeMeshes.dispose(), this._renderingManager.dispose(), this._processedMaterials.dispose(), this._activeParticleSystems.dispose(), this._activeSkeletons.dispose(), this._softwareSkinnedMeshes.dispose(), this._renderTargets.dispose(), this._materialsRenderTargets.dispose(), this._registeredForLateAnimationBindings.dispose(), this._meshesForIntersections.dispose(), this._toBeDisposed.length = 0;\n const e = this._activeRequests.slice();\n for (const r of e)\n r.abort();\n this._activeRequests.length = 0;\n try {\n this.onDisposeObservable.notifyObservers(this);\n } catch (r) {\n L.Error(\"An error occurred while calling onDisposeObservable!\", r);\n }\n if (this.detachControl(), this._engine.getInputElement())\n for (let r = 0; r < this.cameras.length; r++)\n this.cameras[r].detachControl();\n this._disposeList(this.animationGroups), this._disposeList(this.lights), this._disposeList(this.meshes, (r) => r.dispose(!0)), this._disposeList(this.transformNodes, (r) => r.dispose(!0));\n const i = this.cameras;\n this._disposeList(i), this._defaultMaterial && this._defaultMaterial.dispose(), this._disposeList(this.multiMaterials), this._disposeList(this.materials), this._disposeList(this.particleSystems), this._disposeList(this.postProcesses), this._disposeList(this.textures), this._disposeList(this.morphTargetManagers), this._sceneUbo.dispose(), this._multiviewSceneUbo && this._multiviewSceneUbo.dispose(), this.postProcessManager.dispose(), this._disposeList(this._components);\n let s = this._engine.scenes.indexOf(this);\n s > -1 && this._engine.scenes.splice(s, 1), Me._LastCreatedScene === this && (this._engine.scenes.length > 0 ? Me._LastCreatedScene = this._engine.scenes[this._engine.scenes.length - 1] : Me._LastCreatedScene = null), s = this._engine._virtualScenes.indexOf(this), s > -1 && this._engine._virtualScenes.splice(s, 1), this._engine.wipeCaches(!0), this.onDisposeObservable.clear(), this.onBeforeRenderObservable.clear(), this.onAfterRenderObservable.clear(), this.onBeforeRenderTargetsRenderObservable.clear(), this.onAfterRenderTargetsRenderObservable.clear(), this.onAfterStepObservable.clear(), this.onBeforeStepObservable.clear(), this.onBeforeActiveMeshesEvaluationObservable.clear(), this.onAfterActiveMeshesEvaluationObservable.clear(), this.onBeforeParticlesRenderingObservable.clear(), this.onAfterParticlesRenderingObservable.clear(), this.onBeforeDrawPhaseObservable.clear(), this.onAfterDrawPhaseObservable.clear(), this.onBeforeAnimationsObservable.clear(), this.onAfterAnimationsObservable.clear(), this.onDataLoadedObservable.clear(), this.onBeforeRenderingGroupObservable.clear(), this.onAfterRenderingGroupObservable.clear(), this.onMeshImportedObservable.clear(), this.onBeforeCameraRenderObservable.clear(), this.onAfterCameraRenderObservable.clear(), this.onAfterRenderCameraObservable.clear(), this.onReadyObservable.clear(), this.onNewCameraAddedObservable.clear(), this.onCameraRemovedObservable.clear(), this.onNewLightAddedObservable.clear(), this.onLightRemovedObservable.clear(), this.onNewGeometryAddedObservable.clear(), this.onGeometryRemovedObservable.clear(), this.onNewTransformNodeAddedObservable.clear(), this.onTransformNodeRemovedObservable.clear(), this.onNewMeshAddedObservable.clear(), this.onMeshRemovedObservable.clear(), this.onNewSkeletonAddedObservable.clear(), this.onSkeletonRemovedObservable.clear(), this.onNewMaterialAddedObservable.clear(), this.onNewMultiMaterialAddedObservable.clear(), this.onMaterialRemovedObservable.clear(), this.onMultiMaterialRemovedObservable.clear(), this.onNewTextureAddedObservable.clear(), this.onTextureRemovedObservable.clear(), this.onPrePointerObservable.clear(), this.onPointerObservable.clear(), this.onPreKeyboardObservable.clear(), this.onKeyboardObservable.clear(), this.onActiveCameraChanged.clear(), this.onScenePerformancePriorityChangedObservable.clear(), this._isDisposed = !0;\n }\n _disposeList(e, t) {\n const i = e.slice(0);\n t = t ?? ((s) => s.dispose());\n for (const s of i)\n t(s);\n e.length = 0;\n }\n /**\n * Gets if the scene is already disposed\n */\n get isDisposed() {\n return this._isDisposed;\n }\n /**\n * Call this function to reduce memory footprint of the scene.\n * Vertex buffers will not store CPU data anymore (this will prevent picking, collisions or physics to work correctly)\n */\n clearCachedVertexData() {\n for (let e = 0; e < this.meshes.length; e++) {\n const i = this.meshes[e].geometry;\n i && i.clearCachedData();\n }\n }\n /**\n * This function will remove the local cached buffer data from texture.\n * It will save memory but will prevent the texture from being rebuilt\n */\n cleanCachedTextureBuffer() {\n for (const e of this.textures)\n e._buffer && (e._buffer = null);\n }\n /**\n * Get the world extend vectors with an optional filter\n *\n * @param filterPredicate the predicate - which meshes should be included when calculating the world size\n * @returns {{ min: Vector3; max: Vector3 }} min and max vectors\n */\n getWorldExtends(e) {\n const t = new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), i = new g(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\n return e = e || (() => !0), this.meshes.filter(e).forEach((s) => {\n if (s.computeWorldMatrix(!0), !s.subMeshes || s.subMeshes.length === 0 || s.infiniteDistance)\n return;\n const r = s.getBoundingInfo(), n = r.boundingBox.minimumWorld, o = r.boundingBox.maximumWorld;\n g.CheckExtends(n, t, i), g.CheckExtends(o, t, i);\n }), {\n min: t,\n max: i\n };\n }\n // Picking\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Creates a ray that can be used to pick in the scene\n * @param x defines the x coordinate of the origin (on-screen)\n * @param y defines the y coordinate of the origin (on-screen)\n * @param world defines the world matrix to use if you want to pick in object space (instead of world space)\n * @param camera defines the camera to use for the picking\n * @param cameraViewSpace defines if picking will be done in view space (false by default)\n * @returns a Ray\n */\n createPickingRay(e, t, i, s, r = !1) {\n throw $e(\"Ray\");\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Creates a ray that can be used to pick in the scene\n * @param x defines the x coordinate of the origin (on-screen)\n * @param y defines the y coordinate of the origin (on-screen)\n * @param world defines the world matrix to use if you want to pick in object space (instead of world space)\n * @param result defines the ray where to store the picking ray\n * @param camera defines the camera to use for the picking\n * @param cameraViewSpace defines if picking will be done in view space (false by default)\n * @param enableDistantPicking defines if picking should handle large values for mesh position/scaling (false by default)\n * @returns the current scene\n */\n createPickingRayToRef(e, t, i, s, r, n = !1, o = !1) {\n throw $e(\"Ray\");\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Creates a ray that can be used to pick in the scene\n * @param x defines the x coordinate of the origin (on-screen)\n * @param y defines the y coordinate of the origin (on-screen)\n * @param camera defines the camera to use for the picking\n * @returns a Ray\n */\n createPickingRayInCameraSpace(e, t, i) {\n throw $e(\"Ray\");\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Creates a ray that can be used to pick in the scene\n * @param x defines the x coordinate of the origin (on-screen)\n * @param y defines the y coordinate of the origin (on-screen)\n * @param result defines the ray where to store the picking ray\n * @param camera defines the camera to use for the picking\n * @returns the current scene\n */\n createPickingRayInCameraSpaceToRef(e, t, i, s) {\n throw $e(\"Ray\");\n }\n /** @internal */\n get _pickingAvailable() {\n return !1;\n }\n /** Launch a ray to try to pick a mesh in the scene\n * @param x position on screen\n * @param y position on screen\n * @param predicate Predicate function used to determine eligible meshes. Can be set to null. In this case, a mesh must be enabled, visible and with isPickable set to true\n * @param fastCheck defines if the first intersection will be used (and not the closest)\n * @param camera to use for computing the picking ray. Can be set to null. In this case, the scene.activeCamera will be used\n * @param trianglePredicate defines an optional predicate used to select faces when a mesh intersection is detected\n * @returns a PickingInfo\n */\n pick(e, t, i, s, r, n) {\n const o = $e(\"Ray\", !0);\n return o && L.Warn(o), new Cs();\n }\n /** Launch a ray to try to pick a mesh in the scene using only bounding information of the main mesh (not using submeshes)\n * @param x position on screen\n * @param y position on screen\n * @param predicate Predicate function used to determine eligible meshes. Can be set to null. In this case, a mesh must be enabled, visible and with isPickable set to true\n * @param fastCheck defines if the first intersection will be used (and not the closest)\n * @param camera to use for computing the picking ray. Can be set to null. In this case, the scene.activeCamera will be used\n * @returns a PickingInfo (Please note that some info will not be set like distance, bv, bu and everything that cannot be capture by only using bounding infos)\n */\n pickWithBoundingInfo(e, t, i, s, r) {\n const n = $e(\"Ray\", !0);\n return n && L.Warn(n), new Cs();\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Use the given ray to pick a mesh in the scene. A mesh triangle can be picked both from its front and back sides,\n * irrespective of orientation.\n * @param ray The ray to use to pick meshes\n * @param predicate Predicate function used to determine eligible meshes. Can be set to null. In this case, a mesh must have isPickable set to true\n * @param fastCheck defines if the first intersection will be used (and not the closest)\n * @param trianglePredicate defines an optional predicate used to select faces when a mesh intersection is detected\n * @returns a PickingInfo\n */\n pickWithRay(e, t, i, s) {\n throw $e(\"Ray\");\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Launch a ray to try to pick a mesh in the scene. A mesh triangle can be picked both from its front and back sides,\n * irrespective of orientation.\n * @param x X position on screen\n * @param y Y position on screen\n * @param predicate Predicate function used to determine eligible meshes. Can be set to null. In this case, a mesh must be enabled, visible and with isPickable set to true\n * @param camera camera to use for computing the picking ray. Can be set to null. In this case, the scene.activeCamera will be used\n * @param trianglePredicate defines an optional predicate used to select faces when a mesh intersection is detected\n * @returns an array of PickingInfo\n */\n multiPick(e, t, i, s, r) {\n throw $e(\"Ray\");\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Launch a ray to try to pick a mesh in the scene\n * @param ray Ray to use\n * @param predicate Predicate function used to determine eligible meshes. Can be set to null. In this case, a mesh must be enabled, visible and with isPickable set to true\n * @param trianglePredicate defines an optional predicate used to select faces when a mesh intersection is detected\n * @returns an array of PickingInfo\n */\n multiPickWithRay(e, t, i) {\n throw $e(\"Ray\");\n }\n /**\n * Force the value of meshUnderPointer\n * @param mesh defines the mesh to use\n * @param pointerId optional pointer id when using more than one pointer\n * @param pickResult optional pickingInfo data used to find mesh\n */\n setPointerOverMesh(e, t, i) {\n this._inputManager.setPointerOverMesh(e, t, i);\n }\n /**\n * Gets the mesh under the pointer\n * @returns a Mesh or null if no mesh is under the pointer\n */\n getPointerOverMesh() {\n return this._inputManager.getPointerOverMesh();\n }\n // Misc.\n /** @internal */\n _rebuildGeometries() {\n for (const e of this.geometries)\n e._rebuild();\n for (const e of this.meshes)\n e._rebuild();\n this.postProcessManager && this.postProcessManager._rebuild();\n for (const e of this._components)\n e.rebuild();\n for (const e of this.particleSystems)\n e.rebuild();\n if (this.spriteManagers)\n for (const e of this.spriteManagers)\n e.rebuild();\n }\n /** @internal */\n _rebuildTextures() {\n for (const e of this.textures)\n e._rebuild(!0);\n this.markAllMaterialsAsDirty(1);\n }\n /**\n * Get from a list of objects by tags\n * @param list the list of objects to use\n * @param tagsQuery the query to use\n * @param filter a predicate to filter for tags\n * @returns\n */\n _getByTags(e, t, i) {\n if (t === void 0)\n return e;\n const s = [];\n for (const r in e) {\n const n = e[r];\n Ct && Ct.MatchesQuery(n, t) && (!i || i(n)) && s.push(n);\n }\n return s;\n }\n /**\n * Get a list of meshes by tags\n * @param tagsQuery defines the tags query to use\n * @param filter defines a predicate used to filter results\n * @returns an array of Mesh\n */\n getMeshesByTags(e, t) {\n return this._getByTags(this.meshes, e, t);\n }\n /**\n * Get a list of cameras by tags\n * @param tagsQuery defines the tags query to use\n * @param filter defines a predicate used to filter results\n * @returns an array of Camera\n */\n getCamerasByTags(e, t) {\n return this._getByTags(this.cameras, e, t);\n }\n /**\n * Get a list of lights by tags\n * @param tagsQuery defines the tags query to use\n * @param filter defines a predicate used to filter results\n * @returns an array of Light\n */\n getLightsByTags(e, t) {\n return this._getByTags(this.lights, e, t);\n }\n /**\n * Get a list of materials by tags\n * @param tagsQuery defines the tags query to use\n * @param filter defines a predicate used to filter results\n * @returns an array of Material\n */\n getMaterialByTags(e, t) {\n return this._getByTags(this.materials, e, t).concat(this._getByTags(this.multiMaterials, e, t));\n }\n /**\n * Get a list of transform nodes by tags\n * @param tagsQuery defines the tags query to use\n * @param filter defines a predicate used to filter results\n * @returns an array of TransformNode\n */\n getTransformNodesByTags(e, t) {\n return this._getByTags(this.transformNodes, e, t);\n }\n /**\n * Overrides the default sort function applied in the rendering group to prepare the meshes.\n * This allowed control for front to back rendering or reversly depending of the special needs.\n *\n * @param renderingGroupId The rendering group id corresponding to its index\n * @param opaqueSortCompareFn The opaque queue comparison function use to sort.\n * @param alphaTestSortCompareFn The alpha test queue comparison function use to sort.\n * @param transparentSortCompareFn The transparent queue comparison function use to sort.\n */\n setRenderingOrder(e, t = null, i = null, s = null) {\n this._renderingManager.setRenderingOrder(e, t, i, s);\n }\n /**\n * Specifies whether or not the stencil and depth buffer are cleared between two rendering groups.\n *\n * @param renderingGroupId The rendering group id corresponding to its index\n * @param autoClearDepthStencil Automatically clears depth and stencil between groups if true.\n * @param depth Automatically clears depth between groups if true and autoClear is true.\n * @param stencil Automatically clears stencil between groups if true and autoClear is true.\n */\n setRenderingAutoClearDepthStencil(e, t, i = !0, s = !0) {\n this._renderingManager.setRenderingAutoClearDepthStencil(e, t, i, s);\n }\n /**\n * Gets the current auto clear configuration for one rendering group of the rendering\n * manager.\n * @param index the rendering group index to get the information for\n * @returns The auto clear setup for the requested rendering group\n */\n getAutoClearDepthStencilSetup(e) {\n return this._renderingManager.getAutoClearDepthStencilSetup(e);\n }\n /** @internal */\n _forceBlockMaterialDirtyMechanism(e) {\n this._blockMaterialDirtyMechanism = e;\n }\n /** Gets or sets a boolean blocking all the calls to markAllMaterialsAsDirty (ie. the materials won't be updated if they are out of sync) */\n get blockMaterialDirtyMechanism() {\n return this._blockMaterialDirtyMechanism;\n }\n set blockMaterialDirtyMechanism(e) {\n this._blockMaterialDirtyMechanism !== e && (this._blockMaterialDirtyMechanism = e, e || this.markAllMaterialsAsDirty(63));\n }\n /**\n * Will flag all materials as dirty to trigger new shader compilation\n * @param flag defines the flag used to specify which material part must be marked as dirty\n * @param predicate If not null, it will be used to specify if a material has to be marked as dirty\n */\n markAllMaterialsAsDirty(e, t) {\n if (!this._blockMaterialDirtyMechanism)\n for (const i of this.materials)\n t && !t(i) || i.markAsDirty(e);\n }\n /**\n * @internal\n */\n _loadFile(e, t, i, s, r, n, o) {\n const l = Qo(e, t, i, s ? this.offlineProvider : void 0, r, n, o);\n return this._activeRequests.push(l), l.onCompleteObservable.add((h) => {\n this._activeRequests.splice(this._activeRequests.indexOf(h), 1);\n }), l;\n }\n /**\n * @internal\n */\n _loadFileAsync(e, t, i, s, r) {\n return new Promise((n, o) => {\n this._loadFile(e, (l) => {\n n(l);\n }, t, i, s, (l, h) => {\n o(h);\n }, r);\n });\n }\n /**\n * @internal\n */\n _requestFile(e, t, i, s, r, n, o) {\n const l = vx(e, t, i, s ? this.offlineProvider : void 0, r, n, o);\n return this._activeRequests.push(l), l.onCompleteObservable.add((h) => {\n this._activeRequests.splice(this._activeRequests.indexOf(h), 1);\n }), l;\n }\n /**\n * @internal\n */\n _requestFileAsync(e, t, i, s, r) {\n return new Promise((n, o) => {\n this._requestFile(e, (l) => {\n n(l);\n }, t, i, s, (l) => {\n o(l);\n }, r);\n });\n }\n /**\n * @internal\n */\n _readFile(e, t, i, s, r) {\n const n = xu(e, t, i, s, r);\n return this._activeRequests.push(n), n.onCompleteObservable.add((o) => {\n this._activeRequests.splice(this._activeRequests.indexOf(o), 1);\n }), n;\n }\n /**\n * @internal\n */\n _readFileAsync(e, t, i) {\n return new Promise((s, r) => {\n this._readFile(e, (n) => {\n s(n);\n }, t, i, (n) => {\n r(n);\n });\n });\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * This method gets the performance collector belonging to the scene, which is generally shared with the inspector.\n * @returns the perf collector belonging to the scene.\n */\n getPerfCollector() {\n throw $e(\"performanceViewerSceneExtension\");\n }\n // deprecated\n /**\n * Sets the active camera of the scene using its Id\n * @param id defines the camera's Id\n * @returns the new active camera or null if none found.\n * @deprecated Please use setActiveCameraById instead\n */\n setActiveCameraByID(e) {\n return this.setActiveCameraById(e);\n }\n /**\n * Get a material using its id\n * @param id defines the material's Id\n * @returns the material or null if none found.\n * @deprecated Please use getMaterialById instead\n */\n getMaterialByID(e) {\n return this.getMaterialById(e);\n }\n /**\n * Gets a the last added material using a given id\n * @param id defines the material's Id\n * @returns the last material with the given id or null if none found.\n * @deprecated Please use getLastMaterialById instead\n */\n getLastMaterialByID(e) {\n return this.getLastMaterialById(e);\n }\n /**\n * Get a texture using its unique id\n * @param uniqueId defines the texture's unique id\n * @returns the texture or null if none found.\n * @deprecated Please use getTextureByUniqueId instead\n */\n getTextureByUniqueID(e) {\n return this.getTextureByUniqueId(e);\n }\n /**\n * Gets a camera using its Id\n * @param id defines the Id to look for\n * @returns the camera or null if not found\n * @deprecated Please use getCameraById instead\n */\n getCameraByID(e) {\n return this.getCameraById(e);\n }\n /**\n * Gets a camera using its unique Id\n * @param uniqueId defines the unique Id to look for\n * @returns the camera or null if not found\n * @deprecated Please use getCameraByUniqueId instead\n */\n getCameraByUniqueID(e) {\n return this.getCameraByUniqueId(e);\n }\n /**\n * Gets a bone using its Id\n * @param id defines the bone's Id\n * @returns the bone or null if not found\n * @deprecated Please use getBoneById instead\n */\n getBoneByID(e) {\n return this.getBoneById(e);\n }\n /**\n * Gets a light node using its Id\n * @param id defines the light's Id\n * @returns the light or null if none found.\n * @deprecated Please use getLightById instead\n */\n getLightByID(e) {\n return this.getLightById(e);\n }\n /**\n * Gets a light node using its scene-generated unique Id\n * @param uniqueId defines the light's unique Id\n * @returns the light or null if none found.\n * @deprecated Please use getLightByUniqueId instead\n */\n getLightByUniqueID(e) {\n return this.getLightByUniqueId(e);\n }\n /**\n * Gets a particle system by Id\n * @param id defines the particle system Id\n * @returns the corresponding system or null if none found\n * @deprecated Please use getParticleSystemById instead\n */\n getParticleSystemByID(e) {\n return this.getParticleSystemById(e);\n }\n /**\n * Gets a geometry using its Id\n * @param id defines the geometry's Id\n * @returns the geometry or null if none found.\n * @deprecated Please use getGeometryById instead\n */\n getGeometryByID(e) {\n return this.getGeometryById(e);\n }\n /**\n * Gets the first added mesh found of a given Id\n * @param id defines the Id to search for\n * @returns the mesh found or null if not found at all\n * @deprecated Please use getMeshById instead\n */\n getMeshByID(e) {\n return this.getMeshById(e);\n }\n /**\n * Gets a mesh with its auto-generated unique Id\n * @param uniqueId defines the unique Id to search for\n * @returns the found mesh or null if not found at all.\n * @deprecated Please use getMeshByUniqueId instead\n */\n getMeshByUniqueID(e) {\n return this.getMeshByUniqueId(e);\n }\n /**\n * Gets a the last added mesh using a given Id\n * @param id defines the Id to search for\n * @returns the found mesh or null if not found at all.\n * @deprecated Please use getLastMeshById instead\n */\n getLastMeshByID(e) {\n return this.getLastMeshById(e);\n }\n /**\n * Gets a list of meshes using their Id\n * @param id defines the Id to search for\n * @returns a list of meshes\n * @deprecated Please use getMeshesById instead\n */\n getMeshesByID(e) {\n return this.getMeshesById(e);\n }\n /**\n * Gets the first added transform node found of a given Id\n * @param id defines the Id to search for\n * @returns the found transform node or null if not found at all.\n * @deprecated Please use getTransformNodeById instead\n */\n getTransformNodeByID(e) {\n return this.getTransformNodeById(e);\n }\n /**\n * Gets a transform node with its auto-generated unique Id\n * @param uniqueId defines the unique Id to search for\n * @returns the found transform node or null if not found at all.\n * @deprecated Please use getTransformNodeByUniqueId instead\n */\n getTransformNodeByUniqueID(e) {\n return this.getTransformNodeByUniqueId(e);\n }\n /**\n * Gets a list of transform nodes using their Id\n * @param id defines the Id to search for\n * @returns a list of transform nodes\n * @deprecated Please use getTransformNodesById instead\n */\n getTransformNodesByID(e) {\n return this.getTransformNodesById(e);\n }\n /**\n * Gets a node (Mesh, Camera, Light) using a given Id\n * @param id defines the Id to search for\n * @returns the found node or null if not found at all\n * @deprecated Please use getNodeById instead\n */\n getNodeByID(e) {\n return this.getNodeById(e);\n }\n /**\n * Gets a the last added node (Mesh, Camera, Light) using a given Id\n * @param id defines the Id to search for\n * @returns the found node or null if not found at all\n * @deprecated Please use getLastEntryById instead\n */\n getLastEntryByID(e) {\n return this.getLastEntryById(e);\n }\n /**\n * Gets a skeleton using a given Id (if many are found, this function will pick the last one)\n * @param id defines the Id to search for\n * @returns the found skeleton or null if not found at all.\n * @deprecated Please use getLastSkeletonById instead\n */\n getLastSkeletonByID(e) {\n return this.getLastSkeletonById(e);\n }\n}\nDe.FOGMODE_NONE = 0;\nDe.FOGMODE_EXP = 1;\nDe.FOGMODE_EXP2 = 2;\nDe.FOGMODE_LINEAR = 3;\nDe.MinDeltaTime = 1;\nDe.MaxDeltaTime = 1e3;\nU(\"BABYLON.Scene\", De);\nvar OS;\n(function(a) {\n a[a.LOCAL = 0] = \"LOCAL\", a[a.WORLD = 1] = \"WORLD\", a[a.BONE = 2] = \"BONE\";\n})(OS || (OS = {}));\nclass zs {\n}\nzs.X = new g(1, 0, 0);\nzs.Y = new g(0, 1, 0);\nzs.Z = new g(0, 0, 1);\nvar wS;\n(function(a) {\n a[a.X = 0] = \"X\", a[a.Y = 1] = \"Y\", a[a.Z = 2] = \"Z\";\n})(wS || (wS = {}));\nvar NS;\n(function(a) {\n a[a.CW = 0] = \"CW\", a[a.CCW = 1] = \"CCW\";\n})(NS || (NS = {}));\nclass SM {\n /**\n * Returns the cubic Bezier interpolated value (float) at \"t\" (float) from the given x1, y1, x2, y2 floats\n * @param t defines the time\n * @param x1 defines the left coordinate on X axis\n * @param y1 defines the left coordinate on Y axis\n * @param x2 defines the right coordinate on X axis\n * @param y2 defines the right coordinate on Y axis\n * @returns the interpolated value\n */\n static Interpolate(e, t, i, s, r) {\n const n = 1 - 3 * s + 3 * t, o = 3 * s - 6 * t, l = 3 * t;\n let h = e;\n for (let c = 0; c < 5; c++) {\n const u = h * h, d = u * h, f = n * d + o * u + l * h, p = 1 / (3 * n * u + 2 * o * h + l);\n h -= (f - e) * p, h = Math.min(1, Math.max(0, h));\n }\n return 3 * Math.pow(1 - h, 2) * h * i + 3 * (1 - h) * Math.pow(h, 2) * r + Math.pow(h, 3);\n }\n}\nclass va {\n /**\n * Creates an Angle object of \"radians\" radians (float).\n * @param radians the angle in radians\n */\n constructor(e) {\n this._radians = e, this._radians < 0 && (this._radians += 2 * Math.PI);\n }\n /**\n * Get value in degrees\n * @returns the Angle value in degrees (float)\n */\n degrees() {\n return this._radians * 180 / Math.PI;\n }\n /**\n * Get value in radians\n * @returns the Angle value in radians (float)\n */\n radians() {\n return this._radians;\n }\n /**\n * Gets a new Angle object with a value of the angle (in radians) between the line connecting the two points and the x-axis\n * @param a defines first point as the origin\n * @param b defines point\n * @returns a new Angle\n */\n static BetweenTwoPoints(e, t) {\n const i = t.subtract(e), s = Math.atan2(i.y, i.x);\n return new va(s);\n }\n /**\n * Gets the angle between the two vectors\n * @param a defines first vector\n * @param b defines vector\n * @returns Returns an new Angle between 0 and PI\n */\n static BetweenTwoVectors(e, t) {\n let i = e.lengthSquared() * t.lengthSquared();\n if (i === 0)\n return new va(Math.PI / 2);\n i = Math.sqrt(i);\n let s = e.dot(t) / i;\n s = Re.Clamp(s, -1, 1);\n const r = Math.acos(s);\n return new va(r);\n }\n /**\n * Gets a new Angle object from the given float in radians\n * @param radians defines the angle value in radians\n * @returns a new Angle\n */\n static FromRadians(e) {\n return new va(e);\n }\n /**\n * Gets a new Angle object from the given float in degrees\n * @param degrees defines the angle value in degrees\n * @returns a new Angle\n */\n static FromDegrees(e) {\n return new va(e * Math.PI / 180);\n }\n}\nclass bM {\n /**\n * Creates an Arc object from the three given points : start, middle and end.\n * @param startPoint Defines the start point of the arc\n * @param midPoint Defines the middle point of the arc\n * @param endPoint Defines the end point of the arc\n */\n constructor(e, t, i) {\n this.startPoint = e, this.midPoint = t, this.endPoint = i;\n const s = Math.pow(t.x, 2) + Math.pow(t.y, 2), r = (Math.pow(e.x, 2) + Math.pow(e.y, 2) - s) / 2, n = (s - Math.pow(i.x, 2) - Math.pow(i.y, 2)) / 2, o = (e.x - t.x) * (t.y - i.y) - (t.x - i.x) * (e.y - t.y);\n this.centerPoint = new Q((r * (t.y - i.y) - n * (e.y - t.y)) / o, ((e.x - t.x) * n - (t.x - i.x) * r) / o), this.radius = this.centerPoint.subtract(this.startPoint).length(), this.startAngle = va.BetweenTwoPoints(this.centerPoint, this.startPoint);\n const l = this.startAngle.degrees();\n let h = va.BetweenTwoPoints(this.centerPoint, this.midPoint).degrees(), c = va.BetweenTwoPoints(this.centerPoint, this.endPoint).degrees();\n h - l > 180 && (h -= 360), h - l < -180 && (h += 360), c - h > 180 && (c -= 360), c - h < -180 && (c += 360), this.orientation = h - l < 0 ? 0 : 1, this.angle = va.FromDegrees(this.orientation === 0 ? l - c : c - l);\n }\n}\nclass lf {\n /**\n * Creates a Path2 object from the starting 2D coordinates x and y.\n * @param x the starting points x value\n * @param y the starting points y value\n */\n constructor(e, t) {\n this._points = new Array(), this._length = 0, this.closed = !1, this._points.push(new Q(e, t));\n }\n /**\n * Adds a new segment until the given coordinates (x, y) to the current Path2.\n * @param x the added points x value\n * @param y the added points y value\n * @returns the updated Path2.\n */\n addLineTo(e, t) {\n if (this.closed)\n return this;\n const i = new Q(e, t), s = this._points[this._points.length - 1];\n return this._points.push(i), this._length += i.subtract(s).length(), this;\n }\n /**\n * Adds _numberOfSegments_ segments according to the arc definition (middle point coordinates, end point coordinates, the arc start point being the current Path2 last point) to the current Path2.\n * @param midX middle point x value\n * @param midY middle point y value\n * @param endX end point x value\n * @param endY end point y value\n * @param numberOfSegments (default: 36)\n * @returns the updated Path2.\n */\n addArcTo(e, t, i, s, r = 36) {\n if (this.closed)\n return this;\n const n = this._points[this._points.length - 1], o = new Q(e, t), l = new Q(i, s), h = new bM(n, o, l);\n let c = h.angle.radians() / r;\n h.orientation === 0 && (c *= -1);\n let u = h.startAngle.radians() + c;\n for (let d = 0; d < r; d++) {\n const f = Math.cos(u) * h.radius + h.centerPoint.x, p = Math.sin(u) * h.radius + h.centerPoint.y;\n this.addLineTo(f, p), u += c;\n }\n return this;\n }\n /**\n * Adds _numberOfSegments_ segments according to the quadratic curve definition to the current Path2.\n * @param controlX control point x value\n * @param controlY control point y value\n * @param endX end point x value\n * @param endY end point y value\n * @param numberOfSegments (default: 36)\n * @returns the updated Path2.\n */\n addQuadraticCurveTo(e, t, i, s, r = 36) {\n if (this.closed)\n return this;\n const n = (l, h, c, u) => (1 - l) * (1 - l) * h + 2 * l * (1 - l) * c + l * l * u, o = this._points[this._points.length - 1];\n for (let l = 0; l <= r; l++) {\n const h = l / r, c = n(h, o.x, e, i), u = n(h, o.y, t, s);\n this.addLineTo(c, u);\n }\n return this;\n }\n /**\n * Adds _numberOfSegments_ segments according to the bezier curve definition to the current Path2.\n * @param originTangentX tangent vector at the origin point x value\n * @param originTangentY tangent vector at the origin point y value\n * @param destinationTangentX tangent vector at the destination point x value\n * @param destinationTangentY tangent vector at the destination point y value\n * @param endX end point x value\n * @param endY end point y value\n * @param numberOfSegments (default: 36)\n * @returns the updated Path2.\n */\n addBezierCurveTo(e, t, i, s, r, n, o = 36) {\n if (this.closed)\n return this;\n const l = (c, u, d, f, p) => (1 - c) * (1 - c) * (1 - c) * u + 3 * c * (1 - c) * (1 - c) * d + 3 * c * c * (1 - c) * f + c * c * c * p, h = this._points[this._points.length - 1];\n for (let c = 0; c <= o; c++) {\n const u = c / o, d = l(u, h.x, e, i, r), f = l(u, h.y, t, s, n);\n this.addLineTo(d, f);\n }\n return this;\n }\n /**\n * Defines if a given point is inside the polygon defines by the path\n * @param point defines the point to test\n * @returns true if the point is inside\n */\n isPointInside(e) {\n let t = !1;\n const i = this._points.length;\n for (let s = i - 1, r = 0; r < i; s = r++) {\n let n = this._points[s], o = this._points[r], l = o.x - n.x, h = o.y - n.y;\n if (Math.abs(h) > Number.EPSILON) {\n if (h < 0 && (n = this._points[r], l = -l, o = this._points[s], h = -h), e.y < n.y || e.y > o.y)\n continue;\n if (e.y === n.y && e.x === n.x)\n return !0;\n {\n const c = h * (e.x - n.x) - l * (e.y - n.y);\n if (c === 0)\n return !0;\n if (c < 0)\n continue;\n t = !t;\n }\n } else {\n if (e.y !== n.y)\n continue;\n if (o.x <= e.x && e.x <= n.x || n.x <= e.x && e.x <= o.x)\n return !0;\n }\n }\n return t;\n }\n /**\n * Closes the Path2.\n * @returns the Path2.\n */\n close() {\n return this.closed = !0, this;\n }\n /**\n * Gets the sum of the distance between each sequential point in the path\n * @returns the Path2 total length (float).\n */\n length() {\n let e = this._length;\n if (this.closed) {\n const t = this._points[this._points.length - 1], i = this._points[0];\n e += i.subtract(t).length();\n }\n return e;\n }\n /**\n * Gets the area of the polygon defined by the path\n * @returns area value\n */\n area() {\n const e = this._points.length;\n let t = 0;\n for (let i = e - 1, s = 0; s < e; i = s++)\n t += this._points[i].x * this._points[s].y - this._points[s].x * this._points[i].y;\n return t * 0.5;\n }\n /**\n * Gets the points which construct the path\n * @returns the Path2 internal array of points.\n */\n getPoints() {\n return this._points;\n }\n /**\n * Retrieves the point at the distance aways from the starting point\n * @param normalizedLengthPosition the length along the path to retrieve the point from\n * @returns a new Vector2 located at a percentage of the Path2 total length on this path.\n */\n getPointAtLengthPosition(e) {\n if (e < 0 || e > 1)\n return Q.Zero();\n const t = e * this.length();\n let i = 0;\n for (let s = 0; s < this._points.length; s++) {\n const r = (s + 1) % this._points.length, n = this._points[s], l = this._points[r].subtract(n), h = l.length() + i;\n if (t >= i && t <= h) {\n const c = l.normalize(), u = t - i;\n return new Q(n.x + c.x * u, n.y + c.y * u);\n }\n i = h;\n }\n return Q.Zero();\n }\n /**\n * Creates a new path starting from an x and y position\n * @param x starting x value\n * @param y starting y value\n * @returns a new Path2 starting at the coordinates (x, y).\n */\n static StartingAt(e, t) {\n return new lf(e, t);\n }\n}\nclass vu {\n /**\n * new Path3D(path, normal, raw)\n * Creates a Path3D. A Path3D is a logical math object, so not a mesh.\n * please read the description in the tutorial : https://doc.babylonjs.com/features/featuresDeepDive/mesh/path3D\n * @param path an array of Vector3, the curve axis of the Path3D\n * @param firstNormal (options) Vector3, the first wanted normal to the curve. Ex (0, 1, 0) for a vertical normal.\n * @param raw (optional, default false) : boolean, if true the returned Path3D isn't normalized. Useful to depict path acceleration or speed.\n * @param alignTangentsWithPath (optional, default false) : boolean, if true the tangents will be aligned with the path.\n */\n constructor(e, t = null, i, s = !1) {\n this.path = e, this._curve = new Array(), this._distances = new Array(), this._tangents = new Array(), this._normals = new Array(), this._binormals = new Array(), this._pointAtData = {\n id: 0,\n point: g.Zero(),\n previousPointArrayIndex: 0,\n position: 0,\n subPosition: 0,\n interpolateReady: !1,\n interpolationMatrix: O.Identity()\n };\n for (let r = 0; r < e.length; r++)\n this._curve[r] = e[r].clone();\n this._raw = i || !1, this._alignTangentsWithPath = s, this._compute(t, s);\n }\n /**\n * Returns the Path3D array of successive Vector3 designing its curve.\n * @returns the Path3D array of successive Vector3 designing its curve.\n */\n getCurve() {\n return this._curve;\n }\n /**\n * Returns the Path3D array of successive Vector3 designing its curve.\n * @returns the Path3D array of successive Vector3 designing its curve.\n */\n getPoints() {\n return this._curve;\n }\n /**\n * @returns the computed length (float) of the path.\n */\n length() {\n return this._distances[this._distances.length - 1];\n }\n /**\n * Returns an array populated with tangent vectors on each Path3D curve point.\n * @returns an array populated with tangent vectors on each Path3D curve point.\n */\n getTangents() {\n return this._tangents;\n }\n /**\n * Returns an array populated with normal vectors on each Path3D curve point.\n * @returns an array populated with normal vectors on each Path3D curve point.\n */\n getNormals() {\n return this._normals;\n }\n /**\n * Returns an array populated with binormal vectors on each Path3D curve point.\n * @returns an array populated with binormal vectors on each Path3D curve point.\n */\n getBinormals() {\n return this._binormals;\n }\n /**\n * Returns an array populated with distances (float) of the i-th point from the first curve point.\n * @returns an array populated with distances (float) of the i-th point from the first curve point.\n */\n getDistances() {\n return this._distances;\n }\n /**\n * Returns an interpolated point along this path\n * @param position the position of the point along this path, from 0.0 to 1.0\n * @returns a new Vector3 as the point\n */\n getPointAt(e) {\n return this._updatePointAtData(e).point;\n }\n /**\n * Returns the tangent vector of an interpolated Path3D curve point at the specified position along this path.\n * @param position the position of the point along this path, from 0.0 to 1.0\n * @param interpolated (optional, default false) : boolean, if true returns an interpolated tangent instead of the tangent of the previous path point.\n * @returns a tangent vector corresponding to the interpolated Path3D curve point, if not interpolated, the tangent is taken from the precomputed tangents array.\n */\n getTangentAt(e, t = !1) {\n return this._updatePointAtData(e, t), t ? g.TransformCoordinates(g.Forward(), this._pointAtData.interpolationMatrix) : this._tangents[this._pointAtData.previousPointArrayIndex];\n }\n /**\n * Returns the tangent vector of an interpolated Path3D curve point at the specified position along this path.\n * @param position the position of the point along this path, from 0.0 to 1.0\n * @param interpolated (optional, default false) : boolean, if true returns an interpolated normal instead of the normal of the previous path point.\n * @returns a normal vector corresponding to the interpolated Path3D curve point, if not interpolated, the normal is taken from the precomputed normals array.\n */\n getNormalAt(e, t = !1) {\n return this._updatePointAtData(e, t), t ? g.TransformCoordinates(g.Right(), this._pointAtData.interpolationMatrix) : this._normals[this._pointAtData.previousPointArrayIndex];\n }\n /**\n * Returns the binormal vector of an interpolated Path3D curve point at the specified position along this path.\n * @param position the position of the point along this path, from 0.0 to 1.0\n * @param interpolated (optional, default false) : boolean, if true returns an interpolated binormal instead of the binormal of the previous path point.\n * @returns a binormal vector corresponding to the interpolated Path3D curve point, if not interpolated, the binormal is taken from the precomputed binormals array.\n */\n getBinormalAt(e, t = !1) {\n return this._updatePointAtData(e, t), t ? g.TransformCoordinates(g.UpReadOnly, this._pointAtData.interpolationMatrix) : this._binormals[this._pointAtData.previousPointArrayIndex];\n }\n /**\n * Returns the distance (float) of an interpolated Path3D curve point at the specified position along this path.\n * @param position the position of the point along this path, from 0.0 to 1.0\n * @returns the distance of the interpolated Path3D curve point at the specified position along this path.\n */\n getDistanceAt(e) {\n return this.length() * e;\n }\n /**\n * Returns the array index of the previous point of an interpolated point along this path\n * @param position the position of the point to interpolate along this path, from 0.0 to 1.0\n * @returns the array index\n */\n getPreviousPointIndexAt(e) {\n return this._updatePointAtData(e), this._pointAtData.previousPointArrayIndex;\n }\n /**\n * Returns the position of an interpolated point relative to the two path points it lies between, from 0.0 (point A) to 1.0 (point B)\n * @param position the position of the point to interpolate along this path, from 0.0 to 1.0\n * @returns the sub position\n */\n getSubPositionAt(e) {\n return this._updatePointAtData(e), this._pointAtData.subPosition;\n }\n /**\n * Returns the position of the closest virtual point on this path to an arbitrary Vector3, from 0.0 to 1.0\n * @param target the vector of which to get the closest position to\n * @returns the position of the closest virtual point on this path to the target vector\n */\n getClosestPositionTo(e) {\n let t = Number.MAX_VALUE, i = 0;\n for (let s = 0; s < this._curve.length - 1; s++) {\n const r = this._curve[s + 0], n = this._curve[s + 1].subtract(r).normalize(), o = this._distances[s + 1] - this._distances[s + 0], l = Math.min(Math.max(g.Dot(n, e.subtract(r).normalize()), 0) * g.Distance(r, e) / o, 1), h = g.Distance(r.add(n.scale(l * o)), e);\n h < t && (t = h, i = (this._distances[s + 0] + o * l) / this.length());\n }\n return i;\n }\n /**\n * Returns a sub path (slice) of this path\n * @param start the position of the fist path point, from 0.0 to 1.0, or a negative value, which will get wrapped around from the end of the path to 0.0 to 1.0 values\n * @param end the position of the last path point, from 0.0 to 1.0, or a negative value, which will get wrapped around from the end of the path to 0.0 to 1.0 values\n * @returns a sub path (slice) of this path\n */\n slice(e = 0, t = 1) {\n if (e < 0 && (e = 1 - e * -1 % 1), t < 0 && (t = 1 - t * -1 % 1), e > t) {\n const h = e;\n e = t, t = h;\n }\n const i = this.getCurve(), s = this.getPointAt(e);\n let r = this.getPreviousPointIndexAt(e);\n const n = this.getPointAt(t), o = this.getPreviousPointIndexAt(t) + 1, l = [];\n return e !== 0 && (r++, l.push(s)), l.push(...i.slice(r, o)), (t !== 1 || e === 1) && l.push(n), new vu(l, this.getNormalAt(e), this._raw, this._alignTangentsWithPath);\n }\n /**\n * Forces the Path3D tangent, normal, binormal and distance recomputation.\n * @param path path which all values are copied into the curves points\n * @param firstNormal which should be projected onto the curve\n * @param alignTangentsWithPath (optional, default false) : boolean, if true the tangents will be aligned with the path\n * @returns the same object updated.\n */\n update(e, t = null, i = !1) {\n for (let s = 0; s < e.length; s++)\n this._curve[s].x = e[s].x, this._curve[s].y = e[s].y, this._curve[s].z = e[s].z;\n return this._compute(t, i), this;\n }\n // private function compute() : computes tangents, normals and binormals\n _compute(e, t = !1) {\n const i = this._curve.length;\n if (i < 2)\n return;\n this._tangents[0] = this._getFirstNonNullVector(0), this._raw || this._tangents[0].normalize(), this._tangents[i - 1] = this._curve[i - 1].subtract(this._curve[i - 2]), this._raw || this._tangents[i - 1].normalize();\n const s = this._tangents[0], r = this._normalVector(s, e);\n this._normals[0] = r, this._raw || this._normals[0].normalize(), this._binormals[0] = g.Cross(s, this._normals[0]), this._raw || this._binormals[0].normalize(), this._distances[0] = 0;\n let n, o, l, h, c;\n for (let u = 1; u < i; u++)\n n = this._getLastNonNullVector(u), u < i - 1 && (o = this._getFirstNonNullVector(u), this._tangents[u] = t ? o : n.add(o), this._tangents[u].normalize()), this._distances[u] = this._distances[u - 1] + this._curve[u].subtract(this._curve[u - 1]).length(), l = this._tangents[u], c = this._binormals[u - 1], this._normals[u] = g.Cross(c, l), this._raw || (this._normals[u].length() === 0 ? (h = this._normals[u - 1], this._normals[u] = h.clone()) : this._normals[u].normalize()), this._binormals[u] = g.Cross(l, this._normals[u]), this._raw || this._binormals[u].normalize();\n this._pointAtData.id = NaN;\n }\n // private function getFirstNonNullVector(index)\n // returns the first non null vector from index : curve[index + N].subtract(curve[index])\n _getFirstNonNullVector(e) {\n let t = 1, i = this._curve[e + t].subtract(this._curve[e]);\n for (; i.length() === 0 && e + t + 1 < this._curve.length; )\n t++, i = this._curve[e + t].subtract(this._curve[e]);\n return i;\n }\n // private function getLastNonNullVector(index)\n // returns the last non null vector from index : curve[index].subtract(curve[index - N])\n _getLastNonNullVector(e) {\n let t = 1, i = this._curve[e].subtract(this._curve[e - t]);\n for (; i.length() === 0 && e > t + 1; )\n t++, i = this._curve[e].subtract(this._curve[e - t]);\n return i;\n }\n // private function normalVector(v0, vt, va) :\n // returns an arbitrary point in the plane defined by the point v0 and the vector vt orthogonal to this plane\n // if va is passed, it returns the va projection on the plane orthogonal to vt at the point v0\n _normalVector(e, t) {\n let i, s = e.length();\n if (s === 0 && (s = 1), t == null) {\n let r;\n Re.WithinEpsilon(Math.abs(e.y) / s, 1, tt) ? Re.WithinEpsilon(Math.abs(e.x) / s, 1, tt) ? Re.WithinEpsilon(Math.abs(e.z) / s, 1, tt) ? r = g.Zero() : r = new g(0, 0, 1) : r = new g(1, 0, 0) : r = new g(0, -1, 0), i = g.Cross(e, r);\n } else\n i = g.Cross(e, t), g.CrossToRef(i, e, i);\n return i.normalize(), i;\n }\n /**\n * Updates the point at data for an interpolated point along this curve\n * @param position the position of the point along this curve, from 0.0 to 1.0\n * @param interpolateTNB\n * @interpolateTNB whether to compute the interpolated tangent, normal and binormal\n * @returns the (updated) point at data\n */\n _updatePointAtData(e, t = !1) {\n if (this._pointAtData.id === e)\n return this._pointAtData.interpolateReady || this._updateInterpolationMatrix(), this._pointAtData;\n this._pointAtData.id = e;\n const i = this.getPoints();\n if (e <= 0)\n return this._setPointAtData(0, 0, i[0], 0, t);\n if (e >= 1)\n return this._setPointAtData(1, 1, i[i.length - 1], i.length - 1, t);\n let s = i[0], r, n = 0;\n const o = e * this.length();\n for (let l = 1; l < i.length; l++) {\n r = i[l];\n const h = g.Distance(s, r);\n if (n += h, n === o)\n return this._setPointAtData(e, 1, r, l, t);\n if (n > o) {\n const u = (n - o) / h, d = s.subtract(r), f = r.add(d.scaleInPlace(u));\n return this._setPointAtData(e, 1 - u, f, l - 1, t);\n }\n s = r;\n }\n return this._pointAtData;\n }\n /**\n * Updates the point at data from the specified parameters\n * @param position where along the path the interpolated point is, from 0.0 to 1.0\n * @param subPosition\n * @param point the interpolated point\n * @param parentIndex the index of an existing curve point that is on, or else positionally the first behind, the interpolated point\n * @param interpolateTNB whether to compute the interpolated tangent, normal and binormal\n * @returns the (updated) point at data\n */\n _setPointAtData(e, t, i, s, r) {\n return this._pointAtData.point = i, this._pointAtData.position = e, this._pointAtData.subPosition = t, this._pointAtData.previousPointArrayIndex = s, this._pointAtData.interpolateReady = r, r && this._updateInterpolationMatrix(), this._pointAtData;\n }\n /**\n * Updates the point at interpolation matrix for the tangents, normals and binormals\n */\n _updateInterpolationMatrix() {\n this._pointAtData.interpolationMatrix = O.Identity();\n const e = this._pointAtData.previousPointArrayIndex;\n if (e !== this._tangents.length - 1) {\n const t = e + 1, i = this._tangents[e].clone(), s = this._normals[e].clone(), r = this._binormals[e].clone(), n = this._tangents[t].clone(), o = this._normals[t].clone(), l = this._binormals[t].clone(), h = se.RotationQuaternionFromAxis(s, r, i), c = se.RotationQuaternionFromAxis(o, l, n);\n se.Slerp(h, c, this._pointAtData.subPosition).toRotationMatrix(this._pointAtData.interpolationMatrix);\n }\n }\n}\nclass _a {\n /**\n * Returns a Curve3 object along a Quadratic Bezier curve : https://doc.babylonjs.com/features/featuresDeepDive/mesh/drawCurves#quadratic-bezier-curve\n * @param v0 (Vector3) the origin point of the Quadratic Bezier\n * @param v1 (Vector3) the control point\n * @param v2 (Vector3) the end point of the Quadratic Bezier\n * @param nbPoints (integer) the wanted number of points in the curve\n * @returns the created Curve3\n */\n static CreateQuadraticBezier(e, t, i, s) {\n s = s > 2 ? s : 3;\n const r = [], n = (o, l, h, c) => (1 - o) * (1 - o) * l + 2 * o * (1 - o) * h + o * o * c;\n for (let o = 0; o <= s; o++)\n r.push(new g(n(o / s, e.x, t.x, i.x), n(o / s, e.y, t.y, i.y), n(o / s, e.z, t.z, i.z)));\n return new _a(r);\n }\n /**\n * Returns a Curve3 object along a Cubic Bezier curve : https://doc.babylonjs.com/features/featuresDeepDive/mesh/drawCurves#cubic-bezier-curve\n * @param v0 (Vector3) the origin point of the Cubic Bezier\n * @param v1 (Vector3) the first control point\n * @param v2 (Vector3) the second control point\n * @param v3 (Vector3) the end point of the Cubic Bezier\n * @param nbPoints (integer) the wanted number of points in the curve\n * @returns the created Curve3\n */\n static CreateCubicBezier(e, t, i, s, r) {\n r = r > 3 ? r : 4;\n const n = [], o = (l, h, c, u, d) => (1 - l) * (1 - l) * (1 - l) * h + 3 * l * (1 - l) * (1 - l) * c + 3 * l * l * (1 - l) * u + l * l * l * d;\n for (let l = 0; l <= r; l++)\n n.push(new g(o(l / r, e.x, t.x, i.x, s.x), o(l / r, e.y, t.y, i.y, s.y), o(l / r, e.z, t.z, i.z, s.z)));\n return new _a(n);\n }\n /**\n * Returns a Curve3 object along a Hermite Spline curve : https://doc.babylonjs.com/features/featuresDeepDive/mesh/drawCurves#hermite-spline\n * @param p1 (Vector3) the origin point of the Hermite Spline\n * @param t1 (Vector3) the tangent vector at the origin point\n * @param p2 (Vector3) the end point of the Hermite Spline\n * @param t2 (Vector3) the tangent vector at the end point\n * @param nSeg (integer) the number of curve segments or nSeg + 1 points in the array\n * @returns the created Curve3\n */\n static CreateHermiteSpline(e, t, i, s, r) {\n const n = [], o = 1 / r;\n for (let l = 0; l <= r; l++)\n n.push(g.Hermite(e, t, i, s, l * o));\n return new _a(n);\n }\n /**\n * Returns a Curve3 object along a CatmullRom Spline curve :\n * @param points (array of Vector3) the points the spline must pass through. At least, four points required\n * @param nbPoints (integer) the wanted number of points between each curve control points\n * @param closed (boolean) optional with default false, when true forms a closed loop from the points\n * @returns the created Curve3\n */\n static CreateCatmullRomSpline(e, t, i) {\n const s = [], r = 1 / t;\n let n = 0;\n if (i) {\n const o = e.length;\n for (let l = 0; l < o; l++) {\n n = 0;\n for (let h = 0; h < t; h++)\n s.push(g.CatmullRom(e[l % o], e[(l + 1) % o], e[(l + 2) % o], e[(l + 3) % o], n)), n += r;\n }\n s.push(s[0]);\n } else {\n const o = [];\n o.push(e[0].clone()), Array.prototype.push.apply(o, e), o.push(e[e.length - 1].clone());\n let l = 0;\n for (; l < o.length - 3; l++) {\n n = 0;\n for (let h = 0; h < t; h++)\n s.push(g.CatmullRom(o[l], o[l + 1], o[l + 2], o[l + 3], n)), n += r;\n }\n l--, s.push(g.CatmullRom(o[l], o[l + 1], o[l + 2], o[l + 3], n));\n }\n return new _a(s);\n }\n /**\n * Returns a Curve3 object along an arc through three vector3 points:\n * The three points should not be colinear. When they are the Curve3 is empty.\n * @param first (Vector3) the first point the arc must pass through.\n * @param second (Vector3) the second point the arc must pass through.\n * @param third (Vector3) the third point the arc must pass through.\n * @param steps (number) the larger the number of steps the more detailed the arc.\n * @param closed (boolean) optional with default false, when true forms the chord from the first and third point\n * @param fullCircle Circle (boolean) optional with default false, when true forms the complete circle through the three points\n * @returns the created Curve3\n */\n static ArcThru3Points(e, t, i, s = 32, r = !1, n = !1) {\n const o = [], l = t.subtract(e), h = i.subtract(t), c = e.subtract(i), u = g.Cross(l, h), d = u.length();\n if (d < Math.pow(10, -8))\n return new _a(o);\n const f = l.lengthSquared(), p = h.lengthSquared(), _ = c.lengthSquared(), m = u.lengthSquared(), x = l.length(), v = h.length(), T = c.length(), E = 0.5 * x * v * T / d, b = g.Dot(l, c), S = g.Dot(l, h), C = g.Dot(h, c), P = -0.5 * p * b / m, N = -0.5 * _ * S / m, F = -0.5 * f * C / m, $ = e.scale(P).add(t.scale(N)).add(i.scale(F)), ne = e.subtract($).normalize(), te = g.Cross(u, ne).normalize();\n if (n) {\n const le = 2 * Math.PI / s;\n for (let _e = 0; _e <= 2 * Math.PI; _e += le)\n o.push($.add(ne.scale(E * Math.cos(_e)).add(te.scale(E * Math.sin(_e)))));\n o.push(e);\n } else {\n const le = 1 / s;\n let _e = 0, Se = g.Zero();\n do\n Se = $.add(ne.scale(E * Math.cos(_e)).add(te.scale(E * Math.sin(_e)))), o.push(Se), _e += le;\n while (!Se.equalsWithEpsilon(i, E * le * 1.1));\n o.push(i), r && o.push(e);\n }\n return new _a(o);\n }\n /**\n * A Curve3 object is a logical object, so not a mesh, to handle curves in the 3D geometric space.\n * A Curve3 is designed from a series of successive Vector3.\n * Tuto : https://doc.babylonjs.com/features/featuresDeepDive/mesh/drawCurves#curve3-object\n * @param points points which make up the curve\n */\n constructor(e) {\n this._length = 0, this._points = e, this._length = this._computeLength(e);\n }\n /**\n * @returns the Curve3 stored array of successive Vector3\n */\n getPoints() {\n return this._points;\n }\n /**\n * @returns the computed length (float) of the curve.\n */\n length() {\n return this._length;\n }\n /**\n * Returns a new instance of Curve3 object : var curve = curveA.continue(curveB);\n * This new Curve3 is built by translating and sticking the curveB at the end of the curveA.\n * curveA and curveB keep unchanged.\n * @param curve the curve to continue from this curve\n * @returns the newly constructed curve\n */\n continue(e) {\n const t = this._points[this._points.length - 1], i = this._points.slice(), s = e.getPoints();\n for (let n = 1; n < s.length; n++)\n i.push(s[n].subtract(s[0]).add(t));\n return new _a(i);\n }\n _computeLength(e) {\n let t = 0;\n for (let i = 1; i < e.length; i++)\n t += e[i].subtract(e[i - 1]).length();\n return t;\n }\n}\nclass mn {\n /**\n * Creates a Size object from the given width and height (floats).\n * @param width width of the new size\n * @param height height of the new size\n */\n constructor(e, t) {\n this.width = e, this.height = t;\n }\n /**\n * Returns a string with the Size width and height\n * @returns a string with the Size width and height\n */\n toString() {\n return `{W: ${this.width}, H: ${this.height}}`;\n }\n /**\n * \"Size\"\n * @returns the string \"Size\"\n */\n getClassName() {\n return \"Size\";\n }\n /**\n * Returns the Size hash code.\n * @returns a hash code for a unique width and height\n */\n getHashCode() {\n let e = this.width | 0;\n return e = e * 397 ^ (this.height | 0), e;\n }\n /**\n * Updates the current size from the given one.\n * @param src the given size\n */\n copyFrom(e) {\n this.width = e.width, this.height = e.height;\n }\n /**\n * Updates in place the current Size from the given floats.\n * @param width width of the new size\n * @param height height of the new size\n * @returns the updated Size.\n */\n copyFromFloats(e, t) {\n return this.width = e, this.height = t, this;\n }\n /**\n * Updates in place the current Size from the given floats.\n * @param width width to set\n * @param height height to set\n * @returns the updated Size.\n */\n set(e, t) {\n return this.copyFromFloats(e, t);\n }\n /**\n * Multiplies the width and height by numbers\n * @param w factor to multiple the width by\n * @param h factor to multiple the height by\n * @returns a new Size set with the multiplication result of the current Size and the given floats.\n */\n multiplyByFloats(e, t) {\n return new mn(this.width * e, this.height * t);\n }\n /**\n * Clones the size\n * @returns a new Size copied from the given one.\n */\n clone() {\n return new mn(this.width, this.height);\n }\n /**\n * True if the current Size and the given one width and height are strictly equal.\n * @param other the other size to compare against\n * @returns True if the current Size and the given one width and height are strictly equal.\n */\n equals(e) {\n return e ? this.width === e.width && this.height === e.height : !1;\n }\n /**\n * The surface of the Size : width * height (float).\n */\n get surface() {\n return this.width * this.height;\n }\n /**\n * Create a new size of zero\n * @returns a new Size set to (0.0, 0.0)\n */\n static Zero() {\n return new mn(0, 0);\n }\n /**\n * Sums the width and height of two sizes\n * @param otherSize size to add to this size\n * @returns a new Size set as the addition result of the current Size and the given one.\n */\n add(e) {\n return new mn(this.width + e.width, this.height + e.height);\n }\n /**\n * Subtracts the width and height of two\n * @param otherSize size to subtract to this size\n * @returns a new Size set as the subtraction result of the given one from the current Size.\n */\n subtract(e) {\n return new mn(this.width - e.width, this.height - e.height);\n }\n /**\n * Scales the width and height\n * @param scale the scale to multiply the width and height by\n * @returns a new Size set with the multiplication result of the current Size and the given floats.\n */\n scale(e) {\n return new mn(this.width * e, this.height * e);\n }\n /**\n * Creates a new Size set at the linear interpolation \"amount\" between \"start\" and \"end\"\n * @param start starting size to lerp between\n * @param end end size to lerp between\n * @param amount amount to lerp between the start and end values\n * @returns a new Size set at the linear interpolation \"amount\" between \"start\" and \"end\"\n */\n static Lerp(e, t, i) {\n const s = e.width + (t.width - e.width) * i, r = e.height + (t.height - e.height) * i;\n return new mn(s, r);\n }\n}\nclass xr {\n /**\n * Creates a Viewport object located at (x, y) and sized (width, height)\n * @param x defines viewport left coordinate\n * @param y defines viewport top coordinate\n * @param width defines the viewport width\n * @param height defines the viewport height\n */\n constructor(e, t, i, s) {\n this.x = e, this.y = t, this.width = i, this.height = s;\n }\n /**\n * Creates a new viewport using absolute sizing (from 0-> width, 0-> height instead of 0->1)\n * @param renderWidth defines the rendering width\n * @param renderHeight defines the rendering height\n * @returns a new Viewport\n */\n toGlobal(e, t) {\n return new xr(this.x * e, this.y * t, this.width * e, this.height * t);\n }\n /**\n * Stores absolute viewport value into a target viewport (from 0-> width, 0-> height instead of 0->1)\n * @param renderWidth defines the rendering width\n * @param renderHeight defines the rendering height\n * @param ref defines the target viewport\n * @returns the current viewport\n */\n toGlobalToRef(e, t, i) {\n return i.x = this.x * e, i.y = this.y * t, i.width = this.width * e, i.height = this.height * t, this;\n }\n /**\n * Returns a new Viewport copied from the current one\n * @returns a new Viewport\n */\n clone() {\n return new xr(this.x, this.y, this.width, this.height);\n }\n}\nvar FS;\n(function(a) {\n a.LowPower = \"low-power\", a.HighPerformance = \"high-performance\";\n})(FS || (FS = {}));\nvar LS;\n(function(a) {\n a.DepthClipControl = \"depth-clip-control\", a.Depth32FloatStencil8 = \"depth32float-stencil8\", a.TextureCompressionBC = \"texture-compression-bc\", a.TextureCompressionETC2 = \"texture-compression-etc2\", a.TextureCompressionASTC = \"texture-compression-astc\", a.TimestampQuery = \"timestamp-query\", a.IndirectFirstInstance = \"indirect-first-instance\", a.ShaderF16 = \"shader-f16\", a.RG11B10UFloatRenderable = \"rg11b10ufloat-renderable\", a.BGRA8UnormStorage = \"bgra8unorm-storage\", a.Float32Filterable = \"float32-filterable\";\n})(LS || (LS = {}));\nvar BS;\n(function(a) {\n a.Unmapped = \"unmapped\", a.Pending = \"pending\", a.Mapped = \"mapped\";\n})(BS || (BS = {}));\nvar Kt;\n(function(a) {\n a[a.MapRead = 1] = \"MapRead\", a[a.MapWrite = 2] = \"MapWrite\", a[a.CopySrc = 4] = \"CopySrc\", a[a.CopyDst = 8] = \"CopyDst\", a[a.Index = 16] = \"Index\", a[a.Vertex = 32] = \"Vertex\", a[a.Uniform = 64] = \"Uniform\", a[a.Storage = 128] = \"Storage\", a[a.Indirect = 256] = \"Indirect\", a[a.QueryResolve = 512] = \"QueryResolve\";\n})(Kt || (Kt = {}));\nvar VS;\n(function(a) {\n a[a.Read = 1] = \"Read\", a[a.Write = 2] = \"Write\";\n})(VS || (VS = {}));\nvar US;\n(function(a) {\n a.E1d = \"1d\", a.E2d = \"2d\", a.E3d = \"3d\";\n})(US || (US = {}));\nvar kS;\n(function(a) {\n a[a.CopySrc = 1] = \"CopySrc\", a[a.CopyDst = 2] = \"CopyDst\", a[a.TextureBinding = 4] = \"TextureBinding\", a[a.StorageBinding = 8] = \"StorageBinding\", a[a.RenderAttachment = 16] = \"RenderAttachment\";\n})(kS || (kS = {}));\nvar GS;\n(function(a) {\n a.E1d = \"1d\", a.E2d = \"2d\", a.E2dArray = \"2d-array\", a.Cube = \"cube\", a.CubeArray = \"cube-array\", a.E3d = \"3d\";\n})(GS || (GS = {}));\nvar zS;\n(function(a) {\n a.All = \"all\", a.StencilOnly = \"stencil-only\", a.DepthOnly = \"depth-only\";\n})(zS || (zS = {}));\nvar WS;\n(function(a) {\n a.R8Unorm = \"r8unorm\", a.R8Snorm = \"r8snorm\", a.R8Uint = \"r8uint\", a.R8Sint = \"r8sint\", a.R16Uint = \"r16uint\", a.R16Sint = \"r16sint\", a.R16Float = \"r16float\", a.RG8Unorm = \"rg8unorm\", a.RG8Snorm = \"rg8snorm\", a.RG8Uint = \"rg8uint\", a.RG8Sint = \"rg8sint\", a.R32Uint = \"r32uint\", a.R32Sint = \"r32sint\", a.R32Float = \"r32float\", a.RG16Uint = \"rg16uint\", a.RG16Sint = \"rg16sint\", a.RG16Float = \"rg16float\", a.RGBA8Unorm = \"rgba8unorm\", a.RGBA8UnormSRGB = \"rgba8unorm-srgb\", a.RGBA8Snorm = \"rgba8snorm\", a.RGBA8Uint = \"rgba8uint\", a.RGBA8Sint = \"rgba8sint\", a.BGRA8Unorm = \"bgra8unorm\", a.BGRA8UnormSRGB = \"bgra8unorm-srgb\", a.RGB9E5UFloat = \"rgb9e5ufloat\", a.RGB10A2UINT = \"rgb10a2uint\", a.RGB10A2Unorm = \"rgb10a2unorm\", a.RG11B10UFloat = \"rg11b10ufloat\", a.RG32Uint = \"rg32uint\", a.RG32Sint = \"rg32sint\", a.RG32Float = \"rg32float\", a.RGBA16Uint = \"rgba16uint\", a.RGBA16Sint = \"rgba16sint\", a.RGBA16Float = \"rgba16float\", a.RGBA32Uint = \"rgba32uint\", a.RGBA32Sint = \"rgba32sint\", a.RGBA32Float = \"rgba32float\", a.Stencil8 = \"stencil8\", a.Depth16Unorm = \"depth16unorm\", a.Depth24Plus = \"depth24plus\", a.Depth24PlusStencil8 = \"depth24plus-stencil8\", a.Depth32Float = \"depth32float\", a.BC1RGBAUnorm = \"bc1-rgba-unorm\", a.BC1RGBAUnormSRGB = \"bc1-rgba-unorm-srgb\", a.BC2RGBAUnorm = \"bc2-rgba-unorm\", a.BC2RGBAUnormSRGB = \"bc2-rgba-unorm-srgb\", a.BC3RGBAUnorm = \"bc3-rgba-unorm\", a.BC3RGBAUnormSRGB = \"bc3-rgba-unorm-srgb\", a.BC4RUnorm = \"bc4-r-unorm\", a.BC4RSnorm = \"bc4-r-snorm\", a.BC5RGUnorm = \"bc5-rg-unorm\", a.BC5RGSnorm = \"bc5-rg-snorm\", a.BC6HRGBUFloat = \"bc6h-rgb-ufloat\", a.BC6HRGBFloat = \"bc6h-rgb-float\", a.BC7RGBAUnorm = \"bc7-rgba-unorm\", a.BC7RGBAUnormSRGB = \"bc7-rgba-unorm-srgb\", a.ETC2RGB8Unorm = \"etc2-rgb8unorm\", a.ETC2RGB8UnormSRGB = \"etc2-rgb8unorm-srgb\", a.ETC2RGB8A1Unorm = \"etc2-rgb8a1unorm\", a.ETC2RGB8A1UnormSRGB = \"etc2-rgb8a1unorm-srgb\", a.ETC2RGBA8Unorm = \"etc2-rgba8unorm\", a.ETC2RGBA8UnormSRGB = \"etc2-rgba8unorm-srgb\", a.EACR11Unorm = \"eac-r11unorm\", a.EACR11Snorm = \"eac-r11snorm\", a.EACRG11Unorm = \"eac-rg11unorm\", a.EACRG11Snorm = \"eac-rg11snorm\", a.ASTC4x4Unorm = \"astc-4x4-unorm\", a.ASTC4x4UnormSRGB = \"astc-4x4-unorm-srgb\", a.ASTC5x4Unorm = \"astc-5x4-unorm\", a.ASTC5x4UnormSRGB = \"astc-5x4-unorm-srgb\", a.ASTC5x5Unorm = \"astc-5x5-unorm\", a.ASTC5x5UnormSRGB = \"astc-5x5-unorm-srgb\", a.ASTC6x5Unorm = \"astc-6x5-unorm\", a.ASTC6x5UnormSRGB = \"astc-6x5-unorm-srgb\", a.ASTC6x6Unorm = \"astc-6x6-unorm\", a.ASTC6x6UnormSRGB = \"astc-6x6-unorm-srgb\", a.ASTC8x5Unorm = \"astc-8x5-unorm\", a.ASTC8x5UnormSRGB = \"astc-8x5-unorm-srgb\", a.ASTC8x6Unorm = \"astc-8x6-unorm\", a.ASTC8x6UnormSRGB = \"astc-8x6-unorm-srgb\", a.ASTC8x8Unorm = \"astc-8x8-unorm\", a.ASTC8x8UnormSRGB = \"astc-8x8-unorm-srgb\", a.ASTC10x5Unorm = \"astc-10x5-unorm\", a.ASTC10x5UnormSRGB = \"astc-10x5-unorm-srgb\", a.ASTC10x6Unorm = \"astc-10x6-unorm\", a.ASTC10x6UnormSRGB = \"astc-10x6-unorm-srgb\", a.ASTC10x8Unorm = \"astc-10x8-unorm\", a.ASTC10x8UnormSRGB = \"astc-10x8-unorm-srgb\", a.ASTC10x10Unorm = \"astc-10x10-unorm\", a.ASTC10x10UnormSRGB = \"astc-10x10-unorm-srgb\", a.ASTC12x10Unorm = \"astc-12x10-unorm\", a.ASTC12x10UnormSRGB = \"astc-12x10-unorm-srgb\", a.ASTC12x12Unorm = \"astc-12x12-unorm\", a.ASTC12x12UnormSRGB = \"astc-12x12-unorm-srgb\", a.Depth32FloatStencil8 = \"depth32float-stencil8\";\n})(WS || (WS = {}));\nvar HS;\n(function(a) {\n a.ClampToEdge = \"clamp-to-edge\", a.Repeat = \"repeat\", a.MirrorRepeat = \"mirror-repeat\";\n})(HS || (HS = {}));\nvar XS;\n(function(a) {\n a.Nearest = \"nearest\", a.Linear = \"linear\";\n})(XS || (XS = {}));\nvar $S;\n(function(a) {\n a.Nearest = \"nearest\", a.Linear = \"linear\";\n})($S || ($S = {}));\nvar YS;\n(function(a) {\n a.Never = \"never\", a.Less = \"less\", a.Equal = \"equal\", a.LessEqual = \"less-equal\", a.Greater = \"greater\", a.NotEqual = \"not-equal\", a.GreaterEqual = \"greater-equal\", a.Always = \"always\";\n})(YS || (YS = {}));\nvar jS;\n(function(a) {\n a[a.Vertex = 1] = \"Vertex\", a[a.Fragment = 2] = \"Fragment\", a[a.Compute = 4] = \"Compute\";\n})(jS || (jS = {}));\nvar KS;\n(function(a) {\n a.Uniform = \"uniform\", a.Storage = \"storage\", a.ReadOnlyStorage = \"read-only-storage\";\n})(KS || (KS = {}));\nvar qS;\n(function(a) {\n a.Filtering = \"filtering\", a.NonFiltering = \"non-filtering\", a.Comparison = \"comparison\";\n})(qS || (qS = {}));\nvar QS;\n(function(a) {\n a.Float = \"float\", a.UnfilterableFloat = \"unfilterable-float\", a.Depth = \"depth\", a.Sint = \"sint\", a.Uint = \"uint\";\n})(QS || (QS = {}));\nvar ZS;\n(function(a) {\n a.WriteOnly = \"write-only\", a.ReadOnly = \"read-only\", a.ReadWrite = \"read-write\";\n})(ZS || (ZS = {}));\nvar JS;\n(function(a) {\n a.Error = \"error\", a.Warning = \"warning\", a.Info = \"info\";\n})(JS || (JS = {}));\nvar eb;\n(function(a) {\n a.Validation = \"validation\", a.Internal = \"internal\";\n})(eb || (eb = {}));\nvar tb;\n(function(a) {\n a.Auto = \"auto\";\n})(tb || (tb = {}));\nvar ib;\n(function(a) {\n a.PointList = \"point-list\", a.LineList = \"line-list\", a.LineStrip = \"line-strip\", a.TriangleList = \"triangle-list\", a.TriangleStrip = \"triangle-strip\";\n})(ib || (ib = {}));\nvar sb;\n(function(a) {\n a.CCW = \"ccw\", a.CW = \"cw\";\n})(sb || (sb = {}));\nvar rb;\n(function(a) {\n a.None = \"none\", a.Front = \"front\", a.Back = \"back\";\n})(rb || (rb = {}));\nvar nb;\n(function(a) {\n a[a.Red = 1] = \"Red\", a[a.Green = 2] = \"Green\", a[a.Blue = 4] = \"Blue\", a[a.Alpha = 8] = \"Alpha\", a[a.All = 15] = \"All\";\n})(nb || (nb = {}));\nvar ab;\n(function(a) {\n a.Zero = \"zero\", a.One = \"one\", a.Src = \"src\", a.OneMinusSrc = \"one-minus-src\", a.SrcAlpha = \"src-alpha\", a.OneMinusSrcAlpha = \"one-minus-src-alpha\", a.Dst = \"dst\", a.OneMinusDst = \"one-minus-dst\", a.DstAlpha = \"dst-alpha\", a.OneMinusDstAlpha = \"one-minus-dst-alpha\", a.SrcAlphaSaturated = \"src-alpha-saturated\", a.Constant = \"constant\", a.OneMinusConstant = \"one-minus-constant\";\n})(ab || (ab = {}));\nvar ob;\n(function(a) {\n a.Add = \"add\", a.Subtract = \"subtract\", a.ReverseSubtract = \"reverse-subtract\", a.Min = \"min\", a.Max = \"max\";\n})(ob || (ob = {}));\nvar lb;\n(function(a) {\n a.Keep = \"keep\", a.Zero = \"zero\", a.Replace = \"replace\", a.Invert = \"invert\", a.IncrementClamp = \"increment-clamp\", a.DecrementClamp = \"decrement-clamp\", a.IncrementWrap = \"increment-wrap\", a.DecrementWrap = \"decrement-wrap\";\n})(lb || (lb = {}));\nvar hb;\n(function(a) {\n a.Uint16 = \"uint16\", a.Uint32 = \"uint32\";\n})(hb || (hb = {}));\nvar cb;\n(function(a) {\n a.Uint8x2 = \"uint8x2\", a.Uint8x4 = \"uint8x4\", a.Sint8x2 = \"sint8x2\", a.Sint8x4 = \"sint8x4\", a.Unorm8x2 = \"unorm8x2\", a.Unorm8x4 = \"unorm8x4\", a.Snorm8x2 = \"snorm8x2\", a.Snorm8x4 = \"snorm8x4\", a.Uint16x2 = \"uint16x2\", a.Uint16x4 = \"uint16x4\", a.Sint16x2 = \"sint16x2\", a.Sint16x4 = \"sint16x4\", a.Unorm16x2 = \"unorm16x2\", a.Unorm16x4 = \"unorm16x4\", a.Snorm16x2 = \"snorm16x2\", a.Snorm16x4 = \"snorm16x4\", a.Float16x2 = \"float16x2\", a.Float16x4 = \"float16x4\", a.Float32 = \"float32\", a.Float32x2 = \"float32x2\", a.Float32x3 = \"float32x3\", a.Float32x4 = \"float32x4\", a.Uint32 = \"uint32\", a.Uint32x2 = \"uint32x2\", a.Uint32x3 = \"uint32x3\", a.Uint32x4 = \"uint32x4\", a.Sint32 = \"sint32\", a.Sint32x2 = \"sint32x2\", a.Sint32x3 = \"sint32x3\", a.Sint32x4 = \"sint32x4\", a.UNORM10x10x10x2 = \"unorm10-10-10-2\";\n})(cb || (cb = {}));\nvar ub;\n(function(a) {\n a.Vertex = \"vertex\", a.Instance = \"instance\";\n})(ub || (ub = {}));\nvar db;\n(function(a) {\n a.Beginning = \"beginning\", a.End = \"end\";\n})(db || (db = {}));\nvar fb;\n(function(a) {\n a.Beginning = \"beginning\", a.End = \"end\";\n})(fb || (fb = {}));\nvar pb;\n(function(a) {\n a.Load = \"load\", a.Clear = \"clear\";\n})(pb || (pb = {}));\nvar _b;\n(function(a) {\n a.Store = \"store\", a.Discard = \"discard\";\n})(_b || (_b = {}));\nvar mb;\n(function(a) {\n a.Occlusion = \"occlusion\", a.Timestamp = \"timestamp\";\n})(mb || (mb = {}));\nvar gb;\n(function(a) {\n a.Opaque = \"opaque\", a.Premultiplied = \"premultiplied\";\n})(gb || (gb = {}));\nvar xb;\n(function(a) {\n a.Unknown = \"unknown\", a.Destroyed = \"destroyed\";\n})(xb || (xb = {}));\nvar vb;\n(function(a) {\n a.Validation = \"validation\", a.OutOfMemory = \"out-of-memory\", a.Internal = \"internal\";\n})(vb || (vb = {}));\nclass ds {\n constructor() {\n this.shaderLanguage = 0;\n }\n _addUniformToLeftOverUBO(e, t, i) {\n let s = 0;\n [e, t, s] = this._getArraySize(e, t, i);\n for (let r = 0; r < this._webgpuProcessingContext.leftOverUniforms.length; r++)\n if (this._webgpuProcessingContext.leftOverUniforms[r].name === e)\n return;\n this._webgpuProcessingContext.leftOverUniforms.push({\n name: e,\n type: t,\n length: s\n });\n }\n _buildLeftOverUBO() {\n if (!this._webgpuProcessingContext.leftOverUniforms.length)\n return \"\";\n const e = ds.LeftOvertUBOName;\n let t = this._webgpuProcessingContext.availableBuffers[e];\n return t || (t = {\n binding: this._webgpuProcessingContext.getNextFreeUBOBinding()\n }, this._webgpuProcessingContext.availableBuffers[e] = t, this._addBufferBindingDescription(e, t, \"uniform\", !0), this._addBufferBindingDescription(e, t, \"uniform\", !1)), this._generateLeftOverUBOCode(e, t);\n }\n _collectBindingNames() {\n for (let e = 0; e < this._webgpuProcessingContext.bindGroupLayoutEntries.length; e++) {\n const t = this._webgpuProcessingContext.bindGroupLayoutEntries[e];\n if (t === void 0) {\n this._webgpuProcessingContext.bindGroupLayoutEntries[e] = [];\n continue;\n }\n for (let i = 0; i < t.length; i++) {\n const s = this._webgpuProcessingContext.bindGroupLayoutEntries[e][i], r = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[e][s.binding].name, n = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[e][s.binding].nameInArrayOfTexture;\n s && (s.texture || s.externalTexture || s.storageTexture ? this._webgpuProcessingContext.textureNames.push(n) : s.sampler ? this._webgpuProcessingContext.samplerNames.push(r) : s.buffer && this._webgpuProcessingContext.bufferNames.push(r));\n }\n }\n }\n _preCreateBindGroupEntries() {\n const e = this._webgpuProcessingContext.bindGroupEntries;\n for (let t = 0; t < this._webgpuProcessingContext.bindGroupLayoutEntries.length; t++) {\n const i = this._webgpuProcessingContext.bindGroupLayoutEntries[t], s = [];\n for (let r = 0; r < i.length; r++) {\n const n = this._webgpuProcessingContext.bindGroupLayoutEntries[t][r];\n n.sampler || n.texture || n.storageTexture || n.externalTexture ? s.push({\n binding: n.binding,\n resource: void 0\n }) : n.buffer && s.push({\n binding: n.binding,\n resource: {\n buffer: void 0,\n offset: 0,\n size: 0\n }\n });\n }\n e[t] = s;\n }\n }\n _addTextureBindingDescription(e, t, i, s, r, n) {\n let { groupIndex: o, bindingIndex: l } = t.textures[i];\n if (this._webgpuProcessingContext.bindGroupLayoutEntries[o] || (this._webgpuProcessingContext.bindGroupLayoutEntries[o] = [], this._webgpuProcessingContext.bindGroupLayoutEntryInfo[o] = []), !this._webgpuProcessingContext.bindGroupLayoutEntryInfo[o][l]) {\n let h;\n s === null ? h = this._webgpuProcessingContext.bindGroupLayoutEntries[o].push({\n binding: l,\n visibility: 0,\n externalTexture: {}\n }) : r ? h = this._webgpuProcessingContext.bindGroupLayoutEntries[o].push({\n binding: l,\n visibility: 0,\n storageTexture: {\n access: \"write-only\",\n format: r,\n viewDimension: s\n }\n }) : h = this._webgpuProcessingContext.bindGroupLayoutEntries[o].push({\n binding: l,\n visibility: 0,\n texture: {\n sampleType: t.sampleType,\n viewDimension: s,\n multisampled: !1\n }\n });\n const c = t.isTextureArray ? e + i : e;\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[o][l] = { name: e, index: h - 1, nameInArrayOfTexture: c };\n }\n l = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[o][l].index, n ? this._webgpuProcessingContext.bindGroupLayoutEntries[o][l].visibility |= 1 : this._webgpuProcessingContext.bindGroupLayoutEntries[o][l].visibility |= 2;\n }\n _addSamplerBindingDescription(e, t, i) {\n let { groupIndex: s, bindingIndex: r } = t.binding;\n if (this._webgpuProcessingContext.bindGroupLayoutEntries[s] || (this._webgpuProcessingContext.bindGroupLayoutEntries[s] = [], this._webgpuProcessingContext.bindGroupLayoutEntryInfo[s] = []), !this._webgpuProcessingContext.bindGroupLayoutEntryInfo[s][r]) {\n const n = this._webgpuProcessingContext.bindGroupLayoutEntries[s].push({\n binding: r,\n visibility: 0,\n sampler: {\n type: t.type\n }\n });\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[s][r] = { name: e, index: n - 1 };\n }\n r = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[s][r].index, i ? this._webgpuProcessingContext.bindGroupLayoutEntries[s][r].visibility |= 1 : this._webgpuProcessingContext.bindGroupLayoutEntries[s][r].visibility |= 2;\n }\n _addBufferBindingDescription(e, t, i, s) {\n let { groupIndex: r, bindingIndex: n } = t.binding;\n if (this._webgpuProcessingContext.bindGroupLayoutEntries[r] || (this._webgpuProcessingContext.bindGroupLayoutEntries[r] = [], this._webgpuProcessingContext.bindGroupLayoutEntryInfo[r] = []), !this._webgpuProcessingContext.bindGroupLayoutEntryInfo[r][n]) {\n const o = this._webgpuProcessingContext.bindGroupLayoutEntries[r].push({\n binding: n,\n visibility: 0,\n buffer: {\n type: i\n }\n });\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[r][n] = { name: e, index: o - 1 };\n }\n n = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[r][n].index, s ? this._webgpuProcessingContext.bindGroupLayoutEntries[r][n].visibility |= 1 : this._webgpuProcessingContext.bindGroupLayoutEntries[r][n].visibility |= 2;\n }\n}\nds.LeftOvertUBOName = \"LeftOver\";\nds.InternalsUBOName = \"Internals\";\nds.UniformSizes = {\n // GLSL types\n bool: 1,\n int: 1,\n float: 1,\n vec2: 2,\n ivec2: 2,\n uvec2: 2,\n vec3: 3,\n ivec3: 3,\n uvec3: 3,\n vec4: 4,\n ivec4: 4,\n uvec4: 4,\n mat2: 4,\n mat3: 12,\n mat4: 16,\n // WGSL types\n i32: 1,\n u32: 1,\n f32: 1,\n mat2x2: 4,\n mat3x3: 12,\n mat4x4: 16,\n mat2x2f: 4,\n mat3x3f: 12,\n mat4x4f: 16,\n vec2i: 2,\n vec3i: 3,\n vec4i: 4,\n vec2u: 2,\n vec3u: 3,\n vec4u: 4,\n vec2f: 2,\n vec3f: 3,\n vec4f: 4,\n vec2h: 1,\n vec3h: 2,\n vec4h: 2\n};\nds._SamplerFunctionByWebGLSamplerType = {\n sampler2D: \"sampler2D\",\n sampler2DArray: \"sampler2DArray\",\n sampler2DShadow: \"sampler2DShadow\",\n sampler2DArrayShadow: \"sampler2DArrayShadow\",\n samplerCube: \"samplerCube\",\n sampler3D: \"sampler3D\"\n};\nds._TextureTypeByWebGLSamplerType = {\n sampler2D: \"texture2D\",\n sampler2DArray: \"texture2DArray\",\n sampler2DShadow: \"texture2D\",\n sampler2DArrayShadow: \"texture2DArray\",\n samplerCube: \"textureCube\",\n samplerCubeArray: \"textureCubeArray\",\n sampler3D: \"texture3D\"\n};\nds._GpuTextureViewDimensionByWebGPUTextureType = {\n textureCube: \"cube\",\n textureCubeArray: \"cube-array\",\n texture2D: \"2d\",\n texture2DArray: \"2d-array\",\n texture3D: \"3d\"\n};\nds._SamplerTypeByWebGLSamplerType = {\n sampler2DShadow: \"samplerShadow\",\n sampler2DArrayShadow: \"samplerShadow\"\n};\nds._IsComparisonSamplerByWebGPUSamplerType = {\n samplerShadow: !0,\n samplerArrayShadow: !0,\n sampler: !1\n};\nclass EM {\n get isAsync() {\n return !1;\n }\n get isReady() {\n return !!this.stages;\n }\n constructor(e, t) {\n this.bindGroupLayouts = {}, this._name = \"unnamed\", this.shaderProcessingContext = e, this._leftOverUniformsByName = {}, this.engine = t, this.vertexBufferKindToType = {};\n }\n _handlesSpectorRebuildCallback() {\n }\n _fillEffectInformation(e, t, i, s, r, n, o, l) {\n const h = this.engine;\n h._doNotHandleContextLost && (e._fragmentSourceCode = \"\", e._vertexSourceCode = \"\");\n const c = this.shaderProcessingContext.availableTextures;\n let u;\n for (u = 0; u < r.length; u++) {\n const p = r[u], _ = c[r[u]];\n _ == null || _ == null ? (r.splice(u, 1), u--) : n[p] = u;\n }\n for (const p of h.getAttributes(this, o))\n l.push(p);\n this.buildUniformLayout();\n const d = [], f = [];\n for (u = 0; u < o.length; u++) {\n const p = l[u];\n p >= 0 && (d.push(o[u]), f.push(p));\n }\n this.shaderProcessingContext.attributeNamesFromEffect = d, this.shaderProcessingContext.attributeLocationsFromEffect = f;\n }\n /** @internal */\n /**\n * Build the uniform buffer used in the material.\n */\n buildUniformLayout() {\n if (this.shaderProcessingContext.leftOverUniforms.length) {\n this.uniformBuffer = new Ve(this.engine, void 0, void 0, \"leftOver-\" + this._name);\n for (const e of this.shaderProcessingContext.leftOverUniforms) {\n const t = e.type.replace(/^(.*?)(<.*>)?$/, \"$1\"), i = ds.UniformSizes[t];\n this.uniformBuffer.addUniform(e.name, i, e.length), this._leftOverUniformsByName[e.name] = e.type;\n }\n this.uniformBuffer.create();\n }\n }\n setEngine(e) {\n this.engine = e;\n }\n /**\n * Release all associated resources.\n **/\n dispose() {\n this.uniformBuffer && this.uniformBuffer.dispose();\n }\n /**\n * Sets an integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n */\n setInt(e, t) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateInt(e, t);\n }\n /**\n * Sets an int2 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int2.\n * @param y Second int in int2.\n */\n setInt2(e, t, i) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateInt2(e, t, i);\n }\n /**\n * Sets an int3 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int3.\n * @param y Second int in int3.\n * @param z Third int in int3.\n */\n setInt3(e, t, i, s) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateInt3(e, t, i, s);\n }\n /**\n * Sets an int4 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int4.\n * @param y Second int in int4.\n * @param z Third int in int4.\n * @param w Fourth int in int4.\n */\n setInt4(e, t, i, s, r) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateInt4(e, t, i, s, r);\n }\n /**\n * Sets an int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray(e, t) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateIntArray(e, t);\n }\n /**\n * Sets an int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray2(e, t) {\n this.setIntArray(e, t);\n }\n /**\n * Sets an int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray3(e, t) {\n this.setIntArray(e, t);\n }\n /**\n * Sets an int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray4(e, t) {\n this.setIntArray(e, t);\n }\n /**\n * Sets an unsigned integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n */\n setUInt(e, t) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateUInt(e, t);\n }\n /**\n * Sets an unsigned int2 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint2.\n * @param y Second unsigned int in uint2.\n */\n setUInt2(e, t, i) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateUInt2(e, t, i);\n }\n /**\n * Sets an unsigned int3 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint3.\n * @param y Second unsigned int in uint3.\n * @param z Third unsigned int in uint3.\n */\n setUInt3(e, t, i, s) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateUInt3(e, t, i, s);\n }\n /**\n * Sets an unsigned int4 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint4.\n * @param y Second unsigned int in uint4.\n * @param z Third unsigned int in uint4.\n * @param w Fourth unsigned int in uint4.\n */\n setUInt4(e, t, i, s, r) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateUInt4(e, t, i, s, r);\n }\n /**\n * Sets an unsigned int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray(e, t) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateUIntArray(e, t);\n }\n /**\n * Sets an unsigned int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray2(e, t) {\n this.setUIntArray(e, t);\n }\n /**\n * Sets an unsigned int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray3(e, t) {\n this.setUIntArray(e, t);\n }\n /**\n * Sets an unsigned int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray4(e, t) {\n this.setUIntArray(e, t);\n }\n /**\n * Sets an array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray(e, t) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateArray(e, t);\n }\n /**\n * Sets an array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray2(e, t) {\n this.setArray(e, t);\n }\n /**\n * Sets an array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray3(e, t) {\n this.setArray(e, t);\n }\n /**\n * Sets an array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray4(e, t) {\n this.setArray(e, t);\n }\n /**\n * Sets matrices on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrices matrices to be set.\n */\n setMatrices(e, t) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateMatrices(e, t);\n }\n /**\n * Sets matrix on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix(e, t) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateMatrix(e, t);\n }\n /**\n * Sets a 3x3 matrix on a uniform variable. (Specified as [1,2,3,4,5,6,7,8,9] will result in [1,2,3][4,5,6][7,8,9] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix3x3(e, t) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateMatrix3x3(e, t);\n }\n /**\n * Sets a 2x2 matrix on a uniform variable. (Specified as [1,2,3,4] will result in [1,2][3,4] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix2x2(e, t) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateMatrix2x2(e, t);\n }\n /**\n * Sets a float on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value value to be set.\n */\n setFloat(e, t) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateFloat(e, t);\n }\n /**\n * Sets a Vector2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector2 vector2 to be set.\n */\n setVector2(e, t) {\n this.setFloat2(e, t.x, t.y);\n }\n /**\n * Sets a float2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float2.\n * @param y Second float in float2.\n */\n setFloat2(e, t, i) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateFloat2(e, t, i);\n }\n /**\n * Sets a Vector3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector3 Value to be set.\n */\n setVector3(e, t) {\n this.setFloat3(e, t.x, t.y, t.z);\n }\n /**\n * Sets a float3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float3.\n * @param y Second float in float3.\n * @param z Third float in float3.\n */\n setFloat3(e, t, i, s) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateFloat3(e, t, i, s);\n }\n /**\n * Sets a Vector4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector4 Value to be set.\n */\n setVector4(e, t) {\n this.setFloat4(e, t.x, t.y, t.z, t.w);\n }\n /**\n * Sets a Quaternion on a uniform variable.\n * @param uniformName Name of the variable.\n * @param quaternion Value to be set.\n */\n setQuaternion(e, t) {\n this.setFloat4(e, t.x, t.y, t.z, t.w);\n }\n /**\n * Sets a float4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float4.\n * @param y Second float in float4.\n * @param z Third float in float4.\n * @param w Fourth float in float4.\n */\n setFloat4(e, t, i, s, r) {\n !this.uniformBuffer || !this._leftOverUniformsByName[e] || this.uniformBuffer.updateFloat4(e, t, i, s, r);\n }\n /**\n * Sets a Color3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n */\n setColor3(e, t) {\n this.setFloat3(e, t.r, t.g, t.b);\n }\n /**\n * Sets a Color4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n * @param alpha Alpha value to be set.\n */\n setColor4(e, t, i) {\n this.setFloat4(e, t.r, t.g, t.b, i);\n }\n /**\n * Sets a Color4 on a uniform variable\n * @param uniformName defines the name of the variable\n * @param color4 defines the value to be set\n */\n setDirectColor4(e, t) {\n this.setFloat4(e, t.r, t.g, t.b, t.a);\n }\n _getVertexShaderCode() {\n var e;\n return (e = this.sources) == null ? void 0 : e.vertex;\n }\n _getFragmentShaderCode() {\n var e;\n return (e = this.sources) == null ? void 0 : e.fragment;\n }\n}\nconst yM = 4, CM = 65536, Tb = {\n // GLSL types\n mat2: 2,\n mat3: 3,\n mat4: 4,\n // WGSL types\n mat2x2: 2,\n mat3x3: 3,\n mat4x4: 4\n};\nclass an {\n static get KnownUBOs() {\n return an._SimplifiedKnownBindings ? an._SimplifiedKnownUBOs : an._KnownUBOs;\n }\n constructor(e) {\n this.vertexBufferKindToNumberOfComponents = {}, this.shaderLanguage = e, this._attributeNextLocation = 0, this._varyingNextLocation = 0, this.freeGroupIndex = 0, this.freeBindingIndex = 0, this.availableVaryings = {}, this.availableAttributes = {}, this.availableBuffers = {}, this.availableTextures = {}, this.availableSamplers = {}, this.orderedAttributes = [], this.bindGroupLayoutEntries = [], this.bindGroupLayoutEntryInfo = [], this.bindGroupEntries = [], this.bufferNames = [], this.textureNames = [], this.samplerNames = [], this.leftOverUniforms = [], this._findStartingGroupBinding();\n }\n _findStartingGroupBinding() {\n const e = an.KnownUBOs, t = [];\n for (const i in e) {\n const s = e[i].binding;\n s.groupIndex !== -1 && (t[s.groupIndex] === void 0 ? t[s.groupIndex] = s.bindingIndex : t[s.groupIndex] = Math.max(t[s.groupIndex], s.bindingIndex));\n }\n this.freeGroupIndex = t.length - 1, this.freeGroupIndex === 0 ? (this.freeGroupIndex++, this.freeBindingIndex = 0) : this.freeBindingIndex = t[t.length - 1] + 1;\n }\n getAttributeNextLocation(e, t = 0) {\n const i = this._attributeNextLocation;\n return this._attributeNextLocation += (Tb[e] ?? 1) * (t || 1), i;\n }\n getVaryingNextLocation(e, t = 0) {\n const i = this._varyingNextLocation;\n return this._varyingNextLocation += (Tb[e] ?? 1) * (t || 1), i;\n }\n getNextFreeUBOBinding() {\n return this._getNextFreeBinding(1);\n }\n _getNextFreeBinding(e) {\n if (this.freeBindingIndex > CM - e && (this.freeGroupIndex++, this.freeBindingIndex = 0), this.freeGroupIndex === yM)\n throw \"Too many textures or UBOs have been declared and it is not supported in WebGPU.\";\n const t = {\n groupIndex: this.freeGroupIndex,\n bindingIndex: this.freeBindingIndex\n };\n return this.freeBindingIndex += e, t;\n }\n}\nan._SimplifiedKnownBindings = !0;\nan._SimplifiedKnownUBOs = {\n Scene: { binding: { groupIndex: 0, bindingIndex: 0 } },\n Light0: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light1: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light2: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light3: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light4: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light5: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light6: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light7: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light8: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light9: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light10: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light11: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light12: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light13: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light14: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light15: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light16: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light17: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light18: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light19: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light20: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light21: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light22: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light23: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light24: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light25: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light26: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light27: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light28: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light29: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light30: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light31: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Material: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Mesh: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Internals: { binding: { groupIndex: -1, bindingIndex: -1 } }\n};\nan._KnownUBOs = {\n Scene: { binding: { groupIndex: 0, bindingIndex: 0 } },\n Light0: { binding: { groupIndex: 1, bindingIndex: 0 } },\n Light1: { binding: { groupIndex: 1, bindingIndex: 1 } },\n Light2: { binding: { groupIndex: 1, bindingIndex: 2 } },\n Light3: { binding: { groupIndex: 1, bindingIndex: 3 } },\n Light4: { binding: { groupIndex: 1, bindingIndex: 4 } },\n Light5: { binding: { groupIndex: 1, bindingIndex: 5 } },\n Light6: { binding: { groupIndex: 1, bindingIndex: 6 } },\n Light7: { binding: { groupIndex: 1, bindingIndex: 7 } },\n Light8: { binding: { groupIndex: 1, bindingIndex: 8 } },\n Light9: { binding: { groupIndex: 1, bindingIndex: 9 } },\n Light10: { binding: { groupIndex: 1, bindingIndex: 10 } },\n Light11: { binding: { groupIndex: 1, bindingIndex: 11 } },\n Light12: { binding: { groupIndex: 1, bindingIndex: 12 } },\n Light13: { binding: { groupIndex: 1, bindingIndex: 13 } },\n Light14: { binding: { groupIndex: 1, bindingIndex: 14 } },\n Light15: { binding: { groupIndex: 1, bindingIndex: 15 } },\n Light16: { binding: { groupIndex: 1, bindingIndex: 16 } },\n Light17: { binding: { groupIndex: 1, bindingIndex: 17 } },\n Light18: { binding: { groupIndex: 1, bindingIndex: 18 } },\n Light19: { binding: { groupIndex: 1, bindingIndex: 19 } },\n Light20: { binding: { groupIndex: 1, bindingIndex: 20 } },\n Light21: { binding: { groupIndex: 1, bindingIndex: 21 } },\n Light22: { binding: { groupIndex: 1, bindingIndex: 22 } },\n Light23: { binding: { groupIndex: 1, bindingIndex: 23 } },\n Light24: { binding: { groupIndex: 1, bindingIndex: 24 } },\n Light25: { binding: { groupIndex: 1, bindingIndex: 25 } },\n Light26: { binding: { groupIndex: 1, bindingIndex: 26 } },\n Light27: { binding: { groupIndex: 1, bindingIndex: 27 } },\n Light28: { binding: { groupIndex: 1, bindingIndex: 28 } },\n Light29: { binding: { groupIndex: 1, bindingIndex: 29 } },\n Light30: { binding: { groupIndex: 1, bindingIndex: 30 } },\n Light31: { binding: { groupIndex: 1, bindingIndex: 31 } },\n Material: { binding: { groupIndex: 2, bindingIndex: 0 } },\n Mesh: { binding: { groupIndex: 2, bindingIndex: 1 } },\n Internals: { binding: { groupIndex: 2, bindingIndex: 2 } }\n};\nfunction tp(a, e, t, i) {\n let s = i, r = 0, n = \"\";\n for (; s < t.length; ) {\n const o = t.charAt(s);\n if (n)\n o === n ? n === '\"' || n === \"'\" ? t.charAt(s - 1) !== \"\\\\\" && (n = \"\") : n = \"\" : n === \"*/\" && o === \"*\" && s + 1 < t.length && (t.charAt(s + 1) === \"/\" && (n = \"\"), n === \"\" && s++);\n else\n switch (o) {\n case a:\n r++;\n break;\n case e:\n r--;\n break;\n case '\"':\n case \"'\":\n case \"`\":\n n = o;\n break;\n case \"/\":\n if (s + 1 < t.length) {\n const l = t.charAt(s + 1);\n l === \"/\" ? n = `\n` : l === \"*\" && (n = \"*/\");\n }\n break;\n }\n if (s++, r === 0)\n break;\n }\n return r === 0 ? s - 1 : -1;\n}\nfunction Sb(a, e) {\n for (; e < a.length; ) {\n const t = a[e];\n if (t !== \" \" && t !== `\n` && t !== \"\\r\" && t !== \"\t\" && t !== `\n` && t !== \" \")\n break;\n e++;\n }\n return e;\n}\nfunction Fm(a) {\n const e = a.charCodeAt(0);\n return e >= 48 && e <= 57 || // 0-9\n e >= 65 && e <= 90 || // A-Z\n e >= 97 && e <= 122 || // a-z\n e == 95;\n}\nfunction Eg(a) {\n let e = 0, t = \"\", i = !1;\n const s = [];\n for (; e < a.length; ) {\n const r = a.charAt(e);\n if (t)\n r === t ? t === '\"' || t === \"'\" ? (a.charAt(e - 1) !== \"\\\\\" && (t = \"\"), s.push(r)) : (t = \"\", i = !1) : t === \"*/\" && r === \"*\" && e + 1 < a.length ? (a.charAt(e + 1) === \"/\" && (t = \"\"), t === \"\" && (i = !1, e++)) : i || s.push(r);\n else {\n switch (r) {\n case '\"':\n case \"'\":\n case \"`\":\n t = r;\n break;\n case \"/\":\n if (e + 1 < a.length) {\n const n = a.charAt(e + 1);\n n === \"/\" ? (t = `\n`, i = !0) : n === \"*\" && (t = \"*/\", i = !0);\n }\n break;\n }\n i || s.push(r);\n }\n e++;\n }\n return s.join(\"\");\n}\nfunction AM(a, e, t, i) {\n for (; e >= 0 && a.charAt(e) !== t && (!i || a.charAt(e) !== i); )\n e--;\n return e;\n}\nfunction RM(a) {\n return a.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\nfunction Np(a, e, t, i) {\n let s = a.indexOf(e);\n if (s < 0)\n return a;\n if (t) {\n for (; s++ < a.length && a.charAt(s) != \"{\"; )\n ;\n if (s < a.length) {\n const r = a.substring(0, s + 1), n = a.substring(s + 1);\n a = r + t + n;\n }\n }\n if (i) {\n const r = a.lastIndexOf(\"}\");\n a = a.substring(0, r), a += i + `\n}`;\n }\n return a;\n}\nclass IM extends ds {\n constructor() {\n super(...arguments), this._missingVaryings = [], this._textureArrayProcessing = [], this._vertexIsGLES3 = !1, this._fragmentIsGLES3 = !1, this.shaderLanguage = 0, this.parseGLES3 = !0;\n }\n _getArraySize(e, t, i) {\n let s = 0;\n const r = e.indexOf(\"[\"), n = e.indexOf(\"]\");\n if (r > 0 && n > 0) {\n const o = e.substring(r + 1, n);\n s = +o, isNaN(s) && (s = +i[o.trim()]), e = e.substr(0, r);\n }\n return [e, t, s];\n }\n initializeShaders(e) {\n this._webgpuProcessingContext = e, this._missingVaryings.length = 0, this._textureArrayProcessing.length = 0, this.attributeKeywordName = void 0, this.varyingVertexKeywordName = void 0, this.varyingFragmentKeywordName = void 0;\n }\n preProcessShaderCode(e, t) {\n const i = `// Internals UBO\nuniform ${ds.InternalsUBOName} {\nfloat yFactor_;\nfloat textureOutputHeight_;\n};\n`, s = e.indexOf(\"// Internals UBO\") !== -1;\n return t ? (this._fragmentIsGLES3 = e.indexOf(\"#version 3\") !== -1, this._fragmentIsGLES3 && (this.varyingFragmentKeywordName = \"in\"), s ? e : i + `##INJECTCODE##\n` + e) : (this._vertexIsGLES3 = e.indexOf(\"#version 3\") !== -1, this._vertexIsGLES3 && (this.attributeKeywordName = \"in\", this.varyingVertexKeywordName = \"out\"), s ? e : i + e);\n }\n varyingCheck(e, t) {\n const i = /(flat\\s)?\\s*\\bout\\b/, s = /(flat\\s)?\\s*\\bin\\b/, r = /(flat\\s)?\\s*\\bvarying\\b/;\n return (t && this._fragmentIsGLES3 ? s : !t && this._vertexIsGLES3 ? i : r).test(e);\n }\n varyingProcessor(e, t, i) {\n this._preProcessors = i;\n const s = /\\s*(flat)?\\s*out\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s+(\\S+)\\s*;/gm, r = /\\s*(flat)?\\s*in\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s+(\\S+)\\s*;/gm, n = /\\s*(flat)?\\s*varying\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s+(\\S+)\\s*;/gm, l = (t && this._fragmentIsGLES3 ? r : !t && this._vertexIsGLES3 ? s : n).exec(e);\n if (l !== null) {\n const h = l[1] ?? \"\", c = l[2], u = l[3];\n let d;\n t ? (d = this._webgpuProcessingContext.availableVaryings[u], this._missingVaryings[d] = \"\", d === void 0 && L.Warn(`Invalid fragment shader: The varying named \"${u}\" is not declared in the vertex shader! This declaration will be ignored.`)) : (d = this._webgpuProcessingContext.getVaryingNextLocation(c, this._getArraySize(u, c, i)[2]), this._webgpuProcessingContext.availableVaryings[u] = d, this._missingVaryings[d] = `layout(location = ${d}) ${h} in ${c} ${u};`), e = e.replace(l[0], d === void 0 ? \"\" : `layout(location = ${d}) ${h} ${t ? \"in\" : \"out\"} ${c} ${u};`);\n }\n return e;\n }\n attributeProcessor(e, t) {\n this._preProcessors = t;\n const i = /\\s*in\\s+(\\S+)\\s+(\\S+)\\s*;/gm, s = /\\s*attribute\\s+(\\S+)\\s+(\\S+)\\s*;/gm, n = (this._vertexIsGLES3 ? i : s).exec(e);\n if (n !== null) {\n const o = n[1], l = n[2], h = this._webgpuProcessingContext.getAttributeNextLocation(o, this._getArraySize(l, o, t)[2]);\n this._webgpuProcessingContext.availableAttributes[l] = h, this._webgpuProcessingContext.orderedAttributes[h] = l;\n const c = this._webgpuProcessingContext.vertexBufferKindToNumberOfComponents[l];\n if (c !== void 0) {\n const u = c < 0 ? c === -1 ? \"int\" : \"ivec\" + -c : c === 1 ? \"uint\" : \"uvec\" + c, d = `_int_${l}_`;\n e = e.replace(n[0], `layout(location = ${h}) in ${u} ${d}; ${o} ${l} = ${o}(${d});`);\n } else\n e = e.replace(n[0], `layout(location = ${h}) in ${o} ${l};`);\n }\n return e;\n }\n uniformProcessor(e, t, i) {\n this._preProcessors = i;\n const r = /\\s*uniform\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s+(\\S+)\\s*;/gm.exec(e);\n if (r !== null) {\n let n = r[1], o = r[2];\n if (n.indexOf(\"sampler\") === 0 || n.indexOf(\"sampler\") === 1) {\n let l = 0;\n [o, n, l] = this._getArraySize(o, n, i);\n let h = this._webgpuProcessingContext.availableTextures[o];\n if (!h) {\n h = {\n autoBindSampler: !0,\n isTextureArray: l > 0,\n isStorageTexture: !1,\n textures: [],\n sampleType: \"float\"\n };\n for (let C = 0; C < (l || 1); ++C)\n h.textures.push(this._webgpuProcessingContext.getNextFreeUBOBinding());\n }\n const c = ds._SamplerTypeByWebGLSamplerType[n] ?? \"sampler\", u = !!ds._IsComparisonSamplerByWebGPUSamplerType[c], d = u ? \"comparison\" : \"filtering\", f = o + \"Sampler\";\n let p = this._webgpuProcessingContext.availableSamplers[f];\n p || (p = {\n binding: this._webgpuProcessingContext.getNextFreeUBOBinding(),\n type: d\n });\n const _ = n.charAt(0) === \"u\" ? \"u\" : n.charAt(0) === \"i\" ? \"i\" : \"\";\n _ && (n = n.substr(1));\n const m = u ? \"depth\" : _ === \"u\" ? \"uint\" : _ === \"i\" ? \"sint\" : \"float\";\n h.sampleType = m;\n const x = l > 0, v = p.binding.groupIndex, T = p.binding.bindingIndex, E = ds._SamplerFunctionByWebGLSamplerType[n], b = ds._TextureTypeByWebGLSamplerType[n], S = ds._GpuTextureViewDimensionByWebGPUTextureType[b];\n if (!x)\n l = 1, e = `layout(set = ${v}, binding = ${T}) uniform ${c} ${f};\n layout(set = ${h.textures[0].groupIndex}, binding = ${h.textures[0].bindingIndex}) uniform ${_}${b} ${o}Texture;\n #define ${o} ${_}${E}(${o}Texture, ${f})`;\n else {\n const C = [];\n C.push(`layout(set = ${v}, binding = ${T}) uniform ${_}${c} ${f};`), e = `\n`;\n for (let P = 0; P < l; ++P) {\n const N = h.textures[P].groupIndex, F = h.textures[P].bindingIndex;\n C.push(`layout(set = ${N}, binding = ${F}) uniform ${b} ${o}Texture${P};`), e += `${P > 0 ? `\n` : \"\"}#define ${o}${P} ${_}${E}(${o}Texture${P}, ${f})`;\n }\n e = C.join(`\n`) + e, this._textureArrayProcessing.push(o);\n }\n this._webgpuProcessingContext.availableTextures[o] = h, this._webgpuProcessingContext.availableSamplers[f] = p, this._addSamplerBindingDescription(f, p, !t);\n for (let C = 0; C < l; ++C)\n this._addTextureBindingDescription(o, h, C, S, null, !t);\n } else\n this._addUniformToLeftOverUBO(o, n, i), e = \"\";\n }\n return e;\n }\n uniformBufferProcessor(e, t) {\n const s = /uniform\\s+(\\w+)/gm.exec(e);\n if (s !== null) {\n const r = s[1];\n let n = this._webgpuProcessingContext.availableBuffers[r];\n if (!n) {\n const o = an.KnownUBOs[r];\n let l;\n o && o.binding.groupIndex !== -1 ? l = o.binding : l = this._webgpuProcessingContext.getNextFreeUBOBinding(), n = { binding: l }, this._webgpuProcessingContext.availableBuffers[r] = n;\n }\n this._addBufferBindingDescription(r, n, \"uniform\", !t), e = e.replace(\"uniform\", `layout(set = ${n.binding.groupIndex}, binding = ${n.binding.bindingIndex}) uniform`);\n }\n return e;\n }\n postProcessor(e, t, i, s, r) {\n const n = e.search(/#extension.+GL_EXT_draw_buffers.+require/) !== -1, o = /#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g;\n if (e = e.replace(o, \"\"), e = e.replace(/texture2D\\s*\\(/g, \"texture(\"), i) {\n const l = e.indexOf(\"gl_FragCoord\") >= 0, h = `\n glFragCoord_ = gl_FragCoord;\n if (yFactor_ == 1.) {\n glFragCoord_.y = textureOutputHeight_ - glFragCoord_.y;\n }\n `, c = l ? `vec4 glFragCoord_;\n` : \"\", u = e.search(/layout *\\(location *= *0\\) *out/g) !== -1;\n if (e = e.replace(/texture2DLodEXT\\s*\\(/g, \"textureLod(\"), e = e.replace(/textureCubeLodEXT\\s*\\(/g, \"textureLod(\"), e = e.replace(/textureCube\\s*\\(/g, \"texture(\"), e = e.replace(/gl_FragDepthEXT/g, \"gl_FragDepth\"), e = e.replace(/gl_FragColor/g, \"glFragColor\"), e = e.replace(/gl_FragData/g, \"glFragData\"), e = e.replace(/gl_FragCoord/g, \"glFragCoord_\"), !this._fragmentIsGLES3)\n e = e.replace(/void\\s+?main\\s*\\(/g, (n || u ? \"\" : `layout(location = 0) out vec4 glFragColor;\n`) + \"void main(\");\n else {\n const d = /^\\s*out\\s+\\S+\\s+\\S+\\s*;/gm.exec(e);\n d !== null && (e = e.substring(0, d.index) + \"layout(location = 0) \" + e.substring(d.index));\n }\n e = e.replace(/dFdy/g, \"(-yFactor_)*dFdy\"), e = e.replace(\"##INJECTCODE##\", c), l && (e = Np(e, \"void main\", h));\n } else if (e = e.replace(/gl_InstanceID/g, \"gl_InstanceIndex\"), e = e.replace(/gl_VertexID/g, \"gl_VertexIndex\"), t.indexOf(\"#define MULTIVIEW\") !== -1)\n return `#extension GL_OVR_multiview2 : require\nlayout (num_views = 2) in;\n` + e;\n if (!i) {\n const l = e.lastIndexOf(\"}\");\n e = e.substring(0, l), e += `gl_Position.y *= yFactor_;\n`, e += \"}\";\n }\n return e;\n }\n _applyTextureArrayProcessing(e, t) {\n const i = new RegExp(t + \"\\\\s*\\\\[(.+)?\\\\]\", \"gm\");\n let s = i.exec(e);\n for (; s !== null; ) {\n const r = s[1];\n let n = +r;\n this._preProcessors && isNaN(n) && (n = +this._preProcessors[r.trim()]), e = e.replace(s[0], t + n), s = i.exec(e);\n }\n return e;\n }\n _generateLeftOverUBOCode(e, t) {\n let i = `layout(set = ${t.binding.groupIndex}, binding = ${t.binding.bindingIndex}) uniform ${e} {\n `;\n for (const s of this._webgpuProcessingContext.leftOverUniforms)\n s.length > 0 ? i += ` ${s.type} ${s.name}[${s.length}];\n` : i += ` ${s.type} ${s.name};\n`;\n return i += `};\n\n`, i;\n }\n finalizeShaders(e, t) {\n for (let s = 0; s < this._textureArrayProcessing.length; ++s) {\n const r = this._textureArrayProcessing[s];\n e = this._applyTextureArrayProcessing(e, r), t = this._applyTextureArrayProcessing(t, r);\n }\n for (let s = 0; s < this._missingVaryings.length; ++s) {\n const r = this._missingVaryings[s];\n r && r.length > 0 && (t = r + `\n` + t);\n }\n const i = this._buildLeftOverUBO();\n return e = i + e, t = i + t, this._collectBindingNames(), this._preCreateBindGroupEntries(), this._preProcessors = null, this._webgpuProcessingContext.vertexBufferKindToNumberOfComponents = {}, { vertexCode: e, fragmentCode: t };\n }\n}\nconst PM = \"bonesDeclaration\", MM = `#if NUM_BONE_INFLUENCERS>0\nattribute matricesIndices : vec4;attribute matricesWeights : vec4;\n#if NUM_BONE_INFLUENCERS>4\nattribute matricesIndicesExtra : vec4;attribute matricesWeightsExtra : vec4;\n#endif\n#ifndef BAKED_VERTEX_ANIMATION_TEXTURE\n#ifdef BONETEXTURE\nvar boneSampler : texture_2d;uniform boneTextureWidth : f32;\n#else\nuniform mBones : array;\n#ifdef BONES_VELOCITY_ENABLED\nuniform mPreviousBones : array;\n#endif\n#endif\n#ifdef BONETEXTURE\nfn readMatrixFromRawSampler(smp : texture_2d,index : f32)->mat4x4\n{let offset=i32(index) *4; \nlet m0=textureLoad(smp,vec2(offset+0,0),0);let m1=textureLoad(smp,vec2(offset+1,0),0);let m2=textureLoad(smp,vec2(offset+2,0),0);let m3=textureLoad(smp,vec2(offset+3,0),0);return mat4x4(m0,m1,m2,m3);}\n#endif\n#endif\n#endif\n`;\nz.IncludesShadersStoreWGSL[PM] = MM;\nconst DM = \"bonesVertex\", OM = `#ifndef BAKED_VERTEX_ANIMATION_TEXTURE\n#if NUM_BONE_INFLUENCERS>0\nvar influence : mat4x4;\n#ifdef BONETEXTURE\ninfluence=readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[0])*vertexInputs.matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\ninfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[1])*vertexInputs.matricesWeights[1];\n#endif \n#if NUM_BONE_INFLUENCERS>2\ninfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[2])*vertexInputs.matricesWeights[2];\n#endif \n#if NUM_BONE_INFLUENCERS>3\ninfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[3])*vertexInputs.matricesWeights[3];\n#endif \n#if NUM_BONE_INFLUENCERS>4\ninfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[0])*vertexInputs.matricesWeightsExtra[0];\n#endif \n#if NUM_BONE_INFLUENCERS>5\ninfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[1])*vertexInputs.matricesWeightsExtra[1];\n#endif \n#if NUM_BONE_INFLUENCERS>6\ninfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[2])*vertexInputs.matricesWeightsExtra[2];\n#endif \n#if NUM_BONE_INFLUENCERS>7\ninfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[3])*vertexInputs.matricesWeightsExtra[3];\n#endif \n#else \ninfluence=uniforms.mBones[int(vertexInputs.matricesIndices[0])]*vertexInputs.matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\ninfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndices[1])]*vertexInputs.matricesWeights[1];\n#endif \n#if NUM_BONE_INFLUENCERS>2\ninfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndices[2])]*vertexInputs.matricesWeights[2];\n#endif \n#if NUM_BONE_INFLUENCERS>3\ninfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndices[3])]*vertexInputs.matricesWeights[3];\n#endif \n#if NUM_BONE_INFLUENCERS>4\ninfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[0])]*vertexInputs.matricesWeightsExtra[0];\n#endif \n#if NUM_BONE_INFLUENCERS>5\ninfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[1])]*vertexInputs.matricesWeightsExtra[1];\n#endif \n#if NUM_BONE_INFLUENCERS>6\ninfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[2])]*vertexInputs.matricesWeightsExtra[2];\n#endif \n#if NUM_BONE_INFLUENCERS>7\ninfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[3])]*vertexInputs.matricesWeightsExtra[3];\n#endif \n#endif\nfinalWorld=finalWorld*influence;\n#endif\n#endif\n`;\nz.IncludesShadersStoreWGSL[DM] = OM;\nconst wM = \"bakedVertexAnimationDeclaration\", NM = `#ifdef BAKED_VERTEX_ANIMATION_TEXTURE\nuniform bakedVertexAnimationTime: f32;uniform bakedVertexAnimationTextureSizeInverted: vec2;uniform bakedVertexAnimationSettings: vec4;var bakedVertexAnimationTexture : texture_2d;\n#ifdef INSTANCES\nattribute bakedVertexAnimationSettingsInstanced : vec4;\n#endif\nfn readMatrixFromRawSamplerVAT(smp : texture_2d,index : f32,frame : f32)->mat4x4\n{let offset=i32(index)*4;let frameUV=i32(frame);let m0=textureLoad(smp,vec2(offset+0,frameUV),0);let m1=textureLoad(smp,vec2(offset+1,frameUV),0);let m2=textureLoad(smp,vec2(offset+2,frameUV),0);let m3=textureLoad(smp,vec2(offset+3,frameUV),0);return mat4x4(m0,m1,m2,m3);}\n#endif\n`;\nz.IncludesShadersStoreWGSL[wM] = NM;\nconst FM = \"bakedVertexAnimation\", LM = `#ifdef BAKED_VERTEX_ANIMATION_TEXTURE\n{\n#ifdef INSTANCES\nlet VATStartFrame: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.x;let VATEndFrame: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.y;let VATOffsetFrame: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.z;let VATSpeed: f32=vertexInputs.bakedVertexAnimationSettingsInstanced.w;\n#else\nlet VATStartFrame: f32=uniforms.bakedVertexAnimationSettings.x;let VATEndFrame: f32=uniforms.bakedVertexAnimationSettings.y;let VATOffsetFrame: f32=uniforms.bakedVertexAnimationSettings.z;let VATSpeed: f32=uniforms.bakedVertexAnimationSettings.w;\n#endif\nlet totalFrames: f32=VATEndFrame-VATStartFrame+1.0;let time: f32=uniforms.bakedVertexAnimationTime*VATSpeed/totalFrames;let frameCorrection: f32=select(1.0,0.0,time<1.0);let numOfFrames: f32=totalFrames-frameCorrection;var VATFrameNum: f32=fract(time)*numOfFrames;VATFrameNum=(VATFrameNum+VATOffsetFrame) % numOfFrames;VATFrameNum=floor(VATFrameNum);VATFrameNum=VATFrameNum+VATStartFrame+frameCorrection;var VATInfluence : mat4x4;VATInfluence=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[0],VATFrameNum)*vertexInputs.matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\nVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[1],VATFrameNum)*vertexInputs.matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\nVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[2],VATFrameNum)*vertexInputs.matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\nVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[3],VATFrameNum)*vertexInputs.matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\nVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[0],VATFrameNum)*vertexInputs.matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\nVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[1],VATFrameNum)*vertexInputs.matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\nVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[2],VATFrameNum)*vertexInputs.matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\nVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[3],VATFrameNum)*vertexInputs.matricesWeightsExtra[3];\n#endif\nfinalWorld=finalWorld*VATInfluence;}\n#endif\n`;\nz.IncludesShadersStoreWGSL[FM] = LM;\nconst BM = \"clipPlaneFragment\", VM = `#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)\nif (false) {}\n#endif\n#ifdef CLIPPLANE\nelse if (fragmentInputs.fClipDistance>0.0)\n{discard;}\n#endif\n#ifdef CLIPPLANE2\nelse if (fragmentInputs.fClipDistance2>0.0)\n{discard;}\n#endif\n#ifdef CLIPPLANE3\nelse if (fragmentInputs.fClipDistance3>0.0)\n{discard;}\n#endif\n#ifdef CLIPPLANE4\nelse if (fragmentInputs.fClipDistance4>0.0)\n{discard;}\n#endif\n#ifdef CLIPPLANE5\nelse if (fragmentInputs.fClipDistance5>0.0)\n{discard;}\n#endif\n#ifdef CLIPPLANE6\nelse if (fragmentInputs.fClipDistance6>0.0)\n{discard;}\n#endif\n`;\nz.IncludesShadersStoreWGSL[BM] = VM;\nconst UM = \"clipPlaneFragmentDeclaration\", kM = `#ifdef CLIPPLANE\nvarying fClipDistance: f32;\n#endif\n#ifdef CLIPPLANE2\nvarying fClipDistance2: f32;\n#endif\n#ifdef CLIPPLANE3\nvarying fClipDistance3: f32;\n#endif\n#ifdef CLIPPLANE4\nvarying fClipDistance4: f32;\n#endif\n#ifdef CLIPPLANE5\nvarying fClipDistance5: f32;\n#endif\n#ifdef CLIPPLANE6\nvarying fClipDistance6: f32;\n#endif\n`;\nz.IncludesShadersStoreWGSL[UM] = kM;\nconst GM = \"clipPlaneVertex\", zM = `#ifdef CLIPPLANE\nvertexOutputs.fClipDistance=dot(worldPos,uniforms.vClipPlane);\n#endif\n#ifdef CLIPPLANE2\nvertexOutputs.fClipDistance2=dot(worldPos,uniforms.vClipPlane2);\n#endif\n#ifdef CLIPPLANE3\nvertexOutputs.fClipDistance3=dot(worldPos,uniforms.vClipPlane3);\n#endif\n#ifdef CLIPPLANE4\nvertexOutputs.fClipDistance4=dot(worldPos,uniforms.vClipPlane4);\n#endif\n#ifdef CLIPPLANE5\nvertexOutputs.fClipDistance5=dot(worldPos,uniforms.vClipPlane5);\n#endif\n#ifdef CLIPPLANE6\nvertexOutputs.fClipDistance6=dot(worldPos,uniforms.vClipPlane6);\n#endif\n`;\nz.IncludesShadersStoreWGSL[GM] = zM;\nconst WM = \"clipPlaneVertexDeclaration\", HM = `#ifdef CLIPPLANE\nuniform vClipPlane: vec4;varying fClipDistance: f32;\n#endif\n#ifdef CLIPPLANE2\nuniform vClipPlane2: vec4;varying fClipDistance2: f32;\n#endif\n#ifdef CLIPPLANE3\nuniform vClipPlane3: vec4;varying fClipDistance3: f32;\n#endif\n#ifdef CLIPPLANE4\nuniform vClipPlane4: vec4;varying fClipDistance4: f32;\n#endif\n#ifdef CLIPPLANE5\nuniform vClipPlane5: vec4;varying fClipDistance5: f32;\n#endif\n#ifdef CLIPPLANE6\nuniform vClipPlane6: vec4;varying fClipDistance6: f32;\n#endif\n`;\nz.IncludesShadersStoreWGSL[WM] = HM;\nconst XM = \"instancesDeclaration\", $M = `#ifdef INSTANCES\nattribute world0 : vec4;attribute world1 : vec4;attribute world2 : vec4;attribute world3 : vec4;\n#ifdef INSTANCESCOLOR\nattribute instanceColor : vec4;\n#endif\n#if defined(THIN_INSTANCES) && !defined(WORLD_UBO)\nuniform world : mat4x4;\n#endif\n#if defined(VELOCITY) || defined(PREPASS_VELOCITY)\nattribute previousWorld0 : vec4;attribute previousWorld1 : vec4;attribute previousWorld2 : vec4;attribute previousWorld3 : vec4;\n#ifdef THIN_INSTANCES\nuniform previousWorld : mat4x4;\n#endif\n#endif\n#else\n#if !defined(WORLD_UBO)\nuniform world : mat4x4;\n#endif\n#if defined(VELOCITY) || defined(PREPASS_VELOCITY)\nuniform previousWorld : mat4x4;\n#endif\n#endif\n`;\nz.IncludesShadersStoreWGSL[XM] = $M;\nconst YM = \"instancesVertex\", jM = `#ifdef INSTANCES\nvar finalWorld=mat4x4(vertexInputs.world0,vertexInputs.world1,vertexInputs.world2,vertexInputs.world3);\n#if defined(PREPASS_VELOCITY) || defined(VELOCITY)\nvar finalPreviousWorld=mat4x4(previousWorld0,previousWorld1,previousWorld2,previousWorld3);\n#endif\n#ifdef THIN_INSTANCES\n#if !defined(WORLD_UBO)\nfinalWorld=uniforms.world*finalWorld;\n#else\nfinalWorld=mesh.world*finalWorld;\n#endif\n#if defined(PREPASS_VELOCITY) || defined(VELOCITY)\nfinalPreviousWorld=previousWorld*finalPreviousWorld;\n#endif\n#endif\n#else\n#if !defined(WORLD_UBO)\nvar finalWorld=uniforms.world;\n#else\nvar finalWorld=mesh.world;\n#endif\n#if defined(PREPASS_VELOCITY) || defined(VELOCITY)\nvar finalPreviousWorld=previousWorld;\n#endif\n#endif\n`;\nz.IncludesShadersStoreWGSL[YM] = jM;\nconst KM = \"helperFunctions\", qM = `const PI: f32=3.1415926535897932384626433832795;const RECIPROCAL_PI: f32=0.3183098861837907;const RECIPROCAL_PI2: f32=0.15915494309189535;const HALF_MIN: f32=5.96046448e-08; \nconst LinearEncodePowerApprox: f32=2.2;const GammaEncodePowerApprox: f32=1.0/LinearEncodePowerApprox;const LuminanceEncodeApprox: vec3=vec3 (0.2126,0.7152,0.0722);const Epsilon:f32=0.0000001;\n#define saturate(x) clamp(x,0.0,1.0)\nfn transposeMat3(inMatrix: mat3x3f)->mat3x3f {let i0: vec3=inMatrix[0];let i1: vec3=inMatrix[1];let i2: vec3=inMatrix[2];let outMatrix:mat3x3f=mat3x3f(\nvec3(i0.x,i1.x,i2.x),\nvec3(i0.y,i1.y,i2.y),\nvec3(i0.z,i1.z,i2.z)\n);return outMatrix;}\nfn inverseMat3(inMatrix: mat3x3f)->mat3x3f {let a00: f32=inMatrix[0][0];let a01: f32=inMatrix[0][1];let a02: f32=inMatrix[0][2];let a10: f32=inMatrix[1][0];let a11: f32=inMatrix[1][1];let a12: f32=inMatrix[1][2];let a20: f32=inMatrix[2][0];let a21: f32=inMatrix[2][1];let a22: f32=inMatrix[2][2];let b01: f32=a22*a11-a12*a21;let b11: f32=-a22*a10+a12*a20;let b21: f32=a21*a10-a11*a20;let det: f32=a00*b01+a01*b11+a02*b21;return mat3x3f(b01/det,(-a22*a01+a02*a21)/det,(a12*a01-a02*a11)/det,\nb11/det,(a22*a00-a02*a20)/det,(-a12*a00+a02*a10)/det,\nb21/det,(-a21*a00+a01*a20)/det,(a11*a00-a01*a10)/det);}\n#if USE_EXACT_SRGB_CONVERSIONS\nfn toLinearSpaceExact(color: vec3)->vec3\n{let nearZeroSection: vec3=0.0773993808*color;let remainingSection: vec3=pow(0.947867299*(color+vec3(0.055)),vec3(2.4));return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.04045)));}\nfn toGammaSpaceExact(color: vec3)->vec3\n{let nearZeroSection: vec3=12.92*color;let remainingSection: vec3=1.055*pow(color,vec3(0.41666))-vec3(0.055);return mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.0031308)));}\n#endif\nfn toLinearSpace(color: vec4)->vec4\n{\n#if USE_EXACT_SRGB_CONVERSIONS\nreturn vec4(toLinearSpaceExact(color.rgb),color.a);\n#else\nreturn vec4(pow(color.rgb,vec3(LinearEncodePowerApprox)),color.a);\n#endif\n}\nfn toLinearSpaceVec3(color: vec3)->vec3\n{\n#if USE_EXACT_SRGB_CONVERSIONS\nreturn toLinearSpaceExact(color);\n#else\nreturn pow(color,vec3(LinearEncodePowerApprox));\n#endif\n}\nfn toGammaSpace(color: vec4)->vec4\n{\n#if USE_EXACT_SRGB_CONVERSIONS\nreturn vec4(toGammaSpaceExact(color.rgb),color.a);\n#else\nreturn vec4(pow(color.rgb,vec3(GammaEncodePowerApprox)),color.a);\n#endif\n}\nfn toGammaSpaceVec3(color: vec3)->vec3\n{\n#if USE_EXACT_SRGB_CONVERSIONS\nreturn toGammaSpaceExact(color);\n#else\nreturn pow(color,vec3(GammaEncodePowerApprox));\n#endif\n}\nfn square(value: vec3)->vec3\n{return value*value;}\nfn pow5(value: f32)->f32 {let sq: f32=value*value;return sq*sq*value;}\nfn getLuminance(color: vec3)->f32\n{return clamp(dot(color,LuminanceEncodeApprox),0.,1.);}\nfn getRand(seed: vec2)->f32 {return fract(sin(dot(seed.xy ,vec2(12.9898,78.233)))*43758.5453);}\nfn dither(seed: vec2,varianceAmount: f32)->f32 {let rand: f32=getRand(seed);let normVariance: f32=varianceAmount/255.0;let dither: f32=mix(-normVariance,normVariance,rand);return dither;}\nconst rgbdMaxRange: f32=255.0;fn toRGBD(color: vec3)->vec4 {let maxRGB: f32=max(max(color.r,max(color.g,color.b)),Epsilon);var D: f32 =max(rgbdMaxRange/maxRGB,1.);D =clamp(floor(D)/255.0,0.,1.);var rgb: vec3 =color.rgb*D;rgb=toGammaSpaceVec3(rgb);return vec4(clamp(rgb,vec3(0.,0.,0.),vec3(1.,1.,1.)),D); }\nfn fromRGBD(rgbd: vec4)->vec3 {let rgb=toLinearSpaceVec3(rgbd.rgb);return rgb/rgbd.a;}\nfn parallaxCorrectNormal(vertexPos: vec3,origVec: vec3,cubeSize: vec3,cubePos: vec3)->vec3 {let invOrigVec: vec3=vec3(1.0,1.0,1.0)/origVec;let halfSize: vec3=cubeSize*0.5;let intersecAtMaxPlane: vec3=(cubePos+halfSize-vertexPos)*invOrigVec;let intersecAtMinPlane: vec3=(cubePos-halfSize-vertexPos)*invOrigVec;let largestIntersec: vec3=max(intersecAtMaxPlane,intersecAtMinPlane);let distance: f32=min(min(largestIntersec.x,largestIntersec.y),largestIntersec.z);let intersectPositionWS: vec3=vertexPos+origVec*distance;return intersectPositionWS-cubePos;}\n`;\nz.IncludesShadersStoreWGSL[KM] = qM;\nconst QM = \"fresnelFunction\", ZM = `#ifdef FRESNEL\nfn computeFresnelTerm(viewDirection: vec3f,worldNormal: vec3f,bias: f32,power: f32)->f32\n{let fresnelTerm: f32=pow(bias+abs(dot(viewDirection,worldNormal)),power);return clamp(fresnelTerm,0.,1.);}\n#endif\n`;\nz.IncludesShadersStoreWGSL[QM] = ZM;\nconst JM = \"meshUboDeclaration\", eD = `struct Mesh {world : mat4x4,\nvisibility : f32,};var mesh : Mesh;\n#define WORLD_UBO\n`;\nz.IncludesShadersStoreWGSL[JM] = eD;\nconst tD = \"morphTargetsVertex\", iD = `#ifdef MORPHTARGETS\n#ifdef MORPHTARGETS_TEXTURE\n#if {X}==0\nfor (var i=0; i=uniforms.morphTargetCount) {break;}\nvertexID=f32(vertexInputs.vertexIndex)*uniforms.morphTargetTextureInfo.x;positionUpdated=positionUpdated+(readVector3FromRawSampler({X},vertexID)-vertexInputs.position)*uniforms.morphTargetInfluences[{X}];vertexID=vertexID+1.0;\n#ifdef MORPHTARGETS_NORMAL\nnormalUpdated=normalUpdated+(readVector3FromRawSampler({X},vertexID) -vertexInputs.normal)*uniforms.morphTargetInfluences[{X}];vertexID=vertexID+1.0;\n#endif\n#ifdef MORPHTARGETS_UV\nuvUpdated=uvUpdated+(readVector3FromRawSampler({X},vertexID).xy-vertexInputs.uv)*uniforms.morphTargetInfluences[{X}];vertexID=vertexID+1.0;\n#endif\n#ifdef MORPHTARGETS_TANGENT\ntangentUpdated.xyz=tangentUpdated.xyz+(readVector3FromRawSampler({X},vertexID) -vertexInputs.tangent.xyz)*uniforms.morphTargetInfluences[{X}];\n#endif\n}\n#endif\n#else\npositionUpdated=positionUpdated+(position{X}-vertexInputs.position)*uniforms.morphTargetInfluences[{X}];\n#ifdef MORPHTARGETS_NORMAL\nnormalUpdated+=(normal{X}-vertexInputs.normal)*uniforms.morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_TANGENT\ntangentUpdated.xyz=tangentUpdated.xyz+(tangent{X}-vertexInputs.tangent.xyz)*uniforms.morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_UV\nuvUpdated=uvUpdated+(uv_{X}-vertexInputs.uv)*uniforms.morphTargetInfluences[{X}];\n#endif\n#endif\n#endif\n`;\nz.IncludesShadersStoreWGSL[tD] = iD;\nconst sD = \"morphTargetsVertexDeclaration\", rD = `#ifdef MORPHTARGETS\n#ifndef MORPHTARGETS_TEXTURE\nattribute position{X} : vec3;\n#ifdef MORPHTARGETS_NORMAL\nattribute normal{X} : vec3;\n#endif\n#ifdef MORPHTARGETS_TANGENT\nattribute tangent{X} : vec3;\n#endif\n#ifdef MORPHTARGETS_UV\nattribute uv_{X} : vec2;\n#endif\n#elif {X}==0\nuniform morphTargetCount: i32;\n#endif\n#endif\n`;\nz.IncludesShadersStoreWGSL[sD] = rD;\nconst nD = \"morphTargetsVertexGlobal\", aD = `#ifdef MORPHTARGETS\n#ifdef MORPHTARGETS_TEXTURE\nvar vertexID : f32;\n#endif\n#endif\n`;\nz.IncludesShadersStoreWGSL[nD] = aD;\nconst oD = \"morphTargetsVertexGlobalDeclaration\", lD = `#ifdef MORPHTARGETS\nuniform morphTargetInfluences : array;\n#ifdef MORPHTARGETS_TEXTURE \nuniform morphTargetTextureIndices : array;uniform morphTargetTextureInfo : vec3;var morphTargets : texture_2d_array;var morphTargetsSampler : sampler;fn readVector3FromRawSampler(targetIndex : i32,vertexIndex : f32)->vec3\n{ \nlet y=floor(vertexIndex/uniforms.morphTargetTextureInfo.y);let x=vertexIndex-y*uniforms.morphTargetTextureInfo.y;let textureUV=vec2((x+0.5)/uniforms.morphTargetTextureInfo.y,(y+0.5)/uniforms.morphTargetTextureInfo.z);return textureSampleLevel(morphTargets,morphTargetsSampler,textureUV,i32(uniforms.morphTargetTextureIndices[targetIndex]),0.0).xyz;}\n#endif\n#endif\n`;\nz.IncludesShadersStoreWGSL[oD] = lD;\nconst hD = \"sceneUboDeclaration\", cD = `struct Scene {viewProjection : mat4x4,\n#ifdef MULTIVIEW\nviewProjectionR : mat4x4,\n#endif \nview : mat4x4,\nprojection : mat4x4,\nvEyePosition : vec4,};var scene : Scene;\n`;\nz.IncludesShadersStoreWGSL[hD] = cD;\nconst uD = \"lightsFragmentFunctions\", dD = `struct lightingInfo\n{diffuse: vec3f,\n#ifdef SPECULARTERM\nspecular: vec3f,\n#endif\n#ifdef NDOTL\nndl: f32,\n#endif\n};fn computeLighting(viewDirectionW: vec3f,vNormal: vec3f,lightData: vec4f,diffuseColor: vec3f,specularColor: vec3f,range: f32,glossiness: f32)->lightingInfo {var result: lightingInfo;var lightVectorW: vec3f;var attenuation: f32=1.0;if (lightData.w==0.)\n{var direction: vec3f=lightData.xyz-vPositionW;var attenuation: f32=max(0.,1.0-length(direction)/range);lightVectorW=normalize(direction);}\nelse\n{lightVectorW=normalize(-lightData.xyz);}\nvar ndl: f32=max(0.,dot(vNormal,lightVectorW));\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=ndl*diffuseColor*attenuation;\n#ifdef SPECULARTERM\nvar angleW: vec3f=normalize(viewDirectionW+lightVectorW);var specComp: f32=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor*attenuation;\n#endif\nreturn result;}\nfn computeSpotLighting(viewDirectionW: vec3f,vNormal: vec3f ,lightData: vec4f,lightDirection: vec4f,diffuseColor: vec3f,specularColor: vec3f,range: f32,glossiness: f32)->lightingInfo {var result: lightingInfo;var direction: vec3f=lightData.xyz-vPositionW;var lightVectorW: vec3f=normalize(direction);var attenuation: f32=max(0.,1.0-length(direction)/range);var cosAngle: f32=max(0.,dot(lightDirection.xyz,-lightVectorW));if (cosAngle>=lightDirection.w)\n{cosAngle=max(0.,pow(cosAngle,lightData.w));attenuation*=cosAngle;var ndl: f32=max(0.,dot(vNormal,lightVectorW));\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=ndl*diffuseColor*attenuation;\n#ifdef SPECULARTERM\nvar angleW: vec3f=normalize(viewDirectionW+lightVectorW);var specComp: f32=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor*attenuation;\n#endif\nreturn result;}\nresult.diffuse=vec3f(0.);\n#ifdef SPECULARTERM\nresult.specular=vec3f(0.);\n#endif\n#ifdef NDOTL\nresult.ndl=0.;\n#endif\nreturn result;}\nfn computeHemisphericLighting(viewDirectionW: vec3f,vNormal: vec3f,lightData: vec4f,diffuseColor: vec3f,specularColor: vec3f,groundColor: vec3f,glossiness: f32)->lightingInfo {var result: lightingInfo;var ndl: f32=dot(vNormal,lightData.xyz)*0.5+0.5;\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=mix(groundColor,diffuseColor,ndl);\n#ifdef SPECULARTERM\nvar angleW: vec3f=normalize(viewDirectionW+lightData.xyz);var specComp: f32=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor;\n#endif\nreturn result;}\nfn computeProjectionTextureDiffuseLighting(projectionLightTexture: texture_2d,projectionLightSampler: sampler,textureProjectionMatrix: mat4x4f)->vec3f {var strq: vec4f=textureProjectionMatrix*vec4f(vPositionW,1.0);strq/=strq.w;var textureColor: vec3f=textureSample(projectionLightTexture,projectionLightSampler,strq.xy).rgb;return textureColor;}`;\nz.IncludesShadersStoreWGSL[uD] = dD;\nconst fD = \"lightFragment\", pD = `#ifdef LIGHT{X}\n#if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})\n#else\n#ifdef PBR\n#ifdef SPOTLIGHT{X}\npreInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\n#elif defined(POINTLIGHT{X})\npreInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\n#elif defined(HEMILIGHT{X})\npreInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\n#elif defined(DIRLIGHT{X})\npreInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\n#endif\npreInfo.NdotV=NdotV;\n#ifdef SPOTLIGHT{X}\n#ifdef LIGHT_FALLOFF_GLTF{X}\npreInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);preInfo.attenuation*=computeDirectionalLightFalloff_GLTF(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);\n#elif defined(LIGHT_FALLOFF_PHYSICAL{X})\npreInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);preInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w);\n#elif defined(LIGHT_FALLOFF_STANDARD{X})\npreInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);preInfo.attenuation*=computeDirectionalLightFalloff_Standard(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w);\n#else\npreInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);preInfo.attenuation*=computeDirectionalLightFalloff(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);\n#endif\n#elif defined(POINTLIGHT{X})\n#ifdef LIGHT_FALLOFF_GLTF{X}\npreInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);\n#elif defined(LIGHT_FALLOFF_PHYSICAL{X})\npreInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);\n#elif defined(LIGHT_FALLOFF_STANDARD{X})\npreInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);\n#else\npreInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);\n#endif\n#else\npreInfo.attenuation=1.0;\n#endif\n#ifdef HEMILIGHT{X}\npreInfo.roughness=roughness;\n#else\npreInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\n#endif\n#ifdef IRIDESCENCE\npreInfo.iridescenceIntensity=iridescenceIntensity;\n#endif\n#ifdef HEMILIGHT{X}\ninfo.diffuse=computeHemisphericDiffuseLighting(preInfo,light{X}.vLightDiffuse.rgb,light{X}.vLightGround);\n#elif defined(SS_TRANSLUCENCY)\ninfo.diffuse=computeDiffuseAndTransmittedLighting(preInfo,light{X}.vLightDiffuse.rgb,subSurfaceOut.transmittance);\n#else\ninfo.diffuse=computeDiffuseLighting(preInfo,light{X}.vLightDiffuse.rgb);\n#endif\n#ifdef SPECULARTERM\n#ifdef ANISOTROPIC\ninfo.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\n#else\ninfo.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\n#endif\n#endif\n#ifdef SHEEN\n#ifdef SHEEN_LINKWITHALBEDO\npreInfo.roughness=sheenOut.sheenIntensity;\n#else\n#ifdef HEMILIGHT{X}\npreInfo.roughness=sheenOut.sheenRoughness;\n#else\npreInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\n#endif\n#endif\ninfo.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\n#endif\n#ifdef CLEARCOAT\n#ifdef HEMILIGHT{X}\npreInfo.roughness=clearcoatOut.clearCoatRoughness;\n#else\npreInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\n#endif\ninfo.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,light{X}.vLightDiffuse.rgb);\n#ifdef CLEARCOAT_TINT\nabsorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity);info.diffuse*=absorption;\n#ifdef SPECULARTERM\ninfo.specular*=absorption;\n#endif\n#endif\ninfo.diffuse*=info.clearCoat.w;\n#ifdef SPECULARTERM\ninfo.specular*=info.clearCoat.w;\n#endif\n#ifdef SHEEN\ninfo.sheen*=info.clearCoat.w;\n#endif\n#endif\n#else\n#ifdef SPOTLIGHT{X}\ninfo=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightDiffuse.a,glossiness);\n#elif defined(HEMILIGHT{X})\ninfo=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness);\n#elif defined(POINTLIGHT{X}) || defined(DIRLIGHT{X})\ninfo=computeLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightDiffuse.a,glossiness);\n#endif\n#endif\n#ifdef PROJECTEDLIGHTTEXTURE{X}\ninfo.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightTexture{X},projectionLightTexture{X}Sampler,textureProjectionMatrix{X});\n#endif\n#endif\n#ifdef SHADOW{X}\n#ifdef SHADOWCSMDEBUG{X} \nvar shadowDebug{X}: vec3f;\n#endif\n#ifdef SHADOWCSM{X}\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\nvar index{X}: i32=-1;\n#else\nvar index{X}: i32=SHADOWCSMNUM_CASCADES{X}-1;\n#endif\nvar diff{X}: f32=0.;vPositionFromLight{X}[0]=fragmentInputs.vPositionFromLight{X}_0;vPositionFromLight{X}[1]=fragmentInputs.vPositionFromLight{X}_1;vPositionFromLight{X}[2]=fragmentInputs.vPositionFromLight{X}_2;vPositionFromLight{X}[3]=fragmentInputs.vPositionFromLight{X}_3;vDepthMetric{X}[0]=fragmentInputs.vDepthMetric{X}_0;vDepthMetric{X}[1]=fragmentInputs.vDepthMetric{X}_1;vDepthMetric{X}[2]=fragmentInputs.vDepthMetric{X}_2;vDepthMetric{X}[3]=fragmentInputs.vDepthMetric{X}_3;for (var i:i32=0; i=0.) {index{X}=i;break;}}\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\nif (index{X}>=0)\n#endif\n{\n#if defined(SHADOWPCF{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithCSMPCF1(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithCSMPCF3(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nshadow=computeShadowWithCSMPCF5(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCSS{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithCSMPCSS16(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithCSMPCSS32(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});\n#else\nshadow=computeShadowWithCSMPCSS64(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});\n#endif\n#else\nshadow=computeShadowCSM(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#ifdef SHADOWCSMDEBUG{X}\nshadowDebug{X}=vec3f(shadow)*vCascadeColorsMultiplier{X}[index{X}];\n#endif\n#ifndef SHADOWCSMNOBLEND{X}\nvar frustumLength:f32=uniforms.frustumLengths{X}[index{X}];var diffRatio:f32=clamp(diff{X}/frustumLength,0.,1.)*uniforms.cascadeBlendFactor{X};if (index{X}<(SHADOWCSMNUM_CASCADES{X}-1) && diffRatio<1.)\n{index{X}+=1;var nextShadow: f32=0.;\n#if defined(SHADOWPCF{X})\n#if defined(SHADOWLOWQUALITY{X})\nnextShadow=computeShadowWithCSMPCF1(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],,shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nnextShadow=computeShadowWithCSMPCF3(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nnextShadow=computeShadowWithCSMPCF5(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCSS{X})\n#if defined(SHADOWLOWQUALITY{X})\nnextShadow=computeShadowWithCSMPCSS16(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});\n#elif defined(SHADOWMEDIUMQUALITY{X})\nnextShadow=computeShadowWithCSMPCSS32(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});\n#else\nnextShadow=computeShadowWithCSMPCSS64(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});\n#endif\n#else\nnextShadow=computeShadowCSM(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\nshadow=mix(nextShadow,shadow,diffRatio);\n#ifdef SHADOWCSMDEBUG{X}\nshadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio);\n#endif\n}\n#endif\n}\n#elif defined(SHADOWCLOSEESM{X})\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowWithCloseESMCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);\n#else\nshadow=computeShadowWithCloseESM(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWESM{X})\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowWithESMCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);\n#else\nshadow=computeShadowWithESM(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPOISSON{X})\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowWithPoissonSamplingCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues);\n#else\nshadow=computeShadowWithPoissonSampling(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCF{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithPCF1(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithPCF3(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nshadow=computeShadowWithPCF5(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCSS{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithPCSS16(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithPCSS32(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nshadow=computeShadowWithPCSS64(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#else\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.depthValues);\n#else\nshadow=computeShadow(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#endif\n#ifdef SHADOWONLY\n#ifndef SHADOWINUSE\n#define SHADOWINUSE\n#endif\nglobalShadow+=shadow;shadowLightCount+=1.0;\n#endif\n#else\nshadow=1.;\n#endif\naggShadow+=shadow;numLights+=1.0;\n#ifndef SHADOWONLY\n#ifdef CUSTOMUSERLIGHTING\ndiffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow);\n#ifdef SPECULARTERM\nspecularBase+=computeCustomSpecularLighting(info,specularBase,shadow);\n#endif\n#elif defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X})\ndiffuseBase+=lightmapColor.rgb*shadow;\n#ifdef SPECULARTERM\n#ifndef LIGHTMAPNOSPECULAR{X}\nspecularBase+=info.specular*shadow*lightmapColor.rgb;\n#endif\n#endif\n#ifdef CLEARCOAT\n#ifndef LIGHTMAPNOSPECULAR{X}\nclearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb;\n#endif\n#endif\n#ifdef SHEEN\n#ifndef LIGHTMAPNOSPECULAR{X}\nsheenBase+=info.sheen.rgb*shadow;\n#endif\n#endif\n#else\n#ifdef SHADOWCSMDEBUG{X}\ndiffuseBase+=info.diffuse*shadowDebug{X};\n#else \ndiffuseBase+=info.diffuse*shadow;\n#endif\n#ifdef SPECULARTERM\nspecularBase+=info.specular*shadow;\n#endif\n#ifdef CLEARCOAT\nclearCoatBase+=info.clearCoat.rgb*shadow;\n#endif\n#ifdef SHEEN\nsheenBase+=info.sheen.rgb*shadow;\n#endif\n#endif\n#endif\n#endif\n`;\nz.IncludesShadersStoreWGSL[fD] = pD;\nconst _D = \"lightUboDeclaration\", mD = `#ifdef LIGHT{X}\nstruct Light{X}\n{vLightData: vec4f,\nvLightDiffuse: vec4f,\nvLightSpecular: vec4f,\n#ifdef SPOTLIGHT{X}\nvLightDirection: vec4f,\nvLightFalloff: vec4f,\n#elif defined(POINTLIGHT{X})\nvLightFalloff: vec4f,\n#elif defined(HEMILIGHT{X})\nvLightGround: vec3f,\n#endif\nshadowsInfo: vec4f,\ndepthValues: vec2f} ;var light{X} : Light{X};\n#ifdef PROJECTEDLIGHTTEXTURE{X}\nuniform textureProjectionMatrix{X}: mat4x4f;var projectionLightTexture{X}sampler: sampler;var projectionLightTexture{X}: texture_2d;\n#endif\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nuniform lightMatrix{X}: array;uniform viewFrustumZ{X}: array;uniform frustumLengths{X}: array;uniform cascadeBlendFactor{X}: f32;varying vPositionFromLight{X}_0: vec4f;varying vDepthMetric{X}_0: f32;varying vPositionFromLight{X}_1: vec4f;varying vDepthMetric{X}_1: f32;varying vPositionFromLight{X}_2: vec4f;varying vDepthMetric{X}_2: f32;varying vPositionFromLight{X}_3: vec4f;varying vDepthMetric{X}_3: f32;varying vPositionFromCamera{X}: vec4f;var vPositionFromLight{X}: array;var vDepthMetric{X} : array;\n#if defined(SHADOWPCSS{X})\nvar shadowTexture{X}Sampler: sampler_comparison; \nvar shadowTexture{X}: texture_depth_2d_array;var depthTexture{X}Sampler: sampler;var depthTexture{X}: texture_2d_array;uniform lightSizeUVCorrection{X}: array;uniform depthCorrection{X}: array;uniform penumbraDarkness{X}: f32;\n#elif defined(SHADOWPCF{X})\nvar shadowTexture{X}Sampler: sampler_comparison;var shadowTexture{X}: texture_depth_2d_array;\n#else \nvar shadowTexture{X}Sampler: sampler; \nvar shadowTexture{X}: texture_2d_array;\n#endif\n#ifdef SHADOWCSMDEBUG{X}\nconst vCascadeColorsMultiplier{X}: array=array\n(\nvec3f ( 1.5,0.0,0.0 ),\nvec3f ( 0.0,1.5,0.0 ),\nvec3f ( 0.0,0.0,5.5 ),\nvec3f ( 1.5,0.0,5.5 ),\nvec3f ( 1.5,1.5,0.0 ),\nvec3f ( 1.0,1.0,1.0 ),\nvec3f ( 0.0,1.0,5.5 ),\nvec3f ( 0.5,3.5,0.75 )\n);\n#endif\n#elif defined(SHADOWCUBE{X})\nvar shadowTexture{X}Sampler: sampler;var shadowTexture{X}: texture_cube;\n#else\nvarying vPositionFromLight{X}: vec4f;varying vDepthMetric{X}: f32;\n#if defined(SHADOWPCSS{X})\nvar shadowTexture{X}Sampler: sampler_comparison; \nvar shadowTexture{X}: texture_depth_2d;var depthTexture{X}Sampler: sampler; \nvar depthTexture{X}: texture_2d;\n#elif defined(SHADOWPCF{X})\nvar shadowTexture{X}Sampler: sampler_comparison;var shadowTexture{X}: texture_depth_2d;\n#else\nvar shadowTexture{X}Sampler: sampler; \nvar shadowTexture{X}: texture_2d;\n#endif\nuniform lightMatrix{X}: mat4x4f;\n#endif\n#endif\n#endif\n`;\nz.IncludesShadersStoreWGSL[_D] = mD;\nconst gD = \"lightVxUboDeclaration\", xD = `#ifdef LIGHT{X}\nstruct Light{X}\n{vLightData: vec4f,\nvLightDiffuse: vec4f,\nvLightSpecular: vec4f,\n#ifdef SPOTLIGHT{X}\nvLightDirection: vec4f,\nvLightFalloff: vec4f,\n#elif defined(POINTLIGHT{X})\nvLightFalloff: vec4f,\n#elif defined(HEMILIGHT{X})\nvLightGround: vec3f,\n#endif\nshadowsInfo: vec4f,\ndepthValues: vec2f} ;var light{X} : Light{X};\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nuniform lightMatrix{X}: array;varying vPositionFromLight{X}_0: vec4f;varying vDepthMetric{X}_0: f32;varying vPositionFromLight{X}_1: vec4f;varying vDepthMetric{X}_1: f32;varying vPositionFromLight{X}_2: vec4f;varying vDepthMetric{X}_2: f32;varying vPositionFromLight{X}_3: vec4f;varying vDepthMetric{X}_3: f32;varying vPositionFromCamera{X}: vec4f;\n#elif defined(SHADOWCUBE{X})\n#else\nvarying vPositionFromLight{X}: vec4f;varying vDepthMetric{X}: f32;uniform lightMatrix{X}: mat4x4f;\n#endif\n#endif\n#endif\n`;\nz.IncludesShadersStoreWGSL[gD] = xD;\nconst vD = \"shadowsFragmentFunctions\", TD = `#ifdef SHADOWS\n#ifndef SHADOWFLOAT\nfn unpack(color: vec4f)->f32\n{const bit_shift: vec4f= vec4f(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(color,bit_shift);}\n#endif\nfn computeFallOff(value: f32,clipSpace: vec2f,frustumEdgeFalloff: f32)->f32\n{var mask: f32=smoothstep(1.0-frustumEdgeFalloff,1.00000012,clamp(dot(clipSpace,clipSpace),0.,1.));return mix(value,1.0,mask);}\nfn computeShadowCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube,shadowSampler: sampler,darkness: f32,depthValues: vec2f)->f32\n{var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);depth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;\n#ifndef SHADOWFLOAT\nvar shadow: f32=unpack(textureSample(shadowTexture,shadowSampler,directionToLight));\n#else\nvar shadow: f32=textureSample(shadowTexture,shadowSampler,directionToLight).x;\n#endif\nreturn select(darkness,1.0,depth>shadow);}\nfn computeShadowWithPoissonSamplingCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube,shadowSampler: sampler,mapSize: f32,darkness: f32,depthValues: vec2f)->f32\n{var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);depth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;var visibility: f32=1.;var poissonDisk: array;poissonDisk[0]= vec3f(-1.0,1.0,-1.0);poissonDisk[1]= vec3f(1.0,-1.0,-1.0);poissonDisk[2]= vec3f(-1.0,-1.0,-1.0);poissonDisk[3]= vec3f(1.0,-1.0,1.0);\n#ifndef SHADOWFLOAT\nif (unpack(textureSample(shadowTexture,shadowSampler,directionToLight+poissonDisk[0]*mapSize)),shadowSampler: sampler,darkness: f32,depthScale: f32,depthValues: vec2f)->f32\n{var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);var shadowPixelDepth: f32=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;\n#ifndef SHADOWFLOAT\nvar shadowMapSample: f32=unpack(textureSample(shadowTexture,shadowSampler,directionToLight));\n#else\nvar shadowMapSample: f32=textureSample(shadowTexture,shadowSampler,directionToLight).x;\n#endif\nvar esm: f32=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);return esm;}\nfn computeShadowWithCloseESMCube(worldPos: vec3f,lightPosition: vec3f,shadowTexture: texture_cube,shadowSampler: sampler,darkness: f32,depthScale: f32,depthValues: vec2f)->f32\n{var directionToLight: vec3f=worldPos-lightPosition;var depth: f32=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);var shadowPixelDepth: f32=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;\n#ifndef SHADOWFLOAT\nvar shadowMapSample: f32=unpack(textureSample(shadowTexture,shadowSampler,directionToLight));\n#else\nvar shadowMapSample: f32=textureSample(shadowTexture,shadowSampler,directionToLight).x;\n#endif\nvar esm: f32=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);return esm;}\nfn computeShadowCSM(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d_array,shadowSampler: sampler,darkness: f32,frustumEdgeFalloff: f32)->f32\n{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);\n#ifndef SHADOWFLOAT\nvar shadow: f32=unpack(textureSample(shadowTexture,shadowSampler,uv,layer));\n#else\nvar shadow: f32=textureSample(shadowTexture,shadowSampler,uv,layer).x;\n#endif\nreturn select(1.,computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff),shadowPixelDepth>shadow );}\nfn computeShadow(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d,shadowSampler: sampler,darkness: f32,frustumEdgeFalloff: f32)->f32\n{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\n{return 1.0;}\nelse\n{var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);\n#ifndef SHADOWFLOAT\nvar shadow: f32=unpack(textureSampleLevel(shadowTexture,shadowSampler,uv,0.));\n#else\nvar shadow: f32=textureSampleLevel(shadowTexture,shadowSampler,uv,0.).x;\n#endif\nreturn select(1.,computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff),shadowPixelDepth>shadow );}}\nfn computeShadowWithPoissonSampling(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d,shadowSampler: sampler,mapSize: f32,darkness: f32,frustumEdgeFalloff: f32)->f32\n{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\n{return 1.0;}\nelse\n{var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);var visibility: f32=1.;var poissonDisk: array;poissonDisk[0]= vec2f(-0.94201624,-0.39906216);poissonDisk[1]= vec2f(0.94558609,-0.76890725);poissonDisk[2]= vec2f(-0.094184101,-0.92938870);poissonDisk[3]= vec2f(0.34495938,0.29387760);\n#ifndef SHADOWFLOAT\nif (unpack(textureSampleLevel(shadowTexture,shadowSampler,uv+poissonDisk[0]*mapSize,0.)),shadowSampler: sampler,darkness: f32,depthScale: f32,frustumEdgeFalloff: f32)->f32\n{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\n{return 1.0;}\nelse\n{var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0);\n#ifndef SHADOWFLOAT\nvar shadowMapSample: f32=unpack(textureSampleLevel(shadowTexture,shadowSampler,uv,0.));\n#else\nvar shadowMapSample: f32=textureSampleLevel(shadowTexture,shadowSampler,uv,0.).x;\n#endif\nvar esm: f32=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);}}\nfn computeShadowWithCloseESM(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_2d,shadowSampler: sampler,darkness: f32,depthScale: f32,frustumEdgeFalloff: f32)->f32\n{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uv: vec2f=0.5*clipSpace.xy+ vec2f(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\n{return 1.0;}\nelse\n{var shadowPixelDepth: f32=clamp(depthMetric,0.,1.0); \n#ifndef SHADOWFLOAT\nvar shadowMapSample: f32=unpack(textureSampleLevel(shadowTexture,shadowSampler,uv,0.));\n#else\nvar shadowMapSample: f32=textureSampleLevel(shadowTexture,shadowSampler,uv,0.).x;\n#endif\nvar esm: f32=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);}}\nfn getZInClip(clipSpace: vec3f,uvDepth: vec3f)->f32\n{\n#ifdef IS_NDC_HALF_ZRANGE\nreturn clipSpace.z;\n#else\nreturn uvDepth.z;\n#endif\n}\nconst GREATEST_LESS_THAN_ONE: f32=0.99999994;\n#define DISABLE_UNIFORMITY_ANALYSIS\nfn computeShadowWithCSMPCF1(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,darkness: f32,frustumEdgeFalloff: f32)->f32\n{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var shadow: f32=textureSampleCompare(shadowTexture,shadowSampler,uvDepth.xy,layer,uvDepth.z);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}\nfn computeShadowWithCSMPCF3(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32\n{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x; \nuv+=0.5; \nvar st: vec2f=fract(uv); \nvar base_uv: vec2f=floor(uv)-0.5; \nbase_uv*=shadowMapSizeAndInverse.y; \nvar uvw0: vec2f=3.-2.*st;var uvw1: vec2f=1.+2.*st;var u: vec2f= vec2f((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;var v: vec2f= vec2f((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),layer,uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),layer,uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),layer,uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),layer,uvDepth.z);shadow=shadow/16.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}\nfn computeShadowWithCSMPCF5(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32\n{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x; \nuv+=0.5; \nvar st: vec2f=fract(uv); \nvar base_uv: vec2f=floor(uv)-0.5; \nbase_uv*=shadowMapSizeAndInverse.y; \nvar uvw0: vec2f=4.-3.*st;var uvw1: vec2f= vec2f(7.);var uvw2: vec2f=1.+3.*st;var u: vec3f= vec3f((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;var v: vec3f= vec3f((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),layer,uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),layer,uvDepth.z);shadow+=uvw2.x*uvw0.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[0]),layer,uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),layer,uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),layer,uvDepth.z);shadow+=uvw2.x*uvw1.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[1]),layer,uvDepth.z);shadow+=uvw0.x*uvw2.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[2]),layer,uvDepth.z);shadow+=uvw1.x*uvw2.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[2]),layer,uvDepth.z);shadow+=uvw2.x*uvw2.y*textureSampleCompare(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[2]),layer,uvDepth.z);shadow=shadow/144.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}\nfn computeShadowWithPCF1(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,darkness: f32,frustumEdgeFalloff: f32)->f32\n{if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}\nelse\n{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);var shadow: f32=textureSampleCompareLevel(shadowTexture,shadowSampler,uvDepth.xy,uvDepth.z);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}\nfn computeShadowWithPCF3(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32\n{if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}\nelse\n{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x; \nuv+=0.5; \nvar st: vec2f=fract(uv); \nvar base_uv: vec2f=floor(uv)-0.5; \nbase_uv*=shadowMapSizeAndInverse.y; \nvar uvw0: vec2f=3.-2.*st;var uvw1: vec2f=1.+2.*st;var u: vec2f= vec2f((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;var v: vec2f= vec2f((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),uvDepth.z);shadow=shadow/16.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}\nfn computeShadowWithPCF5(vPositionFromLight: vec4f,depthMetric: f32,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeAndInverse: vec2f,darkness: f32,frustumEdgeFalloff: f32)->f32\n{if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}\nelse\n{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);var uv: vec2f=uvDepth.xy*shadowMapSizeAndInverse.x; \nuv+=0.5; \nvar st: vec2f=fract(uv); \nvar base_uv: vec2f=floor(uv)-0.5; \nbase_uv*=shadowMapSizeAndInverse.y; \nvar uvw0: vec2f=4.-3.*st;var uvw1: vec2f= vec2f(7.);var uvw2: vec2f=1.+3.*st;var u: vec3f= vec3f((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;var v: vec3f= vec3f((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;var shadow: f32=0.;shadow+=uvw0.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[0]),uvDepth.z);shadow+=uvw1.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[0]),uvDepth.z);shadow+=uvw2.x*uvw0.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[0]),uvDepth.z);shadow+=uvw0.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[1]),uvDepth.z);shadow+=uvw1.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[1]),uvDepth.z);shadow+=uvw2.x*uvw1.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[1]),uvDepth.z);shadow+=uvw0.x*uvw2.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[0],v[2]),uvDepth.z);shadow+=uvw1.x*uvw2.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[1],v[2]),uvDepth.z);shadow+=uvw2.x*uvw2.y*textureSampleCompareLevel(shadowTexture,shadowSampler, base_uv.xy+ vec2f(u[2],v[2]),uvDepth.z);shadow=shadow/144.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}\nconst PoissonSamplers32: array=array (\nvec3f(0.06407013,0.05409927,0.),\nvec3f(0.7366577,0.5789394,0.),\nvec3f(-0.6270542,-0.5320278,0.),\nvec3f(-0.4096107,0.8411095,0.),\nvec3f(0.6849564,-0.4990818,0.),\nvec3f(-0.874181,-0.04579735,0.),\nvec3f(0.9989998,0.0009880066,0.),\nvec3f(-0.004920578,-0.9151649,0.),\nvec3f(0.1805763,0.9747483,0.),\nvec3f(-0.2138451,0.2635818,0.),\nvec3f(0.109845,0.3884785,0.),\nvec3f(0.06876755,-0.3581074,0.),\nvec3f(0.374073,-0.7661266,0.),\nvec3f(0.3079132,-0.1216763,0.),\nvec3f(-0.3794335,-0.8271583,0.),\nvec3f(-0.203878,-0.07715034,0.),\nvec3f(0.5912697,0.1469799,0.),\nvec3f(-0.88069,0.3031784,0.),\nvec3f(0.5040108,0.8283722,0.),\nvec3f(-0.5844124,0.5494877,0.),\nvec3f(0.6017799,-0.1726654,0.),\nvec3f(-0.5554981,0.1559997,0.),\nvec3f(-0.3016369,-0.3900928,0.),\nvec3f(-0.5550632,-0.1723762,0.),\nvec3f(0.925029,0.2995041,0.),\nvec3f(-0.2473137,0.5538505,0.),\nvec3f(0.9183037,-0.2862392,0.),\nvec3f(0.2469421,0.6718712,0.),\nvec3f(0.3916397,-0.4328209,0.),\nvec3f(-0.03576927,-0.6220032,0.),\nvec3f(-0.04661255,0.7995201,0.),\nvec3f(0.4402924,0.3640312,0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.),\nvec3f(0.)\n);const PoissonSamplers64: array=array (\nvec3f(-0.613392,0.617481,0.),\nvec3f(0.170019,-0.040254,0.),\nvec3f(-0.299417,0.791925,0.),\nvec3f(0.645680,0.493210,0.),\nvec3f(-0.651784,0.717887,0.),\nvec3f(0.421003,0.027070,0.),\nvec3f(-0.817194,-0.271096,0.),\nvec3f(-0.705374,-0.668203,0.),\nvec3f(0.977050,-0.108615,0.),\nvec3f(0.063326,0.142369,0.),\nvec3f(0.203528,0.214331,0.),\nvec3f(-0.667531,0.326090,0.),\nvec3f(-0.098422,-0.295755,0.),\nvec3f(-0.885922,0.215369,0.),\nvec3f(0.566637,0.605213,0.),\nvec3f(0.039766,-0.396100,0.),\nvec3f(0.751946,0.453352,0.),\nvec3f(0.078707,-0.715323,0.),\nvec3f(-0.075838,-0.529344,0.),\nvec3f(0.724479,-0.580798,0.),\nvec3f(0.222999,-0.215125,0.),\nvec3f(-0.467574,-0.405438,0.),\nvec3f(-0.248268,-0.814753,0.),\nvec3f(0.354411,-0.887570,0.),\nvec3f(0.175817,0.382366,0.),\nvec3f(0.487472,-0.063082,0.),\nvec3f(-0.084078,0.898312,0.),\nvec3f(0.488876,-0.783441,0.),\nvec3f(0.470016,0.217933,0.),\nvec3f(-0.696890,-0.549791,0.),\nvec3f(-0.149693,0.605762,0.),\nvec3f(0.034211,0.979980,0.),\nvec3f(0.503098,-0.308878,0.),\nvec3f(-0.016205,-0.872921,0.),\nvec3f(0.385784,-0.393902,0.),\nvec3f(-0.146886,-0.859249,0.),\nvec3f(0.643361,0.164098,0.),\nvec3f(0.634388,-0.049471,0.),\nvec3f(-0.688894,0.007843,0.),\nvec3f(0.464034,-0.188818,0.),\nvec3f(-0.440840,0.137486,0.),\nvec3f(0.364483,0.511704,0.),\nvec3f(0.034028,0.325968,0.),\nvec3f(0.099094,-0.308023,0.),\nvec3f(0.693960,-0.366253,0.),\nvec3f(0.678884,-0.204688,0.),\nvec3f(0.001801,0.780328,0.),\nvec3f(0.145177,-0.898984,0.),\nvec3f(0.062655,-0.611866,0.),\nvec3f(0.315226,-0.604297,0.),\nvec3f(-0.780145,0.486251,0.),\nvec3f(-0.371868,0.882138,0.),\nvec3f(0.200476,0.494430,0.),\nvec3f(-0.494552,-0.711051,0.),\nvec3f(0.612476,0.705252,0.),\nvec3f(-0.578845,-0.768792,0.),\nvec3f(-0.772454,-0.090976,0.),\nvec3f(0.504440,0.372295,0.),\nvec3f(0.155736,0.065157,0.),\nvec3f(0.391522,0.849605,0.),\nvec3f(-0.620106,-0.328104,0.),\nvec3f(0.789239,-0.419965,0.),\nvec3f(-0.545396,0.538133,0.),\nvec3f(-0.178564,-0.596057,0.)\n);fn computeShadowWithCSMPCSS(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,searchTapCount: i32,pcfTapCount: i32,poissonSamplers: array,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32\n{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=clamp(getZInClip(clipSpace,uvDepth),0.,GREATEST_LESS_THAN_ONE);var uvDepthLayer: vec4f= vec4f(uvDepth.x,uvDepth.y,f32(layer),uvDepth.z);var blockerDepth: f32=0.0;var sumBlockerDepth: f32=0.0;var numBlocker: f32=0.0;for (var i: i32=0; i,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,searchTapCount: i32,pcfTapCount: i32,poissonSamplers: array)->f32\n{var clipSpace: vec3f=vPositionFromLight.xyz/vPositionFromLight.w;var uvDepth: vec3f= vec3f(0.5*clipSpace.xyz+ vec3f(0.5));uvDepth.z=getZInClip(clipSpace,uvDepth);var blockerDepth: f32=0.0;var sumBlockerDepth: f32=0.0;var numBlocker: f32=0.0;var exitCondition: bool=depthMetric>1.0 || depthMetric<0.0;for (var i: i32=0; i,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32)->f32\n{return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32);}\nfn computeShadowWithPCSS32(vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32)->f32\n{return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32);}\nfn computeShadowWithPCSS64(vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d,depthSampler: sampler,shadowTexture: texture_depth_2d,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32)->f32\n{return computeShadowWithPCSS(vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64);}\nfn computeShadowWithCSMPCSS16(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32\n{return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}\nfn computeShadowWithCSMPCSS32(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32\n{return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}\nfn computeShadowWithCSMPCSS64(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32\n{return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}\n#endif\n`;\nz.IncludesShadersStoreWGSL[vD] = TD;\nconst SD = \"shadowsVertex\", bD = `#ifdef SHADOWS\n#if defined(SHADOWCSM{X})\nvertexOutputs.vPositionFromCamera{X}=view*worldPos;\n#if SHADOWCSMNUM_CASCADES{X}>0\nvertexOutputs.vPositionFromLight{X}_0=uniforms.lightMatrix{X}[0]*worldPos;\n#ifdef USE_REVERSE_DEPTHBUFFER\nvertexOutputs.vDepthMetric{X}_0=(-vertexOutputs.vPositionFromLight{X}_0.z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#else\nvertexOutputs.vDepthMetric{X}_0= (vertexOutputs.vPositionFromLight{X}_0.z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#endif\n#endif\n#if SHADOWCSMNUM_CASCADES{X}>1\nvertexOutputs.vPositionFromLight{X}_1=uniforms.lightMatrix{X}[1]*worldPos;\n#ifdef USE_REVERSE_DEPTHBUFFER\nvertexOutputs.vDepthMetric{X}_1=(-vertexOutputs.vPositionFromLight{X}_1.z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#else\nvertexOutputs.vDepthMetric{X}_1= (vertexOutputs.vPositionFromLight{X}_1.z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#endif\n#endif \n#if SHADOWCSMNUM_CASCADES{X}>2\nvertexOutputs.vPositionFromLight{X}_2=uniforms.lightMatrix{X}[2]*worldPos;\n#ifdef USE_REVERSE_DEPTHBUFFER\nvertexOutputs.vDepthMetric{X}_2=(-vertexOutputs.vPositionFromLight{X}_2.z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#else\nvertexOutputs.vDepthMetric{X}_2= (vertexOutputs.vPositionFromLight{X}_2.z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#endif\n#endif \n#if SHADOWCSMNUM_CASCADES{X}>3\nvertexOutputs.vPositionFromLight{X}_3=uniforms.lightMatrix{X}[3]*worldPos;\n#ifdef USE_REVERSE_DEPTHBUFFER\nvertexOutputs.vDepthMetric{X}_3=(-vertexOutputs.vPositionFromLight{X}_3.z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#else\nvertexOutputs.vDepthMetric{X}_3= (vertexOutputs.vPositionFromLight{X}_3.z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#endif\n#endif \n#elif defined(SHADOW{X}) && !defined(SHADOWCUBE{X})\nvertexOutputs.vPositionFromLight{X}=uniforms.lightMatrix{X}*worldPos;\n#ifdef USE_REVERSE_DEPTHBUFFER\nvertexOutputs.vDepthMetric{X}=(-vertexOutputs.vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#else\nvertexOutputs.vDepthMetric{X}=(vertexOutputs.vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#endif\n#endif\n#endif\n`;\nz.IncludesShadersStoreWGSL[SD] = bD;\nconst ED = \"fogFragmentDeclaration\", yD = `#ifdef FOG\n#define FOGMODE_NONE 0.\n#define FOGMODE_EXP 1.\n#define FOGMODE_EXP2 2.\n#define FOGMODE_LINEAR 3.\n#define E 2.71828\nuniform vFogInfos: vec4f;uniform vFogColor: vec3f;varying vFogDistance: vec3f;fn CalcFogFactor()->f32\n{var fogCoeff: f32=1.0;var fogStart: f32=uniforms.vFogInfos.y;var fogEnd: f32=uniforms.vFogInfos.z;var fogDensity: f32=uniforms.vFogInfos.w;var fogDistance: f32=length(fragmentInputs.vFogDistance);if (FOGMODE_LINEAR==uniforms.vFogInfos.x)\n{fogCoeff=(fogEnd-fogDistance)/(fogEnd-fogStart);}\nelse if (FOGMODE_EXP==uniforms.vFogInfos.x)\n{fogCoeff=1.0/pow(E,fogDistance*fogDensity);}\nelse if (FOGMODE_EXP2==uniforms.vFogInfos.x)\n{fogCoeff=1.0/pow(E,fogDistance*fogDistance*fogDensity*fogDensity);}\nreturn clamp(fogCoeff,0.0,1.0);}\n#endif\n`;\nz.IncludesShadersStoreWGSL[ED] = yD;\nconst CD = \"bumpFragment\", AD = `var uvOffset: vec2f= vec2f(0.0,0.0);\n#if defined(BUMP) || defined(PARALLAX) || defined(DETAIL)\n#ifdef NORMALXYSCALE\nvar normalScale: f32=1.0;\n#elif defined(BUMP)\nvar normalScale: f32=vBumpInfos.y;\n#else\nvar normalScale: f32=1.0;\n#endif\n#if defined(TANGENT) && defined(NORMAL)\nvar TBN: mat3x3f=vTBN;\n#elif defined(BUMP)\nvar TBNUV: vec2f=select(-vBumpUV,vBumpUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vTangentSpaceParams);\n#else\nvar TBNUV: vec2f=select(-vDetailUV,vDetailUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,vPositionW,TBNUV, vec2f(1.,1.));\n#endif\n#elif defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL)\nvar TBN: mat3x3f=vTBN;\n#else\nvar TBNUV: vec2f=select( -vMainUV1,vMainUV1,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW,vPositionW,TBNUV, vec2f(1.,1.));\n#endif\n#endif\n#ifdef PARALLAX\nvar invTBN: mat3x3f=transposeMat3(TBN);\n#ifdef PARALLAXOCCLUSION\nuvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,vBumpUV,vBumpInfos.z);\n#else\nuvOffset=parallaxOffset(invTBN*viewDirectionW,vBumpInfos.z);\n#endif\n#endif\n#ifdef DETAIL\nvar detailColor: vec4f=textureSample(detail,detailSampler,vDetailUV+uvOffset);var detailNormalRG: vec2f=detailColor.wy*2.0-1.0;var detailNormalB: f32=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));var detailNormal: vec3f= vec3f(detailNormalRG,detailNormalB);\n#endif\n#ifdef BUMP\n#ifdef OBJECTSPACE_NORMALMAP\n#define CUSTOM_FRAGMENT_BUMP_FRAGMENT\nnormalW=normalize(textureSample(bump,bumpSampler,vBumpUV).xyz *2.0-1.0);normalW=normalize( mat3x3f(normalMatrix)*normalW);\n#elif !defined(DETAIL)\nnormalW=perturbNormal(TBN,textureSample(bump,bumpSampler,vBumpUV+uvOffset).xyz,vBumpInfos.y);\n#else\nvar bumpNormal: vec3f=textureSample(bump,bumpSampler,vBumpUV+uvOffset).xyz*2.0-1.0;\n#if DETAIL_NORMALBLENDMETHOD==0 \ndetailNormal.xy*=vDetailInfos.z;var blendedNormal: vec3f=normalize( vec3f(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));\n#elif DETAIL_NORMALBLENDMETHOD==1 \ndetailNormal.xy*=vDetailInfos.z;bumpNormal+= vec3f(0.0,0.0,1.0);detailNormal*= vec3f(-1.0,-1.0,1.0);var blendedNormal: vec3f=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal;\n#endif\nnormalW=perturbNormalBase(TBN,blendedNormal,vBumpInfos.y);\n#endif\n#elif defined(DETAIL)\ndetailNormal.xy*=vDetailInfos.z;normalW=perturbNormalBase(TBN,detailNormal,vDetailInfos.z);\n#endif\n`;\nz.IncludesShadersStoreWGSL[CD] = AD;\nconst RD = \"bumpFragmentMainFunctions\", ID = `#if defined(BUMP) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) || defined(DETAIL)\n#if defined(TANGENT) && defined(NORMAL) \nvarying vTBN: mat3x3f;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\nuniform normalMatrix: mat4x4f;\n#if defined(WEBGL2) || defined(WEBGPU)\nfn toNormalMatrix(wMatrix: mat4x4f)->mat4x4f\n{var ret: mat4x4f=inverse(wMatrix);ret=transpose(ret);ret[0][3]=0.;ret[1][3]=0.;ret[2][3]=0.;ret[3]= vec4f(0.,0.,0.,1.);return ret;}\n#else\nfn toNormalMatrix(m: mat4x4f)->mat4x4f\n{var a00: f32=m[0][0],a01=m[0][1],a02=m[0][2],a03=m[0][3],\na10=m[1][0],a11=m[1][1],a12=m[1][2],a13=m[1][3],\na20=m[2][0],a21=m[2][1],a22=m[2][2],a23=m[2][3],\na30=m[3][0],a31=m[3][1],a32=m[3][2],a33=m[3][3],\nb00=a00*a11-a01*a10,\nb01=a00*a12-a02*a10,\nb02=a00*a13-a03*a10,\nb03=a01*a12-a02*a11,\nb04=a01*a13-a03*a11,\nb05=a02*a13-a03*a12,\nb06=a20*a31-a21*a30,\nb07=a20*a32-a22*a30,\nb08=a20*a33-a23*a30,\nb09=a21*a32-a22*a31,\nb10=a21*a33-a23*a31,\nb11=a22*a33-a23*a32,\ndet=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;var mi: mat4x4f= mat4x4f(\na11*b11-a12*b10+a13*b09,\na02*b10-a01*b11-a03*b09,\na31*b05-a32*b04+a33*b03,\na22*b04-a21*b05-a23*b03,\na12*b08-a10*b11-a13*b07,\na00*b11-a02*b08+a03*b07,\na32*b02-a30*b05-a33*b01,\na20*b05-a22*b02+a23*b01,\na10*b10-a11*b08+a13*b06,\na01*b08-a00*b10-a03*b06,\na30*b04-a31*b02+a33*b00,\na21*b02-a20*b04-a23*b00,\na11*b07-a10*b09-a12*b06,\na00*b09-a01*b07+a02*b06,\na31*b01-a30*b03-a32*b00,\na20*b03-a21*b01+a22*b00)/det;return mat4x4f(mi[0][0],mi[1][0],mi[2][0],mi[3][0],\nmi[0][1],mi[1][1],mi[2][1],mi[3][1],\nmi[0][2],mi[1][2],mi[2][2],mi[3][2],\nmi[0][3],mi[1][3],mi[2][3],mi[3][3]);}\n#endif\n#endif\nfn perturbNormalBase(cotangentFrame: mat3x3f,normal: vec3f,scale: f32)->vec3f\n{\n#ifdef NORMALXYSCALE\nnormal=normalize(normal* vec3f(scale,scale,1.0));\n#endif\nreturn normalize(cotangentFrame*normal);}\nfn perturbNormal(cotangentFrame: mat3x3f,textureSample: vec3f,scale: f32)->vec3f\n{return perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);}\nfn cotangent_frame(normal: vec3f,p: vec3f,uv: vec2f,tangentSpaceParams: vec2f)->mat3x3f\n{var dp1: vec3f=dpdx(p);var dp2: vec3f=dpdy(p);var duv1: vec2f=dpdx(uv);var duv2: vec2f=dpdy(uv);var dp2perp: vec3f=cross(dp2,normal);var dp1perp: vec3f=cross(normal,dp1);var tangent: vec3f=dp2perp*duv1.x+dp1perp*duv2.x;var bitangent: vec3f=dp2perp*duv1.y+dp1perp*duv2.y;tangent*=tangentSpaceParams.x;bitangent*=tangentSpaceParams.y;var det: f32=max(dot(tangent,tangent),dot(bitangent,bitangent));var invmax: f32=select(inverseSqrt(det),0.0,det==0.0);return mat3x3f(tangent*invmax,bitangent*invmax,normal);}\n#endif\n`;\nz.IncludesShadersStoreWGSL[RD] = ID;\nconst PD = \"samplerFragmentDeclaration\", MD = `#ifdef _DEFINENAME_\n#if _DEFINENAME_DIRECTUV==1\n#define v_VARYINGNAME_UV vMainUV1\n#elif _DEFINENAME_DIRECTUV==2\n#define v_VARYINGNAME_UV vMainUV2\n#elif _DEFINENAME_DIRECTUV==3\n#define v_VARYINGNAME_UV vMainUV3\n#elif _DEFINENAME_DIRECTUV==4\n#define v_VARYINGNAME_UV vMainUV4\n#elif _DEFINENAME_DIRECTUV==5\n#define v_VARYINGNAME_UV vMainUV5\n#elif _DEFINENAME_DIRECTUV==6\n#define v_VARYINGNAME_UV vMainUV6\n#else\nvarying v_VARYINGNAME_UV: vec2f;\n#endif\nuniform _SAMPLERNAME_Sampler: sampler;uniform _SAMPLERNAME_: texture_2d;\n#endif\n`;\nz.IncludesShadersStoreWGSL[PD] = MD;\nconst DD = \"bumpFragmentFunctions\", OD = `#if defined(BUMP)\n#include(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump)\n#endif\n#if defined(DETAIL)\n#include(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_SAMPLERNAME_,detail)\n#endif\n#if defined(BUMP) && defined(PARALLAX)\nconst minSamples: f32=4.;const maxSamples: f32=15.;const iMaxSamples: i32=15;fn parallaxOcclusion(vViewDirCoT: vec3f,vNormalCoT: vec3f,texCoord: vec2f,parallaxScale: f32)->vec2f {var parallaxLimit: f32=length(vViewDirCoT.xy)/vViewDirCoT.z;parallaxLimit*=parallaxScale;var vOffsetDir: vec2f=normalize(vViewDirCoT.xy);var vMaxOffset: vec2f=vOffsetDir*parallaxLimit;var numSamples: f32=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));var stepSize: f32=1.0/numSamples;var currRayHeight: f32=1.0;var vCurrOffset: vec2f= vec2f(0,0);var vLastOffset: vec2f= vec2f(0,0);var lastSampledHeight: f32=1.0;var currSampledHeight: f32=1.0;var keepWorking: bool=true;for (var i: i32=0; icurrRayHeight)\n{var delta1: f32=currSampledHeight-currRayHeight;var delta2: f32=(currRayHeight+stepSize)-lastSampledHeight;var ratio: f32=delta1/(delta1+delta2);vCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset;keepWorking=false;}\nelse\n{currRayHeight-=stepSize;vLastOffset=vCurrOffset;\n#ifdef PARALLAX_RHS\nvCurrOffset-=stepSize*vMaxOffset;\n#else\nvCurrOffset+=stepSize*vMaxOffset;\n#endif\nlastSampledHeight=currSampledHeight;}}\nreturn vCurrOffset;}\nfn parallaxOffset(viewDir: vec3f,heightScale: f32)->vec2f\n{var height: f32=textureSample(bump,bumpSampler,vBumpUV).w;var texCoordOffset: vec2f=heightScale*viewDir.xy*height;\n#ifdef PARALLAX_RHS\nreturn texCoordOffset;\n#else\nreturn -texCoordOffset;\n#endif\n}\n#endif\n`;\nz.IncludesShadersStoreWGSL[DD] = OD;\nconst wD = \"imageProcessingDeclaration\", ND = `#ifdef EXPOSURE\nuniform exposureLinear: f32;\n#endif\n#ifdef CONTRAST\nuniform contrast: f32;\n#endif\n#if defined(VIGNETTE) || defined(DITHER)\nuniform vInverseScreenSize: vec2f;\n#endif\n#ifdef VIGNETTE\nuniform vignetteSettings1: vec4f;uniform vignetteSettings2: vec4f;\n#endif\n#ifdef COLORCURVES\nuniform vCameraColorCurveNegative: vec4f;uniform vCameraColorCurveNeutral: vec4f;uniform vCameraColorCurvePositive: vec4f;\n#endif\n#ifdef COLORGRADING\n#ifdef COLORGRADING3D\nuniform highp sampler3D txColorTransform;\n#else\nuniform sampler2D txColorTransform;\n#endif\nuniform colorTransformSettings: vec4f;\n#endif\n#ifdef DITHER\nuniform ditherIntensity: f32;\n#endif\n`;\nz.IncludesShadersStoreWGSL[wD] = ND;\nconst FD = \"imageProcessingFunctions\", LD = `#if TONEMAPPING==3\nconst PBRNeutralStartCompression: f32=0.8-0.04;const PBRNeutralDesaturation: f32=0.15;fn PBRNeutralToneMapping( color: vec3f )->vec3f {var x: f32=min(color.r,min(color.g,color.b));var offset: f32=select(0.04,x-6.25*x*x,x<0.08);var result=color;result-=offset;var peak: f32=max(result.r,max(result.g,result.b));if (peakvec3f\n{var a: vec3f=v*(v+0.0245786)-0.000090537;var b: vec3f=v*(0.983729*v+0.4329510)+0.238081;return a/b;}\nfn ACESFitted(color: vec3f)->vec3f\n{var output=ACESInputMat*color;output=RRTAndODTFit(output);output=ACESOutputMat*output;output=saturate(output);return output;}\n#endif\n#define CUSTOM_IMAGEPROCESSINGFUNCTIONS_DEFINITIONS\nfn applyImageProcessing(result: vec4f)->vec4f {\n#define CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATSTART\nvar rgb=result.rgb;;\n#ifdef EXPOSURE\nrgb*=uniforms.exposureLinear;\n#endif\n#ifdef VIGNETTE\nvar viewportXY: vec2f=fragmentInputs.position.xy*uniforms.vInverseScreenSize;viewportXY=viewportXY*2.0-1.0;var vignetteXY1: vec3f= vec3f(viewportXY*uniforms.vignetteSettings1.xy+uniforms.vignetteSettings1.zw,1.0);var vignetteTerm: f32=dot(vignetteXY1,vignetteXY1);var vignette: f32=pow(vignetteTerm,uniforms.vignetteSettings2.w);var vignetteColor: vec3f=uniforms.vignetteSettings2.rgb;\n#ifdef VIGNETTEBLENDMODEMULTIPLY\nvar vignetteColorMultiplier: vec3f=mix(vignetteColor, vec3f(1,1,1),vignette);rgb*=vignetteColorMultiplier;\n#endif\n#ifdef VIGNETTEBLENDMODEOPAQUE\nrgb=mix(vignetteColor,rgb,vignette);\n#endif\n#endif\n#if TONEMAPPING==3\nrgb=PBRNeutralToneMapping(rgb);\n#elif TONEMAPPING==2\nrgb=ACESFitted(rgb);\n#elif TONEMAPPING==1\nconst tonemappingCalibration: f32=1.590579;rgb=1.0-exp2(-tonemappingCalibration*rgb);\n#endif\nrgb=toGammaSpaceVec3(rgb);rgb=saturate(rgb);\n#ifdef CONTRAST\nvar resultHighContrast: vec3f=rgb*rgb*(3.0-2.0*rgb);if (uniforms.contrast<1.0) {rgb=mix( vec3f(0.5,0.5,0.5),rgb,uniforms.contrast);} else {rgb=mix(rgb,resultHighContrast,uniforms.contrast-1.0);}\n#endif\n#ifdef COLORGRADING\nvar colorTransformInput: vec3f=rgb*colorTransformSettings.xxx+colorTransformSettings.yyy;\n#ifdef COLORGRADING3D\nvar colorTransformOutput: vec3f=texture(txColorTransform,colorTransformInput).rgb;\n#else\nvar colorTransformOutput: vec3f=sampleTexture3D(txColorTransform,colorTransformInput,colorTransformSettings.yz).rgb;\n#endif\nrgb=mix(rgb,colorTransformOutput,colorTransformSettings.www);\n#endif\n#ifdef COLORCURVES\nvar luma: f32=getLuminance(rgb);var curveMix: vec2f=clamp( vec2f(luma*3.0-1.5,luma*-3.0+1.5), vec2f(0.0), vec2f(1.0));var colorCurve: vec4f=uniforms.vCameraColorCurveNeutral+curveMix.x*uniforms.vCameraColorCurvePositive-curveMix.y*uniforms.vCameraColorCurveNegative;rgb*=colorCurve.rgb;rgb=mix( vec3f(luma),rgb,colorCurve.a);\n#endif\n#ifdef DITHER\nvar rand: f32=getRand(fragmentInputs.position.xy*uniforms.vInverseScreenSize);var dither: f32=mix(-uniforms.ditherIntensity,uniforms.ditherIntensity,rand);rgb=saturate(rgb+ vec3f(dither));\n#endif\n#define CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATEND\nreturn vec4f(rgb,result.a);}`;\nz.IncludesShadersStoreWGSL[FD] = LD;\nconst BD = \"reflectionFunction\", VD = `fn computeFixedEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,direction: vec3f)->vec3f\n{var lon: f32=atan2(direction.z,direction.x);var lat: f32=acos(direction.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(s,t,0); }\nfn computeMirroredFixedEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,direction: vec3f)->vec3f\n{var lon: f32=atan2(direction.z,direction.x);var lat: f32=acos(direction.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(1.0-s,t,0); }\nfn computeEquirectangularCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f\n{var cameraToVertex: vec3f=normalize(worldPos.xyz-eyePosition);var r: vec3f=normalize(reflect(cameraToVertex,worldNormal));r= (reflectionMatrix* vec4f(r,0)).xyz;var lon: f32=atan2(r.z,r.x);var lat: f32=acos(r.y);var sphereCoords: vec2f= vec2f(lon,lat)*RECIPROCAL_PI2*2.0;var s: f32=sphereCoords.x*0.5+0.5;var t: f32=sphereCoords.y;return vec3f(s,t,0);}\nfn computeSphericalCoords(worldPos: vec4f,worldNormal: vec3f,view: mat4x4f,reflectionMatrix: mat4x4f)->vec3f\n{var viewDir: vec3f=normalize((view*worldPos).xyz);var viewNormal: vec3f=normalize((view* vec4f(worldNormal,0.0)).xyz);var r: vec3f=reflect(viewDir,viewNormal);r= (reflectionMatrix* vec4f(r,0)).xyz;r.z=r.z-1.0;var m: f32=2.0*length(r);return vec3f(r.x/m+0.5,1.0-r.y/m-0.5,0);}\nfn computePlanarCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f\n{var viewDir: vec3f=worldPos.xyz-eyePosition;var coords: vec3f=normalize(reflect(viewDir,worldNormal));return (reflectionMatrix* vec4f(coords,1)).xyz;}\nfn computeCubicCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f)->vec3f\n{var viewDir: vec3f=normalize(worldPos.xyz-eyePosition);var coords: vec3f=reflect(viewDir,worldNormal);coords= (reflectionMatrix* vec4f(coords,0)).xyz;\n#ifdef INVERTCUBICMAP\ncoords.y*=-1.0;\n#endif\nreturn coords;}\nfn computeCubicLocalCoords(worldPos: vec4f,worldNormal: vec3f,eyePosition: vec3f,reflectionMatrix: mat4x4f,reflectionSize: vec3f,reflectionPosition: vec3f)->vec3f\n{var viewDir: vec3f=normalize(worldPos.xyz-eyePosition);var coords: vec3f=reflect(viewDir,worldNormal);coords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);coords=(reflectionMatrix* vec4f(coords,0)).xyz;\n#ifdef INVERTCUBICMAP\ncoords.y*=-1.0;\n#endif\nreturn coords;}\nfn computeProjectionCoords(worldPos: vec4f,view: mat4x4f,reflectionMatrix: mat4x4f)->vec3f\n{return (reflectionMatrix*(view*worldPos)).xyz;}\nfn computeSkyBoxCoords(positionW: vec3f,reflectionMatrix: mat4x4f)->vec3f\n{return (reflectionMatrix* vec4f(positionW,1.)).xyz;}\n#ifdef REFLECTION\nfn computeReflectionCoords(worldPos: vec4f,worldNormal: vec3f)->vec3f\n{\n#ifdef REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\nvar direction: vec3f=normalize(vDirectionW);return computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction);\n#endif\n#ifdef REFLECTIONMAP_EQUIRECTANGULAR_FIXED\nvar direction: vec3f=normalize(vDirectionW);return computeFixedEquirectangularCoords(worldPos,worldNormal,direction);\n#endif\n#ifdef REFLECTIONMAP_EQUIRECTANGULAR\nreturn computeEquirectangularCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_SPHERICAL\nreturn computeSphericalCoords(worldPos,worldNormal,view,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_PLANAR\nreturn computePlanarCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_CUBIC\n#ifdef USE_LOCAL_REFLECTIONMAP_CUBIC\nreturn computeCubicLocalCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix,vReflectionSize,vReflectionPosition);\n#else\nreturn computeCubicCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\n#endif\n#endif\n#ifdef REFLECTIONMAP_PROJECTION\nreturn computeProjectionCoords(worldPos,view,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nreturn computeSkyBoxCoords(vPositionUVW,reflectionMatrix);\n#endif\n#ifdef REFLECTIONMAP_EXPLICIT\nreturn vec3f(0,0,0);\n#endif\n}\n#endif\n`;\nz.IncludesShadersStoreWGSL[BD] = VD;\nconst UD = \"fogVertexDeclaration\", kD = `#ifdef FOG\nvarying vFogDistance: vec3f;\n#endif\n`;\nz.IncludesShadersStoreWGSL[UD] = kD;\nconst GD = \"logDepthDeclaration\", zD = `#ifdef LOGARITHMICDEPTH\nuniform logarithmicDepthConstant: f32;varying vFragmentDepth: f32;\n#endif\n`;\nz.IncludesShadersStoreWGSL[GD] = zD;\nconst WD = \"fogVertex\", HD = `#ifdef FOG\nvFogDistance=(view*worldPos).xyz;\n#endif\n`;\nz.IncludesShadersStoreWGSL[WD] = HD;\nconst XD = \"logDepthVertex\", $D = `#ifdef LOGARITHMICDEPTH\nvFragmentDepth=1.0+vertexOutputs.position.w;vertexOutputs.position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;\n#endif\n`;\nz.IncludesShadersStoreWGSL[XD] = $D;\nconst YD = \"particlesVertexShader\", jD = `attribute position: vec3f;attribute color: vec4f;attribute angle: f32;attribute size: vec2f;\n#ifdef ANIMATESHEET\nattribute cellIndex: f32;\n#endif\n#ifndef BILLBOARD\nattribute direction: vec3f;\n#endif\n#ifdef BILLBOARDSTRETCHED\nattribute direction: vec3f;\n#endif\n#ifdef RAMPGRADIENT\nattribute remapData: vec4f;\n#endif\nattribute offset: vec2f;uniform view: mat4x4f;uniform projection: mat4x4f;uniform translationPivot: vec2f;\n#ifdef ANIMATESHEET\nuniform particlesInfos: vec3f; \n#endif\nvarying vUV: vec2f;varying vColor: vec4f;varying vPositionW: vec3f;\n#ifdef RAMPGRADIENT\nvarying remapRanges: vec4f;\n#endif\n#if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED)\nuniform invView: mat4x4f;\n#endif\n#include\n#include\n#include\n#ifdef BILLBOARD\nuniform eyePosition: vec3f;\n#endif\nfn rotate(yaxis: vec3f,rotatedCorner: vec3f)->vec3f {var xaxis: vec3f=normalize(cross( vec3f(0.,1.0,0.),yaxis));var zaxis: vec3f=normalize(cross(yaxis,xaxis));var row0: vec3f= vec3f(xaxis.x,xaxis.y,xaxis.z);var row1: vec3f= vec3f(yaxis.x,yaxis.y,yaxis.z);var row2: vec3f= vec3f(zaxis.x,zaxis.y,zaxis.z);var rotMatrix: mat3x3f= mat3x3f(row0,row1,row2);var alignedCorner: vec3f=rotMatrix*rotatedCorner;return vertexInputs.position+alignedCorner;}\n#ifdef BILLBOARDSTRETCHED\nfn rotateAlign(toCamera: vec3f,rotatedCorner: vec3f)->vec3f {var normalizedToCamera: vec3f=normalize(toCamera);var normalizedCrossDirToCamera: vec3f=normalize(cross(normalize(direction),normalizedToCamera));var row0: vec3f= vec3f(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);var row2: vec3f= vec3f(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\n#ifdef BILLBOARDSTRETCHED_LOCAL\nvar row1: vec3f=direction;\n#else\nvar crossProduct: vec3f=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));var row1: vec3f= vec3f(crossProduct.x,crossProduct.y,crossProduct.z);\n#endif\nvar rotMatrix: mat3x3f= mat3x3f(row0,row1,row2);var alignedCorner: vec3f=rotMatrix*rotatedCorner;return vertexInputs.position+alignedCorner;}\n#endif\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input: VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvar cornerPos: vec2f;cornerPos=( vec2f(vertexInputs.offset.x-0.5,vertexInputs.offset.y -0.5)-uniforms.translationPivot)*vertexInputs.size;\n#ifdef BILLBOARD\nvar rotatedCorner: vec3f;\n#ifdef BILLBOARDY\nrotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.ngle);rotatedCorner.z=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.y=0.;rotatedCorner.xz+=uniforms.translationPivot;var yaxis: vec3f=vertexInputs.position-eyePosition;yaxis.y=0.;vertexOutputs.vPositionW=rotate(normalize(yaxis),rotatedCorner);var viewPos: vec3f=(uniforms.view* vec4f(vertexOutputs.vPositionW,1.0)).xyz;\n#elif defined(BILLBOARDSTRETCHED)\nrotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.y=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.z=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var toCamera: vec3f=vertexInputs.position-eyePosition;vertexOutputs.vPositionW=rotateAlign(toCamera,rotatedCorner);var viewPos: vec3f=(uniforms.view* vec4f(vertexOutputs.vPositionW,1.0)).xyz;\n#else\nrotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.y=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.z=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var viewPos: vec3f=(uniforms.view* vec4f(vertexInputs.position,1.0)).xyz+rotatedCorner;vertexOutputs.vPositionW=(uniforms.invView* vec4f(viewPos,1)).xyz;\n#endif\n#ifdef RAMPGRADIENT\nremapRanges=remapData;\n#endif\nvertexOutputs.position=uniforms.projection* vec4f(viewPos,1.0);\n#else\nvar rotatedCorner: vec3f;rotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.z=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.y=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var yaxis: vec3f=normalize(direction);vertexOutputs.vPositionW=rotate(yaxis,rotatedCorner);vertexOutputs.position=uniforms.projection*view* vec4f(vertexOutputs.vPositionW,1.0);\n#endif\nvertexOutputs.vColor=vertexInputs.color;\n#ifdef ANIMATESHEET\nvar rowOffset: f32=floor(cellIndex*particlesInfos.z);var columnOffset: f32=cellIndex-rowOffset/particlesInfos.z;var uvScale: vec2f=particlesInfos.xy;var uvOffset: vec2f= vec2f(vertexInputs.offset.x ,1.0-vertexInputs.offset.y);vertexOutputs.vUV=(uvOffset+ vec2f(columnOffset,rowOffset))*uvScale;\n#else\nvertexOutputs.vUV=vertexInputs.offset;\n#endif\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6) || defined(FOG)\nvar worldPos: vec4f= vec4f(vertexOutputs.vPositionW,1.0);\n#endif\n#include\n#include\n#include\n#define CUSTOM_VERTEX_MAIN_END\n}`;\nz.ShadersStoreWGSL[YD] = jD;\nconst bb = \"fragmentOutputs.fragDepth\", KD = \"uniforms\", qD = \"internals\", QD = {\n texture_1d: \"1d\",\n texture_2d: \"2d\",\n texture_2d_array: \"2d-array\",\n texture_3d: \"3d\",\n texture_cube: \"cube\",\n texture_cube_array: \"cube-array\",\n texture_multisampled_2d: \"2d\",\n texture_depth_2d: \"2d\",\n texture_depth_2d_array: \"2d-array\",\n texture_depth_cube: \"cube\",\n texture_depth_cube_array: \"cube-array\",\n texture_depth_multisampled_2d: \"2d\",\n texture_storage_1d: \"1d\",\n texture_storage_2d: \"2d\",\n texture_storage_2d_array: \"2d-array\",\n texture_storage_3d: \"3d\",\n texture_external: null\n};\nclass ZD extends ds {\n constructor() {\n super(...arguments), this.shaderLanguage = 1, this.uniformRegexp = /uniform\\s+(\\w+)\\s*:\\s*(.+)\\s*;/, this.textureRegexp = /var\\s+(\\w+)\\s*:\\s*((array<\\s*)?(texture_\\w+)\\s*(<\\s*(.+)\\s*>)?\\s*(,\\s*\\w+\\s*>\\s*)?);/, this.noPrecision = !0;\n }\n preProcessor(e, t, i, s, r) {\n for (const n in i) {\n if (n === \"__VERSION__\")\n continue;\n const o = i[n];\n (!isNaN(parseInt(o)) || !isNaN(parseFloat(o))) && (e = `const ${n} = ${o};\n` + e);\n }\n return e;\n }\n _getArraySize(e, t, i) {\n let s = 0;\n const r = t.lastIndexOf(\">\");\n if (t.indexOf(\"array\") >= 0 && r > 0) {\n let n = r;\n for (; n > 0 && t.charAt(n) !== \" \" && t.charAt(n) !== \",\"; )\n n--;\n const o = t.substring(n + 1, r);\n for (s = +o, isNaN(s) && (s = +i[o.trim()]); n > 0 && (t.charAt(n) === \" \" || t.charAt(n) === \",\"); )\n n--;\n t = t.substring(t.indexOf(\"<\") + 1, n + 1);\n }\n return [e, t, s];\n }\n initializeShaders(e) {\n this._webgpuProcessingContext = e, this._attributesInputWGSL = [], this._attributesWGSL = [], this._attributesConversionCodeWGSL = [], this._hasNonFloatAttribute = !1, this._varyingsWGSL = [], this._varyingNamesWGSL = [], this._stridedUniformArrays = [];\n }\n preProcessShaderCode(e) {\n const t = `struct ${ds.InternalsUBOName} {\n yFactor_: f32,\n textureOutputHeight_: f32,\n};\nvar ${qD} : ${ds.InternalsUBOName};\n`;\n return e.indexOf(t) !== -1 ? e : t + Eg(e);\n }\n varyingCheck(e, t) {\n return /(flat|linear|perspective)?\\s*(center|centroid|sample)?\\s*\\bvarying\\b/.test(e);\n }\n varyingProcessor(e, t, i) {\n const r = /\\s*(flat|linear|perspective)?\\s*(center|centroid|sample)?\\s*varying\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s*:\\s*(.+)\\s*;/gm.exec(e);\n if (r !== null) {\n const n = r[1] ?? \"perspective\", o = r[2] ?? \"center\", l = r[4], h = r[3], c = n === \"flat\" ? `@interpolate(${n})` : `@interpolate(${n}, ${o})`;\n let u;\n t ? (u = this._webgpuProcessingContext.availableVaryings[h], u === void 0 && L.Warn(`Invalid fragment shader: The varying named \"${h}\" is not declared in the vertex shader! This declaration will be ignored.`)) : (u = this._webgpuProcessingContext.getVaryingNextLocation(l, this._getArraySize(h, l, i)[2]), this._webgpuProcessingContext.availableVaryings[h] = u, this._varyingsWGSL.push(` @location(${u}) ${c} ${h} : ${l},`), this._varyingNamesWGSL.push(h)), e = \"\";\n }\n return e;\n }\n attributeProcessor(e, t) {\n const s = /\\s*attribute\\s+(\\S+)\\s*:\\s*(.+)\\s*;/gm.exec(e);\n if (s !== null) {\n const r = s[2], n = s[1], o = this._webgpuProcessingContext.getAttributeNextLocation(r, this._getArraySize(n, r, t)[2]);\n this._webgpuProcessingContext.availableAttributes[n] = o, this._webgpuProcessingContext.orderedAttributes[o] = n;\n const l = this._webgpuProcessingContext.vertexBufferKindToNumberOfComponents[n];\n if (l !== void 0) {\n const h = l < 0 ? l === -1 ? \"i32\" : \"vec\" + -l + \"\" : l === 1 ? \"u32\" : \"vec\" + l + \"\", c = `_int_${n}_`;\n this._attributesInputWGSL.push(`@location(${o}) ${c} : ${h},`), this._attributesWGSL.push(`${n} : ${r},`), this._attributesConversionCodeWGSL.push(`vertexInputs.${n} = ${r}(vertexInputs_.${c});`), this._hasNonFloatAttribute = !0;\n } else\n this._attributesInputWGSL.push(`@location(${o}) ${n} : ${r},`), this._attributesWGSL.push(`${n} : ${r},`), this._attributesConversionCodeWGSL.push(`vertexInputs.${n} = vertexInputs_.${n};`);\n e = \"\";\n }\n return e;\n }\n uniformProcessor(e, t, i) {\n const s = this.uniformRegexp.exec(e);\n if (s !== null) {\n const r = s[2], n = s[1];\n this._addUniformToLeftOverUBO(n, r, i), e = \"\";\n }\n return e;\n }\n textureProcessor(e, t, i) {\n const s = this.textureRegexp.exec(e);\n if (s !== null) {\n const r = s[1], n = s[2], o = !!s[3], l = s[4], h = l.indexOf(\"storage\") > 0, c = s[6], u = h ? c.substring(0, c.indexOf(\",\")).trim() : null;\n let d = o ? this._getArraySize(r, n, i)[2] : 0, f = this._webgpuProcessingContext.availableTextures[r];\n if (f)\n d = f.textures.length;\n else {\n f = {\n isTextureArray: d > 0,\n isStorageTexture: h,\n textures: [],\n sampleType: \"float\"\n }, d = d || 1;\n for (let x = 0; x < d; ++x)\n f.textures.push(this._webgpuProcessingContext.getNextFreeUBOBinding());\n }\n this._webgpuProcessingContext.availableTextures[r] = f;\n const p = l.indexOf(\"depth\") > 0, _ = QD[l], m = p ? \"depth\" : c === \"u32\" ? \"uint\" : c === \"i32\" ? \"sint\" : \"float\";\n if (f.sampleType = m, _ === void 0)\n throw `Can't get the texture dimension corresponding to the texture function \"${l}\"!`;\n for (let x = 0; x < d; ++x) {\n const { groupIndex: v, bindingIndex: T } = f.textures[x];\n x === 0 && (e = `@group(${v}) @binding(${T}) ${e}`), this._addTextureBindingDescription(r, f, x, _, u, !t);\n }\n }\n return e;\n }\n // Ignore for now as we inject const for numeric defines\n // public postProcessor(code: string, defines: string[]) {\n // const defineToValue: { [key: string]: string } = {};\n // for (const define of defines) {\n // const parts = define.split(/ +/);\n // defineToValue[parts[1]] = parts.length > 2 ? parts[2] : \"\";\n // }\n // return code.replace(/\\$(\\w+)\\$/g, (_, p1) => {\n // return defineToValue[p1] ?? p1;\n // });\n // }\n finalizeShaders(e, t) {\n const i = t.indexOf(\"fragmentInputs.position\") >= 0 ? `\n if (internals.yFactor_ == 1.) {\n fragmentInputs.position.y = internals.textureOutputHeight_ - fragmentInputs.position.y;\n }\n ` : \"\";\n e = this._processSamplers(e, !0), t = this._processSamplers(t, !1), e = this._processCustomBuffers(e, !0), t = this._processCustomBuffers(t, !1);\n const s = this._buildLeftOverUBO();\n e = s + e, t = s + t, e = e.replace(/#define (\\w+)\\s+(\\d+\\.?\\d*)/g, \"const $1 = $2;\"), e = e.replace(/#define /g, \"//#define \"), e = this._processStridedUniformArrays(e);\n let r = `struct VertexInputs {\n @builtin(vertex_index) vertexIndex : u32,\n @builtin(instance_index) instanceIndex : u32,\n`;\n this._attributesInputWGSL.length > 0 && (r += this._attributesInputWGSL.join(`\n`)), r += `\n};\nvar vertexInputs` + (this._hasNonFloatAttribute ? \"_\" : \"\") + ` : VertexInputs;\n`, this._hasNonFloatAttribute && (r += `struct VertexInputs_ {\n vertexIndex : u32, instanceIndex : u32,\n`, r += this._attributesWGSL.join(`\n`), r += `\n};\nvar vertexInputs : VertexInputs_;\n`);\n let n = `struct FragmentInputs {\n @builtin(position) position : vec4,\n`;\n this._varyingsWGSL.length > 0 && (n += this._varyingsWGSL.join(`\n`)), n += `\n};\nvar vertexOutputs : FragmentInputs;\n`, e = r + n + e;\n let o = `\n vertexInputs${this._hasNonFloatAttribute ? \"_\" : \"\"} = input;\n`;\n this._hasNonFloatAttribute && (o += `vertexInputs.vertexIndex = vertexInputs_.vertexIndex;\nvertexInputs.instanceIndex = vertexInputs_.instanceIndex;\n`, o += this._attributesConversionCodeWGSL.join(`\n`), o += `\n`);\n const l = ` vertexOutputs.position.y = vertexOutputs.position.y * internals.yFactor_;\n return vertexOutputs;`;\n let h = e.indexOf(\"#define DISABLE_UNIFORMITY_ANALYSIS\") !== -1;\n e = (h ? `diagnostic(off, derivative_uniformity);\n` : \"\") + Np(e, \"fn main\", o, l), t = t.replace(/#define (\\w+)\\s+(\\d+\\.?\\d*)/g, \"const $1 = $2;\"), t = t.replace(/#define /g, \"//#define \"), t = this._processStridedUniformArrays(t), t = t.replace(/dpdy/g, \"(-internals.yFactor_)*dpdy\");\n let c = `struct FragmentInputs {\n @builtin(position) position : vec4,\n @builtin(front_facing) frontFacing : bool,\n`;\n this._varyingsWGSL.length > 0 && (c += this._varyingsWGSL.join(`\n`)), c += `\n};\nvar fragmentInputs : FragmentInputs;\n`;\n let u = `struct FragmentOutputs {\n @location(0) color : vec4,\n`, d = !1, f = 0;\n for (; !d && (f = t.indexOf(bb, f), !(f < 0)); ) {\n const m = f;\n for (d = !0; f > 1 && t.charAt(f) !== `\n`; ) {\n if (t.charAt(f) === \"/\" && t.charAt(f - 1) === \"/\") {\n d = !1;\n break;\n }\n f--;\n }\n f = m + bb.length;\n }\n d && (u += ` @builtin(frag_depth) fragDepth: f32,\n`), u += `};\nvar fragmentOutputs : FragmentOutputs;\n`, t = c + u + t;\n const p = ` fragmentInputs = input;\n ` + i, _ = \" return fragmentOutputs;\";\n return h = t.indexOf(\"#define DISABLE_UNIFORMITY_ANALYSIS\") !== -1, t = (h ? `diagnostic(off, derivative_uniformity);\n` : \"\") + Np(t, \"fn main\", p, _), this._collectBindingNames(), this._preCreateBindGroupEntries(), this._webgpuProcessingContext.vertexBufferKindToNumberOfComponents = {}, { vertexCode: e, fragmentCode: t };\n }\n _generateLeftOverUBOCode(e, t) {\n let i = \"\", s = `struct ${e} {\n`;\n for (const r of this._webgpuProcessingContext.leftOverUniforms) {\n const n = r.type.replace(/^(.*?)(<.*>)?$/, \"$1\"), o = ds.UniformSizes[n];\n if (r.length > 0)\n if (o <= 2) {\n const l = `${e}_${this._stridedUniformArrays.length}_strided_arr`;\n i += `struct ${l} {\n @size(16)\n el: ${n},\n }`, this._stridedUniformArrays.push(r.name), s += ` @align(16) ${r.name} : array<${l}, ${r.length}>,\n`;\n } else\n s += ` ${r.name} : array<${r.type}, ${r.length}>,\n`;\n else\n s += ` ${r.name} : ${r.type},\n`;\n }\n return s += `};\n`, s = `${i}\n${s}`, s += `@group(${t.binding.groupIndex}) @binding(${t.binding.bindingIndex}) var ${KD} : ${e};\n`, s;\n }\n _processSamplers(e, t) {\n const i = /var\\s+(\\w+Sampler)\\s*:\\s*(sampler|sampler_comparison)\\s*;/gm;\n for (; ; ) {\n const s = i.exec(e);\n if (s === null)\n break;\n const r = s[1], n = s[2], o = r.length - 7, l = r.lastIndexOf(\"Sampler\") === o ? r.substring(0, o) : null, h = n === \"sampler_comparison\" ? \"comparison\" : \"filtering\";\n if (l) {\n const p = this._webgpuProcessingContext.availableTextures[l];\n p && (p.autoBindSampler = !0);\n }\n let c = this._webgpuProcessingContext.availableSamplers[r];\n c || (c = {\n binding: this._webgpuProcessingContext.getNextFreeUBOBinding(),\n type: h\n }, this._webgpuProcessingContext.availableSamplers[r] = c), this._addSamplerBindingDescription(r, c, t);\n const u = e.substring(0, s.index), d = `@group(${c.binding.groupIndex}) @binding(${c.binding.bindingIndex}) `, f = e.substring(s.index);\n e = u + d + f, i.lastIndex += d.length;\n }\n return e;\n }\n _processCustomBuffers(e, t) {\n var s;\n const i = /var<\\s*(uniform|storage)\\s*(,\\s*(read|read_write)\\s*)?>\\s+(\\S+)\\s*:\\s*(\\S+)\\s*;/gm;\n for (; ; ) {\n const r = i.exec(e);\n if (r === null)\n break;\n const n = r[1], o = r[3];\n let l = r[4];\n const h = r[5];\n let c = this._webgpuProcessingContext.availableBuffers[l];\n if (!c) {\n const m = n === \"uniform\" ? an.KnownUBOs[h] : null;\n let x;\n m ? (l = h, x = m.binding, x.groupIndex === -1 && (x = (s = this._webgpuProcessingContext.availableBuffers[l]) == null ? void 0 : s.binding, x || (x = this._webgpuProcessingContext.getNextFreeUBOBinding()))) : x = this._webgpuProcessingContext.getNextFreeUBOBinding(), c = { binding: x }, this._webgpuProcessingContext.availableBuffers[l] = c;\n }\n this._addBufferBindingDescription(l, this._webgpuProcessingContext.availableBuffers[l], o === \"read_write\" ? \"storage\" : n === \"storage\" ? \"read-only-storage\" : \"uniform\", t);\n const u = c.binding.groupIndex, d = c.binding.bindingIndex, f = e.substring(0, r.index), p = `@group(${u}) @binding(${d}) `, _ = e.substring(r.index);\n e = f + p + _, i.lastIndex += p.length;\n }\n return e;\n }\n _processStridedUniformArrays(e) {\n for (const t of this._stridedUniformArrays)\n e = e.replace(new RegExp(`${t}\\\\s*\\\\[(.*?)\\\\]`, \"g\"), `${t}[$1].el`);\n return e;\n }\n}\nclass Bt {\n static ComputeNumMipmapLevels(e, t) {\n return Re.ILog2(Math.max(e, t)) + 1;\n }\n static GetTextureTypeFromFormat(e) {\n switch (e) {\n case \"r8unorm\":\n case \"r8snorm\":\n case \"r8uint\":\n case \"r8sint\":\n case \"rg8unorm\":\n case \"rg8snorm\":\n case \"rg8uint\":\n case \"rg8sint\":\n case \"rgba8unorm\":\n case \"rgba8unorm-srgb\":\n case \"rgba8snorm\":\n case \"rgba8uint\":\n case \"rgba8sint\":\n case \"bgra8unorm\":\n case \"bgra8unorm-srgb\":\n case \"rgb10a2uint\":\n case \"rgb10a2unorm\":\n case \"rgb9e5ufloat\":\n case \"rg11b10ufloat\":\n case \"bc7-rgba-unorm\":\n case \"bc7-rgba-unorm-srgb\":\n case \"bc6h-rgb-ufloat\":\n case \"bc6h-rgb-float\":\n case \"bc5-rg-unorm\":\n case \"bc5-rg-snorm\":\n case \"bc3-rgba-unorm\":\n case \"bc3-rgba-unorm-srgb\":\n case \"bc2-rgba-unorm\":\n case \"bc2-rgba-unorm-srgb\":\n case \"bc4-r-unorm\":\n case \"bc4-r-snorm\":\n case \"bc1-rgba-unorm\":\n case \"bc1-rgba-unorm-srgb\":\n case \"etc2-rgb8unorm\":\n case \"etc2-rgb8unorm-srgb\":\n case \"etc2-rgb8a1unorm\":\n case \"etc2-rgb8a1unorm-srgb\":\n case \"etc2-rgba8unorm\":\n case \"etc2-rgba8unorm-srgb\":\n case \"eac-r11unorm\":\n case \"eac-r11snorm\":\n case \"eac-rg11unorm\":\n case \"eac-rg11snorm\":\n case \"astc-4x4-unorm\":\n case \"astc-4x4-unorm-srgb\":\n case \"astc-5x4-unorm\":\n case \"astc-5x4-unorm-srgb\":\n case \"astc-5x5-unorm\":\n case \"astc-5x5-unorm-srgb\":\n case \"astc-6x5-unorm\":\n case \"astc-6x5-unorm-srgb\":\n case \"astc-6x6-unorm\":\n case \"astc-6x6-unorm-srgb\":\n case \"astc-8x5-unorm\":\n case \"astc-8x5-unorm-srgb\":\n case \"astc-8x6-unorm\":\n case \"astc-8x6-unorm-srgb\":\n case \"astc-8x8-unorm\":\n case \"astc-8x8-unorm-srgb\":\n case \"astc-10x5-unorm\":\n case \"astc-10x5-unorm-srgb\":\n case \"astc-10x6-unorm\":\n case \"astc-10x6-unorm-srgb\":\n case \"astc-10x8-unorm\":\n case \"astc-10x8-unorm-srgb\":\n case \"astc-10x10-unorm\":\n case \"astc-10x10-unorm-srgb\":\n case \"astc-12x10-unorm\":\n case \"astc-12x10-unorm-srgb\":\n case \"astc-12x12-unorm\":\n case \"astc-12x12-unorm-srgb\":\n case \"stencil8\":\n return 0;\n case \"r16uint\":\n case \"r16sint\":\n case \"rg16uint\":\n case \"rg16sint\":\n case \"rgba16uint\":\n case \"rgba16sint\":\n case \"depth16unorm\":\n return 5;\n case \"r16float\":\n case \"rg16float\":\n case \"rgba16float\":\n return 2;\n case \"r32uint\":\n case \"r32sint\":\n case \"rg32uint\":\n case \"rg32sint\":\n case \"rgba32uint\":\n case \"rgba32sint\":\n return 7;\n case \"r32float\":\n case \"rg32float\":\n case \"rgba32float\":\n case \"depth32float\":\n case \"depth32float-stencil8\":\n case \"depth24plus\":\n case \"depth24plus-stencil8\":\n return 1;\n }\n return 0;\n }\n static GetBlockInformationFromFormat(e) {\n switch (e) {\n case \"r8unorm\":\n case \"r8snorm\":\n case \"r8uint\":\n case \"r8sint\":\n return { width: 1, height: 1, length: 1 };\n case \"r16uint\":\n case \"r16sint\":\n case \"r16float\":\n case \"rg8unorm\":\n case \"rg8snorm\":\n case \"rg8uint\":\n case \"rg8sint\":\n return { width: 1, height: 1, length: 2 };\n case \"r32uint\":\n case \"r32sint\":\n case \"r32float\":\n case \"rg16uint\":\n case \"rg16sint\":\n case \"rg16float\":\n case \"rgba8unorm\":\n case \"rgba8unorm-srgb\":\n case \"rgba8snorm\":\n case \"rgba8uint\":\n case \"rgba8sint\":\n case \"bgra8unorm\":\n case \"bgra8unorm-srgb\":\n case \"rgb9e5ufloat\":\n case \"rgb10a2uint\":\n case \"rgb10a2unorm\":\n case \"rg11b10ufloat\":\n return { width: 1, height: 1, length: 4 };\n case \"rg32uint\":\n case \"rg32sint\":\n case \"rg32float\":\n case \"rgba16uint\":\n case \"rgba16sint\":\n case \"rgba16float\":\n return { width: 1, height: 1, length: 8 };\n case \"rgba32uint\":\n case \"rgba32sint\":\n case \"rgba32float\":\n return { width: 1, height: 1, length: 16 };\n case \"stencil8\":\n throw \"No fixed size for Stencil8 format!\";\n case \"depth16unorm\":\n return { width: 1, height: 1, length: 2 };\n case \"depth24plus\":\n throw \"No fixed size for Depth24Plus format!\";\n case \"depth24plus-stencil8\":\n throw \"No fixed size for Depth24PlusStencil8 format!\";\n case \"depth32float\":\n return { width: 1, height: 1, length: 4 };\n case \"depth32float-stencil8\":\n return { width: 1, height: 1, length: 5 };\n case \"bc7-rgba-unorm\":\n case \"bc7-rgba-unorm-srgb\":\n case \"bc6h-rgb-ufloat\":\n case \"bc6h-rgb-float\":\n case \"bc5-rg-unorm\":\n case \"bc5-rg-snorm\":\n case \"bc3-rgba-unorm\":\n case \"bc3-rgba-unorm-srgb\":\n case \"bc2-rgba-unorm\":\n case \"bc2-rgba-unorm-srgb\":\n return { width: 4, height: 4, length: 16 };\n case \"bc4-r-unorm\":\n case \"bc4-r-snorm\":\n case \"bc1-rgba-unorm\":\n case \"bc1-rgba-unorm-srgb\":\n return { width: 4, height: 4, length: 8 };\n case \"etc2-rgb8unorm\":\n case \"etc2-rgb8unorm-srgb\":\n case \"etc2-rgb8a1unorm\":\n case \"etc2-rgb8a1unorm-srgb\":\n case \"eac-r11unorm\":\n case \"eac-r11snorm\":\n return { width: 4, height: 4, length: 8 };\n case \"etc2-rgba8unorm\":\n case \"etc2-rgba8unorm-srgb\":\n case \"eac-rg11unorm\":\n case \"eac-rg11snorm\":\n return { width: 4, height: 4, length: 16 };\n case \"astc-4x4-unorm\":\n case \"astc-4x4-unorm-srgb\":\n return { width: 4, height: 4, length: 16 };\n case \"astc-5x4-unorm\":\n case \"astc-5x4-unorm-srgb\":\n return { width: 5, height: 4, length: 16 };\n case \"astc-5x5-unorm\":\n case \"astc-5x5-unorm-srgb\":\n return { width: 5, height: 5, length: 16 };\n case \"astc-6x5-unorm\":\n case \"astc-6x5-unorm-srgb\":\n return { width: 6, height: 5, length: 16 };\n case \"astc-6x6-unorm\":\n case \"astc-6x6-unorm-srgb\":\n return { width: 6, height: 6, length: 16 };\n case \"astc-8x5-unorm\":\n case \"astc-8x5-unorm-srgb\":\n return { width: 8, height: 5, length: 16 };\n case \"astc-8x6-unorm\":\n case \"astc-8x6-unorm-srgb\":\n return { width: 8, height: 6, length: 16 };\n case \"astc-8x8-unorm\":\n case \"astc-8x8-unorm-srgb\":\n return { width: 8, height: 8, length: 16 };\n case \"astc-10x5-unorm\":\n case \"astc-10x5-unorm-srgb\":\n return { width: 10, height: 5, length: 16 };\n case \"astc-10x6-unorm\":\n case \"astc-10x6-unorm-srgb\":\n return { width: 10, height: 6, length: 16 };\n case \"astc-10x8-unorm\":\n case \"astc-10x8-unorm-srgb\":\n return { width: 10, height: 8, length: 16 };\n case \"astc-10x10-unorm\":\n case \"astc-10x10-unorm-srgb\":\n return { width: 10, height: 10, length: 16 };\n case \"astc-12x10-unorm\":\n case \"astc-12x10-unorm-srgb\":\n return { width: 12, height: 10, length: 16 };\n case \"astc-12x12-unorm\":\n case \"astc-12x12-unorm-srgb\":\n return { width: 12, height: 12, length: 16 };\n }\n return { width: 1, height: 1, length: 4 };\n }\n static IsHardwareTexture(e) {\n return !!e.release;\n }\n static IsInternalTexture(e) {\n return !!e.dispose;\n }\n static IsImageBitmap(e) {\n return e.close !== void 0;\n }\n static IsImageBitmapArray(e) {\n return Array.isArray(e) && e[0].close !== void 0;\n }\n static IsCompressedFormat(e) {\n switch (e) {\n case \"bc7-rgba-unorm-srgb\":\n case \"bc7-rgba-unorm\":\n case \"bc6h-rgb-float\":\n case \"bc6h-rgb-ufloat\":\n case \"bc5-rg-snorm\":\n case \"bc5-rg-unorm\":\n case \"bc4-r-snorm\":\n case \"bc4-r-unorm\":\n case \"bc3-rgba-unorm-srgb\":\n case \"bc3-rgba-unorm\":\n case \"bc2-rgba-unorm-srgb\":\n case \"bc2-rgba-unorm\":\n case \"bc1-rgba-unorm-srgb\":\n case \"bc1-rgba-unorm\":\n case \"etc2-rgb8unorm\":\n case \"etc2-rgb8unorm-srgb\":\n case \"etc2-rgb8a1unorm\":\n case \"etc2-rgb8a1unorm-srgb\":\n case \"etc2-rgba8unorm\":\n case \"etc2-rgba8unorm-srgb\":\n case \"eac-r11unorm\":\n case \"eac-r11snorm\":\n case \"eac-rg11unorm\":\n case \"eac-rg11snorm\":\n case \"astc-4x4-unorm\":\n case \"astc-4x4-unorm-srgb\":\n case \"astc-5x4-unorm\":\n case \"astc-5x4-unorm-srgb\":\n case \"astc-5x5-unorm\":\n case \"astc-5x5-unorm-srgb\":\n case \"astc-6x5-unorm\":\n case \"astc-6x5-unorm-srgb\":\n case \"astc-6x6-unorm\":\n case \"astc-6x6-unorm-srgb\":\n case \"astc-8x5-unorm\":\n case \"astc-8x5-unorm-srgb\":\n case \"astc-8x6-unorm\":\n case \"astc-8x6-unorm-srgb\":\n case \"astc-8x8-unorm\":\n case \"astc-8x8-unorm-srgb\":\n case \"astc-10x5-unorm\":\n case \"astc-10x5-unorm-srgb\":\n case \"astc-10x6-unorm\":\n case \"astc-10x6-unorm-srgb\":\n case \"astc-10x8-unorm\":\n case \"astc-10x8-unorm-srgb\":\n case \"astc-10x10-unorm\":\n case \"astc-10x10-unorm-srgb\":\n case \"astc-12x10-unorm\":\n case \"astc-12x10-unorm-srgb\":\n case \"astc-12x12-unorm\":\n case \"astc-12x12-unorm-srgb\":\n return !0;\n }\n return !1;\n }\n static GetWebGPUTextureFormat(e, t, i = !1) {\n switch (t) {\n case 15:\n return \"depth16unorm\";\n case 16:\n return \"depth24plus\";\n case 13:\n return \"depth24plus-stencil8\";\n case 14:\n return \"depth32float\";\n case 18:\n return \"depth32float-stencil8\";\n case 19:\n return \"stencil8\";\n case 36492:\n return i ? \"bc7-rgba-unorm-srgb\" : \"bc7-rgba-unorm\";\n case 36495:\n return \"bc6h-rgb-ufloat\";\n case 36494:\n return \"bc6h-rgb-float\";\n case 33779:\n return i ? \"bc3-rgba-unorm-srgb\" : \"bc3-rgba-unorm\";\n case 33778:\n return i ? \"bc2-rgba-unorm-srgb\" : \"bc2-rgba-unorm\";\n case 33777:\n case 33776:\n return i ? \"bc1-rgba-unorm-srgb\" : \"bc1-rgba-unorm\";\n case 37808:\n return i ? \"astc-4x4-unorm-srgb\" : \"astc-4x4-unorm\";\n case 36196:\n case 37492:\n return i ? \"etc2-rgb8unorm-srgb\" : \"etc2-rgb8unorm\";\n case 37496:\n return i ? \"etc2-rgba8unorm-srgb\" : \"etc2-rgba8unorm\";\n }\n switch (e) {\n case 3:\n switch (t) {\n case 6:\n return \"r8snorm\";\n case 7:\n return \"rg8snorm\";\n case 4:\n throw \"RGB format not supported in WebGPU\";\n case 8:\n return \"r8sint\";\n case 9:\n return \"rg8sint\";\n case 10:\n throw \"RGB_INTEGER format not supported in WebGPU\";\n case 11:\n return \"rgba8sint\";\n default:\n return \"rgba8snorm\";\n }\n case 0:\n switch (t) {\n case 6:\n return \"r8unorm\";\n case 7:\n return \"rg8unorm\";\n case 4:\n throw \"TEXTUREFORMAT_RGB format not supported in WebGPU\";\n case 5:\n return i ? \"rgba8unorm-srgb\" : \"rgba8unorm\";\n case 12:\n return i ? \"bgra8unorm-srgb\" : \"bgra8unorm\";\n case 8:\n return \"r8uint\";\n case 9:\n return \"rg8uint\";\n case 10:\n throw \"RGB_INTEGER format not supported in WebGPU\";\n case 11:\n return \"rgba8uint\";\n case 0:\n throw \"TEXTUREFORMAT_ALPHA format not supported in WebGPU\";\n case 1:\n throw \"TEXTUREFORMAT_LUMINANCE format not supported in WebGPU\";\n case 2:\n throw \"TEXTUREFORMAT_LUMINANCE_ALPHA format not supported in WebGPU\";\n default:\n return \"rgba8unorm\";\n }\n case 4:\n switch (t) {\n case 8:\n return \"r16sint\";\n case 9:\n return \"rg16sint\";\n case 10:\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\n case 11:\n return \"rgba16sint\";\n default:\n return \"rgba16sint\";\n }\n case 5:\n switch (t) {\n case 8:\n return \"r16uint\";\n case 9:\n return \"rg16uint\";\n case 10:\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\n case 11:\n return \"rgba16uint\";\n default:\n return \"rgba16uint\";\n }\n case 6:\n switch (t) {\n case 8:\n return \"r32sint\";\n case 9:\n return \"rg32sint\";\n case 10:\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\n case 11:\n return \"rgba32sint\";\n default:\n return \"rgba32sint\";\n }\n case 7:\n switch (t) {\n case 8:\n return \"r32uint\";\n case 9:\n return \"rg32uint\";\n case 10:\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\n case 11:\n return \"rgba32uint\";\n default:\n return \"rgba32uint\";\n }\n case 1:\n switch (t) {\n case 6:\n return \"r32float\";\n case 7:\n return \"rg32float\";\n case 4:\n throw \"TEXTUREFORMAT_RGB format not supported in WebGPU\";\n case 5:\n return \"rgba32float\";\n default:\n return \"rgba32float\";\n }\n case 2:\n switch (t) {\n case 6:\n return \"r16float\";\n case 7:\n return \"rg16float\";\n case 4:\n throw \"TEXTUREFORMAT_RGB format not supported in WebGPU\";\n case 5:\n return \"rgba16float\";\n default:\n return \"rgba16float\";\n }\n case 10:\n throw \"TEXTURETYPE_UNSIGNED_SHORT_5_6_5 format not supported in WebGPU\";\n case 13:\n switch (t) {\n case 5:\n return \"rg11b10ufloat\";\n case 11:\n throw \"TEXTUREFORMAT_RGBA_INTEGER format not supported in WebGPU when type is TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV\";\n default:\n return \"rg11b10ufloat\";\n }\n case 14:\n switch (t) {\n case 5:\n return \"rgb9e5ufloat\";\n case 11:\n throw \"TEXTUREFORMAT_RGBA_INTEGER format not supported in WebGPU when type is TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV\";\n default:\n return \"rgb9e5ufloat\";\n }\n case 8:\n throw \"TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 format not supported in WebGPU\";\n case 9:\n throw \"TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 format not supported in WebGPU\";\n case 11:\n switch (t) {\n case 5:\n return \"rgb10a2unorm\";\n case 11:\n return \"rgb10a2uint\";\n default:\n return \"rgb10a2unorm\";\n }\n }\n return i ? \"rgba8unorm-srgb\" : \"rgba8unorm\";\n }\n static GetNumChannelsFromWebGPUTextureFormat(e) {\n switch (e) {\n case \"r8unorm\":\n case \"r8snorm\":\n case \"r8uint\":\n case \"r8sint\":\n case \"bc4-r-unorm\":\n case \"bc4-r-snorm\":\n case \"r16uint\":\n case \"r16sint\":\n case \"depth16unorm\":\n case \"r16float\":\n case \"r32uint\":\n case \"r32sint\":\n case \"r32float\":\n case \"depth32float\":\n case \"stencil8\":\n case \"depth24plus\":\n case \"eac-r11unorm\":\n case \"eac-r11snorm\":\n return 1;\n case \"rg8unorm\":\n case \"rg8snorm\":\n case \"rg8uint\":\n case \"rg8sint\":\n case \"depth32float-stencil8\":\n case \"bc5-rg-unorm\":\n case \"bc5-rg-snorm\":\n case \"rg16uint\":\n case \"rg16sint\":\n case \"rg16float\":\n case \"rg32uint\":\n case \"rg32sint\":\n case \"rg32float\":\n case \"depth24plus-stencil8\":\n case \"eac-rg11unorm\":\n case \"eac-rg11snorm\":\n return 2;\n case \"rgb9e5ufloat\":\n case \"rg11b10ufloat\":\n case \"bc6h-rgb-ufloat\":\n case \"bc6h-rgb-float\":\n case \"etc2-rgb8unorm\":\n case \"etc2-rgb8unorm-srgb\":\n return 3;\n case \"rgba8unorm\":\n case \"rgba8unorm-srgb\":\n case \"rgba8snorm\":\n case \"rgba8uint\":\n case \"rgba8sint\":\n case \"bgra8unorm\":\n case \"bgra8unorm-srgb\":\n case \"rgb10a2uint\":\n case \"rgb10a2unorm\":\n case \"bc7-rgba-unorm\":\n case \"bc7-rgba-unorm-srgb\":\n case \"bc3-rgba-unorm\":\n case \"bc3-rgba-unorm-srgb\":\n case \"bc2-rgba-unorm\":\n case \"bc2-rgba-unorm-srgb\":\n case \"bc1-rgba-unorm\":\n case \"bc1-rgba-unorm-srgb\":\n case \"rgba16uint\":\n case \"rgba16sint\":\n case \"rgba16float\":\n case \"rgba32uint\":\n case \"rgba32sint\":\n case \"rgba32float\":\n case \"etc2-rgb8a1unorm\":\n case \"etc2-rgb8a1unorm-srgb\":\n case \"etc2-rgba8unorm\":\n case \"etc2-rgba8unorm-srgb\":\n case \"astc-4x4-unorm\":\n case \"astc-4x4-unorm-srgb\":\n case \"astc-5x4-unorm\":\n case \"astc-5x4-unorm-srgb\":\n case \"astc-5x5-unorm\":\n case \"astc-5x5-unorm-srgb\":\n case \"astc-6x5-unorm\":\n case \"astc-6x5-unorm-srgb\":\n case \"astc-6x6-unorm\":\n case \"astc-6x6-unorm-srgb\":\n case \"astc-8x5-unorm\":\n case \"astc-8x5-unorm-srgb\":\n case \"astc-8x6-unorm\":\n case \"astc-8x6-unorm-srgb\":\n case \"astc-8x8-unorm\":\n case \"astc-8x8-unorm-srgb\":\n case \"astc-10x5-unorm\":\n case \"astc-10x5-unorm-srgb\":\n case \"astc-10x6-unorm\":\n case \"astc-10x6-unorm-srgb\":\n case \"astc-10x8-unorm\":\n case \"astc-10x8-unorm-srgb\":\n case \"astc-10x10-unorm\":\n case \"astc-10x10-unorm-srgb\":\n case \"astc-12x10-unorm\":\n case \"astc-12x10-unorm-srgb\":\n case \"astc-12x12-unorm\":\n case \"astc-12x12-unorm-srgb\":\n return 4;\n }\n throw `Unknown format ${e}!`;\n }\n static HasStencilAspect(e) {\n switch (e) {\n case \"stencil8\":\n case \"depth32float-stencil8\":\n case \"depth24plus-stencil8\":\n return !0;\n }\n return !1;\n }\n static HasDepthAndStencilAspects(e) {\n switch (e) {\n case \"depth32float-stencil8\":\n case \"depth24plus-stencil8\":\n return !0;\n }\n return !1;\n }\n static GetDepthFormatOnly(e) {\n switch (e) {\n case \"depth16unorm\":\n return \"depth16unorm\";\n case \"depth24plus\":\n return \"depth24plus\";\n case \"depth24plus-stencil8\":\n return \"depth24plus\";\n case \"depth32float\":\n return \"depth32float\";\n case \"depth32float-stencil8\":\n return \"depth32float\";\n }\n return e;\n }\n static GetSample(e) {\n return e > 1 ? 4 : 1;\n }\n}\nclass xp {\n get underlyingResource() {\n return this._webgpuTexture;\n }\n getMSAATexture(e = 0) {\n var t;\n return ((t = this._webgpuMSAATexture) == null ? void 0 : t[e]) ?? null;\n }\n setMSAATexture(e, t = -1) {\n this._webgpuMSAATexture || (this._webgpuMSAATexture = []), t === -1 && (t = this._webgpuMSAATexture.length), this._webgpuMSAATexture[t] = e;\n }\n releaseMSAATexture() {\n if (this._webgpuMSAATexture) {\n for (const e of this._webgpuMSAATexture)\n e == null || e.destroy();\n this._webgpuMSAATexture = null;\n }\n }\n constructor(e = null) {\n this._originalFormatIsRGB = !1, this.format = \"rgba8unorm\", this.textureUsages = 0, this.textureAdditionalUsages = 0, this._webgpuTexture = e, this._webgpuMSAATexture = null, this.view = null, this.viewForWriting = null;\n }\n set(e) {\n this._webgpuTexture = e;\n }\n setUsage(e, t, i, s, r, n, o, l) {\n let h = \"2d\", c = 1;\n s ? (h = i ? \"cube-array\" : \"cube\", c = 6 * (l || 1)) : r ? (h = \"3d\", c = 1) : i && (h = \"2d-array\", c = l);\n const u = Bt.GetDepthFormatOnly(this.format), d = Bt.HasDepthAndStencilAspects(this.format) ? \"depth-only\" : \"all\";\n this.createView({\n label: `TextureView${r ? \"3D\" : s ? \"Cube\" : \"2D\"}${i ? \"_Array\" + c : \"\"}_${n}x${o}_${t ? \"wmips\" : \"womips\"}_${this.format}_${h}`,\n format: u,\n dimension: h,\n mipLevelCount: t ? Re.ILog2(Math.max(n, o)) + 1 : 1,\n baseArrayLayer: 0,\n baseMipLevel: 0,\n arrayLayerCount: c,\n aspect: d\n });\n }\n createView(e, t = !1) {\n if (this.view = this._webgpuTexture.createView(e), t && e) {\n const i = e.mipLevelCount;\n e.mipLevelCount = 1, this.viewForWriting = this._webgpuTexture.createView(e), e.mipLevelCount = i;\n }\n }\n reset() {\n this._webgpuTexture = null, this._webgpuMSAATexture = null, this.view = null, this.viewForWriting = null;\n }\n release() {\n var e, t;\n (e = this._webgpuTexture) == null || e.destroy(), this.releaseMSAATexture(), (t = this._copyInvertYTempTexture) == null || t.destroy(), this.reset();\n }\n}\nconst JD = `\n const vec2 pos[4] = vec2[4](vec2(-1.0f, 1.0f), vec2(1.0f, 1.0f), vec2(-1.0f, -1.0f), vec2(1.0f, -1.0f));\n const vec2 tex[4] = vec2[4](vec2(0.0f, 0.0f), vec2(1.0f, 0.0f), vec2(0.0f, 1.0f), vec2(1.0f, 1.0f));\n\n layout(location = 0) out vec2 vTex;\n\n void main() {\n vTex = tex[gl_VertexIndex];\n gl_Position = vec4(pos[gl_VertexIndex], 0.0, 1.0);\n }\n `, eO = `\n layout(set = 0, binding = 0) uniform sampler imgSampler;\n layout(set = 0, binding = 1) uniform texture2D img;\n\n layout(location = 0) in vec2 vTex;\n layout(location = 0) out vec4 outColor;\n\n void main() {\n outColor = texture(sampler2D(img, imgSampler), vTex);\n }\n `, UC = `\n #extension GL_EXT_samplerless_texture_functions : enable\n\n const vec2 pos[4] = vec2[4](vec2(-1.0f, 1.0f), vec2(1.0f, 1.0f), vec2(-1.0f, -1.0f), vec2(1.0f, -1.0f));\n const vec2 tex[4] = vec2[4](vec2(0.0f, 0.0f), vec2(1.0f, 0.0f), vec2(0.0f, 1.0f), vec2(1.0f, 1.0f));\n\n layout(set = 0, binding = 0) uniform texture2D img;\n\n #ifdef INVERTY\n layout(location = 0) out flat ivec2 vTextureSize;\n #endif\n\n void main() {\n #ifdef INVERTY\n vTextureSize = textureSize(img, 0);\n #endif\n gl_Position = vec4(pos[gl_VertexIndex], 0.0, 1.0);\n }\n `, tO = `\n #extension GL_EXT_samplerless_texture_functions : enable\n\n layout(set = 0, binding = 0) uniform texture2D img;\n\n #ifdef INVERTY\n layout(location = 0) in flat ivec2 vTextureSize;\n #endif\n layout(location = 0) out vec4 outColor;\n\n void main() {\n #ifdef INVERTY\n vec4 color = texelFetch(img, ivec2(gl_FragCoord.x, vTextureSize.y - gl_FragCoord.y), 0);\n #else\n vec4 color = texelFetch(img, ivec2(gl_FragCoord.xy), 0);\n #endif\n #ifdef PREMULTIPLYALPHA\n color.rgb *= color.a;\n #endif\n outColor = color;\n }\n `, iO = UC, sO = `\n #extension GL_EXT_samplerless_texture_functions : enable\n\n layout(set = 0, binding = 0) uniform texture2D img;\n layout(set = 0, binding = 1) uniform Params {\n float ofstX;\n float ofstY;\n float width;\n float height;\n };\n\n #ifdef INVERTY\n layout(location = 0) in flat ivec2 vTextureSize;\n #endif\n layout(location = 0) out vec4 outColor;\n\n void main() {\n if (gl_FragCoord.x < ofstX || gl_FragCoord.x >= ofstX + width) {\n discard;\n }\n if (gl_FragCoord.y < ofstY || gl_FragCoord.y >= ofstY + height) {\n discard;\n }\n #ifdef INVERTY\n vec4 color = texelFetch(img, ivec2(gl_FragCoord.x, ofstY + height - (gl_FragCoord.y - ofstY)), 0);\n #else\n vec4 color = texelFetch(img, ivec2(gl_FragCoord.xy), 0);\n #endif\n #ifdef PREMULTIPLYALPHA\n color.rgb *= color.a;\n #endif\n outColor = color;\n }\n `, rO = `\n const vec2 pos[4] = vec2[4](vec2(-1.0f, 1.0f), vec2(1.0f, 1.0f), vec2(-1.0f, -1.0f), vec2(1.0f, -1.0f));\n\n void main() {\n gl_Position = vec4(pos[gl_VertexIndex], 0.0, 1.0);\n }\n `, nO = `\n layout(set = 0, binding = 0) uniform Uniforms {\n uniform vec4 color;\n };\n\n layout(location = 0) out vec4 outColor;\n\n void main() {\n outColor = color;\n }\n `, aO = `\n struct VertexOutput {\n @builtin(position) Position : vec4,\n @location(0) fragUV : vec2\n }\n\n @vertex\n fn main(\n @builtin(vertex_index) VertexIndex : u32\n ) -> VertexOutput {\n var pos = array, 4>(\n vec2(-1.0, 1.0),\n vec2( 1.0, 1.0),\n vec2(-1.0, -1.0),\n vec2( 1.0, -1.0)\n );\n var tex = array, 4>(\n vec2(0.0, 0.0),\n vec2(1.0, 0.0),\n vec2(0.0, 1.0),\n vec2(1.0, 1.0)\n );\n\n var output: VertexOutput;\n\n output.Position = vec4(pos[VertexIndex], 0.0, 1.0);\n output.fragUV = tex[VertexIndex];\n\n return output;\n }\n `, oO = `\n @group(0) @binding(0) var videoSampler: sampler;\n @group(0) @binding(1) var videoTexture: texture_external;\n\n @fragment\n fn main(\n @location(0) fragUV: vec2\n ) -> @location(0) vec4 {\n return textureSampleBaseClampToEdge(videoTexture, videoSampler, fragUV);\n }\n `, lO = `\n @group(0) @binding(0) var videoSampler: sampler;\n @group(0) @binding(1) var videoTexture: texture_external;\n\n @fragment\n fn main(\n @location(0) fragUV: vec2\n ) -> @location(0) vec4 {\n return textureSampleBaseClampToEdge(videoTexture, videoSampler, vec2(fragUV.x, 1.0 - fragUV.y));\n }\n `;\nvar Pn;\n(function(a) {\n a[a.MipMap = 0] = \"MipMap\", a[a.InvertYPremultiplyAlpha = 1] = \"InvertYPremultiplyAlpha\", a[a.Clear = 2] = \"Clear\", a[a.InvertYPremultiplyAlphaWithOfst = 3] = \"InvertYPremultiplyAlphaWithOfst\";\n})(Pn || (Pn = {}));\nvar fh;\n(function(a) {\n a[a.DontInvertY = 0] = \"DontInvertY\", a[a.InvertY = 1] = \"InvertY\";\n})(fh || (fh = {}));\nconst Eb = [\n { vertex: JD, fragment: eO },\n { vertex: UC, fragment: tO },\n { vertex: rO, fragment: nO },\n { vertex: iO, fragment: sO }\n], Ta = {\n \"\": 0,\n r8unorm: 1,\n r8uint: 2,\n r8sint: 3,\n r16uint: 4,\n r16sint: 5,\n r16float: 6,\n rg8unorm: 7,\n rg8uint: 8,\n rg8sint: 9,\n r32uint: 10,\n r32sint: 11,\n r32float: 12,\n rg16uint: 13,\n rg16sint: 14,\n rg16float: 15,\n rgba8unorm: 16,\n \"rgba8unorm-srgb\": 17,\n rgba8uint: 18,\n rgba8sint: 19,\n bgra8unorm: 20,\n \"bgra8unorm-srgb\": 21,\n rgb10a2uint: 22,\n rgb10a2unorm: 23,\n /* rg11b10ufloat: this entry is dynamically added if the \"RG11B10UFloatRenderable\" extension is supported */\n rg32uint: 24,\n rg32sint: 25,\n rg32float: 26,\n rgba16uint: 27,\n rgba16sint: 28,\n rgba16float: 29,\n rgba32uint: 30,\n rgba32sint: 31,\n rgba32float: 32,\n stencil8: 33,\n depth16unorm: 34,\n depth24plus: 35,\n \"depth24plus-stencil8\": 36,\n depth32float: 37,\n \"depth32float-stencil8\": 38\n};\nclass hO {\n //------------------------------------------------------------------------------\n // Initialization / Helpers\n //------------------------------------------------------------------------------\n constructor(e, t, i, s, r, n) {\n if (this._pipelines = {}, this._compiledShaders = [], this._videoPipelines = {}, this._videoCompiledShaders = [], this._deferredReleaseTextures = [], this._engine = e, this._device = t, this._glslang = i, this._tintWASM = s, this._bufferManager = r, n.indexOf(\n \"rg11b10ufloat-renderable\"\n /* WebGPUConstants.FeatureName.RG11B10UFloatRenderable */\n ) !== -1) {\n const o = Object.keys(Ta);\n Ta.rg11b10ufloat = Ta[o[o.length - 1]] + 1;\n }\n this._mipmapSampler = t.createSampler({\n minFilter: \"linear\"\n /* WebGPUConstants.FilterMode.Linear */\n }), this._videoSampler = t.createSampler({\n minFilter: \"linear\"\n /* WebGPUConstants.FilterMode.Linear */\n }), this._ubCopyWithOfst = this._bufferManager.createBuffer(4 * 4, Kt.Uniform | Kt.CopyDst, \"UBCopyWithOffset\").underlyingResource, this._getPipeline(\n \"rgba8unorm\"\n /* WebGPUConstants.TextureFormat.RGBA8Unorm */\n ), this._getVideoPipeline(\n \"rgba8unorm\"\n /* WebGPUConstants.TextureFormat.RGBA8Unorm */\n );\n }\n _getPipeline(e, t = Pn.MipMap, i) {\n const s = t === Pn.MipMap ? 1 : t === Pn.InvertYPremultiplyAlpha ? ((i.invertY ? 1 : 0) << 1) + ((i.premultiplyAlpha ? 1 : 0) << 2) : t === Pn.Clear ? 8 : t === Pn.InvertYPremultiplyAlphaWithOfst ? ((i.invertY ? 1 : 0) << 4) + ((i.premultiplyAlpha ? 1 : 0) << 5) : 0;\n this._pipelines[e] || (this._pipelines[e] = []);\n let r = this._pipelines[e][s];\n if (!r) {\n let n = `#version 450\n`;\n (t === Pn.InvertYPremultiplyAlpha || t === Pn.InvertYPremultiplyAlphaWithOfst) && (i.invertY && (n += `#define INVERTY\n`), i.premultiplyAlpha && (n += `#define PREMULTIPLYALPHA\n`));\n let o = this._compiledShaders[s];\n if (!o) {\n let h = this._glslang.compileGLSL(n + Eb[t].vertex, \"vertex\"), c = this._glslang.compileGLSL(n + Eb[t].fragment, \"fragment\");\n this._tintWASM && (h = this._tintWASM.convertSpirV2WGSL(h), c = this._tintWASM.convertSpirV2WGSL(c));\n const u = this._device.createShaderModule({\n code: h\n }), d = this._device.createShaderModule({\n code: c\n });\n o = this._compiledShaders[s] = [u, d];\n }\n const l = this._device.createRenderPipeline({\n layout: \"auto\",\n vertex: {\n module: o[0],\n entryPoint: \"main\"\n },\n fragment: {\n module: o[1],\n entryPoint: \"main\",\n targets: [\n {\n format: e\n }\n ]\n },\n primitive: {\n topology: \"triangle-strip\",\n stripIndexFormat: \"uint16\"\n }\n });\n r = this._pipelines[e][s] = [l, l.getBindGroupLayout(0)];\n }\n return r;\n }\n _getVideoPipeline(e, t = fh.DontInvertY) {\n const i = t === fh.InvertY ? 1 : 0;\n this._videoPipelines[e] || (this._videoPipelines[e] = []);\n let s = this._videoPipelines[e][i];\n if (!s) {\n let r = this._videoCompiledShaders[i];\n if (!r) {\n const o = this._device.createShaderModule({\n code: aO\n }), l = this._device.createShaderModule({\n code: i === 0 ? oO : lO\n });\n r = this._videoCompiledShaders[i] = [o, l];\n }\n const n = this._device.createRenderPipeline({\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_CopyVideoToTexture_${e}_${i === 0 ? \"DontInvertY\" : \"InvertY\"}`,\n layout: \"auto\",\n vertex: {\n module: r[0],\n entryPoint: \"main\"\n },\n fragment: {\n module: r[1],\n entryPoint: \"main\",\n targets: [\n {\n format: e\n }\n ]\n },\n primitive: {\n topology: \"triangle-strip\",\n stripIndexFormat: \"uint16\"\n }\n });\n s = this._videoPipelines[e][i] = [n, n.getBindGroupLayout(0)];\n }\n return s;\n }\n setCommandEncoder(e) {\n this._commandEncoderForCreation = e;\n }\n copyVideoToTexture(e, t, i, s = !1, r) {\n var p, _;\n const n = r === void 0, [o, l] = this._getVideoPipeline(i, s ? fh.InvertY : fh.DontInvertY);\n n && (r = this._device.createCommandEncoder({})), (p = r.pushDebugGroup) == null || p.call(r, `copy video to texture - invertY=${s}`);\n const h = t._hardwareTexture, c = {\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_copyVideoToTexture_${i}_${s ? \"InvertY\" : \"DontInvertY\"}${t.label ? \"_\" + t.label : \"\"}`,\n colorAttachments: [\n {\n view: h.underlyingResource.createView({\n format: i,\n dimension: \"2d\",\n mipLevelCount: 1,\n baseArrayLayer: 0,\n baseMipLevel: 0,\n arrayLayerCount: 1,\n aspect: \"all\"\n }),\n loadOp: \"load\",\n storeOp: \"store\"\n }\n ]\n }, u = r.beginRenderPass(c), d = {\n layout: l,\n entries: [\n {\n binding: 0,\n resource: this._videoSampler\n },\n {\n binding: 1,\n resource: this._device.importExternalTexture({\n source: e.underlyingResource\n })\n }\n ]\n }, f = this._device.createBindGroup(d);\n u.setPipeline(o), u.setBindGroup(0, f), u.draw(4, 1, 0, 0), u.end(), (_ = r.popDebugGroup) == null || _.call(r), n && (this._device.queue.submit([r.finish()]), r = null);\n }\n invertYPreMultiplyAlpha(e, t, i, s, r = !1, n = !1, o = 0, l = 0, h = 1, c = 0, u = 0, d = 0, f = 0, p, _) {\n var F, $;\n const m = d !== 0, x = p === void 0, [v, T] = this._getPipeline(s, m ? Pn.InvertYPremultiplyAlphaWithOfst : Pn.InvertYPremultiplyAlpha, {\n invertY: r,\n premultiplyAlpha: n\n });\n o = Math.max(o, 0), x && (p = this._device.createCommandEncoder({})), (F = p.pushDebugGroup) == null || F.call(p, `internal process texture - invertY=${r} premultiplyAlpha=${n}`);\n let E;\n if (Bt.IsHardwareTexture(e) ? (E = e.underlyingResource, r && !n && h === 1 && o === 0 || (e = void 0)) : (E = e, e = void 0), !E)\n return;\n m && this._bufferManager.setRawData(this._ubCopyWithOfst, 0, new Float32Array([c, u, d, f]), 0, 4 * 4);\n const b = e, S = (b == null ? void 0 : b._copyInvertYTempTexture) ?? this.createTexture({ width: t, height: i, layers: 1 }, !1, !1, !1, !1, !1, s, 1, p, 21, void 0, \"TempTextureForCopyWithInvertY\"), C = (b == null ? void 0 : b._copyInvertYRenderPassDescr) ?? {\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_invertYPreMultiplyAlpha_${s}_${r ? \"InvertY\" : \"DontInvertY\"}_${n ? \"PremultiplyAlpha\" : \"DontPremultiplyAlpha\"}`,\n colorAttachments: [\n {\n view: S.createView({\n format: s,\n dimension: \"2d\",\n baseMipLevel: 0,\n mipLevelCount: 1,\n arrayLayerCount: 1,\n baseArrayLayer: 0\n }),\n loadOp: \"load\",\n storeOp: \"store\"\n }\n ]\n }, P = p.beginRenderPass(C);\n let N = m ? b == null ? void 0 : b._copyInvertYBindGroupWithOfst : b == null ? void 0 : b._copyInvertYBindGroup;\n if (!N) {\n const j = {\n layout: T,\n entries: [\n {\n binding: 0,\n resource: E.createView({\n format: s,\n dimension: \"2d\",\n baseMipLevel: l,\n mipLevelCount: 1,\n arrayLayerCount: h,\n baseArrayLayer: o\n })\n }\n ]\n };\n m && j.entries.push({\n binding: 1,\n resource: {\n buffer: this._ubCopyWithOfst\n }\n }), N = this._device.createBindGroup(j);\n }\n P.setPipeline(v), P.setBindGroup(0, N), P.draw(4, 1, 0, 0), P.end(), p.copyTextureToTexture({\n texture: S\n }, {\n texture: E,\n mipLevel: l,\n origin: {\n x: 0,\n y: 0,\n z: o\n }\n }, {\n width: t,\n height: i,\n depthOrArrayLayers: 1\n }), b ? (b._copyInvertYTempTexture = S, b._copyInvertYRenderPassDescr = C, m ? b._copyInvertYBindGroupWithOfst = N : b._copyInvertYBindGroup = N) : this._deferredReleaseTextures.push([S, null]), ($ = p.popDebugGroup) == null || $.call(p), x && (this._device.queue.submit([p.finish()]), p = null);\n }\n copyWithInvertY(e, t, i, s) {\n var c, u;\n const r = s === void 0, [n, o] = this._getPipeline(t, Pn.InvertYPremultiplyAlpha, { invertY: !0, premultiplyAlpha: !1 });\n r && (s = this._device.createCommandEncoder({})), (c = s.pushDebugGroup) == null || c.call(s, \"internal copy texture with invertY\");\n const l = s.beginRenderPass(i), h = this._device.createBindGroup({\n layout: o,\n entries: [\n {\n binding: 0,\n resource: e\n }\n ]\n });\n l.setPipeline(n), l.setBindGroup(0, h), l.draw(4, 1, 0, 0), l.end(), (u = s.popDebugGroup) == null || u.call(s), r && (this._device.queue.submit([s.finish()]), s = null);\n }\n //------------------------------------------------------------------------------\n // Creation\n //------------------------------------------------------------------------------\n createTexture(e, t = !1, i = !1, s = !1, r = !1, n = !1, o = \"rgba8unorm\", l = 1, h, c = -1, u = 0, d) {\n l = Bt.GetSample(l);\n const f = e.layers || 1, p = {\n width: e.width,\n height: e.height,\n depthOrArrayLayers: f\n }, _ = Ta[o] ? 16 : 0, m = Bt.IsCompressedFormat(o), x = t ? Bt.ComputeNumMipmapLevels(e.width, e.height) : 1, v = c >= 0 ? c : 7;\n u |= t && !m ? 1 | _ : 0, !m && !n && (u |= _ | 2);\n const T = this._device.createTexture({\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_Texture${n ? \"3D\" : \"2D\"}_${d ? d + \"_\" : \"\"}${p.width}x${p.height}x${p.depthOrArrayLayers}_${t ? \"wmips\" : \"womips\"}_${o}_samples${l}`,\n size: p,\n dimension: n ? \"3d\" : \"2d\",\n format: o,\n usage: v | u,\n sampleCount: l,\n mipLevelCount: x\n });\n return Bt.IsImageBitmap(e) && (this.updateTexture(e, T, e.width, e.height, f, o, 0, 0, s, r, 0, 0), t && i && this.generateMipmaps(T, o, x, 0, n, h)), T;\n }\n createCubeTexture(e, t = !1, i = !1, s = !1, r = !1, n = \"rgba8unorm\", o = 1, l, h = -1, c = 0, u) {\n o = Bt.GetSample(o);\n const d = Bt.IsImageBitmapArray(e) ? e[0].width : e.width, f = Bt.IsImageBitmapArray(e) ? e[0].height : e.height, p = Ta[n] ? 16 : 0, _ = Bt.IsCompressedFormat(n), m = t ? Bt.ComputeNumMipmapLevels(d, f) : 1, x = h >= 0 ? h : 7;\n c |= t && !_ ? 1 | p : 0, _ || (c |= p | 2);\n const v = this._device.createTexture({\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_TextureCube_${u ? u + \"_\" : \"\"}${d}x${f}x6_${t ? \"wmips\" : \"womips\"}_${n}_samples${o}`,\n size: {\n width: d,\n height: f,\n depthOrArrayLayers: 6\n },\n dimension: \"2d\",\n format: n,\n usage: x | c,\n sampleCount: o,\n mipLevelCount: m\n });\n return Bt.IsImageBitmapArray(e) && (this.updateCubeTextures(e, v, d, f, n, s, r, 0, 0), t && i && this.generateCubeMipmaps(v, n, m, l)), v;\n }\n generateCubeMipmaps(e, t, i, s) {\n var n, o;\n const r = s === void 0;\n r && (s = this._device.createCommandEncoder({})), (n = s.pushDebugGroup) == null || n.call(s, `create cube mipmaps - ${i} levels`);\n for (let l = 0; l < 6; ++l)\n this.generateMipmaps(e, t, i, l, !1, s);\n (o = s.popDebugGroup) == null || o.call(s), r && (this._device.queue.submit([s.finish()]), s = null);\n }\n generateMipmaps(e, t, i, s = 0, r = !1, n) {\n var d, f, p, _;\n const o = n === void 0, [l, h] = this._getPipeline(t);\n s = Math.max(s, 0), o && (n = this._device.createCommandEncoder({})), (d = n.pushDebugGroup) == null || d.call(n, `create mipmaps for face #${s} - ${i} levels`);\n let c;\n if (Bt.IsHardwareTexture(e) ? (c = e.underlyingResource, e._mipmapGenRenderPassDescr = e._mipmapGenRenderPassDescr || [], e._mipmapGenBindGroup = e._mipmapGenBindGroup || []) : (c = e, e = void 0), !c)\n return;\n const u = e;\n for (let m = 1; m < i; ++m) {\n const x = ((f = u == null ? void 0 : u._mipmapGenRenderPassDescr[s]) == null ? void 0 : f[m - 1]) ?? {\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_generateMipmaps_${t}_faceIndex${s}_level${m}`,\n colorAttachments: [\n {\n view: c.createView({\n format: t,\n dimension: r ? \"3d\" : \"2d\",\n baseMipLevel: m,\n mipLevelCount: 1,\n arrayLayerCount: 1,\n baseArrayLayer: s\n }),\n loadOp: \"load\",\n storeOp: \"store\"\n }\n ]\n };\n u && (u._mipmapGenRenderPassDescr[s] = u._mipmapGenRenderPassDescr[s] || [], u._mipmapGenRenderPassDescr[s][m - 1] = x);\n const v = n.beginRenderPass(x), T = ((p = u == null ? void 0 : u._mipmapGenBindGroup[s]) == null ? void 0 : p[m - 1]) ?? this._device.createBindGroup({\n layout: h,\n entries: [\n {\n binding: 0,\n resource: this._mipmapSampler\n },\n {\n binding: 1,\n resource: c.createView({\n format: t,\n dimension: r ? \"3d\" : \"2d\",\n baseMipLevel: m - 1,\n mipLevelCount: 1,\n arrayLayerCount: 1,\n baseArrayLayer: s\n })\n }\n ]\n });\n u && (u._mipmapGenBindGroup[s] = u._mipmapGenBindGroup[s] || [], u._mipmapGenBindGroup[s][m - 1] = T), v.setPipeline(l), v.setBindGroup(0, T), v.draw(4, 1, 0, 0), v.end();\n }\n (_ = n.popDebugGroup) == null || _.call(n), o && (this._device.queue.submit([n.finish()]), n = null);\n }\n createGPUTextureForInternalTexture(e, t, i, s, r) {\n e._hardwareTexture || (e._hardwareTexture = new xp()), t === void 0 && (t = e.width), i === void 0 && (i = e.height), s === void 0 && (s = e.depth);\n const n = e._hardwareTexture, o = ((r ?? 0) & 1) !== 0;\n n.format = Bt.GetWebGPUTextureFormat(e.type, e.format, e._useSRGBBuffer), n.textureUsages = e._source === 5 || e.source === 6 ? 21 : e._source === 12 ? 20 : -1, n.textureAdditionalUsages = o ? 8 : 0;\n const l = e.generateMipMaps, h = s || 1;\n let c;\n if (e._maxLodLevel !== null ? c = e._maxLodLevel : c = l ? Bt.ComputeNumMipmapLevels(t, i) : 1, e.isCube) {\n const u = this.createCubeTexture({ width: t, height: i }, e.generateMipMaps, e.generateMipMaps, e.invertY, !1, n.format, 1, this._commandEncoderForCreation, n.textureUsages, n.textureAdditionalUsages, e.label);\n n.set(u);\n const d = e.is3D ? 1 : h, f = Bt.GetDepthFormatOnly(n.format), p = Bt.HasDepthAndStencilAspects(n.format) ? \"depth-only\" : \"all\", _ = e.is2DArray ? \"cube-array\" : \"cube\";\n n.createView({\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_TextureViewCube${e.is2DArray ? \"_Array\" + d : \"\"}_${t}x${i}_${l ? \"wmips\" : \"womips\"}_${f}_${_}_${p}_${e.label ?? \"noname\"}`,\n format: f,\n dimension: _,\n mipLevelCount: c,\n baseArrayLayer: 0,\n baseMipLevel: 0,\n arrayLayerCount: 6,\n aspect: p\n }, o);\n } else {\n const u = this.createTexture({ width: t, height: i, layers: h }, e.generateMipMaps, e.generateMipMaps, e.invertY, !1, e.is3D, n.format, 1, this._commandEncoderForCreation, n.textureUsages, n.textureAdditionalUsages, e.label);\n n.set(u);\n const d = e.is3D ? 1 : h, f = Bt.GetDepthFormatOnly(n.format), p = Bt.HasDepthAndStencilAspects(n.format) ? \"depth-only\" : \"all\", _ = e.is2DArray ? \"2d-array\" : e.is3D ? \"3d\" : \"2d\";\n n.createView({\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_TextureView${e.is3D ? \"3D\" : \"2D\"}${e.is2DArray ? \"_Array\" + d : \"\"}_${t}x${i}${e.is3D ? \"x\" + h : \"\"}_${l ? \"wmips\" : \"womips\"}_${f}_${_}_${p}_${e.label ?? \"noname\"}`,\n format: f,\n dimension: _,\n mipLevelCount: c,\n baseArrayLayer: 0,\n baseMipLevel: 0,\n arrayLayerCount: d,\n aspect: p\n }, o);\n }\n return e.width = e.baseWidth = t, e.height = e.baseHeight = i, e.depth = e.baseDepth = s, this.createMSAATexture(e, e.samples), n;\n }\n createMSAATexture(e, t, i = !0, s = -1) {\n const r = e._hardwareTexture;\n if (i && (r == null || r.releaseMSAATexture()), !r || (t ?? 1) <= 1)\n return;\n const n = e.width, o = e.height, l = this.createTexture({ width: n, height: o, layers: 1 }, !1, !1, !1, !1, !1, r.format, t, this._commandEncoderForCreation, 16, 0, e.label ? \"MSAA\" + e.label : void 0);\n r.setMSAATexture(l, s);\n }\n //------------------------------------------------------------------------------\n // Update\n //------------------------------------------------------------------------------\n updateCubeTextures(e, t, i, s, r, n = !1, o = !1, l = 0, h = 0) {\n const c = [0, 3, 1, 4, 2, 5];\n for (let u = 0; u < c.length; ++u) {\n const d = e[c[u]];\n this.updateTexture(d, t, i, s, 1, r, u, 0, n, o, l, h);\n }\n }\n // TODO WEBGPU handle data source not being in the same format than the destination texture?\n updateTexture(e, t, i, s, r, n, o = 0, l = 0, h = !1, c = !1, u = 0, d = 0, f) {\n const p = Bt.IsInternalTexture(t) ? t._hardwareTexture.underlyingResource : t, _ = Bt.GetBlockInformationFromFormat(n), m = Bt.IsInternalTexture(t) ? t._hardwareTexture : t, x = {\n texture: p,\n origin: {\n x: u,\n y: d,\n z: Math.max(o, 0)\n },\n mipLevel: l,\n premultipliedAlpha: c\n }, v = {\n width: Math.ceil(i / _.width) * _.width,\n height: Math.ceil(s / _.height) * _.height,\n depthOrArrayLayers: r || 1\n };\n if (e.byteLength !== void 0) {\n e = e;\n const T = Math.ceil(i / _.width) * _.length;\n if (Math.ceil(T / 256) * 256 === T) {\n const b = this._device.createCommandEncoder({}), S = this._bufferManager.createRawBuffer(e.byteLength, Kt.MapWrite | Kt.CopySrc, !0, \"TempBufferForUpdateTexture\" + (p ? \"_\" + p.label : \"\")), C = S.getMappedRange();\n new Uint8Array(C).set(e), S.unmap(), b.copyBufferToTexture({\n buffer: S,\n offset: 0,\n bytesPerRow: T,\n rowsPerImage: s\n }, x, v), this._device.queue.submit([b.finish()]), this._bufferManager.releaseBuffer(S);\n } else\n this._device.queue.writeTexture(x, e, {\n offset: 0,\n bytesPerRow: T,\n rowsPerImage: s\n }, v);\n if (h || c)\n if (Bt.IsInternalTexture(t)) {\n const b = u === 0 && d === 0 && i === t.width && s === t.height;\n this.invertYPreMultiplyAlpha(m, t.width, t.height, n, h, c, o, l, r || 1, u, d, b ? 0 : i, b ? 0 : s, void 0, f);\n } else\n throw \"updateTexture: Can't process the texture data because a GPUTexture was provided instead of an InternalTexture!\";\n } else if (e = e, h)\n if (x.premultipliedAlpha = !1, Bt.IsInternalTexture(t) && u === 0 && d === 0 && i === t.width && s === t.height)\n this._device.queue.copyExternalImageToTexture({ source: e }, x, v), this.invertYPreMultiplyAlpha(m, i, s, n, h, c, o, l, r || 1, 0, 0, 0, 0, void 0, f);\n else {\n const T = this._device.createCommandEncoder({}), E = this.createTexture({ width: i, height: s, layers: 1 }, !1, !1, !1, !1, !1, n, 1, T, 5, void 0, \"TempTextureForUpdateTexture\");\n this._deferredReleaseTextures.push([E, null]), v.depthOrArrayLayers = 1, this._device.queue.copyExternalImageToTexture({ source: e }, { texture: E }, v), v.depthOrArrayLayers = r || 1, this.invertYPreMultiplyAlpha(E, i, s, n, h, c, o, l, r || 1, 0, 0, 0, 0, T, f), T.copyTextureToTexture({ texture: E }, x, v), this._device.queue.submit([T.finish()]);\n }\n else\n this._device.queue.copyExternalImageToTexture({ source: e }, x, v);\n }\n readPixels(e, t, i, s, r, n, o = 0, l = 0, h = null, c = !1) {\n const u = Bt.GetBlockInformationFromFormat(n), d = Math.ceil(s / u.width) * u.length, f = Math.ceil(d / 256) * 256, p = f * r, _ = this._bufferManager.createRawBuffer(p, Kt.MapRead | Kt.CopyDst, void 0, \"TempBufferForReadPixels\" + (e.label ? \"_\" + e.label : \"\")), m = this._device.createCommandEncoder({});\n return m.copyTextureToBuffer({\n texture: e,\n mipLevel: l,\n origin: {\n x: t,\n y: i,\n z: Math.max(o, 0)\n }\n }, {\n buffer: _,\n offset: 0,\n bytesPerRow: f\n }, {\n width: s,\n height: r,\n depthOrArrayLayers: 1\n }), this._device.queue.submit([m.finish()]), this._bufferManager.readDataFromBuffer(_, p, s, r, d, f, Bt.GetTextureTypeFromFormat(n), 0, h, !0, c);\n }\n //------------------------------------------------------------------------------\n // Dispose\n //------------------------------------------------------------------------------\n releaseTexture(e) {\n if (Bt.IsInternalTexture(e)) {\n const t = e._hardwareTexture, i = e._irradianceTexture;\n this._deferredReleaseTextures.push([t, i]);\n } else\n this._deferredReleaseTextures.push([e, null]);\n }\n destroyDeferredTextures() {\n for (let e = 0; e < this._deferredReleaseTextures.length; ++e) {\n const [t, i] = this._deferredReleaseTextures[e];\n t && (Bt.IsHardwareTexture(t) ? t.release() : t.destroy()), i == null || i.dispose();\n }\n this._deferredReleaseTextures.length = 0;\n }\n}\nclass cO extends Nl {\n constructor(e, t = 0) {\n super(), this.engineId = -1, this.capacity = t, this._buffer = e;\n }\n get underlyingResource() {\n return this._buffer;\n }\n}\nclass Sl {\n /**\n * | Value | Type | Description |\n * | ----- | ------------------ | ----------- |\n * | 0 | CLAMP_ADDRESSMODE | |\n * | 1 | WRAP_ADDRESSMODE | |\n * | 2 | MIRROR_ADDRESSMODE | |\n */\n get wrapU() {\n return this._wrapU;\n }\n set wrapU(e) {\n this._wrapU = e;\n }\n /**\n * | Value | Type | Description |\n * | ----- | ------------------ | ----------- |\n * | 0 | CLAMP_ADDRESSMODE | |\n * | 1 | WRAP_ADDRESSMODE | |\n * | 2 | MIRROR_ADDRESSMODE | |\n */\n get wrapV() {\n return this._wrapV;\n }\n set wrapV(e) {\n this._wrapV = e;\n }\n /**\n * How a texture is mapped.\n * Unused in thin texture mode.\n */\n get coordinatesMode() {\n return 0;\n }\n /**\n * Define if the texture is a cube texture or if false a 2d texture.\n */\n get isCube() {\n return this._texture ? this._texture.isCube : !1;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n set isCube(e) {\n this._texture && (this._texture.isCube = e);\n }\n /**\n * Define if the texture is a 3d texture (webgl 2) or if false a 2d texture.\n */\n get is3D() {\n return this._texture ? this._texture.is3D : !1;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n set is3D(e) {\n this._texture && (this._texture.is3D = e);\n }\n /**\n * Define if the texture is a 2d array texture (webgl 2) or if false a 2d texture.\n */\n get is2DArray() {\n return this._texture ? this._texture.is2DArray : !1;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n set is2DArray(e) {\n this._texture && (this._texture.is2DArray = e);\n }\n /**\n * Get the class name of the texture.\n * @returns \"ThinTexture\"\n */\n getClassName() {\n return \"ThinTexture\";\n }\n static _IsRenderTargetWrapper(e) {\n return (e == null ? void 0 : e.shareDepth) !== void 0;\n }\n /**\n * Instantiates a new ThinTexture.\n * Base class of all the textures in babylon.\n * This can be used as an internal texture wrapper in AbstractEngine to benefit from the cache\n * @param internalTexture Define the internalTexture to wrap. You can also pass a RenderTargetWrapper, in which case the texture will be the render target's texture\n */\n constructor(e) {\n this._wrapU = 1, this._wrapV = 1, this.wrapR = 1, this.anisotropicFilteringLevel = 4, this.delayLoadState = 0, this._texture = null, this._engine = null, this._cachedSize = mn.Zero(), this._cachedBaseSize = mn.Zero(), this._initialSamplingMode = 2, this._texture = Sl._IsRenderTargetWrapper(e) ? e.texture : e, this._texture && (this._engine = this._texture.getEngine());\n }\n /**\n * Get if the texture is ready to be used (downloaded, converted, mip mapped...).\n * @returns true if fully ready\n */\n isReady() {\n return this.delayLoadState === 4 ? (this.delayLoad(), !1) : this._texture ? this._texture.isReady : !1;\n }\n /**\n * Triggers the load sequence in delayed load mode.\n */\n delayLoad() {\n }\n /**\n * Get the underlying lower level texture from Babylon.\n * @returns the internal texture\n */\n getInternalTexture() {\n return this._texture;\n }\n /**\n * Get the size of the texture.\n * @returns the texture size.\n */\n getSize() {\n if (this._texture) {\n if (this._texture.width)\n return this._cachedSize.width = this._texture.width, this._cachedSize.height = this._texture.height, this._cachedSize;\n if (this._texture._size)\n return this._cachedSize.width = this._texture._size, this._cachedSize.height = this._texture._size, this._cachedSize;\n }\n return this._cachedSize;\n }\n /**\n * Get the base size of the texture.\n * It can be different from the size if the texture has been resized for POT for instance\n * @returns the base size\n */\n getBaseSize() {\n return !this.isReady() || !this._texture ? (this._cachedBaseSize.width = 0, this._cachedBaseSize.height = 0, this._cachedBaseSize) : this._texture._size ? (this._cachedBaseSize.width = this._texture._size, this._cachedBaseSize.height = this._texture._size, this._cachedBaseSize) : (this._cachedBaseSize.width = this._texture.baseWidth, this._cachedBaseSize.height = this._texture.baseHeight, this._cachedBaseSize);\n }\n /**\n * Get the current sampling mode associated with the texture.\n */\n get samplingMode() {\n return this._texture ? this._texture.samplingMode : this._initialSamplingMode;\n }\n /**\n * Update the sampling mode of the texture.\n * Default is Trilinear mode.\n *\n * | Value | Type | Description |\n * | ----- | ------------------ | ----------- |\n * | 1 | NEAREST_SAMPLINGMODE or NEAREST_NEAREST_MIPLINEAR | Nearest is: mag = nearest, min = nearest, mip = linear |\n * | 2 | BILINEAR_SAMPLINGMODE or LINEAR_LINEAR_MIPNEAREST | Bilinear is: mag = linear, min = linear, mip = nearest |\n * | 3 | TRILINEAR_SAMPLINGMODE or LINEAR_LINEAR_MIPLINEAR | Trilinear is: mag = linear, min = linear, mip = linear |\n * | 4 | NEAREST_NEAREST_MIPNEAREST | |\n * | 5 | NEAREST_LINEAR_MIPNEAREST | |\n * | 6 | NEAREST_LINEAR_MIPLINEAR | |\n * | 7 | NEAREST_LINEAR | |\n * | 8 | NEAREST_NEAREST | |\n * | 9 | LINEAR_NEAREST_MIPNEAREST | |\n * | 10 | LINEAR_NEAREST_MIPLINEAR | |\n * | 11 | LINEAR_LINEAR | |\n * | 12 | LINEAR_NEAREST | |\n *\n * > _mag_: magnification filter (close to the viewer)\n * > _min_: minification filter (far from the viewer)\n * > _mip_: filter used between mip map levels\n *@param samplingMode Define the new sampling mode of the texture\n */\n updateSamplingMode(e) {\n this._texture && this._engine && this._engine.updateTextureSamplingMode(e, this._texture);\n }\n /**\n * Release and destroy the underlying lower level texture aka internalTexture.\n */\n releaseInternalTexture() {\n this._texture && (this._texture.dispose(), this._texture = null);\n }\n /**\n * Dispose the texture and release its associated resources.\n */\n dispose() {\n this._texture && (this.releaseInternalTexture(), this._engine = null);\n }\n}\nclass Mt extends Sl {\n /**\n * Define if the texture is having a usable alpha value (can be use for transparency or glossiness for instance).\n */\n set hasAlpha(e) {\n this._hasAlpha !== e && (this._hasAlpha = e, this._scene && this._scene.markAllMaterialsAsDirty(1, (t) => t.hasTexture(this)));\n }\n get hasAlpha() {\n return this._hasAlpha;\n }\n /**\n * Defines if the alpha value should be determined via the rgb values.\n * If true the luminance of the pixel might be used to find the corresponding alpha value.\n */\n set getAlphaFromRGB(e) {\n this._getAlphaFromRGB !== e && (this._getAlphaFromRGB = e, this._scene && this._scene.markAllMaterialsAsDirty(1, (t) => t.hasTexture(this)));\n }\n get getAlphaFromRGB() {\n return this._getAlphaFromRGB;\n }\n /**\n * Define the UV channel to use starting from 0 and defaulting to 0.\n * This is part of the texture as textures usually maps to one uv set.\n */\n set coordinatesIndex(e) {\n this._coordinatesIndex !== e && (this._coordinatesIndex = e, this._scene && this._scene.markAllMaterialsAsDirty(1, (t) => t.hasTexture(this)));\n }\n get coordinatesIndex() {\n return this._coordinatesIndex;\n }\n /**\n * How a texture is mapped.\n *\n * | Value | Type | Description |\n * | ----- | ----------------------------------- | ----------- |\n * | 0 | EXPLICIT_MODE | |\n * | 1 | SPHERICAL_MODE | |\n * | 2 | PLANAR_MODE | |\n * | 3 | CUBIC_MODE | |\n * | 4 | PROJECTION_MODE | |\n * | 5 | SKYBOX_MODE | |\n * | 6 | INVCUBIC_MODE | |\n * | 7 | EQUIRECTANGULAR_MODE | |\n * | 8 | FIXED_EQUIRECTANGULAR_MODE | |\n * | 9 | FIXED_EQUIRECTANGULAR_MIRRORED_MODE | |\n */\n set coordinatesMode(e) {\n this._coordinatesMode !== e && (this._coordinatesMode = e, this._scene && this._scene.markAllMaterialsAsDirty(1, (t) => t.hasTexture(this)));\n }\n get coordinatesMode() {\n return this._coordinatesMode;\n }\n /**\n * | Value | Type | Description |\n * | ----- | ------------------ | ----------- |\n * | 0 | CLAMP_ADDRESSMODE | |\n * | 1 | WRAP_ADDRESSMODE | |\n * | 2 | MIRROR_ADDRESSMODE | |\n */\n get wrapU() {\n return this._wrapU;\n }\n set wrapU(e) {\n this._wrapU = e;\n }\n /**\n * | Value | Type | Description |\n * | ----- | ------------------ | ----------- |\n * | 0 | CLAMP_ADDRESSMODE | |\n * | 1 | WRAP_ADDRESSMODE | |\n * | 2 | MIRROR_ADDRESSMODE | |\n */\n get wrapV() {\n return this._wrapV;\n }\n set wrapV(e) {\n this._wrapV = e;\n }\n /**\n * Define if the texture is a cube texture or if false a 2d texture.\n */\n get isCube() {\n return this._texture ? this._texture.isCube : this._isCube;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n set isCube(e) {\n this._texture ? this._texture.isCube = e : this._isCube = e;\n }\n /**\n * Define if the texture is a 3d texture (webgl 2) or if false a 2d texture.\n */\n get is3D() {\n return this._texture ? this._texture.is3D : !1;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n set is3D(e) {\n this._texture && (this._texture.is3D = e);\n }\n /**\n * Define if the texture is a 2d array texture (webgl 2) or if false a 2d texture.\n */\n get is2DArray() {\n return this._texture ? this._texture.is2DArray : !1;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n set is2DArray(e) {\n this._texture && (this._texture.is2DArray = e);\n }\n /**\n * Define if the texture contains data in gamma space (most of the png/jpg aside bump).\n * HDR texture are usually stored in linear space.\n * This only impacts the PBR and Background materials\n */\n get gammaSpace() {\n if (this._texture)\n this._texture._gammaSpace === null && (this._texture._gammaSpace = this._gammaSpace);\n else\n return this._gammaSpace;\n return this._texture._gammaSpace && !this._texture._useSRGBBuffer;\n }\n set gammaSpace(e) {\n var t;\n if (this._texture) {\n if (this._texture._gammaSpace === e)\n return;\n this._texture._gammaSpace = e;\n } else {\n if (this._gammaSpace === e)\n return;\n this._gammaSpace = e;\n }\n (t = this.getScene()) == null || t.markAllMaterialsAsDirty(1, (i) => i.hasTexture(this));\n }\n /**\n * Gets or sets whether or not the texture contains RGBD data.\n */\n get isRGBD() {\n return this._texture != null && this._texture._isRGBD;\n }\n set isRGBD(e) {\n var t;\n e !== this.isRGBD && (this._texture && (this._texture._isRGBD = e), (t = this.getScene()) == null || t.markAllMaterialsAsDirty(1, (i) => i.hasTexture(this)));\n }\n /**\n * Are mip maps generated for this texture or not.\n */\n get noMipmap() {\n return !1;\n }\n /**\n * With prefiltered texture, defined the offset used during the prefiltering steps.\n */\n get lodGenerationOffset() {\n return this._texture ? this._texture._lodGenerationOffset : 0;\n }\n set lodGenerationOffset(e) {\n this._texture && (this._texture._lodGenerationOffset = e);\n }\n /**\n * With prefiltered texture, defined the scale used during the prefiltering steps.\n */\n get lodGenerationScale() {\n return this._texture ? this._texture._lodGenerationScale : 0;\n }\n set lodGenerationScale(e) {\n this._texture && (this._texture._lodGenerationScale = e);\n }\n /**\n * With prefiltered texture, defined if the specular generation is based on a linear ramp.\n * By default we are using a log2 of the linear roughness helping to keep a better resolution for\n * average roughness values.\n */\n get linearSpecularLOD() {\n return this._texture ? this._texture._linearSpecularLOD : !1;\n }\n set linearSpecularLOD(e) {\n this._texture && (this._texture._linearSpecularLOD = e);\n }\n /**\n * In case a better definition than spherical harmonics is required for the diffuse part of the environment.\n * You can set the irradiance texture to rely on a texture instead of the spherical approach.\n * This texture need to have the same characteristics than its parent (Cube vs 2d, coordinates mode, Gamma/Linear, RGBD).\n */\n get irradianceTexture() {\n return this._texture ? this._texture._irradianceTexture : null;\n }\n set irradianceTexture(e) {\n this._texture && (this._texture._irradianceTexture = e);\n }\n /**\n * Define the unique id of the texture in the scene.\n */\n get uid() {\n return this._uid || (this._uid = vo()), this._uid;\n }\n /**\n * Return a string representation of the texture.\n * @returns the texture as a string\n */\n toString() {\n return this.name;\n }\n /**\n * Get the class name of the texture.\n * @returns \"BaseTexture\"\n */\n getClassName() {\n return \"BaseTexture\";\n }\n /**\n * Callback triggered when the texture has been disposed.\n * Kept for back compatibility, you can use the onDisposeObservable instead.\n */\n set onDispose(e) {\n this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), this._onDisposeObserver = this.onDisposeObservable.add(e);\n }\n /**\n * Define if the texture is preventing a material to render or not.\n * If not and the texture is not ready, the engine will use a default black texture instead.\n */\n get isBlocking() {\n return !0;\n }\n /**\n * Was there any loading error?\n */\n get loadingError() {\n return this._loadingError;\n }\n /**\n * If a loading error occurred this object will be populated with information about the error.\n */\n get errorObject() {\n return this._errorObject;\n }\n /**\n * Instantiates a new BaseTexture.\n * Base class of all the textures in babylon.\n * It groups all the common properties the materials, post process, lights... might need\n * in order to make a correct use of the texture.\n * @param sceneOrEngine Define the scene or engine the texture belongs to\n * @param internalTexture Define the internal texture associated with the texture\n */\n constructor(e, t = null) {\n super(null), this.metadata = null, this.reservedDataStore = null, this._hasAlpha = !1, this._getAlphaFromRGB = !1, this.level = 1, this._coordinatesIndex = 0, this.optimizeUVAllocation = !0, this._coordinatesMode = 0, this.wrapR = 1, this.anisotropicFilteringLevel = Mt.DEFAULT_ANISOTROPIC_FILTERING_LEVEL, this._isCube = !1, this._gammaSpace = !0, this.invertZ = !1, this.lodLevelInAlpha = !1, this.isRenderTarget = !1, this._prefiltered = !1, this._forceSerialize = !1, this.animations = [], this.onDisposeObservable = new G(), this._onDisposeObserver = null, this._scene = null, this._uid = null, this._parentContainer = null, this._loadingError = !1, e ? Mt._IsScene(e) ? this._scene = e : this._engine = e : this._scene = Me.LastCreatedScene, this._scene && (this.uniqueId = this._scene.getUniqueId(), this._scene.addTexture(this), this._engine = this._scene.getEngine()), this._texture = t, this._uid = null;\n }\n /**\n * Get the scene the texture belongs to.\n * @returns the scene or null if undefined\n */\n getScene() {\n return this._scene;\n }\n /** @internal */\n _getEngine() {\n return this._engine;\n }\n /**\n * Get the texture transform matrix used to offset tile the texture for instance.\n * @returns the transformation matrix\n */\n getTextureMatrix() {\n return O.IdentityReadOnly;\n }\n /**\n * Get the texture reflection matrix used to rotate/transform the reflection.\n * @returns the reflection matrix\n */\n getReflectionTextureMatrix() {\n return O.IdentityReadOnly;\n }\n /**\n * Gets a suitable rotate/transform matrix when the texture is used for refraction.\n * There's a separate function from getReflectionTextureMatrix because refraction requires a special configuration of the matrix in right-handed mode.\n * @returns The refraction matrix\n */\n getRefractionTextureMatrix() {\n return this.getReflectionTextureMatrix();\n }\n /**\n * Get if the texture is ready to be consumed (either it is ready or it is not blocking)\n * @returns true if ready, not blocking or if there was an error loading the texture\n */\n isReadyOrNotBlocking() {\n return !this.isBlocking || this.isReady() || this.loadingError;\n }\n /**\n * Scales the texture if is `canRescale()`\n * @param ratio the resize factor we want to use to rescale\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n scale(e) {\n }\n /**\n * Get if the texture can rescale.\n */\n get canRescale() {\n return !1;\n }\n /**\n * @internal\n */\n _getFromCache(e, t, i, s, r, n) {\n const o = this._getEngine();\n if (!o)\n return null;\n const l = o._getUseSRGBBuffer(!!r, t), h = o.getLoadedTexturesCache();\n for (let c = 0; c < h.length; c++) {\n const u = h[c];\n if ((r === void 0 || l === u._useSRGBBuffer) && (s === void 0 || s === u.invertY) && u.url === e && u.generateMipMaps === !t && (!i || i === u.samplingMode) && (n === void 0 || n === u.isCube))\n return u.incrementReferences(), u;\n }\n return null;\n }\n /** @internal */\n _rebuild(e = !1) {\n }\n /**\n * Clones the texture.\n * @returns the cloned texture\n */\n clone() {\n return null;\n }\n /**\n * Get the texture underlying type (INT, FLOAT...)\n */\n get textureType() {\n return this._texture && this._texture.type !== void 0 ? this._texture.type : 0;\n }\n /**\n * Get the texture underlying format (RGB, RGBA...)\n */\n get textureFormat() {\n return this._texture && this._texture.format !== void 0 ? this._texture.format : 5;\n }\n /**\n * Indicates that textures need to be re-calculated for all materials\n */\n _markAllSubMeshesAsTexturesDirty() {\n const e = this.getScene();\n e && e.markAllMaterialsAsDirty(1);\n }\n /**\n * Reads the pixels stored in the webgl texture and returns them as an ArrayBuffer.\n * This will returns an RGBA array buffer containing either in values (0-255) or\n * float values (0-1) depending of the underlying buffer type.\n * @param faceIndex defines the face of the texture to read (in case of cube texture)\n * @param level defines the LOD level of the texture to read (in case of Mip Maps)\n * @param buffer defines a user defined buffer to fill with data (can be null)\n * @param flushRenderer true to flush the renderer from the pending commands before reading the pixels\n * @param noDataConversion false to convert the data to Uint8Array (if texture type is UNSIGNED_BYTE) or to Float32Array (if texture type is anything but UNSIGNED_BYTE). If true, the type of the generated buffer (if buffer==null) will depend on the type of the texture\n * @param x defines the region x coordinates to start reading from (default to 0)\n * @param y defines the region y coordinates to start reading from (default to 0)\n * @param width defines the region width to read from (default to the texture size at level)\n * @param height defines the region width to read from (default to the texture size at level)\n * @returns The Array buffer promise containing the pixels data.\n */\n readPixels(e = 0, t = 0, i = null, s = !0, r = !1, n = 0, o = 0, l = Number.MAX_VALUE, h = Number.MAX_VALUE) {\n if (!this._texture)\n return null;\n const c = this._getEngine();\n if (!c)\n return null;\n const u = this.getSize();\n let d = u.width, f = u.height;\n t !== 0 && (d = d / Math.pow(2, t), f = f / Math.pow(2, t), d = Math.round(d), f = Math.round(f)), l = Math.min(d, l), h = Math.min(f, h);\n try {\n return this._texture.isCube ? c._readTexturePixels(this._texture, l, h, e, t, i, s, r, n, o) : c._readTexturePixels(this._texture, l, h, -1, t, i, s, r, n, o);\n } catch {\n return null;\n }\n }\n /**\n * @internal\n */\n _readPixelsSync(e = 0, t = 0, i = null, s = !0, r = !1) {\n if (!this._texture)\n return null;\n const n = this.getSize();\n let o = n.width, l = n.height;\n const h = this._getEngine();\n if (!h)\n return null;\n t != 0 && (o = o / Math.pow(2, t), l = l / Math.pow(2, t), o = Math.round(o), l = Math.round(l));\n try {\n return this._texture.isCube ? h._readTexturePixelsSync(this._texture, o, l, e, t, i, s, r) : h._readTexturePixelsSync(this._texture, o, l, -1, t, i, s, r);\n } catch {\n return null;\n }\n }\n /** @internal */\n get _lodTextureHigh() {\n return this._texture ? this._texture._lodTextureHigh : null;\n }\n /** @internal */\n get _lodTextureMid() {\n return this._texture ? this._texture._lodTextureMid : null;\n }\n /** @internal */\n get _lodTextureLow() {\n return this._texture ? this._texture._lodTextureLow : null;\n }\n /**\n * Dispose the texture and release its associated resources.\n */\n dispose() {\n if (this._scene) {\n this._scene.stopAnimation && this._scene.stopAnimation(this), this._scene.removePendingData(this);\n const e = this._scene.textures.indexOf(this);\n if (e >= 0 && this._scene.textures.splice(e, 1), this._scene.onTextureRemovedObservable.notifyObservers(this), this._scene = null, this._parentContainer) {\n const t = this._parentContainer.textures.indexOf(this);\n t > -1 && this._parentContainer.textures.splice(t, 1), this._parentContainer = null;\n }\n }\n this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this.metadata = null, super.dispose();\n }\n /**\n * Serialize the texture into a JSON representation that can be parsed later on.\n * @param allowEmptyName True to force serialization even if name is empty. Default: false\n * @returns the JSON representation of the texture\n */\n serialize(e = !1) {\n if (!this.name && !e)\n return null;\n const t = Ae.Serialize(this);\n return Ae.AppendSerializedAnimations(this, t), t;\n }\n /**\n * Helper function to be called back once a list of texture contains only ready textures.\n * @param textures Define the list of textures to wait for\n * @param callback Define the callback triggered once the entire list will be ready\n */\n static WhenAllReady(e, t) {\n let i = e.length;\n if (i === 0) {\n t();\n return;\n }\n for (let s = 0; s < e.length; s++) {\n const r = e[s];\n if (r.isReady())\n --i === 0 && t();\n else {\n const n = r.onLoadObservable;\n n ? n.addOnce(() => {\n --i === 0 && t();\n }) : --i === 0 && t();\n }\n }\n }\n static _IsScene(e) {\n return e.getClassName() === \"Scene\";\n }\n}\nMt.DEFAULT_ANISOTROPIC_FILTERING_LEVEL = 4;\ny([\n I()\n], Mt.prototype, \"uniqueId\", void 0);\ny([\n I()\n], Mt.prototype, \"name\", void 0);\ny([\n I()\n], Mt.prototype, \"metadata\", void 0);\ny([\n I(\"hasAlpha\")\n], Mt.prototype, \"_hasAlpha\", void 0);\ny([\n I(\"getAlphaFromRGB\")\n], Mt.prototype, \"_getAlphaFromRGB\", void 0);\ny([\n I()\n], Mt.prototype, \"level\", void 0);\ny([\n I(\"coordinatesIndex\")\n], Mt.prototype, \"_coordinatesIndex\", void 0);\ny([\n I()\n], Mt.prototype, \"optimizeUVAllocation\", void 0);\ny([\n I(\"coordinatesMode\")\n], Mt.prototype, \"_coordinatesMode\", void 0);\ny([\n I()\n], Mt.prototype, \"wrapU\", null);\ny([\n I()\n], Mt.prototype, \"wrapV\", null);\ny([\n I()\n], Mt.prototype, \"wrapR\", void 0);\ny([\n I()\n], Mt.prototype, \"anisotropicFilteringLevel\", void 0);\ny([\n I()\n], Mt.prototype, \"isCube\", null);\ny([\n I()\n], Mt.prototype, \"is3D\", null);\ny([\n I()\n], Mt.prototype, \"is2DArray\", null);\ny([\n I()\n], Mt.prototype, \"gammaSpace\", null);\ny([\n I()\n], Mt.prototype, \"invertZ\", void 0);\ny([\n I()\n], Mt.prototype, \"lodLevelInAlpha\", void 0);\ny([\n I()\n], Mt.prototype, \"lodGenerationOffset\", null);\ny([\n I()\n], Mt.prototype, \"lodGenerationScale\", null);\ny([\n I()\n], Mt.prototype, \"linearSpecularLOD\", null);\ny([\n xt()\n], Mt.prototype, \"irradianceTexture\", null);\ny([\n I()\n], Mt.prototype, \"isRenderTarget\", void 0);\nfunction Cx(a, e, t = !1) {\n const i = e.width, s = e.height;\n if (a instanceof Float32Array) {\n let h = a.byteLength / a.BYTES_PER_ELEMENT;\n const c = new Uint8Array(h);\n for (; --h >= 0; ) {\n let u = a[h];\n u < 0 ? u = 0 : u > 1 && (u = 1), c[h] = u * 255;\n }\n a = c;\n }\n const r = document.createElement(\"canvas\");\n r.width = i, r.height = s;\n const n = r.getContext(\"2d\");\n if (!n)\n return null;\n const o = n.createImageData(i, s);\n if (o.data.set(a), n.putImageData(o, 0, 0), t) {\n const h = document.createElement(\"canvas\");\n h.width = i, h.height = s;\n const c = h.getContext(\"2d\");\n return c ? (c.translate(0, s), c.scale(1, -1), c.drawImage(r, 0, 0), h.toDataURL(\"image/png\")) : null;\n }\n return r.toDataURL(\"image/png\");\n}\nfunction kC(a, e = 0, t = 0) {\n const i = a.getInternalTexture();\n if (!i)\n return null;\n const s = a._readPixelsSync(e, t);\n return s ? Cx(s, a.getSize(), i.invertY) : null;\n}\nasync function GC(a, e = 0, t = 0) {\n const i = a.getInternalTexture();\n if (!i)\n return null;\n const s = await a.readPixels(e, t);\n return s ? Cx(s, a.getSize(), i.invertY) : null;\n}\nconst Hj = {\n /**\n * Transform some pixel data to a base64 string\n * @param pixels defines the pixel data to transform to base64\n * @param size defines the width and height of the (texture) data\n * @param invertY true if the data must be inverted for the Y coordinate during the conversion\n * @returns The base64 encoded string or null\n */\n GenerateBase64StringFromPixelData: Cx,\n /**\n * Reads the pixels stored in the webgl texture and returns them as a base64 string\n * @param texture defines the texture to read pixels from\n * @param faceIndex defines the face of the texture to read (in case of cube texture)\n * @param level defines the LOD level of the texture to read (in case of Mip Maps)\n * @returns The base64 encoded string or null\n */\n GenerateBase64StringFromTexture: kC,\n /**\n * Reads the pixels stored in the webgl texture and returns them as a base64 string\n * @param texture defines the texture to read pixels from\n * @param faceIndex defines the face of the texture to read (in case of cube texture)\n * @param level defines the LOD level of the texture to read (in case of Mip Maps)\n * @returns The base64 encoded string or null wrapped in a promise\n */\n GenerateBase64StringFromTextureAsync: GC\n};\nclass At {\n}\nAt.UseOpenGLOrientationForUV = !1;\nlet X = class Zi extends Mt {\n /**\n * @internal\n */\n static _CreateVideoTexture(e, t, i, s = !1, r = !1, n = Zi.TRILINEAR_SAMPLINGMODE, o = {}, l, h = 5) {\n throw $e(\"VideoTexture\");\n }\n /**\n * Are mip maps generated for this texture or not.\n */\n get noMipmap() {\n return this._noMipmap;\n }\n /** Returns the texture mime type if it was defined by a loader (undefined else) */\n get mimeType() {\n return this._mimeType;\n }\n /**\n * Is the texture preventing material to render while loading.\n * If false, a default texture will be used instead of the loading one during the preparation step.\n */\n set isBlocking(e) {\n this._isBlocking = e;\n }\n get isBlocking() {\n return this._isBlocking;\n }\n /**\n * Gets a boolean indicating if the texture needs to be inverted on the y axis during loading\n */\n get invertY() {\n return this._invertY;\n }\n /**\n * Instantiates a new texture.\n * This represents a texture in babylon. It can be easily loaded from a network, base64 or html input.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/materials_introduction#texture\n * @param url defines the url of the picture to load as a texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param noMipmapOrOptions defines if the texture will require mip maps or not or set of all options to create the texture\n * @param invertY defines if the texture needs to be inverted on the y axis during loading\n * @param samplingMode defines the sampling mode we want for the texture while fetching from it (Texture.NEAREST_SAMPLINGMODE...)\n * @param onLoad defines a callback triggered when the texture has been loaded\n * @param onError defines a callback triggered when an error occurred during the loading session\n * @param buffer defines the buffer to load the texture from in case the texture is loaded from a buffer representation\n * @param deleteBuffer defines if the buffer we are loading the texture from should be deleted after load\n * @param format defines the format of the texture we are trying to load (Engine.TEXTUREFORMAT_RGBA...)\n * @param mimeType defines an optional mime type information\n * @param loaderOptions options to be passed to the loader\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n * @param forcedExtension defines the extension to use to pick the right loader\n */\n constructor(e, t, i, s, r = Zi.TRILINEAR_SAMPLINGMODE, n = null, o = null, l = null, h = !1, c, u, d, f, p) {\n super(t), this.url = null, this.uOffset = 0, this.vOffset = 0, this.uScale = 1, this.vScale = 1, this.uAng = 0, this.vAng = 0, this.wAng = 0, this.uRotationCenter = 0.5, this.vRotationCenter = 0.5, this.wRotationCenter = 0.5, this.homogeneousRotationInUVTransform = !1, this.inspectableCustomProperties = null, this._noMipmap = !1, this._invertY = !1, this._rowGenerationMatrix = null, this._cachedTextureMatrix = null, this._projectionModeMatrix = null, this._t0 = null, this._t1 = null, this._t2 = null, this._cachedUOffset = -1, this._cachedVOffset = -1, this._cachedUScale = 0, this._cachedVScale = 0, this._cachedUAng = -1, this._cachedVAng = -1, this._cachedWAng = -1, this._cachedReflectionProjectionMatrixId = -1, this._cachedURotationCenter = -1, this._cachedVRotationCenter = -1, this._cachedWRotationCenter = -1, this._cachedHomogeneousRotationInUVTransform = !1, this._cachedIdentity3x2 = !0, this._cachedReflectionTextureMatrix = null, this._cachedReflectionUOffset = -1, this._cachedReflectionVOffset = -1, this._cachedReflectionUScale = 0, this._cachedReflectionVScale = 0, this._cachedReflectionCoordinatesMode = -1, this._buffer = null, this._deleteBuffer = !1, this._format = null, this._delayedOnLoad = null, this._delayedOnError = null, this.onLoadObservable = new G(), this._isBlocking = !0, this.name = e || \"\", this.url = e;\n let _, m = !1, x = null, v = !0;\n typeof i == \"object\" && i !== null ? (_ = i.noMipmap ?? !1, s = i.invertY ?? !At.UseOpenGLOrientationForUV, r = i.samplingMode ?? Zi.TRILINEAR_SAMPLINGMODE, n = i.onLoad ?? null, o = i.onError ?? null, l = i.buffer ?? null, h = i.deleteBuffer ?? !1, c = i.format, u = i.mimeType, d = i.loaderOptions, f = i.creationFlags, m = i.useSRGBBuffer ?? !1, x = i.internalTexture ?? null, v = i.gammaSpace ?? v) : _ = !!i, this._gammaSpace = v, this._noMipmap = _, this._invertY = s === void 0 ? !At.UseOpenGLOrientationForUV : s, this._initialSamplingMode = r, this._buffer = l, this._deleteBuffer = h, this._mimeType = u, this._loaderOptions = d, this._creationFlags = f, this._useSRGBBuffer = m, this._forcedExtension = p, c && (this._format = c);\n const T = this.getScene(), E = this._getEngine();\n if (!E)\n return;\n E.onBeforeTextureInitObservable.notifyObservers(this);\n const b = () => {\n this._texture && (this._texture._invertVScale && (this.vScale *= -1, this.vOffset += 1), this._texture._cachedWrapU !== null && (this.wrapU = this._texture._cachedWrapU, this._texture._cachedWrapU = null), this._texture._cachedWrapV !== null && (this.wrapV = this._texture._cachedWrapV, this._texture._cachedWrapV = null), this._texture._cachedWrapR !== null && (this.wrapR = this._texture._cachedWrapR, this._texture._cachedWrapR = null)), this.onLoadObservable.hasObservers() && this.onLoadObservable.notifyObservers(this), n && n(), !this.isBlocking && T && T.resetCachedMaterial();\n }, S = (C, P) => {\n this._loadingError = !0, this._errorObject = { message: C, exception: P }, o && o(C, P), Zi.OnTextureLoadErrorObservable.notifyObservers(this);\n };\n if (!this.url && !x) {\n this._delayedOnLoad = b, this._delayedOnError = S;\n return;\n }\n if (this._texture = x ?? this._getFromCache(this.url, _, r, this._invertY, m, this.isCube), this._texture)\n if (this._texture.isReady)\n Hh.SetImmediate(() => b());\n else {\n const C = this._texture.onLoadedObservable.add(b);\n this._texture.onErrorObservable.add((P) => {\n var N;\n S(P.message, P.exception), (N = this._texture) == null || N.onLoadedObservable.remove(C);\n });\n }\n else if (!T || !T.useDelayedTextureLoading) {\n try {\n this._texture = E.createTexture(this.url, _, this._invertY, T, r, b, S, this._buffer, void 0, this._format, this._forcedExtension, u, d, f, m);\n } catch (C) {\n throw S(\"error loading\", C), C;\n }\n h && (this._buffer = null);\n } else\n this.delayLoadState = 4, this._delayedOnLoad = b, this._delayedOnError = S;\n }\n /**\n * Update the url (and optional buffer) of this texture if url was null during construction.\n * @param url the url of the texture\n * @param buffer the buffer of the texture (defaults to null)\n * @param onLoad callback called when the texture is loaded (defaults to null)\n * @param forcedExtension defines the extension to use to pick the right loader\n */\n updateURL(e, t = null, i, s) {\n this.url && (this.releaseInternalTexture(), this.getScene().markAllMaterialsAsDirty(1, (r) => r.hasTexture(this))), (!this.name || this.name.startsWith(\"data:\")) && (this.name = e), this.url = e, this._buffer = t, this._forcedExtension = s, this.delayLoadState = 4, i && (this._delayedOnLoad = i), this.delayLoad();\n }\n /**\n * Finish the loading sequence of a texture flagged as delayed load.\n * @internal\n */\n delayLoad() {\n if (this.delayLoadState !== 4)\n return;\n const e = this.getScene();\n e && (this.delayLoadState = 1, this._texture = this._getFromCache(this.url, this._noMipmap, this.samplingMode, this._invertY, this._useSRGBBuffer, this.isCube), this._texture ? this._delayedOnLoad && (this._texture.isReady ? Hh.SetImmediate(this._delayedOnLoad) : this._texture.onLoadedObservable.add(this._delayedOnLoad)) : (this._texture = e.getEngine().createTexture(this.url, this._noMipmap, this._invertY, e, this.samplingMode, this._delayedOnLoad, this._delayedOnError, this._buffer, null, this._format, this._forcedExtension, this._mimeType, this._loaderOptions, this._creationFlags, this._useSRGBBuffer), this._deleteBuffer && (this._buffer = null)), this._delayedOnLoad = null, this._delayedOnError = null);\n }\n _prepareRowForTextureGeneration(e, t, i, s) {\n e *= this._cachedUScale, t *= this._cachedVScale, e -= this.uRotationCenter * this._cachedUScale, t -= this.vRotationCenter * this._cachedVScale, i -= this.wRotationCenter, g.TransformCoordinatesFromFloatsToRef(e, t, i, this._rowGenerationMatrix, s), s.x += this.uRotationCenter * this._cachedUScale + this._cachedUOffset, s.y += this.vRotationCenter * this._cachedVScale + this._cachedVOffset, s.z += this.wRotationCenter;\n }\n /**\n * Get the current texture matrix which includes the requested offsetting, tiling and rotation components.\n * @param uBase The horizontal base offset multiplier (1 by default)\n * @returns the transform matrix of the texture.\n */\n getTextureMatrix(e = 1) {\n if (this.uOffset === this._cachedUOffset && this.vOffset === this._cachedVOffset && this.uScale * e === this._cachedUScale && this.vScale === this._cachedVScale && this.uAng === this._cachedUAng && this.vAng === this._cachedVAng && this.wAng === this._cachedWAng && this.uRotationCenter === this._cachedURotationCenter && this.vRotationCenter === this._cachedVRotationCenter && this.wRotationCenter === this._cachedWRotationCenter && this.homogeneousRotationInUVTransform === this._cachedHomogeneousRotationInUVTransform)\n return this._cachedTextureMatrix;\n this._cachedUOffset = this.uOffset, this._cachedVOffset = this.vOffset, this._cachedUScale = this.uScale * e, this._cachedVScale = this.vScale, this._cachedUAng = this.uAng, this._cachedVAng = this.vAng, this._cachedWAng = this.wAng, this._cachedURotationCenter = this.uRotationCenter, this._cachedVRotationCenter = this.vRotationCenter, this._cachedWRotationCenter = this.wRotationCenter, this._cachedHomogeneousRotationInUVTransform = this.homogeneousRotationInUVTransform, (!this._cachedTextureMatrix || !this._rowGenerationMatrix) && (this._cachedTextureMatrix = O.Zero(), this._rowGenerationMatrix = new O(), this._t0 = g.Zero(), this._t1 = g.Zero(), this._t2 = g.Zero()), O.RotationYawPitchRollToRef(this.vAng, this.uAng, this.wAng, this._rowGenerationMatrix), this.homogeneousRotationInUVTransform ? (O.TranslationToRef(-this._cachedURotationCenter, -this._cachedVRotationCenter, -this._cachedWRotationCenter, w.Matrix[0]), O.TranslationToRef(this._cachedURotationCenter, this._cachedVRotationCenter, this._cachedWRotationCenter, w.Matrix[1]), O.ScalingToRef(this._cachedUScale, this._cachedVScale, 0, w.Matrix[2]), O.TranslationToRef(this._cachedUOffset, this._cachedVOffset, 0, w.Matrix[3]), w.Matrix[0].multiplyToRef(this._rowGenerationMatrix, this._cachedTextureMatrix), this._cachedTextureMatrix.multiplyToRef(w.Matrix[1], this._cachedTextureMatrix), this._cachedTextureMatrix.multiplyToRef(w.Matrix[2], this._cachedTextureMatrix), this._cachedTextureMatrix.multiplyToRef(w.Matrix[3], this._cachedTextureMatrix), this._cachedTextureMatrix.setRowFromFloats(2, this._cachedTextureMatrix.m[12], this._cachedTextureMatrix.m[13], this._cachedTextureMatrix.m[14], 1)) : (this._prepareRowForTextureGeneration(0, 0, 0, this._t0), this._prepareRowForTextureGeneration(1, 0, 0, this._t1), this._prepareRowForTextureGeneration(0, 1, 0, this._t2), this._t1.subtractInPlace(this._t0), this._t2.subtractInPlace(this._t0), O.FromValuesToRef(this._t1.x, this._t1.y, this._t1.z, 0, this._t2.x, this._t2.y, this._t2.z, 0, this._t0.x, this._t0.y, this._t0.z, 0, 0, 0, 0, 1, this._cachedTextureMatrix));\n const t = this.getScene();\n if (!t)\n return this._cachedTextureMatrix;\n const i = this._cachedIdentity3x2;\n return this._cachedIdentity3x2 = this._cachedTextureMatrix.isIdentityAs3x2(), this.optimizeUVAllocation && i !== this._cachedIdentity3x2 && t.markAllMaterialsAsDirty(1, (s) => s.hasTexture(this)), this._cachedTextureMatrix;\n }\n /**\n * Get the current matrix used to apply reflection. This is useful to rotate an environment texture for instance.\n * @returns The reflection texture transform\n */\n getReflectionTextureMatrix() {\n const e = this.getScene();\n if (!e)\n return this._cachedReflectionTextureMatrix;\n if (this.uOffset === this._cachedReflectionUOffset && this.vOffset === this._cachedReflectionVOffset && this.uScale === this._cachedReflectionUScale && this.vScale === this._cachedReflectionVScale && this.coordinatesMode === this._cachedReflectionCoordinatesMode)\n if (this.coordinatesMode === Zi.PROJECTION_MODE) {\n if (this._cachedReflectionProjectionMatrixId === e.getProjectionMatrix().updateFlag)\n return this._cachedReflectionTextureMatrix;\n } else\n return this._cachedReflectionTextureMatrix;\n this._cachedReflectionTextureMatrix || (this._cachedReflectionTextureMatrix = O.Zero()), this._projectionModeMatrix || (this._projectionModeMatrix = O.Zero());\n const t = this._cachedReflectionCoordinatesMode !== this.coordinatesMode;\n switch (this._cachedReflectionUOffset = this.uOffset, this._cachedReflectionVOffset = this.vOffset, this._cachedReflectionUScale = this.uScale, this._cachedReflectionVScale = this.vScale, this._cachedReflectionCoordinatesMode = this.coordinatesMode, this.coordinatesMode) {\n case Zi.PLANAR_MODE: {\n O.IdentityToRef(this._cachedReflectionTextureMatrix), this._cachedReflectionTextureMatrix[0] = this.uScale, this._cachedReflectionTextureMatrix[5] = this.vScale, this._cachedReflectionTextureMatrix[12] = this.uOffset, this._cachedReflectionTextureMatrix[13] = this.vOffset;\n break;\n }\n case Zi.PROJECTION_MODE: {\n O.FromValuesToRef(0.5, 0, 0, 0, 0, -0.5, 0, 0, 0, 0, 0, 0, 0.5, 0.5, 1, 1, this._projectionModeMatrix);\n const i = e.getProjectionMatrix();\n this._cachedReflectionProjectionMatrixId = i.updateFlag, i.multiplyToRef(this._projectionModeMatrix, this._cachedReflectionTextureMatrix);\n break;\n }\n default:\n O.IdentityToRef(this._cachedReflectionTextureMatrix);\n break;\n }\n return t && e.markAllMaterialsAsDirty(1, (i) => i.hasTexture(this)), this._cachedReflectionTextureMatrix;\n }\n /**\n * Clones the texture.\n * @returns the cloned texture\n */\n clone() {\n const e = {\n noMipmap: this._noMipmap,\n invertY: this._invertY,\n samplingMode: this.samplingMode,\n onLoad: void 0,\n onError: void 0,\n buffer: this._texture ? this._texture._buffer : void 0,\n deleteBuffer: this._deleteBuffer,\n format: this.textureFormat,\n mimeType: this.mimeType,\n loaderOptions: this._loaderOptions,\n creationFlags: this._creationFlags,\n useSRGBBuffer: this._useSRGBBuffer\n };\n return Ae.Clone(() => new Zi(this._texture ? this._texture.url : null, this.getScene(), e), this);\n }\n /**\n * Serialize the texture to a JSON representation we can easily use in the respective Parse function.\n * @returns The JSON representation of the texture\n */\n serialize() {\n var i;\n const e = this.name;\n Zi.SerializeBuffers || this.name.startsWith(\"data:\") && (this.name = \"\"), this.name.startsWith(\"data:\") && this.url === this.name && (this.url = \"\");\n const t = super.serialize(Zi._SerializeInternalTextureUniqueId);\n return t ? ((Zi.SerializeBuffers || Zi.ForceSerializeBuffers) && (typeof this._buffer == \"string\" && this._buffer.substr(0, 5) === \"data:\" ? (t.base64String = this._buffer, t.name = t.name.replace(\"data:\", \"\")) : this.url && this.url.startsWith(\"data:\") && this._buffer instanceof Uint8Array ? t.base64String = \"data:image/png;base64,\" + px(this._buffer) : (Zi.ForceSerializeBuffers || this.url && this.url.startsWith(\"blob:\") || this._forceSerialize) && (t.base64String = !this._engine || this._engine._features.supportSyncTextureRead ? kC(this) : GC(this))), t.invertY = this._invertY, t.samplingMode = this.samplingMode, t._creationFlags = this._creationFlags, t._useSRGBBuffer = this._useSRGBBuffer, Zi._SerializeInternalTextureUniqueId && (t.internalTextureUniqueId = ((i = this._texture) == null ? void 0 : i.uniqueId) ?? void 0), t.noMipmap = this._noMipmap, this.name = e, t) : null;\n }\n /**\n * Get the current class name of the texture useful for serialization or dynamic coding.\n * @returns \"Texture\"\n */\n getClassName() {\n return \"Texture\";\n }\n /**\n * Dispose the texture and release its associated resources.\n */\n dispose() {\n super.dispose(), this.onLoadObservable.clear(), this._delayedOnLoad = null, this._delayedOnError = null, this._buffer = null;\n }\n /**\n * Parse the JSON representation of a texture in order to recreate the texture in the given scene.\n * @param parsedTexture Define the JSON representation of the texture\n * @param scene Define the scene the parsed texture should be instantiated in\n * @param rootUrl Define the root url of the parsing sequence in the case of relative dependencies\n * @returns The parsed texture if successful\n */\n static Parse(e, t, i) {\n if (e.customType) {\n const h = Jc.Instantiate(e.customType).Parse(e, t, i);\n return e.samplingMode && h.updateSamplingMode && h._samplingMode && h._samplingMode !== e.samplingMode && h.updateSamplingMode(e.samplingMode), h;\n }\n if (e.isCube && !e.isRenderTarget)\n return Zi._CubeTextureParser(e, t, i);\n const s = e.internalTextureUniqueId !== void 0;\n if (!e.name && !e.isRenderTarget && !s)\n return null;\n let r;\n if (s) {\n const l = t.getEngine().getLoadedTexturesCache();\n for (const h of l)\n if (h.uniqueId === e.internalTextureUniqueId) {\n r = h;\n break;\n }\n }\n const n = (l) => {\n var h;\n if (l && l._texture && (l._texture._cachedWrapU = null, l._texture._cachedWrapV = null, l._texture._cachedWrapR = null), e.samplingMode) {\n const c = e.samplingMode;\n l && l.samplingMode !== c && l.updateSamplingMode(c);\n }\n if (l && e.animations)\n for (let c = 0; c < e.animations.length; c++) {\n const u = e.animations[c], d = Oi(\"BABYLON.Animation\");\n d && l.animations.push(d.Parse(u));\n }\n s && !r && ((h = l == null ? void 0 : l._texture) == null || h._setUniqueId(e.internalTextureUniqueId));\n };\n return Ae.Parse(() => {\n let l = !0;\n if (e.noMipmap && (l = !1), e.mirrorPlane) {\n const h = Zi._CreateMirror(e.name, e.renderTargetSize, t, l);\n return h._waitingRenderList = e.renderList, h.mirrorPlane = Pr.FromArray(e.mirrorPlane), n(h), h;\n } else if (e.isRenderTarget) {\n let h = null;\n if (e.isCube) {\n if (t.reflectionProbes)\n for (let c = 0; c < t.reflectionProbes.length; c++) {\n const u = t.reflectionProbes[c];\n if (u.name === e.name)\n return u.cubeTexture;\n }\n } else\n h = Zi._CreateRenderTargetTexture(e.name, e.renderTargetSize, t, l, e._creationFlags ?? 0), h._waitingRenderList = e.renderList;\n return n(h), h;\n } else if (e.isVideo) {\n const h = Zi._CreateVideoTexture(i + (e.url || e.name), i + (e.src || e.url), t, l, e.invertY, e.samplingMode, e.settings || {});\n return n(h), h;\n } else {\n let h;\n if (e.base64String && !r)\n h = Zi.CreateFromBase64String(e.base64String, e.base64String, t, !l, e.invertY, e.samplingMode, () => {\n n(h);\n }, e._creationFlags ?? 0, e._useSRGBBuffer ?? !1), h.name = e.name;\n else {\n let c;\n e.name && (e.name.indexOf(\"://\") > 0 || e.name.startsWith(\"data:\")) ? c = e.name : c = i + e.name, e.url && (e.url.startsWith(\"data:\") || Zi.UseSerializedUrlIfAny) && (c = e.url);\n const u = {\n noMipmap: !l,\n invertY: e.invertY,\n samplingMode: e.samplingMode,\n onLoad: () => {\n n(h);\n },\n internalTexture: r\n };\n h = new Zi(c, t, u);\n }\n return h;\n }\n }, e, t);\n }\n /**\n * Creates a texture from its base 64 representation.\n * @param data Define the base64 payload without the data: prefix\n * @param name Define the name of the texture in the scene useful fo caching purpose for instance\n * @param scene Define the scene the texture should belong to\n * @param noMipmapOrOptions defines if the texture will require mip maps or not or set of all options to create the texture\n * @param invertY define if the texture needs to be inverted on the y axis during loading\n * @param samplingMode define the sampling mode we want for the texture while fetching from it (Texture.NEAREST_SAMPLINGMODE...)\n * @param onLoad define a callback triggered when the texture has been loaded\n * @param onError define a callback triggered when an error occurred during the loading session\n * @param format define the format of the texture we are trying to load (Engine.TEXTUREFORMAT_RGBA...)\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n * @param forcedExtension defines the extension to use to pick the right loader\n * @returns the created texture\n */\n static CreateFromBase64String(e, t, i, s, r, n = Zi.TRILINEAR_SAMPLINGMODE, o = null, l = null, h = 5, c, u) {\n return new Zi(\"data:\" + t, i, s, r, n, o, l, e, !1, h, void 0, void 0, c, u);\n }\n /**\n * Creates a texture from its data: representation. (data: will be added in case only the payload has been passed in)\n * @param name Define the name of the texture in the scene useful fo caching purpose for instance\n * @param buffer define the buffer to load the texture from in case the texture is loaded from a buffer representation\n * @param scene Define the scene the texture should belong to\n * @param deleteBuffer define if the buffer we are loading the texture from should be deleted after load\n * @param noMipmapOrOptions defines if the texture will require mip maps or not or set of all options to create the texture\n * @param invertY define if the texture needs to be inverted on the y axis during loading\n * @param samplingMode define the sampling mode we want for the texture while fetching from it (Texture.NEAREST_SAMPLINGMODE...)\n * @param onLoad define a callback triggered when the texture has been loaded\n * @param onError define a callback triggered when an error occurred during the loading session\n * @param format define the format of the texture we are trying to load (Engine.TEXTUREFORMAT_RGBA...)\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n * @param forcedExtension defines the extension to use to pick the right loader\n * @returns the created texture\n */\n static LoadFromDataString(e, t, i, s = !1, r, n = !0, o = Zi.TRILINEAR_SAMPLINGMODE, l = null, h = null, c = 5, u, d) {\n return e.substr(0, 5) !== \"data:\" && (e = \"data:\" + e), new Zi(e, i, r, n, o, l, h, t, s, c, void 0, void 0, u, d);\n }\n};\nX.SerializeBuffers = !0;\nX.ForceSerializeBuffers = !1;\nX.OnTextureLoadErrorObservable = new G();\nX._SerializeInternalTextureUniqueId = !1;\nX._CubeTextureParser = (a, e, t) => {\n throw $e(\"CubeTexture\");\n};\nX._CreateMirror = (a, e, t, i) => {\n throw $e(\"MirrorTexture\");\n};\nX._CreateRenderTargetTexture = (a, e, t, i, s) => {\n throw $e(\"RenderTargetTexture\");\n};\nX.NEAREST_SAMPLINGMODE = 1;\nX.NEAREST_NEAREST_MIPLINEAR = 8;\nX.BILINEAR_SAMPLINGMODE = 2;\nX.LINEAR_LINEAR_MIPNEAREST = 11;\nX.TRILINEAR_SAMPLINGMODE = 3;\nX.LINEAR_LINEAR_MIPLINEAR = 3;\nX.NEAREST_NEAREST_MIPNEAREST = 4;\nX.NEAREST_LINEAR_MIPNEAREST = 5;\nX.NEAREST_LINEAR_MIPLINEAR = 6;\nX.NEAREST_LINEAR = 7;\nX.NEAREST_NEAREST = 1;\nX.LINEAR_NEAREST_MIPNEAREST = 9;\nX.LINEAR_NEAREST_MIPLINEAR = 10;\nX.LINEAR_LINEAR = 2;\nX.LINEAR_NEAREST = 12;\nX.EXPLICIT_MODE = 0;\nX.SPHERICAL_MODE = 1;\nX.PLANAR_MODE = 2;\nX.CUBIC_MODE = 3;\nX.PROJECTION_MODE = 4;\nX.SKYBOX_MODE = 5;\nX.INVCUBIC_MODE = 6;\nX.EQUIRECTANGULAR_MODE = 7;\nX.FIXED_EQUIRECTANGULAR_MODE = 8;\nX.FIXED_EQUIRECTANGULAR_MIRRORED_MODE = 9;\nX.CLAMP_ADDRESSMODE = 0;\nX.WRAP_ADDRESSMODE = 1;\nX.MIRROR_ADDRESSMODE = 2;\nX.UseSerializedUrlIfAny = !1;\ny([\n I()\n], X.prototype, \"url\", void 0);\ny([\n I()\n], X.prototype, \"uOffset\", void 0);\ny([\n I()\n], X.prototype, \"vOffset\", void 0);\ny([\n I()\n], X.prototype, \"uScale\", void 0);\ny([\n I()\n], X.prototype, \"vScale\", void 0);\ny([\n I()\n], X.prototype, \"uAng\", void 0);\ny([\n I()\n], X.prototype, \"vAng\", void 0);\ny([\n I()\n], X.prototype, \"wAng\", void 0);\ny([\n I()\n], X.prototype, \"uRotationCenter\", void 0);\ny([\n I()\n], X.prototype, \"vRotationCenter\", void 0);\ny([\n I()\n], X.prototype, \"wRotationCenter\", void 0);\ny([\n I()\n], X.prototype, \"homogeneousRotationInUVTransform\", void 0);\ny([\n I()\n], X.prototype, \"isBlocking\", null);\nU(\"BABYLON.Texture\", X);\nAe._TextureParser = X.Parse;\nclass Ax {\n /**\n * Gets the depth/stencil texture (if created by a createDepthStencilTexture() call)\n */\n get depthStencilTexture() {\n return this._depthStencilTexture;\n }\n /**\n * Indicates if the depth/stencil texture has a stencil aspect\n */\n get depthStencilTextureWithStencil() {\n return this._depthStencilTextureWithStencil;\n }\n /**\n * Defines if the render target wrapper is for a cube texture or if false a 2d texture\n */\n get isCube() {\n return this._isCube;\n }\n /**\n * Defines if the render target wrapper is for a single or multi target render wrapper\n */\n get isMulti() {\n return this._isMulti;\n }\n /**\n * Defines if the render target wrapper is for a single or an array of textures\n */\n get is2DArray() {\n return this.layers > 0;\n }\n /**\n * Defines if the render target wrapper is for a 3D texture\n */\n get is3D() {\n return this.depth > 0;\n }\n /**\n * Gets the size of the render target wrapper (used for cubes, as width=height in this case)\n */\n get size() {\n return this.width;\n }\n /**\n * Gets the width of the render target wrapper\n */\n get width() {\n return this._size.width || this._size;\n }\n /**\n * Gets the height of the render target wrapper\n */\n get height() {\n return this._size.height || this._size;\n }\n /**\n * Gets the number of layers of the render target wrapper (only used if is2DArray is true and wrapper is not a multi render target)\n */\n get layers() {\n return this._size.layers || 0;\n }\n /**\n * Gets the depth of the render target wrapper (only used if is3D is true and wrapper is not a multi render target)\n */\n get depth() {\n return this._size.depth || 0;\n }\n /**\n * Gets the render texture. If this is a multi render target, gets the first texture\n */\n get texture() {\n var e;\n return ((e = this._textures) == null ? void 0 : e[0]) ?? null;\n }\n /**\n * Gets the list of render textures. If we are not in a multi render target, the list will be null (use the texture getter instead)\n */\n get textures() {\n return this._textures;\n }\n /**\n * Gets the face indices that correspond to the list of render textures. If we are not in a multi render target, the list will be null\n */\n get faceIndices() {\n return this._faceIndices;\n }\n /**\n * Gets the layer indices that correspond to the list of render textures. If we are not in a multi render target, the list will be null\n */\n get layerIndices() {\n return this._layerIndices;\n }\n /**\n * Gets the sample count of the render target\n */\n get samples() {\n return this._samples;\n }\n /**\n * Sets the sample count of the render target\n * @param value sample count\n * @param initializeBuffers If set to true, the engine will make an initializing call to drawBuffers (only used when isMulti=true).\n * @param force true to force calling the update sample count engine function even if the current sample count is equal to value\n * @returns the sample count that has been set\n */\n setSamples(e, t = !0, i = !1) {\n if (this.samples === e && !i)\n return e;\n const s = this._isMulti ? this._engine.updateMultipleRenderTargetTextureSampleCount(this, e, t) : this._engine.updateRenderTargetTextureSampleCount(this, e);\n return this._samples = e, s;\n }\n /**\n * Initializes the render target wrapper\n * @param isMulti true if the wrapper is a multi render target\n * @param isCube true if the wrapper should render to a cube texture\n * @param size size of the render target (width/height/layers)\n * @param engine engine used to create the render target\n * @param label defines the label to use for the wrapper (for debugging purpose only)\n */\n constructor(e, t, i, s, r) {\n this._textures = null, this._faceIndices = null, this._layerIndices = null, this._samples = 1, this._attachments = null, this._generateStencilBuffer = !1, this._generateDepthBuffer = !1, this._depthStencilTextureWithStencil = !1, this._isMulti = e, this._isCube = t, this._size = i, this._engine = s, this._depthStencilTexture = null, this.label = r;\n }\n /**\n * Sets the render target texture(s)\n * @param textures texture(s) to set\n */\n setTextures(e) {\n Array.isArray(e) ? this._textures = e : e ? this._textures = [e] : this._textures = null;\n }\n /**\n * Set a texture in the textures array\n * @param texture The texture to set\n * @param index The index in the textures array to set\n * @param disposePrevious If this function should dispose the previous texture\n */\n setTexture(e, t = 0, i = !0) {\n this._textures || (this._textures = []), this._textures[t] !== e && (this._textures[t] && i && this._textures[t].dispose(), this._textures[t] = e);\n }\n /**\n * Sets the layer and face indices of every render target texture bound to each color attachment\n * @param layers The layers of each texture to be set\n * @param faces The faces of each texture to be set\n */\n setLayerAndFaceIndices(e, t) {\n this._layerIndices = e, this._faceIndices = t;\n }\n /**\n * Sets the layer and face indices of a texture in the textures array that should be bound to each color attachment\n * @param index The index of the texture in the textures array to modify\n * @param layer The layer of the texture to be set\n * @param face The face of the texture to be set\n */\n setLayerAndFaceIndex(e = 0, t, i) {\n this._layerIndices || (this._layerIndices = []), this._faceIndices || (this._faceIndices = []), t !== void 0 && t >= 0 && (this._layerIndices[e] = t), i !== void 0 && i >= 0 && (this._faceIndices[e] = i);\n }\n /**\n * Creates the depth/stencil texture\n * @param comparisonFunction Comparison function to use for the texture\n * @param bilinearFiltering true if bilinear filtering should be used when sampling the texture\n * @param generateStencil true if the stencil aspect should also be created\n * @param samples sample count to use when creating the texture\n * @param format format of the depth texture\n * @param label defines the label to use for the texture (for debugging purpose only)\n * @returns the depth/stencil created texture\n */\n createDepthStencilTexture(e = 0, t = !0, i = !1, s = 1, r = 14, n) {\n var o;\n return (o = this._depthStencilTexture) == null || o.dispose(), this._depthStencilTextureWithStencil = i, this._depthStencilTextureLabel = n, this._depthStencilTexture = this._engine.createDepthStencilTexture(this._size, {\n bilinearFiltering: t,\n comparisonFunction: e,\n generateStencil: i,\n isCube: this._isCube,\n samples: s,\n depthTextureFormat: r,\n label: n\n }, this), this._depthStencilTexture;\n }\n /**\n * @deprecated Use shareDepth instead\n * @param renderTarget Destination renderTarget\n */\n _shareDepth(e) {\n this.shareDepth(e);\n }\n /**\n * Shares the depth buffer of this render target with another render target.\n * @param renderTarget Destination renderTarget\n */\n shareDepth(e) {\n this._depthStencilTexture && (e._depthStencilTexture && e._depthStencilTexture.dispose(), e._depthStencilTexture = this._depthStencilTexture, e._depthStencilTextureWithStencil = this._depthStencilTextureWithStencil, this._depthStencilTexture.incrementReferences());\n }\n /**\n * @internal\n */\n _swapAndDie(e) {\n this.texture && this.texture._swapAndDie(e), this._textures = null, this.dispose(!0);\n }\n _cloneRenderTargetWrapper() {\n var t, i, s, r, n;\n let e = null;\n if (this._isMulti) {\n const o = this.textures;\n if (o && o.length > 0) {\n let l = !1, h = o.length, c = -1;\n const u = o[o.length - 1]._source;\n (u === 14 || u === 12) && (l = !0, c = o[o.length - 1].format, h--);\n const d = [], f = [], p = [], _ = [], m = [], x = [], v = [], T = {};\n for (let S = 0; S < h; ++S) {\n const C = o[S];\n d.push(C.samplingMode), f.push(C.type), p.push(C.format), T[C.uniqueId] !== void 0 ? (_.push(-1), v.push(0)) : (T[C.uniqueId] = S, C.is2DArray ? (_.push(35866), v.push(C.depth)) : C.isCube ? (_.push(34067), v.push(0)) : C.is3D ? (_.push(32879), v.push(C.depth)) : (_.push(3553), v.push(0))), this._faceIndices && m.push(this._faceIndices[S] ?? 0), this._layerIndices && x.push(this._layerIndices[S] ?? 0);\n }\n const E = {\n samplingModes: d,\n generateMipMaps: o[0].generateMipMaps,\n generateDepthBuffer: this._generateDepthBuffer,\n generateStencilBuffer: this._generateStencilBuffer,\n generateDepthTexture: l,\n depthTextureFormat: c,\n types: f,\n formats: p,\n textureCount: h,\n targetTypes: _,\n faceIndex: m,\n layerIndex: x,\n layerCounts: v,\n label: this.label\n }, b = {\n width: this.width,\n height: this.height,\n depth: this.depth\n };\n e = this._engine.createMultipleRenderTarget(b, E);\n for (let S = 0; S < h; ++S) {\n if (_[S] !== -1)\n continue;\n const C = T[o[S].uniqueId];\n e.setTexture(e.textures[C], S);\n }\n }\n } else {\n const o = {};\n if (o.generateDepthBuffer = this._generateDepthBuffer, o.generateMipMaps = ((t = this.texture) == null ? void 0 : t.generateMipMaps) ?? !1, o.generateStencilBuffer = this._generateStencilBuffer, o.samplingMode = (i = this.texture) == null ? void 0 : i.samplingMode, o.type = (s = this.texture) == null ? void 0 : s.type, o.format = (r = this.texture) == null ? void 0 : r.format, o.noColorAttachment = !this._textures, o.label = this.label, this.isCube)\n e = this._engine.createRenderTargetCubeTexture(this.width, o);\n else {\n const l = {\n width: this.width,\n height: this.height,\n layers: this.is2DArray || this.is3D ? (n = this.texture) == null ? void 0 : n.depth : void 0\n };\n e = this._engine.createRenderTargetTexture(l, o);\n }\n e.texture && (e.texture.isReady = !0);\n }\n return e;\n }\n _swapRenderTargetWrapper(e) {\n if (this._textures && e._textures)\n for (let t = 0; t < this._textures.length; ++t)\n this._textures[t]._swapAndDie(e._textures[t], !1), e._textures[t].isReady = !0;\n this._depthStencilTexture && e._depthStencilTexture && (this._depthStencilTexture._swapAndDie(e._depthStencilTexture), e._depthStencilTexture.isReady = !0), this._textures = null, this._depthStencilTexture = null;\n }\n /** @internal */\n _rebuild() {\n const e = this._cloneRenderTargetWrapper();\n if (e) {\n if (this._depthStencilTexture) {\n const t = this._depthStencilTexture.samplingMode, i = this._depthStencilTexture.format, s = t === 2 || t === 3 || t === 11;\n e.createDepthStencilTexture(this._depthStencilTexture._comparisonFunction, s, this._depthStencilTextureWithStencil, this._depthStencilTexture.samples, i, this._depthStencilTextureLabel);\n }\n this.samples > 1 && e.setSamples(this.samples), e._swapRenderTargetWrapper(this), e.dispose();\n }\n }\n /**\n * Releases the internal render textures\n */\n releaseTextures() {\n var e;\n if (this._textures)\n for (let t = 0; t < ((e = this._textures) == null ? void 0 : e.length); ++t)\n this._textures[t].dispose();\n this._textures = null;\n }\n /**\n * Disposes the whole render target wrapper\n * @param disposeOnlyFramebuffers true if only the frame buffers should be released (used for the WebGL engine). If false, all the textures will also be released\n */\n dispose(e = !1) {\n var t;\n e || ((t = this._depthStencilTexture) == null || t.dispose(), this._depthStencilTexture = null, this.releaseTextures()), this._engine._releaseRenderTargetWrapper(this);\n }\n}\nclass uO extends Ax {\n constructor(e, t, i, s, r) {\n super(e, t, i, s), this._framebuffer = null, this._depthStencilBuffer = null, this._MSAAFramebuffer = null, this._colorTextureArray = null, this._depthStencilTextureArray = null, this._disposeOnlyFramebuffers = !1, this._currentLOD = 0, this._context = r;\n }\n _cloneRenderTargetWrapper() {\n let e = null;\n return this._colorTextureArray && this._depthStencilTextureArray ? (e = this._engine.createMultiviewRenderTargetTexture(this.width, this.height), e.texture.isReady = !0) : e = super._cloneRenderTargetWrapper(), e;\n }\n _swapRenderTargetWrapper(e) {\n super._swapRenderTargetWrapper(e), e._framebuffer = this._framebuffer, e._depthStencilBuffer = this._depthStencilBuffer, e._MSAAFramebuffer = this._MSAAFramebuffer, e._colorTextureArray = this._colorTextureArray, e._depthStencilTextureArray = this._depthStencilTextureArray, this._framebuffer = this._depthStencilBuffer = this._MSAAFramebuffer = this._colorTextureArray = this._depthStencilTextureArray = null;\n }\n /**\n * Creates the depth/stencil texture\n * @param comparisonFunction Comparison function to use for the texture\n * @param bilinearFiltering true if bilinear filtering should be used when sampling the texture\n * @param generateStencil true if the stencil aspect should also be created\n * @param samples sample count to use when creating the texture\n * @param format format of the depth texture\n * @param label defines the label to use for the texture (for debugging purpose only)\n * @returns the depth/stencil created texture\n */\n createDepthStencilTexture(e = 0, t = !0, i = !1, s = 1, r = 14, n) {\n if (this._depthStencilBuffer) {\n const o = this._engine, l = o._currentFramebuffer, h = this._context;\n o._bindUnboundFramebuffer(this._framebuffer), h.framebufferRenderbuffer(h.FRAMEBUFFER, h.DEPTH_STENCIL_ATTACHMENT, h.RENDERBUFFER, null), h.framebufferRenderbuffer(h.FRAMEBUFFER, h.DEPTH_ATTACHMENT, h.RENDERBUFFER, null), h.framebufferRenderbuffer(h.FRAMEBUFFER, h.STENCIL_ATTACHMENT, h.RENDERBUFFER, null), o._bindUnboundFramebuffer(l), h.deleteRenderbuffer(this._depthStencilBuffer), this._depthStencilBuffer = null;\n }\n return super.createDepthStencilTexture(e, t, i, s, r, n);\n }\n /**\n * Shares the depth buffer of this render target with another render target.\n * @param renderTarget Destination renderTarget\n */\n shareDepth(e) {\n super.shareDepth(e);\n const t = this._context, i = this._depthStencilBuffer, s = e._MSAAFramebuffer || e._framebuffer, r = this._engine;\n e._depthStencilBuffer && e._depthStencilBuffer !== i && t.deleteRenderbuffer(e._depthStencilBuffer), e._depthStencilBuffer = i;\n const n = e._generateStencilBuffer ? t.DEPTH_STENCIL_ATTACHMENT : t.DEPTH_ATTACHMENT;\n r._bindUnboundFramebuffer(s), t.framebufferRenderbuffer(t.FRAMEBUFFER, n, t.RENDERBUFFER, i), r._bindUnboundFramebuffer(null);\n }\n /**\n * Binds a texture to this render target on a specific attachment\n * @param texture The texture to bind to the framebuffer\n * @param attachmentIndex Index of the attachment\n * @param faceIndexOrLayer The face or layer of the texture to render to in case of cube texture or array texture\n * @param lodLevel defines the lod level to bind to the frame buffer\n */\n _bindTextureRenderTarget(e, t = 0, i, s = 0) {\n var l, h;\n if (!e._hardwareTexture)\n return;\n const r = this._framebuffer, n = this._engine, o = n._currentFramebuffer;\n if (n._bindUnboundFramebuffer(r), n.webGLVersion > 1) {\n const c = this._context, u = c[\"COLOR_ATTACHMENT\" + t];\n e.is2DArray || e.is3D ? (i = i ?? ((l = this.layerIndices) == null ? void 0 : l[t]) ?? 0, c.framebufferTextureLayer(c.FRAMEBUFFER, u, e._hardwareTexture.underlyingResource, s, i)) : e.isCube ? (i = i ?? ((h = this.faceIndices) == null ? void 0 : h[t]) ?? 0, c.framebufferTexture2D(c.FRAMEBUFFER, u, c.TEXTURE_CUBE_MAP_POSITIVE_X + i, e._hardwareTexture.underlyingResource, s)) : c.framebufferTexture2D(c.FRAMEBUFFER, u, c.TEXTURE_2D, e._hardwareTexture.underlyingResource, s);\n } else {\n const c = this._context, u = c[\"COLOR_ATTACHMENT\" + t + \"_WEBGL\"], d = i !== void 0 ? c.TEXTURE_CUBE_MAP_POSITIVE_X + i : c.TEXTURE_2D;\n c.framebufferTexture2D(c.FRAMEBUFFER, u, d, e._hardwareTexture.underlyingResource, s);\n }\n n._bindUnboundFramebuffer(o);\n }\n /**\n * Set a texture in the textures array\n * @param texture the texture to set\n * @param index the index in the textures array to set\n * @param disposePrevious If this function should dispose the previous texture\n */\n setTexture(e, t = 0, i = !0) {\n super.setTexture(e, t, i), this._bindTextureRenderTarget(e, t);\n }\n /**\n * Sets the layer and face indices of every render target texture\n * @param layers The layer of the texture to be set (make negative to not modify)\n * @param faces The face of the texture to be set (make negative to not modify)\n */\n setLayerAndFaceIndices(e, t) {\n var s;\n if (super.setLayerAndFaceIndices(e, t), !this.textures || !this.layerIndices || !this.faceIndices)\n return;\n const i = ((s = this._attachments) == null ? void 0 : s.length) ?? this.textures.length;\n for (let r = 0; r < i; r++) {\n const n = this.textures[r];\n n && (n.is2DArray || n.is3D ? this._bindTextureRenderTarget(n, r, this.layerIndices[r]) : n.isCube ? this._bindTextureRenderTarget(n, r, this.faceIndices[r]) : this._bindTextureRenderTarget(n, r));\n }\n }\n /**\n * Set the face and layer indices of a texture in the textures array\n * @param index The index of the texture in the textures array to modify\n * @param layer The layer of the texture to be set\n * @param face The face of the texture to be set\n */\n setLayerAndFaceIndex(e = 0, t, i) {\n if (super.setLayerAndFaceIndex(e, t, i), !this.textures || !this.layerIndices || !this.faceIndices)\n return;\n const s = this.textures[e];\n s.is2DArray || s.is3D ? this._bindTextureRenderTarget(this.textures[e], e, this.layerIndices[e]) : s.isCube && this._bindTextureRenderTarget(this.textures[e], e, this.faceIndices[e]);\n }\n dispose(e = this._disposeOnlyFramebuffers) {\n const t = this._context;\n e || (this._colorTextureArray && (this._context.deleteTexture(this._colorTextureArray), this._colorTextureArray = null), this._depthStencilTextureArray && (this._context.deleteTexture(this._depthStencilTextureArray), this._depthStencilTextureArray = null)), this._framebuffer && (t.deleteFramebuffer(this._framebuffer), this._framebuffer = null), this._depthStencilBuffer && (t.deleteRenderbuffer(this._depthStencilBuffer), this._depthStencilBuffer = null), this._MSAAFramebuffer && (t.deleteFramebuffer(this._MSAAFramebuffer), this._MSAAFramebuffer = null), super.dispose(e);\n }\n}\nXe.prototype._createHardwareRenderTargetWrapper = function(a, e, t) {\n const i = new uO(a, e, t, this, this._gl);\n return this._renderTargetWrapperCache.push(i), i;\n};\nXe.prototype.createRenderTargetTexture = function(a, e) {\n const t = this._createHardwareRenderTargetWrapper(!1, !1, a);\n let i = !0, s = !1, r = !1, n, o = 1, l;\n e !== void 0 && typeof e == \"object\" && (i = e.generateDepthBuffer ?? !0, s = !!e.generateStencilBuffer, r = !!e.noColorAttachment, n = e.colorAttachment, o = e.samples ?? 1, l = e.label);\n const h = n || (r ? null : this._createInternalTexture(\n a,\n e,\n !0,\n 5\n /* InternalTextureSource.RenderTarget */\n )), c = a.width || a, u = a.height || a, d = this._currentFramebuffer, f = this._gl, p = f.createFramebuffer();\n return this._bindUnboundFramebuffer(p), t._depthStencilBuffer = this._setupFramebufferDepthAttachments(s, i, c, u), h && !h.is2DArray && !h.is3D && f.framebufferTexture2D(f.FRAMEBUFFER, f.COLOR_ATTACHMENT0, f.TEXTURE_2D, h._hardwareTexture.underlyingResource, 0), this._bindUnboundFramebuffer(d), t.label = l ?? \"RenderTargetWrapper\", t._framebuffer = p, t._generateDepthBuffer = i, t._generateStencilBuffer = s, t.setTextures(h), this.updateRenderTargetTextureSampleCount(t, o), t;\n};\nXe.prototype._createDepthStencilTexture = function(a, e) {\n const t = this._gl, i = a.layers || 0, s = a.depth || 0;\n let r = t.TEXTURE_2D;\n i !== 0 ? r = t.TEXTURE_2D_ARRAY : s !== 0 && (r = t.TEXTURE_3D);\n const n = new Nt(\n this,\n 12\n /* InternalTextureSource.DepthStencil */\n );\n if (n.label = e.label, !this._caps.depthTextureExtension)\n return L.Error(\"Depth texture is not supported by your browser or hardware.\"), n;\n const o = {\n bilinearFiltering: !1,\n comparisonFunction: 0,\n generateStencil: !1,\n ...e\n };\n if (this._bindTextureDirectly(r, n, !0), this._setupDepthStencilTexture(n, a, o.generateStencil, o.comparisonFunction === 0 ? !1 : o.bilinearFiltering, o.comparisonFunction, o.samples), o.depthTextureFormat !== void 0) {\n if (o.depthTextureFormat !== 15 && o.depthTextureFormat !== 16 && o.depthTextureFormat !== 17 && o.depthTextureFormat !== 13 && o.depthTextureFormat !== 14 && o.depthTextureFormat !== 18)\n return L.Error(\"Depth texture format is not supported.\"), n;\n n.format = o.depthTextureFormat;\n } else\n n.format = o.generateStencil ? 13 : 16;\n const l = n.format === 17 || n.format === 13 || n.format === 18;\n let h = t.UNSIGNED_INT;\n n.format === 15 ? h = t.UNSIGNED_SHORT : n.format === 17 || n.format === 13 ? h = t.UNSIGNED_INT_24_8 : n.format === 14 ? h = t.FLOAT : n.format === 18 && (h = t.FLOAT_32_UNSIGNED_INT_24_8_REV);\n const c = l ? t.DEPTH_STENCIL : t.DEPTH_COMPONENT;\n let u = c;\n return this.webGLVersion > 1 && (n.format === 15 ? u = t.DEPTH_COMPONENT16 : n.format === 16 ? u = t.DEPTH_COMPONENT24 : n.format === 17 || n.format === 13 ? u = t.DEPTH24_STENCIL8 : n.format === 14 ? u = t.DEPTH_COMPONENT32F : n.format === 18 && (u = t.DEPTH32F_STENCIL8)), n.is2DArray ? t.texImage3D(r, 0, u, n.width, n.height, i, 0, c, h, null) : n.is3D ? t.texImage3D(r, 0, u, n.width, n.height, s, 0, c, h, null) : t.texImage2D(r, 0, u, n.width, n.height, 0, c, h, null), this._bindTextureDirectly(r, null), this._internalTexturesCache.push(n), n;\n};\nXe.prototype.updateRenderTargetTextureSampleCount = function(a, e) {\n if (this.webGLVersion < 2 || !a || !a.texture)\n return 1;\n if (a.samples === e)\n return e;\n const t = this._gl;\n e = Math.min(e, this.getCaps().maxMSAASamples), a._depthStencilBuffer && (t.deleteRenderbuffer(a._depthStencilBuffer), a._depthStencilBuffer = null), a._MSAAFramebuffer && (t.deleteFramebuffer(a._MSAAFramebuffer), a._MSAAFramebuffer = null);\n const i = a.texture._hardwareTexture;\n if (i.releaseMSAARenderBuffers(), e > 1 && typeof t.renderbufferStorageMultisample == \"function\") {\n const s = t.createFramebuffer();\n if (!s)\n throw new Error(\"Unable to create multi sampled framebuffer\");\n a._MSAAFramebuffer = s, this._bindUnboundFramebuffer(a._MSAAFramebuffer);\n const r = this._createRenderBuffer(a.texture.width, a.texture.height, e, -1, this._getRGBABufferInternalSizedFormat(a.texture.type, a.texture.format, a.texture._useSRGBBuffer), t.COLOR_ATTACHMENT0, !1);\n if (!r)\n throw new Error(\"Unable to create multi sampled framebuffer\");\n i.addMSAARenderBuffer(r);\n } else\n this._bindUnboundFramebuffer(a._framebuffer);\n return a.texture.samples = e, a._samples = e, a._depthStencilBuffer = this._setupFramebufferDepthAttachments(a._generateStencilBuffer, a._generateDepthBuffer, a.texture.width, a.texture.height, e), this._bindUnboundFramebuffer(null), e;\n};\nXe.prototype._setupDepthStencilTexture = function(a, e, t, i, s, r = 1) {\n const n = e.width || e, o = e.height || e, l = e.layers || 0, h = e.depth || 0;\n a.baseWidth = n, a.baseHeight = o, a.width = n, a.height = o, a.is2DArray = l > 0, a.depth = l || h, a.isReady = !0, a.samples = r, a.generateMipMaps = !1, a.samplingMode = i ? 2 : 1, a.type = 0, a._comparisonFunction = s;\n const c = this._gl, u = this._getTextureTarget(a), d = this._getSamplingParameters(a.samplingMode, !1);\n c.texParameteri(u, c.TEXTURE_MAG_FILTER, d.mag), c.texParameteri(u, c.TEXTURE_MIN_FILTER, d.min), c.texParameteri(u, c.TEXTURE_WRAP_S, c.CLAMP_TO_EDGE), c.texParameteri(u, c.TEXTURE_WRAP_T, c.CLAMP_TO_EDGE), this.webGLVersion > 1 && (s === 0 ? (c.texParameteri(u, c.TEXTURE_COMPARE_FUNC, 515), c.texParameteri(u, c.TEXTURE_COMPARE_MODE, c.NONE)) : (c.texParameteri(u, c.TEXTURE_COMPARE_FUNC, s), c.texParameteri(u, c.TEXTURE_COMPARE_MODE, c.COMPARE_REF_TO_TEXTURE)));\n};\nXe.prototype.createRenderTargetCubeTexture = function(a, e) {\n const t = this._createHardwareRenderTargetWrapper(!1, !0, a), i = {\n generateMipMaps: !0,\n generateDepthBuffer: !0,\n generateStencilBuffer: !1,\n type: 0,\n samplingMode: 3,\n format: 5,\n ...e\n };\n i.generateStencilBuffer = i.generateDepthBuffer && i.generateStencilBuffer, (i.type === 1 && !this._caps.textureFloatLinearFiltering || i.type === 2 && !this._caps.textureHalfFloatLinearFiltering) && (i.samplingMode = 1);\n const s = this._gl, r = new Nt(\n this,\n 5\n /* InternalTextureSource.RenderTarget */\n );\n this._bindTextureDirectly(s.TEXTURE_CUBE_MAP, r, !0);\n const n = this._getSamplingParameters(i.samplingMode, i.generateMipMaps);\n i.type === 1 && !this._caps.textureFloat && (i.type = 0, L.Warn(\"Float textures are not supported. Cube render target forced to TEXTURETYPE_UNESIGNED_BYTE type\")), s.texParameteri(s.TEXTURE_CUBE_MAP, s.TEXTURE_MAG_FILTER, n.mag), s.texParameteri(s.TEXTURE_CUBE_MAP, s.TEXTURE_MIN_FILTER, n.min), s.texParameteri(s.TEXTURE_CUBE_MAP, s.TEXTURE_WRAP_S, s.CLAMP_TO_EDGE), s.texParameteri(s.TEXTURE_CUBE_MAP, s.TEXTURE_WRAP_T, s.CLAMP_TO_EDGE);\n for (let l = 0; l < 6; l++)\n s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X + l, 0, this._getRGBABufferInternalSizedFormat(i.type, i.format), a, a, 0, this._getInternalFormat(i.format), this._getWebGLTextureType(i.type), null);\n const o = s.createFramebuffer();\n return this._bindUnboundFramebuffer(o), t._depthStencilBuffer = this._setupFramebufferDepthAttachments(i.generateStencilBuffer, i.generateDepthBuffer, a, a), i.generateMipMaps && s.generateMipmap(s.TEXTURE_CUBE_MAP), this._bindTextureDirectly(s.TEXTURE_CUBE_MAP, null), this._bindUnboundFramebuffer(null), t._framebuffer = o, t._generateDepthBuffer = i.generateDepthBuffer, t._generateStencilBuffer = i.generateStencilBuffer, r.width = a, r.height = a, r.isReady = !0, r.isCube = !0, r.samples = 1, r.generateMipMaps = i.generateMipMaps, r.samplingMode = i.samplingMode, r.type = i.type, r.format = i.format, this._internalTexturesCache.push(r), t.setTextures(r), t;\n};\nXe.prototype.setDepthStencilTexture = function(a, e, t, i) {\n a !== void 0 && (e && (this._boundUniforms[a] = e), !t || !t.depthStencilTexture ? this._setTexture(a, null, void 0, void 0, i) : this._setTexture(a, t, !1, !0, i));\n};\nclass Ds {\n static GetEffect(e) {\n return e.getPipelineContext === void 0 ? e.effect : e;\n }\n constructor(e, t = !0) {\n this._wasPreviouslyReady = !1, this._forceRebindOnNextCall = !0, this._wasPreviouslyUsingInstances = null, this.effect = null, this.defines = null, this.drawContext = e.createDrawContext(), t && (this.materialContext = e.createMaterialContext());\n }\n setEffect(e, t, i = !0) {\n var s;\n this.effect = e, t !== void 0 && (this.defines = t), i && ((s = this.drawContext) == null || s.reset());\n }\n dispose() {\n var e;\n (e = this.drawContext) == null || e.dispose();\n }\n}\nconst dO = \"postprocessVertexShader\", fO = `attribute vec2 position;uniform vec2 scale;varying vec2 vUV;const vec2 madd=vec2(0.5,0.5);\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvUV=(position*madd+madd)*scale;gl_Position=vec4(position,0.0,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}`;\nz.ShadersStore[dO] = fO;\nconst Lm = {\n positions: [1, 1, -1, 1, -1, -1, 1, -1],\n indices: [0, 1, 2, 0, 2, 3]\n};\nclass c_ {\n /**\n * Creates an effect renderer\n * @param engine the engine to use for rendering\n * @param options defines the options of the effect renderer\n */\n constructor(e, t = Lm) {\n this._fullscreenViewport = new xr(0, 0, 1, 1);\n const i = t.positions ?? Lm.positions, s = t.indices ?? Lm.indices;\n this.engine = e, this._vertexBuffers = {\n [R.PositionKind]: new R(e, i, R.PositionKind, !1, !1, 2)\n }, this._indexBuffer = e.createIndexBuffer(s), this._onContextRestoredObserver = e.onContextRestoredObservable.add(() => {\n this._indexBuffer = e.createIndexBuffer(s);\n for (const r in this._vertexBuffers)\n this._vertexBuffers[r]._rebuild();\n });\n }\n /**\n * Sets the current viewport in normalized coordinates 0-1\n * @param viewport Defines the viewport to set (defaults to 0 0 1 1)\n */\n setViewport(e = this._fullscreenViewport) {\n this.engine.setViewport(e);\n }\n /**\n * Binds the embedded attributes buffer to the effect.\n * @param effect Defines the effect to bind the attributes for\n */\n bindBuffers(e) {\n this.engine.bindBuffers(this._vertexBuffers, this._indexBuffer, e);\n }\n /**\n * Sets the current effect wrapper to use during draw.\n * The effect needs to be ready before calling this api.\n * This also sets the default full screen position attribute.\n * @param effectWrapper Defines the effect to draw with\n */\n applyEffectWrapper(e) {\n this.engine.setState(!0), this.engine.depthCullingState.depthTest = !1, this.engine.stencilState.stencilTest = !1, this.engine.enableEffect(e._drawWrapper), this.bindBuffers(e.effect), e.onApplyObservable.notifyObservers({});\n }\n /**\n * Saves engine states\n */\n saveStates() {\n this._savedStateDepthTest = this.engine.depthCullingState.depthTest, this._savedStateStencilTest = this.engine.stencilState.stencilTest;\n }\n /**\n * Restores engine states\n */\n restoreStates() {\n this.engine.depthCullingState.depthTest = this._savedStateDepthTest, this.engine.stencilState.stencilTest = this._savedStateStencilTest;\n }\n /**\n * Draws a full screen quad.\n */\n draw() {\n this.engine.drawElementsType(0, 0, 6);\n }\n _isRenderTargetTexture(e) {\n return e.renderTarget !== void 0;\n }\n /**\n * renders one or more effects to a specified texture\n * @param effectWrapper the effect to renderer\n * @param outputTexture texture to draw to, if null it will render to the screen.\n */\n render(e, t = null) {\n if (!e.effect.isReady())\n return;\n this.saveStates(), this.setViewport();\n const i = t === null ? null : this._isRenderTargetTexture(t) ? t.renderTarget : t;\n i && this.engine.bindFramebuffer(i), this.applyEffectWrapper(e), this.draw(), i && this.engine.unBindFramebuffer(i), this.restoreStates();\n }\n /**\n * Disposes of the effect renderer\n */\n dispose() {\n const e = this._vertexBuffers[R.PositionKind];\n e && (e.dispose(), delete this._vertexBuffers[R.PositionKind]), this._indexBuffer && this.engine._releaseBuffer(this._indexBuffer), this._onContextRestoredObserver && (this.engine.onContextRestoredObservable.remove(this._onContextRestoredObserver), this._onContextRestoredObserver = null);\n }\n}\nclass to {\n /**\n * The underlying effect\n */\n get effect() {\n return this._drawWrapper.effect;\n }\n set effect(e) {\n this._drawWrapper.effect = e;\n }\n /**\n * Creates an effect to be renderer\n * @param creationOptions options to create the effect\n */\n constructor(e) {\n this.onApplyObservable = new G();\n let t;\n const i = e.uniformNames || [];\n e.vertexShader ? t = {\n fragmentSource: e.fragmentShader,\n vertexSource: e.vertexShader,\n spectorName: e.name || \"effectWrapper\"\n } : (i.push(\"scale\"), t = {\n fragmentSource: e.fragmentShader,\n vertex: \"postprocess\",\n spectorName: e.name || \"effectWrapper\"\n }, this.onApplyObservable.add(() => {\n this.effect.setFloat2(\"scale\", 1, 1);\n }));\n const s = e.defines ? e.defines.join(`\n`) : \"\";\n this._drawWrapper = new Ds(e.engine), e.useShaderStore ? (t.fragment = t.fragmentSource, t.vertex || (t.vertex = t.vertexSource), delete t.fragmentSource, delete t.vertexSource, this.effect = e.engine.createEffect(t, e.attributeNames || [\"position\"], i, e.samplerNames, s, void 0, e.onCompiled, void 0, void 0, e.shaderLanguage)) : (this.effect = new si(t, e.attributeNames || [\"position\"], i, e.samplerNames, e.engine, s, void 0, e.onCompiled, void 0, void 0, void 0, e.shaderLanguage), this._onContextRestoredObserver = e.engine.onContextRestoredObservable.add(() => {\n this.effect._pipelineContext = null, this.effect._prepareEffect();\n }));\n }\n /**\n * Disposes of the effect wrapper\n * @param disposeEffect defines if the underlying effect should also be disposed (true by default)\n */\n dispose(e = !0) {\n this._onContextRestoredObserver && (this.effect.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver), this._onContextRestoredObserver = null), e && this.effect.dispose();\n }\n}\nconst zC = \"passPixelShader\", WC = `varying vec2 vUV;uniform sampler2D textureSampler;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{gl_FragColor=texture2D(textureSampler,vUV);}`;\nz.ShadersStore[zC] = WC;\nconst yb = { name: zC, shader: WC };\nclass js {\n static _CreateDumpRenderer() {\n if (!js._DumpToolsEngine) {\n let e, t = null;\n const i = {\n preserveDrawingBuffer: !0,\n depth: !1,\n stencil: !1,\n alpha: !0,\n premultipliedAlpha: !1,\n antialias: !1,\n failIfMajorPerformanceCaveat: !1\n };\n try {\n e = new OffscreenCanvas(100, 100), t = new Xe(e, !1, i);\n } catch {\n e = document.createElement(\"canvas\"), t = new Xe(e, !1, i);\n }\n Me.Instances.pop(), Me.OnEnginesDisposedObservable.add((n) => {\n t && n !== t && !t.isDisposed && Me.Instances.length === 0 && js.Dispose();\n }), t.getCaps().parallelShaderCompile = void 0;\n const s = new c_(t), r = new to({\n engine: t,\n name: yb.name,\n fragmentShader: yb.shader,\n samplerNames: [\"textureSampler\"]\n });\n js._DumpToolsEngine = {\n canvas: e,\n engine: t,\n renderer: s,\n wrapper: r\n };\n }\n return js._DumpToolsEngine;\n }\n /**\n * Dumps the current bound framebuffer\n * @param width defines the rendering width\n * @param height defines the rendering height\n * @param engine defines the hosting engine\n * @param successCallback defines the callback triggered once the data are available\n * @param mimeType defines the mime type of the result\n * @param fileName defines the filename to download. If present, the result will automatically be downloaded\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n * @returns a void promise\n */\n static async DumpFramebuffer(e, t, i, s, r = \"image/png\", n, o) {\n const l = await i.readPixels(0, 0, e, t), h = new Uint8Array(l.buffer);\n js.DumpData(e, t, h, s, r, n, !0, void 0, o);\n }\n /**\n * Dumps an array buffer\n * @param width defines the rendering width\n * @param height defines the rendering height\n * @param data the data array\n * @param mimeType defines the mime type of the result\n * @param fileName defines the filename to download. If present, the result will automatically be downloaded\n * @param invertY true to invert the picture in the Y dimension\n * @param toArrayBuffer true to convert the data to an ArrayBuffer (encoded as `mimeType`) instead of a base64 string\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n * @returns a promise that resolve to the final data\n */\n static DumpDataAsync(e, t, i, s = \"image/png\", r, n = !1, o = !1, l) {\n return new Promise((h) => {\n js.DumpData(e, t, i, (c) => h(c), s, r, n, o, l);\n });\n }\n /**\n * Dumps an array buffer\n * @param width defines the rendering width\n * @param height defines the rendering height\n * @param data the data array\n * @param successCallback defines the callback triggered once the data are available\n * @param mimeType defines the mime type of the result\n * @param fileName defines the filename to download. If present, the result will automatically be downloaded\n * @param invertY true to invert the picture in the Y dimension\n * @param toArrayBuffer true to convert the data to an ArrayBuffer (encoded as `mimeType`) instead of a base64 string\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n */\n static DumpData(e, t, i, s, r = \"image/png\", n, o = !1, l = !1, h) {\n const c = js._CreateDumpRenderer();\n if (c.engine.setSize(e, t, !0), i instanceof Float32Array) {\n const d = new Uint8Array(i.length);\n let f = i.length;\n for (; f--; ) {\n const p = i[f];\n d[f] = Math.round(Re.Clamp(p) * 255);\n }\n i = d;\n }\n const u = c.engine.createRawTexture(i, e, t, 5, !1, !o, 1);\n c.renderer.setViewport(), c.renderer.applyEffectWrapper(c.wrapper), c.wrapper.effect._bindTexture(\"textureSampler\", u), c.renderer.draw(), l ? J.ToBlob(c.canvas, (d) => {\n const f = new FileReader();\n f.onload = (p) => {\n const _ = p.target.result;\n s && s(_);\n }, f.readAsArrayBuffer(d);\n }, r, h) : J.EncodeScreenshotCanvasData(c.canvas, s, r, n, h), u.dispose();\n }\n /**\n * Dispose the dump tools associated resources\n */\n static Dispose() {\n js._DumpToolsEngine && (js._DumpToolsEngine.wrapper.dispose(), js._DumpToolsEngine.renderer.dispose(), js._DumpToolsEngine.engine.dispose()), js._DumpToolsEngine = null;\n }\n}\nconst pO = () => {\n J.DumpData = js.DumpData, J.DumpDataAsync = js.DumpDataAsync, J.DumpFramebuffer = js.DumpFramebuffer;\n};\npO();\nsi.prototype.setDepthStencilTexture = function(a, e) {\n this._engine.setDepthStencilTexture(this._samplers[a], this._uniforms[a], e, a);\n};\nclass Ii extends X {\n /**\n * Use this list to define the list of mesh you want to render.\n */\n get renderList() {\n return this._renderList;\n }\n set renderList(e) {\n this._unObserveRenderList && (this._unObserveRenderList(), this._unObserveRenderList = null), e && (this._unObserveRenderList = OC(e, this._renderListHasChanged)), this._renderList = e;\n }\n /**\n * Post-processes for this render target\n */\n get postProcesses() {\n return this._postProcesses;\n }\n get _prePassEnabled() {\n return !!this._prePassRenderTarget && this._prePassRenderTarget.enabled;\n }\n /**\n * Set a after unbind callback in the texture.\n * This has been kept for backward compatibility and use of onAfterUnbindObservable is recommended.\n */\n set onAfterUnbind(e) {\n this._onAfterUnbindObserver && this.onAfterUnbindObservable.remove(this._onAfterUnbindObserver), this._onAfterUnbindObserver = this.onAfterUnbindObservable.add(e);\n }\n /**\n * Set a before render callback in the texture.\n * This has been kept for backward compatibility and use of onBeforeRenderObservable is recommended.\n */\n set onBeforeRender(e) {\n this._onBeforeRenderObserver && this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver), this._onBeforeRenderObserver = this.onBeforeRenderObservable.add(e);\n }\n /**\n * Set a after render callback in the texture.\n * This has been kept for backward compatibility and use of onAfterRenderObservable is recommended.\n */\n set onAfterRender(e) {\n this._onAfterRenderObserver && this.onAfterRenderObservable.remove(this._onAfterRenderObserver), this._onAfterRenderObserver = this.onAfterRenderObservable.add(e);\n }\n /**\n * Set a clear callback in the texture.\n * This has been kept for backward compatibility and use of onClearObservable is recommended.\n */\n set onClear(e) {\n this._onClearObserver && this.onClearObservable.remove(this._onClearObserver), this._onClearObserver = this.onClearObservable.add(e);\n }\n /**\n * Gets the render pass ids used by the render target texture. For a single render target the array length will be 1, for a cube texture it will be 6 and for\n * a 2D texture array it will return an array of ids the size of the 2D texture array\n */\n get renderPassIds() {\n return this._renderPassIds;\n }\n /**\n * Gets the current value of the refreshId counter\n */\n get currentRefreshId() {\n return this._currentRefreshId;\n }\n /**\n * Sets a specific material to be used to render a mesh/a list of meshes in this render target texture\n * @param mesh mesh or array of meshes\n * @param material material or array of materials to use for this render pass. If undefined is passed, no specific material will be used but the regular material instead (mesh.material). It's possible to provide an array of materials to use a different material for each rendering in the case of a cube texture (6 rendering) and a 2D texture array (as many rendering as the length of the array)\n */\n setMaterialForRendering(e, t) {\n let i;\n Array.isArray(e) ? i = e : i = [e];\n for (let s = 0; s < i.length; ++s)\n for (let r = 0; r < this._renderPassIds.length; ++r)\n i[s].setMaterialForRenderPass(this._renderPassIds[r], t !== void 0 ? Array.isArray(t) ? t[r] : t : void 0);\n }\n /**\n * Define if the texture has multiple draw buffers or if false a single draw buffer.\n */\n get isMulti() {\n var e;\n return ((e = this._renderTarget) == null ? void 0 : e.isMulti) ?? !1;\n }\n /**\n * Gets render target creation options that were used.\n */\n get renderTargetOptions() {\n return this._renderTargetOptions;\n }\n /**\n * Gets the render target wrapper associated with this render target\n */\n get renderTarget() {\n return this._renderTarget;\n }\n _onRatioRescale() {\n this._sizeRatio && this.resize(this._initialSizeParameter);\n }\n /**\n * Gets or sets the size of the bounding box associated with the texture (when in cube mode)\n * When defined, the cubemap will switch to local mode\n * @see https://community.arm.com/graphics/b/blog/posts/reflections-based-on-local-cubemaps-in-unity\n * @example https://www.babylonjs-playground.com/#RNASML\n */\n set boundingBoxSize(e) {\n if (this._boundingBoxSize && this._boundingBoxSize.equals(e))\n return;\n this._boundingBoxSize = e;\n const t = this.getScene();\n t && t.markAllMaterialsAsDirty(1);\n }\n get boundingBoxSize() {\n return this._boundingBoxSize;\n }\n /**\n * In case the RTT has been created with a depth texture, get the associated\n * depth texture.\n * Otherwise, return null.\n */\n get depthStencilTexture() {\n var e;\n return ((e = this._renderTarget) == null ? void 0 : e._depthStencilTexture) ?? null;\n }\n /** @internal */\n constructor(e, t, i, s = !1, r = !0, n = 0, o = !1, l = X.TRILINEAR_SAMPLINGMODE, h = !0, c = !1, u = !1, d = 5, f = !1, p, _, m = !1, x = !1) {\n let v, T = !0;\n if (typeof s == \"object\") {\n const b = s;\n s = !!b.generateMipMaps, r = b.doNotChangeAspectRatio ?? !0, n = b.type ?? 0, o = !!b.isCube, l = b.samplingMode ?? X.TRILINEAR_SAMPLINGMODE, h = b.generateDepthBuffer ?? !0, c = !!b.generateStencilBuffer, u = !!b.isMulti, d = b.format ?? 5, f = !!b.delayAllocation, p = b.samples, _ = b.creationFlags, m = !!b.noColorAttachment, x = !!b.useSRGBBuffer, v = b.colorAttachment, T = b.gammaSpace ?? T;\n }\n if (super(null, i, !s, void 0, l, void 0, void 0, void 0, void 0, d), this._unObserveRenderList = null, this._renderListHasChanged = (b, S) => {\n var P;\n const C = this._renderList ? this._renderList.length : 0;\n (S === 0 && C > 0 || C === 0) && ((P = this.getScene()) == null || P.meshes.forEach((N) => {\n N._markSubMeshesAsLightDirty();\n }));\n }, this.renderParticles = !0, this.renderSprites = !1, this.forceLayerMaskCheck = !1, this.ignoreCameraViewport = !1, this.onBeforeBindObservable = new G(), this.onAfterUnbindObservable = new G(), this.onBeforeRenderObservable = new G(), this.onAfterRenderObservable = new G(), this.onClearObservable = new G(), this.onResizeObservable = new G(), this._cleared = !1, this.skipInitialClear = !1, this._currentRefreshId = -1, this._refreshRate = 1, this._samples = 1, this._canRescale = !0, this._renderTarget = null, this.boundingBoxPosition = g.Zero(), i = this.getScene(), !i)\n return;\n const E = this.getScene().getEngine();\n this._gammaSpace = T, this._coordinatesMode = X.PROJECTION_MODE, this.renderList = [], this.name = e, this.isRenderTarget = !0, this._initialSizeParameter = t, this._renderPassIds = [], this._isCubeData = o, this._processSizeParameter(t), this.renderPassId = this._renderPassIds[0], this._resizeObserver = E.onResizeObservable.add(() => {\n }), this._generateMipMaps = !!s, this._doNotChangeAspectRatio = r, this._renderingManager = new Ys(i), this._renderingManager._useSceneAutoClearSetup = !0, !u && (this._renderTargetOptions = {\n generateMipMaps: s,\n type: n,\n format: this._format ?? void 0,\n samplingMode: this.samplingMode,\n generateDepthBuffer: h,\n generateStencilBuffer: c,\n samples: p,\n creationFlags: _,\n noColorAttachment: m,\n useSRGBBuffer: x,\n colorAttachment: v,\n label: this.name\n }, this.samplingMode === X.NEAREST_SAMPLINGMODE && (this.wrapU = X.CLAMP_ADDRESSMODE, this.wrapV = X.CLAMP_ADDRESSMODE), f || (o ? (this._renderTarget = i.getEngine().createRenderTargetCubeTexture(this.getRenderSize(), this._renderTargetOptions), this.coordinatesMode = X.INVCUBIC_MODE, this._textureMatrix = O.Identity()) : this._renderTarget = i.getEngine().createRenderTargetTexture(this._size, this._renderTargetOptions), this._texture = this._renderTarget.texture, p !== void 0 && (this.samples = p)));\n }\n /**\n * Creates a depth stencil texture.\n * This is only available in WebGL 2 or with the depth texture extension available.\n * @param comparisonFunction Specifies the comparison function to set on the texture. If 0 or undefined, the texture is not in comparison mode (default: 0)\n * @param bilinearFiltering Specifies whether or not bilinear filtering is enable on the texture (default: true)\n * @param generateStencil Specifies whether or not a stencil should be allocated in the texture (default: false)\n * @param samples sample count of the depth/stencil texture (default: 1)\n * @param format format of the depth texture (default: 14)\n * @param label defines the label of the texture (for debugging purpose)\n */\n createDepthStencilTexture(e = 0, t = !0, i = !1, s = 1, r = 14, n) {\n var o;\n (o = this._renderTarget) == null || o.createDepthStencilTexture(e, t, i, s, r, n);\n }\n _releaseRenderPassId() {\n if (this._scene) {\n const e = this._scene.getEngine();\n for (let t = 0; t < this._renderPassIds.length; ++t)\n e.releaseRenderPassId(this._renderPassIds[t]);\n }\n this._renderPassIds = [];\n }\n _createRenderPassId() {\n this._releaseRenderPassId();\n const e = this._scene.getEngine(), t = this._isCubeData ? 6 : this.getRenderLayers() || 1;\n for (let i = 0; i < t; ++i)\n this._renderPassIds[i] = e.createRenderPassId(`RenderTargetTexture - ${this.name}#${i}`);\n }\n _processSizeParameter(e, t = !0) {\n if (e.ratio) {\n this._sizeRatio = e.ratio;\n const i = this._getEngine();\n this._size = {\n width: this._bestReflectionRenderTargetDimension(i.getRenderWidth(), this._sizeRatio),\n height: this._bestReflectionRenderTargetDimension(i.getRenderHeight(), this._sizeRatio)\n };\n } else\n this._size = e;\n t && this._createRenderPassId();\n }\n /**\n * Define the number of samples to use in case of MSAA.\n * It defaults to one meaning no MSAA has been enabled.\n */\n get samples() {\n var e;\n return ((e = this._renderTarget) == null ? void 0 : e.samples) ?? this._samples;\n }\n set samples(e) {\n this._renderTarget && (this._samples = this._renderTarget.setSamples(e));\n }\n /**\n * Resets the refresh counter of the texture and start bak from scratch.\n * Could be useful to regenerate the texture if it is setup to render only once.\n */\n resetRefreshCounter() {\n this._currentRefreshId = -1;\n }\n /**\n * Define the refresh rate of the texture or the rendering frequency.\n * Use 0 to render just once, 1 to render on every frame, 2 to render every two frames and so on...\n */\n get refreshRate() {\n return this._refreshRate;\n }\n set refreshRate(e) {\n this._refreshRate = e, this.resetRefreshCounter();\n }\n /**\n * Adds a post process to the render target rendering passes.\n * @param postProcess define the post process to add\n */\n addPostProcess(e) {\n if (!this._postProcessManager) {\n const t = this.getScene();\n if (!t)\n return;\n this._postProcessManager = new wp(t), this._postProcesses = new Array();\n }\n this._postProcesses.push(e), this._postProcesses[0].autoClear = !1;\n }\n /**\n * Clear all the post processes attached to the render target\n * @param dispose define if the cleared post processes should also be disposed (false by default)\n */\n clearPostProcesses(e = !1) {\n if (this._postProcesses) {\n if (e)\n for (const t of this._postProcesses)\n t.dispose();\n this._postProcesses = [];\n }\n }\n /**\n * Remove one of the post process from the list of attached post processes to the texture\n * @param postProcess define the post process to remove from the list\n */\n removePostProcess(e) {\n if (!this._postProcesses)\n return;\n const t = this._postProcesses.indexOf(e);\n t !== -1 && (this._postProcesses.splice(t, 1), this._postProcesses.length > 0 && (this._postProcesses[0].autoClear = !1));\n }\n /** @internal */\n _shouldRender() {\n return this._currentRefreshId === -1 ? (this._currentRefreshId = 1, !0) : this.refreshRate === this._currentRefreshId ? (this._currentRefreshId = 1, !0) : (this._currentRefreshId++, !1);\n }\n /**\n * Gets the actual render size of the texture.\n * @returns the width of the render size\n */\n getRenderSize() {\n return this.getRenderWidth();\n }\n /**\n * Gets the actual render width of the texture.\n * @returns the width of the render size\n */\n getRenderWidth() {\n return this._size.width ? this._size.width : this._size;\n }\n /**\n * Gets the actual render height of the texture.\n * @returns the height of the render size\n */\n getRenderHeight() {\n return this._size.width ? this._size.height : this._size;\n }\n /**\n * Gets the actual number of layers of the texture or, in the case of a 3D texture, return the depth.\n * @returns the number of layers\n */\n getRenderLayers() {\n const e = this._size.layers;\n if (e)\n return e;\n const t = this._size.depth;\n return t || 0;\n }\n /**\n * Don't allow this render target texture to rescale. Mainly used to prevent rescaling by the scene optimizer.\n */\n disableRescaling() {\n this._canRescale = !1;\n }\n /**\n * Get if the texture can be rescaled or not.\n */\n get canRescale() {\n return this._canRescale;\n }\n /**\n * Resize the texture using a ratio.\n * @param ratio the ratio to apply to the texture size in order to compute the new target size\n */\n scale(e) {\n const t = Math.max(1, this.getRenderSize() * e);\n this.resize(t);\n }\n /**\n * Get the texture reflection matrix used to rotate/transform the reflection.\n * @returns the reflection matrix\n */\n getReflectionTextureMatrix() {\n return this.isCube ? this._textureMatrix : super.getReflectionTextureMatrix();\n }\n /**\n * Resize the texture to a new desired size.\n * Be careful as it will recreate all the data in the new texture.\n * @param size Define the new size. It can be:\n * - a number for squared texture,\n * - an object containing { width: number, height: number }\n * - or an object containing a ratio { ratio: number }\n */\n resize(e) {\n var s;\n const t = this.isCube;\n (s = this._renderTarget) == null || s.dispose(), this._renderTarget = null;\n const i = this.getScene();\n i && (this._processSizeParameter(e, !1), t ? this._renderTarget = i.getEngine().createRenderTargetCubeTexture(this.getRenderSize(), this._renderTargetOptions) : this._renderTarget = i.getEngine().createRenderTargetTexture(this._size, this._renderTargetOptions), this._texture = this._renderTarget.texture, this._renderTargetOptions.samples !== void 0 && (this.samples = this._renderTargetOptions.samples), this.onResizeObservable.hasObservers() && this.onResizeObservable.notifyObservers(this));\n }\n /**\n * Renders all the objects from the render list into the texture.\n * @param useCameraPostProcess Define if camera post processes should be used during the rendering\n * @param dumpForDebug Define if the rendering result should be dumped (copied) for debugging purpose\n */\n render(e = !1, t = !1) {\n this._render(e, t);\n }\n /**\n * This function will check if the render target texture can be rendered (textures are loaded, shaders are compiled)\n * @returns true if all required resources are ready\n */\n isReadyForRendering() {\n return this._render(!1, !1, !0);\n }\n _render(e = !1, t = !1, i = !1) {\n const s = this.getScene();\n if (!s)\n return i;\n const r = s.getEngine();\n if (this.useCameraPostProcesses !== void 0 && (e = this.useCameraPostProcesses), this._waitingRenderList) {\n if (!this.renderListPredicate) {\n this.renderList = [];\n for (let c = 0; c < this._waitingRenderList.length; c++) {\n const u = this._waitingRenderList[c], d = s.getMeshById(u);\n d && this.renderList.push(d);\n }\n }\n this._waitingRenderList = void 0;\n }\n if (this.renderListPredicate) {\n this.renderList ? this.renderList.length = 0 : this.renderList = [];\n const c = this.getScene();\n if (!c)\n return i;\n const u = c.meshes;\n for (let d = 0; d < u.length; d++) {\n const f = u[d];\n this.renderListPredicate(f) && this.renderList.push(f);\n }\n }\n const n = r.currentRenderPassId;\n this.onBeforeBindObservable.notifyObservers(this);\n const o = this.activeCamera ?? s.activeCamera, l = s.activeCamera;\n o && (o !== s.activeCamera && (s.setTransformMatrix(o.getViewMatrix(), o.getProjectionMatrix(!0)), s.activeCamera = o), r.setViewport(o.rigParent ? o.rigParent.viewport : o.viewport, this.getRenderWidth(), this.getRenderHeight())), this._defaultRenderListPrepared = !1;\n let h = i;\n if (i) {\n s.getViewMatrix() || s.updateTransformMatrix();\n const c = this.is2DArray || this.is3D ? this.getRenderLayers() : this.isCube ? 6 : 1;\n for (let u = 0; u < c && h; u++) {\n let d = null;\n const f = this.renderList ? this.renderList : s.getActiveMeshes().data, p = this.renderList ? this.renderList.length : s.getActiveMeshes().length;\n r.currentRenderPassId = this._renderPassIds[u], this.onBeforeRenderObservable.notifyObservers(u), this.getCustomRenderList && (d = this.getCustomRenderList(u, f, p)), d || (d = f), this._doNotChangeAspectRatio || s.updateTransformMatrix(!0);\n for (let _ = 0; _ < d.length && h; ++_) {\n const m = d[_];\n if (!(!m.isEnabled() || m.isBlocked || !m.isVisible || !m.subMeshes)) {\n if (this.customIsReadyFunction) {\n if (!this.customIsReadyFunction(m, this.refreshRate, i)) {\n h = !1;\n continue;\n }\n } else if (!m.isReady(!0)) {\n h = !1;\n continue;\n }\n }\n }\n this.onAfterRenderObservable.notifyObservers(u), (this.is2DArray || this.is3D || this.isCube) && (s.incrementRenderId(), s.resetCachedMaterial());\n }\n } else if ((this.is2DArray || this.is3D) && !this.isMulti)\n for (let c = 0; c < this.getRenderLayers(); c++)\n this._renderToTarget(0, e, t, c, o), s.incrementRenderId(), s.resetCachedMaterial();\n else if (this.isCube && !this.isMulti)\n for (let c = 0; c < 6; c++)\n this._renderToTarget(c, e, t, void 0, o), s.incrementRenderId(), s.resetCachedMaterial();\n else\n this._renderToTarget(0, e, t, void 0, o);\n return this.onAfterUnbindObservable.notifyObservers(this), r.currentRenderPassId = n, l && (s.activeCamera = l, this.activeCamera && this.activeCamera !== s.activeCamera && s.setTransformMatrix(s.activeCamera.getViewMatrix(), s.activeCamera.getProjectionMatrix(!0)), r.setViewport(s.activeCamera.viewport)), s.resetCachedMaterial(), h;\n }\n _bestReflectionRenderTargetDimension(e, t) {\n const s = e * t, r = cx(s + 128 * 128 / (128 + s));\n return Math.min(h_(e), r);\n }\n _prepareRenderingManager(e, t, i, s) {\n const r = this.getScene();\n if (!r)\n return;\n this._renderingManager.reset();\n const n = r.getRenderId();\n for (let o = 0; o < t; o++) {\n const l = e[o];\n if (l && !l.isBlocked) {\n if (this.customIsReadyFunction) {\n if (!this.customIsReadyFunction(l, this.refreshRate, !1)) {\n this.resetRefreshCounter();\n continue;\n }\n } else if (!l.isReady(this.refreshRate === 0)) {\n this.resetRefreshCounter();\n continue;\n }\n if (!l._internalAbstractMeshDataInfo._currentLODIsUpToDate && r.activeCamera && (l._internalAbstractMeshDataInfo._currentLOD = r.customLODSelector ? r.customLODSelector(l, this.activeCamera || r.activeCamera) : l.getLOD(this.activeCamera || r.activeCamera), l._internalAbstractMeshDataInfo._currentLODIsUpToDate = !0), !l._internalAbstractMeshDataInfo._currentLOD)\n continue;\n let h = l._internalAbstractMeshDataInfo._currentLOD;\n h._preActivateForIntermediateRendering(n);\n let c;\n if (s && i ? c = (l.layerMask & i.layerMask) === 0 : c = !1, l.isEnabled() && l.isVisible && l.subMeshes && !c && (h !== l && h._activate(n, !0), l._activate(n, !0) && l.subMeshes.length)) {\n l.isAnInstance ? l._internalAbstractMeshDataInfo._actAsRegularMesh && (h = l) : h._internalAbstractMeshDataInfo._onlyForInstancesIntermediate = !1, h._internalAbstractMeshDataInfo._isActiveIntermediate = !0;\n for (let u = 0; u < h.subMeshes.length; u++) {\n const d = h.subMeshes[u];\n this._renderingManager.dispatch(d, h);\n }\n }\n }\n }\n for (let o = 0; o < r.particleSystems.length; o++) {\n const l = r.particleSystems[o], h = l.emitter;\n !l.isStarted() || !h || h.position && !h.isEnabled() || this._renderingManager.dispatchParticles(l);\n }\n }\n /**\n * @internal\n * @param faceIndex face index to bind to if this is a cubetexture\n * @param layer defines the index of the texture to bind in the array\n */\n _bindFrameBuffer(e = 0, t = 0) {\n const i = this.getScene();\n if (!i)\n return;\n const s = i.getEngine();\n this._renderTarget && s.bindFramebuffer(this._renderTarget, this.isCube ? e : void 0, void 0, void 0, this.ignoreCameraViewport, 0, t);\n }\n _unbindFrameBuffer(e, t) {\n this._renderTarget && e.unBindFramebuffer(this._renderTarget, this.isCube, () => {\n this.onAfterRenderObservable.notifyObservers(t);\n });\n }\n /**\n * @internal\n */\n _prepareFrame(e, t, i, s) {\n this._postProcessManager ? this._prePassEnabled || this._postProcessManager._prepareFrame(this._texture, this._postProcesses) : (!s || !e.postProcessManager._prepareFrame(this._texture)) && this._bindFrameBuffer(t, i);\n }\n _renderToTarget(e, t, i, s = 0, r = null) {\n var h, c, u;\n const n = this.getScene();\n if (!n)\n return;\n const o = n.getEngine();\n if ((h = o._debugPushGroup) == null || h.call(o, `render to face #${e} layer #${s}`, 1), this._prepareFrame(n, e, s, t), this.is2DArray || this.is3D ? (o.currentRenderPassId = this._renderPassIds[s], this.onBeforeRenderObservable.notifyObservers(s)) : (o.currentRenderPassId = this._renderPassIds[e], this.onBeforeRenderObservable.notifyObservers(e)), o.snapshotRendering && o.snapshotRenderingMode === 1)\n this.onClearObservable.hasObservers() ? this.onClearObservable.notifyObservers(o) : this.skipInitialClear || o.clear(this.clearColor || n.clearColor, !0, !0, !0);\n else {\n let d = null;\n const f = this.renderList ? this.renderList : n.getActiveMeshes().data, p = this.renderList ? this.renderList.length : n.getActiveMeshes().length;\n this.getCustomRenderList && (d = this.getCustomRenderList(this.is2DArray || this.is3D ? s : e, f, p)), d ? this._prepareRenderingManager(d, d.length, r, this.forceLayerMaskCheck) : (this._defaultRenderListPrepared || (this._prepareRenderingManager(f, p, r, !this.renderList || this.forceLayerMaskCheck), this._defaultRenderListPrepared = !0), d = f);\n for (const m of n._beforeRenderTargetClearStage)\n m.action(this, e, s);\n this.onClearObservable.hasObservers() ? this.onClearObservable.notifyObservers(o) : this.skipInitialClear || o.clear(this.clearColor || n.clearColor, !0, !0, !0), this._doNotChangeAspectRatio || n.updateTransformMatrix(!0);\n for (const m of n._beforeRenderTargetDrawStage)\n m.action(this, e, s);\n this._renderingManager.render(this.customRenderFunction, d, this.renderParticles, this.renderSprites);\n for (const m of n._afterRenderTargetDrawStage)\n m.action(this, e, s);\n const _ = ((c = this._texture) == null ? void 0 : c.generateMipMaps) ?? !1;\n this._texture && (this._texture.generateMipMaps = !1), this._postProcessManager ? this._postProcessManager._finalizeFrame(!1, this._renderTarget ?? void 0, e, this._postProcesses, this.ignoreCameraViewport) : t && n.postProcessManager._finalizeFrame(!1, this._renderTarget ?? void 0, e);\n for (const m of n._afterRenderTargetPostProcessStage)\n m.action(this, e, s);\n this._texture && (this._texture.generateMipMaps = _), this._doNotChangeAspectRatio || n.updateTransformMatrix(!0), i && js.DumpFramebuffer(this.getRenderWidth(), this.getRenderHeight(), o);\n }\n this._unbindFrameBuffer(o, e), this._texture && this.isCube && e === 5 && o.generateMipMapsForCubemap(this._texture, !0), (u = o._debugPopGroup) == null || u.call(o, 1);\n }\n /**\n * Overrides the default sort function applied in the rendering group to prepare the meshes.\n * This allowed control for front to back rendering or reversely depending of the special needs.\n *\n * @param renderingGroupId The rendering group id corresponding to its index\n * @param opaqueSortCompareFn The opaque queue comparison function use to sort.\n * @param alphaTestSortCompareFn The alpha test queue comparison function use to sort.\n * @param transparentSortCompareFn The transparent queue comparison function use to sort.\n */\n setRenderingOrder(e, t = null, i = null, s = null) {\n this._renderingManager.setRenderingOrder(e, t, i, s);\n }\n /**\n * Specifies whether or not the stencil and depth buffer are cleared between two rendering groups.\n *\n * @param renderingGroupId The rendering group id corresponding to its index\n * @param autoClearDepthStencil Automatically clears depth and stencil between groups if true.\n */\n setRenderingAutoClearDepthStencil(e, t) {\n this._renderingManager.setRenderingAutoClearDepthStencil(e, t), this._renderingManager._useSceneAutoClearSetup = !1;\n }\n /**\n * Clones the texture.\n * @returns the cloned texture\n */\n clone() {\n const e = this.getSize(), t = new Ii(this.name, e, this.getScene(), this._renderTargetOptions.generateMipMaps, this._doNotChangeAspectRatio, this._renderTargetOptions.type, this.isCube, this._renderTargetOptions.samplingMode, this._renderTargetOptions.generateDepthBuffer, this._renderTargetOptions.generateStencilBuffer, void 0, this._renderTargetOptions.format, void 0, this._renderTargetOptions.samples);\n return t.hasAlpha = this.hasAlpha, t.level = this.level, t.coordinatesMode = this.coordinatesMode, this.renderList && (t.renderList = this.renderList.slice(0)), t;\n }\n /**\n * Serialize the texture to a JSON representation we can easily use in the respective Parse function.\n * @returns The JSON representation of the texture\n */\n serialize() {\n if (!this.name)\n return null;\n const e = super.serialize();\n if (e.renderTargetSize = this.getRenderSize(), e.renderList = [], this.renderList)\n for (let t = 0; t < this.renderList.length; t++)\n e.renderList.push(this.renderList[t].id);\n return e;\n }\n /**\n * This will remove the attached framebuffer objects. The texture will not be able to be used as render target anymore\n */\n disposeFramebufferObjects() {\n var e;\n (e = this._renderTarget) == null || e.dispose(!0);\n }\n /**\n * Release and destroy the underlying lower level texture aka internalTexture.\n */\n releaseInternalTexture() {\n var e;\n (e = this._renderTarget) == null || e.releaseTextures(), this._texture = null;\n }\n /**\n * Dispose the texture and release its associated resources.\n */\n dispose() {\n var i;\n this.onResizeObservable.clear(), this.onClearObservable.clear(), this.onAfterRenderObservable.clear(), this.onAfterUnbindObservable.clear(), this.onBeforeBindObservable.clear(), this.onBeforeRenderObservable.clear(), this._postProcessManager && (this._postProcessManager.dispose(), this._postProcessManager = null), this._prePassRenderTarget && this._prePassRenderTarget.dispose(), this._releaseRenderPassId(), this.clearPostProcesses(!0), this._resizeObserver && (this.getScene().getEngine().onResizeObservable.remove(this._resizeObserver), this._resizeObserver = null), this.renderList = null;\n const e = this.getScene();\n if (!e)\n return;\n let t = e.customRenderTargets.indexOf(this);\n t >= 0 && e.customRenderTargets.splice(t, 1);\n for (const s of e.cameras)\n t = s.customRenderTargets.indexOf(this), t >= 0 && s.customRenderTargets.splice(t, 1);\n (i = this._renderTarget) == null || i.dispose(), this._renderTarget = null, this._texture = null, super.dispose();\n }\n /** @internal */\n _rebuild() {\n this.refreshRate === Ii.REFRESHRATE_RENDER_ONCE && (this.refreshRate = Ii.REFRESHRATE_RENDER_ONCE), this._postProcessManager && this._postProcessManager._rebuild();\n }\n /**\n * Clear the info related to rendering groups preventing retention point in material dispose.\n */\n freeRenderingGroups() {\n this._renderingManager && this._renderingManager.freeRenderingGroups();\n }\n /**\n * Gets the number of views the corresponding to the texture (eg. a MultiviewRenderTarget will have > 1)\n * @returns the view count\n */\n getViewCount() {\n return 1;\n }\n}\nIi.REFRESHRATE_RENDER_ONCE = 0;\nIi.REFRESHRATE_RENDER_ONEVERYFRAME = 1;\nIi.REFRESHRATE_RENDER_ONEVERYTWOFRAMES = 2;\nX._CreateRenderTargetTexture = (a, e, t, i, s) => new Ii(a, e, t, i);\nwe.prototype.setTextureFromPostProcess = function(a, e, t) {\n let i = null;\n e && (e._forcedOutputTexture ? i = e._forcedOutputTexture : e._textures.data[e._currentRenderTextureInd] && (i = e._textures.data[e._currentRenderTextureInd])), this._bindTexture(a, (i == null ? void 0 : i.texture) ?? null, t);\n};\nwe.prototype.setTextureFromPostProcessOutput = function(a, e, t) {\n var i;\n this._bindTexture(a, ((i = e == null ? void 0 : e._outputTexture) == null ? void 0 : i.texture) ?? null, t);\n};\nsi.prototype.setTextureFromPostProcess = function(a, e) {\n this._engine.setTextureFromPostProcess(this._samplers[a], e, a);\n};\nsi.prototype.setTextureFromPostProcessOutput = function(a, e) {\n this._engine.setTextureFromPostProcessOutput(this._samplers[a], e, a);\n};\nclass Be {\n /**\n * Registers a shader code processing with a post process name.\n * @param postProcessName name of the post process. Use null for the fallback shader code processing. This is the shader code processing that will be used in case no specific shader code processing has been associated to a post process name\n * @param customShaderCodeProcessing shader code processing to associate to the post process name\n */\n static RegisterShaderCodeProcessing(e, t) {\n if (!t) {\n delete Be._CustomShaderCodeProcessing[e ?? \"\"];\n return;\n }\n Be._CustomShaderCodeProcessing[e ?? \"\"] = t;\n }\n static _GetShaderCodeProcessing(e) {\n return Be._CustomShaderCodeProcessing[e] ?? Be._CustomShaderCodeProcessing[\"\"];\n }\n /**\n * Number of sample textures (default: 1)\n */\n get samples() {\n return this._samples;\n }\n set samples(e) {\n this._samples = Math.min(e, this._engine.getCaps().maxMSAASamples), this._textures.forEach((t) => {\n t.setSamples(this._samples);\n });\n }\n /**\n * Returns the fragment url or shader name used in the post process.\n * @returns the fragment url or name in the shader store.\n */\n getEffectName() {\n return this._fragmentUrl;\n }\n /**\n * A function that is added to the onActivateObservable\n */\n set onActivate(e) {\n this._onActivateObserver && this.onActivateObservable.remove(this._onActivateObserver), e && (this._onActivateObserver = this.onActivateObservable.add(e));\n }\n /**\n * A function that is added to the onSizeChangedObservable\n */\n set onSizeChanged(e) {\n this._onSizeChangedObserver && this.onSizeChangedObservable.remove(this._onSizeChangedObserver), this._onSizeChangedObserver = this.onSizeChangedObservable.add(e);\n }\n /**\n * A function that is added to the onApplyObservable\n */\n set onApply(e) {\n this._onApplyObserver && this.onApplyObservable.remove(this._onApplyObserver), this._onApplyObserver = this.onApplyObservable.add(e);\n }\n /**\n * A function that is added to the onBeforeRenderObservable\n */\n set onBeforeRender(e) {\n this._onBeforeRenderObserver && this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver), this._onBeforeRenderObserver = this.onBeforeRenderObservable.add(e);\n }\n /**\n * A function that is added to the onAfterRenderObservable\n */\n set onAfterRender(e) {\n this._onAfterRenderObserver && this.onAfterRenderObservable.remove(this._onAfterRenderObserver), this._onAfterRenderObserver = this.onAfterRenderObservable.add(e);\n }\n /**\n * The input texture for this post process and the output texture of the previous post process. When added to a pipeline the previous post process will\n * render it's output into this texture and this texture will be used as textureSampler in the fragment shader of this post process.\n */\n get inputTexture() {\n return this._textures.data[this._currentRenderTextureInd];\n }\n set inputTexture(e) {\n this._forcedOutputTexture = e;\n }\n /**\n * Since inputTexture should always be defined, if we previously manually set `inputTexture`,\n * the only way to unset it is to use this function to restore its internal state\n */\n restoreDefaultInputTexture() {\n this._forcedOutputTexture && (this._forcedOutputTexture = null, this.markTextureDirty());\n }\n /**\n * Gets the camera which post process is applied to.\n * @returns The camera the post process is applied to.\n */\n getCamera() {\n return this._camera;\n }\n /**\n * Gets the texel size of the postprocess.\n * See https://en.wikipedia.org/wiki/Texel_(graphics)\n */\n get texelSize() {\n return this._shareOutputWithPostProcess ? this._shareOutputWithPostProcess.texelSize : (this._forcedOutputTexture && this._texelSize.copyFromFloats(1 / this._forcedOutputTexture.width, 1 / this._forcedOutputTexture.height), this._texelSize);\n }\n /** @internal */\n constructor(e, t, i, s, r, n, o = 1, l, h, c = null, u = 0, d = \"postprocess\", f, p = !1, _ = 5, m = 0) {\n this._parentContainer = null, this.width = -1, this.height = -1, this.nodeMaterialSource = null, this._outputTexture = null, this.autoClear = !0, this.forceAutoClearInAlphaMode = !1, this.alphaMode = 0, this.animations = [], this.enablePixelPerfectMode = !1, this.forceFullscreenViewport = !0, this.scaleMode = 1, this.alwaysForcePOT = !1, this._samples = 1, this.adaptScaleToCurrentViewport = !1, this._reusable = !1, this._renderId = 0, this.externalTextureSamplerBinding = !1, this._textures = new fs(2), this._textureCache = [], this._currentRenderTextureInd = 0, this._scaleRatio = new Q(1, 1), this._texelSize = Q.Zero(), this.onActivateObservable = new G(), this.onSizeChangedObservable = new G(), this.onApplyObservable = new G(), this.onBeforeRenderObservable = new G(), this.onAfterRenderObservable = new G(), this.name = e;\n let x = 1, v = null;\n if (i && !Array.isArray(i)) {\n const T = i;\n i = T.uniforms ?? null, s = T.samplers ?? null, x = T.size ?? 1, n = T.camera ?? null, o = T.samplingMode ?? 1, l = T.engine, h = T.reusable, c = T.defines ?? null, u = T.textureType ?? 0, d = T.vertexUrl ?? \"postprocess\", f = T.indexParameters, p = T.blockCompilation ?? !1, _ = T.textureFormat ?? 5, m = T.shaderLanguage ?? 0, v = T.uniformBuffers ?? null;\n } else r && (typeof r == \"number\" ? x = r : x = { width: r.width, height: r.height });\n n != null ? (this._camera = n, this._scene = n.getScene(), n.attachPostProcess(this), this._engine = this._scene.getEngine(), this._scene.postProcesses.push(this), this.uniqueId = this._scene.getUniqueId()) : l && (this._engine = l, this._engine.postProcesses.push(this)), this._options = x, this.renderTargetSamplingMode = o || 1, this._reusable = h || !1, this._textureType = u, this._textureFormat = _, this._shaderLanguage = m, this._samplers = s || [], this._samplers.push(\"textureSampler\"), this._fragmentUrl = t, this._vertexUrl = d, this._parameters = i || [], this._parameters.push(\"scale\"), this._uniformBuffers = v || [], this._indexParameters = f, this._drawWrapper = new Ds(this._engine), p || this.updateEffect(c);\n }\n /**\n * Gets a string identifying the name of the class\n * @returns \"PostProcess\" string\n */\n getClassName() {\n return \"PostProcess\";\n }\n /**\n * Gets the engine which this post process belongs to.\n * @returns The engine the post process was enabled with.\n */\n getEngine() {\n return this._engine;\n }\n /**\n * The effect that is created when initializing the post process.\n * @returns The created effect corresponding the postprocess.\n */\n getEffect() {\n return this._drawWrapper.effect;\n }\n /**\n * To avoid multiple redundant textures for multiple post process, the output the output texture for this post process can be shared with another.\n * @param postProcess The post process to share the output with.\n * @returns This post process.\n */\n shareOutputWith(e) {\n return this._disposeTextures(), this._shareOutputWithPostProcess = e, this;\n }\n /**\n * Reverses the effect of calling shareOutputWith and returns the post process back to its original state.\n * This should be called if the post process that shares output with this post process is disabled/disposed.\n */\n useOwnOutput() {\n this._textures.length == 0 && (this._textures = new fs(2)), this._shareOutputWithPostProcess = null;\n }\n /**\n * Updates the effect with the current post process compile time values and recompiles the shader.\n * @param defines Define statements that should be added at the beginning of the shader. (default: null)\n * @param uniforms Set of uniform variables that will be passed to the shader. (default: null)\n * @param samplers Set of Texture2D variables that will be passed to the shader. (default: null)\n * @param indexParameters The index parameters to be used for babylons include syntax \"#include[0..varyingCount]\". (default: undefined) See usage in babylon.blurPostProcess.ts and kernelBlur.vertex.fx\n * @param onCompiled Called when the shader has been compiled.\n * @param onError Called if there is an error when compiling a shader.\n * @param vertexUrl The url of the vertex shader to be used (default: the one given at construction time)\n * @param fragmentUrl The url of the fragment shader to be used (default: the one given at construction time)\n */\n updateEffect(e = null, t = null, i = null, s, r, n, o, l) {\n const h = Be._GetShaderCodeProcessing(this.name);\n if (h != null && h.defineCustomBindings) {\n const c = (t == null ? void 0 : t.slice()) ?? [];\n c.push(...this._parameters);\n const u = (i == null ? void 0 : i.slice()) ?? [];\n u.push(...this._samplers), e = h.defineCustomBindings(this.name, e, c, u), t = c, i = u;\n }\n this._postProcessDefines = e, this._drawWrapper.effect = this._engine.createEffect({ vertex: o ?? this._vertexUrl, fragment: l ?? this._fragmentUrl }, {\n attributes: [\"position\"],\n uniformsNames: t || this._parameters,\n uniformBuffersNames: this._uniformBuffers,\n samplers: i || this._samplers,\n defines: e !== null ? e : \"\",\n fallbacks: null,\n onCompiled: r ?? null,\n onError: n ?? null,\n indexParameters: s || this._indexParameters,\n processCodeAfterIncludes: h != null && h.processCodeAfterIncludes ? (c, u) => h.processCodeAfterIncludes(this.name, c, u) : null,\n processFinalCode: h != null && h.processFinalCode ? (c, u) => h.processFinalCode(this.name, c, u) : null,\n shaderLanguage: this._shaderLanguage\n }, this._engine);\n }\n /**\n * The post process is reusable if it can be used multiple times within one frame.\n * @returns If the post process is reusable\n */\n isReusable() {\n return this._reusable;\n }\n /** invalidate frameBuffer to hint the postprocess to create a depth buffer */\n markTextureDirty() {\n this.width = -1;\n }\n _createRenderTargetTexture(e, t, i = 0) {\n for (let r = 0; r < this._textureCache.length; r++)\n if (this._textureCache[r].texture.width === e.width && this._textureCache[r].texture.height === e.height && this._textureCache[r].postProcessChannel === i && this._textureCache[r].texture._generateDepthBuffer === t.generateDepthBuffer && this._textureCache[r].texture.samples === t.samples)\n return this._textureCache[r].texture;\n const s = this._engine.createRenderTargetTexture(e, t);\n return this._textureCache.push({ texture: s, postProcessChannel: i, lastUsedRenderId: -1 }), s;\n }\n _flushTextureCache() {\n const e = this._renderId;\n for (let t = this._textureCache.length - 1; t >= 0; t--)\n if (e - this._textureCache[t].lastUsedRenderId > 100) {\n let i = !1;\n for (let s = 0; s < this._textures.length; s++)\n if (this._textures.data[s] === this._textureCache[t].texture) {\n i = !0;\n break;\n }\n i || (this._textureCache[t].texture.dispose(), this._textureCache.splice(t, 1));\n }\n }\n /**\n * Resizes the post-process texture\n * @param width Width of the texture\n * @param height Height of the texture\n * @param camera The camera this post-process is applied to. Pass null if the post-process is used outside the context of a camera post-process chain (default: null)\n * @param needMipMaps True if mip maps need to be generated after render (default: false)\n * @param forceDepthStencil True to force post-process texture creation with stencil depth and buffer (default: false)\n */\n resize(e, t, i = null, s = !1, r = !1) {\n this._textures.length > 0 && this._textures.reset(), this.width = e, this.height = t;\n let n = null;\n if (i) {\n for (let h = 0; h < i._postProcesses.length; h++)\n if (i._postProcesses[h] !== null) {\n n = i._postProcesses[h];\n break;\n }\n }\n const o = { width: this.width, height: this.height }, l = {\n generateMipMaps: s,\n generateDepthBuffer: r || n === this,\n generateStencilBuffer: (r || n === this) && this._engine.isStencilEnable,\n samplingMode: this.renderTargetSamplingMode,\n type: this._textureType,\n format: this._textureFormat,\n samples: this._samples,\n label: \"PostProcessRTT-\" + this.name\n };\n this._textures.push(this._createRenderTargetTexture(o, l, 0)), this._reusable && this._textures.push(this._createRenderTargetTexture(o, l, 1)), this._texelSize.copyFromFloats(1 / this.width, 1 / this.height), this.onSizeChangedObservable.notifyObservers(this);\n }\n _getTarget() {\n let e;\n if (this._shareOutputWithPostProcess)\n e = this._shareOutputWithPostProcess.inputTexture;\n else if (this._forcedOutputTexture)\n e = this._forcedOutputTexture, this.width = this._forcedOutputTexture.width, this.height = this._forcedOutputTexture.height;\n else {\n e = this.inputTexture;\n let t;\n for (let i = 0; i < this._textureCache.length; i++)\n if (this._textureCache[i].texture === e) {\n t = this._textureCache[i];\n break;\n }\n t && (t.lastUsedRenderId = this._renderId);\n }\n return e;\n }\n /**\n * Activates the post process by intializing the textures to be used when executed. Notifies onActivateObservable.\n * When this post process is used in a pipeline, this is call will bind the input texture of this post process to the output of the previous.\n * @param camera The camera that will be used in the post process. This camera will be used when calling onActivateObservable.\n * @param sourceTexture The source texture to be inspected to get the width and height if not specified in the post process constructor. (default: null)\n * @param forceDepthStencil If true, a depth and stencil buffer will be generated. (default: false)\n * @returns The render target wrapper that was bound to be written to.\n */\n activate(e, t = null, i) {\n var f, p;\n e = e || this._camera;\n const s = e.getScene(), r = s.getEngine(), n = r.getCaps().maxTextureSize, o = (t ? t.width : this._engine.getRenderWidth(!0)) * this._options | 0, l = (t ? t.height : this._engine.getRenderHeight(!0)) * this._options | 0;\n let h = this._options.width || o, c = this._options.height || l;\n const u = this.renderTargetSamplingMode !== 7 && this.renderTargetSamplingMode !== 1 && this.renderTargetSamplingMode !== 2;\n let d = null;\n if (!this._shareOutputWithPostProcess && !this._forcedOutputTexture) {\n if (this.adaptScaleToCurrentViewport) {\n const _ = r.currentViewport;\n _ && (h *= _.width, c *= _.height);\n }\n (u || this.alwaysForcePOT) && (this._options.width || (h = r.needPOTTextures ? Dr(h, n, this.scaleMode) : h), this._options.height || (c = r.needPOTTextures ? Dr(c, n, this.scaleMode) : c)), (this.width !== h || this.height !== c || !(d = this._getTarget())) && this.resize(h, c, e, u, i), this._textures.forEach((_) => {\n _.samples !== this.samples && this._engine.updateRenderTargetTextureSampleCount(_, this.samples);\n }), this._flushTextureCache(), this._renderId++;\n }\n return d || (d = this._getTarget()), this.enablePixelPerfectMode ? (this._scaleRatio.copyFromFloats(o / h, l / c), this._engine.bindFramebuffer(d, 0, o, l, this.forceFullscreenViewport)) : (this._scaleRatio.copyFromFloats(1, 1), this._engine.bindFramebuffer(d, 0, void 0, void 0, this.forceFullscreenViewport)), (p = (f = this._engine)._debugInsertMarker) == null || p.call(f, `post process ${this.name} input`), this.onActivateObservable.notifyObservers(e), this.autoClear && (this.alphaMode === 0 || this.forceAutoClearInAlphaMode) && this._engine.clear(this.clearColor ? this.clearColor : s.clearColor, s._allowPostProcessClearColor, !0, !0), this._reusable && (this._currentRenderTextureInd = (this._currentRenderTextureInd + 1) % 2), d;\n }\n /**\n * If the post process is supported.\n */\n get isSupported() {\n return this._drawWrapper.effect.isSupported;\n }\n /**\n * The aspect ratio of the output texture.\n */\n get aspectRatio() {\n return this._shareOutputWithPostProcess ? this._shareOutputWithPostProcess.aspectRatio : this._forcedOutputTexture ? this._forcedOutputTexture.width / this._forcedOutputTexture.height : this.width / this.height;\n }\n /**\n * Get a value indicating if the post-process is ready to be used\n * @returns true if the post-process is ready (shader is compiled)\n */\n isReady() {\n var e;\n return ((e = this._drawWrapper.effect) == null ? void 0 : e.isReady()) ?? !1;\n }\n /**\n * Binds all textures and uniforms to the shader, this will be run on every pass.\n * @returns the effect corresponding to this post process. Null if not compiled or not ready.\n */\n apply() {\n var t, i, s;\n if (!((t = this._drawWrapper.effect) != null && t.isReady()))\n return null;\n this._engine.enableEffect(this._drawWrapper), this._engine.setState(!1), this._engine.setDepthBuffer(!1), this._engine.setDepthWrite(!1), this._engine.setAlphaMode(this.alphaMode), this.alphaConstants && this.getEngine().setAlphaConstants(this.alphaConstants.r, this.alphaConstants.g, this.alphaConstants.b, this.alphaConstants.a);\n let e;\n return this._shareOutputWithPostProcess ? e = this._shareOutputWithPostProcess.inputTexture : this._forcedOutputTexture ? e = this._forcedOutputTexture : e = this.inputTexture, this.externalTextureSamplerBinding || this._drawWrapper.effect._bindTexture(\"textureSampler\", e == null ? void 0 : e.texture), this._drawWrapper.effect.setVector2(\"scale\", this._scaleRatio), this.onApplyObservable.notifyObservers(this._drawWrapper.effect), (s = (i = Be._GetShaderCodeProcessing(this.name)) == null ? void 0 : i.bindCustomBindings) == null || s.call(i, this.name, this._drawWrapper.effect), this._drawWrapper.effect;\n }\n _disposeTextures() {\n if (this._shareOutputWithPostProcess || this._forcedOutputTexture) {\n this._disposeTextureCache();\n return;\n }\n this._disposeTextureCache(), this._textures.dispose();\n }\n _disposeTextureCache() {\n for (let e = this._textureCache.length - 1; e >= 0; e--)\n this._textureCache[e].texture.dispose();\n this._textureCache.length = 0;\n }\n /**\n * Sets the required values to the prepass renderer.\n * @param prePassRenderer defines the prepass renderer to setup.\n * @returns true if the pre pass is needed.\n */\n setPrePassRenderer(e) {\n return this._prePassEffectConfiguration ? (this._prePassEffectConfiguration = e.addEffectConfiguration(this._prePassEffectConfiguration), this._prePassEffectConfiguration.enabled = !0, !0) : !1;\n }\n /**\n * Disposes the post process.\n * @param camera The camera to dispose the post process on.\n */\n dispose(e) {\n e = e || this._camera, this._disposeTextures();\n let t;\n if (this._scene && (t = this._scene.postProcesses.indexOf(this), t !== -1 && this._scene.postProcesses.splice(t, 1)), this._parentContainer) {\n const i = this._parentContainer.postProcesses.indexOf(this);\n i > -1 && this._parentContainer.postProcesses.splice(i, 1), this._parentContainer = null;\n }\n if (t = this._engine.postProcesses.indexOf(this), t !== -1 && this._engine.postProcesses.splice(t, 1), !!e) {\n if (e.detachPostProcess(this), t = e._postProcesses.indexOf(this), t === 0 && e._postProcesses.length > 0) {\n const i = this._camera._getFirstPostProcess();\n i && i.markTextureDirty();\n }\n this.onActivateObservable.clear(), this.onAfterRenderObservable.clear(), this.onApplyObservable.clear(), this.onBeforeRenderObservable.clear(), this.onSizeChangedObservable.clear();\n }\n }\n /**\n * Serializes the post process to a JSON object\n * @returns the JSON object\n */\n serialize() {\n const e = Ae.Serialize(this), t = this.getCamera() || this._scene && this._scene.activeCamera;\n return e.customType = \"BABYLON.\" + this.getClassName(), e.cameraId = t ? t.id : null, e.reusable = this._reusable, e.textureType = this._textureType, e.fragmentUrl = this._fragmentUrl, e.parameters = this._parameters, e.samplers = this._samplers, e.options = this._options, e.defines = this._postProcessDefines, e.textureFormat = this._textureFormat, e.vertexUrl = this._vertexUrl, e.indexParameters = this._indexParameters, e;\n }\n /**\n * Clones this post process\n * @returns a new post process similar to this one\n */\n clone() {\n const e = this.serialize();\n e._engine = this._engine, e.cameraId = null;\n const t = Be.Parse(e, this._scene, \"\");\n return t ? (t.onActivateObservable = this.onActivateObservable.clone(), t.onSizeChangedObservable = this.onSizeChangedObservable.clone(), t.onApplyObservable = this.onApplyObservable.clone(), t.onBeforeRenderObservable = this.onBeforeRenderObservable.clone(), t.onAfterRenderObservable = this.onAfterRenderObservable.clone(), t._prePassEffectConfiguration = this._prePassEffectConfiguration, t) : null;\n }\n /**\n * Creates a material from parsed material data\n * @param parsedPostProcess defines parsed post process data\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures\n * @returns a new post process\n */\n static Parse(e, t, i) {\n const s = Oi(e.customType);\n if (!s || !s._Parse)\n return null;\n const r = t ? t.getCameraById(e.cameraId) : null;\n return s._Parse(e, r, t, i);\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new Be(e.name, e.fragmentUrl, e.parameters, e.samplers, e.options, t, e.renderTargetSamplingMode, e._engine, e.reusable, e.defines, e.textureType, e.vertexUrl, e.indexParameters, !1, e.textureFormat), e, i, s);\n }\n}\nBe._CustomShaderCodeProcessing = {};\ny([\n I()\n], Be.prototype, \"uniqueId\", void 0);\ny([\n I()\n], Be.prototype, \"name\", void 0);\ny([\n I()\n], Be.prototype, \"width\", void 0);\ny([\n I()\n], Be.prototype, \"height\", void 0);\ny([\n I()\n], Be.prototype, \"renderTargetSamplingMode\", void 0);\ny([\n Ex()\n], Be.prototype, \"clearColor\", void 0);\ny([\n I()\n], Be.prototype, \"autoClear\", void 0);\ny([\n I()\n], Be.prototype, \"forceAutoClearInAlphaMode\", void 0);\ny([\n I()\n], Be.prototype, \"alphaMode\", void 0);\ny([\n I()\n], Be.prototype, \"alphaConstants\", void 0);\ny([\n I()\n], Be.prototype, \"enablePixelPerfectMode\", void 0);\ny([\n I()\n], Be.prototype, \"forceFullscreenViewport\", void 0);\ny([\n I()\n], Be.prototype, \"scaleMode\", void 0);\ny([\n I()\n], Be.prototype, \"alwaysForcePOT\", void 0);\ny([\n I(\"samples\")\n], Be.prototype, \"_samples\", void 0);\ny([\n I()\n], Be.prototype, \"adaptScaleToCurrentViewport\", void 0);\nU(\"BABYLON.PostProcess\", Be);\nconst _O = \"passCubePixelShader\", mO = `varying vec2 vUV;uniform samplerCube textureSampler;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{vec2 uv=vUV*2.0-1.0;\n#ifdef POSITIVEX\ngl_FragColor=textureCube(textureSampler,vec3(1.001,uv.y,uv.x));\n#endif\n#ifdef NEGATIVEX\ngl_FragColor=textureCube(textureSampler,vec3(-1.001,uv.y,uv.x));\n#endif\n#ifdef POSITIVEY\ngl_FragColor=textureCube(textureSampler,vec3(uv.y,1.001,uv.x));\n#endif\n#ifdef NEGATIVEY\ngl_FragColor=textureCube(textureSampler,vec3(uv.y,-1.001,uv.x));\n#endif\n#ifdef POSITIVEZ\ngl_FragColor=textureCube(textureSampler,vec3(uv,1.001));\n#endif\n#ifdef NEGATIVEZ\ngl_FragColor=textureCube(textureSampler,vec3(uv,-1.001));\n#endif\n}`;\nz.ShadersStore[_O] = mO;\nclass ra extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"PassPostProcess\" string\n */\n getClassName() {\n return \"PassPostProcess\";\n }\n /**\n * Creates the PassPostProcess\n * @param name The name of the effect.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType The type of texture to be used when performing the post processing.\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\n */\n constructor(e, t, i = null, s, r, n, o = 0, l = !1) {\n super(e, \"pass\", null, null, t, i, s, r, n, void 0, o, void 0, null, l);\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new ra(e.name, e.options, t, e.renderTargetSamplingMode, e._engine, e.reusable), e, i, s);\n }\n}\nU(\"BABYLON.PassPostProcess\", ra);\nclass HC extends Be {\n /**\n * Gets or sets the cube face to display.\n * * 0 is +X\n * * 1 is -X\n * * 2 is +Y\n * * 3 is -Y\n * * 4 is +Z\n * * 5 is -Z\n */\n get face() {\n return this._face;\n }\n set face(e) {\n if (!(e < 0 || e > 5))\n switch (this._face = e, this._face) {\n case 0:\n this.updateEffect(\"#define POSITIVEX\");\n break;\n case 1:\n this.updateEffect(\"#define NEGATIVEX\");\n break;\n case 2:\n this.updateEffect(\"#define POSITIVEY\");\n break;\n case 3:\n this.updateEffect(\"#define NEGATIVEY\");\n break;\n case 4:\n this.updateEffect(\"#define POSITIVEZ\");\n break;\n case 5:\n this.updateEffect(\"#define NEGATIVEZ\");\n break;\n }\n }\n /**\n * Gets a string identifying the name of the class\n * @returns \"PassCubePostProcess\" string\n */\n getClassName() {\n return \"PassCubePostProcess\";\n }\n /**\n * Creates the PassCubePostProcess\n * @param name The name of the effect.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType The type of texture to be used when performing the post processing.\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\n */\n constructor(e, t, i = null, s, r, n, o = 0, l = !1) {\n super(e, \"passCube\", null, null, t, i, s, r, n, \"#define POSITIVEX\", o, void 0, null, l), this._face = 0;\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new HC(e.name, e.options, t, e.renderTargetSamplingMode, e._engine, e.reusable), e, i, s);\n }\n}\nwe._RescalePostProcessFactory = (a) => new ra(\"rescale\", 1, null, 2, a, !1, 0);\nconst gO = \"lodPixelShader\", xO = `#extension GL_EXT_shader_texture_lod : enable\nprecision highp float;const float GammaEncodePowerApprox=1.0/2.2;varying vec2 vUV;uniform sampler2D textureSampler;uniform float lod;uniform vec2 texSize;uniform bool gamma;void main(void)\n{gl_FragColor=textureLod(textureSampler,vUV,lod);if (!gamma) {gl_FragColor.rgb=pow(gl_FragColor.rgb,vec3(GammaEncodePowerApprox));}}\n`;\nz.ShadersStore[gO] = xO;\nconst vO = \"lodCubePixelShader\", TO = `precision highp float;const float GammaEncodePowerApprox=1.0/2.2;varying vec2 vUV;uniform samplerCube textureSampler;uniform float lod;uniform bool gamma;void main(void)\n{vec2 uv=vUV*2.0-1.0;\n#ifdef POSITIVEX\ngl_FragColor=textureCube(textureSampler,vec3(1.001,uv.y,uv.x),lod);\n#endif\n#ifdef NEGATIVEX\ngl_FragColor=textureCube(textureSampler,vec3(-1.001,uv.y,uv.x),lod);\n#endif\n#ifdef POSITIVEY\ngl_FragColor=textureCube(textureSampler,vec3(uv.y,1.001,uv.x),lod);\n#endif\n#ifdef NEGATIVEY\ngl_FragColor=textureCube(textureSampler,vec3(uv.y,-1.001,uv.x),lod);\n#endif\n#ifdef POSITIVEZ\ngl_FragColor=textureCube(textureSampler,vec3(uv,1.001),lod);\n#endif\n#ifdef NEGATIVEZ\ngl_FragColor=textureCube(textureSampler,vec3(uv,-1.001),lod);\n#endif\nif (!gamma) {gl_FragColor.rgb=pow(gl_FragColor.rgb,vec3(GammaEncodePowerApprox));}}\n`;\nz.ShadersStore[vO] = TO;\nfunction SO(a, e, t, i = !0) {\n const s = a.getScene(), r = s.getEngine(), n = new Ii(\"resized\" + a.name, { width: e, height: t }, s, !a.noMipmap, !0, a._texture.type, !1, a.samplingMode, !1);\n n.wrapU = a.wrapU, n.wrapV = a.wrapV, n.uOffset = a.uOffset, n.vOffset = a.vOffset, n.uScale = a.uScale, n.vScale = a.vScale, n.uAng = a.uAng, n.vAng = a.vAng, n.wAng = a.wAng, n.coordinatesIndex = a.coordinatesIndex, n.level = a.level, n.anisotropicFilteringLevel = a.anisotropicFilteringLevel, n._texture.isReady = !1, a.wrapU = X.CLAMP_ADDRESSMODE, a.wrapV = X.CLAMP_ADDRESSMODE;\n const o = new ra(\"pass\", 1, null, i ? X.BILINEAR_SAMPLINGMODE : X.NEAREST_SAMPLINGMODE, r, !1, 0);\n return o.externalTextureSamplerBinding = !0, o.getEffect().executeWhenCompiled(() => {\n o.onApply = function(h) {\n h.setTexture(\"textureSampler\", a);\n };\n const l = n.renderTarget;\n l && (s.postProcessManager.directRender([o], l), r.unBindFramebuffer(l), n.disposeFramebufferObjects(), o.dispose(), n.getInternalTexture().isReady = !0);\n }), n;\n}\nfunction Rx(a, e, t, i, s, r, n, o) {\n const l = e.getEngine();\n return e.isReady = !1, s = s ?? e.samplingMode, i = i ?? e.type, r = r ?? e.format, n = n ?? e.width, o = o ?? e.height, i === -1 && (i = 0), new Promise((h) => {\n const c = new Be(\"postprocess\", a, null, null, 1, null, s, l, !1, void 0, i, void 0, null, !1, r);\n c.externalTextureSamplerBinding = !0;\n const u = l.createRenderTargetTexture({ width: n, height: o }, {\n generateDepthBuffer: !1,\n generateMipMaps: !1,\n generateStencilBuffer: !1,\n samplingMode: s,\n type: i,\n format: r\n });\n c.getEffect().executeWhenCompiled(() => {\n c.onApply = (d) => {\n d._bindTexture(\"textureSampler\", e), d.setFloat2(\"scale\", 1, 1);\n }, t.postProcessManager.directRender([c], u, !0), l.restoreDefaultFramebuffer(), l._releaseTexture(e), c && c.dispose(), u._swapAndDie(e), e.type = i, e.format = 5, e.isReady = !0, h(e);\n });\n });\n}\nlet ip, Cb;\nfunction ga(a) {\n ip || (ip = new Float32Array(1), Cb = new Int32Array(ip.buffer)), ip[0] = a;\n const e = Cb[0];\n let t = e >> 16 & 32768, i = e >> 12 & 2047;\n const s = e >> 23 & 255;\n return s < 103 ? t : s > 142 ? (t |= 31744, t |= (s == 255 ? 0 : 1) && e & 8388607, t) : s < 113 ? (i |= 2048, t |= (i >> 114 - s) + (i >> 113 - s & 1), t) : (t |= s - 112 << 10 | i >> 1, t += i & 1, t);\n}\nfunction fa(a) {\n const e = (a & 32768) >> 15, t = (a & 31744) >> 10, i = a & 1023;\n return t === 0 ? (e ? -1 : 1) * Math.pow(2, -14) * (i / Math.pow(2, 10)) : t == 31 ? i ? NaN : (e ? -1 : 1) * (1 / 0) : (e ? -1 : 1) * Math.pow(2, t - 15) * (1 + i / Math.pow(2, 10));\n}\nconst bO = async (a, e, t, i, s) => {\n const r = a.getScene(), n = r.getEngine();\n let o;\n if (!a.isCube)\n o = new Be(\"lod\", \"lod\", [\"lod\", \"gamma\"], null, 1, null, X.NEAREST_NEAREST_MIPNEAREST, n);\n else {\n const c = [\"#define POSITIVEX\", \"#define NEGATIVEX\", \"#define POSITIVEY\", \"#define NEGATIVEY\", \"#define POSITIVEZ\", \"#define NEGATIVEZ\"];\n o = new Be(\"lodCube\", \"lodCube\", [\"lod\", \"gamma\"], null, 1, null, X.NEAREST_NEAREST_MIPNEAREST, n, !1, c[i]);\n }\n await new Promise((c) => {\n o.getEffect().executeWhenCompiled(() => {\n c(0);\n });\n });\n const l = new Ii(\"temp\", { width: e, height: t }, r, !1);\n o.onApply = function(c) {\n c.setTexture(\"textureSampler\", a), c.setFloat(\"lod\", s), c.setBool(\"gamma\", a.gammaSpace);\n };\n const h = a.getInternalTexture();\n try {\n if (l.renderTarget && h) {\n const c = h.samplingMode;\n s !== 0 ? a.updateSamplingMode(X.NEAREST_NEAREST_MIPNEAREST) : a.updateSamplingMode(X.NEAREST_NEAREST), r.postProcessManager.directRender([o], l.renderTarget, !0), a.updateSamplingMode(c);\n const u = await n.readPixels(0, 0, e, t), d = new Uint8Array(u.buffer, 0, u.byteLength);\n return n.unBindFramebuffer(l.renderTarget), d;\n } else\n throw Error(\"Render to texture failed.\");\n } finally {\n l.dispose(), o.dispose();\n }\n};\nasync function EO(a, e, t, i = 0, s = 0) {\n return !a.isReady() && a._texture && await new Promise((r, n) => {\n if (a._texture === null) {\n n(0);\n return;\n }\n a._texture.onLoadedObservable.addOnce(() => {\n r(0);\n });\n }), await bO(a, e, t, i, s);\n}\nconst yO = {\n /**\n * Uses the GPU to create a copy texture rescaled at a given size\n * @param texture Texture to copy from\n * @param width defines the desired width\n * @param height defines the desired height\n * @param useBilinearMode defines if bilinear mode has to be used\n * @returns the generated texture\n */\n CreateResizedCopy: SO,\n /**\n * Apply a post process to a texture\n * @param postProcessName name of the fragment post process\n * @param internalTexture the texture to encode\n * @param scene the scene hosting the texture\n * @param type type of the output texture. If not provided, use the one from internalTexture\n * @param samplingMode sampling mode to use to sample the source texture. If not provided, use the one from internalTexture\n * @param format format of the output texture. If not provided, use the one from internalTexture\n * @returns a promise with the internalTexture having its texture replaced by the result of the processing\n */\n ApplyPostProcess: Rx,\n /**\n * Converts a number to half float\n * @param value number to convert\n * @returns converted number\n */\n ToHalfFloat: ga,\n /**\n * Converts a half float to a number\n * @param value half float to convert\n * @returns converted half float\n */\n FromHalfFloat: fa,\n /**\n * Gets the data of the specified texture by rendering it to an intermediate RGBA texture and retrieving the bytes from it.\n * This is convienent to get 8-bit RGBA values for a texture in a GPU compressed format.\n * @param texture the source texture\n * @param width the width of the result, which does not have to match the source texture width\n * @param height the height of the result, which does not have to match the source texture height\n * @param face if the texture has multiple faces, the face index to use for the source\n * @param channels a filter for which of the RGBA channels to return in the result\n * @param lod if the texture has multiple LODs, the lod index to use for the source\n * @returns the 8-bit texture data\n */\n GetTextureDataAsync: EO\n};\nclass Fp {\n static _IsGPUBuffer(e) {\n return e.underlyingResource === void 0;\n }\n static _FlagsToString(e, t = \"\") {\n let i = t;\n for (let s = 0; s <= 9; ++s)\n e & 1 << s && (i && (i += \"_\"), i += Kt[1 << s]);\n return i;\n }\n constructor(e, t) {\n this._deferredReleaseBuffers = [], this._engine = e, this._device = t;\n }\n createRawBuffer(e, t, i = !1, s) {\n const r = e.byteLength !== void 0 ? e.byteLength + 3 & -4 : e + 3 & -4, n = {\n label: \"BabylonWebGPUDevice\" + this._engine.uniqueId + \"_\" + Fp._FlagsToString(t, s ?? \"Buffer\") + \"_size\" + r,\n mappedAtCreation: i,\n size: r,\n usage: t\n };\n return this._device.createBuffer(n);\n }\n createBuffer(e, t, i) {\n const s = e.byteLength !== void 0, r = this.createRawBuffer(e, t, void 0, i), n = new cO(r);\n return n.references = 1, n.capacity = s ? e.byteLength : e, n.engineId = this._engine.uniqueId, s && this.setSubData(n, 0, e), n;\n }\n setRawData(e, t, i, s, r) {\n this._device.queue.writeBuffer(e, t, i.buffer, s, r);\n }\n setSubData(e, t, i, s = 0, r = 0) {\n const n = e.underlyingResource;\n r = r || i.byteLength, r = Math.min(r, e.capacity - t);\n let o = i.byteOffset + s, l = o + r;\n const h = r + 3 & -4;\n if (h !== r) {\n const d = new Uint8Array(i.buffer.slice(o, l));\n i = new Uint8Array(h), i.set(d), s = 0, o = 0, l = h, r = h;\n }\n const c = 1024 * 1024 * 15;\n let u = 0;\n for (; l - (o + u) > c; )\n this._device.queue.writeBuffer(n, t + u, i.buffer, o + u, c), u += c;\n this._device.queue.writeBuffer(n, t + u, i.buffer, o + u, r - u);\n }\n _getHalfFloatAsFloatRGBAArrayBuffer(e, t, i) {\n i || (i = new Float32Array(e));\n const s = new Uint16Array(t);\n for (; e--; )\n i[e] = fa(s[e]);\n return i;\n }\n readDataFromBuffer(e, t, i, s, r, n, o = 0, l = 0, h = null, c = !0, u = !1) {\n const d = o === 1 ? 2 : o === 2 ? 1 : 0, f = this._engine.uniqueId;\n return new Promise((p, _) => {\n e.mapAsync(1, l, t).then(() => {\n const m = e.getMappedRange(l, t);\n let x = h;\n if (u)\n x === null ? x = vg(o, t, !0, m) : x = vg(o, x.buffer, void 0, m);\n else if (x === null)\n switch (d) {\n case 0:\n x = new Uint8Array(t), x.set(new Uint8Array(m));\n break;\n case 1:\n x = this._getHalfFloatAsFloatRGBAArrayBuffer(t / 2, m);\n break;\n case 2:\n x = new Float32Array(t / 4), x.set(new Float32Array(m));\n break;\n }\n else\n switch (d) {\n case 0:\n x = new Uint8Array(x.buffer), x.set(new Uint8Array(m));\n break;\n case 1:\n x = this._getHalfFloatAsFloatRGBAArrayBuffer(t / 2, m, h);\n break;\n case 2:\n x = new Float32Array(x.buffer), x.set(new Float32Array(m));\n break;\n }\n if (r !== n) {\n d === 1 && !u && (r *= 2, n *= 2);\n const v = new Uint8Array(x.buffer);\n let T = r, E = 0;\n for (let b = 1; b < s; ++b) {\n E = b * n;\n for (let S = 0; S < r; ++S)\n v[T++] = v[E++];\n }\n d !== 0 && !u ? x = new Float32Array(v.buffer, 0, T / 4) : x = new Uint8Array(v.buffer, 0, T);\n }\n e.unmap(), c && this.releaseBuffer(e), p(x);\n }, (m) => {\n this._engine.isDisposed || this._engine.uniqueId !== f ? p(new Uint8Array()) : _(m);\n });\n });\n }\n releaseBuffer(e) {\n return Fp._IsGPUBuffer(e) ? (this._deferredReleaseBuffers.push(e), !0) : (e.references--, e.references === 0 ? (this._deferredReleaseBuffers.push(e.underlyingResource), !0) : !1);\n }\n destroyDeferredBuffers() {\n for (let e = 0; e < this._deferredReleaseBuffers.length; ++e)\n this._deferredReleaseBuffers[e].destroy();\n this._deferredReleaseBuffers.length = 0;\n }\n}\nconst CO = [\n 0,\n 0,\n 3,\n 7,\n 0,\n 2,\n 6,\n 2,\n 4,\n 1,\n 5,\n 3,\n 1\n // TEXTURE_LINEAR_NEAREST\n], AO = [\n 0,\n 64,\n 32,\n 96,\n 16,\n 80,\n 48,\n 112,\n 8\n // ALWAYS\n], RO = [\n 0,\n 128,\n 128,\n 0,\n 0,\n 0,\n 0,\n 128,\n 0,\n 0,\n 0,\n 0,\n 128\n // TEXTURE_LINEAR_NEAREST\n];\nclass bl {\n constructor(e) {\n this._samplers = {}, this._device = e, this.disabled = !1;\n }\n static GetSamplerHashCode(e) {\n const t = e._cachedAnisotropicFilteringLevel && e._cachedAnisotropicFilteringLevel > 1 ? 4 : 1;\n return CO[e.samplingMode] + AO[(e._comparisonFunction || 514) - 512 + 1] + RO[e.samplingMode] + // handle the lodMinClamp = lodMaxClamp = 0 case when no filter used for mip mapping\n ((e._cachedWrapU ?? 1) << 8) + ((e._cachedWrapV ?? 1) << 10) + ((e._cachedWrapR ?? 1) << 12) + ((e.useMipMaps ? 1 : 0) << 14) + // need to factor this in because _getSamplerFilterDescriptor depends on samplingMode AND useMipMaps!\n (t << 15);\n }\n static _GetSamplerFilterDescriptor(e, t) {\n let i, s, r, n, o;\n const l = e.useMipMaps;\n switch (e.samplingMode) {\n case 11:\n i = \"linear\", s = \"linear\", r = \"nearest\", l || (n = o = 0);\n break;\n case 3:\n case 3:\n i = \"linear\", s = \"linear\", l ? r = \"linear\" : (r = \"nearest\", n = o = 0);\n break;\n case 8:\n i = \"nearest\", s = \"nearest\", l ? r = \"linear\" : (r = \"nearest\", n = o = 0);\n break;\n case 4:\n i = \"nearest\", s = \"nearest\", r = \"nearest\", l || (n = o = 0);\n break;\n case 5:\n i = \"nearest\", s = \"linear\", r = \"nearest\", l || (n = o = 0);\n break;\n case 6:\n i = \"nearest\", s = \"linear\", l ? r = \"linear\" : (r = \"nearest\", n = o = 0);\n break;\n case 7:\n i = \"nearest\", s = \"linear\", r = \"nearest\", n = o = 0;\n break;\n case 1:\n case 1:\n i = \"nearest\", s = \"nearest\", r = \"nearest\", n = o = 0;\n break;\n case 9:\n i = \"linear\", s = \"nearest\", r = \"nearest\", l || (n = o = 0);\n break;\n case 10:\n i = \"linear\", s = \"nearest\", l ? r = \"linear\" : (r = \"nearest\", n = o = 0);\n break;\n case 2:\n case 2:\n i = \"linear\", s = \"linear\", r = \"nearest\", n = o = 0;\n break;\n case 12:\n i = \"linear\", s = \"nearest\", r = \"nearest\", n = o = 0;\n break;\n default:\n i = \"nearest\", s = \"nearest\", r = \"nearest\", n = o = 0;\n break;\n }\n return t > 1 && (n !== 0 || o !== 0) && r !== \"nearest\" ? {\n magFilter: \"linear\",\n minFilter: \"linear\",\n mipmapFilter: \"linear\",\n anisotropyEnabled: !0\n } : {\n magFilter: i,\n minFilter: s,\n mipmapFilter: r,\n lodMinClamp: n,\n lodMaxClamp: o\n };\n }\n static _GetWrappingMode(e) {\n switch (e) {\n case 1:\n return \"repeat\";\n case 0:\n return \"clamp-to-edge\";\n case 2:\n return \"mirror-repeat\";\n }\n return \"repeat\";\n }\n static _GetSamplerWrappingDescriptor(e) {\n return {\n addressModeU: this._GetWrappingMode(e._cachedWrapU),\n addressModeV: this._GetWrappingMode(e._cachedWrapV),\n addressModeW: this._GetWrappingMode(e._cachedWrapR)\n };\n }\n static _GetSamplerDescriptor(e, t) {\n const i = e.useMipMaps && e._cachedAnisotropicFilteringLevel && e._cachedAnisotropicFilteringLevel > 1 ? 4 : 1, s = this._GetSamplerFilterDescriptor(e, i);\n return {\n label: t,\n ...s,\n ...this._GetSamplerWrappingDescriptor(e),\n compare: e._comparisonFunction ? bl.GetCompareFunction(e._comparisonFunction) : void 0,\n maxAnisotropy: s.anisotropyEnabled ? i : 1\n };\n }\n static GetCompareFunction(e) {\n switch (e) {\n case 519:\n return \"always\";\n case 514:\n return \"equal\";\n case 516:\n return \"greater\";\n case 518:\n return \"greater-equal\";\n case 513:\n return \"less\";\n case 515:\n return \"less-equal\";\n case 512:\n return \"never\";\n case 517:\n return \"not-equal\";\n default:\n return \"less\";\n }\n }\n getSampler(e, t = !1, i = 0, s) {\n if (this.disabled)\n return this._device.createSampler(bl._GetSamplerDescriptor(e, s));\n t ? i = 0 : i === 0 && (i = bl.GetSamplerHashCode(e));\n let r = t ? void 0 : this._samplers[i];\n return r || (r = this._device.createSampler(bl._GetSamplerDescriptor(e, s)), t || (this._samplers[i] = r)), r;\n }\n}\nconst IO = {\n [R.PositionKind]: !0,\n [R.NormalKind]: !0,\n [R.TangentKind]: !0,\n [R.UVKind]: !0,\n [R.UV2Kind]: !0,\n [R.UV3Kind]: !0,\n [R.UV4Kind]: !0,\n [R.UV5Kind]: !0,\n [R.UV6Kind]: !0,\n [R.ColorKind]: !0,\n [R.ColorInstanceKind]: !0,\n [R.MatricesIndicesKind]: !0,\n [R.MatricesWeightsKind]: !0,\n [R.MatricesIndicesExtraKind]: !0,\n [R.MatricesWeightsExtraKind]: !0\n};\nfunction PO(a) {\n switch (a) {\n case R.BYTE:\n case R.SHORT:\n case R.INT:\n case R.FLOAT:\n return !0;\n case R.UNSIGNED_BYTE:\n case R.UNSIGNED_SHORT:\n case R.UNSIGNED_INT:\n return !1;\n default:\n throw new Error(`Invalid type '${a}'`);\n }\n}\nfunction XC(a, e) {\n const t = e.getEngine(), i = e._pipelineContext;\n if (!(i != null && i.vertexBufferKindToType))\n return;\n let s = null;\n for (const r in a) {\n const n = a[r];\n if (!n || !IO[r])\n continue;\n const o = n.normalized ? R.FLOAT : n.type, l = i.vertexBufferKindToType[r];\n (o !== R.FLOAT && l === void 0 || l !== void 0 && l !== o) && (s || (s = t._getShaderProcessingContext(e.shaderLanguage)), i.vertexBufferKindToType[r] = o, o !== R.FLOAT && (s.vertexBufferKindToNumberOfComponents[r] = R.DeduceStride(r), PO(o) && (s.vertexBufferKindToNumberOfComponents[r] *= -1)));\n }\n if (s) {\n const r = t._caps.parallelShaderCompile;\n t._caps.parallelShaderCompile = void 0, e._processShaderCode(null, t._features._checkNonFloatVertexBuffersDontRecreatePipelineContext, s), t._caps.parallelShaderCompile = r;\n }\n}\nvar es;\n(function(a) {\n a[a.StencilReadMask = 0] = \"StencilReadMask\", a[a.StencilWriteMask = 1] = \"StencilWriteMask\", a[a.DepthBias = 2] = \"DepthBias\", a[a.DepthBiasSlopeScale = 3] = \"DepthBiasSlopeScale\", a[a.DepthStencilState = 4] = \"DepthStencilState\", a[a.MRTAttachments1 = 5] = \"MRTAttachments1\", a[a.MRTAttachments2 = 6] = \"MRTAttachments2\", a[a.RasterizationState = 7] = \"RasterizationState\", a[a.ColorStates = 8] = \"ColorStates\", a[a.ShaderStage = 9] = \"ShaderStage\", a[a.TextureStage = 10] = \"TextureStage\", a[a.VertexState = 11] = \"VertexState\", a[a.NumStates = 12] = \"NumStates\";\n})(es || (es = {}));\nconst sp = {\n 0: 1,\n 1: 2,\n 768: 3,\n 769: 4,\n 770: 5,\n 771: 6,\n 772: 7,\n 773: 8,\n 774: 9,\n 775: 10,\n 776: 11,\n 32769: 12,\n 32770: 13,\n 32771: 12,\n 32772: 13\n // OneMinusBlendColor (alpha)\n}, ih = {\n 0: 0,\n 7680: 1,\n 7681: 2,\n 7682: 3,\n 7683: 4,\n 5386: 5,\n 34055: 6,\n 34056: 7\n // DECR_WRAP\n};\nclass Pi {\n constructor(e, t) {\n this.mrtTextureCount = 0, this._device = e, this._useTextureStage = !0, this._states = new Array(30), this._statesLength = 0, this._stateDirtyLowestIndex = 0, this._emptyVertexBuffer = t, this._mrtFormats = [], this._parameter = { token: void 0, pipeline: null }, this.disabled = !1, this.vertexBuffers = [], this._kMaxVertexBufferStride = e.limits.maxVertexBufferArrayStride || 2048, this.reset();\n }\n reset() {\n this._isDirty = !0, this.vertexBuffers.length = 0, this.setAlphaToCoverage(!1), this.resetDepthCullingState(), this.setClampDepth(!1), this.setDepthBias(0), this._webgpuColorFormat = [\n \"bgra8unorm\"\n /* WebGPUConstants.TextureFormat.BGRA8Unorm */\n ], this.setColorFormat(\n \"bgra8unorm\"\n /* WebGPUConstants.TextureFormat.BGRA8Unorm */\n ), this.setMRT([]), this.setAlphaBlendEnabled(!1), this.setAlphaBlendFactors([null, null, null, null], [null, null]), this.setWriteMask(15), this.setDepthStencilFormat(\n \"depth24plus-stencil8\"\n /* WebGPUConstants.TextureFormat.Depth24PlusStencil8 */\n ), this.setStencilEnabled(!1), this.resetStencilState(), this.setBuffers(null, null, null), this._setTextureState(0);\n }\n get colorFormats() {\n return this._mrtAttachments1 > 0 ? this._mrtFormats : this._webgpuColorFormat;\n }\n getRenderPipeline(e, t, i, s = 0) {\n if (i = Bt.GetSample(i), this.disabled) {\n const n = Pi._GetTopology(e);\n return this._setVertexState(t), this._setTextureState(s), this._parameter.pipeline = this._createRenderPipeline(t, n, i), Pi.NumCacheMiss++, Pi._NumPipelineCreationCurrentFrame++, this._parameter.pipeline;\n }\n if (this._setShaderStage(t.uniqueId), this._setRasterizationState(e, i), this._setColorStates(), this._setDepthStencilState(), this._setVertexState(t), this._setTextureState(s), this.lastStateDirtyLowestIndex = this._stateDirtyLowestIndex, !this._isDirty && this._parameter.pipeline)\n return this._stateDirtyLowestIndex = this._statesLength, Pi.NumCacheHitWithoutHash++, this._parameter.pipeline;\n if (this._getRenderPipeline(this._parameter), this._isDirty = !1, this._stateDirtyLowestIndex = this._statesLength, this._parameter.pipeline)\n return Pi.NumCacheHitWithHash++, this._parameter.pipeline;\n const r = Pi._GetTopology(e);\n return this._parameter.pipeline = this._createRenderPipeline(t, r, i), this._setRenderPipeline(this._parameter), Pi.NumCacheMiss++, Pi._NumPipelineCreationCurrentFrame++, this._parameter.pipeline;\n }\n endFrame() {\n Pi.NumPipelineCreationLastFrame = Pi._NumPipelineCreationCurrentFrame, Pi._NumPipelineCreationCurrentFrame = 0;\n }\n setAlphaToCoverage(e) {\n this._alphaToCoverageEnabled = e;\n }\n setFrontFace(e) {\n this._frontFace = e;\n }\n setCullEnabled(e) {\n this._cullEnabled = e;\n }\n setCullFace(e) {\n this._cullFace = e;\n }\n setClampDepth(e) {\n this._clampDepth = e;\n }\n resetDepthCullingState() {\n this.setDepthCullingState(!1, 2, 1, 0, 0, !0, !0, 519);\n }\n setDepthCullingState(e, t, i, s, r, n, o, l) {\n this._depthWriteEnabled = o, this._depthTestEnabled = n, this._depthCompare = (l ?? 519) - 512, this._cullFace = i, this._cullEnabled = e, this._frontFace = t, this.setDepthBiasSlopeScale(s), this.setDepthBias(r);\n }\n setDepthBias(e) {\n this._depthBias !== e && (this._depthBias = e, this._states[es.DepthBias] = e, this._isDirty = !0, this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, es.DepthBias));\n }\n /*public setDepthBiasClamp(depthBiasClamp: number): void {\n if (this._depthBiasClamp !== depthBiasClamp) {\n this._depthBiasClamp = depthBiasClamp;\n this._states[StatePosition.DepthBiasClamp] = depthBiasClamp.toString();\n this._isDirty = true;\n }\n }*/\n setDepthBiasSlopeScale(e) {\n this._depthBiasSlopeScale !== e && (this._depthBiasSlopeScale = e, this._states[es.DepthBiasSlopeScale] = e, this._isDirty = !0, this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, es.DepthBiasSlopeScale));\n }\n setColorFormat(e) {\n this._webgpuColorFormat[0] = e, this._colorFormat = Ta[e ?? \"\"];\n }\n setMRTAttachments(e) {\n this.mrtAttachments = e;\n let t = 0;\n for (let i = 0; i < e.length; ++i)\n e[i] !== 0 && (t += 1 << i);\n this._mrtEnabledMask !== t && (this._mrtEnabledMask = t, this._isDirty = !0, this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, es.MRTAttachments1));\n }\n setMRT(e, t) {\n if (t = t ?? e.length, t > 10)\n throw \"Can't handle more than 10 attachments for a MRT in cache render pipeline!\";\n this.mrtTextureArray = e, this.mrtTextureCount = t, this._mrtEnabledMask = 65535;\n const i = [0, 0];\n let s = 0, r = 0, n = 0;\n for (let o = 0; o < t; ++o) {\n const l = e[o], h = l == null ? void 0 : l._hardwareTexture;\n this._mrtFormats[n] = (h == null ? void 0 : h.format) ?? this._webgpuColorFormat[0], i[s] += Ta[this._mrtFormats[n] ?? \"\"] << r, r += 6, n++, r >= 32 && (r = 0, s++);\n }\n this._mrtFormats.length = n, (this._mrtAttachments1 !== i[0] || this._mrtAttachments2 !== i[1]) && (this._mrtAttachments1 = i[0], this._mrtAttachments2 = i[1], this._states[es.MRTAttachments1] = i[0], this._states[es.MRTAttachments2] = i[1], this._isDirty = !0, this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, es.MRTAttachments1));\n }\n setAlphaBlendEnabled(e) {\n this._alphaBlendEnabled = e;\n }\n setAlphaBlendFactors(e, t) {\n this._alphaBlendFuncParams = e, this._alphaBlendEqParams = t;\n }\n setWriteMask(e) {\n this._writeMask = e;\n }\n setDepthStencilFormat(e) {\n this._webgpuDepthStencilFormat = e, this._depthStencilFormat = e === void 0 ? 0 : Ta[e];\n }\n setDepthTestEnabled(e) {\n this._depthTestEnabled = e;\n }\n setDepthWriteEnabled(e) {\n this._depthWriteEnabled = e;\n }\n setDepthCompare(e) {\n this._depthCompare = (e ?? 519) - 512;\n }\n setStencilEnabled(e) {\n this._stencilEnabled = e;\n }\n setStencilCompare(e) {\n this._stencilFrontCompare = (e ?? 519) - 512;\n }\n setStencilDepthFailOp(e) {\n this._stencilFrontDepthFailOp = e === null ? 1 : ih[e];\n }\n setStencilPassOp(e) {\n this._stencilFrontPassOp = e === null ? 2 : ih[e];\n }\n setStencilFailOp(e) {\n this._stencilFrontFailOp = e === null ? 1 : ih[e];\n }\n setStencilReadMask(e) {\n this._stencilReadMask !== e && (this._stencilReadMask = e, this._states[es.StencilReadMask] = e, this._isDirty = !0, this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, es.StencilReadMask));\n }\n setStencilWriteMask(e) {\n this._stencilWriteMask !== e && (this._stencilWriteMask = e, this._states[es.StencilWriteMask] = e, this._isDirty = !0, this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, es.StencilWriteMask));\n }\n resetStencilState() {\n this.setStencilState(!1, 519, 7680, 7681, 7680, 255, 255);\n }\n setStencilState(e, t, i, s, r, n, o) {\n this._stencilEnabled = e, this._stencilFrontCompare = (t ?? 519) - 512, this._stencilFrontDepthFailOp = i === null ? 1 : ih[i], this._stencilFrontPassOp = s === null ? 2 : ih[s], this._stencilFrontFailOp = r === null ? 1 : ih[r], this.setStencilReadMask(n), this.setStencilWriteMask(o);\n }\n setBuffers(e, t, i) {\n this._vertexBuffers = e, this._overrideVertexBuffers = i, this._indexBuffer = t;\n }\n static _GetTopology(e) {\n switch (e) {\n case 0:\n return \"triangle-list\";\n case 2:\n return \"point-list\";\n case 1:\n return \"line-list\";\n case 3:\n return \"point-list\";\n case 4:\n return \"line-list\";\n case 5:\n throw \"LineLoop is an unsupported fillmode in WebGPU\";\n case 6:\n return \"line-strip\";\n case 7:\n return \"triangle-strip\";\n case 8:\n throw \"TriangleFan is an unsupported fillmode in WebGPU\";\n default:\n return \"triangle-list\";\n }\n }\n static _GetAphaBlendOperation(e) {\n switch (e) {\n case 32774:\n return \"add\";\n case 32778:\n return \"subtract\";\n case 32779:\n return \"reverse-subtract\";\n case 32775:\n return \"min\";\n case 32776:\n return \"max\";\n default:\n return \"add\";\n }\n }\n static _GetAphaBlendFactor(e) {\n switch (e) {\n case 0:\n return \"zero\";\n case 1:\n return \"one\";\n case 768:\n return \"src\";\n case 769:\n return \"one-minus-src\";\n case 770:\n return \"src-alpha\";\n case 771:\n return \"one-minus-src-alpha\";\n case 772:\n return \"dst-alpha\";\n case 773:\n return \"one-minus-dst-alpha\";\n case 774:\n return \"dst\";\n case 775:\n return \"one-minus-dst\";\n case 776:\n return \"src-alpha-saturated\";\n case 32769:\n return \"constant\";\n case 32770:\n return \"one-minus-constant\";\n case 32771:\n return \"constant\";\n case 32772:\n return \"one-minus-constant\";\n default:\n return \"one\";\n }\n }\n static _GetCompareFunction(e) {\n switch (e) {\n case 0:\n return \"never\";\n case 1:\n return \"less\";\n case 2:\n return \"equal\";\n case 3:\n return \"less-equal\";\n case 4:\n return \"greater\";\n case 5:\n return \"not-equal\";\n case 6:\n return \"greater-equal\";\n case 7:\n return \"always\";\n }\n return \"never\";\n }\n static _GetStencilOpFunction(e) {\n switch (e) {\n case 0:\n return \"zero\";\n case 1:\n return \"keep\";\n case 2:\n return \"replace\";\n case 3:\n return \"increment-clamp\";\n case 4:\n return \"decrement-clamp\";\n case 5:\n return \"invert\";\n case 6:\n return \"increment-wrap\";\n case 7:\n return \"decrement-wrap\";\n }\n return \"keep\";\n }\n static _GetVertexInputDescriptorFormat(e) {\n const t = e.type, i = e.normalized, s = e.getSize();\n switch (t) {\n case R.BYTE:\n switch (s) {\n case 1:\n case 2:\n return i ? \"snorm8x2\" : \"sint8x2\";\n case 3:\n case 4:\n return i ? \"snorm8x4\" : \"sint8x4\";\n }\n break;\n case R.UNSIGNED_BYTE:\n switch (s) {\n case 1:\n case 2:\n return i ? \"unorm8x2\" : \"uint8x2\";\n case 3:\n case 4:\n return i ? \"unorm8x4\" : \"uint8x4\";\n }\n break;\n case R.SHORT:\n switch (s) {\n case 1:\n case 2:\n return i ? \"snorm16x2\" : \"sint16x2\";\n case 3:\n case 4:\n return i ? \"snorm16x4\" : \"sint16x4\";\n }\n break;\n case R.UNSIGNED_SHORT:\n switch (s) {\n case 1:\n case 2:\n return i ? \"unorm16x2\" : \"uint16x2\";\n case 3:\n case 4:\n return i ? \"unorm16x4\" : \"uint16x4\";\n }\n break;\n case R.INT:\n switch (s) {\n case 1:\n return \"sint32\";\n case 2:\n return \"sint32x2\";\n case 3:\n return \"sint32x3\";\n case 4:\n return \"sint32x4\";\n }\n break;\n case R.UNSIGNED_INT:\n switch (s) {\n case 1:\n return \"uint32\";\n case 2:\n return \"uint32x2\";\n case 3:\n return \"uint32x3\";\n case 4:\n return \"uint32x4\";\n }\n break;\n case R.FLOAT:\n switch (s) {\n case 1:\n return \"float32\";\n case 2:\n return \"float32x2\";\n case 3:\n return \"float32x3\";\n case 4:\n return \"float32x4\";\n }\n break;\n }\n throw new Error(`Invalid Format '${e.getKind()}' - type=${t}, normalized=${i}, size=${s}`);\n }\n _getAphaBlendState() {\n return this._alphaBlendEnabled ? {\n srcFactor: Pi._GetAphaBlendFactor(this._alphaBlendFuncParams[2]),\n dstFactor: Pi._GetAphaBlendFactor(this._alphaBlendFuncParams[3]),\n operation: Pi._GetAphaBlendOperation(this._alphaBlendEqParams[1])\n } : null;\n }\n _getColorBlendState() {\n return this._alphaBlendEnabled ? {\n srcFactor: Pi._GetAphaBlendFactor(this._alphaBlendFuncParams[0]),\n dstFactor: Pi._GetAphaBlendFactor(this._alphaBlendFuncParams[1]),\n operation: Pi._GetAphaBlendOperation(this._alphaBlendEqParams[0])\n } : null;\n }\n _setShaderStage(e) {\n this._shaderId !== e && (this._shaderId = e, this._states[es.ShaderStage] = e, this._isDirty = !0, this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, es.ShaderStage));\n }\n _setRasterizationState(e, t) {\n const i = this._frontFace, s = this._cullEnabled ? this._cullFace : 0, r = this._clampDepth ? 1 : 0, n = this._alphaToCoverageEnabled ? 1 : 0, o = i - 1 + (s << 1) + (r << 3) + (n << 4) + (e << 5) + (t << 8);\n this._rasterizationState !== o && (this._rasterizationState = o, this._states[es.RasterizationState] = this._rasterizationState, this._isDirty = !0, this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, es.RasterizationState));\n }\n _setColorStates() {\n let e = ((this._writeMask ? 1 : 0) << 22) + (this._colorFormat << 23) + ((this._depthWriteEnabled ? 1 : 0) << 29);\n this._alphaBlendEnabled && (e += ((this._alphaBlendFuncParams[0] === null ? 2 : sp[this._alphaBlendFuncParams[0]]) << 0) + ((this._alphaBlendFuncParams[1] === null ? 2 : sp[this._alphaBlendFuncParams[1]]) << 4) + ((this._alphaBlendFuncParams[2] === null ? 2 : sp[this._alphaBlendFuncParams[2]]) << 8) + ((this._alphaBlendFuncParams[3] === null ? 2 : sp[this._alphaBlendFuncParams[3]]) << 12) + ((this._alphaBlendEqParams[0] === null ? 1 : this._alphaBlendEqParams[0] - 32773) << 16) + ((this._alphaBlendEqParams[1] === null ? 1 : this._alphaBlendEqParams[1] - 32773) << 19)), e !== this._colorStates && (this._colorStates = e, this._states[es.ColorStates] = this._colorStates, this._isDirty = !0, this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, es.ColorStates));\n }\n _setDepthStencilState() {\n const e = this._stencilEnabled ? this._stencilFrontCompare + (this._stencilFrontDepthFailOp << 3) + (this._stencilFrontPassOp << 6) + (this._stencilFrontFailOp << 9) : 591, t = this._depthStencilFormat + ((this._depthTestEnabled ? this._depthCompare : 7) << 6) + (e << 10);\n this._depthStencilState !== t && (this._depthStencilState = t, this._states[es.DepthStencilState] = this._depthStencilState, this._isDirty = !0, this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, es.DepthStencilState));\n }\n _setVertexState(e) {\n var h;\n const t = this._statesLength;\n let i = es.VertexState;\n const s = e._pipelineContext, r = s.shaderProcessingContext.attributeNamesFromEffect, n = s.shaderProcessingContext.attributeLocationsFromEffect;\n let o, l = 0;\n for (let c = 0; c < r.length; c++) {\n const u = n[c];\n let d = (this._overrideVertexBuffers && this._overrideVertexBuffers[r[c]]) ?? this._vertexBuffers[r[c]];\n d || (d = this._emptyVertexBuffer);\n const f = (h = d.effectiveBuffer) == null ? void 0 : h.underlyingResource;\n if (d._validOffsetRange === void 0) {\n const _ = d.effectiveByteOffset, m = d.getSize(!0), x = d.effectiveByteStride;\n d._validOffsetRange = _ + m <= this._kMaxVertexBufferStride && x === 0 || x !== 0 && _ + m <= x;\n }\n o && o === f && d._validOffsetRange || (this.vertexBuffers[l++] = d, o = d._validOffsetRange ? f : null);\n const p = d.hashCode + (u << 7);\n this._isDirty = this._isDirty || this._states[i] !== p, this._states[i++] = p;\n }\n this.vertexBuffers.length = l, this._statesLength = i, this._isDirty = this._isDirty || i !== t, this._isDirty && (this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, es.VertexState));\n }\n _setTextureState(e) {\n this._textureState !== e && (this._textureState = e, this._states[es.TextureStage] = this._textureState, this._isDirty = !0, this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, es.TextureStage));\n }\n _createPipelineLayout(e) {\n if (this._useTextureStage)\n return this._createPipelineLayoutWithTextureStage(e);\n const t = [], i = e.shaderProcessingContext.bindGroupLayoutEntries;\n for (let s = 0; s < i.length; s++) {\n const r = i[s];\n t[s] = this._device.createBindGroupLayout({\n entries: r\n });\n }\n return e.bindGroupLayouts[0] = t, this._device.createPipelineLayout({ bindGroupLayouts: t });\n }\n _createPipelineLayoutWithTextureStage(e) {\n const t = e.shaderProcessingContext, i = t.bindGroupLayoutEntries;\n let s = 1;\n for (let n = 0; n < i.length; n++) {\n const o = i[n];\n for (let l = 0; l < o.length; l++) {\n const h = i[n][l];\n if (h.texture) {\n const c = t.bindGroupLayoutEntryInfo[n][h.binding].name, u = t.availableTextures[c], d = u.autoBindSampler ? t.availableSamplers[c + \"Sampler\"] : null;\n let f = u.sampleType, p = (d == null ? void 0 : d.type) ?? \"filtering\";\n if (this._textureState & s && f !== \"depth\" && (u.autoBindSampler && (p = \"non-filtering\"), f = \"unfilterable-float\"), h.texture.sampleType = f, d) {\n const _ = t.bindGroupLayoutEntryInfo[d.binding.groupIndex][d.binding.bindingIndex].index;\n i[d.binding.groupIndex][_].sampler.type = p;\n }\n s = s << 1;\n }\n }\n }\n const r = [];\n for (let n = 0; n < i.length; ++n)\n r[n] = this._device.createBindGroupLayout({\n entries: i[n]\n });\n return e.bindGroupLayouts[this._textureState] = r, this._device.createPipelineLayout({ bindGroupLayouts: r });\n }\n _getVertexInputDescriptor(e) {\n var l;\n const t = [], i = e._pipelineContext, s = i.shaderProcessingContext.attributeNamesFromEffect, r = i.shaderProcessingContext.attributeLocationsFromEffect;\n let n, o;\n for (let h = 0; h < s.length; h++) {\n const c = r[h];\n let u = (this._overrideVertexBuffers && this._overrideVertexBuffers[s[h]]) ?? this._vertexBuffers[s[h]];\n u || (u = this._emptyVertexBuffer);\n let d = (l = u.effectiveBuffer) == null ? void 0 : l.underlyingResource, f = u.effectiveByteOffset;\n const p = !u._validOffsetRange;\n if (!(n && o && n === d) || p) {\n const _ = {\n arrayStride: u.effectiveByteStride,\n stepMode: u.getIsInstanced() ? \"instance\" : \"vertex\",\n attributes: []\n };\n t.push(_), o = _.attributes, p && (f = 0, d = null);\n }\n o.push({\n shaderLocation: c,\n offset: f,\n format: Pi._GetVertexInputDescriptorFormat(u)\n }), n = d;\n }\n return t;\n }\n _createRenderPipeline(e, t, i) {\n var f;\n const s = e._pipelineContext, r = this._getVertexInputDescriptor(e), n = this._createPipelineLayout(s), o = [], l = this._getAphaBlendState(), h = this._getColorBlendState();\n if (this._vertexBuffers && XC(this._vertexBuffers, e), this._mrtAttachments1 > 0)\n for (let p = 0; p < this._mrtFormats.length; ++p) {\n const _ = this._mrtFormats[p];\n if (_) {\n const m = {\n format: _,\n writeMask: this._mrtEnabledMask & 1 << p ? this._writeMask : 0\n };\n l && h && (m.blend = {\n alpha: l,\n color: h\n }), o.push(m);\n } else\n o.push(null);\n }\n else if (this._webgpuColorFormat[0]) {\n const p = {\n format: this._webgpuColorFormat[0],\n writeMask: this._writeMask\n };\n l && h && (p.blend = {\n alpha: l,\n color: h\n }), o.push(p);\n } else\n o.push(null);\n const c = {\n compare: Pi._GetCompareFunction(\n this._stencilEnabled ? this._stencilFrontCompare : 7\n /* ALWAYS */\n ),\n depthFailOp: Pi._GetStencilOpFunction(\n this._stencilEnabled ? this._stencilFrontDepthFailOp : 1\n /* KEEP */\n ),\n failOp: Pi._GetStencilOpFunction(\n this._stencilEnabled ? this._stencilFrontFailOp : 1\n /* KEEP */\n ),\n passOp: Pi._GetStencilOpFunction(\n this._stencilEnabled ? this._stencilFrontPassOp : 1\n /* KEEP */\n )\n };\n let u;\n (t === \"line-strip\" || t === \"triangle-strip\") && (u = !this._indexBuffer || this._indexBuffer.is32Bits ? \"uint32\" : \"uint16\");\n const d = this._webgpuDepthStencilFormat ? Bt.HasStencilAspect(this._webgpuDepthStencilFormat) : !1;\n return this._device.createRenderPipeline({\n label: `RenderPipeline_${((f = o[0]) == null ? void 0 : f.format) ?? \"nooutput\"}_${this._webgpuDepthStencilFormat ?? \"nodepth\"}_samples${i}_textureState${this._textureState}`,\n layout: n,\n vertex: {\n module: s.stages.vertexStage.module,\n entryPoint: s.stages.vertexStage.entryPoint,\n buffers: r\n },\n primitive: {\n topology: t,\n stripIndexFormat: u,\n frontFace: this._frontFace === 1 ? \"ccw\" : \"cw\",\n cullMode: this._cullEnabled ? this._cullFace === 2 ? \"front\" : \"back\" : \"none\"\n },\n fragment: s.stages.fragmentStage ? {\n module: s.stages.fragmentStage.module,\n entryPoint: s.stages.fragmentStage.entryPoint,\n targets: o\n } : void 0,\n multisample: {\n count: i\n /*mask,\n alphaToCoverageEnabled,*/\n },\n depthStencil: this._webgpuDepthStencilFormat === void 0 ? void 0 : {\n depthWriteEnabled: this._depthWriteEnabled,\n depthCompare: this._depthTestEnabled ? Pi._GetCompareFunction(this._depthCompare) : \"always\",\n format: this._webgpuDepthStencilFormat,\n stencilFront: this._stencilEnabled && d ? c : void 0,\n stencilBack: this._stencilEnabled && d ? c : void 0,\n stencilReadMask: this._stencilEnabled && d ? this._stencilReadMask : void 0,\n stencilWriteMask: this._stencilEnabled && d ? this._stencilWriteMask : void 0,\n depthBias: this._depthBias,\n depthBiasClamp: this._depthBiasClamp,\n depthBiasSlopeScale: this._depthBiasSlopeScale\n }\n });\n }\n}\nPi.NumCacheHitWithoutHash = 0;\nPi.NumCacheHitWithHash = 0;\nPi.NumCacheMiss = 0;\nPi.NumPipelineCreationLastFrame = 0;\nPi._NumPipelineCreationCurrentFrame = 0;\nclass yg {\n constructor() {\n this.values = {};\n }\n count() {\n let e = 0, t = this.pipeline ? 1 : 0;\n for (const i in this.values) {\n const s = this.values[i], [r, n] = s.count();\n e += r, t += n, e++;\n }\n return [e, t];\n }\n}\nclass Yn extends Pi {\n static GetNodeCounts() {\n const e = Yn._Cache.count();\n return { nodeCount: e[0], pipelineCount: e[1] };\n }\n static _GetPipelines(e, t, i, s) {\n if (e.pipeline) {\n const r = i.slice();\n r.length = s, t.push(r);\n }\n for (const r in e.values) {\n const n = e.values[r];\n i[s] = parseInt(r), Yn._GetPipelines(n, t, i, s + 1);\n }\n }\n static GetPipelines() {\n const e = [];\n return Yn._GetPipelines(Yn._Cache, e, [], 0), e;\n }\n static ResetCache() {\n Yn._Cache = new yg();\n }\n reset() {\n this._nodeStack = [], this._nodeStack[0] = Yn._Cache, super.reset();\n }\n _getRenderPipeline(e) {\n let t = this._nodeStack[this._stateDirtyLowestIndex];\n for (let i = this._stateDirtyLowestIndex; i < this._statesLength; ++i) {\n let s = t.values[this._states[i]];\n s || (s = new yg(), t.values[this._states[i]] = s), t = s, this._nodeStack[i + 1] = t;\n }\n e.token = t, e.pipeline = t.pipeline;\n }\n _setRenderPipeline(e) {\n e.token.pipeline = e.pipeline;\n }\n}\nYn._Cache = new yg();\nclass MO extends xC {\n constructor(e) {\n super(!1), this._cache = e, this.reset();\n }\n get func() {\n return this._func;\n }\n set func(e) {\n this._func !== e && (this._func = e, this._cache.setStencilCompare(e));\n }\n get funcMask() {\n return this._funcMask;\n }\n set funcMask(e) {\n this._funcMask !== e && (this._funcMask = e, this._cache.setStencilReadMask(e));\n }\n get opStencilFail() {\n return this._opStencilFail;\n }\n set opStencilFail(e) {\n this._opStencilFail !== e && (this._opStencilFail = e, this._cache.setStencilFailOp(e));\n }\n get opDepthFail() {\n return this._opDepthFail;\n }\n set opDepthFail(e) {\n this._opDepthFail !== e && (this._opDepthFail = e, this._cache.setStencilDepthFailOp(e));\n }\n get opStencilDepthPass() {\n return this._opStencilDepthPass;\n }\n set opStencilDepthPass(e) {\n this._opStencilDepthPass !== e && (this._opStencilDepthPass = e, this._cache.setStencilPassOp(e));\n }\n get mask() {\n return this._mask;\n }\n set mask(e) {\n this._mask !== e && (this._mask = e, this._cache.setStencilWriteMask(e));\n }\n get enabled() {\n return this._enabled;\n }\n set enabled(e) {\n this._enabled !== e && (this._enabled = e, this._cache.setStencilEnabled(e));\n }\n reset() {\n super.reset(), this._cache.resetStencilState();\n }\n apply() {\n var t;\n const e = (t = this.stencilMaterial) == null ? void 0 : t.enabled;\n this.enabled = e ? this.stencilMaterial.enabled : this.stencilGlobal.enabled, this.enabled && (this.func = e ? this.stencilMaterial.func : this.stencilGlobal.func, this.funcRef = e ? this.stencilMaterial.funcRef : this.stencilGlobal.funcRef, this.funcMask = e ? this.stencilMaterial.funcMask : this.stencilGlobal.funcMask, this.opStencilFail = e ? this.stencilMaterial.opStencilFail : this.stencilGlobal.opStencilFail, this.opDepthFail = e ? this.stencilMaterial.opDepthFail : this.stencilGlobal.opDepthFail, this.opStencilDepthPass = e ? this.stencilMaterial.opStencilDepthPass : this.stencilGlobal.opStencilDepthPass, this.mask = e ? this.stencilMaterial.mask : this.stencilGlobal.mask);\n }\n}\nclass DO extends gC {\n /**\n * Initializes the state.\n * @param cache\n */\n constructor(e) {\n super(!1), this._cache = e, this.reset();\n }\n get zOffset() {\n return this._zOffset;\n }\n set zOffset(e) {\n this._zOffset !== e && (this._zOffset = e, this._isZOffsetDirty = !0, this._cache.setDepthBiasSlopeScale(e));\n }\n get zOffsetUnits() {\n return this._zOffsetUnits;\n }\n set zOffsetUnits(e) {\n this._zOffsetUnits !== e && (this._zOffsetUnits = e, this._isZOffsetDirty = !0, this._cache.setDepthBias(e));\n }\n get cullFace() {\n return this._cullFace;\n }\n set cullFace(e) {\n this._cullFace !== e && (this._cullFace = e, this._isCullFaceDirty = !0, this._cache.setCullFace(e ?? 1));\n }\n get cull() {\n return this._cull;\n }\n set cull(e) {\n this._cull !== e && (this._cull = e, this._isCullDirty = !0, this._cache.setCullEnabled(!!e));\n }\n get depthFunc() {\n return this._depthFunc;\n }\n set depthFunc(e) {\n this._depthFunc !== e && (this._depthFunc = e, this._isDepthFuncDirty = !0, this._cache.setDepthCompare(e));\n }\n get depthMask() {\n return this._depthMask;\n }\n set depthMask(e) {\n this._depthMask !== e && (this._depthMask = e, this._isDepthMaskDirty = !0, this._cache.setDepthWriteEnabled(e));\n }\n get depthTest() {\n return this._depthTest;\n }\n set depthTest(e) {\n this._depthTest !== e && (this._depthTest = e, this._isDepthTestDirty = !0, this._cache.setDepthTestEnabled(e));\n }\n get frontFace() {\n return this._frontFace;\n }\n set frontFace(e) {\n this._frontFace !== e && (this._frontFace = e, this._isFrontFaceDirty = !0, this._cache.setFrontFace(e ?? 2));\n }\n reset() {\n super.reset(), this._cache.resetDepthCullingState();\n }\n apply() {\n }\n}\nclass $C {\n /**\n * Checks if a texture is an external or internal texture\n * @param texture the external or internal texture\n * @returns true if the texture is an external texture, else false\n */\n static IsExternalTexture(e) {\n return e.underlyingResource !== void 0;\n }\n /**\n * Get the class name of the texture.\n * @returns \"ExternalTexture\"\n */\n getClassName() {\n return \"ExternalTexture\";\n }\n /**\n * Gets the underlying texture object\n */\n get underlyingResource() {\n return this._video;\n }\n /**\n * Constructs the texture\n * @param video The video the texture should be wrapped around\n */\n constructor(e) {\n this.useMipMaps = !1, this.type = 16, this.format = 4294967295, this._video = e, this.uniqueId = Nt._Counter++;\n }\n /**\n * Get if the texture is ready to be used (downloaded, converted, mip mapped...).\n * @returns true if fully ready\n */\n isReady() {\n return this._video.readyState >= this._video.HAVE_CURRENT_DATA;\n }\n /**\n * Dispose the texture and release its associated resources.\n */\n dispose() {\n }\n}\nclass u_ {\n get forceBindGroupCreation() {\n return this._numExternalTextures > 0;\n }\n get hasFloatOrDepthTextures() {\n return this._numFloatOrDepthTextures > 0;\n }\n constructor() {\n this.uniqueId = u_._Counter++, this.updateId = 0, this.textureState = 0, this.reset();\n }\n reset() {\n this.samplers = {}, this.textures = {}, this.isDirty = !0, this._numFloatOrDepthTextures = 0, this._numExternalTextures = 0;\n }\n setSampler(e, t) {\n let i = this.samplers[e], s = -1;\n i ? s = i.hashCode : this.samplers[e] = i = { sampler: t, hashCode: 0 }, i.sampler = t, i.hashCode = t ? bl.GetSamplerHashCode(t) : 0;\n const r = s !== i.hashCode;\n r && this.updateId++, this.isDirty || (this.isDirty = r);\n }\n setTexture(e, t) {\n var n;\n let i = this.textures[e], s = -1;\n i ? s = ((n = i.texture) == null ? void 0 : n.uniqueId) ?? -1 : this.textures[e] = i = { texture: t, isFloatOrDepthTexture: !1, isExternalTexture: !1 }, i.isExternalTexture && this._numExternalTextures--, i.isFloatOrDepthTexture && this._numFloatOrDepthTextures--, t ? (i.isFloatOrDepthTexture = t.type === 1 || t.format >= 13 && t.format <= 18, i.isExternalTexture = $C.IsExternalTexture(t), i.isFloatOrDepthTexture && this._numFloatOrDepthTextures++, i.isExternalTexture && this._numExternalTextures++) : (i.isFloatOrDepthTexture = !1, i.isExternalTexture = !1), i.texture = t;\n const r = s !== ((t == null ? void 0 : t.uniqueId) ?? -1);\n r && this.updateId++, this.isDirty || (this.isDirty = r);\n }\n}\nu_._Counter = 0;\nclass d_ {\n isDirty(e) {\n return this._isDirty || this._materialContextUpdateId !== e;\n }\n resetIsDirty(e) {\n this._isDirty = !1, this._materialContextUpdateId = e;\n }\n get useInstancing() {\n return this._useInstancing;\n }\n set useInstancing(e) {\n this._useInstancing !== e && (e ? (this.indirectDrawBuffer = this._bufferManager.createRawBuffer(20, Kt.CopyDst | Kt.Indirect | Kt.Storage, void 0, \"IndirectDrawBuffer\"), this._indirectDrawData = new Uint32Array(5), this._indirectDrawData[3] = 0, this._indirectDrawData[4] = 0) : (this.indirectDrawBuffer && this._bufferManager.releaseBuffer(this.indirectDrawBuffer), this.indirectDrawBuffer = void 0, this._indirectDrawData = void 0), this._useInstancing = e, this._currentInstanceCount = -1);\n }\n constructor(e) {\n this._bufferManager = e, this.uniqueId = d_._Counter++, this._useInstancing = !1, this._currentInstanceCount = 0, this.reset();\n }\n reset() {\n this.buffers = {}, this._isDirty = !0, this._materialContextUpdateId = 0, this.fastBundle = void 0, this.bindGroups = void 0;\n }\n setBuffer(e, t) {\n var i;\n this._isDirty || (this._isDirty = (t == null ? void 0 : t.uniqueId) !== ((i = this.buffers[e]) == null ? void 0 : i.uniqueId)), this.buffers[e] = t;\n }\n setIndirectData(e, t, i) {\n t === this._currentInstanceCount || !this.indirectDrawBuffer || !this._indirectDrawData || (this._currentInstanceCount = t, this._indirectDrawData[0] = e, this._indirectDrawData[1] = t, this._indirectDrawData[2] = i, this._bufferManager.setRawData(this.indirectDrawBuffer, 0, this._indirectDrawData, 0, 20));\n }\n dispose() {\n this.indirectDrawBuffer && (this._bufferManager.releaseBuffer(this.indirectDrawBuffer), this.indirectDrawBuffer = void 0, this._indirectDrawData = void 0), this.fastBundle = void 0, this.bindGroups = void 0, this.buffers = void 0;\n }\n}\nd_._Counter = 0;\nclass qc {\n constructor() {\n this.values = {};\n }\n}\nclass ii {\n static get Statistics() {\n return {\n totalCreated: ii.NumBindGroupsCreatedTotal,\n lastFrameCreated: ii.NumBindGroupsCreatedLastFrame,\n lookupLastFrame: ii.NumBindGroupsLookupLastFrame,\n noLookupLastFrame: ii.NumBindGroupsNoLookupLastFrame\n };\n }\n static ResetCache() {\n ii._Cache = new qc(), ii.NumBindGroupsCreatedTotal = 0, ii.NumBindGroupsCreatedLastFrame = 0, ii.NumBindGroupsLookupLastFrame = 0, ii.NumBindGroupsNoLookupLastFrame = 0, ii._NumBindGroupsCreatedCurrentFrame = 0, ii._NumBindGroupsLookupCurrentFrame = 0, ii._NumBindGroupsNoLookupCurrentFrame = 0;\n }\n constructor(e, t, i) {\n this.disabled = !1, this._device = e, this._cacheSampler = t, this._engine = i;\n }\n endFrame() {\n ii.NumBindGroupsCreatedLastFrame = ii._NumBindGroupsCreatedCurrentFrame, ii.NumBindGroupsLookupLastFrame = ii._NumBindGroupsLookupCurrentFrame, ii.NumBindGroupsNoLookupLastFrame = ii._NumBindGroupsNoLookupCurrentFrame, ii._NumBindGroupsCreatedCurrentFrame = 0, ii._NumBindGroupsLookupCurrentFrame = 0, ii._NumBindGroupsNoLookupCurrentFrame = 0;\n }\n /**\n * Cache is currently based on the uniform/storage buffers, samplers and textures used by the binding groups.\n * Note that all uniform buffers have an offset of 0 in Babylon and we don't have a use case where we would have the same buffer used with different capacity values:\n * that means we don't need to factor in the offset/size of the buffer in the cache, only the id\n * @param webgpuPipelineContext\n * @param drawContext\n * @param materialContext\n * @returns a bind group array\n */\n getBindGroups(e, t, i) {\n var l, h, c, u, d, f;\n let s, r = ii._Cache;\n const n = this.disabled || i.forceBindGroupCreation;\n if (!n) {\n if (!t.isDirty(i.updateId) && !i.isDirty)\n return ii._NumBindGroupsNoLookupCurrentFrame++, t.bindGroups;\n for (const p of e.shaderProcessingContext.bufferNames) {\n const _ = ((l = t.buffers[p]) == null ? void 0 : l.uniqueId) ?? 0;\n let m = r.values[_];\n m || (m = new qc(), r.values[_] = m), r = m;\n }\n for (const p of e.shaderProcessingContext.samplerNames) {\n const _ = ((h = i.samplers[p]) == null ? void 0 : h.hashCode) ?? 0;\n let m = r.values[_];\n m || (m = new qc(), r.values[_] = m), r = m;\n }\n for (const p of e.shaderProcessingContext.textureNames) {\n const _ = ((u = (c = i.textures[p]) == null ? void 0 : c.texture) == null ? void 0 : u.uniqueId) ?? 0;\n let m = r.values[_];\n m || (m = new qc(), r.values[_] = m), r = m;\n }\n s = r.bindGroups;\n }\n if (t.resetIsDirty(i.updateId), i.isDirty = !1, s)\n return t.bindGroups = s, ii._NumBindGroupsLookupCurrentFrame++, s;\n s = [], t.bindGroups = s, n || (r.bindGroups = s), ii.NumBindGroupsCreatedTotal++, ii._NumBindGroupsCreatedCurrentFrame++;\n const o = e.bindGroupLayouts[i.textureState];\n for (let p = 0; p < e.shaderProcessingContext.bindGroupLayoutEntries.length; p++) {\n const _ = e.shaderProcessingContext.bindGroupLayoutEntries[p], m = e.shaderProcessingContext.bindGroupEntries[p];\n for (let v = 0; v < _.length; v++) {\n const T = e.shaderProcessingContext.bindGroupLayoutEntries[p][v], E = e.shaderProcessingContext.bindGroupLayoutEntryInfo[p][T.binding], b = E.nameInArrayOfTexture ?? E.name;\n if (T.sampler) {\n const S = i.samplers[b];\n if (S) {\n const C = S.sampler;\n if (!C) {\n this._engine.dbgSanityChecks && L.Error(`Trying to bind a null sampler! entry=${JSON.stringify(T)}, name=${b}, bindingInfo=${JSON.stringify(S, (P, N) => P === \"texture\" ? \"\" : N)}, materialContext.uniqueId=${i.uniqueId}`, 50);\n continue;\n }\n m[v].resource = this._cacheSampler.getSampler(C, !1, S.hashCode, C.label);\n } else\n L.Error(`Sampler \"${b}\" could not be bound. entry=${JSON.stringify(T)}, materialContext=${JSON.stringify(i, (C, P) => C === \"texture\" || C === \"sampler\" ? \"\" : P)}`, 50);\n } else if (T.texture || T.storageTexture) {\n const S = i.textures[b];\n if (S) {\n if (this._engine.dbgSanityChecks && S.texture === null) {\n L.Error(`Trying to bind a null texture! entry=${JSON.stringify(T)}, bindingInfo=${JSON.stringify(S, (P, N) => P === \"texture\" ? \"\" : N)}, materialContext.uniqueId=${i.uniqueId}`, 50);\n continue;\n }\n const C = S.texture._hardwareTexture;\n if (this._engine.dbgSanityChecks && (!C || T.texture && !C.view || T.storageTexture && !C.viewForWriting)) {\n L.Error(`Trying to bind a null gpu texture or view! entry=${JSON.stringify(T)}, name=${b}, bindingInfo=${JSON.stringify(S, (P, N) => P === \"texture\" ? \"\" : N)}, isReady=${(d = S.texture) == null ? void 0 : d.isReady}, materialContext.uniqueId=${i.uniqueId}`, 50);\n continue;\n }\n m[v].resource = T.storageTexture ? C.viewForWriting : C.view;\n } else\n L.Error(`Texture \"${b}\" could not be bound. entry=${JSON.stringify(T)}, materialContext=${JSON.stringify(i, (C, P) => C === \"texture\" || C === \"sampler\" ? \"\" : P)}`, 50);\n } else if (T.externalTexture) {\n const S = i.textures[b];\n if (S) {\n if (this._engine.dbgSanityChecks && S.texture === null) {\n L.Error(`Trying to bind a null external texture! entry=${JSON.stringify(T)}, name=${b}, bindingInfo=${JSON.stringify(S, (P, N) => P === \"texture\" ? \"\" : N)}, materialContext.uniqueId=${i.uniqueId}`, 50);\n continue;\n }\n const C = S.texture.underlyingResource;\n if (this._engine.dbgSanityChecks && !C) {\n L.Error(`Trying to bind a null gpu external texture! entry=${JSON.stringify(T)}, name=${b}, bindingInfo=${JSON.stringify(S, (P, N) => P === \"texture\" ? \"\" : N)}, isReady=${(f = S.texture) == null ? void 0 : f.isReady}, materialContext.uniqueId=${i.uniqueId}`, 50);\n continue;\n }\n m[v].resource = this._device.importExternalTexture({ source: C });\n } else\n L.Error(`Texture \"${b}\" could not be bound. entry=${JSON.stringify(T)}, materialContext=${JSON.stringify(i, (C, P) => C === \"texture\" || C === \"sampler\" ? \"\" : P)}`, 50);\n } else if (T.buffer) {\n const S = t.buffers[b];\n if (S) {\n const C = S.underlyingResource;\n m[v].resource.buffer = C, m[v].resource.size = S.capacity;\n } else\n L.Error(`Can't find buffer \"${b}\". entry=${JSON.stringify(T)}, buffers=${JSON.stringify(t.buffers)}, drawContext.uniqueId=${t.uniqueId}`, 50);\n }\n }\n const x = o[p];\n s[p] = this._device.createBindGroup({\n layout: x,\n entries: m\n });\n }\n return s;\n }\n}\nii.NumBindGroupsCreatedTotal = 0;\nii.NumBindGroupsCreatedLastFrame = 0;\nii.NumBindGroupsLookupLastFrame = 0;\nii.NumBindGroupsNoLookupLastFrame = 0;\nii._Cache = new qc();\nii._NumBindGroupsCreatedCurrentFrame = 0;\nii._NumBindGroupsLookupCurrentFrame = 0;\nii._NumBindGroupsNoLookupCurrentFrame = 0;\nconst OO = \"clearQuadVertexShader\", wO = `uniform depthValue: f32;const pos=array(\nvec2f(-1.0,1.0),\nvec2f(1.0,1.0),\nvec2f(-1.0,-1.0),\nvec2f(1.0,-1.0)\n);\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input : VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvertexOutputs.position=vec4f(pos[input.vertexIndex],uniforms.depthValue,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\nz.ShadersStoreWGSL[OO] = wO;\nconst NO = \"clearQuadPixelShader\", FO = `uniform color: vec4f;@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=uniforms.color;}\n`;\nz.ShadersStoreWGSL[NO] = FO;\nclass LO {\n setDepthStencilFormat(e) {\n this._depthTextureFormat = e, this._cacheRenderPipeline.setDepthStencilFormat(e);\n }\n setColorFormat(e) {\n this._cacheRenderPipeline.setColorFormat(e);\n }\n setMRTAttachments(e, t, i) {\n this._cacheRenderPipeline.setMRT(t, i), this._cacheRenderPipeline.setMRTAttachments(e);\n }\n constructor(e, t, i) {\n this._bindGroups = {}, this._bundleCache = {}, this._keyTemp = [], this._device = e, this._engine = t, this._cacheRenderPipeline = new Yn(this._device, i), this._cacheRenderPipeline.setDepthTestEnabled(!1), this._cacheRenderPipeline.setStencilReadMask(255), this._effect = t.createEffect(\n \"clearQuad\",\n [],\n [\"color\", \"depthValue\"],\n void 0,\n void 0,\n void 0,\n void 0,\n void 0,\n void 0,\n 1\n /* ShaderLanguage.WGSL */\n );\n }\n clear(e, t, i, s, r = 1) {\n let n, o = null, l;\n const h = !!this._engine._currentRenderTarget;\n if (e)\n n = e;\n else {\n let m = 0;\n this._keyTemp.length = 0;\n for (let v = 0; v < this._cacheRenderPipeline.colorFormats.length; ++v)\n this._keyTemp[m++] = Ta[this._cacheRenderPipeline.colorFormats[v] ?? \"\"];\n const x = Ta[this._depthTextureFormat ?? 0];\n if (this._keyTemp[m] = (t ? t.r + t.g * 256 + t.b * 256 * 256 + t.a * 256 * 256 * 256 : 0) + (i ? 2 ** 32 : 0) + (s ? 2 ** 33 : 0) + (this._engine.useReverseDepthBuffer ? 2 ** 34 : 0) + (h ? 2 ** 35 : 0) + (r > 1 ? 2 ** 36 : 0) + x * 2 ** 37, l = this._keyTemp.join(\"_\"), o = this._bundleCache[l], o)\n return o;\n n = this._device.createRenderBundleEncoder({\n label: \"clearQuadRenderBundle\",\n colorFormats: this._cacheRenderPipeline.colorFormats,\n depthStencilFormat: this._depthTextureFormat,\n sampleCount: Bt.GetSample(r)\n });\n }\n this._cacheRenderPipeline.setDepthWriteEnabled(!!i), this._cacheRenderPipeline.setStencilEnabled(!!s && !!this._depthTextureFormat && Bt.HasStencilAspect(this._depthTextureFormat)), this._cacheRenderPipeline.setStencilWriteMask(s ? 255 : 0), this._cacheRenderPipeline.setStencilCompare(s ? 519 : 512), this._cacheRenderPipeline.setStencilPassOp(s ? 7681 : 7680), this._cacheRenderPipeline.setWriteMask(t ? 15 : 0);\n const c = this._cacheRenderPipeline.getRenderPipeline(7, this._effect, r), u = this._effect._pipelineContext;\n t && this._effect.setDirectColor4(\"color\", t), this._effect.setFloat(\"depthValue\", this._engine.useReverseDepthBuffer ? this._engine._clearReverseDepthValue : this._engine._clearDepthValue), u.uniformBuffer.update();\n const d = h ? this._engine._ubInvertY : this._engine._ubDontInvertY, f = u.uniformBuffer.getBuffer(), p = f.uniqueId + \"-\" + d.uniqueId;\n let _ = this._bindGroups[p];\n if (!_) {\n const m = u.bindGroupLayouts[0];\n _ = this._bindGroups[p] = [], _.push(this._device.createBindGroup({\n label: `clearQuadBindGroup0-${p}`,\n layout: m[0],\n entries: []\n })), an._SimplifiedKnownBindings || _.push(this._device.createBindGroup({\n label: `clearQuadBindGroup1-${p}`,\n layout: m[1],\n entries: []\n })), _.push(this._device.createBindGroup({\n label: `clearQuadBindGroup${an._SimplifiedKnownBindings ? 1 : 2}-${p}`,\n layout: m[an._SimplifiedKnownBindings ? 1 : 2],\n entries: [\n {\n binding: 0,\n resource: {\n buffer: d.underlyingResource,\n size: d.capacity\n }\n },\n {\n binding: 1,\n resource: {\n buffer: f.underlyingResource,\n size: f.capacity\n }\n }\n ]\n }));\n }\n n.setPipeline(c);\n for (let m = 0; m < _.length; ++m)\n n.setBindGroup(m, _[m]);\n return n.draw(4, 1, 0, 0), e || (o = n.finish(), this._bundleCache[l] = o), o;\n }\n}\nclass Ix {\n constructor(e, t, i, s) {\n this.x = Math.floor(e), this.y = Math.floor(t), this.w = Math.floor(i), this.h = Math.floor(s);\n }\n run(e) {\n e.setViewport(this.x, this.y, this.w, this.h, 0, 1);\n }\n clone() {\n return new Ix(this.x, this.y, this.w, this.h);\n }\n}\nclass Px {\n constructor(e, t, i, s) {\n this.x = e, this.y = t, this.w = i, this.h = s;\n }\n run(e) {\n e.setScissorRect(this.x, this.y, this.w, this.h);\n }\n clone() {\n return new Px(this.x, this.y, this.w, this.h);\n }\n}\nclass Lp {\n constructor(e) {\n this.ref = e;\n }\n run(e) {\n e.setStencilReference(this.ref);\n }\n clone() {\n return new Lp(this.ref);\n }\n}\nclass Mx {\n constructor(e) {\n this.color = e;\n }\n run(e) {\n e.setBlendConstant(this.color);\n }\n clone() {\n return new Mx(this.color);\n }\n}\nclass Dx {\n constructor(e) {\n this.query = e;\n }\n run(e) {\n e.beginOcclusionQuery(this.query);\n }\n clone() {\n return new Dx(this.query);\n }\n}\nclass Ox {\n constructor() {\n }\n run(e) {\n e.endOcclusionQuery();\n }\n clone() {\n return new Ox();\n }\n}\nclass wx {\n constructor() {\n this.bundles = [];\n }\n run(e) {\n e.executeBundles(this.bundles);\n }\n clone() {\n const e = new wx();\n return e.bundles = this.bundles, e;\n }\n}\nclass Nx {\n constructor(e) {\n this.numDrawCalls = 0, this._device = e, this._list = new Array(10), this._listLength = 0;\n }\n addBundle(e) {\n if (!this._currentItemIsBundle) {\n const t = new wx();\n this._list[this._listLength++] = t, this._currentBundleList = t.bundles, this._currentItemIsBundle = !0;\n }\n e && this._currentBundleList.push(e);\n }\n _finishBundle() {\n this._currentItemIsBundle && this._bundleEncoder && (this._currentBundleList.push(this._bundleEncoder.finish()), this._bundleEncoder = void 0, this._currentItemIsBundle = !1);\n }\n addItem(e) {\n this._finishBundle(), this._list[this._listLength++] = e, this._currentItemIsBundle = !1;\n }\n getBundleEncoder(e, t, i) {\n return this._currentItemIsBundle || (this.addBundle(), this._bundleEncoder = this._device.createRenderBundleEncoder({\n colorFormats: e,\n depthStencilFormat: t,\n sampleCount: Bt.GetSample(i)\n })), this._bundleEncoder;\n }\n close() {\n this._finishBundle();\n }\n run(e) {\n this.close();\n for (let t = 0; t < this._listLength; ++t)\n this._list[t].run(e);\n }\n reset() {\n this._listLength = 0, this._currentItemIsBundle = !1, this.numDrawCalls = 0;\n }\n clone() {\n this.close();\n const e = new Nx(this._device);\n e._list = new Array(this._listLength), e._listLength = this._listLength, e.numDrawCalls = this.numDrawCalls;\n for (let t = 0; t < this._listLength; ++t)\n e._list[t] = this._list[t].clone();\n return e;\n }\n}\nclass YC {\n get querySet() {\n return this._querySet;\n }\n constructor(e, t, i, s, r, n = !0, o) {\n this._dstBuffers = [], this._engine = e, this._device = s, this._bufferManager = r, this._count = t, this._canUseMultipleBuffers = n, this._querySet = s.createQuerySet({\n label: o ?? \"QuerySet\",\n type: i,\n count: t\n }), this._queryBuffer = r.createRawBuffer(8 * t, Kt.QueryResolve | Kt.CopySrc, void 0, \"QueryBuffer\"), n || this._dstBuffers.push(this._bufferManager.createRawBuffer(8 * this._count, Kt.MapRead | Kt.CopyDst, void 0, \"QueryBufferNoMultipleBuffers\"));\n }\n _getBuffer(e, t) {\n if (!this._canUseMultipleBuffers && this._dstBuffers.length === 0)\n return null;\n const i = this._device.createCommandEncoder();\n let s;\n return this._dstBuffers.length === 0 ? s = this._bufferManager.createRawBuffer(8 * this._count, Kt.MapRead | Kt.CopyDst, void 0, \"QueryBufferAdditionalBuffer\") : (s = this._dstBuffers[this._dstBuffers.length - 1], this._dstBuffers.length--), i.resolveQuerySet(this._querySet, e, t, this._queryBuffer, 0), i.copyBufferToBuffer(this._queryBuffer, 0, s, 0, 8 * t), this._device.queue.submit([i.finish()]), s;\n }\n async readValues(e = 0, t = 1) {\n const i = this._getBuffer(e, t);\n if (i === null)\n return null;\n const s = this._engine.uniqueId;\n return i.mapAsync(\n 1\n /* WebGPUConstants.MapMode.Read */\n ).then(() => {\n const r = new BigUint64Array(i.getMappedRange()).slice();\n return i.unmap(), this._dstBuffers[this._dstBuffers.length] = i, r;\n }, (r) => {\n if (this._engine.isDisposed || this._engine.uniqueId !== s)\n return null;\n throw r;\n });\n }\n async readValue(e = 0) {\n const t = this._getBuffer(e, 1);\n if (t === null)\n return null;\n const i = this._engine.uniqueId;\n return t.mapAsync(\n 1\n /* WebGPUConstants.MapMode.Read */\n ).then(() => {\n const s = new BigUint64Array(t.getMappedRange()), r = Number(s[0]);\n return t.unmap(), this._dstBuffers[this._dstBuffers.length] = t, r;\n }, (s) => {\n if (this._engine.isDisposed || this._engine.uniqueId !== i)\n return 0;\n throw s;\n });\n }\n async readTwoValuesAndSubtract(e = 0) {\n const t = this._getBuffer(e, 2);\n if (t === null)\n return null;\n const i = this._engine.uniqueId;\n return t.mapAsync(\n 1\n /* WebGPUConstants.MapMode.Read */\n ).then(() => {\n const s = new BigUint64Array(t.getMappedRange()), r = Number(s[1] - s[0]);\n return t.unmap(), this._dstBuffers[this._dstBuffers.length] = t, r;\n }, (s) => {\n if (this._engine.isDisposed || this._engine.uniqueId !== i)\n return 0;\n throw s;\n });\n }\n dispose() {\n this._querySet.destroy(), this._bufferManager.releaseBuffer(this._queryBuffer);\n for (let e = 0; e < this._dstBuffers.length; ++e)\n this._bufferManager.releaseBuffer(this._dstBuffers[e]);\n }\n}\nclass BO {\n get gpuFrameTimeCounter() {\n return this._gpuFrameTimeCounter;\n }\n constructor(e, t, i) {\n this._enabled = !1, this._gpuFrameTimeCounter = new nn(), this._measureDurationState = 0, this._engine = e, this._device = t, this._bufferManager = i;\n }\n get enable() {\n return this._enabled;\n }\n set enable(e) {\n if (this._enabled !== e)\n if (this._enabled = e, this._measureDurationState = 0, e)\n try {\n this._measureDuration = new VO(this._engine, this._device, this._bufferManager, 2e3, \"QuerySet_TimestampQuery\");\n } catch (t) {\n this._enabled = !1, L.Error(`Could not create a WebGPUDurationMeasure!\nError: ` + t.message + `\nMake sure timestamp query is supported and enabled in your browser.`);\n return;\n }\n else\n this._measureDuration.dispose();\n }\n startFrame(e) {\n this._enabled && this._measureDurationState === 0 && (this._measureDuration.start(e), this._measureDurationState = 1);\n }\n endFrame(e) {\n this._measureDurationState === 1 && (this._measureDurationState = 2, this._measureDuration.stop(e).then((t) => {\n t !== null && t >= 0 && (this._gpuFrameTimeCounter.fetchNewFrame(), this._gpuFrameTimeCounter.addCount(t, !0)), this._measureDurationState = 0;\n }));\n }\n startPass(e, t) {\n this._enabled ? this._measureDuration.startPass(e, t) : e.timestampWrites = void 0;\n }\n endPass(e, t) {\n if (!this._enabled || !t)\n return;\n const i = this._engine.frameId;\n this._measureDuration.stopPass(e).then((s) => {\n t._addDuration(i, s !== null && s > 0 ? s : 0);\n });\n }\n dispose() {\n var e;\n (e = this._measureDuration) == null || e.dispose();\n }\n}\nclass VO {\n constructor(e, t, i, s = 2, r) {\n this._count = s, this._querySet = new YC(e, s, \"timestamp\", t, i, !0, r);\n }\n start(e) {\n var t;\n (t = e.writeTimestamp) == null || t.call(e, this._querySet.querySet, 0);\n }\n async stop(e) {\n var t;\n return (t = e.writeTimestamp) == null || t.call(e, this._querySet.querySet, 1), e.writeTimestamp ? this._querySet.readTwoValuesAndSubtract(0) : 0;\n }\n startPass(e, t) {\n if (t + 3 > this._count)\n throw new Error(\"WebGPUDurationMeasure: index out of range (\" + t + \")\");\n e.timestampWrites = {\n querySet: this._querySet.querySet,\n beginningOfPassWriteIndex: t + 2,\n endOfPassWriteIndex: t + 3\n };\n }\n async stopPass(e) {\n return this._querySet.readTwoValuesAndSubtract(e + 2);\n }\n dispose() {\n this._querySet.dispose();\n }\n}\nclass UO {\n get querySet() {\n return this._querySet.querySet;\n }\n get hasQueries() {\n return this._currentTotalIndices !== this._availableIndices.length;\n }\n canBeginQuery(e) {\n if (this._frameQuerySetIsDirty === this._engine.frameId || this._queryFrameId[e] === this._engine.frameId)\n return !1;\n const t = this._engine._getCurrentRenderPassWrapper().renderPassDescriptor.occlusionQuerySet !== void 0;\n return t && (this._queryFrameId[e] = this._engine.frameId), t;\n }\n constructor(e, t, i, s = 50, r = 100) {\n this._availableIndices = [], this._frameQuerySetIsDirty = -1, this._queryFrameId = [], this._engine = e, this._device = t, this._bufferManager = i, this._frameLastBuffer = -1, this._currentTotalIndices = 0, this._countIncrement = r, this._allocateNewIndices(s);\n }\n createQuery() {\n this._availableIndices.length === 0 && this._allocateNewIndices();\n const e = this._availableIndices[this._availableIndices.length - 1];\n return this._availableIndices.length--, e;\n }\n deleteQuery(e) {\n this._availableIndices[this._availableIndices.length] = e;\n }\n isQueryResultAvailable(e) {\n return this._retrieveQueryBuffer(), !!this._lastBuffer && e < this._lastBuffer.length;\n }\n getQueryResult(e) {\n var t;\n return Number(((t = this._lastBuffer) == null ? void 0 : t[e]) ?? -1);\n }\n _retrieveQueryBuffer() {\n this._lastBuffer && this._frameLastBuffer === this._engine.frameId || this._frameLastBuffer !== this._engine.frameId && (this._frameLastBuffer = this._engine.frameId, this._querySet.readValues(0, this._currentTotalIndices).then((e) => {\n this._lastBuffer = e;\n }));\n }\n _allocateNewIndices(e) {\n e = e ?? this._countIncrement, this._delayQuerySetDispose();\n for (let t = 0; t < e; ++t)\n this._availableIndices.push(this._currentTotalIndices + t);\n this._currentTotalIndices += e, this._querySet = new YC(this._engine, this._currentTotalIndices, \"occlusion\", this._device, this._bufferManager, !1, \"QuerySet_OcclusionQuery_count_\" + this._currentTotalIndices), this._frameQuerySetIsDirty = this._engine.frameId;\n }\n _delayQuerySetDispose() {\n const e = this._querySet;\n e && setTimeout(() => e.dispose, 1e3);\n }\n dispose() {\n var e;\n (e = this._querySet) == null || e.dispose(), this._availableIndices.length = 0;\n }\n}\nclass yl {\n /** Gets the code after the inlining process */\n get code() {\n return this._sourceCode;\n }\n /**\n * Initializes the inliner\n * @param sourceCode shader code source to inline\n * @param numMaxIterations maximum number of iterations (used to detect recursive calls)\n */\n constructor(e, t = 20) {\n this.debug = !1, this._sourceCode = e, this._numMaxIterations = t, this._functionDescr = [], this.inlineToken = \"#define inline\";\n }\n /**\n * Start the processing of the shader code\n */\n processCode() {\n this.debug && L.Log(`Start inlining process (code size=${this._sourceCode.length})...`), this._collectFunctions(), this._processInlining(this._numMaxIterations), this.debug && L.Log(\"End of inlining process.\");\n }\n _collectFunctions() {\n let e = 0;\n for (; e < this._sourceCode.length; ) {\n const t = this._sourceCode.indexOf(this.inlineToken, e);\n if (t < 0)\n break;\n const i = this._sourceCode.indexOf(\"(\", t + this.inlineToken.length);\n if (i < 0) {\n this.debug && L.Warn(`Could not find the opening parenthesis after the token. startIndex=${e}`), e = t + this.inlineToken.length;\n continue;\n }\n const s = yl._RegexpFindFunctionNameAndType.exec(this._sourceCode.substring(t + this.inlineToken.length, i));\n if (!s) {\n this.debug && L.Warn(`Could not extract the name/type of the function from: ${this._sourceCode.substring(t + this.inlineToken.length, i)}`), e = t + this.inlineToken.length;\n continue;\n }\n const [r, n] = [s[3], s[4]], o = tp(\"(\", \")\", this._sourceCode, i);\n if (o < 0) {\n this.debug && L.Warn(`Could not extract the parameters the function '${n}' (type=${r}). funcParamsStartIndex=${i}`), e = t + this.inlineToken.length;\n continue;\n }\n const l = this._sourceCode.substring(i + 1, o), h = Sb(this._sourceCode, o + 1);\n if (h === this._sourceCode.length) {\n this.debug && L.Warn(`Could not extract the body of the function '${n}' (type=${r}). funcParamsEndIndex=${o}`), e = t + this.inlineToken.length;\n continue;\n }\n const c = tp(\"{\", \"}\", this._sourceCode, h);\n if (c < 0) {\n this.debug && L.Warn(`Could not extract the body of the function '${n}' (type=${r}). funcBodyStartIndex=${h}`), e = t + this.inlineToken.length;\n continue;\n }\n const u = this._sourceCode.substring(h, c + 1), d = Eg(l).split(\",\"), f = [];\n for (let m = 0; m < d.length; ++m) {\n const x = d[m].trim(), v = x.lastIndexOf(\" \");\n v >= 0 && f.push(x.substring(v + 1));\n }\n r !== \"void\" && f.push(\"return\"), this._functionDescr.push({\n name: n,\n type: r,\n parameters: f,\n body: u,\n callIndex: 0\n }), e = c + 1;\n const p = t > 0 ? this._sourceCode.substring(0, t) : \"\", _ = c + 1 < this._sourceCode.length - 1 ? this._sourceCode.substring(c + 1) : \"\";\n this._sourceCode = p + _, e -= c + 1 - t;\n }\n this.debug && L.Log(`Collect functions: ${this._functionDescr.length} functions found. functionDescr=${this._functionDescr}`);\n }\n _processInlining(e = 20) {\n for (; e-- >= 0 && this._replaceFunctionCallsByCode(); )\n ;\n return this.debug && L.Log(`numMaxIterations is ${e} after inlining process`), e >= 0;\n }\n _replaceFunctionCallsByCode() {\n let e = !1;\n for (const t of this._functionDescr) {\n const { name: i, type: s, parameters: r, body: n } = t;\n let o = 0;\n for (; o < this._sourceCode.length; ) {\n const l = this._sourceCode.indexOf(i, o);\n if (l < 0)\n break;\n if (l === 0 || Fm(this._sourceCode.charAt(l - 1))) {\n o = l + i.length;\n continue;\n }\n const h = Sb(this._sourceCode, l + i.length);\n if (h === this._sourceCode.length || this._sourceCode.charAt(h) !== \"(\") {\n o = l + i.length;\n continue;\n }\n const c = tp(\"(\", \")\", this._sourceCode, h);\n if (c < 0) {\n this.debug && L.Warn(`Could not extract the parameters of the function call. Function '${i}' (type=${s}). callParamsStartIndex=${h}`), o = l + i.length;\n continue;\n }\n const u = this._sourceCode.substring(h + 1, c), f = ((T) => {\n const E = [];\n let b = 0, S = 0;\n for (; b < T.length; ) {\n if (T.charAt(b) === \"(\") {\n const C = tp(\"(\", \")\", T, b);\n if (C < 0)\n return null;\n b = C;\n } else T.charAt(b) === \",\" && (E.push(T.substring(S, b)), S = b + 1);\n b++;\n }\n return S < b && E.push(T.substring(S, b)), E;\n })(Eg(u));\n if (f === null) {\n this.debug && L.Warn(`Invalid function call: can't extract the parameters of the function call. Function '${i}' (type=${s}). callParamsStartIndex=${h}, callParams=` + u), o = l + i.length;\n continue;\n }\n const p = [];\n for (let T = 0; T < f.length; ++T) {\n const E = f[T].trim();\n p.push(E);\n }\n const _ = s !== \"void\" ? i + \"_\" + t.callIndex++ : null;\n if (_ && p.push(_ + \" =\"), p.length !== r.length) {\n this.debug && L.Warn(`Invalid function call: not the same number of parameters for the call than the number expected by the function. Function '${i}' (type=${s}). function parameters=${r}, call parameters=${p}`), o = l + i.length;\n continue;\n }\n o = c + 1;\n const m = this._replaceNames(n, r, p);\n let x = l > 0 ? this._sourceCode.substring(0, l) : \"\";\n const v = c + 1 < this._sourceCode.length - 1 ? this._sourceCode.substring(c + 1) : \"\";\n if (_) {\n const T = AM(this._sourceCode, l - 1, `\n`, \"{\");\n x = this._sourceCode.substring(0, T + 1);\n const E = this._sourceCode.substring(T + 1, l);\n this._sourceCode = x + s + \" \" + _ + `;\n` + m + `\n` + E + _ + v, this.debug && L.Log(`Replace function call by code. Function '${i}' (type=${s}). injectDeclarationIndex=${T}, call parameters=${p}`);\n } else\n this._sourceCode = x + m + v, o += m.length - (c + 1 - l), this.debug && L.Log(`Replace function call by code. Function '${i}' (type=${s}). functionCallIndex=${l}, call parameters=${p}`);\n e = !0;\n }\n }\n return e;\n }\n _replaceNames(e, t, i) {\n for (let s = 0; s < t.length; ++s) {\n const r = new RegExp(RM(t[s]), \"g\"), n = t[s].length, o = i[s];\n e = e.replace(r, (l, ...h) => {\n const c = h[0];\n return Fm(e.charAt(c - 1)) || Fm(e.charAt(c + n)) ? t[s] : o;\n });\n }\n return e;\n }\n}\nyl._RegexpFindFunctionNameAndType = /((\\s+?)(\\w+)\\s+(\\w+)\\s*?)$/;\nclass tn {\n async initTwgsl(e) {\n if (!tn._Twgsl)\n return e = e || {}, e = {\n ...tn._TWgslDefaultOptions,\n ...e\n }, e.twgsl ? (tn._Twgsl = e.twgsl, Promise.resolve()) : (e.jsPath && e.wasmPath && await J.LoadBabylonScriptAsync(e.jsPath), self.twgsl ? (tn._Twgsl = await self.twgsl(J.GetBabylonScriptURL(e.wasmPath)), Promise.resolve()) : Promise.reject(\"twgsl is not available.\"));\n }\n convertSpirV2WGSL(e, t = !1) {\n const i = tn._Twgsl.convertSpirV2WGSL(e, tn.DisableUniformityAnalysis || t);\n return tn.ShowWGSLShaderCode && (L.Log(i), L.Log(\"***********************************************\")), tn.DisableUniformityAnalysis || t ? `diagnostic(off, derivative_uniformity);\n` + i : i;\n }\n}\ntn._TWgslDefaultOptions = {\n jsPath: `${J._DefaultCdnUrl}/twgsl/twgsl.js`,\n wasmPath: `${J._DefaultCdnUrl}/twgsl/twgsl.wasm`\n};\ntn.ShowWGSLShaderCode = !1;\ntn.DisableUniformityAnalysis = !1;\ntn._Twgsl = null;\nclass kO {\n constructor(e, t, i) {\n this._record = !1, this._play = !1, this._playBundleListIndex = 0, this._allBundleLists = [], this._enabled = !1, this._engine = e, this._mode = t, this._bundleList = i;\n }\n get enabled() {\n return this._enabled;\n }\n get play() {\n return this._play;\n }\n get record() {\n return this._record;\n }\n set enabled(e) {\n this._allBundleLists.length = 0, this._record = this._enabled = e, this._play = !1, e && (this._modeSaved = this._mode, this._mode = 0);\n }\n get mode() {\n return this._mode;\n }\n set mode(e) {\n this._record ? this._modeSaved = e : this._mode = e;\n }\n endRenderPass(e) {\n if (!this._record && !this._play)\n return !1;\n let t;\n if (this._record)\n t = this._bundleList.clone(), this._allBundleLists.push(t), this._bundleList.reset();\n else {\n if (this._playBundleListIndex >= this._allBundleLists.length)\n throw new Error(`Invalid playBundleListIndex! Your snapshot is no longer valid for the current frame, you should recreate a new one. playBundleListIndex=${this._playBundleListIndex}, allBundleLists.length=${this._allBundleLists.length}}`);\n t = this._allBundleLists[this._playBundleListIndex++];\n }\n return t.run(e), this._mode === 1 && this._engine._reportDrawCall(t.numDrawCalls), !0;\n }\n endFrame() {\n this._record && (this._record = !1, this._play = !0, this._mode = this._modeSaved), this._playBundleListIndex = 0;\n }\n reset() {\n this.enabled = !1, this.enabled = !0;\n }\n}\nconst Hc = (() => {\n const a = new Uint8Array(4), e = new Uint32Array(a.buffer);\n return !!((e[0] = 1) & a[0]);\n})();\nObject.defineProperty(R.prototype, \"effectiveByteStride\", {\n get: function() {\n return this._alignedBuffer && this._alignedBuffer.byteStride || this.byteStride;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(R.prototype, \"effectiveByteOffset\", {\n get: function() {\n return this._alignedBuffer ? 0 : this.byteOffset;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(R.prototype, \"effectiveBuffer\", {\n get: function() {\n return this._alignedBuffer && this._alignedBuffer.getBuffer() || this._buffer.getBuffer();\n },\n enumerable: !0,\n configurable: !0\n});\nR.prototype._rebuild = function() {\n var a, e;\n (a = this._buffer) == null || a._rebuild(), (e = this._alignedBuffer) == null || e._rebuild();\n};\nR.prototype.dispose = function() {\n var a;\n this._ownsBuffer && this._buffer.dispose(), (a = this._alignedBuffer) == null || a.dispose(), this._alignedBuffer = void 0, this._isDisposed = !0;\n};\nR.prototype.getWrapperBuffer = function() {\n return this._alignedBuffer || this._buffer;\n};\nR.prototype._alignBuffer = function() {\n var u;\n const a = this._buffer.getData();\n if (!this.engine._features.forceVertexBufferStrideAndOffsetMultiple4Bytes || this.byteStride % 4 === 0 && this.byteOffset % 4 === 0 || !a)\n return;\n const e = R.GetTypeByteLength(this.type), t = this.byteStride + 3 & -4, i = t / e, s = this._maxVerticesCount, n = s * t / e;\n let o;\n if (Array.isArray(a)) {\n const d = new Float32Array(a);\n o = new DataView(d.buffer, d.byteOffset, d.byteLength);\n } else a instanceof ArrayBuffer ? o = new DataView(a, 0, a.byteLength) : o = new DataView(a.buffer, a.byteOffset, a.byteLength);\n let l;\n this.type === R.BYTE ? l = new Int8Array(n) : this.type === R.UNSIGNED_BYTE ? l = new Uint8Array(n) : this.type === R.SHORT ? l = new Int16Array(n) : this.type === R.UNSIGNED_SHORT ? l = new Uint16Array(n) : this.type === R.INT ? l = new Int32Array(n) : this.type === R.UNSIGNED_INT ? l = new Uint32Array(n) : l = new Float32Array(n);\n const h = this.getSize();\n let c = this.byteOffset;\n for (let d = 0; d < s; ++d) {\n for (let f = 0; f < h; ++f)\n switch (this.type) {\n case R.BYTE:\n l[d * i + f] = o.getInt8(c + f);\n break;\n case R.UNSIGNED_BYTE:\n l[d * i + f] = o.getUint8(c + f);\n break;\n case R.SHORT:\n l[d * i + f] = o.getInt16(c + f * 2, Hc);\n break;\n case R.UNSIGNED_SHORT:\n l[d * i + f] = o.getUint16(c + f * 2, Hc);\n break;\n case R.INT:\n l[d * i + f] = o.getInt32(c + f * 4, Hc);\n break;\n case R.UNSIGNED_INT:\n l[d * i + f] = o.getUint32(c + f * 4, Hc);\n break;\n case R.FLOAT:\n l[d * i + f] = o.getFloat32(c + f * 4, Hc);\n break;\n }\n c += this.byteStride;\n }\n (u = this._alignedBuffer) == null || u.dispose(), this._alignedBuffer = new ys(this.engine, l, !1, t, !1, this.getIsInstanced(), !0, this.instanceDivisor, (this._label ?? \"VertexBuffer\") + \"_aligned\");\n};\nconst GO = \"postprocessVertexShader\", zO = `attribute position: vec2;uniform scale: vec2;varying vUV: vec2;const madd=vec2(0.5,0.5);\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input : VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvertexOutputs.vUV=(vertexInputs.position*madd+madd)*uniforms.scale;vertexOutputs.position=vec4(vertexInputs.position,0.0,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\nz.ShadersStoreWGSL[GO] = zO;\nclass Fx {\n constructor() {\n this._gpuTimeInFrameId = -1, this.counter = new nn();\n }\n /**\n * @internal\n */\n _addDuration(e, t) {\n e < this._gpuTimeInFrameId || (this._gpuTimeInFrameId !== e ? (this.counter._fetchResult(), this.counter.fetchNewFrame(), this.counter.addCount(t, !1), this._gpuTimeInFrameId = e) : this.counter.addCount(t, !1));\n }\n}\nconst da = [\n Math.sqrt(1 / (4 * Math.PI)),\n -Math.sqrt(3 / (4 * Math.PI)),\n Math.sqrt(3 / (4 * Math.PI)),\n -Math.sqrt(3 / (4 * Math.PI)),\n Math.sqrt(15 / (4 * Math.PI)),\n -Math.sqrt(15 / (4 * Math.PI)),\n Math.sqrt(5 / (16 * Math.PI)),\n -Math.sqrt(15 / (4 * Math.PI)),\n Math.sqrt(15 / (16 * Math.PI))\n // l22\n], WO = [\n () => 1,\n (a) => a.y,\n (a) => a.z,\n (a) => a.x,\n (a) => a.x * a.y,\n (a) => a.y * a.z,\n (a) => 3 * a.z * a.z - 1,\n (a) => a.x * a.z,\n (a) => a.x * a.x - a.y * a.y\n // l22\n], Wa = (a, e) => da[a] * WO[a](e), Ha = [Math.PI, 2 * Math.PI / 3, 2 * Math.PI / 3, 2 * Math.PI / 3, Math.PI / 4, Math.PI / 4, Math.PI / 4, Math.PI / 4, Math.PI / 4];\nclass Xh {\n constructor() {\n this.preScaled = !1, this.l00 = g.Zero(), this.l1_1 = g.Zero(), this.l10 = g.Zero(), this.l11 = g.Zero(), this.l2_2 = g.Zero(), this.l2_1 = g.Zero(), this.l20 = g.Zero(), this.l21 = g.Zero(), this.l22 = g.Zero();\n }\n /**\n * Adds a light to the spherical harmonics\n * @param direction the direction of the light\n * @param color the color of the light\n * @param deltaSolidAngle the delta solid angle of the light\n */\n addLight(e, t, i) {\n w.Vector3[0].set(t.r, t.g, t.b);\n const s = w.Vector3[0], r = w.Vector3[1];\n s.scaleToRef(i, r), r.scaleToRef(Wa(0, e), w.Vector3[2]), this.l00.addInPlace(w.Vector3[2]), r.scaleToRef(Wa(1, e), w.Vector3[2]), this.l1_1.addInPlace(w.Vector3[2]), r.scaleToRef(Wa(2, e), w.Vector3[2]), this.l10.addInPlace(w.Vector3[2]), r.scaleToRef(Wa(3, e), w.Vector3[2]), this.l11.addInPlace(w.Vector3[2]), r.scaleToRef(Wa(4, e), w.Vector3[2]), this.l2_2.addInPlace(w.Vector3[2]), r.scaleToRef(Wa(5, e), w.Vector3[2]), this.l2_1.addInPlace(w.Vector3[2]), r.scaleToRef(Wa(6, e), w.Vector3[2]), this.l20.addInPlace(w.Vector3[2]), r.scaleToRef(Wa(7, e), w.Vector3[2]), this.l21.addInPlace(w.Vector3[2]), r.scaleToRef(Wa(8, e), w.Vector3[2]), this.l22.addInPlace(w.Vector3[2]);\n }\n /**\n * Scales the spherical harmonics by the given amount\n * @param scale the amount to scale\n */\n scaleInPlace(e) {\n this.l00.scaleInPlace(e), this.l1_1.scaleInPlace(e), this.l10.scaleInPlace(e), this.l11.scaleInPlace(e), this.l2_2.scaleInPlace(e), this.l2_1.scaleInPlace(e), this.l20.scaleInPlace(e), this.l21.scaleInPlace(e), this.l22.scaleInPlace(e);\n }\n /**\n * Convert from incident radiance (Li) to irradiance (E) by applying convolution with the cosine-weighted hemisphere.\n *\n * ```\n * E_lm = A_l * L_lm\n * ```\n *\n * In spherical harmonics this convolution amounts to scaling factors for each frequency band.\n * This corresponds to equation 5 in \"An Efficient Representation for Irradiance Environment Maps\", where\n * the scaling factors are given in equation 9.\n */\n convertIncidentRadianceToIrradiance() {\n this.l00.scaleInPlace(Ha[0]), this.l1_1.scaleInPlace(Ha[1]), this.l10.scaleInPlace(Ha[2]), this.l11.scaleInPlace(Ha[3]), this.l2_2.scaleInPlace(Ha[4]), this.l2_1.scaleInPlace(Ha[5]), this.l20.scaleInPlace(Ha[6]), this.l21.scaleInPlace(Ha[7]), this.l22.scaleInPlace(Ha[8]);\n }\n /**\n * Convert from irradiance to outgoing radiance for Lambertian BDRF, suitable for efficient shader evaluation.\n *\n * ```\n * L = (1/pi) * E * rho\n * ```\n *\n * This is done by an additional scale by 1/pi, so is a fairly trivial operation but important conceptually.\n */\n convertIrradianceToLambertianRadiance() {\n this.scaleInPlace(1 / Math.PI);\n }\n /**\n * Integrates the reconstruction coefficients directly in to the SH preventing further\n * required operations at run time.\n *\n * This is simply done by scaling back the SH with Ylm constants parameter.\n * The trigonometric part being applied by the shader at run time.\n */\n preScaleForRendering() {\n this.preScaled = !0, this.l00.scaleInPlace(da[0]), this.l1_1.scaleInPlace(da[1]), this.l10.scaleInPlace(da[2]), this.l11.scaleInPlace(da[3]), this.l2_2.scaleInPlace(da[4]), this.l2_1.scaleInPlace(da[5]), this.l20.scaleInPlace(da[6]), this.l21.scaleInPlace(da[7]), this.l22.scaleInPlace(da[8]);\n }\n /**\n * update the spherical harmonics coefficients from the given array\n * @param data defines the 9x3 coefficients (l00, l1-1, l10, l11, l2-2, l2-1, l20, l21, l22)\n * @returns the spherical harmonics (this)\n */\n updateFromArray(e) {\n return g.FromArrayToRef(e[0], 0, this.l00), g.FromArrayToRef(e[1], 0, this.l1_1), g.FromArrayToRef(e[2], 0, this.l10), g.FromArrayToRef(e[3], 0, this.l11), g.FromArrayToRef(e[4], 0, this.l2_2), g.FromArrayToRef(e[5], 0, this.l2_1), g.FromArrayToRef(e[6], 0, this.l20), g.FromArrayToRef(e[7], 0, this.l21), g.FromArrayToRef(e[8], 0, this.l22), this;\n }\n /**\n * update the spherical harmonics coefficients from the given floats array\n * @param data defines the 9x3 coefficients (l00, l1-1, l10, l11, l2-2, l2-1, l20, l21, l22)\n * @returns the spherical harmonics (this)\n */\n updateFromFloatsArray(e) {\n return g.FromFloatsToRef(e[0], e[1], e[2], this.l00), g.FromFloatsToRef(e[3], e[4], e[5], this.l1_1), g.FromFloatsToRef(e[6], e[7], e[8], this.l10), g.FromFloatsToRef(e[9], e[10], e[11], this.l11), g.FromFloatsToRef(e[12], e[13], e[14], this.l2_2), g.FromFloatsToRef(e[15], e[16], e[17], this.l2_1), g.FromFloatsToRef(e[18], e[19], e[20], this.l20), g.FromFloatsToRef(e[21], e[22], e[23], this.l21), g.FromFloatsToRef(e[24], e[25], e[26], this.l22), this;\n }\n /**\n * Constructs a spherical harmonics from an array.\n * @param data defines the 9x3 coefficients (l00, l1-1, l10, l11, l2-2, l2-1, l20, l21, l22)\n * @returns the spherical harmonics\n */\n static FromArray(e) {\n return new Xh().updateFromArray(e);\n }\n // Keep for references.\n /**\n * Gets the spherical harmonics from polynomial\n * @param polynomial the spherical polynomial\n * @returns the spherical harmonics\n */\n static FromPolynomial(e) {\n const t = new Xh();\n return t.l00 = e.xx.scale(0.376127).add(e.yy.scale(0.376127)).add(e.zz.scale(0.376126)), t.l1_1 = e.y.scale(0.977204), t.l10 = e.z.scale(0.977204), t.l11 = e.x.scale(0.977204), t.l2_2 = e.xy.scale(1.16538), t.l2_1 = e.yz.scale(1.16538), t.l20 = e.zz.scale(1.34567).subtract(e.xx.scale(0.672834)).subtract(e.yy.scale(0.672834)), t.l21 = e.zx.scale(1.16538), t.l22 = e.xx.scale(1.16538).subtract(e.yy.scale(1.16538)), t.l1_1.scaleInPlace(-1), t.l11.scaleInPlace(-1), t.l2_1.scaleInPlace(-1), t.l21.scaleInPlace(-1), t.scaleInPlace(Math.PI), t;\n }\n}\nclass uo {\n constructor() {\n this.x = g.Zero(), this.y = g.Zero(), this.z = g.Zero(), this.xx = g.Zero(), this.yy = g.Zero(), this.zz = g.Zero(), this.xy = g.Zero(), this.yz = g.Zero(), this.zx = g.Zero();\n }\n /**\n * The spherical harmonics used to create the polynomials.\n */\n get preScaledHarmonics() {\n return this._harmonics || (this._harmonics = Xh.FromPolynomial(this)), this._harmonics.preScaled || this._harmonics.preScaleForRendering(), this._harmonics;\n }\n /**\n * Adds an ambient color to the spherical polynomial\n * @param color the color to add\n */\n addAmbient(e) {\n w.Vector3[0].copyFromFloats(e.r, e.g, e.b);\n const t = w.Vector3[0];\n this.xx.addInPlace(t), this.yy.addInPlace(t), this.zz.addInPlace(t);\n }\n /**\n * Scales the spherical polynomial by the given amount\n * @param scale the amount to scale\n */\n scaleInPlace(e) {\n this.x.scaleInPlace(e), this.y.scaleInPlace(e), this.z.scaleInPlace(e), this.xx.scaleInPlace(e), this.yy.scaleInPlace(e), this.zz.scaleInPlace(e), this.yz.scaleInPlace(e), this.zx.scaleInPlace(e), this.xy.scaleInPlace(e);\n }\n /**\n * Updates the spherical polynomial from harmonics\n * @param harmonics the spherical harmonics\n * @returns the spherical polynomial\n */\n updateFromHarmonics(e) {\n return this._harmonics = e, this.x.copyFrom(e.l11), this.x.scaleInPlace(1.02333).scaleInPlace(-1), this.y.copyFrom(e.l1_1), this.y.scaleInPlace(1.02333).scaleInPlace(-1), this.z.copyFrom(e.l10), this.z.scaleInPlace(1.02333), this.xx.copyFrom(e.l00), w.Vector3[0].copyFrom(e.l20).scaleInPlace(0.247708), w.Vector3[1].copyFrom(e.l22).scaleInPlace(0.429043), this.xx.scaleInPlace(0.886277).subtractInPlace(w.Vector3[0]).addInPlace(w.Vector3[1]), this.yy.copyFrom(e.l00), this.yy.scaleInPlace(0.886277).subtractInPlace(w.Vector3[0]).subtractInPlace(w.Vector3[1]), this.zz.copyFrom(e.l00), w.Vector3[0].copyFrom(e.l20).scaleInPlace(0.495417), this.zz.scaleInPlace(0.886277).addInPlace(w.Vector3[0]), this.yz.copyFrom(e.l2_1), this.yz.scaleInPlace(0.858086).scaleInPlace(-1), this.zx.copyFrom(e.l21), this.zx.scaleInPlace(0.858086).scaleInPlace(-1), this.xy.copyFrom(e.l2_2), this.xy.scaleInPlace(0.858086), this.scaleInPlace(1 / Math.PI), this;\n }\n /**\n * Gets the spherical polynomial from harmonics\n * @param harmonics the spherical harmonics\n * @returns the spherical polynomial\n */\n static FromHarmonics(e) {\n return new uo().updateFromHarmonics(e);\n }\n /**\n * Constructs a spherical polynomial from an array.\n * @param data defines the 9x3 coefficients (x, y, z, xx, yy, zz, yz, zx, xy)\n * @returns the spherical polynomial\n */\n static FromArray(e) {\n const t = new uo();\n return g.FromArrayToRef(e[0], 0, t.x), g.FromArrayToRef(e[1], 0, t.y), g.FromArrayToRef(e[2], 0, t.z), g.FromArrayToRef(e[3], 0, t.xx), g.FromArrayToRef(e[4], 0, t.yy), g.FromArrayToRef(e[5], 0, t.zz), g.FromArrayToRef(e[6], 0, t.yz), g.FromArrayToRef(e[7], 0, t.zx), g.FromArrayToRef(e[8], 0, t.xy), t;\n }\n}\nclass HO extends $C {\n constructor(e) {\n super(e);\n }\n}\nconst Ab = {\n label: \"TextureView_SwapChain_ResolveTarget\",\n dimension: \"2d\",\n format: void 0,\n mipLevelCount: 1,\n arrayLayerCount: 1\n}, Rb = {\n label: \"TextureView_SwapChain\",\n dimension: \"2d\",\n format: void 0,\n mipLevelCount: 1,\n arrayLayerCount: 1\n}, XO = new Ce();\nclass it extends we {\n /**\n * Gets or sets the snapshot rendering mode\n */\n get snapshotRenderingMode() {\n return this._snapshotRendering.mode;\n }\n set snapshotRenderingMode(e) {\n this._snapshotRendering.mode = e;\n }\n /**\n * Creates a new snapshot at the next frame using the current snapshotRenderingMode\n */\n snapshotRenderingReset() {\n this._snapshotRendering.reset();\n }\n /**\n * Enables or disables the snapshot rendering mode\n * Note that the WebGL engine does not support snapshot rendering so setting the value won't have any effect for this engine\n */\n get snapshotRendering() {\n return this._snapshotRendering.enabled;\n }\n set snapshotRendering(e) {\n this._snapshotRendering.enabled = e;\n }\n /**\n * Sets this to true to disable the cache for the samplers. You should do it only for testing purpose!\n */\n get disableCacheSamplers() {\n return this._cacheSampler ? this._cacheSampler.disabled : !1;\n }\n set disableCacheSamplers(e) {\n this._cacheSampler && (this._cacheSampler.disabled = e);\n }\n /**\n * Sets this to true to disable the cache for the render pipelines. You should do it only for testing purpose!\n */\n get disableCacheRenderPipelines() {\n return this._cacheRenderPipeline ? this._cacheRenderPipeline.disabled : !1;\n }\n set disableCacheRenderPipelines(e) {\n this._cacheRenderPipeline && (this._cacheRenderPipeline.disabled = e);\n }\n /**\n * Sets this to true to disable the cache for the bind groups. You should do it only for testing purpose!\n */\n get disableCacheBindGroups() {\n return this._cacheBindGroups ? this._cacheBindGroups.disabled : !1;\n }\n set disableCacheBindGroups(e) {\n this._cacheBindGroups && (this._cacheBindGroups.disabled = e);\n }\n /**\n * Gets a boolean indicating if all created effects are ready\n * @returns true if all effects are ready\n */\n areAllEffectsReady() {\n return !0;\n }\n /**\n * Get Font size information\n * @param font font name\n * @returns an object containing ascent, height and descent\n */\n getFontOffset(e) {\n return EC(e);\n }\n /**\n * Gets a Promise indicating if the engine can be instantiated (ie. if a WebGPU context can be found)\n */\n static get IsSupportedAsync() {\n return navigator.gpu ? navigator.gpu.requestAdapter().then((e) => !!e, () => !1).catch(() => !1) : Promise.resolve(!1);\n }\n /**\n * Not supported by WebGPU, you should call IsSupportedAsync instead!\n */\n static get IsSupported() {\n return L.Warn(\"You must call IsSupportedAsync for WebGPU!\"), !1;\n }\n /**\n * Gets a boolean indicating that the engine supports uniform buffers\n */\n get supportsUniformBuffers() {\n return !0;\n }\n /** Gets the supported extensions by the WebGPU adapter */\n get supportedExtensions() {\n return this._adapterSupportedExtensions;\n }\n /** Gets the currently enabled extensions on the WebGPU device */\n get enabledExtensions() {\n return this._deviceEnabledExtensions;\n }\n /** Gets the supported limits by the WebGPU adapter */\n get supportedLimits() {\n return this._adapterSupportedLimits;\n }\n /** Gets the current limits of the WebGPU device */\n get currentLimits() {\n return this._deviceLimits;\n }\n /**\n * Returns a string describing the current engine\n */\n get description() {\n return this.name + this.version;\n }\n /**\n * Returns the version of the engine\n */\n get version() {\n return 1;\n }\n /**\n * Gets an object containing information about the current engine context\n * @returns an object containing the vendor, the renderer and the version of the current engine context\n */\n getInfo() {\n return {\n vendor: this._adapterInfo.vendor || \"unknown vendor\",\n renderer: this._adapterInfo.architecture || \"unknown renderer\",\n version: this._adapterInfo.description || \"unknown version\"\n };\n }\n /**\n * (WebGPU only) True (default) to be in compatibility mode, meaning rendering all existing scenes without artifacts (same rendering than WebGL).\n * Setting the property to false will improve performances but may not work in some scenes if some precautions are not taken.\n * See https://doc.babylonjs.com/setup/support/webGPU/webGPUOptimization/webGPUNonCompatibilityMode for more details\n */\n get compatibilityMode() {\n return this._compatibilityMode;\n }\n set compatibilityMode(e) {\n this._compatibilityMode = e;\n }\n /**\n * Enables or disables GPU timing measurements.\n * Note that this is only supported if the \"timestamp-query\" extension is enabled in the options.\n */\n get enableGPUTimingMeasurements() {\n return this._timestampQuery.enable;\n }\n set enableGPUTimingMeasurements(e) {\n this._timestampQuery.enable !== e && (this.gpuTimeInFrameForMainPass = e ? new Fx() : void 0, this._timestampQuery.enable = e);\n }\n /** @internal */\n get currentSampleCount() {\n return this._currentRenderTarget ? this._currentRenderTarget.samples : this._mainPassSampleCount;\n }\n /**\n * Create a new instance of the gpu engine asynchronously\n * @param canvas Defines the canvas to use to display the result\n * @param options Defines the options passed to the engine to create the GPU context dependencies\n * @returns a promise that resolves with the created engine\n */\n static CreateAsync(e, t = {}) {\n const i = new it(e, t);\n return new Promise((s) => {\n i.initAsync(t.glslangOptions, t.twgslOptions).then(() => s(i));\n });\n }\n /**\n * Create a new instance of the gpu engine.\n * @param canvas Defines the canvas to use to display the result\n * @param options Defines the options passed to the engine to create the GPU context dependencies\n */\n constructor(e, t = {}) {\n if (super(t.antialias ?? !0, t), this.uniqueId = -1, this._uploadEncoderDescriptor = { label: \"upload\" }, this._renderEncoderDescriptor = { label: \"render\" }, this._clearDepthValue = 1, this._clearReverseDepthValue = 0, this._clearStencilValue = 0, this._defaultSampleCount = 4, this._glslang = null, this._tintWASM = null, this._adapterInfo = {\n vendor: \"\",\n architecture: \"\",\n device: \"\",\n description: \"\"\n }, this._timestampIndex = 0, this._compiledComputeEffects = {}, this._counters = {\n numEnableEffects: 0,\n numEnableDrawWrapper: 0,\n numBundleCreationNonCompatMode: 0,\n numBundleReuseNonCompatMode: 0\n }, this.countersLastFrame = {\n numEnableEffects: 0,\n numEnableDrawWrapper: 0,\n numBundleCreationNonCompatMode: 0,\n numBundleReuseNonCompatMode: 0\n }, this.numMaxUncapturedErrors = 20, this.scenes = [], this._virtualScenes = new Array(), this._commandBuffers = [null, null], this._currentRenderPass = null, this._mainRenderPassWrapper = {\n renderPassDescriptor: null,\n colorAttachmentViewDescriptor: null,\n depthAttachmentViewDescriptor: null,\n colorAttachmentGPUTextures: [],\n depthTextureFormat: void 0\n }, this._rttRenderPassWrapper = {\n renderPassDescriptor: null,\n colorAttachmentViewDescriptor: null,\n depthAttachmentViewDescriptor: null,\n colorAttachmentGPUTextures: [],\n depthTextureFormat: void 0\n }, this._pendingDebugCommands = [], this._currentOverrideVertexBuffers = null, this._currentIndexBuffer = null, this._colorWriteLocal = !0, this._forceEnableEffect = !1, this.dbgShowShaderCode = !1, this.dbgSanityChecks = !0, this.dbgVerboseLogsForFirstFrames = !1, this.dbgVerboseLogsNumFrames = 10, this.dbgLogIfNotDrawWrapper = !0, this.dbgShowEmptyEnableEffectCalls = !0, this._snapshotRenderingMode = 0, this.isNDCHalfZRange = !0, this.hasOriginBottomLeft = !1, this._viewportsCurrent = { x: 0, y: 0, w: 0, h: 0 }, this._scissorsCurrent = { x: 0, y: 0, w: 0, h: 0 }, this._scissorCached = { x: 0, y: 0, z: 0, w: 0 }, this._stencilRefsCurrent = -1, this._blendColorsCurrent = [null, null, null, null], this._performanceMonitor = new TC(), this._name = \"WebGPU\", this._drawCalls = new nn(), t.deviceDescriptor = t.deviceDescriptor || {}, t.enableGPUDebugMarkers = t.enableGPUDebugMarkers ?? !1, L.Log(`Babylon.js v${ee.Version} - ${this.description} engine`), !navigator.gpu) {\n L.Error(\"WebGPU is not supported by your browser.\");\n return;\n }\n t.swapChainFormat = t.swapChainFormat || navigator.gpu.getPreferredCanvasFormat(), this._isWebGPU = !0, this._shaderPlatformName = \"WEBGPU\", this._renderingCanvas = e, this._options = t, this._mainPassSampleCount = t.antialias ? this._defaultSampleCount : 1, navigator && navigator.userAgent && this._setupMobileChecks(), this._sharedInit(this._renderingCanvas), this._shaderProcessor = new IM(), this._shaderProcessorWGSL = new ZD();\n }\n //------------------------------------------------------------------------------\n // Initialization\n //------------------------------------------------------------------------------\n /**\n * Initializes the WebGPU context and dependencies.\n * @param glslangOptions Defines the GLSLang compiler options if necessary\n * @param twgslOptions Defines the Twgsl compiler options if necessary\n * @returns a promise notifying the readiness of the engine.\n */\n initAsync(e, t) {\n var i;\n return this.uniqueId = it._InstanceId++, this._glslangOptions = e, this._twgslOptions = t, this._initGlslang(e ?? ((i = this._options) == null ? void 0 : i.glslangOptions)).then((s) => {\n var r;\n return this._glslang = s, this._tintWASM = it.UseTWGSL ? new tn() : null, this._tintWASM ? this._tintWASM.initTwgsl(t ?? ((r = this._options) == null ? void 0 : r.twgslOptions)).then(() => navigator.gpu.requestAdapter(this._options)) : navigator.gpu.requestAdapter(this._options);\n }).then((s) => {\n var r;\n if (s) {\n this._adapter = s, this._adapterSupportedExtensions = [], (r = this._adapter.features) == null || r.forEach((l) => this._adapterSupportedExtensions.push(l)), this._adapterSupportedLimits = this._adapter.limits, this._adapter.requestAdapterInfo().then((l) => {\n this._adapterInfo = l;\n });\n const n = this._options.deviceDescriptor ?? {}, o = (n == null ? void 0 : n.requiredFeatures) ?? (this._options.enableAllFeatures ? this._adapterSupportedExtensions : void 0);\n if (o) {\n const l = o, h = [];\n for (const c of l)\n this._adapterSupportedExtensions.indexOf(c) !== -1 && h.push(c);\n n.requiredFeatures = h;\n }\n if (this._options.setMaximumLimits && !n.requiredLimits) {\n n.requiredLimits = {};\n for (const l in this._adapterSupportedLimits)\n l === \"minSubgroupSize\" || l === \"maxSubgroupSize\" || (n.requiredLimits[l] = this._adapterSupportedLimits[l]);\n }\n return n.label = `BabylonWebGPUDevice${this.uniqueId}`, this._adapter.requestDevice(n);\n } else\n throw \"Could not retrieve a WebGPU adapter (adapter is null).\";\n }).then((s) => {\n var n, o;\n this._device = s, this._deviceEnabledExtensions = [], (n = this._device.features) == null || n.forEach((l) => this._deviceEnabledExtensions.push(l)), this._deviceLimits = s.limits;\n let r = -1;\n this._device.addEventListener(\"uncapturederror\", (l) => {\n ++r < this.numMaxUncapturedErrors ? L.Warn(`WebGPU uncaptured error (${r + 1}): ${l.error} - ${l.error.message}`) : r++ === this.numMaxUncapturedErrors && L.Warn(`WebGPU uncaptured error: too many warnings (${this.numMaxUncapturedErrors}), no more warnings will be reported to the console for this engine.`);\n }), this._doNotHandleContextLost || (o = this._device.lost) == null || o.then((l) => {\n this._isDisposed || (this._contextWasLost = !0, L.Warn(\"WebGPU context lost. \" + l), this.onContextLostObservable.notifyObservers(this), this._restoreEngineAfterContextLost(async () => {\n var _, m;\n const h = this.snapshotRenderingMode, c = this.snapshotRendering, u = this.disableCacheSamplers, d = this.disableCacheRenderPipelines, f = this.disableCacheBindGroups, p = this.enableGPUTimingMeasurements;\n await this.initAsync(this._glslangOptions ?? ((_ = this._options) == null ? void 0 : _.glslangOptions), this._twgslOptions ?? ((m = this._options) == null ? void 0 : m.twgslOptions)), this.snapshotRenderingMode = h, this.snapshotRendering = c, this.disableCacheSamplers = u, this.disableCacheRenderPipelines = d, this.disableCacheBindGroups = f, this.enableGPUTimingMeasurements = p, this._currentRenderPass = null;\n }));\n });\n }).then(() => {\n this._bufferManager = new Fp(this, this._device), this._textureHelper = new hO(this, this._device, this._glslang, this._tintWASM, this._bufferManager, this._deviceEnabledExtensions), this._cacheSampler = new bl(this._device), this._cacheBindGroups = new ii(this._device, this._cacheSampler, this), this._timestampQuery = new BO(this, this._device, this._bufferManager), this._occlusionQuery = this._device.createQuerySet ? new UO(this, this._device, this._bufferManager) : void 0, this._bundleList = new Nx(this._device), this._snapshotRendering = new kO(this, this._snapshotRenderingMode, this._bundleList), this._ubInvertY = this._bufferManager.createBuffer(new Float32Array([-1, 0]), Kt.Uniform | Kt.CopyDst, \"UBInvertY\"), this._ubDontInvertY = this._bufferManager.createBuffer(new Float32Array([1, 0]), Kt.Uniform | Kt.CopyDst, \"UBDontInvertY\"), this.dbgVerboseLogsForFirstFrames && this._count === void 0 && (this._count = 0, L.Log([\"%c frame #\" + this._count + \" - begin\", \"background: #ffff00\"])), this._uploadEncoder = this._device.createCommandEncoder(this._uploadEncoderDescriptor), this._renderEncoder = this._device.createCommandEncoder(this._renderEncoderDescriptor), this._initializeLimits(), this._emptyVertexBuffer = new R(this, [0], \"\", {\n stride: 1,\n offset: 0,\n size: 1,\n label: \"EmptyVertexBuffer\"\n }), this._cacheRenderPipeline = new Yn(this._device, this._emptyVertexBuffer), this._depthCullingState = new DO(this._cacheRenderPipeline), this._stencilStateComposer = new MO(this._cacheRenderPipeline), this._stencilStateComposer.stencilGlobal = this._stencilState, this._depthCullingState.depthTest = !0, this._depthCullingState.depthFunc = 515, this._depthCullingState.depthMask = !0, this._textureHelper.setCommandEncoder(this._uploadEncoder), this._clearQuad = new LO(this._device, this, this._emptyVertexBuffer), this._defaultDrawContext = this.createDrawContext(), this._currentDrawContext = this._defaultDrawContext, this._defaultMaterialContext = this.createMaterialContext(), this._currentMaterialContext = this._defaultMaterialContext, this._initializeContextAndSwapChain(), this._initializeMainAttachments(), this.resize();\n }).catch((s) => {\n throw L.Error(\"A fatal error occurred during WebGPU creation/initialization.\"), s;\n });\n }\n _initGlslang(e) {\n return e = e || {}, e = {\n ...it._GLSLslangDefaultOptions,\n ...e\n }, e.glslang ? Promise.resolve(e.glslang) : self.glslang ? self.glslang(e.wasmPath) : e.jsPath && e.wasmPath ? J.LoadBabylonScriptAsync(e.jsPath).then(() => self.glslang(J.GetBabylonScriptURL(e.wasmPath))) : Promise.reject(\"gslang is not available.\");\n }\n _initializeLimits() {\n this._caps = {\n maxTexturesImageUnits: this._deviceLimits.maxSampledTexturesPerShaderStage,\n maxVertexTextureImageUnits: this._deviceLimits.maxSampledTexturesPerShaderStage,\n maxCombinedTexturesImageUnits: this._deviceLimits.maxSampledTexturesPerShaderStage * 2,\n maxTextureSize: this._deviceLimits.maxTextureDimension2D,\n maxCubemapTextureSize: this._deviceLimits.maxTextureDimension2D,\n maxRenderTextureSize: this._deviceLimits.maxTextureDimension2D,\n maxVertexAttribs: this._deviceLimits.maxVertexAttributes,\n maxVaryingVectors: this._deviceLimits.maxInterStageShaderVariables,\n maxFragmentUniformVectors: Math.floor(this._deviceLimits.maxUniformBufferBindingSize / 4),\n maxVertexUniformVectors: Math.floor(this._deviceLimits.maxUniformBufferBindingSize / 4),\n standardDerivatives: !0,\n astc: this._deviceEnabledExtensions.indexOf(\n \"texture-compression-astc\"\n /* WebGPUConstants.FeatureName.TextureCompressionASTC */\n ) >= 0 ? !0 : void 0,\n s3tc: this._deviceEnabledExtensions.indexOf(\n \"texture-compression-bc\"\n /* WebGPUConstants.FeatureName.TextureCompressionBC */\n ) >= 0 ? !0 : void 0,\n pvrtc: null,\n etc1: null,\n etc2: this._deviceEnabledExtensions.indexOf(\n \"texture-compression-etc2\"\n /* WebGPUConstants.FeatureName.TextureCompressionETC2 */\n ) >= 0 ? !0 : void 0,\n bptc: this._deviceEnabledExtensions.indexOf(\n \"texture-compression-bc\"\n /* WebGPUConstants.FeatureName.TextureCompressionBC */\n ) >= 0 ? !0 : void 0,\n maxAnisotropy: 16,\n uintIndices: !0,\n fragmentDepthSupported: !0,\n highPrecisionShaderSupported: !0,\n colorBufferFloat: !0,\n supportFloatTexturesResolve: !1,\n rg11b10ufColorRenderable: this._deviceEnabledExtensions.indexOf(\n \"rg11b10ufloat-renderable\"\n /* WebGPUConstants.FeatureName.RG11B10UFloatRenderable */\n ) >= 0,\n textureFloat: !0,\n textureFloatLinearFiltering: this._deviceEnabledExtensions.indexOf(\n \"float32-filterable\"\n /* WebGPUConstants.FeatureName.Float32Filterable */\n ) >= 0,\n textureFloatRender: !0,\n textureHalfFloat: !0,\n textureHalfFloatLinearFiltering: !0,\n textureHalfFloatRender: !0,\n textureLOD: !0,\n texelFetch: !0,\n drawBuffersExtension: !0,\n depthTextureExtension: !0,\n vertexArrayObject: !1,\n instancedArrays: !0,\n timerQuery: typeof BigUint64Array < \"u\" && this._deviceEnabledExtensions.indexOf(\n \"timestamp-query\"\n /* WebGPUConstants.FeatureName.TimestampQuery */\n ) !== -1 ? !0 : void 0,\n supportOcclusionQuery: typeof BigUint64Array < \"u\",\n canUseTimestampForTimerQuery: !0,\n multiview: !1,\n oculusMultiview: !1,\n parallelShaderCompile: void 0,\n blendMinMax: !0,\n maxMSAASamples: 4,\n canUseGLInstanceID: !0,\n canUseGLVertexID: !0,\n supportComputeShaders: !0,\n supportSRGBBuffers: !0,\n supportTransformFeedbacks: !1,\n textureMaxLevel: !0,\n texture2DArrayMaxLayerCount: this._deviceLimits.maxTextureArrayLayers,\n disableMorphTargetTexture: !1\n }, this._features = {\n forceBitmapOverHTMLImageElement: !0,\n supportRenderAndCopyToLodForFloatTextures: !0,\n supportDepthStencilTexture: !0,\n supportShadowSamplers: !0,\n uniformBufferHardCheckMatrix: !1,\n allowTexturePrefiltering: !0,\n trackUbosInFrame: !0,\n checkUbosContentBeforeUpload: !0,\n supportCSM: !0,\n basisNeedsPOT: !1,\n support3DTextures: !0,\n needTypeSuffixInShaderConstants: !0,\n supportMSAA: !0,\n supportSSAO2: !0,\n supportExtendedTextureFormats: !0,\n supportSwitchCaseInShader: !0,\n supportSyncTextureRead: !1,\n needsInvertingBitmap: !1,\n useUBOBindingCache: !1,\n needShaderCodeInlining: !0,\n needToAlwaysBindUniformBuffers: !0,\n supportRenderPasses: !0,\n supportSpriteInstancing: !0,\n forceVertexBufferStrideAndOffsetMultiple4Bytes: !0,\n _checkNonFloatVertexBuffersDontRecreatePipelineContext: !0,\n _collectUbosUpdatedInFrame: !1\n };\n }\n _initializeContextAndSwapChain() {\n if (!this._renderingCanvas)\n throw \"The rendering canvas has not been set!\";\n this._context = this._renderingCanvas.getContext(\"webgpu\"), this._configureContext(), this._colorFormat = this._options.swapChainFormat, this._mainRenderPassWrapper.colorAttachmentGPUTextures = [new xp()], this._mainRenderPassWrapper.colorAttachmentGPUTextures[0].format = this._colorFormat, this._setColorFormat(this._mainRenderPassWrapper);\n }\n // Set default values as WebGL with depth and stencil attachment for the broadest Compat.\n _initializeMainAttachments() {\n if (!this._bufferManager)\n return;\n this.flushFramebuffer(), this._mainTextureExtends = {\n width: this.getRenderWidth(!0),\n height: this.getRenderHeight(!0),\n depthOrArrayLayers: 1\n };\n const e = new Float32Array([this.getRenderHeight(!0)]);\n this._bufferManager.setSubData(this._ubInvertY, 4, e), this._bufferManager.setSubData(this._ubDontInvertY, 4, e);\n let t;\n if (this._options.antialias) {\n const r = {\n label: `Texture_MainColor_${this._mainTextureExtends.width}x${this._mainTextureExtends.height}_antialiasing`,\n size: this._mainTextureExtends,\n mipLevelCount: 1,\n sampleCount: this._mainPassSampleCount,\n dimension: \"2d\",\n format: this._options.swapChainFormat,\n usage: 16\n };\n this._mainTexture && this._textureHelper.releaseTexture(this._mainTexture), this._mainTexture = this._device.createTexture(r), t = [\n {\n view: this._mainTexture.createView({\n label: \"TextureView_MainColor_antialiasing\",\n dimension: \"2d\",\n format: this._options.swapChainFormat,\n mipLevelCount: 1,\n arrayLayerCount: 1\n }),\n clearValue: new Ce(0, 0, 0, 1),\n loadOp: \"clear\",\n storeOp: \"store\"\n // don't use StoreOp.Discard, else using several cameras with different viewports or using scissors will fail because we call beginRenderPass / endPass several times for the same color attachment!\n }\n ];\n } else\n t = [\n {\n view: void 0,\n clearValue: new Ce(0, 0, 0, 1),\n loadOp: \"clear\",\n storeOp: \"store\"\n }\n ];\n this._mainRenderPassWrapper.depthTextureFormat = this.isStencilEnable ? \"depth24plus-stencil8\" : \"depth32float\", this._setDepthTextureFormat(this._mainRenderPassWrapper), this._setColorFormat(this._mainRenderPassWrapper);\n const i = {\n label: `Texture_MainDepthStencil_${this._mainTextureExtends.width}x${this._mainTextureExtends.height}`,\n size: this._mainTextureExtends,\n mipLevelCount: 1,\n sampleCount: this._mainPassSampleCount,\n dimension: \"2d\",\n format: this._mainRenderPassWrapper.depthTextureFormat,\n usage: 16\n };\n this._depthTexture && this._textureHelper.releaseTexture(this._depthTexture), this._depthTexture = this._device.createTexture(i);\n const s = {\n view: this._depthTexture.createView({\n label: `TextureView_MainDepthStencil_${this._mainTextureExtends.width}x${this._mainTextureExtends.height}`,\n dimension: \"2d\",\n format: this._depthTexture.format,\n mipLevelCount: 1,\n arrayLayerCount: 1\n }),\n depthClearValue: this._clearDepthValue,\n depthLoadOp: \"clear\",\n depthStoreOp: \"store\",\n stencilClearValue: this._clearStencilValue,\n stencilLoadOp: this.isStencilEnable ? \"clear\" : void 0,\n stencilStoreOp: this.isStencilEnable ? \"store\" : void 0\n };\n this._mainRenderPassWrapper.renderPassDescriptor = {\n label: \"MainRenderPass\",\n colorAttachments: t,\n depthStencilAttachment: s\n };\n }\n /**\n * Shared initialization across engines types.\n * @param canvas The canvas associated with this instance of the engine.\n */\n _sharedInit(e) {\n super._sharedInit(e), SC(this, e, this._creationOptions);\n }\n _configureContext() {\n this._context.configure({\n device: this._device,\n format: this._options.swapChainFormat,\n usage: 17,\n alphaMode: this.premultipliedAlpha ? \"premultiplied\" : \"opaque\"\n });\n }\n /**\n * Resize an image and returns the image data as an uint8array\n * @param image image to resize\n * @param bufferWidth destination buffer width\n * @param bufferHeight destination buffer height\n * @returns an uint8array containing RGBA values of bufferWidth * bufferHeight size\n */\n resizeImageBitmap(e, t, i) {\n return CC(this, e, t, i);\n }\n /**\n * Engine abstraction for loading and creating an image bitmap from a given source string.\n * @param imageSource source to load the image from.\n * @param options An object that sets options for the image's extraction.\n * @returns ImageBitmap\n */\n _createImageBitmapFromSource(e, t) {\n return yC(this, e, t);\n }\n /**\n * Toggle full screen mode\n * @param requestPointerLock defines if a pointer lock should be requested from the user\n */\n switchFullscreen(e) {\n this.isFullscreen ? this.exitFullscreen() : this.enterFullscreen(e);\n }\n /**\n * Enters full screen mode\n * @param requestPointerLock defines if a pointer lock should be requested from the user\n */\n enterFullscreen(e) {\n this.isFullscreen || (this._pointerLockRequested = e, this._renderingCanvas && AC(this._renderingCanvas));\n }\n /**\n * Exits full screen mode\n */\n exitFullscreen() {\n this.isFullscreen && RC();\n }\n /**\n * Enters Pointerlock mode\n */\n enterPointerlock() {\n this._renderingCanvas && fx(this._renderingCanvas);\n }\n /**\n * Exits Pointerlock mode\n */\n exitPointerlock() {\n IC();\n }\n _rebuildBuffers() {\n super._rebuildBuffers();\n for (const e of this._storageBuffers)\n e.getBuffer().engineId !== this.uniqueId && e._rebuild();\n }\n _restoreEngineAfterContextLost(e) {\n Yn.ResetCache(), ii.ResetCache();\n const t = (s) => {\n var r;\n for (const n of s) {\n for (const o of n.meshes) {\n const l = o.subMeshes;\n if (l)\n for (const h of l)\n h._drawWrappers = [];\n }\n for (const o of n.materials)\n (r = o._materialContext) == null || r.reset();\n }\n };\n t(this.scenes), t(this._virtualScenes);\n const i = [];\n for (const s of this._uniformBuffers)\n s.name.indexOf(\"leftOver\") < 0 && i.push(s);\n this._uniformBuffers = i, super._restoreEngineAfterContextLost(e);\n }\n /**\n * Force a specific size of the canvas\n * @param width defines the new canvas' width\n * @param height defines the new canvas' height\n * @param forceSetSize true to force setting the sizes of the underlying canvas\n * @returns true if the size was changed\n */\n setSize(e, t, i = !1) {\n return super.setSize(e, t, i) ? (this.dbgVerboseLogsForFirstFrames && (this._count === void 0 && (this._count = 0), (!this._count || this._count < this.dbgVerboseLogsNumFrames) && L.Log([\"frame #\" + this._count + \" - setSize -\", e, t])), this._initializeMainAttachments(), this.snapshotRendering && this.snapshotRenderingReset(), !0) : !1;\n }\n /**\n * @internal\n */\n _getShaderProcessor(e) {\n return e === 1 ? this._shaderProcessorWGSL : this._shaderProcessor;\n }\n /**\n * @internal\n */\n _getShaderProcessingContext(e) {\n return new an(e);\n }\n _currentPassIsMainPass() {\n return this._currentRenderTarget === null;\n }\n _getCurrentRenderPass() {\n return this._currentRenderTarget && !this._currentRenderPass ? this._startRenderTargetRenderPass(this._currentRenderTarget, !1, null, !1, !1) : this._currentRenderPass || this._startMainRenderPass(!1), this._currentRenderPass;\n }\n /** @internal */\n _getCurrentRenderPassWrapper() {\n return this._currentRenderTarget ? this._rttRenderPassWrapper : this._mainRenderPassWrapper;\n }\n //------------------------------------------------------------------------------\n // Static Pipeline WebGPU States\n //------------------------------------------------------------------------------\n /** @internal */\n applyStates() {\n this._stencilStateComposer.apply(), this._cacheRenderPipeline.setAlphaBlendEnabled(this._alphaState.alphaBlend);\n }\n /**\n * Force the entire cache to be cleared\n * You should not have to use this function unless your engine needs to share the WebGPU context with another engine\n * @param bruteForce defines a boolean to force clearing ALL caches (including stencil, detoh and alpha states)\n */\n wipeCaches(e) {\n this.preventCacheWipeBetweenFrames && !e || (this._forceEnableEffect = !0, this._currentIndexBuffer = null, this._currentOverrideVertexBuffers = null, this._cacheRenderPipeline.setBuffers(null, null, null), e && (this._stencilStateComposer.reset(), this._depthCullingState.reset(), this._depthCullingState.depthFunc = 515, this._alphaState.reset(), this._alphaMode = 1, this._alphaEquation = 0, this._cacheRenderPipeline.setAlphaBlendFactors(this._alphaState._blendFunctionParameters, this._alphaState._blendEquationParameters), this._cacheRenderPipeline.setAlphaBlendEnabled(!1), this.setColorWrite(!0)), this._cachedVertexBuffers = null, this._cachedIndexBuffer = null, this._cachedEffectForVertexBuffers = null);\n }\n /**\n * Enable or disable color writing\n * @param enable defines the state to set\n */\n setColorWrite(e) {\n this._colorWriteLocal = e, this._cacheRenderPipeline.setWriteMask(e ? 15 : 0);\n }\n /**\n * Gets a boolean indicating if color writing is enabled\n * @returns the current color writing state\n */\n getColorWrite() {\n return this._colorWriteLocal;\n }\n _mustUpdateViewport() {\n const e = this._viewportCached.x, t = this._viewportCached.y, i = this._viewportCached.z, s = this._viewportCached.w, r = this._viewportsCurrent.x !== e || this._viewportsCurrent.y !== t || this._viewportsCurrent.w !== i || this._viewportsCurrent.h !== s;\n return r && (this._viewportsCurrent.x = this._viewportCached.x, this._viewportsCurrent.y = this._viewportCached.y, this._viewportsCurrent.w = this._viewportCached.z, this._viewportsCurrent.h = this._viewportCached.w), r;\n }\n _applyViewport(e) {\n const t = Math.floor(this._viewportCached.x), i = Math.floor(this._viewportCached.z), s = Math.floor(this._viewportCached.w);\n let r = Math.floor(this._viewportCached.y);\n this._currentRenderTarget || (r = this.getRenderHeight(!0) - r - s), e ? e.addItem(new Ix(t, r, i, s)) : this._getCurrentRenderPass().setViewport(t, r, i, s, 0, 1), this.dbgVerboseLogsForFirstFrames && (this._count === void 0 && (this._count = 0), (!this._count || this._count < this.dbgVerboseLogsNumFrames) && L.Log([\n \"frame #\" + this._count + \" - viewport applied - (\",\n this._viewportCached.x,\n this._viewportCached.y,\n this._viewportCached.z,\n this._viewportCached.w,\n \") current pass is main pass=\" + this._currentPassIsMainPass()\n ]));\n }\n /**\n * @internal\n */\n _viewport(e, t, i, s) {\n this._viewportCached.x = e, this._viewportCached.y = t, this._viewportCached.z = i, this._viewportCached.w = s;\n }\n _mustUpdateScissor() {\n const e = this._scissorCached.x, t = this._scissorCached.y, i = this._scissorCached.z, s = this._scissorCached.w, r = this._scissorsCurrent.x !== e || this._scissorsCurrent.y !== t || this._scissorsCurrent.w !== i || this._scissorsCurrent.h !== s;\n return r && (this._scissorsCurrent.x = this._scissorCached.x, this._scissorsCurrent.y = this._scissorCached.y, this._scissorsCurrent.w = this._scissorCached.z, this._scissorsCurrent.h = this._scissorCached.w), r;\n }\n _applyScissor(e) {\n const t = this._currentRenderTarget ? this._scissorCached.y : this.getRenderHeight() - this._scissorCached.w - this._scissorCached.y;\n e ? e.addItem(new Px(this._scissorCached.x, t, this._scissorCached.z, this._scissorCached.w)) : this._getCurrentRenderPass().setScissorRect(this._scissorCached.x, t, this._scissorCached.z, this._scissorCached.w), this.dbgVerboseLogsForFirstFrames && (this._count === void 0 && (this._count = 0), (!this._count || this._count < this.dbgVerboseLogsNumFrames) && L.Log([\n \"frame #\" + this._count + \" - scissor applied - (\",\n this._scissorCached.x,\n this._scissorCached.y,\n this._scissorCached.z,\n this._scissorCached.w,\n \") current pass is main pass=\" + this._currentPassIsMainPass()\n ]));\n }\n _scissorIsActive() {\n return this._scissorCached.x !== 0 || this._scissorCached.y !== 0 || this._scissorCached.z !== 0 || this._scissorCached.w !== 0;\n }\n enableScissor(e, t, i, s) {\n this._scissorCached.x = e, this._scissorCached.y = t, this._scissorCached.z = i, this._scissorCached.w = s;\n }\n disableScissor() {\n this._scissorCached.x = this._scissorCached.y = this._scissorCached.z = this._scissorCached.w = 0, this._scissorsCurrent.x = this._scissorsCurrent.y = this._scissorsCurrent.w = this._scissorsCurrent.h = 0;\n }\n _mustUpdateStencilRef() {\n const e = this._stencilStateComposer.funcRef !== this._stencilRefsCurrent;\n return e && (this._stencilRefsCurrent = this._stencilStateComposer.funcRef), e;\n }\n _applyStencilRef(e) {\n e ? e.addItem(new Lp(this._stencilStateComposer.funcRef ?? 0)) : this._getCurrentRenderPass().setStencilReference(this._stencilStateComposer.funcRef ?? 0);\n }\n _mustUpdateBlendColor() {\n const e = this._alphaState._blendConstants, t = e[0] !== this._blendColorsCurrent[0] || e[1] !== this._blendColorsCurrent[1] || e[2] !== this._blendColorsCurrent[2] || e[3] !== this._blendColorsCurrent[3];\n return t && (this._blendColorsCurrent[0] = e[0], this._blendColorsCurrent[1] = e[1], this._blendColorsCurrent[2] = e[2], this._blendColorsCurrent[3] = e[3]), t;\n }\n _applyBlendColor(e) {\n e ? e.addItem(new Mx(this._alphaState._blendConstants.slice())) : this._getCurrentRenderPass().setBlendConstant(this._alphaState._blendConstants);\n }\n _resetRenderPassStates() {\n this._viewportsCurrent.x = this._viewportsCurrent.y = this._viewportsCurrent.w = this._viewportsCurrent.h = 0, this._scissorsCurrent.x = this._scissorsCurrent.y = this._scissorsCurrent.w = this._scissorsCurrent.h = 0, this._stencilRefsCurrent = -1, this._blendColorsCurrent[0] = this._blendColorsCurrent[1] = this._blendColorsCurrent[2] = this._blendColorsCurrent[3] = null;\n }\n /**\n * Clear the current render buffer or the current render target (if any is set up)\n * @param color defines the color to use\n * @param backBuffer defines if the back buffer must be cleared\n * @param depth defines if the depth buffer must be cleared\n * @param stencil defines if the stencil buffer must be cleared\n */\n clear(e, t, i, s = !1) {\n e && e.a === void 0 && (e.a = 1);\n const r = this._scissorIsActive();\n this.dbgVerboseLogsForFirstFrames && (this._count === void 0 && (this._count = 0), (!this._count || this._count < this.dbgVerboseLogsNumFrames) && L.Log([\"frame #\" + this._count + \" - clear - backBuffer=\", t, \" depth=\", i, \" stencil=\", s, \" scissor is active=\", r])), this._currentRenderTarget ? r ? (this._currentRenderPass || this._startRenderTargetRenderPass(this._currentRenderTarget, !1, t ? e : null, i, s), this._applyScissor(this.compatibilityMode ? null : this._bundleList), this._clearFullQuad(t ? e : null, i, s)) : (this._currentRenderPass && this._endCurrentRenderPass(), this._startRenderTargetRenderPass(this._currentRenderTarget, !0, t ? e : null, i, s)) : ((!this._currentRenderPass || !r) && this._startMainRenderPass(!r, t ? e : null, i, s), r && (this._applyScissor(this.compatibilityMode ? null : this._bundleList), this._clearFullQuad(t ? e : null, i, s)));\n }\n _clearFullQuad(e, t, i) {\n const s = this.compatibilityMode ? this._getCurrentRenderPass() : null;\n this._clearQuad.setColorFormat(this._colorFormat), this._clearQuad.setDepthStencilFormat(this._depthTextureFormat), this._clearQuad.setMRTAttachments(this._cacheRenderPipeline.mrtAttachments ?? [], this._cacheRenderPipeline.mrtTextureArray ?? [], this._cacheRenderPipeline.mrtTextureCount), this.compatibilityMode ? s.setStencilReference(this._clearStencilValue) : this._bundleList.addItem(new Lp(this._clearStencilValue));\n const r = this._clearQuad.clear(s, e, t, i, this.currentSampleCount);\n this.compatibilityMode ? this._applyStencilRef(null) : (this._bundleList.addBundle(r), this._applyStencilRef(this._bundleList), this._reportDrawCall());\n }\n //------------------------------------------------------------------------------\n // Vertex/Index/Storage Buffers\n //------------------------------------------------------------------------------\n /**\n * Creates a vertex buffer\n * @param data the data or the size for the vertex buffer\n * @param _updatable whether the buffer should be created as updatable\n * @param label defines the label of the buffer (for debug purpose)\n * @returns the new buffer\n */\n createVertexBuffer(e, t, i) {\n let s;\n return e instanceof Array ? s = new Float32Array(e) : e instanceof ArrayBuffer ? s = new Uint8Array(e) : s = e, this._bufferManager.createBuffer(s, Kt.Vertex | Kt.CopyDst, i);\n }\n /**\n * Creates a vertex buffer\n * @param data the data for the dynamic vertex buffer\n * @param label defines the label of the buffer (for debug purpose)\n * @returns the new buffer\n */\n createDynamicVertexBuffer(e, t) {\n return this.createVertexBuffer(e, void 0, t);\n }\n /**\n * Creates a new index buffer\n * @param indices defines the content of the index buffer\n * @param _updatable defines if the index buffer must be updatable\n * @param label defines the label of the buffer (for debug purpose)\n * @returns a new buffer\n */\n createIndexBuffer(e, t, i) {\n let s = !0, r;\n e instanceof Uint32Array || e instanceof Int32Array ? r = e : e instanceof Uint16Array ? (r = e, s = !1) : e.length > 65535 ? r = new Uint32Array(e) : (r = new Uint16Array(e), s = !1);\n const n = this._bufferManager.createBuffer(r, Kt.Index | Kt.CopyDst, i);\n return n.is32Bits = s, n;\n }\n /**\n * Update a dynamic index buffer\n * @param indexBuffer defines the target index buffer\n * @param indices defines the data to update\n * @param offset defines the offset in the target index buffer where update should start\n */\n updateDynamicIndexBuffer(e, t, i = 0) {\n const s = e;\n let r;\n e.is32Bits ? r = t instanceof Uint32Array ? t : new Uint32Array(t) : r = t instanceof Uint16Array ? t : new Uint16Array(t), this._bufferManager.setSubData(s, i, r);\n }\n /**\n * Updates a dynamic vertex buffer.\n * @param vertexBuffer the vertex buffer to update\n * @param data the data used to update the vertex buffer\n * @param byteOffset the byte offset of the data\n * @param byteLength the byte length of the data\n */\n updateDynamicVertexBuffer(e, t, i, s) {\n const r = e;\n i === void 0 && (i = 0);\n let n;\n s === void 0 ? (t instanceof Array ? n = new Float32Array(t) : t instanceof ArrayBuffer ? n = new Uint8Array(t) : n = t, s = n.byteLength) : t instanceof Array ? n = new Float32Array(t) : t instanceof ArrayBuffer ? n = new Uint8Array(t) : n = t, this._bufferManager.setSubData(r, i, n, 0, s);\n }\n /**\n * @internal\n */\n _createBuffer(e, t, i) {\n let s;\n e instanceof Array ? s = new Float32Array(e) : e instanceof ArrayBuffer ? s = new Uint8Array(e) : s = e;\n let r = 0;\n return t & 1 && (r |= Kt.CopySrc), t & 2 && (r |= Kt.CopyDst), t & 4 && (r |= Kt.Uniform), t & 8 && (r |= Kt.Vertex), t & 16 && (r |= Kt.Index), t & 32 && (r |= Kt.Storage), t & 64 && (r |= Kt.Indirect), this._bufferManager.createBuffer(s, r, i);\n }\n /**\n * @internal\n */\n bindBuffersDirectly() {\n throw \"Not implemented on WebGPU\";\n }\n /**\n * @internal\n */\n updateAndBindInstancesBuffer() {\n throw \"Not implemented on WebGPU\";\n }\n /**\n * Unbind all instance attributes\n */\n unbindInstanceAttributes() {\n }\n /**\n * Bind a list of vertex buffers with the engine\n * @param vertexBuffers defines the list of vertex buffers to bind\n * @param indexBuffer defines the index buffer to bind\n * @param effect defines the effect associated with the vertex buffers\n * @param overrideVertexBuffers defines optional list of avertex buffers that overrides the entries in vertexBuffers\n */\n bindBuffers(e, t, i, s) {\n this._currentIndexBuffer = t, this._currentOverrideVertexBuffers = s ?? null, this._cacheRenderPipeline.setBuffers(e, t, this._currentOverrideVertexBuffers);\n }\n /**\n * @internal\n */\n _releaseBuffer(e) {\n return this._bufferManager.releaseBuffer(e);\n }\n //------------------------------------------------------------------------------\n // Uniform Buffers\n //------------------------------------------------------------------------------\n /**\n * Create an uniform buffer\n * @see https://doc.babylonjs.com/setup/support/webGL2#uniform-buffer-objets\n * @param elements defines the content of the uniform buffer\n * @param label defines a name for the buffer (for debugging purpose)\n * @returns the webGL uniform buffer\n */\n createUniformBuffer(e, t) {\n let i;\n return e instanceof Array ? i = new Float32Array(e) : i = e, this._bufferManager.createBuffer(i, Kt.Uniform | Kt.CopyDst, t);\n }\n /**\n * Create a dynamic uniform buffer (no different from a non dynamic uniform buffer in WebGPU)\n * @see https://doc.babylonjs.com/setup/support/webGL2#uniform-buffer-objets\n * @param elements defines the content of the uniform buffer\n * @param label defines a name for the buffer (for debugging purpose)\n * @returns the webGL uniform buffer\n */\n createDynamicUniformBuffer(e, t) {\n return this.createUniformBuffer(e, t);\n }\n /**\n * Update an existing uniform buffer\n * @see https://doc.babylonjs.com/setup/support/webGL2#uniform-buffer-objets\n * @param uniformBuffer defines the target uniform buffer\n * @param elements defines the content to update\n * @param offset defines the offset in the uniform buffer where update should start\n * @param count defines the size of the data to update\n */\n updateUniformBuffer(e, t, i, s) {\n i === void 0 && (i = 0);\n const r = e;\n let n;\n s === void 0 ? (t instanceof Float32Array ? n = t : n = new Float32Array(t), s = n.byteLength) : t instanceof Float32Array ? n = t : n = new Float32Array(t), this._bufferManager.setSubData(r, i, n, 0, s);\n }\n /**\n * Bind a buffer to the current draw context\n * @param buffer defines the buffer to bind\n * @param _location not used in WebGPU\n * @param name Name of the uniform variable to bind\n */\n bindUniformBufferBase(e, t, i) {\n this._currentDrawContext.setBuffer(i, e);\n }\n /**\n * Unused in WebGPU\n */\n bindUniformBlock() {\n }\n //------------------------------------------------------------------------------\n // Effects\n //------------------------------------------------------------------------------\n /**\n * Create a new effect (used to store vertex/fragment shaders)\n * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)\n * @param attributesNamesOrOptions defines either a list of attribute names or an IEffectCreationOptions object\n * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use\n * @param samplers defines an array of string used to represent textures\n * @param defines defines the string containing the defines to use to compile the shaders\n * @param fallbacks defines the list of potential fallbacks to use if shader compilation fails\n * @param onCompiled defines a function to call when the effect creation is successful\n * @param onError defines a function to call when the effect creation has failed\n * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)\n * @param shaderLanguage the language the shader is written in (default: GLSL)\n * @returns the new Effect\n */\n createEffect(e, t, i, s, r, n, o, l, h, c = 0) {\n const u = typeof e == \"string\" ? e : e.vertexToken || e.vertexSource || e.vertexElement || e.vertex, d = typeof e == \"string\" ? e : e.fragmentToken || e.fragmentSource || e.fragmentElement || e.fragment, f = this._getGlobalDefines();\n let p = r ?? t.defines ?? \"\";\n f && (p += `\n` + f);\n const _ = u + \"+\" + d + \"@\" + p;\n if (this._compiledEffects[_]) {\n const x = this._compiledEffects[_];\n return o && x.isReady() && o(x), x;\n }\n const m = new si(e, t, i, s, this, r, n, o, l, h, _, t.shaderLanguage ?? c);\n return this._compiledEffects[_] = m, m;\n }\n _compileRawShaderToSpirV(e, t) {\n return this._glslang.compileGLSL(e, t);\n }\n _compileShaderToSpirV(e, t, i, s) {\n return this._compileRawShaderToSpirV(s + (i ? i + `\n` : \"\") + e, t);\n }\n _getWGSLShader(e, t, i) {\n return i ? i = \"//\" + i.split(`\n`).join(`\n//`) + `\n` : i = \"\", i + e;\n }\n _createPipelineStageDescriptor(e, t, i, s, r) {\n return this._tintWASM && i === 0 && (e = this._tintWASM.convertSpirV2WGSL(e, s), t = this._tintWASM.convertSpirV2WGSL(t, r)), {\n vertexStage: {\n module: this._device.createShaderModule({\n code: e\n }),\n entryPoint: \"main\"\n },\n fragmentStage: {\n module: this._device.createShaderModule({\n code: t\n }),\n entryPoint: \"main\"\n }\n };\n }\n _compileRawPipelineStageDescriptor(e, t, i) {\n const s = e.indexOf(\"#define DISABLE_UNIFORMITY_ANALYSIS\") >= 0, r = t.indexOf(\"#define DISABLE_UNIFORMITY_ANALYSIS\") >= 0, n = i === 0 ? this._compileRawShaderToSpirV(e, \"vertex\") : e, o = i === 0 ? this._compileRawShaderToSpirV(t, \"fragment\") : t;\n return this._createPipelineStageDescriptor(n, o, i, s, r);\n }\n _compilePipelineStageDescriptor(e, t, i, s) {\n this.onBeforeShaderCompilationObservable.notifyObservers(this);\n const r = e.indexOf(\"#define DISABLE_UNIFORMITY_ANALYSIS\") >= 0, n = t.indexOf(\"#define DISABLE_UNIFORMITY_ANALYSIS\") >= 0, o = `#version 450\n`, l = s === 0 ? this._compileShaderToSpirV(e, \"vertex\", i, o) : this._getWGSLShader(e, \"vertex\", i), h = s === 0 ? this._compileShaderToSpirV(t, \"fragment\", i, o) : this._getWGSLShader(t, \"fragment\", i), c = this._createPipelineStageDescriptor(l, h, s, r, n);\n return this.onAfterShaderCompilationObservable.notifyObservers(this), c;\n }\n /**\n * @internal\n */\n createRawShaderProgram() {\n throw \"Not available on WebGPU\";\n }\n /**\n * @internal\n */\n createShaderProgram() {\n throw \"Not available on WebGPU\";\n }\n /**\n * Inline functions in shader code that are marked to be inlined\n * @param code code to inline\n * @returns inlined code\n */\n inlineShaderCode(e) {\n const t = new yl(e);\n return t.debug = !1, t.processCode(), t.code;\n }\n /**\n * Creates a new pipeline context\n * @param shaderProcessingContext defines the shader processing context used during the processing if available\n * @returns the new pipeline\n */\n createPipelineContext(e) {\n return new EM(e, this);\n }\n /**\n * Creates a new material context\n * @returns the new context\n */\n createMaterialContext() {\n return new u_();\n }\n /**\n * Creates a new draw context\n * @returns the new context\n */\n createDrawContext() {\n return new d_(this._bufferManager);\n }\n /**\n * @internal\n */\n _preparePipelineContext(e, t, i, s, r, n, o, l) {\n const h = e, c = h.shaderProcessingContext.shaderLanguage;\n this.dbgShowShaderCode && (L.Log([\"defines\", l]), L.Log(t), L.Log(i), L.Log(\"***********************************************\")), h.sources = {\n fragment: i,\n vertex: t,\n rawVertex: r,\n rawFragment: n\n }, s ? h.stages = this._compileRawPipelineStageDescriptor(t, i, c) : h.stages = this._compilePipelineStageDescriptor(t, i, l, c);\n }\n /**\n * Gets the list of active attributes for a given WebGPU program\n * @param pipelineContext defines the pipeline context to use\n * @param attributesNames defines the list of attribute names to get\n * @returns an array of indices indicating the offset of each attribute\n */\n getAttributes(e, t) {\n const i = new Array(t.length), s = e;\n for (let r = 0; r < t.length; r++) {\n const n = t[r], o = s.shaderProcessingContext.availableAttributes[n];\n o !== void 0 && (i[r] = o);\n }\n return i;\n }\n /**\n * Activates an effect, making it the current one (ie. the one used for rendering)\n * @param effect defines the effect to activate\n */\n enableEffect(e) {\n if (e) {\n if (!uC(e))\n this._currentEffect = e, this._currentMaterialContext = this._defaultMaterialContext, this._currentDrawContext = this._defaultDrawContext, this._counters.numEnableEffects++, this.dbgLogIfNotDrawWrapper && L.Warn(`enableEffect has been called with an Effect and not a Wrapper! effect.uniqueId=${e.uniqueId}, effect.name=${e.name}, effect.name.vertex=${typeof e.name == \"string\" ? \"\" : e.name.vertex}, effect.name.fragment=${typeof e.name == \"string\" ? \"\" : e.name.fragment}`, 10);\n else if (!e.effect || e.effect === this._currentEffect && e.materialContext === this._currentMaterialContext && e.drawContext === this._currentDrawContext && !this._forceEnableEffect) {\n if (!e.effect && this.dbgShowEmptyEnableEffectCalls)\n throw L.Log([\"drawWrapper=\", e]), \"Invalid call to enableEffect: the effect property is empty!\";\n return;\n } else if (this._currentEffect = e.effect, this._currentMaterialContext = e.materialContext, this._currentDrawContext = e.drawContext, this._counters.numEnableDrawWrapper++, !this._currentMaterialContext)\n throw L.Log([\"drawWrapper=\", e]), \"Invalid call to enableEffect: the materialContext property is empty!\";\n this._stencilStateComposer.stencilMaterial = void 0, this._forceEnableEffect = !1, this._currentEffect.onBind && this._currentEffect.onBind(this._currentEffect), this._currentEffect._onBindObservable && this._currentEffect._onBindObservable.notifyObservers(this._currentEffect);\n }\n }\n /**\n * @internal\n */\n _releaseEffect(e) {\n this._compiledEffects[e._key] && (delete this._compiledEffects[e._key], this._deletePipelineContext(e.getPipelineContext()));\n }\n /**\n * Force the engine to release all cached effects. This means that next effect compilation will have to be done completely even if a similar effect was already compiled\n */\n releaseEffects() {\n for (const e in this._compiledEffects) {\n const t = this._compiledEffects[e].getPipelineContext();\n this._deletePipelineContext(t);\n }\n this._compiledEffects = {};\n }\n _deletePipelineContext(e) {\n const t = e;\n t && dx(t);\n }\n //------------------------------------------------------------------------------\n // Textures\n //------------------------------------------------------------------------------\n /**\n * Gets a boolean indicating that only power of 2 textures are supported\n * Please note that you can still use non power of 2 textures but in this case the engine will forcefully convert them\n */\n get needPOTTextures() {\n return !1;\n }\n /** @internal */\n _createHardwareTexture() {\n return new xp();\n }\n /**\n * @internal\n */\n _releaseTexture(e) {\n const t = this._internalTexturesCache.indexOf(e);\n t !== -1 && this._internalTexturesCache.splice(t, 1), this._textureHelper.releaseTexture(e);\n }\n /**\n * @internal\n */\n _getRGBABufferInternalSizedFormat() {\n return 5;\n }\n updateTextureComparisonFunction(e, t) {\n e._comparisonFunction = t;\n }\n /**\n * Creates an internal texture without binding it to a framebuffer\n * @internal\n * @param size defines the size of the texture\n * @param options defines the options used to create the texture\n * @param delayGPUTextureCreation true to delay the texture creation the first time it is really needed. false to create it right away\n * @param source source type of the texture\n * @returns a new internal texture\n */\n _createInternalTexture(e, t, i = !0, s = 0) {\n const r = {};\n t !== void 0 && typeof t == \"object\" ? (r.generateMipMaps = t.generateMipMaps, r.type = t.type === void 0 ? 0 : t.type, r.samplingMode = t.samplingMode === void 0 ? 3 : t.samplingMode, r.format = t.format === void 0 ? 5 : t.format, r.samples = t.samples ?? 1, r.creationFlags = t.creationFlags ?? 0, r.useSRGBBuffer = t.useSRGBBuffer ?? !1, r.label = t.label) : (r.generateMipMaps = t, r.type = 0, r.samplingMode = 3, r.format = 5, r.samples = 1, r.creationFlags = 0, r.useSRGBBuffer = !1), (r.type === 1 && !this._caps.textureFloatLinearFiltering || r.type === 2 && !this._caps.textureHalfFloatLinearFiltering) && (r.samplingMode = 1), r.type === 1 && !this._caps.textureFloat && (r.type = 0, L.Warn(\"Float textures are not supported. Type forced to TEXTURETYPE_UNSIGNED_BYTE\"));\n const n = new Nt(this, s), o = e.width || e, l = e.height || e, h = e.depth || 0, c = e.layers || 0;\n return n.baseWidth = o, n.baseHeight = l, n.width = o, n.height = l, n.depth = h || c, n.isReady = !0, n.samples = r.samples, n.generateMipMaps = !!r.generateMipMaps, n.samplingMode = r.samplingMode, n.type = r.type, n.format = r.format, n.is2DArray = c > 0, n.is3D = h > 0, n._cachedWrapU = 0, n._cachedWrapV = 0, n._useSRGBBuffer = r.useSRGBBuffer, n.label = r.label, this._internalTexturesCache.push(n), i || this._textureHelper.createGPUTextureForInternalTexture(n, o, l, c || 1, r.creationFlags), n;\n }\n /**\n * Usually called from Texture.ts.\n * Passed information to create a hardware texture\n * @param url defines a value which contains one of the following:\n * * A conventional http URL, e.g. 'http://...' or 'file://...'\n * * A base64 string of in-line texture data, e.g. 'data:image/jpg;base64,/...'\n * * An indicator that data being passed using the buffer parameter, e.g. 'data:mytexture.jpg'\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated. Ignored for compressed textures. They must be in the file\n * @param invertY when true, image is flipped when loaded. You probably want true. Certain compressed textures may invert this if their default is inverted (eg. ktx)\n * @param scene needed for loading to the correct scene\n * @param samplingMode mode with should be used sample / access the texture (Default: Texture.TRILINEAR_SAMPLINGMODE)\n * @param onLoad optional callback to be called upon successful completion\n * @param onError optional callback to be called upon failure\n * @param buffer a source of a file previously fetched as either a base64 string, an ArrayBuffer (compressed or image format), HTMLImageElement (image format), or a Blob\n * @param fallback an internal argument in case the function must be called again, due to etc1 not having alpha capabilities\n * @param format internal format. Default: RGB when extension is '.jpg' else RGBA. Ignored for compressed textures\n * @param forcedExtension defines the extension to use to pick the right loader\n * @param mimeType defines an optional mime type\n * @param loaderOptions options to be passed to the loader\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns a InternalTexture for assignment back into BABYLON.Texture\n */\n createTexture(e, t, i, s, r = 3, n = null, o = null, l = null, h = null, c = null, u = null, d, f, p, _) {\n return this._createTextureBase(e, t, i, s, r, n, o, (m, x, v, T, E, b, S, C) => {\n var N;\n const P = T;\n if (m.baseWidth = P.width, m.baseHeight = P.height, m.width = P.width, m.height = P.height, m.format = m.format !== -1 ? m.format : c ?? 5, m.type = m.type !== -1 ? m.type : 0, m._creationFlags = p ?? 0, C(m.width, m.height, P, x, m, () => {\n }), (N = m._hardwareTexture) != null && N.underlyingResource)\n !b && !S && this._generateMipmaps(m, this._uploadEncoder);\n else {\n const F = this._textureHelper.createGPUTextureForInternalTexture(m, P.width, P.height, void 0, p);\n Bt.IsImageBitmap(P) && (this._textureHelper.updateTexture(P, m, P.width, P.height, m.depth, F.format, 0, 0, E, !1, 0, 0), !b && !S && this._generateMipmaps(m, this._uploadEncoder));\n }\n v && v.removePendingData(m), m.isReady = !0, m.onLoadedObservable.notifyObservers(m), m.onLoadedObservable.clear();\n }, () => !1, l, h, c, u, d, f, _);\n }\n /**\n * Wraps an external web gpu texture in a Babylon texture.\n * @param texture defines the external texture\n * @returns the babylon internal texture\n */\n wrapWebGPUTexture(e) {\n const t = new xp(e), i = new Nt(this, 0, !0);\n return i._hardwareTexture = t, i.isReady = !0, i;\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Wraps an external web gl texture in a Babylon texture.\n * @returns the babylon internal texture\n */\n wrapWebGLTexture() {\n throw new Error(\"wrapWebGLTexture is not supported, use wrapWebGPUTexture instead.\");\n }\n /**\n * @internal\n */\n _getUseSRGBBuffer(e, t) {\n return e && this._caps.supportSRGBBuffers;\n }\n /**\n * @internal\n */\n _unpackFlipY(e) {\n }\n /**\n * Update the sampling mode of a given texture\n * @param samplingMode defines the required sampling mode\n * @param texture defines the texture to update\n * @param generateMipMaps defines whether to generate mipmaps for the texture\n */\n updateTextureSamplingMode(e, t, i = !1) {\n i && (t.generateMipMaps = !0, this._generateMipmaps(t)), t.samplingMode = e;\n }\n /**\n * Update the sampling mode of a given texture\n * @param texture defines the texture to update\n * @param wrapU defines the texture wrap mode of the u coordinates\n * @param wrapV defines the texture wrap mode of the v coordinates\n * @param wrapR defines the texture wrap mode of the r coordinates\n */\n updateTextureWrappingMode(e, t, i = null, s = null) {\n t !== null && (e._cachedWrapU = t), i !== null && (e._cachedWrapV = i), (e.is2DArray || e.is3D) && s !== null && (e._cachedWrapR = s);\n }\n /**\n * Update the dimensions of a texture\n * @param texture texture to update\n * @param width new width of the texture\n * @param height new height of the texture\n * @param depth new depth of the texture\n */\n updateTextureDimensions(e, t, i, s = 1) {\n if (!e._hardwareTexture || e.width === t && e.height === i && e.depth === s)\n return;\n const r = e._hardwareTexture.textureAdditionalUsages;\n e._hardwareTexture.release(), this._textureHelper.createGPUTextureForInternalTexture(e, t, i, s, r);\n }\n /**\n * @internal\n */\n _setInternalTexture(e, t, i) {\n if (i = i ?? e, this._currentEffect) {\n const r = this._currentEffect._pipelineContext.shaderProcessingContext.availableTextures[i];\n if (this._currentMaterialContext.setTexture(e, t), r && r.autoBindSampler) {\n const n = i + \"Sampler\";\n this._currentMaterialContext.setSampler(n, t);\n }\n }\n }\n /**\n * Create a cube texture from prefiltered data (ie. the mipmaps contain ready to use data for PBR reflection)\n * @param rootUrl defines the url where the file to load is located\n * @param scene defines the current scene\n * @param lodScale defines scale to apply to the mip map selection\n * @param lodOffset defines offset to apply to the mip map selection\n * @param onLoad defines an optional callback raised when the texture is loaded\n * @param onError defines an optional callback raised if there is an issue to load the texture\n * @param format defines the format of the data\n * @param forcedExtension defines the extension to use to pick the right loader\n * @param createPolynomials defines wheter or not to create polynomails harmonics for the texture\n * @returns the cube texture as an InternalTexture\n */\n createPrefilteredCubeTexture(e, t, i, s, r = null, n = null, o, l = null, h = !0) {\n const c = (u) => {\n if (!u) {\n r && r(null);\n return;\n }\n const d = u.texture;\n h ? u.info.sphericalPolynomial && (d._sphericalPolynomial = u.info.sphericalPolynomial) : d._sphericalPolynomial = new uo(), d._source = 9, r && r(d);\n };\n return this.createCubeTexture(e, t, null, !1, c, n, o, l, h, i, s);\n }\n /**\n * Sets a texture to the according uniform.\n * @param channel The texture channel\n * @param unused unused parameter\n * @param texture The texture to apply\n * @param name The name of the uniform in the effect\n */\n setTexture(e, t, i, s) {\n this._setTexture(e, i, !1, !1, s, s);\n }\n /**\n * Sets an array of texture to the WebGPU context\n * @param channel defines the channel where the texture array must be set\n * @param unused unused parameter\n * @param textures defines the array of textures to bind\n * @param name name of the channel\n */\n setTextureArray(e, t, i, s) {\n for (let r = 0; r < i.length; r++)\n this._setTexture(-1, i[r], !0, !1, s + r.toString(), s);\n }\n /**\n * @internal\n */\n _setTexture(e, t, i = !1, s = !1, r = \"\", n) {\n if (n = n ?? r, this._currentEffect) {\n if (!t)\n return this._currentMaterialContext.setTexture(r, null), !1;\n if (t.video)\n t.update();\n else if (t.delayLoadState === 4)\n return t.delayLoad(), !1;\n let o = null;\n if (s ? o = t.depthStencilTexture : t.isReady() ? o = t.getInternalTexture() : t.isCube ? o = this.emptyCubeTexture : t.is3D ? o = this.emptyTexture3D : t.is2DArray ? o = this.emptyTexture2DArray : o = this.emptyTexture, o && !o.isMultiview) {\n if (o.isCube && o._cachedCoordinatesMode !== t.coordinatesMode) {\n o._cachedCoordinatesMode = t.coordinatesMode;\n const l = t.coordinatesMode !== 3 && t.coordinatesMode !== 5 ? 1 : 0;\n t.wrapU = l, t.wrapV = l;\n }\n o._cachedWrapU = t.wrapU, o._cachedWrapV = t.wrapV, o.is3D && (o._cachedWrapR = t.wrapR), this._setAnisotropicLevel(0, o, t.anisotropicFilteringLevel);\n }\n this._setInternalTexture(r, o, n);\n } else\n this.dbgVerboseLogsForFirstFrames && (this._count === void 0 && (this._count = 0), (!this._count || this._count < this.dbgVerboseLogsNumFrames) && L.Log([\"frame #\" + this._count + \" - _setTexture called with a null _currentEffect! texture=\", t]));\n return !0;\n }\n /**\n * @internal\n */\n _setAnisotropicLevel(e, t, i) {\n t._cachedAnisotropicFilteringLevel !== i && (t._cachedAnisotropicFilteringLevel = Math.min(i, this._caps.maxAnisotropy));\n }\n /**\n * @internal\n */\n _bindTexture(e, t, i) {\n e !== void 0 && this._setInternalTexture(i, t);\n }\n /**\n * Generates the mipmaps for a texture\n * @param texture texture to generate the mipmaps for\n */\n generateMipmaps(e) {\n this._generateMipmaps(e);\n }\n /**\n * @internal\n */\n _generateMipmaps(e, t) {\n t = t ?? this._renderEncoder;\n const i = e._hardwareTexture;\n if (!i)\n return;\n t === this._renderEncoder && this._endCurrentRenderPass();\n const s = e._hardwareTexture.format, r = Bt.ComputeNumMipmapLevels(e.width, e.height);\n this.dbgVerboseLogsForFirstFrames && (this._count === void 0 && (this._count = 0), (!this._count || this._count < this.dbgVerboseLogsNumFrames) && L.Log(\"frame #\" + this._count + \" - generate mipmaps - width=\" + e.width + \", height=\" + e.height + \", isCube=\" + e.isCube + \", command encoder=\" + (t === this._renderEncoder ? \"render\" : \"copy\"))), e.isCube ? this._textureHelper.generateCubeMipmaps(i, s, r, t) : this._textureHelper.generateMipmaps(i, s, r, 0, e.is3D, t);\n }\n /**\n * Update a portion of an internal texture\n * @param texture defines the texture to update\n * @param imageData defines the data to store into the texture\n * @param xOffset defines the x coordinates of the update rectangle\n * @param yOffset defines the y coordinates of the update rectangle\n * @param width defines the width of the update rectangle\n * @param height defines the height of the update rectangle\n * @param faceIndex defines the face index if texture is a cube (0 by default)\n * @param lod defines the lod level to update (0 by default)\n * @param generateMipMaps defines whether to generate mipmaps or not\n */\n updateTextureData(e, t, i, s, r, n, o = 0, l = 0, h = !1) {\n var d;\n let c = e._hardwareTexture;\n (d = e._hardwareTexture) != null && d.underlyingResource || (c = this._textureHelper.createGPUTextureForInternalTexture(e));\n const u = new Uint8Array(t.buffer, t.byteOffset, t.byteLength);\n this._textureHelper.updateTexture(u, e, r, n, e.depth, c.format, o, l, e.invertY, !1, i, s), h && this._generateMipmaps(e);\n }\n /**\n * @internal\n */\n _uploadCompressedDataToTextureDirectly(e, t, i, s, r, n = 0, o = 0) {\n var c;\n let l = e._hardwareTexture;\n (c = e._hardwareTexture) != null && c.underlyingResource || (e.format = t, l = this._textureHelper.createGPUTextureForInternalTexture(e, i, s));\n const h = new Uint8Array(r.buffer, r.byteOffset, r.byteLength);\n this._textureHelper.updateTexture(h, e, i, s, e.depth, l.format, n, o, !1, !1, 0, 0);\n }\n /**\n * @internal\n */\n _uploadDataToTextureDirectly(e, t, i = 0, s = 0, r, n = !1) {\n var f;\n const o = Math.round(Math.log(e.width) * Math.LOG2E), l = Math.round(Math.log(e.height) * Math.LOG2E), h = n ? e.width : Math.pow(2, Math.max(o - s, 0)), c = n ? e.height : Math.pow(2, Math.max(l - s, 0));\n let u = e._hardwareTexture;\n (f = e._hardwareTexture) != null && f.underlyingResource || (u = this._textureHelper.createGPUTextureForInternalTexture(e, h, c));\n const d = new Uint8Array(t.buffer, t.byteOffset, t.byteLength);\n this._textureHelper.updateTexture(d, e, h, c, e.depth, u.format, i, s, e.invertY, !1, 0, 0);\n }\n /**\n * @internal\n */\n _uploadArrayBufferViewToTexture(e, t, i = 0, s = 0) {\n this._uploadDataToTextureDirectly(e, t, i, s);\n }\n /**\n * @internal\n */\n _uploadImageToTexture(e, t, i = 0, s = 0) {\n var h;\n let r = e._hardwareTexture;\n if ((h = e._hardwareTexture) != null && h.underlyingResource || (r = this._textureHelper.createGPUTextureForInternalTexture(e)), t instanceof HTMLImageElement)\n throw \"WebGPU engine: HTMLImageElement not supported in _uploadImageToTexture!\";\n const n = t, o = Math.ceil(e.width / (1 << s)), l = Math.ceil(e.height / (1 << s));\n this._textureHelper.updateTexture(n, e, o, l, e.depth, r.format, i, s, e.invertY, !1, 0, 0);\n }\n /**\n * Reads pixels from the current frame buffer. Please note that this function can be slow\n * @param x defines the x coordinate of the rectangle where pixels must be read\n * @param y defines the y coordinate of the rectangle where pixels must be read\n * @param width defines the width of the rectangle where pixels must be read\n * @param height defines the height of the rectangle where pixels must be read\n * @param hasAlpha defines whether the output should have alpha or not (defaults to true)\n * @param flushRenderer true to flush the renderer from the pending commands before reading the pixels\n * @returns a ArrayBufferView promise (Uint8Array) containing RGBA colors\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n readPixels(e, t, i, s, r = !0, n = !0) {\n const l = this._getCurrentRenderPassWrapper().colorAttachmentGPUTextures[0];\n if (!l)\n return Promise.resolve(new Uint8Array(0));\n const h = l.underlyingResource, c = l.format;\n return h ? (n && this.flushFramebuffer(), this._textureHelper.readPixels(h, e, t, i, s, c)) : Promise.resolve(new Uint8Array(0));\n }\n //------------------------------------------------------------------------------\n // Frame management\n //------------------------------------------------------------------------------\n _measureFps() {\n this._performanceMonitor.sampleFrame(), this._fps = this._performanceMonitor.averageFPS, this._deltaTime = this._performanceMonitor.instantaneousFrameTime || 0;\n }\n /**\n * Gets the performance monitor attached to this engine\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#engineinstrumentation\n */\n get performanceMonitor() {\n return this._performanceMonitor;\n }\n /**\n * Begin a new frame\n */\n beginFrame() {\n this._measureFps(), super.beginFrame();\n }\n /**\n * End the current frame\n */\n endFrame() {\n if (this._endCurrentRenderPass(), this._snapshotRendering.endFrame(), this._timestampQuery.endFrame(this._renderEncoder), this._timestampIndex = 0, this.flushFramebuffer(), this._textureHelper.destroyDeferredTextures(), this._bufferManager.destroyDeferredBuffers(), this._features._collectUbosUpdatedInFrame) {\n if (this.dbgVerboseLogsForFirstFrames && (this._count === void 0 && (this._count = 0), !this._count || this._count < this.dbgVerboseLogsNumFrames)) {\n const e = [];\n for (const t in Ve._UpdatedUbosInFrame)\n e.push(t + \":\" + Ve._UpdatedUbosInFrame[t]);\n L.Log([\"frame #\" + this._count + \" - updated ubos -\", e.join(\", \")]);\n }\n Ve._UpdatedUbosInFrame = {};\n }\n this.countersLastFrame.numEnableEffects = this._counters.numEnableEffects, this.countersLastFrame.numEnableDrawWrapper = this._counters.numEnableDrawWrapper, this.countersLastFrame.numBundleCreationNonCompatMode = this._counters.numBundleCreationNonCompatMode, this.countersLastFrame.numBundleReuseNonCompatMode = this._counters.numBundleReuseNonCompatMode, this._counters.numEnableEffects = 0, this._counters.numEnableDrawWrapper = 0, this._counters.numBundleCreationNonCompatMode = 0, this._counters.numBundleReuseNonCompatMode = 0, this._cacheRenderPipeline.endFrame(), this._cacheBindGroups.endFrame(), this._pendingDebugCommands.length = 0, this.dbgVerboseLogsForFirstFrames && (this._count === void 0 && (this._count = 0), this._count < this.dbgVerboseLogsNumFrames && L.Log([\"%c frame #\" + this._count + \" - end\", \"background: #ffff00\"]), this._count < this.dbgVerboseLogsNumFrames && (this._count++, this._count !== this.dbgVerboseLogsNumFrames && L.Log([\"%c frame #\" + this._count + \" - begin\", \"background: #ffff00\"]))), super.endFrame();\n }\n /**Gets driver info if available */\n extractDriverInfo() {\n return \"\";\n }\n /**\n * Force a WebGPU flush (ie. a flush of all waiting commands)\n */\n flushFramebuffer() {\n this._endCurrentRenderPass(), this._commandBuffers[0] = this._uploadEncoder.finish(), this._commandBuffers[1] = this._renderEncoder.finish(), this._device.queue.submit(this._commandBuffers), this._uploadEncoder = this._device.createCommandEncoder(this._uploadEncoderDescriptor), this._renderEncoder = this._device.createCommandEncoder(this._renderEncoderDescriptor), this._timestampQuery.startFrame(this._uploadEncoder), this._textureHelper.setCommandEncoder(this._uploadEncoder), this._bundleList.reset();\n }\n /** @internal */\n _currentFrameBufferIsDefaultFrameBuffer() {\n return this._currentPassIsMainPass();\n }\n //------------------------------------------------------------------------------\n // Render Pass\n //------------------------------------------------------------------------------\n _startRenderTargetRenderPass(e, t, i, s, r) {\n var T, E, b, S, C;\n this._endCurrentRenderPass();\n const n = e, o = n._depthStencilTexture, l = o == null ? void 0 : o._hardwareTexture, h = l == null ? void 0 : l.underlyingResource, c = l == null ? void 0 : l.getMSAATexture(), u = h == null ? void 0 : h.createView(this._rttRenderPassWrapper.depthAttachmentViewDescriptor), d = c == null ? void 0 : c.createView(this._rttRenderPassWrapper.depthAttachmentViewDescriptor), f = l ? Bt.HasStencilAspect(l.format) : !1, p = [];\n this.useReverseDepthBuffer && this.setDepthFunctionToGreaterOrEqual();\n const _ = XO;\n i && (_.r = i.r * 255, _.g = i.g * 255, _.b = i.b * 255, _.a = i.a * 255);\n const m = t && i, x = t && s, v = t && r;\n if (n._attachments && n.isMulti) {\n (!this._mrtAttachments || this._mrtAttachments.length === 0) && (this._mrtAttachments = n._defaultAttachments);\n for (let P = 0; P < this._mrtAttachments.length; ++P) {\n const N = this._mrtAttachments[P], F = n.textures[P], $ = F == null ? void 0 : F._hardwareTexture, j = $ == null ? void 0 : $.underlyingResource;\n if ($ && j) {\n const ne = $.getMSAATexture(P), te = ((T = n.layerIndices) == null ? void 0 : T[P]) ?? 0, le = ((E = n.faceIndices) == null ? void 0 : E[P]) ?? 0, _e = {\n ...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,\n dimension: F.is3D ? \"3d\" : \"2d\",\n format: $.format,\n baseArrayLayer: F.isCube ? te * 6 + le : F.is3D ? 0 : te\n }, Se = {\n ...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,\n dimension: F.is3D ? \"3d\" : \"2d\",\n format: $.format,\n baseArrayLayer: 0\n }, Ie = F.type === 7 || F.type === 5, de = j.createView(_e), Y = ne == null ? void 0 : ne.createView(Se);\n p.push({\n view: Y || de,\n resolveTarget: ne ? de : void 0,\n depthSlice: F.is3D ? te : void 0,\n clearValue: N !== 0 && m ? Ie ? _ : i : void 0,\n loadOp: N !== 0 && m ? \"clear\" : \"load\",\n storeOp: \"store\"\n });\n }\n }\n this._cacheRenderPipeline.setMRT(n.textures, this._mrtAttachments.length), this._cacheRenderPipeline.setMRTAttachments(this._mrtAttachments);\n } else {\n const P = n.texture;\n if (P) {\n const N = P._hardwareTexture, F = N.underlyingResource;\n let $;\n n.is3D && ($ = this._rttRenderPassWrapper.colorAttachmentViewDescriptor.baseArrayLayer, this._rttRenderPassWrapper.colorAttachmentViewDescriptor.baseArrayLayer = 0);\n const j = N.getMSAATexture(), ne = F.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor), te = j == null ? void 0 : j.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor), le = P.type === 7 || P.type === 5;\n p.push({\n view: te || ne,\n resolveTarget: j ? ne : void 0,\n depthSlice: $,\n clearValue: m ? le ? _ : i : void 0,\n loadOp: m ? \"clear\" : \"load\",\n storeOp: \"store\"\n });\n } else\n p.push(null);\n }\n if ((b = this._debugPushGroup) == null || b.call(this, \"render target pass\" + (e.label ? \" (\" + e.label + \")\" : \"\"), 1), this._rttRenderPassWrapper.renderPassDescriptor = {\n label: (e.label ?? \"RTT\") + \"RenderPass\",\n colorAttachments: p,\n depthStencilAttachment: o && h ? {\n view: d || u,\n depthClearValue: x ? this.useReverseDepthBuffer ? this._clearReverseDepthValue : this._clearDepthValue : void 0,\n depthLoadOp: x ? \"clear\" : \"load\",\n depthStoreOp: \"store\",\n stencilClearValue: n._depthStencilTextureWithStencil && v ? this._clearStencilValue : void 0,\n stencilLoadOp: f ? n._depthStencilTextureWithStencil && v ? \"clear\" : \"load\" : void 0,\n stencilStoreOp: f ? \"store\" : void 0\n } : void 0,\n occlusionQuerySet: (S = this._occlusionQuery) != null && S.hasQueries ? this._occlusionQuery.querySet : void 0\n }, this._timestampQuery.startPass(this._rttRenderPassWrapper.renderPassDescriptor, this._timestampIndex), this._currentRenderPass = this._renderEncoder.beginRenderPass(this._rttRenderPassWrapper.renderPassDescriptor), this.dbgVerboseLogsForFirstFrames && (this._count === void 0 && (this._count = 0), !this._count || this._count < this.dbgVerboseLogsNumFrames)) {\n const P = n.texture;\n L.Log([\n \"frame #\" + this._count + \" - render target begin pass - rtt name=\" + e.label + \", internalTexture.uniqueId=\" + P.uniqueId + \", width=\" + P.width + \", height=\" + P.height + \", setClearStates=\" + t,\n \"renderPassDescriptor=\",\n this._rttRenderPassWrapper.renderPassDescriptor\n ]);\n }\n (C = this._debugFlushPendingCommands) == null || C.call(this), this._resetRenderPassStates(), (!l || !Bt.HasStencilAspect(l.format)) && (this._stencilStateComposer.enabled = !1);\n }\n _startMainRenderPass(e, t, i, s) {\n var h, c, u;\n this._endCurrentRenderPass(), this.useReverseDepthBuffer && this.setDepthFunctionToGreaterOrEqual();\n const r = e && t, n = e && i, o = e && s;\n this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].clearValue = r ? t : void 0, this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].loadOp = r ? \"clear\" : \"load\", this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.depthClearValue = n ? this.useReverseDepthBuffer ? this._clearReverseDepthValue : this._clearDepthValue : void 0, this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.depthLoadOp = n ? \"clear\" : \"load\", this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.stencilClearValue = o ? this._clearStencilValue : void 0, this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.stencilLoadOp = this.isStencilEnable ? o ? \"clear\" : \"load\" : void 0, this._mainRenderPassWrapper.renderPassDescriptor.occlusionQuerySet = (h = this._occlusionQuery) != null && h.hasQueries ? this._occlusionQuery.querySet : void 0;\n const l = this._context.getCurrentTexture();\n this._mainRenderPassWrapper.colorAttachmentGPUTextures[0].set(l), this._options.antialias ? (Ab.format = l.format, this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].resolveTarget = l.createView(Ab)) : (Rb.format = l.format, this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].view = l.createView(Rb)), this.dbgVerboseLogsForFirstFrames && (this._count === void 0 && (this._count = 0), (!this._count || this._count < this.dbgVerboseLogsNumFrames) && L.Log([\n \"frame #\" + this._count + \" - main begin pass - texture width=\" + this._mainTextureExtends.width,\n \" height=\" + this._mainTextureExtends.height + \", setClearStates=\" + e,\n \"renderPassDescriptor=\",\n this._mainRenderPassWrapper.renderPassDescriptor\n ])), (c = this._debugPushGroup) == null || c.call(this, \"main pass\", 0), this._timestampQuery.startPass(this._mainRenderPassWrapper.renderPassDescriptor, this._timestampIndex), this._currentRenderPass = this._renderEncoder.beginRenderPass(this._mainRenderPassWrapper.renderPassDescriptor), this._setDepthTextureFormat(this._mainRenderPassWrapper), this._setColorFormat(this._mainRenderPassWrapper), (u = this._debugFlushPendingCommands) == null || u.call(this), this._resetRenderPassStates(), this._isStencilEnable || (this._stencilStateComposer.enabled = !1);\n }\n /** @internal */\n _endCurrentRenderPass() {\n var t, i, s;\n if (!this._currentRenderPass)\n return 0;\n const e = this._currentPassIsMainPass() ? 2 : 1;\n return !this._snapshotRendering.endRenderPass(this._currentRenderPass) && !this.compatibilityMode && (this._bundleList.run(this._currentRenderPass), this._bundleList.reset()), this._currentRenderPass.end(), this._timestampQuery.endPass(this._timestampIndex, this._currentRenderTarget && this._currentRenderTarget.gpuTimeInFrame ? this._currentRenderTarget.gpuTimeInFrame : this.gpuTimeInFrameForMainPass), this._timestampIndex += 2, this.dbgVerboseLogsForFirstFrames && (this._count === void 0 && (this._count = 0), (!this._count || this._count < this.dbgVerboseLogsNumFrames) && L.Log(\"frame #\" + this._count + \" - \" + (e === 2 ? \"main\" : \"render target\") + \" end pass\" + (e === 1 ? \" - internalTexture.uniqueId=\" + ((i = (t = this._currentRenderTarget) == null ? void 0 : t.texture) == null ? void 0 : i.uniqueId) : \"\"))), (s = this._debugPopGroup) == null || s.call(this, 0), this._currentRenderPass = null, e;\n }\n /**\n * Binds the frame buffer to the specified texture.\n * @param texture The render target wrapper to render to\n * @param faceIndex The face of the texture to render to in case of cube texture\n * @param requiredWidth The width of the target to render to\n * @param requiredHeight The height of the target to render to\n * @param forceFullscreenViewport Forces the viewport to be the entire texture/screen if true\n * @param lodLevel defines the lod level to bind to the frame buffer\n * @param layer defines the 2d array index to bind to frame buffer to\n */\n bindFramebuffer(e, t = 0, i, s, r, n = 0, o = 0) {\n var c, u;\n const l = (c = e.texture) == null ? void 0 : c._hardwareTexture;\n this._currentRenderTarget ? this.unBindFramebuffer(this._currentRenderTarget) : this._endCurrentRenderPass(), this._currentRenderTarget = e;\n const h = this._currentRenderTarget._depthStencilTexture;\n this._rttRenderPassWrapper.colorAttachmentGPUTextures[0] = l, this._rttRenderPassWrapper.depthTextureFormat = h ? Bt.GetWebGPUTextureFormat(-1, h.format) : void 0, this._setDepthTextureFormat(this._rttRenderPassWrapper), this._setColorFormat(this._rttRenderPassWrapper), this._rttRenderPassWrapper.colorAttachmentViewDescriptor = {\n format: this._colorFormat,\n dimension: e.is3D ? \"3d\" : \"2d\",\n mipLevelCount: 1,\n baseArrayLayer: e.isCube ? o * 6 + t : o,\n baseMipLevel: n,\n arrayLayerCount: 1,\n aspect: \"all\"\n }, this._rttRenderPassWrapper.depthAttachmentViewDescriptor = {\n format: this._depthTextureFormat,\n dimension: h && h.is3D ? \"3d\" : \"2d\",\n mipLevelCount: 1,\n baseArrayLayer: h ? h.isCube ? o * 6 + t : o : 0,\n baseMipLevel: 0,\n arrayLayerCount: 1,\n aspect: \"all\"\n }, this.dbgVerboseLogsForFirstFrames && (this._count === void 0 && (this._count = 0), (!this._count || this._count < this.dbgVerboseLogsNumFrames) && L.Log([\n \"frame #\" + this._count + \" - bindFramebuffer - rtt name=\" + e.label + \", internalTexture.uniqueId=\" + ((u = e.texture) == null ? void 0 : u.uniqueId) + \", face=\" + t + \", lodLevel=\" + n + \", layer=\" + o,\n \"colorAttachmentViewDescriptor=\",\n this._rttRenderPassWrapper.colorAttachmentViewDescriptor,\n \"depthAttachmentViewDescriptor=\",\n this._rttRenderPassWrapper.depthAttachmentViewDescriptor\n ])), this._cachedViewport && !r ? this.setViewport(this._cachedViewport, i, s) : (i || (i = e.width, n && (i = i / Math.pow(2, n))), s || (s = e.height, n && (s = s / Math.pow(2, n))), this._viewport(0, 0, i, s)), this.wipeCaches();\n }\n /**\n * Unbind the current render target texture from the WebGPU context\n * @param texture defines the render target wrapper to unbind\n * @param disableGenerateMipMaps defines a boolean indicating that mipmaps must not be generated\n * @param onBeforeUnbind defines a function which will be called before the effective unbind\n */\n unBindFramebuffer(e, t = !1, i) {\n var r, n;\n const s = this._currentRenderTarget;\n this._currentRenderTarget = null, i && i(), this._currentRenderTarget = s, this._endCurrentRenderPass(), (r = e.texture) != null && r.generateMipMaps && !t && !e.isCube && this._generateMipmaps(e.texture), this._currentRenderTarget = null, this.dbgVerboseLogsForFirstFrames && (this._count === void 0 && (this._count = 0), (!this._count || this._count < this.dbgVerboseLogsNumFrames) && L.Log(\"frame #\" + this._count + \" - unBindFramebuffer - rtt name=\" + e.label + \", internalTexture.uniqueId=\", (n = e.texture) == null ? void 0 : n.uniqueId)), this._mrtAttachments = [], this._cacheRenderPipeline.setMRT([]), this._cacheRenderPipeline.setMRTAttachments(this._mrtAttachments);\n }\n /**\n * Unbind the current render target and bind the default framebuffer\n */\n restoreDefaultFramebuffer() {\n this._currentRenderTarget ? this.unBindFramebuffer(this._currentRenderTarget) : this._currentRenderPass || this._startMainRenderPass(!1), this._cachedViewport && this.setViewport(this._cachedViewport), this.wipeCaches();\n }\n //------------------------------------------------------------------------------\n // Render\n //------------------------------------------------------------------------------\n /**\n * @internal\n */\n _setColorFormat(e) {\n var i;\n const t = ((i = e.colorAttachmentGPUTextures[0]) == null ? void 0 : i.format) ?? null;\n this._cacheRenderPipeline.setColorFormat(t), this._colorFormat !== t && (this._colorFormat = t);\n }\n /**\n * @internal\n */\n _setDepthTextureFormat(e) {\n this._cacheRenderPipeline.setDepthStencilFormat(e.depthTextureFormat), this._depthTextureFormat !== e.depthTextureFormat && (this._depthTextureFormat = e.depthTextureFormat);\n }\n setDitheringState() {\n }\n setRasterizerState() {\n }\n /**\n * @internal\n */\n _executeWhenRenderingStateIsCompiled(e, t) {\n t();\n }\n /**\n * @internal\n */\n bindSamplers() {\n }\n /** @internal */\n _getUnpackAlignement() {\n return 1;\n }\n /**\n * @internal\n */\n _bindTextureDirectly() {\n return !1;\n }\n /**\n * Set various states to the webGL context\n * @param culling defines culling state: true to enable culling, false to disable it\n * @param zOffset defines the value to apply to zOffset (0 by default)\n * @param force defines if states must be applied even if cache is up to date\n * @param reverseSide defines if culling must be reversed (CCW if false, CW if true)\n * @param cullBackFaces true to cull back faces, false to cull front faces (if culling is enabled)\n * @param stencil stencil states to set\n * @param zOffsetUnits defines the value to apply to zOffsetUnits (0 by default)\n */\n setState(e, t = 0, i, s = !1, r, n, o = 0) {\n (this._depthCullingState.cull !== e || i) && (this._depthCullingState.cull = e);\n const l = this.cullBackFaces ?? r ?? !0 ? 1 : 2;\n (this._depthCullingState.cullFace !== l || i) && (this._depthCullingState.cullFace = l), this.setZOffset(t), this.setZOffsetUnits(o);\n const h = s ? this._currentRenderTarget ? 1 : 2 : this._currentRenderTarget ? 2 : 1;\n (this._depthCullingState.frontFace !== h || i) && (this._depthCullingState.frontFace = h), this._stencilStateComposer.stencilMaterial = n;\n }\n _applyRenderPassChanges(e) {\n const t = this._stencilStateComposer.enabled ? this._mustUpdateStencilRef() : !1, i = this._alphaState.alphaBlend ? this._mustUpdateBlendColor() : !1;\n this._mustUpdateViewport() && this._applyViewport(e), this._mustUpdateScissor() && this._applyScissor(e), t && this._applyStencilRef(e), i && this._applyBlendColor(e);\n }\n _draw(e, t, i, s, r) {\n var m;\n const n = this._getCurrentRenderPass(), o = this._bundleList;\n this.applyStates();\n const l = this._currentEffect._pipelineContext;\n if (this.bindUniformBufferBase(this._currentRenderTarget ? this._ubInvertY : this._ubDontInvertY, 0, ds.InternalsUBOName), l.uniformBuffer && (l.uniformBuffer.update(), this.bindUniformBufferBase(l.uniformBuffer.getBuffer(), 0, ds.LeftOvertUBOName)), this._snapshotRendering.play) {\n this._reportDrawCall();\n return;\n }\n !this.compatibilityMode && (this._currentDrawContext.isDirty(this._currentMaterialContext.updateId) || this._currentMaterialContext.isDirty || this._currentMaterialContext.forceBindGroupCreation) && (this._currentDrawContext.fastBundle = void 0);\n const h = !this.compatibilityMode && this._currentDrawContext.fastBundle;\n let c = n;\n if (h || this._snapshotRendering.record) {\n if (this._applyRenderPassChanges(o), !this._snapshotRendering.record) {\n this._counters.numBundleReuseNonCompatMode++, this._currentDrawContext.indirectDrawBuffer && this._currentDrawContext.setIndirectData(s, r || 1, i), o.addBundle(this._currentDrawContext.fastBundle), this._reportDrawCall();\n return;\n }\n c = o.getBundleEncoder(this._cacheRenderPipeline.colorFormats, this._depthTextureFormat, this.currentSampleCount), o.numDrawCalls++;\n }\n let u = 0;\n if (this._currentMaterialContext.hasFloatOrDepthTextures) {\n let x = 1;\n for (let v = 0; v < l.shaderProcessingContext.textureNames.length; ++v) {\n const T = l.shaderProcessingContext.textureNames[v], E = (m = this._currentMaterialContext.textures[T]) == null ? void 0 : m.texture, b = E && E.format >= 13 && E.format <= 18;\n ((E == null ? void 0 : E.type) === 1 && !this._caps.textureFloatLinearFiltering || b) && (u |= x), x = x << 1;\n }\n }\n this._currentMaterialContext.textureState = u;\n const d = this._cacheRenderPipeline.getRenderPipeline(t, this._currentEffect, this.currentSampleCount, u), f = this._cacheBindGroups.getBindGroups(l, this._currentDrawContext, this._currentMaterialContext);\n this._snapshotRendering.record || (this._applyRenderPassChanges(this.compatibilityMode ? null : o), this.compatibilityMode || (this._counters.numBundleCreationNonCompatMode++, c = this._device.createRenderBundleEncoder({\n colorFormats: this._cacheRenderPipeline.colorFormats,\n depthStencilFormat: this._depthTextureFormat,\n sampleCount: Bt.GetSample(this.currentSampleCount)\n }))), c.setPipeline(d), this._currentIndexBuffer && c.setIndexBuffer(this._currentIndexBuffer.underlyingResource, this._currentIndexBuffer.is32Bits ? \"uint32\" : \"uint16\", 0);\n const p = this._cacheRenderPipeline.vertexBuffers;\n for (let x = 0; x < p.length; x++) {\n const v = p[x], T = v.effectiveBuffer;\n T && c.setVertexBuffer(x, T.underlyingResource, v._validOffsetRange ? 0 : v.byteOffset);\n }\n for (let x = 0; x < f.length; x++)\n c.setBindGroup(x, f[x]);\n const _ = !this.compatibilityMode && !this._snapshotRendering.record;\n _ && this._currentDrawContext.indirectDrawBuffer ? (this._currentDrawContext.setIndirectData(s, r || 1, i), e === 0 ? c.drawIndexedIndirect(this._currentDrawContext.indirectDrawBuffer, 0) : c.drawIndirect(this._currentDrawContext.indirectDrawBuffer, 0)) : e === 0 ? c.drawIndexed(s, r || 1, i, 0, 0) : c.draw(s, r || 1, i, 0), _ && (this._currentDrawContext.fastBundle = c.finish(), o.addBundle(this._currentDrawContext.fastBundle)), this._reportDrawCall();\n }\n /**\n * Draw a list of indexed primitives\n * @param fillMode defines the primitive to use\n * @param indexStart defines the starting index\n * @param indexCount defines the number of index to draw\n * @param instancesCount defines the number of instances to draw (if instantiation is enabled)\n */\n drawElementsType(e, t, i, s = 1) {\n this._draw(0, e, t, i, s);\n }\n /**\n * Draw a list of unindexed primitives\n * @param fillMode defines the primitive to use\n * @param verticesStart defines the index of first vertex to draw\n * @param verticesCount defines the count of vertices to draw\n * @param instancesCount defines the number of instances to draw (if instantiation is enabled)\n */\n drawArraysType(e, t, i, s = 1) {\n this._currentIndexBuffer = null, this._draw(1, e, t, i, s);\n }\n //------------------------------------------------------------------------------\n // Dispose\n //------------------------------------------------------------------------------\n /**\n * Dispose and release all associated resources\n */\n dispose() {\n var e, t;\n this._isDisposed = !0, this.hideLoadingUI(), this._timestampQuery.dispose(), (e = this._mainTexture) == null || e.destroy(), (t = this._depthTexture) == null || t.destroy(), this._textureHelper.destroyDeferredTextures(), this._bufferManager.destroyDeferredBuffers(), this._device.destroy(), bC(this, this._renderingCanvas), super.dispose();\n }\n //------------------------------------------------------------------------------\n // Misc\n //------------------------------------------------------------------------------\n /**\n * Gets the current render width\n * @param useScreen defines if screen size must be used (or the current render target if any)\n * @returns a number defining the current render width\n */\n getRenderWidth(e = !1) {\n var t;\n return !e && this._currentRenderTarget ? this._currentRenderTarget.width : ((t = this._renderingCanvas) == null ? void 0 : t.width) ?? 0;\n }\n /**\n * Gets the current render height\n * @param useScreen defines if screen size must be used (or the current render target if any)\n * @returns a number defining the current render height\n */\n getRenderHeight(e = !1) {\n var t;\n return !e && this._currentRenderTarget ? this._currentRenderTarget.height : ((t = this._renderingCanvas) == null ? void 0 : t.height) ?? 0;\n }\n //------------------------------------------------------------------------------\n // Errors\n //------------------------------------------------------------------------------\n /**\n * Get the current error code of the WebGPU context\n * @returns the error code\n */\n getError() {\n return 0;\n }\n //------------------------------------------------------------------------------\n // External Textures\n //------------------------------------------------------------------------------\n /**\n * Creates an external texture\n * @param video video element\n * @returns the external texture, or null if external textures are not supported by the engine\n */\n createExternalTexture(e) {\n return new HO(e);\n }\n /**\n * Sets an internal texture to the according uniform.\n * @param name The name of the uniform in the effect\n * @param texture The texture to apply\n */\n setExternalTexture(e, t) {\n if (!t) {\n this._currentMaterialContext.setTexture(e, null);\n return;\n }\n this._setInternalTexture(e, t);\n }\n //------------------------------------------------------------------------------\n // Samplers\n //------------------------------------------------------------------------------\n /**\n * Sets a texture sampler to the according uniform.\n * @param name The name of the uniform in the effect\n * @param sampler The sampler to apply\n */\n setTextureSampler(e, t) {\n var i;\n (i = this._currentMaterialContext) == null || i.setSampler(e, t);\n }\n //------------------------------------------------------------------------------\n // Storage Buffers\n //------------------------------------------------------------------------------\n /**\n * Creates a storage buffer\n * @param data the data for the storage buffer or the size of the buffer\n * @param creationFlags flags to use when creating the buffer (see undefined). The BUFFER_CREATIONFLAG_STORAGE flag will be automatically added\n * @param label defines the label of the buffer (for debug purpose)\n * @returns the new buffer\n */\n createStorageBuffer(e, t, i) {\n return this._createBuffer(e, t | 32, i);\n }\n /**\n * Updates a storage buffer\n * @param buffer the storage buffer to update\n * @param data the data used to update the storage buffer\n * @param byteOffset the byte offset of the data\n * @param byteLength the byte length of the data\n */\n updateStorageBuffer(e, t, i, s) {\n const r = e;\n i === void 0 && (i = 0);\n let n;\n s === void 0 ? (t instanceof Array ? n = new Float32Array(t) : t instanceof ArrayBuffer ? n = new Uint8Array(t) : n = t, s = n.byteLength) : t instanceof Array ? n = new Float32Array(t) : t instanceof ArrayBuffer ? n = new Uint8Array(t) : n = t, this._bufferManager.setSubData(r, i, n, 0, s);\n }\n _readFromGPUBuffer(e, t, i, s) {\n return new Promise((r, n) => {\n const o = () => {\n e.mapAsync(1, 0, t).then(() => {\n const l = e.getMappedRange(0, t);\n let h = i;\n if (h === void 0)\n h = new Uint8Array(t), h.set(new Uint8Array(l));\n else {\n const c = h.constructor;\n h = new c(h.buffer), h.set(new c(l));\n }\n e.unmap(), this._bufferManager.releaseBuffer(e), r(h);\n }, (l) => {\n this.isDisposed ? r(new Uint8Array()) : n(l);\n });\n };\n s ? (this.flushFramebuffer(), o()) : this.onEndFrameObservable.addOnce(() => {\n o();\n });\n });\n }\n /**\n * Read data from a storage buffer\n * @param storageBuffer The storage buffer to read from\n * @param offset The offset in the storage buffer to start reading from (default: 0)\n * @param size The number of bytes to read from the storage buffer (default: capacity of the buffer)\n * @param buffer The buffer to write the data we have read from the storage buffer to (optional)\n * @param noDelay If true, a call to flushFramebuffer will be issued so that the data can be read back immediately and not in engine.onEndFrameObservable. This can speed up data retrieval, at the cost of a small perf penalty (default: false).\n * @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer\n */\n readFromStorageBuffer(e, t, i, s, r) {\n i = i || e.capacity;\n const n = this._bufferManager.createRawBuffer(i, Kt.MapRead | Kt.CopyDst, void 0, \"TempReadFromStorageBuffer\");\n return this._renderEncoder.copyBufferToBuffer(e.underlyingResource, t ?? 0, n, 0, i), this._readFromGPUBuffer(n, i, s, r);\n }\n /**\n * Read data from multiple storage buffers\n * @param storageBuffers The list of storage buffers to read from\n * @param offset The offset in the storage buffer to start reading from (default: 0). This is the same offset for all storage buffers!\n * @param size The number of bytes to read from each storage buffer (default: capacity of the first buffer)\n * @param buffer The buffer to write the data we have read from the storage buffers to (optional). If provided, the buffer should be large enough to hold the data from all storage buffers!\n * @param noDelay If true, a call to flushFramebuffer will be issued so that the data can be read back immediately and not in engine.onEndFrameObservable. This can speed up data retrieval, at the cost of a small perf penalty (default: false).\n * @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer\n */\n readFromMultipleStorageBuffers(e, t, i, s, r) {\n i = i || e[0].capacity;\n const n = this._bufferManager.createRawBuffer(i * e.length, Kt.MapRead | Kt.CopyDst, void 0, \"TempReadFromMultipleStorageBuffers\");\n for (let o = 0; o < e.length; o++)\n this._renderEncoder.copyBufferToBuffer(e[o].underlyingResource, t ?? 0, n, o * i, i);\n return this._readFromGPUBuffer(n, i * e.length, s, r);\n }\n /**\n * Sets a storage buffer in the shader\n * @param name Defines the name of the storage buffer as defined in the shader\n * @param buffer Defines the value to give to the uniform\n */\n setStorageBuffer(e, t) {\n var i;\n (i = this._currentDrawContext) == null || i.setBuffer(e, (t == null ? void 0 : t.getBuffer()) ?? null);\n }\n}\nit._GLSLslangDefaultOptions = {\n jsPath: `${J._DefaultCdnUrl}/glslang/glslang.js`,\n wasmPath: `${J._DefaultCdnUrl}/glslang/glslang.wasm`\n};\nit._InstanceId = 0;\nit.UseTWGSL = !0;\nclass $O {\n constructor() {\n this._doNotSerialize = !1, this._isDisposed = !1, this._sceneRootNodesIndex = -1, this._isEnabled = !0, this._isParentEnabled = !0, this._isReady = !0, this._onEnabledStateChangedObservable = new G(), this._onClonedObservable = new G();\n }\n}\nlet Lt = class Cg {\n /**\n * Add a new node constructor\n * @param type defines the type name of the node to construct\n * @param constructorFunc defines the constructor function\n */\n static AddNodeConstructor(e, t) {\n this._NodeConstructors[e] = t;\n }\n /**\n * Returns a node constructor based on type name\n * @param type defines the type name\n * @param name defines the new node name\n * @param scene defines the hosting scene\n * @param options defines optional options to transmit to constructors\n * @returns the new constructor or null\n */\n static Construct(e, t, i, s) {\n const r = this._NodeConstructors[e];\n return r ? r(t, i, s) : null;\n }\n /**\n * Gets or sets the accessibility tag to describe the node for accessibility purpose.\n */\n set accessibilityTag(e) {\n this._accessibilityTag = e, this.onAccessibilityTagChangedObservable.notifyObservers(e);\n }\n get accessibilityTag() {\n return this._accessibilityTag;\n }\n /**\n * Gets or sets a boolean used to define if the node must be serialized\n */\n get doNotSerialize() {\n return this._nodeDataStorage._doNotSerialize ? !0 : this._parentNode ? this._parentNode.doNotSerialize : !1;\n }\n set doNotSerialize(e) {\n this._nodeDataStorage._doNotSerialize = e;\n }\n /**\n * Gets a boolean indicating if the node has been disposed\n * @returns true if the node was disposed\n */\n isDisposed() {\n return this._nodeDataStorage._isDisposed;\n }\n /**\n * Gets or sets the parent of the node (without keeping the current position in the scene)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/transforms/parent_pivot/parent\n */\n set parent(e) {\n if (this._parentNode === e)\n return;\n const t = this._parentNode;\n if (this._parentNode && this._parentNode._children !== void 0 && this._parentNode._children !== null) {\n const i = this._parentNode._children.indexOf(this);\n i !== -1 && this._parentNode._children.splice(i, 1), !e && !this._nodeDataStorage._isDisposed && this._addToSceneRootNodes();\n }\n this._parentNode = e, this._isDirty = !0, this._parentNode && ((this._parentNode._children === void 0 || this._parentNode._children === null) && (this._parentNode._children = new Array()), this._parentNode._children.push(this), t || this._removeFromSceneRootNodes()), this._syncParentEnabledState();\n }\n get parent() {\n return this._parentNode;\n }\n /**\n * @internal\n */\n _serializeAsParent(e) {\n e.parentId = this.uniqueId;\n }\n /** @internal */\n _addToSceneRootNodes() {\n this._nodeDataStorage._sceneRootNodesIndex === -1 && (this._nodeDataStorage._sceneRootNodesIndex = this._scene.rootNodes.length, this._scene.rootNodes.push(this));\n }\n /** @internal */\n _removeFromSceneRootNodes() {\n if (this._nodeDataStorage._sceneRootNodesIndex !== -1) {\n const e = this._scene.rootNodes, t = e.length - 1;\n e[this._nodeDataStorage._sceneRootNodesIndex] = e[t], e[this._nodeDataStorage._sceneRootNodesIndex]._nodeDataStorage._sceneRootNodesIndex = this._nodeDataStorage._sceneRootNodesIndex, this._scene.rootNodes.pop(), this._nodeDataStorage._sceneRootNodesIndex = -1;\n }\n }\n /**\n * Gets or sets the animation properties override\n */\n get animationPropertiesOverride() {\n return this._animationPropertiesOverride ? this._animationPropertiesOverride : this._scene.animationPropertiesOverride;\n }\n set animationPropertiesOverride(e) {\n this._animationPropertiesOverride = e;\n }\n /**\n * Gets a string identifying the name of the class\n * @returns \"Node\" string\n */\n getClassName() {\n return \"Node\";\n }\n /**\n * Sets a callback that will be raised when the node will be disposed\n */\n set onDispose(e) {\n this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), this._onDisposeObserver = this.onDisposeObservable.add(e);\n }\n /**\n * An event triggered when the enabled state of the node changes\n */\n get onEnabledStateChangedObservable() {\n return this._nodeDataStorage._onEnabledStateChangedObservable;\n }\n /**\n * An event triggered when the node is cloned\n */\n get onClonedObservable() {\n return this._nodeDataStorage._onClonedObservable;\n }\n /**\n * Creates a new Node\n * @param name the name and id to be given to this node\n * @param scene the scene this node will be added to\n * @param isPure indicates this Node is just a Node, and not a derived class like Mesh or Camera\n */\n constructor(e, t = null, i = !0) {\n this._isDirty = !1, this._nodeDataStorage = new $O(), this.state = \"\", this.metadata = null, this.reservedDataStore = null, this._accessibilityTag = null, this.onAccessibilityTagChangedObservable = new G(), this._parentContainer = null, this.animations = [], this._ranges = {}, this.onReady = null, this._currentRenderId = -1, this._parentUpdateId = -1, this._childUpdateId = -1, this._waitingParentId = null, this._waitingParentInstanceIndex = null, this._waitingParsedUniqueId = null, this._cache = {}, this._parentNode = null, this._children = null, this._worldMatrix = O.Identity(), this._worldMatrixDeterminant = 0, this._worldMatrixDeterminantIsDirty = !0, this._animationPropertiesOverride = null, this._isNode = !0, this.onDisposeObservable = new G(), this._onDisposeObserver = null, this._behaviors = new Array(), this.name = e, this.id = e, this._scene = t || Me.LastCreatedScene, this.uniqueId = this._scene.getUniqueId(), this._initCache(), i && this._addToSceneRootNodes();\n }\n /**\n * Gets the scene of the node\n * @returns a scene\n */\n getScene() {\n return this._scene;\n }\n /**\n * Gets the engine of the node\n * @returns a Engine\n */\n getEngine() {\n return this._scene.getEngine();\n }\n /**\n * Attach a behavior to the node\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors\n * @param behavior defines the behavior to attach\n * @param attachImmediately defines that the behavior must be attached even if the scene is still loading\n * @returns the current Node\n */\n addBehavior(e, t = !1) {\n return this._behaviors.indexOf(e) !== -1 ? this : (e.init(), this._scene.isLoading && !t ? this._scene.onDataLoadedObservable.addOnce(() => {\n e.attach(this);\n }) : e.attach(this), this._behaviors.push(e), this);\n }\n /**\n * Remove an attached behavior\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors\n * @param behavior defines the behavior to attach\n * @returns the current Node\n */\n removeBehavior(e) {\n const t = this._behaviors.indexOf(e);\n return t === -1 ? this : (this._behaviors[t].detach(), this._behaviors.splice(t, 1), this);\n }\n /**\n * Gets the list of attached behaviors\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors\n */\n get behaviors() {\n return this._behaviors;\n }\n /**\n * Gets an attached behavior by name\n * @param name defines the name of the behavior to look for\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors\n * @returns null if behavior was not found else the requested behavior\n */\n getBehaviorByName(e) {\n for (const t of this._behaviors)\n if (t.name === e)\n return t;\n return null;\n }\n /**\n * Returns the latest update of the World matrix\n * @returns a Matrix\n */\n getWorldMatrix() {\n return this._currentRenderId !== this._scene.getRenderId() && this.computeWorldMatrix(), this._worldMatrix;\n }\n /** @internal */\n _getWorldMatrixDeterminant() {\n return this._worldMatrixDeterminantIsDirty && (this._worldMatrixDeterminantIsDirty = !1, this._worldMatrixDeterminant = this._worldMatrix.determinant()), this._worldMatrixDeterminant;\n }\n /**\n * Returns directly the latest state of the mesh World matrix.\n * A Matrix is returned.\n */\n get worldMatrixFromCache() {\n return this._worldMatrix;\n }\n // override it in derived class if you add new variables to the cache\n // and call the parent class method\n /** @internal */\n _initCache() {\n this._cache = {};\n }\n /**\n * @internal\n */\n updateCache(e) {\n !e && this.isSynchronized() || this._updateCache();\n }\n /**\n * @internal\n */\n _getActionManagerForTrigger(e, t = !0) {\n return this.parent ? this.parent._getActionManagerForTrigger(e, !1) : null;\n }\n // override it in derived class if you add new variables to the cache\n // and call the parent class method if !ignoreParentClass\n /**\n * @internal\n */\n _updateCache(e) {\n }\n // override it in derived class if you add new variables to the cache\n /** @internal */\n _isSynchronized() {\n return !0;\n }\n /** @internal */\n _markSyncedWithParent() {\n this._parentNode && (this._parentUpdateId = this._parentNode._childUpdateId);\n }\n /** @internal */\n isSynchronizedWithParent() {\n return this._parentNode ? this._parentNode._isDirty || this._parentUpdateId !== this._parentNode._childUpdateId ? !1 : this._parentNode.isSynchronized() : !0;\n }\n /** @internal */\n isSynchronized() {\n return this._parentNode && !this.isSynchronizedWithParent() ? !1 : this._isSynchronized();\n }\n /**\n * Is this node ready to be used/rendered\n * @param _completeCheck defines if a complete check (including materials and lights) has to be done (false by default)\n * @returns true if the node is ready\n */\n isReady(e = !1) {\n return this._nodeDataStorage._isReady;\n }\n /**\n * Flag the node as dirty (Forcing it to update everything)\n * @param _property helps children apply precise \"dirtyfication\"\n * @returns this node\n */\n markAsDirty(e) {\n return this._currentRenderId = Number.MAX_VALUE, this._isDirty = !0, this;\n }\n /**\n * Is this node enabled?\n * If the node has a parent, all ancestors will be checked and false will be returned if any are false (not enabled), otherwise will return true\n * @param checkAncestors indicates if this method should check the ancestors. The default is to check the ancestors. If set to false, the method will return the value of this node without checking ancestors\n * @returns whether this node (and its parent) is enabled\n */\n isEnabled(e = !0) {\n return e === !1 ? this._nodeDataStorage._isEnabled : this._nodeDataStorage._isEnabled ? this._nodeDataStorage._isParentEnabled : !1;\n }\n /** @internal */\n _syncParentEnabledState() {\n this._nodeDataStorage._isParentEnabled = this._parentNode ? this._parentNode.isEnabled() : !0, this._children && this._children.forEach((e) => {\n e._syncParentEnabledState();\n });\n }\n /**\n * Set the enabled state of this node\n * @param value defines the new enabled state\n */\n setEnabled(e) {\n this._nodeDataStorage._isEnabled !== e && (this._nodeDataStorage._isEnabled = e, this._syncParentEnabledState(), this._nodeDataStorage._onEnabledStateChangedObservable.notifyObservers(e));\n }\n /**\n * Is this node a descendant of the given node?\n * The function will iterate up the hierarchy until the ancestor was found or no more parents defined\n * @param ancestor defines the parent node to inspect\n * @returns a boolean indicating if this node is a descendant of the given node\n */\n isDescendantOf(e) {\n return this.parent ? this.parent === e ? !0 : this.parent.isDescendantOf(e) : !1;\n }\n /**\n * @internal\n */\n _getDescendants(e, t = !1, i) {\n if (this._children)\n for (let s = 0; s < this._children.length; s++) {\n const r = this._children[s];\n (!i || i(r)) && e.push(r), t || r._getDescendants(e, !1, i);\n }\n }\n /**\n * Will return all nodes that have this node as ascendant\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\n * @returns all children nodes of all types\n */\n getDescendants(e, t) {\n const i = [];\n return this._getDescendants(i, e, t), i;\n }\n /**\n * Get all child-meshes of this node\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered (Default: false)\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\n * @returns an array of AbstractMesh\n */\n getChildMeshes(e, t) {\n const i = [];\n return this._getDescendants(i, e, (s) => (!t || t(s)) && s.cullingStrategy !== void 0), i;\n }\n /**\n * Get all direct children of this node\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered (Default: true)\n * @returns an array of Node\n */\n getChildren(e, t = !0) {\n return this.getDescendants(t, e);\n }\n /**\n * @internal\n */\n _setReady(e) {\n if (e !== this._nodeDataStorage._isReady) {\n if (!e) {\n this._nodeDataStorage._isReady = !1;\n return;\n }\n this.onReady && this.onReady(this), this._nodeDataStorage._isReady = !0;\n }\n }\n /**\n * Get an animation by name\n * @param name defines the name of the animation to look for\n * @returns null if not found else the requested animation\n */\n getAnimationByName(e) {\n for (let t = 0; t < this.animations.length; t++) {\n const i = this.animations[t];\n if (i.name === e)\n return i;\n }\n return null;\n }\n /**\n * Creates an animation range for this node\n * @param name defines the name of the range\n * @param from defines the starting key\n * @param to defines the end key\n */\n createAnimationRange(e, t, i) {\n if (!this._ranges[e]) {\n this._ranges[e] = Cg._AnimationRangeFactory(e, t, i);\n for (let s = 0, r = this.animations.length; s < r; s++)\n this.animations[s] && this.animations[s].createRange(e, t, i);\n }\n }\n /**\n * Delete a specific animation range\n * @param name defines the name of the range to delete\n * @param deleteFrames defines if animation frames from the range must be deleted as well\n */\n deleteAnimationRange(e, t = !0) {\n for (let i = 0, s = this.animations.length; i < s; i++)\n this.animations[i] && this.animations[i].deleteRange(e, t);\n this._ranges[e] = null;\n }\n /**\n * Get an animation range by name\n * @param name defines the name of the animation range to look for\n * @returns null if not found else the requested animation range\n */\n getAnimationRange(e) {\n return this._ranges[e] || null;\n }\n /**\n * Clone the current node\n * @param name Name of the new clone\n * @param newParent New parent for the clone\n * @param doNotCloneChildren Do not clone children hierarchy\n * @returns the new transform node\n */\n clone(e, t, i) {\n const s = Ae.Clone(() => new Cg(e, this.getScene()), this);\n if (t && (s.parent = t), !i) {\n const r = this.getDescendants(!0);\n for (let n = 0; n < r.length; n++) {\n const o = r[n];\n o.clone(e + \".\" + o.name, s);\n }\n }\n return s;\n }\n /**\n * Gets the list of all animation ranges defined on this node\n * @returns an array\n */\n getAnimationRanges() {\n const e = [];\n let t;\n for (t in this._ranges)\n e.push(this._ranges[t]);\n return e;\n }\n /**\n * Will start the animation sequence\n * @param name defines the range frames for animation sequence\n * @param loop defines if the animation should loop (false by default)\n * @param speedRatio defines the speed factor in which to run the animation (1 by default)\n * @param onAnimationEnd defines a function to be executed when the animation ended (undefined by default)\n * @returns the object created for this animation. If range does not exist, it will return null\n */\n beginAnimation(e, t, i, s) {\n const r = this.getAnimationRange(e);\n return r ? this._scene.beginAnimation(this, r.from, r.to, t, i, s) : null;\n }\n /**\n * Serialize animation ranges into a JSON compatible object\n * @returns serialization object\n */\n serializeAnimationRanges() {\n const e = [];\n for (const t in this._ranges) {\n const i = this._ranges[t];\n if (!i)\n continue;\n const s = {};\n s.name = t, s.from = i.from, s.to = i.to, e.push(s);\n }\n return e;\n }\n /**\n * Computes the world matrix of the node\n * @param _force defines if the cache version should be invalidated forcing the world matrix to be created from scratch\n * @returns the world matrix\n */\n computeWorldMatrix(e) {\n return this._worldMatrix || (this._worldMatrix = O.Identity()), this._worldMatrix;\n }\n /**\n * Releases resources associated with this node.\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\n */\n dispose(e, t = !1) {\n if (this._nodeDataStorage._isDisposed = !0, !e) {\n const i = this.getDescendants(!0);\n for (const s of i)\n s.dispose(e, t);\n }\n this.parent ? this.parent = null : this._removeFromSceneRootNodes(), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this.onEnabledStateChangedObservable.clear(), this.onClonedObservable.clear();\n for (const i of this._behaviors)\n i.detach();\n this._behaviors.length = 0, this.metadata = null;\n }\n /**\n * Parse animation range data from a serialization object and store them into a given node\n * @param node defines where to store the animation ranges\n * @param parsedNode defines the serialization object to read data from\n * @param _scene defines the hosting scene\n */\n static ParseAnimationRanges(e, t, i) {\n if (t.ranges)\n for (let s = 0; s < t.ranges.length; s++) {\n const r = t.ranges[s];\n e.createAnimationRange(r.name, r.from, r.to);\n }\n }\n /**\n * Return the minimum and maximum world vectors of the entire hierarchy under current node\n * @param includeDescendants Include bounding info from descendants as well (true by default)\n * @param predicate defines a callback function that can be customize to filter what meshes should be included in the list used to compute the bounding vectors\n * @returns the new bounding vectors\n */\n getHierarchyBoundingVectors(e = !0, t = null) {\n this.getScene().incrementRenderId(), this.computeWorldMatrix(!0);\n let i, s;\n const r = this;\n if (r.getBoundingInfo && r.subMeshes) {\n const n = r.getBoundingInfo();\n i = n.boundingBox.minimumWorld.clone(), s = n.boundingBox.maximumWorld.clone();\n } else\n i = new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), s = new g(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\n if (e) {\n const n = this.getDescendants(!1);\n for (const o of n) {\n const l = o;\n if (l.computeWorldMatrix(!0), t && !t(l) || !l.getBoundingInfo || l.getTotalVertices() === 0)\n continue;\n const c = l.getBoundingInfo().boundingBox, u = c.minimumWorld, d = c.maximumWorld;\n g.CheckExtends(u, i, s), g.CheckExtends(d, i, s);\n }\n }\n return {\n min: i,\n max: s\n };\n }\n};\nLt._AnimationRangeFactory = (a, e, t) => {\n throw $e(\"AnimationRange\");\n};\nLt._NodeConstructors = {};\ny([\n I()\n], Lt.prototype, \"name\", void 0);\ny([\n I()\n], Lt.prototype, \"id\", void 0);\ny([\n I()\n], Lt.prototype, \"uniqueId\", void 0);\ny([\n I()\n], Lt.prototype, \"state\", void 0);\ny([\n I()\n], Lt.prototype, \"metadata\", void 0);\nfunction Bp(a, e, t) {\n try {\n const i = a.next();\n i.done ? e(i) : i.value ? i.value.then(() => {\n i.value = void 0, e(i);\n }, t) : e(i);\n } catch (i) {\n t(i);\n }\n}\nfunction YO(a = 25) {\n let e;\n return (t, i, s) => {\n const r = performance.now();\n e === void 0 || r - e > a ? (e = r, setTimeout(() => {\n Bp(t, i, s);\n }, 0)) : Bp(t, i, s);\n };\n}\nfunction jC(a, e, t, i, s) {\n const r = () => {\n let n;\n const o = (l) => {\n l.done ? t(l.value) : n === void 0 ? n = !0 : r();\n };\n do\n n = void 0, !s || !s.aborted ? e(a, o, i) : i(new Error(\"Aborted\")), n === void 0 && (n = !1);\n while (n);\n };\n r();\n}\nfunction Lx(a, e) {\n let t;\n return jC(a, Bp, (i) => t = i, (i) => {\n throw i;\n }, e), t;\n}\nfunction Bx(a, e, t) {\n return new Promise((i, s) => {\n jC(a, e, i, s, t);\n });\n}\nfunction jO(a, e) {\n return (...t) => Lx(a(...t), e);\n}\nfunction Xj(a, e, t) {\n return (...i) => Bx(a(...i), e, t);\n}\nclass Fe extends Lt {\n /**\n * Define the current local position of the camera in the scene\n */\n get position() {\n return this._position;\n }\n set position(e) {\n this._position = e;\n }\n /**\n * The vector the camera should consider as up.\n * (default is Vector3(0, 1, 0) aka Vector3.Up())\n */\n set upVector(e) {\n this._upVector = e;\n }\n get upVector() {\n return this._upVector;\n }\n /**\n * The screen area in scene units squared\n */\n get screenArea() {\n let e = 0, t = 0;\n if (this.mode === Fe.PERSPECTIVE_CAMERA)\n this.fovMode === Fe.FOVMODE_VERTICAL_FIXED ? (t = this.minZ * 2 * Math.tan(this.fov / 2), e = this.getEngine().getAspectRatio(this) * t) : (e = this.minZ * 2 * Math.tan(this.fov / 2), t = e / this.getEngine().getAspectRatio(this));\n else {\n const i = this.getEngine().getRenderWidth() / 2, s = this.getEngine().getRenderHeight() / 2;\n e = (this.orthoRight ?? i) - (this.orthoLeft ?? -i), t = (this.orthoTop ?? s) - (this.orthoBottom ?? -s);\n }\n return e * t;\n }\n /**\n * Define the current limit on the left side for an orthographic camera\n * In scene unit\n */\n set orthoLeft(e) {\n this._orthoLeft = e;\n for (const t of this._rigCameras)\n t.orthoLeft = e;\n }\n get orthoLeft() {\n return this._orthoLeft;\n }\n /**\n * Define the current limit on the right side for an orthographic camera\n * In scene unit\n */\n set orthoRight(e) {\n this._orthoRight = e;\n for (const t of this._rigCameras)\n t.orthoRight = e;\n }\n get orthoRight() {\n return this._orthoRight;\n }\n /**\n * Define the current limit on the bottom side for an orthographic camera\n * In scene unit\n */\n set orthoBottom(e) {\n this._orthoBottom = e;\n for (const t of this._rigCameras)\n t.orthoBottom = e;\n }\n get orthoBottom() {\n return this._orthoBottom;\n }\n /**\n * Define the current limit on the top side for an orthographic camera\n * In scene unit\n */\n set orthoTop(e) {\n this._orthoTop = e;\n for (const t of this._rigCameras)\n t.orthoTop = e;\n }\n get orthoTop() {\n return this._orthoTop;\n }\n /**\n * Define the mode of the camera (Camera.PERSPECTIVE_CAMERA or Camera.ORTHOGRAPHIC_CAMERA)\n */\n set mode(e) {\n this._mode = e;\n for (const t of this._rigCameras)\n t.mode = e;\n }\n get mode() {\n return this._mode;\n }\n /**\n * Gets a flag indicating that the camera has moved in some way since the last call to Camera.update()\n */\n get hasMoved() {\n return this._hasMoved;\n }\n /**\n * Instantiates a new camera object.\n * This should not be used directly but through the inherited cameras: ArcRotate, Free...\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras\n * @param name Defines the name of the camera in the scene\n * @param position Defines the position of the camera\n * @param scene Defines the scene the camera belongs too\n * @param setActiveOnSceneIfNoneActive Defines if the camera should be set as active after creation if no other camera have been defined in the scene\n */\n constructor(e, t, i, s = !0) {\n super(e, i, !1), this._position = g.Zero(), this._upVector = g.Up(), this.oblique = null, this._orthoLeft = null, this._orthoRight = null, this._orthoBottom = null, this._orthoTop = null, this.fov = 0.8, this.projectionPlaneTilt = 0, this.minZ = 1, this.maxZ = 1e4, this.inertia = 0.9, this._mode = Fe.PERSPECTIVE_CAMERA, this.isIntermediate = !1, this.viewport = new xr(0, 0, 1, 1), this.layerMask = 268435455, this.fovMode = Fe.FOVMODE_VERTICAL_FIXED, this.cameraRigMode = Fe.RIG_MODE_NONE, this.customRenderTargets = [], this.outputRenderTarget = null, this.onViewMatrixChangedObservable = new G(), this.onProjectionMatrixChangedObservable = new G(), this.onAfterCheckInputsObservable = new G(), this.onRestoreStateObservable = new G(), this.isRigCamera = !1, this._hasMoved = !1, this._rigCameras = new Array(), this._skipRendering = !1, this._projectionMatrix = new O(), this._postProcesses = new Array(), this._activeMeshes = new fs(256), this._globalPosition = g.Zero(), this._computedViewMatrix = O.Identity(), this._doNotComputeProjectionMatrix = !1, this._transformMatrix = O.Zero(), this._refreshFrustumPlanes = !0, this._absoluteRotation = se.Identity(), this._isCamera = !0, this._isLeftCamera = !1, this._isRightCamera = !1, this.getScene().addCamera(this), s && !this.getScene().activeCamera && (this.getScene().activeCamera = this), this.position = t, this.renderPassId = this.getScene().getEngine().createRenderPassId(`Camera ${e}`);\n }\n /**\n * Store current camera state (fov, position, etc..)\n * @returns the camera\n */\n storeState() {\n return this._stateStored = !0, this._storedFov = this.fov, this;\n }\n /**\n * Returns true if a state has been stored by calling storeState method.\n * @returns true if state has been stored.\n */\n hasStateStored() {\n return !!this._stateStored;\n }\n /**\n * Restores the camera state values if it has been stored. You must call storeState() first\n * @returns true if restored and false otherwise\n */\n _restoreStateValues() {\n return this._stateStored ? (this.fov = this._storedFov, !0) : !1;\n }\n /**\n * Restored camera state. You must call storeState() first.\n * @returns true if restored and false otherwise\n */\n restoreState() {\n return this._restoreStateValues() ? (this.onRestoreStateObservable.notifyObservers(this), !0) : !1;\n }\n /**\n * Gets the class name of the camera.\n * @returns the class name\n */\n getClassName() {\n return \"Camera\";\n }\n /**\n * Gets a string representation of the camera useful for debug purpose.\n * @param fullDetails Defines that a more verbose level of logging is required\n * @returns the string representation\n */\n toString(e) {\n let t = \"Name: \" + this.name;\n if (t += \", type: \" + this.getClassName(), this.animations)\n for (let i = 0; i < this.animations.length; i++)\n t += \", animation[0]: \" + this.animations[i].toString(e);\n return t;\n }\n /**\n * Automatically tilts the projection plane, using `projectionPlaneTilt`, to correct the perspective effect on vertical lines.\n */\n applyVerticalCorrection() {\n const e = this.absoluteRotation.toEulerAngles();\n this.projectionPlaneTilt = this._scene.useRightHandedSystem ? -e.x : e.x;\n }\n /**\n * Gets the current world space position of the camera.\n */\n get globalPosition() {\n return this._globalPosition;\n }\n /**\n * Gets the list of active meshes this frame (meshes no culled or excluded by lod s in the frame)\n * @returns the active meshe list\n */\n getActiveMeshes() {\n return this._activeMeshes;\n }\n /**\n * Check whether a mesh is part of the current active mesh list of the camera\n * @param mesh Defines the mesh to check\n * @returns true if active, false otherwise\n */\n isActiveMesh(e) {\n return this._activeMeshes.indexOf(e) !== -1;\n }\n /**\n * Is this camera ready to be used/rendered\n * @param completeCheck defines if a complete check (including post processes) has to be done (false by default)\n * @returns true if the camera is ready\n */\n isReady(e = !1) {\n if (e) {\n for (const t of this._postProcesses)\n if (t && !t.isReady())\n return !1;\n }\n return super.isReady(e);\n }\n /** @internal */\n _initCache() {\n super._initCache(), this._cache.position = new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), this._cache.upVector = new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), this._cache.mode = void 0, this._cache.minZ = void 0, this._cache.maxZ = void 0, this._cache.fov = void 0, this._cache.fovMode = void 0, this._cache.aspectRatio = void 0, this._cache.orthoLeft = void 0, this._cache.orthoRight = void 0, this._cache.orthoBottom = void 0, this._cache.orthoTop = void 0, this._cache.obliqueAngle = void 0, this._cache.obliqueLength = void 0, this._cache.obliqueOffset = void 0, this._cache.renderWidth = void 0, this._cache.renderHeight = void 0;\n }\n /**\n * @internal\n */\n _updateCache(e) {\n e || super._updateCache(), this._cache.position.copyFrom(this.position), this._cache.upVector.copyFrom(this.upVector);\n }\n /** @internal */\n _isSynchronized() {\n return this._isSynchronizedViewMatrix() && this._isSynchronizedProjectionMatrix();\n }\n /** @internal */\n _isSynchronizedViewMatrix() {\n return super._isSynchronized() ? this._cache.position.equals(this.position) && this._cache.upVector.equals(this.upVector) && this.isSynchronizedWithParent() : !1;\n }\n /** @internal */\n _isSynchronizedProjectionMatrix() {\n let e = this._cache.mode === this.mode && this._cache.minZ === this.minZ && this._cache.maxZ === this.maxZ;\n if (!e)\n return !1;\n const t = this.getEngine();\n return this.mode === Fe.PERSPECTIVE_CAMERA ? e = this._cache.fov === this.fov && this._cache.fovMode === this.fovMode && this._cache.aspectRatio === t.getAspectRatio(this) && this._cache.projectionPlaneTilt === this.projectionPlaneTilt : (e = this._cache.orthoLeft === this.orthoLeft && this._cache.orthoRight === this.orthoRight && this._cache.orthoBottom === this.orthoBottom && this._cache.orthoTop === this.orthoTop && this._cache.renderWidth === t.getRenderWidth() && this._cache.renderHeight === t.getRenderHeight(), this.oblique && (e = e && this._cache.obliqueAngle === this.oblique.angle && this._cache.obliqueLength === this.oblique.length && this._cache.obliqueOffset === this.oblique.offset)), e;\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * This function is here because typescript removes the typing of the last function.\n * @param _ignored defines an ignored parameter kept for backward compatibility.\n * @param _noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e, t) {\n }\n /**\n * Detach the current controls from the specified dom element.\n * This function is here because typescript removes the typing of the last function.\n * @param _ignored defines an ignored parameter kept for backward compatibility.\n */\n detachControl(e) {\n }\n /**\n * Update the camera state according to the different inputs gathered during the frame.\n */\n update() {\n this._hasMoved = !1, this._checkInputs(), this.cameraRigMode !== Fe.RIG_MODE_NONE && this._updateRigCameras(), this.getViewMatrix(), this.getProjectionMatrix();\n }\n /** @internal */\n _checkInputs() {\n this.onAfterCheckInputsObservable.notifyObservers(this);\n }\n /** @internal */\n get rigCameras() {\n return this._rigCameras;\n }\n /**\n * Gets the post process used by the rig cameras\n */\n get rigPostProcess() {\n return this._rigPostProcess;\n }\n /**\n * Internal, gets the first post process.\n * @returns the first post process to be run on this camera.\n */\n _getFirstPostProcess() {\n for (let e = 0; e < this._postProcesses.length; e++)\n if (this._postProcesses[e] !== null)\n return this._postProcesses[e];\n return null;\n }\n _cascadePostProcessesToRigCams() {\n const e = this._getFirstPostProcess();\n e && e.markTextureDirty();\n for (let t = 0, i = this._rigCameras.length; t < i; t++) {\n const s = this._rigCameras[t], r = s._rigPostProcess;\n r ? (r.getEffectName() === \"pass\" && (s.isIntermediate = this._postProcesses.length === 0), s._postProcesses = this._postProcesses.slice(0).concat(r), r.markTextureDirty()) : s._postProcesses = this._postProcesses.slice(0);\n }\n }\n /**\n * Attach a post process to the camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/usePostProcesses#attach-postprocess\n * @param postProcess The post process to attach to the camera\n * @param insertAt The position of the post process in case several of them are in use in the scene\n * @returns the position the post process has been inserted at\n */\n attachPostProcess(e, t = null) {\n return !e.isReusable() && this._postProcesses.indexOf(e) > -1 ? (L.Error(\"You're trying to reuse a post process not defined as reusable.\"), 0) : (t == null || t < 0 ? this._postProcesses.push(e) : this._postProcesses[t] === null ? this._postProcesses[t] = e : this._postProcesses.splice(t, 0, e), this._cascadePostProcessesToRigCams(), this._scene.prePassRenderer && this._scene.prePassRenderer.markAsDirty(), this._postProcesses.indexOf(e));\n }\n /**\n * Detach a post process to the camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/usePostProcesses#attach-postprocess\n * @param postProcess The post process to detach from the camera\n */\n detachPostProcess(e) {\n const t = this._postProcesses.indexOf(e);\n t !== -1 && (this._postProcesses[t] = null), this._scene.prePassRenderer && this._scene.prePassRenderer.markAsDirty(), this._cascadePostProcessesToRigCams();\n }\n /**\n * Gets the current world matrix of the camera\n * @returns the world matrix\n */\n getWorldMatrix() {\n return this._isSynchronizedViewMatrix() ? this._worldMatrix : (this.getViewMatrix(), this._worldMatrix);\n }\n /** @internal */\n _getViewMatrix() {\n return O.Identity();\n }\n /**\n * Gets the current view matrix of the camera.\n * @param force forces the camera to recompute the matrix without looking at the cached state\n * @returns the view matrix\n */\n getViewMatrix(e) {\n return !e && this._isSynchronizedViewMatrix() ? this._computedViewMatrix : (this._hasMoved = !0, this.updateCache(), this._computedViewMatrix = this._getViewMatrix(), this._currentRenderId = this.getScene().getRenderId(), this._childUpdateId++, this._refreshFrustumPlanes = !0, this._cameraRigParams && this._cameraRigParams.vrPreViewMatrix && this._computedViewMatrix.multiplyToRef(this._cameraRigParams.vrPreViewMatrix, this._computedViewMatrix), this.parent && this.parent.onViewMatrixChangedObservable && this.parent.onViewMatrixChangedObservable.notifyObservers(this.parent), this.onViewMatrixChangedObservable.notifyObservers(this), this._computedViewMatrix.invertToRef(this._worldMatrix), this._computedViewMatrix);\n }\n /**\n * Freeze the projection matrix.\n * It will prevent the cache check of the camera projection compute and can speed up perf\n * if no parameter of the camera are meant to change\n * @param projection Defines manually a projection if necessary\n */\n freezeProjectionMatrix(e) {\n this._doNotComputeProjectionMatrix = !0, e !== void 0 && (this._projectionMatrix = e);\n }\n /**\n * Unfreeze the projection matrix if it has previously been freezed by freezeProjectionMatrix.\n */\n unfreezeProjectionMatrix() {\n this._doNotComputeProjectionMatrix = !1;\n }\n /**\n * Gets the current projection matrix of the camera.\n * @param force forces the camera to recompute the matrix without looking at the cached state\n * @returns the projection matrix\n */\n getProjectionMatrix(e) {\n var r, n, o;\n if (this._doNotComputeProjectionMatrix || !e && this._isSynchronizedProjectionMatrix())\n return this._projectionMatrix;\n this._cache.mode = this.mode, this._cache.minZ = this.minZ, this._cache.maxZ = this.maxZ, this._refreshFrustumPlanes = !0;\n const t = this.getEngine(), i = this.getScene(), s = t.useReverseDepthBuffer;\n if (this.mode === Fe.PERSPECTIVE_CAMERA) {\n this._cache.fov = this.fov, this._cache.fovMode = this.fovMode, this._cache.aspectRatio = t.getAspectRatio(this), this._cache.projectionPlaneTilt = this.projectionPlaneTilt, this.minZ <= 0 && (this.minZ = 0.1);\n let l;\n i.useRightHandedSystem ? l = O.PerspectiveFovRHToRef : l = O.PerspectiveFovLHToRef, l(this.fov, t.getAspectRatio(this), s ? this.maxZ : this.minZ, s ? this.minZ : this.maxZ, this._projectionMatrix, this.fovMode === Fe.FOVMODE_VERTICAL_FIXED, t.isNDCHalfZRange, this.projectionPlaneTilt, s);\n } else {\n const l = t.getRenderWidth() / 2, h = t.getRenderHeight() / 2;\n i.useRightHandedSystem ? this.oblique ? O.ObliqueOffCenterRHToRef(this.orthoLeft ?? -l, this.orthoRight ?? l, this.orthoBottom ?? -h, this.orthoTop ?? h, s ? this.maxZ : this.minZ, s ? this.minZ : this.maxZ, this.oblique.length, this.oblique.angle, this._computeObliqueDistance(this.oblique.offset), this._projectionMatrix, t.isNDCHalfZRange) : O.OrthoOffCenterRHToRef(this.orthoLeft ?? -l, this.orthoRight ?? l, this.orthoBottom ?? -h, this.orthoTop ?? h, s ? this.maxZ : this.minZ, s ? this.minZ : this.maxZ, this._projectionMatrix, t.isNDCHalfZRange) : this.oblique ? O.ObliqueOffCenterLHToRef(this.orthoLeft ?? -l, this.orthoRight ?? l, this.orthoBottom ?? -h, this.orthoTop ?? h, s ? this.maxZ : this.minZ, s ? this.minZ : this.maxZ, this.oblique.length, this.oblique.angle, this._computeObliqueDistance(this.oblique.offset), this._projectionMatrix, t.isNDCHalfZRange) : O.OrthoOffCenterLHToRef(this.orthoLeft ?? -l, this.orthoRight ?? l, this.orthoBottom ?? -h, this.orthoTop ?? h, s ? this.maxZ : this.minZ, s ? this.minZ : this.maxZ, this._projectionMatrix, t.isNDCHalfZRange), this._cache.orthoLeft = this.orthoLeft, this._cache.orthoRight = this.orthoRight, this._cache.orthoBottom = this.orthoBottom, this._cache.orthoTop = this.orthoTop, this._cache.obliqueAngle = (r = this.oblique) == null ? void 0 : r.angle, this._cache.obliqueLength = (n = this.oblique) == null ? void 0 : n.length, this._cache.obliqueOffset = (o = this.oblique) == null ? void 0 : o.offset, this._cache.renderWidth = t.getRenderWidth(), this._cache.renderHeight = t.getRenderHeight();\n }\n return this.onProjectionMatrixChangedObservable.notifyObservers(this), this._projectionMatrix;\n }\n /**\n * Gets the transformation matrix (ie. the multiplication of view by projection matrices)\n * @returns a Matrix\n */\n getTransformationMatrix() {\n return this._computedViewMatrix.multiplyToRef(this._projectionMatrix, this._transformMatrix), this._transformMatrix;\n }\n _computeObliqueDistance(e) {\n const t = this, i = this;\n return (t.radius || (i.target ? g.Distance(this.position, i.target) : this.position.length())) + e;\n }\n _updateFrustumPlanes() {\n this._refreshFrustumPlanes && (this.getTransformationMatrix(), this._frustumPlanes ? _n.GetPlanesToRef(this._transformMatrix, this._frustumPlanes) : this._frustumPlanes = _n.GetPlanes(this._transformMatrix), this._refreshFrustumPlanes = !1);\n }\n /**\n * Checks if a cullable object (mesh...) is in the camera frustum\n * This checks the bounding box center. See isCompletelyInFrustum for a full bounding check\n * @param target The object to check\n * @param checkRigCameras If the rig cameras should be checked (eg. with VR camera both eyes should be checked) (Default: false)\n * @returns true if the object is in frustum otherwise false\n */\n isInFrustum(e, t = !1) {\n if (this._updateFrustumPlanes(), t && this.rigCameras.length > 0) {\n let i = !1;\n return this.rigCameras.forEach((s) => {\n s._updateFrustumPlanes(), i = i || e.isInFrustum(s._frustumPlanes);\n }), i;\n } else\n return e.isInFrustum(this._frustumPlanes);\n }\n /**\n * Checks if a cullable object (mesh...) is in the camera frustum\n * Unlike isInFrustum this checks the full bounding box\n * @param target The object to check\n * @returns true if the object is in frustum otherwise false\n */\n isCompletelyInFrustum(e) {\n return this._updateFrustumPlanes(), e.isCompletelyInFrustum(this._frustumPlanes);\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Gets a ray in the forward direction from the camera.\n * @param length Defines the length of the ray to create\n * @param transform Defines the transform to apply to the ray, by default the world matrix is used to create a workd space ray\n * @param origin Defines the start point of the ray which defaults to the camera position\n * @returns the forward ray\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getForwardRay(e = 100, t, i) {\n throw $e(\"Ray\");\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Gets a ray in the forward direction from the camera.\n * @param refRay the ray to (re)use when setting the values\n * @param length Defines the length of the ray to create\n * @param transform Defines the transform to apply to the ray, by default the world matrx is used to create a workd space ray\n * @param origin Defines the start point of the ray which defaults to the camera position\n * @returns the forward ray\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getForwardRayToRef(e, t = 100, i, s) {\n throw $e(\"Ray\");\n }\n /**\n * Releases resources associated with this node.\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\n */\n dispose(e, t = !1) {\n for (this.onViewMatrixChangedObservable.clear(), this.onProjectionMatrixChangedObservable.clear(), this.onAfterCheckInputsObservable.clear(), this.onRestoreStateObservable.clear(), this.inputs && this.inputs.clear(), this.getScene().stopAnimation(this), this.getScene().removeCamera(this); this._rigCameras.length > 0; ) {\n const s = this._rigCameras.pop();\n s && s.dispose();\n }\n if (this._parentContainer) {\n const s = this._parentContainer.cameras.indexOf(this);\n s > -1 && this._parentContainer.cameras.splice(s, 1), this._parentContainer = null;\n }\n if (this._rigPostProcess)\n this._rigPostProcess.dispose(this), this._rigPostProcess = null, this._postProcesses.length = 0;\n else if (this.cameraRigMode !== Fe.RIG_MODE_NONE)\n this._rigPostProcess = null, this._postProcesses.length = 0;\n else {\n let s = this._postProcesses.length;\n for (; --s >= 0; ) {\n const r = this._postProcesses[s];\n r && r.dispose(this);\n }\n }\n let i = this.customRenderTargets.length;\n for (; --i >= 0; )\n this.customRenderTargets[i].dispose();\n this.customRenderTargets.length = 0, this._activeMeshes.dispose(), this.getScene().getEngine().releaseRenderPassId(this.renderPassId), super.dispose(e, t);\n }\n /**\n * Gets the left camera of a rig setup in case of Rigged Camera\n */\n get isLeftCamera() {\n return this._isLeftCamera;\n }\n /**\n * Gets the right camera of a rig setup in case of Rigged Camera\n */\n get isRightCamera() {\n return this._isRightCamera;\n }\n /**\n * Gets the left camera of a rig setup in case of Rigged Camera\n */\n get leftCamera() {\n return this._rigCameras.length < 1 ? null : this._rigCameras[0];\n }\n /**\n * Gets the right camera of a rig setup in case of Rigged Camera\n */\n get rightCamera() {\n return this._rigCameras.length < 2 ? null : this._rigCameras[1];\n }\n /**\n * Gets the left camera target of a rig setup in case of Rigged Camera\n * @returns the target position\n */\n getLeftTarget() {\n return this._rigCameras.length < 1 ? null : this._rigCameras[0].getTarget();\n }\n /**\n * Gets the right camera target of a rig setup in case of Rigged Camera\n * @returns the target position\n */\n getRightTarget() {\n return this._rigCameras.length < 2 ? null : this._rigCameras[1].getTarget();\n }\n /**\n * @internal\n */\n setCameraRigMode(e, t) {\n if (this.cameraRigMode !== e) {\n for (; this._rigCameras.length > 0; ) {\n const i = this._rigCameras.pop();\n i && i.dispose();\n }\n if (this.cameraRigMode = e, this._cameraRigParams = {}, this._cameraRigParams.interaxialDistance = t.interaxialDistance || 0.0637, this._cameraRigParams.stereoHalfAngle = J.ToRadians(this._cameraRigParams.interaxialDistance / 0.0637), this.cameraRigMode !== Fe.RIG_MODE_NONE) {\n const i = this.createRigCamera(this.name + \"_L\", 0);\n i && (i._isLeftCamera = !0);\n const s = this.createRigCamera(this.name + \"_R\", 1);\n s && (s._isRightCamera = !0), i && s && (this._rigCameras.push(i), this._rigCameras.push(s));\n }\n this._setRigMode(t), this._cascadePostProcessesToRigCams(), this.update();\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _setRigMode(e) {\n }\n /** @internal */\n _getVRProjectionMatrix() {\n return O.PerspectiveFovLHToRef(this._cameraRigParams.vrMetrics.aspectRatioFov, this._cameraRigParams.vrMetrics.aspectRatio, this.minZ, this.maxZ, this._cameraRigParams.vrWorkMatrix, !0, this.getEngine().isNDCHalfZRange), this._cameraRigParams.vrWorkMatrix.multiplyToRef(this._cameraRigParams.vrHMatrix, this._projectionMatrix), this._projectionMatrix;\n }\n /**\n * @internal\n */\n setCameraRigParameter(e, t) {\n this._cameraRigParams || (this._cameraRigParams = {}), this._cameraRigParams[e] = t, e === \"interaxialDistance\" && (this._cameraRigParams.stereoHalfAngle = J.ToRadians(t / 0.0637));\n }\n /**\n * needs to be overridden by children so sub has required properties to be copied\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n createRigCamera(e, t) {\n return null;\n }\n /**\n * May need to be overridden by children\n * @internal\n */\n _updateRigCameras() {\n for (let e = 0; e < this._rigCameras.length; e++)\n this._rigCameras[e].minZ = this.minZ, this._rigCameras[e].maxZ = this.maxZ, this._rigCameras[e].fov = this.fov, this._rigCameras[e].upVector.copyFrom(this.upVector);\n this.cameraRigMode === Fe.RIG_MODE_STEREOSCOPIC_ANAGLYPH && (this._rigCameras[0].viewport = this._rigCameras[1].viewport = this.viewport);\n }\n /** @internal */\n _setupInputs() {\n }\n /**\n * Serialiaze the camera setup to a json representation\n * @returns the JSON representation\n */\n serialize() {\n const e = Ae.Serialize(this);\n return e.uniqueId = this.uniqueId, e.type = this.getClassName(), this.parent && this.parent._serializeAsParent(e), this.inputs && this.inputs.serialize(e), Ae.AppendSerializedAnimations(this, e), e.ranges = this.serializeAnimationRanges(), e.isEnabled = this.isEnabled(), e;\n }\n /**\n * Clones the current camera.\n * @param name The cloned camera name\n * @param newParent The cloned camera's new parent (none by default)\n * @returns the cloned camera\n */\n clone(e, t = null) {\n const i = Ae.Clone(Fe.GetConstructorFromName(this.getClassName(), e, this.getScene(), this.interaxialDistance, this.isStereoscopicSideBySide), this);\n return i.name = e, i.parent = t, this.onClonedObservable.notifyObservers(i), i;\n }\n /**\n * Gets the direction of the camera relative to a given local axis.\n * @param localAxis Defines the reference axis to provide a relative direction.\n * @returns the direction\n */\n getDirection(e) {\n const t = g.Zero();\n return this.getDirectionToRef(e, t), t;\n }\n /**\n * Returns the current camera absolute rotation\n */\n get absoluteRotation() {\n return this.getWorldMatrix().decompose(void 0, this._absoluteRotation), this._absoluteRotation;\n }\n /**\n * Gets the direction of the camera relative to a given local axis into a passed vector.\n * @param localAxis Defines the reference axis to provide a relative direction.\n * @param result Defines the vector to store the result in\n */\n getDirectionToRef(e, t) {\n g.TransformNormalToRef(e, this.getWorldMatrix(), t);\n }\n /**\n * Gets a camera constructor for a given camera type\n * @param type The type of the camera to construct (should be equal to one of the camera class name)\n * @param name The name of the camera the result will be able to instantiate\n * @param scene The scene the result will construct the camera in\n * @param interaxial_distance In case of stereoscopic setup, the distance between both eyes\n * @param isStereoscopicSideBySide In case of stereoscopic setup, should the sereo be side b side\n * @returns a factory method to construct the camera\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static GetConstructorFromName(e, t, i, s = 0, r = !0) {\n const n = Lt.Construct(e, t, i, {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n interaxial_distance: s,\n isStereoscopicSideBySide: r\n });\n return n || (() => Fe._CreateDefaultParsedCamera(t, i));\n }\n /**\n * Compute the world matrix of the camera.\n * @returns the camera world matrix\n */\n computeWorldMatrix() {\n return this.getWorldMatrix();\n }\n /**\n * Parse a JSON and creates the camera from the parsed information\n * @param parsedCamera The JSON to parse\n * @param scene The scene to instantiate the camera in\n * @returns the newly constructed camera\n */\n static Parse(e, t) {\n const i = e.type, s = Fe.GetConstructorFromName(i, e.name, t, e.interaxial_distance, e.isStereoscopicSideBySide), r = Ae.Parse(s, e, t);\n if (e.parentId !== void 0 && (r._waitingParentId = e.parentId), e.parentInstanceIndex !== void 0 && (r._waitingParentInstanceIndex = e.parentInstanceIndex), r.inputs && (r.inputs.parse(e), r._setupInputs()), e.upVector && (r.upVector = g.FromArray(e.upVector)), r.setPosition && (r.position.copyFromFloats(0, 0, 0), r.setPosition(g.FromArray(e.position))), e.target && r.setTarget && r.setTarget(g.FromArray(e.target)), e.cameraRigMode) {\n const n = e.interaxial_distance ? { interaxialDistance: e.interaxial_distance } : {};\n r.setCameraRigMode(e.cameraRigMode, n);\n }\n if (e.animations) {\n for (let n = 0; n < e.animations.length; n++) {\n const o = e.animations[n], l = Oi(\"BABYLON.Animation\");\n l && r.animations.push(l.Parse(o));\n }\n Lt.ParseAnimationRanges(r, e, t);\n }\n return e.autoAnimate && t.beginAnimation(r, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1), e.isEnabled !== void 0 && r.setEnabled(e.isEnabled), r;\n }\n /** @internal */\n _calculateHandednessMultiplier() {\n let e = this.getScene().useRightHandedSystem ? -1 : 1;\n return this.parent && this.parent._getWorldMatrixDeterminant() < 0 && (e *= -1), e;\n }\n}\nFe._CreateDefaultParsedCamera = (a, e) => {\n throw $e(\"UniversalCamera\");\n};\nFe.PERSPECTIVE_CAMERA = 0;\nFe.ORTHOGRAPHIC_CAMERA = 1;\nFe.FOVMODE_VERTICAL_FIXED = 0;\nFe.FOVMODE_HORIZONTAL_FIXED = 1;\nFe.RIG_MODE_NONE = 0;\nFe.RIG_MODE_STEREOSCOPIC_ANAGLYPH = 10;\nFe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL = 11;\nFe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED = 12;\nFe.RIG_MODE_STEREOSCOPIC_OVERUNDER = 13;\nFe.RIG_MODE_STEREOSCOPIC_INTERLACED = 14;\nFe.RIG_MODE_VR = 20;\nFe.RIG_MODE_CUSTOM = 22;\nFe.ForceAttachControlToAlwaysPreventDefault = !1;\ny([\n Zs(\"position\")\n], Fe.prototype, \"_position\", void 0);\ny([\n Zs(\"upVector\")\n], Fe.prototype, \"_upVector\", void 0);\ny([\n I()\n], Fe.prototype, \"orthoLeft\", null);\ny([\n I()\n], Fe.prototype, \"orthoRight\", null);\ny([\n I()\n], Fe.prototype, \"orthoBottom\", null);\ny([\n I()\n], Fe.prototype, \"orthoTop\", null);\ny([\n I()\n], Fe.prototype, \"fov\", void 0);\ny([\n I()\n], Fe.prototype, \"projectionPlaneTilt\", void 0);\ny([\n I()\n], Fe.prototype, \"minZ\", void 0);\ny([\n I()\n], Fe.prototype, \"maxZ\", void 0);\ny([\n I()\n], Fe.prototype, \"inertia\", void 0);\ny([\n I()\n], Fe.prototype, \"mode\", null);\ny([\n I()\n], Fe.prototype, \"layerMask\", void 0);\ny([\n I()\n], Fe.prototype, \"fovMode\", void 0);\ny([\n I()\n], Fe.prototype, \"cameraRigMode\", void 0);\ny([\n I()\n], Fe.prototype, \"interaxialDistance\", void 0);\ny([\n I()\n], Fe.prototype, \"isStereoscopicSideBySide\", void 0);\nclass Ag {\n constructor(e, t, i) {\n this.bu = e, this.bv = t, this.distance = i, this.faceId = 0, this.subMeshId = 0;\n }\n}\nclass Kn {\n /**\n * Creates a new bounding box\n * @param min defines the minimum vector (in local space)\n * @param max defines the maximum vector (in local space)\n * @param worldMatrix defines the new world matrix\n */\n constructor(e, t, i) {\n this.vectors = _s.BuildArray(8, g.Zero), this.center = g.Zero(), this.centerWorld = g.Zero(), this.extendSize = g.Zero(), this.extendSizeWorld = g.Zero(), this.directions = _s.BuildArray(3, g.Zero), this.vectorsWorld = _s.BuildArray(8, g.Zero), this.minimumWorld = g.Zero(), this.maximumWorld = g.Zero(), this.minimum = g.Zero(), this.maximum = g.Zero(), this._drawWrapperFront = null, this._drawWrapperBack = null, this.reConstruct(e, t, i);\n }\n // Methods\n /**\n * Recreates the entire bounding box from scratch as if we call the constructor in place\n * @param min defines the new minimum vector (in local space)\n * @param max defines the new maximum vector (in local space)\n * @param worldMatrix defines the new world matrix\n */\n reConstruct(e, t, i) {\n const s = e.x, r = e.y, n = e.z, o = t.x, l = t.y, h = t.z, c = this.vectors;\n this.minimum.copyFromFloats(s, r, n), this.maximum.copyFromFloats(o, l, h), c[0].copyFromFloats(s, r, n), c[1].copyFromFloats(o, l, h), c[2].copyFromFloats(o, r, n), c[3].copyFromFloats(s, l, n), c[4].copyFromFloats(s, r, h), c[5].copyFromFloats(o, l, n), c[6].copyFromFloats(s, l, h), c[7].copyFromFloats(o, r, h), t.addToRef(e, this.center).scaleInPlace(0.5), t.subtractToRef(e, this.extendSize).scaleInPlace(0.5), this._worldMatrix = i || O.IdentityReadOnly, this._update(this._worldMatrix);\n }\n /**\n * Scale the current bounding box by applying a scale factor\n * @param factor defines the scale factor to apply\n * @returns the current bounding box\n */\n scale(e) {\n const t = Kn._TmpVector3, i = this.maximum.subtractToRef(this.minimum, t[0]), s = i.length();\n i.normalizeFromLength(s);\n const r = s * e, n = i.scaleInPlace(r * 0.5), o = this.center.subtractToRef(n, t[1]), l = this.center.addToRef(n, t[2]);\n return this.reConstruct(o, l, this._worldMatrix), this;\n }\n /**\n * Gets the world matrix of the bounding box\n * @returns a matrix\n */\n getWorldMatrix() {\n return this._worldMatrix;\n }\n /**\n * @internal\n */\n _update(e) {\n const t = this.minimumWorld, i = this.maximumWorld, s = this.directions, r = this.vectorsWorld, n = this.vectors;\n if (e.isIdentity()) {\n t.copyFrom(this.minimum), i.copyFrom(this.maximum);\n for (let o = 0; o < 8; ++o)\n r[o].copyFrom(n[o]);\n this.extendSizeWorld.copyFrom(this.extendSize), this.centerWorld.copyFrom(this.center);\n } else {\n t.setAll(Number.MAX_VALUE), i.setAll(-Number.MAX_VALUE);\n for (let o = 0; o < 8; ++o) {\n const l = r[o];\n g.TransformCoordinatesToRef(n[o], e, l), t.minimizeInPlace(l), i.maximizeInPlace(l);\n }\n i.subtractToRef(t, this.extendSizeWorld).scaleInPlace(0.5), i.addToRef(t, this.centerWorld).scaleInPlace(0.5);\n }\n g.FromArrayToRef(e.m, 0, s[0]), g.FromArrayToRef(e.m, 4, s[1]), g.FromArrayToRef(e.m, 8, s[2]), this._worldMatrix = e;\n }\n /**\n * Tests if the bounding box is intersecting the frustum planes\n * @param frustumPlanes defines the frustum planes to test\n * @returns true if there is an intersection\n */\n isInFrustum(e) {\n return Kn.IsInFrustum(this.vectorsWorld, e);\n }\n /**\n * Tests if the bounding box is entirely inside the frustum planes\n * @param frustumPlanes defines the frustum planes to test\n * @returns true if there is an inclusion\n */\n isCompletelyInFrustum(e) {\n return Kn.IsCompletelyInFrustum(this.vectorsWorld, e);\n }\n /**\n * Tests if a point is inside the bounding box\n * @param point defines the point to test\n * @returns true if the point is inside the bounding box\n */\n intersectsPoint(e) {\n const t = this.minimumWorld, i = this.maximumWorld, s = t.x, r = t.y, n = t.z, o = i.x, l = i.y, h = i.z, c = e.x, u = e.y, d = e.z, f = -tt;\n return !(o - c < f || f > c - s || l - u < f || f > u - r || h - d < f || f > d - n);\n }\n /**\n * Tests if the bounding box intersects with a bounding sphere\n * @param sphere defines the sphere to test\n * @returns true if there is an intersection\n */\n intersectsSphere(e) {\n return Kn.IntersectsSphere(this.minimumWorld, this.maximumWorld, e.centerWorld, e.radiusWorld);\n }\n /**\n * Tests if the bounding box intersects with a box defined by a min and max vectors\n * @param min defines the min vector to use\n * @param max defines the max vector to use\n * @returns true if there is an intersection\n */\n intersectsMinMax(e, t) {\n const i = this.minimumWorld, s = this.maximumWorld, r = i.x, n = i.y, o = i.z, l = s.x, h = s.y, c = s.z, u = e.x, d = e.y, f = e.z, p = t.x, _ = t.y, m = t.z;\n return !(l < u || r > p || h < d || n > _ || c < f || o > m);\n }\n /**\n * Disposes the resources of the class\n */\n dispose() {\n var e, t;\n (e = this._drawWrapperFront) == null || e.dispose(), (t = this._drawWrapperBack) == null || t.dispose();\n }\n // Statics\n /**\n * Tests if two bounding boxes are intersections\n * @param box0 defines the first box to test\n * @param box1 defines the second box to test\n * @returns true if there is an intersection\n */\n static Intersects(e, t) {\n return e.intersectsMinMax(t.minimumWorld, t.maximumWorld);\n }\n /**\n * Tests if a bounding box defines by a min/max vectors intersects a sphere\n * @param minPoint defines the minimum vector of the bounding box\n * @param maxPoint defines the maximum vector of the bounding box\n * @param sphereCenter defines the sphere center\n * @param sphereRadius defines the sphere radius\n * @returns true if there is an intersection\n */\n static IntersectsSphere(e, t, i, s) {\n const r = Kn._TmpVector3[0];\n return g.ClampToRef(i, e, t, r), g.DistanceSquared(i, r) <= s * s;\n }\n /**\n * Tests if a bounding box defined with 8 vectors is entirely inside frustum planes\n * @param boundingVectors defines an array of 8 vectors representing a bounding box\n * @param frustumPlanes defines the frustum planes to test\n * @returns true if there is an inclusion\n */\n static IsCompletelyInFrustum(e, t) {\n for (let i = 0; i < 6; ++i) {\n const s = t[i];\n for (let r = 0; r < 8; ++r)\n if (s.dotCoordinate(e[r]) < 0)\n return !1;\n }\n return !0;\n }\n /**\n * Tests if a bounding box defined with 8 vectors intersects frustum planes\n * @param boundingVectors defines an array of 8 vectors representing a bounding box\n * @param frustumPlanes defines the frustum planes to test\n * @returns true if there is an intersection\n */\n static IsInFrustum(e, t) {\n for (let i = 0; i < 6; ++i) {\n let s = !0;\n const r = t[i];\n for (let n = 0; n < 8; ++n)\n if (r.dotCoordinate(e[n]) >= 0) {\n s = !1;\n break;\n }\n if (s)\n return !1;\n }\n return !0;\n }\n}\nKn._TmpVector3 = _s.BuildArray(3, g.Zero);\nclass io {\n /**\n * Creates a new bounding sphere\n * @param min defines the minimum vector (in local space)\n * @param max defines the maximum vector (in local space)\n * @param worldMatrix defines the new world matrix\n */\n constructor(e, t, i) {\n this.center = g.Zero(), this.centerWorld = g.Zero(), this.minimum = g.Zero(), this.maximum = g.Zero(), this.reConstruct(e, t, i);\n }\n /**\n * Recreates the entire bounding sphere from scratch as if we call the constructor in place\n * @param min defines the new minimum vector (in local space)\n * @param max defines the new maximum vector (in local space)\n * @param worldMatrix defines the new world matrix\n */\n reConstruct(e, t, i) {\n this.minimum.copyFrom(e), this.maximum.copyFrom(t);\n const s = g.Distance(e, t);\n t.addToRef(e, this.center).scaleInPlace(0.5), this.radius = s * 0.5, this._update(i || O.IdentityReadOnly);\n }\n /**\n * Scale the current bounding sphere by applying a scale factor\n * @param factor defines the scale factor to apply\n * @returns the current bounding box\n */\n scale(e) {\n const t = this.radius * e, i = io._TmpVector3, s = i[0].setAll(t), r = this.center.subtractToRef(s, i[1]), n = this.center.addToRef(s, i[2]);\n return this.reConstruct(r, n, this._worldMatrix), this;\n }\n /**\n * Gets the world matrix of the bounding box\n * @returns a matrix\n */\n getWorldMatrix() {\n return this._worldMatrix;\n }\n // Methods\n /**\n * @internal\n */\n _update(e) {\n if (e.isIdentity())\n this.centerWorld.copyFrom(this.center), this.radiusWorld = this.radius;\n else {\n g.TransformCoordinatesToRef(this.center, e, this.centerWorld);\n const t = io._TmpVector3[0];\n g.TransformNormalFromFloatsToRef(1, 1, 1, e, t), this.radiusWorld = Math.max(Math.abs(t.x), Math.abs(t.y), Math.abs(t.z)) * this.radius;\n }\n }\n /**\n * Tests if the bounding sphere is intersecting the frustum planes\n * @param frustumPlanes defines the frustum planes to test\n * @returns true if there is an intersection\n */\n isInFrustum(e) {\n const t = this.centerWorld, i = this.radiusWorld;\n for (let s = 0; s < 6; s++)\n if (e[s].dotCoordinate(t) <= -i)\n return !1;\n return !0;\n }\n /**\n * Tests if the bounding sphere center is in between the frustum planes.\n * Used for optimistic fast inclusion.\n * @param frustumPlanes defines the frustum planes to test\n * @returns true if the sphere center is in between the frustum planes\n */\n isCenterInFrustum(e) {\n const t = this.centerWorld;\n for (let i = 0; i < 6; i++)\n if (e[i].dotCoordinate(t) < 0)\n return !1;\n return !0;\n }\n /**\n * Tests if a point is inside the bounding sphere\n * @param point defines the point to test\n * @returns true if the point is inside the bounding sphere\n */\n intersectsPoint(e) {\n const t = g.DistanceSquared(this.centerWorld, e);\n return !(this.radiusWorld * this.radiusWorld < t);\n }\n // Statics\n /**\n * Checks if two sphere intersect\n * @param sphere0 sphere 0\n * @param sphere1 sphere 1\n * @returns true if the spheres intersect\n */\n static Intersects(e, t) {\n const i = g.DistanceSquared(e.centerWorld, t.centerWorld), s = e.radiusWorld + t.radiusWorld;\n return !(s * s < i);\n }\n /**\n * Creates a sphere from a center and a radius\n * @param center The center\n * @param radius radius\n * @param matrix Optional worldMatrix\n * @returns The sphere\n */\n static CreateFromCenterAndRadius(e, t, i) {\n this._TmpVector3[0].copyFrom(e), this._TmpVector3[1].copyFromFloats(0, 0, t), this._TmpVector3[2].copyFrom(e), this._TmpVector3[0].addInPlace(this._TmpVector3[1]), this._TmpVector3[2].subtractInPlace(this._TmpVector3[1]);\n const s = new io(this._TmpVector3[0], this._TmpVector3[2]);\n return i ? s._worldMatrix = i : s._worldMatrix = O.Identity(), s;\n }\n}\nio._TmpVector3 = _s.BuildArray(3, g.Zero);\nconst Bm = { min: 0, max: 0 }, Vm = { min: 0, max: 0 }, Ib = (a, e, t) => {\n const i = g.Dot(e.centerWorld, a), s = Math.abs(g.Dot(e.directions[0], a)) * e.extendSize.x, r = Math.abs(g.Dot(e.directions[1], a)) * e.extendSize.y, n = Math.abs(g.Dot(e.directions[2], a)) * e.extendSize.z, o = s + r + n;\n t.min = i - o, t.max = i + o;\n}, Nr = (a, e, t) => (Ib(a, e, Bm), Ib(a, t, Vm), !(Bm.min > Vm.max || Vm.min > Bm.max));\nclass zr {\n /**\n * Constructs bounding info\n * @param minimum min vector of the bounding box/sphere\n * @param maximum max vector of the bounding box/sphere\n * @param worldMatrix defines the new world matrix\n */\n constructor(e, t, i) {\n this._isLocked = !1, this.boundingBox = new Kn(e, t, i), this.boundingSphere = new io(e, t, i);\n }\n /**\n * Recreates the entire bounding info from scratch as if we call the constructor in place\n * @param min defines the new minimum vector (in local space)\n * @param max defines the new maximum vector (in local space)\n * @param worldMatrix defines the new world matrix\n */\n reConstruct(e, t, i) {\n this.boundingBox.reConstruct(e, t, i), this.boundingSphere.reConstruct(e, t, i);\n }\n /**\n * min vector of the bounding box/sphere\n */\n get minimum() {\n return this.boundingBox.minimum;\n }\n /**\n * max vector of the bounding box/sphere\n */\n get maximum() {\n return this.boundingBox.maximum;\n }\n /**\n * If the info is locked and won't be updated to avoid perf overhead\n */\n get isLocked() {\n return this._isLocked;\n }\n set isLocked(e) {\n this._isLocked = e;\n }\n // Methods\n /**\n * Updates the bounding sphere and box\n * @param world world matrix to be used to update\n */\n update(e) {\n this._isLocked || (this.boundingBox._update(e), this.boundingSphere._update(e));\n }\n /**\n * Recreate the bounding info to be centered around a specific point given a specific extend.\n * @param center New center of the bounding info\n * @param extend New extend of the bounding info\n * @returns the current bounding info\n */\n centerOn(e, t) {\n const i = zr._TmpVector3[0].copyFrom(e).subtractInPlace(t), s = zr._TmpVector3[1].copyFrom(e).addInPlace(t);\n return this.boundingBox.reConstruct(i, s, this.boundingBox.getWorldMatrix()), this.boundingSphere.reConstruct(i, s, this.boundingBox.getWorldMatrix()), this;\n }\n /**\n * Grows the bounding info to include the given point.\n * @param point The point that will be included in the current bounding info (in local space)\n * @returns the current bounding info\n */\n encapsulate(e) {\n const t = g.Minimize(this.minimum, e), i = g.Maximize(this.maximum, e);\n return this.reConstruct(t, i, this.boundingBox.getWorldMatrix()), this;\n }\n /**\n * Grows the bounding info to encapsulate the given bounding info.\n * @param toEncapsulate The bounding info that will be encapsulated in the current bounding info\n * @returns the current bounding info\n */\n encapsulateBoundingInfo(e) {\n const t = w.Matrix[0];\n this.boundingBox.getWorldMatrix().invertToRef(t);\n const i = w.Vector3[0];\n return g.TransformCoordinatesToRef(e.boundingBox.minimumWorld, t, i), this.encapsulate(i), g.TransformCoordinatesToRef(e.boundingBox.maximumWorld, t, i), this.encapsulate(i), this;\n }\n /**\n * Scale the current bounding info by applying a scale factor\n * @param factor defines the scale factor to apply\n * @returns the current bounding info\n */\n scale(e) {\n return this.boundingBox.scale(e), this.boundingSphere.scale(e), this;\n }\n /**\n * Returns `true` if the bounding info is within the frustum defined by the passed array of planes.\n * @param frustumPlanes defines the frustum to test\n * @param strategy defines the strategy to use for the culling (default is BABYLON.AbstractMesh.CULLINGSTRATEGY_STANDARD)\n * The different strategies available are:\n * * BABYLON.AbstractMesh.CULLINGSTRATEGY_STANDARD most accurate but slower @see https://doc.babylonjs.com/typedoc/classes/BABYLON.AbstractMesh#CULLINGSTRATEGY_STANDARD\n * * BABYLON.AbstractMesh.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY faster but less accurate @see https://doc.babylonjs.com/typedoc/classes/BABYLON.AbstractMesh#CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY\n * * BABYLON.AbstractMesh.CULLINGSTRATEGY_OPTIMISTIC_INCLUSION can be faster if always visible @see https://doc.babylonjs.com/typedoc/classes/BABYLON.AbstractMesh#CULLINGSTRATEGY_OPTIMISTIC_INCLUSION\n * * BABYLON.AbstractMesh.CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY can be faster if always visible @see https://doc.babylonjs.com/typedoc/classes/BABYLON.AbstractMesh#CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY\n * @returns true if the bounding info is in the frustum planes\n */\n isInFrustum(e, t = 0) {\n return (t === 2 || t === 3) && this.boundingSphere.isCenterInFrustum(e) ? !0 : this.boundingSphere.isInFrustum(e) ? t === 1 || t === 3 ? !0 : this.boundingBox.isInFrustum(e) : !1;\n }\n /**\n * Gets the world distance between the min and max points of the bounding box\n */\n get diagonalLength() {\n const e = this.boundingBox;\n return e.maximumWorld.subtractToRef(e.minimumWorld, zr._TmpVector3[0]).length();\n }\n /**\n * Checks if a cullable object (mesh...) is in the camera frustum\n * Unlike isInFrustum this checks the full bounding box\n * @param frustumPlanes Camera near/planes\n * @returns true if the object is in frustum otherwise false\n */\n isCompletelyInFrustum(e) {\n return this.boundingBox.isCompletelyInFrustum(e);\n }\n /**\n * @internal\n */\n _checkCollision(e) {\n return e._canDoCollision(this.boundingSphere.centerWorld, this.boundingSphere.radiusWorld, this.boundingBox.minimumWorld, this.boundingBox.maximumWorld);\n }\n /**\n * Checks if a point is inside the bounding box and bounding sphere or the mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/interactions/mesh_intersect\n * @param point the point to check intersection with\n * @returns if the point intersects\n */\n intersectsPoint(e) {\n return !(!this.boundingSphere.centerWorld || !this.boundingSphere.intersectsPoint(e) || !this.boundingBox.intersectsPoint(e));\n }\n /**\n * Checks if another bounding info intersects the bounding box and bounding sphere or the mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/interactions/mesh_intersect\n * @param boundingInfo the bounding info to check intersection with\n * @param precise if the intersection should be done using OBB\n * @returns if the bounding info intersects\n */\n intersects(e, t) {\n if (!io.Intersects(this.boundingSphere, e.boundingSphere) || !Kn.Intersects(this.boundingBox, e.boundingBox))\n return !1;\n if (!t)\n return !0;\n const i = this.boundingBox, s = e.boundingBox;\n return !(!Nr(i.directions[0], i, s) || !Nr(i.directions[1], i, s) || !Nr(i.directions[2], i, s) || !Nr(s.directions[0], i, s) || !Nr(s.directions[1], i, s) || !Nr(s.directions[2], i, s) || !Nr(g.Cross(i.directions[0], s.directions[0]), i, s) || !Nr(g.Cross(i.directions[0], s.directions[1]), i, s) || !Nr(g.Cross(i.directions[0], s.directions[2]), i, s) || !Nr(g.Cross(i.directions[1], s.directions[0]), i, s) || !Nr(g.Cross(i.directions[1], s.directions[1]), i, s) || !Nr(g.Cross(i.directions[1], s.directions[2]), i, s) || !Nr(g.Cross(i.directions[2], s.directions[0]), i, s) || !Nr(g.Cross(i.directions[2], s.directions[1]), i, s) || !Nr(g.Cross(i.directions[2], s.directions[2]), i, s));\n }\n}\nzr._TmpVector3 = _s.BuildArray(2, g.Zero);\nclass f_ {\n static extractMinAndMaxIndexed(e, t, i, s, r, n) {\n for (let o = i; o < i + s; o++) {\n const l = t[o] * 3, h = e[l], c = e[l + 1], u = e[l + 2];\n r.minimizeInPlaceFromFloats(h, c, u), n.maximizeInPlaceFromFloats(h, c, u);\n }\n }\n static extractMinAndMax(e, t, i, s, r, n) {\n for (let o = t, l = t * s; o < t + i; o++, l += s) {\n const h = e[l], c = e[l + 1], u = e[l + 2];\n r.minimizeInPlaceFromFloats(h, c, u), n.maximizeInPlaceFromFloats(h, c, u);\n }\n }\n}\ny([\n co.filter((...[a, e]) => !Array.isArray(a) && !Array.isArray(e))\n // eslint-disable-next-line @typescript-eslint/naming-convention\n], f_, \"extractMinAndMaxIndexed\", null);\ny([\n co.filter((...[a]) => !Array.isArray(a))\n // eslint-disable-next-line @typescript-eslint/naming-convention\n], f_, \"extractMinAndMax\", null);\nfunction KO(a, e, t, i, s = null) {\n const r = new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), n = new g(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\n return f_.extractMinAndMaxIndexed(a, e, t, i, r, n), s && (r.x -= r.x * s.x + s.y, r.y -= r.y * s.x + s.y, r.z -= r.z * s.x + s.y, n.x += n.x * s.x + s.y, n.y += n.y * s.x + s.y, n.z += n.z * s.x + s.y), {\n minimum: r,\n maximum: n\n };\n}\nfunction $h(a, e, t, i = null, s) {\n const r = new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), n = new g(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\n return s || (s = 3), f_.extractMinAndMax(a, e, t, s, r, n), i && (r.x -= r.x * i.x + i.y, r.y -= r.y * i.x + i.y, r.z -= r.z * i.x + i.y, n.x += n.x * i.x + i.y, n.y += n.y * i.x + i.y, n.z += n.z * i.x + i.y), {\n minimum: r,\n maximum: n\n };\n}\nclass or {\n /**\n * Gets material defines used by the effect associated to the sub mesh\n */\n get materialDefines() {\n var e;\n return this._mainDrawWrapperOverride ? this._mainDrawWrapperOverride.defines : (e = this._getDrawWrapper()) == null ? void 0 : e.defines;\n }\n /**\n * Sets material defines used by the effect associated to the sub mesh\n */\n set materialDefines(e) {\n const t = this._mainDrawWrapperOverride ?? this._getDrawWrapper(void 0, !0);\n t.defines = e;\n }\n /**\n * @internal\n */\n _getDrawWrapper(e, t = !1) {\n e = e ?? this._engine.currentRenderPassId;\n let i = this._drawWrappers[e];\n return !i && t && (this._drawWrappers[e] = i = new Ds(this._mesh.getScene().getEngine())), i;\n }\n /**\n * @internal\n */\n _removeDrawWrapper(e, t = !0) {\n var i;\n t && ((i = this._drawWrappers[e]) == null || i.dispose()), this._drawWrappers[e] = void 0;\n }\n /**\n * Gets associated (main) effect (possibly the effect override if defined)\n */\n get effect() {\n var e;\n return this._mainDrawWrapperOverride ? this._mainDrawWrapperOverride.effect : ((e = this._getDrawWrapper()) == null ? void 0 : e.effect) ?? null;\n }\n /** @internal */\n get _drawWrapper() {\n return this._mainDrawWrapperOverride ?? this._getDrawWrapper(void 0, !0);\n }\n /** @internal */\n get _drawWrapperOverride() {\n return this._mainDrawWrapperOverride;\n }\n /**\n * @internal\n */\n _setMainDrawWrapperOverride(e) {\n this._mainDrawWrapperOverride = e;\n }\n /**\n * Sets associated effect (effect used to render this submesh)\n * @param effect defines the effect to associate with\n * @param defines defines the set of defines used to compile this effect\n * @param materialContext material context associated to the effect\n * @param resetContext true to reset the draw context\n */\n setEffect(e, t = null, i, s = !0) {\n const r = this._drawWrapper;\n r.setEffect(e, t, s), i !== void 0 && (r.materialContext = i), e || (r.defines = null, r.materialContext = void 0);\n }\n /**\n * Resets the draw wrappers cache\n * @param passId If provided, releases only the draw wrapper corresponding to this render pass id\n */\n resetDrawCache(e) {\n if (this._drawWrappers)\n if (e !== void 0) {\n this._removeDrawWrapper(e);\n return;\n } else\n for (const t of this._drawWrappers)\n t == null || t.dispose();\n this._drawWrappers = [];\n }\n /**\n * Add a new submesh to a mesh\n * @param materialIndex defines the material index to use\n * @param verticesStart defines vertex index start\n * @param verticesCount defines vertices count\n * @param indexStart defines index start\n * @param indexCount defines indices count\n * @param mesh defines the parent mesh\n * @param renderingMesh defines an optional rendering mesh\n * @param createBoundingBox defines if bounding box should be created for this submesh\n * @returns the new submesh\n */\n static AddToMesh(e, t, i, s, r, n, o, l = !0) {\n return new or(e, t, i, s, r, n, o, l);\n }\n /**\n * Creates a new submesh\n * @param materialIndex defines the material index to use\n * @param verticesStart defines vertex index start\n * @param verticesCount defines vertices count\n * @param indexStart defines index start\n * @param indexCount defines indices count\n * @param mesh defines the parent mesh\n * @param renderingMesh defines an optional rendering mesh\n * @param createBoundingBox defines if bounding box should be created for this submesh\n * @param addToMesh defines a boolean indicating that the submesh must be added to the mesh.subMeshes array (true by default)\n */\n constructor(e, t, i, s, r, n, o, l = !0, h = !0) {\n this.materialIndex = e, this.verticesStart = t, this.verticesCount = i, this.indexStart = s, this.indexCount = r, this._mainDrawWrapperOverride = null, this._linesIndexCount = 0, this._linesIndexBuffer = null, this._lastColliderWorldVertices = null, this._lastColliderTransformMatrix = null, this._wasDispatched = !1, this._renderId = 0, this._alphaIndex = 0, this._distanceToCamera = 0, this._currentMaterial = null, this._mesh = n, this._renderingMesh = o || n, h && n.subMeshes.push(this), this._engine = this._mesh.getScene().getEngine(), this.resetDrawCache(), this._trianglePlanes = [], this._id = n.subMeshes.length - 1, l && (this.refreshBoundingInfo(), n.computeWorldMatrix(!0));\n }\n /**\n * Returns true if this submesh covers the entire parent mesh\n * @ignorenaming\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n get IsGlobal() {\n return this.verticesStart === 0 && this.verticesCount === this._mesh.getTotalVertices() && this.indexStart === 0 && this.indexCount === this._mesh.getTotalIndices();\n }\n /**\n * Returns the submesh BoundingInfo object\n * @returns current bounding info (or mesh's one if the submesh is global)\n */\n getBoundingInfo() {\n return this.IsGlobal || this._mesh.hasThinInstances ? this._mesh.getBoundingInfo() : this._boundingInfo;\n }\n /**\n * Sets the submesh BoundingInfo\n * @param boundingInfo defines the new bounding info to use\n * @returns the SubMesh\n */\n setBoundingInfo(e) {\n return this._boundingInfo = e, this;\n }\n /**\n * Returns the mesh of the current submesh\n * @returns the parent mesh\n */\n getMesh() {\n return this._mesh;\n }\n /**\n * Returns the rendering mesh of the submesh\n * @returns the rendering mesh (could be different from parent mesh)\n */\n getRenderingMesh() {\n return this._renderingMesh;\n }\n /**\n * Returns the replacement mesh of the submesh\n * @returns the replacement mesh (could be different from parent mesh)\n */\n getReplacementMesh() {\n return this._mesh._internalAbstractMeshDataInfo._actAsRegularMesh ? this._mesh : null;\n }\n /**\n * Returns the effective mesh of the submesh\n * @returns the effective mesh (could be different from parent mesh)\n */\n getEffectiveMesh() {\n const e = this._mesh._internalAbstractMeshDataInfo._actAsRegularMesh ? this._mesh : null;\n return e || this._renderingMesh;\n }\n /**\n * Returns the submesh material\n * @param getDefaultMaterial Defines whether or not to get the default material if nothing has been defined.\n * @returns null or the current material\n */\n getMaterial(e = !0) {\n const t = this._renderingMesh.getMaterialForRenderPass(this._engine.currentRenderPassId) ?? this._renderingMesh.material;\n if (t) {\n if (this._isMultiMaterial(t)) {\n const i = t.getSubMaterial(this.materialIndex);\n return this._currentMaterial !== i && (this._currentMaterial = i, this.resetDrawCache()), i;\n }\n } else return e ? this._mesh.getScene().defaultMaterial : null;\n return t;\n }\n _isMultiMaterial(e) {\n return e.getSubMaterial !== void 0;\n }\n // Methods\n /**\n * Sets a new updated BoundingInfo object to the submesh\n * @param data defines an optional position array to use to determine the bounding info\n * @returns the SubMesh\n */\n refreshBoundingInfo(e = null) {\n if (this._lastColliderWorldVertices = null, this.IsGlobal || !this._renderingMesh || !this._renderingMesh.geometry)\n return this;\n if (e || (e = this._renderingMesh.getVerticesData(R.PositionKind)), !e)\n return this._boundingInfo = this._mesh.getBoundingInfo(), this;\n const t = this._renderingMesh.getIndices();\n let i;\n if (this.indexStart === 0 && this.indexCount === t.length) {\n const s = this._renderingMesh.getBoundingInfo();\n i = { minimum: s.minimum.clone(), maximum: s.maximum.clone() };\n } else\n i = KO(e, t, this.indexStart, this.indexCount, this._renderingMesh.geometry.boundingBias);\n return this._boundingInfo ? this._boundingInfo.reConstruct(i.minimum, i.maximum) : this._boundingInfo = new zr(i.minimum, i.maximum), this;\n }\n /**\n * @internal\n */\n _checkCollision(e) {\n return this.getBoundingInfo()._checkCollision(e);\n }\n /**\n * Updates the submesh BoundingInfo\n * @param world defines the world matrix to use to update the bounding info\n * @returns the submesh\n */\n updateBoundingInfo(e) {\n let t = this.getBoundingInfo();\n return t || (this.refreshBoundingInfo(), t = this.getBoundingInfo()), t && t.update(e), this;\n }\n /**\n * True is the submesh bounding box intersects the frustum defined by the passed array of planes.\n * @param frustumPlanes defines the frustum planes\n * @returns true if the submesh is intersecting with the frustum\n */\n isInFrustum(e) {\n const t = this.getBoundingInfo();\n return t ? t.isInFrustum(e, this._mesh.cullingStrategy) : !1;\n }\n /**\n * True is the submesh bounding box is completely inside the frustum defined by the passed array of planes\n * @param frustumPlanes defines the frustum planes\n * @returns true if the submesh is inside the frustum\n */\n isCompletelyInFrustum(e) {\n const t = this.getBoundingInfo();\n return t ? t.isCompletelyInFrustum(e) : !1;\n }\n /**\n * Renders the submesh\n * @param enableAlphaMode defines if alpha needs to be used\n * @returns the submesh\n */\n render(e) {\n return this._renderingMesh.render(this, e, this._mesh._internalAbstractMeshDataInfo._actAsRegularMesh ? this._mesh : void 0), this;\n }\n /**\n * @internal\n */\n _getLinesIndexBuffer(e, t) {\n if (!this._linesIndexBuffer) {\n const i = [];\n for (let s = this.indexStart; s < this.indexStart + this.indexCount; s += 3)\n i.push(e[s], e[s + 1], e[s + 1], e[s + 2], e[s + 2], e[s]);\n this._linesIndexBuffer = t.createIndexBuffer(i), this._linesIndexCount = i.length;\n }\n return this._linesIndexBuffer;\n }\n /**\n * Checks if the submesh intersects with a ray\n * @param ray defines the ray to test\n * @returns true is the passed ray intersects the submesh bounding box\n */\n canIntersects(e) {\n const t = this.getBoundingInfo();\n return t ? e.intersectsBox(t.boundingBox) : !1;\n }\n /**\n * Intersects current submesh with a ray\n * @param ray defines the ray to test\n * @param positions defines mesh's positions array\n * @param indices defines mesh's indices array\n * @param fastCheck defines if the first intersection will be used (and not the closest)\n * @param trianglePredicate defines an optional predicate used to select faces when a mesh intersection is detected\n * @returns intersection info or null if no intersection\n */\n intersects(e, t, i, s, r) {\n const n = this.getMaterial();\n if (!n)\n return null;\n let o = 3, l = !1;\n switch (n.fillMode) {\n case 3:\n case 5:\n case 6:\n case 8:\n return null;\n case 7:\n o = 1, l = !0;\n break;\n }\n return n.fillMode === 4 ? i.length ? this._intersectLines(e, t, i, this._mesh.intersectionThreshold, s) : this._intersectUnIndexedLines(e, t, i, this._mesh.intersectionThreshold, s) : !i.length && this._mesh._unIndexed ? this._intersectUnIndexedTriangles(e, t, i, s, r) : this._intersectTriangles(e, t, i, o, l, s, r);\n }\n /**\n * @internal\n */\n _intersectLines(e, t, i, s, r) {\n let n = null;\n for (let o = this.indexStart; o < this.indexStart + this.indexCount; o += 2) {\n const l = t[i[o]], h = t[i[o + 1]], c = e.intersectionSegment(l, h, s);\n if (!(c < 0) && (r || !n || c < n.distance) && (n = new Ag(null, null, c), n.faceId = o / 2, r))\n break;\n }\n return n;\n }\n /**\n * @internal\n */\n _intersectUnIndexedLines(e, t, i, s, r) {\n let n = null;\n for (let o = this.verticesStart; o < this.verticesStart + this.verticesCount; o += 2) {\n const l = t[o], h = t[o + 1], c = e.intersectionSegment(l, h, s);\n if (!(c < 0) && (r || !n || c < n.distance) && (n = new Ag(null, null, c), n.faceId = o / 2, r))\n break;\n }\n return n;\n }\n /**\n * @internal\n */\n _intersectTriangles(e, t, i, s, r, n, o) {\n let l = null, h = -1;\n for (let c = this.indexStart; c < this.indexStart + this.indexCount - (3 - s); c += s) {\n h++;\n const u = i[c], d = i[c + 1], f = i[c + 2];\n if (r && f === 4294967295) {\n c += 2;\n continue;\n }\n const p = t[u], _ = t[d], m = t[f];\n if (!p || !_ || !m || o && !o(p, _, m, e, u, d, f))\n continue;\n const x = e.intersectsTriangle(p, _, m);\n if (x) {\n if (x.distance < 0)\n continue;\n if ((n || !l || x.distance < l.distance) && (l = x, l.faceId = h, n))\n break;\n }\n }\n return l;\n }\n /**\n * @internal\n */\n _intersectUnIndexedTriangles(e, t, i, s, r) {\n let n = null;\n for (let o = this.verticesStart; o < this.verticesStart + this.verticesCount; o += 3) {\n const l = t[o], h = t[o + 1], c = t[o + 2];\n if (r && !r(l, h, c, e, -1, -1, -1))\n continue;\n const u = e.intersectsTriangle(l, h, c);\n if (u) {\n if (u.distance < 0)\n continue;\n if ((s || !n || u.distance < n.distance) && (n = u, n.faceId = o / 3, s))\n break;\n }\n }\n return n;\n }\n /** @internal */\n _rebuild() {\n this._linesIndexBuffer && (this._linesIndexBuffer = null);\n }\n // Clone\n /**\n * Creates a new submesh from the passed mesh\n * @param newMesh defines the new hosting mesh\n * @param newRenderingMesh defines an optional rendering mesh\n * @returns the new submesh\n */\n clone(e, t) {\n const i = new or(this.materialIndex, this.verticesStart, this.verticesCount, this.indexStart, this.indexCount, e, t, !1);\n if (!this.IsGlobal) {\n const s = this.getBoundingInfo();\n if (!s)\n return i;\n i._boundingInfo = new zr(s.minimum, s.maximum);\n }\n return i;\n }\n // Dispose\n /**\n * Release associated resources\n */\n dispose() {\n this._linesIndexBuffer && (this._mesh.getScene().getEngine()._releaseBuffer(this._linesIndexBuffer), this._linesIndexBuffer = null);\n const e = this._mesh.subMeshes.indexOf(this);\n this._mesh.subMeshes.splice(e, 1), this.resetDrawCache();\n }\n /**\n * Gets the class name\n * @returns the string \"SubMesh\".\n */\n getClassName() {\n return \"SubMesh\";\n }\n // Statics\n /**\n * Creates a new submesh from indices data\n * @param materialIndex the index of the main mesh material\n * @param startIndex the index where to start the copy in the mesh indices array\n * @param indexCount the number of indices to copy then from the startIndex\n * @param mesh the main mesh to create the submesh from\n * @param renderingMesh the optional rendering mesh\n * @param createBoundingBox defines if bounding box should be created for this submesh\n * @returns a new submesh\n */\n static CreateFromIndices(e, t, i, s, r, n = !0) {\n let o = Number.MAX_VALUE, l = -Number.MAX_VALUE;\n const c = (r || s).getIndices();\n for (let u = t; u < t + i; u++) {\n const d = c[u];\n d < o && (o = d), d > l && (l = d);\n }\n return new or(e, o, l - o + 1, t, i, s, r, n);\n }\n}\nclass vp {\n}\nclass ge {\n /**\n * Creates a new VertexData\n */\n constructor() {\n this.uniqueId = 0, this.metadata = {}, this._applyTo = jO(this._applyToCoroutine.bind(this)), this.uniqueId = ge._UniqueIDGenerator, ge._UniqueIDGenerator++;\n }\n /**\n * Uses the passed data array to set the set the values for the specified kind of data\n * @param data a linear array of floating numbers\n * @param kind the type of data that is being set, eg positions, colors etc\n */\n set(e, t) {\n switch (e.length || L.Warn(`Setting vertex data kind '${t}' with an empty array`), t) {\n case R.PositionKind:\n this.positions = e;\n break;\n case R.NormalKind:\n this.normals = e;\n break;\n case R.TangentKind:\n this.tangents = e;\n break;\n case R.UVKind:\n this.uvs = e;\n break;\n case R.UV2Kind:\n this.uvs2 = e;\n break;\n case R.UV3Kind:\n this.uvs3 = e;\n break;\n case R.UV4Kind:\n this.uvs4 = e;\n break;\n case R.UV5Kind:\n this.uvs5 = e;\n break;\n case R.UV6Kind:\n this.uvs6 = e;\n break;\n case R.ColorKind:\n this.colors = e;\n break;\n case R.MatricesIndicesKind:\n this.matricesIndices = e;\n break;\n case R.MatricesWeightsKind:\n this.matricesWeights = e;\n break;\n case R.MatricesIndicesExtraKind:\n this.matricesIndicesExtra = e;\n break;\n case R.MatricesWeightsExtraKind:\n this.matricesWeightsExtra = e;\n break;\n }\n }\n /**\n * Associates the vertexData to the passed Mesh.\n * Sets it as updatable or not (default `false`)\n * @param mesh the mesh the vertexData is applied to\n * @param updatable when used and having the value true allows new data to update the vertexData\n * @returns the VertexData\n */\n applyToMesh(e, t) {\n return this._applyTo(e, t, !1), this;\n }\n /**\n * Associates the vertexData to the passed Geometry.\n * Sets it as updatable or not (default `false`)\n * @param geometry the geometry the vertexData is applied to\n * @param updatable when used and having the value true allows new data to update the vertexData\n * @returns VertexData\n */\n applyToGeometry(e, t) {\n return this._applyTo(e, t, !1), this;\n }\n /**\n * Updates the associated mesh\n * @param mesh the mesh to be updated\n * @returns VertexData\n */\n updateMesh(e) {\n return this._update(e), this;\n }\n /**\n * Updates the associated geometry\n * @param geometry the geometry to be updated\n * @returns VertexData.\n */\n updateGeometry(e) {\n return this._update(e), this;\n }\n /**\n * @internal\n */\n *_applyToCoroutine(e, t = !1, i) {\n if (this.positions && (e.setVerticesData(R.PositionKind, this.positions, t), i && (yield)), this.normals && (e.setVerticesData(R.NormalKind, this.normals, t), i && (yield)), this.tangents && (e.setVerticesData(R.TangentKind, this.tangents, t), i && (yield)), this.uvs && (e.setVerticesData(R.UVKind, this.uvs, t), i && (yield)), this.uvs2 && (e.setVerticesData(R.UV2Kind, this.uvs2, t), i && (yield)), this.uvs3 && (e.setVerticesData(R.UV3Kind, this.uvs3, t), i && (yield)), this.uvs4 && (e.setVerticesData(R.UV4Kind, this.uvs4, t), i && (yield)), this.uvs5 && (e.setVerticesData(R.UV5Kind, this.uvs5, t), i && (yield)), this.uvs6 && (e.setVerticesData(R.UV6Kind, this.uvs6, t), i && (yield)), this.colors && (e.setVerticesData(R.ColorKind, this.colors, t), this.hasVertexAlpha && e.hasVertexAlpha !== void 0 && (e.hasVertexAlpha = !0), i && (yield)), this.matricesIndices && (e.setVerticesData(R.MatricesIndicesKind, this.matricesIndices, t), i && (yield)), this.matricesWeights && (e.setVerticesData(R.MatricesWeightsKind, this.matricesWeights, t), i && (yield)), this.matricesIndicesExtra && (e.setVerticesData(R.MatricesIndicesExtraKind, this.matricesIndicesExtra, t), i && (yield)), this.matricesWeightsExtra && (e.setVerticesData(R.MatricesWeightsExtraKind, this.matricesWeightsExtra, t), i && (yield)), this.indices ? (e.setIndices(this.indices, null, t), i && (yield)) : e.setIndices([], null), e.subMeshes && this.materialInfos && this.materialInfos.length > 1) {\n const s = e;\n s.subMeshes = [];\n for (const r of this.materialInfos)\n new or(r.materialIndex, r.verticesStart, r.verticesCount, r.indexStart, r.indexCount, s);\n }\n return this;\n }\n _update(e, t, i) {\n return this.positions && e.updateVerticesData(R.PositionKind, this.positions, t, i), this.normals && e.updateVerticesData(R.NormalKind, this.normals, t, i), this.tangents && e.updateVerticesData(R.TangentKind, this.tangents, t, i), this.uvs && e.updateVerticesData(R.UVKind, this.uvs, t, i), this.uvs2 && e.updateVerticesData(R.UV2Kind, this.uvs2, t, i), this.uvs3 && e.updateVerticesData(R.UV3Kind, this.uvs3, t, i), this.uvs4 && e.updateVerticesData(R.UV4Kind, this.uvs4, t, i), this.uvs5 && e.updateVerticesData(R.UV5Kind, this.uvs5, t, i), this.uvs6 && e.updateVerticesData(R.UV6Kind, this.uvs6, t, i), this.colors && e.updateVerticesData(R.ColorKind, this.colors, t, i), this.matricesIndices && e.updateVerticesData(R.MatricesIndicesKind, this.matricesIndices, t, i), this.matricesWeights && e.updateVerticesData(R.MatricesWeightsKind, this.matricesWeights, t, i), this.matricesIndicesExtra && e.updateVerticesData(R.MatricesIndicesExtraKind, this.matricesIndicesExtra, t, i), this.matricesWeightsExtra && e.updateVerticesData(R.MatricesWeightsExtraKind, this.matricesWeightsExtra, t, i), this.indices && e.setIndices(this.indices, null), this;\n }\n static _TransformVector3Coordinates(e, t, i = 0, s = e.length) {\n const r = w.Vector3[0], n = w.Vector3[1];\n for (let o = i; o < i + s; o += 3)\n g.FromArrayToRef(e, o, r), g.TransformCoordinatesToRef(r, t, n), e[o] = n.x, e[o + 1] = n.y, e[o + 2] = n.z;\n }\n static _TransformVector3Normals(e, t, i = 0, s = e.length) {\n const r = w.Vector3[0], n = w.Vector3[1];\n for (let o = i; o < i + s; o += 3)\n g.FromArrayToRef(e, o, r), g.TransformNormalToRef(r, t, n), e[o] = n.x, e[o + 1] = n.y, e[o + 2] = n.z;\n }\n static _TransformVector4Normals(e, t, i = 0, s = e.length) {\n const r = w.Vector4[0], n = w.Vector4[1];\n for (let o = i; o < i + s; o += 4)\n Ne.FromArrayToRef(e, o, r), Ne.TransformNormalToRef(r, t, n), e[o] = n.x, e[o + 1] = n.y, e[o + 2] = n.z, e[o + 3] = n.w;\n }\n static _FlipFaces(e, t = 0, i = e.length) {\n for (let s = t; s < t + i; s += 3) {\n const r = e[s + 1];\n e[s + 1] = e[s + 2], e[s + 2] = r;\n }\n }\n /**\n * Transforms each position and each normal of the vertexData according to the passed Matrix\n * @param matrix the transforming matrix\n * @returns the VertexData\n */\n transform(e) {\n const t = e.determinant() < 0;\n return this.positions && ge._TransformVector3Coordinates(this.positions, e), this.normals && ge._TransformVector3Normals(this.normals, e), this.tangents && ge._TransformVector4Normals(this.tangents, e), t && this.indices && ge._FlipFaces(this.indices), this;\n }\n /**\n * Generates an array of vertex data where each vertex data only has one material info\n * @returns An array of VertexData\n */\n splitBasedOnMaterialID() {\n if (!this.materialInfos || this.materialInfos.length < 2)\n return [this];\n const e = [];\n for (const t of this.materialInfos) {\n const i = new ge();\n if (this.positions && (i.positions = this.positions.slice(t.verticesStart * 3, (t.verticesCount + t.verticesStart) * 3)), this.normals && (i.normals = this.normals.slice(t.verticesStart * 3, (t.verticesCount + t.verticesStart) * 3)), this.tangents && (i.tangents = this.tangents.slice(t.verticesStart * 4, (t.verticesCount + t.verticesStart) * 4)), this.colors && (i.colors = this.colors.slice(t.verticesStart * 4, (t.verticesCount + t.verticesStart) * 4)), this.uvs && (i.uvs = this.uvs.slice(t.verticesStart * 2, (t.verticesCount + t.verticesStart) * 2)), this.uvs2 && (i.uvs2 = this.uvs2.slice(t.verticesStart * 2, (t.verticesCount + t.verticesStart) * 2)), this.uvs3 && (i.uvs3 = this.uvs3.slice(t.verticesStart * 2, (t.verticesCount + t.verticesStart) * 2)), this.uvs4 && (i.uvs4 = this.uvs4.slice(t.verticesStart * 2, (t.verticesCount + t.verticesStart) * 2)), this.uvs5 && (i.uvs5 = this.uvs5.slice(t.verticesStart * 2, (t.verticesCount + t.verticesStart) * 2)), this.uvs6 && (i.uvs6 = this.uvs6.slice(t.verticesStart * 2, (t.verticesCount + t.verticesStart) * 2)), this.matricesIndices && (i.matricesIndices = this.matricesIndices.slice(t.verticesStart * 4, (t.verticesCount + t.verticesStart) * 4)), this.matricesIndicesExtra && (i.matricesIndicesExtra = this.matricesIndicesExtra.slice(t.verticesStart * 4, (t.verticesCount + t.verticesStart) * 4)), this.matricesWeights && (i.matricesWeights = this.matricesWeights.slice(t.verticesStart * 4, (t.verticesCount + t.verticesStart) * 4)), this.matricesWeightsExtra && (i.matricesWeightsExtra = this.matricesWeightsExtra.slice(t.verticesStart * 4, (t.verticesCount + t.verticesStart) * 4)), this.indices) {\n i.indices = [];\n for (let r = t.indexStart; r < t.indexStart + t.indexCount; r++)\n i.indices.push(this.indices[r] - t.verticesStart);\n }\n const s = new vp();\n s.indexStart = 0, s.indexCount = i.indices ? i.indices.length : 0, s.materialIndex = t.materialIndex, s.verticesStart = 0, s.verticesCount = (i.positions ? i.positions.length : 0) / 3, i.materialInfos = [s], e.push(i);\n }\n return e;\n }\n /**\n * Merges the passed VertexData into the current one\n * @param others the VertexData to be merged into the current one\n * @param use32BitsIndices defines a boolean indicating if indices must be store in a 32 bits array\n * @param forceCloneIndices defines a boolean indicating if indices are forced to be cloned\n * @param mergeMaterialIds defines a boolean indicating if we need to merge the material infos\n * @param enableCompletion defines a boolean indicating if the vertex data should be completed to be compatible\n * @returns the modified VertexData\n */\n merge(e, t = !1, i = !1, s = !1, r = !1) {\n const n = Array.isArray(e) ? e.map((o) => ({ vertexData: o })) : [{ vertexData: e }];\n return Lx(this._mergeCoroutine(void 0, n, t, !1, i, s, r));\n }\n /**\n * @internal\n */\n *_mergeCoroutine(e, t, i = !1, s, r, n = !1, o = !1) {\n var f, p;\n this._validate();\n let l = t.map((_) => _.vertexData), h = this;\n if (o)\n for (const _ of l)\n _ && (_._validate(), !this.normals && _.normals && (this.normals = new Float32Array(this.positions.length)), !this.tangents && _.tangents && (this.tangents = new Float32Array(this.positions.length / 3 * 4)), !this.uvs && _.uvs && (this.uvs = new Float32Array(this.positions.length / 3 * 2)), !this.uvs2 && _.uvs2 && (this.uvs2 = new Float32Array(this.positions.length / 3 * 2)), !this.uvs3 && _.uvs3 && (this.uvs3 = new Float32Array(this.positions.length / 3 * 2)), !this.uvs4 && _.uvs4 && (this.uvs4 = new Float32Array(this.positions.length / 3 * 2)), !this.uvs5 && _.uvs5 && (this.uvs5 = new Float32Array(this.positions.length / 3 * 2)), !this.uvs6 && _.uvs6 && (this.uvs6 = new Float32Array(this.positions.length / 3 * 2)), !this.colors && _.colors && (this.colors = new Float32Array(this.positions.length / 3 * 4), this.colors.fill(1)), !this.matricesIndices && _.matricesIndices && (this.matricesIndices = new Float32Array(this.positions.length / 3 * 4)), !this.matricesWeights && _.matricesWeights && (this.matricesWeights = new Float32Array(this.positions.length / 3 * 4)), !this.matricesIndicesExtra && _.matricesIndicesExtra && (this.matricesIndicesExtra = new Float32Array(this.positions.length / 3 * 4)), !this.matricesWeightsExtra && _.matricesWeightsExtra && (this.matricesWeightsExtra = new Float32Array(this.positions.length / 3 * 4)));\n for (const _ of l)\n if (_) {\n if (o)\n this.normals && !_.normals && (_.normals = new Float32Array(_.positions.length)), this.tangents && !_.tangents && (_.tangents = new Float32Array(_.positions.length / 3 * 4)), this.uvs && !_.uvs && (_.uvs = new Float32Array(_.positions.length / 3 * 2)), this.uvs2 && !_.uvs2 && (_.uvs2 = new Float32Array(_.positions.length / 3 * 2)), this.uvs3 && !_.uvs3 && (_.uvs3 = new Float32Array(_.positions.length / 3 * 2)), this.uvs4 && !_.uvs4 && (_.uvs4 = new Float32Array(_.positions.length / 3 * 2)), this.uvs5 && !_.uvs5 && (_.uvs5 = new Float32Array(_.positions.length / 3 * 2)), this.uvs6 && !_.uvs6 && (_.uvs6 = new Float32Array(_.positions.length / 3 * 2)), this.colors && !_.colors && (_.colors = new Float32Array(_.positions.length / 3 * 4), _.colors.fill(1)), this.matricesIndices && !_.matricesIndices && (_.matricesIndices = new Float32Array(_.positions.length / 3 * 4)), this.matricesWeights && !_.matricesWeights && (_.matricesWeights = new Float32Array(_.positions.length / 3 * 4)), this.matricesIndicesExtra && !_.matricesIndicesExtra && (_.matricesIndicesExtra = new Float32Array(_.positions.length / 3 * 4)), this.matricesWeightsExtra && !_.matricesWeightsExtra && (_.matricesWeightsExtra = new Float32Array(_.positions.length / 3 * 4));\n else if (_._validate(), !this.normals != !_.normals || !this.tangents != !_.tangents || !this.uvs != !_.uvs || !this.uvs2 != !_.uvs2 || !this.uvs3 != !_.uvs3 || !this.uvs4 != !_.uvs4 || !this.uvs5 != !_.uvs5 || !this.uvs6 != !_.uvs6 || !this.colors != !_.colors || !this.matricesIndices != !_.matricesIndices || !this.matricesWeights != !_.matricesWeights || !this.matricesIndicesExtra != !_.matricesIndicesExtra || !this.matricesWeightsExtra != !_.matricesWeightsExtra)\n throw new Error(\"Cannot merge vertex data that do not have the same set of attributes\");\n }\n if (n) {\n let _ = 0, m = 0, x = 0;\n const v = [];\n let T = null;\n const E = [];\n for (const S of this.splitBasedOnMaterialID())\n E.push({ vertexData: S, transform: e });\n for (const S of t)\n if (S.vertexData)\n for (const C of S.vertexData.splitBasedOnMaterialID())\n E.push({ vertexData: C, transform: S.transform });\n E.sort((S, C) => {\n const P = S.vertexData.materialInfos ? S.vertexData.materialInfos[0].materialIndex : 0, N = C.vertexData.materialInfos ? C.vertexData.materialInfos[0].materialIndex : 0;\n return P > N ? 1 : P === N ? 0 : -1;\n });\n for (const S of E) {\n const C = S.vertexData;\n if (C.materialInfos ? _ = C.materialInfos[0].materialIndex : _ = 0, T && T.materialIndex === _)\n T.indexCount += C.indices.length, T.verticesCount += C.positions.length / 3;\n else {\n const P = new vp();\n P.materialIndex = _, P.indexStart = m, P.indexCount = C.indices.length, P.verticesStart = x, P.verticesCount = C.positions.length / 3, v.push(P), T = P;\n }\n m += C.indices.length, x += C.positions.length / 3;\n }\n const b = E.splice(0, 1)[0];\n h = b.vertexData, e = b.transform, l = E.map((S) => S.vertexData), t = E, this.materialInfos = v;\n }\n const c = l.reduce((_, m) => {\n var x;\n return _ + (((x = m.indices) == null ? void 0 : x.length) ?? 0);\n }, ((f = h.indices) == null ? void 0 : f.length) ?? 0);\n let d = r || l.some((_) => _.indices === h.indices) ? (p = h.indices) == null ? void 0 : p.slice() : h.indices;\n if (c > 0) {\n let _ = (d == null ? void 0 : d.length) ?? 0;\n if (d || (d = new Array(c)), d.length !== c) {\n if (Array.isArray(d))\n d.length = c;\n else {\n const x = i || d instanceof Uint32Array ? new Uint32Array(c) : new Uint16Array(c);\n x.set(d), d = x;\n }\n e && e.determinant() < 0 && ge._FlipFaces(d, 0, _);\n }\n let m = h.positions ? h.positions.length / 3 : 0;\n for (const { vertexData: x, transform: v } of t)\n if (x.indices) {\n for (let T = 0; T < x.indices.length; T++)\n d[_ + T] = x.indices[T] + m;\n v && v.determinant() < 0 && ge._FlipFaces(d, _, x.indices.length), m += x.positions.length / 3, _ += x.indices.length, s && (yield);\n }\n }\n return this.indices = d, this.positions = ge._MergeElement(R.PositionKind, h.positions, e, t.map((_) => [_.vertexData.positions, _.transform])), s && (yield), h.normals && (this.normals = ge._MergeElement(R.NormalKind, h.normals, e, t.map((_) => [_.vertexData.normals, _.transform])), s && (yield)), h.tangents && (this.tangents = ge._MergeElement(R.TangentKind, h.tangents, e, t.map((_) => [_.vertexData.tangents, _.transform])), s && (yield)), h.uvs && (this.uvs = ge._MergeElement(R.UVKind, h.uvs, e, t.map((_) => [_.vertexData.uvs, _.transform])), s && (yield)), h.uvs2 && (this.uvs2 = ge._MergeElement(R.UV2Kind, h.uvs2, e, t.map((_) => [_.vertexData.uvs2, _.transform])), s && (yield)), h.uvs3 && (this.uvs3 = ge._MergeElement(R.UV3Kind, h.uvs3, e, t.map((_) => [_.vertexData.uvs3, _.transform])), s && (yield)), h.uvs4 && (this.uvs4 = ge._MergeElement(R.UV4Kind, h.uvs4, e, t.map((_) => [_.vertexData.uvs4, _.transform])), s && (yield)), h.uvs5 && (this.uvs5 = ge._MergeElement(R.UV5Kind, h.uvs5, e, t.map((_) => [_.vertexData.uvs5, _.transform])), s && (yield)), h.uvs6 && (this.uvs6 = ge._MergeElement(R.UV6Kind, h.uvs6, e, t.map((_) => [_.vertexData.uvs6, _.transform])), s && (yield)), h.colors && (this.colors = ge._MergeElement(R.ColorKind, h.colors, e, t.map((_) => [_.vertexData.colors, _.transform])), (h.hasVertexAlpha !== void 0 || t.some((_) => _.vertexData.hasVertexAlpha !== void 0)) && (this.hasVertexAlpha = h.hasVertexAlpha || t.some((_) => _.vertexData.hasVertexAlpha)), s && (yield)), h.matricesIndices && (this.matricesIndices = ge._MergeElement(R.MatricesIndicesKind, h.matricesIndices, e, t.map((_) => [_.vertexData.matricesIndices, _.transform])), s && (yield)), h.matricesWeights && (this.matricesWeights = ge._MergeElement(R.MatricesWeightsKind, h.matricesWeights, e, t.map((_) => [_.vertexData.matricesWeights, _.transform])), s && (yield)), h.matricesIndicesExtra && (this.matricesIndicesExtra = ge._MergeElement(R.MatricesIndicesExtraKind, h.matricesIndicesExtra, e, t.map((_) => [_.vertexData.matricesIndicesExtra, _.transform])), s && (yield)), h.matricesWeightsExtra && (this.matricesWeightsExtra = ge._MergeElement(R.MatricesWeightsExtraKind, h.matricesWeightsExtra, e, t.map((_) => [_.vertexData.matricesWeightsExtra, _.transform]))), this;\n }\n static _MergeElement(e, t, i, s) {\n const r = s.filter((l) => l[0] !== null && l[0] !== void 0);\n if (!t && r.length == 0)\n return t;\n if (!t)\n return this._MergeElement(e, r[0][0], r[0][1], r.slice(1));\n const n = r.reduce((l, h) => l + h[0].length, t.length), o = e === R.PositionKind ? ge._TransformVector3Coordinates : e === R.NormalKind ? ge._TransformVector3Normals : e === R.TangentKind ? ge._TransformVector4Normals : () => {\n };\n if (t instanceof Float32Array) {\n const l = new Float32Array(n);\n l.set(t), i && o(l, i, 0, t.length);\n let h = t.length;\n for (const [c, u] of r)\n l.set(c, h), u && o(l, u, h, c.length), h += c.length;\n return l;\n } else {\n const l = new Array(n);\n for (let c = 0; c < t.length; c++)\n l[c] = t[c];\n i && o(l, i, 0, t.length);\n let h = t.length;\n for (const [c, u] of r) {\n for (let d = 0; d < c.length; d++)\n l[h + d] = c[d];\n u && o(l, u, h, c.length), h += c.length;\n }\n return l;\n }\n }\n _validate() {\n if (!this.positions)\n throw new Ia(\"Positions are required\", Go.MeshInvalidPositionsError);\n const e = (s, r) => {\n const n = R.DeduceStride(s);\n if (r.length % n !== 0)\n throw new Error(\"The \" + s + \"s array count must be a multiple of \" + n);\n return r.length / n;\n }, t = e(R.PositionKind, this.positions), i = (s, r) => {\n const n = e(s, r);\n if (n !== t)\n throw new Error(\"The \" + s + \"s element count (\" + n + \") does not match the positions count (\" + t + \")\");\n };\n this.normals && i(R.NormalKind, this.normals), this.tangents && i(R.TangentKind, this.tangents), this.uvs && i(R.UVKind, this.uvs), this.uvs2 && i(R.UV2Kind, this.uvs2), this.uvs3 && i(R.UV3Kind, this.uvs3), this.uvs4 && i(R.UV4Kind, this.uvs4), this.uvs5 && i(R.UV5Kind, this.uvs5), this.uvs6 && i(R.UV6Kind, this.uvs6), this.colors && i(R.ColorKind, this.colors), this.matricesIndices && i(R.MatricesIndicesKind, this.matricesIndices), this.matricesWeights && i(R.MatricesWeightsKind, this.matricesWeights), this.matricesIndicesExtra && i(R.MatricesIndicesExtraKind, this.matricesIndicesExtra), this.matricesWeightsExtra && i(R.MatricesWeightsExtraKind, this.matricesWeightsExtra);\n }\n /**\n * Clone the current vertex data\n * @returns a copy of the current data\n */\n clone() {\n const e = this.serialize();\n return ge.Parse(e);\n }\n /**\n * Serializes the VertexData\n * @returns a serialized object\n */\n serialize() {\n const e = {};\n if (this.positions && (e.positions = Array.from(this.positions)), this.normals && (e.normals = Array.from(this.normals)), this.tangents && (e.tangents = Array.from(this.tangents)), this.uvs && (e.uvs = Array.from(this.uvs)), this.uvs2 && (e.uvs2 = Array.from(this.uvs2)), this.uvs3 && (e.uvs3 = Array.from(this.uvs3)), this.uvs4 && (e.uvs4 = Array.from(this.uvs4)), this.uvs5 && (e.uvs5 = Array.from(this.uvs5)), this.uvs6 && (e.uvs6 = Array.from(this.uvs6)), this.colors && (e.colors = Array.from(this.colors), e.hasVertexAlpha = this.hasVertexAlpha), this.matricesIndices && (e.matricesIndices = Array.from(this.matricesIndices), e.matricesIndices._isExpanded = !0), this.matricesWeights && (e.matricesWeights = Array.from(this.matricesWeights)), this.matricesIndicesExtra && (e.matricesIndicesExtra = Array.from(this.matricesIndicesExtra), e.matricesIndicesExtra._isExpanded = !0), this.matricesWeightsExtra && (e.matricesWeightsExtra = Array.from(this.matricesWeightsExtra)), e.indices = Array.from(this.indices), this.materialInfos) {\n e.materialInfos = [];\n for (const t of this.materialInfos) {\n const i = {\n indexStart: t.indexStart,\n indexCount: t.indexCount,\n materialIndex: t.materialIndex,\n verticesStart: t.verticesStart,\n verticesCount: t.verticesCount\n };\n e.materialInfos.push(i);\n }\n }\n return e;\n }\n // Statics\n /**\n * Extracts the vertexData from a mesh\n * @param mesh the mesh from which to extract the VertexData\n * @param copyWhenShared defines if the VertexData must be cloned when shared between multiple meshes, optional, default false\n * @param forceCopy indicating that the VertexData must be cloned, optional, default false\n * @returns the object VertexData associated to the passed mesh\n */\n static ExtractFromMesh(e, t, i) {\n return ge._ExtractFrom(e, t, i);\n }\n /**\n * Extracts the vertexData from the geometry\n * @param geometry the geometry from which to extract the VertexData\n * @param copyWhenShared defines if the VertexData must be cloned when the geometry is shared between multiple meshes, optional, default false\n * @param forceCopy indicating that the VertexData must be cloned, optional, default false\n * @returns the object VertexData associated to the passed mesh\n */\n static ExtractFromGeometry(e, t, i) {\n return ge._ExtractFrom(e, t, i);\n }\n static _ExtractFrom(e, t, i) {\n const s = new ge();\n if (e.isVerticesDataPresent(R.PositionKind) && (s.positions = e.getVerticesData(R.PositionKind, t, i)), e.isVerticesDataPresent(R.NormalKind) && (s.normals = e.getVerticesData(R.NormalKind, t, i)), e.isVerticesDataPresent(R.TangentKind) && (s.tangents = e.getVerticesData(R.TangentKind, t, i)), e.isVerticesDataPresent(R.UVKind) && (s.uvs = e.getVerticesData(R.UVKind, t, i)), e.isVerticesDataPresent(R.UV2Kind) && (s.uvs2 = e.getVerticesData(R.UV2Kind, t, i)), e.isVerticesDataPresent(R.UV3Kind) && (s.uvs3 = e.getVerticesData(R.UV3Kind, t, i)), e.isVerticesDataPresent(R.UV4Kind) && (s.uvs4 = e.getVerticesData(R.UV4Kind, t, i)), e.isVerticesDataPresent(R.UV5Kind) && (s.uvs5 = e.getVerticesData(R.UV5Kind, t, i)), e.isVerticesDataPresent(R.UV6Kind) && (s.uvs6 = e.getVerticesData(R.UV6Kind, t, i)), e.isVerticesDataPresent(R.ColorKind)) {\n const r = e.geometry || e, n = r.getVertexBuffer(R.ColorKind), o = r.getVerticesData(R.ColorKind, t, i);\n if (n.getSize() === 3) {\n const l = new Float32Array(o.length * 4 / 3);\n for (let h = 0, c = 0; h < o.length; h += 3, c += 4)\n l[c] = o[h], l[c + 1] = o[h + 1], l[c + 2] = o[h + 2], l[c + 3] = 1;\n s.colors = l;\n } else if (n.getSize() === 4)\n s.colors = o;\n else\n throw new Error(`Unexpected number of color components: ${n.getSize()}`);\n }\n return e.isVerticesDataPresent(R.MatricesIndicesKind) && (s.matricesIndices = e.getVerticesData(R.MatricesIndicesKind, t, i)), e.isVerticesDataPresent(R.MatricesWeightsKind) && (s.matricesWeights = e.getVerticesData(R.MatricesWeightsKind, t, i)), e.isVerticesDataPresent(R.MatricesIndicesExtraKind) && (s.matricesIndicesExtra = e.getVerticesData(R.MatricesIndicesExtraKind, t, i)), e.isVerticesDataPresent(R.MatricesWeightsExtraKind) && (s.matricesWeightsExtra = e.getVerticesData(R.MatricesWeightsExtraKind, t, i)), s.indices = e.getIndices(t, i), s;\n }\n /**\n * Creates the VertexData for a Ribbon\n * @param options an object used to set the following optional parameters for the ribbon, required but can be empty\n * * pathArray array of paths, each of which an array of successive Vector3\n * * closeArray creates a seam between the first and the last paths of the pathArray, optional, default false\n * * closePath creates a seam between the first and the last points of each path of the path array, optional, default false\n * * offset a positive integer, only used when pathArray contains a single path (offset = 10 means the point 1 is joined to the point 11), default rounded half size of the pathArray length\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * * frontUvs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the front side, optional, default vector4 (0, 0, 1, 1)\n * * backUVs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the back side, optional, default vector4 (0, 0, 1, 1)\n * * invertUV swaps in the U and V coordinates when applying a texture, optional, default false\n * * uvs a linear array, of length 2 * number of vertices, of custom UV values, optional\n * * colors a linear array, of length 4 * number of vertices, of custom color values, optional\n * @returns the VertexData of the ribbon\n * @deprecated use CreateRibbonVertexData instead\n */\n static CreateRibbon(e) {\n throw $e(\"ribbonBuilder\");\n }\n /**\n * Creates the VertexData for a box\n * @param options an object used to set the following optional parameters for the box, required but can be empty\n * * size sets the width, height and depth of the box to the value of size, optional default 1\n * * width sets the width (x direction) of the box, overwrites the width set by size, optional, default size\n * * height sets the height (y direction) of the box, overwrites the height set by size, optional, default size\n * * depth sets the depth (z direction) of the box, overwrites the depth set by size, optional, default size\n * * faceUV an array of 6 Vector4 elements used to set different images to each box side\n * * faceColors an array of 6 Color3 elements used to set different colors to each box side\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * * frontUvs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the front side, optional, default vector4 (0, 0, 1, 1)\n * * backUVs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the back side, optional, default vector4 (0, 0, 1, 1)\n * @returns the VertexData of the box\n * @deprecated Please use CreateBoxVertexData from the BoxBuilder file instead\n */\n static CreateBox(e) {\n throw $e(\"boxBuilder\");\n }\n /**\n * Creates the VertexData for a tiled box\n * @param options an object used to set the following optional parameters for the box, required but can be empty\n * * faceTiles sets the pattern, tile size and number of tiles for a face\n * * faceUV an array of 6 Vector4 elements used to set different images to each box side\n * * faceColors an array of 6 Color3 elements used to set different colors to each box side\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * @param options.pattern\n * @param options.width\n * @param options.height\n * @param options.depth\n * @param options.tileSize\n * @param options.tileWidth\n * @param options.tileHeight\n * @param options.alignHorizontal\n * @param options.alignVertical\n * @param options.faceUV\n * @param options.faceColors\n * @param options.sideOrientation\n * @returns the VertexData of the box\n * @deprecated Please use CreateTiledBoxVertexData instead\n */\n static CreateTiledBox(e) {\n throw $e(\"tiledBoxBuilder\");\n }\n /**\n * Creates the VertexData for a tiled plane\n * @param options an object used to set the following optional parameters for the box, required but can be empty\n * * pattern a limited pattern arrangement depending on the number\n * * tileSize sets the width, height and depth of the tile to the value of size, optional default 1\n * * tileWidth sets the width (x direction) of the tile, overwrites the width set by size, optional, default size\n * * tileHeight sets the height (y direction) of the tile, overwrites the height set by size, optional, default size\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * * frontUvs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the front side, optional, default vector4 (0, 0, 1, 1)\n * * backUVs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the back side, optional, default vector4 (0, 0, 1, 1)\n * @returns the VertexData of the tiled plane\n * @deprecated use CreateTiledPlaneVertexData instead\n */\n static CreateTiledPlane(e) {\n throw $e(\"tiledPlaneBuilder\");\n }\n /**\n * Creates the VertexData for an ellipsoid, defaults to a sphere\n * @param options an object used to set the following optional parameters for the box, required but can be empty\n * * segments sets the number of horizontal strips optional, default 32\n * * diameter sets the axes dimensions, diameterX, diameterY and diameterZ to the value of diameter, optional default 1\n * * diameterX sets the diameterX (x direction) of the ellipsoid, overwrites the diameterX set by diameter, optional, default diameter\n * * diameterY sets the diameterY (y direction) of the ellipsoid, overwrites the diameterY set by diameter, optional, default diameter\n * * diameterZ sets the diameterZ (z direction) of the ellipsoid, overwrites the diameterZ set by diameter, optional, default diameter\n * * arc a number from 0 to 1, to create an unclosed ellipsoid based on the fraction of the circumference (latitude) given by the arc value, optional, default 1\n * * slice a number from 0 to 1, to create an unclosed ellipsoid based on the fraction of the height (latitude) given by the arc value, optional, default 1\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * * frontUvs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the front side, optional, default vector4 (0, 0, 1, 1)\n * * backUVs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the back side, optional, default vector4 (0, 0, 1, 1)\n * @returns the VertexData of the ellipsoid\n * @deprecated use CreateSphereVertexData instead\n */\n static CreateSphere(e) {\n throw $e(\"sphereBuilder\");\n }\n /**\n * Creates the VertexData for a cylinder, cone or prism\n * @param options an object used to set the following optional parameters for the box, required but can be empty\n * * height sets the height (y direction) of the cylinder, optional, default 2\n * * diameterTop sets the diameter of the top of the cone, overwrites diameter, optional, default diameter\n * * diameterBottom sets the diameter of the bottom of the cone, overwrites diameter, optional, default diameter\n * * diameter sets the diameter of the top and bottom of the cone, optional default 1\n * * tessellation the number of prism sides, 3 for a triangular prism, optional, default 24\n * * subdivisions` the number of rings along the cylinder height, optional, default 1\n * * arc a number from 0 to 1, to create an unclosed cylinder based on the fraction of the circumference given by the arc value, optional, default 1\n * * faceColors an array of Color3 elements used to set different colors to the top, rings and bottom respectively\n * * faceUV an array of Vector4 elements used to set different images to the top, rings and bottom respectively\n * * hasRings when true makes each subdivision independently treated as a face for faceUV and faceColors, optional, default false\n * * enclose when true closes an open cylinder by adding extra flat faces between the height axis and vertical edges, think cut cake\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * * frontUvs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the front side, optional, default vector4 (0, 0, 1, 1)\n * * backUVs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the back side, optional, default vector4 (0, 0, 1, 1)\n * @returns the VertexData of the cylinder, cone or prism\n * @deprecated please use CreateCylinderVertexData instead\n */\n static CreateCylinder(e) {\n throw $e(\"cylinderBuilder\");\n }\n /**\n * Creates the VertexData for a torus\n * @param options an object used to set the following optional parameters for the box, required but can be empty\n * * diameter the diameter of the torus, optional default 1\n * * thickness the diameter of the tube forming the torus, optional default 0.5\n * * tessellation the number of prism sides, 3 for a triangular prism, optional, default 24\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * * frontUvs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the front side, optional, default vector4 (0, 0, 1, 1)\n * * backUVs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the back side, optional, default vector4 (0, 0, 1, 1)\n * @returns the VertexData of the torus\n * @deprecated use CreateTorusVertexData instead\n */\n static CreateTorus(e) {\n throw $e(\"torusBuilder\");\n }\n /**\n * Creates the VertexData of the LineSystem\n * @param options an object used to set the following optional parameters for the LineSystem, required but can be empty\n * - lines an array of lines, each line being an array of successive Vector3\n * - colors an array of line colors, each of the line colors being an array of successive Color4, one per line point\n * @returns the VertexData of the LineSystem\n * @deprecated use CreateLineSystemVertexData instead\n */\n static CreateLineSystem(e) {\n throw $e(\"linesBuilder\");\n }\n /**\n * Create the VertexData for a DashedLines\n * @param options an object used to set the following optional parameters for the DashedLines, required but can be empty\n * - points an array successive Vector3\n * - dashSize the size of the dashes relative to the dash number, optional, default 3\n * - gapSize the size of the gap between two successive dashes relative to the dash number, optional, default 1\n * - dashNb the intended total number of dashes, optional, default 200\n * @returns the VertexData for the DashedLines\n * @deprecated use CreateDashedLinesVertexData instead\n */\n static CreateDashedLines(e) {\n throw $e(\"linesBuilder\");\n }\n /**\n * Creates the VertexData for a Ground\n * @param options an object used to set the following optional parameters for the Ground, required but can be empty\n * - width the width (x direction) of the ground, optional, default 1\n * - height the height (z direction) of the ground, optional, default 1\n * - subdivisions the number of subdivisions per side, optional, default 1\n * @returns the VertexData of the Ground\n * @deprecated Please use CreateGroundVertexData instead\n */\n static CreateGround(e) {\n throw $e(\"groundBuilder\");\n }\n /**\n * Creates the VertexData for a TiledGround by subdividing the ground into tiles\n * @param options an object used to set the following optional parameters for the Ground, required but can be empty\n * * xmin the ground minimum X coordinate, optional, default -1\n * * zmin the ground minimum Z coordinate, optional, default -1\n * * xmax the ground maximum X coordinate, optional, default 1\n * * zmax the ground maximum Z coordinate, optional, default 1\n * * subdivisions a javascript object {w: positive integer, h: positive integer}, `w` and `h` are the numbers of subdivisions on the ground width and height creating 'tiles', default {w: 6, h: 6}\n * * precision a javascript object {w: positive integer, h: positive integer}, `w` and `h` are the numbers of subdivisions on the tile width and height, default {w: 2, h: 2}\n * @returns the VertexData of the TiledGround\n * @deprecated use CreateTiledGroundVertexData instead\n */\n static CreateTiledGround(e) {\n throw $e(\"groundBuilder\");\n }\n /**\n * Creates the VertexData of the Ground designed from a heightmap\n * @param options an object used to set the following parameters for the Ground, required and provided by CreateGroundFromHeightMap\n * * width the width (x direction) of the ground\n * * height the height (z direction) of the ground\n * * subdivisions the number of subdivisions per side\n * * minHeight the minimum altitude on the ground, optional, default 0\n * * maxHeight the maximum altitude on the ground, optional default 1\n * * colorFilter the filter to apply to the image pixel colors to compute the height, optional Color3, default (0.3, 0.59, 0.11)\n * * buffer the array holding the image color data\n * * bufferWidth the width of image\n * * bufferHeight the height of image\n * * alphaFilter Remove any data where the alpha channel is below this value, defaults 0 (all data visible)\n * @returns the VertexData of the Ground designed from a heightmap\n * @deprecated use CreateGroundFromHeightMapVertexData instead\n */\n static CreateGroundFromHeightMap(e) {\n throw $e(\"groundBuilder\");\n }\n /**\n * Creates the VertexData for a Plane\n * @param options an object used to set the following optional parameters for the plane, required but can be empty\n * * size sets the width and height of the plane to the value of size, optional default 1\n * * width sets the width (x direction) of the plane, overwrites the width set by size, optional, default size\n * * height sets the height (y direction) of the plane, overwrites the height set by size, optional, default size\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * * frontUvs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the front side, optional, default vector4 (0, 0, 1, 1)\n * * backUVs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the back side, optional, default vector4 (0, 0, 1, 1)\n * @returns the VertexData of the box\n * @deprecated use CreatePlaneVertexData instead\n */\n static CreatePlane(e) {\n throw $e(\"planeBuilder\");\n }\n /**\n * Creates the VertexData of the Disc or regular Polygon\n * @param options an object used to set the following optional parameters for the disc, required but can be empty\n * * radius the radius of the disc, optional default 0.5\n * * tessellation the number of polygon sides, optional, default 64\n * * arc a number from 0 to 1, to create an unclosed polygon based on the fraction of the circumference given by the arc value, optional, default 1\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * * frontUvs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the front side, optional, default vector4 (0, 0, 1, 1)\n * * backUVs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the back side, optional, default vector4 (0, 0, 1, 1)\n * @returns the VertexData of the box\n * @deprecated use CreateDiscVertexData instead\n */\n static CreateDisc(e) {\n throw $e(\"discBuilder\");\n }\n /**\n * Creates the VertexData for an irregular Polygon in the XoZ plane using a mesh built by polygonTriangulation.build()\n * All parameters are provided by CreatePolygon as needed\n * @param polygon a mesh built from polygonTriangulation.build()\n * @param sideOrientation takes the values Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * @param fUV an array of Vector4 elements used to set different images to the top, rings and bottom respectively\n * @param fColors an array of Color3 elements used to set different colors to the top, rings and bottom respectively\n * @param frontUVs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the front side, optional, default vector4 (0, 0, 1, 1)\n * @param backUVs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the back side, optional, default vector4 (0, 0, 1, 1)\n * @param wrap a boolean, default false, when true and fUVs used texture is wrapped around all sides, when false texture is applied side\n * @returns the VertexData of the Polygon\n * @deprecated use CreatePolygonVertexData instead\n */\n static CreatePolygon(e, t, i, s, r, n, o) {\n throw $e(\"polygonBuilder\");\n }\n /**\n * Creates the VertexData of the IcoSphere\n * @param options an object used to set the following optional parameters for the IcoSphere, required but can be empty\n * * radius the radius of the IcoSphere, optional default 1\n * * radiusX allows stretching in the x direction, optional, default radius\n * * radiusY allows stretching in the y direction, optional, default radius\n * * radiusZ allows stretching in the z direction, optional, default radius\n * * flat when true creates a flat shaded mesh, optional, default true\n * * subdivisions increasing the subdivisions increases the number of faces, optional, default 4\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * * frontUvs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the front side, optional, default vector4 (0, 0, 1, 1)\n * * backUVs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the back side, optional, default vector4 (0, 0, 1, 1)\n * @returns the VertexData of the IcoSphere\n * @deprecated use CreateIcoSphereVertexData instead\n */\n static CreateIcoSphere(e) {\n throw $e(\"icoSphereBuilder\");\n }\n // inspired from // http://stemkoski.github.io/Three.js/Polyhedra.html\n /**\n * Creates the VertexData for a Polyhedron\n * @param options an object used to set the following optional parameters for the polyhedron, required but can be empty\n * * type provided types are:\n * * 0 : Tetrahedron, 1 : Octahedron, 2 : Dodecahedron, 3 : Icosahedron, 4 : Rhombicuboctahedron, 5 : Triangular Prism, 6 : Pentagonal Prism, 7 : Hexagonal Prism, 8 : Square Pyramid (J1)\n * * 9 : Pentagonal Pyramid (J2), 10 : Triangular Dipyramid (J12), 11 : Pentagonal Dipyramid (J13), 12 : Elongated Square Dipyramid (J15), 13 : Elongated Pentagonal Dipyramid (J16), 14 : Elongated Pentagonal Cupola (J20)\n * * size the size of the IcoSphere, optional default 1\n * * sizeX allows stretching in the x direction, optional, default size\n * * sizeY allows stretching in the y direction, optional, default size\n * * sizeZ allows stretching in the z direction, optional, default size\n * * custom a number that overwrites the type to create from an extended set of polyhedron from https://www.babylonjs-playground.com/#21QRSK#15 with minimised editor\n * * faceUV an array of Vector4 elements used to set different images to the top, rings and bottom respectively\n * * faceColors an array of Color3 elements used to set different colors to the top, rings and bottom respectively\n * * flat when true creates a flat shaded mesh, optional, default true\n * * subdivisions increasing the subdivisions increases the number of faces, optional, default 4\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * * frontUvs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the front side, optional, default vector4 (0, 0, 1, 1)\n * * backUVs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the back side, optional, default vector4 (0, 0, 1, 1)\n * @returns the VertexData of the Polyhedron\n * @deprecated use CreatePolyhedronVertexData instead\n */\n static CreatePolyhedron(e) {\n throw $e(\"polyhedronBuilder\");\n }\n /**\n * Creates the VertexData for a Capsule, inspired from https://github.com/maximeq/three-js-capsule-geometry/blob/master/src/CapsuleBufferGeometry.js\n * @param options an object used to set the following optional parameters for the capsule, required but can be empty\n * @returns the VertexData of the Capsule\n * @deprecated Please use CreateCapsuleVertexData from the capsuleBuilder file instead\n */\n static CreateCapsule(e = {\n orientation: g.Up(),\n subdivisions: 2,\n tessellation: 16,\n height: 1,\n radius: 0.25,\n capSubdivisions: 6\n }) {\n throw $e(\"capsuleBuilder\");\n }\n // based on http://code.google.com/p/away3d/source/browse/trunk/fp10/Away3D/src/away3d/primitives/TorusKnot.as?spec=svn2473&r=2473\n /**\n * Creates the VertexData for a TorusKnot\n * @param options an object used to set the following optional parameters for the TorusKnot, required but can be empty\n * * radius the radius of the torus knot, optional, default 2\n * * tube the thickness of the tube, optional, default 0.5\n * * radialSegments the number of sides on each tube segments, optional, default 32\n * * tubularSegments the number of tubes to decompose the knot into, optional, default 32\n * * p the number of windings around the z axis, optional, default 2\n * * q the number of windings around the x axis, optional, default 3\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * * frontUvs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the front side, optional, default vector4 (0, 0, 1, 1)\n * * backUVs only usable when you create a double-sided mesh, used to choose what parts of the texture image to crop and apply on the back side, optional, default vector4 (0, 0, 1, 1)\n * @returns the VertexData of the Torus Knot\n * @deprecated use CreateTorusKnotVertexData instead\n */\n static CreateTorusKnot(e) {\n throw $e(\"torusKnotBuilder\");\n }\n // Tools\n /**\n * Compute normals for given positions and indices\n * @param positions an array of vertex positions, [...., x, y, z, ......]\n * @param indices an array of indices in groups of three for each triangular facet, [...., i, j, k, ......]\n * @param normals an array of vertex normals, [...., x, y, z, ......]\n * @param options an object used to set the following optional parameters for the TorusKnot, optional\n * * facetNormals : optional array of facet normals (vector3)\n * * facetPositions : optional array of facet positions (vector3)\n * * facetPartitioning : optional partitioning array. facetPositions is required for facetPartitioning computation\n * * ratio : optional partitioning ratio / bounding box, required for facetPartitioning computation\n * * bInfo : optional bounding info, required for facetPartitioning computation\n * * bbSize : optional bounding box size data, required for facetPartitioning computation\n * * subDiv : optional partitioning data about subdivisions on each axis (int), required for facetPartitioning computation\n * * useRightHandedSystem: optional boolean to for right handed system computation\n * * depthSort : optional boolean to enable the facet depth sort computation\n * * distanceTo : optional Vector3 to compute the facet depth from this location\n * * depthSortedFacets : optional array of depthSortedFacets to store the facet distances from the reference location\n */\n static ComputeNormals(e, t, i, s) {\n let r = 0, n = 0, o = 0, l = 0, h = 0, c = 0, u = 0, d = 0, f = 0, p = 0, _ = 0, m = 0, x = 0, v = 0, T = 0, E = 0, b = 0, S = 0, C = 0, P = 0, N = !1, F = !1, $ = !1, j = !1, ne = 1, te = 0, le = null;\n s && (N = !!s.facetNormals, F = !!s.facetPositions, $ = !!s.facetPartitioning, ne = s.useRightHandedSystem === !0 ? -1 : 1, te = s.ratio || 0, j = !!s.depthSort, le = s.distanceTo, j && le === void 0 && (le = g.Zero()));\n let _e = 0, Se = 0, Ie = 0, de = 0;\n for ($ && s && s.bbSize && (_e = s.subDiv.X * te / s.bbSize.x, Se = s.subDiv.Y * te / s.bbSize.y, Ie = s.subDiv.Z * te / s.bbSize.z, de = s.subDiv.max * s.subDiv.max, s.facetPartitioning.length = 0), r = 0; r < e.length; r++)\n i[r] = 0;\n const Y = t.length / 3 | 0;\n for (r = 0; r < Y; r++) {\n if (m = t[r * 3] * 3, x = m + 1, v = m + 2, T = t[r * 3 + 1] * 3, E = T + 1, b = T + 2, S = t[r * 3 + 2] * 3, C = S + 1, P = S + 2, n = e[m] - e[T], o = e[x] - e[E], l = e[v] - e[b], h = e[S] - e[T], c = e[C] - e[E], u = e[P] - e[b], d = ne * (o * u - l * c), f = ne * (l * h - n * u), p = ne * (n * c - o * h), _ = Math.sqrt(d * d + f * f + p * p), _ = _ === 0 ? 1 : _, d /= _, f /= _, p /= _, N && s && (s.facetNormals[r].x = d, s.facetNormals[r].y = f, s.facetNormals[r].z = p), F && s && (s.facetPositions[r].x = (e[m] + e[T] + e[S]) / 3, s.facetPositions[r].y = (e[x] + e[E] + e[C]) / 3, s.facetPositions[r].z = (e[v] + e[b] + e[P]) / 3), $ && s) {\n const M = Math.floor((s.facetPositions[r].x - s.bInfo.minimum.x * te) * _e), k = Math.floor((s.facetPositions[r].y - s.bInfo.minimum.y * te) * Se), W = Math.floor((s.facetPositions[r].z - s.bInfo.minimum.z * te) * Ie), V = Math.floor((e[m] - s.bInfo.minimum.x * te) * _e), K = Math.floor((e[x] - s.bInfo.minimum.y * te) * Se), ie = Math.floor((e[v] - s.bInfo.minimum.z * te) * Ie), fe = Math.floor((e[T] - s.bInfo.minimum.x * te) * _e), pe = Math.floor((e[E] - s.bInfo.minimum.y * te) * Se), ve = Math.floor((e[b] - s.bInfo.minimum.z * te) * Ie), Ue = Math.floor((e[S] - s.bInfo.minimum.x * te) * _e), ht = Math.floor((e[C] - s.bInfo.minimum.y * te) * Se), Ee = Math.floor((e[P] - s.bInfo.minimum.z * te) * Ie), Je = V + s.subDiv.max * K + de * ie, St = fe + s.subDiv.max * pe + de * ve, Yt = Ue + s.subDiv.max * ht + de * Ee, yt = M + s.subDiv.max * k + de * W;\n s.facetPartitioning[yt] = s.facetPartitioning[yt] ? s.facetPartitioning[yt] : new Array(), s.facetPartitioning[Je] = s.facetPartitioning[Je] ? s.facetPartitioning[Je] : new Array(), s.facetPartitioning[St] = s.facetPartitioning[St] ? s.facetPartitioning[St] : new Array(), s.facetPartitioning[Yt] = s.facetPartitioning[Yt] ? s.facetPartitioning[Yt] : new Array(), s.facetPartitioning[Je].push(r), St != Je && s.facetPartitioning[St].push(r), Yt == St || Yt == Je || s.facetPartitioning[Yt].push(r), yt == Je || yt == St || yt == Yt || s.facetPartitioning[yt].push(r);\n }\n if (j && s && s.facetPositions) {\n const M = s.depthSortedFacets[r];\n M.ind = r * 3, M.sqDistance = g.DistanceSquared(s.facetPositions[r], le);\n }\n i[m] += d, i[x] += f, i[v] += p, i[T] += d, i[E] += f, i[b] += p, i[S] += d, i[C] += f, i[P] += p;\n }\n for (r = 0; r < i.length / 3; r++)\n d = i[r * 3], f = i[r * 3 + 1], p = i[r * 3 + 2], _ = Math.sqrt(d * d + f * f + p * p), _ = _ === 0 ? 1 : _, d /= _, f /= _, p /= _, i[r * 3] = d, i[r * 3 + 1] = f, i[r * 3 + 2] = p;\n }\n /**\n * @internal\n */\n static _ComputeSides(e, t, i, s, r, n, o) {\n const l = i.length, h = s.length;\n let c, u;\n switch (e = e || ge.DEFAULTSIDE, e) {\n case ge.FRONTSIDE:\n break;\n case ge.BACKSIDE:\n for (c = 0; c < l; c += 3) {\n const d = i[c];\n i[c] = i[c + 2], i[c + 2] = d;\n }\n for (u = 0; u < h; u++)\n s[u] = -s[u];\n break;\n case ge.DOUBLESIDE: {\n const d = t.length, f = d / 3;\n for (let m = 0; m < d; m++)\n t[d + m] = t[m];\n for (c = 0; c < l; c += 3)\n i[c + l] = i[c + 2] + f, i[c + 1 + l] = i[c + 1] + f, i[c + 2 + l] = i[c] + f;\n for (u = 0; u < h; u++)\n s[h + u] = -s[u];\n const p = r.length;\n let _ = 0;\n for (_ = 0; _ < p; _++)\n r[_ + p] = r[_];\n for (n = n || new Ne(0, 0, 1, 1), o = o || new Ne(0, 0, 1, 1), _ = 0, c = 0; c < p / 2; c++)\n r[_] = n.x + (n.z - n.x) * r[_], r[_ + 1] = n.y + (n.w - n.y) * r[_ + 1], r[_ + p] = o.x + (o.z - o.x) * r[_ + p], r[_ + p + 1] = o.y + (o.w - o.y) * r[_ + p + 1], _ += 2;\n break;\n }\n }\n }\n /**\n * Creates a VertexData from serialized data\n * @param parsedVertexData the parsed data from an imported file\n * @returns a VertexData\n */\n static Parse(e) {\n const t = new ge(), i = e.positions;\n i && t.set(i, R.PositionKind);\n const s = e.normals;\n s && t.set(s, R.NormalKind);\n const r = e.tangents;\n r && t.set(r, R.TangentKind);\n const n = e.uvs;\n n && t.set(n, R.UVKind);\n const o = e.uvs2;\n o && t.set(o, R.UV2Kind);\n const l = e.uvs3;\n l && t.set(l, R.UV3Kind);\n const h = e.uvs4;\n h && t.set(h, R.UV4Kind);\n const c = e.uvs5;\n c && t.set(c, R.UV5Kind);\n const u = e.uvs6;\n u && t.set(u, R.UV6Kind);\n const d = e.colors;\n d && (t.set(Ce.CheckColors4(d, i.length / 3), R.ColorKind), e.hasVertexAlpha !== void 0 && (t.hasVertexAlpha = e.hasVertexAlpha));\n const f = e.matricesIndices;\n f && t.set(f, R.MatricesIndicesKind);\n const p = e.matricesWeights;\n p && t.set(p, R.MatricesWeightsKind);\n const _ = e.indices;\n _ && (t.indices = _);\n const m = e.materialInfos;\n if (m) {\n t.materialInfos = [];\n for (const x of m) {\n const v = new vp();\n v.indexCount = x.indexCount, v.indexStart = x.indexStart, v.verticesCount = x.verticesCount, v.verticesStart = x.verticesStart, v.materialIndex = x.materialIndex, t.materialInfos.push(v);\n }\n }\n return t;\n }\n /**\n * Applies VertexData created from the imported parameters to the geometry\n * @param parsedVertexData the parsed data from an imported file\n * @param geometry the geometry to apply the VertexData to\n */\n static ImportVertexData(e, t) {\n const i = ge.Parse(e);\n t.setAllVerticesData(i, e.updatable);\n }\n}\nge.FRONTSIDE = 0;\nge.BACKSIDE = 1;\nge.DOUBLESIDE = 2;\nge.DEFAULTSIDE = 0;\nge._UniqueIDGenerator = 0;\ny([\n co.filter((...[a]) => !Array.isArray(a))\n], ge, \"_TransformVector3Coordinates\", null);\ny([\n co.filter((...[a]) => !Array.isArray(a))\n], ge, \"_TransformVector3Normals\", null);\ny([\n co.filter((...[a]) => !Array.isArray(a))\n], ge, \"_TransformVector4Normals\", null);\ny([\n co.filter((...[a]) => !Array.isArray(a))\n], ge, \"_FlipFaces\", null);\nclass Ts {\n /**\n * Gets or sets a boolean indicating if entire scene must be loaded even if scene contains incremental data\n */\n static get ForceFullSceneLoadingForIncremental() {\n return Ts._ForceFullSceneLoadingForIncremental;\n }\n static set ForceFullSceneLoadingForIncremental(e) {\n Ts._ForceFullSceneLoadingForIncremental = e;\n }\n /**\n * Gets or sets a boolean indicating if loading screen must be displayed while loading a scene\n */\n static get ShowLoadingScreen() {\n return Ts._ShowLoadingScreen;\n }\n static set ShowLoadingScreen(e) {\n Ts._ShowLoadingScreen = e;\n }\n /**\n * Defines the current logging level (while loading the scene)\n * @ignorenaming\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static get loggingLevel() {\n return Ts._LoggingLevel;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static set loggingLevel(e) {\n Ts._LoggingLevel = e;\n }\n /**\n * Gets or set a boolean indicating if matrix weights must be cleaned upon loading\n */\n static get CleanBoneMatrixWeights() {\n return Ts._CleanBoneMatrixWeights;\n }\n static set CleanBoneMatrixWeights(e) {\n Ts._CleanBoneMatrixWeights = e;\n }\n}\nTs._ForceFullSceneLoadingForIncremental = !1;\nTs._ShowLoadingScreen = !0;\nTs._CleanBoneMatrixWeights = !1;\nTs._LoggingLevel = 0;\nfunction qO(a, e, t, i, s, r, n, o) {\n const l = e * R.GetTypeByteLength(t), h = n * e;\n if (o.length !== h)\n throw new Error(\"Output length is not valid\");\n if (t !== R.FLOAT || s !== l) {\n R.ForEach(a, i, s, e, t, h, r, (c, u) => o[u] = c);\n return;\n }\n if (a instanceof Array) {\n const c = i / 4;\n o.set(a, c);\n } else if (a instanceof ArrayBuffer) {\n const c = new Float32Array(a, i, h);\n o.set(c);\n } else {\n const c = a.byteOffset + i;\n if (c % 4) {\n L.Warn(\"CopyFloatData: copied misaligned data.\"), o.set(new Float32Array(a.buffer.slice(c, c + h * 4)));\n return;\n }\n const d = new Float32Array(a.buffer, c, h);\n o.set(d);\n }\n}\nclass Ks {\n /**\n * Gets or sets the Bias Vector to apply on the bounding elements (box/sphere), the max extend is computed as v += v * bias.x + bias.y, the min is computed as v -= v * bias.x + bias.y\n */\n get boundingBias() {\n return this._boundingBias;\n }\n /**\n * Gets or sets the Bias Vector to apply on the bounding elements (box/sphere), the max extend is computed as v += v * bias.x + bias.y, the min is computed as v -= v * bias.x + bias.y\n */\n set boundingBias(e) {\n this._boundingBias ? this._boundingBias.copyFrom(e) : this._boundingBias = e.clone(), this._updateBoundingInfo(!0, null);\n }\n /**\n * Static function used to attach a new empty geometry to a mesh\n * @param mesh defines the mesh to attach the geometry to\n * @returns the new Geometry\n */\n static CreateGeometryForMesh(e) {\n const t = new Ks(Ks.RandomId(), e.getScene());\n return t.applyToMesh(e), t;\n }\n /** Get the list of meshes using this geometry */\n get meshes() {\n return this._meshes;\n }\n /**\n * Creates a new geometry\n * @param id defines the unique ID\n * @param scene defines the hosting scene\n * @param vertexData defines the VertexData used to get geometry data\n * @param updatable defines if geometry must be updatable (false by default)\n * @param mesh defines the mesh that will be associated with the geometry\n */\n constructor(e, t, i, s = !1, r = null) {\n this.delayLoadState = 0, this._totalVertices = 0, this._isDisposed = !1, this._indexBufferIsUpdatable = !1, this._positionsCache = [], this._parentContainer = null, this.useBoundingInfoFromGeometry = !1, this._scene = t || Me.LastCreatedScene, this._scene && (this.id = e, this.uniqueId = this._scene.getUniqueId(), this._engine = this._scene.getEngine(), this._meshes = [], this._vertexBuffers = {}, this._indices = [], this._updatable = s, i ? this.setAllVerticesData(i, s) : this._totalVertices = 0, this._engine.getCaps().vertexArrayObject && (this._vertexArrayObjects = {}), r && (this.applyToMesh(r), r.computeWorldMatrix(!0)));\n }\n /**\n * Gets the current extend of the geometry\n */\n get extend() {\n return this._extend;\n }\n /**\n * Gets the hosting scene\n * @returns the hosting Scene\n */\n getScene() {\n return this._scene;\n }\n /**\n * Gets the hosting engine\n * @returns the hosting Engine\n */\n getEngine() {\n return this._engine;\n }\n /**\n * Defines if the geometry is ready to use\n * @returns true if the geometry is ready to be used\n */\n isReady() {\n return this.delayLoadState === 1 || this.delayLoadState === 0;\n }\n /**\n * Gets a value indicating that the geometry should not be serialized\n */\n get doNotSerialize() {\n for (let e = 0; e < this._meshes.length; e++)\n if (!this._meshes[e].doNotSerialize)\n return !1;\n return !0;\n }\n /** @internal */\n _rebuild() {\n this._vertexArrayObjects && (this._vertexArrayObjects = {}), this._meshes.length !== 0 && this._indices && (this._indexBuffer = this._engine.createIndexBuffer(this._indices, this._updatable, \"Geometry_\" + this.id + \"_IndexBuffer\"));\n const e = /* @__PURE__ */ new Set();\n for (const t in this._vertexBuffers)\n e.add(this._vertexBuffers[t].getWrapperBuffer());\n e.forEach((t) => {\n t._rebuild();\n });\n }\n /**\n * Affects all geometry data in one call\n * @param vertexData defines the geometry data\n * @param updatable defines if the geometry must be flagged as updatable (false as default)\n */\n setAllVerticesData(e, t) {\n e.applyToGeometry(this, t), this._notifyUpdate();\n }\n /**\n * Set specific vertex data\n * @param kind defines the data kind (Position, normal, etc...)\n * @param data defines the vertex data to use\n * @param updatable defines if the vertex must be flagged as updatable (false as default)\n * @param stride defines the stride to use (0 by default). This value is deduced from the kind value if not specified\n */\n setVerticesData(e, t, i = !1, s) {\n i && Array.isArray(t) && (t = new Float32Array(t));\n const r = new R(this._engine, t, e, {\n updatable: i,\n postponeInternalCreation: this._meshes.length === 0,\n stride: s,\n label: \"Geometry_\" + this.id + \"_\" + e\n });\n this.setVerticesBuffer(r);\n }\n /**\n * Removes a specific vertex data\n * @param kind defines the data kind (Position, normal, etc...)\n */\n removeVerticesData(e) {\n this._vertexBuffers[e] && (this._vertexBuffers[e].dispose(), delete this._vertexBuffers[e]), this._vertexArrayObjects && this._disposeVertexArrayObjects();\n }\n /**\n * Affect a vertex buffer to the geometry. the vertexBuffer.getKind() function is used to determine where to store the data\n * @param buffer defines the vertex buffer to use\n * @param totalVertices defines the total number of vertices for position kind (could be null)\n * @param disposeExistingBuffer disposes the existing buffer, if any (default: true)\n */\n setVerticesBuffer(e, t = null, i = !0) {\n const s = e.getKind();\n this._vertexBuffers[s] && i && this._vertexBuffers[s].dispose(), e._buffer && e._buffer._increaseReferences(), this._vertexBuffers[s] = e;\n const r = this._meshes, n = r.length;\n if (s === R.PositionKind) {\n this._totalVertices = t ?? e._maxVerticesCount, this._updateExtend(e.getFloatData(this._totalVertices)), this._resetPointsArrayCache();\n const o = this._extend && this._extend.minimum || new g(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE), l = this._extend && this._extend.maximum || new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\n for (let h = 0; h < n; h++) {\n const c = r[h];\n c.buildBoundingInfo(o, l), c._createGlobalSubMesh(c.isUnIndexed), c.computeWorldMatrix(!0), c.synchronizeInstances();\n }\n }\n this._notifyUpdate(s);\n }\n /**\n * Update a specific vertex buffer\n * This function will directly update the underlying DataBuffer according to the passed numeric array or Float32Array\n * It will do nothing if the buffer is not updatable\n * @param kind defines the data kind (Position, normal, etc...)\n * @param data defines the data to use\n * @param offset defines the offset in the target buffer where to store the data\n * @param useBytes set to true if the offset is in bytes\n */\n updateVerticesDataDirectly(e, t, i, s = !1) {\n const r = this.getVertexBuffer(e);\n r && (r.updateDirectly(t, i, s), this._notifyUpdate(e));\n }\n /**\n * Update a specific vertex buffer\n * This function will create a new buffer if the current one is not updatable\n * @param kind defines the data kind (Position, normal, etc...)\n * @param data defines the data to use\n * @param updateExtends defines if the geometry extends must be recomputed (false by default)\n */\n updateVerticesData(e, t, i = !1) {\n const s = this.getVertexBuffer(e);\n s && (s.update(t), e === R.PositionKind && this._updateBoundingInfo(i, t), this._notifyUpdate(e));\n }\n _updateBoundingInfo(e, t) {\n if (e && this._updateExtend(t), this._resetPointsArrayCache(), e) {\n const i = this._meshes;\n for (const s of i) {\n s.hasBoundingInfo ? s.getBoundingInfo().reConstruct(this._extend.minimum, this._extend.maximum) : s.buildBoundingInfo(this._extend.minimum, this._extend.maximum);\n const r = s.subMeshes;\n for (const n of r)\n n.refreshBoundingInfo();\n }\n }\n }\n /**\n * @internal\n */\n _bind(e, t, i, s) {\n if (!e)\n return;\n t === void 0 && (t = this._indexBuffer);\n const r = this.getVertexBuffers();\n if (!r)\n return;\n if (t != this._indexBuffer || !this._vertexArrayObjects && !s) {\n this._engine.bindBuffers(r, t, e, i);\n return;\n }\n const n = s || this._vertexArrayObjects, o = this._engine;\n n[e.key] || (n[e.key] = o.recordVertexArrayObject(r, t, e, i)), o.bindVertexArrayObject(n[e.key], t);\n }\n /**\n * Gets total number of vertices\n * @returns the total number of vertices\n */\n getTotalVertices() {\n return this.isReady() ? this._totalVertices : 0;\n }\n /**\n * Gets a specific vertex data attached to this geometry. Float data is constructed if the vertex buffer data cannot be returned directly.\n * @param kind defines the data kind (Position, normal, etc...)\n * @param copyWhenShared defines if the returned array must be cloned upon returning it if the current geometry is shared between multiple meshes\n * @param forceCopy defines a boolean indicating that the returned array must be cloned upon returning it\n * @returns a float array containing vertex data\n */\n getVerticesData(e, t, i) {\n const s = this.getVertexBuffer(e);\n return s ? s.getFloatData(this._totalVertices, i || t && this._meshes.length !== 1) : null;\n }\n /**\n * Copies the requested vertex data kind into the given vertex data map. Float data is constructed if the map doesn't have the data.\n * @param kind defines the data kind (Position, normal, etc...)\n * @param vertexData defines the map that stores the resulting data\n */\n copyVerticesData(e, t) {\n const i = this.getVertexBuffer(e);\n if (!i)\n return;\n t[e] || (t[e] = new Float32Array(this._totalVertices * i.getSize()));\n const s = i.getData();\n s && qO(s, i.getSize(), i.type, i.byteOffset, i.byteStride, i.normalized, this._totalVertices, t[e]);\n }\n /**\n * Returns a boolean defining if the vertex data for the requested `kind` is updatable\n * @param kind defines the data kind (Position, normal, etc...)\n * @returns true if the vertex buffer with the specified kind is updatable\n */\n isVertexBufferUpdatable(e) {\n const t = this._vertexBuffers[e];\n return t ? t.isUpdatable() : !1;\n }\n /**\n * Gets a specific vertex buffer\n * @param kind defines the data kind (Position, normal, etc...)\n * @returns a VertexBuffer\n */\n getVertexBuffer(e) {\n return this.isReady() ? this._vertexBuffers[e] : null;\n }\n /**\n * Returns all vertex buffers\n * @returns an object holding all vertex buffers indexed by kind\n */\n getVertexBuffers() {\n return this.isReady() ? this._vertexBuffers : null;\n }\n /**\n * Gets a boolean indicating if specific vertex buffer is present\n * @param kind defines the data kind (Position, normal, etc...)\n * @returns true if data is present\n */\n isVerticesDataPresent(e) {\n return this._vertexBuffers ? this._vertexBuffers[e] !== void 0 : this._delayInfo ? this._delayInfo.indexOf(e) !== -1 : !1;\n }\n /**\n * Gets a list of all attached data kinds (Position, normal, etc...)\n * @returns a list of string containing all kinds\n */\n getVerticesDataKinds() {\n const e = [];\n let t;\n if (!this._vertexBuffers && this._delayInfo)\n for (t in this._delayInfo)\n e.push(t);\n else\n for (t in this._vertexBuffers)\n e.push(t);\n return e;\n }\n /**\n * Update index buffer\n * @param indices defines the indices to store in the index buffer\n * @param offset defines the offset in the target buffer where to store the data\n * @param gpuMemoryOnly defines a boolean indicating that only the GPU memory must be updated leaving the CPU version of the indices unchanged (false by default)\n */\n updateIndices(e, t, i = !1) {\n if (this._indexBuffer)\n if (!this._indexBufferIsUpdatable)\n this.setIndices(e, null, !0);\n else {\n const s = e.length !== this._indices.length;\n if (i || (this._indices = e.slice()), this._engine.updateDynamicIndexBuffer(this._indexBuffer, e, t), s)\n for (const r of this._meshes)\n r._createGlobalSubMesh(!0);\n }\n }\n /**\n * Sets the index buffer for this geometry.\n * @param indexBuffer Defines the index buffer to use for this geometry\n * @param totalVertices Defines the total number of vertices used by the buffer\n * @param totalIndices Defines the total number of indices in the index buffer\n */\n setIndexBuffer(e, t, i) {\n this._indices = [], this._indexBufferIsUpdatable = !1, this._indexBuffer = e, this._totalVertices = t, this._totalIndices = i, e.is32Bits || (e.is32Bits = this._totalIndices > 65535);\n for (const s of this._meshes)\n s._createGlobalSubMesh(!0), s.synchronizeInstances();\n this._notifyUpdate();\n }\n /**\n * Creates a new index buffer\n * @param indices defines the indices to store in the index buffer\n * @param totalVertices defines the total number of vertices (could be null)\n * @param updatable defines if the index buffer must be flagged as updatable (false by default)\n */\n setIndices(e, t = null, i = !1) {\n this._indexBuffer && this._engine._releaseBuffer(this._indexBuffer), this._indices = e, this._indexBufferIsUpdatable = i, this._meshes.length !== 0 && this._indices && (this._indexBuffer = this._engine.createIndexBuffer(this._indices, i, \"Geometry_\" + this.id + \"_IndexBuffer\")), t != null && (this._totalVertices = t);\n for (const s of this._meshes)\n s._createGlobalSubMesh(!0), s.synchronizeInstances();\n this._notifyUpdate();\n }\n /**\n * Return the total number of indices\n * @returns the total number of indices\n */\n getTotalIndices() {\n return this.isReady() ? this._totalIndices !== void 0 ? this._totalIndices : this._indices.length : 0;\n }\n /**\n * Gets the index buffer array\n * @param copyWhenShared defines if the returned array must be cloned upon returning it if the current geometry is shared between multiple meshes\n * @param forceCopy defines a boolean indicating that the returned array must be cloned upon returning it\n * @returns the index buffer array\n */\n getIndices(e, t) {\n if (!this.isReady())\n return null;\n const i = this._indices;\n return !t && (!e || this._meshes.length === 1) ? i : i.slice();\n }\n /**\n * Gets the index buffer\n * @returns the index buffer\n */\n getIndexBuffer() {\n return this.isReady() ? this._indexBuffer : null;\n }\n /**\n * @internal\n */\n _releaseVertexArrayObject(e = null) {\n !e || !this._vertexArrayObjects || this._vertexArrayObjects[e.key] && (this._engine.releaseVertexArrayObject(this._vertexArrayObjects[e.key]), delete this._vertexArrayObjects[e.key]);\n }\n /**\n * Release the associated resources for a specific mesh\n * @param mesh defines the source mesh\n * @param shouldDispose defines if the geometry must be disposed if there is no more mesh pointing to it\n */\n releaseForMesh(e, t) {\n const i = this._meshes, s = i.indexOf(e);\n s !== -1 && (i.splice(s, 1), this._vertexArrayObjects && e._invalidateInstanceVertexArrayObject(), e._geometry = null, i.length === 0 && t && this.dispose());\n }\n /**\n * Apply current geometry to a given mesh\n * @param mesh defines the mesh to apply geometry to\n */\n applyToMesh(e) {\n if (e._geometry === this)\n return;\n const t = e._geometry;\n t && t.releaseForMesh(e), this._vertexArrayObjects && e._invalidateInstanceVertexArrayObject();\n const i = this._meshes;\n e._geometry = this, e._internalAbstractMeshDataInfo._positions = null, this._scene.pushGeometry(this), i.push(e), this.isReady() ? this._applyToMesh(e) : this._boundingInfo && e.setBoundingInfo(this._boundingInfo);\n }\n _updateExtend(e = null) {\n if (this.useBoundingInfoFromGeometry && this._boundingInfo)\n this._extend = {\n minimum: this._boundingInfo.minimum.clone(),\n maximum: this._boundingInfo.maximum.clone()\n };\n else {\n if (!e && (e = this.getVerticesData(R.PositionKind), !e))\n return;\n this._extend = $h(e, 0, this._totalVertices, this.boundingBias, 3);\n }\n }\n _applyToMesh(e) {\n const t = this._meshes.length;\n for (const i in this._vertexBuffers)\n t === 1 && this._vertexBuffers[i].create(), i === R.PositionKind && (this._extend || this._updateExtend(), e.buildBoundingInfo(this._extend.minimum, this._extend.maximum), e._createGlobalSubMesh(e.isUnIndexed), e._updateBoundingInfo());\n t === 1 && this._indices && this._indices.length > 0 && (this._indexBuffer = this._engine.createIndexBuffer(this._indices, this._updatable, \"Geometry_\" + this.id + \"_IndexBuffer\")), e._syncGeometryWithMorphTargetManager(), e.synchronizeInstances();\n }\n _notifyUpdate(e) {\n this.onGeometryUpdated && this.onGeometryUpdated(this, e), this._vertexArrayObjects && this._disposeVertexArrayObjects();\n for (const t of this._meshes)\n t._markSubMeshesAsAttributesDirty();\n }\n /**\n * Load the geometry if it was flagged as delay loaded\n * @param scene defines the hosting scene\n * @param onLoaded defines a callback called when the geometry is loaded\n */\n load(e, t) {\n if (this.delayLoadState !== 2) {\n if (this.isReady()) {\n t && t();\n return;\n }\n this.delayLoadState = 2, this._queueLoad(e, t);\n }\n }\n _queueLoad(e, t) {\n this.delayLoadingFile && (e.addPendingData(this), e._loadFile(this.delayLoadingFile, (i) => {\n if (!this._delayLoadingFunction)\n return;\n this._delayLoadingFunction(JSON.parse(i), this), this.delayLoadState = 1, this._delayInfo = [], e.removePendingData(this);\n const s = this._meshes, r = s.length;\n for (let n = 0; n < r; n++)\n this._applyToMesh(s[n]);\n t && t();\n }, void 0, !0));\n }\n /**\n * Invert the geometry to move from a right handed system to a left handed one.\n */\n toLeftHanded() {\n const e = this.getIndices(!1);\n if (e != null && e.length > 0) {\n for (let s = 0; s < e.length; s += 3) {\n const r = e[s + 0];\n e[s + 0] = e[s + 2], e[s + 2] = r;\n }\n this.setIndices(e);\n }\n const t = this.getVerticesData(R.PositionKind, !1);\n if (t != null && t.length > 0) {\n for (let s = 0; s < t.length; s += 3)\n t[s + 2] = -t[s + 2];\n this.setVerticesData(R.PositionKind, t, !1);\n }\n const i = this.getVerticesData(R.NormalKind, !1);\n if (i != null && i.length > 0) {\n for (let s = 0; s < i.length; s += 3)\n i[s + 2] = -i[s + 2];\n this.setVerticesData(R.NormalKind, i, !1);\n }\n }\n // Cache\n /** @internal */\n _resetPointsArrayCache() {\n this._positions = null;\n }\n /** @internal */\n _generatePointsArray() {\n if (this._positions)\n return !0;\n const e = this.getVerticesData(R.PositionKind);\n if (!e || e.length === 0)\n return !1;\n for (let t = this._positionsCache.length * 3, i = this._positionsCache.length; t < e.length; t += 3, ++i)\n this._positionsCache[i] = g.FromArray(e, t);\n for (let t = 0, i = 0; t < e.length; t += 3, ++i)\n this._positionsCache[i].set(e[0 + t], e[1 + t], e[2 + t]);\n return this._positionsCache.length = e.length / 3, this._positions = this._positionsCache, !0;\n }\n /**\n * Gets a value indicating if the geometry is disposed\n * @returns true if the geometry was disposed\n */\n isDisposed() {\n return this._isDisposed;\n }\n _disposeVertexArrayObjects() {\n if (this._vertexArrayObjects) {\n for (const i in this._vertexArrayObjects)\n this._engine.releaseVertexArrayObject(this._vertexArrayObjects[i]);\n this._vertexArrayObjects = {};\n const e = this._meshes, t = e.length;\n for (let i = 0; i < t; i++)\n e[i]._invalidateInstanceVertexArrayObject();\n }\n }\n /**\n * Free all associated resources\n */\n dispose() {\n const e = this._meshes, t = e.length;\n let i;\n for (i = 0; i < t; i++)\n this.releaseForMesh(e[i]);\n this._meshes.length = 0, this._disposeVertexArrayObjects();\n for (const s in this._vertexBuffers)\n this._vertexBuffers[s].dispose();\n if (this._vertexBuffers = {}, this._totalVertices = 0, this._indexBuffer && this._engine._releaseBuffer(this._indexBuffer), this._indexBuffer = null, this._indices = [], this.delayLoadState = 0, this.delayLoadingFile = null, this._delayLoadingFunction = null, this._delayInfo = [], this._boundingInfo = null, this._scene.removeGeometry(this), this._parentContainer) {\n const s = this._parentContainer.geometries.indexOf(this);\n s > -1 && this._parentContainer.geometries.splice(s, 1), this._parentContainer = null;\n }\n this._isDisposed = !0;\n }\n /**\n * Clone the current geometry into a new geometry\n * @param id defines the unique ID of the new geometry\n * @returns a new geometry object\n */\n copy(e) {\n const t = new ge();\n t.indices = [];\n const i = this.getIndices();\n if (i)\n for (let l = 0; l < i.length; l++)\n t.indices.push(i[l]);\n let s = !1, r = !1, n;\n for (n in this._vertexBuffers) {\n const l = this.getVerticesData(n);\n if (l && (l instanceof Float32Array ? t.set(new Float32Array(l), n) : t.set(l.slice(0), n), !r)) {\n const h = this.getVertexBuffer(n);\n h && (s = h.isUpdatable(), r = !s);\n }\n }\n const o = new Ks(e, this._scene, t, s);\n o.delayLoadState = this.delayLoadState, o.delayLoadingFile = this.delayLoadingFile, o._delayLoadingFunction = this._delayLoadingFunction;\n for (n in this._delayInfo)\n o._delayInfo = o._delayInfo || [], o._delayInfo.push(n);\n return o._boundingInfo = new zr(this._extend.minimum, this._extend.maximum), o;\n }\n /**\n * Serialize the current geometry info (and not the vertices data) into a JSON object\n * @returns a JSON representation of the current geometry data (without the vertices data)\n */\n serialize() {\n const e = {};\n return e.id = this.id, e.uniqueId = this.uniqueId, e.updatable = this._updatable, Ct && Ct.HasTags(this) && (e.tags = Ct.GetTags(this)), e;\n }\n _toNumberArray(e) {\n return Array.isArray(e) ? e : Array.prototype.slice.call(e);\n }\n /**\n * Release any memory retained by the cached data on the Geometry.\n *\n * Call this function to reduce memory footprint of the mesh.\n * Vertex buffers will not store CPU data anymore (this will prevent picking, collisions or physics to work correctly)\n */\n clearCachedData() {\n this._indices = [], this._resetPointsArrayCache();\n for (const e in this._vertexBuffers)\n Object.prototype.hasOwnProperty.call(this._vertexBuffers, e) && (this._vertexBuffers[e]._buffer._data = null);\n }\n /**\n * Serialize all vertices data into a JSON object\n * @returns a JSON representation of the current geometry data\n */\n serializeVerticeData() {\n const e = this.serialize();\n return this.isVerticesDataPresent(R.PositionKind) && (e.positions = this._toNumberArray(this.getVerticesData(R.PositionKind)), this.isVertexBufferUpdatable(R.PositionKind) && (e.positions._updatable = !0)), this.isVerticesDataPresent(R.NormalKind) && (e.normals = this._toNumberArray(this.getVerticesData(R.NormalKind)), this.isVertexBufferUpdatable(R.NormalKind) && (e.normals._updatable = !0)), this.isVerticesDataPresent(R.TangentKind) && (e.tangents = this._toNumberArray(this.getVerticesData(R.TangentKind)), this.isVertexBufferUpdatable(R.TangentKind) && (e.tangents._updatable = !0)), this.isVerticesDataPresent(R.UVKind) && (e.uvs = this._toNumberArray(this.getVerticesData(R.UVKind)), this.isVertexBufferUpdatable(R.UVKind) && (e.uvs._updatable = !0)), this.isVerticesDataPresent(R.UV2Kind) && (e.uvs2 = this._toNumberArray(this.getVerticesData(R.UV2Kind)), this.isVertexBufferUpdatable(R.UV2Kind) && (e.uvs2._updatable = !0)), this.isVerticesDataPresent(R.UV3Kind) && (e.uvs3 = this._toNumberArray(this.getVerticesData(R.UV3Kind)), this.isVertexBufferUpdatable(R.UV3Kind) && (e.uvs3._updatable = !0)), this.isVerticesDataPresent(R.UV4Kind) && (e.uvs4 = this._toNumberArray(this.getVerticesData(R.UV4Kind)), this.isVertexBufferUpdatable(R.UV4Kind) && (e.uvs4._updatable = !0)), this.isVerticesDataPresent(R.UV5Kind) && (e.uvs5 = this._toNumberArray(this.getVerticesData(R.UV5Kind)), this.isVertexBufferUpdatable(R.UV5Kind) && (e.uvs5._updatable = !0)), this.isVerticesDataPresent(R.UV6Kind) && (e.uvs6 = this._toNumberArray(this.getVerticesData(R.UV6Kind)), this.isVertexBufferUpdatable(R.UV6Kind) && (e.uvs6._updatable = !0)), this.isVerticesDataPresent(R.ColorKind) && (e.colors = this._toNumberArray(this.getVerticesData(R.ColorKind)), this.isVertexBufferUpdatable(R.ColorKind) && (e.colors._updatable = !0)), this.isVerticesDataPresent(R.MatricesIndicesKind) && (e.matricesIndices = this._toNumberArray(this.getVerticesData(R.MatricesIndicesKind)), e.matricesIndices._isExpanded = !0, this.isVertexBufferUpdatable(R.MatricesIndicesKind) && (e.matricesIndices._updatable = !0)), this.isVerticesDataPresent(R.MatricesWeightsKind) && (e.matricesWeights = this._toNumberArray(this.getVerticesData(R.MatricesWeightsKind)), this.isVertexBufferUpdatable(R.MatricesWeightsKind) && (e.matricesWeights._updatable = !0)), e.indices = this._toNumberArray(this.getIndices()), e;\n }\n // Statics\n /**\n * Extracts a clone of a mesh geometry\n * @param mesh defines the source mesh\n * @param id defines the unique ID of the new geometry object\n * @returns the new geometry object\n */\n static ExtractFromMesh(e, t) {\n const i = e._geometry;\n return i ? i.copy(t) : null;\n }\n /**\n * You should now use Tools.RandomId(), this method is still here for legacy reasons.\n * Implementation from http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#answer-2117523\n * Be aware Math.random() could cause collisions, but:\n * \"All but 6 of the 128 bits of the ID are randomly generated, which means that for any two ids, there's a 1 in 2^^122 (or 5.3x10^^36) chance they'll collide\"\n * @returns a string containing a new GUID\n */\n static RandomId() {\n return J.RandomId();\n }\n static _GetGeometryByLoadedUniqueId(e, t) {\n for (let i = 0; i < t.geometries.length; i++)\n if (t.geometries[i]._loadedUniqueId === e)\n return t.geometries[i];\n return null;\n }\n /**\n * @internal\n */\n static _ImportGeometry(e, t) {\n const i = t.getScene(), s = e.geometryUniqueId, r = e.geometryId;\n if (s || r) {\n const n = s ? this._GetGeometryByLoadedUniqueId(s, i) : i.getGeometryById(r);\n n && n.applyToMesh(t);\n } else if (e instanceof ArrayBuffer) {\n const n = t._binaryInfo;\n if (n.positionsAttrDesc && n.positionsAttrDesc.count > 0) {\n const o = new Float32Array(e, n.positionsAttrDesc.offset, n.positionsAttrDesc.count);\n t.setVerticesData(R.PositionKind, o, !1);\n }\n if (n.normalsAttrDesc && n.normalsAttrDesc.count > 0) {\n const o = new Float32Array(e, n.normalsAttrDesc.offset, n.normalsAttrDesc.count);\n t.setVerticesData(R.NormalKind, o, !1);\n }\n if (n.tangetsAttrDesc && n.tangetsAttrDesc.count > 0) {\n const o = new Float32Array(e, n.tangetsAttrDesc.offset, n.tangetsAttrDesc.count);\n t.setVerticesData(R.TangentKind, o, !1);\n }\n if (n.uvsAttrDesc && n.uvsAttrDesc.count > 0) {\n const o = new Float32Array(e, n.uvsAttrDesc.offset, n.uvsAttrDesc.count);\n if (At.UseOpenGLOrientationForUV)\n for (let l = 1; l < o.length; l += 2)\n o[l] = 1 - o[l];\n t.setVerticesData(R.UVKind, o, !1);\n }\n if (n.uvs2AttrDesc && n.uvs2AttrDesc.count > 0) {\n const o = new Float32Array(e, n.uvs2AttrDesc.offset, n.uvs2AttrDesc.count);\n if (At.UseOpenGLOrientationForUV)\n for (let l = 1; l < o.length; l += 2)\n o[l] = 1 - o[l];\n t.setVerticesData(R.UV2Kind, o, !1);\n }\n if (n.uvs3AttrDesc && n.uvs3AttrDesc.count > 0) {\n const o = new Float32Array(e, n.uvs3AttrDesc.offset, n.uvs3AttrDesc.count);\n if (At.UseOpenGLOrientationForUV)\n for (let l = 1; l < o.length; l += 2)\n o[l] = 1 - o[l];\n t.setVerticesData(R.UV3Kind, o, !1);\n }\n if (n.uvs4AttrDesc && n.uvs4AttrDesc.count > 0) {\n const o = new Float32Array(e, n.uvs4AttrDesc.offset, n.uvs4AttrDesc.count);\n if (At.UseOpenGLOrientationForUV)\n for (let l = 1; l < o.length; l += 2)\n o[l] = 1 - o[l];\n t.setVerticesData(R.UV4Kind, o, !1);\n }\n if (n.uvs5AttrDesc && n.uvs5AttrDesc.count > 0) {\n const o = new Float32Array(e, n.uvs5AttrDesc.offset, n.uvs5AttrDesc.count);\n if (At.UseOpenGLOrientationForUV)\n for (let l = 1; l < o.length; l += 2)\n o[l] = 1 - o[l];\n t.setVerticesData(R.UV5Kind, o, !1);\n }\n if (n.uvs6AttrDesc && n.uvs6AttrDesc.count > 0) {\n const o = new Float32Array(e, n.uvs6AttrDesc.offset, n.uvs6AttrDesc.count);\n if (At.UseOpenGLOrientationForUV)\n for (let l = 1; l < o.length; l += 2)\n o[l] = 1 - o[l];\n t.setVerticesData(R.UV6Kind, o, !1);\n }\n if (n.colorsAttrDesc && n.colorsAttrDesc.count > 0) {\n const o = new Float32Array(e, n.colorsAttrDesc.offset, n.colorsAttrDesc.count);\n t.setVerticesData(R.ColorKind, o, !1, n.colorsAttrDesc.stride);\n }\n if (n.matricesIndicesAttrDesc && n.matricesIndicesAttrDesc.count > 0) {\n const o = new Int32Array(e, n.matricesIndicesAttrDesc.offset, n.matricesIndicesAttrDesc.count), l = [];\n for (let h = 0; h < o.length; h++) {\n const c = o[h];\n l.push(c & 255), l.push((c & 65280) >> 8), l.push((c & 16711680) >> 16), l.push(c >> 24 & 255);\n }\n t.setVerticesData(R.MatricesIndicesKind, l, !1);\n }\n if (n.matricesIndicesExtraAttrDesc && n.matricesIndicesExtraAttrDesc.count > 0) {\n const o = new Int32Array(e, n.matricesIndicesExtraAttrDesc.offset, n.matricesIndicesExtraAttrDesc.count), l = [];\n for (let h = 0; h < o.length; h++) {\n const c = o[h];\n l.push(c & 255), l.push((c & 65280) >> 8), l.push((c & 16711680) >> 16), l.push(c >> 24 & 255);\n }\n t.setVerticesData(R.MatricesIndicesExtraKind, l, !1);\n }\n if (n.matricesWeightsAttrDesc && n.matricesWeightsAttrDesc.count > 0) {\n const o = new Float32Array(e, n.matricesWeightsAttrDesc.offset, n.matricesWeightsAttrDesc.count);\n t.setVerticesData(R.MatricesWeightsKind, o, !1);\n }\n if (n.indicesAttrDesc && n.indicesAttrDesc.count > 0) {\n const o = new Int32Array(e, n.indicesAttrDesc.offset, n.indicesAttrDesc.count);\n t.setIndices(o, null);\n }\n if (n.subMeshesAttrDesc && n.subMeshesAttrDesc.count > 0) {\n const o = new Int32Array(e, n.subMeshesAttrDesc.offset, n.subMeshesAttrDesc.count * 5);\n t.subMeshes = [];\n for (let l = 0; l < n.subMeshesAttrDesc.count; l++) {\n const h = o[l * 5 + 0], c = o[l * 5 + 1], u = o[l * 5 + 2], d = o[l * 5 + 3], f = o[l * 5 + 4];\n or.AddToMesh(h, c, u, d, f, t);\n }\n }\n } else if (e.positions && e.normals && e.indices) {\n if (t.setVerticesData(R.PositionKind, e.positions, e.positions._updatable), t.setVerticesData(R.NormalKind, e.normals, e.normals._updatable), e.tangents && t.setVerticesData(R.TangentKind, e.tangents, e.tangents._updatable), e.uvs && t.setVerticesData(R.UVKind, e.uvs, e.uvs._updatable), e.uvs2 && t.setVerticesData(R.UV2Kind, e.uvs2, e.uvs2._updatable), e.uvs3 && t.setVerticesData(R.UV3Kind, e.uvs3, e.uvs3._updatable), e.uvs4 && t.setVerticesData(R.UV4Kind, e.uvs4, e.uvs4._updatable), e.uvs5 && t.setVerticesData(R.UV5Kind, e.uvs5, e.uvs5._updatable), e.uvs6 && t.setVerticesData(R.UV6Kind, e.uvs6, e.uvs6._updatable), e.colors && t.setVerticesData(R.ColorKind, Ce.CheckColors4(e.colors, e.positions.length / 3), e.colors._updatable), e.matricesIndices)\n if (e.matricesIndices._isExpanded)\n delete e.matricesIndices._isExpanded, t.setVerticesData(R.MatricesIndicesKind, e.matricesIndices, e.matricesIndices._updatable);\n else {\n const n = [];\n for (let o = 0; o < e.matricesIndices.length; o++) {\n const l = e.matricesIndices[o];\n n.push(l & 255), n.push((l & 65280) >> 8), n.push((l & 16711680) >> 16), n.push(l >> 24 & 255);\n }\n t.setVerticesData(R.MatricesIndicesKind, n, e.matricesIndices._updatable);\n }\n if (e.matricesIndicesExtra)\n if (e.matricesIndicesExtra._isExpanded)\n delete e.matricesIndices._isExpanded, t.setVerticesData(R.MatricesIndicesExtraKind, e.matricesIndicesExtra, e.matricesIndicesExtra._updatable);\n else {\n const n = [];\n for (let o = 0; o < e.matricesIndicesExtra.length; o++) {\n const l = e.matricesIndicesExtra[o];\n n.push(l & 255), n.push((l & 65280) >> 8), n.push((l & 16711680) >> 16), n.push(l >> 24 & 255);\n }\n t.setVerticesData(R.MatricesIndicesExtraKind, n, e.matricesIndicesExtra._updatable);\n }\n e.matricesWeights && (Ks._CleanMatricesWeights(e, t), t.setVerticesData(R.MatricesWeightsKind, e.matricesWeights, e.matricesWeights._updatable)), e.matricesWeightsExtra && t.setVerticesData(R.MatricesWeightsExtraKind, e.matricesWeightsExtra, e.matricesWeights._updatable), t.setIndices(e.indices, null);\n }\n if (e.subMeshes) {\n t.subMeshes = [];\n for (let n = 0; n < e.subMeshes.length; n++) {\n const o = e.subMeshes[n];\n or.AddToMesh(o.materialIndex, o.verticesStart, o.verticesCount, o.indexStart, o.indexCount, t);\n }\n }\n t._shouldGenerateFlatShading && (t.convertToFlatShadedMesh(), t._shouldGenerateFlatShading = !1), t.computeWorldMatrix(!0), i.onMeshImportedObservable.notifyObservers(t);\n }\n static _CleanMatricesWeights(e, t) {\n if (!Ts.CleanBoneMatrixWeights)\n return;\n let s = 0;\n if (e.skeletonId > -1) {\n const u = t.getScene().getLastSkeletonById(e.skeletonId);\n if (!u)\n return;\n s = u.bones.length;\n } else\n return;\n const r = t.getVerticesData(R.MatricesIndicesKind), n = t.getVerticesData(R.MatricesIndicesExtraKind), o = e.matricesWeights, l = e.matricesWeightsExtra, h = e.numBoneInfluencer, c = o.length;\n for (let u = 0; u < c; u += 4) {\n let d = 0, f = -1;\n for (let p = 0; p < 4; p++) {\n const _ = o[u + p];\n d += _, _ < 1e-3 && f < 0 && (f = p);\n }\n if (l)\n for (let p = 0; p < 4; p++) {\n const _ = l[u + p];\n d += _, _ < 1e-3 && f < 0 && (f = p + 4);\n }\n if ((f < 0 || f > h - 1) && (f = h - 1), d > 1e-3) {\n const p = 1 / d;\n for (let _ = 0; _ < 4; _++)\n o[u + _] *= p;\n if (l)\n for (let _ = 0; _ < 4; _++)\n l[u + _] *= p;\n } else\n f >= 4 ? (l[u + f - 4] = 1 - d, n[u + f - 4] = s) : (o[u + f] = 1 - d, r[u + f] = s);\n }\n t.setVerticesData(R.MatricesIndicesKind, r), e.matricesWeightsExtra && t.setVerticesData(R.MatricesIndicesExtraKind, n);\n }\n /**\n * Create a new geometry from persisted data (Using .babylon file format)\n * @param parsedVertexData defines the persisted data\n * @param scene defines the hosting scene\n * @param rootUrl defines the root url to use to load assets (like delayed data)\n * @returns the new geometry object\n */\n static Parse(e, t, i) {\n const s = new Ks(e.id, t, void 0, e.updatable);\n return s._loadedUniqueId = e.uniqueId, Ct && Ct.AddTagsTo(s, e.tags), e.delayLoadingFile ? (s.delayLoadState = 4, s.delayLoadingFile = i + e.delayLoadingFile, s._boundingInfo = new zr(g.FromArray(e.boundingBoxMinimum), g.FromArray(e.boundingBoxMaximum)), s._delayInfo = [], e.hasUVs && s._delayInfo.push(R.UVKind), e.hasUVs2 && s._delayInfo.push(R.UV2Kind), e.hasUVs3 && s._delayInfo.push(R.UV3Kind), e.hasUVs4 && s._delayInfo.push(R.UV4Kind), e.hasUVs5 && s._delayInfo.push(R.UV5Kind), e.hasUVs6 && s._delayInfo.push(R.UV6Kind), e.hasColors && s._delayInfo.push(R.ColorKind), e.hasMatricesIndices && s._delayInfo.push(R.MatricesIndicesKind), e.hasMatricesWeights && s._delayInfo.push(R.MatricesWeightsKind), s._delayLoadingFunction = ge.ImportVertexData) : ge.ImportVertexData(e, s), t.pushGeometry(s, !0), s;\n }\n}\nconst QO = O.Compose(g.One(), se.FromEulerAngles(0, Math.PI, 0), g.Zero());\nclass Ye extends Lt {\n /**\n * Gets or sets the billboard mode. Default is 0.\n *\n * | Value | Type | Description |\n * | --- | --- | --- |\n * | 0 | BILLBOARDMODE_NONE | |\n * | 1 | BILLBOARDMODE_X | |\n * | 2 | BILLBOARDMODE_Y | |\n * | 4 | BILLBOARDMODE_Z | |\n * | 7 | BILLBOARDMODE_ALL | |\n *\n */\n get billboardMode() {\n return this._billboardMode;\n }\n set billboardMode(e) {\n this._billboardMode !== e && (this._billboardMode = e, this._cache.useBillboardPosition = (this._billboardMode & Ye.BILLBOARDMODE_USE_POSITION) !== 0, this._computeUseBillboardPath());\n }\n /**\n * Gets or sets a boolean indicating that parent rotation should be preserved when using billboards.\n * This could be useful for glTF objects where parent rotation helps converting from right handed to left handed\n */\n get preserveParentRotationForBillboard() {\n return this._preserveParentRotationForBillboard;\n }\n set preserveParentRotationForBillboard(e) {\n e !== this._preserveParentRotationForBillboard && (this._preserveParentRotationForBillboard = e, this._computeUseBillboardPath());\n }\n _computeUseBillboardPath() {\n this._cache.useBillboardPath = this._billboardMode !== Ye.BILLBOARDMODE_NONE && !this.preserveParentRotationForBillboard;\n }\n /**\n * Gets or sets the distance of the object to max, often used by skybox\n */\n get infiniteDistance() {\n return this._infiniteDistance;\n }\n set infiniteDistance(e) {\n this._infiniteDistance !== e && (this._infiniteDistance = e);\n }\n constructor(e, t = null, i = !0) {\n super(e, t, !1), this._forward = new g(0, 0, 1), this._up = new g(0, 1, 0), this._right = new g(1, 0, 0), this._position = g.Zero(), this._rotation = g.Zero(), this._rotationQuaternion = null, this._scaling = g.One(), this._transformToBoneReferal = null, this._isAbsoluteSynced = !1, this._billboardMode = Ye.BILLBOARDMODE_NONE, this._preserveParentRotationForBillboard = !1, this.scalingDeterminant = 1, this._infiniteDistance = !1, this.ignoreNonUniformScaling = !1, this.reIntegrateRotationIntoRotationQuaternion = !1, this._poseMatrix = null, this._localMatrix = O.Zero(), this._usePivotMatrix = !1, this._absolutePosition = g.Zero(), this._absoluteScaling = g.Zero(), this._absoluteRotationQuaternion = se.Identity(), this._pivotMatrix = O.Identity(), this._postMultiplyPivotMatrix = !1, this._isWorldMatrixFrozen = !1, this._indexInSceneTransformNodesArray = -1, this.onAfterWorldMatrixUpdateObservable = new G(), this._nonUniformScaling = !1, i && this.getScene().addTransformNode(this);\n }\n /**\n * Gets a string identifying the name of the class\n * @returns \"TransformNode\" string\n */\n getClassName() {\n return \"TransformNode\";\n }\n /**\n * Gets or set the node position (default is (0.0, 0.0, 0.0))\n */\n get position() {\n return this._position;\n }\n set position(e) {\n this._position = e, this._isDirty = !0;\n }\n /**\n * return true if a pivot has been set\n * @returns true if a pivot matrix is used\n */\n isUsingPivotMatrix() {\n return this._usePivotMatrix;\n }\n /**\n * @returns true if pivot matrix must be cancelled in the world matrix. When this parameter is set to true (default), the inverse of the pivot matrix is also applied at the end to cancel the transformation effect.\n */\n isUsingPostMultiplyPivotMatrix() {\n return this._postMultiplyPivotMatrix;\n }\n /**\n * Gets or sets the rotation property : a Vector3 defining the rotation value in radians around each local axis X, Y, Z (default is (0.0, 0.0, 0.0)).\n * If rotation quaternion is set, this Vector3 will be ignored and copy from the quaternion\n */\n get rotation() {\n return this._rotation;\n }\n set rotation(e) {\n this._rotation = e, this._rotationQuaternion = null, this._isDirty = !0;\n }\n /**\n * Gets or sets the scaling property : a Vector3 defining the node scaling along each local axis X, Y, Z (default is (1.0, 1.0, 1.0)).\n */\n get scaling() {\n return this._scaling;\n }\n set scaling(e) {\n this._scaling = e, this._isDirty = !0;\n }\n /**\n * Gets or sets the rotation Quaternion property : this a Quaternion object defining the node rotation by using a unit quaternion (undefined by default, but can be null).\n * If set, only the rotationQuaternion is then used to compute the node rotation (ie. node.rotation will be ignored)\n */\n get rotationQuaternion() {\n return this._rotationQuaternion;\n }\n set rotationQuaternion(e) {\n this._rotationQuaternion = e, e && this._rotation.setAll(0), this._isDirty = !0;\n }\n /**\n * The forward direction of that transform in world space.\n */\n get forward() {\n return g.TransformNormalFromFloatsToRef(0, 0, this.getScene().useRightHandedSystem ? -1 : 1, this.getWorldMatrix(), this._forward), this._forward.normalize();\n }\n /**\n * The up direction of that transform in world space.\n */\n get up() {\n return g.TransformNormalFromFloatsToRef(0, 1, 0, this.getWorldMatrix(), this._up), this._up.normalize();\n }\n /**\n * The right direction of that transform in world space.\n */\n get right() {\n return g.TransformNormalFromFloatsToRef(this.getScene().useRightHandedSystem ? -1 : 1, 0, 0, this.getWorldMatrix(), this._right), this._right.normalize();\n }\n /**\n * Copies the parameter passed Matrix into the mesh Pose matrix.\n * @param matrix the matrix to copy the pose from\n * @returns this TransformNode.\n */\n updatePoseMatrix(e) {\n return this._poseMatrix ? (this._poseMatrix.copyFrom(e), this) : (this._poseMatrix = e.clone(), this);\n }\n /**\n * Returns the mesh Pose matrix.\n * @returns the pose matrix\n */\n getPoseMatrix() {\n return this._poseMatrix || (this._poseMatrix = O.Identity()), this._poseMatrix;\n }\n /** @internal */\n _isSynchronized() {\n const e = this._cache;\n return !(this._billboardMode !== e.billboardMode || this._billboardMode !== Ye.BILLBOARDMODE_NONE || e.pivotMatrixUpdated || this._infiniteDistance || this._position._isDirty || this._scaling._isDirty || this._rotationQuaternion && this._rotationQuaternion._isDirty || this._rotation._isDirty);\n }\n /** @internal */\n _initCache() {\n super._initCache();\n const e = this._cache;\n e.localMatrixUpdated = !1, e.billboardMode = -1, e.infiniteDistance = !1, e.useBillboardPosition = !1, e.useBillboardPath = !1;\n }\n /**\n * Returns the current mesh absolute position.\n * Returns a Vector3.\n */\n get absolutePosition() {\n return this.getAbsolutePosition();\n }\n /**\n * Returns the current mesh absolute scaling.\n * Returns a Vector3.\n */\n get absoluteScaling() {\n return this._syncAbsoluteScalingAndRotation(), this._absoluteScaling;\n }\n /**\n * Returns the current mesh absolute rotation.\n * Returns a Quaternion.\n */\n get absoluteRotationQuaternion() {\n return this._syncAbsoluteScalingAndRotation(), this._absoluteRotationQuaternion;\n }\n /**\n * Sets a new matrix to apply before all other transformation\n * @param matrix defines the transform matrix\n * @returns the current TransformNode\n */\n setPreTransformMatrix(e) {\n return this.setPivotMatrix(e, !1);\n }\n /**\n * Sets a new pivot matrix to the current node\n * @param matrix defines the new pivot matrix to use\n * @param postMultiplyPivotMatrix defines if the pivot matrix must be cancelled in the world matrix. When this parameter is set to true (default), the inverse of the pivot matrix is also applied at the end to cancel the transformation effect\n * @returns the current TransformNode\n */\n setPivotMatrix(e, t = !0) {\n return this._pivotMatrix.copyFrom(e), this._usePivotMatrix = !this._pivotMatrix.isIdentity(), this._cache.pivotMatrixUpdated = !0, this._postMultiplyPivotMatrix = t, this._postMultiplyPivotMatrix && (this._pivotMatrixInverse ? this._pivotMatrix.invertToRef(this._pivotMatrixInverse) : this._pivotMatrixInverse = O.Invert(this._pivotMatrix)), this;\n }\n /**\n * Returns the mesh pivot matrix.\n * Default : Identity.\n * @returns the matrix\n */\n getPivotMatrix() {\n return this._pivotMatrix;\n }\n /**\n * Instantiate (when possible) or clone that node with its hierarchy\n * @param newParent defines the new parent to use for the instance (or clone)\n * @param options defines options to configure how copy is done\n * @param options.doNotInstantiate defines if the model must be instantiated or just cloned\n * @param onNewNodeCreated defines an option callback to call when a clone or an instance is created\n * @returns an instance (or a clone) of the current node with its hierarchy\n */\n instantiateHierarchy(e = null, t, i) {\n const s = this.clone(\"Clone of \" + (this.name || this.id), e || this.parent, !0);\n s && i && i(this, s);\n for (const r of this.getChildTransformNodes(!0))\n r.instantiateHierarchy(s, t, i);\n return s;\n }\n /**\n * Prevents the World matrix to be computed any longer\n * @param newWorldMatrix defines an optional matrix to use as world matrix\n * @param decompose defines whether to decompose the given newWorldMatrix or directly assign\n * @returns the TransformNode.\n */\n freezeWorldMatrix(e = null, t = !1) {\n return e ? t ? (this._rotation.setAll(0), this._rotationQuaternion = this._rotationQuaternion || se.Identity(), e.decompose(this._scaling, this._rotationQuaternion, this._position), this.computeWorldMatrix(!0)) : (this._worldMatrix = e, this._absolutePosition.copyFromFloats(this._worldMatrix.m[12], this._worldMatrix.m[13], this._worldMatrix.m[14]), this._afterComputeWorldMatrix()) : (this._isWorldMatrixFrozen = !1, this.computeWorldMatrix(!0)), this._isDirty = !1, this._isWorldMatrixFrozen = !0, this;\n }\n /**\n * Allows back the World matrix computation.\n * @returns the TransformNode.\n */\n unfreezeWorldMatrix() {\n return this._isWorldMatrixFrozen = !1, this.computeWorldMatrix(!0), this;\n }\n /**\n * True if the World matrix has been frozen.\n */\n get isWorldMatrixFrozen() {\n return this._isWorldMatrixFrozen;\n }\n /**\n * Returns the mesh absolute position in the World.\n * @returns a Vector3.\n */\n getAbsolutePosition() {\n return this.computeWorldMatrix(), this._absolutePosition;\n }\n /**\n * Sets the mesh absolute position in the World from a Vector3 or an Array(3).\n * @param absolutePosition the absolute position to set\n * @returns the TransformNode.\n */\n setAbsolutePosition(e) {\n if (!e)\n return this;\n let t, i, s;\n if (e.x === void 0) {\n if (arguments.length < 3)\n return this;\n t = arguments[0], i = arguments[1], s = arguments[2];\n } else\n t = e.x, i = e.y, s = e.z;\n if (this.parent) {\n const r = w.Matrix[0];\n this.parent.getWorldMatrix().invertToRef(r), g.TransformCoordinatesFromFloatsToRef(t, i, s, r, this.position);\n } else\n this.position.x = t, this.position.y = i, this.position.z = s;\n return this._absolutePosition.copyFrom(e), this;\n }\n /**\n * Sets the mesh position in its local space.\n * @param vector3 the position to set in localspace\n * @returns the TransformNode.\n */\n setPositionWithLocalVector(e) {\n return this.computeWorldMatrix(), this.position = g.TransformNormal(e, this._localMatrix), this;\n }\n /**\n * Returns the mesh position in the local space from the current World matrix values.\n * @returns a new Vector3.\n */\n getPositionExpressedInLocalSpace() {\n this.computeWorldMatrix();\n const e = w.Matrix[0];\n return this._localMatrix.invertToRef(e), g.TransformNormal(this.position, e);\n }\n /**\n * Translates the mesh along the passed Vector3 in its local space.\n * @param vector3 the distance to translate in localspace\n * @returns the TransformNode.\n */\n locallyTranslate(e) {\n return this.computeWorldMatrix(!0), this.position = g.TransformCoordinates(e, this._localMatrix), this;\n }\n /**\n * Orients a mesh towards a target point. Mesh must be drawn facing user.\n * @param targetPoint the position (must be in same space as current mesh) to look at\n * @param yawCor optional yaw (y-axis) correction in radians\n * @param pitchCor optional pitch (x-axis) correction in radians\n * @param rollCor optional roll (z-axis) correction in radians\n * @param space the chosen space of the target\n * @returns the TransformNode.\n */\n lookAt(e, t = 0, i = 0, s = 0, r = 0) {\n const n = Ye._LookAtVectorCache, o = r === 0 ? this.position : this.getAbsolutePosition();\n if (e.subtractToRef(o, n), this.setDirection(n, t, i, s), r === 1 && this.parent)\n if (this.rotationQuaternion) {\n const l = w.Matrix[0];\n this.rotationQuaternion.toRotationMatrix(l);\n const h = w.Matrix[1];\n this.parent.getWorldMatrix().getRotationMatrixToRef(h), h.invert(), l.multiplyToRef(h, l), this.rotationQuaternion.fromRotationMatrix(l);\n } else {\n const l = w.Quaternion[0];\n se.FromEulerVectorToRef(this.rotation, l);\n const h = w.Matrix[0];\n l.toRotationMatrix(h);\n const c = w.Matrix[1];\n this.parent.getWorldMatrix().getRotationMatrixToRef(c), c.invert(), h.multiplyToRef(c, h), l.fromRotationMatrix(h), l.toEulerAnglesToRef(this.rotation);\n }\n return this;\n }\n /**\n * Returns a new Vector3 that is the localAxis, expressed in the mesh local space, rotated like the mesh.\n * This Vector3 is expressed in the World space.\n * @param localAxis axis to rotate\n * @returns a new Vector3 that is the localAxis, expressed in the mesh local space, rotated like the mesh.\n */\n getDirection(e) {\n const t = g.Zero();\n return this.getDirectionToRef(e, t), t;\n }\n /**\n * Sets the Vector3 \"result\" as the rotated Vector3 \"localAxis\" in the same rotation than the mesh.\n * localAxis is expressed in the mesh local space.\n * result is computed in the World space from the mesh World matrix.\n * @param localAxis axis to rotate\n * @param result the resulting transformnode\n * @returns this TransformNode.\n */\n getDirectionToRef(e, t) {\n return g.TransformNormalToRef(e, this.getWorldMatrix(), t), this;\n }\n /**\n * Sets this transform node rotation to the given local axis.\n * @param localAxis the axis in local space\n * @param yawCor optional yaw (y-axis) correction in radians\n * @param pitchCor optional pitch (x-axis) correction in radians\n * @param rollCor optional roll (z-axis) correction in radians\n * @returns this TransformNode\n */\n setDirection(e, t = 0, i = 0, s = 0) {\n const r = -Math.atan2(e.z, e.x) + Math.PI / 2, n = Math.sqrt(e.x * e.x + e.z * e.z), o = -Math.atan2(e.y, n);\n return this.rotationQuaternion ? se.RotationYawPitchRollToRef(r + t, o + i, s, this.rotationQuaternion) : (this.rotation.x = o + i, this.rotation.y = r + t, this.rotation.z = s), this;\n }\n /**\n * Sets a new pivot point to the current node\n * @param point defines the new pivot point to use\n * @param space defines if the point is in world or local space (local by default)\n * @returns the current TransformNode\n */\n setPivotPoint(e, t = 0) {\n this.getScene().getRenderId() == 0 && this.computeWorldMatrix(!0);\n const i = this.getWorldMatrix();\n if (t == 1) {\n const s = w.Matrix[0];\n i.invertToRef(s), e = g.TransformCoordinates(e, s);\n }\n return this.setPivotMatrix(O.Translation(-e.x, -e.y, -e.z), !0);\n }\n /**\n * Returns a new Vector3 set with the mesh pivot point coordinates in the local space.\n * @returns the pivot point\n */\n getPivotPoint() {\n const e = g.Zero();\n return this.getPivotPointToRef(e), e;\n }\n /**\n * Sets the passed Vector3 \"result\" with the coordinates of the mesh pivot point in the local space.\n * @param result the vector3 to store the result\n * @returns this TransformNode.\n */\n getPivotPointToRef(e) {\n return e.x = -this._pivotMatrix.m[12], e.y = -this._pivotMatrix.m[13], e.z = -this._pivotMatrix.m[14], this;\n }\n /**\n * Returns a new Vector3 set with the mesh pivot point World coordinates.\n * @returns a new Vector3 set with the mesh pivot point World coordinates.\n */\n getAbsolutePivotPoint() {\n const e = g.Zero();\n return this.getAbsolutePivotPointToRef(e), e;\n }\n /**\n * Sets the Vector3 \"result\" coordinates with the mesh pivot point World coordinates.\n * @param result vector3 to store the result\n * @returns this TransformNode.\n */\n getAbsolutePivotPointToRef(e) {\n return this.getPivotPointToRef(e), g.TransformCoordinatesToRef(e, this.getWorldMatrix(), e), this;\n }\n /**\n * Flag the transform node as dirty (Forcing it to update everything)\n * @param property if set to \"rotation\" the objects rotationQuaternion will be set to null\n * @returns this node\n */\n markAsDirty(e) {\n if (this._isDirty)\n return this;\n if (this._children)\n for (const t of this._children)\n t.markAsDirty(e);\n return super.markAsDirty(e);\n }\n /**\n * Defines the passed node as the parent of the current node.\n * The node will remain exactly where it is and its position / rotation will be updated accordingly.\n * Note that if the mesh has a pivot matrix / point defined it will be applied after the parent was updated.\n * In that case the node will not remain in the same space as it is, as the pivot will be applied.\n * To avoid this, you can set updatePivot to true and the pivot will be updated to identity\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/transforms/parent_pivot/parent\n * @param node the node ot set as the parent\n * @param preserveScalingSign if true, keep scaling sign of child. Otherwise, scaling sign might change.\n * @param updatePivot if true, update the pivot matrix to keep the node in the same space as before\n * @returns this TransformNode.\n */\n setParent(e, t = !1, i = !1) {\n if (!e && !this.parent)\n return this;\n const s = w.Quaternion[0], r = w.Vector3[0], n = w.Vector3[1], o = w.Matrix[1];\n O.IdentityToRef(o);\n const l = w.Matrix[0];\n this.computeWorldMatrix(!0);\n let h = this.rotationQuaternion;\n return h || (h = Ye._TmpRotation, se.RotationYawPitchRollToRef(this._rotation.y, this._rotation.x, this._rotation.z, h)), O.ComposeToRef(this.scaling, h, this.position, l), this.parent && l.multiplyToRef(this.parent.computeWorldMatrix(!0), l), e && (e.computeWorldMatrix(!0).invertToRef(o), l.multiplyToRef(o, l)), l.decompose(n, s, r, t ? this : void 0), this.rotationQuaternion ? this.rotationQuaternion.copyFrom(s) : s.toEulerAnglesToRef(this.rotation), this.scaling.copyFrom(n), this.position.copyFrom(r), this.parent = e, i && this.setPivotMatrix(O.Identity()), this;\n }\n /**\n * Adds the passed mesh as a child to the current mesh\n * @param mesh defines the child mesh\n * @param preserveScalingSign if true, keep scaling sign of child. Otherwise, scaling sign might change.\n * @returns the current mesh\n */\n addChild(e, t = !1) {\n return e.setParent(this, t), this;\n }\n /**\n * Removes the passed mesh from the current mesh children list\n * @param mesh defines the child mesh\n * @param preserveScalingSign if true, keep scaling sign of child. Otherwise, scaling sign might change.\n * @returns the current mesh\n */\n removeChild(e, t = !1) {\n return e.setParent(null, t), this;\n }\n /**\n * True if the scaling property of this object is non uniform eg. (1,2,1)\n */\n get nonUniformScaling() {\n return this._nonUniformScaling;\n }\n /**\n * @internal\n */\n _updateNonUniformScalingState(e) {\n return this._nonUniformScaling === e ? !1 : (this._nonUniformScaling = e, !0);\n }\n /**\n * Attach the current TransformNode to another TransformNode associated with a bone\n * @param bone Bone affecting the TransformNode\n * @param affectedTransformNode TransformNode associated with the bone\n * @returns this object\n */\n attachToBone(e, t) {\n return this._currentParentWhenAttachingToBone = this.parent, this._transformToBoneReferal = t, this.parent = e, e.getSkeleton().prepare(!0), e.getFinalMatrix().determinant() < 0 && (this.scalingDeterminant *= -1), this;\n }\n /**\n * Detach the transform node if its associated with a bone\n * @param resetToPreviousParent Indicates if the parent that was in effect when attachToBone was called should be set back or if we should set parent to null instead (defaults to the latter)\n * @returns this object\n */\n detachFromBone(e = !1) {\n return this.parent ? (this.parent.getWorldMatrix().determinant() < 0 && (this.scalingDeterminant *= -1), this._transformToBoneReferal = null, e ? this.parent = this._currentParentWhenAttachingToBone : this.parent = null, this) : (e && (this.parent = this._currentParentWhenAttachingToBone), this);\n }\n /**\n * Rotates the mesh around the axis vector for the passed angle (amount) expressed in radians, in the given space.\n * space (default LOCAL) can be either Space.LOCAL, either Space.WORLD.\n * Note that the property `rotationQuaternion` is then automatically updated and the property `rotation` is set to (0,0,0) and no longer used.\n * The passed axis is also normalized.\n * @param axis the axis to rotate around\n * @param amount the amount to rotate in radians\n * @param space Space to rotate in (Default: local)\n * @returns the TransformNode.\n */\n rotate(e, t, i) {\n e.normalize(), this.rotationQuaternion || (this.rotationQuaternion = this.rotation.toQuaternion(), this.rotation.setAll(0));\n let s;\n if (!i || i === 0)\n s = se.RotationAxisToRef(e, t, Ye._RotationAxisCache), this.rotationQuaternion.multiplyToRef(s, this.rotationQuaternion);\n else {\n if (this.parent) {\n const r = this.parent.getWorldMatrix(), n = w.Matrix[0];\n r.invertToRef(n), e = g.TransformNormal(e, n), r.determinant() < 0 && (t *= -1);\n }\n s = se.RotationAxisToRef(e, t, Ye._RotationAxisCache), s.multiplyToRef(this.rotationQuaternion, this.rotationQuaternion);\n }\n return this;\n }\n /**\n * Rotates the mesh around the axis vector for the passed angle (amount) expressed in radians, in world space.\n * Note that the property `rotationQuaternion` is then automatically updated and the property `rotation` is set to (0,0,0) and no longer used.\n * The passed axis is also normalized. .\n * Method is based on http://www.euclideanspace.com/maths/geometry/affine/aroundPoint/index.htm\n * @param point the point to rotate around\n * @param axis the axis to rotate around\n * @param amount the amount to rotate in radians\n * @returns the TransformNode\n */\n rotateAround(e, t, i) {\n t.normalize(), this.rotationQuaternion || (this.rotationQuaternion = se.RotationYawPitchRoll(this.rotation.y, this.rotation.x, this.rotation.z), this.rotation.setAll(0));\n const s = w.Vector3[0], r = w.Vector3[1], n = w.Vector3[2], o = w.Quaternion[0], l = w.Matrix[0], h = w.Matrix[1], c = w.Matrix[2], u = w.Matrix[3];\n return e.subtractToRef(this.position, s), O.TranslationToRef(s.x, s.y, s.z, l), O.TranslationToRef(-s.x, -s.y, -s.z, h), O.RotationAxisToRef(t, i, c), h.multiplyToRef(c, u), u.multiplyToRef(l, u), u.decompose(r, o, n), this.position.addInPlace(n), o.multiplyToRef(this.rotationQuaternion, this.rotationQuaternion), this;\n }\n /**\n * Translates the mesh along the axis vector for the passed distance in the given space.\n * space (default LOCAL) can be either Space.LOCAL, either Space.WORLD.\n * @param axis the axis to translate in\n * @param distance the distance to translate\n * @param space Space to rotate in (Default: local)\n * @returns the TransformNode.\n */\n translate(e, t, i) {\n const s = e.scale(t);\n if (!i || i === 0) {\n const r = this.getPositionExpressedInLocalSpace().add(s);\n this.setPositionWithLocalVector(r);\n } else\n this.setAbsolutePosition(this.getAbsolutePosition().add(s));\n return this;\n }\n /**\n * Adds a rotation step to the mesh current rotation.\n * x, y, z are Euler angles expressed in radians.\n * This methods updates the current mesh rotation, either mesh.rotation, either mesh.rotationQuaternion if it's set.\n * This means this rotation is made in the mesh local space only.\n * It's useful to set a custom rotation order different from the BJS standard one YXZ.\n * Example : this rotates the mesh first around its local X axis, then around its local Z axis, finally around its local Y axis.\n * ```javascript\n * mesh.addRotation(x1, 0, 0).addRotation(0, 0, z2).addRotation(0, 0, y3);\n * ```\n * Note that `addRotation()` accumulates the passed rotation values to the current ones and computes the .rotation or .rotationQuaternion updated values.\n * Under the hood, only quaternions are used. So it's a little faster is you use .rotationQuaternion because it doesn't need to translate them back to Euler angles.\n * @param x Rotation to add\n * @param y Rotation to add\n * @param z Rotation to add\n * @returns the TransformNode.\n */\n addRotation(e, t, i) {\n let s;\n this.rotationQuaternion ? s = this.rotationQuaternion : (s = w.Quaternion[1], se.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, s));\n const r = w.Quaternion[0];\n return se.RotationYawPitchRollToRef(t, e, i, r), s.multiplyInPlace(r), this.rotationQuaternion || s.toEulerAnglesToRef(this.rotation), this;\n }\n /**\n * @internal\n */\n _getEffectiveParent() {\n return this.parent;\n }\n /**\n * Returns whether the transform node world matrix computation needs the camera information to be computed.\n * This is the case when the node is a billboard or has an infinite distance for instance.\n * @returns true if the world matrix computation needs the camera information to be computed\n */\n isWorldMatrixCameraDependent() {\n return this._infiniteDistance && !this.parent || this._billboardMode !== Ye.BILLBOARDMODE_NONE && !this.preserveParentRotationForBillboard;\n }\n /**\n * Computes the world matrix of the node\n * @param force defines if the cache version should be invalidated forcing the world matrix to be created from scratch\n * @param camera defines the camera used if different from the scene active camera (This is used with modes like Billboard or infinite distance)\n * @returns the world matrix\n */\n computeWorldMatrix(e = !1, t = null) {\n if (this._isWorldMatrixFrozen && !this._isDirty)\n return this._worldMatrix;\n const i = this.getScene().getRenderId();\n if (!this._isDirty && !e && (this._currentRenderId === i || this.isSynchronized()))\n return this._currentRenderId = i, this._worldMatrix;\n t = t || this.getScene().activeCamera, this._updateCache();\n const s = this._cache;\n s.pivotMatrixUpdated = !1, s.billboardMode = this.billboardMode, s.infiniteDistance = this.infiniteDistance, s.parent = this._parentNode, this._currentRenderId = i, this._childUpdateId += 1, this._isDirty = !1, this._position._isDirty = !1, this._rotation._isDirty = !1, this._scaling._isDirty = !1;\n const r = this._getEffectiveParent(), n = Ye._TmpScaling;\n let o = this._position;\n if (this._infiniteDistance && !this.parent && t) {\n const h = t.getWorldMatrix(), c = new g(h.m[12], h.m[13], h.m[14]);\n o = Ye._TmpTranslation, o.copyFromFloats(this._position.x + c.x, this._position.y + c.y, this._position.z + c.z);\n }\n n.copyFromFloats(this._scaling.x * this.scalingDeterminant, this._scaling.y * this.scalingDeterminant, this._scaling.z * this.scalingDeterminant);\n let l;\n if (this._rotationQuaternion ? (this._rotationQuaternion._isDirty = !1, l = this._rotationQuaternion, this.reIntegrateRotationIntoRotationQuaternion && this.rotation.lengthSquared() && (this._rotationQuaternion.multiplyInPlace(se.RotationYawPitchRoll(this._rotation.y, this._rotation.x, this._rotation.z)), this._rotation.copyFromFloats(0, 0, 0))) : (l = Ye._TmpRotation, se.RotationYawPitchRollToRef(this._rotation.y, this._rotation.x, this._rotation.z, l)), this._usePivotMatrix) {\n const h = w.Matrix[1];\n O.ScalingToRef(n.x, n.y, n.z, h);\n const c = w.Matrix[0];\n l.toRotationMatrix(c), this._pivotMatrix.multiplyToRef(h, w.Matrix[4]), w.Matrix[4].multiplyToRef(c, this._localMatrix), this._postMultiplyPivotMatrix && this._localMatrix.multiplyToRef(this._pivotMatrixInverse, this._localMatrix), this._localMatrix.addTranslationFromFloats(o.x, o.y, o.z);\n } else\n O.ComposeToRef(n, l, o, this._localMatrix);\n if (r && r.getWorldMatrix) {\n if (e && r.computeWorldMatrix(e), s.useBillboardPath) {\n if (this._transformToBoneReferal) {\n const d = this.parent;\n d.getSkeleton().prepare(), d.getFinalMatrix().multiplyToRef(this._transformToBoneReferal.getWorldMatrix(), w.Matrix[7]);\n } else\n w.Matrix[7].copyFrom(r.getWorldMatrix());\n const h = w.Vector3[5], c = w.Vector3[6], u = w.Quaternion[0];\n w.Matrix[7].decompose(c, u, h), O.ScalingToRef(c.x, c.y, c.z, w.Matrix[7]), w.Matrix[7].setTranslation(h), Ye.BillboardUseParentOrientation && (this._position.applyRotationQuaternionToRef(u, h), this._localMatrix.setTranslation(h)), this._localMatrix.multiplyToRef(w.Matrix[7], this._worldMatrix);\n } else if (this._transformToBoneReferal) {\n const h = this.parent;\n h.getSkeleton().prepare(), this._localMatrix.multiplyToRef(h.getFinalMatrix(), w.Matrix[6]), w.Matrix[6].multiplyToRef(this._transformToBoneReferal.getWorldMatrix(), this._worldMatrix);\n } else\n this._localMatrix.multiplyToRef(r.getWorldMatrix(), this._worldMatrix);\n this._markSyncedWithParent();\n } else\n this._worldMatrix.copyFrom(this._localMatrix);\n if (s.useBillboardPath && t && this.billboardMode && !s.useBillboardPosition) {\n const h = w.Vector3[0];\n if (this._worldMatrix.getTranslationToRef(h), w.Matrix[1].copyFrom(t.getViewMatrix()), this._scene.useRightHandedSystem && w.Matrix[1].multiplyToRef(QO, w.Matrix[1]), w.Matrix[1].setTranslationFromFloats(0, 0, 0), w.Matrix[1].invertToRef(w.Matrix[0]), (this.billboardMode & Ye.BILLBOARDMODE_ALL) !== Ye.BILLBOARDMODE_ALL) {\n w.Matrix[0].decompose(void 0, w.Quaternion[0], void 0);\n const c = w.Vector3[1];\n w.Quaternion[0].toEulerAnglesToRef(c), (this.billboardMode & Ye.BILLBOARDMODE_X) !== Ye.BILLBOARDMODE_X && (c.x = 0), (this.billboardMode & Ye.BILLBOARDMODE_Y) !== Ye.BILLBOARDMODE_Y && (c.y = 0), (this.billboardMode & Ye.BILLBOARDMODE_Z) !== Ye.BILLBOARDMODE_Z && (c.z = 0), O.RotationYawPitchRollToRef(c.y, c.x, c.z, w.Matrix[0]);\n }\n this._worldMatrix.setTranslationFromFloats(0, 0, 0), this._worldMatrix.multiplyToRef(w.Matrix[0], this._worldMatrix), this._worldMatrix.setTranslation(w.Vector3[0]);\n } else if (s.useBillboardPath && t && s.useBillboardPosition) {\n const h = w.Vector3[0];\n this._worldMatrix.getTranslationToRef(h);\n const c = t.globalPosition;\n this._worldMatrix.invertToRef(w.Matrix[1]);\n const u = w.Vector3[1];\n g.TransformCoordinatesToRef(c, w.Matrix[1], u), u.normalize();\n const d = -Math.atan2(u.z, u.x) + Math.PI / 2, f = Math.sqrt(u.x * u.x + u.z * u.z), p = -Math.atan2(u.y, f);\n if (se.RotationYawPitchRollToRef(d, p, 0, w.Quaternion[0]), (this.billboardMode & Ye.BILLBOARDMODE_ALL) !== Ye.BILLBOARDMODE_ALL) {\n const _ = w.Vector3[1];\n w.Quaternion[0].toEulerAnglesToRef(_), (this.billboardMode & Ye.BILLBOARDMODE_X) !== Ye.BILLBOARDMODE_X && (_.x = 0), (this.billboardMode & Ye.BILLBOARDMODE_Y) !== Ye.BILLBOARDMODE_Y && (_.y = 0), (this.billboardMode & Ye.BILLBOARDMODE_Z) !== Ye.BILLBOARDMODE_Z && (_.z = 0), O.RotationYawPitchRollToRef(_.y, _.x, _.z, w.Matrix[0]);\n } else\n O.FromQuaternionToRef(w.Quaternion[0], w.Matrix[0]);\n this._worldMatrix.setTranslationFromFloats(0, 0, 0), this._worldMatrix.multiplyToRef(w.Matrix[0], this._worldMatrix), this._worldMatrix.setTranslation(w.Vector3[0]);\n }\n return this.ignoreNonUniformScaling ? this._updateNonUniformScalingState(!1) : this._scaling.isNonUniformWithinEpsilon(1e-6) ? this._updateNonUniformScalingState(!0) : r && r._nonUniformScaling ? this._updateNonUniformScalingState(r._nonUniformScaling) : this._updateNonUniformScalingState(!1), this._afterComputeWorldMatrix(), this._absolutePosition.copyFromFloats(this._worldMatrix.m[12], this._worldMatrix.m[13], this._worldMatrix.m[14]), this._isAbsoluteSynced = !1, this.onAfterWorldMatrixUpdateObservable.notifyObservers(this), this._poseMatrix || (this._poseMatrix = O.Invert(this._worldMatrix)), this._worldMatrixDeterminantIsDirty = !0, this._worldMatrix;\n }\n /**\n * Resets this nodeTransform's local matrix to Matrix.Identity().\n * @param independentOfChildren indicates if all child nodeTransform's world-space transform should be preserved.\n */\n resetLocalMatrix(e = !0) {\n if (this.computeWorldMatrix(), e) {\n const t = this.getChildren();\n for (let i = 0; i < t.length; ++i) {\n const s = t[i];\n if (s) {\n s.computeWorldMatrix();\n const r = w.Matrix[0];\n s._localMatrix.multiplyToRef(this._localMatrix, r);\n const n = w.Quaternion[0];\n r.decompose(s.scaling, n, s.position), s.rotationQuaternion ? s.rotationQuaternion.copyFrom(n) : n.toEulerAnglesToRef(s.rotation);\n }\n }\n }\n this.scaling.copyFromFloats(1, 1, 1), this.position.copyFromFloats(0, 0, 0), this.rotation.copyFromFloats(0, 0, 0), this.rotationQuaternion && (this.rotationQuaternion = se.Identity()), this._worldMatrix = O.Identity();\n }\n _afterComputeWorldMatrix() {\n }\n /**\n * If you'd like to be called back after the mesh position, rotation or scaling has been updated.\n * @param func callback function to add\n *\n * @returns the TransformNode.\n */\n registerAfterWorldMatrixUpdate(e) {\n return this.onAfterWorldMatrixUpdateObservable.add(e), this;\n }\n /**\n * Removes a registered callback function.\n * @param func callback function to remove\n * @returns the TransformNode.\n */\n unregisterAfterWorldMatrixUpdate(e) {\n return this.onAfterWorldMatrixUpdateObservable.removeCallback(e), this;\n }\n /**\n * Gets the position of the current mesh in camera space\n * @param camera defines the camera to use\n * @returns a position\n */\n getPositionInCameraSpace(e = null) {\n return e || (e = this.getScene().activeCamera), g.TransformCoordinates(this.getAbsolutePosition(), e.getViewMatrix());\n }\n /**\n * Returns the distance from the mesh to the active camera\n * @param camera defines the camera to use\n * @returns the distance\n */\n getDistanceToCamera(e = null) {\n return e || (e = this.getScene().activeCamera), this.getAbsolutePosition().subtract(e.globalPosition).length();\n }\n /**\n * Clone the current transform node\n * @param name Name of the new clone\n * @param newParent New parent for the clone\n * @param doNotCloneChildren Do not clone children hierarchy\n * @returns the new transform node\n */\n clone(e, t, i) {\n const s = Ae.Clone(() => new Ye(e, this.getScene()), this);\n if (s.name = e, s.id = e, t && (s.parent = t), !i) {\n const r = this.getDescendants(!0);\n for (let n = 0; n < r.length; n++) {\n const o = r[n];\n o.clone && o.clone(e + \".\" + o.name, s);\n }\n }\n return s;\n }\n /**\n * Serializes the objects information.\n * @param currentSerializationObject defines the object to serialize in\n * @returns the serialized object\n */\n serialize(e) {\n const t = Ae.Serialize(this, e);\n return t.type = this.getClassName(), t.uniqueId = this.uniqueId, this.parent && this.parent._serializeAsParent(t), t.localMatrix = this.getPivotMatrix().asArray(), t.isEnabled = this.isEnabled(), Ae.AppendSerializedAnimations(this, t), t.ranges = this.serializeAnimationRanges(), t;\n }\n // Statics\n /**\n * Returns a new TransformNode object parsed from the source provided.\n * @param parsedTransformNode is the source.\n * @param scene the scene the object belongs to\n * @param rootUrl is a string, it's the root URL to prefix the `delayLoadingFile` property with\n * @returns a new TransformNode object parsed from the source provided.\n */\n static Parse(e, t, i) {\n const s = Ae.Parse(() => new Ye(e.name, t), e, t, i);\n if (e.localMatrix ? s.setPreTransformMatrix(O.FromArray(e.localMatrix)) : e.pivotMatrix && s.setPivotMatrix(O.FromArray(e.pivotMatrix)), s.setEnabled(e.isEnabled), s._waitingParsedUniqueId = e.uniqueId, e.parentId !== void 0 && (s._waitingParentId = e.parentId), e.parentInstanceIndex !== void 0 && (s._waitingParentInstanceIndex = e.parentInstanceIndex), e.animations) {\n for (let r = 0; r < e.animations.length; r++) {\n const n = e.animations[r], o = Oi(\"BABYLON.Animation\");\n o && s.animations.push(o.Parse(n));\n }\n Lt.ParseAnimationRanges(s, e, t);\n }\n return e.autoAnimate && t.beginAnimation(s, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1), s;\n }\n /**\n * Get all child-transformNodes of this node\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\n * @returns an array of TransformNode\n */\n getChildTransformNodes(e, t) {\n const i = [];\n return this._getDescendants(i, e, (s) => (!t || t(s)) && s instanceof Ye), i;\n }\n /**\n * Releases resources associated with this transform node.\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\n */\n dispose(e, t = !1) {\n if (this.getScene().stopAnimation(this), this.getScene().removeTransformNode(this), this._parentContainer) {\n const i = this._parentContainer.transformNodes.indexOf(this);\n i > -1 && this._parentContainer.transformNodes.splice(i, 1), this._parentContainer = null;\n }\n if (this.onAfterWorldMatrixUpdateObservable.clear(), e) {\n const i = this.getChildTransformNodes(!0);\n for (const s of i)\n s.parent = null, s.computeWorldMatrix(!0);\n }\n super.dispose(e, t);\n }\n /**\n * Uniformly scales the mesh to fit inside of a unit cube (1 X 1 X 1 units)\n * @param includeDescendants Use the hierarchy's bounding box instead of the mesh's bounding box. Default is false\n * @param ignoreRotation ignore rotation when computing the scale (ie. object will be axis aligned). Default is false\n * @param predicate predicate that is passed in to getHierarchyBoundingVectors when selecting which object should be included when scaling\n * @returns the current mesh\n */\n normalizeToUnitCube(e = !0, t = !1, i) {\n let s = null, r = null;\n t && (this.rotationQuaternion ? (r = this.rotationQuaternion.clone(), this.rotationQuaternion.copyFromFloats(0, 0, 0, 1)) : this.rotation && (s = this.rotation.clone(), this.rotation.copyFromFloats(0, 0, 0)));\n const n = this.getHierarchyBoundingVectors(e, i), o = n.max.subtract(n.min), l = Math.max(o.x, o.y, o.z);\n if (l === 0)\n return this;\n const h = 1 / l;\n return this.scaling.scaleInPlace(h), t && (this.rotationQuaternion && r ? this.rotationQuaternion.copyFrom(r) : this.rotation && s && this.rotation.copyFrom(s)), this;\n }\n _syncAbsoluteScalingAndRotation() {\n this._isAbsoluteSynced || (this._worldMatrix.decompose(this._absoluteScaling, this._absoluteRotationQuaternion), this._isAbsoluteSynced = !0);\n }\n}\nYe.BILLBOARDMODE_NONE = 0;\nYe.BILLBOARDMODE_X = 1;\nYe.BILLBOARDMODE_Y = 2;\nYe.BILLBOARDMODE_Z = 4;\nYe.BILLBOARDMODE_ALL = 7;\nYe.BILLBOARDMODE_USE_POSITION = 128;\nYe.BillboardUseParentOrientation = !1;\nYe._TmpRotation = se.Zero();\nYe._TmpScaling = g.Zero();\nYe._TmpTranslation = g.Zero();\nYe._LookAtVectorCache = new g(0, 0, 0);\nYe._RotationAxisCache = new se();\ny([\n Zs(\"position\")\n], Ye.prototype, \"_position\", void 0);\ny([\n Zs(\"rotation\")\n], Ye.prototype, \"_rotation\", void 0);\ny([\n dM(\"rotationQuaternion\")\n], Ye.prototype, \"_rotationQuaternion\", void 0);\ny([\n Zs(\"scaling\")\n], Ye.prototype, \"_scaling\", void 0);\ny([\n I(\"billboardMode\")\n], Ye.prototype, \"_billboardMode\", void 0);\ny([\n I()\n], Ye.prototype, \"scalingDeterminant\", void 0);\ny([\n I(\"infiniteDistance\")\n], Ye.prototype, \"_infiniteDistance\", void 0);\ny([\n I()\n], Ye.prototype, \"ignoreNonUniformScaling\", void 0);\ny([\n I()\n], Ye.prototype, \"reIntegrateRotationIntoRotationQuaternion\", void 0);\nclass ZO {\n constructor() {\n this._checkCollisions = !1, this._collisionMask = -1, this._collisionGroup = -1, this._surroundingMeshes = null, this._collider = null, this._oldPositionForCollisions = new g(0, 0, 0), this._diffPositionForCollisions = new g(0, 0, 0), this._collisionResponse = !0;\n }\n}\nfunction JO(a, e, t) {\n let i = null;\n switch (e) {\n case R.PositionKind:\n i = (s) => s.getPositions();\n break;\n case R.NormalKind:\n i = (s) => s.getNormals();\n break;\n case R.TangentKind:\n i = (s) => s.getTangents();\n break;\n case R.UVKind:\n i = (s) => s.getUVs();\n break;\n default:\n return;\n }\n for (let s = 0; s < a.length; s++) {\n let r = a[s];\n for (let n = 0; n < t.numTargets; n++) {\n const o = t.getTarget(n), l = o.influence;\n if (l !== 0) {\n const h = i(o);\n h && (r += (h[s] - a[s]) * l);\n }\n }\n a[s] = r;\n }\n}\nfunction ew(a, e, t, i, s, r, n) {\n const o = w.Vector3[0], l = w.Matrix[0], h = w.Matrix[1], c = e === R.NormalKind ? g.TransformNormalFromFloatsToRef : g.TransformCoordinatesFromFloatsToRef;\n for (let u = 0, d = 0; u < a.length; u += 3, d += 4) {\n l.reset();\n let f, p;\n for (f = 0; f < 4; f++)\n p = s[d + f], p > 0 && (O.FromFloat32ArrayToRefScaled(t, Math.floor(i[d + f] * 16), p, h), l.addToSelf(h));\n if (r && n)\n for (f = 0; f < 4; f++)\n p = n[d + f], p > 0 && (O.FromFloat32ArrayToRefScaled(t, Math.floor(r[d + f] * 16), p, h), l.addToSelf(h));\n c(a[u], a[u + 1], a[u + 2], l, o), o.toArray(a, u);\n }\n}\nclass tw {\n constructor() {\n this.facetNb = 0, this.partitioningSubdivisions = 10, this.partitioningBBoxRatio = 1.01, this.facetDataEnabled = !1, this.facetParameters = {}, this.bbSize = g.Zero(), this.subDiv = {\n // actual number of subdivisions per axis for ComputeNormals()\n max: 1,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n X: 1,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n Y: 1,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n Z: 1\n }, this.facetDepthSort = !1, this.facetDepthSortEnabled = !1;\n }\n}\nclass iw {\n constructor() {\n this._hasVertexAlpha = !1, this._useVertexColors = !0, this._numBoneInfluencers = 4, this._applyFog = !0, this._receiveShadows = !1, this._facetData = new tw(), this._visibility = 1, this._skeleton = null, this._layerMask = 268435455, this._computeBonesUsingShaders = !0, this._isActive = !1, this._onlyForInstances = !1, this._isActiveIntermediate = !1, this._onlyForInstancesIntermediate = !1, this._actAsRegularMesh = !1, this._currentLOD = null, this._currentLODIsUpToDate = !1, this._collisionRetryCount = 3, this._morphTargetManager = null, this._renderingGroupId = 0, this._bakedVertexAnimationManager = null, this._material = null, this._positions = null, this._pointerOverDisableMeshTesting = !1, this._meshCollisionData = new ZO(), this._enableDistantPicking = !1, this._rawBoundingInfo = null, this._sideOrientationHint = !1;\n }\n}\nclass Pt extends Ye {\n /**\n * No billboard\n */\n static get BILLBOARDMODE_NONE() {\n return Ye.BILLBOARDMODE_NONE;\n }\n /** Billboard on X axis */\n static get BILLBOARDMODE_X() {\n return Ye.BILLBOARDMODE_X;\n }\n /** Billboard on Y axis */\n static get BILLBOARDMODE_Y() {\n return Ye.BILLBOARDMODE_Y;\n }\n /** Billboard on Z axis */\n static get BILLBOARDMODE_Z() {\n return Ye.BILLBOARDMODE_Z;\n }\n /** Billboard on all axes */\n static get BILLBOARDMODE_ALL() {\n return Ye.BILLBOARDMODE_ALL;\n }\n /** Billboard on using position instead of orientation */\n static get BILLBOARDMODE_USE_POSITION() {\n return Ye.BILLBOARDMODE_USE_POSITION;\n }\n /**\n * Gets the number of facets in the mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData#what-is-a-mesh-facet\n */\n get facetNb() {\n return this._internalAbstractMeshDataInfo._facetData.facetNb;\n }\n /**\n * Gets or set the number (integer) of subdivisions per axis in the partitioning space\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData#tweaking-the-partitioning\n */\n get partitioningSubdivisions() {\n return this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions;\n }\n set partitioningSubdivisions(e) {\n this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions = e;\n }\n /**\n * The ratio (float) to apply to the bounding box size to set to the partitioning space.\n * Ex : 1.01 (default) the partitioning space is 1% bigger than the bounding box\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData#tweaking-the-partitioning\n */\n get partitioningBBoxRatio() {\n return this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio;\n }\n set partitioningBBoxRatio(e) {\n this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio = e;\n }\n /**\n * Gets or sets a boolean indicating that the facets must be depth sorted on next call to `updateFacetData()`.\n * Works only for updatable meshes.\n * Doesn't work with multi-materials\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData#facet-depth-sort\n */\n get mustDepthSortFacets() {\n return this._internalAbstractMeshDataInfo._facetData.facetDepthSort;\n }\n set mustDepthSortFacets(e) {\n this._internalAbstractMeshDataInfo._facetData.facetDepthSort = e;\n }\n /**\n * The location (Vector3) where the facet depth sort must be computed from.\n * By default, the active camera position.\n * Used only when facet depth sort is enabled\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData#facet-depth-sort\n */\n get facetDepthSortFrom() {\n return this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom;\n }\n set facetDepthSortFrom(e) {\n this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom = e;\n }\n /** number of collision detection tries. Change this value if not all collisions are detected and handled properly */\n get collisionRetryCount() {\n return this._internalAbstractMeshDataInfo._collisionRetryCount;\n }\n set collisionRetryCount(e) {\n this._internalAbstractMeshDataInfo._collisionRetryCount = e;\n }\n /**\n * gets a boolean indicating if facetData is enabled\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData#what-is-a-mesh-facet\n */\n get isFacetDataEnabled() {\n return this._internalAbstractMeshDataInfo._facetData.facetDataEnabled;\n }\n /**\n * Gets or sets the morph target manager\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/morphTargets\n */\n get morphTargetManager() {\n return this._internalAbstractMeshDataInfo._morphTargetManager;\n }\n set morphTargetManager(e) {\n this._internalAbstractMeshDataInfo._morphTargetManager !== e && (this._internalAbstractMeshDataInfo._morphTargetManager = e, this._syncGeometryWithMorphTargetManager());\n }\n /**\n * Gets or sets the baked vertex animation manager\n * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/baked_texture_animations\n */\n get bakedVertexAnimationManager() {\n return this._internalAbstractMeshDataInfo._bakedVertexAnimationManager;\n }\n set bakedVertexAnimationManager(e) {\n this._internalAbstractMeshDataInfo._bakedVertexAnimationManager !== e && (this._internalAbstractMeshDataInfo._bakedVertexAnimationManager = e, this._markSubMeshesAsAttributesDirty());\n }\n /** @internal */\n _syncGeometryWithMorphTargetManager() {\n }\n /**\n * @internal\n */\n _updateNonUniformScalingState(e) {\n return super._updateNonUniformScalingState(e) ? (this._markSubMeshesAsMiscDirty(), !0) : !1;\n }\n /** @internal */\n get rawBoundingInfo() {\n return this._internalAbstractMeshDataInfo._rawBoundingInfo;\n }\n set rawBoundingInfo(e) {\n this._internalAbstractMeshDataInfo._rawBoundingInfo = e;\n }\n /** Set a function to call when this mesh collides with another one */\n set onCollide(e) {\n this._internalAbstractMeshDataInfo._meshCollisionData._onCollideObserver && this.onCollideObservable.remove(this._internalAbstractMeshDataInfo._meshCollisionData._onCollideObserver), this._internalAbstractMeshDataInfo._meshCollisionData._onCollideObserver = this.onCollideObservable.add(e);\n }\n /** Set a function to call when the collision's position changes */\n set onCollisionPositionChange(e) {\n this._internalAbstractMeshDataInfo._meshCollisionData._onCollisionPositionChangeObserver && this.onCollisionPositionChangeObservable.remove(this._internalAbstractMeshDataInfo._meshCollisionData._onCollisionPositionChangeObserver), this._internalAbstractMeshDataInfo._meshCollisionData._onCollisionPositionChangeObserver = this.onCollisionPositionChangeObservable.add(e);\n }\n /**\n * Gets or sets mesh visibility between 0 and 1 (default is 1)\n */\n get visibility() {\n return this._internalAbstractMeshDataInfo._visibility;\n }\n /**\n * Gets or sets mesh visibility between 0 and 1 (default is 1)\n */\n set visibility(e) {\n if (this._internalAbstractMeshDataInfo._visibility === e)\n return;\n const t = this._internalAbstractMeshDataInfo._visibility;\n this._internalAbstractMeshDataInfo._visibility = e, (t === 1 && e !== 1 || t !== 1 && e === 1) && this._markSubMeshesAsDirty((i) => {\n i.markAsMiscDirty(), i.markAsPrePassDirty();\n });\n }\n /**\n * Gets or sets the property which disables the test that is checking that the mesh under the pointer is the same than the previous time we tested for it (default: false).\n * Set this property to true if you want thin instances picking to be reported accurately when moving over the mesh.\n * Note that setting this property to true will incur some performance penalties when dealing with pointer events for this mesh so use it sparingly.\n */\n get pointerOverDisableMeshTesting() {\n return this._internalAbstractMeshDataInfo._pointerOverDisableMeshTesting;\n }\n set pointerOverDisableMeshTesting(e) {\n this._internalAbstractMeshDataInfo._pointerOverDisableMeshTesting = e;\n }\n /**\n * Specifies the rendering group id for this mesh (0 by default)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/advanced/transparent_rendering#rendering-groups\n */\n get renderingGroupId() {\n return this._internalAbstractMeshDataInfo._renderingGroupId;\n }\n set renderingGroupId(e) {\n this._internalAbstractMeshDataInfo._renderingGroupId = e;\n }\n /** Gets or sets current material */\n get material() {\n return this._internalAbstractMeshDataInfo._material;\n }\n set material(e) {\n this._setMaterial(e);\n }\n /** @internal */\n _setMaterial(e) {\n this._internalAbstractMeshDataInfo._material !== e && (this._internalAbstractMeshDataInfo._material && this._internalAbstractMeshDataInfo._material.meshMap && (this._internalAbstractMeshDataInfo._material.meshMap[this.uniqueId] = void 0), this._internalAbstractMeshDataInfo._material = e, e && e.meshMap && (e.meshMap[this.uniqueId] = this), this.onMaterialChangedObservable.hasObservers() && this.onMaterialChangedObservable.notifyObservers(this), this.subMeshes && (this.resetDrawCache(), this._unBindEffect()));\n }\n /**\n * Gets the material used to render the mesh in a specific render pass\n * @param renderPassId render pass id\n * @returns material used for the render pass. If no specific material is used for this render pass, undefined is returned (meaning mesh.material is used for this pass)\n */\n getMaterialForRenderPass(e) {\n var t;\n return (t = this._internalAbstractMeshDataInfo._materialForRenderPass) == null ? void 0 : t[e];\n }\n /**\n * Sets the material to be used to render the mesh in a specific render pass\n * @param renderPassId render pass id\n * @param material material to use for this render pass. If undefined is passed, no specific material will be used for this render pass but the regular material will be used instead (mesh.material)\n */\n setMaterialForRenderPass(e, t) {\n this.resetDrawCache(e), this._internalAbstractMeshDataInfo._materialForRenderPass || (this._internalAbstractMeshDataInfo._materialForRenderPass = []), this._internalAbstractMeshDataInfo._materialForRenderPass[e] = t;\n }\n /**\n * Gets or sets a boolean indicating that this mesh can receive realtime shadows\n * @see https://doc.babylonjs.com/features/featuresDeepDive/lights/shadows\n */\n get receiveShadows() {\n return this._internalAbstractMeshDataInfo._receiveShadows;\n }\n set receiveShadows(e) {\n this._internalAbstractMeshDataInfo._receiveShadows !== e && (this._internalAbstractMeshDataInfo._receiveShadows = e, this._markSubMeshesAsLightDirty());\n }\n /**\n * Gets or sets a boolean indicating that this mesh needs to use vertex alpha data to render.\n * This property is misnamed and should be `useVertexAlpha`. Note that the mesh will be rendered\n * with alpha blending when this flag is set even if vertex alpha data is missing from the geometry.\n */\n get hasVertexAlpha() {\n return this._internalAbstractMeshDataInfo._hasVertexAlpha;\n }\n set hasVertexAlpha(e) {\n this._internalAbstractMeshDataInfo._hasVertexAlpha !== e && (this._internalAbstractMeshDataInfo._hasVertexAlpha = e, this._markSubMeshesAsAttributesDirty(), this._markSubMeshesAsMiscDirty());\n }\n /** Gets or sets a boolean indicating that this mesh needs to use vertex color data to render (if this kind of vertex data is available in the geometry) */\n get useVertexColors() {\n return this._internalAbstractMeshDataInfo._useVertexColors;\n }\n set useVertexColors(e) {\n this._internalAbstractMeshDataInfo._useVertexColors !== e && (this._internalAbstractMeshDataInfo._useVertexColors = e, this._markSubMeshesAsAttributesDirty());\n }\n /**\n * Gets or sets a boolean indicating that bone animations must be computed by the GPU (true by default)\n */\n get computeBonesUsingShaders() {\n return this._internalAbstractMeshDataInfo._computeBonesUsingShaders;\n }\n set computeBonesUsingShaders(e) {\n this._internalAbstractMeshDataInfo._computeBonesUsingShaders !== e && (this._internalAbstractMeshDataInfo._computeBonesUsingShaders = e, this._markSubMeshesAsAttributesDirty());\n }\n /** Gets or sets the number of allowed bone influences per vertex (4 by default) */\n get numBoneInfluencers() {\n return this._internalAbstractMeshDataInfo._numBoneInfluencers;\n }\n set numBoneInfluencers(e) {\n this._internalAbstractMeshDataInfo._numBoneInfluencers !== e && (this._internalAbstractMeshDataInfo._numBoneInfluencers = e, this._markSubMeshesAsAttributesDirty());\n }\n /** Gets or sets a boolean indicating that this mesh will allow fog to be rendered on it (true by default) */\n get applyFog() {\n return this._internalAbstractMeshDataInfo._applyFog;\n }\n set applyFog(e) {\n this._internalAbstractMeshDataInfo._applyFog !== e && (this._internalAbstractMeshDataInfo._applyFog = e, this._markSubMeshesAsMiscDirty());\n }\n /** When enabled, decompose picking matrices for better precision with large values for mesh position and scling */\n get enableDistantPicking() {\n return this._internalAbstractMeshDataInfo._enableDistantPicking;\n }\n set enableDistantPicking(e) {\n this._internalAbstractMeshDataInfo._enableDistantPicking = e;\n }\n /**\n * Gets or sets the current layer mask (default is 0x0FFFFFFF)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/layerMasksAndMultiCam\n */\n get layerMask() {\n return this._internalAbstractMeshDataInfo._layerMask;\n }\n set layerMask(e) {\n e !== this._internalAbstractMeshDataInfo._layerMask && (this._internalAbstractMeshDataInfo._layerMask = e, this._resyncLightSources());\n }\n /**\n * Gets or sets a collision mask used to mask collisions (default is -1).\n * A collision between A and B will happen if A.collisionGroup & b.collisionMask !== 0\n */\n get collisionMask() {\n return this._internalAbstractMeshDataInfo._meshCollisionData._collisionMask;\n }\n set collisionMask(e) {\n this._internalAbstractMeshDataInfo._meshCollisionData._collisionMask = isNaN(e) ? -1 : e;\n }\n /**\n * Gets or sets a collision response flag (default is true).\n * when collisionResponse is false, events are still triggered but colliding entity has no response\n * This helps creating trigger volume when user wants collision feedback events but not position/velocity\n * to respond to the collision.\n */\n get collisionResponse() {\n return this._internalAbstractMeshDataInfo._meshCollisionData._collisionResponse;\n }\n set collisionResponse(e) {\n this._internalAbstractMeshDataInfo._meshCollisionData._collisionResponse = e;\n }\n /**\n * Gets or sets the current collision group mask (-1 by default).\n * A collision between A and B will happen if A.collisionGroup & b.collisionMask !== 0\n */\n get collisionGroup() {\n return this._internalAbstractMeshDataInfo._meshCollisionData._collisionGroup;\n }\n set collisionGroup(e) {\n this._internalAbstractMeshDataInfo._meshCollisionData._collisionGroup = isNaN(e) ? -1 : e;\n }\n /**\n * Gets or sets current surrounding meshes (null by default).\n *\n * By default collision detection is tested against every mesh in the scene.\n * It is possible to set surroundingMeshes to a defined list of meshes and then only these specified\n * meshes will be tested for the collision.\n *\n * Note: if set to an empty array no collision will happen when this mesh is moved.\n */\n get surroundingMeshes() {\n return this._internalAbstractMeshDataInfo._meshCollisionData._surroundingMeshes;\n }\n set surroundingMeshes(e) {\n this._internalAbstractMeshDataInfo._meshCollisionData._surroundingMeshes = e;\n }\n /** Gets the list of lights affecting that mesh */\n get lightSources() {\n return this._lightSources;\n }\n /**\n * Gets or sets a skeleton to apply skinning transformations\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/bonesSkeletons\n */\n set skeleton(e) {\n const t = this._internalAbstractMeshDataInfo._skeleton;\n t && t.needInitialSkinMatrix && t._unregisterMeshWithPoseMatrix(this), e && e.needInitialSkinMatrix && e._registerMeshWithPoseMatrix(this), this._internalAbstractMeshDataInfo._skeleton = e, this._internalAbstractMeshDataInfo._skeleton || (this._bonesTransformMatrices = null), this._markSubMeshesAsAttributesDirty();\n }\n get skeleton() {\n return this._internalAbstractMeshDataInfo._skeleton;\n }\n // Constructor\n /**\n * Creates a new AbstractMesh\n * @param name defines the name of the mesh\n * @param scene defines the hosting scene\n */\n constructor(e, t = null) {\n switch (super(e, t, !1), this._internalAbstractMeshDataInfo = new iw(), this._waitingMaterialId = null, this.cullingStrategy = Pt.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY, this.onCollideObservable = new G(), this.onCollisionPositionChangeObservable = new G(), this.onMaterialChangedObservable = new G(), this.definedFacingForward = !0, this._occlusionQuery = null, this._renderingGroup = null, this.alphaIndex = Number.MAX_VALUE, this.isVisible = !0, this.isPickable = !0, this.isNearPickable = !1, this.isNearGrabbable = !1, this.showSubMeshesBoundingBox = !1, this.isBlocker = !1, this.enablePointerMoveEvents = !1, this.outlineColor = re.Red(), this.outlineWidth = 0.02, this.overlayColor = re.Red(), this.overlayAlpha = 0.5, this.useOctreeForRenderingSelection = !0, this.useOctreeForPicking = !0, this.useOctreeForCollisions = !0, this.alwaysSelectAsActiveMesh = !1, this.doNotSyncBoundingInfo = !1, this.actionManager = null, this.ellipsoid = new g(0.5, 1, 0.5), this.ellipsoidOffset = new g(0, 0, 0), this.edgesWidth = 1, this.edgesColor = new Ce(1, 0, 0, 1), this._edgesRenderer = null, this._masterMesh = null, this._boundingInfo = null, this._boundingInfoIsDirty = !0, this._renderId = 0, this._intersectionsInProgress = new Array(), this._unIndexed = !1, this._lightSources = new Array(), this._waitingData = {\n lods: null,\n actions: null,\n freezeWorldMatrix: null\n }, this._bonesTransformMatrices = null, this._transformMatrixTexture = null, this.onRebuildObservable = new G(), this._onCollisionPositionChange = (i, s, r = null) => {\n s.subtractToRef(this._internalAbstractMeshDataInfo._meshCollisionData._oldPositionForCollisions, this._internalAbstractMeshDataInfo._meshCollisionData._diffPositionForCollisions), this._internalAbstractMeshDataInfo._meshCollisionData._diffPositionForCollisions.length() > ee.CollisionsEpsilon && this.position.addInPlace(this._internalAbstractMeshDataInfo._meshCollisionData._diffPositionForCollisions), r && this.onCollideObservable.notifyObservers(r), this.onCollisionPositionChangeObservable.notifyObservers(this.position);\n }, t = this.getScene(), t.addMesh(this), this._resyncLightSources(), this._uniformBuffer = new Ve(this.getScene().getEngine(), void 0, void 0, e, !this.getScene().getEngine().isWebGPU), this._buildUniformLayout(), t.performancePriority) {\n case 2:\n this.doNotSyncBoundingInfo = !0;\n case 1:\n this.alwaysSelectAsActiveMesh = !0, this.isPickable = !1;\n break;\n }\n }\n _buildUniformLayout() {\n this._uniformBuffer.addUniform(\"world\", 16), this._uniformBuffer.addUniform(\"visibility\", 1), this._uniformBuffer.create();\n }\n /**\n * Transfer the mesh values to its UBO.\n * @param world The world matrix associated with the mesh\n */\n transferToEffect(e) {\n const t = this._uniformBuffer;\n t.updateMatrix(\"world\", e), t.updateFloat(\"visibility\", this._internalAbstractMeshDataInfo._visibility), t.update();\n }\n /**\n * Gets the mesh uniform buffer.\n * @returns the uniform buffer of the mesh.\n */\n getMeshUniformBuffer() {\n return this._uniformBuffer;\n }\n /**\n * Returns the string \"AbstractMesh\"\n * @returns \"AbstractMesh\"\n */\n getClassName() {\n return \"AbstractMesh\";\n }\n /**\n * Gets a string representation of the current mesh\n * @param fullDetails defines a boolean indicating if full details must be included\n * @returns a string representation of the current mesh\n */\n toString(e) {\n let t = \"Name: \" + this.name + \", isInstance: \" + (this.getClassName() !== \"InstancedMesh\" ? \"YES\" : \"NO\");\n t += \", # of submeshes: \" + (this.subMeshes ? this.subMeshes.length : 0);\n const i = this._internalAbstractMeshDataInfo._skeleton;\n return i && (t += \", skeleton: \" + i.name), e && (t += \", billboard mode: \" + [\"NONE\", \"X\", \"Y\", null, \"Z\", null, null, \"ALL\"][this.billboardMode], t += \", freeze wrld mat: \" + (this._isWorldMatrixFrozen || this._waitingData.freezeWorldMatrix ? \"YES\" : \"NO\")), t;\n }\n /**\n * @internal\n */\n _getEffectiveParent() {\n return this._masterMesh && this.billboardMode !== Ye.BILLBOARDMODE_NONE ? this._masterMesh : super._getEffectiveParent();\n }\n /**\n * @internal\n */\n _getActionManagerForTrigger(e, t = !0) {\n if (this.actionManager && (t || this.actionManager.isRecursive))\n if (e) {\n if (this.actionManager.hasSpecificTrigger(e))\n return this.actionManager;\n } else\n return this.actionManager;\n return this.parent ? this.parent._getActionManagerForTrigger(e, !1) : null;\n }\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _rebuild(e = !1) {\n if (this.onRebuildObservable.notifyObservers(this), this._occlusionQuery !== null && (this._occlusionQuery = null), !!this.subMeshes) {\n for (const t of this.subMeshes)\n t._rebuild();\n this.resetDrawCache();\n }\n }\n /** @internal */\n _resyncLightSources() {\n this._lightSources.length = 0;\n for (const e of this.getScene().lights)\n e.isEnabled() && e.canAffectMesh(this) && this._lightSources.push(e);\n this._markSubMeshesAsLightDirty();\n }\n /**\n * @internal\n */\n _resyncLightSource(e) {\n const t = e.isEnabled() && e.canAffectMesh(this), i = this._lightSources.indexOf(e);\n let s = !1;\n if (i === -1) {\n if (!t)\n return;\n this._lightSources.push(e);\n } else {\n if (t)\n return;\n s = !0, this._lightSources.splice(i, 1);\n }\n this._markSubMeshesAsLightDirty(s);\n }\n /** @internal */\n _unBindEffect() {\n for (const e of this.subMeshes)\n e.setEffect(null);\n }\n /**\n * @internal\n */\n _removeLightSource(e, t) {\n const i = this._lightSources.indexOf(e);\n i !== -1 && (this._lightSources.splice(i, 1), this._markSubMeshesAsLightDirty(t));\n }\n _markSubMeshesAsDirty(e) {\n if (this.subMeshes)\n for (const t of this.subMeshes)\n for (let i = 0; i < t._drawWrappers.length; ++i) {\n const s = t._drawWrappers[i];\n !s || !s.defines || !s.defines.markAllAsDirty || e(s.defines);\n }\n }\n /**\n * @internal\n */\n _markSubMeshesAsLightDirty(e = !1) {\n this._markSubMeshesAsDirty((t) => t.markAsLightDirty(e));\n }\n /** @internal */\n _markSubMeshesAsAttributesDirty() {\n this._markSubMeshesAsDirty((e) => e.markAsAttributesDirty());\n }\n /** @internal */\n _markSubMeshesAsMiscDirty() {\n this._markSubMeshesAsDirty((e) => e.markAsMiscDirty());\n }\n /**\n * Flag the AbstractMesh as dirty (Forcing it to update everything)\n * @param property if set to \"rotation\" the objects rotationQuaternion will be set to null\n * @returns this AbstractMesh\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n markAsDirty(e) {\n return this._currentRenderId = Number.MAX_VALUE, this._isDirty = !0, this;\n }\n /**\n * Resets the draw wrappers cache for all submeshes of this abstract mesh\n * @param passId If provided, releases only the draw wrapper corresponding to this render pass id\n */\n resetDrawCache(e) {\n if (this.subMeshes)\n for (const t of this.subMeshes)\n t.resetDrawCache(e);\n }\n // Methods\n /**\n * Returns true if the mesh is blocked. Implemented by child classes\n */\n get isBlocked() {\n return !1;\n }\n /**\n * Returns the mesh itself by default. Implemented by child classes\n * @param camera defines the camera to use to pick the right LOD level\n * @returns the currentAbstractMesh\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getLOD(e) {\n return this;\n }\n /**\n * Returns 0 by default. Implemented by child classes\n * @returns an integer\n */\n getTotalVertices() {\n return 0;\n }\n /**\n * Returns a positive integer : the total number of indices in this mesh geometry.\n * @returns the number of indices or zero if the mesh has no geometry.\n */\n getTotalIndices() {\n return 0;\n }\n /**\n * Returns null by default. Implemented by child classes\n * @returns null\n */\n getIndices() {\n return null;\n }\n /**\n * Returns the array of the requested vertex data kind. Implemented by child classes\n * @param kind defines the vertex data kind to use\n * @returns null\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getVerticesData(e) {\n return null;\n }\n /**\n * Sets the vertex data of the mesh geometry for the requested `kind`.\n * If the mesh has no geometry, a new Geometry object is set to the mesh and then passed this vertex data.\n * Note that a new underlying VertexBuffer object is created each call.\n * If the `kind` is the `PositionKind`, the mesh BoundingInfo is renewed, so the bounding box and sphere, and the mesh World Matrix is recomputed.\n * @param kind defines vertex data kind:\n * * VertexBuffer.PositionKind\n * * VertexBuffer.UVKind\n * * VertexBuffer.UV2Kind\n * * VertexBuffer.UV3Kind\n * * VertexBuffer.UV4Kind\n * * VertexBuffer.UV5Kind\n * * VertexBuffer.UV6Kind\n * * VertexBuffer.ColorKind\n * * VertexBuffer.MatricesIndicesKind\n * * VertexBuffer.MatricesIndicesExtraKind\n * * VertexBuffer.MatricesWeightsKind\n * * VertexBuffer.MatricesWeightsExtraKind\n * @param data defines the data source\n * @param updatable defines if the data must be flagged as updatable (or static)\n * @param stride defines the vertex stride (size of an entire vertex). Can be null and in this case will be deduced from vertex data kind\n * @returns the current mesh\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setVerticesData(e, t, i, s) {\n return this;\n }\n /**\n * Updates the existing vertex data of the mesh geometry for the requested `kind`.\n * If the mesh has no geometry, it is simply returned as it is.\n * @param kind defines vertex data kind:\n * * VertexBuffer.PositionKind\n * * VertexBuffer.UVKind\n * * VertexBuffer.UV2Kind\n * * VertexBuffer.UV3Kind\n * * VertexBuffer.UV4Kind\n * * VertexBuffer.UV5Kind\n * * VertexBuffer.UV6Kind\n * * VertexBuffer.ColorKind\n * * VertexBuffer.MatricesIndicesKind\n * * VertexBuffer.MatricesIndicesExtraKind\n * * VertexBuffer.MatricesWeightsKind\n * * VertexBuffer.MatricesWeightsExtraKind\n * @param data defines the data source\n * @param updateExtends If `kind` is `PositionKind` and if `updateExtends` is true, the mesh BoundingInfo is renewed, so the bounding box and sphere, and the mesh World Matrix is recomputed\n * @param makeItUnique If true, a new global geometry is created from this data and is set to the mesh\n * @returns the current mesh\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updateVerticesData(e, t, i, s) {\n return this;\n }\n /**\n * Sets the mesh indices,\n * If the mesh has no geometry, a new Geometry object is created and set to the mesh.\n * @param indices Expects an array populated with integers or a typed array (Int32Array, Uint32Array, Uint16Array)\n * @param totalVertices Defines the total number of vertices\n * @returns the current mesh\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setIndices(e, t) {\n return this;\n }\n /**\n * Gets a boolean indicating if specific vertex data is present\n * @param kind defines the vertex data kind to use\n * @returns true is data kind is present\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isVerticesDataPresent(e) {\n return !1;\n }\n /**\n * Returns the mesh BoundingInfo object or creates a new one and returns if it was undefined.\n * Note that it returns a shallow bounding of the mesh (i.e. it does not include children).\n * However, if the mesh contains thin instances, it will be expanded to include them. If you want the \"raw\" bounding data instead, then use `getRawBoundingInfo()`.\n * To get the full bounding of all children, call `getHierarchyBoundingVectors` instead.\n * @returns a BoundingInfo\n */\n getBoundingInfo() {\n return this._masterMesh ? this._masterMesh.getBoundingInfo() : (this._boundingInfoIsDirty && (this._boundingInfoIsDirty = !1, this._updateBoundingInfo()), this._boundingInfo);\n }\n /**\n * Returns the bounding info unnafected by instance data.\n * @returns the bounding info of the mesh unaffected by instance data.\n */\n getRawBoundingInfo() {\n return this.rawBoundingInfo ?? this.getBoundingInfo();\n }\n /**\n * Overwrite the current bounding info\n * @param boundingInfo defines the new bounding info\n * @returns the current mesh\n */\n setBoundingInfo(e) {\n return this._boundingInfo = e, this;\n }\n /**\n * Returns true if there is already a bounding info\n */\n get hasBoundingInfo() {\n return this._boundingInfo !== null;\n }\n /**\n * Creates a new bounding info for the mesh\n * @param minimum min vector of the bounding box/sphere\n * @param maximum max vector of the bounding box/sphere\n * @param worldMatrix defines the new world matrix\n * @returns the new bounding info\n */\n buildBoundingInfo(e, t, i) {\n return this._boundingInfo = new zr(e, t, i), this._boundingInfo;\n }\n /**\n * Uniformly scales the mesh to fit inside of a unit cube (1 X 1 X 1 units)\n * @param includeDescendants Use the hierarchy's bounding box instead of the mesh's bounding box. Default is false\n * @param ignoreRotation ignore rotation when computing the scale (ie. object will be axis aligned). Default is false\n * @param predicate predicate that is passed in to getHierarchyBoundingVectors when selecting which object should be included when scaling\n * @returns the current mesh\n */\n normalizeToUnitCube(e = !0, t = !1, i) {\n return super.normalizeToUnitCube(e, t, i);\n }\n /** Gets a boolean indicating if this mesh has skinning data and an attached skeleton */\n get useBones() {\n return this.skeleton && this.getScene().skeletonsEnabled && this.isVerticesDataPresent(R.MatricesIndicesKind) && this.isVerticesDataPresent(R.MatricesWeightsKind);\n }\n /** @internal */\n _preActivate() {\n }\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _preActivateForIntermediateRendering(e) {\n }\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _activate(e, t) {\n return this._renderId = e, !0;\n }\n /** @internal */\n _postActivate() {\n }\n /** @internal */\n _freeze() {\n }\n /** @internal */\n _unFreeze() {\n }\n /**\n * Gets the current world matrix\n * @returns a Matrix\n */\n getWorldMatrix() {\n return this._masterMesh && this.billboardMode === Ye.BILLBOARDMODE_NONE ? this._masterMesh.getWorldMatrix() : super.getWorldMatrix();\n }\n /** @internal */\n _getWorldMatrixDeterminant() {\n return this._masterMesh ? this._masterMesh._getWorldMatrixDeterminant() : super._getWorldMatrixDeterminant();\n }\n /**\n * Gets a boolean indicating if this mesh is an instance or a regular mesh\n */\n get isAnInstance() {\n return !1;\n }\n /**\n * Gets a boolean indicating if this mesh has instances\n */\n get hasInstances() {\n return !1;\n }\n /**\n * Gets a boolean indicating if this mesh has thin instances\n */\n get hasThinInstances() {\n return !1;\n }\n // ================================== Point of View Movement =================================\n /**\n * Perform relative position change from the point of view of behind the front of the mesh.\n * This is performed taking into account the meshes current rotation, so you do not have to care.\n * Supports definition of mesh facing forward or backward {@link definedFacingForwardSearch | See definedFacingForwardSearch }.\n * @param amountRight defines the distance on the right axis\n * @param amountUp defines the distance on the up axis\n * @param amountForward defines the distance on the forward axis\n * @returns the current mesh\n */\n movePOV(e, t, i) {\n return this.position.addInPlace(this.calcMovePOV(e, t, i)), this;\n }\n /**\n * Calculate relative position change from the point of view of behind the front of the mesh.\n * This is performed taking into account the meshes current rotation, so you do not have to care.\n * Supports definition of mesh facing forward or backward {@link definedFacingForwardSearch | See definedFacingForwardSearch }.\n * @param amountRight defines the distance on the right axis\n * @param amountUp defines the distance on the up axis\n * @param amountForward defines the distance on the forward axis\n * @returns the new displacement vector\n */\n calcMovePOV(e, t, i) {\n const s = new O();\n (this.rotationQuaternion ? this.rotationQuaternion : se.RotationYawPitchRoll(this.rotation.y, this.rotation.x, this.rotation.z)).toRotationMatrix(s);\n const n = g.Zero(), o = this.definedFacingForward ? -1 : 1;\n return g.TransformCoordinatesFromFloatsToRef(e * o, t, i * o, s, n), n;\n }\n // ================================== Point of View Rotation =================================\n /**\n * Perform relative rotation change from the point of view of behind the front of the mesh.\n * Supports definition of mesh facing forward or backward {@link definedFacingForwardSearch | See definedFacingForwardSearch }.\n * @param flipBack defines the flip\n * @param twirlClockwise defines the twirl\n * @param tiltRight defines the tilt\n * @returns the current mesh\n */\n rotatePOV(e, t, i) {\n return this.rotation.addInPlace(this.calcRotatePOV(e, t, i)), this;\n }\n /**\n * Calculate relative rotation change from the point of view of behind the front of the mesh.\n * Supports definition of mesh facing forward or backward {@link definedFacingForwardSearch | See definedFacingForwardSearch }.\n * @param flipBack defines the flip\n * @param twirlClockwise defines the twirl\n * @param tiltRight defines the tilt\n * @returns the new rotation vector\n */\n calcRotatePOV(e, t, i) {\n const s = this.definedFacingForward ? 1 : -1;\n return new g(e * s, t, i * s);\n }\n /**\n * @internal\n */\n _refreshBoundingInfo(e, t) {\n if (e) {\n const i = $h(e, 0, this.getTotalVertices(), t);\n this._boundingInfo ? this._boundingInfo.reConstruct(i.minimum, i.maximum) : this._boundingInfo = new zr(i.minimum, i.maximum);\n }\n if (this.subMeshes)\n for (let i = 0; i < this.subMeshes.length; i++)\n this.subMeshes[i].refreshBoundingInfo(e);\n this._updateBoundingInfo();\n }\n /**\n * @internal\n */\n _refreshBoundingInfoDirect(e) {\n if (this._boundingInfo ? this._boundingInfo.reConstruct(e.minimum, e.maximum) : this._boundingInfo = new zr(e.minimum, e.maximum), this.subMeshes)\n for (let t = 0; t < this.subMeshes.length; t++)\n this.subMeshes[t].refreshBoundingInfo(null);\n this._updateBoundingInfo();\n }\n // This function is only here so we can apply the nativeOverride decorator.\n static _ApplySkeleton(e, t, i, s, r, n, o) {\n ew(e, t, i, s, r, n, o);\n }\n /** @internal */\n _getData(e, t, i = R.PositionKind) {\n const s = e.cache, r = (n) => {\n if (s) {\n const o = s._vertexData || (s._vertexData = {});\n return o[n] || this.copyVerticesData(n, o), o[n];\n }\n return this.getVerticesData(n);\n };\n if (t || (t = r(i)), !t)\n return null;\n if (s ? (s._outputData ? s._outputData.set(t) : s._outputData = new Float32Array(t), t = s._outputData) : (e.applyMorph && this.morphTargetManager || e.applySkeleton && this.skeleton) && (t = t.slice()), e.applyMorph && this.morphTargetManager && JO(t, i, this.morphTargetManager), e.applySkeleton && this.skeleton) {\n const n = r(R.MatricesIndicesKind), o = r(R.MatricesWeightsKind);\n if (o && n) {\n const l = this.numBoneInfluencers > 4, h = l ? r(R.MatricesIndicesExtraKind) : null, c = l ? r(R.MatricesWeightsExtraKind) : null, u = this.skeleton.getTransformMatrices(this);\n Pt._ApplySkeleton(t, i, u, n, o, h, c);\n }\n }\n if (e.updatePositionsArray !== !1 && i === R.PositionKind) {\n const n = this._internalAbstractMeshDataInfo._positions || [], o = n.length;\n if (n.length = t.length / 3, o < n.length)\n for (let l = o; l < n.length; l++)\n n[l] = new g();\n for (let l = 0, h = 0; l < n.length; l++, h += 3)\n n[l].copyFromFloats(t[h], t[h + 1], t[h + 2]);\n this._internalAbstractMeshDataInfo._positions = n;\n }\n return t;\n }\n /**\n * Get the normals vertex data and optionally apply skeleton and morphing.\n * @param applySkeleton defines whether to apply the skeleton\n * @param applyMorph defines whether to apply the morph target\n * @returns the normals data\n */\n getNormalsData(e = !1, t = !1) {\n return this._getData({ applySkeleton: e, applyMorph: t, updatePositionsArray: !1 }, null, R.NormalKind);\n }\n /**\n * Get the position vertex data and optionally apply skeleton and morphing.\n * @param applySkeleton defines whether to apply the skeleton\n * @param applyMorph defines whether to apply the morph target\n * @param data defines the position data to apply the skeleton and morph to\n * @returns the position data\n */\n getPositionData(e = !1, t = !1, i = null) {\n return this._getData({ applySkeleton: e, applyMorph: t, updatePositionsArray: !1 }, i, R.PositionKind);\n }\n /** @internal */\n _updateBoundingInfo() {\n return this._boundingInfo ? this._boundingInfo.update(this.worldMatrixFromCache) : this._boundingInfo = new zr(g.Zero(), g.Zero(), this.worldMatrixFromCache), this._updateSubMeshesBoundingInfo(this.worldMatrixFromCache), this;\n }\n /**\n * @internal\n */\n _updateSubMeshesBoundingInfo(e) {\n if (!this.subMeshes)\n return this;\n const t = this.subMeshes.length;\n for (let i = 0; i < t; i++) {\n const s = this.subMeshes[i];\n (t > 1 || !s.IsGlobal) && s.updateBoundingInfo(e);\n }\n return this;\n }\n /** @internal */\n _afterComputeWorldMatrix() {\n this.doNotSyncBoundingInfo || (this._boundingInfoIsDirty = !0);\n }\n /**\n * Returns `true` if the mesh is within the frustum defined by the passed array of planes.\n * A mesh is in the frustum if its bounding box intersects the frustum\n * @param frustumPlanes defines the frustum to test\n * @returns true if the mesh is in the frustum planes\n */\n isInFrustum(e) {\n return this.getBoundingInfo().isInFrustum(e, this.cullingStrategy);\n }\n /**\n * Returns `true` if the mesh is completely in the frustum defined be the passed array of planes.\n * A mesh is completely in the frustum if its bounding box it completely inside the frustum.\n * @param frustumPlanes defines the frustum to test\n * @returns true if the mesh is completely in the frustum planes\n */\n isCompletelyInFrustum(e) {\n return this.getBoundingInfo().isCompletelyInFrustum(e);\n }\n /**\n * True if the mesh intersects another mesh or a SolidParticle object\n * @param mesh defines a target mesh or SolidParticle to test\n * @param precise Unless the parameter `precise` is set to `true` the intersection is computed according to Axis Aligned Bounding Boxes (AABB), else according to OBB (Oriented BBoxes)\n * @param includeDescendants Can be set to true to test if the mesh defined in parameters intersects with the current mesh or any child meshes\n * @returns true if there is an intersection\n */\n intersectsMesh(e, t = !1, i) {\n const s = this.getBoundingInfo(), r = e.getBoundingInfo();\n if (s.intersects(r, t))\n return !0;\n if (i) {\n for (const n of this.getChildMeshes())\n if (n.intersectsMesh(e, t, !0))\n return !0;\n }\n return !1;\n }\n /**\n * Returns true if the passed point (Vector3) is inside the mesh bounding box\n * @param point defines the point to test\n * @returns true if there is an intersection\n */\n intersectsPoint(e) {\n return this.getBoundingInfo().intersectsPoint(e);\n }\n // Collisions\n /**\n * Gets or sets a boolean indicating that this mesh can be used in the collision engine\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_collisions\n */\n get checkCollisions() {\n return this._internalAbstractMeshDataInfo._meshCollisionData._checkCollisions;\n }\n set checkCollisions(e) {\n this._internalAbstractMeshDataInfo._meshCollisionData._checkCollisions = e;\n }\n /**\n * Gets Collider object used to compute collisions (not physics)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_collisions\n */\n get collider() {\n return this._internalAbstractMeshDataInfo._meshCollisionData._collider;\n }\n /**\n * Move the mesh using collision engine\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_collisions\n * @param displacement defines the requested displacement vector\n * @returns the current mesh\n */\n moveWithCollisions(e) {\n this.getAbsolutePosition().addToRef(this.ellipsoidOffset, this._internalAbstractMeshDataInfo._meshCollisionData._oldPositionForCollisions);\n const i = this.getScene().collisionCoordinator;\n return this._internalAbstractMeshDataInfo._meshCollisionData._collider || (this._internalAbstractMeshDataInfo._meshCollisionData._collider = i.createCollider()), this._internalAbstractMeshDataInfo._meshCollisionData._collider._radius = this.ellipsoid, i.getNewPosition(this._internalAbstractMeshDataInfo._meshCollisionData._oldPositionForCollisions, e, this._internalAbstractMeshDataInfo._meshCollisionData._collider, this.collisionRetryCount, this, this._onCollisionPositionChange, this.uniqueId), this;\n }\n // Collisions\n /**\n * @internal\n */\n _collideForSubMesh(e, t, i) {\n var s;\n if (this._generatePointsArray(), !this._positions)\n return this;\n if (!e._lastColliderWorldVertices || !e._lastColliderTransformMatrix.equals(t)) {\n e._lastColliderTransformMatrix = t.clone(), e._lastColliderWorldVertices = [], e._trianglePlanes = [];\n const r = e.verticesStart, n = e.verticesStart + e.verticesCount;\n for (let o = r; o < n; o++)\n e._lastColliderWorldVertices.push(g.TransformCoordinates(this._positions[o], t));\n }\n return i._collide(e._trianglePlanes, e._lastColliderWorldVertices, this.getIndices(), e.indexStart, e.indexStart + e.indexCount, e.verticesStart, !!e.getMaterial(), this, this._shouldConvertRHS(), ((s = e.getMaterial()) == null ? void 0 : s.fillMode) === 7), this;\n }\n /**\n * @internal\n */\n _processCollisionsForSubMeshes(e, t) {\n const i = this._scene.getCollidingSubMeshCandidates(this, e), s = i.length;\n for (let r = 0; r < s; r++) {\n const n = i.data[r];\n s > 1 && !n._checkCollision(e) || this._collideForSubMesh(n, t, e);\n }\n return this;\n }\n /** @internal */\n _shouldConvertRHS() {\n return !1;\n }\n /**\n * @internal\n */\n _checkCollision(e) {\n if (!this.getBoundingInfo()._checkCollision(e))\n return this;\n const t = w.Matrix[0], i = w.Matrix[1];\n return O.ScalingToRef(1 / e._radius.x, 1 / e._radius.y, 1 / e._radius.z, t), this.worldMatrixFromCache.multiplyToRef(t, i), this._processCollisionsForSubMeshes(e, i), this;\n }\n // Picking\n /** @internal */\n _generatePointsArray() {\n return !1;\n }\n /**\n * Checks if the passed Ray intersects with the mesh. A mesh triangle can be picked both from its front and back sides,\n * irrespective of orientation.\n * @param ray defines the ray to use. It should be in the mesh's LOCAL coordinate space.\n * @param fastCheck defines if fast mode (but less precise) must be used (false by default)\n * @param trianglePredicate defines an optional predicate used to select faces when a mesh intersection is detected\n * @param onlyBoundingInfo defines a boolean indicating if picking should only happen using bounding info (false by default)\n * @param worldToUse defines the world matrix to use to get the world coordinate of the intersection point\n * @param skipBoundingInfo a boolean indicating if we should skip the bounding info check\n * @returns the picking info\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/interactions/mesh_intersect\n */\n intersects(e, t, i, s = !1, r, n = !1) {\n const o = new Cs(), l = this.getClassName(), h = l === \"InstancedLinesMesh\" || l === \"LinesMesh\" || l === \"GreasedLineMesh\" ? this.intersectionThreshold : 0, c = this.getBoundingInfo();\n if (!this.subMeshes || !n && (!e.intersectsSphere(c.boundingSphere, h) || !e.intersectsBox(c.boundingBox, h)))\n return o;\n if (s)\n return o.hit = !n, o.pickedMesh = n ? null : this, o.distance = n ? 0 : g.Distance(e.origin, c.boundingSphere.center), o.subMeshId = 0, o;\n if (!this._generatePointsArray())\n return o;\n let u = null;\n const d = this._scene.getIntersectingSubMeshCandidates(this, e), f = d.length;\n let p = !1;\n for (let _ = 0; _ < f; _++) {\n const x = d.data[_].getMaterial();\n if (x && (x.fillMode == 7 || x.fillMode == 0 || x.fillMode == 1 || x.fillMode == 2 || x.fillMode == 4)) {\n p = !0;\n break;\n }\n }\n if (!p)\n return o.hit = !0, o.pickedMesh = this, o.distance = g.Distance(e.origin, c.boundingSphere.center), o.subMeshId = -1, o;\n for (let _ = 0; _ < f; _++) {\n const m = d.data[_];\n if (f > 1 && !n && !m.canIntersects(e))\n continue;\n const x = m.intersects(e, this._positions, this.getIndices(), t, i);\n if (x && (t || !u || x.distance < u.distance) && (u = x, u.subMeshId = _, t))\n break;\n }\n if (u) {\n const _ = r ?? this.getWorldMatrix(), m = w.Vector3[0], x = w.Vector3[1];\n g.TransformCoordinatesToRef(e.origin, _, m), e.direction.scaleToRef(u.distance, x);\n const T = g.TransformNormal(x, _).addInPlace(m);\n return o.hit = !0, o.distance = g.Distance(m, T), o.pickedPoint = T, o.pickedMesh = this, o.bu = u.bu || 0, o.bv = u.bv || 0, o.subMeshFaceId = u.faceId, o.faceId = u.faceId + d.data[u.subMeshId].indexStart / (this.getClassName().indexOf(\"LinesMesh\") !== -1 ? 2 : 3), o.subMeshId = u.subMeshId, o;\n }\n return o;\n }\n /**\n * Clones the current mesh\n * @param name defines the mesh name\n * @param newParent defines the new mesh parent\n * @param doNotCloneChildren defines a boolean indicating that children must not be cloned (false by default)\n * @returns the new mesh\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n clone(e, t, i) {\n return null;\n }\n /**\n * Disposes all the submeshes of the current meshnp\n * @returns the current mesh\n */\n releaseSubMeshes() {\n if (this.subMeshes)\n for (; this.subMeshes.length; )\n this.subMeshes[0].dispose();\n else\n this.subMeshes = [];\n return this;\n }\n /**\n * Releases resources associated with this abstract mesh.\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\n */\n dispose(e, t = !1) {\n let i;\n const s = this.getScene();\n for (this._scene.useMaterialMeshMap && this._internalAbstractMeshDataInfo._material && this._internalAbstractMeshDataInfo._material.meshMap && (this._internalAbstractMeshDataInfo._material.meshMap[this.uniqueId] = void 0), s.freeActiveMeshes(), s.freeRenderingGroups(), s.renderingManager.maintainStateBetweenFrames && s.renderingManager.restoreDispachedFlags(), this.actionManager !== void 0 && this.actionManager !== null && (this.actionManager.disposeWhenUnowned && !this._scene.meshes.some((o) => o !== this && o.actionManager === this.actionManager) && this.actionManager.dispose(), this.actionManager = null), this._internalAbstractMeshDataInfo._skeleton = null, this._transformMatrixTexture && (this._transformMatrixTexture.dispose(), this._transformMatrixTexture = null), i = 0; i < this._intersectionsInProgress.length; i++) {\n const o = this._intersectionsInProgress[i], l = o._intersectionsInProgress.indexOf(this);\n o._intersectionsInProgress.splice(l, 1);\n }\n this._intersectionsInProgress.length = 0, s.lights.forEach((o) => {\n let l = o.includedOnlyMeshes.indexOf(this);\n l !== -1 && o.includedOnlyMeshes.splice(l, 1), l = o.excludedMeshes.indexOf(this), l !== -1 && o.excludedMeshes.splice(l, 1);\n const h = o.getShadowGenerators();\n if (h) {\n const c = h.values();\n for (let u = c.next(); u.done !== !0; u = c.next()) {\n const f = u.value.getShadowMap();\n f && f.renderList && (l = f.renderList.indexOf(this), l !== -1 && f.renderList.splice(l, 1));\n }\n }\n }), (this.getClassName() !== \"InstancedMesh\" || this.getClassName() !== \"InstancedLinesMesh\") && this.releaseSubMeshes();\n const n = s.getEngine();\n if (this._occlusionQuery !== null && (this.isOcclusionQueryInProgress = !1, n.deleteQuery(this._occlusionQuery), this._occlusionQuery = null), n.wipeCaches(), s.removeMesh(this), this._parentContainer) {\n const o = this._parentContainer.meshes.indexOf(this);\n o > -1 && this._parentContainer.meshes.splice(o, 1), this._parentContainer = null;\n }\n if (t && this.material && (this.material.getClassName() === \"MultiMaterial\" ? this.material.dispose(!1, !0, !0) : this.material.dispose(!1, !0)), !e)\n for (i = 0; i < s.particleSystems.length; i++)\n s.particleSystems[i].emitter === this && (s.particleSystems[i].dispose(), i--);\n this._internalAbstractMeshDataInfo._facetData.facetDataEnabled && this.disableFacetData(), this._uniformBuffer.dispose(), this.onAfterWorldMatrixUpdateObservable.clear(), this.onCollideObservable.clear(), this.onCollisionPositionChangeObservable.clear(), this.onRebuildObservable.clear(), super.dispose(e, t);\n }\n // Facet data\n /** @internal */\n _initFacetData() {\n const e = this._internalAbstractMeshDataInfo._facetData;\n e.facetNormals || (e.facetNormals = []), e.facetPositions || (e.facetPositions = []), e.facetPartitioning || (e.facetPartitioning = new Array()), e.facetNb = this.getIndices().length / 3 | 0, e.partitioningSubdivisions = e.partitioningSubdivisions ? e.partitioningSubdivisions : 10, e.partitioningBBoxRatio = e.partitioningBBoxRatio ? e.partitioningBBoxRatio : 1.01;\n for (let t = 0; t < e.facetNb; t++)\n e.facetNormals[t] = g.Zero(), e.facetPositions[t] = g.Zero();\n return e.facetDataEnabled = !0, this;\n }\n /**\n * Updates the mesh facetData arrays and the internal partitioning when the mesh is morphed or updated.\n * This method can be called within the render loop.\n * You don't need to call this method by yourself in the render loop when you update/morph a mesh with the methods CreateXXX() as they automatically manage this computation\n * @returns the current mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData\n */\n updateFacetData() {\n const e = this._internalAbstractMeshDataInfo._facetData;\n e.facetDataEnabled || this._initFacetData();\n const t = this.getVerticesData(R.PositionKind), i = this.getIndices(), s = this.getVerticesData(R.NormalKind), r = this.getBoundingInfo();\n if (e.facetDepthSort && !e.facetDepthSortEnabled) {\n if (e.facetDepthSortEnabled = !0, i instanceof Uint16Array)\n e.depthSortedIndices = new Uint16Array(i);\n else if (i instanceof Uint32Array)\n e.depthSortedIndices = new Uint32Array(i);\n else {\n let o = !1;\n for (let l = 0; l < i.length; l++)\n if (i[l] > 65535) {\n o = !0;\n break;\n }\n o ? e.depthSortedIndices = new Uint32Array(i) : e.depthSortedIndices = new Uint16Array(i);\n }\n if (e.facetDepthSortFunction = function(o, l) {\n return l.sqDistance - o.sqDistance;\n }, !e.facetDepthSortFrom) {\n const o = this.getScene().activeCamera;\n e.facetDepthSortFrom = o ? o.position : g.Zero();\n }\n e.depthSortedFacets = [];\n for (let o = 0; o < e.facetNb; o++) {\n const l = { ind: o * 3, sqDistance: 0 };\n e.depthSortedFacets.push(l);\n }\n e.invertedMatrix = O.Identity(), e.facetDepthSortOrigin = g.Zero();\n }\n e.bbSize.x = r.maximum.x - r.minimum.x > tt ? r.maximum.x - r.minimum.x : tt, e.bbSize.y = r.maximum.y - r.minimum.y > tt ? r.maximum.y - r.minimum.y : tt, e.bbSize.z = r.maximum.z - r.minimum.z > tt ? r.maximum.z - r.minimum.z : tt;\n let n = e.bbSize.x > e.bbSize.y ? e.bbSize.x : e.bbSize.y;\n if (n = n > e.bbSize.z ? n : e.bbSize.z, e.subDiv.max = e.partitioningSubdivisions, e.subDiv.X = Math.floor(e.subDiv.max * e.bbSize.x / n), e.subDiv.Y = Math.floor(e.subDiv.max * e.bbSize.y / n), e.subDiv.Z = Math.floor(e.subDiv.max * e.bbSize.z / n), e.subDiv.X = e.subDiv.X < 1 ? 1 : e.subDiv.X, e.subDiv.Y = e.subDiv.Y < 1 ? 1 : e.subDiv.Y, e.subDiv.Z = e.subDiv.Z < 1 ? 1 : e.subDiv.Z, e.facetParameters.facetNormals = this.getFacetLocalNormals(), e.facetParameters.facetPositions = this.getFacetLocalPositions(), e.facetParameters.facetPartitioning = this.getFacetLocalPartitioning(), e.facetParameters.bInfo = r, e.facetParameters.bbSize = e.bbSize, e.facetParameters.subDiv = e.subDiv, e.facetParameters.ratio = this.partitioningBBoxRatio, e.facetParameters.depthSort = e.facetDepthSort, e.facetDepthSort && e.facetDepthSortEnabled && (this.computeWorldMatrix(!0), this._worldMatrix.invertToRef(e.invertedMatrix), g.TransformCoordinatesToRef(e.facetDepthSortFrom, e.invertedMatrix, e.facetDepthSortOrigin), e.facetParameters.distanceTo = e.facetDepthSortOrigin), e.facetParameters.depthSortedFacets = e.depthSortedFacets, s && ge.ComputeNormals(t, i, s, e.facetParameters), e.facetDepthSort && e.facetDepthSortEnabled) {\n e.depthSortedFacets.sort(e.facetDepthSortFunction);\n const o = e.depthSortedIndices.length / 3 | 0;\n for (let l = 0; l < o; l++) {\n const h = e.depthSortedFacets[l].ind;\n e.depthSortedIndices[l * 3] = i[h], e.depthSortedIndices[l * 3 + 1] = i[h + 1], e.depthSortedIndices[l * 3 + 2] = i[h + 2];\n }\n this.updateIndices(e.depthSortedIndices, void 0, !0);\n }\n return this;\n }\n /**\n * Returns the facetLocalNormals array.\n * The normals are expressed in the mesh local spac\n * @returns an array of Vector3\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData\n */\n getFacetLocalNormals() {\n const e = this._internalAbstractMeshDataInfo._facetData;\n return e.facetNormals || this.updateFacetData(), e.facetNormals;\n }\n /**\n * Returns the facetLocalPositions array.\n * The facet positions are expressed in the mesh local space\n * @returns an array of Vector3\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData\n */\n getFacetLocalPositions() {\n const e = this._internalAbstractMeshDataInfo._facetData;\n return e.facetPositions || this.updateFacetData(), e.facetPositions;\n }\n /**\n * Returns the facetLocalPartitioning array\n * @returns an array of array of numbers\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData\n */\n getFacetLocalPartitioning() {\n const e = this._internalAbstractMeshDataInfo._facetData;\n return e.facetPartitioning || this.updateFacetData(), e.facetPartitioning;\n }\n /**\n * Returns the i-th facet position in the world system.\n * This method allocates a new Vector3 per call\n * @param i defines the facet index\n * @returns a new Vector3\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData\n */\n getFacetPosition(e) {\n const t = g.Zero();\n return this.getFacetPositionToRef(e, t), t;\n }\n /**\n * Sets the reference Vector3 with the i-th facet position in the world system\n * @param i defines the facet index\n * @param ref defines the target vector\n * @returns the current mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData\n */\n getFacetPositionToRef(e, t) {\n const i = this.getFacetLocalPositions()[e], s = this.getWorldMatrix();\n return g.TransformCoordinatesToRef(i, s, t), this;\n }\n /**\n * Returns the i-th facet normal in the world system.\n * This method allocates a new Vector3 per call\n * @param i defines the facet index\n * @returns a new Vector3\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData\n */\n getFacetNormal(e) {\n const t = g.Zero();\n return this.getFacetNormalToRef(e, t), t;\n }\n /**\n * Sets the reference Vector3 with the i-th facet normal in the world system\n * @param i defines the facet index\n * @param ref defines the target vector\n * @returns the current mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData\n */\n getFacetNormalToRef(e, t) {\n const i = this.getFacetLocalNormals()[e];\n return g.TransformNormalToRef(i, this.getWorldMatrix(), t), this;\n }\n /**\n * Returns the facets (in an array) in the same partitioning block than the one the passed coordinates are located (expressed in the mesh local system)\n * @param x defines x coordinate\n * @param y defines y coordinate\n * @param z defines z coordinate\n * @returns the array of facet indexes\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData\n */\n getFacetsAtLocalCoordinates(e, t, i) {\n const s = this.getBoundingInfo(), r = this._internalAbstractMeshDataInfo._facetData, n = Math.floor((e - s.minimum.x * r.partitioningBBoxRatio) * r.subDiv.X * r.partitioningBBoxRatio / r.bbSize.x), o = Math.floor((t - s.minimum.y * r.partitioningBBoxRatio) * r.subDiv.Y * r.partitioningBBoxRatio / r.bbSize.y), l = Math.floor((i - s.minimum.z * r.partitioningBBoxRatio) * r.subDiv.Z * r.partitioningBBoxRatio / r.bbSize.z);\n return n < 0 || n > r.subDiv.max || o < 0 || o > r.subDiv.max || l < 0 || l > r.subDiv.max ? null : r.facetPartitioning[n + r.subDiv.max * o + r.subDiv.max * r.subDiv.max * l];\n }\n /**\n * Returns the closest mesh facet index at (x,y,z) World coordinates, null if not found\n * @param x defines x coordinate\n * @param y defines y coordinate\n * @param z defines z coordinate\n * @param projected sets as the (x,y,z) world projection on the facet\n * @param checkFace if true (default false), only the facet \"facing\" to (x,y,z) or only the ones \"turning their backs\", according to the parameter \"facing\" are returned\n * @param facing if facing and checkFace are true, only the facet \"facing\" to (x, y, z) are returned : positive dot (x, y, z) * facet position. If facing si false and checkFace is true, only the facet \"turning their backs\" to (x, y, z) are returned : negative dot (x, y, z) * facet position\n * @returns the face index if found (or null instead)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData\n */\n getClosestFacetAtCoordinates(e, t, i, s, r = !1, n = !0) {\n const o = this.getWorldMatrix(), l = w.Matrix[5];\n o.invertToRef(l);\n const h = w.Vector3[8];\n g.TransformCoordinatesFromFloatsToRef(e, t, i, l, h);\n const c = this.getClosestFacetAtLocalCoordinates(h.x, h.y, h.z, s, r, n);\n return s && g.TransformCoordinatesFromFloatsToRef(s.x, s.y, s.z, o, s), c;\n }\n /**\n * Returns the closest mesh facet index at (x,y,z) local coordinates, null if not found\n * @param x defines x coordinate\n * @param y defines y coordinate\n * @param z defines z coordinate\n * @param projected sets as the (x,y,z) local projection on the facet\n * @param checkFace if true (default false), only the facet \"facing\" to (x,y,z) or only the ones \"turning their backs\", according to the parameter \"facing\" are returned\n * @param facing if facing and checkFace are true, only the facet \"facing\" to (x, y, z) are returned : positive dot (x, y, z) * facet position. If facing si false and checkFace is true, only the facet \"turning their backs\" to (x, y, z) are returned : negative dot (x, y, z) * facet position\n * @returns the face index if found (or null instead)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData\n */\n getClosestFacetAtLocalCoordinates(e, t, i, s, r = !1, n = !0) {\n let o = null, l = 0, h = 0, c = 0, u = 0, d = 0, f = 0, p = 0, _ = 0;\n const m = this.getFacetLocalPositions(), x = this.getFacetLocalNormals(), v = this.getFacetsAtLocalCoordinates(e, t, i);\n if (!v)\n return null;\n let T = Number.MAX_VALUE, E = T, b, S, C;\n for (let P = 0; P < v.length; P++)\n b = v[P], S = x[b], C = m[b], u = (e - C.x) * S.x + (t - C.y) * S.y + (i - C.z) * S.z, (!r || r && n && u >= 0 || r && !n && u <= 0) && (u = S.x * C.x + S.y * C.y + S.z * C.z, d = -(S.x * e + S.y * t + S.z * i - u) / (S.x * S.x + S.y * S.y + S.z * S.z), f = e + S.x * d, p = t + S.y * d, _ = i + S.z * d, l = f - e, h = p - t, c = _ - i, E = l * l + h * h + c * c, E < T && (T = E, o = b, s && (s.x = f, s.y = p, s.z = _)));\n return o;\n }\n /**\n * Returns the object \"parameter\" set with all the expected parameters for facetData computation by ComputeNormals()\n * @returns the parameters\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData\n */\n getFacetDataParameters() {\n return this._internalAbstractMeshDataInfo._facetData.facetParameters;\n }\n /**\n * Disables the feature FacetData and frees the related memory\n * @returns the current mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData\n */\n disableFacetData() {\n const e = this._internalAbstractMeshDataInfo._facetData;\n return e.facetDataEnabled && (e.facetDataEnabled = !1, e.facetPositions = [], e.facetNormals = [], e.facetPartitioning = new Array(), e.facetParameters = null, e.depthSortedIndices = new Uint32Array(0)), this;\n }\n /**\n * Updates the AbstractMesh indices array\n * @param indices defines the data source\n * @param offset defines the offset in the index buffer where to store the new data (can be null)\n * @param gpuMemoryOnly defines a boolean indicating that only the GPU memory must be updated leaving the CPU version of the indices unchanged (false by default)\n * @returns the current mesh\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updateIndices(e, t, i = !1) {\n return this;\n }\n /**\n * Creates new normals data for the mesh\n * @param updatable defines if the normal vertex buffer must be flagged as updatable\n * @returns the current mesh\n */\n createNormals(e) {\n const t = this.getVerticesData(R.PositionKind), i = this.getIndices();\n let s;\n return this.isVerticesDataPresent(R.NormalKind) ? s = this.getVerticesData(R.NormalKind) : s = [], ge.ComputeNormals(t, i, s, { useRightHandedSystem: this.getScene().useRightHandedSystem }), this.setVerticesData(R.NormalKind, s, e), this;\n }\n /**\n * Align the mesh with a normal\n * @param normal defines the normal to use\n * @param upDirection can be used to redefined the up vector to use (will use the (0, 1, 0) by default)\n * @returns the current mesh\n */\n alignWithNormal(e, t) {\n t || (t = zs.Y);\n const i = w.Vector3[0], s = w.Vector3[1];\n return g.CrossToRef(t, e, s), g.CrossToRef(e, s, i), this.rotationQuaternion ? se.RotationQuaternionFromAxisToRef(i, e, s, this.rotationQuaternion) : g.RotationFromAxisToRef(i, e, s, this.rotation), this;\n }\n /** @internal */\n _checkOcclusionQuery() {\n return !1;\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Disables the mesh edge rendering mode\n * @returns the currentAbstractMesh\n */\n disableEdgesRendering() {\n throw $e(\"EdgesRenderer\");\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Enables the edge rendering mode on the mesh.\n * This mode makes the mesh edges visible\n * @param epsilon defines the maximal distance between two angles to detect a face\n * @param checkVerticesInsteadOfIndices indicates that we should check vertex list directly instead of faces\n * @param options options to the edge renderer\n * @returns the currentAbstractMesh\n * @see https://www.babylonjs-playground.com/#19O9TU#0\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n enableEdgesRendering(e, t, i) {\n throw $e(\"EdgesRenderer\");\n }\n /**\n * This function returns all of the particle systems in the scene that use the mesh as an emitter.\n * @returns an array of particle systems in the scene that use the mesh as an emitter\n */\n getConnectedParticleSystems() {\n return this._scene.particleSystems.filter((e) => e.emitter === this);\n }\n}\nPt.OCCLUSION_TYPE_NONE = 0;\nPt.OCCLUSION_TYPE_OPTIMISTIC = 1;\nPt.OCCLUSION_TYPE_STRICT = 2;\nPt.OCCLUSION_ALGORITHM_TYPE_ACCURATE = 0;\nPt.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE = 1;\nPt.CULLINGSTRATEGY_STANDARD = 0;\nPt.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY = 1;\nPt.CULLINGSTRATEGY_OPTIMISTIC_INCLUSION = 2;\nPt.CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY = 3;\ny([\n co.filter((...[a, e, t, i, s]) => !Array.isArray(a) && !Array.isArray(e) && !Array.isArray(t) && !Array.isArray(i) && !Array.isArray(s))\n], Pt, \"_ApplySkeleton\", null);\nU(\"BABYLON.AbstractMesh\", Pt);\nclass To {\n /**\n * Creates a material stencil state instance\n */\n constructor() {\n this.reset();\n }\n /**\n * Resets all the stencil states to default values\n */\n reset() {\n this.enabled = !1, this.mask = 255, this.func = 519, this.funcRef = 1, this.funcMask = 255, this.opStencilFail = 7680, this.opDepthFail = 7680, this.opStencilDepthPass = 7681;\n }\n /**\n * Gets or sets the stencil function\n */\n get func() {\n return this._func;\n }\n set func(e) {\n this._func = e;\n }\n /**\n * Gets or sets the stencil function reference\n */\n get funcRef() {\n return this._funcRef;\n }\n set funcRef(e) {\n this._funcRef = e;\n }\n /**\n * Gets or sets the stencil function mask\n */\n get funcMask() {\n return this._funcMask;\n }\n set funcMask(e) {\n this._funcMask = e;\n }\n /**\n * Gets or sets the operation when the stencil test fails\n */\n get opStencilFail() {\n return this._opStencilFail;\n }\n set opStencilFail(e) {\n this._opStencilFail = e;\n }\n /**\n * Gets or sets the operation when the depth test fails\n */\n get opDepthFail() {\n return this._opDepthFail;\n }\n set opDepthFail(e) {\n this._opDepthFail = e;\n }\n /**\n * Gets or sets the operation when the stencil+depth test succeeds\n */\n get opStencilDepthPass() {\n return this._opStencilDepthPass;\n }\n set opStencilDepthPass(e) {\n this._opStencilDepthPass = e;\n }\n /**\n * Gets or sets the stencil mask\n */\n get mask() {\n return this._mask;\n }\n set mask(e) {\n this._mask = e;\n }\n /**\n * Enables or disables the stencil test\n */\n get enabled() {\n return this._enabled;\n }\n set enabled(e) {\n this._enabled = e;\n }\n /**\n * Get the current class name, useful for serialization or dynamic coding.\n * @returns \"MaterialStencilState\"\n */\n getClassName() {\n return \"MaterialStencilState\";\n }\n /**\n * Makes a duplicate of the current configuration into another one.\n * @param stencilState defines stencil state where to copy the info\n */\n copyTo(e) {\n Ae.Clone(() => e, this);\n }\n /**\n * Serializes this stencil configuration.\n * @returns - An object with the serialized config.\n */\n serialize() {\n return Ae.Serialize(this);\n }\n /**\n * Parses a stencil state configuration from a serialized object.\n * @param source - Serialized object.\n * @param scene Defines the scene we are parsing for\n * @param rootUrl Defines the rootUrl to load from\n */\n parse(e, t, i) {\n Ae.Parse(() => this, e, t, i);\n }\n}\ny([\n I()\n], To.prototype, \"func\", null);\ny([\n I()\n], To.prototype, \"funcRef\", null);\ny([\n I()\n], To.prototype, \"funcMask\", null);\ny([\n I()\n], To.prototype, \"opStencilFail\", null);\ny([\n I()\n], To.prototype, \"opDepthFail\", null);\ny([\n I()\n], To.prototype, \"opStencilDepthPass\", null);\ny([\n I()\n], To.prototype, \"mask\", null);\ny([\n I()\n], To.prototype, \"enabled\", null);\nfunction Ln(a) {\n a.indexOf(\"vClipPlane\") === -1 && a.push(\"vClipPlane\"), a.indexOf(\"vClipPlane2\") === -1 && a.push(\"vClipPlane2\"), a.indexOf(\"vClipPlane3\") === -1 && a.push(\"vClipPlane3\"), a.indexOf(\"vClipPlane4\") === -1 && a.push(\"vClipPlane4\"), a.indexOf(\"vClipPlane5\") === -1 && a.push(\"vClipPlane5\"), a.indexOf(\"vClipPlane6\") === -1 && a.push(\"vClipPlane6\");\n}\nfunction tl(a, e, t) {\n const i = !!(a.clipPlane ?? e.clipPlane), s = !!(a.clipPlane2 ?? e.clipPlane2), r = !!(a.clipPlane3 ?? e.clipPlane3), n = !!(a.clipPlane4 ?? e.clipPlane4), o = !!(a.clipPlane5 ?? e.clipPlane5), l = !!(a.clipPlane6 ?? e.clipPlane6);\n i && t.push(\"#define CLIPPLANE\"), s && t.push(\"#define CLIPPLANE2\"), r && t.push(\"#define CLIPPLANE3\"), n && t.push(\"#define CLIPPLANE4\"), o && t.push(\"#define CLIPPLANE5\"), l && t.push(\"#define CLIPPLANE6\");\n}\nfunction sw(a, e, t) {\n let i = !1;\n const s = !!(a.clipPlane ?? e.clipPlane), r = !!(a.clipPlane2 ?? e.clipPlane2), n = !!(a.clipPlane3 ?? e.clipPlane3), o = !!(a.clipPlane4 ?? e.clipPlane4), l = !!(a.clipPlane5 ?? e.clipPlane5), h = !!(a.clipPlane6 ?? e.clipPlane6);\n return t.CLIPPLANE !== s && (t.CLIPPLANE = s, i = !0), t.CLIPPLANE2 !== r && (t.CLIPPLANE2 = r, i = !0), t.CLIPPLANE3 !== n && (t.CLIPPLANE3 = n, i = !0), t.CLIPPLANE4 !== o && (t.CLIPPLANE4 = o, i = !0), t.CLIPPLANE5 !== l && (t.CLIPPLANE5 = l, i = !0), t.CLIPPLANE6 !== h && (t.CLIPPLANE6 = h, i = !0), i;\n}\nfunction Tn(a, e, t) {\n let i = e.clipPlane ?? t.clipPlane;\n sh(a, \"vClipPlane\", i), i = e.clipPlane2 ?? t.clipPlane2, sh(a, \"vClipPlane2\", i), i = e.clipPlane3 ?? t.clipPlane3, sh(a, \"vClipPlane3\", i), i = e.clipPlane4 ?? t.clipPlane4, sh(a, \"vClipPlane4\", i), i = e.clipPlane5 ?? t.clipPlane5, sh(a, \"vClipPlane5\", i), i = e.clipPlane6 ?? t.clipPlane6, sh(a, \"vClipPlane6\", i);\n}\nfunction sh(a, e, t) {\n t && a.setFloat4(e, t.normal.x, t.normal.y, t.normal.z, t.d);\n}\nconst Pb = re.Black(), Mb = { NUM_MORPH_INFLUENCERS: 0 };\nfunction Oa(a, e, t) {\n if (!a || a.LOGARITHMICDEPTH || a.indexOf && a.indexOf(\"LOGARITHMICDEPTH\") >= 0) {\n const i = t.activeCamera;\n i.mode === 1 && L.Error(\"Logarithmic depth is not compatible with orthographic cameras!\", 20), e.setFloat(\"logarithmicDepthConstant\", 2 / (Math.log(i.maxZ + 1) / Math.LN2));\n }\n}\nfunction il(a, e, t, i = !1) {\n t && a.fogEnabled && (!e || e.applyFog) && a.fogMode !== 0 && (t.setFloat4(\"vFogInfos\", a.fogMode, a.fogStart, a.fogEnd, a.fogDensity), i ? (a.fogColor.toLinearSpaceToRef(Pb, a.getEngine().useExactSrgbConversions), t.setColor3(\"vFogColor\", Pb)) : t.setColor3(\"vFogColor\", a.fogColor));\n}\nfunction mc(a, e, t) {\n Mb.NUM_MORPH_INFLUENCERS = t, p_(a, e, Mb);\n}\nfunction p_(a, e, t) {\n const i = t.NUM_MORPH_INFLUENCERS;\n if (i > 0 && Me.LastCreatedEngine) {\n const s = Me.LastCreatedEngine.getCaps().maxVertexAttribs, r = e.morphTargetManager;\n if (r != null && r.isUsingTextureForTargets)\n return;\n const n = r && r.supportsNormals && t.NORMAL, o = r && r.supportsTangents && t.TANGENT, l = r && r.supportsUVs && t.UV1;\n for (let h = 0; h < i; h++)\n a.push(\"position\" + h), n && a.push(\"normal\" + h), o && a.push(\"tangent\" + h), l && a.push(\"uv_\" + h), a.length > s && L.Error(\"Cannot add more vertex attributes for mesh \" + e.name);\n }\n}\nfunction So(a, e = !1) {\n a.push(\"world0\"), a.push(\"world1\"), a.push(\"world2\"), a.push(\"world3\"), e && (a.push(\"previousWorld0\"), a.push(\"previousWorld1\"), a.push(\"previousWorld2\"), a.push(\"previousWorld3\"));\n}\nfunction na(a, e) {\n const t = a.morphTargetManager;\n !a || !t || e.setFloatArray(\"morphTargetInfluences\", t.influences);\n}\nfunction hf(a, e) {\n e.bindToEffect(a, \"Scene\");\n}\nfunction ci(a, e, t) {\n e._needUVs = !0, e[t] = !0, a.optimizeUVAllocation && a.getTextureMatrix().isIdentityAs3x2() ? (e[t + \"DIRECTUV\"] = a.coordinatesIndex + 1, e[\"MAINUV\" + (a.coordinatesIndex + 1)] = !0) : e[t + \"DIRECTUV\"] = 0;\n}\nfunction pi(a, e, t) {\n const i = a.getTextureMatrix();\n e.updateMatrix(t + \"Matrix\", i);\n}\nfunction cf(a, e, t) {\n t.BAKED_VERTEX_ANIMATION_TEXTURE && t.INSTANCES && a.push(\"bakedVertexAnimationSettingsInstanced\");\n}\nfunction rw(a, e) {\n return e.set(a), e;\n}\nfunction Fl(a, e, t) {\n if (!(!e || !a) && (a.computeBonesUsingShaders && e._bonesComputationForcedToCPU && (a.computeBonesUsingShaders = !1), a.useBones && a.computeBonesUsingShaders && a.skeleton)) {\n const i = a.skeleton;\n if (i.isUsingTextureForMatrices && e.getUniformIndex(\"boneTextureWidth\") > -1) {\n const s = i.getTransformMatrixTexture(a);\n e.setTexture(\"boneSampler\", s), e.setFloat(\"boneTextureWidth\", 4 * (i.bones.length + 1));\n } else {\n const s = i.getTransformMatrices(a);\n s && (e.setMatrices(\"mBones\", s), t && a.getScene().prePassRenderer && a.getScene().prePassRenderer.getIndex(2) && (t.previousBones[a.uniqueId] || (t.previousBones[a.uniqueId] = s.slice()), e.setMatrices(\"mPreviousBones\", t.previousBones[a.uniqueId]), rw(s, t.previousBones[a.uniqueId])));\n }\n }\n}\nfunction nw(a, e, t) {\n a.transferToEffect(e, t + \"\");\n}\nfunction __(a, e, t, i, s, r = !0) {\n a._bindLight(e, t, i, s, r);\n}\nfunction gc(a, e, t, i, s = 4) {\n const r = Math.min(e.lightSources.length, s);\n for (let n = 0; n < r; n++) {\n const o = e.lightSources[n];\n __(o, n, a, t, typeof i == \"boolean\" ? i : i.SPECULARTERM, e.receiveShadows);\n }\n}\nfunction m_(a, e, t, i) {\n t.NUM_BONE_INFLUENCERS > 0 && (i.addCPUSkinningFallback(0, e), a.push(\"matricesIndices\"), a.push(\"matricesWeights\"), t.NUM_BONE_INFLUENCERS > 4 && (a.push(\"matricesIndicesExtra\"), a.push(\"matricesWeightsExtra\")));\n}\nfunction uf(a, e) {\n (e.INSTANCES || e.THIN_INSTANCES) && So(a, !!e.PREPASS_VELOCITY), e.INSTANCESCOLOR && a.push(\"instanceColor\");\n}\nfunction g_(a, e, t = 4, i = 0) {\n let s = 0;\n for (let r = 0; r < t && a[\"LIGHT\" + r]; r++)\n r > 0 && (s = i + r, e.addFallback(s, \"LIGHT\" + r)), a.SHADOWS || (a[\"SHADOW\" + r] && e.addFallback(i, \"SHADOW\" + r), a[\"SHADOWPCF\" + r] && e.addFallback(i, \"SHADOWPCF\" + r), a[\"SHADOWPCSS\" + r] && e.addFallback(i, \"SHADOWPCSS\" + r), a[\"SHADOWPOISSON\" + r] && e.addFallback(i, \"SHADOWPOISSON\" + r), a[\"SHADOWESM\" + r] && e.addFallback(i, \"SHADOWESM\" + r), a[\"SHADOWCLOSEESM\" + r] && e.addFallback(i, \"SHADOWCLOSEESM\" + r));\n return s++;\n}\nfunction Vx(a, e) {\n return e.fogEnabled && a.applyFog && e.fogMode !== 0;\n}\nfunction df(a, e, t, i, s, r, n, o = !1) {\n n._areMiscDirty && (n.LOGARITHMICDEPTH = t, n.POINTSIZE = i, n.FOG = s && Vx(a, e), n.NONUNIFORMSCALING = a.nonUniformScaling, n.ALPHATEST = r, n.DECAL_AFTER_DETAIL = o);\n}\nfunction xc(a, e, t, i, s = 4, r = !1) {\n if (!t._areLightsDirty)\n return t._needNormals;\n let n = 0;\n const o = {\n needNormals: t._needNormals,\n needRebuild: !1,\n lightmapMode: !1,\n shadowEnabled: !1,\n specularEnabled: !1\n };\n if (a.lightsEnabled && !r) {\n for (const h of e.lightSources)\n if (x_(a, e, h, n, t, i, o), n++, n === s)\n break;\n }\n t.SPECULARTERM = o.specularEnabled, t.SHADOWS = o.shadowEnabled;\n for (let h = n; h < s; h++)\n t[\"LIGHT\" + h] !== void 0 && (t[\"LIGHT\" + h] = !1, t[\"HEMILIGHT\" + h] = !1, t[\"POINTLIGHT\" + h] = !1, t[\"DIRLIGHT\" + h] = !1, t[\"SPOTLIGHT\" + h] = !1, t[\"SHADOW\" + h] = !1, t[\"SHADOWCSM\" + h] = !1, t[\"SHADOWCSMDEBUG\" + h] = !1, t[\"SHADOWCSMNUM_CASCADES\" + h] = !1, t[\"SHADOWCSMUSESHADOWMAXZ\" + h] = !1, t[\"SHADOWCSMNOBLEND\" + h] = !1, t[\"SHADOWCSM_RIGHTHANDED\" + h] = !1, t[\"SHADOWPCF\" + h] = !1, t[\"SHADOWPCSS\" + h] = !1, t[\"SHADOWPOISSON\" + h] = !1, t[\"SHADOWESM\" + h] = !1, t[\"SHADOWCLOSEESM\" + h] = !1, t[\"SHADOWCUBE\" + h] = !1, t[\"SHADOWLOWQUALITY\" + h] = !1, t[\"SHADOWMEDIUMQUALITY\" + h] = !1);\n const l = a.getEngine().getCaps();\n return t.SHADOWFLOAT === void 0 && (o.needRebuild = !0), t.SHADOWFLOAT = o.shadowEnabled && (l.textureFloatRender && l.textureFloatLinearFiltering || l.textureHalfFloatRender && l.textureHalfFloatLinearFiltering), t.LIGHTMAPEXCLUDED = o.lightmapMode, o.needRebuild && t.rebuild(), o.needNormals;\n}\nfunction x_(a, e, t, i, s, r, n) {\n switch (n.needNormals = !0, s[\"LIGHT\" + i] === void 0 && (n.needRebuild = !0), s[\"LIGHT\" + i] = !0, s[\"SPOTLIGHT\" + i] = !1, s[\"HEMILIGHT\" + i] = !1, s[\"POINTLIGHT\" + i] = !1, s[\"DIRLIGHT\" + i] = !1, t.prepareLightSpecificDefines(s, i), s[\"LIGHT_FALLOFF_PHYSICAL\" + i] = !1, s[\"LIGHT_FALLOFF_GLTF\" + i] = !1, s[\"LIGHT_FALLOFF_STANDARD\" + i] = !1, t.falloffType) {\n case Qt.FALLOFF_GLTF:\n s[\"LIGHT_FALLOFF_GLTF\" + i] = !0;\n break;\n case Qt.FALLOFF_PHYSICAL:\n s[\"LIGHT_FALLOFF_PHYSICAL\" + i] = !0;\n break;\n case Qt.FALLOFF_STANDARD:\n s[\"LIGHT_FALLOFF_STANDARD\" + i] = !0;\n break;\n }\n if (r && !t.specular.equalsFloats(0, 0, 0) && (n.specularEnabled = !0), s[\"SHADOW\" + i] = !1, s[\"SHADOWCSM\" + i] = !1, s[\"SHADOWCSMDEBUG\" + i] = !1, s[\"SHADOWCSMNUM_CASCADES\" + i] = !1, s[\"SHADOWCSMUSESHADOWMAXZ\" + i] = !1, s[\"SHADOWCSMNOBLEND\" + i] = !1, s[\"SHADOWCSM_RIGHTHANDED\" + i] = !1, s[\"SHADOWPCF\" + i] = !1, s[\"SHADOWPCSS\" + i] = !1, s[\"SHADOWPOISSON\" + i] = !1, s[\"SHADOWESM\" + i] = !1, s[\"SHADOWCLOSEESM\" + i] = !1, s[\"SHADOWCUBE\" + i] = !1, s[\"SHADOWLOWQUALITY\" + i] = !1, s[\"SHADOWMEDIUMQUALITY\" + i] = !1, e && e.receiveShadows && a.shadowsEnabled && t.shadowEnabled) {\n const o = t.getShadowGenerator(a.activeCamera) ?? t.getShadowGenerator();\n if (o) {\n const l = o.getShadowMap();\n l && l.renderList && l.renderList.length > 0 && (n.shadowEnabled = !0, o.prepareDefines(s, i));\n }\n }\n t.lightmapMode != Qt.LIGHTMAP_DEFAULT ? (n.lightmapMode = !0, s[\"LIGHTMAPEXCLUDED\" + i] = !0, s[\"LIGHTMAPNOSPECULAR\" + i] = t.lightmapMode == Qt.LIGHTMAP_SHADOWSONLY) : (s[\"LIGHTMAPEXCLUDED\" + i] = !1, s[\"LIGHTMAPNOSPECULAR\" + i] = !1);\n}\nfunction ff(a, e, t, i, s, r = null, n = !1) {\n let o = zx(a, i);\n r !== !1 && (o = sw(t, a, i)), i.DEPTHPREPASS !== !e.getColorWrite() && (i.DEPTHPREPASS = !i.DEPTHPREPASS, o = !0), i.INSTANCES !== s && (i.INSTANCES = s, o = !0), i.THIN_INSTANCES !== n && (i.THIN_INSTANCES = n, o = !0), o && i.markAsUnprocessed();\n}\nfunction Ux(a, e) {\n if (a.useBones && a.computeBonesUsingShaders && a.skeleton) {\n e.NUM_BONE_INFLUENCERS = a.numBoneInfluencers;\n const t = e.BONETEXTURE !== void 0;\n if (a.skeleton.isUsingTextureForMatrices && t)\n e.BONETEXTURE = !0;\n else {\n e.BonesPerMesh = a.skeleton.bones.length + 1, e.BONETEXTURE = t ? !1 : void 0;\n const i = a.getScene().prePassRenderer;\n if (i && i.enabled) {\n const s = i.excludedSkinnedMesh.indexOf(a) === -1;\n e.BONES_VELOCITY_ENABLED = s;\n }\n }\n } else\n e.NUM_BONE_INFLUENCERS = 0, e.BonesPerMesh = 0, e.BONETEXTURE !== void 0 && (e.BONETEXTURE = !1);\n}\nfunction kx(a, e) {\n const t = a.morphTargetManager;\n t ? (e.MORPHTARGETS_UV = t.supportsUVs && e.UV1, e.MORPHTARGETS_TANGENT = t.supportsTangents && e.TANGENT, e.MORPHTARGETS_NORMAL = t.supportsNormals && e.NORMAL, e.NUM_MORPH_INFLUENCERS = t.numMaxInfluencers || t.numInfluencers, e.MORPHTARGETS = e.NUM_MORPH_INFLUENCERS > 0, e.MORPHTARGETS_TEXTURE = t.isUsingTextureForTargets) : (e.MORPHTARGETS_UV = !1, e.MORPHTARGETS_TANGENT = !1, e.MORPHTARGETS_NORMAL = !1, e.MORPHTARGETS = !1, e.NUM_MORPH_INFLUENCERS = 0);\n}\nfunction KC(a, e) {\n const t = a.bakedVertexAnimationManager;\n e.BAKED_VERTEX_ANIMATION_TEXTURE = !!(t && t.isEnabled);\n}\nfunction pf(a, e, t, i, s = !1, r = !0, n = !0) {\n if (!e._areAttributesDirty && e._needNormals === e._normals && e._needUVs === e._uvs)\n return !1;\n e._normals = e._needNormals, e._uvs = e._needUVs, e.NORMAL = e._needNormals && a.isVerticesDataPresent(\"normal\"), e._needNormals && a.isVerticesDataPresent(\"tangent\") && (e.TANGENT = !0);\n for (let o = 1; o <= 6; ++o)\n e[\"UV\" + o] = e._needUVs ? a.isVerticesDataPresent(`uv${o === 1 ? \"\" : o}`) : !1;\n if (t) {\n const o = a.useVertexColors && a.isVerticesDataPresent(\"color\");\n e.VERTEXCOLOR = o, e.VERTEXALPHA = a.hasVertexAlpha && o && r;\n }\n return a.isVerticesDataPresent(\"instanceColor\") && (a.hasInstances || a.hasThinInstances) && (e.INSTANCESCOLOR = !0), i && Ux(a, e), s && kx(a, e), n && KC(a, e), !0;\n}\nfunction _f(a, e) {\n if (a.activeCamera) {\n const t = e.MULTIVIEW;\n e.MULTIVIEW = a.activeCamera.outputRenderTarget !== null && a.activeCamera.outputRenderTarget.getViewCount() > 1, e.MULTIVIEW != t && e.markAsUnprocessed();\n }\n}\nfunction Gx(a, e, t) {\n const i = e.ORDER_INDEPENDENT_TRANSPARENCY, s = e.ORDER_INDEPENDENT_TRANSPARENCY_16BITS;\n e.ORDER_INDEPENDENT_TRANSPARENCY = a.useOrderIndependentTransparency && t, e.ORDER_INDEPENDENT_TRANSPARENCY_16BITS = !a.getEngine().getCaps().textureFloatLinearFiltering, (i !== e.ORDER_INDEPENDENT_TRANSPARENCY || s !== e.ORDER_INDEPENDENT_TRANSPARENCY_16BITS) && e.markAsUnprocessed();\n}\nfunction v_(a, e, t) {\n const i = e.PREPASS;\n if (!e._arePrePassDirty)\n return;\n const s = [\n {\n type: 1,\n define: \"PREPASS_POSITION\",\n index: \"PREPASS_POSITION_INDEX\"\n },\n {\n type: 2,\n define: \"PREPASS_VELOCITY\",\n index: \"PREPASS_VELOCITY_INDEX\"\n },\n {\n type: 3,\n define: \"PREPASS_REFLECTIVITY\",\n index: \"PREPASS_REFLECTIVITY_INDEX\"\n },\n {\n type: 0,\n define: \"PREPASS_IRRADIANCE\",\n index: \"PREPASS_IRRADIANCE_INDEX\"\n },\n {\n type: 7,\n define: \"PREPASS_ALBEDO_SQRT\",\n index: \"PREPASS_ALBEDO_SQRT_INDEX\"\n },\n {\n type: 5,\n define: \"PREPASS_DEPTH\",\n index: \"PREPASS_DEPTH_INDEX\"\n },\n {\n type: 6,\n define: \"PREPASS_NORMAL\",\n index: \"PREPASS_NORMAL_INDEX\"\n }\n ];\n if (a.prePassRenderer && a.prePassRenderer.enabled && t) {\n e.PREPASS = !0, e.SCENE_MRT_COUNT = a.prePassRenderer.mrtCount, e.PREPASS_NORMAL_WORLDSPACE = a.prePassRenderer.generateNormalsInWorldSpace;\n for (let r = 0; r < s.length; r++) {\n const n = a.prePassRenderer.getIndex(s[r].type);\n n !== -1 ? (e[s[r].define] = !0, e[s[r].index] = n) : e[s[r].define] = !1;\n }\n } else {\n e.PREPASS = !1;\n for (let r = 0; r < s.length; r++)\n e[s[r].define] = !1;\n }\n e.PREPASS != i && (e.markAsUnprocessed(), e.markAsImageProcessingDirty());\n}\nfunction zx(a, e) {\n let t = !1;\n if (a.activeCamera) {\n const i = e.CAMERA_ORTHOGRAPHIC ? 1 : 0, s = e.CAMERA_PERSPECTIVE ? 1 : 0, r = a.activeCamera.mode === 1 ? 1 : 0, n = a.activeCamera.mode === 0 ? 1 : 0;\n (i ^ r || s ^ n) && (e.CAMERA_ORTHOGRAPHIC = r === 1, e.CAMERA_PERSPECTIVE = n === 1, t = !0);\n }\n return t;\n}\nfunction T_(a, e, t, i, s = null, r = !1) {\n s && s.push(\"Light\" + a), !r && (e.push(\"vLightData\" + a, \"vLightDiffuse\" + a, \"vLightSpecular\" + a, \"vLightDirection\" + a, \"vLightFalloff\" + a, \"vLightGround\" + a, \"lightMatrix\" + a, \"shadowsInfo\" + a, \"depthValues\" + a), t.push(\"shadowTexture\" + a), t.push(\"depthTexture\" + a), e.push(\"viewFrustumZ\" + a, \"cascadeBlendFactor\" + a, \"lightSizeUVCorrection\" + a, \"depthCorrection\" + a, \"penumbraDarkness\" + a, \"frustumLengths\" + a), i && (t.push(\"projectionLightTexture\" + a), e.push(\"textureProjectionMatrix\" + a)));\n}\nfunction mf(a, e, t, i = 4) {\n let s, r = null;\n if (a.uniformsNames) {\n const n = a;\n s = n.uniformsNames, r = n.uniformBuffersNames, e = n.samplers, t = n.defines, i = n.maxSimultaneousLights || 0;\n } else\n s = a, e || (e = []);\n for (let n = 0; n < i && t[\"LIGHT\" + n]; n++)\n T_(n, s, e, t[\"PROJECTEDLIGHTTEXTURE\" + n], r);\n t.NUM_MORPH_INFLUENCERS && (s.push(\"morphTargetInfluences\"), s.push(\"morphTargetCount\")), t.BAKED_VERTEX_ANIMATION_TEXTURE && (s.push(\"bakedVertexAnimationSettings\"), s.push(\"bakedVertexAnimationTextureSizeInverted\"), s.push(\"bakedVertexAnimationTime\"), e.push(\"bakedVertexAnimationTexture\"));\n}\nclass ue {\n /**\n * If the material can be rendered to several textures with MRT extension\n */\n get canRenderToMRT() {\n return !1;\n }\n /**\n * Sets the alpha value of the material\n */\n set alpha(e) {\n if (this._alpha === e)\n return;\n const t = this._alpha;\n this._alpha = e, (t === 1 || e === 1) && this.markAsDirty(ue.MiscDirtyFlag + ue.PrePassDirtyFlag);\n }\n /**\n * Gets the alpha value of the material\n */\n get alpha() {\n return this._alpha;\n }\n /**\n * Sets the culling state (true to enable culling, false to disable)\n */\n set backFaceCulling(e) {\n this._backFaceCulling !== e && (this._backFaceCulling = e, this.markAsDirty(ue.TextureDirtyFlag));\n }\n /**\n * Gets the culling state\n */\n get backFaceCulling() {\n return this._backFaceCulling;\n }\n /**\n * Sets the type of faces that should be culled (true for back faces, false for front faces)\n */\n set cullBackFaces(e) {\n this._cullBackFaces !== e && (this._cullBackFaces = e, this.markAsDirty(ue.TextureDirtyFlag));\n }\n /**\n * Gets the type of faces that should be culled\n */\n get cullBackFaces() {\n return this._cullBackFaces;\n }\n /**\n * Block the dirty-mechanism for this specific material\n * When set to false after being true the material will be marked as dirty.\n */\n get blockDirtyMechanism() {\n return this._blockDirtyMechanism;\n }\n set blockDirtyMechanism(e) {\n this._blockDirtyMechanism !== e && (this._blockDirtyMechanism = e, e || this.markDirty());\n }\n /**\n * This allows you to modify the material without marking it as dirty after every change.\n * This function should be used if you need to make more than one dirty-enabling change to the material - adding a texture, setting a new fill mode and so on.\n * The callback will pass the material as an argument, so you can make your changes to it.\n * @param callback the callback to be executed that will update the material\n */\n atomicMaterialsUpdate(e) {\n this.blockDirtyMechanism = !0;\n try {\n e(this);\n } finally {\n this.blockDirtyMechanism = !1;\n }\n }\n /**\n * Gets a boolean indicating that current material needs to register RTT\n */\n get hasRenderTargetTextures() {\n return this._eventInfo.hasRenderTargetTextures = !1, this._callbackPluginEventHasRenderTargetTextures(this._eventInfo), this._eventInfo.hasRenderTargetTextures;\n }\n /**\n * Called during a dispose event\n */\n set onDispose(e) {\n this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), this._onDisposeObserver = this.onDisposeObservable.add(e);\n }\n /**\n * An event triggered when the material is bound\n */\n get onBindObservable() {\n return this._onBindObservable || (this._onBindObservable = new G()), this._onBindObservable;\n }\n /**\n * Called during a bind event\n */\n set onBind(e) {\n this._onBindObserver && this.onBindObservable.remove(this._onBindObserver), this._onBindObserver = this.onBindObservable.add(e);\n }\n /**\n * An event triggered when the material is unbound\n */\n get onUnBindObservable() {\n return this._onUnBindObservable || (this._onUnBindObservable = new G()), this._onUnBindObservable;\n }\n /**\n * An event triggered when the effect is (re)created\n */\n get onEffectCreatedObservable() {\n return this._onEffectCreatedObservable || (this._onEffectCreatedObservable = new G()), this._onEffectCreatedObservable;\n }\n /**\n * Sets the value of the alpha mode.\n *\n * | Value | Type | Description |\n * | --- | --- | --- |\n * | 0 | ALPHA_DISABLE | |\n * | 1 | ALPHA_ADD | |\n * | 2 | ALPHA_COMBINE | |\n * | 3 | ALPHA_SUBTRACT | |\n * | 4 | ALPHA_MULTIPLY | |\n * | 5 | ALPHA_MAXIMIZED | |\n * | 6 | ALPHA_ONEONE | |\n * | 7 | ALPHA_PREMULTIPLIED | |\n * | 8 | ALPHA_PREMULTIPLIED_PORTERDUFF | |\n * | 9 | ALPHA_INTERPOLATE | |\n * | 10 | ALPHA_SCREENMODE | |\n *\n */\n set alphaMode(e) {\n this._alphaMode !== e && (this._alphaMode = e, this.markAsDirty(ue.TextureDirtyFlag));\n }\n /**\n * Gets the value of the alpha mode\n */\n get alphaMode() {\n return this._alphaMode;\n }\n /**\n * Sets the need depth pre-pass value\n */\n set needDepthPrePass(e) {\n this._needDepthPrePass !== e && (this._needDepthPrePass = e, this._needDepthPrePass && (this.checkReadyOnEveryCall = !0));\n }\n /**\n * Gets the depth pre-pass value\n */\n get needDepthPrePass() {\n return this._needDepthPrePass;\n }\n /**\n * Can this material render to prepass\n */\n get isPrePassCapable() {\n return !1;\n }\n /**\n * Sets the state for enabling fog\n */\n set fogEnabled(e) {\n this._fogEnabled !== e && (this._fogEnabled = e, this.markAsDirty(ue.MiscDirtyFlag));\n }\n /**\n * Gets the value of the fog enabled state\n */\n get fogEnabled() {\n return this._fogEnabled;\n }\n get wireframe() {\n switch (this._fillMode) {\n case ue.WireFrameFillMode:\n case ue.LineListDrawMode:\n case ue.LineLoopDrawMode:\n case ue.LineStripDrawMode:\n return !0;\n }\n return this._scene.forceWireframe;\n }\n /**\n * Sets the state of wireframe mode\n */\n set wireframe(e) {\n this.fillMode = e ? ue.WireFrameFillMode : ue.TriangleFillMode;\n }\n /**\n * Gets the value specifying if point clouds are enabled\n */\n get pointsCloud() {\n switch (this._fillMode) {\n case ue.PointFillMode:\n case ue.PointListDrawMode:\n return !0;\n }\n return this._scene.forcePointsCloud;\n }\n /**\n * Sets the state of point cloud mode\n */\n set pointsCloud(e) {\n this.fillMode = e ? ue.PointFillMode : ue.TriangleFillMode;\n }\n /**\n * Gets the material fill mode\n */\n get fillMode() {\n return this._fillMode;\n }\n /**\n * Sets the material fill mode\n */\n set fillMode(e) {\n this._fillMode !== e && (this._fillMode = e, this.markAsDirty(ue.MiscDirtyFlag));\n }\n /**\n * In case the depth buffer does not allow enough depth precision for your scene (might be the case in large scenes)\n * You can try switching to logarithmic depth.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/advanced/logarithmicDepthBuffer\n */\n get useLogarithmicDepth() {\n return this._useLogarithmicDepth;\n }\n set useLogarithmicDepth(e) {\n const t = this.getScene().getEngine().getCaps().fragmentDepthSupported;\n e && !t && L.Warn(\"Logarithmic depth has been requested for a material on a device that doesn't support it.\"), this._useLogarithmicDepth = e && t, this._markAllSubMeshesAsMiscDirty();\n }\n /** @internal */\n _getDrawWrapper() {\n return this._drawWrapper;\n }\n /**\n * @internal\n */\n _setDrawWrapper(e) {\n this._drawWrapper = e;\n }\n /**\n * Creates a material instance\n * @param name defines the name of the material\n * @param scene defines the scene to reference\n * @param doNotAdd specifies if the material should be added to the scene\n */\n constructor(e, t, i) {\n this.shadowDepthWrapper = null, this.allowShaderHotSwapping = !0, this.metadata = null, this.reservedDataStore = null, this.checkReadyOnEveryCall = !1, this.checkReadyOnlyOnce = !1, this.state = \"\", this._alpha = 1, this._backFaceCulling = !0, this._cullBackFaces = !0, this._blockDirtyMechanism = !1, this.sideOrientation = null, this.onCompiled = null, this.onError = null, this.getRenderTargetTextures = null, this.doNotSerialize = !1, this._storeEffectOnSubMeshes = !1, this.animations = null, this.onDisposeObservable = new G(), this._onDisposeObserver = null, this._onUnBindObservable = null, this._onBindObserver = null, this._alphaMode = 2, this._needDepthPrePass = !1, this.disableDepthWrite = !1, this.disableColorWrite = !1, this.forceDepthWrite = !1, this.depthFunction = 0, this.separateCullingPass = !1, this._fogEnabled = !0, this.pointSize = 1, this.zOffset = 0, this.zOffsetUnits = 0, this.stencil = new To(), this._useUBO = !1, this._fillMode = ue.TriangleFillMode, this._cachedDepthWriteState = !1, this._cachedColorWriteState = !1, this._cachedDepthFunctionState = 0, this._indexInSceneMaterialArray = -1, this.meshMap = null, this._parentContainer = null, this._uniformBufferLayoutBuilt = !1, this._eventInfo = {}, this._callbackPluginEventGeneric = () => {\n }, this._callbackPluginEventIsReadyForSubMesh = () => {\n }, this._callbackPluginEventPrepareDefines = () => {\n }, this._callbackPluginEventPrepareDefinesBeforeAttributes = () => {\n }, this._callbackPluginEventHardBindForSubMesh = () => {\n }, this._callbackPluginEventBindForSubMesh = () => {\n }, this._callbackPluginEventHasRenderTargetTextures = () => {\n }, this._callbackPluginEventFillRenderTargetTextures = () => {\n }, this._forceAlphaTest = !1, this._transparencyMode = null, this.name = e;\n const s = t || Me.LastCreatedScene;\n s && (this._scene = s, this._dirtyCallbacks = {}, this._dirtyCallbacks[1] = this._markAllSubMeshesAsTexturesDirty.bind(this), this._dirtyCallbacks[2] = this._markAllSubMeshesAsLightsDirty.bind(this), this._dirtyCallbacks[4] = this._markAllSubMeshesAsFresnelDirty.bind(this), this._dirtyCallbacks[8] = this._markAllSubMeshesAsAttributesDirty.bind(this), this._dirtyCallbacks[16] = this._markAllSubMeshesAsMiscDirty.bind(this), this._dirtyCallbacks[32] = this._markAllSubMeshesAsPrePassDirty.bind(this), this._dirtyCallbacks[63] = this._markAllSubMeshesAsAllDirty.bind(this), this.id = e || J.RandomId(), this.uniqueId = this._scene.getUniqueId(), this._materialContext = this._scene.getEngine().createMaterialContext(), this._drawWrapper = new Ds(this._scene.getEngine(), !1), this._drawWrapper.materialContext = this._materialContext, this._uniformBuffer = new Ve(this._scene.getEngine(), void 0, void 0, e), this._useUBO = this.getScene().getEngine().supportsUniformBuffers, i || this._scene.addMaterial(this), this._scene.useMaterialMeshMap && (this.meshMap = {}), ue.OnEventObservable.notifyObservers(\n this,\n 1\n /* MaterialPluginEvent.Created */\n ));\n }\n /**\n * Returns a string representation of the current material\n * @param fullDetails defines a boolean indicating which levels of logging is desired\n * @returns a string with material information\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n toString(e) {\n return \"Name: \" + this.name;\n }\n /**\n * Gets the class name of the material\n * @returns a string with the class name of the material\n */\n getClassName() {\n return \"Material\";\n }\n /** @internal */\n get _isMaterial() {\n return !0;\n }\n /**\n * Specifies if updates for the material been locked\n */\n get isFrozen() {\n return this.checkReadyOnlyOnce;\n }\n /**\n * Locks updates for the material\n */\n freeze() {\n this.markDirty(), this.checkReadyOnlyOnce = !0;\n }\n /**\n * Unlocks updates for the material\n */\n unfreeze() {\n this.markDirty(), this.checkReadyOnlyOnce = !1;\n }\n /**\n * Specifies if the material is ready to be used\n * @param mesh defines the mesh to check\n * @param useInstances specifies if instances should be used\n * @returns a boolean indicating if the material is ready to be used\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isReady(e, t) {\n return !0;\n }\n /**\n * Specifies that the submesh is ready to be used\n * @param mesh defines the mesh to check\n * @param subMesh defines which submesh to check\n * @param useInstances specifies that instances should be used\n * @returns a boolean indicating that the submesh is ready or not\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isReadyForSubMesh(e, t, i) {\n const s = t.materialDefines;\n return s ? (this._eventInfo.isReadyForSubMesh = !0, this._eventInfo.defines = s, this._callbackPluginEventIsReadyForSubMesh(this._eventInfo), this._eventInfo.isReadyForSubMesh) : !1;\n }\n /**\n * Returns the material effect\n * @returns the effect associated with the material\n */\n getEffect() {\n return this._drawWrapper.effect;\n }\n /**\n * Returns the current scene\n * @returns a Scene\n */\n getScene() {\n return this._scene;\n }\n /** @internal */\n _getEffectiveOrientation(e) {\n return this.sideOrientation !== null ? this.sideOrientation : e.sideOrientation;\n }\n /**\n * Gets the current transparency mode.\n */\n get transparencyMode() {\n return this._transparencyMode;\n }\n /**\n * Sets the transparency mode of the material.\n *\n * | Value | Type | Description |\n * | ----- | ----------------------------------- | ----------- |\n * | 0 | OPAQUE | |\n * | 1 | ALPHATEST | |\n * | 2 | ALPHABLEND | |\n * | 3 | ALPHATESTANDBLEND | |\n *\n */\n set transparencyMode(e) {\n this._transparencyMode !== e && (this._transparencyMode = e, this._forceAlphaTest = e === ue.MATERIAL_ALPHATESTANDBLEND, this._markAllSubMeshesAsTexturesAndMiscDirty());\n }\n /**\n * Returns true if alpha blending should be disabled.\n */\n get _disableAlphaBlending() {\n return this._transparencyMode === ue.MATERIAL_OPAQUE || this._transparencyMode === ue.MATERIAL_ALPHATEST;\n }\n /**\n * Specifies whether or not this material should be rendered in alpha blend mode.\n * @returns a boolean specifying if alpha blending is needed\n */\n needAlphaBlending() {\n return this._disableAlphaBlending ? !1 : this.alpha < 1;\n }\n /**\n * Specifies if the mesh will require alpha blending\n * @param mesh defines the mesh to check\n * @returns a boolean specifying if alpha blending is needed for the mesh\n */\n needAlphaBlendingForMesh(e) {\n return e.visibility < 1 ? !0 : this._disableAlphaBlending ? !1 : e.hasVertexAlpha || this.needAlphaBlending();\n }\n /**\n * Specifies whether or not this material should be rendered in alpha test mode.\n * @returns a boolean specifying if an alpha test is needed.\n */\n needAlphaTesting() {\n return !!this._forceAlphaTest;\n }\n /**\n * Specifies if material alpha testing should be turned on for the mesh\n * @param mesh defines the mesh to check\n * @returns a boolean specifying if alpha testing should be turned on for the mesh\n */\n _shouldTurnAlphaTestOn(e) {\n return !this.needAlphaBlendingForMesh(e) && this.needAlphaTesting();\n }\n /**\n * Gets the texture used for the alpha test\n * @returns the texture to use for alpha testing\n */\n getAlphaTestTexture() {\n return null;\n }\n /**\n * Marks the material to indicate that it needs to be re-calculated\n * @param forceMaterialDirty - Forces the material to be marked as dirty for all components (same as this.markAsDirty(Material.AllDirtyFlag)). You should use this flag if the material is frozen and you want to force a recompilation.\n */\n markDirty(e = !1) {\n const t = this.getScene().meshes;\n for (const i of t)\n if (i.subMeshes) {\n for (const s of i.subMeshes)\n if (s.getMaterial() === this)\n for (const r of s._drawWrappers)\n r && this._materialContext === r.materialContext && (r._wasPreviouslyReady = !1, r._wasPreviouslyUsingInstances = null, r._forceRebindOnNextCall = e);\n }\n e && this.markAsDirty(ue.AllDirtyFlag);\n }\n /**\n * @internal\n */\n _preBind(e, t = null) {\n const i = this._scene.getEngine(), r = (t ?? this.sideOrientation) === ue.ClockWiseSideOrientation;\n return i.enableEffect(e || this._getDrawWrapper()), i.setState(this.backFaceCulling, this.zOffset, !1, r, this._scene._mirroredCameraPosition ? !this.cullBackFaces : this.cullBackFaces, this.stencil, this.zOffsetUnits), r;\n }\n /**\n * Binds the material to the mesh\n * @param world defines the world transformation matrix\n * @param mesh defines the mesh to bind the material to\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n bind(e, t) {\n }\n /**\n * Initializes the uniform buffer layout for the shader.\n */\n buildUniformLayout() {\n const e = this._uniformBuffer;\n this._eventInfo.ubo = e, this._callbackPluginEventGeneric(8, this._eventInfo), e.create(), this._uniformBufferLayoutBuilt = !0;\n }\n /**\n * Binds the submesh to the material\n * @param world defines the world transformation matrix\n * @param mesh defines the mesh containing the submesh\n * @param subMesh defines the submesh to bind the material to\n */\n bindForSubMesh(e, t, i) {\n const s = i._drawWrapper;\n this._eventInfo.subMesh = i, this._callbackPluginEventBindForSubMesh(this._eventInfo), s._forceRebindOnNextCall = !1;\n }\n /**\n * Binds the world matrix to the material\n * @param world defines the world transformation matrix\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n bindOnlyWorldMatrix(e) {\n }\n /**\n * Binds the view matrix to the effect\n * @param effect defines the effect to bind the view matrix to\n */\n bindView(e) {\n this._useUBO ? this._needToBindSceneUbo = !0 : e.setMatrix(\"view\", this.getScene().getViewMatrix());\n }\n /**\n * Binds the view projection and projection matrices to the effect\n * @param effect defines the effect to bind the view projection and projection matrices to\n */\n bindViewProjection(e) {\n this._useUBO ? this._needToBindSceneUbo = !0 : (e.setMatrix(\"viewProjection\", this.getScene().getTransformMatrix()), e.setMatrix(\"projection\", this.getScene().getProjectionMatrix()));\n }\n /**\n * Binds the view matrix to the effect\n * @param effect defines the effect to bind the view matrix to\n * @param variableName name of the shader variable that will hold the eye position\n */\n bindEyePosition(e, t) {\n this._useUBO ? this._needToBindSceneUbo = !0 : this._scene.bindEyePosition(e, t);\n }\n /**\n * Processes to execute after binding the material to a mesh\n * @param mesh defines the rendered mesh\n * @param effect defines the effect used to bind the material\n * @param _subMesh defines the subMesh that the material has been bound for\n */\n _afterBind(e, t = null, i) {\n if (this._scene._cachedMaterial = this, this._needToBindSceneUbo && t && (this._needToBindSceneUbo = !1, hf(t, this.getScene().getSceneUniformBuffer()), this._scene.finalizeSceneUbo()), e ? this._scene._cachedVisibility = e.visibility : this._scene._cachedVisibility = 1, this._onBindObservable && e && this._onBindObservable.notifyObservers(e), this.disableDepthWrite) {\n const s = this._scene.getEngine();\n this._cachedDepthWriteState = s.getDepthWrite(), s.setDepthWrite(!1);\n }\n if (this.disableColorWrite) {\n const s = this._scene.getEngine();\n this._cachedColorWriteState = s.getColorWrite(), s.setColorWrite(!1);\n }\n if (this.depthFunction !== 0) {\n const s = this._scene.getEngine();\n this._cachedDepthFunctionState = s.getDepthFunction() || 0, s.setDepthFunction(this.depthFunction);\n }\n }\n /**\n * Unbinds the material from the mesh\n */\n unbind() {\n this._onUnBindObservable && this._onUnBindObservable.notifyObservers(this), this.depthFunction !== 0 && this._scene.getEngine().setDepthFunction(this._cachedDepthFunctionState), this.disableDepthWrite && this._scene.getEngine().setDepthWrite(this._cachedDepthWriteState), this.disableColorWrite && this._scene.getEngine().setColorWrite(this._cachedColorWriteState);\n }\n /**\n * Returns the animatable textures.\n * @returns - Array of animatable textures.\n */\n getAnimatables() {\n return this._eventInfo.animatables = [], this._callbackPluginEventGeneric(256, this._eventInfo), this._eventInfo.animatables;\n }\n /**\n * Gets the active textures from the material\n * @returns an array of textures\n */\n getActiveTextures() {\n return this._eventInfo.activeTextures = [], this._callbackPluginEventGeneric(512, this._eventInfo), this._eventInfo.activeTextures;\n }\n /**\n * Specifies if the material uses a texture\n * @param texture defines the texture to check against the material\n * @returns a boolean specifying if the material uses the texture\n */\n hasTexture(e) {\n return this._eventInfo.hasTexture = !1, this._eventInfo.texture = e, this._callbackPluginEventGeneric(1024, this._eventInfo), this._eventInfo.hasTexture;\n }\n /**\n * Makes a duplicate of the material, and gives it a new name\n * @param name defines the new name for the duplicated material\n * @returns the cloned material\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n clone(e) {\n return null;\n }\n _clonePlugins(e, t) {\n const i = {};\n if (this._serializePlugins(i), ue._ParsePlugins(i, e, this._scene, t), this.pluginManager)\n for (const s of this.pluginManager._plugins) {\n const r = e.pluginManager.getPlugin(s.name);\n r && s.copyTo(r);\n }\n }\n /**\n * Gets the meshes bound to the material\n * @returns an array of meshes bound to the material\n */\n getBindedMeshes() {\n if (this.meshMap) {\n const e = [];\n for (const t in this.meshMap) {\n const i = this.meshMap[t];\n i && e.push(i);\n }\n return e;\n } else\n return this._scene.meshes.filter((t) => t.material === this);\n }\n /**\n * Force shader compilation\n * @param mesh defines the mesh associated with this material\n * @param onCompiled defines a function to execute once the material is compiled\n * @param options defines the options to configure the compilation\n * @param onError defines a function to execute if the material fails compiling\n */\n forceCompilation(e, t, i, s) {\n const r = {\n clipPlane: !1,\n useInstances: !1,\n ...i\n }, n = this.getScene(), o = this.allowShaderHotSwapping;\n this.allowShaderHotSwapping = !1;\n const l = () => {\n if (!this._scene || !this._scene.getEngine())\n return;\n const h = n.clipPlane;\n if (r.clipPlane && (n.clipPlane = new Pr(0, 0, 0, 1)), this._storeEffectOnSubMeshes) {\n let c = !0, u = null;\n if (e.subMeshes) {\n const d = new or(0, 0, 0, 0, 0, e, void 0, !1, !1);\n d.materialDefines && (d.materialDefines._renderId = -1), this.isReadyForSubMesh(e, d, r.useInstances) || (d.effect && d.effect.getCompilationError() && d.effect.allFallbacksProcessed() ? u = d.effect.getCompilationError() : (c = !1, setTimeout(l, 16)));\n }\n c && (this.allowShaderHotSwapping = o, u && s && s(u), t && t(this));\n } else\n this.isReady() ? (this.allowShaderHotSwapping = o, t && t(this)) : setTimeout(l, 16);\n r.clipPlane && (n.clipPlane = h);\n };\n l();\n }\n /**\n * Force shader compilation\n * @param mesh defines the mesh that will use this material\n * @param options defines additional options for compiling the shaders\n * @returns a promise that resolves when the compilation completes\n */\n forceCompilationAsync(e, t) {\n return new Promise((i, s) => {\n this.forceCompilation(e, () => {\n i();\n }, t, (r) => {\n s(r);\n });\n });\n }\n /**\n * Marks a define in the material to indicate that it needs to be re-computed\n * @param flag defines a flag used to determine which parts of the material have to be marked as dirty\n */\n markAsDirty(e) {\n this.getScene().blockMaterialDirtyMechanism || this._blockDirtyMechanism || (ue._DirtyCallbackArray.length = 0, e & ue.TextureDirtyFlag && ue._DirtyCallbackArray.push(ue._TextureDirtyCallBack), e & ue.LightDirtyFlag && ue._DirtyCallbackArray.push(ue._LightsDirtyCallBack), e & ue.FresnelDirtyFlag && ue._DirtyCallbackArray.push(ue._FresnelDirtyCallBack), e & ue.AttributesDirtyFlag && ue._DirtyCallbackArray.push(ue._AttributeDirtyCallBack), e & ue.MiscDirtyFlag && ue._DirtyCallbackArray.push(ue._MiscDirtyCallBack), e & ue.PrePassDirtyFlag && ue._DirtyCallbackArray.push(ue._PrePassDirtyCallBack), ue._DirtyCallbackArray.length && this._markAllSubMeshesAsDirty(ue._RunDirtyCallBacks), this.getScene().resetCachedMaterial());\n }\n /**\n * Resets the draw wrappers cache for all submeshes that are using this material\n */\n resetDrawCache() {\n const e = this.getScene().meshes;\n for (const t of e)\n if (t.subMeshes)\n for (const i of t.subMeshes)\n i.getMaterial() === this && i.resetDrawCache();\n }\n /**\n * Marks all submeshes of a material to indicate that their material defines need to be re-calculated\n * @param func defines a function which checks material defines against the submeshes\n */\n _markAllSubMeshesAsDirty(e) {\n if (this.getScene().blockMaterialDirtyMechanism || this._blockDirtyMechanism)\n return;\n const t = this.getScene().meshes;\n for (const i of t)\n if (i.subMeshes) {\n for (const s of i.subMeshes)\n if (s.getMaterial(!1) === this)\n for (const r of s._drawWrappers)\n !r || !r.defines || !r.defines.markAllAsDirty || this._materialContext === r.materialContext && e(r.defines);\n }\n }\n /**\n * Indicates that the scene should check if the rendering now needs a prepass\n */\n _markScenePrePassDirty() {\n if (this.getScene().blockMaterialDirtyMechanism || this._blockDirtyMechanism)\n return;\n const e = this.getScene().enablePrePassRenderer();\n e && e.markAsDirty();\n }\n /**\n * Indicates that we need to re-calculated for all submeshes\n */\n _markAllSubMeshesAsAllDirty() {\n this._markAllSubMeshesAsDirty(ue._AllDirtyCallBack);\n }\n /**\n * Indicates that image processing needs to be re-calculated for all submeshes\n */\n _markAllSubMeshesAsImageProcessingDirty() {\n this._markAllSubMeshesAsDirty(ue._ImageProcessingDirtyCallBack);\n }\n /**\n * Indicates that textures need to be re-calculated for all submeshes\n */\n _markAllSubMeshesAsTexturesDirty() {\n this._markAllSubMeshesAsDirty(ue._TextureDirtyCallBack);\n }\n /**\n * Indicates that fresnel needs to be re-calculated for all submeshes\n */\n _markAllSubMeshesAsFresnelDirty() {\n this._markAllSubMeshesAsDirty(ue._FresnelDirtyCallBack);\n }\n /**\n * Indicates that fresnel and misc need to be re-calculated for all submeshes\n */\n _markAllSubMeshesAsFresnelAndMiscDirty() {\n this._markAllSubMeshesAsDirty(ue._FresnelAndMiscDirtyCallBack);\n }\n /**\n * Indicates that lights need to be re-calculated for all submeshes\n */\n _markAllSubMeshesAsLightsDirty() {\n this._markAllSubMeshesAsDirty(ue._LightsDirtyCallBack);\n }\n /**\n * Indicates that attributes need to be re-calculated for all submeshes\n */\n _markAllSubMeshesAsAttributesDirty() {\n this._markAllSubMeshesAsDirty(ue._AttributeDirtyCallBack);\n }\n /**\n * Indicates that misc needs to be re-calculated for all submeshes\n */\n _markAllSubMeshesAsMiscDirty() {\n this._markAllSubMeshesAsDirty(ue._MiscDirtyCallBack);\n }\n /**\n * Indicates that prepass needs to be re-calculated for all submeshes\n */\n _markAllSubMeshesAsPrePassDirty() {\n this._markAllSubMeshesAsDirty(ue._MiscDirtyCallBack);\n }\n /**\n * Indicates that textures and misc need to be re-calculated for all submeshes\n */\n _markAllSubMeshesAsTexturesAndMiscDirty() {\n this._markAllSubMeshesAsDirty(ue._TextureAndMiscDirtyCallBack);\n }\n _checkScenePerformancePriority() {\n if (this._scene.performancePriority !== 0) {\n this.checkReadyOnlyOnce = !0;\n const e = this._scene.onScenePerformancePriorityChangedObservable.addOnce(() => {\n this.checkReadyOnlyOnce = !1;\n });\n this.onDisposeObservable.add(() => {\n this._scene.onScenePerformancePriorityChangedObservable.remove(e);\n });\n }\n }\n /**\n * Sets the required values to the prepass renderer.\n * @param prePassRenderer defines the prepass renderer to setup.\n * @returns true if the pre pass is needed.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setPrePassRenderer(e) {\n return !1;\n }\n /**\n * Disposes the material\n * @param forceDisposeEffect specifies if effects should be forcefully disposed\n * @param forceDisposeTextures specifies if textures should be forcefully disposed\n * @param notBoundToMesh specifies if the material that is being disposed is known to be not bound to any mesh\n */\n dispose(e, t, i) {\n const s = this.getScene();\n if (s.stopAnimation(this), s.freeProcessedMaterials(), s.removeMaterial(this), this._eventInfo.forceDisposeTextures = t, this._callbackPluginEventGeneric(2, this._eventInfo), this._parentContainer) {\n const r = this._parentContainer.materials.indexOf(this);\n r > -1 && this._parentContainer.materials.splice(r, 1), this._parentContainer = null;\n }\n if (i !== !0)\n if (this.meshMap)\n for (const r in this.meshMap) {\n const n = this.meshMap[r];\n n && (n.material = null, this.releaseVertexArrayObject(n, e));\n }\n else {\n const r = s.meshes;\n for (const n of r)\n n.material === this && !n.sourceMesh && (n.material = null, this.releaseVertexArrayObject(n, e));\n }\n this._uniformBuffer.dispose(), e && this._drawWrapper.effect && (this._storeEffectOnSubMeshes || this._drawWrapper.effect.dispose(), this._drawWrapper.effect = null), this.metadata = null, this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this._onBindObservable && this._onBindObservable.clear(), this._onUnBindObservable && this._onUnBindObservable.clear(), this._onEffectCreatedObservable && this._onEffectCreatedObservable.clear(), this._eventInfo && (this._eventInfo = {});\n }\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n releaseVertexArrayObject(e, t) {\n const i = e.geometry;\n if (i)\n if (this._storeEffectOnSubMeshes) {\n if (e.subMeshes)\n for (const s of e.subMeshes)\n i._releaseVertexArrayObject(s.effect), t && s.effect && s.effect.dispose();\n } else\n i._releaseVertexArrayObject(this._drawWrapper.effect);\n }\n /**\n * Serializes this material\n * @returns the serialized material object\n */\n serialize() {\n const e = Ae.Serialize(this);\n return e.stencil = this.stencil.serialize(), e.uniqueId = this.uniqueId, this._serializePlugins(e), e;\n }\n _serializePlugins(e) {\n if (e.plugins = {}, this.pluginManager)\n for (const t of this.pluginManager._plugins)\n e.plugins[t.getClassName()] = t.serialize();\n }\n /**\n * Creates a material from parsed material data\n * @param parsedMaterial defines parsed material data\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures\n * @returns a new material\n */\n static Parse(e, t, i) {\n if (!e.customType)\n e.customType = \"BABYLON.StandardMaterial\";\n else if (e.customType === \"BABYLON.PBRMaterial\" && e.overloadedAlbedo && (e.customType = \"BABYLON.LegacyPBRMaterial\", !BABYLON.LegacyPBRMaterial))\n return L.Error(\"Your scene is trying to load a legacy version of the PBRMaterial, please, include it from the materials library.\"), null;\n const r = J.Instantiate(e.customType).Parse(e, t, i);\n return r._loadedUniqueId = e.uniqueId, r;\n }\n static _ParsePlugins(e, t, i, s) {\n var r;\n if (e.plugins)\n for (const n in e.plugins) {\n const o = e.plugins[n];\n let l = (r = t.pluginManager) == null ? void 0 : r.getPlugin(o.name);\n if (!l) {\n const h = J.Instantiate(\"BABYLON.\" + n);\n h && (l = new h(t));\n }\n l == null || l.parse(o, i, s);\n }\n }\n}\nue.TriangleFillMode = 0;\nue.WireFrameFillMode = 1;\nue.PointFillMode = 2;\nue.PointListDrawMode = 3;\nue.LineListDrawMode = 4;\nue.LineLoopDrawMode = 5;\nue.LineStripDrawMode = 6;\nue.TriangleStripDrawMode = 7;\nue.TriangleFanDrawMode = 8;\nue.ClockWiseSideOrientation = 0;\nue.CounterClockWiseSideOrientation = 1;\nue.TextureDirtyFlag = 1;\nue.LightDirtyFlag = 2;\nue.FresnelDirtyFlag = 4;\nue.AttributesDirtyFlag = 8;\nue.MiscDirtyFlag = 16;\nue.PrePassDirtyFlag = 32;\nue.AllDirtyFlag = 63;\nue.MATERIAL_OPAQUE = 0;\nue.MATERIAL_ALPHATEST = 1;\nue.MATERIAL_ALPHABLEND = 2;\nue.MATERIAL_ALPHATESTANDBLEND = 3;\nue.MATERIAL_NORMALBLENDMETHOD_WHITEOUT = 0;\nue.MATERIAL_NORMALBLENDMETHOD_RNM = 1;\nue.OnEventObservable = new G();\nue._AllDirtyCallBack = (a) => a.markAllAsDirty();\nue._ImageProcessingDirtyCallBack = (a) => a.markAsImageProcessingDirty();\nue._TextureDirtyCallBack = (a) => a.markAsTexturesDirty();\nue._FresnelDirtyCallBack = (a) => a.markAsFresnelDirty();\nue._MiscDirtyCallBack = (a) => a.markAsMiscDirty();\nue._PrePassDirtyCallBack = (a) => a.markAsPrePassDirty();\nue._LightsDirtyCallBack = (a) => a.markAsLightDirty();\nue._AttributeDirtyCallBack = (a) => a.markAsAttributesDirty();\nue._FresnelAndMiscDirtyCallBack = (a) => {\n ue._FresnelDirtyCallBack(a), ue._MiscDirtyCallBack(a);\n};\nue._TextureAndMiscDirtyCallBack = (a) => {\n ue._TextureDirtyCallBack(a), ue._MiscDirtyCallBack(a);\n};\nue._DirtyCallbackArray = [];\nue._RunDirtyCallBacks = (a) => {\n for (const e of ue._DirtyCallbackArray)\n e(a);\n};\ny([\n I()\n], ue.prototype, \"id\", void 0);\ny([\n I()\n], ue.prototype, \"uniqueId\", void 0);\ny([\n I()\n], ue.prototype, \"name\", void 0);\ny([\n I()\n], ue.prototype, \"metadata\", void 0);\ny([\n I()\n], ue.prototype, \"checkReadyOnEveryCall\", void 0);\ny([\n I()\n], ue.prototype, \"checkReadyOnlyOnce\", void 0);\ny([\n I()\n], ue.prototype, \"state\", void 0);\ny([\n I(\"alpha\")\n], ue.prototype, \"_alpha\", void 0);\ny([\n I(\"backFaceCulling\")\n], ue.prototype, \"_backFaceCulling\", void 0);\ny([\n I(\"cullBackFaces\")\n], ue.prototype, \"_cullBackFaces\", void 0);\ny([\n I()\n], ue.prototype, \"sideOrientation\", void 0);\ny([\n I(\"alphaMode\")\n], ue.prototype, \"_alphaMode\", void 0);\ny([\n I()\n], ue.prototype, \"_needDepthPrePass\", void 0);\ny([\n I()\n], ue.prototype, \"disableDepthWrite\", void 0);\ny([\n I()\n], ue.prototype, \"disableColorWrite\", void 0);\ny([\n I()\n], ue.prototype, \"forceDepthWrite\", void 0);\ny([\n I()\n], ue.prototype, \"depthFunction\", void 0);\ny([\n I()\n], ue.prototype, \"separateCullingPass\", void 0);\ny([\n I(\"fogEnabled\")\n], ue.prototype, \"_fogEnabled\", void 0);\ny([\n I()\n], ue.prototype, \"pointSize\", void 0);\ny([\n I()\n], ue.prototype, \"zOffset\", void 0);\ny([\n I()\n], ue.prototype, \"zOffsetUnits\", void 0);\ny([\n I()\n], ue.prototype, \"pointsCloud\", null);\ny([\n I()\n], ue.prototype, \"fillMode\", null);\ny([\n I()\n], ue.prototype, \"useLogarithmicDepth\", null);\ny([\n I()\n], ue.prototype, \"transparencyMode\", null);\nclass fo extends ue {\n /**\n * Gets or Sets the list of Materials used within the multi material.\n * They need to be ordered according to the submeshes order in the associated mesh\n */\n get subMaterials() {\n return this._subMaterials;\n }\n set subMaterials(e) {\n this._subMaterials = e, this._hookArray(e);\n }\n /**\n * Function used to align with Node.getChildren()\n * @returns the list of Materials used within the multi material\n */\n getChildren() {\n return this.subMaterials;\n }\n /**\n * Instantiates a new Multi Material\n * A multi-material is used to apply different materials to different parts of the same object without the need of\n * separate meshes. This can be use to improve performances.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/multiMaterials\n * @param name Define the name in the scene\n * @param scene Define the scene the material belongs to\n */\n constructor(e, t) {\n super(e, t, !0), this._waitingSubMaterialsUniqueIds = [], this.getScene().addMultiMaterial(this), this.subMaterials = [], this._storeEffectOnSubMeshes = !0;\n }\n _hookArray(e) {\n const t = e.push;\n e.push = (...s) => {\n const r = t.apply(e, s);\n return this._markAllSubMeshesAsTexturesDirty(), r;\n };\n const i = e.splice;\n e.splice = (s, r) => {\n const n = i.apply(e, [s, r]);\n return this._markAllSubMeshesAsTexturesDirty(), n;\n };\n }\n /**\n * Get one of the submaterial by its index in the submaterials array\n * @param index The index to look the sub material at\n * @returns The Material if the index has been defined\n */\n getSubMaterial(e) {\n return e < 0 || e >= this.subMaterials.length ? this.getScene().defaultMaterial : this.subMaterials[e];\n }\n /**\n * Get the list of active textures for the whole sub materials list.\n * @returns All the textures that will be used during the rendering\n */\n getActiveTextures() {\n return super.getActiveTextures().concat(...this.subMaterials.map((e) => e ? e.getActiveTextures() : []));\n }\n /**\n * Specifies if any sub-materials of this multi-material use a given texture.\n * @param texture Defines the texture to check against this multi-material's sub-materials.\n * @returns A boolean specifying if any sub-material of this multi-material uses the texture.\n */\n hasTexture(e) {\n var t;\n if (super.hasTexture(e))\n return !0;\n for (let i = 0; i < this.subMaterials.length; i++)\n if ((t = this.subMaterials[i]) != null && t.hasTexture(e))\n return !0;\n return !1;\n }\n /**\n * Gets the current class name of the material e.g. \"MultiMaterial\"\n * Mainly use in serialization.\n * @returns the class name\n */\n getClassName() {\n return \"MultiMaterial\";\n }\n /**\n * Checks if the material is ready to render the requested sub mesh\n * @param mesh Define the mesh the submesh belongs to\n * @param subMesh Define the sub mesh to look readiness for\n * @param useInstances Define whether or not the material is used with instances\n * @returns true if ready, otherwise false\n */\n isReadyForSubMesh(e, t, i) {\n for (let s = 0; s < this.subMaterials.length; s++) {\n const r = this.subMaterials[s];\n if (r) {\n if (r._storeEffectOnSubMeshes) {\n if (!r.isReadyForSubMesh(e, t, i))\n return !1;\n continue;\n }\n if (!r.isReady(e))\n return !1;\n }\n }\n return !0;\n }\n /**\n * Clones the current material and its related sub materials\n * @param name Define the name of the newly cloned material\n * @param cloneChildren Define if submaterial will be cloned or shared with the parent instance\n * @returns the cloned material\n */\n clone(e, t) {\n const i = new fo(e, this.getScene());\n for (let s = 0; s < this.subMaterials.length; s++) {\n let r = null;\n const n = this.subMaterials[s];\n t && n ? r = n.clone(e + \"-\" + n.name) : r = this.subMaterials[s], i.subMaterials.push(r);\n }\n return i;\n }\n /**\n * Serializes the materials into a JSON representation.\n * @returns the JSON representation\n */\n serialize() {\n const e = {};\n e.name = this.name, e.id = this.id, e.uniqueId = this.uniqueId, Ct && (e.tags = Ct.GetTags(this)), e.materialsUniqueIds = [], e.materials = [];\n for (let t = 0; t < this.subMaterials.length; t++) {\n const i = this.subMaterials[t];\n i ? (e.materialsUniqueIds.push(i.uniqueId), e.materials.push(i.id)) : (e.materialsUniqueIds.push(null), e.materials.push(null));\n }\n return e;\n }\n /**\n * Dispose the material and release its associated resources\n * @param forceDisposeEffect Define if we want to force disposing the associated effect (if false the shader is not released and could be reuse later on)\n * @param forceDisposeTextures Define if we want to force disposing the associated textures (if false, they will not be disposed and can still be use elsewhere in the app)\n * @param forceDisposeChildren Define if we want to force disposing the associated submaterials (if false, they will not be disposed and can still be use elsewhere in the app)\n */\n dispose(e, t, i) {\n const s = this.getScene();\n if (!s)\n return;\n if (i)\n for (let n = 0; n < this.subMaterials.length; n++) {\n const o = this.subMaterials[n];\n o && o.dispose(e, t);\n }\n const r = s.multiMaterials.indexOf(this);\n r >= 0 && s.multiMaterials.splice(r, 1), super.dispose(e, t);\n }\n /**\n * Creates a MultiMaterial from parsed MultiMaterial data.\n * @param parsedMultiMaterial defines parsed MultiMaterial data.\n * @param scene defines the hosting scene\n * @returns a new MultiMaterial\n */\n static ParseMultiMaterial(e, t) {\n const i = new fo(e.name, t);\n return i.id = e.id, i._loadedUniqueId = e.uniqueId, Ct && Ct.AddTagsTo(i, e.tags), e.materialsUniqueIds ? i._waitingSubMaterialsUniqueIds = e.materialsUniqueIds : e.materials.forEach((s) => i.subMaterials.push(t.getLastMaterialById(s))), i;\n }\n}\nU(\"BABYLON.MultiMaterial\", fo);\nclass aw {\n /**\n * Creates a new LOD level\n * @param distanceOrScreenCoverage defines either the distance or the screen coverage where this level should start being displayed\n * @param mesh defines the mesh to use to render this level\n */\n constructor(e, t) {\n this.distanceOrScreenCoverage = e, this.mesh = t;\n }\n}\nclass qC {\n}\nclass ow {\n constructor() {\n this.visibleInstances = {}, this.batchCache = new Db(), this.batchCacheReplacementModeInFrozenMode = new Db(), this.instancesBufferSize = 32 * 16 * 4;\n }\n}\nclass Db {\n constructor() {\n this.mustReturn = !1, this.visibleInstances = new Array(), this.renderSelf = [], this.hardwareInstancedRendering = [];\n }\n}\nclass lw {\n constructor() {\n this.instancesCount = 0, this.matrixBuffer = null, this.previousMatrixBuffer = null, this.matrixBufferSize = 32 * 16, this.matrixData = null, this.boundingVectors = [], this.worldMatrices = null;\n }\n}\nclass hw {\n constructor() {\n this._areNormalsFrozen = !1, this._source = null, this.meshMap = null, this._preActivateId = -1, this._LODLevels = new Array(), this._useLODScreenCoverage = !1, this._effectiveMaterial = null, this._forcedInstanceCount = 0, this._overrideRenderingFillMode = null;\n }\n}\nclass H extends Pt {\n /**\n * Gets the default side orientation.\n * @param orientation the orientation to value to attempt to get\n * @returns the default orientation\n * @internal\n */\n static _GetDefaultSideOrientation(e) {\n return e || H.FRONTSIDE;\n }\n /**\n * Determines if the LOD levels are intended to be calculated using screen coverage (surface area ratio) instead of distance.\n */\n get useLODScreenCoverage() {\n return this._internalMeshDataInfo._useLODScreenCoverage;\n }\n set useLODScreenCoverage(e) {\n this._internalMeshDataInfo._useLODScreenCoverage = e, this._sortLODLevels();\n }\n get computeBonesUsingShaders() {\n return this._internalAbstractMeshDataInfo._computeBonesUsingShaders;\n }\n set computeBonesUsingShaders(e) {\n this._internalAbstractMeshDataInfo._computeBonesUsingShaders !== e && (e && this._internalMeshDataInfo._sourcePositions && (this.setVerticesData(R.PositionKind, this._internalMeshDataInfo._sourcePositions, !0), this._internalMeshDataInfo._sourceNormals && this.setVerticesData(R.NormalKind, this._internalMeshDataInfo._sourceNormals, !0), this._internalMeshDataInfo._sourcePositions = null, this._internalMeshDataInfo._sourceNormals = null), this._internalAbstractMeshDataInfo._computeBonesUsingShaders = e, this._markSubMeshesAsAttributesDirty());\n }\n /**\n * An event triggered before rendering the mesh\n */\n get onBeforeRenderObservable() {\n return this._internalMeshDataInfo._onBeforeRenderObservable || (this._internalMeshDataInfo._onBeforeRenderObservable = new G()), this._internalMeshDataInfo._onBeforeRenderObservable;\n }\n /**\n * An event triggered before binding the mesh\n */\n get onBeforeBindObservable() {\n return this._internalMeshDataInfo._onBeforeBindObservable || (this._internalMeshDataInfo._onBeforeBindObservable = new G()), this._internalMeshDataInfo._onBeforeBindObservable;\n }\n /**\n * An event triggered after rendering the mesh\n */\n get onAfterRenderObservable() {\n return this._internalMeshDataInfo._onAfterRenderObservable || (this._internalMeshDataInfo._onAfterRenderObservable = new G()), this._internalMeshDataInfo._onAfterRenderObservable;\n }\n /**\n * An event triggeredbetween rendering pass when using separateCullingPass = true\n */\n get onBetweenPassObservable() {\n return this._internalMeshDataInfo._onBetweenPassObservable || (this._internalMeshDataInfo._onBetweenPassObservable = new G()), this._internalMeshDataInfo._onBetweenPassObservable;\n }\n /**\n * An event triggered before drawing the mesh\n */\n get onBeforeDrawObservable() {\n return this._internalMeshDataInfo._onBeforeDrawObservable || (this._internalMeshDataInfo._onBeforeDrawObservable = new G()), this._internalMeshDataInfo._onBeforeDrawObservable;\n }\n /**\n * Sets a callback to call before drawing the mesh. It is recommended to use onBeforeDrawObservable instead\n */\n set onBeforeDraw(e) {\n this._onBeforeDrawObserver && this.onBeforeDrawObservable.remove(this._onBeforeDrawObserver), this._onBeforeDrawObserver = this.onBeforeDrawObservable.add(e);\n }\n get hasInstances() {\n return this.instances.length > 0;\n }\n get hasThinInstances() {\n return (this.forcedInstanceCount || this._thinInstanceDataStorage.instancesCount || 0) > 0;\n }\n /**\n * Gets or sets the forced number of instances to display.\n * If 0 (default value), the number of instances is not forced and depends on the draw type\n * (regular / instance / thin instances mesh)\n */\n get forcedInstanceCount() {\n return this._internalMeshDataInfo._forcedInstanceCount;\n }\n set forcedInstanceCount(e) {\n this._internalMeshDataInfo._forcedInstanceCount = e;\n }\n /**\n * Use this property to change the original side orientation defined at construction time\n * Material.sideOrientation will override this value if set\n * User will still be able to change the material sideOrientation afterwards if they really need it\n */\n get sideOrientation() {\n return this._internalMeshDataInfo._sideOrientation;\n }\n set sideOrientation(e) {\n this._internalMeshDataInfo._sideOrientation = e, this._internalAbstractMeshDataInfo._sideOrientationHint = this._scene.useRightHandedSystem && e === 1 || !this._scene.useRightHandedSystem && e === 0;\n }\n /**\n * @deprecated Please use sideOrientation instead.\n * @see https://doc.babylonjs.com/breaking-changes#7110\n */\n get overrideMaterialSideOrientation() {\n return this.sideOrientation;\n }\n set overrideMaterialSideOrientation(e) {\n this.sideOrientation = e, this.material && (this.material.sideOrientation = null);\n }\n /**\n * Use this property to override the Material's fillMode value\n */\n get overrideRenderingFillMode() {\n return this._internalMeshDataInfo._overrideRenderingFillMode;\n }\n set overrideRenderingFillMode(e) {\n this._internalMeshDataInfo._overrideRenderingFillMode = e;\n }\n get material() {\n return this._internalAbstractMeshDataInfo._material;\n }\n set material(e) {\n e && (this.material && this.material.sideOrientation === null || this._internalAbstractMeshDataInfo._sideOrientationHint) && (e.sideOrientation = null), this._setMaterial(e);\n }\n /**\n * Gets the source mesh (the one used to clone this one from)\n */\n get source() {\n return this._internalMeshDataInfo._source;\n }\n /**\n * Gets the list of clones of this mesh\n * The scene must have been constructed with useClonedMeshMap=true for this to work!\n * Note that useClonedMeshMap=true is the default setting\n */\n get cloneMeshMap() {\n return this._internalMeshDataInfo.meshMap;\n }\n /**\n * Gets or sets a boolean indicating that this mesh does not use index buffer\n */\n get isUnIndexed() {\n return this._unIndexed;\n }\n set isUnIndexed(e) {\n this._unIndexed !== e && (this._unIndexed = e, this._markSubMeshesAsAttributesDirty());\n }\n /** Gets the array buffer used to store the instanced buffer used for instances' world matrices */\n get worldMatrixInstancedBuffer() {\n return this._instanceDataStorage.instancesData;\n }\n /** Gets the array buffer used to store the instanced buffer used for instances' previous world matrices */\n get previousWorldMatrixInstancedBuffer() {\n return this._instanceDataStorage.instancesPreviousData;\n }\n /** Gets or sets a boolean indicating that the update of the instance buffer of the world matrices is manual */\n get manualUpdateOfWorldMatrixInstancedBuffer() {\n return this._instanceDataStorage.manualUpdate;\n }\n set manualUpdateOfWorldMatrixInstancedBuffer(e) {\n this._instanceDataStorage.manualUpdate = e;\n }\n /** Gets or sets a boolean indicating that the update of the instance buffer of the world matrices is manual */\n get manualUpdateOfPreviousWorldMatrixInstancedBuffer() {\n return this._instanceDataStorage.previousManualUpdate;\n }\n set manualUpdateOfPreviousWorldMatrixInstancedBuffer(e) {\n this._instanceDataStorage.previousManualUpdate = e;\n }\n /** Gets or sets a boolean indicating that the update of the instance buffer of the world matrices must be performed in all cases (and notably even in frozen mode) */\n get forceWorldMatrixInstancedBufferUpdate() {\n return this._instanceDataStorage.forceMatrixUpdates;\n }\n set forceWorldMatrixInstancedBufferUpdate(e) {\n this._instanceDataStorage.forceMatrixUpdates = e;\n }\n /**\n * Constructor\n * @param name The value used by scene.getMeshByName() to do a lookup.\n * @param scene The scene to add this mesh to.\n * @param parent The parent of this mesh, if it has one\n * @param source An optional Mesh from which geometry is shared, cloned.\n * @param doNotCloneChildren When cloning, skip cloning child meshes of source, default False.\n * When false, achieved by calling a clone(), also passing False.\n * This will make creation of children, recursive.\n * @param clonePhysicsImpostor When cloning, include cloning mesh physics impostor, default True.\n */\n constructor(e, t = null, i = null, s = null, r, n = !0) {\n if (super(e, t), this._internalMeshDataInfo = new hw(), this.delayLoadState = 0, this.instances = [], this._creationDataStorage = null, this._geometry = null, this._instanceDataStorage = new ow(), this._thinInstanceDataStorage = new lw(), this._shouldGenerateFlatShading = !1, this._originalBuilderSideOrientation = H.DEFAULTSIDE, this.ignoreCameraMaxZ = !1, t = this.getScene(), this._scene.useRightHandedSystem ? this.sideOrientation = 0 : this.sideOrientation = 1, this._onBeforeDraw = (o, l, h) => {\n o && h && (this._uniformBuffer ? this.transferToEffect(l) : h.bindOnlyWorldMatrix(l));\n }, s) {\n if (s._geometry && s._geometry.applyToMesh(this), Hs.DeepCopy(s, this, [\n \"name\",\n \"material\",\n \"skeleton\",\n \"instances\",\n \"parent\",\n \"uniqueId\",\n \"source\",\n \"metadata\",\n \"morphTargetManager\",\n \"hasInstances\",\n \"worldMatrixInstancedBuffer\",\n \"previousWorldMatrixInstancedBuffer\",\n \"hasLODLevels\",\n \"geometry\",\n \"isBlocked\",\n \"areNormalsFrozen\",\n \"facetNb\",\n \"isFacetDataEnabled\",\n \"lightSources\",\n \"useBones\",\n \"isAnInstance\",\n \"collider\",\n \"edgesRenderer\",\n \"forward\",\n \"up\",\n \"right\",\n \"absolutePosition\",\n \"absoluteScaling\",\n \"absoluteRotationQuaternion\",\n \"isWorldMatrixFrozen\",\n \"nonUniformScaling\",\n \"behaviors\",\n \"worldMatrixFromCache\",\n \"hasThinInstances\",\n \"cloneMeshMap\",\n \"hasBoundingInfo\",\n \"physicsBody\",\n \"physicsImpostor\"\n ], [\"_poseMatrix\"]), this._internalMeshDataInfo._source = s, t.useClonedMeshMap && (s._internalMeshDataInfo.meshMap || (s._internalMeshDataInfo.meshMap = {}), s._internalMeshDataInfo.meshMap[this.uniqueId] = this), this._originalBuilderSideOrientation = s._originalBuilderSideOrientation, this._creationDataStorage = s._creationDataStorage, s._ranges) {\n const o = s._ranges;\n for (const l in o)\n Object.prototype.hasOwnProperty.call(o, l) && o[l] && this.createAnimationRange(l, o[l].from, o[l].to);\n }\n if (s.metadata && s.metadata.clone ? this.metadata = s.metadata.clone() : this.metadata = s.metadata, this._internalMetadata = s._internalMetadata, Ct && Ct.HasTags(s) && Ct.AddTagsTo(this, Ct.GetTags(s, !0)), this.setEnabled(s.isEnabled(!1)), this.parent = s.parent, this.setPivotMatrix(s.getPivotMatrix(), this._postMultiplyPivotMatrix), this.id = e + \".\" + s.id, this.material = s.material, !r) {\n const o = s.getDescendants(!0);\n for (let l = 0; l < o.length; l++) {\n const h = o[l];\n h.clone && h.clone(e + \".\" + h.name, this);\n }\n }\n if (s.morphTargetManager && (this.morphTargetManager = s.morphTargetManager), t.getPhysicsEngine) {\n const o = t.getPhysicsEngine();\n if (n && o)\n if (o.getPluginVersion() === 1) {\n const l = o.getImpostorForPhysicsObject(s);\n l && (this.physicsImpostor = l.clone(this));\n } else o.getPluginVersion() === 2 && s.physicsBody && s.physicsBody.clone(this);\n }\n for (let o = 0; o < t.particleSystems.length; o++) {\n const l = t.particleSystems[o];\n l.emitter === s && l.clone(l.name, this);\n }\n this.skeleton = s.skeleton, this.refreshBoundingInfo(!0, !0), this.computeWorldMatrix(!0);\n }\n i !== null && (this.parent = i), this._instanceDataStorage.hardwareInstancedRendering = this.getEngine().getCaps().instancedArrays, this._internalMeshDataInfo._onMeshReadyObserverAdded = (o) => {\n o.unregisterOnNextCall = !0, this.isReady(!0) ? this.onMeshReadyObservable.notifyObservers(this) : this._internalMeshDataInfo._checkReadinessObserver || (this._internalMeshDataInfo._checkReadinessObserver = this._scene.onBeforeRenderObservable.add(() => {\n this.isReady(!0) && (this._scene.onBeforeRenderObservable.remove(this._internalMeshDataInfo._checkReadinessObserver), this._internalMeshDataInfo._checkReadinessObserver = null, this.onMeshReadyObservable.notifyObservers(this));\n }));\n }, this.onMeshReadyObservable = new G(this._internalMeshDataInfo._onMeshReadyObserverAdded), s && s.onClonedObservable.notifyObservers(this);\n }\n instantiateHierarchy(e = null, t, i) {\n const s = this.getTotalVertices() === 0 || t && t.doNotInstantiate && (t.doNotInstantiate === !0 || t.doNotInstantiate(this)) ? this.clone(\"Clone of \" + (this.name || this.id), e || this.parent, !0) : this.createInstance(\"instance of \" + (this.name || this.id));\n s.parent = e || this.parent, s.position = this.position.clone(), s.scaling = this.scaling.clone(), this.rotationQuaternion ? s.rotationQuaternion = this.rotationQuaternion.clone() : s.rotation = this.rotation.clone(), i && i(this, s);\n for (const r of this.getChildTransformNodes(!0))\n r.getClassName() === \"InstancedMesh\" && s.getClassName() === \"Mesh\" && r.sourceMesh === this ? r.instantiateHierarchy(s, {\n doNotInstantiate: t && t.doNotInstantiate || !1,\n newSourcedMesh: s\n }, i) : r.instantiateHierarchy(s, t, i);\n return s;\n }\n /**\n * Gets the class name\n * @returns the string \"Mesh\".\n */\n getClassName() {\n return \"Mesh\";\n }\n /** @internal */\n get _isMesh() {\n return !0;\n }\n /**\n * Returns a description of this mesh\n * @param fullDetails define if full details about this mesh must be used\n * @returns a descriptive string representing this mesh\n */\n toString(e) {\n let t = super.toString(e);\n if (t += \", n vertices: \" + this.getTotalVertices(), t += \", parent: \" + (this._waitingParentId ? this._waitingParentId : this.parent ? this.parent.name : \"NONE\"), this.animations)\n for (let i = 0; i < this.animations.length; i++)\n t += \", animation[0]: \" + this.animations[i].toString(e);\n if (e)\n if (this._geometry) {\n const i = this.getIndices(), s = this.getVerticesData(R.PositionKind);\n s && i && (t += \", flat shading: \" + (s.length / 3 === i.length ? \"YES\" : \"NO\"));\n } else\n t += \", flat shading: UNKNOWN\";\n return t;\n }\n /** @internal */\n _unBindEffect() {\n super._unBindEffect();\n for (const e of this.instances)\n e._unBindEffect();\n }\n /**\n * Gets a boolean indicating if this mesh has LOD\n */\n get hasLODLevels() {\n return this._internalMeshDataInfo._LODLevels.length > 0;\n }\n /**\n * Gets the list of MeshLODLevel associated with the current mesh\n * @returns an array of MeshLODLevel\n */\n getLODLevels() {\n return this._internalMeshDataInfo._LODLevels;\n }\n _sortLODLevels() {\n const e = this._internalMeshDataInfo._useLODScreenCoverage ? -1 : 1;\n this._internalMeshDataInfo._LODLevels.sort((t, i) => t.distanceOrScreenCoverage < i.distanceOrScreenCoverage ? e : t.distanceOrScreenCoverage > i.distanceOrScreenCoverage ? -e : 0);\n }\n /**\n * Add a mesh as LOD level triggered at the given distance.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/LOD\n * @param distanceOrScreenCoverage Either distance from the center of the object to show this level or the screen coverage if `useScreenCoverage` is set to `true`.\n * If screen coverage, value is a fraction of the screen's total surface, between 0 and 1.\n * Example Playground for distance https://playground.babylonjs.com/#QE7KM#197\n * Example Playground for screen coverage https://playground.babylonjs.com/#QE7KM#196\n * @param mesh The mesh to be added as LOD level (can be null)\n * @returns This mesh (for chaining)\n */\n addLODLevel(e, t) {\n if (t && t._masterMesh)\n return L.Warn(\"You cannot use a mesh as LOD level twice\"), this;\n const i = new aw(e, t);\n return this._internalMeshDataInfo._LODLevels.push(i), t && (t._masterMesh = this), this._sortLODLevels(), this;\n }\n /**\n * Returns the LOD level mesh at the passed distance or null if not found.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/LOD\n * @param distance The distance from the center of the object to show this level\n * @returns a Mesh or `null`\n */\n getLODLevelAtDistance(e) {\n const t = this._internalMeshDataInfo;\n for (let i = 0; i < t._LODLevels.length; i++) {\n const s = t._LODLevels[i];\n if (s.distanceOrScreenCoverage === e)\n return s.mesh;\n }\n return null;\n }\n /**\n * Remove a mesh from the LOD array\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/LOD\n * @param mesh defines the mesh to be removed\n * @returns This mesh (for chaining)\n */\n removeLODLevel(e) {\n const t = this._internalMeshDataInfo;\n for (let i = 0; i < t._LODLevels.length; i++)\n t._LODLevels[i].mesh === e && (t._LODLevels.splice(i, 1), e && (e._masterMesh = null));\n return this._sortLODLevels(), this;\n }\n /**\n * Returns the registered LOD mesh distant from the parameter `camera` position if any, else returns the current mesh.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/LOD\n * @param camera defines the camera to use to compute distance\n * @param boundingSphere defines a custom bounding sphere to use instead of the one from this mesh\n * @returns This mesh (for chaining)\n */\n getLOD(e, t) {\n const i = this._internalMeshDataInfo;\n if (!i._LODLevels || i._LODLevels.length === 0)\n return this;\n const s = t || this.getBoundingInfo().boundingSphere, r = e.mode === Fe.ORTHOGRAPHIC_CAMERA ? e.minZ : s.centerWorld.subtract(e.globalPosition).length();\n let n = r, o = 1;\n if (i._useLODScreenCoverage) {\n const l = e.screenArea;\n let h = s.radiusWorld * e.minZ / r;\n h = h * h * Math.PI, n = h / l, o = -1;\n }\n if (o * i._LODLevels[i._LODLevels.length - 1].distanceOrScreenCoverage > o * n)\n return this.onLODLevelSelection && this.onLODLevelSelection(n, this, this), this;\n for (let l = 0; l < i._LODLevels.length; l++) {\n const h = i._LODLevels[l];\n if (o * h.distanceOrScreenCoverage < o * n) {\n if (h.mesh) {\n if (h.mesh.delayLoadState === 4)\n return h.mesh._checkDelayState(), this;\n if (h.mesh.delayLoadState === 2)\n return this;\n h.mesh._preActivate(), h.mesh._updateSubMeshesBoundingInfo(this.worldMatrixFromCache);\n }\n return this.onLODLevelSelection && this.onLODLevelSelection(n, this, h.mesh), h.mesh;\n }\n }\n return this.onLODLevelSelection && this.onLODLevelSelection(n, this, this), this;\n }\n /**\n * Gets the mesh internal Geometry object\n */\n get geometry() {\n return this._geometry;\n }\n /**\n * Returns the total number of vertices within the mesh geometry or zero if the mesh has no geometry.\n * @returns the total number of vertices\n */\n getTotalVertices() {\n return this._geometry === null || this._geometry === void 0 ? 0 : this._geometry.getTotalVertices();\n }\n /**\n * Returns the content of an associated vertex buffer\n * @param kind defines which buffer to read from (positions, indices, normals, etc). Possible `kind` values :\n * - VertexBuffer.PositionKind\n * - VertexBuffer.UVKind\n * - VertexBuffer.UV2Kind\n * - VertexBuffer.UV3Kind\n * - VertexBuffer.UV4Kind\n * - VertexBuffer.UV5Kind\n * - VertexBuffer.UV6Kind\n * - VertexBuffer.ColorKind\n * - VertexBuffer.MatricesIndicesKind\n * - VertexBuffer.MatricesIndicesExtraKind\n * - VertexBuffer.MatricesWeightsKind\n * - VertexBuffer.MatricesWeightsExtraKind\n * @param copyWhenShared defines a boolean indicating that if the mesh geometry is shared among some other meshes, the returned array is a copy of the internal one\n * @param forceCopy defines a boolean forcing the copy of the buffer no matter what the value of copyWhenShared is\n * @param bypassInstanceData defines a boolean indicating that the function should not take into account the instance data (applies only if the mesh has instances). Default: false\n * @returns a FloatArray or null if the mesh has no geometry or no vertex buffer for this kind.\n */\n getVerticesData(e, t, i, s) {\n var n, o;\n if (!this._geometry)\n return null;\n let r = s || (o = (n = this._userInstancedBuffersStorage) == null ? void 0 : n.vertexBuffers[e]) == null ? void 0 : o.getFloatData(\n this.instances.length + 1,\n // +1 because the master mesh is not included in the instances array\n i || t && this._geometry.meshes.length !== 1\n );\n return r || (r = this._geometry.getVerticesData(e, t, i)), r;\n }\n copyVerticesData(e, t) {\n this._geometry && this._geometry.copyVerticesData(e, t);\n }\n /**\n * Returns the mesh VertexBuffer object from the requested `kind`\n * @param kind defines which buffer to read from (positions, indices, normals, etc). Possible `kind` values :\n * - VertexBuffer.PositionKind\n * - VertexBuffer.NormalKind\n * - VertexBuffer.UVKind\n * - VertexBuffer.UV2Kind\n * - VertexBuffer.UV3Kind\n * - VertexBuffer.UV4Kind\n * - VertexBuffer.UV5Kind\n * - VertexBuffer.UV6Kind\n * - VertexBuffer.ColorKind\n * - VertexBuffer.MatricesIndicesKind\n * - VertexBuffer.MatricesIndicesExtraKind\n * - VertexBuffer.MatricesWeightsKind\n * - VertexBuffer.MatricesWeightsExtraKind\n * @param bypassInstanceData defines a boolean indicating that the function should not take into account the instance data (applies only if the mesh has instances). Default: false\n * @returns a FloatArray or null if the mesh has no vertex buffer for this kind.\n */\n getVertexBuffer(e, t) {\n var i;\n return this._geometry ? (t || (i = this._userInstancedBuffersStorage) == null ? void 0 : i.vertexBuffers[e]) ?? this._geometry.getVertexBuffer(e) : null;\n }\n /**\n * Tests if a specific vertex buffer is associated with this mesh\n * @param kind defines which buffer to check (positions, indices, normals, etc). Possible `kind` values :\n * - VertexBuffer.PositionKind\n * - VertexBuffer.NormalKind\n * - VertexBuffer.UVKind\n * - VertexBuffer.UV2Kind\n * - VertexBuffer.UV3Kind\n * - VertexBuffer.UV4Kind\n * - VertexBuffer.UV5Kind\n * - VertexBuffer.UV6Kind\n * - VertexBuffer.ColorKind\n * - VertexBuffer.MatricesIndicesKind\n * - VertexBuffer.MatricesIndicesExtraKind\n * - VertexBuffer.MatricesWeightsKind\n * - VertexBuffer.MatricesWeightsExtraKind\n * @param bypassInstanceData defines a boolean indicating that the function should not take into account the instance data (applies only if the mesh has instances). Default: false\n * @returns a boolean\n */\n isVerticesDataPresent(e, t) {\n var i;\n return this._geometry ? !t && ((i = this._userInstancedBuffersStorage) == null ? void 0 : i.vertexBuffers[e]) !== void 0 || this._geometry.isVerticesDataPresent(e) : this._delayInfo ? this._delayInfo.indexOf(e) !== -1 : !1;\n }\n /**\n * Returns a boolean defining if the vertex data for the requested `kind` is updatable.\n * @param kind defines which buffer to check (positions, indices, normals, etc). Possible `kind` values :\n * - VertexBuffer.PositionKind\n * - VertexBuffer.UVKind\n * - VertexBuffer.UV2Kind\n * - VertexBuffer.UV3Kind\n * - VertexBuffer.UV4Kind\n * - VertexBuffer.UV5Kind\n * - VertexBuffer.UV6Kind\n * - VertexBuffer.ColorKind\n * - VertexBuffer.MatricesIndicesKind\n * - VertexBuffer.MatricesIndicesExtraKind\n * - VertexBuffer.MatricesWeightsKind\n * - VertexBuffer.MatricesWeightsExtraKind\n * @param bypassInstanceData defines a boolean indicating that the function should not take into account the instance data (applies only if the mesh has instances). Default: false\n * @returns a boolean\n */\n isVertexBufferUpdatable(e, t) {\n var i;\n if (!this._geometry)\n return this._delayInfo ? this._delayInfo.indexOf(e) !== -1 : !1;\n if (!t) {\n const s = (i = this._userInstancedBuffersStorage) == null ? void 0 : i.vertexBuffers[e];\n if (s)\n return s.isUpdatable();\n }\n return this._geometry.isVertexBufferUpdatable(e);\n }\n /**\n * Returns a string which contains the list of existing `kinds` of Vertex Data associated with this mesh.\n * @param bypassInstanceData defines a boolean indicating that the function should not take into account the instance data (applies only if the mesh has instances). Default: false\n * @returns an array of strings\n */\n getVerticesDataKinds(e) {\n if (!this._geometry) {\n const i = [];\n return this._delayInfo && this._delayInfo.forEach(function(s) {\n i.push(s);\n }), i;\n }\n const t = this._geometry.getVerticesDataKinds();\n if (!e && this._userInstancedBuffersStorage)\n for (const i in this._userInstancedBuffersStorage.vertexBuffers)\n t.indexOf(i) === -1 && t.push(i);\n return t;\n }\n /**\n * Returns a positive integer : the total number of indices in this mesh geometry.\n * @returns the numner of indices or zero if the mesh has no geometry.\n */\n getTotalIndices() {\n return this._geometry ? this._geometry.getTotalIndices() : 0;\n }\n /**\n * Returns an array of integers or a typed array (Int32Array, Uint32Array, Uint16Array) populated with the mesh indices.\n * @param copyWhenShared If true (default false) and and if the mesh geometry is shared among some other meshes, the returned array is a copy of the internal one.\n * @param forceCopy defines a boolean indicating that the returned array must be cloned upon returning it\n * @returns the indices array or an empty array if the mesh has no geometry\n */\n getIndices(e, t) {\n return this._geometry ? this._geometry.getIndices(e, t) : [];\n }\n get isBlocked() {\n return this._masterMesh !== null && this._masterMesh !== void 0;\n }\n /**\n * Determine if the current mesh is ready to be rendered\n * @param completeCheck defines if a complete check (including materials and lights) has to be done (false by default)\n * @param forceInstanceSupport will check if the mesh will be ready when used with instances (false by default)\n * @returns true if all associated assets are ready (material, textures, shaders)\n */\n isReady(e = !1, t = !1) {\n var l, h, c, u, d;\n if (this.delayLoadState === 2 || !super.isReady(e))\n return !1;\n if (!this.subMeshes || this.subMeshes.length === 0 || !e)\n return !0;\n const i = this.getEngine(), s = this.getScene(), r = t || i.getCaps().instancedArrays && (this.instances.length > 0 || this.hasThinInstances);\n this.computeWorldMatrix();\n const n = this.material || s.defaultMaterial;\n if (n) {\n if (n._storeEffectOnSubMeshes)\n for (const f of this.subMeshes) {\n const p = f.getMaterial();\n if (p) {\n if (p._storeEffectOnSubMeshes) {\n if (!p.isReadyForSubMesh(this, f, r))\n return !1;\n } else if (!p.isReady(this, r))\n return !1;\n }\n }\n else if (!n.isReady(this, r))\n return !1;\n }\n const o = i.currentRenderPassId;\n for (const f of this.lightSources) {\n const p = f.getShadowGenerators();\n if (!p)\n continue;\n const _ = p.values();\n for (let m = _.next(); m.done !== !0; m = _.next()) {\n const x = m.value;\n if (x && (!((l = x.getShadowMap()) != null && l.renderList) || (h = x.getShadowMap()) != null && h.renderList && ((u = (c = x.getShadowMap()) == null ? void 0 : c.renderList) == null ? void 0 : u.indexOf(this)) !== -1)) {\n const T = x.getShadowMap().renderPassIds ?? [i.currentRenderPassId];\n for (let E = 0; E < T.length; ++E) {\n i.currentRenderPassId = T[E];\n for (const b of this.subMeshes)\n if (!x.isReady(b, r, ((d = b.getMaterial()) == null ? void 0 : d.needAlphaBlendingForMesh(this)) ?? !1))\n return i.currentRenderPassId = o, !1;\n }\n i.currentRenderPassId = o;\n }\n }\n }\n for (const f of this._internalMeshDataInfo._LODLevels)\n if (f.mesh && !f.mesh.isReady(r))\n return !1;\n return !0;\n }\n /**\n * Gets a boolean indicating if the normals aren't to be recomputed on next mesh `positions` array update. This property is pertinent only for updatable parametric shapes.\n */\n get areNormalsFrozen() {\n return this._internalMeshDataInfo._areNormalsFrozen;\n }\n /**\n * This function affects parametric shapes on vertex position update only : ribbons, tubes, etc. It has no effect at all on other shapes. It prevents the mesh normals from being recomputed on next `positions` array update.\n * @returns the current mesh\n */\n freezeNormals() {\n return this._internalMeshDataInfo._areNormalsFrozen = !0, this;\n }\n /**\n * This function affects parametric shapes on vertex position update only : ribbons, tubes, etc. It has no effect at all on other shapes. It reactivates the mesh normals computation if it was previously frozen\n * @returns the current mesh\n */\n unfreezeNormals() {\n return this._internalMeshDataInfo._areNormalsFrozen = !1, this;\n }\n /**\n * Sets a value overriding the instance count. Only applicable when custom instanced InterleavedVertexBuffer are used rather than InstancedMeshs\n */\n set overridenInstanceCount(e) {\n this._instanceDataStorage.overridenInstanceCount = e;\n }\n // Methods\n /** @internal */\n _preActivate() {\n const e = this._internalMeshDataInfo, t = this.getScene().getRenderId();\n return e._preActivateId === t ? this : (e._preActivateId = t, this._instanceDataStorage.visibleInstances = null, this);\n }\n /**\n * @internal\n */\n _preActivateForIntermediateRendering(e) {\n return this._instanceDataStorage.visibleInstances && (this._instanceDataStorage.visibleInstances.intermediateDefaultRenderId = e), this;\n }\n /**\n * @internal\n */\n _registerInstanceForRenderId(e, t) {\n return this._instanceDataStorage.visibleInstances || (this._instanceDataStorage.visibleInstances = {\n defaultRenderId: t,\n selfDefaultRenderId: this._renderId\n }), this._instanceDataStorage.visibleInstances[t] || (this._instanceDataStorage.previousRenderId !== void 0 && this._instanceDataStorage.isFrozen && (this._instanceDataStorage.visibleInstances[this._instanceDataStorage.previousRenderId] = null), this._instanceDataStorage.previousRenderId = t, this._instanceDataStorage.visibleInstances[t] = new Array()), this._instanceDataStorage.visibleInstances[t].push(e), this;\n }\n _afterComputeWorldMatrix() {\n super._afterComputeWorldMatrix(), this.hasThinInstances && (this.doNotSyncBoundingInfo || this.thinInstanceRefreshBoundingInfo(!1));\n }\n /** @internal */\n _postActivate() {\n this.edgesShareWithInstances && this.edgesRenderer && this.edgesRenderer.isEnabled && this._renderingGroup && (this._renderingGroup._edgesRenderers.pushNoDuplicate(this.edgesRenderer), this.edgesRenderer.customInstances.push(this.getWorldMatrix()));\n }\n /**\n * This method recomputes and sets a new BoundingInfo to the mesh unless it is locked.\n * This means the mesh underlying bounding box and sphere are recomputed.\n * @param applySkeletonOrOptions defines whether to apply the skeleton before computing the bounding info or a set of options\n * @param applyMorph defines whether to apply the morph target before computing the bounding info\n * @returns the current mesh\n */\n refreshBoundingInfo(e = !1, t = !1) {\n if (this.hasBoundingInfo && this.getBoundingInfo().isLocked)\n return this;\n let i;\n typeof e == \"object\" ? i = e : i = {\n applySkeleton: e,\n applyMorph: t\n };\n const s = this.geometry ? this.geometry.boundingBias : null;\n return this._refreshBoundingInfo(this._getData(i, null, R.PositionKind), s), this;\n }\n /**\n * @internal\n */\n _createGlobalSubMesh(e) {\n const t = this.getTotalVertices();\n if (!t || !this.getIndices())\n return null;\n if (this.subMeshes && this.subMeshes.length > 0) {\n const i = this.getIndices();\n if (!i)\n return null;\n const s = i.length;\n let r = !1;\n if (e)\n r = !0;\n else\n for (const n of this.subMeshes) {\n if (n.indexStart + n.indexCount > s) {\n r = !0;\n break;\n }\n if (n.verticesStart + n.verticesCount > t) {\n r = !0;\n break;\n }\n }\n if (!r)\n return this.subMeshes[0];\n }\n return this.releaseSubMeshes(), new or(0, 0, t, 0, this.getTotalIndices(), this);\n }\n /**\n * This function will subdivide the mesh into multiple submeshes\n * @param count defines the expected number of submeshes\n */\n subdivide(e) {\n if (e < 1)\n return;\n const t = this.getTotalIndices();\n let i = t / e | 0, s = 0;\n for (; i % 3 !== 0; )\n i++;\n this.releaseSubMeshes();\n for (let r = 0; r < e && !(s >= t); r++)\n or.CreateFromIndices(0, s, r === e - 1 ? t - s : i, this, void 0, !1), s += i;\n this.refreshBoundingInfo(), this.synchronizeInstances();\n }\n /**\n * Copy a FloatArray into a specific associated vertex buffer\n * @param kind defines which buffer to write to (positions, indices, normals, etc). Possible `kind` values :\n * - VertexBuffer.PositionKind\n * - VertexBuffer.UVKind\n * - VertexBuffer.UV2Kind\n * - VertexBuffer.UV3Kind\n * - VertexBuffer.UV4Kind\n * - VertexBuffer.UV5Kind\n * - VertexBuffer.UV6Kind\n * - VertexBuffer.ColorKind\n * - VertexBuffer.MatricesIndicesKind\n * - VertexBuffer.MatricesIndicesExtraKind\n * - VertexBuffer.MatricesWeightsKind\n * - VertexBuffer.MatricesWeightsExtraKind\n * @param data defines the data source\n * @param updatable defines if the updated vertex buffer must be flagged as updatable\n * @param stride defines the data stride size (can be null)\n * @returns the current mesh\n */\n setVerticesData(e, t, i = !1, s) {\n if (this._geometry)\n this._geometry.setVerticesData(e, t, i, s);\n else {\n const r = new ge();\n r.set(t, e);\n const n = this.getScene();\n new Ks(Ks.RandomId(), n, r, i, this);\n }\n return this;\n }\n /**\n * Delete a vertex buffer associated with this mesh\n * @param kind defines which buffer to delete (positions, indices, normals, etc). Possible `kind` values :\n * - VertexBuffer.PositionKind\n * - VertexBuffer.UVKind\n * - VertexBuffer.UV2Kind\n * - VertexBuffer.UV3Kind\n * - VertexBuffer.UV4Kind\n * - VertexBuffer.UV5Kind\n * - VertexBuffer.UV6Kind\n * - VertexBuffer.ColorKind\n * - VertexBuffer.MatricesIndicesKind\n * - VertexBuffer.MatricesIndicesExtraKind\n * - VertexBuffer.MatricesWeightsKind\n * - VertexBuffer.MatricesWeightsExtraKind\n */\n removeVerticesData(e) {\n this._geometry && this._geometry.removeVerticesData(e);\n }\n /**\n * Flags an associated vertex buffer as updatable\n * @param kind defines which buffer to use (positions, indices, normals, etc). Possible `kind` values :\n * - VertexBuffer.PositionKind\n * - VertexBuffer.UVKind\n * - VertexBuffer.UV2Kind\n * - VertexBuffer.UV3Kind\n * - VertexBuffer.UV4Kind\n * - VertexBuffer.UV5Kind\n * - VertexBuffer.UV6Kind\n * - VertexBuffer.ColorKind\n * - VertexBuffer.MatricesIndicesKind\n * - VertexBuffer.MatricesIndicesExtraKind\n * - VertexBuffer.MatricesWeightsKind\n * - VertexBuffer.MatricesWeightsExtraKind\n * @param updatable defines if the updated vertex buffer must be flagged as updatable\n */\n markVerticesDataAsUpdatable(e, t = !0) {\n const i = this.getVertexBuffer(e);\n !i || i.isUpdatable() === t || this.setVerticesData(e, this.getVerticesData(e), t);\n }\n /**\n * Sets the mesh global Vertex Buffer\n * @param buffer defines the buffer to use\n * @param disposeExistingBuffer disposes the existing buffer, if any (default: true)\n * @returns the current mesh\n */\n setVerticesBuffer(e, t = !0) {\n return this._geometry || (this._geometry = Ks.CreateGeometryForMesh(this)), this._geometry.setVerticesBuffer(e, null, t), this;\n }\n /**\n * Update a specific associated vertex buffer\n * @param kind defines which buffer to write to (positions, indices, normals, etc). Possible `kind` values :\n * - VertexBuffer.PositionKind\n * - VertexBuffer.UVKind\n * - VertexBuffer.UV2Kind\n * - VertexBuffer.UV3Kind\n * - VertexBuffer.UV4Kind\n * - VertexBuffer.UV5Kind\n * - VertexBuffer.UV6Kind\n * - VertexBuffer.ColorKind\n * - VertexBuffer.MatricesIndicesKind\n * - VertexBuffer.MatricesIndicesExtraKind\n * - VertexBuffer.MatricesWeightsKind\n * - VertexBuffer.MatricesWeightsExtraKind\n * @param data defines the data source\n * @param updateExtends defines if extends info of the mesh must be updated (can be null). This is mostly useful for \"position\" kind\n * @param makeItUnique defines if the geometry associated with the mesh must be cloned to make the change only for this mesh (and not all meshes associated with the same geometry)\n * @returns the current mesh\n */\n updateVerticesData(e, t, i, s) {\n return this._geometry ? (s ? (this.makeGeometryUnique(), this.updateVerticesData(e, t, i, !1)) : this._geometry.updateVerticesData(e, t, i), this) : this;\n }\n /**\n * This method updates the vertex positions of an updatable mesh according to the `positionFunction` returned values.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/dynamicMeshMorph#other-shapes-updatemeshpositions\n * @param positionFunction is a simple JS function what is passed the mesh `positions` array. It doesn't need to return anything\n * @param computeNormals is a boolean (default true) to enable/disable the mesh normal recomputation after the vertex position update\n * @returns the current mesh\n */\n updateMeshPositions(e, t = !0) {\n const i = this.getVerticesData(R.PositionKind);\n if (!i)\n return this;\n if (e(i), this.updateVerticesData(R.PositionKind, i, !1, !1), t) {\n const s = this.getIndices(), r = this.getVerticesData(R.NormalKind);\n if (!r)\n return this;\n ge.ComputeNormals(i, s, r), this.updateVerticesData(R.NormalKind, r, !1, !1);\n }\n return this;\n }\n /**\n * Creates a un-shared specific occurence of the geometry for the mesh.\n * @returns the current mesh\n */\n makeGeometryUnique() {\n if (!this._geometry)\n return this;\n if (this._geometry.meshes.length === 1)\n return this;\n const e = this._geometry, t = this._geometry.copy(Ks.RandomId());\n return e.releaseForMesh(this, !0), t.applyToMesh(this), this;\n }\n /**\n * Sets the index buffer of this mesh.\n * @param indexBuffer Defines the index buffer to use for this mesh\n * @param totalVertices Defines the total number of vertices used by the buffer\n * @param totalIndices Defines the total number of indices in the index buffer\n */\n setIndexBuffer(e, t, i) {\n let s = this._geometry;\n s || (s = new Ks(Ks.RandomId(), this.getScene(), void 0, void 0, this)), s.setIndexBuffer(e, t, i);\n }\n /**\n * Set the index buffer of this mesh\n * @param indices defines the source data\n * @param totalVertices defines the total number of vertices referenced by this index data (can be null)\n * @param updatable defines if the updated index buffer must be flagged as updatable (default is false)\n * @returns the current mesh\n */\n setIndices(e, t = null, i = !1) {\n if (this._geometry)\n this._geometry.setIndices(e, t, i);\n else {\n const s = new ge();\n s.indices = e;\n const r = this.getScene();\n new Ks(Ks.RandomId(), r, s, i, this);\n }\n return this;\n }\n /**\n * Update the current index buffer\n * @param indices defines the source data\n * @param offset defines the offset in the index buffer where to store the new data (can be null)\n * @param gpuMemoryOnly defines a boolean indicating that only the GPU memory must be updated leaving the CPU version of the indices unchanged (false by default)\n * @returns the current mesh\n */\n updateIndices(e, t, i = !1) {\n return this._geometry ? (this._geometry.updateIndices(e, t, i), this) : this;\n }\n /**\n * Invert the geometry to move from a right handed system to a left handed one.\n * @returns the current mesh\n */\n toLeftHanded() {\n return this._geometry ? (this._geometry.toLeftHanded(), this) : this;\n }\n /**\n * @internal\n */\n _bind(e, t, i, s = !0) {\n if (!this._geometry)\n return this;\n const r = this.getScene().getEngine();\n let n;\n if (this._unIndexed)\n n = null;\n else\n switch (this._getRenderingFillMode(i)) {\n case ue.PointFillMode:\n n = null;\n break;\n case ue.WireFrameFillMode:\n n = e._getLinesIndexBuffer(this.getIndices(), r);\n break;\n default:\n case ue.TriangleFillMode:\n n = this._geometry.getIndexBuffer();\n break;\n }\n return this._bindDirect(t, n, s);\n }\n /**\n * @internal\n */\n _bindDirect(e, t, i = !0) {\n return this._geometry ? (this.morphTargetManager && this.morphTargetManager.isUsingTextureForTargets && this.morphTargetManager._bind(e), !i || !this._userInstancedBuffersStorage || this.hasThinInstances ? this._geometry._bind(e, t) : this._geometry._bind(e, t, this._userInstancedBuffersStorage.vertexBuffers, this._userInstancedBuffersStorage.vertexArrayObjects), this) : this;\n }\n /**\n * @internal\n */\n _draw(e, t, i) {\n if (!this._geometry || !this._geometry.getVertexBuffers() || !this._unIndexed && !this._geometry.getIndexBuffer())\n return this;\n this._internalMeshDataInfo._onBeforeDrawObservable && this._internalMeshDataInfo._onBeforeDrawObservable.notifyObservers(this);\n const r = this.getScene().getEngine();\n return this._unIndexed || t == ue.PointFillMode ? r.drawArraysType(t, e.verticesStart, e.verticesCount, this.forcedInstanceCount || i) : t == ue.WireFrameFillMode ? r.drawElementsType(t, 0, e._linesIndexCount, this.forcedInstanceCount || i) : r.drawElementsType(t, e.indexStart, e.indexCount, this.forcedInstanceCount || i), this;\n }\n /**\n * Registers for this mesh a javascript function called just before the rendering process\n * @param func defines the function to call before rendering this mesh\n * @returns the current mesh\n */\n registerBeforeRender(e) {\n return this.onBeforeRenderObservable.add(e), this;\n }\n /**\n * Disposes a previously registered javascript function called before the rendering\n * @param func defines the function to remove\n * @returns the current mesh\n */\n unregisterBeforeRender(e) {\n return this.onBeforeRenderObservable.removeCallback(e), this;\n }\n /**\n * Registers for this mesh a javascript function called just after the rendering is complete\n * @param func defines the function to call after rendering this mesh\n * @returns the current mesh\n */\n registerAfterRender(e) {\n return this.onAfterRenderObservable.add(e), this;\n }\n /**\n * Disposes a previously registered javascript function called after the rendering.\n * @param func defines the function to remove\n * @returns the current mesh\n */\n unregisterAfterRender(e) {\n return this.onAfterRenderObservable.removeCallback(e), this;\n }\n /**\n * @internal\n */\n _getInstancesRenderList(e, t = !1) {\n if (this._instanceDataStorage.isFrozen) {\n if (t)\n return this._instanceDataStorage.batchCacheReplacementModeInFrozenMode.hardwareInstancedRendering[e] = !1, this._instanceDataStorage.batchCacheReplacementModeInFrozenMode.renderSelf[e] = !0, this._instanceDataStorage.batchCacheReplacementModeInFrozenMode;\n if (this._instanceDataStorage.previousBatch)\n return this._instanceDataStorage.previousBatch;\n }\n const i = this.getScene(), s = i._isInIntermediateRendering(), r = s ? this._internalAbstractMeshDataInfo._onlyForInstancesIntermediate : this._internalAbstractMeshDataInfo._onlyForInstances, n = this._instanceDataStorage.batchCache;\n if (n.mustReturn = !1, n.renderSelf[e] = t || !r && this.isEnabled() && this.isVisible, n.visibleInstances[e] = null, this._instanceDataStorage.visibleInstances && !t) {\n const o = this._instanceDataStorage.visibleInstances, l = i.getRenderId(), h = s ? o.intermediateDefaultRenderId : o.defaultRenderId;\n n.visibleInstances[e] = o[l], !n.visibleInstances[e] && h && (n.visibleInstances[e] = o[h]);\n }\n return n.hardwareInstancedRendering[e] = !t && this._instanceDataStorage.hardwareInstancedRendering && n.visibleInstances[e] !== null && n.visibleInstances[e] !== void 0, this._instanceDataStorage.previousBatch = n, n;\n }\n /**\n * @internal\n */\n _renderWithInstances(e, t, i, s, r) {\n var v;\n const n = i.visibleInstances[e._id], o = n ? n.length : 0, l = this._instanceDataStorage, h = l.instancesBufferSize;\n let c = l.instancesBuffer, u = l.instancesPreviousBuffer;\n const f = (o + 1) * 16 * 4;\n for (; l.instancesBufferSize < f; )\n l.instancesBufferSize *= 2;\n (!l.instancesData || h != l.instancesBufferSize) && (l.instancesData = new Float32Array(l.instancesBufferSize / 4)), (this._scene.needsPreviousWorldMatrices && !l.instancesPreviousData || h != l.instancesBufferSize) && (l.instancesPreviousData = new Float32Array(l.instancesBufferSize / 4));\n let p = 0, _ = 0;\n const m = i.renderSelf[e._id], x = !c || h !== l.instancesBufferSize || this._scene.needsPreviousWorldMatrices && !l.instancesPreviousBuffer;\n if (!this._instanceDataStorage.manualUpdate && (!l.isFrozen || x)) {\n const T = this.getWorldMatrix();\n if (m && (this._scene.needsPreviousWorldMatrices && (l.masterMeshPreviousWorldMatrix ? (l.masterMeshPreviousWorldMatrix.copyToArray(l.instancesPreviousData, p), l.masterMeshPreviousWorldMatrix.copyFrom(T)) : (l.masterMeshPreviousWorldMatrix = T.clone(), l.masterMeshPreviousWorldMatrix.copyToArray(l.instancesPreviousData, p))), T.copyToArray(l.instancesData, p), p += 16, _++), n) {\n if (H.INSTANCEDMESH_SORT_TRANSPARENT && this._scene.activeCamera && ((v = e.getMaterial()) != null && v.needAlphaBlendingForMesh(e.getRenderingMesh()))) {\n const E = this._scene.activeCamera.globalPosition;\n for (let b = 0; b < n.length; b++) {\n const S = n[b];\n S._distanceToCamera = g.Distance(S.getBoundingInfo().boundingSphere.centerWorld, E);\n }\n n.sort((b, S) => b._distanceToCamera > S._distanceToCamera ? -1 : b._distanceToCamera < S._distanceToCamera ? 1 : 0);\n }\n for (let E = 0; E < n.length; E++) {\n const b = n[E], S = b.getWorldMatrix();\n S.copyToArray(l.instancesData, p), this._scene.needsPreviousWorldMatrices && (b._previousWorldMatrix ? (b._previousWorldMatrix.copyToArray(l.instancesPreviousData, p), b._previousWorldMatrix.copyFrom(S)) : (b._previousWorldMatrix = S.clone(), b._previousWorldMatrix.copyToArray(l.instancesPreviousData, p))), p += 16, _++;\n }\n }\n } else\n _ = (m ? 1 : 0) + o;\n return x ? (c && c.dispose(), u && u.dispose(), c = new ys(r, l.instancesData, !0, 16, !1, !0), l.instancesBuffer = c, this._userInstancedBuffersStorage || (this._userInstancedBuffersStorage = {\n data: {},\n vertexBuffers: {},\n strides: {},\n sizes: {},\n vertexArrayObjects: this.getEngine().getCaps().vertexArrayObject ? {} : void 0\n }), this._userInstancedBuffersStorage.vertexBuffers.world0 = c.createVertexBuffer(\"world0\", 0, 4), this._userInstancedBuffersStorage.vertexBuffers.world1 = c.createVertexBuffer(\"world1\", 4, 4), this._userInstancedBuffersStorage.vertexBuffers.world2 = c.createVertexBuffer(\"world2\", 8, 4), this._userInstancedBuffersStorage.vertexBuffers.world3 = c.createVertexBuffer(\"world3\", 12, 4), this._scene.needsPreviousWorldMatrices && (u = new ys(r, l.instancesPreviousData, !0, 16, !1, !0), l.instancesPreviousBuffer = u, this._userInstancedBuffersStorage.vertexBuffers.previousWorld0 = u.createVertexBuffer(\"previousWorld0\", 0, 4), this._userInstancedBuffersStorage.vertexBuffers.previousWorld1 = u.createVertexBuffer(\"previousWorld1\", 4, 4), this._userInstancedBuffersStorage.vertexBuffers.previousWorld2 = u.createVertexBuffer(\"previousWorld2\", 8, 4), this._userInstancedBuffersStorage.vertexBuffers.previousWorld3 = u.createVertexBuffer(\"previousWorld3\", 12, 4)), this._invalidateInstanceVertexArrayObject()) : (!this._instanceDataStorage.isFrozen || this._instanceDataStorage.forceMatrixUpdates) && (c.updateDirectly(l.instancesData, 0, _), this._scene.needsPreviousWorldMatrices && (!this._instanceDataStorage.manualUpdate || this._instanceDataStorage.previousManualUpdate) && u.updateDirectly(l.instancesPreviousData, 0, _)), this._processInstancedBuffers(n, m), this.getScene()._activeIndices.addCount(e.indexCount * _, !1), r._currentDrawContext && (r._currentDrawContext.useInstancing = !0), this._bind(e, s, t), this._draw(e, t, _), this._scene.needsPreviousWorldMatrices && !x && this._instanceDataStorage.manualUpdate && (!this._instanceDataStorage.isFrozen || this._instanceDataStorage.forceMatrixUpdates) && !this._instanceDataStorage.previousManualUpdate && u.updateDirectly(l.instancesData, 0, _), r.unbindInstanceAttributes(), this;\n }\n /**\n * @internal\n */\n _renderWithThinInstances(e, t, i, s) {\n var n;\n const r = ((n = this._thinInstanceDataStorage) == null ? void 0 : n.instancesCount) ?? 0;\n this.getScene()._activeIndices.addCount(e.indexCount * r, !1), s._currentDrawContext && (s._currentDrawContext.useInstancing = !0), this._bind(e, i, t), this._draw(e, t, r), this._scene.needsPreviousWorldMatrices && !this._thinInstanceDataStorage.previousMatrixData && this._thinInstanceDataStorage.matrixData && (this._thinInstanceDataStorage.previousMatrixBuffer ? this._thinInstanceDataStorage.previousMatrixBuffer.updateDirectly(this._thinInstanceDataStorage.matrixData, 0, r) : this._thinInstanceDataStorage.previousMatrixBuffer = this._thinInstanceCreateMatrixBuffer(\"previousWorld\", this._thinInstanceDataStorage.matrixData, !1)), s.unbindInstanceAttributes();\n }\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _processInstancedBuffers(e, t) {\n }\n /**\n * @internal\n */\n _processRendering(e, t, i, s, r, n, o, l) {\n const h = this.getScene(), c = h.getEngine();\n if (s = this._getRenderingFillMode(s), n && t.getRenderingMesh().hasThinInstances)\n return this._renderWithThinInstances(t, s, i, c), this;\n if (n)\n this._renderWithInstances(t, s, r, i, c);\n else {\n c._currentDrawContext && (c._currentDrawContext.useInstancing = !1);\n let u = 0;\n r.renderSelf[t._id] && (o && o(!1, e.getWorldMatrix(), l), u++, this._draw(t, s, this._instanceDataStorage.overridenInstanceCount));\n const d = r.visibleInstances[t._id];\n if (d) {\n const f = d.length;\n u += f;\n for (let p = 0; p < f; p++) {\n const m = d[p].getWorldMatrix();\n o && o(!0, m, l), this._draw(t, s);\n }\n }\n h._activeIndices.addCount(t.indexCount * u, !1);\n }\n return this;\n }\n /**\n * @internal\n */\n _rebuild(e = !1) {\n if (this._instanceDataStorage.instancesBuffer && (e && this._instanceDataStorage.instancesBuffer.dispose(), this._instanceDataStorage.instancesBuffer = null), this._userInstancedBuffersStorage) {\n for (const t in this._userInstancedBuffersStorage.vertexBuffers) {\n const i = this._userInstancedBuffersStorage.vertexBuffers[t];\n i && (e && i.dispose(), this._userInstancedBuffersStorage.vertexBuffers[t] = null);\n }\n this._userInstancedBuffersStorage.vertexArrayObjects && (this._userInstancedBuffersStorage.vertexArrayObjects = {});\n }\n this._internalMeshDataInfo._effectiveMaterial = null, super._rebuild(e);\n }\n /** @internal */\n _freeze() {\n if (this.subMeshes) {\n for (let e = 0; e < this.subMeshes.length; e++)\n this._getInstancesRenderList(e);\n this._internalMeshDataInfo._effectiveMaterial = null, this._instanceDataStorage.isFrozen = !0;\n }\n }\n /** @internal */\n _unFreeze() {\n this._instanceDataStorage.isFrozen = !1, this._instanceDataStorage.previousBatch = null;\n }\n /**\n * Triggers the draw call for the mesh (or a submesh), for a specific render pass id\n * @param renderPassId defines the render pass id to use to draw the mesh / submesh. If not provided, use the current renderPassId of the engine.\n * @param enableAlphaMode defines if alpha mode can be changed (default: false)\n * @param effectiveMeshReplacement defines an optional mesh used to provide info for the rendering (default: undefined)\n * @param subMesh defines the subMesh to render. If not provided, draw all mesh submeshes (default: undefined)\n * @param checkFrustumCulling defines if frustum culling must be checked (default: true). If you know the mesh is in the frustum (or if you don't care!), you can pass false to optimize.\n * @returns the current mesh\n */\n renderWithRenderPassId(e, t, i, s, r = !0) {\n const n = this._scene.getEngine(), o = n.currentRenderPassId;\n if (e !== void 0 && (n.currentRenderPassId = e), s)\n (!r || r && s.isInFrustum(this._scene._frustumPlanes)) && this.render(s, !!t, i);\n else\n for (let l = 0; l < this.subMeshes.length; l++) {\n const h = this.subMeshes[l];\n (!r || r && h.isInFrustum(this._scene._frustumPlanes)) && this.render(h, !!t, i);\n }\n return e !== void 0 && (n.currentRenderPassId = o), this;\n }\n /**\n * Triggers the draw call for the mesh. Usually, you don't need to call this method by your own because the mesh rendering is handled by the scene rendering manager\n * @param subMesh defines the subMesh to render\n * @param enableAlphaMode defines if alpha mode can be changed\n * @param effectiveMeshReplacement defines an optional mesh used to provide info for the rendering\n * @returns the current mesh\n */\n render(e, t, i) {\n var C, P;\n const s = this.getScene();\n this._internalAbstractMeshDataInfo._isActiveIntermediate ? this._internalAbstractMeshDataInfo._isActiveIntermediate = !1 : this._internalAbstractMeshDataInfo._isActive = !1;\n const r = ((C = s.activeCameras) == null ? void 0 : C.length) ?? 0;\n if ((r > 1 && s.activeCamera === s.activeCameras[0] || r <= 1) && this._checkOcclusionQuery() && !this._occlusionDataStorage.forceRenderingWhenOccluded)\n return this;\n const o = this._getInstancesRenderList(e._id, !!i);\n if (o.mustReturn)\n return this;\n if (!this._geometry || !this._geometry.getVertexBuffers() || !this._unIndexed && !this._geometry.getIndexBuffer())\n return this;\n const l = s.getEngine();\n let h = 0, c = null;\n this.ignoreCameraMaxZ && s.activeCamera && !s._isInIntermediateRendering() && (h = s.activeCamera.maxZ, c = s.activeCamera, s.activeCamera.maxZ = 0, s.updateTransformMatrix(!0)), this._internalMeshDataInfo._onBeforeRenderObservable && this._internalMeshDataInfo._onBeforeRenderObservable.notifyObservers(this);\n const u = e.getRenderingMesh(), d = o.hardwareInstancedRendering[e._id] || u.hasThinInstances || !!this._userInstancedBuffersStorage && !e.getMesh()._internalAbstractMeshDataInfo._actAsRegularMesh, f = this._instanceDataStorage, p = e.getMaterial();\n if (!p)\n return c && (c.maxZ = h, s.updateTransformMatrix(!0)), this;\n if (!f.isFrozen || !this._internalMeshDataInfo._effectiveMaterial || this._internalMeshDataInfo._effectiveMaterial !== p) {\n if (p._storeEffectOnSubMeshes) {\n if (!p.isReadyForSubMesh(this, e, d))\n return c && (c.maxZ = h, s.updateTransformMatrix(!0)), this;\n } else if (!p.isReady(this, d))\n return c && (c.maxZ = h, s.updateTransformMatrix(!0)), this;\n this._internalMeshDataInfo._effectiveMaterial = p;\n } else if (p._storeEffectOnSubMeshes && !((P = e._drawWrapper) != null && P._wasPreviouslyReady) || !p._storeEffectOnSubMeshes && !p._getDrawWrapper()._wasPreviouslyReady)\n return c && (c.maxZ = h, s.updateTransformMatrix(!0)), this;\n t && l.setAlphaMode(this._internalMeshDataInfo._effectiveMaterial.alphaMode);\n let _;\n this._internalMeshDataInfo._effectiveMaterial._storeEffectOnSubMeshes ? _ = e._drawWrapper : _ = this._internalMeshDataInfo._effectiveMaterial._getDrawWrapper();\n const m = (_ == null ? void 0 : _.effect) ?? null;\n for (const N of s._beforeRenderingMeshStage)\n N.action(this, e, o, m);\n if (!_ || !m)\n return c && (c.maxZ = h, s.updateTransformMatrix(!0)), this;\n const x = i || this;\n let v;\n if (!f.isFrozen && (this._internalMeshDataInfo._effectiveMaterial.backFaceCulling || this._internalMeshDataInfo._effectiveMaterial.sideOrientation !== null || this._internalMeshDataInfo._effectiveMaterial.twoSidedLighting)) {\n const N = x._getWorldMatrixDeterminant();\n v = this._internalMeshDataInfo._effectiveMaterial._getEffectiveOrientation(this), N < 0 && (v = v === ue.ClockWiseSideOrientation ? ue.CounterClockWiseSideOrientation : ue.ClockWiseSideOrientation), f.sideOrientation = v;\n } else\n v = f.sideOrientation;\n const T = this._internalMeshDataInfo._effectiveMaterial._preBind(_, v);\n this._internalMeshDataInfo._effectiveMaterial.forceDepthWrite && l.setDepthWrite(!0);\n const E = this._internalMeshDataInfo._effectiveMaterial, b = E.fillMode;\n this._internalMeshDataInfo._onBeforeBindObservable && this._internalMeshDataInfo._onBeforeBindObservable.notifyObservers(this), d || this._bind(e, m, b, !1);\n const S = x.getWorldMatrix();\n E._storeEffectOnSubMeshes ? E.bindForSubMesh(S, this, e) : E.bind(S, this), !E.backFaceCulling && E.separateCullingPass && (l.setState(!0, E.zOffset, !1, !T, E.cullBackFaces, E.stencil, E.zOffsetUnits), this._processRendering(this, e, m, b, o, d, this._onBeforeDraw, this._internalMeshDataInfo._effectiveMaterial), l.setState(!0, E.zOffset, !1, T, E.cullBackFaces, E.stencil, E.zOffsetUnits), this._internalMeshDataInfo._onBetweenPassObservable && this._internalMeshDataInfo._onBetweenPassObservable.notifyObservers(e)), this._processRendering(this, e, m, b, o, d, this._onBeforeDraw, this._internalMeshDataInfo._effectiveMaterial), this._internalMeshDataInfo._effectiveMaterial.unbind();\n for (const N of s._afterRenderingMeshStage)\n N.action(this, e, o, m);\n return this._internalMeshDataInfo._onAfterRenderObservable && this._internalMeshDataInfo._onAfterRenderObservable.notifyObservers(this), c && (c.maxZ = h, s.updateTransformMatrix(!0)), s.performancePriority === 2 && !f.isFrozen && this._freeze(), this;\n }\n /**\n * Renormalize the mesh and patch it up if there are no weights\n * Similar to normalization by adding the weights compute the reciprocal and multiply all elements, this wil ensure that everything adds to 1.\n * However in the case of zero weights then we set just a single influence to 1.\n * We check in the function for extra's present and if so we use the normalizeSkinWeightsWithExtras rather than the FourWeights version.\n */\n cleanMatrixWeights() {\n this.isVerticesDataPresent(R.MatricesWeightsKind) && (this.isVerticesDataPresent(R.MatricesWeightsExtraKind) ? this._normalizeSkinWeightsAndExtra() : this._normalizeSkinFourWeights());\n }\n // faster 4 weight version.\n _normalizeSkinFourWeights() {\n const e = this.getVerticesData(R.MatricesWeightsKind), t = e.length;\n for (let i = 0; i < t; i += 4) {\n const s = e[i] + e[i + 1] + e[i + 2] + e[i + 3];\n if (s === 0)\n e[i] = 1;\n else {\n const r = 1 / s;\n e[i] *= r, e[i + 1] *= r, e[i + 2] *= r, e[i + 3] *= r;\n }\n }\n this.setVerticesData(R.MatricesWeightsKind, e);\n }\n // handle special case of extra verts. (in theory gltf can handle 12 influences)\n _normalizeSkinWeightsAndExtra() {\n const e = this.getVerticesData(R.MatricesWeightsExtraKind), t = this.getVerticesData(R.MatricesWeightsKind), i = t.length;\n for (let s = 0; s < i; s += 4) {\n let r = t[s] + t[s + 1] + t[s + 2] + t[s + 3];\n if (r += e[s] + e[s + 1] + e[s + 2] + e[s + 3], r === 0)\n t[s] = 1;\n else {\n const n = 1 / r;\n t[s] *= n, t[s + 1] *= n, t[s + 2] *= n, t[s + 3] *= n, e[s] *= n, e[s + 1] *= n, e[s + 2] *= n, e[s + 3] *= n;\n }\n }\n this.setVerticesData(R.MatricesWeightsKind, t), this.setVerticesData(R.MatricesWeightsKind, e);\n }\n /**\n * ValidateSkinning is used to determine that a mesh has valid skinning data along with skin metrics, if missing weights,\n * or not normalized it is returned as invalid mesh the string can be used for console logs, or on screen messages to let\n * the user know there was an issue with importing the mesh\n * @returns a validation object with skinned, valid and report string\n */\n validateSkinning() {\n const e = this.getVerticesData(R.MatricesWeightsExtraKind), t = this.getVerticesData(R.MatricesWeightsKind);\n if (t === null || this.skeleton == null)\n return { skinned: !1, valid: !0, report: \"not skinned\" };\n const i = t.length;\n let s = 0, r = 0, n = 0, o = 0;\n const l = e === null ? 4 : 8, h = [];\n for (let m = 0; m <= l; m++)\n h[m] = 0;\n const c = 1e-3;\n for (let m = 0; m < i; m += 4) {\n let x = t[m], v = x, T = v === 0 ? 0 : 1;\n for (let E = 1; E < l; E++) {\n const b = E < 4 ? t[m + E] : e[m + E - 4];\n b > x && s++, b !== 0 && T++, v += b, x = b;\n }\n if (h[T]++, T > n && (n = T), v === 0)\n r++;\n else {\n const E = 1 / v;\n let b = 0;\n for (let S = 0; S < l; S++)\n S < 4 ? b += Math.abs(t[m + S] - t[m + S] * E) : b += Math.abs(e[m + S - 4] - e[m + S - 4] * E);\n b > c && o++;\n }\n }\n const u = this.skeleton.bones.length, d = this.getVerticesData(R.MatricesIndicesKind), f = this.getVerticesData(R.MatricesIndicesExtraKind);\n let p = 0;\n for (let m = 0; m < i; m += 4)\n for (let x = 0; x < l; x++) {\n const v = x < 4 ? d[m + x] : f[m + x - 4];\n (v >= u || v < 0) && p++;\n }\n const _ = \"Number of Weights = \" + i / 4 + `\nMaximum influences = ` + n + `\nMissing Weights = ` + r + `\nNot Sorted = ` + s + `\nNot Normalized = ` + o + `\nWeightCounts = [` + h + `]\nNumber of bones = ` + u + `\nBad Bone Indices = ` + p;\n return { skinned: !0, valid: r === 0 && o === 0 && p === 0, report: _ };\n }\n /** @internal */\n _checkDelayState() {\n const e = this.getScene();\n return this._geometry ? this._geometry.load(e) : this.delayLoadState === 4 && (this.delayLoadState = 2, this._queueLoad(e)), this;\n }\n _queueLoad(e) {\n e.addPendingData(this);\n const t = this.delayLoadingFile.indexOf(\".babylonbinarymeshdata\") !== -1;\n return J.LoadFile(this.delayLoadingFile, (i) => {\n i instanceof ArrayBuffer ? this._delayLoadingFunction(i, this) : this._delayLoadingFunction(JSON.parse(i), this), this.instances.forEach((s) => {\n s.refreshBoundingInfo(), s._syncSubMeshes();\n }), this.delayLoadState = 1, e.removePendingData(this);\n }, () => {\n }, e.offlineProvider, t), this;\n }\n /**\n * Returns `true` if the mesh is within the frustum defined by the passed array of planes.\n * A mesh is in the frustum if its bounding box intersects the frustum\n * @param frustumPlanes defines the frustum to test\n * @returns true if the mesh is in the frustum planes\n */\n isInFrustum(e) {\n return this.delayLoadState === 2 || !super.isInFrustum(e) ? !1 : (this._checkDelayState(), !0);\n }\n /**\n * Sets the mesh material by the material or multiMaterial `id` property\n * @param id is a string identifying the material or the multiMaterial\n * @returns the current mesh\n */\n setMaterialById(e) {\n const t = this.getScene().materials;\n let i;\n for (i = t.length - 1; i > -1; i--)\n if (t[i].id === e)\n return this.material = t[i], this;\n const s = this.getScene().multiMaterials;\n for (i = s.length - 1; i > -1; i--)\n if (s[i].id === e)\n return this.material = s[i], this;\n return this;\n }\n /**\n * Returns as a new array populated with the mesh material and/or skeleton, if any.\n * @returns an array of IAnimatable\n */\n getAnimatables() {\n const e = [];\n return this.material && e.push(this.material), this.skeleton && e.push(this.skeleton), e;\n }\n /**\n * Modifies the mesh geometry according to the passed transformation matrix.\n * This method returns nothing, but it really modifies the mesh even if it's originally not set as updatable.\n * The mesh normals are modified using the same transformation.\n * Note that, under the hood, this method sets a new VertexBuffer each call.\n * @param transform defines the transform matrix to use\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/transforms/center_origin/bakingTransforms\n * @returns the current mesh\n */\n bakeTransformIntoVertices(e) {\n if (!this.isVerticesDataPresent(R.PositionKind))\n return this;\n const t = this.subMeshes.splice(0);\n this._resetPointsArrayCache();\n let i = this.getVerticesData(R.PositionKind);\n const s = g.Zero();\n let r;\n for (r = 0; r < i.length; r += 3)\n g.TransformCoordinatesFromFloatsToRef(i[r], i[r + 1], i[r + 2], e, s).toArray(i, r);\n if (this.setVerticesData(R.PositionKind, i, this.getVertexBuffer(R.PositionKind).isUpdatable()), this.isVerticesDataPresent(R.NormalKind)) {\n for (i = this.getVerticesData(R.NormalKind), r = 0; r < i.length; r += 3)\n g.TransformNormalFromFloatsToRef(i[r], i[r + 1], i[r + 2], e, s).normalize().toArray(i, r);\n this.setVerticesData(R.NormalKind, i, this.getVertexBuffer(R.NormalKind).isUpdatable());\n }\n if (this.isVerticesDataPresent(R.TangentKind)) {\n for (i = this.getVerticesData(R.TangentKind), r = 0; r < i.length; r += 4)\n g.TransformNormalFromFloatsToRef(i[r], i[r + 1], i[r + 2], e, s).normalize().toArray(i, r);\n this.setVerticesData(R.TangentKind, i, this.getVertexBuffer(R.TangentKind).isUpdatable());\n }\n return e.determinant() < 0 && this.flipFaces(), this.releaseSubMeshes(), this.subMeshes = t, this;\n }\n /**\n * Modifies the mesh geometry according to its own current World Matrix.\n * The mesh World Matrix is then reset.\n * This method returns nothing but really modifies the mesh even if it's originally not set as updatable.\n * Note that, under the hood, this method sets a new VertexBuffer each call.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/transforms/center_origin/bakingTransforms\n * @param bakeIndependentlyOfChildren indicates whether to preserve all child nodes' World Matrix during baking\n * @returns the current mesh\n */\n bakeCurrentTransformIntoVertices(e = !0) {\n return this.bakeTransformIntoVertices(this.computeWorldMatrix(!0)), this.resetLocalMatrix(e), this;\n }\n // Cache\n /** @internal */\n get _positions() {\n return this._internalAbstractMeshDataInfo._positions || this._geometry && this._geometry._positions || null;\n }\n /** @internal */\n _resetPointsArrayCache() {\n return this._geometry && this._geometry._resetPointsArrayCache(), this;\n }\n /** @internal */\n _generatePointsArray() {\n return this._geometry ? this._geometry._generatePointsArray() : !1;\n }\n /**\n * Returns a new Mesh object generated from the current mesh properties.\n * This method must not get confused with createInstance()\n * @param name is a string, the name given to the new mesh\n * @param newParent can be any Node object (default `null`)\n * @param doNotCloneChildren allows/denies the recursive cloning of the original mesh children if any (default `false`)\n * @param clonePhysicsImpostor allows/denies the cloning in the same time of the original mesh `body` used by the physics engine, if any (default `true`)\n * @returns a new mesh\n */\n clone(e = \"\", t = null, i, s = !0) {\n return new H(e, this.getScene(), t, this, i, s);\n }\n /**\n * Releases resources associated with this mesh.\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\n */\n dispose(e, t = !1) {\n this.morphTargetManager = null, this._geometry && this._geometry.releaseForMesh(this, !0);\n const i = this._internalMeshDataInfo;\n if (i._onBeforeDrawObservable && i._onBeforeDrawObservable.clear(), i._onBeforeBindObservable && i._onBeforeBindObservable.clear(), i._onBeforeRenderObservable && i._onBeforeRenderObservable.clear(), i._onAfterRenderObservable && i._onAfterRenderObservable.clear(), i._onBetweenPassObservable && i._onBetweenPassObservable.clear(), this._scene.useClonedMeshMap) {\n if (i.meshMap)\n for (const s in i.meshMap) {\n const r = i.meshMap[s];\n r && (r._internalMeshDataInfo._source = null, i.meshMap[s] = void 0);\n }\n i._source && i._source._internalMeshDataInfo.meshMap && (i._source._internalMeshDataInfo.meshMap[this.uniqueId] = void 0);\n } else {\n const s = this.getScene().meshes;\n for (const r of s) {\n const n = r;\n n._internalMeshDataInfo && n._internalMeshDataInfo._source && n._internalMeshDataInfo._source === this && (n._internalMeshDataInfo._source = null);\n }\n }\n i._source = null, this._instanceDataStorage.visibleInstances = {}, this._disposeInstanceSpecificData(), this._disposeThinInstanceSpecificData(), this._internalMeshDataInfo._checkReadinessObserver && this._scene.onBeforeRenderObservable.remove(this._internalMeshDataInfo._checkReadinessObserver), super.dispose(e, t);\n }\n /** @internal */\n _disposeInstanceSpecificData() {\n }\n /** @internal */\n _disposeThinInstanceSpecificData() {\n }\n /** @internal */\n _invalidateInstanceVertexArrayObject() {\n }\n /**\n * Modifies the mesh geometry according to a displacement map.\n * A displacement map is a colored image. Each pixel color value (actually a gradient computed from red, green, blue values) will give the displacement to apply to each mesh vertex.\n * The mesh must be set as updatable. Its internal geometry is directly modified, no new buffer are allocated.\n * @param url is a string, the URL from the image file is to be downloaded.\n * @param minHeight is the lower limit of the displacement.\n * @param maxHeight is the upper limit of the displacement.\n * @param onSuccess is an optional Javascript function to be called just after the mesh is modified. It is passed the modified mesh and must return nothing.\n * @param uvOffset is an optional vector2 used to offset UV.\n * @param uvScale is an optional vector2 used to scale UV.\n * @param forceUpdate defines whether or not to force an update of the generated buffers. This is useful to apply on a deserialized model for instance.\n * @param onError defines a callback called when an error occurs during the processing of the request.\n * @returns the Mesh.\n */\n applyDisplacementMap(e, t, i, s, r, n, o = !1, l) {\n const h = this.getScene(), c = (u) => {\n const d = u.width, f = u.height, _ = this.getEngine().createCanvas(d, f).getContext(\"2d\");\n _.drawImage(u, 0, 0);\n const m = _.getImageData(0, 0, d, f).data;\n this.applyDisplacementMapFromBuffer(m, d, f, t, i, r, n, o), s && s(this);\n };\n return J.LoadImage(e, c, l || (() => {\n }), h.offlineProvider), this;\n }\n /**\n * Modifies the mesh geometry according to a displacementMap buffer.\n * A displacement map is a colored image. Each pixel color value (actually a gradient computed from red, green, blue values) will give the displacement to apply to each mesh vertex.\n * The mesh must be set as updatable. Its internal geometry is directly modified, no new buffer are allocated.\n * @param buffer is a `Uint8Array` buffer containing series of `Uint8` lower than 255, the red, green, blue and alpha values of each successive pixel.\n * @param heightMapWidth is the width of the buffer image.\n * @param heightMapHeight is the height of the buffer image.\n * @param minHeight is the lower limit of the displacement.\n * @param maxHeight is the upper limit of the displacement.\n * @param uvOffset is an optional vector2 used to offset UV.\n * @param uvScale is an optional vector2 used to scale UV.\n * @param forceUpdate defines whether or not to force an update of the generated buffers. This is useful to apply on a deserialized model for instance.\n * @returns the Mesh.\n */\n applyDisplacementMapFromBuffer(e, t, i, s, r, n, o, l = !1) {\n if (!this.isVerticesDataPresent(R.PositionKind) || !this.isVerticesDataPresent(R.NormalKind) || !this.isVerticesDataPresent(R.UVKind))\n return L.Warn(\"Cannot call applyDisplacementMap: Given mesh is not complete. Position, Normal or UV are missing\"), this;\n const h = this.getVerticesData(R.PositionKind, !0, !0), c = this.getVerticesData(R.NormalKind), u = this.getVerticesData(R.UVKind);\n let d = g.Zero();\n const f = g.Zero(), p = Q.Zero();\n n = n || Q.Zero(), o = o || new Q(1, 1);\n for (let _ = 0; _ < h.length; _ += 3) {\n g.FromArrayToRef(h, _, d), g.FromArrayToRef(c, _, f), Q.FromArrayToRef(u, _ / 3 * 2, p);\n const m = Math.abs(p.x * o.x + n.x % 1) * (t - 1) % t | 0, x = Math.abs(p.y * o.y + n.y % 1) * (i - 1) % i | 0, v = (m + x * t) * 4, T = e[v] / 255, E = e[v + 1] / 255, b = e[v + 2] / 255, S = T * 0.3 + E * 0.59 + b * 0.11;\n f.normalize(), f.scaleInPlace(s + (r - s) * S), d = d.add(f), d.toArray(h, _);\n }\n return ge.ComputeNormals(h, this.getIndices(), c), l ? (this.setVerticesData(R.PositionKind, h), this.setVerticesData(R.NormalKind, c), this.setVerticesData(R.UVKind, u)) : (this.updateVerticesData(R.PositionKind, h), this.updateVerticesData(R.NormalKind, c)), this;\n }\n _getFlattenedNormals(e, t) {\n const i = new Float32Array(e.length * 3);\n let s = 0;\n const r = this.sideOrientation === (this._scene.useRightHandedSystem ? 1 : 0);\n for (let n = 0; n < e.length; n += 3) {\n const o = g.FromArray(t, e[n] * 3), l = g.FromArray(t, e[n + 1] * 3), h = g.FromArray(t, e[n + 2] * 3), c = o.subtract(l), u = h.subtract(l), d = g.Normalize(g.Cross(c, u));\n r && d.scaleInPlace(-1);\n for (let f = 0; f < 3; f++)\n i[s++] = d.x, i[s++] = d.y, i[s++] = d.z;\n }\n return i;\n }\n _convertToUnIndexedMesh(e = !1) {\n const t = this.getVerticesDataKinds(), i = this.getIndices(), s = {}, r = (l, h) => {\n const c = new Float32Array(i.length * h);\n let u = 0;\n for (let d = 0; d < i.length; d++)\n for (let f = 0; f < h; f++)\n c[u++] = l[i[d] * h + f];\n return c;\n }, n = this.getBoundingInfo(), o = this.geometry ? this.subMeshes.slice(0) : [];\n for (const l of t)\n s[l] = this.getVerticesData(l);\n for (const l of t) {\n const h = this.getVertexBuffer(l), c = h.getSize();\n if (e && l === R.NormalKind) {\n const u = this._getFlattenedNormals(i, s[R.PositionKind]);\n this.setVerticesData(R.NormalKind, u, h.isUpdatable(), c);\n } else\n this.setVerticesData(l, r(s[l], c), h.isUpdatable(), c);\n }\n if (this.morphTargetManager) {\n for (let l = 0; l < this.morphTargetManager.numTargets; l++) {\n const h = this.morphTargetManager.getTarget(l), c = h.getPositions();\n h.setPositions(r(c, 3));\n const u = h.getNormals();\n u && h.setNormals(e ? this._getFlattenedNormals(i, c) : r(u, 3));\n const d = h.getTangents();\n d && h.setTangents(r(d, 3));\n const f = h.getUVs();\n f && h.setUVs(r(f, 2));\n }\n this.morphTargetManager.synchronize();\n }\n for (let l = 0; l < i.length; l++)\n i[l] = l;\n this.setIndices(i), this._unIndexed = !0, this.releaseSubMeshes();\n for (const l of o) {\n const h = l.getBoundingInfo();\n or.AddToMesh(l.materialIndex, l.indexStart, l.indexCount, l.indexStart, l.indexCount, this).setBoundingInfo(h);\n }\n return this.setBoundingInfo(n), this.synchronizeInstances(), this;\n }\n /**\n * Modify the mesh to get a flat shading rendering.\n * This means each mesh facet will then have its own normals. Usually new vertices are added in the mesh geometry to get this result.\n * Warning : the mesh is really modified even if not set originally as updatable and, under the hood, a new VertexBuffer is allocated.\n * @returns current mesh\n */\n convertToFlatShadedMesh() {\n return this._convertToUnIndexedMesh(!0);\n }\n /**\n * This method removes all the mesh indices and add new vertices (duplication) in order to unfold facets into buffers.\n * In other words, more vertices, no more indices and a single bigger VBO.\n * The mesh is really modified even if not set originally as updatable. Under the hood, a new VertexBuffer is allocated.\n * @returns current mesh\n */\n convertToUnIndexedMesh() {\n return this._convertToUnIndexedMesh();\n }\n /**\n * Inverses facet orientations.\n * Warning : the mesh is really modified even if not set originally as updatable. A new VertexBuffer is created under the hood each call.\n * @param flipNormals will also inverts the normals\n * @returns current mesh\n */\n flipFaces(e = !1) {\n const t = ge.ExtractFromMesh(this);\n let i;\n if (e && this.isVerticesDataPresent(R.NormalKind) && t.normals)\n for (i = 0; i < t.normals.length; i++)\n t.normals[i] *= -1;\n if (t.indices) {\n let s;\n for (i = 0; i < t.indices.length; i += 3)\n s = t.indices[i + 1], t.indices[i + 1] = t.indices[i + 2], t.indices[i + 2] = s;\n }\n return t.applyToMesh(this, this.isVertexBufferUpdatable(R.PositionKind)), this;\n }\n /**\n * Increase the number of facets and hence vertices in a mesh\n * Vertex normals are interpolated from existing vertex normals\n * Warning : the mesh is really modified even if not set originally as updatable. A new VertexBuffer is created under the hood each call.\n * @param numberPerEdge the number of new vertices to add to each edge of a facet, optional default 1\n */\n increaseVertices(e = 1) {\n const t = ge.ExtractFromMesh(this), i = t.indices && !Array.isArray(t.indices) && Array.from ? Array.from(t.indices) : t.indices, s = t.positions && !Array.isArray(t.positions) && Array.from ? Array.from(t.positions) : t.positions, r = t.uvs && !Array.isArray(t.uvs) && Array.from ? Array.from(t.uvs) : t.uvs, n = t.normals && !Array.isArray(t.normals) && Array.from ? Array.from(t.normals) : t.normals;\n if (!i || !s)\n L.Warn(\"Couldn't increase number of vertices : VertexData must contain at least indices and positions\");\n else {\n t.indices = i, t.positions = s, r && (t.uvs = r), n && (t.normals = n);\n const o = e + 1, l = new Array();\n for (let b = 0; b < o + 1; b++)\n l[b] = new Array();\n let h, c;\n const u = new g(0, 0, 0), d = new g(0, 0, 0), f = new Q(0, 0), p = new Array(), _ = new Array(), m = new Array();\n let x, v = s.length, T;\n r && (T = r.length);\n let E;\n n && (E = n.length);\n for (let b = 0; b < i.length; b += 3) {\n _[0] = i[b], _[1] = i[b + 1], _[2] = i[b + 2];\n for (let S = 0; S < 3; S++)\n if (h = _[S], c = _[(S + 1) % 3], m[h] === void 0 && m[c] === void 0 ? (m[h] = new Array(), m[c] = new Array()) : (m[h] === void 0 && (m[h] = new Array()), m[c] === void 0 && (m[c] = new Array())), m[h][c] === void 0 && m[c][h] === void 0) {\n m[h][c] = [], u.x = (s[3 * c] - s[3 * h]) / o, u.y = (s[3 * c + 1] - s[3 * h + 1]) / o, u.z = (s[3 * c + 2] - s[3 * h + 2]) / o, n && (d.x = (n[3 * c] - n[3 * h]) / o, d.y = (n[3 * c + 1] - n[3 * h + 1]) / o, d.z = (n[3 * c + 2] - n[3 * h + 2]) / o), r && (f.x = (r[2 * c] - r[2 * h]) / o, f.y = (r[2 * c + 1] - r[2 * h + 1]) / o), m[h][c].push(h);\n for (let C = 1; C < o; C++)\n m[h][c].push(s.length / 3), s[v++] = s[3 * h] + C * u.x, s[v++] = s[3 * h + 1] + C * u.y, s[v++] = s[3 * h + 2] + C * u.z, n && (n[E++] = n[3 * h] + C * d.x, n[E++] = n[3 * h + 1] + C * d.y, n[E++] = n[3 * h + 2] + C * d.z), r && (r[T++] = r[2 * h] + C * f.x, r[T++] = r[2 * h + 1] + C * f.y);\n m[h][c].push(c), m[c][h] = new Array(), x = m[h][c].length;\n for (let C = 0; C < x; C++)\n m[c][h][C] = m[h][c][x - 1 - C];\n }\n l[0][0] = i[b], l[1][0] = m[i[b]][i[b + 1]][1], l[1][1] = m[i[b]][i[b + 2]][1];\n for (let S = 2; S < o; S++) {\n l[S][0] = m[i[b]][i[b + 1]][S], l[S][S] = m[i[b]][i[b + 2]][S], u.x = (s[3 * l[S][S]] - s[3 * l[S][0]]) / S, u.y = (s[3 * l[S][S] + 1] - s[3 * l[S][0] + 1]) / S, u.z = (s[3 * l[S][S] + 2] - s[3 * l[S][0] + 2]) / S, n && (d.x = (n[3 * l[S][S]] - n[3 * l[S][0]]) / S, d.y = (n[3 * l[S][S] + 1] - n[3 * l[S][0] + 1]) / S, d.z = (n[3 * l[S][S] + 2] - n[3 * l[S][0] + 2]) / S), r && (f.x = (r[2 * l[S][S]] - r[2 * l[S][0]]) / S, f.y = (r[2 * l[S][S] + 1] - r[2 * l[S][0] + 1]) / S);\n for (let C = 1; C < S; C++)\n l[S][C] = s.length / 3, s[v++] = s[3 * l[S][0]] + C * u.x, s[v++] = s[3 * l[S][0] + 1] + C * u.y, s[v++] = s[3 * l[S][0] + 2] + C * u.z, n && (n[E++] = n[3 * l[S][0]] + C * d.x, n[E++] = n[3 * l[S][0] + 1] + C * d.y, n[E++] = n[3 * l[S][0] + 2] + C * d.z), r && (r[T++] = r[2 * l[S][0]] + C * f.x, r[T++] = r[2 * l[S][0] + 1] + C * f.y);\n }\n l[o] = m[i[b + 1]][i[b + 2]], p.push(l[0][0], l[1][0], l[1][1]);\n for (let S = 1; S < o; S++) {\n let C;\n for (C = 0; C < S; C++)\n p.push(l[S][C], l[S + 1][C], l[S + 1][C + 1]), p.push(l[S][C], l[S + 1][C + 1], l[S][C + 1]);\n p.push(l[S][C], l[S + 1][C], l[S + 1][C + 1]);\n }\n }\n t.indices = p, t.applyToMesh(this, this.isVertexBufferUpdatable(R.PositionKind));\n }\n }\n /**\n * Force adjacent facets to share vertices and remove any facets that have all vertices in a line\n * This will undo any application of covertToFlatShadedMesh\n * Warning : the mesh is really modified even if not set originally as updatable. A new VertexBuffer is created under the hood each call.\n */\n forceSharedVertices() {\n const e = ge.ExtractFromMesh(this), t = e.uvs, i = e.indices, s = e.positions, r = e.colors, n = e.matricesIndices, o = e.matricesWeights, l = e.matricesIndicesExtra, h = e.matricesWeightsExtra;\n if (i === void 0 || s === void 0 || i === null || s === null)\n L.Warn(\"VertexData contains empty entries\");\n else {\n const c = new Array(), u = new Array(), d = new Array(), f = new Array(), p = new Array(), _ = new Array(), m = new Array(), x = new Array();\n let v = new Array(), T = 0;\n const E = {};\n let b, S;\n for (let P = 0; P < i.length; P += 3) {\n S = [i[P], i[P + 1], i[P + 2]], v = [];\n for (let N = 0; N < 3; N++) {\n v[N] = \"\";\n for (let F = 0; F < 3; F++)\n Math.abs(s[3 * S[N] + F]) < 1e-8 && (s[3 * S[N] + F] = 0), v[N] += s[3 * S[N] + F] + \"|\";\n }\n if (!(v[0] == v[1] || v[0] == v[2] || v[1] == v[2]))\n for (let N = 0; N < 3; N++) {\n if (b = E[v[N]], b === void 0) {\n E[v[N]] = T, b = T++;\n for (let F = 0; F < 3; F++)\n c.push(s[3 * S[N] + F]);\n if (r != null)\n for (let F = 0; F < 4; F++)\n f.push(r[4 * S[N] + F]);\n if (t != null)\n for (let F = 0; F < 2; F++)\n d.push(t[2 * S[N] + F]);\n if (n != null)\n for (let F = 0; F < 4; F++)\n p.push(n[4 * S[N] + F]);\n if (o != null)\n for (let F = 0; F < 4; F++)\n _.push(o[4 * S[N] + F]);\n if (l != null)\n for (let F = 0; F < 4; F++)\n m.push(l[4 * S[N] + F]);\n if (h != null)\n for (let F = 0; F < 4; F++)\n x.push(h[4 * S[N] + F]);\n }\n u.push(b);\n }\n }\n const C = new Array();\n ge.ComputeNormals(c, u, C), e.positions = c, e.indices = u, e.normals = C, t != null && (e.uvs = d), r != null && (e.colors = f), n != null && (e.matricesIndices = p), o != null && (e.matricesWeights = _), l != null && (e.matricesIndicesExtra = m), o != null && (e.matricesWeightsExtra = x), e.applyToMesh(this, this.isVertexBufferUpdatable(R.PositionKind));\n }\n }\n // Instances\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/naming-convention\n static _instancedMeshFactory(e, t) {\n throw $e(\"InstancedMesh\");\n }\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static _PhysicsImpostorParser(e, t, i) {\n throw $e(\"PhysicsImpostor\");\n }\n /**\n * Creates a new InstancedMesh object from the mesh model.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/copies/instances\n * @param name defines the name of the new instance\n * @returns a new InstancedMesh\n */\n createInstance(e) {\n return H._instancedMeshFactory(e, this);\n }\n /**\n * Synchronises all the mesh instance submeshes to the current mesh submeshes, if any.\n * After this call, all the mesh instances have the same submeshes than the current mesh.\n * @returns the current mesh\n */\n synchronizeInstances() {\n for (let e = 0; e < this.instances.length; e++)\n this.instances[e]._syncSubMeshes();\n return this;\n }\n /**\n * Optimization of the mesh's indices, in case a mesh has duplicated vertices.\n * The function will only reorder the indices and will not remove unused vertices to avoid problems with submeshes.\n * This should be used together with the simplification to avoid disappearing triangles.\n * @param successCallback an optional success callback to be called after the optimization finished.\n * @returns the current mesh\n */\n optimizeIndices(e) {\n const t = this.getIndices(), i = this.getVerticesData(R.PositionKind);\n if (!i || !t)\n return this;\n const s = [];\n for (let n = 0; n < i.length; n = n + 3)\n s.push(g.FromArray(i, n));\n const r = [];\n return On.SyncAsyncForLoop(s.length, 40, (n) => {\n const o = s.length - 1 - n, l = s[o];\n for (let h = 0; h < o; ++h) {\n const c = s[h];\n if (l.equals(c)) {\n r[o] = h;\n break;\n }\n }\n }, () => {\n for (let o = 0; o < t.length; ++o)\n t[o] = r[t[o]] || t[o];\n const n = this.subMeshes.slice(0);\n this.setIndices(t), this.subMeshes = n, e && e(this);\n }), this;\n }\n /**\n * Serialize current mesh\n * @param serializationObject defines the object which will receive the serialization data\n * @returns the serialized object\n */\n serialize(e = {}) {\n e.name = this.name, e.id = this.id, e.uniqueId = this.uniqueId, e.type = this.getClassName(), Ct && Ct.HasTags(this) && (e.tags = Ct.GetTags(this)), e.position = this.position.asArray(), this.rotationQuaternion ? e.rotationQuaternion = this.rotationQuaternion.asArray() : this.rotation && (e.rotation = this.rotation.asArray()), e.scaling = this.scaling.asArray(), this._postMultiplyPivotMatrix ? e.pivotMatrix = this.getPivotMatrix().asArray() : e.localMatrix = this.getPivotMatrix().asArray(), e.isEnabled = this.isEnabled(!1), e.isVisible = this.isVisible, e.infiniteDistance = this.infiniteDistance, e.pickable = this.isPickable, e.receiveShadows = this.receiveShadows, e.billboardMode = this.billboardMode, e.visibility = this.visibility, e.alwaysSelectAsActiveMesh = this.alwaysSelectAsActiveMesh, e.checkCollisions = this.checkCollisions, e.ellipsoid = this.ellipsoid.asArray(), e.ellipsoidOffset = this.ellipsoidOffset.asArray(), e.doNotSyncBoundingInfo = this.doNotSyncBoundingInfo, e.isBlocker = this.isBlocker, e.sideOrientation = this.sideOrientation, this.parent && this.parent._serializeAsParent(e), e.isUnIndexed = this.isUnIndexed;\n const t = this._geometry;\n if (t && this.subMeshes) {\n e.geometryUniqueId = t.uniqueId, e.geometryId = t.id, e.subMeshes = [];\n for (let i = 0; i < this.subMeshes.length; i++) {\n const s = this.subMeshes[i];\n e.subMeshes.push({\n materialIndex: s.materialIndex,\n verticesStart: s.verticesStart,\n verticesCount: s.verticesCount,\n indexStart: s.indexStart,\n indexCount: s.indexCount\n });\n }\n }\n if (this.material ? this.material.doNotSerialize || (e.materialUniqueId = this.material.uniqueId, e.materialId = this.material.id) : (this.material = null, e.materialUniqueId = this._scene.defaultMaterial.uniqueId, e.materialId = this._scene.defaultMaterial.id), this.morphTargetManager && (e.morphTargetManagerId = this.morphTargetManager.uniqueId), this.skeleton && (e.skeletonId = this.skeleton.id, e.numBoneInfluencers = this.numBoneInfluencers), this.getScene()._getComponent(me.NAME_PHYSICSENGINE)) {\n const i = this.getPhysicsImpostor();\n i && (e.physicsMass = i.getParam(\"mass\"), e.physicsFriction = i.getParam(\"friction\"), e.physicsRestitution = i.getParam(\"mass\"), e.physicsImpostor = i.type);\n }\n this.metadata && (e.metadata = this.metadata), e.instances = [];\n for (let i = 0; i < this.instances.length; i++) {\n const s = this.instances[i];\n if (s.doNotSerialize)\n continue;\n const r = {\n name: s.name,\n id: s.id,\n isEnabled: s.isEnabled(!1),\n isVisible: s.isVisible,\n isPickable: s.isPickable,\n checkCollisions: s.checkCollisions,\n position: s.position.asArray(),\n scaling: s.scaling.asArray()\n };\n if (s.parent && s.parent._serializeAsParent(r), s.rotationQuaternion ? r.rotationQuaternion = s.rotationQuaternion.asArray() : s.rotation && (r.rotation = s.rotation.asArray()), this.getScene()._getComponent(me.NAME_PHYSICSENGINE)) {\n const n = s.getPhysicsImpostor();\n n && (r.physicsMass = n.getParam(\"mass\"), r.physicsFriction = n.getParam(\"friction\"), r.physicsRestitution = n.getParam(\"mass\"), r.physicsImpostor = n.type);\n }\n s.metadata && (r.metadata = s.metadata), s.actionManager && (r.actions = s.actionManager.serialize(s.name)), e.instances.push(r), Ae.AppendSerializedAnimations(s, r), r.ranges = s.serializeAnimationRanges();\n }\n if (this._thinInstanceDataStorage.instancesCount && this._thinInstanceDataStorage.matrixData && (e.thinInstances = {\n instancesCount: this._thinInstanceDataStorage.instancesCount,\n matrixData: Array.from(this._thinInstanceDataStorage.matrixData),\n matrixBufferSize: this._thinInstanceDataStorage.matrixBufferSize,\n enablePicking: this.thinInstanceEnablePicking\n }, this._userThinInstanceBuffersStorage)) {\n const i = {\n data: {},\n sizes: {},\n strides: {}\n };\n for (const s in this._userThinInstanceBuffersStorage.data)\n i.data[s] = Array.from(this._userThinInstanceBuffersStorage.data[s]), i.sizes[s] = this._userThinInstanceBuffersStorage.sizes[s], i.strides[s] = this._userThinInstanceBuffersStorage.strides[s];\n e.thinInstances.userThinInstance = i;\n }\n return Ae.AppendSerializedAnimations(this, e), e.ranges = this.serializeAnimationRanges(), e.layerMask = this.layerMask, e.alphaIndex = this.alphaIndex, e.hasVertexAlpha = this.hasVertexAlpha, e.overlayAlpha = this.overlayAlpha, e.overlayColor = this.overlayColor.asArray(), e.renderOverlay = this.renderOverlay, e.applyFog = this.applyFog, this.actionManager && (e.actions = this.actionManager.serialize(this.name)), e;\n }\n /** @internal */\n _syncGeometryWithMorphTargetManager() {\n if (!this.geometry)\n return;\n this._markSubMeshesAsAttributesDirty();\n const e = this._internalAbstractMeshDataInfo._morphTargetManager;\n if (e && e.vertexCount) {\n if (e.vertexCount !== this.getTotalVertices()) {\n L.Error(\"Mesh is incompatible with morph targets. Targets and mesh must all have the same vertices count.\"), this.morphTargetManager = null;\n return;\n }\n if (e.isUsingTextureForTargets)\n return;\n for (let t = 0; t < e.numInfluencers; t++) {\n const i = e.getActiveTarget(t), s = i.getPositions();\n if (!s) {\n L.Error(\"Invalid morph target. Target must have positions.\");\n return;\n }\n this.geometry.setVerticesData(R.PositionKind + t, s, !1, 3);\n const r = i.getNormals();\n r && this.geometry.setVerticesData(R.NormalKind + t, r, !1, 3);\n const n = i.getTangents();\n n && this.geometry.setVerticesData(R.TangentKind + t, n, !1, 3);\n const o = i.getUVs();\n o && this.geometry.setVerticesData(R.UVKind + \"_\" + t, o, !1, 2);\n }\n } else {\n let t = 0;\n for (; this.geometry.isVerticesDataPresent(R.PositionKind + t); )\n this.geometry.removeVerticesData(R.PositionKind + t), this.geometry.isVerticesDataPresent(R.NormalKind + t) && this.geometry.removeVerticesData(R.NormalKind + t), this.geometry.isVerticesDataPresent(R.TangentKind + t) && this.geometry.removeVerticesData(R.TangentKind + t), this.geometry.isVerticesDataPresent(R.UVKind + t) && this.geometry.removeVerticesData(R.UVKind + \"_\" + t), t++;\n }\n }\n /**\n * Returns a new Mesh object parsed from the source provided.\n * @param parsedMesh is the source\n * @param scene defines the hosting scene\n * @param rootUrl is the root URL to prefix the `delayLoadingFile` property with\n * @returns a new Mesh\n */\n static Parse(e, t, i) {\n let s;\n if (e.type && e.type === \"LinesMesh\" ? s = H._LinesMeshParser(e, t) : e.type && e.type === \"GroundMesh\" ? s = H._GroundMeshParser(e, t) : e.type && e.type === \"GoldbergMesh\" ? s = H._GoldbergMeshParser(e, t) : e.type && e.type === \"GreasedLineMesh\" ? s = H._GreasedLineMeshParser(e, t) : e.type && e.type === \"TrailMesh\" ? s = H._TrailMeshParser(e, t) : s = new H(e.name, t), s.id = e.id, s._waitingParsedUniqueId = e.uniqueId, Ct && Ct.AddTagsTo(s, e.tags), s.position = g.FromArray(e.position), e.metadata !== void 0 && (s.metadata = e.metadata), e.rotationQuaternion ? s.rotationQuaternion = se.FromArray(e.rotationQuaternion) : e.rotation && (s.rotation = g.FromArray(e.rotation)), s.scaling = g.FromArray(e.scaling), e.localMatrix ? s.setPreTransformMatrix(O.FromArray(e.localMatrix)) : e.pivotMatrix && s.setPivotMatrix(O.FromArray(e.pivotMatrix)), s.setEnabled(e.isEnabled), s.isVisible = e.isVisible, s.infiniteDistance = e.infiniteDistance, s.alwaysSelectAsActiveMesh = !!e.alwaysSelectAsActiveMesh, s.showBoundingBox = e.showBoundingBox, s.showSubMeshesBoundingBox = e.showSubMeshesBoundingBox, e.applyFog !== void 0 && (s.applyFog = e.applyFog), e.pickable !== void 0 && (s.isPickable = e.pickable), e.alphaIndex !== void 0 && (s.alphaIndex = e.alphaIndex), s.receiveShadows = e.receiveShadows, e.billboardMode !== void 0 && (s.billboardMode = e.billboardMode), e.visibility !== void 0 && (s.visibility = e.visibility), s.checkCollisions = e.checkCollisions, s.doNotSyncBoundingInfo = !!e.doNotSyncBoundingInfo, e.ellipsoid && (s.ellipsoid = g.FromArray(e.ellipsoid)), e.ellipsoidOffset && (s.ellipsoidOffset = g.FromArray(e.ellipsoidOffset)), e.overrideMaterialSideOrientation != null && (s.sideOrientation = e.overrideMaterialSideOrientation), e.sideOrientation !== void 0 && (s.sideOrientation = e.sideOrientation), e.isBlocker !== void 0 && (s.isBlocker = e.isBlocker), s._shouldGenerateFlatShading = e.useFlatShading, e.freezeWorldMatrix && (s._waitingData.freezeWorldMatrix = e.freezeWorldMatrix), e.parentId !== void 0 && (s._waitingParentId = e.parentId), e.parentInstanceIndex !== void 0 && (s._waitingParentInstanceIndex = e.parentInstanceIndex), e.actions !== void 0 && (s._waitingData.actions = e.actions), e.overlayAlpha !== void 0 && (s.overlayAlpha = e.overlayAlpha), e.overlayColor !== void 0 && (s.overlayColor = re.FromArray(e.overlayColor)), e.renderOverlay !== void 0 && (s.renderOverlay = e.renderOverlay), s.isUnIndexed = !!e.isUnIndexed, s.hasVertexAlpha = e.hasVertexAlpha, e.delayLoadingFile ? (s.delayLoadState = 4, s.delayLoadingFile = i + e.delayLoadingFile, s.buildBoundingInfo(g.FromArray(e.boundingBoxMinimum), g.FromArray(e.boundingBoxMaximum)), e._binaryInfo && (s._binaryInfo = e._binaryInfo), s._delayInfo = [], e.hasUVs && s._delayInfo.push(R.UVKind), e.hasUVs2 && s._delayInfo.push(R.UV2Kind), e.hasUVs3 && s._delayInfo.push(R.UV3Kind), e.hasUVs4 && s._delayInfo.push(R.UV4Kind), e.hasUVs5 && s._delayInfo.push(R.UV5Kind), e.hasUVs6 && s._delayInfo.push(R.UV6Kind), e.hasColors && s._delayInfo.push(R.ColorKind), e.hasMatricesIndices && s._delayInfo.push(R.MatricesIndicesKind), e.hasMatricesWeights && s._delayInfo.push(R.MatricesWeightsKind), s._delayLoadingFunction = Ks._ImportGeometry, Ts.ForceFullSceneLoadingForIncremental && s._checkDelayState()) : Ks._ImportGeometry(e, s), e.materialUniqueId ? s._waitingMaterialId = e.materialUniqueId : e.materialId && (s._waitingMaterialId = e.materialId), e.morphTargetManagerId > -1 && (s.morphTargetManager = t.getMorphTargetManagerById(e.morphTargetManagerId)), e.skeletonId !== void 0 && e.skeletonId !== null && (s.skeleton = t.getLastSkeletonById(e.skeletonId), e.numBoneInfluencers && (s.numBoneInfluencers = e.numBoneInfluencers)), e.animations) {\n for (let r = 0; r < e.animations.length; r++) {\n const n = e.animations[r], o = Oi(\"BABYLON.Animation\");\n o && s.animations.push(o.Parse(n));\n }\n Lt.ParseAnimationRanges(s, e, t);\n }\n if (e.autoAnimate && t.beginAnimation(s, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1), e.layerMask && !isNaN(e.layerMask) ? s.layerMask = Math.abs(parseInt(e.layerMask)) : s.layerMask = 268435455, e.physicsImpostor && (s.physicsImpostor = H._PhysicsImpostorParser(t, s, e)), e.lodMeshIds && (s._waitingData.lods = {\n ids: e.lodMeshIds,\n distances: e.lodDistances ? e.lodDistances : null,\n coverages: e.lodCoverages ? e.lodCoverages : null\n }), e.instances)\n for (let r = 0; r < e.instances.length; r++) {\n const n = e.instances[r], o = s.createInstance(n.name);\n if (n.id && (o.id = n.id), Ct && (n.tags ? Ct.AddTagsTo(o, n.tags) : Ct.AddTagsTo(o, e.tags)), o.position = g.FromArray(n.position), n.metadata !== void 0 && (o.metadata = n.metadata), n.parentId !== void 0 && (o._waitingParentId = n.parentId), n.parentInstanceIndex !== void 0 && (o._waitingParentInstanceIndex = n.parentInstanceIndex), n.isEnabled !== void 0 && n.isEnabled !== null && o.setEnabled(n.isEnabled), n.isVisible !== void 0 && n.isVisible !== null && (o.isVisible = n.isVisible), n.isPickable !== void 0 && n.isPickable !== null && (o.isPickable = n.isPickable), n.rotationQuaternion ? o.rotationQuaternion = se.FromArray(n.rotationQuaternion) : n.rotation && (o.rotation = g.FromArray(n.rotation)), o.scaling = g.FromArray(n.scaling), n.checkCollisions != null && n.checkCollisions != null && (o.checkCollisions = n.checkCollisions), n.pickable != null && n.pickable != null && (o.isPickable = n.pickable), n.showBoundingBox != null && n.showBoundingBox != null && (o.showBoundingBox = n.showBoundingBox), n.showSubMeshesBoundingBox != null && n.showSubMeshesBoundingBox != null && (o.showSubMeshesBoundingBox = n.showSubMeshesBoundingBox), n.alphaIndex != null && n.showSubMeshesBoundingBox != null && (o.alphaIndex = n.alphaIndex), n.physicsImpostor && (o.physicsImpostor = H._PhysicsImpostorParser(t, o, n)), n.actions !== void 0 && (o._waitingData.actions = n.actions), n.animations) {\n for (let l = 0; l < n.animations.length; l++) {\n const h = n.animations[l], c = Oi(\"BABYLON.Animation\");\n c && o.animations.push(c.Parse(h));\n }\n Lt.ParseAnimationRanges(o, n, t), n.autoAnimate && t.beginAnimation(o, n.autoAnimateFrom, n.autoAnimateTo, n.autoAnimateLoop, n.autoAnimateSpeed || 1);\n }\n }\n if (e.thinInstances) {\n const r = e.thinInstances;\n if (s.thinInstanceEnablePicking = !!r.enablePicking, r.matrixData ? (s.thinInstanceSetBuffer(\"matrix\", new Float32Array(r.matrixData), 16, !1), s._thinInstanceDataStorage.matrixBufferSize = r.matrixBufferSize, s._thinInstanceDataStorage.instancesCount = r.instancesCount) : s._thinInstanceDataStorage.matrixBufferSize = r.matrixBufferSize, e.thinInstances.userThinInstance) {\n const n = e.thinInstances.userThinInstance;\n for (const o in n.data)\n s.thinInstanceSetBuffer(o, new Float32Array(n.data[o]), n.strides[o], !1), s._userThinInstanceBuffersStorage.sizes[o] = n.sizes[o];\n }\n }\n return s;\n }\n // Skeletons\n /**\n * Prepare internal position array for software CPU skinning\n * @returns original positions used for CPU skinning. Useful for integrating Morphing with skeletons in same mesh\n */\n setPositionsForCPUSkinning() {\n const e = this._internalMeshDataInfo;\n if (!e._sourcePositions) {\n const t = this.getVerticesData(R.PositionKind);\n if (!t)\n return e._sourcePositions;\n e._sourcePositions = new Float32Array(t), this.isVertexBufferUpdatable(R.PositionKind) || this.setVerticesData(R.PositionKind, t, !0);\n }\n return e._sourcePositions;\n }\n /**\n * Prepare internal normal array for software CPU skinning\n * @returns original normals used for CPU skinning. Useful for integrating Morphing with skeletons in same mesh.\n */\n setNormalsForCPUSkinning() {\n const e = this._internalMeshDataInfo;\n if (!e._sourceNormals) {\n const t = this.getVerticesData(R.NormalKind);\n if (!t)\n return e._sourceNormals;\n e._sourceNormals = new Float32Array(t), this.isVertexBufferUpdatable(R.NormalKind) || this.setVerticesData(R.NormalKind, t, !0);\n }\n return e._sourceNormals;\n }\n /**\n * Updates the vertex buffer by applying transformation from the bones\n * @param skeleton defines the skeleton to apply to current mesh\n * @returns the current mesh\n */\n applySkeleton(e) {\n if (!this.geometry)\n return this;\n if (this.geometry._softwareSkinningFrameId == this.getScene().getFrameId())\n return this;\n if (this.geometry._softwareSkinningFrameId = this.getScene().getFrameId(), !this.isVerticesDataPresent(R.PositionKind))\n return this;\n if (!this.isVerticesDataPresent(R.MatricesIndicesKind))\n return this;\n if (!this.isVerticesDataPresent(R.MatricesWeightsKind))\n return this;\n const t = this.isVerticesDataPresent(R.NormalKind), i = this._internalMeshDataInfo;\n if (!i._sourcePositions) {\n const x = this.subMeshes.slice();\n this.setPositionsForCPUSkinning(), this.subMeshes = x;\n }\n t && !i._sourceNormals && this.setNormalsForCPUSkinning();\n let s = this.getVerticesData(R.PositionKind);\n if (!s)\n return this;\n s instanceof Float32Array || (s = new Float32Array(s));\n let r = this.getVerticesData(R.NormalKind);\n if (t) {\n if (!r)\n return this;\n r instanceof Float32Array || (r = new Float32Array(r));\n }\n const n = this.getVerticesData(R.MatricesIndicesKind), o = this.getVerticesData(R.MatricesWeightsKind);\n if (!o || !n)\n return this;\n const l = this.numBoneInfluencers > 4, h = l ? this.getVerticesData(R.MatricesIndicesExtraKind) : null, c = l ? this.getVerticesData(R.MatricesWeightsExtraKind) : null, u = e.getTransformMatrices(this), d = g.Zero(), f = new O(), p = new O();\n let _ = 0, m;\n for (let x = 0; x < s.length; x += 3, _ += 4) {\n let v;\n for (m = 0; m < 4; m++)\n v = o[_ + m], v > 0 && (O.FromFloat32ArrayToRefScaled(u, Math.floor(n[_ + m] * 16), v, p), f.addToSelf(p));\n if (l)\n for (m = 0; m < 4; m++)\n v = c[_ + m], v > 0 && (O.FromFloat32ArrayToRefScaled(u, Math.floor(h[_ + m] * 16), v, p), f.addToSelf(p));\n g.TransformCoordinatesFromFloatsToRef(i._sourcePositions[x], i._sourcePositions[x + 1], i._sourcePositions[x + 2], f, d), d.toArray(s, x), t && (g.TransformNormalFromFloatsToRef(i._sourceNormals[x], i._sourceNormals[x + 1], i._sourceNormals[x + 2], f, d), d.toArray(r, x)), f.reset();\n }\n return this.updateVerticesData(R.PositionKind, s), t && this.updateVerticesData(R.NormalKind, r), this;\n }\n // Tools\n /**\n * Returns an object containing a min and max Vector3 which are the minimum and maximum vectors of each mesh bounding box from the passed array, in the world coordinates\n * @param meshes defines the list of meshes to scan\n * @returns an object `{min:` Vector3`, max:` Vector3`}`\n */\n static MinMax(e) {\n let t = null, i = null;\n return e.forEach(function(s) {\n const n = s.getBoundingInfo().boundingBox;\n !t || !i ? (t = n.minimumWorld, i = n.maximumWorld) : (t.minimizeInPlace(n.minimumWorld), i.maximizeInPlace(n.maximumWorld));\n }), !t || !i ? {\n min: g.Zero(),\n max: g.Zero()\n } : {\n min: t,\n max: i\n };\n }\n /**\n * Returns the center of the `{min:` Vector3`, max:` Vector3`}` or the center of MinMax vector3 computed from a mesh array\n * @param meshesOrMinMaxVector could be an array of meshes or a `{min:` Vector3`, max:` Vector3`}` object\n * @returns a vector3\n */\n static Center(e) {\n const t = e instanceof Array ? H.MinMax(e) : e;\n return g.Center(t.min, t.max);\n }\n /**\n * Merge the array of meshes into a single mesh for performance reasons.\n * @param meshes array of meshes with the vertices to merge. Entries cannot be empty meshes.\n * @param disposeSource when true (default), dispose of the vertices from the source meshes.\n * @param allow32BitsIndices when the sum of the vertices > 64k, this must be set to true.\n * @param meshSubclass (optional) can be set to a Mesh where the merged vertices will be inserted.\n * @param subdivideWithSubMeshes when true (false default), subdivide mesh into subMeshes.\n * @param multiMultiMaterials when true (false default), subdivide mesh into subMeshes with multiple materials, ignores subdivideWithSubMeshes.\n * @returns a new mesh\n */\n static MergeMeshes(e, t = !0, i, s, r, n) {\n return Lx(H._MergeMeshesCoroutine(e, t, i, s, r, n, !1));\n }\n /**\n * Merge the array of meshes into a single mesh for performance reasons.\n * @param meshes array of meshes with the vertices to merge. Entries cannot be empty meshes.\n * @param disposeSource when true (default), dispose of the vertices from the source meshes.\n * @param allow32BitsIndices when the sum of the vertices > 64k, this must be set to true.\n * @param meshSubclass (optional) can be set to a Mesh where the merged vertices will be inserted.\n * @param subdivideWithSubMeshes when true (false default), subdivide mesh into subMeshes.\n * @param multiMultiMaterials when true (false default), subdivide mesh into subMeshes with multiple materials, ignores subdivideWithSubMeshes.\n * @returns a new mesh\n */\n static MergeMeshesAsync(e, t = !0, i, s, r, n) {\n return Bx(H._MergeMeshesCoroutine(e, t, i, s, r, n, !0), YO());\n }\n static *_MergeMeshesCoroutine(e, t = !0, i, s, r, n, o) {\n if (e = e.filter(Boolean), e.length === 0)\n return null;\n let l;\n if (!i) {\n let C = 0;\n for (l = 0; l < e.length; l++)\n if (C += e[l].getTotalVertices(), C >= 65536)\n return L.Warn(\"Cannot merge meshes because resulting mesh will have more than 65536 vertices. Please use allow32BitsIndices = true to use 32 bits indices\"), null;\n }\n n && (r = !1);\n const h = new Array(), c = new Array(), u = new Array(), d = e[0].sideOrientation;\n for (l = 0; l < e.length; l++) {\n const C = e[l];\n if (C.isAnInstance)\n return L.Warn(\"Cannot merge instance meshes.\"), null;\n if (d !== C.sideOrientation)\n return L.Warn(\"Cannot merge meshes with different sideOrientation values.\"), null;\n if (r && u.push(C.getTotalIndices()), n)\n if (C.material) {\n const P = C.material;\n if (P instanceof fo) {\n for (let N = 0; N < P.subMaterials.length; N++)\n h.indexOf(P.subMaterials[N]) < 0 && h.push(P.subMaterials[N]);\n for (let N = 0; N < C.subMeshes.length; N++)\n c.push(h.indexOf(P.subMaterials[C.subMeshes[N].materialIndex])), u.push(C.subMeshes[N].indexCount);\n } else {\n h.indexOf(P) < 0 && h.push(P);\n for (let N = 0; N < C.subMeshes.length; N++)\n c.push(h.indexOf(P)), u.push(C.subMeshes[N].indexCount);\n }\n } else\n for (let P = 0; P < C.subMeshes.length; P++)\n c.push(0), u.push(C.subMeshes[P].indexCount);\n }\n const f = e[0], p = (C) => {\n const P = C.computeWorldMatrix(!0);\n return { vertexData: ge.ExtractFromMesh(C, !1, !1), transform: P };\n }, { vertexData: _, transform: m } = p(f);\n o && (yield);\n const x = new Array(e.length - 1);\n for (let C = 1; C < e.length; C++)\n x[C - 1] = p(e[C]), o && (yield);\n const v = _._mergeCoroutine(m, x, i, o, !t);\n let T = v.next();\n for (; !T.done; )\n o && (yield), T = v.next();\n const E = T.value;\n s || (s = new H(f.name + \"_merged\", f.getScene()));\n const b = E._applyToCoroutine(s, void 0, o);\n let S = b.next();\n for (; !S.done; )\n o && (yield), S = b.next();\n if (s.checkCollisions = f.checkCollisions, s.sideOrientation = f.sideOrientation, t)\n for (l = 0; l < e.length; l++)\n e[l].dispose();\n if (r || n) {\n s.releaseSubMeshes(), l = 0;\n let C = 0;\n for (; l < u.length; )\n or.CreateFromIndices(0, C, u[l], s, void 0, !1), C += u[l], l++;\n for (const P of s.subMeshes)\n P.refreshBoundingInfo();\n s.computeWorldMatrix(!0);\n }\n if (n) {\n const C = new fo(f.name + \"_merged\", f.getScene());\n C.subMaterials = h;\n for (let P = 0; P < s.subMeshes.length; P++)\n s.subMeshes[P].materialIndex = c[P];\n s.material = C;\n } else\n s.material = f.material;\n return s;\n }\n /**\n * @internal\n */\n addInstance(e) {\n e._indexInSourceMeshInstanceArray = this.instances.length, this.instances.push(e);\n }\n /**\n * @internal\n */\n removeInstance(e) {\n const t = e._indexInSourceMeshInstanceArray;\n if (t != -1) {\n if (t !== this.instances.length - 1) {\n const i = this.instances[this.instances.length - 1];\n this.instances[t] = i, i._indexInSourceMeshInstanceArray = t;\n }\n e._indexInSourceMeshInstanceArray = -1, this.instances.pop();\n }\n }\n /** @internal */\n _shouldConvertRHS() {\n return this._scene.useRightHandedSystem && this.sideOrientation === ue.CounterClockWiseSideOrientation;\n }\n /** @internal */\n _getRenderingFillMode(e) {\n const t = this.getScene();\n return t.forcePointsCloud ? ue.PointFillMode : t.forceWireframe ? ue.WireFrameFillMode : this.overrideRenderingFillMode ?? e;\n }\n // deprecated methods\n /**\n * Sets the mesh material by the material or multiMaterial `id` property\n * @param id is a string identifying the material or the multiMaterial\n * @returns the current mesh\n * @deprecated Please use MeshBuilder instead Please use setMaterialById instead\n */\n setMaterialByID(e) {\n return this.setMaterialById(e);\n }\n /**\n * Creates a ribbon mesh.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param\n * @param name defines the name of the mesh to create\n * @param pathArray is a required array of paths, what are each an array of successive Vector3. The pathArray parameter depicts the ribbon geometry.\n * @param closeArray creates a seam between the first and the last paths of the path array (default is false)\n * @param closePath creates a seam between the first and the last points of each path of the path array\n * @param offset is taken in account only if the `pathArray` is containing a single path\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param sideOrientation defines the mesh side orientation (https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation)\n * @param instance defines an instance of an existing Ribbon object to be updated with the passed `pathArray` parameter (https://doc.babylonjs.com/how_to/How_to_dynamically_morph_a_mesh#ribbon)\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateRibbon(e, t, i, s, r, n, o, l, h) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a plane polygonal mesh. By default, this is a disc.\n * @param name defines the name of the mesh to create\n * @param radius sets the radius size (float) of the polygon (default 0.5)\n * @param tessellation sets the number of polygon sides (positive integer, default 64). So a tessellation valued to 3 will build a triangle, to 4 a square, etc\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param sideOrientation defines the mesh side orientation (https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation)\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateDisc(e, t, i, s, r, n) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a box mesh.\n * @param name defines the name of the mesh to create\n * @param size sets the size (float) of each box side (default 1)\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param sideOrientation defines the mesh side orientation (https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation)\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateBox(e, t, i, s, r) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a sphere mesh.\n * @param name defines the name of the mesh to create\n * @param segments sets the sphere number of horizontal stripes (positive integer, default 32)\n * @param diameter sets the diameter size (float) of the sphere (default 1)\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param sideOrientation defines the mesh side orientation (https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation)\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateSphere(e, t, i, s, r, n) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a hemisphere mesh.\n * @param name defines the name of the mesh to create\n * @param segments sets the sphere number of horizontal stripes (positive integer, default 32)\n * @param diameter sets the diameter size (float) of the sphere (default 1)\n * @param scene defines the hosting scene\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateHemisphere(e, t, i, s) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a cylinder or a cone mesh.\n * @param name defines the name of the mesh to create\n * @param height sets the height size (float) of the cylinder/cone (float, default 2)\n * @param diameterTop set the top cap diameter (floats, default 1)\n * @param diameterBottom set the bottom cap diameter (floats, default 1). This value can't be zero\n * @param tessellation sets the number of cylinder sides (positive integer, default 24). Set it to 3 to get a prism for instance\n * @param subdivisions sets the number of rings along the cylinder height (positive integer, default 1)\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param sideOrientation defines the mesh side orientation (https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation)\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateCylinder(e, t, i, s, r, n, o, l, h) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n // Torus (Code from SharpDX.org)\n /**\n * Creates a torus mesh.\n * @param name defines the name of the mesh to create\n * @param diameter sets the diameter size (float) of the torus (default 1)\n * @param thickness sets the diameter size of the tube of the torus (float, default 0.5)\n * @param tessellation sets the number of torus sides (positive integer, default 16)\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param sideOrientation defines the mesh side orientation (https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation)\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateTorus(e, t, i, s, r, n, o) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a torus knot mesh.\n * @param name defines the name of the mesh to create\n * @param radius sets the global radius size (float) of the torus knot (default 2)\n * @param tube sets the diameter size of the tube of the torus (float, default 0.5)\n * @param radialSegments sets the number of sides on each tube segments (positive integer, default 32)\n * @param tubularSegments sets the number of tubes to decompose the knot into (positive integer, default 32)\n * @param p the number of windings on X axis (positive integers, default 2)\n * @param q the number of windings on Y axis (positive integers, default 3)\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param sideOrientation defines the mesh side orientation (https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation)\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateTorusKnot(e, t, i, s, r, n, o, l, h, c) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a line mesh..\n * @param name defines the name of the mesh to create\n * @param points is an array successive Vector3\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param instance is an instance of an existing LineMesh object to be updated with the passed `points` parameter (https://doc.babylonjs.com/how_to/How_to_dynamically_morph_a_mesh#lines-and-dashedlines).\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateLines(e, t, i, s, r) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a dashed line mesh.\n * @param name defines the name of the mesh to create\n * @param points is an array successive Vector3\n * @param dashSize is the size of the dashes relatively the dash number (positive float, default 3)\n * @param gapSize is the size of the gap between two successive dashes relatively the dash number (positive float, default 1)\n * @param dashNb is the intended total number of dashes (positive integer, default 200)\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param instance is an instance of an existing LineMesh object to be updated with the passed `points` parameter (https://doc.babylonjs.com/how_to/How_to_dynamically_morph_a_mesh#lines-and-dashedlines)\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateDashedLines(e, t, i, s, r, n, o, l) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a polygon mesh.Please consider using the same method from the MeshBuilder class instead\n * The polygon's shape will depend on the input parameters and is constructed parallel to a ground mesh.\n * The parameter `shape` is a required array of successive Vector3 representing the corners of the polygon in th XoZ plane, that is y = 0 for all vectors.\n * You can set the mesh side orientation with the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created.\n * Remember you can only change the shape positions, not their number when updating a polygon.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param#non-regular-polygon\n * @param name defines the name of the mesh to create\n * @param shape is a required array of successive Vector3 representing the corners of the polygon in th XoZ plane, that is y = 0 for all vectors\n * @param scene defines the hosting scene\n * @param holes is a required array of arrays of successive Vector3 used to defines holes in the polygon\n * @param updatable defines if the mesh must be flagged as updatable\n * @param sideOrientation defines the mesh side orientation (https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation)\n * @param earcutInjection can be used to inject your own earcut reference\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreatePolygon(e, t, i, s, r, n, o) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates an extruded polygon mesh, with depth in the Y direction..\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param#extruded-non-regular-polygon\n * @param name defines the name of the mesh to create\n * @param shape is a required array of successive Vector3 representing the corners of the polygon in th XoZ plane, that is y = 0 for all vectors\n * @param depth defines the height of extrusion\n * @param scene defines the hosting scene\n * @param holes is a required array of arrays of successive Vector3 used to defines holes in the polygon\n * @param updatable defines if the mesh must be flagged as updatable\n * @param sideOrientation defines the mesh side orientation (https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation)\n * @param earcutInjection can be used to inject your own earcut reference\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static ExtrudePolygon(e, t, i, s, r, n, o, l) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates an extruded shape mesh.\n * The extrusion is a parametric shape. It has no predefined shape. Its final shape will depend on the input parameters.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param#extruded-shapes\n * @param name defines the name of the mesh to create\n * @param shape is a required array of successive Vector3. This array depicts the shape to be extruded in its local space : the shape must be designed in the xOy plane and will be extruded along the Z axis\n * @param path is a required array of successive Vector3. This is the axis curve the shape is extruded along\n * @param scale is the value to scale the shape\n * @param rotation is the angle value to rotate the shape each step (each path point), from the former step (so rotation added each step) along the curve\n * @param cap sets the way the extruded shape is capped. Possible values : Mesh.NO_CAP (default), Mesh.CAP_START, Mesh.CAP_END, Mesh.CAP_ALL\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param sideOrientation defines the mesh side orientation (https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation)\n * @param instance is an instance of an existing ExtrudedShape object to be updated with the passed `shape`, `path`, `scale` or `rotation` parameters (https://doc.babylonjs.com/how_to/How_to_dynamically_morph_a_mesh#extruded-shape)\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static ExtrudeShape(e, t, i, s, r, n, o, l, h, c) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates an custom extruded shape mesh.\n * The custom extrusion is a parametric shape.\n * It has no predefined shape. Its final shape will depend on the input parameters.\n *\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param#extruded-shapes\n * @param name defines the name of the mesh to create\n * @param shape is a required array of successive Vector3. This array depicts the shape to be extruded in its local space : the shape must be designed in the xOy plane and will be extruded along the Z axis\n * @param path is a required array of successive Vector3. This is the axis curve the shape is extruded along\n * @param scaleFunction is a custom Javascript function called on each path point\n * @param rotationFunction is a custom Javascript function called on each path point\n * @param ribbonCloseArray forces the extrusion underlying ribbon to close all the paths in its `pathArray`\n * @param ribbonClosePath forces the extrusion underlying ribbon to close its `pathArray`\n * @param cap sets the way the extruded shape is capped. Possible values : Mesh.NO_CAP (default), Mesh.CAP_START, Mesh.CAP_END, Mesh.CAP_ALL\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param sideOrientation defines the mesh side orientation (https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation)\n * @param instance is an instance of an existing ExtrudedShape object to be updated with the passed `shape`, `path`, `scale` or `rotation` parameters (https://doc.babylonjs.com/features/featuresDeepDive/mesh/dynamicMeshMorph#extruded-shape)\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static ExtrudeShapeCustom(e, t, i, s, r, n, o, l, h, c, u, d) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates lathe mesh.\n * The lathe is a shape with a symmetry axis : a 2D model shape is rotated around this axis to design the lathe.\n * @param name defines the name of the mesh to create\n * @param shape is a required array of successive Vector3. This array depicts the shape to be rotated in its local space : the shape must be designed in the xOy plane and will be rotated around the Y axis. It's usually a 2D shape, so the Vector3 z coordinates are often set to zero\n * @param radius is the radius value of the lathe\n * @param tessellation is the side number of the lathe.\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param sideOrientation defines the mesh side orientation (https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation)\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateLathe(e, t, i, s, r, n, o) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a plane mesh.\n * @param name defines the name of the mesh to create\n * @param size sets the size (float) of both sides of the plane at once (default 1)\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param sideOrientation defines the mesh side orientation (https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation)\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreatePlane(e, t, i, s, r) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a ground mesh.\n * @param name defines the name of the mesh to create\n * @param width set the width of the ground\n * @param height set the height of the ground\n * @param subdivisions sets the number of subdivisions per side\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateGround(e, t, i, s, r, n) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a tiled ground mesh.\n * @param name defines the name of the mesh to create\n * @param xmin set the ground minimum X coordinate\n * @param zmin set the ground minimum Y coordinate\n * @param xmax set the ground maximum X coordinate\n * @param zmax set the ground maximum Z coordinate\n * @param subdivisions is an object `{w: positive integer, h: positive integer}` (default `{w: 6, h: 6}`). `w` and `h` are the numbers of subdivisions on the ground width and height. Each subdivision is called a tile\n * @param precision is an object `{w: positive integer, h: positive integer}` (default `{w: 2, h: 2}`). `w` and `h` are the numbers of subdivisions on the ground width and height of each tile\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateTiledGround(e, t, i, s, r, n, o, l, h) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a ground mesh from a height map.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set/height_map\n * @param name defines the name of the mesh to create\n * @param url sets the URL of the height map image resource\n * @param width set the ground width size\n * @param height set the ground height size\n * @param subdivisions sets the number of subdivision per side\n * @param minHeight is the minimum altitude on the ground\n * @param maxHeight is the maximum altitude on the ground\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param onReady is a callback function that will be called once the mesh is built (the height map download can last some time)\n * @param alphaFilter will filter any data where the alpha channel is below this value, defaults 0 (all data visible)\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateGroundFromHeightMap(e, t, i, s, r, n, o, l, h, c, u) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a tube mesh.\n * The tube is a parametric shape.\n * It has no predefined shape. Its final shape will depend on the input parameters.\n *\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param\n * @param name defines the name of the mesh to create\n * @param path is a required array of successive Vector3. It is the curve used as the axis of the tube\n * @param radius sets the tube radius size\n * @param tessellation is the number of sides on the tubular surface\n * @param radiusFunction is a custom function. If it is not null, it overrides the parameter `radius`. This function is called on each point of the tube path and is passed the index `i` of the i-th point and the distance of this point from the first point of the path\n * @param cap sets the way the extruded shape is capped. Possible values : Mesh.NO_CAP (default), Mesh.CAP_START, Mesh.CAP_END, Mesh.CAP_ALL\n * @param scene defines the hosting scene\n * @param updatable defines if the mesh must be flagged as updatable\n * @param sideOrientation defines the mesh side orientation (https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation)\n * @param instance is an instance of an existing Tube object to be updated with the passed `pathArray` parameter (https://doc.babylonjs.com/how_to/How_to_dynamically_morph_a_mesh#tube)\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateTube(e, t, i, s, r, n, o, l, h, c) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a polyhedron mesh.\n *.\n * * The parameter `type` (positive integer, max 14, default 0) sets the polyhedron type to build among the 15 embedded types. Please refer to the type sheet in the tutorial to choose the wanted type\n * * The parameter `size` (positive float, default 1) sets the polygon size\n * * You can overwrite the `size` on each dimension bu using the parameters `sizeX`, `sizeY` or `sizeZ` (positive floats, default to `size` value)\n * * You can build other polyhedron types than the 15 embbeded ones by setting the parameter `custom` (`polyhedronObject`, default null). If you set the parameter `custom`, this overwrittes the parameter `type`\n * * A `polyhedronObject` is a formatted javascript object. You'll find a full file with pre-set polyhedra here : https://github.com/BabylonJS/Extensions/tree/master/Polyhedron\n * * You can set the color and the UV of each side of the polyhedron with the parameters `faceColors` (Color4, default `(1, 1, 1, 1)`) and faceUV (Vector4, default `(0, 0, 1, 1)`)\n * * To understand how to set `faceUV` or `faceColors`, please read this by considering the right number of faces of your polyhedron, instead of only 6 for the box : https://doc.babylonjs.com/features/featuresDeepDive/materials/using/texturePerBoxFace\n * * The parameter `flat` (boolean, default true). If set to false, it gives the polyhedron a single global face, so less vertices and shared normals. In this case, `faceColors` and `faceUV` are ignored\n * * You can also set the mesh side orientation with the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * * If you create a double-sided mesh, you can choose what parts of the texture image to crop and stick respectively on the front and the back sides with the parameters `frontUVs` and `backUVs` (Vector4). Detail here : https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation\n * * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created\n * @param name defines the name of the mesh to create\n * @param options defines the options used to create the mesh\n * @param scene defines the hosting scene\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreatePolyhedron(e, t, i) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a sphere based upon an icosahedron with 20 triangular faces which can be subdivided\n * * The parameter `radius` sets the radius size (float) of the icosphere (default 1)\n * * You can set some different icosphere dimensions, for instance to build an ellipsoid, by using the parameters `radiusX`, `radiusY` and `radiusZ` (all by default have the same value than `radius`)\n * * The parameter `subdivisions` sets the number of subdivisions (positive integer, default 4). The more subdivisions, the more faces on the icosphere whatever its size\n * * The parameter `flat` (boolean, default true) gives each side its own normals. Set it to false to get a smooth continuous light reflection on the surface\n * * You can also set the mesh side orientation with the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * * If you create a double-sided mesh, you can choose what parts of the texture image to crop and stick respectively on the front and the back sides with the parameters `frontUVs` and `backUVs` (Vector4). Detail here : https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set#side-orientation\n * * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/polyhedra#icosphere\n * @param name defines the name of the mesh\n * @param options defines the options used to create the mesh\n * @param scene defines the hosting scene\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateIcoSphere(e, t, i) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Creates a decal mesh.\n *.\n * A decal is a mesh usually applied as a model onto the surface of another mesh\n * @param name defines the name of the mesh\n * @param sourceMesh defines the mesh receiving the decal\n * @param position sets the position of the decal in world coordinates\n * @param normal sets the normal of the mesh where the decal is applied onto in world coordinates\n * @param size sets the decal scaling\n * @param angle sets the angle to rotate the decal\n * @returns a new Mesh\n * @deprecated Please use MeshBuilder instead\n */\n static CreateDecal(e, t, i, s, r, n) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /** Creates a Capsule Mesh\n * @param name defines the name of the mesh.\n * @param options the constructors options used to shape the mesh.\n * @param scene defines the scene the mesh is scoped to.\n * @returns the capsule mesh\n * @see https://doc.babylonjs.com/how_to/capsule_shape\n * @deprecated Please use MeshBuilder instead\n */\n static CreateCapsule(e, t, i) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n /**\n * Extends a mesh to a Goldberg mesh\n * Warning the mesh to convert MUST be an import of a perviously exported Goldberg mesh\n * @param mesh the mesh to convert\n * @returns the extended mesh\n * @deprecated Please use ExtendMeshToGoldberg instead\n */\n static ExtendToGoldberg(e) {\n throw new Error(\"Import MeshBuilder to populate this function\");\n }\n}\nH.FRONTSIDE = ge.FRONTSIDE;\nH.BACKSIDE = ge.BACKSIDE;\nH.DOUBLESIDE = ge.DOUBLESIDE;\nH.DEFAULTSIDE = ge.DEFAULTSIDE;\nH.NO_CAP = 0;\nH.CAP_START = 1;\nH.CAP_END = 2;\nH.CAP_ALL = 3;\nH.NO_FLIP = 0;\nH.FLIP_TILE = 1;\nH.ROTATE_TILE = 2;\nH.FLIP_ROW = 3;\nH.ROTATE_ROW = 4;\nH.FLIP_N_ROTATE_TILE = 5;\nH.FLIP_N_ROTATE_ROW = 6;\nH.CENTER = 0;\nH.LEFT = 1;\nH.RIGHT = 2;\nH.TOP = 3;\nH.BOTTOM = 4;\nH.INSTANCEDMESH_SORT_TRANSPARENT = !1;\nH._GroundMeshParser = (a, e) => {\n throw $e(\"GroundMesh\");\n};\nH._GoldbergMeshParser = (a, e) => {\n throw $e(\"GoldbergMesh\");\n};\nH._LinesMeshParser = (a, e) => {\n throw $e(\"LinesMesh\");\n};\nH._GreasedLineMeshParser = (a, e) => {\n throw $e(\"GreasedLineMesh\");\n};\nH._GreasedLineRibbonMeshParser = (a, e) => {\n throw $e(\"GreasedLineRibbonMesh\");\n};\nH._TrailMeshParser = (a, e) => {\n throw $e(\"TrailMesh\");\n};\nU(\"BABYLON.Mesh\", H);\nclass cw {\n constructor() {\n this._zoomStopsAnimation = !1, this._idleRotationSpeed = 0.05, this._idleRotationWaitTime = 2e3, this._idleRotationSpinupTime = 2e3, this.targetAlpha = null, this._isPointerDown = !1, this._lastFrameTime = null, this._lastInteractionTime = -1 / 0, this._cameraRotationSpeed = 0, this._lastFrameRadius = 0;\n }\n /**\n * Gets the name of the behavior.\n */\n get name() {\n return \"AutoRotation\";\n }\n /**\n * Sets the flag that indicates if user zooming should stop animation.\n */\n set zoomStopsAnimation(e) {\n this._zoomStopsAnimation = e;\n }\n /**\n * Gets the flag that indicates if user zooming should stop animation.\n */\n get zoomStopsAnimation() {\n return this._zoomStopsAnimation;\n }\n /**\n * Sets the default speed at which the camera rotates around the model.\n */\n set idleRotationSpeed(e) {\n this._idleRotationSpeed = e;\n }\n /**\n * Gets the default speed at which the camera rotates around the model.\n */\n get idleRotationSpeed() {\n return this._idleRotationSpeed;\n }\n /**\n * Sets the time (in milliseconds) to wait after user interaction before the camera starts rotating.\n */\n set idleRotationWaitTime(e) {\n this._idleRotationWaitTime = e;\n }\n /**\n * Gets the time (milliseconds) to wait after user interaction before the camera starts rotating.\n */\n get idleRotationWaitTime() {\n return this._idleRotationWaitTime;\n }\n /**\n * Sets the time (milliseconds) to take to spin up to the full idle rotation speed.\n */\n set idleRotationSpinupTime(e) {\n this._idleRotationSpinupTime = e;\n }\n /**\n * Gets the time (milliseconds) to take to spin up to the full idle rotation speed.\n */\n get idleRotationSpinupTime() {\n return this._idleRotationSpinupTime;\n }\n /**\n * Gets a value indicating if the camera is currently rotating because of this behavior\n */\n get rotationInProgress() {\n return Math.abs(this._cameraRotationSpeed) > 0;\n }\n /**\n * Initializes the behavior.\n */\n init() {\n }\n /**\n * Attaches the behavior to its arc rotate camera.\n * @param camera Defines the camera to attach the behavior to\n */\n attach(e) {\n this._attachedCamera = e;\n const t = this._attachedCamera.getScene();\n this._onPrePointerObservableObserver = t.onPrePointerObservable.add((i) => {\n if (i.type === Pe.POINTERDOWN) {\n this._isPointerDown = !0;\n return;\n }\n i.type === Pe.POINTERUP && (this._isPointerDown = !1);\n }), this._onAfterCheckInputsObserver = e.onAfterCheckInputsObservable.add(() => {\n if (this._reachTargetAlpha())\n return;\n const i = Es.Now;\n let s = 0;\n this._lastFrameTime != null && (s = i - this._lastFrameTime), this._lastFrameTime = i, this._applyUserInteraction();\n const r = i - this._lastInteractionTime - this._idleRotationWaitTime, n = Math.max(Math.min(r / this._idleRotationSpinupTime, 1), 0);\n this._cameraRotationSpeed = this._idleRotationSpeed * n, this._attachedCamera && (this._attachedCamera.alpha -= this._cameraRotationSpeed * (s / 1e3));\n });\n }\n /**\n * Detaches the behavior from its current arc rotate camera.\n */\n detach() {\n if (!this._attachedCamera)\n return;\n const e = this._attachedCamera.getScene();\n this._onPrePointerObservableObserver && e.onPrePointerObservable.remove(this._onPrePointerObservableObserver), this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver), this._attachedCamera = null;\n }\n /**\n * Force-reset the last interaction time\n * @param customTime an optional time that will be used instead of the current last interaction time. For example `Date.now()`\n */\n resetLastInteractionTime(e) {\n this._lastInteractionTime = e ?? Es.Now;\n }\n /**\n * Returns true if camera alpha reaches the target alpha\n * @returns true if camera alpha reaches the target alpha\n */\n _reachTargetAlpha() {\n return this._attachedCamera && this.targetAlpha ? Math.abs(this._attachedCamera.alpha - this.targetAlpha) < tt : !1;\n }\n /**\n * Returns true if user is scrolling.\n * @returns true if user is scrolling.\n */\n _userIsZooming() {\n return this._attachedCamera ? this._attachedCamera.inertialRadiusOffset !== 0 : !1;\n }\n _shouldAnimationStopForInteraction() {\n if (!this._attachedCamera)\n return !1;\n let e = !1;\n return this._lastFrameRadius === this._attachedCamera.radius && this._attachedCamera.inertialRadiusOffset !== 0 && (e = !0), this._lastFrameRadius = this._attachedCamera.radius, this._zoomStopsAnimation ? e : this._userIsZooming();\n }\n /**\n * Applies any current user interaction to the camera. Takes into account maximum alpha rotation.\n */\n _applyUserInteraction() {\n this._userIsMoving() && !this._shouldAnimationStopForInteraction() && (this._lastInteractionTime = Es.Now);\n }\n // Tools\n _userIsMoving() {\n return this._attachedCamera ? this._attachedCamera.inertialAlphaOffset !== 0 || this._attachedCamera.inertialBetaOffset !== 0 || this._attachedCamera.inertialRadiusOffset !== 0 || this._attachedCamera.inertialPanningX !== 0 || this._attachedCamera.inertialPanningY !== 0 || this._isPointerDown : !1;\n }\n}\nclass Ti {\n constructor() {\n this._easingMode = Ti.EASINGMODE_EASEIN;\n }\n /**\n * Sets the easing mode of the current function.\n * @param easingMode Defines the willing mode (EASINGMODE_EASEIN, EASINGMODE_EASEOUT or EASINGMODE_EASEINOUT)\n */\n setEasingMode(e) {\n const t = Math.min(Math.max(e, 0), 2);\n this._easingMode = t;\n }\n /**\n * Gets the current easing mode.\n * @returns the easing mode\n */\n getEasingMode() {\n return this._easingMode;\n }\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n easeInCore(e) {\n throw new Error(\"You must implement this method\");\n }\n /**\n * Given an input gradient between 0 and 1, this returns the corresponding value\n * of the easing function.\n * @param gradient Defines the value between 0 and 1 we want the easing value for\n * @returns the corresponding value on the curve defined by the easing function\n */\n ease(e) {\n switch (this._easingMode) {\n case Ti.EASINGMODE_EASEIN:\n return this.easeInCore(e);\n case Ti.EASINGMODE_EASEOUT:\n return 1 - this.easeInCore(1 - e);\n }\n return e >= 0.5 ? (1 - this.easeInCore((1 - e) * 2)) * 0.5 + 0.5 : this.easeInCore(e * 2) * 0.5;\n }\n}\nTi.EASINGMODE_EASEIN = 0;\nTi.EASINGMODE_EASEOUT = 1;\nTi.EASINGMODE_EASEINOUT = 2;\nclass uw extends Ti {\n /**\n * @internal\n */\n easeInCore(e) {\n return e = Math.max(0, Math.min(1, e)), 1 - Math.sqrt(1 - e * e);\n }\n}\nclass dw extends Ti {\n /**\n * Instantiates a back ease easing\n * @see https://easings.net/#easeInBack\n * @param amplitude Defines the amplitude of the function\n */\n constructor(e = 1) {\n super(), this.amplitude = e;\n }\n /**\n * @internal\n */\n easeInCore(e) {\n const t = Math.max(0, this.amplitude);\n return Math.pow(e, 3) - e * t * Math.sin(3.141592653589793 * e);\n }\n}\nclass $j extends Ti {\n /**\n * Instantiates a bounce easing\n * @see https://easings.net/#easeInBounce\n * @param bounces Defines the number of bounces\n * @param bounciness Defines the amplitude of the bounce\n */\n constructor(e = 3, t = 2) {\n super(), this.bounces = e, this.bounciness = t;\n }\n /**\n * @internal\n */\n easeInCore(e) {\n const t = Math.max(0, this.bounces);\n let i = this.bounciness;\n i <= 1 && (i = 1.001);\n const s = Math.pow(i, t), r = 1 - i, n = (1 - s) / r + s * 0.5, o = e * n, l = Math.log(-o * (1 - i) + 1) / Math.log(i), h = Math.floor(l), c = h + 1, u = (1 - Math.pow(i, h)) / (r * n), d = (1 - Math.pow(i, c)) / (r * n), f = (u + d) * 0.5, p = e - f, _ = f - u;\n return -Math.pow(1 / i, t - h) / (_ * _) * (p - _) * (p + _);\n }\n}\nclass zo extends Ti {\n /**\n * @internal\n */\n easeInCore(e) {\n return e * e * e;\n }\n}\nclass Yj extends Ti {\n /**\n * Instantiates an elastic easing function\n * @see https://easings.net/#easeInElastic\n * @param oscillations Defines the number of oscillations\n * @param springiness Defines the amplitude of the oscillations\n */\n constructor(e = 3, t = 3) {\n super(), this.oscillations = e, this.springiness = t;\n }\n /**\n * @internal\n */\n easeInCore(e) {\n let t;\n const i = Math.max(0, this.oscillations), s = Math.max(0, this.springiness);\n return s == 0 ? t = e : t = (Math.exp(s * e) - 1) / (Math.exp(s) - 1), t * Math.sin((6.283185307179586 * i + 1.5707963267948966) * e);\n }\n}\nclass fw extends Ti {\n /**\n * Instantiates an exponential easing function\n * @see https://easings.net/#easeInExpo\n * @param exponent Defines the exponent of the function\n */\n constructor(e = 2) {\n super(), this.exponent = e;\n }\n /**\n * @internal\n */\n easeInCore(e) {\n return this.exponent <= 0 ? e : (Math.exp(this.exponent * e) - 1) / (Math.exp(this.exponent) - 1);\n }\n}\nclass jj extends Ti {\n /**\n * Instantiates an power base easing function\n * @see https://easings.net/#easeInQuad\n * @param power Defines the power of the function\n */\n constructor(e = 2) {\n super(), this.power = e;\n }\n /**\n * @internal\n */\n easeInCore(e) {\n const t = Math.max(0, this.power);\n return Math.pow(e, t);\n }\n}\nclass pw extends Ti {\n /**\n * @internal\n */\n easeInCore(e) {\n return e * e;\n }\n}\nclass Kj extends Ti {\n /**\n * @internal\n */\n easeInCore(e) {\n return e * e * e * e;\n }\n}\nclass qj extends Ti {\n /**\n * @internal\n */\n easeInCore(e) {\n return e * e * e * e * e;\n }\n}\nclass QC extends Ti {\n /**\n * @internal\n */\n easeInCore(e) {\n return 1 - Math.sin(1.5707963267948966 * (1 - e));\n }\n}\nclass Qj extends Ti {\n /**\n * Instantiates a bezier function\n * @see http://cubic-bezier.com/#.17,.67,.83,.67\n * @param x1 Defines the x component of the start tangent in the bezier curve\n * @param y1 Defines the y component of the start tangent in the bezier curve\n * @param x2 Defines the x component of the end tangent in the bezier curve\n * @param y2 Defines the y component of the end tangent in the bezier curve\n */\n constructor(e = 0, t = 0, i = 1, s = 1) {\n super(), this.x1 = e, this.y1 = t, this.x2 = i, this.y2 = s;\n }\n /**\n * @internal\n */\n easeInCore(e) {\n return SM.Interpolate(e, this.x1, this.y1, this.x2, this.y2);\n }\n}\nclass Yh {\n /**\n * Initializes the range of an animation\n * @param name The name of the animation range\n * @param from The starting frame of the animation\n * @param to The ending frame of the animation\n */\n constructor(e, t, i) {\n this.name = e, this.from = t, this.to = i;\n }\n /**\n * Makes a copy of the animation range\n * @returns A copy of the animation range\n */\n clone() {\n return new Yh(this.name, this.from, this.to);\n }\n}\nconst ZC = Object.freeze(new se(0, 0, 0, 0)), JC = Object.freeze(g.Zero()), e0 = Object.freeze(Q.Zero()), t0 = Object.freeze(mn.Zero()), i0 = Object.freeze(re.Black()), s0 = Object.freeze(new Ce(0, 0, 0, 0)), Un = {\n key: 0,\n repeatCount: 0,\n loopMode: 2\n};\nclass oe {\n /**\n * @internal Internal use\n */\n static _PrepareAnimation(e, t, i, s, r, n, o, l) {\n let h;\n if (!isNaN(parseFloat(r)) && isFinite(r) ? h = oe.ANIMATIONTYPE_FLOAT : r instanceof se ? h = oe.ANIMATIONTYPE_QUATERNION : r instanceof g ? h = oe.ANIMATIONTYPE_VECTOR3 : r instanceof Q ? h = oe.ANIMATIONTYPE_VECTOR2 : r instanceof re ? h = oe.ANIMATIONTYPE_COLOR3 : r instanceof Ce ? h = oe.ANIMATIONTYPE_COLOR4 : r instanceof mn && (h = oe.ANIMATIONTYPE_SIZE), h == null)\n return null;\n const c = new oe(e, t, i, h, o), u = [\n { frame: 0, value: r },\n { frame: s, value: n }\n ];\n return c.setKeys(u), l !== void 0 && c.setEasingFunction(l), c;\n }\n /**\n * Sets up an animation\n * @param property The property to animate\n * @param animationType The animation type to apply\n * @param framePerSecond The frames per second of the animation\n * @param easingFunction The easing function used in the animation\n * @returns The created animation\n */\n static CreateAnimation(e, t, i, s) {\n const r = new oe(e + \"Animation\", e, i, t, oe.ANIMATIONLOOPMODE_CONSTANT);\n return r.setEasingFunction(s), r;\n }\n /**\n * Create and start an animation on a node\n * @param name defines the name of the global animation that will be run on all nodes\n * @param target defines the target where the animation will take place\n * @param targetProperty defines property to animate\n * @param framePerSecond defines the number of frame per second yo use\n * @param totalFrame defines the number of frames in total\n * @param from defines the initial value\n * @param to defines the final value\n * @param loopMode defines which loop mode you want to use (off by default)\n * @param easingFunction defines the easing function to use (linear by default)\n * @param onAnimationEnd defines the callback to call when animation end\n * @param scene defines the hosting scene\n * @returns the animatable created for this animation\n */\n static CreateAndStartAnimation(e, t, i, s, r, n, o, l, h, c, u) {\n const d = oe._PrepareAnimation(e, i, s, r, n, o, l, h);\n return !d || (t.getScene && (u = t.getScene()), !u) ? null : u.beginDirectAnimation(t, [d], 0, r, d.loopMode === 1, 1, c);\n }\n /**\n * Create and start an animation on a node and its descendants\n * @param name defines the name of the global animation that will be run on all nodes\n * @param node defines the root node where the animation will take place\n * @param directDescendantsOnly if true only direct descendants will be used, if false direct and also indirect (children of children, an so on in a recursive manner) descendants will be used\n * @param targetProperty defines property to animate\n * @param framePerSecond defines the number of frame per second to use\n * @param totalFrame defines the number of frames in total\n * @param from defines the initial value\n * @param to defines the final value\n * @param loopMode defines which loop mode you want to use (off by default)\n * @param easingFunction defines the easing function to use (linear by default)\n * @param onAnimationEnd defines the callback to call when an animation ends (will be called once per node)\n * @returns the list of animatables created for all nodes\n * @example https://www.babylonjs-playground.com/#MH0VLI\n */\n static CreateAndStartHierarchyAnimation(e, t, i, s, r, n, o, l, h, c, u) {\n const d = oe._PrepareAnimation(e, s, r, n, o, l, h, c);\n return d ? t.getScene().beginDirectHierarchyAnimation(t, i, [d], 0, n, d.loopMode === 1, 1, u) : null;\n }\n /**\n * Creates a new animation, merges it with the existing animations and starts it\n * @param name Name of the animation\n * @param node Node which contains the scene that begins the animations\n * @param targetProperty Specifies which property to animate\n * @param framePerSecond The frames per second of the animation\n * @param totalFrame The total number of frames\n * @param from The frame at the beginning of the animation\n * @param to The frame at the end of the animation\n * @param loopMode Specifies the loop mode of the animation\n * @param easingFunction (Optional) The easing function of the animation, which allow custom mathematical formulas for animations\n * @param onAnimationEnd Callback to run once the animation is complete\n * @returns Nullable animation\n */\n static CreateMergeAndStartAnimation(e, t, i, s, r, n, o, l, h, c) {\n const u = oe._PrepareAnimation(e, i, s, r, n, o, l, h);\n return u ? (t.animations.push(u), t.getScene().beginAnimation(t, 0, r, u.loopMode === 1, 1, c)) : null;\n }\n /** @internal */\n static MakeAnimationAdditive(e, t, i, s = !1, r) {\n let n;\n typeof t == \"object\" ? n = t : n = {\n referenceFrame: t ?? 0,\n range: i,\n cloneOriginalAnimation: s,\n clonedAnimationName: r\n };\n let o = e;\n if (n.cloneOriginalAnimation && (o = e.clone(), o.name = n.clonedAnimationName || o.name), !o._keys.length)\n return o;\n const l = n.referenceFrame && n.referenceFrame >= 0 ? n.referenceFrame : 0;\n let h = 0;\n const c = o._keys[0];\n let u = o._keys.length - 1;\n const d = o._keys[u], f = {\n referenceValue: c.value,\n referencePosition: w.Vector3[0],\n referenceQuaternion: w.Quaternion[0],\n referenceScaling: w.Vector3[1],\n keyPosition: w.Vector3[2],\n keyQuaternion: w.Quaternion[1],\n keyScaling: w.Vector3[3]\n };\n let p = c.frame, _ = d.frame;\n if (n.range) {\n const v = o.getRange(n.range);\n v && (p = v.from, _ = v.to);\n } else\n p = n.fromFrame ?? p, _ = n.toFrame ?? _;\n if (p !== c.frame && (h = o.createKeyForFrame(p)), _ !== d.frame && (u = o.createKeyForFrame(_)), o._keys.length === 1) {\n const v = o._getKeyValue(o._keys[0]);\n f.referenceValue = v.clone ? v.clone() : v;\n } else if (l <= c.frame) {\n const v = o._getKeyValue(c.value);\n f.referenceValue = v.clone ? v.clone() : v;\n } else if (l >= d.frame) {\n const v = o._getKeyValue(d.value);\n f.referenceValue = v.clone ? v.clone() : v;\n } else {\n Un.key = 0;\n const v = o._interpolate(l, Un);\n f.referenceValue = v.clone ? v.clone() : v;\n }\n o.dataType === oe.ANIMATIONTYPE_QUATERNION ? f.referenceValue.normalize().conjugateInPlace() : o.dataType === oe.ANIMATIONTYPE_MATRIX && (f.referenceValue.decompose(f.referenceScaling, f.referenceQuaternion, f.referencePosition), f.referenceQuaternion.normalize().conjugateInPlace());\n let m = Number.MAX_VALUE;\n const x = n.clipKeys ? [] : null;\n for (let v = h; v <= u; v++) {\n let T = o._keys[v];\n if ((x || n.cloneOriginalAnimation) && (T = {\n frame: T.frame,\n value: T.value.clone ? T.value.clone() : T.value,\n inTangent: T.inTangent,\n outTangent: T.outTangent,\n interpolation: T.interpolation,\n lockedTangent: T.lockedTangent\n }, x && (m === Number.MAX_VALUE && (m = T.frame), T.frame -= m, x.push(T))), !(v && o.dataType !== oe.ANIMATIONTYPE_FLOAT && T.value === c.value))\n switch (o.dataType) {\n case oe.ANIMATIONTYPE_MATRIX:\n T.value.decompose(f.keyScaling, f.keyQuaternion, f.keyPosition), f.keyPosition.subtractInPlace(f.referencePosition), f.keyScaling.divideInPlace(f.referenceScaling), f.referenceQuaternion.multiplyToRef(f.keyQuaternion, f.keyQuaternion), O.ComposeToRef(f.keyScaling, f.keyQuaternion, f.keyPosition, T.value);\n break;\n case oe.ANIMATIONTYPE_QUATERNION:\n f.referenceValue.multiplyToRef(T.value, T.value);\n break;\n case oe.ANIMATIONTYPE_VECTOR2:\n case oe.ANIMATIONTYPE_VECTOR3:\n case oe.ANIMATIONTYPE_COLOR3:\n case oe.ANIMATIONTYPE_COLOR4:\n T.value.subtractToRef(f.referenceValue, T.value);\n break;\n case oe.ANIMATIONTYPE_SIZE:\n T.value.width -= f.referenceValue.width, T.value.height -= f.referenceValue.height;\n break;\n default:\n T.value -= f.referenceValue;\n }\n }\n return x && o.setKeys(x, !0), o;\n }\n /**\n * Transition property of an host to the target Value\n * @param property The property to transition\n * @param targetValue The target Value of the property\n * @param host The object where the property to animate belongs\n * @param scene Scene used to run the animation\n * @param frameRate Framerate (in frame/s) to use\n * @param transition The transition type we want to use\n * @param duration The duration of the animation, in milliseconds\n * @param onAnimationEnd Callback trigger at the end of the animation\n * @returns Nullable animation\n */\n static TransitionTo(e, t, i, s, r, n, o, l = null) {\n if (o <= 0)\n return i[e] = t, l && l(), null;\n const h = r * (o / 1e3);\n n.setKeys([\n {\n frame: 0,\n value: i[e].clone ? i[e].clone() : i[e]\n },\n {\n frame: h,\n value: t\n }\n ]), i.animations || (i.animations = []), i.animations.push(n);\n const c = s.beginAnimation(i, 0, h, !1);\n return c.onAnimationEnd = l, c;\n }\n /**\n * Return the array of runtime animations currently using this animation\n */\n get runtimeAnimations() {\n return this._runtimeAnimations;\n }\n /**\n * Specifies if any of the runtime animations are currently running\n */\n get hasRunningRuntimeAnimations() {\n for (const e of this._runtimeAnimations)\n if (!e.isStopped())\n return !0;\n return !1;\n }\n /**\n * Initializes the animation\n * @param name Name of the animation\n * @param targetProperty Property to animate\n * @param framePerSecond The frames per second of the animation\n * @param dataType The data type of the animation\n * @param loopMode The loop mode of the animation\n * @param enableBlending Specifies if blending should be enabled\n */\n constructor(e, t, i, s, r, n) {\n this.name = e, this.targetProperty = t, this.framePerSecond = i, this.dataType = s, this.loopMode = r, this.enableBlending = n, this._easingFunction = null, this._runtimeAnimations = new Array(), this._events = new Array(), this.blendingSpeed = 0.01, this._ranges = {}, this.targetPropertyPath = t.split(\".\"), this.dataType = s, this.loopMode = r === void 0 ? oe.ANIMATIONLOOPMODE_CYCLE : r, this.uniqueId = oe._UniqueIdGenerator++;\n }\n // Methods\n /**\n * Converts the animation to a string\n * @param fullDetails support for multiple levels of logging within scene loading\n * @returns String form of the animation\n */\n toString(e) {\n let t = \"Name: \" + this.name + \", property: \" + this.targetProperty;\n if (t += \", datatype: \" + [\"Float\", \"Vector3\", \"Quaternion\", \"Matrix\", \"Color3\", \"Vector2\"][this.dataType], t += \", nKeys: \" + (this._keys ? this._keys.length : \"none\"), t += \", nRanges: \" + (this._ranges ? Object.keys(this._ranges).length : \"none\"), e) {\n t += \", Ranges: {\";\n let i = !0;\n for (const s in this._ranges)\n i && (t += \", \", i = !1), t += s;\n t += \"}\";\n }\n return t;\n }\n /**\n * Add an event to this animation\n * @param event Event to add\n */\n addEvent(e) {\n this._events.push(e), this._events.sort((t, i) => t.frame - i.frame);\n }\n /**\n * Remove all events found at the given frame\n * @param frame The frame to remove events from\n */\n removeEvents(e) {\n for (let t = 0; t < this._events.length; t++)\n this._events[t].frame === e && (this._events.splice(t, 1), t--);\n }\n /**\n * Retrieves all the events from the animation\n * @returns Events from the animation\n */\n getEvents() {\n return this._events;\n }\n /**\n * Creates an animation range\n * @param name Name of the animation range\n * @param from Starting frame of the animation range\n * @param to Ending frame of the animation\n */\n createRange(e, t, i) {\n this._ranges[e] || (this._ranges[e] = new Yh(e, t, i));\n }\n /**\n * Deletes an animation range by name\n * @param name Name of the animation range to delete\n * @param deleteFrames Specifies if the key frames for the range should also be deleted (true) or not (false)\n */\n deleteRange(e, t = !0) {\n const i = this._ranges[e];\n if (i) {\n if (t) {\n const s = i.from, r = i.to;\n for (let n = this._keys.length - 1; n >= 0; n--)\n this._keys[n].frame >= s && this._keys[n].frame <= r && this._keys.splice(n, 1);\n }\n this._ranges[e] = null;\n }\n }\n /**\n * Gets the animation range by name, or null if not defined\n * @param name Name of the animation range\n * @returns Nullable animation range\n */\n getRange(e) {\n return this._ranges[e];\n }\n /**\n * Gets the key frames from the animation\n * @returns The key frames of the animation\n */\n getKeys() {\n return this._keys;\n }\n /**\n * Gets the highest frame of the animation\n * @returns Highest frame of the animation\n */\n getHighestFrame() {\n let e = 0;\n for (let t = 0, i = this._keys.length; t < i; t++)\n e < this._keys[t].frame && (e = this._keys[t].frame);\n return e;\n }\n /**\n * Gets the easing function of the animation\n * @returns Easing function of the animation\n */\n getEasingFunction() {\n return this._easingFunction;\n }\n /**\n * Sets the easing function of the animation\n * @param easingFunction A custom mathematical formula for animation\n */\n setEasingFunction(e) {\n this._easingFunction = e;\n }\n /**\n * Interpolates a scalar linearly\n * @param startValue Start value of the animation curve\n * @param endValue End value of the animation curve\n * @param gradient Scalar amount to interpolate\n * @returns Interpolated scalar value\n */\n floatInterpolateFunction(e, t, i) {\n return Re.Lerp(e, t, i);\n }\n /**\n * Interpolates a scalar cubically\n * @param startValue Start value of the animation curve\n * @param outTangent End tangent of the animation\n * @param endValue End value of the animation curve\n * @param inTangent Start tangent of the animation curve\n * @param gradient Scalar amount to interpolate\n * @returns Interpolated scalar value\n */\n floatInterpolateFunctionWithTangents(e, t, i, s, r) {\n return Re.Hermite(e, t, i, s, r);\n }\n /**\n * Interpolates a quaternion using a spherical linear interpolation\n * @param startValue Start value of the animation curve\n * @param endValue End value of the animation curve\n * @param gradient Scalar amount to interpolate\n * @returns Interpolated quaternion value\n */\n quaternionInterpolateFunction(e, t, i) {\n return se.Slerp(e, t, i);\n }\n /**\n * Interpolates a quaternion cubically\n * @param startValue Start value of the animation curve\n * @param outTangent End tangent of the animation curve\n * @param endValue End value of the animation curve\n * @param inTangent Start tangent of the animation curve\n * @param gradient Scalar amount to interpolate\n * @returns Interpolated quaternion value\n */\n quaternionInterpolateFunctionWithTangents(e, t, i, s, r) {\n return se.Hermite(e, t, i, s, r).normalize();\n }\n /**\n * Interpolates a Vector3 linearly\n * @param startValue Start value of the animation curve\n * @param endValue End value of the animation curve\n * @param gradient Scalar amount to interpolate (value between 0 and 1)\n * @returns Interpolated scalar value\n */\n vector3InterpolateFunction(e, t, i) {\n return g.Lerp(e, t, i);\n }\n /**\n * Interpolates a Vector3 cubically\n * @param startValue Start value of the animation curve\n * @param outTangent End tangent of the animation\n * @param endValue End value of the animation curve\n * @param inTangent Start tangent of the animation curve\n * @param gradient Scalar amount to interpolate (value between 0 and 1)\n * @returns InterpolatedVector3 value\n */\n vector3InterpolateFunctionWithTangents(e, t, i, s, r) {\n return g.Hermite(e, t, i, s, r);\n }\n /**\n * Interpolates a Vector2 linearly\n * @param startValue Start value of the animation curve\n * @param endValue End value of the animation curve\n * @param gradient Scalar amount to interpolate (value between 0 and 1)\n * @returns Interpolated Vector2 value\n */\n vector2InterpolateFunction(e, t, i) {\n return Q.Lerp(e, t, i);\n }\n /**\n * Interpolates a Vector2 cubically\n * @param startValue Start value of the animation curve\n * @param outTangent End tangent of the animation\n * @param endValue End value of the animation curve\n * @param inTangent Start tangent of the animation curve\n * @param gradient Scalar amount to interpolate (value between 0 and 1)\n * @returns Interpolated Vector2 value\n */\n vector2InterpolateFunctionWithTangents(e, t, i, s, r) {\n return Q.Hermite(e, t, i, s, r);\n }\n /**\n * Interpolates a size linearly\n * @param startValue Start value of the animation curve\n * @param endValue End value of the animation curve\n * @param gradient Scalar amount to interpolate\n * @returns Interpolated Size value\n */\n sizeInterpolateFunction(e, t, i) {\n return mn.Lerp(e, t, i);\n }\n /**\n * Interpolates a Color3 linearly\n * @param startValue Start value of the animation curve\n * @param endValue End value of the animation curve\n * @param gradient Scalar amount to interpolate\n * @returns Interpolated Color3 value\n */\n color3InterpolateFunction(e, t, i) {\n return re.Lerp(e, t, i);\n }\n /**\n * Interpolates a Color3 cubically\n * @param startValue Start value of the animation curve\n * @param outTangent End tangent of the animation\n * @param endValue End value of the animation curve\n * @param inTangent Start tangent of the animation curve\n * @param gradient Scalar amount to interpolate\n * @returns interpolated value\n */\n color3InterpolateFunctionWithTangents(e, t, i, s, r) {\n return re.Hermite(e, t, i, s, r);\n }\n /**\n * Interpolates a Color4 linearly\n * @param startValue Start value of the animation curve\n * @param endValue End value of the animation curve\n * @param gradient Scalar amount to interpolate\n * @returns Interpolated Color3 value\n */\n color4InterpolateFunction(e, t, i) {\n return Ce.Lerp(e, t, i);\n }\n /**\n * Interpolates a Color4 cubically\n * @param startValue Start value of the animation curve\n * @param outTangent End tangent of the animation\n * @param endValue End value of the animation curve\n * @param inTangent Start tangent of the animation curve\n * @param gradient Scalar amount to interpolate\n * @returns interpolated value\n */\n color4InterpolateFunctionWithTangents(e, t, i, s, r) {\n return Ce.Hermite(e, t, i, s, r);\n }\n /**\n * @internal Internal use only\n */\n _getKeyValue(e) {\n return typeof e == \"function\" ? e() : e;\n }\n /**\n * Evaluate the animation value at a given frame\n * @param currentFrame defines the frame where we want to evaluate the animation\n * @returns the animation value\n */\n evaluate(e) {\n return Un.key = 0, this._interpolate(e, Un);\n }\n /**\n * @internal Internal use only\n */\n _interpolate(e, t, i = !1) {\n if (t.loopMode === oe.ANIMATIONLOOPMODE_CONSTANT && t.repeatCount > 0)\n return t.highLimitValue.clone ? t.highLimitValue.clone() : t.highLimitValue;\n const s = this._keys, r = s.length;\n let n = t.key;\n for (; n >= 0 && e < s[n].frame; )\n --n;\n for (; n + 1 <= r - 1 && e >= s[n + 1].frame; )\n ++n;\n if (t.key = n, n < 0)\n return i ? void 0 : this._getKeyValue(s[0].value);\n if (n + 1 > r - 1)\n return i ? void 0 : this._getKeyValue(s[r - 1].value);\n const o = s[n], l = s[n + 1];\n if (i && (e === o.frame || e === l.frame))\n return;\n const h = this._getKeyValue(o.value), c = this._getKeyValue(l.value);\n if (o.interpolation === 1)\n return l.frame > e ? h : c;\n const u = o.outTangent !== void 0 && l.inTangent !== void 0, d = l.frame - o.frame;\n let f = (e - o.frame) / d;\n const p = o.easingFunction || this.getEasingFunction();\n switch (p !== null && (f = p.ease(f)), this.dataType) {\n case oe.ANIMATIONTYPE_FLOAT: {\n const _ = u ? this.floatInterpolateFunctionWithTangents(h, o.outTangent * d, c, l.inTangent * d, f) : this.floatInterpolateFunction(h, c, f);\n switch (t.loopMode) {\n case oe.ANIMATIONLOOPMODE_CYCLE:\n case oe.ANIMATIONLOOPMODE_CONSTANT:\n case oe.ANIMATIONLOOPMODE_YOYO:\n return _;\n case oe.ANIMATIONLOOPMODE_RELATIVE:\n case oe.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:\n return (t.offsetValue ?? 0) * t.repeatCount + _;\n }\n break;\n }\n case oe.ANIMATIONTYPE_QUATERNION: {\n const _ = u ? this.quaternionInterpolateFunctionWithTangents(h, o.outTangent.scale(d), c, l.inTangent.scale(d), f) : this.quaternionInterpolateFunction(h, c, f);\n switch (t.loopMode) {\n case oe.ANIMATIONLOOPMODE_CYCLE:\n case oe.ANIMATIONLOOPMODE_CONSTANT:\n case oe.ANIMATIONLOOPMODE_YOYO:\n return _;\n case oe.ANIMATIONLOOPMODE_RELATIVE:\n case oe.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:\n return _.addInPlace((t.offsetValue || ZC).scale(t.repeatCount));\n }\n return _;\n }\n case oe.ANIMATIONTYPE_VECTOR3: {\n const _ = u ? this.vector3InterpolateFunctionWithTangents(h, o.outTangent.scale(d), c, l.inTangent.scale(d), f) : this.vector3InterpolateFunction(h, c, f);\n switch (t.loopMode) {\n case oe.ANIMATIONLOOPMODE_CYCLE:\n case oe.ANIMATIONLOOPMODE_CONSTANT:\n case oe.ANIMATIONLOOPMODE_YOYO:\n return _;\n case oe.ANIMATIONLOOPMODE_RELATIVE:\n case oe.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:\n return _.add((t.offsetValue || JC).scale(t.repeatCount));\n }\n break;\n }\n case oe.ANIMATIONTYPE_VECTOR2: {\n const _ = u ? this.vector2InterpolateFunctionWithTangents(h, o.outTangent.scale(d), c, l.inTangent.scale(d), f) : this.vector2InterpolateFunction(h, c, f);\n switch (t.loopMode) {\n case oe.ANIMATIONLOOPMODE_CYCLE:\n case oe.ANIMATIONLOOPMODE_CONSTANT:\n case oe.ANIMATIONLOOPMODE_YOYO:\n return _;\n case oe.ANIMATIONLOOPMODE_RELATIVE:\n case oe.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:\n return _.add((t.offsetValue || e0).scale(t.repeatCount));\n }\n break;\n }\n case oe.ANIMATIONTYPE_SIZE: {\n switch (t.loopMode) {\n case oe.ANIMATIONLOOPMODE_CYCLE:\n case oe.ANIMATIONLOOPMODE_CONSTANT:\n case oe.ANIMATIONLOOPMODE_YOYO:\n return this.sizeInterpolateFunction(h, c, f);\n case oe.ANIMATIONLOOPMODE_RELATIVE:\n case oe.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:\n return this.sizeInterpolateFunction(h, c, f).add((t.offsetValue || t0).scale(t.repeatCount));\n }\n break;\n }\n case oe.ANIMATIONTYPE_COLOR3: {\n const _ = u ? this.color3InterpolateFunctionWithTangents(h, o.outTangent.scale(d), c, l.inTangent.scale(d), f) : this.color3InterpolateFunction(h, c, f);\n switch (t.loopMode) {\n case oe.ANIMATIONLOOPMODE_CYCLE:\n case oe.ANIMATIONLOOPMODE_CONSTANT:\n case oe.ANIMATIONLOOPMODE_YOYO:\n return _;\n case oe.ANIMATIONLOOPMODE_RELATIVE:\n case oe.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:\n return _.add((t.offsetValue || i0).scale(t.repeatCount));\n }\n break;\n }\n case oe.ANIMATIONTYPE_COLOR4: {\n const _ = u ? this.color4InterpolateFunctionWithTangents(h, o.outTangent.scale(d), c, l.inTangent.scale(d), f) : this.color4InterpolateFunction(h, c, f);\n switch (t.loopMode) {\n case oe.ANIMATIONLOOPMODE_CYCLE:\n case oe.ANIMATIONLOOPMODE_CONSTANT:\n case oe.ANIMATIONLOOPMODE_YOYO:\n return _;\n case oe.ANIMATIONLOOPMODE_RELATIVE:\n case oe.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:\n return _.add((t.offsetValue || s0).scale(t.repeatCount));\n }\n break;\n }\n case oe.ANIMATIONTYPE_MATRIX: {\n switch (t.loopMode) {\n case oe.ANIMATIONLOOPMODE_CYCLE:\n case oe.ANIMATIONLOOPMODE_CONSTANT:\n case oe.ANIMATIONLOOPMODE_YOYO:\n return oe.AllowMatricesInterpolation ? this.matrixInterpolateFunction(h, c, f, t.workValue) : h;\n case oe.ANIMATIONLOOPMODE_RELATIVE:\n case oe.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT:\n return h;\n }\n break;\n }\n }\n return 0;\n }\n /**\n * Defines the function to use to interpolate matrices\n * @param startValue defines the start matrix\n * @param endValue defines the end matrix\n * @param gradient defines the gradient between both matrices\n * @param result defines an optional target matrix where to store the interpolation\n * @returns the interpolated matrix\n */\n matrixInterpolateFunction(e, t, i, s) {\n return oe.AllowMatrixDecomposeForInterpolation ? s ? (O.DecomposeLerpToRef(e, t, i, s), s) : O.DecomposeLerp(e, t, i) : s ? (O.LerpToRef(e, t, i, s), s) : O.Lerp(e, t, i);\n }\n /**\n * Makes a copy of the animation\n * @returns Cloned animation\n */\n clone() {\n const e = new oe(this.name, this.targetPropertyPath.join(\".\"), this.framePerSecond, this.dataType, this.loopMode);\n if (e.enableBlending = this.enableBlending, e.blendingSpeed = this.blendingSpeed, this._keys && e.setKeys(this._keys), this._ranges) {\n e._ranges = {};\n for (const t in this._ranges) {\n const i = this._ranges[t];\n i && (e._ranges[t] = i.clone());\n }\n }\n return e;\n }\n /**\n * Sets the key frames of the animation\n * @param values The animation key frames to set\n * @param dontClone Whether to clone the keys or not (default is false, so the array of keys is cloned)\n */\n setKeys(e, t = !1) {\n this._keys = t ? e : e.slice(0);\n }\n /**\n * Creates a key for the frame passed as a parameter and adds it to the animation IF a key doesn't already exist for that frame\n * @param frame Frame number\n * @returns The key index if the key was added or the index of the pre existing key if the frame passed as parameter already has a corresponding key\n */\n createKeyForFrame(e) {\n Un.key = 0;\n const t = this._interpolate(e, Un, !0);\n if (!t)\n return this._keys[Un.key].frame === e ? Un.key : Un.key + 1;\n const i = {\n frame: e,\n value: t.clone ? t.clone() : t\n };\n return this._keys.splice(Un.key + 1, 0, i), Un.key + 1;\n }\n /**\n * Serializes the animation to an object\n * @returns Serialized object\n */\n serialize() {\n const e = {};\n e.name = this.name, e.property = this.targetProperty, e.framePerSecond = this.framePerSecond, e.dataType = this.dataType, e.loopBehavior = this.loopMode, e.enableBlending = this.enableBlending, e.blendingSpeed = this.blendingSpeed;\n const t = this.dataType;\n e.keys = [];\n const i = this.getKeys();\n for (let s = 0; s < i.length; s++) {\n const r = i[s], n = {};\n switch (n.frame = r.frame, t) {\n case oe.ANIMATIONTYPE_FLOAT:\n n.values = [r.value], r.inTangent !== void 0 && n.values.push(r.inTangent), r.outTangent !== void 0 && (r.inTangent === void 0 && n.values.push(void 0), n.values.push(r.outTangent)), r.interpolation !== void 0 && (r.inTangent === void 0 && n.values.push(void 0), r.outTangent === void 0 && n.values.push(void 0), n.values.push(r.interpolation));\n break;\n case oe.ANIMATIONTYPE_QUATERNION:\n case oe.ANIMATIONTYPE_MATRIX:\n case oe.ANIMATIONTYPE_VECTOR3:\n case oe.ANIMATIONTYPE_COLOR3:\n case oe.ANIMATIONTYPE_COLOR4:\n n.values = r.value.asArray(), r.inTangent != null && n.values.push(r.inTangent.asArray()), r.outTangent != null && (r.inTangent === void 0 && n.values.push(void 0), n.values.push(r.outTangent.asArray())), r.interpolation !== void 0 && (r.inTangent === void 0 && n.values.push(void 0), r.outTangent === void 0 && n.values.push(void 0), n.values.push(r.interpolation));\n break;\n }\n e.keys.push(n);\n }\n e.ranges = [];\n for (const s in this._ranges) {\n const r = this._ranges[s];\n if (!r)\n continue;\n const n = {};\n n.name = s, n.from = r.from, n.to = r.to, e.ranges.push(n);\n }\n return e;\n }\n /**\n * @internal\n */\n static _UniversalLerp(e, t, i) {\n const s = e.constructor;\n return s.Lerp ? s.Lerp(e, t, i) : s.Slerp ? s.Slerp(e, t, i) : e.toFixed ? e * (1 - i) + i * t : t;\n }\n /**\n * Parses an animation object and creates an animation\n * @param parsedAnimation Parsed animation object\n * @returns Animation object\n */\n static Parse(e) {\n const t = new oe(e.name, e.property, e.framePerSecond, e.dataType, e.loopBehavior), i = e.dataType, s = [];\n let r, n;\n for (e.enableBlending && (t.enableBlending = e.enableBlending), e.blendingSpeed && (t.blendingSpeed = e.blendingSpeed), n = 0; n < e.keys.length; n++) {\n const o = e.keys[n];\n let l, h, c;\n switch (i) {\n case oe.ANIMATIONTYPE_FLOAT:\n r = o.values[0], o.values.length >= 2 && (l = o.values[1]), o.values.length >= 3 && (h = o.values[2]), o.values.length >= 4 && (c = o.values[3]);\n break;\n case oe.ANIMATIONTYPE_QUATERNION:\n if (r = se.FromArray(o.values), o.values.length >= 8) {\n const d = se.FromArray(o.values.slice(4, 8));\n d.equals(se.Zero()) || (l = d);\n }\n if (o.values.length >= 12) {\n const d = se.FromArray(o.values.slice(8, 12));\n d.equals(se.Zero()) || (h = d);\n }\n o.values.length >= 13 && (c = o.values[12]);\n break;\n case oe.ANIMATIONTYPE_MATRIX:\n r = O.FromArray(o.values), o.values.length >= 17 && (c = o.values[16]);\n break;\n case oe.ANIMATIONTYPE_COLOR3:\n r = re.FromArray(o.values), o.values[3] && (l = re.FromArray(o.values[3])), o.values[4] && (h = re.FromArray(o.values[4])), o.values[5] && (c = o.values[5]);\n break;\n case oe.ANIMATIONTYPE_COLOR4:\n r = Ce.FromArray(o.values), o.values[4] && (l = Ce.FromArray(o.values[4])), o.values[5] && (h = Ce.FromArray(o.values[5])), o.values[6] && (c = Ce.FromArray(o.values[6]));\n break;\n case oe.ANIMATIONTYPE_VECTOR3:\n default:\n r = g.FromArray(o.values), o.values[3] && (l = g.FromArray(o.values[3])), o.values[4] && (h = g.FromArray(o.values[4])), o.values[5] && (c = o.values[5]);\n break;\n }\n const u = {};\n u.frame = o.frame, u.value = r, l != null && (u.inTangent = l), h != null && (u.outTangent = h), c != null && (u.interpolation = c), s.push(u);\n }\n if (t.setKeys(s), e.ranges)\n for (n = 0; n < e.ranges.length; n++)\n r = e.ranges[n], t.createRange(r.name, r.from, r.to);\n return t;\n }\n /**\n * Appends the serialized animations from the source animations\n * @param source Source containing the animations\n * @param destination Target to store the animations\n */\n static AppendSerializedAnimations(e, t) {\n Ae.AppendSerializedAnimations(e, t);\n }\n /**\n * Creates a new animation or an array of animations from a snippet saved in a remote file\n * @param name defines the name of the animation to create (can be null or empty to use the one from the json data)\n * @param url defines the url to load from\n * @returns a promise that will resolve to the new animation or an array of animations\n */\n static ParseFromFileAsync(e, t) {\n return new Promise((i, s) => {\n const r = new Di();\n r.addEventListener(\"readystatechange\", () => {\n if (r.readyState == 4)\n if (r.status == 200) {\n let n = JSON.parse(r.responseText);\n if (n.animations && (n = n.animations), n.length) {\n const o = [];\n for (const l of n)\n o.push(this.Parse(l));\n i(o);\n } else {\n const o = this.Parse(n);\n e && (o.name = e), i(o);\n }\n } else\n s(\"Unable to load the animation\");\n }), r.open(\"GET\", t), r.send();\n });\n }\n /**\n * Creates an animation or an array of animations from a snippet saved by the Inspector\n * @param snippetId defines the snippet to load\n * @returns a promise that will resolve to the new animation or a new array of animations\n */\n static ParseFromSnippetAsync(e) {\n return new Promise((t, i) => {\n const s = new Di();\n s.addEventListener(\"readystatechange\", () => {\n if (s.readyState == 4)\n if (s.status == 200) {\n const r = JSON.parse(JSON.parse(s.responseText).jsonPayload);\n if (r.animations) {\n const n = JSON.parse(r.animations), o = [];\n for (const l of n.animations) {\n const h = this.Parse(l);\n h.snippetId = e, o.push(h);\n }\n t(o);\n } else {\n const n = JSON.parse(r.animation), o = this.Parse(n);\n o.snippetId = e, t(o);\n }\n } else\n i(\"Unable to load the snippet \" + e);\n }), s.open(\"GET\", this.SnippetUrl + \"/\" + e.replace(/#/g, \"/\")), s.send();\n });\n }\n}\noe._UniqueIdGenerator = 0;\noe.AllowMatricesInterpolation = !1;\noe.AllowMatrixDecomposeForInterpolation = !0;\noe.SnippetUrl = \"https://snippet.babylonjs.com\";\noe.ANIMATIONTYPE_FLOAT = 0;\noe.ANIMATIONTYPE_VECTOR3 = 1;\noe.ANIMATIONTYPE_QUATERNION = 2;\noe.ANIMATIONTYPE_MATRIX = 3;\noe.ANIMATIONTYPE_COLOR3 = 4;\noe.ANIMATIONTYPE_COLOR4 = 7;\noe.ANIMATIONTYPE_VECTOR2 = 5;\noe.ANIMATIONTYPE_SIZE = 6;\noe.ANIMATIONLOOPMODE_RELATIVE = 0;\noe.ANIMATIONLOOPMODE_CYCLE = 1;\noe.ANIMATIONLOOPMODE_CONSTANT = 2;\noe.ANIMATIONLOOPMODE_YOYO = 4;\noe.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT = 5;\noe.CreateFromSnippetAsync = oe.ParseFromSnippetAsync;\nU(\"BABYLON.Animation\", oe);\nLt._AnimationRangeFactory = (a, e, t) => new Yh(a, e, t);\nclass Cl {\n constructor() {\n this.transitionDuration = 450, this.lowerRadiusTransitionRange = 2, this.upperRadiusTransitionRange = -2, this._autoTransitionRange = !1, this._radiusIsAnimating = !1, this._radiusBounceTransition = null, this._animatables = new Array();\n }\n /**\n * Gets the name of the behavior.\n */\n get name() {\n return \"Bouncing\";\n }\n /**\n * Gets a value indicating if the lowerRadiusTransitionRange and upperRadiusTransitionRange are defined automatically\n */\n get autoTransitionRange() {\n return this._autoTransitionRange;\n }\n /**\n * Sets a value indicating if the lowerRadiusTransitionRange and upperRadiusTransitionRange are defined automatically\n * Transition ranges will be set to 5% of the bounding box diagonal in world space\n */\n set autoTransitionRange(e) {\n if (this._autoTransitionRange === e)\n return;\n this._autoTransitionRange = e;\n const t = this._attachedCamera;\n t && (e ? this._onMeshTargetChangedObserver = t.onMeshTargetChangedObservable.add((i) => {\n if (i && (i.computeWorldMatrix(!0), i.getBoundingInfo)) {\n const s = i.getBoundingInfo().diagonalLength;\n this.lowerRadiusTransitionRange = s * 0.05, this.upperRadiusTransitionRange = s * 0.05;\n }\n }) : this._onMeshTargetChangedObserver && t.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver));\n }\n /**\n * Initializes the behavior.\n */\n init() {\n }\n /**\n * Attaches the behavior to its arc rotate camera.\n * @param camera Defines the camera to attach the behavior to\n */\n attach(e) {\n this._attachedCamera = e, this._onAfterCheckInputsObserver = e.onAfterCheckInputsObservable.add(() => {\n this._attachedCamera && (this._isRadiusAtLimit(this._attachedCamera.lowerRadiusLimit) && this._applyBoundRadiusAnimation(this.lowerRadiusTransitionRange), this._isRadiusAtLimit(this._attachedCamera.upperRadiusLimit) && this._applyBoundRadiusAnimation(this.upperRadiusTransitionRange));\n });\n }\n /**\n * Detaches the behavior from its current arc rotate camera.\n */\n detach() {\n this._attachedCamera && (this._onAfterCheckInputsObserver && this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver), this._onMeshTargetChangedObserver && this._attachedCamera.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver), this._attachedCamera = null);\n }\n /**\n * Checks if the camera radius is at the specified limit. Takes into account animation locks.\n * @param radiusLimit The limit to check against.\n * @returns Bool to indicate if at limit.\n */\n _isRadiusAtLimit(e) {\n return this._attachedCamera ? this._attachedCamera.radius === e && !this._radiusIsAnimating : !1;\n }\n /**\n * Applies an animation to the radius of the camera, extending by the radiusDelta.\n * @param radiusDelta The delta by which to animate to. Can be negative.\n */\n _applyBoundRadiusAnimation(e) {\n if (!this._attachedCamera)\n return;\n this._radiusBounceTransition || (Cl.EasingFunction.setEasingMode(Cl.EasingMode), this._radiusBounceTransition = oe.CreateAnimation(\"radius\", oe.ANIMATIONTYPE_FLOAT, 60, Cl.EasingFunction)), this._cachedWheelPrecision = this._attachedCamera.wheelPrecision, this._attachedCamera.wheelPrecision = 1 / 0, this._attachedCamera.inertialRadiusOffset = 0, this.stopAllAnimations(), this._radiusIsAnimating = !0;\n const t = oe.TransitionTo(\"radius\", this._attachedCamera.radius + e, this._attachedCamera, this._attachedCamera.getScene(), 60, this._radiusBounceTransition, this.transitionDuration, () => this._clearAnimationLocks());\n t && this._animatables.push(t);\n }\n /**\n * Removes all animation locks. Allows new animations to be added to any of the camera properties.\n */\n _clearAnimationLocks() {\n this._radiusIsAnimating = !1, this._attachedCamera && (this._attachedCamera.wheelPrecision = this._cachedWheelPrecision);\n }\n /**\n * Stops and removes all animations that have been applied to the camera\n */\n stopAllAnimations() {\n for (this._attachedCamera && (this._attachedCamera.animations = []); this._animatables.length; )\n this._animatables[0].onAnimationEnd = null, this._animatables[0].stop(), this._animatables.shift();\n }\n}\nCl.EasingFunction = new dw(0.3);\nCl.EasingMode = Ti.EASINGMODE_EASEOUT;\nclass Vr {\n constructor() {\n this.onTargetFramingAnimationEndObservable = new G(), this._mode = Vr.FitFrustumSidesMode, this._radiusScale = 1, this._positionScale = 0.5, this._defaultElevation = 0.3, this._elevationReturnTime = 1500, this._elevationReturnWaitTime = 1e3, this._zoomStopsAnimation = !1, this._framingTime = 1500, this.autoCorrectCameraLimitsAndSensibility = !0, this._isPointerDown = !1, this._lastInteractionTime = -1 / 0, this._animatables = new Array(), this._betaIsAnimating = !1;\n }\n /**\n * Gets the name of the behavior.\n */\n get name() {\n return \"Framing\";\n }\n /**\n * Sets the current mode used by the behavior\n */\n set mode(e) {\n this._mode = e;\n }\n /**\n * Gets current mode used by the behavior.\n */\n get mode() {\n return this._mode;\n }\n /**\n * Sets the scale applied to the radius (1 by default)\n */\n set radiusScale(e) {\n this._radiusScale = e;\n }\n /**\n * Gets the scale applied to the radius\n */\n get radiusScale() {\n return this._radiusScale;\n }\n /**\n * Sets the scale to apply on Y axis to position camera focus. 0.5 by default which means the center of the bounding box.\n */\n set positionScale(e) {\n this._positionScale = e;\n }\n /**\n * Gets the scale to apply on Y axis to position camera focus. 0.5 by default which means the center of the bounding box.\n */\n get positionScale() {\n return this._positionScale;\n }\n /**\n * Sets the angle above/below the horizontal plane to return to when the return to default elevation idle\n * behaviour is triggered, in radians.\n */\n set defaultElevation(e) {\n this._defaultElevation = e;\n }\n /**\n * Gets the angle above/below the horizontal plane to return to when the return to default elevation idle\n * behaviour is triggered, in radians.\n */\n get defaultElevation() {\n return this._defaultElevation;\n }\n /**\n * Sets the time (in milliseconds) taken to return to the default beta position.\n * Negative value indicates camera should not return to default.\n */\n set elevationReturnTime(e) {\n this._elevationReturnTime = e;\n }\n /**\n * Gets the time (in milliseconds) taken to return to the default beta position.\n * Negative value indicates camera should not return to default.\n */\n get elevationReturnTime() {\n return this._elevationReturnTime;\n }\n /**\n * Sets the delay (in milliseconds) taken before the camera returns to the default beta position.\n */\n set elevationReturnWaitTime(e) {\n this._elevationReturnWaitTime = e;\n }\n /**\n * Gets the delay (in milliseconds) taken before the camera returns to the default beta position.\n */\n get elevationReturnWaitTime() {\n return this._elevationReturnWaitTime;\n }\n /**\n * Sets the flag that indicates if user zooming should stop animation.\n */\n set zoomStopsAnimation(e) {\n this._zoomStopsAnimation = e;\n }\n /**\n * Gets the flag that indicates if user zooming should stop animation.\n */\n get zoomStopsAnimation() {\n return this._zoomStopsAnimation;\n }\n /**\n * Sets the transition time when framing the mesh, in milliseconds\n */\n set framingTime(e) {\n this._framingTime = e;\n }\n /**\n * Gets the transition time when framing the mesh, in milliseconds\n */\n get framingTime() {\n return this._framingTime;\n }\n /**\n * Initializes the behavior.\n */\n init() {\n }\n /**\n * Attaches the behavior to its arc rotate camera.\n * @param camera Defines the camera to attach the behavior to\n */\n attach(e) {\n this._attachedCamera = e;\n const t = this._attachedCamera.getScene();\n Vr.EasingFunction.setEasingMode(Vr.EasingMode), this._onPrePointerObservableObserver = t.onPrePointerObservable.add((i) => {\n if (i.type === Pe.POINTERDOWN) {\n this._isPointerDown = !0;\n return;\n }\n i.type === Pe.POINTERUP && (this._isPointerDown = !1);\n }), this._onMeshTargetChangedObserver = e.onMeshTargetChangedObservable.add((i) => {\n i && i.getBoundingInfo && this.zoomOnMesh(i, void 0, () => {\n this.onTargetFramingAnimationEndObservable.notifyObservers();\n });\n }), this._onAfterCheckInputsObserver = e.onAfterCheckInputsObservable.add(() => {\n this._applyUserInteraction(), this._maintainCameraAboveGround();\n });\n }\n /**\n * Detaches the behavior from its current arc rotate camera.\n */\n detach() {\n if (!this._attachedCamera)\n return;\n const e = this._attachedCamera.getScene();\n this._onPrePointerObservableObserver && e.onPrePointerObservable.remove(this._onPrePointerObservableObserver), this._onAfterCheckInputsObserver && this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver), this._onMeshTargetChangedObserver && this._attachedCamera.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver), this._attachedCamera = null;\n }\n /**\n * Targets the given mesh and updates zoom level accordingly.\n * @param mesh The mesh to target.\n * @param focusOnOriginXZ Determines if the camera should focus on 0 in the X and Z axis instead of the mesh\n * @param onAnimationEnd Callback triggered at the end of the framing animation\n */\n zoomOnMesh(e, t = !1, i = null) {\n e.computeWorldMatrix(!0);\n const s = e.getBoundingInfo().boundingBox;\n this.zoomOnBoundingInfo(s.minimumWorld, s.maximumWorld, t, i);\n }\n /**\n * Targets the given mesh with its children and updates zoom level accordingly.\n * @param mesh The mesh to target.\n * @param focusOnOriginXZ Determines if the camera should focus on 0 in the X and Z axis instead of the mesh\n * @param onAnimationEnd Callback triggered at the end of the framing animation\n */\n zoomOnMeshHierarchy(e, t = !1, i = null) {\n e.computeWorldMatrix(!0);\n const s = e.getHierarchyBoundingVectors(!0);\n this.zoomOnBoundingInfo(s.min, s.max, t, i);\n }\n /**\n * Targets the given meshes with their children and updates zoom level accordingly.\n * @param meshes The mesh to target.\n * @param focusOnOriginXZ Determines if the camera should focus on 0 in the X and Z axis instead of the mesh\n * @param onAnimationEnd Callback triggered at the end of the framing animation\n */\n zoomOnMeshesHierarchy(e, t = !1, i = null) {\n const s = new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), r = new g(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\n for (let n = 0; n < e.length; n++) {\n const o = e[n].getHierarchyBoundingVectors(!0);\n g.CheckExtends(o.min, s, r), g.CheckExtends(o.max, s, r);\n }\n this.zoomOnBoundingInfo(s, r, t, i);\n }\n /**\n * Targets the bounding box info defined by its extends and updates zoom level accordingly.\n * @param minimumWorld Determines the smaller position of the bounding box extend\n * @param maximumWorld Determines the bigger position of the bounding box extend\n * @param focusOnOriginXZ Determines if the camera should focus on 0 in the X and Z axis instead of the mesh\n * @param onAnimationEnd Callback triggered at the end of the framing animation\n * @returns true if the zoom was done\n */\n zoomOnBoundingInfo(e, t, i = !1, s = null) {\n let r;\n if (!this._attachedCamera)\n return !1;\n const n = e.y, o = t.y, l = n + (o - n) * this._positionScale, h = t.subtract(e).scale(0.5);\n if (i)\n r = new g(0, l, 0);\n else {\n const d = e.add(h);\n r = new g(d.x, l, d.z);\n }\n this._vectorTransition || (this._vectorTransition = oe.CreateAnimation(\"target\", oe.ANIMATIONTYPE_VECTOR3, 60, Vr.EasingFunction)), this._betaIsAnimating = !0;\n let c = oe.TransitionTo(\"target\", r, this._attachedCamera, this._attachedCamera.getScene(), 60, this._vectorTransition, this._framingTime);\n c && this._animatables.push(c);\n let u = 0;\n if (this._mode === Vr.FitFrustumSidesMode) {\n const d = this._calculateLowerRadiusFromModelBoundingSphere(e, t);\n this.autoCorrectCameraLimitsAndSensibility && (this._attachedCamera.lowerRadiusLimit = h.length() + this._attachedCamera.minZ), u = d;\n } else this._mode === Vr.IgnoreBoundsSizeMode && (u = this._calculateLowerRadiusFromModelBoundingSphere(e, t), this.autoCorrectCameraLimitsAndSensibility && this._attachedCamera.lowerRadiusLimit === null && (this._attachedCamera.lowerRadiusLimit = this._attachedCamera.minZ));\n if (this.autoCorrectCameraLimitsAndSensibility) {\n const d = t.subtract(e).length();\n this._attachedCamera.panningSensibility = 5e3 / d, this._attachedCamera.wheelPrecision = 100 / u;\n }\n return this._radiusTransition || (this._radiusTransition = oe.CreateAnimation(\"radius\", oe.ANIMATIONTYPE_FLOAT, 60, Vr.EasingFunction)), c = oe.TransitionTo(\"radius\", u, this._attachedCamera, this._attachedCamera.getScene(), 60, this._radiusTransition, this._framingTime, () => {\n this.stopAllAnimations(), s && s(), this._attachedCamera && this._attachedCamera.useInputToRestoreState && this._attachedCamera.storeState();\n }), c && this._animatables.push(c), !0;\n }\n /**\n * Calculates the lowest radius for the camera based on the bounding box of the mesh.\n * @param minimumWorld\n * @param maximumWorld\n * @returns The minimum distance from the primary mesh's center point at which the camera must be kept in order\n *\t\t to fully enclose the mesh in the viewing frustum.\n */\n _calculateLowerRadiusFromModelBoundingSphere(e, t) {\n const i = this._attachedCamera;\n if (!i)\n return 0;\n let s = i._calculateLowerRadiusFromModelBoundingSphere(e, t, this._radiusScale);\n return i.lowerRadiusLimit && this._mode === Vr.IgnoreBoundsSizeMode && (s = s < i.lowerRadiusLimit ? i.lowerRadiusLimit : s), i.upperRadiusLimit && (s = s > i.upperRadiusLimit ? i.upperRadiusLimit : s), s;\n }\n /**\n * Keeps the camera above the ground plane. If the user pulls the camera below the ground plane, the camera\n * is automatically returned to its default position (expected to be above ground plane).\n */\n _maintainCameraAboveGround() {\n if (this._elevationReturnTime < 0)\n return;\n const e = Es.Now - this._lastInteractionTime, t = Math.PI * 0.5 - this._defaultElevation, i = Math.PI * 0.5;\n if (this._attachedCamera && !this._betaIsAnimating && this._attachedCamera.beta > i && e >= this._elevationReturnWaitTime) {\n this._betaIsAnimating = !0, this.stopAllAnimations(), this._betaTransition || (this._betaTransition = oe.CreateAnimation(\"beta\", oe.ANIMATIONTYPE_FLOAT, 60, Vr.EasingFunction));\n const s = oe.TransitionTo(\"beta\", t, this._attachedCamera, this._attachedCamera.getScene(), 60, this._betaTransition, this._elevationReturnTime, () => {\n this._clearAnimationLocks(), this.stopAllAnimations();\n });\n s && this._animatables.push(s);\n }\n }\n /**\n * Removes all animation locks. Allows new animations to be added to any of the arcCamera properties.\n */\n _clearAnimationLocks() {\n this._betaIsAnimating = !1;\n }\n /**\n * Applies any current user interaction to the camera. Takes into account maximum alpha rotation.\n */\n _applyUserInteraction() {\n this.isUserIsMoving && (this._lastInteractionTime = Es.Now, this.stopAllAnimations(), this._clearAnimationLocks());\n }\n /**\n * Stops and removes all animations that have been applied to the camera\n */\n stopAllAnimations() {\n for (this._attachedCamera && (this._attachedCamera.animations = []); this._animatables.length; )\n this._animatables[0] && (this._animatables[0].onAnimationEnd = null, this._animatables[0].stop()), this._animatables.shift();\n }\n /**\n * Gets a value indicating if the user is moving the camera\n */\n get isUserIsMoving() {\n return this._attachedCamera ? this._attachedCamera.inertialAlphaOffset !== 0 || this._attachedCamera.inertialBetaOffset !== 0 || this._attachedCamera.inertialRadiusOffset !== 0 || this._attachedCamera.inertialPanningX !== 0 || this._attachedCamera.inertialPanningY !== 0 || this._isPointerDown : !1;\n }\n}\nVr.EasingFunction = new fw();\nVr.EasingMode = Ti.EASINGMODE_EASEINOUT;\nVr.IgnoreBoundsSizeMode = 0;\nVr.FitFrustumSidesMode = 1;\nLt.AddNodeConstructor(\"TargetCamera\", (a, e) => () => new $i(a, g.Zero(), e));\nclass $i extends Fe {\n /**\n * Instantiates a target camera that takes a mesh or position as a target and continues to look at it while it moves.\n * This is the base of the follow, arc rotate cameras and Free camera\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras\n * @param name Defines the name of the camera in the scene\n * @param position Defines the start position of the camera in the scene\n * @param scene Defines the scene the camera belongs to\n * @param setActiveOnSceneIfNoneActive Defines whether the camera should be marked as active if not other active cameras have been defined\n */\n constructor(e, t, i, s = !0) {\n super(e, t, i, s), this._tmpUpVector = g.Zero(), this._tmpTargetVector = g.Zero(), this.cameraDirection = new g(0, 0, 0), this.cameraRotation = new Q(0, 0), this.ignoreParentScaling = !1, this.updateUpVectorFromRotation = !1, this._tmpQuaternion = new se(), this.rotation = new g(0, 0, 0), this.speed = 2, this.noRotationConstraint = !1, this.invertRotation = !1, this.inverseRotationSpeed = 0.2, this.lockedTarget = null, this._currentTarget = g.Zero(), this._initialFocalDistance = 1, this._viewMatrix = O.Zero(), this._camMatrix = O.Zero(), this._cameraTransformMatrix = O.Zero(), this._cameraRotationMatrix = O.Zero(), this._referencePoint = new g(0, 0, 1), this._transformedReferencePoint = g.Zero(), this._deferredPositionUpdate = new g(), this._deferredRotationQuaternionUpdate = new se(), this._deferredRotationUpdate = new g(), this._deferredUpdated = !1, this._deferOnly = !1, this._defaultUp = g.Up(), this._cachedRotationZ = 0, this._cachedQuaternionRotationZ = 0;\n }\n /**\n * Gets the position in front of the camera at a given distance.\n * @param distance The distance from the camera we want the position to be\n * @returns the position\n */\n getFrontPosition(e) {\n this.getWorldMatrix();\n const t = this.getTarget().subtract(this.position);\n return t.normalize(), t.scaleInPlace(e), this.globalPosition.add(t);\n }\n /** @internal */\n _getLockedTargetPosition() {\n if (!this.lockedTarget)\n return null;\n if (this.lockedTarget.absolutePosition) {\n const e = this.lockedTarget;\n e.computeWorldMatrix().getTranslationToRef(e.absolutePosition);\n }\n return this.lockedTarget.absolutePosition || this.lockedTarget;\n }\n /**\n * Store current camera state of the camera (fov, position, rotation, etc..)\n * @returns the camera\n */\n storeState() {\n return this._storedPosition = this.position.clone(), this._storedRotation = this.rotation.clone(), this.rotationQuaternion && (this._storedRotationQuaternion = this.rotationQuaternion.clone()), super.storeState();\n }\n /**\n * Restored camera state. You must call storeState() first\n * @returns whether it was successful or not\n * @internal\n */\n _restoreStateValues() {\n return super._restoreStateValues() ? (this.position = this._storedPosition.clone(), this.rotation = this._storedRotation.clone(), this.rotationQuaternion && (this.rotationQuaternion = this._storedRotationQuaternion.clone()), this.cameraDirection.copyFromFloats(0, 0, 0), this.cameraRotation.copyFromFloats(0, 0), !0) : !1;\n }\n /** @internal */\n _initCache() {\n super._initCache(), this._cache.lockedTarget = new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), this._cache.rotation = new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), this._cache.rotationQuaternion = new se(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\n }\n /**\n * @internal\n */\n _updateCache(e) {\n e || super._updateCache();\n const t = this._getLockedTargetPosition();\n t ? this._cache.lockedTarget ? this._cache.lockedTarget.copyFrom(t) : this._cache.lockedTarget = t.clone() : this._cache.lockedTarget = null, this._cache.rotation.copyFrom(this.rotation), this.rotationQuaternion && this._cache.rotationQuaternion.copyFrom(this.rotationQuaternion);\n }\n // Synchronized\n /** @internal */\n _isSynchronizedViewMatrix() {\n if (!super._isSynchronizedViewMatrix())\n return !1;\n const e = this._getLockedTargetPosition();\n return (this._cache.lockedTarget ? this._cache.lockedTarget.equals(e) : !e) && (this.rotationQuaternion ? this.rotationQuaternion.equals(this._cache.rotationQuaternion) : this._cache.rotation.equals(this.rotation));\n }\n // Methods\n /** @internal */\n _computeLocalCameraSpeed() {\n const e = this.getEngine();\n return this.speed * Math.sqrt(e.getDeltaTime() / (e.getFps() * 100));\n }\n // Target\n /**\n * Defines the target the camera should look at.\n * @param target Defines the new target as a Vector\n */\n setTarget(e) {\n this.upVector.normalize(), this._initialFocalDistance = e.subtract(this.position).length(), this.position.z === e.z && (this.position.z += tt), this._referencePoint.normalize().scaleInPlace(this._initialFocalDistance), O.LookAtLHToRef(this.position, e, this._defaultUp, this._camMatrix), this._camMatrix.invert(), this.rotation.x = Math.atan(this._camMatrix.m[6] / this._camMatrix.m[10]);\n const t = e.subtract(this.position);\n t.x >= 0 ? this.rotation.y = -Math.atan(t.z / t.x) + Math.PI / 2 : this.rotation.y = -Math.atan(t.z / t.x) - Math.PI / 2, this.rotation.z = 0, isNaN(this.rotation.x) && (this.rotation.x = 0), isNaN(this.rotation.y) && (this.rotation.y = 0), isNaN(this.rotation.z) && (this.rotation.z = 0), this.rotationQuaternion && se.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this.rotationQuaternion);\n }\n /**\n * Defines the target point of the camera.\n * The camera looks towards it form the radius distance.\n */\n get target() {\n return this.getTarget();\n }\n set target(e) {\n this.setTarget(e);\n }\n /**\n * Return the current target position of the camera. This value is expressed in local space.\n * @returns the target position\n */\n getTarget() {\n return this._currentTarget;\n }\n /** @internal */\n _decideIfNeedsToMove() {\n return Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0;\n }\n /** @internal */\n _updatePosition() {\n if (this.parent) {\n this.parent.getWorldMatrix().invertToRef(w.Matrix[0]), g.TransformNormalToRef(this.cameraDirection, w.Matrix[0], w.Vector3[0]), this._deferredPositionUpdate.addInPlace(w.Vector3[0]), this._deferOnly ? this._deferredUpdated = !0 : this.position.copyFrom(this._deferredPositionUpdate);\n return;\n }\n this._deferredPositionUpdate.addInPlace(this.cameraDirection), this._deferOnly ? this._deferredUpdated = !0 : this.position.copyFrom(this._deferredPositionUpdate);\n }\n /** @internal */\n _checkInputs() {\n const e = this.invertRotation ? -this.inverseRotationSpeed : 1, t = this._decideIfNeedsToMove(), i = this.cameraRotation.x || this.cameraRotation.y;\n this._deferredUpdated = !1, this._deferredRotationUpdate.copyFrom(this.rotation), this._deferredPositionUpdate.copyFrom(this.position), this.rotationQuaternion && this._deferredRotationQuaternionUpdate.copyFrom(this.rotationQuaternion), t && this._updatePosition(), i && (this.rotationQuaternion && this.rotationQuaternion.toEulerAnglesToRef(this._deferredRotationUpdate), this._deferredRotationUpdate.x += this.cameraRotation.x * e, this._deferredRotationUpdate.y += this.cameraRotation.y * e, this.noRotationConstraint || (this._deferredRotationUpdate.x > 1.570796 && (this._deferredRotationUpdate.x = 1.570796), this._deferredRotationUpdate.x < -1.570796 && (this._deferredRotationUpdate.x = -1.570796)), this._deferOnly ? this._deferredUpdated = !0 : this.rotation.copyFrom(this._deferredRotationUpdate), this.rotationQuaternion && this._deferredRotationUpdate.lengthSquared() && (se.RotationYawPitchRollToRef(this._deferredRotationUpdate.y, this._deferredRotationUpdate.x, this._deferredRotationUpdate.z, this._deferredRotationQuaternionUpdate), this._deferOnly ? this._deferredUpdated = !0 : this.rotationQuaternion.copyFrom(this._deferredRotationQuaternionUpdate))), t && (Math.abs(this.cameraDirection.x) < this.speed * tt && (this.cameraDirection.x = 0), Math.abs(this.cameraDirection.y) < this.speed * tt && (this.cameraDirection.y = 0), Math.abs(this.cameraDirection.z) < this.speed * tt && (this.cameraDirection.z = 0), this.cameraDirection.scaleInPlace(this.inertia)), i && (Math.abs(this.cameraRotation.x) < this.speed * tt && (this.cameraRotation.x = 0), Math.abs(this.cameraRotation.y) < this.speed * tt && (this.cameraRotation.y = 0), this.cameraRotation.scaleInPlace(this.inertia)), super._checkInputs();\n }\n _updateCameraRotationMatrix() {\n this.rotationQuaternion ? this.rotationQuaternion.toRotationMatrix(this._cameraRotationMatrix) : O.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this._cameraRotationMatrix);\n }\n /**\n * Update the up vector to apply the rotation of the camera (So if you changed the camera rotation.z this will let you update the up vector as well)\n * @returns the current camera\n */\n _rotateUpVectorWithCameraRotationMatrix() {\n return g.TransformNormalToRef(this._defaultUp, this._cameraRotationMatrix, this.upVector), this;\n }\n /** @internal */\n _getViewMatrix() {\n return this.lockedTarget && this.setTarget(this._getLockedTargetPosition()), this._updateCameraRotationMatrix(), this.rotationQuaternion && this._cachedQuaternionRotationZ != this.rotationQuaternion.z ? (this._rotateUpVectorWithCameraRotationMatrix(), this._cachedQuaternionRotationZ = this.rotationQuaternion.z) : this._cachedRotationZ !== this.rotation.z && (this._rotateUpVectorWithCameraRotationMatrix(), this._cachedRotationZ = this.rotation.z), g.TransformCoordinatesToRef(this._referencePoint, this._cameraRotationMatrix, this._transformedReferencePoint), this.position.addToRef(this._transformedReferencePoint, this._currentTarget), this.updateUpVectorFromRotation && (this.rotationQuaternion ? zs.Y.rotateByQuaternionToRef(this.rotationQuaternion, this.upVector) : (se.FromEulerVectorToRef(this.rotation, this._tmpQuaternion), zs.Y.rotateByQuaternionToRef(this._tmpQuaternion, this.upVector))), this._computeViewMatrix(this.position, this._currentTarget, this.upVector), this._viewMatrix;\n }\n _computeViewMatrix(e, t, i) {\n if (this.ignoreParentScaling) {\n if (this.parent) {\n const s = this.parent.getWorldMatrix();\n g.TransformCoordinatesToRef(e, s, this._globalPosition), g.TransformCoordinatesToRef(t, s, this._tmpTargetVector), g.TransformNormalToRef(i, s, this._tmpUpVector), this._markSyncedWithParent();\n } else\n this._globalPosition.copyFrom(e), this._tmpTargetVector.copyFrom(t), this._tmpUpVector.copyFrom(i);\n this.getScene().useRightHandedSystem ? O.LookAtRHToRef(this._globalPosition, this._tmpTargetVector, this._tmpUpVector, this._viewMatrix) : O.LookAtLHToRef(this._globalPosition, this._tmpTargetVector, this._tmpUpVector, this._viewMatrix);\n return;\n }\n if (this.getScene().useRightHandedSystem ? O.LookAtRHToRef(e, t, i, this._viewMatrix) : O.LookAtLHToRef(e, t, i, this._viewMatrix), this.parent) {\n const s = this.parent.getWorldMatrix();\n this._viewMatrix.invert(), this._viewMatrix.multiplyToRef(s, this._viewMatrix), this._viewMatrix.getTranslationToRef(this._globalPosition), this._viewMatrix.invert(), this._markSyncedWithParent();\n } else\n this._globalPosition.copyFrom(e);\n }\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n createRigCamera(e, t) {\n if (this.cameraRigMode !== Fe.RIG_MODE_NONE) {\n const i = new $i(e, this.position.clone(), this.getScene());\n return i.isRigCamera = !0, i.rigParent = this, this.cameraRigMode === Fe.RIG_MODE_VR && (this.rotationQuaternion || (this.rotationQuaternion = new se()), i._cameraRigParams = {}, i.rotationQuaternion = new se()), i.mode = this.mode, i.orthoLeft = this.orthoLeft, i.orthoRight = this.orthoRight, i.orthoTop = this.orthoTop, i.orthoBottom = this.orthoBottom, i;\n }\n return null;\n }\n /**\n * @internal\n */\n _updateRigCameras() {\n const e = this._rigCameras[0], t = this._rigCameras[1];\n switch (this.computeWorldMatrix(), this.cameraRigMode) {\n case Fe.RIG_MODE_STEREOSCOPIC_ANAGLYPH:\n case Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:\n case Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:\n case Fe.RIG_MODE_STEREOSCOPIC_OVERUNDER:\n case Fe.RIG_MODE_STEREOSCOPIC_INTERLACED: {\n const i = this.cameraRigMode === Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? 1 : -1, s = this.cameraRigMode === Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? -1 : 1;\n this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * i, e), this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * s, t);\n break;\n }\n case Fe.RIG_MODE_VR:\n e.rotationQuaternion ? (e.rotationQuaternion.copyFrom(this.rotationQuaternion), t.rotationQuaternion.copyFrom(this.rotationQuaternion)) : (e.rotation.copyFrom(this.rotation), t.rotation.copyFrom(this.rotation)), e.position.copyFrom(this.position), t.position.copyFrom(this.position);\n break;\n }\n super._updateRigCameras();\n }\n _getRigCamPositionAndTarget(e, t) {\n this.getTarget().subtractToRef(this.position, $i._TargetFocalPoint), $i._TargetFocalPoint.normalize().scaleInPlace(this._initialFocalDistance);\n const s = $i._TargetFocalPoint.addInPlace(this.position);\n O.TranslationToRef(-s.x, -s.y, -s.z, $i._TargetTransformMatrix), $i._TargetTransformMatrix.multiplyToRef(O.RotationAxis(t.upVector, e), $i._RigCamTransformMatrix), O.TranslationToRef(s.x, s.y, s.z, $i._TargetTransformMatrix), $i._RigCamTransformMatrix.multiplyToRef($i._TargetTransformMatrix, $i._RigCamTransformMatrix), g.TransformCoordinatesToRef(this.position, $i._RigCamTransformMatrix, t.position), t.setTarget(s);\n }\n /**\n * Gets the current object class name.\n * @returns the class name\n */\n getClassName() {\n return \"TargetCamera\";\n }\n}\n$i._RigCamTransformMatrix = new O();\n$i._TargetTransformMatrix = new O();\n$i._TargetFocalPoint = new g();\ny([\n Zs()\n], $i.prototype, \"rotation\", void 0);\ny([\n I()\n], $i.prototype, \"speed\", void 0);\ny([\n af(\"lockedTargetId\")\n], $i.prototype, \"lockedTarget\", void 0);\nvar lr = {};\nclass S_ {\n /**\n * Instantiate a new Camera Input Manager.\n * @param camera Defines the camera the input manager belongs to\n */\n constructor(e) {\n this.attachedToElement = !1, this.attached = {}, this.camera = e, this.checkInputs = () => {\n };\n }\n /**\n * Add an input method to a camera\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n * @param input Camera input method\n */\n add(e) {\n const t = e.getSimpleName();\n if (this.attached[t]) {\n L.Warn(\"camera input of type \" + t + \" already exists on camera\");\n return;\n }\n this.attached[t] = e, e.camera = this.camera, e.checkInputs && (this.checkInputs = this._addCheckInputs(e.checkInputs.bind(e))), this.attachedToElement && e.attachControl(this.noPreventDefault);\n }\n /**\n * Remove a specific input method from a camera\n * example: camera.inputs.remove(camera.inputs.attached.mouse);\n * @param inputToRemove camera input method\n */\n remove(e) {\n for (const t in this.attached) {\n const i = this.attached[t];\n if (i === e) {\n i.detachControl(), i.camera = null, delete this.attached[t], this.rebuildInputCheck();\n return;\n }\n }\n }\n /**\n * Remove a specific input type from a camera\n * example: camera.inputs.remove(\"ArcRotateCameraGamepadInput\");\n * @param inputType the type of the input to remove\n */\n removeByType(e) {\n for (const t in this.attached) {\n const i = this.attached[t];\n i.getClassName() === e && (i.detachControl(), i.camera = null, delete this.attached[t], this.rebuildInputCheck());\n }\n }\n _addCheckInputs(e) {\n const t = this.checkInputs;\n return () => {\n t(), e();\n };\n }\n /**\n * Attach the input controls to the currently attached dom element to listen the events from.\n * @param input Defines the input to attach\n */\n attachInput(e) {\n this.attachedToElement && e.attachControl(this.noPreventDefault);\n }\n /**\n * Attach the current manager inputs controls to a specific dom element to listen the events from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachElement(e = !1) {\n if (!this.attachedToElement) {\n e = Fe.ForceAttachControlToAlwaysPreventDefault ? !1 : e, this.attachedToElement = !0, this.noPreventDefault = e;\n for (const t in this.attached)\n this.attached[t].attachControl(e);\n }\n }\n /**\n * Detach the current manager inputs controls from a specific dom element.\n * @param disconnect Defines whether the input should be removed from the current list of attached inputs\n */\n detachElement(e = !1) {\n for (const t in this.attached)\n this.attached[t].detachControl(), e && (this.attached[t].camera = null);\n this.attachedToElement = !1;\n }\n /**\n * Rebuild the dynamic inputCheck function from the current list of\n * defined inputs in the manager.\n */\n rebuildInputCheck() {\n this.checkInputs = () => {\n };\n for (const e in this.attached) {\n const t = this.attached[e];\n t.checkInputs && (this.checkInputs = this._addCheckInputs(t.checkInputs.bind(t)));\n }\n }\n /**\n * Remove all attached input methods from a camera\n */\n clear() {\n this.attachedToElement && this.detachElement(!0), this.attached = {}, this.attachedToElement = !1, this.checkInputs = () => {\n };\n }\n /**\n * Serialize the current input manager attached to a camera.\n * This ensures than once parsed,\n * the input associated to the camera will be identical to the current ones\n * @param serializedCamera Defines the camera serialization JSON the input serialization should write to\n */\n serialize(e) {\n const t = {};\n for (const i in this.attached) {\n const s = this.attached[i], r = Ae.Serialize(s);\n t[s.getClassName()] = r;\n }\n e.inputsmgr = t;\n }\n /**\n * Parses an input manager serialized JSON to restore the previous list of inputs\n * and states associated to a camera.\n * @param parsedCamera Defines the JSON to parse\n */\n parse(e) {\n const t = e.inputsmgr;\n if (t) {\n this.clear();\n for (const i in t) {\n const s = lr[i];\n if (s) {\n const r = t[i], n = Ae.Parse(() => new s(), r, null);\n this.add(n);\n }\n }\n } else\n for (const i in this.attached) {\n const s = lr[this.attached[i].getClassName()];\n if (s) {\n const r = Ae.Parse(() => new s(), e, null);\n this.remove(this.attached[i]), this.add(r);\n }\n }\n }\n}\nclass Wx {\n constructor() {\n this._currentActiveButton = -1, this.buttons = [0, 1, 2];\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e) {\n e = J.BackCompatCameraNoPreventDefault(arguments);\n const t = this.camera.getEngine(), i = t.getInputElement();\n let s = 0, r = null;\n this._pointA = null, this._pointB = null, this._altKey = !1, this._ctrlKey = !1, this._metaKey = !1, this._shiftKey = !1, this._buttonsPressed = 0, this._pointerInput = (o) => {\n var u, d;\n const l = o.event, h = l.pointerType === \"touch\";\n if (o.type !== Pe.POINTERMOVE && this.buttons.indexOf(l.button) === -1)\n return;\n const c = l.target;\n if (this._altKey = l.altKey, this._ctrlKey = l.ctrlKey, this._metaKey = l.metaKey, this._shiftKey = l.shiftKey, this._buttonsPressed = l.buttons, t.isPointerLock) {\n const f = l.movementX, p = l.movementY;\n this.onTouch(null, f, p), this._pointA = null, this._pointB = null;\n } else {\n if (o.type !== Pe.POINTERDOWN && o.type !== Pe.POINTERDOUBLETAP && h && ((u = this._pointA) == null ? void 0 : u.pointerId) !== l.pointerId && ((d = this._pointB) == null ? void 0 : d.pointerId) !== l.pointerId)\n return;\n if (o.type === Pe.POINTERDOWN && (this._currentActiveButton === -1 || h)) {\n try {\n c == null || c.setPointerCapture(l.pointerId);\n } catch {\n }\n if (this._pointA === null)\n this._pointA = {\n x: l.clientX,\n y: l.clientY,\n pointerId: l.pointerId,\n type: l.pointerType\n };\n else if (this._pointB === null)\n this._pointB = {\n x: l.clientX,\n y: l.clientY,\n pointerId: l.pointerId,\n type: l.pointerType\n };\n else\n return;\n this._currentActiveButton === -1 && !h && (this._currentActiveButton = l.button), this.onButtonDown(l), e || (l.preventDefault(), i && i.focus());\n } else if (o.type === Pe.POINTERDOUBLETAP)\n this.onDoubleTap(l.pointerType);\n else if (o.type === Pe.POINTERUP && (this._currentActiveButton === l.button || h)) {\n try {\n c == null || c.releasePointerCapture(l.pointerId);\n } catch {\n }\n h || (this._pointB = null), t._badOS ? this._pointA = this._pointB = null : this._pointB && this._pointA && this._pointA.pointerId == l.pointerId ? (this._pointA = this._pointB, this._pointB = null) : this._pointA && this._pointB && this._pointB.pointerId == l.pointerId ? this._pointB = null : this._pointA = this._pointB = null, (s !== 0 || r) && (this.onMultiTouch(\n this._pointA,\n this._pointB,\n s,\n 0,\n // pinchSquaredDistance\n r,\n null\n // multiTouchPanPosition\n ), s = 0, r = null), this._currentActiveButton = -1, this.onButtonUp(l), e || l.preventDefault();\n } else if (o.type === Pe.POINTERMOVE) {\n if (e || l.preventDefault(), this._pointA && this._pointB === null) {\n const f = l.clientX - this._pointA.x, p = l.clientY - this._pointA.y;\n this.onTouch(this._pointA, f, p), this._pointA.x = l.clientX, this._pointA.y = l.clientY;\n } else if (this._pointA && this._pointB) {\n const f = this._pointA.pointerId === l.pointerId ? this._pointA : this._pointB;\n f.x = l.clientX, f.y = l.clientY;\n const p = this._pointA.x - this._pointB.x, _ = this._pointA.y - this._pointB.y, m = p * p + _ * _, x = {\n x: (this._pointA.x + this._pointB.x) / 2,\n y: (this._pointA.y + this._pointB.y) / 2,\n pointerId: l.pointerId,\n type: o.type\n };\n this.onMultiTouch(this._pointA, this._pointB, s, m, r, x), r = x, s = m;\n }\n }\n }\n }, this._observer = this.camera.getScene()._inputManager._addCameraPointerObserver(this._pointerInput, Pe.POINTERDOWN | Pe.POINTERUP | Pe.POINTERMOVE | Pe.POINTERDOUBLETAP), this._onLostFocus = () => {\n this._pointA = this._pointB = null, s = 0, r = null, this.onLostFocus();\n }, this._contextMenuBind = (o) => this.onContextMenu(o), i && i.addEventListener(\"contextmenu\", this._contextMenuBind, !1);\n const n = this.camera.getScene().getEngine().getHostWindow();\n n && J.RegisterTopRootEvents(n, [{ name: \"blur\", handler: this._onLostFocus }]);\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n if (this._onLostFocus) {\n const e = this.camera.getScene().getEngine().getHostWindow();\n e && J.UnregisterTopRootEvents(e, [{ name: \"blur\", handler: this._onLostFocus }]);\n }\n if (this._observer) {\n if (this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer), this._observer = null, this._contextMenuBind) {\n const e = this.camera.getScene().getEngine().getInputElement();\n e && e.removeEventListener(\"contextmenu\", this._contextMenuBind);\n }\n this._onLostFocus = null;\n }\n this._altKey = !1, this._ctrlKey = !1, this._metaKey = !1, this._shiftKey = !1, this._buttonsPressed = 0, this._currentActiveButton = -1;\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"BaseCameraPointersInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"pointers\";\n }\n /**\n * Called on pointer POINTERDOUBLETAP event.\n * Override this method to provide functionality on POINTERDOUBLETAP event.\n * @param type type of event\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onDoubleTap(e) {\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /**\n * Called on pointer POINTERMOVE event if only a single touch is active.\n * Override this method to provide functionality.\n * @param point The current position of the pointer\n * @param offsetX The offsetX of the pointer when the event occurred\n * @param offsetY The offsetY of the pointer when the event occurred\n */\n onTouch(e, t, i) {\n }\n /**\n * Called on pointer POINTERMOVE event if multiple touches are active.\n * Override this method to provide functionality.\n * @param _pointA First point in the pair\n * @param _pointB Second point in the pair\n * @param previousPinchSquaredDistance Sqr Distance between the points the last time this event was fired (by this input)\n * @param pinchSquaredDistance Sqr Distance between the points this time\n * @param previousMultiTouchPanPosition Previous center point between the points\n * @param multiTouchPanPosition Current center point between the points\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onMultiTouch(e, t, i, s, r, n) {\n }\n /**\n * Called on JS contextmenu event.\n * Override this method to provide functionality.\n * @param evt the event to be handled\n */\n onContextMenu(e) {\n e.preventDefault();\n }\n /**\n * Called each time a new POINTERDOWN event occurs. Ie, for each button\n * press.\n * Override this method to provide functionality.\n * @param _evt Defines the event to track\n */\n onButtonDown(e) {\n }\n /**\n * Called each time a new POINTERUP event occurs. Ie, for each button\n * release.\n * Override this method to provide functionality.\n * @param _evt Defines the event to track\n */\n onButtonUp(e) {\n }\n /**\n * Called when window becomes inactive.\n * Override this method to provide functionality.\n */\n onLostFocus() {\n }\n}\ny([\n I()\n], Wx.prototype, \"buttons\", void 0);\nclass Xr extends Wx {\n constructor() {\n super(...arguments), this.buttons = [0, 1, 2], this.angularSensibilityX = 1e3, this.angularSensibilityY = 1e3, this.pinchPrecision = 12, this.pinchDeltaPercentage = 0, this.useNaturalPinchZoom = !1, this.pinchZoom = !0, this.panningSensibility = 1e3, this.multiTouchPanning = !0, this.multiTouchPanAndZoom = !0, this.pinchInwards = !0, this._isPanClick = !1, this._twoFingerActivityCount = 0, this._isPinching = !1;\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"ArcRotateCameraPointersInput\";\n }\n /**\n * Move camera from multi touch panning positions.\n * @param previousMultiTouchPanPosition\n * @param multiTouchPanPosition\n */\n _computeMultiTouchPanning(e, t) {\n if (this.panningSensibility !== 0 && e && t) {\n const i = t.x - e.x, s = t.y - e.y;\n this.camera.inertialPanningX += -i / this.panningSensibility, this.camera.inertialPanningY += s / this.panningSensibility;\n }\n }\n /**\n * Move camera from pinch zoom distances.\n * @param previousPinchSquaredDistance\n * @param pinchSquaredDistance\n */\n _computePinchZoom(e, t) {\n const i = this.camera.radius || Xr.MinimumRadiusForPinch;\n this.useNaturalPinchZoom ? this.camera.radius = i * Math.sqrt(e) / Math.sqrt(t) : this.pinchDeltaPercentage ? this.camera.inertialRadiusOffset += (t - e) * 1e-3 * i * this.pinchDeltaPercentage : this.camera.inertialRadiusOffset += (t - e) / (this.pinchPrecision * (this.pinchInwards ? 1 : -1) * (this.angularSensibilityX + this.angularSensibilityY) / 2);\n }\n /**\n * Called on pointer POINTERMOVE event if only a single touch is active.\n * @param point current touch point\n * @param offsetX offset on X\n * @param offsetY offset on Y\n */\n onTouch(e, t, i) {\n this.panningSensibility !== 0 && (this._ctrlKey && this.camera._useCtrlForPanning || this._isPanClick) ? (this.camera.inertialPanningX += -t / this.panningSensibility, this.camera.inertialPanningY += i / this.panningSensibility) : (this.camera.inertialAlphaOffset -= t / this.angularSensibilityX, this.camera.inertialBetaOffset -= i / this.angularSensibilityY);\n }\n /**\n * Called on pointer POINTERDOUBLETAP event.\n */\n onDoubleTap() {\n this.camera.useInputToRestoreState && this.camera.restoreState();\n }\n /**\n * Called on pointer POINTERMOVE event if multiple touches are active.\n * @param pointA point A\n * @param pointB point B\n * @param previousPinchSquaredDistance distance between points in previous pinch\n * @param pinchSquaredDistance distance between points in current pinch\n * @param previousMultiTouchPanPosition multi-touch position in previous step\n * @param multiTouchPanPosition multi-touch position in current step\n */\n onMultiTouch(e, t, i, s, r, n) {\n i === 0 && r === null || s === 0 && n === null || (this.multiTouchPanAndZoom ? (this._computePinchZoom(i, s), this._computeMultiTouchPanning(r, n)) : this.multiTouchPanning && this.pinchZoom ? (this._twoFingerActivityCount++, this._isPinching || this._twoFingerActivityCount < 20 && Math.abs(Math.sqrt(s) - Math.sqrt(i)) > this.camera.pinchToPanMaxDistance ? (this._computePinchZoom(i, s), this._isPinching = !0) : this._computeMultiTouchPanning(r, n)) : this.multiTouchPanning ? this._computeMultiTouchPanning(r, n) : this.pinchZoom && this._computePinchZoom(i, s));\n }\n /**\n * Called each time a new POINTERDOWN event occurs. Ie, for each button\n * press.\n * @param evt Defines the event to track\n */\n onButtonDown(e) {\n this._isPanClick = e.button === this.camera._panningMouseButton;\n }\n /**\n * Called each time a new POINTERUP event occurs. Ie, for each button\n * release.\n * @param _evt Defines the event to track\n */\n onButtonUp(e) {\n this._twoFingerActivityCount = 0, this._isPinching = !1;\n }\n /**\n * Called when window becomes inactive.\n */\n onLostFocus() {\n this._isPanClick = !1, this._twoFingerActivityCount = 0, this._isPinching = !1;\n }\n}\nXr.MinimumRadiusForPinch = 1e-3;\ny([\n I()\n], Xr.prototype, \"buttons\", void 0);\ny([\n I()\n], Xr.prototype, \"angularSensibilityX\", void 0);\ny([\n I()\n], Xr.prototype, \"angularSensibilityY\", void 0);\ny([\n I()\n], Xr.prototype, \"pinchPrecision\", void 0);\ny([\n I()\n], Xr.prototype, \"pinchDeltaPercentage\", void 0);\ny([\n I()\n], Xr.prototype, \"useNaturalPinchZoom\", void 0);\ny([\n I()\n], Xr.prototype, \"pinchZoom\", void 0);\ny([\n I()\n], Xr.prototype, \"panningSensibility\", void 0);\ny([\n I()\n], Xr.prototype, \"multiTouchPanning\", void 0);\ny([\n I()\n], Xr.prototype, \"multiTouchPanAndZoom\", void 0);\nlr.ArcRotateCameraPointersInput = Xr;\nclass aa {\n constructor() {\n this.keysUp = [38], this.keysDown = [40], this.keysLeft = [37], this.keysRight = [39], this.keysReset = [220], this.panningSensibility = 50, this.zoomingSensibility = 25, this.useAltToZoom = !0, this.angularSpeed = 0.01, this._keys = new Array();\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e) {\n e = J.BackCompatCameraNoPreventDefault(arguments), !this._onCanvasBlurObserver && (this._scene = this.camera.getScene(), this._engine = this._scene.getEngine(), this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(() => {\n this._keys.length = 0;\n }), this._onKeyboardObserver = this._scene.onKeyboardObservable.add((t) => {\n const i = t.event;\n if (!i.metaKey) {\n if (t.type === Ma.KEYDOWN)\n this._ctrlPressed = i.ctrlKey, this._altPressed = i.altKey, (this.keysUp.indexOf(i.keyCode) !== -1 || this.keysDown.indexOf(i.keyCode) !== -1 || this.keysLeft.indexOf(i.keyCode) !== -1 || this.keysRight.indexOf(i.keyCode) !== -1 || this.keysReset.indexOf(i.keyCode) !== -1) && (this._keys.indexOf(i.keyCode) === -1 && this._keys.push(i.keyCode), i.preventDefault && (e || i.preventDefault()));\n else if (this.keysUp.indexOf(i.keyCode) !== -1 || this.keysDown.indexOf(i.keyCode) !== -1 || this.keysLeft.indexOf(i.keyCode) !== -1 || this.keysRight.indexOf(i.keyCode) !== -1 || this.keysReset.indexOf(i.keyCode) !== -1) {\n const s = this._keys.indexOf(i.keyCode);\n s >= 0 && this._keys.splice(s, 1), i.preventDefault && (e || i.preventDefault());\n }\n }\n }));\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this._scene && (this._onKeyboardObserver && this._scene.onKeyboardObservable.remove(this._onKeyboardObserver), this._onCanvasBlurObserver && this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver), this._onKeyboardObserver = null, this._onCanvasBlurObserver = null), this._keys.length = 0;\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n if (this._onKeyboardObserver) {\n const e = this.camera;\n for (let t = 0; t < this._keys.length; t++) {\n const i = this._keys[t];\n this.keysLeft.indexOf(i) !== -1 ? this._ctrlPressed && this.camera._useCtrlForPanning ? e.inertialPanningX -= 1 / this.panningSensibility : e.inertialAlphaOffset -= this.angularSpeed : this.keysUp.indexOf(i) !== -1 ? this._ctrlPressed && this.camera._useCtrlForPanning ? e.inertialPanningY += 1 / this.panningSensibility : this._altPressed && this.useAltToZoom ? e.inertialRadiusOffset += 1 / this.zoomingSensibility : e.inertialBetaOffset -= this.angularSpeed : this.keysRight.indexOf(i) !== -1 ? this._ctrlPressed && this.camera._useCtrlForPanning ? e.inertialPanningX += 1 / this.panningSensibility : e.inertialAlphaOffset += this.angularSpeed : this.keysDown.indexOf(i) !== -1 ? this._ctrlPressed && this.camera._useCtrlForPanning ? e.inertialPanningY -= 1 / this.panningSensibility : this._altPressed && this.useAltToZoom ? e.inertialRadiusOffset -= 1 / this.zoomingSensibility : e.inertialBetaOffset += this.angularSpeed : this.keysReset.indexOf(i) !== -1 && e.useInputToRestoreState && e.restoreState();\n }\n }\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"ArcRotateCameraKeyboardMoveInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"keyboard\";\n }\n}\ny([\n I()\n], aa.prototype, \"keysUp\", void 0);\ny([\n I()\n], aa.prototype, \"keysDown\", void 0);\ny([\n I()\n], aa.prototype, \"keysLeft\", void 0);\ny([\n I()\n], aa.prototype, \"keysRight\", void 0);\ny([\n I()\n], aa.prototype, \"keysReset\", void 0);\ny([\n I()\n], aa.prototype, \"panningSensibility\", void 0);\ny([\n I()\n], aa.prototype, \"zoomingSensibility\", void 0);\ny([\n I()\n], aa.prototype, \"useAltToZoom\", void 0);\ny([\n I()\n], aa.prototype, \"angularSpeed\", void 0);\nlr.ArcRotateCameraKeyboardMoveInput = aa;\nconst _w = 40;\nclass gf {\n constructor() {\n this.wheelPrecision = 3, this.zoomToMouseLocation = !1, this.wheelDeltaPercentage = 0, this.customComputeDeltaFromMouseWheel = null, this._viewOffset = new g(0, 0, 0), this._globalOffset = new g(0, 0, 0), this._inertialPanning = g.Zero();\n }\n _computeDeltaFromMouseWheelLegacyEvent(e, t) {\n let i = 0;\n const s = e * 0.01 * this.wheelDeltaPercentage * t;\n return e > 0 ? i = s / (1 + this.wheelDeltaPercentage) : i = s * (1 + this.wheelDeltaPercentage), i;\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e) {\n e = J.BackCompatCameraNoPreventDefault(arguments), this._wheel = (t) => {\n if (t.type !== Pe.POINTERWHEEL)\n return;\n const i = t.event;\n let s = 0;\n const r = i.deltaMode === _c.DOM_DELTA_LINE ? _w : 1, n = -(i.deltaY * r);\n if (this.customComputeDeltaFromMouseWheel)\n s = this.customComputeDeltaFromMouseWheel(n, this, i);\n else if (this.wheelDeltaPercentage) {\n if (s = this._computeDeltaFromMouseWheelLegacyEvent(n, this.camera.radius), s > 0) {\n let o = this.camera.radius, l = this.camera.inertialRadiusOffset + s;\n for (let h = 0; h < 20 && Math.abs(l) > 1e-3; h++)\n o -= l, l *= this.camera.inertia;\n o = Re.Clamp(o, 0, Number.MAX_VALUE), s = this._computeDeltaFromMouseWheelLegacyEvent(n, o);\n }\n } else\n s = n / (this.wheelPrecision * 40);\n s && (this.zoomToMouseLocation ? (this._hitPlane || this._updateHitPlane(), this._zoomToMouse(s)) : this.camera.inertialRadiusOffset += s), i.preventDefault && (e || i.preventDefault());\n }, this._observer = this.camera.getScene()._inputManager._addCameraPointerObserver(this._wheel, Pe.POINTERWHEEL), this.zoomToMouseLocation && this._inertialPanning.setAll(0);\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this._observer && (this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer), this._observer = null, this._wheel = null);\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n if (!this.zoomToMouseLocation)\n return;\n const e = this.camera;\n 0 + e.inertialAlphaOffset + e.inertialBetaOffset + e.inertialRadiusOffset && (this._updateHitPlane(), e.target.addInPlace(this._inertialPanning), this._inertialPanning.scaleInPlace(e.inertia), this._zeroIfClose(this._inertialPanning));\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"ArcRotateCameraMouseWheelInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"mousewheel\";\n }\n _updateHitPlane() {\n const e = this.camera, t = e.target.subtract(e.position);\n this._hitPlane = Pr.FromPositionAndNormal(e.target, t);\n }\n // Get position on the hit plane\n _getPosition() {\n const e = this.camera, t = e.getScene(), i = t.createPickingRay(t.pointerX, t.pointerY, O.Identity(), e, !1);\n (e.targetScreenOffset.x !== 0 || e.targetScreenOffset.y !== 0) && (this._viewOffset.set(e.targetScreenOffset.x, e.targetScreenOffset.y, 0), e.getViewMatrix().invertToRef(e._cameraTransformMatrix), this._globalOffset = g.TransformNormal(this._viewOffset, e._cameraTransformMatrix), i.origin.addInPlace(this._globalOffset));\n let s = 0;\n return this._hitPlane && (s = i.intersectsPlane(this._hitPlane) ?? 0), i.origin.addInPlace(i.direction.scaleInPlace(s));\n }\n _zoomToMouse(e) {\n const t = this.camera, i = 1 - t.inertia;\n if (t.lowerRadiusLimit) {\n const l = t.lowerRadiusLimit ?? 0;\n t.radius - (t.inertialRadiusOffset + e) / i < l && (e = (t.radius - l) * i - t.inertialRadiusOffset);\n }\n if (t.upperRadiusLimit) {\n const l = t.upperRadiusLimit ?? 0;\n t.radius - (t.inertialRadiusOffset + e) / i > l && (e = (t.radius - l) * i - t.inertialRadiusOffset);\n }\n const r = e / i / t.radius, n = this._getPosition(), o = w.Vector3[6];\n n.subtractToRef(t.target, o), o.scaleInPlace(r), o.scaleInPlace(i), this._inertialPanning.addInPlace(o), t.inertialRadiusOffset += e;\n }\n // Sets x y or z of passed in vector to zero if less than Epsilon.\n _zeroIfClose(e) {\n Math.abs(e.x) < tt && (e.x = 0), Math.abs(e.y) < tt && (e.y = 0), Math.abs(e.z) < tt && (e.z = 0);\n }\n}\ny([\n I()\n], gf.prototype, \"wheelPrecision\", void 0);\ny([\n I()\n], gf.prototype, \"zoomToMouseLocation\", void 0);\ny([\n I()\n], gf.prototype, \"wheelDeltaPercentage\", void 0);\nlr.ArcRotateCameraMouseWheelInput = gf;\nclass Hx extends S_ {\n /**\n * Instantiates a new ArcRotateCameraInputsManager.\n * @param camera Defines the camera the inputs belong to\n */\n constructor(e) {\n super(e);\n }\n /**\n * Add mouse wheel input support to the input manager.\n * @returns the current input manager\n */\n addMouseWheel() {\n return this.add(new gf()), this;\n }\n /**\n * Add pointers input support to the input manager.\n * @returns the current input manager\n */\n addPointers() {\n return this.add(new Xr()), this;\n }\n /**\n * Add keyboard input support to the input manager.\n * @returns the current input manager\n */\n addKeyboard() {\n return this.add(new aa()), this;\n }\n}\nLt.AddNodeConstructor(\"ArcRotateCamera\", (a, e) => () => new ri(a, 0, 0, 1, g.Zero(), e));\nclass ri extends $i {\n /**\n * Defines the target point of the camera.\n * The camera looks towards it from the radius distance.\n */\n get target() {\n return this._target;\n }\n set target(e) {\n this.setTarget(e);\n }\n /**\n * Defines the target transform node of the camera.\n * The camera looks towards it from the radius distance.\n * Please note that setting a target host will disable panning.\n */\n get targetHost() {\n return this._targetHost;\n }\n set targetHost(e) {\n e && this.setTarget(e);\n }\n /**\n * Return the current target position of the camera. This value is expressed in local space.\n * @returns the target position\n */\n getTarget() {\n return this.target;\n }\n /**\n * Define the current local position of the camera in the scene\n */\n get position() {\n return this._position;\n }\n set position(e) {\n this.setPosition(e);\n }\n /**\n * The vector the camera should consider as up. (default is Vector3(0, 1, 0) as returned by Vector3.Up())\n * Setting this will copy the given vector to the camera's upVector, and set rotation matrices to and from Y up.\n * DO NOT set the up vector using copyFrom or copyFromFloats, as this bypasses setting the above matrices.\n */\n set upVector(e) {\n this._upToYMatrix || (this._yToUpMatrix = new O(), this._upToYMatrix = new O(), this._upVector = g.Zero()), e.normalize(), this._upVector.copyFrom(e), this.setMatUp();\n }\n get upVector() {\n return this._upVector;\n }\n /**\n * Sets the Y-up to camera up-vector rotation matrix, and the up-vector to Y-up rotation matrix.\n */\n setMatUp() {\n O.RotationAlignToRef(g.UpReadOnly, this._upVector, this._yToUpMatrix), O.RotationAlignToRef(this._upVector, g.UpReadOnly, this._upToYMatrix);\n }\n //-- begin properties for backward compatibility for inputs\n /**\n * Gets or Set the pointer angular sensibility along the X axis or how fast is the camera rotating.\n */\n get angularSensibilityX() {\n const e = this.inputs.attached.pointers;\n return e ? e.angularSensibilityX : 0;\n }\n set angularSensibilityX(e) {\n const t = this.inputs.attached.pointers;\n t && (t.angularSensibilityX = e);\n }\n /**\n * Gets or Set the pointer angular sensibility along the Y axis or how fast is the camera rotating.\n */\n get angularSensibilityY() {\n const e = this.inputs.attached.pointers;\n return e ? e.angularSensibilityY : 0;\n }\n set angularSensibilityY(e) {\n const t = this.inputs.attached.pointers;\n t && (t.angularSensibilityY = e);\n }\n /**\n * Gets or Set the pointer pinch precision or how fast is the camera zooming.\n */\n get pinchPrecision() {\n const e = this.inputs.attached.pointers;\n return e ? e.pinchPrecision : 0;\n }\n set pinchPrecision(e) {\n const t = this.inputs.attached.pointers;\n t && (t.pinchPrecision = e);\n }\n /**\n * Gets or Set the pointer pinch delta percentage or how fast is the camera zooming.\n * It will be used instead of pinchPrecision if different from 0.\n * It defines the percentage of current camera.radius to use as delta when pinch zoom is used.\n */\n get pinchDeltaPercentage() {\n const e = this.inputs.attached.pointers;\n return e ? e.pinchDeltaPercentage : 0;\n }\n set pinchDeltaPercentage(e) {\n const t = this.inputs.attached.pointers;\n t && (t.pinchDeltaPercentage = e);\n }\n /**\n * Gets or Set the pointer use natural pinch zoom to override the pinch precision\n * and pinch delta percentage.\n * When useNaturalPinchZoom is true, multi touch zoom will zoom in such\n * that any object in the plane at the camera's target point will scale\n * perfectly with finger motion.\n */\n get useNaturalPinchZoom() {\n const e = this.inputs.attached.pointers;\n return e ? e.useNaturalPinchZoom : !1;\n }\n set useNaturalPinchZoom(e) {\n const t = this.inputs.attached.pointers;\n t && (t.useNaturalPinchZoom = e);\n }\n /**\n * Gets or Set the pointer panning sensibility or how fast is the camera moving.\n */\n get panningSensibility() {\n const e = this.inputs.attached.pointers;\n return e ? e.panningSensibility : 0;\n }\n set panningSensibility(e) {\n const t = this.inputs.attached.pointers;\n t && (t.panningSensibility = e);\n }\n /**\n * Gets or Set the list of keyboard keys used to control beta angle in a positive direction.\n */\n get keysUp() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysUp : [];\n }\n set keysUp(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysUp = e);\n }\n /**\n * Gets or Set the list of keyboard keys used to control beta angle in a negative direction.\n */\n get keysDown() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysDown : [];\n }\n set keysDown(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysDown = e);\n }\n /**\n * Gets or Set the list of keyboard keys used to control alpha angle in a negative direction.\n */\n get keysLeft() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysLeft : [];\n }\n set keysLeft(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysLeft = e);\n }\n /**\n * Gets or Set the list of keyboard keys used to control alpha angle in a positive direction.\n */\n get keysRight() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysRight : [];\n }\n set keysRight(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysRight = e);\n }\n /**\n * Gets or Set the mouse wheel precision or how fast is the camera zooming.\n */\n get wheelPrecision() {\n const e = this.inputs.attached.mousewheel;\n return e ? e.wheelPrecision : 0;\n }\n set wheelPrecision(e) {\n const t = this.inputs.attached.mousewheel;\n t && (t.wheelPrecision = e);\n }\n /**\n * Gets or Set the boolean value that controls whether or not the mouse wheel\n * zooms to the location of the mouse pointer or not. The default is false.\n */\n get zoomToMouseLocation() {\n const e = this.inputs.attached.mousewheel;\n return e ? e.zoomToMouseLocation : !1;\n }\n set zoomToMouseLocation(e) {\n const t = this.inputs.attached.mousewheel;\n t && (t.zoomToMouseLocation = e);\n }\n /**\n * Gets or Set the mouse wheel delta percentage or how fast is the camera zooming.\n * It will be used instead of wheelPrecision if different from 0.\n * It defines the percentage of current camera.radius to use as delta when wheel zoom is used.\n */\n get wheelDeltaPercentage() {\n const e = this.inputs.attached.mousewheel;\n return e ? e.wheelDeltaPercentage : 0;\n }\n set wheelDeltaPercentage(e) {\n const t = this.inputs.attached.mousewheel;\n t && (t.wheelDeltaPercentage = e);\n }\n /**\n * Gets the bouncing behavior of the camera if it has been enabled.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors/cameraBehaviors#bouncing-behavior\n */\n get bouncingBehavior() {\n return this._bouncingBehavior;\n }\n /**\n * Defines if the bouncing behavior of the camera is enabled on the camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors/cameraBehaviors#bouncing-behavior\n */\n get useBouncingBehavior() {\n return this._bouncingBehavior != null;\n }\n set useBouncingBehavior(e) {\n e !== this.useBouncingBehavior && (e ? (this._bouncingBehavior = new Cl(), this.addBehavior(this._bouncingBehavior)) : this._bouncingBehavior && (this.removeBehavior(this._bouncingBehavior), this._bouncingBehavior = null));\n }\n /**\n * Gets the framing behavior of the camera if it has been enabled.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors/cameraBehaviors#framing-behavior\n */\n get framingBehavior() {\n return this._framingBehavior;\n }\n /**\n * Defines if the framing behavior of the camera is enabled on the camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors/cameraBehaviors#framing-behavior\n */\n get useFramingBehavior() {\n return this._framingBehavior != null;\n }\n set useFramingBehavior(e) {\n e !== this.useFramingBehavior && (e ? (this._framingBehavior = new Vr(), this.addBehavior(this._framingBehavior)) : this._framingBehavior && (this.removeBehavior(this._framingBehavior), this._framingBehavior = null));\n }\n /**\n * Gets the auto rotation behavior of the camera if it has been enabled.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors/cameraBehaviors#autorotation-behavior\n */\n get autoRotationBehavior() {\n return this._autoRotationBehavior;\n }\n /**\n * Defines if the auto rotation behavior of the camera is enabled on the camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors/cameraBehaviors#autorotation-behavior\n */\n get useAutoRotationBehavior() {\n return this._autoRotationBehavior != null;\n }\n set useAutoRotationBehavior(e) {\n e !== this.useAutoRotationBehavior && (e ? (this._autoRotationBehavior = new cw(), this.addBehavior(this._autoRotationBehavior)) : this._autoRotationBehavior && (this.removeBehavior(this._autoRotationBehavior), this._autoRotationBehavior = null));\n }\n /**\n * Instantiates a new ArcRotateCamera in a given scene\n * @param name Defines the name of the camera\n * @param alpha Defines the camera rotation along the longitudinal axis\n * @param beta Defines the camera rotation along the latitudinal axis\n * @param radius Defines the camera distance from its target\n * @param target Defines the camera target\n * @param scene Defines the scene the camera belongs to\n * @param setActiveOnSceneIfNoneActive Defines whether the camera should be marked as active if not other active cameras have been defined\n */\n constructor(e, t, i, s, r, n, o = !0) {\n super(e, g.Zero(), n, o), this.inertialAlphaOffset = 0, this.inertialBetaOffset = 0, this.inertialRadiusOffset = 0, this.lowerAlphaLimit = null, this.upperAlphaLimit = null, this.lowerBetaLimit = 0.01, this.upperBetaLimit = Math.PI - 0.01, this.lowerRadiusLimit = null, this.upperRadiusLimit = null, this.inertialPanningX = 0, this.inertialPanningY = 0, this.pinchToPanMaxDistance = 20, this.panningDistanceLimit = null, this.panningOriginTarget = g.Zero(), this.panningInertia = 0.9, this.zoomOnFactor = 1, this.targetScreenOffset = Q.Zero(), this.allowUpsideDown = !0, this.useInputToRestoreState = !0, this.restoreStateInterpolationFactor = 0, this._viewMatrix = new O(), this.panningAxis = new g(1, 1, 0), this._transformedDirection = new g(), this.mapPanning = !1, this._progressiveRestore = !1, this.onMeshTargetChangedObservable = new G(), this.checkCollisions = !1, this.collisionRadius = new g(0.5, 0.5, 0.5), this._previousPosition = g.Zero(), this._collisionVelocity = g.Zero(), this._newPosition = g.Zero(), this._computationVector = g.Zero(), this._onCollisionPositionChange = (l, h, c = null) => {\n c ? (this.setPosition(h), this.onCollide && this.onCollide(c)) : this._previousPosition.copyFrom(this._position);\n const u = Math.cos(this.alpha), d = Math.sin(this.alpha), f = Math.cos(this.beta);\n let p = Math.sin(this.beta);\n p === 0 && (p = 1e-4);\n const _ = this._getTargetPosition();\n this._computationVector.copyFromFloats(this.radius * u * p, this.radius * f, this.radius * d * p), _.addToRef(this._computationVector, this._newPosition), this._position.copyFrom(this._newPosition);\n let m = this.upVector;\n this.allowUpsideDown && this.beta < 0 && (m = m.clone(), m = m.negate()), this._computeViewMatrix(this._position, _, m), this._viewMatrix.addAtIndex(12, this.targetScreenOffset.x), this._viewMatrix.addAtIndex(13, this.targetScreenOffset.y), this._collisionTriggered = !1;\n }, this._target = g.Zero(), r && this.setTarget(r), this.alpha = t, this.beta = i, this.radius = s, this.getViewMatrix(), this.inputs = new Hx(this), this.inputs.addKeyboard().addMouseWheel().addPointers();\n }\n // Cache\n /** @internal */\n _initCache() {\n super._initCache(), this._cache._target = new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), this._cache.alpha = void 0, this._cache.beta = void 0, this._cache.radius = void 0, this._cache.targetScreenOffset = Q.Zero();\n }\n /**\n * @internal\n */\n _updateCache(e) {\n e || super._updateCache(), this._cache._target.copyFrom(this._getTargetPosition()), this._cache.alpha = this.alpha, this._cache.beta = this.beta, this._cache.radius = this.radius, this._cache.targetScreenOffset.copyFrom(this.targetScreenOffset);\n }\n _getTargetPosition() {\n if (this._targetHost && this._targetHost.getAbsolutePosition) {\n const t = this._targetHost.getAbsolutePosition();\n this._targetBoundingCenter ? t.addToRef(this._targetBoundingCenter, this._target) : this._target.copyFrom(t);\n }\n const e = this._getLockedTargetPosition();\n return e || this._target;\n }\n /**\n * Stores the current state of the camera (alpha, beta, radius and target)\n * @returns the camera itself\n */\n storeState() {\n return this._storedAlpha = this.alpha, this._storedBeta = this.beta, this._storedRadius = this.radius, this._storedTarget = this._getTargetPosition().clone(), this._storedTargetScreenOffset = this.targetScreenOffset.clone(), super.storeState();\n }\n /**\n * @internal\n * Restored camera state. You must call storeState() first\n */\n _restoreStateValues() {\n return this.hasStateStored() && this.restoreStateInterpolationFactor > tt && this.restoreStateInterpolationFactor < 1 ? (this._progressiveRestore = !0, this.inertialAlphaOffset = 0, this.inertialBetaOffset = 0, this.inertialRadiusOffset = 0, this.inertialPanningX = 0, this.inertialPanningY = 0, !0) : super._restoreStateValues() ? (this.setTarget(this._storedTarget.clone()), this.alpha = this._storedAlpha, this.beta = this._storedBeta, this.radius = this._storedRadius, this.targetScreenOffset = this._storedTargetScreenOffset.clone(), this.inertialAlphaOffset = 0, this.inertialBetaOffset = 0, this.inertialRadiusOffset = 0, this.inertialPanningX = 0, this.inertialPanningY = 0, !0) : !1;\n }\n // Synchronized\n /** @internal */\n _isSynchronizedViewMatrix() {\n return super._isSynchronizedViewMatrix() ? this._cache._target.equals(this._getTargetPosition()) && this._cache.alpha === this.alpha && this._cache.beta === this.beta && this._cache.radius === this.radius && this._cache.targetScreenOffset.equals(this.targetScreenOffset) : !1;\n }\n /**\n * Attached controls to the current camera.\n * @param ignored defines an ignored parameter kept for backward compatibility.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n * @param useCtrlForPanning Defines whether ctrl is used for panning within the controls\n * @param panningMouseButton Defines whether panning is allowed through mouse click button\n */\n attachControl(e, t, i = !0, s = 2) {\n const r = arguments;\n t = J.BackCompatCameraNoPreventDefault(r), this._useCtrlForPanning = i, this._panningMouseButton = s, typeof r[0] == \"boolean\" && (r.length > 1 && (this._useCtrlForPanning = r[1]), r.length > 2 && (this._panningMouseButton = r[2])), this.inputs.attachElement(t), this._reset = () => {\n this.inertialAlphaOffset = 0, this.inertialBetaOffset = 0, this.inertialRadiusOffset = 0, this.inertialPanningX = 0, this.inertialPanningY = 0;\n };\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this.inputs.detachElement(), this._reset && this._reset();\n }\n /** @internal */\n _checkInputs() {\n if (!this._collisionTriggered) {\n if (this.inputs.checkInputs(), this._progressiveRestore) {\n const e = this._scene.getEngine().getDeltaTime() / 1e3, t = 1 - Math.pow(2, -e / this.restoreStateInterpolationFactor);\n this.setTarget(g.Lerp(this.getTarget(), this._storedTarget, t)), se.RotationAlphaBetaGammaToRef(this._storedAlpha, this._storedBeta, 0, w.Quaternion[0]), se.RotationAlphaBetaGammaToRef(this.alpha, this.beta, 0, w.Quaternion[1]), se.SlerpToRef(w.Quaternion[1], w.Quaternion[0], t, w.Quaternion[2]), w.Quaternion[2].normalize(), w.Quaternion[2].toAlphaBetaGammaToRef(w.Vector3[0]), this.alpha = w.Vector3[0].x, this.beta = w.Vector3[0].y, this.radius += (this._storedRadius - this.radius) * t, Q.LerpToRef(this.targetScreenOffset, this._storedTargetScreenOffset, t, this.targetScreenOffset), (g.DistanceSquared(this.getTarget(), this._storedTarget) < tt && w.Quaternion[2].equalsWithEpsilon(w.Quaternion[0]) && Math.pow(this._storedRadius - this.radius, 2) < tt && Q.Distance(this.targetScreenOffset, this._storedTargetScreenOffset) < tt || this.inertialAlphaOffset !== 0 || this.inertialBetaOffset !== 0 || this.inertialRadiusOffset !== 0 || this.inertialPanningX !== 0 || this.inertialPanningY !== 0) && (this._progressiveRestore = !1);\n }\n if (this.inertialAlphaOffset !== 0 || this.inertialBetaOffset !== 0 || this.inertialRadiusOffset !== 0) {\n const e = this.invertRotation ? -1 : 1, t = this._calculateHandednessMultiplier();\n let i = this.inertialAlphaOffset * t;\n this.beta < 0 && (i *= -1), this.alpha += i * e, this.beta += this.inertialBetaOffset * e, this.radius -= this.inertialRadiusOffset, this.inertialAlphaOffset *= this.inertia, this.inertialBetaOffset *= this.inertia, this.inertialRadiusOffset *= this.inertia, Math.abs(this.inertialAlphaOffset) < tt && (this.inertialAlphaOffset = 0), Math.abs(this.inertialBetaOffset) < tt && (this.inertialBetaOffset = 0), Math.abs(this.inertialRadiusOffset) < this.speed * tt && (this.inertialRadiusOffset = 0);\n }\n if (this.inertialPanningX !== 0 || this.inertialPanningY !== 0) {\n const e = new g(this.inertialPanningX, this.inertialPanningY, this.inertialPanningY);\n if (this._viewMatrix.invertToRef(this._cameraTransformMatrix), e.multiplyInPlace(this.panningAxis), g.TransformNormalToRef(e, this._cameraTransformMatrix, this._transformedDirection), this.mapPanning) {\n const t = this.upVector, i = g.CrossToRef(this._transformedDirection, t, this._transformedDirection);\n g.CrossToRef(t, i, this._transformedDirection);\n } else this.panningAxis.y || (this._transformedDirection.y = 0);\n if (!this._targetHost)\n if (this.panningDistanceLimit)\n this._transformedDirection.addInPlace(this._target), g.DistanceSquared(this._transformedDirection, this.panningOriginTarget) <= this.panningDistanceLimit * this.panningDistanceLimit && this._target.copyFrom(this._transformedDirection);\n else {\n if (this.parent) {\n const t = w.Matrix[0];\n this.parent.getWorldMatrix().getRotationMatrixToRef(t), t.transposeToRef(t), g.TransformCoordinatesToRef(this._transformedDirection, t, this._transformedDirection);\n }\n this._target.addInPlace(this._transformedDirection);\n }\n this.inertialPanningX *= this.panningInertia, this.inertialPanningY *= this.panningInertia, Math.abs(this.inertialPanningX) < this.speed * tt && (this.inertialPanningX = 0), Math.abs(this.inertialPanningY) < this.speed * tt && (this.inertialPanningY = 0);\n }\n this._checkLimits(), super._checkInputs();\n }\n }\n _checkLimits() {\n this.lowerBetaLimit === null || this.lowerBetaLimit === void 0 ? this.allowUpsideDown && this.beta > Math.PI && (this.beta = this.beta - 2 * Math.PI) : this.beta < this.lowerBetaLimit && (this.beta = this.lowerBetaLimit), this.upperBetaLimit === null || this.upperBetaLimit === void 0 ? this.allowUpsideDown && this.beta < -Math.PI && (this.beta = this.beta + 2 * Math.PI) : this.beta > this.upperBetaLimit && (this.beta = this.upperBetaLimit), this.lowerAlphaLimit !== null && this.alpha < this.lowerAlphaLimit && (this.alpha = this.lowerAlphaLimit), this.upperAlphaLimit !== null && this.alpha > this.upperAlphaLimit && (this.alpha = this.upperAlphaLimit), this.lowerRadiusLimit !== null && this.radius < this.lowerRadiusLimit && (this.radius = this.lowerRadiusLimit, this.inertialRadiusOffset = 0), this.upperRadiusLimit !== null && this.radius > this.upperRadiusLimit && (this.radius = this.upperRadiusLimit, this.inertialRadiusOffset = 0);\n }\n /**\n * Rebuilds angles (alpha, beta) and radius from the give position and target\n */\n rebuildAnglesAndRadius() {\n this._position.subtractToRef(this._getTargetPosition(), this._computationVector), (this._upVector.x !== 0 || this._upVector.y !== 1 || this._upVector.z !== 0) && g.TransformCoordinatesToRef(this._computationVector, this._upToYMatrix, this._computationVector), this.radius = this._computationVector.length(), this.radius === 0 && (this.radius = 1e-4);\n const e = this.alpha;\n this._computationVector.x === 0 && this._computationVector.z === 0 ? this.alpha = Math.PI / 2 : this.alpha = Math.acos(this._computationVector.x / Math.sqrt(Math.pow(this._computationVector.x, 2) + Math.pow(this._computationVector.z, 2))), this._computationVector.z < 0 && (this.alpha = 2 * Math.PI - this.alpha);\n const t = Math.round((e - this.alpha) / (2 * Math.PI));\n this.alpha += t * 2 * Math.PI, this.beta = Math.acos(this._computationVector.y / this.radius), this._checkLimits();\n }\n /**\n * Use a position to define the current camera related information like alpha, beta and radius\n * @param position Defines the position to set the camera at\n */\n setPosition(e) {\n this._position.equals(e) || (this._position.copyFrom(e), this.rebuildAnglesAndRadius());\n }\n /**\n * Defines the target the camera should look at.\n * This will automatically adapt alpha beta and radius to fit within the new target.\n * Please note that setting a target as a mesh will disable panning.\n * @param target Defines the new target as a Vector or a transform node\n * @param toBoundingCenter In case of a mesh target, defines whether to target the mesh position or its bounding information center\n * @param allowSamePosition If false, prevents reapplying the new computed position if it is identical to the current one (optim)\n * @param cloneAlphaBetaRadius If true, replicate the current setup (alpha, beta, radius) on the new target\n */\n setTarget(e, t = !1, i = !1, s = !1) {\n if (s = this.overrideCloneAlphaBetaRadius ?? s, e.computeWorldMatrix)\n t && e.getBoundingInfo ? this._targetBoundingCenter = e.getBoundingInfo().boundingBox.centerWorld.clone() : this._targetBoundingCenter = null, e.computeWorldMatrix(), this._targetHost = e, this._target = this._getTargetPosition(), this.onMeshTargetChangedObservable.notifyObservers(this._targetHost);\n else {\n const r = e, n = this._getTargetPosition();\n if (n && !i && n.equals(r))\n return;\n this._targetHost = null, this._target = r, this._targetBoundingCenter = null, this.onMeshTargetChangedObservable.notifyObservers(null);\n }\n s || this.rebuildAnglesAndRadius();\n }\n /** @internal */\n _getViewMatrix() {\n const e = Math.cos(this.alpha), t = Math.sin(this.alpha), i = Math.cos(this.beta);\n let s = Math.sin(this.beta);\n s === 0 && (s = 1e-4), this.radius === 0 && (this.radius = 1e-4);\n const r = this._getTargetPosition();\n if (this._computationVector.copyFromFloats(this.radius * e * s, this.radius * i, this.radius * t * s), (this._upVector.x !== 0 || this._upVector.y !== 1 || this._upVector.z !== 0) && g.TransformCoordinatesToRef(this._computationVector, this._yToUpMatrix, this._computationVector), r.addToRef(this._computationVector, this._newPosition), this.getScene().collisionsEnabled && this.checkCollisions) {\n const n = this.getScene().collisionCoordinator;\n this._collider || (this._collider = n.createCollider()), this._collider._radius = this.collisionRadius, this._newPosition.subtractToRef(this._position, this._collisionVelocity), this._collisionTriggered = !0, n.getNewPosition(this._position, this._collisionVelocity, this._collider, 3, null, this._onCollisionPositionChange, this.uniqueId);\n } else {\n this._position.copyFrom(this._newPosition);\n let n = this.upVector;\n this.allowUpsideDown && s < 0 && (n = n.negate()), this._computeViewMatrix(this._position, r, n), this._viewMatrix.addAtIndex(12, this.targetScreenOffset.x), this._viewMatrix.addAtIndex(13, this.targetScreenOffset.y);\n }\n return this._currentTarget = r, this._viewMatrix;\n }\n /**\n * Zooms on a mesh to be at the min distance where we could see it fully in the current viewport.\n * @param meshes Defines the mesh to zoom on\n * @param doNotUpdateMaxZ Defines whether or not maxZ should be updated whilst zooming on the mesh (this can happen if the mesh is big and the maxradius pretty small for instance)\n */\n zoomOn(e, t = !1) {\n e = e || this.getScene().meshes;\n const i = H.MinMax(e);\n let s = this._calculateLowerRadiusFromModelBoundingSphere(i.min, i.max);\n s = Math.max(Math.min(s, this.upperRadiusLimit || Number.MAX_VALUE), this.lowerRadiusLimit || 0), this.radius = s * this.zoomOnFactor, this.focusOn({ min: i.min, max: i.max, distance: s }, t);\n }\n /**\n * Focus on a mesh or a bounding box. This adapts the target and maxRadius if necessary but does not update the current radius.\n * The target will be changed but the radius\n * @param meshesOrMinMaxVectorAndDistance Defines the mesh or bounding info to focus on\n * @param doNotUpdateMaxZ Defines whether or not maxZ should be updated whilst zooming on the mesh (this can happen if the mesh is big and the maxradius pretty small for instance)\n */\n focusOn(e, t = !1) {\n let i, s;\n if (e.min === void 0) {\n const r = e || this.getScene().meshes;\n i = H.MinMax(r), s = g.Distance(i.min, i.max);\n } else {\n const r = e;\n i = r, s = r.distance;\n }\n this._target = H.Center(i), t || (this.maxZ = s * 2);\n }\n /**\n * @override\n * Override Camera.createRigCamera\n * @param name the name of the camera\n * @param cameraIndex the index of the camera in the rig cameras array\n */\n createRigCamera(e, t) {\n let i = 0;\n switch (this.cameraRigMode) {\n case Fe.RIG_MODE_STEREOSCOPIC_ANAGLYPH:\n case Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:\n case Fe.RIG_MODE_STEREOSCOPIC_OVERUNDER:\n case Fe.RIG_MODE_STEREOSCOPIC_INTERLACED:\n case Fe.RIG_MODE_VR:\n i = this._cameraRigParams.stereoHalfAngle * (t === 0 ? 1 : -1);\n break;\n case Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:\n i = this._cameraRigParams.stereoHalfAngle * (t === 0 ? -1 : 1);\n break;\n }\n const s = new ri(e, this.alpha + i, this.beta, this.radius, this._target, this.getScene());\n return s._cameraRigParams = {}, s.isRigCamera = !0, s.rigParent = this, s.upVector = this.upVector, s.mode = this.mode, s.orthoLeft = this.orthoLeft, s.orthoRight = this.orthoRight, s.orthoBottom = this.orthoBottom, s.orthoTop = this.orthoTop, s;\n }\n /**\n * @internal\n * @override\n * Override Camera._updateRigCameras\n */\n _updateRigCameras() {\n const e = this._rigCameras[0], t = this._rigCameras[1];\n switch (e.beta = t.beta = this.beta, this.cameraRigMode) {\n case Fe.RIG_MODE_STEREOSCOPIC_ANAGLYPH:\n case Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:\n case Fe.RIG_MODE_STEREOSCOPIC_OVERUNDER:\n case Fe.RIG_MODE_STEREOSCOPIC_INTERLACED:\n case Fe.RIG_MODE_VR:\n e.alpha = this.alpha - this._cameraRigParams.stereoHalfAngle, t.alpha = this.alpha + this._cameraRigParams.stereoHalfAngle;\n break;\n case Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:\n e.alpha = this.alpha + this._cameraRigParams.stereoHalfAngle, t.alpha = this.alpha - this._cameraRigParams.stereoHalfAngle;\n break;\n }\n super._updateRigCameras();\n }\n /**\n * @internal\n */\n _calculateLowerRadiusFromModelBoundingSphere(e, t, i = 1) {\n const s = g.Distance(e, t), n = this.getScene().getEngine().getAspectRatio(this), o = Math.tan(this.fov / 2), l = o * n, c = s * 0.5 * i, u = c * Math.sqrt(1 + 1 / (l * l)), d = c * Math.sqrt(1 + 1 / (o * o));\n return Math.max(u, d);\n }\n /**\n * Destroy the camera and release the current resources hold by it.\n */\n dispose() {\n this.inputs.clear(), super.dispose();\n }\n /**\n * Gets the current object class name.\n * @returns the class name\n */\n getClassName() {\n return \"ArcRotateCamera\";\n }\n}\ny([\n I()\n], ri.prototype, \"alpha\", void 0);\ny([\n I()\n], ri.prototype, \"beta\", void 0);\ny([\n I()\n], ri.prototype, \"radius\", void 0);\ny([\n I()\n], ri.prototype, \"overrideCloneAlphaBetaRadius\", void 0);\ny([\n Zs(\"target\")\n], ri.prototype, \"_target\", void 0);\ny([\n af(\"targetHost\")\n], ri.prototype, \"_targetHost\", void 0);\ny([\n I()\n], ri.prototype, \"inertialAlphaOffset\", void 0);\ny([\n I()\n], ri.prototype, \"inertialBetaOffset\", void 0);\ny([\n I()\n], ri.prototype, \"inertialRadiusOffset\", void 0);\ny([\n I()\n], ri.prototype, \"lowerAlphaLimit\", void 0);\ny([\n I()\n], ri.prototype, \"upperAlphaLimit\", void 0);\ny([\n I()\n], ri.prototype, \"lowerBetaLimit\", void 0);\ny([\n I()\n], ri.prototype, \"upperBetaLimit\", void 0);\ny([\n I()\n], ri.prototype, \"lowerRadiusLimit\", void 0);\ny([\n I()\n], ri.prototype, \"upperRadiusLimit\", void 0);\ny([\n I()\n], ri.prototype, \"inertialPanningX\", void 0);\ny([\n I()\n], ri.prototype, \"inertialPanningY\", void 0);\ny([\n I()\n], ri.prototype, \"pinchToPanMaxDistance\", void 0);\ny([\n I()\n], ri.prototype, \"panningDistanceLimit\", void 0);\ny([\n Zs()\n], ri.prototype, \"panningOriginTarget\", void 0);\ny([\n I()\n], ri.prototype, \"panningInertia\", void 0);\ny([\n I()\n], ri.prototype, \"zoomToMouseLocation\", null);\ny([\n I()\n], ri.prototype, \"zoomOnFactor\", void 0);\ny([\n bx()\n], ri.prototype, \"targetScreenOffset\", void 0);\ny([\n I()\n], ri.prototype, \"allowUpsideDown\", void 0);\ny([\n I()\n], ri.prototype, \"useInputToRestoreState\", void 0);\ny([\n I()\n], ri.prototype, \"restoreStateInterpolationFactor\", void 0);\nU(\"BABYLON.ArcRotateCamera\", ri);\nclass Ca {\n /**\n * Creates a new default loading screen\n * @param _renderingCanvas defines the canvas used to render the scene\n * @param _loadingText defines the default text to display\n * @param _loadingDivBackgroundColor defines the default background color\n */\n constructor(e, t = \"\", i = \"black\") {\n this._renderingCanvas = e, this._loadingText = t, this._loadingDivBackgroundColor = i, this._resizeLoadingUI = () => {\n const s = this._renderingCanvas.getBoundingClientRect(), r = window.getComputedStyle(this._renderingCanvas).position;\n this._loadingDiv && (this._loadingDiv.style.position = r === \"fixed\" ? \"fixed\" : \"absolute\", this._loadingDiv.style.left = s.left + \"px\", this._loadingDiv.style.top = s.top + \"px\", this._loadingDiv.style.width = s.width + \"px\", this._loadingDiv.style.height = s.height + \"px\");\n };\n }\n /**\n * Function called to display the loading screen\n */\n displayLoadingUI() {\n if (this._loadingDiv)\n return;\n this._loadingDiv = document.createElement(\"div\"), this._loadingDiv.id = \"babylonjsLoadingDiv\", this._loadingDiv.style.opacity = \"0\", this._loadingDiv.style.transition = \"opacity 1.5s ease\", this._loadingDiv.style.pointerEvents = \"none\", this._loadingDiv.style.display = \"grid\", this._loadingDiv.style.gridTemplateRows = \"100%\", this._loadingDiv.style.gridTemplateColumns = \"100%\", this._loadingDiv.style.justifyItems = \"center\", this._loadingDiv.style.alignItems = \"center\", this._loadingTextDiv = document.createElement(\"div\"), this._loadingTextDiv.style.position = \"absolute\", this._loadingTextDiv.style.left = \"0\", this._loadingTextDiv.style.top = \"50%\", this._loadingTextDiv.style.marginTop = \"80px\", this._loadingTextDiv.style.width = \"100%\", this._loadingTextDiv.style.height = \"20px\", this._loadingTextDiv.style.fontFamily = \"Arial\", this._loadingTextDiv.style.fontSize = \"14px\", this._loadingTextDiv.style.color = \"white\", this._loadingTextDiv.style.textAlign = \"center\", this._loadingTextDiv.style.zIndex = \"1\", this._loadingTextDiv.innerHTML = \"Loading\", this._loadingDiv.appendChild(this._loadingTextDiv), this._loadingTextDiv.innerHTML = this._loadingText, this._style = document.createElement(\"style\"), this._style.type = \"text/css\";\n const e = `@-webkit-keyframes spin1 { 0% { -webkit-transform: rotate(0deg);}\n 100% { -webkit-transform: rotate(360deg);}\n } @keyframes spin1 { 0% { transform: rotate(0deg);}\n 100% { transform: rotate(360deg);}\n }`;\n this._style.innerHTML = e, document.getElementsByTagName(\"head\")[0].appendChild(this._style);\n const t = !!window.SVGSVGElement, i = new Image();\n Ca.DefaultLogoUrl ? i.src = Ca.DefaultLogoUrl : i.src = t ? \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxODAuMTcgMjA4LjA0Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6I2UwNjg0Yjt9LmNscy0ze2ZpbGw6I2JiNDY0Yjt9LmNscy00e2ZpbGw6I2UwZGVkODt9LmNscy01e2ZpbGw6I2Q1ZDJjYTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPkJhYnlsb25Mb2dvPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iUGFnZV9FbGVtZW50cyIgZGF0YS1uYW1lPSJQYWdlIEVsZW1lbnRzIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik05MC4wOSwwLDAsNTJWMTU2bDkwLjA5LDUyLDkwLjA4LTUyVjUyWiIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIxODAuMTcgNTIuMDEgMTUxLjk3IDM1LjczIDEyNC44NSA1MS4zOSAxNTMuMDUgNjcuNjcgMTgwLjE3IDUyLjAxIi8+PHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjI3LjEyIDY3LjY3IDExNy4yMSAxNS42NiA5MC4wOCAwIDAgNTIuMDEgMjcuMTIgNjcuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iNjEuODkgMTIwLjMgOTAuMDggMTM2LjU4IDExOC4yOCAxMjAuMyA5MC4wOCAxMDQuMDIgNjEuODkgMTIwLjMiLz48cG9seWdvbiBjbGFzcz0iY2xzLTMiIHBvaW50cz0iMTUzLjA1IDY3LjY3IDE1My4wNSAxNDAuMzcgOTAuMDggMTc2LjcyIDI3LjEyIDE0MC4zNyAyNy4xMiA2Ny42NyAwIDUyLjAxIDAgMTU2LjAzIDkwLjA4IDIwOC4wNCAxODAuMTcgMTU2LjAzIDE4MC4xNyA1Mi4wMSAxNTMuMDUgNjcuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTMiIHBvaW50cz0iOTAuMDggNzEuNDYgNjEuODkgODcuNzQgNjEuODkgMTIwLjMgOTAuMDggMTA0LjAyIDExOC4yOCAxMjAuMyAxMTguMjggODcuNzQgOTAuMDggNzEuNDYiLz48cG9seWdvbiBjbGFzcz0iY2xzLTQiIHBvaW50cz0iMTUzLjA1IDY3LjY3IDExOC4yOCA4Ny43NCAxMTguMjggMTIwLjMgOTAuMDggMTM2LjU4IDkwLjA4IDE3Ni43MiAxNTMuMDUgMTQwLjM3IDE1My4wNSA2Ny42NyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtNSIgcG9pbnRzPSIyNy4xMiA2Ny42NyA2MS44OSA4Ny43NCA2MS44OSAxMjAuMyA5MC4wOCAxMzYuNTggOTAuMDggMTc2LjcyIDI3LjEyIDE0MC4zNyAyNy4xMiA2Ny42NyIvPjwvZz48L2c+PC9zdmc+\" : \"https://cdn.babylonjs.com/Assets/babylonLogo.png\", i.style.width = \"150px\", i.style.gridColumn = \"1\", i.style.gridRow = \"1\", i.style.top = \"50%\", i.style.left = \"50%\", i.style.transform = \"translate(-50%, -50%)\", i.style.position = \"absolute\";\n const s = document.createElement(\"div\");\n s.style.width = \"300px\", s.style.gridColumn = \"1\", s.style.gridRow = \"1\", s.style.top = \"50%\", s.style.left = \"50%\", s.style.transform = \"translate(-50%, -50%)\", s.style.position = \"absolute\";\n const r = new Image();\n if (Ca.DefaultSpinnerUrl ? r.src = Ca.DefaultSpinnerUrl : r.src = t ? \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzOTIgMzkyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2UwNjg0Yjt9LmNscy0ye2ZpbGw6bm9uZTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPlNwaW5uZXJJY29uPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iU3Bpbm5lciI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDAuMjEsMTI2LjQzYzMuNy03LjMxLDcuNjctMTQuNDQsMTItMjEuMzJsMy4zNi01LjEsMy41Mi01YzEuMjMtMS42MywyLjQxLTMuMjksMy42NS00LjkxczIuNTMtMy4yMSwzLjgyLTQuNzlBMTg1LjIsMTg1LjIsMCwwLDEsODMuNCw2Ny40M2EyMDgsMjA4LDAsMCwxLDE5LTE1LjY2YzMuMzUtMi40MSw2Ljc0LTQuNzgsMTAuMjUtN3M3LjExLTQuMjgsMTAuNzUtNi4zMmM3LjI5LTQsMTQuNzMtOCwyMi41My0xMS40OSwzLjktMS43Miw3Ljg4LTMuMywxMi00LjY0YTEwNC4yMiwxMDQuMjIsMCwwLDEsMTIuNDQtMy4yMyw2Mi40NCw2Mi40NCwwLDAsMSwxMi43OC0xLjM5QTI1LjkyLDI1LjkyLDAsMCwxLDE5NiwyMS40NGE2LjU1LDYuNTUsMCwwLDEsMi4wNSw5LDYuNjYsNi42NiwwLDAsMS0xLjY0LDEuNzhsLS40MS4yOWEyMi4wNywyMi4wNywwLDAsMS01Ljc4LDMsMzAuNDIsMzAuNDIsMCwwLDEtNS42NywxLjYyLDM3LjgyLDM3LjgyLDAsMCwxLTUuNjkuNzFjLTEsMC0xLjkuMTgtMi44NS4yNmwtMi44NS4yNHEtNS43Mi41MS0xMS40OCwxLjFjLTMuODQuNC03LjcxLjgyLTExLjU4LDEuNGExMTIuMzQsMTEyLjM0LDAsMCwwLTIyLjk0LDUuNjFjLTMuNzIsMS4zNS03LjM0LDMtMTAuOTQsNC42NHMtNy4xNCwzLjUxLTEwLjYsNS41MUExNTEuNiwxNTEuNiwwLDAsMCw2OC41Niw4N0M2Ny4yMyw4OC40OCw2Niw5MCw2NC42NCw5MS41NnMtMi41MSwzLjE1LTMuNzUsNC43M2wtMy41NCw0LjljLTEuMTMsMS42Ni0yLjIzLDMuMzUtMy4zMyw1YTEyNywxMjcsMCwwLDAtMTAuOTMsMjEuNDksMS41OCwxLjU4LDAsMSwxLTMtMS4xNVM0MC4xOSwxMjYuNDcsNDAuMjEsMTI2LjQzWiIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgd2lkdGg9IjM5MiIgaGVpZ2h0PSIzOTIiLz48L2c+PC9nPjwvc3ZnPg==\" : \"https://cdn.babylonjs.com/Assets/loadingIcon.png\", r.style.animation = \"spin1 0.75s infinite linear\", r.style.webkitAnimation = \"spin1 0.75s infinite linear\", r.style.transformOrigin = \"50% 50%\", r.style.webkitTransformOrigin = \"50% 50%\", !t) {\n const n = { w: 16, h: 18.5 }, o = { w: 30, h: 30 };\n i.style.width = `${n.w}vh`, i.style.height = `${n.h}vh`, i.style.left = `calc(50% - ${n.w / 2}vh)`, i.style.top = `calc(50% - ${n.h / 2}vh)`, r.style.width = `${o.w}vh`, r.style.height = `${o.h}vh`, r.style.left = `calc(50% - ${o.w / 2}vh)`, r.style.top = `calc(50% - ${o.h / 2}vh)`;\n }\n s.appendChild(r), this._loadingDiv.appendChild(i), this._loadingDiv.appendChild(s), this._resizeLoadingUI(), window.addEventListener(\"resize\", this._resizeLoadingUI), this._loadingDiv.style.backgroundColor = this._loadingDivBackgroundColor, document.body.appendChild(this._loadingDiv), this._loadingDiv.style.opacity = \"1\";\n }\n /**\n * Function called to hide the loading screen\n */\n hideLoadingUI() {\n if (!this._loadingDiv)\n return;\n const e = () => {\n this._loadingTextDiv && (this._loadingTextDiv.remove(), this._loadingTextDiv = null), this._loadingDiv && (this._loadingDiv.remove(), this._loadingDiv = null), this._style && (this._style.remove(), this._style = null), window.removeEventListener(\"resize\", this._resizeLoadingUI);\n };\n this._loadingDiv.style.opacity = \"0\", this._loadingDiv.addEventListener(\"transitionend\", e);\n }\n /**\n * Gets or sets the text to display while loading\n */\n set loadingUIText(e) {\n this._loadingText = e, this._loadingTextDiv && (this._loadingTextDiv.innerHTML = this._loadingText);\n }\n get loadingUIText() {\n return this._loadingText;\n }\n /**\n * Gets or sets the color to use for the background\n */\n get loadingUIBackgroundColor() {\n return this._loadingDivBackgroundColor;\n }\n set loadingUIBackgroundColor(e) {\n this._loadingDivBackgroundColor = e, this._loadingDiv && (this._loadingDiv.style.backgroundColor = this._loadingDivBackgroundColor);\n }\n}\nCa.DefaultLogoUrl = \"\";\nCa.DefaultSpinnerUrl = \"\";\nwe.DefaultLoadingScreenFactory = (a) => new Ca(a);\nclass nt {\n /**\n * Creates a new ray\n * @param origin origin point\n * @param direction direction\n * @param length length of the ray\n * @param epsilon The epsilon value to use when calculating the ray/triangle intersection (default: 0)\n */\n constructor(e, t, i = Number.MAX_VALUE, s = tt) {\n this.origin = e, this.direction = t, this.length = i, this.epsilon = s;\n }\n // Methods\n /**\n * Clone the current ray\n * @returns a new ray\n */\n clone() {\n return new nt(this.origin.clone(), this.direction.clone(), this.length);\n }\n /**\n * Checks if the ray intersects a box\n * This does not account for the ray length by design to improve perfs.\n * @param minimum bound of the box\n * @param maximum bound of the box\n * @param intersectionTreshold extra extend to be added to the box in all direction\n * @returns if the box was hit\n */\n intersectsBoxMinMax(e, t, i = 0) {\n const s = nt._TmpVector3[0].copyFromFloats(e.x - i, e.y - i, e.z - i), r = nt._TmpVector3[1].copyFromFloats(t.x + i, t.y + i, t.z + i);\n let n = 0, o = Number.MAX_VALUE, l, h, c, u;\n if (Math.abs(this.direction.x) < 1e-7) {\n if (this.origin.x < s.x || this.origin.x > r.x)\n return !1;\n } else if (l = 1 / this.direction.x, h = (s.x - this.origin.x) * l, c = (r.x - this.origin.x) * l, c === -1 / 0 && (c = 1 / 0), h > c && (u = h, h = c, c = u), n = Math.max(h, n), o = Math.min(c, o), n > o)\n return !1;\n if (Math.abs(this.direction.y) < 1e-7) {\n if (this.origin.y < s.y || this.origin.y > r.y)\n return !1;\n } else if (l = 1 / this.direction.y, h = (s.y - this.origin.y) * l, c = (r.y - this.origin.y) * l, c === -1 / 0 && (c = 1 / 0), h > c && (u = h, h = c, c = u), n = Math.max(h, n), o = Math.min(c, o), n > o)\n return !1;\n if (Math.abs(this.direction.z) < 1e-7) {\n if (this.origin.z < s.z || this.origin.z > r.z)\n return !1;\n } else if (l = 1 / this.direction.z, h = (s.z - this.origin.z) * l, c = (r.z - this.origin.z) * l, c === -1 / 0 && (c = 1 / 0), h > c && (u = h, h = c, c = u), n = Math.max(h, n), o = Math.min(c, o), n > o)\n return !1;\n return !0;\n }\n /**\n * Checks if the ray intersects a box\n * This does not account for the ray lenght by design to improve perfs.\n * @param box the bounding box to check\n * @param intersectionTreshold extra extend to be added to the BoundingBox in all direction\n * @returns if the box was hit\n */\n intersectsBox(e, t = 0) {\n return this.intersectsBoxMinMax(e.minimum, e.maximum, t);\n }\n /**\n * If the ray hits a sphere\n * @param sphere the bounding sphere to check\n * @param intersectionTreshold extra extend to be added to the BoundingSphere in all direction\n * @returns true if it hits the sphere\n */\n intersectsSphere(e, t = 0) {\n const i = e.center.x - this.origin.x, s = e.center.y - this.origin.y, r = e.center.z - this.origin.z, n = i * i + s * s + r * r, o = e.radius + t, l = o * o;\n if (n <= l)\n return !0;\n const h = i * this.direction.x + s * this.direction.y + r * this.direction.z;\n return h < 0 ? !1 : n - h * h <= l;\n }\n /**\n * If the ray hits a triange\n * @param vertex0 triangle vertex\n * @param vertex1 triangle vertex\n * @param vertex2 triangle vertex\n * @returns intersection information if hit\n */\n intersectsTriangle(e, t, i) {\n const s = nt._TmpVector3[0], r = nt._TmpVector3[1], n = nt._TmpVector3[2], o = nt._TmpVector3[3], l = nt._TmpVector3[4];\n t.subtractToRef(e, s), i.subtractToRef(e, r), g.CrossToRef(this.direction, r, n);\n const h = g.Dot(s, n);\n if (h === 0)\n return null;\n const c = 1 / h;\n this.origin.subtractToRef(e, o);\n const u = g.Dot(o, n) * c;\n if (u < -this.epsilon || u > 1 + this.epsilon)\n return null;\n g.CrossToRef(o, s, l);\n const d = g.Dot(this.direction, l) * c;\n if (d < -this.epsilon || u + d > 1 + this.epsilon)\n return null;\n const f = g.Dot(r, l) * c;\n return f > this.length ? null : new Ag(1 - u - d, u, f);\n }\n /**\n * Checks if ray intersects a plane\n * @param plane the plane to check\n * @returns the distance away it was hit\n */\n intersectsPlane(e) {\n let t;\n const i = g.Dot(e.normal, this.direction);\n if (Math.abs(i) < 999999997475243e-21)\n return null;\n {\n const s = g.Dot(e.normal, this.origin);\n return t = (-e.d - s) / i, t < 0 ? t < -999999997475243e-21 ? null : 0 : t;\n }\n }\n /**\n * Calculate the intercept of a ray on a given axis\n * @param axis to check 'x' | 'y' | 'z'\n * @param offset from axis interception (i.e. an offset of 1y is intercepted above ground)\n * @returns a vector containing the coordinates where 'axis' is equal to zero (else offset), or null if there is no intercept.\n */\n intersectsAxis(e, t = 0) {\n switch (e) {\n case \"y\": {\n const i = (this.origin.y - t) / this.direction.y;\n return i > 0 ? null : new g(this.origin.x + this.direction.x * -i, t, this.origin.z + this.direction.z * -i);\n }\n case \"x\": {\n const i = (this.origin.x - t) / this.direction.x;\n return i > 0 ? null : new g(t, this.origin.y + this.direction.y * -i, this.origin.z + this.direction.z * -i);\n }\n case \"z\": {\n const i = (this.origin.z - t) / this.direction.z;\n return i > 0 ? null : new g(this.origin.x + this.direction.x * -i, this.origin.y + this.direction.y * -i, t);\n }\n default:\n return null;\n }\n }\n /**\n * Checks if ray intersects a mesh. The ray is defined in WORLD space. A mesh triangle can be picked both from its front and back sides,\n * irrespective of orientation.\n * @param mesh the mesh to check\n * @param fastCheck defines if the first intersection will be used (and not the closest)\n * @param trianglePredicate defines an optional predicate used to select faces when a mesh intersection is detected\n * @param onlyBoundingInfo defines a boolean indicating if picking should only happen using bounding info (false by default)\n * @param worldToUse defines the world matrix to use to get the world coordinate of the intersection point\n * @param skipBoundingInfo a boolean indicating if we should skip the bounding info check\n * @returns picking info of the intersection\n */\n intersectsMesh(e, t, i, s = !1, r, n = !1) {\n const o = w.Matrix[0];\n return e.getWorldMatrix().invertToRef(o), this._tmpRay ? nt.TransformToRef(this, o, this._tmpRay) : this._tmpRay = nt.Transform(this, o), e.intersects(this._tmpRay, t, i, s, r, n);\n }\n /**\n * Checks if ray intersects a mesh\n * @param meshes the meshes to check\n * @param fastCheck defines if the first intersection will be used (and not the closest)\n * @param results array to store result in\n * @returns Array of picking infos\n */\n intersectsMeshes(e, t, i) {\n i ? i.length = 0 : i = [];\n for (let s = 0; s < e.length; s++) {\n const r = this.intersectsMesh(e[s], t);\n r.hit && i.push(r);\n }\n return i.sort(this._comparePickingInfo), i;\n }\n _comparePickingInfo(e, t) {\n return e.distance < t.distance ? -1 : e.distance > t.distance ? 1 : 0;\n }\n /**\n * Intersection test between the ray and a given segment within a given tolerance (threshold)\n * @param sega the first point of the segment to test the intersection against\n * @param segb the second point of the segment to test the intersection against\n * @param threshold the tolerance margin, if the ray doesn't intersect the segment but is close to the given threshold, the intersection is successful\n * @returns the distance from the ray origin to the intersection point if there's intersection, or -1 if there's no intersection\n */\n intersectionSegment(e, t, i) {\n const s = this.origin, r = w.Vector3[0], n = w.Vector3[1], o = w.Vector3[2], l = w.Vector3[3];\n t.subtractToRef(e, r), this.direction.scaleToRef(nt._Rayl, o), s.addToRef(o, n), e.subtractToRef(s, l);\n const h = g.Dot(r, r), c = g.Dot(r, o), u = g.Dot(o, o), d = g.Dot(r, l), f = g.Dot(o, l), p = h * u - c * c;\n let _, m = p, x, v = p;\n p < nt._Smallnum ? (_ = 0, m = 1, x = f, v = u) : (_ = c * f - u * d, x = h * f - c * d, _ < 0 ? (_ = 0, x = f, v = u) : _ > m && (_ = m, x = f + c, v = u)), x < 0 ? (x = 0, -d < 0 ? _ = 0 : -d > h ? _ = m : (_ = -d, m = h)) : x > v && (x = v, -d + c < 0 ? _ = 0 : -d + c > h ? _ = m : (_ = -d + c, m = h));\n const T = Math.abs(_) < nt._Smallnum ? 0 : _ / m, E = Math.abs(x) < nt._Smallnum ? 0 : x / v, b = w.Vector3[4];\n o.scaleToRef(E, b);\n const S = w.Vector3[5];\n r.scaleToRef(T, S), S.addInPlace(l);\n const C = w.Vector3[6];\n return S.subtractToRef(b, C), E > 0 && E <= this.length && C.lengthSquared() < i * i ? S.length() : -1;\n }\n /**\n * Update the ray from viewport position\n * @param x position\n * @param y y position\n * @param viewportWidth viewport width\n * @param viewportHeight viewport height\n * @param world world matrix\n * @param view view matrix\n * @param projection projection matrix\n * @param enableDistantPicking defines if picking should handle large values for mesh position/scaling (false by default)\n * @returns this ray updated\n */\n update(e, t, i, s, r, n, o, l = !1) {\n if (l) {\n nt._RayDistant || (nt._RayDistant = nt.Zero()), nt._RayDistant.unprojectRayToRef(e, t, i, s, O.IdentityReadOnly, n, o);\n const h = w.Matrix[0];\n r.invertToRef(h), nt.TransformToRef(nt._RayDistant, h, this);\n } else\n this.unprojectRayToRef(e, t, i, s, r, n, o);\n return this;\n }\n // Statics\n /**\n * Creates a ray with origin and direction of 0,0,0\n * @returns the new ray\n */\n static Zero() {\n return new nt(g.Zero(), g.Zero());\n }\n /**\n * Creates a new ray from screen space and viewport\n * @param x position\n * @param y y position\n * @param viewportWidth viewport width\n * @param viewportHeight viewport height\n * @param world world matrix\n * @param view view matrix\n * @param projection projection matrix\n * @returns new ray\n */\n static CreateNew(e, t, i, s, r, n, o) {\n return nt.Zero().update(e, t, i, s, r, n, o);\n }\n /**\n * Function will create a new transformed ray starting from origin and ending at the end point. Ray's length will be set, and ray will be\n * transformed to the given world matrix.\n * @param origin The origin point\n * @param end The end point\n * @param world a matrix to transform the ray to. Default is the identity matrix.\n * @returns the new ray\n */\n static CreateNewFromTo(e, t, i = O.IdentityReadOnly) {\n const s = new nt(new g(0, 0, 0), new g(0, 0, 0));\n return nt.CreateFromToToRef(e, t, s, i);\n }\n /**\n * Function will update a transformed ray starting from origin and ending at the end point. Ray's length will be set, and ray will be\n * transformed to the given world matrix.\n * @param origin The origin point\n * @param end The end point\n * @param result the object to store the result\n * @param world a matrix to transform the ray to. Default is the identity matrix.\n * @returns the ref ray\n */\n static CreateFromToToRef(e, t, i, s = O.IdentityReadOnly) {\n i.origin.copyFrom(e);\n const r = t.subtractToRef(e, i.direction), n = Math.sqrt(r.x * r.x + r.y * r.y + r.z * r.z);\n return i.length = n, i.direction.normalize(), nt.TransformToRef(i, s, i);\n }\n /**\n * Transforms a ray by a matrix\n * @param ray ray to transform\n * @param matrix matrix to apply\n * @returns the resulting new ray\n */\n static Transform(e, t) {\n const i = new nt(new g(0, 0, 0), new g(0, 0, 0));\n return nt.TransformToRef(e, t, i), i;\n }\n /**\n * Transforms a ray by a matrix\n * @param ray ray to transform\n * @param matrix matrix to apply\n * @param result ray to store result in\n * @returns the updated result ray\n */\n static TransformToRef(e, t, i) {\n g.TransformCoordinatesToRef(e.origin, t, i.origin), g.TransformNormalToRef(e.direction, t, i.direction), i.length = e.length, i.epsilon = e.epsilon;\n const s = i.direction, r = s.length();\n if (!(r === 0 || r === 1)) {\n const n = 1 / r;\n s.x *= n, s.y *= n, s.z *= n, i.length *= r;\n }\n return i;\n }\n /**\n * Unproject a ray from screen space to object space\n * @param sourceX defines the screen space x coordinate to use\n * @param sourceY defines the screen space y coordinate to use\n * @param viewportWidth defines the current width of the viewport\n * @param viewportHeight defines the current height of the viewport\n * @param world defines the world matrix to use (can be set to Identity to go to world space)\n * @param view defines the view matrix to use\n * @param projection defines the projection matrix to use\n */\n unprojectRayToRef(e, t, i, s, r, n, o) {\n const l = w.Matrix[0];\n r.multiplyToRef(n, l), l.multiplyToRef(o, l), l.invert();\n const h = Me.LastCreatedEngine, c = w.Vector3[0];\n c.x = e / i * 2 - 1, c.y = -(t / s * 2 - 1), c.z = h != null && h.useReverseDepthBuffer ? 1 : h != null && h.isNDCHalfZRange ? 0 : -1;\n const u = w.Vector3[1].copyFromFloats(c.x, c.y, 1 - 1e-8), d = w.Vector3[2], f = w.Vector3[3];\n g._UnprojectFromInvertedMatrixToRef(c, l, d), g._UnprojectFromInvertedMatrixToRef(u, l, f), this.origin.copyFrom(d), f.subtractToRef(d, this.direction), this.direction.normalize();\n }\n}\nnt._TmpVector3 = _s.BuildArray(6, g.Zero);\nnt._RayDistant = nt.Zero();\nnt._Smallnum = 1e-8;\nnt._Rayl = 1e9;\nDe.prototype.createPickingRay = function(a, e, t, i, s = !1) {\n const r = nt.Zero();\n return this.createPickingRayToRef(a, e, t, r, i, s), r;\n};\nDe.prototype.createPickingRayToRef = function(a, e, t, i, s, r = !1, n = !1) {\n const o = this.getEngine();\n if (!s && !(s = this.activeCamera))\n return this;\n const l = s.viewport, h = o.getRenderHeight(), { x: c, y: u, width: d, height: f } = l.toGlobal(o.getRenderWidth(), h), p = 1 / o.getHardwareScalingLevel();\n return a = a * p - c, e = e * p - (h - u - f), i.update(a, e, d, f, t || O.IdentityReadOnly, r ? O.IdentityReadOnly : s.getViewMatrix(), s.getProjectionMatrix(), n), this;\n};\nDe.prototype.createPickingRayInCameraSpace = function(a, e, t) {\n const i = nt.Zero();\n return this.createPickingRayInCameraSpaceToRef(a, e, i, t), i;\n};\nDe.prototype.createPickingRayInCameraSpaceToRef = function(a, e, t, i) {\n if (!Cs)\n return this;\n const s = this.getEngine();\n if (!i && !(i = this.activeCamera))\n throw new Error(\"Active camera not set\");\n const r = i.viewport, n = s.getRenderHeight(), { x: o, y: l, width: h, height: c } = r.toGlobal(s.getRenderWidth(), n), u = O.Identity(), d = 1 / s.getHardwareScalingLevel();\n return a = a * d - o, e = e * d - (n - l - c), t.update(a, e, h, c, u, u, i.getProjectionMatrix()), this;\n};\nDe.prototype._internalPickForMesh = function(a, e, t, i, s, r, n, o) {\n const l = e(i, t.enableDistantPicking), h = t.intersects(l, s, n, r, i, o);\n return !h || !h.hit || !s && a != null && h.distance >= a.distance ? null : h;\n};\nDe.prototype._internalPick = function(a, e, t, i, s) {\n let r = null;\n const n = !!(this.activeCameras && this.activeCameras.length > 1 && this.cameraToUseForPointers !== this.activeCamera), o = this.cameraToUseForPointers || this.activeCamera;\n for (let l = 0; l < this.meshes.length; l++) {\n const h = this.meshes[l];\n if (e) {\n if (!e(h))\n continue;\n } else if (!h.isEnabled() || !h.isVisible || !h.isPickable)\n continue;\n const c = n && h.isWorldMatrixCameraDependent(), u = h.computeWorldMatrix(c, o);\n if (h.hasThinInstances && h.thinInstanceEnablePicking) {\n const d = this._internalPickForMesh(r, a, h, u, !0, !0, s);\n if (d) {\n if (i)\n return d;\n const f = w.Matrix[1], p = h.thinInstanceGetWorldMatrices();\n for (let _ = 0; _ < p.length; _++) {\n p[_].multiplyToRef(u, f);\n const x = this._internalPickForMesh(r, a, h, f, t, i, s, !0);\n if (x && (r = x, r.thinInstanceIndex = _, t))\n return r;\n }\n }\n } else {\n const d = this._internalPickForMesh(r, a, h, u, t, i, s);\n if (d && (r = d, t))\n return r;\n }\n }\n return r || new Cs();\n};\nDe.prototype._internalMultiPick = function(a, e, t) {\n if (!Cs)\n return null;\n const i = [], s = !!(this.activeCameras && this.activeCameras.length > 1 && this.cameraToUseForPointers !== this.activeCamera), r = this.cameraToUseForPointers || this.activeCamera;\n for (let n = 0; n < this.meshes.length; n++) {\n const o = this.meshes[n];\n if (e) {\n if (!e(o))\n continue;\n } else if (!o.isEnabled() || !o.isVisible || !o.isPickable)\n continue;\n const l = s && o.isWorldMatrixCameraDependent(), h = o.computeWorldMatrix(l, r);\n if (o.hasThinInstances && o.thinInstanceEnablePicking) {\n if (this._internalPickForMesh(null, a, o, h, !0, !0, t)) {\n const u = w.Matrix[1], d = o.thinInstanceGetWorldMatrices();\n for (let f = 0; f < d.length; f++) {\n d[f].multiplyToRef(h, u);\n const _ = this._internalPickForMesh(null, a, o, u, !1, !1, t, !0);\n _ && (_.thinInstanceIndex = f, i.push(_));\n }\n }\n } else {\n const c = this._internalPickForMesh(null, a, o, h, !1, !1, t);\n c && i.push(c);\n }\n }\n return i;\n};\nDe.prototype.pickWithBoundingInfo = function(a, e, t, i, s) {\n if (!Cs)\n return null;\n const r = this._internalPick((n) => (this._tempPickingRay || (this._tempPickingRay = nt.Zero()), this.createPickingRayToRef(a, e, n, this._tempPickingRay, s || null), this._tempPickingRay), t, i, !0);\n return r && (r.ray = this.createPickingRay(a, e, O.Identity(), s || null)), r;\n};\nObject.defineProperty(De.prototype, \"_pickingAvailable\", {\n get: () => !0,\n enumerable: !1,\n configurable: !1\n});\nDe.prototype.pick = function(a, e, t, i, s, r, n = !1) {\n const o = this._internalPick((l, h) => (this._tempPickingRay || (this._tempPickingRay = nt.Zero()), this.createPickingRayToRef(a, e, l, this._tempPickingRay, s || null, !1, h), this._tempPickingRay), t, i, !1, r);\n return o && (o.ray = this.createPickingRay(a, e, O.Identity(), s || null)), o;\n};\nDe.prototype.pickWithRay = function(a, e, t, i) {\n const s = this._internalPick((r) => (this._pickWithRayInverseMatrix || (this._pickWithRayInverseMatrix = O.Identity()), r.invertToRef(this._pickWithRayInverseMatrix), this._cachedRayForTransform || (this._cachedRayForTransform = nt.Zero()), nt.TransformToRef(a, this._pickWithRayInverseMatrix, this._cachedRayForTransform), this._cachedRayForTransform), e, t, !1, i);\n return s && (s.ray = a), s;\n};\nDe.prototype.multiPick = function(a, e, t, i, s) {\n return this._internalMultiPick((r) => this.createPickingRay(a, e, r, i || null), t, s);\n};\nDe.prototype.multiPickWithRay = function(a, e, t) {\n return this._internalMultiPick((i) => (this._pickWithRayInverseMatrix || (this._pickWithRayInverseMatrix = O.Identity()), i.invertToRef(this._pickWithRayInverseMatrix), this._cachedRayForTransform || (this._cachedRayForTransform = nt.Zero()), nt.TransformToRef(a, this._pickWithRayInverseMatrix, this._cachedRayForTransform), this._cachedRayForTransform), e, t);\n};\nFe.prototype.getForwardRay = function(a = 100, e, t) {\n return this.getForwardRayToRef(new nt(g.Zero(), g.Zero(), a), a, e, t);\n};\nFe.prototype.getForwardRayToRef = function(a, e = 100, t, i) {\n t || (t = this.getWorldMatrix()), a.length = e, i ? a.origin.copyFrom(i) : a.origin.copyFrom(this.position);\n const s = w.Vector3[2];\n s.set(0, 0, this._scene.useRightHandedSystem ? -1 : 1);\n const r = w.Vector3[3];\n return g.TransformNormalToRef(s, t, r), g.NormalizeToRef(r, a.direction), a;\n};\nclass mw {\n constructor() {\n this.onBeforeSetup = [], this.onEngineCreated = [], this.onSceneCreated = [], this.onBeforeFirstFrame = [], this.onBeforeUpdate = [], this.onAfterUpdate = [], this.onSceneClicked = [], this.onMouseDown = [], this.onMouseUp = [], this.onCameraFOVChanged = [], this.onCameraMoved = [], this.onDisplayLoadingUI = [], this.onHideLoadingUI = [], this.onVRSupport = [], this.onBeforeVRSetup = [], this.onAfterVRSetup = [], this.onAfterVREnter = [], this.onBeforeVREnter = [], this.onAfterVRLeave = [], this.onBeforeVRLeave = [], this.onVRInputAdded = [];\n }\n}\nclass gw {\n constructor() {\n this.callbacks = new mw();\n }\n // Before Setup\n triggerOnBeforeSetup() {\n this.callbacks.onBeforeSetup.forEach((e) => e());\n }\n registerOnBeforeSetup(e) {\n this.callbacks.onBeforeSetup.push(e);\n }\n // After Engine Created\n triggerOnEngineCreated(e) {\n this.callbacks.onEngineCreated.forEach((t) => t(e));\n }\n registerOnEngineCreated(e) {\n this.callbacks.onEngineCreated.push(e);\n }\n // After Scene Created\n triggerOnSceneCreated(e) {\n this.callbacks.onSceneCreated.forEach((t) => t(e));\n }\n registerOnSceneCreated(e) {\n this.callbacks.onSceneCreated.push(e);\n }\n // Before First Frame\n triggerOnBeforeFirstFrame() {\n this.callbacks.onBeforeFirstFrame.forEach((e) => e());\n }\n registerOnBeforeFirstFrame(e) {\n this.callbacks.onBeforeFirstFrame.push(e);\n }\n // Before Update\n triggerOnBeforeUpdate() {\n this.callbacks.onBeforeUpdate.forEach((e) => e());\n }\n registerOnBeforeUpdate(e) {\n this.callbacks.onBeforeUpdate.push(e);\n }\n // After Update\n triggerOnAfterUpdate() {\n this.callbacks.onAfterUpdate.forEach((e) => e());\n }\n registerOnAfterUpdate(e) {\n this.callbacks.onAfterUpdate.push(e);\n }\n // On Scene Clicked\n triggerOnSceneClicked(e, t) {\n this.callbacks.onSceneClicked.forEach((i) => i(e, t));\n }\n registerOnSceneClicked(e) {\n this.callbacks.onSceneClicked.push(e);\n }\n // On Mouse Down\n triggerOnMouseDown(e, t) {\n this.callbacks.onMouseDown.forEach((i) => i(e, t));\n }\n registerOnMouseDown(e) {\n this.callbacks.onMouseDown.push(e);\n }\n // On Mouse Up\n triggerOnMouseUp(e, t) {\n this.callbacks.onMouseUp.forEach((i) => i(e, t));\n }\n registerOnMouseUp(e) {\n this.callbacks.onMouseUp.push(e);\n }\n // On Camera FOV Changed\n triggerOnCameraFOVChanged(e) {\n this.callbacks.onCameraFOVChanged.forEach((t) => t(e));\n }\n registerOnCameraFOVChanged(e) {\n this.callbacks.onCameraFOVChanged.push(e);\n }\n // On Camera Moved\n triggerOnCameraMoved(e) {\n this.callbacks.onCameraMoved.forEach((t) => t(e));\n }\n registerOnCameraMoved(e) {\n this.callbacks.onCameraMoved.push(e);\n }\n // Show Loadingscreen\n triggerDisplayLoadingUI() {\n this.callbacks.onDisplayLoadingUI.forEach((e) => e());\n }\n registerOnDisplayLoadingUI(e) {\n this.callbacks.onDisplayLoadingUI.push(e);\n }\n // Hide Loadingscreen\n triggerHideLoadingUI() {\n this.callbacks.onHideLoadingUI.forEach((e) => e());\n }\n registerOnHideLoadingUI(e) {\n this.callbacks.onHideLoadingUI.push(e);\n }\n // VR Support\n triggerOnVRSupported(e) {\n this.callbacks.onVRSupport.forEach((t) => t(e));\n }\n registerOnVRSupported(e) {\n this.callbacks.onVRSupport.push(e);\n }\n // VR Before Setup\n triggerOnBeforeVRSetup() {\n this.callbacks.onBeforeVRSetup.forEach((e) => e());\n }\n registerOnBeforeVRSetup(e) {\n this.callbacks.onBeforeVRSetup.push(e);\n }\n // VR After Setup\n triggerOnAfterVRSetup(e) {\n this.callbacks.onAfterVRSetup.forEach((t) => t(e));\n }\n registerOnAfterVRSetup(e) {\n this.callbacks.onAfterVRSetup.push(e);\n }\n // VR After Enter\n triggerOnAfterVREnter(e) {\n this.callbacks.onAfterVREnter.forEach((t) => t(e));\n }\n registerOnAfterVREnter(e) {\n this.callbacks.onAfterVREnter.push(e);\n }\n // VR Before Enter\n triggerOnBeforeVREnter() {\n this.callbacks.onBeforeVREnter.forEach((e) => e());\n }\n registerOnBeforeVREnter(e) {\n this.callbacks.onBeforeVREnter.push(e);\n }\n // VR After Leave\n triggerOnAfterVRLeave() {\n this.callbacks.onAfterVRLeave.forEach((e) => e());\n }\n registerOnAfterVRLeave(e) {\n this.callbacks.onAfterVRLeave.push(e);\n }\n // VR Before Leave\n triggerOnBeforeVRLeave() {\n this.callbacks.onBeforeVRLeave.forEach((e) => e());\n }\n registerOnBeforeVRLeave(e) {\n this.callbacks.onBeforeVRLeave.push(e);\n }\n // VR Input Added\n triggerOnVRInputAdded(e) {\n this.callbacks.onVRInputAdded.forEach((t) => t(e));\n }\n registerOnVRInputAdded(e) {\n this.callbacks.onVRInputAdded.push(e);\n }\n}\nconst rr = new gw();\nclass Xx {\n /**\n * Check if fixed foveation is supported on this device\n */\n get isFixedFoveationSupported() {\n return this.layerType == \"XRWebGLLayer\" && typeof this.layer.fixedFoveation == \"number\";\n }\n /**\n * Get the fixed foveation currently set, as specified by the webxr specs\n * If this returns null, then fixed foveation is not supported\n */\n get fixedFoveation() {\n return this.isFixedFoveationSupported ? this.layer.fixedFoveation : null;\n }\n /**\n * Set the fixed foveation to the specified value, as specified by the webxr specs\n * This value will be normalized to be between 0 and 1, 1 being max foveation, 0 being no foveation\n */\n set fixedFoveation(e) {\n if (this.isFixedFoveationSupported) {\n const t = Math.max(0, Math.min(1, e || 0));\n this.layer.fixedFoveation = t;\n }\n }\n /**\n * Create a render target provider for the wrapped layer.\n * @param xrSessionManager The XR Session Manager\n * @returns A new render target texture provider for the wrapped layer.\n */\n createRenderTargetTextureProvider(e) {\n return this._rttWrapper = this._createRenderTargetTextureProvider(e), this._rttWrapper;\n }\n dispose() {\n this._rttWrapper && (this._rttWrapper.dispose(), this._rttWrapper = null);\n }\n constructor(e, t, i, s, r) {\n this.getWidth = e, this.getHeight = t, this.layer = i, this.layerType = s, this._createRenderTargetTextureProvider = r, this._rttWrapper = null;\n }\n}\nclass Rg extends Ii {\n set samples(e) {\n this._samples = e;\n }\n get samples() {\n return this._samples;\n }\n /**\n * Creates a multiview render target\n * @param scene scene used with the render target\n * @param size the size of the render target (used for each view)\n */\n constructor(e, t = 512) {\n super(\"multiview rtt\", t, e, !1, !0, 0, !1, void 0, !1, !1, !0, void 0, !0), this._renderTarget = this.getScene().getEngine().createMultiviewRenderTargetTexture(this.getRenderWidth(), this.getRenderHeight()), this._texture = this._renderTarget.texture, this._texture.isMultiview = !0, this._texture.format = 5, this.samples = this._getEngine().getCaps().maxSamples || this.samples, this._texture.samples = this._samples;\n }\n /**\n * @internal\n */\n _bindFrameBuffer() {\n this._renderTarget && this.getScene().getEngine().bindMultiviewFramebuffer(this._renderTarget);\n }\n /**\n * Gets the number of views the corresponding to the texture (eg. a MultiviewRenderTarget will have > 1)\n * @returns the view count\n */\n getViewCount() {\n return 2;\n }\n}\nclass b_ {\n constructor(e, t) {\n this._scene = e, this.layerWrapper = t, this._renderTargetTextures = new Array(), this._engine = e.getEngine();\n }\n _createInternalTexture(e, t) {\n const i = new Nt(this._engine, 0, !0);\n return i.width = e.width, i.height = e.height, i._hardwareTexture = new pc(t, this._engine._gl), i.isReady = !0, i;\n }\n _createRenderTargetTexture(e, t, i, s, r, n) {\n if (!this._engine)\n throw new Error(\"Engine is disposed\");\n const o = { width: e, height: t }, l = n ? new Rg(this._scene, o) : new Ii(\"XR renderTargetTexture\", o, this._scene), h = l.renderTarget;\n if (h._samples = l.samples, (i || !s) && (h._framebuffer = i), s)\n if (n)\n h._colorTextureArray = s;\n else {\n const c = this._createInternalTexture(o, s);\n h.setTexture(c, 0), l._texture = c;\n }\n return r && (n ? h._depthStencilTextureArray = r : h._depthStencilTexture = this._createInternalTexture(o, r)), l.disableRescaling(), this._renderTargetTextures.push(l), l;\n }\n _destroyRenderTargetTexture(e) {\n this._renderTargetTextures.splice(this._renderTargetTextures.indexOf(e), 1), e.dispose();\n }\n getFramebufferDimensions() {\n return this._framebufferDimensions;\n }\n dispose() {\n this._renderTargetTextures.forEach((e) => e.dispose()), this._renderTargetTextures.length = 0;\n }\n}\nclass $x extends Xx {\n /**\n * @param layer is the layer to be wrapped.\n * @returns a new WebXRLayerWrapper wrapping the provided XRWebGLLayer.\n */\n constructor(e) {\n super(() => e.framebufferWidth, () => e.framebufferHeight, e, \"XRWebGLLayer\", (t) => new xw(t.scene, this)), this.layer = e;\n }\n}\nclass xw extends b_ {\n constructor(e, t) {\n super(e, t), this.layerWrapper = t, this._layer = t.layer, this._framebufferDimensions = {\n framebufferWidth: this._layer.framebufferWidth,\n framebufferHeight: this._layer.framebufferHeight\n };\n }\n trySetViewportForView(e, t) {\n const i = this._layer.getViewport(t);\n if (!i)\n return !1;\n const s = this._framebufferDimensions.framebufferWidth, r = this._framebufferDimensions.framebufferHeight;\n return e.x = i.x / s, e.y = i.y / r, e.width = i.width / s, e.height = i.height / r, !0;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getRenderTargetTextureForEye(e) {\n const t = this._layer.framebufferWidth, i = this._layer.framebufferHeight, s = this._layer.framebuffer;\n return (!this._rtt || t !== this._framebufferDimensions.framebufferWidth || i !== this._framebufferDimensions.framebufferHeight || s !== this._framebuffer) && (this._rtt = this._createRenderTargetTexture(t, i, s), this._framebufferDimensions.framebufferWidth = t, this._framebufferDimensions.framebufferHeight = i, this._framebuffer = s), this._rtt;\n }\n getRenderTargetTextureForView(e) {\n return this.getRenderTargetTextureForEye(e.eye);\n }\n}\nclass xf {\n /**\n * Get the default values of the configuration object\n * @param engine defines the engine to use (can be null)\n * @returns default values of this configuration object\n */\n static GetDefaults(e) {\n const t = new xf();\n return t.canvasOptions = {\n antialias: !0,\n depth: !0,\n stencil: e ? e.isStencilEnable : !0,\n alpha: !0,\n framebufferScaleFactor: 1\n }, t.newCanvasCssStyle = \"position:absolute; bottom:0px;right:0px;z-index:10;width:90%;height:100%;background-color: #000000;\", t;\n }\n}\nclass r0 {\n /**\n * Initializes the canvas to be added/removed upon entering/exiting xr\n * @param _xrSessionManager The XR Session manager\n * @param _options optional configuration for this canvas output. defaults will be used if not provided\n */\n constructor(e, t = xf.GetDefaults()) {\n if (this._options = t, this._canvas = null, this._engine = null, this.xrLayer = null, this._xrLayerWrapper = null, this.onXRLayerInitObservable = new G(), this._engine = e.scene.getEngine(), this._engine.onDisposeObservable.addOnce(() => {\n this._engine = null;\n }), t.canvasElement)\n this._setManagedOutputCanvas(t.canvasElement);\n else {\n const i = document.createElement(\"canvas\");\n i.style.cssText = this._options.newCanvasCssStyle || \"position:absolute; bottom:0px;right:0px;\", this._setManagedOutputCanvas(i);\n }\n e.onXRSessionInit.add(() => {\n this._addCanvas();\n }), e.onXRSessionEnded.add(() => {\n this._removeCanvas();\n }), this._makeCanvasCompatibleAsync();\n }\n /**\n * Disposes of the object\n */\n dispose() {\n this._removeCanvas(), this._setManagedOutputCanvas(null);\n }\n _makeCanvasCompatibleAsync() {\n this._canvasCompatiblePromise = new Promise((e, t) => {\n try {\n this.canvasContext && this.canvasContext.makeXRCompatible ? this.canvasContext.makeXRCompatible().then(() => {\n e();\n }, () => {\n J.Warn(\"Error executing makeXRCompatible. This does not mean that the session will work incorrectly.\"), e();\n }) : e();\n } catch (i) {\n t(i);\n }\n });\n }\n /**\n * Initializes a XRWebGLLayer to be used as the session's baseLayer.\n * @param xrSession xr session\n * @returns a promise that will resolve once the XR Layer has been created\n */\n async initializeXRLayerAsync(e) {\n const t = () => (this.xrLayer = new XRWebGLLayer(e, this.canvasContext, this._options.canvasOptions), this._xrLayerWrapper = new $x(this.xrLayer), this.onXRLayerInitObservable.notifyObservers(this.xrLayer), this.xrLayer);\n return this._canvasCompatiblePromise.then(\n // catch any error and continue. When using the emulator is throws this error for no apparent reason.\n () => {\n },\n () => {\n }\n ).then(() => t());\n }\n _addCanvas() {\n this._canvas && this._engine && this._canvas !== this._engine.getRenderingCanvas() && document.body.appendChild(this._canvas), this.xrLayer ? this._setCanvasSize(!0) : this.onXRLayerInitObservable.addOnce(() => {\n this._setCanvasSize(!0);\n });\n }\n _removeCanvas() {\n this._canvas && this._engine && document.body.contains(this._canvas) && this._canvas !== this._engine.getRenderingCanvas() && document.body.removeChild(this._canvas), this._setCanvasSize(!1);\n }\n _setCanvasSize(e = !0, t = this._xrLayerWrapper) {\n !this._canvas || !this._engine || (e ? t && (this._canvas !== this._engine.getRenderingCanvas() ? (this._canvas.style.width = t.getWidth() + \"px\", this._canvas.style.height = t.getHeight() + \"px\") : this._engine.setSize(t.getWidth(), t.getHeight())) : this._originalCanvasSize && (this._canvas !== this._engine.getRenderingCanvas() ? (this._canvas.style.width = this._originalCanvasSize.width + \"px\", this._canvas.style.height = this._originalCanvasSize.height + \"px\") : this._engine.setSize(this._originalCanvasSize.width, this._originalCanvasSize.height)));\n }\n _setManagedOutputCanvas(e) {\n this._removeCanvas(), e ? (this._originalCanvasSize = {\n width: e.offsetWidth,\n height: e.offsetHeight\n }, this._canvas = e, this.canvasContext = this._canvas.getContext(\"webgl2\"), this.canvasContext || (this.canvasContext = this._canvas.getContext(\"webgl\"))) : (this._canvas = null, this.canvasContext = null);\n }\n}\nclass n0 extends Xx {\n constructor(e) {\n super(() => e.framebufferWidth, () => e.framebufferHeight, e, \"XRWebGLLayer\", (t) => new a0(t, this)), this.layer = e;\n }\n}\nclass a0 extends b_ {\n constructor(e, t) {\n super(e.scene, t), this.layerWrapper = t, this._nativeRTTProvider = navigator.xr.getNativeRenderTargetProvider(e.session, this._createRenderTargetTexture.bind(this), this._destroyRenderTargetTexture.bind(this)), this._nativeLayer = t.layer;\n }\n trySetViewportForView(e) {\n return e.x = 0, e.y = 0, e.width = 1, e.height = 1, !0;\n }\n getRenderTargetTextureForEye(e) {\n return this._nativeRTTProvider.getRenderTargetForEye(e);\n }\n getRenderTargetTextureForView(e) {\n return this._nativeRTTProvider.getRenderTargetForEye(e.eye);\n }\n getFramebufferDimensions() {\n return {\n framebufferWidth: this._nativeLayer.framebufferWidth,\n framebufferHeight: this._nativeLayer.framebufferHeight\n };\n }\n}\nclass o0 {\n constructor(e) {\n this._nativeRenderTarget = navigator.xr.getWebXRRenderTarget(e.scene.getEngine());\n }\n async initializeXRLayerAsync(e) {\n return await this._nativeRenderTarget.initializeXRLayerAsync(e), this.xrLayer = this._nativeRenderTarget.xrLayer, this.xrLayer;\n }\n dispose() {\n }\n}\nclass vc {\n /**\n * Scale factor to apply to all XR-related elements (camera, controllers)\n */\n get worldScalingFactor() {\n return this._worldScalingFactor;\n }\n set worldScalingFactor(e) {\n const t = this._worldScalingFactor;\n this._worldScalingFactor = e, this.onWorldScaleFactorChangedObservable.notifyObservers({\n previousScaleFactor: t,\n newScaleFactor: e\n });\n }\n /**\n * Constructs a WebXRSessionManager, this must be initialized within a user action before usage\n * @param scene The scene which the session should be created for\n */\n constructor(e) {\n this.scene = e, this.currentTimestamp = -1, this.defaultHeightCompensation = 1.7, this.onXRFrameObservable = new G(), this.onXRReferenceSpaceChanged = new G(), this.onXRSessionEnded = new G(), this.onXRSessionInit = new G(), this.onXRReferenceSpaceInitialized = new G(), this.onXRReady = new G(), this.inXRFrameLoop = !1, this.inXRSession = !1, this._worldScalingFactor = 1, this.onWorldScaleFactorChangedObservable = new G(void 0, !0), this._engine = e.getEngine(), this._onEngineDisposedObserver = this._engine.onDisposeObservable.addOnce(() => {\n this._engine = null;\n }), e.onDisposeObservable.addOnce(() => {\n this.dispose();\n });\n }\n /**\n * The current reference space used in this session. This reference space can constantly change!\n * It is mainly used to offset the camera's position.\n */\n get referenceSpace() {\n return this._referenceSpace;\n }\n /**\n * Set a new reference space and triggers the observable\n */\n set referenceSpace(e) {\n this._referenceSpace = e, this.onXRReferenceSpaceChanged.notifyObservers(this._referenceSpace);\n }\n /**\n * The mode for the managed XR session\n */\n get sessionMode() {\n return this._sessionMode;\n }\n /**\n * Disposes of the session manager\n * This should be called explicitly by the dev, if required.\n */\n dispose() {\n var e;\n this.inXRSession && this.exitXRAsync(), this.onXRFrameObservable.clear(), this.onXRSessionEnded.clear(), this.onXRReferenceSpaceChanged.clear(), this.onXRSessionInit.clear(), this.onWorldScaleFactorChangedObservable.clear(), (e = this._engine) == null || e.onDisposeObservable.remove(this._onEngineDisposedObserver), this._engine = null;\n }\n /**\n * Stops the xrSession and restores the render loop\n * @returns Promise which resolves after it exits XR\n */\n async exitXRAsync() {\n if (this.session && this.inXRSession) {\n this.inXRSession = !1;\n try {\n return await this.session.end();\n } catch {\n L.Warn(\"Could not end XR session.\");\n }\n }\n return Promise.resolve();\n }\n /**\n * Attempts to set the framebuffer-size-normalized viewport to be rendered this frame for this view.\n * In the event of a failure, the supplied viewport is not updated.\n * @param viewport the viewport to which the view will be rendered\n * @param view the view for which to set the viewport\n * @returns whether the operation was successful\n */\n trySetViewportForView(e, t) {\n var i;\n return ((i = this._baseLayerRTTProvider) == null ? void 0 : i.trySetViewportForView(e, t)) || !1;\n }\n /**\n * Gets the correct render target texture to be rendered this frame for this eye\n * @param eye the eye for which to get the render target\n * @returns the render target for the specified eye or null if not available\n */\n getRenderTargetTextureForEye(e) {\n var t;\n return ((t = this._baseLayerRTTProvider) == null ? void 0 : t.getRenderTargetTextureForEye(e)) || null;\n }\n /**\n * Gets the correct render target texture to be rendered this frame for this view\n * @param view the view for which to get the render target\n * @returns the render target for the specified view or null if not available\n */\n getRenderTargetTextureForView(e) {\n var t;\n return ((t = this._baseLayerRTTProvider) == null ? void 0 : t.getRenderTargetTextureForView(e)) || null;\n }\n /**\n * Creates a WebXRRenderTarget object for the XR session\n * @param options optional options to provide when creating a new render target\n * @returns a WebXR render target to which the session can render\n */\n getWebXRRenderTarget(e) {\n const t = this.scene.getEngine();\n return this._xrNavigator.xr.native ? new o0(this) : (e = e || xf.GetDefaults(t), e.canvasElement = e.canvasElement || t.getRenderingCanvas() || void 0, new r0(this, e));\n }\n /**\n * Initializes the manager\n * After initialization enterXR can be called to start an XR session\n * @returns Promise which resolves after it is initialized\n */\n initializeAsync() {\n return this._xrNavigator = navigator, this._xrNavigator.xr ? Promise.resolve() : Promise.reject(\"WebXR not available\");\n }\n /**\n * Initializes an xr session\n * @param xrSessionMode mode to initialize\n * @param xrSessionInit defines optional and required values to pass to the session builder\n * @returns a promise which will resolve once the session has been initialized\n */\n initializeSessionAsync(e = \"immersive-vr\", t = {}) {\n return this._xrNavigator.xr.requestSession(e, t).then((i) => (this.session = i, this._sessionMode = e, this.inXRSession = !0, this.onXRSessionInit.notifyObservers(i), this.session.addEventListener(\"end\", () => {\n var s;\n this.inXRSession = !1, this.onXRSessionEnded.notifyObservers(null), this._engine && (this._engine.framebufferDimensionsObject = null, this._engine.restoreDefaultFramebuffer(), this._engine.customAnimationFrameRequester = null, this._engine._renderLoop()), this.isNative && ((s = this._baseLayerRTTProvider) == null || s.dispose()), this._baseLayerRTTProvider = null, this._baseLayerWrapper = null;\n }, { once: !0 }), this.session));\n }\n /**\n * Checks if a session would be supported for the creation options specified\n * @param sessionMode session mode to check if supported eg. immersive-vr\n * @returns A Promise that resolves to true if supported and false if not\n */\n isSessionSupportedAsync(e) {\n return vc.IsSessionSupportedAsync(e);\n }\n /**\n * Resets the reference space to the one started the session\n */\n resetReferenceSpace() {\n this.referenceSpace = this.baseReferenceSpace;\n }\n /**\n * Starts rendering to the xr layer\n */\n runXRRenderLoop() {\n var e;\n !this.inXRSession || !this._engine || (this._engine.customAnimationFrameRequester = {\n requestAnimationFrame: (t) => this.session.requestAnimationFrame(t),\n renderFunction: (t, i) => {\n var s;\n if (!(!this.inXRSession || !this._engine) && (this.currentFrame = i, this.currentTimestamp = t, i)) {\n this.inXRFrameLoop = !0;\n const r = ((s = this._baseLayerRTTProvider) == null ? void 0 : s.getFramebufferDimensions()) || null;\n this._engine.framebufferDimensionsObject !== r && (this._engine.framebufferDimensionsObject = r), this.onXRFrameObservable.notifyObservers(i), this._engine._renderLoop(), this._engine.framebufferDimensionsObject = null, this.inXRFrameLoop = !1;\n }\n }\n }, this._engine.framebufferDimensionsObject = ((e = this._baseLayerRTTProvider) == null ? void 0 : e.getFramebufferDimensions()) || null, this.onXRFrameObservable.addOnce(() => {\n this.onXRReady.notifyObservers(this);\n }), typeof window < \"u\" && window.cancelAnimationFrame && window.cancelAnimationFrame(this._engine._frameHandler), this._engine._renderLoop());\n }\n /**\n * Sets the reference space on the xr session\n * @param referenceSpaceType space to set\n * @returns a promise that will resolve once the reference space has been set\n */\n setReferenceSpaceTypeAsync(e = \"local-floor\") {\n return this.session.requestReferenceSpace(e).then((t) => t, (t) => (L.Error(\"XR.requestReferenceSpace failed for the following reason: \"), L.Error(t), L.Log('Defaulting to universally-supported \"viewer\" reference space type.'), this.session.requestReferenceSpace(\"viewer\").then((i) => {\n const s = new XRRigidTransform({ x: 0, y: -this.defaultHeightCompensation, z: 0 });\n return i.getOffsetReferenceSpace(s);\n }, (i) => {\n throw L.Error(i), 'XR initialization failed: required \"viewer\" reference space type not supported.';\n }))).then((t) => this.session.requestReferenceSpace(\"viewer\").then((i) => (this.viewerReferenceSpace = i, t))).then((t) => (this.referenceSpace = this.baseReferenceSpace = t, this.onXRReferenceSpaceInitialized.notifyObservers(t), this.referenceSpace));\n }\n /**\n * Updates the render state of the session.\n * Note that this is deprecated in favor of WebXRSessionManager.updateRenderState().\n * @param state state to set\n * @returns a promise that resolves once the render state has been updated\n * @deprecated Use updateRenderState() instead.\n */\n updateRenderStateAsync(e) {\n return Promise.resolve(this.session.updateRenderState(e));\n }\n /**\n * @internal\n */\n _setBaseLayerWrapper(e) {\n var t, i;\n this.isNative && ((t = this._baseLayerRTTProvider) == null || t.dispose()), this._baseLayerWrapper = e, this._baseLayerRTTProvider = ((i = this._baseLayerWrapper) == null ? void 0 : i.createRenderTargetTextureProvider(this)) || null;\n }\n /**\n * @internal\n */\n _getBaseLayerWrapper() {\n return this._baseLayerWrapper;\n }\n /**\n * Updates the render state of the session\n * @param state state to set\n */\n updateRenderState(e) {\n e.baseLayer && this._setBaseLayerWrapper(this.isNative ? new n0(e.baseLayer) : new $x(e.baseLayer)), this.session.updateRenderState(e);\n }\n /**\n * Returns a promise that resolves with a boolean indicating if the provided session mode is supported by this browser\n * @param sessionMode defines the session to test\n * @returns a promise with boolean as final value\n */\n static IsSessionSupportedAsync(e) {\n if (!navigator.xr)\n return Promise.resolve(!1);\n const t = navigator.xr.isSessionSupported || navigator.xr.supportsSession;\n return t ? t.call(navigator.xr, e).then((i) => {\n const s = typeof i > \"u\" ? !0 : i;\n return Promise.resolve(s);\n }).catch((i) => (L.Warn(i), Promise.resolve(!1))) : Promise.resolve(!1);\n }\n /**\n * Returns true if Babylon.js is using the BabylonNative backend, otherwise false\n */\n get isNative() {\n return this._xrNavigator.xr.native ?? !1;\n }\n /**\n * The current frame rate as reported by the device\n */\n get currentFrameRate() {\n var e;\n return (e = this.session) == null ? void 0 : e.frameRate;\n }\n /**\n * A list of supported frame rates (only available in-session!\n */\n get supportedFrameRates() {\n var e;\n return (e = this.session) == null ? void 0 : e.supportedFrameRates;\n }\n /**\n * Set the framerate of the session.\n * @param rate the new framerate. This value needs to be in the supportedFrameRates array\n * @returns a promise that resolves once the framerate has been set\n */\n updateTargetFrameRate(e) {\n return this.session.updateTargetFrameRate(e);\n }\n /**\n * Run a callback in the xr render loop\n * @param callback the callback to call when in XR Frame\n * @param ignoreIfNotInSession if no session is currently running, run it first thing on the next session\n */\n runInXRFrame(e, t = !0) {\n this.inXRFrameLoop ? e() : (this.inXRSession || !t) && this.onXRFrameObservable.addOnce(e);\n }\n /**\n * Check if fixed foveation is supported on this device\n */\n get isFixedFoveationSupported() {\n var e;\n return ((e = this._baseLayerWrapper) == null ? void 0 : e.isFixedFoveationSupported) || !1;\n }\n /**\n * Get the fixed foveation currently set, as specified by the webxr specs\n * If this returns null, then fixed foveation is not supported\n */\n get fixedFoveation() {\n var e;\n return ((e = this._baseLayerWrapper) == null ? void 0 : e.fixedFoveation) || null;\n }\n /**\n * Set the fixed foveation to the specified value, as specified by the webxr specs\n * This value will be normalized to be between 0 and 1, 1 being max foveation, 0 being no foveation\n */\n set fixedFoveation(e) {\n const t = Math.max(0, Math.min(1, e || 0));\n this._baseLayerWrapper && (this._baseLayerWrapper.fixedFoveation = t);\n }\n /**\n * Get the features enabled on the current session\n * This is only available in-session!\n * @see https://www.w3.org/TR/webxr/#dom-xrsession-enabledfeatures\n */\n get enabledFeatures() {\n var e;\n return ((e = this.session) == null ? void 0 : e.enabledFeatures) ?? null;\n }\n}\nclass Sn {\n constructor() {\n this.keysUp = [38], this.keysUpward = [33], this.keysDown = [40], this.keysDownward = [34], this.keysLeft = [37], this.keysRight = [39], this.rotationSpeed = 0.5, this.keysRotateLeft = [], this.keysRotateRight = [], this.keysRotateUp = [], this.keysRotateDown = [], this._keys = new Array();\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e) {\n e = J.BackCompatCameraNoPreventDefault(arguments), !this._onCanvasBlurObserver && (this._scene = this.camera.getScene(), this._engine = this._scene.getEngine(), this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(() => {\n this._keys.length = 0;\n }), this._onKeyboardObserver = this._scene.onKeyboardObservable.add((t) => {\n const i = t.event;\n if (!i.metaKey) {\n if (t.type === Ma.KEYDOWN)\n (this.keysUp.indexOf(i.keyCode) !== -1 || this.keysDown.indexOf(i.keyCode) !== -1 || this.keysLeft.indexOf(i.keyCode) !== -1 || this.keysRight.indexOf(i.keyCode) !== -1 || this.keysUpward.indexOf(i.keyCode) !== -1 || this.keysDownward.indexOf(i.keyCode) !== -1 || this.keysRotateLeft.indexOf(i.keyCode) !== -1 || this.keysRotateRight.indexOf(i.keyCode) !== -1 || this.keysRotateUp.indexOf(i.keyCode) !== -1 || this.keysRotateDown.indexOf(i.keyCode) !== -1) && (this._keys.indexOf(i.keyCode) === -1 && this._keys.push(i.keyCode), e || i.preventDefault());\n else if (this.keysUp.indexOf(i.keyCode) !== -1 || this.keysDown.indexOf(i.keyCode) !== -1 || this.keysLeft.indexOf(i.keyCode) !== -1 || this.keysRight.indexOf(i.keyCode) !== -1 || this.keysUpward.indexOf(i.keyCode) !== -1 || this.keysDownward.indexOf(i.keyCode) !== -1 || this.keysRotateLeft.indexOf(i.keyCode) !== -1 || this.keysRotateRight.indexOf(i.keyCode) !== -1 || this.keysRotateUp.indexOf(i.keyCode) !== -1 || this.keysRotateDown.indexOf(i.keyCode) !== -1) {\n const s = this._keys.indexOf(i.keyCode);\n s >= 0 && this._keys.splice(s, 1), e || i.preventDefault();\n }\n }\n }));\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this._scene && (this._onKeyboardObserver && this._scene.onKeyboardObservable.remove(this._onKeyboardObserver), this._onCanvasBlurObserver && this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver), this._onKeyboardObserver = null, this._onCanvasBlurObserver = null), this._keys.length = 0;\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n if (this._onKeyboardObserver) {\n const e = this.camera;\n for (let t = 0; t < this._keys.length; t++) {\n const i = this._keys[t], s = e._computeLocalCameraSpeed();\n this.keysLeft.indexOf(i) !== -1 ? e._localDirection.copyFromFloats(-s, 0, 0) : this.keysUp.indexOf(i) !== -1 ? e._localDirection.copyFromFloats(0, 0, s) : this.keysRight.indexOf(i) !== -1 ? e._localDirection.copyFromFloats(s, 0, 0) : this.keysDown.indexOf(i) !== -1 ? e._localDirection.copyFromFloats(0, 0, -s) : this.keysUpward.indexOf(i) !== -1 ? e._localDirection.copyFromFloats(0, s, 0) : this.keysDownward.indexOf(i) !== -1 ? e._localDirection.copyFromFloats(0, -s, 0) : this.keysRotateLeft.indexOf(i) !== -1 ? (e._localDirection.copyFromFloats(0, 0, 0), e.cameraRotation.y -= this._getLocalRotation()) : this.keysRotateRight.indexOf(i) !== -1 ? (e._localDirection.copyFromFloats(0, 0, 0), e.cameraRotation.y += this._getLocalRotation()) : this.keysRotateUp.indexOf(i) !== -1 ? (e._localDirection.copyFromFloats(0, 0, 0), e.cameraRotation.x -= this._getLocalRotation()) : this.keysRotateDown.indexOf(i) !== -1 && (e._localDirection.copyFromFloats(0, 0, 0), e.cameraRotation.x += this._getLocalRotation()), e.getScene().useRightHandedSystem && (e._localDirection.z *= -1), e.getViewMatrix().invertToRef(e._cameraTransformMatrix), g.TransformNormalToRef(e._localDirection, e._cameraTransformMatrix, e._transformedDirection), e.cameraDirection.addInPlace(e._transformedDirection);\n }\n }\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FreeCameraKeyboardMoveInput\";\n }\n /** @internal */\n _onLostFocus() {\n this._keys.length = 0;\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"keyboard\";\n }\n _getLocalRotation() {\n const e = this.camera._calculateHandednessMultiplier();\n return this.rotationSpeed * this._engine.getDeltaTime() / 1e3 * e;\n }\n}\ny([\n I()\n], Sn.prototype, \"keysUp\", void 0);\ny([\n I()\n], Sn.prototype, \"keysUpward\", void 0);\ny([\n I()\n], Sn.prototype, \"keysDown\", void 0);\ny([\n I()\n], Sn.prototype, \"keysDownward\", void 0);\ny([\n I()\n], Sn.prototype, \"keysLeft\", void 0);\ny([\n I()\n], Sn.prototype, \"keysRight\", void 0);\ny([\n I()\n], Sn.prototype, \"rotationSpeed\", void 0);\ny([\n I()\n], Sn.prototype, \"keysRotateLeft\", void 0);\ny([\n I()\n], Sn.prototype, \"keysRotateRight\", void 0);\ny([\n I()\n], Sn.prototype, \"keysRotateUp\", void 0);\ny([\n I()\n], Sn.prototype, \"keysRotateDown\", void 0);\nlr.FreeCameraKeyboardMoveInput = Sn;\nclass E_ {\n /**\n * Manage the mouse inputs to control the movement of a free camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n * @param touchEnabled Defines if touch is enabled or not\n */\n constructor(e = !0) {\n this.touchEnabled = e, this.buttons = [0, 1, 2], this.angularSensibility = 2e3, this._previousPosition = null, this.onPointerMovedObservable = new G(), this._allowCameraRotation = !0, this._currentActiveButton = -1, this._activePointerId = -1;\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e) {\n e = J.BackCompatCameraNoPreventDefault(arguments);\n const t = this.camera.getEngine(), i = t.getInputElement();\n this._pointerInput || (this._pointerInput = (s) => {\n const r = s.event, n = r.pointerType === \"touch\";\n if (!this.touchEnabled && n || s.type !== Pe.POINTERMOVE && this.buttons.indexOf(r.button) === -1)\n return;\n const o = r.target;\n if (s.type === Pe.POINTERDOWN) {\n if (n && this._activePointerId !== -1 || !n && this._currentActiveButton !== -1)\n return;\n this._activePointerId = r.pointerId;\n try {\n o == null || o.setPointerCapture(r.pointerId);\n } catch {\n }\n this._currentActiveButton === -1 && (this._currentActiveButton = r.button), this._previousPosition = {\n x: r.clientX,\n y: r.clientY\n }, e || (r.preventDefault(), i && i.focus()), t.isPointerLock && this._onMouseMove && this._onMouseMove(s.event);\n } else if (s.type === Pe.POINTERUP) {\n if (n && this._activePointerId !== r.pointerId || !n && this._currentActiveButton !== r.button)\n return;\n try {\n o == null || o.releasePointerCapture(r.pointerId);\n } catch {\n }\n this._currentActiveButton = -1, this._previousPosition = null, e || r.preventDefault(), this._activePointerId = -1;\n } else if (s.type === Pe.POINTERMOVE && (this._activePointerId === r.pointerId || !n)) {\n if (t.isPointerLock && this._onMouseMove)\n this._onMouseMove(s.event);\n else if (this._previousPosition) {\n const l = this.camera._calculateHandednessMultiplier(), h = (r.clientX - this._previousPosition.x) * l, c = r.clientY - this._previousPosition.y;\n this._allowCameraRotation && (this.camera.cameraRotation.y += h / this.angularSensibility, this.camera.cameraRotation.x += c / this.angularSensibility), this.onPointerMovedObservable.notifyObservers({ offsetX: h, offsetY: c }), this._previousPosition = {\n x: r.clientX,\n y: r.clientY\n }, e || r.preventDefault();\n }\n }\n }), this._onMouseMove = (s) => {\n if (!t.isPointerLock)\n return;\n const r = this.camera._calculateHandednessMultiplier(), n = s.movementX * r;\n this.camera.cameraRotation.y += n / this.angularSensibility;\n const o = s.movementY;\n this.camera.cameraRotation.x += o / this.angularSensibility, this._previousPosition = null, e || s.preventDefault();\n }, this._observer = this.camera.getScene()._inputManager._addCameraPointerObserver(this._pointerInput, Pe.POINTERDOWN | Pe.POINTERUP | Pe.POINTERMOVE), i && (this._contextMenuBind = (s) => this.onContextMenu(s), i.addEventListener(\"contextmenu\", this._contextMenuBind, !1));\n }\n /**\n * Called on JS contextmenu event.\n * Override this method to provide functionality.\n * @param evt the context menu event\n */\n onContextMenu(e) {\n e.preventDefault();\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n if (this._observer) {\n if (this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer), this._contextMenuBind) {\n const t = this.camera.getEngine().getInputElement();\n t && t.removeEventListener(\"contextmenu\", this._contextMenuBind);\n }\n this.onPointerMovedObservable && this.onPointerMovedObservable.clear(), this._observer = null, this._onMouseMove = null, this._previousPosition = null;\n }\n this._activePointerId = -1, this._currentActiveButton = -1;\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FreeCameraMouseInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"mouse\";\n }\n}\ny([\n I()\n], E_.prototype, \"buttons\", void 0);\ny([\n I()\n], E_.prototype, \"angularSensibility\", void 0);\nlr.FreeCameraMouseInput = E_;\nclass y_ {\n constructor() {\n this.wheelPrecisionX = 3, this.wheelPrecisionY = 3, this.wheelPrecisionZ = 3, this.onChangedObservable = new G(), this._wheelDeltaX = 0, this._wheelDeltaY = 0, this._wheelDeltaZ = 0, this._ffMultiplier = 12, this._normalize = 120;\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls\n * should call preventdefault().\n * (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e) {\n e = J.BackCompatCameraNoPreventDefault(arguments), this._wheel = (t) => {\n if (t.type !== Pe.POINTERWHEEL)\n return;\n const i = t.event, s = i.deltaMode === _c.DOM_DELTA_LINE ? this._ffMultiplier : 1;\n this._wheelDeltaX += this.wheelPrecisionX * s * i.deltaX / this._normalize, this._wheelDeltaY -= this.wheelPrecisionY * s * i.deltaY / this._normalize, this._wheelDeltaZ += this.wheelPrecisionZ * s * i.deltaZ / this._normalize, i.preventDefault && (e || i.preventDefault());\n }, this._observer = this.camera.getScene()._inputManager._addCameraPointerObserver(this._wheel, Pe.POINTERWHEEL);\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this._observer && (this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer), this._observer = null, this._wheel = null), this.onChangedObservable && this.onChangedObservable.clear();\n }\n /**\n * Called for each rendered frame.\n */\n checkInputs() {\n this.onChangedObservable.notifyObservers({\n wheelDeltaX: this._wheelDeltaX,\n wheelDeltaY: this._wheelDeltaY,\n wheelDeltaZ: this._wheelDeltaZ\n }), this._wheelDeltaX = 0, this._wheelDeltaY = 0, this._wheelDeltaZ = 0;\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"BaseCameraMouseWheelInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"mousewheel\";\n }\n}\ny([\n I()\n], y_.prototype, \"wheelPrecisionX\", void 0);\ny([\n I()\n], y_.prototype, \"wheelPrecisionY\", void 0);\ny([\n I()\n], y_.prototype, \"wheelPrecisionZ\", void 0);\nvar fi;\n(function(a) {\n a[a.MoveRelative = 0] = \"MoveRelative\", a[a.RotateRelative = 1] = \"RotateRelative\", a[a.MoveScene = 2] = \"MoveScene\";\n})(fi || (fi = {}));\nclass oa extends y_ {\n constructor() {\n super(...arguments), this._moveRelative = g.Zero(), this._rotateRelative = g.Zero(), this._moveScene = g.Zero(), this._wheelXAction = fi.MoveRelative, this._wheelXActionCoordinate = 0, this._wheelYAction = fi.MoveRelative, this._wheelYActionCoordinate = 2, this._wheelZAction = null, this._wheelZActionCoordinate = null;\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FreeCameraMouseWheelInput\";\n }\n /**\n * Set which movement axis (relative to camera's orientation) the mouse\n * wheel's X axis controls.\n * @param axis The axis to be moved. Set null to clear.\n */\n set wheelXMoveRelative(e) {\n e === null && this._wheelXAction !== fi.MoveRelative || (this._wheelXAction = fi.MoveRelative, this._wheelXActionCoordinate = e);\n }\n /**\n * Get the configured movement axis (relative to camera's orientation) the\n * mouse wheel's X axis controls.\n * @returns The configured axis or null if none.\n */\n get wheelXMoveRelative() {\n return this._wheelXAction !== fi.MoveRelative ? null : this._wheelXActionCoordinate;\n }\n /**\n * Set which movement axis (relative to camera's orientation) the mouse\n * wheel's Y axis controls.\n * @param axis The axis to be moved. Set null to clear.\n */\n set wheelYMoveRelative(e) {\n e === null && this._wheelYAction !== fi.MoveRelative || (this._wheelYAction = fi.MoveRelative, this._wheelYActionCoordinate = e);\n }\n /**\n * Get the configured movement axis (relative to camera's orientation) the\n * mouse wheel's Y axis controls.\n * @returns The configured axis or null if none.\n */\n get wheelYMoveRelative() {\n return this._wheelYAction !== fi.MoveRelative ? null : this._wheelYActionCoordinate;\n }\n /**\n * Set which movement axis (relative to camera's orientation) the mouse\n * wheel's Z axis controls.\n * @param axis The axis to be moved. Set null to clear.\n */\n set wheelZMoveRelative(e) {\n e === null && this._wheelZAction !== fi.MoveRelative || (this._wheelZAction = fi.MoveRelative, this._wheelZActionCoordinate = e);\n }\n /**\n * Get the configured movement axis (relative to camera's orientation) the\n * mouse wheel's Z axis controls.\n * @returns The configured axis or null if none.\n */\n get wheelZMoveRelative() {\n return this._wheelZAction !== fi.MoveRelative ? null : this._wheelZActionCoordinate;\n }\n /**\n * Set which rotation axis (relative to camera's orientation) the mouse\n * wheel's X axis controls.\n * @param axis The axis to be moved. Set null to clear.\n */\n set wheelXRotateRelative(e) {\n e === null && this._wheelXAction !== fi.RotateRelative || (this._wheelXAction = fi.RotateRelative, this._wheelXActionCoordinate = e);\n }\n /**\n * Get the configured rotation axis (relative to camera's orientation) the\n * mouse wheel's X axis controls.\n * @returns The configured axis or null if none.\n */\n get wheelXRotateRelative() {\n return this._wheelXAction !== fi.RotateRelative ? null : this._wheelXActionCoordinate;\n }\n /**\n * Set which rotation axis (relative to camera's orientation) the mouse\n * wheel's Y axis controls.\n * @param axis The axis to be moved. Set null to clear.\n */\n set wheelYRotateRelative(e) {\n e === null && this._wheelYAction !== fi.RotateRelative || (this._wheelYAction = fi.RotateRelative, this._wheelYActionCoordinate = e);\n }\n /**\n * Get the configured rotation axis (relative to camera's orientation) the\n * mouse wheel's Y axis controls.\n * @returns The configured axis or null if none.\n */\n get wheelYRotateRelative() {\n return this._wheelYAction !== fi.RotateRelative ? null : this._wheelYActionCoordinate;\n }\n /**\n * Set which rotation axis (relative to camera's orientation) the mouse\n * wheel's Z axis controls.\n * @param axis The axis to be moved. Set null to clear.\n */\n set wheelZRotateRelative(e) {\n e === null && this._wheelZAction !== fi.RotateRelative || (this._wheelZAction = fi.RotateRelative, this._wheelZActionCoordinate = e);\n }\n /**\n * Get the configured rotation axis (relative to camera's orientation) the\n * mouse wheel's Z axis controls.\n * @returns The configured axis or null if none.\n */\n get wheelZRotateRelative() {\n return this._wheelZAction !== fi.RotateRelative ? null : this._wheelZActionCoordinate;\n }\n /**\n * Set which movement axis (relative to the scene) the mouse wheel's X axis\n * controls.\n * @param axis The axis to be moved. Set null to clear.\n */\n set wheelXMoveScene(e) {\n e === null && this._wheelXAction !== fi.MoveScene || (this._wheelXAction = fi.MoveScene, this._wheelXActionCoordinate = e);\n }\n /**\n * Get the configured movement axis (relative to the scene) the mouse wheel's\n * X axis controls.\n * @returns The configured axis or null if none.\n */\n get wheelXMoveScene() {\n return this._wheelXAction !== fi.MoveScene ? null : this._wheelXActionCoordinate;\n }\n /**\n * Set which movement axis (relative to the scene) the mouse wheel's Y axis\n * controls.\n * @param axis The axis to be moved. Set null to clear.\n */\n set wheelYMoveScene(e) {\n e === null && this._wheelYAction !== fi.MoveScene || (this._wheelYAction = fi.MoveScene, this._wheelYActionCoordinate = e);\n }\n /**\n * Get the configured movement axis (relative to the scene) the mouse wheel's\n * Y axis controls.\n * @returns The configured axis or null if none.\n */\n get wheelYMoveScene() {\n return this._wheelYAction !== fi.MoveScene ? null : this._wheelYActionCoordinate;\n }\n /**\n * Set which movement axis (relative to the scene) the mouse wheel's Z axis\n * controls.\n * @param axis The axis to be moved. Set null to clear.\n */\n set wheelZMoveScene(e) {\n e === null && this._wheelZAction !== fi.MoveScene || (this._wheelZAction = fi.MoveScene, this._wheelZActionCoordinate = e);\n }\n /**\n * Get the configured movement axis (relative to the scene) the mouse wheel's\n * Z axis controls.\n * @returns The configured axis or null if none.\n */\n get wheelZMoveScene() {\n return this._wheelZAction !== fi.MoveScene ? null : this._wheelZActionCoordinate;\n }\n /**\n * Called for each rendered frame.\n */\n checkInputs() {\n if (this._wheelDeltaX === 0 && this._wheelDeltaY === 0 && this._wheelDeltaZ == 0)\n return;\n this._moveRelative.setAll(0), this._rotateRelative.setAll(0), this._moveScene.setAll(0), this._updateCamera(), this.camera.getScene().useRightHandedSystem && (this._moveRelative.z *= -1);\n const e = O.Zero();\n this.camera.getViewMatrix().invertToRef(e);\n const t = g.Zero();\n g.TransformNormalToRef(this._moveRelative, e, t), this.camera.cameraRotation.x += this._rotateRelative.x / 200, this.camera.cameraRotation.y += this._rotateRelative.y / 200, this.camera.cameraDirection.addInPlace(t), this.camera.cameraDirection.addInPlace(this._moveScene), super.checkInputs();\n }\n /**\n * Update the camera according to any configured properties for the 3\n * mouse-wheel axis.\n */\n _updateCamera() {\n this._updateCameraProperty(this._wheelDeltaX, this._wheelXAction, this._wheelXActionCoordinate), this._updateCameraProperty(this._wheelDeltaY, this._wheelYAction, this._wheelYActionCoordinate), this._updateCameraProperty(this._wheelDeltaZ, this._wheelZAction, this._wheelZActionCoordinate);\n }\n /**\n * Update one property of the camera.\n * @param value\n * @param cameraProperty\n * @param coordinate\n */\n _updateCameraProperty(e, t, i) {\n if (e === 0 || t === null || i === null)\n return;\n let s = null;\n switch (t) {\n case fi.MoveRelative:\n s = this._moveRelative;\n break;\n case fi.RotateRelative:\n s = this._rotateRelative;\n break;\n case fi.MoveScene:\n s = this._moveScene;\n break;\n }\n switch (i) {\n case 0:\n s.set(e, 0, 0);\n break;\n case 1:\n s.set(0, e, 0);\n break;\n case 2:\n s.set(0, 0, e);\n break;\n }\n }\n}\ny([\n I()\n], oa.prototype, \"wheelXMoveRelative\", null);\ny([\n I()\n], oa.prototype, \"wheelYMoveRelative\", null);\ny([\n I()\n], oa.prototype, \"wheelZMoveRelative\", null);\ny([\n I()\n], oa.prototype, \"wheelXRotateRelative\", null);\ny([\n I()\n], oa.prototype, \"wheelYRotateRelative\", null);\ny([\n I()\n], oa.prototype, \"wheelZRotateRelative\", null);\ny([\n I()\n], oa.prototype, \"wheelXMoveScene\", null);\ny([\n I()\n], oa.prototype, \"wheelYMoveScene\", null);\ny([\n I()\n], oa.prototype, \"wheelZMoveScene\", null);\nlr.FreeCameraMouseWheelInput = oa;\nclass C_ {\n /**\n * Manage the touch inputs to control the movement of a free camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n * @param allowMouse Defines if mouse events can be treated as touch events\n */\n constructor(e = !1) {\n this.allowMouse = e, this.touchAngularSensibility = 2e5, this.touchMoveSensibility = 250, this.singleFingerRotate = !1, this._offsetX = null, this._offsetY = null, this._pointerPressed = new Array(), this._isSafari = J.IsSafari();\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e) {\n e = J.BackCompatCameraNoPreventDefault(arguments);\n let t = null;\n if (this._pointerInput === void 0 && (this._onLostFocus = () => {\n this._offsetX = null, this._offsetY = null;\n }, this._pointerInput = (i) => {\n const s = i.event, r = s.pointerType === \"mouse\" || this._isSafari && typeof s.pointerType > \"u\";\n if (!(!this.allowMouse && r)) {\n if (i.type === Pe.POINTERDOWN) {\n if (e || s.preventDefault(), this._pointerPressed.push(s.pointerId), this._pointerPressed.length !== 1)\n return;\n t = {\n x: s.clientX,\n y: s.clientY\n };\n } else if (i.type === Pe.POINTERUP) {\n e || s.preventDefault();\n const n = this._pointerPressed.indexOf(s.pointerId);\n if (n === -1 || (this._pointerPressed.splice(n, 1), n != 0))\n return;\n t = null, this._offsetX = null, this._offsetY = null;\n } else if (i.type === Pe.POINTERMOVE) {\n if (e || s.preventDefault(), !t || this._pointerPressed.indexOf(s.pointerId) != 0)\n return;\n this._offsetX = s.clientX - t.x, this._offsetY = -(s.clientY - t.y);\n }\n }\n }), this._observer = this.camera.getScene()._inputManager._addCameraPointerObserver(this._pointerInput, Pe.POINTERDOWN | Pe.POINTERUP | Pe.POINTERMOVE), this._onLostFocus) {\n const s = this.camera.getEngine().getInputElement();\n s && s.addEventListener(\"blur\", this._onLostFocus);\n }\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n if (this._pointerInput) {\n if (this._observer && (this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer), this._observer = null), this._onLostFocus) {\n const t = this.camera.getEngine().getInputElement();\n t && t.removeEventListener(\"blur\", this._onLostFocus), this._onLostFocus = null;\n }\n this._pointerPressed.length = 0, this._offsetX = null, this._offsetY = null;\n }\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n if (this._offsetX === null || this._offsetY === null || this._offsetX === 0 && this._offsetY === 0)\n return;\n const e = this.camera, t = e._calculateHandednessMultiplier();\n if (e.cameraRotation.y = t * this._offsetX / this.touchAngularSensibility, this.singleFingerRotate && this._pointerPressed.length === 1 || !this.singleFingerRotate && this._pointerPressed.length > 1)\n e.cameraRotation.x = -this._offsetY / this.touchAngularSensibility;\n else {\n const s = e._computeLocalCameraSpeed(), r = new g(0, 0, this.touchMoveSensibility !== 0 ? s * this._offsetY / this.touchMoveSensibility : 0);\n O.RotationYawPitchRollToRef(e.rotation.y, e.rotation.x, 0, e._cameraRotationMatrix), e.cameraDirection.addInPlace(g.TransformCoordinates(r, e._cameraRotationMatrix));\n }\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FreeCameraTouchInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"touch\";\n }\n}\ny([\n I()\n], C_.prototype, \"touchAngularSensibility\", void 0);\ny([\n I()\n], C_.prototype, \"touchMoveSensibility\", void 0);\nlr.FreeCameraTouchInput = C_;\nclass A_ extends S_ {\n /**\n * Instantiates a new FreeCameraInputsManager.\n * @param camera Defines the camera the inputs belong to\n */\n constructor(e) {\n super(e), this._mouseInput = null, this._mouseWheelInput = null;\n }\n /**\n * Add keyboard input support to the input manager.\n * @returns the current input manager\n */\n addKeyboard() {\n return this.add(new Sn()), this;\n }\n /**\n * Add mouse input support to the input manager.\n * @param touchEnabled if the FreeCameraMouseInput should support touch (default: true)\n * @returns the current input manager\n */\n addMouse(e = !0) {\n return this._mouseInput || (this._mouseInput = new E_(e), this.add(this._mouseInput)), this;\n }\n /**\n * Removes the mouse input support from the manager\n * @returns the current input manager\n */\n removeMouse() {\n return this._mouseInput && this.remove(this._mouseInput), this;\n }\n /**\n * Add mouse wheel input support to the input manager.\n * @returns the current input manager\n */\n addMouseWheel() {\n return this._mouseWheelInput || (this._mouseWheelInput = new oa(), this.add(this._mouseWheelInput)), this;\n }\n /**\n * Removes the mouse wheel input support from the manager\n * @returns the current input manager\n */\n removeMouseWheel() {\n return this._mouseWheelInput && this.remove(this._mouseWheelInput), this;\n }\n /**\n * Add touch input support to the input manager.\n * @returns the current input manager\n */\n addTouch() {\n return this.add(new C_()), this;\n }\n /**\n * Remove all attached input methods from a camera\n */\n clear() {\n super.clear(), this._mouseInput = null;\n }\n}\nclass cn extends $i {\n /**\n * Gets the input sensibility for a mouse input. (default is 2000.0)\n * Higher values reduce sensitivity.\n */\n get angularSensibility() {\n const e = this.inputs.attached.mouse;\n return e ? e.angularSensibility : 0;\n }\n /**\n * Sets the input sensibility for a mouse input. (default is 2000.0)\n * Higher values reduce sensitivity.\n */\n set angularSensibility(e) {\n const t = this.inputs.attached.mouse;\n t && (t.angularSensibility = e);\n }\n /**\n * Gets or Set the list of keyboard keys used to control the forward move of the camera.\n */\n get keysUp() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysUp : [];\n }\n set keysUp(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysUp = e);\n }\n /**\n * Gets or Set the list of keyboard keys used to control the upward move of the camera.\n */\n get keysUpward() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysUpward : [];\n }\n set keysUpward(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysUpward = e);\n }\n /**\n * Gets or Set the list of keyboard keys used to control the backward move of the camera.\n */\n get keysDown() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysDown : [];\n }\n set keysDown(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysDown = e);\n }\n /**\n * Gets or Set the list of keyboard keys used to control the downward move of the camera.\n */\n get keysDownward() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysDownward : [];\n }\n set keysDownward(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysDownward = e);\n }\n /**\n * Gets or Set the list of keyboard keys used to control the left strafe move of the camera.\n */\n get keysLeft() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysLeft : [];\n }\n set keysLeft(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysLeft = e);\n }\n /**\n * Gets or Set the list of keyboard keys used to control the right strafe move of the camera.\n */\n get keysRight() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysRight : [];\n }\n set keysRight(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysRight = e);\n }\n /**\n * Gets or Set the list of keyboard keys used to control the left rotation move of the camera.\n */\n get keysRotateLeft() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysRotateLeft : [];\n }\n set keysRotateLeft(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysRotateLeft = e);\n }\n /**\n * Gets or Set the list of keyboard keys used to control the right rotation move of the camera.\n */\n get keysRotateRight() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysRotateRight : [];\n }\n set keysRotateRight(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysRotateRight = e);\n }\n /**\n * Gets or Set the list of keyboard keys used to control the up rotation move of the camera.\n */\n get keysRotateUp() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysRotateUp : [];\n }\n set keysRotateUp(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysRotateUp = e);\n }\n /**\n * Gets or Set the list of keyboard keys used to control the down rotation move of the camera.\n */\n get keysRotateDown() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysRotateDown : [];\n }\n set keysRotateDown(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysRotateDown = e);\n }\n /**\n * Instantiates a Free Camera.\n * This represents a free type of camera. It can be useful in First Person Shooter game for instance.\n * Please consider using the new UniversalCamera instead as it adds more functionality like touch to this camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#universal-camera\n * @param name Define the name of the camera in the scene\n * @param position Define the start position of the camera in the scene\n * @param scene Define the scene the camera belongs to\n * @param setActiveOnSceneIfNoneActive Defines whether the camera should be marked as active if not other active cameras have been defined\n */\n constructor(e, t, i, s = !0) {\n super(e, t, i, s), this.ellipsoid = new g(0.5, 1, 0.5), this.ellipsoidOffset = new g(0, 0, 0), this.checkCollisions = !1, this.applyGravity = !1, this._needMoveForGravity = !1, this._oldPosition = g.Zero(), this._diffPosition = g.Zero(), this._newPosition = g.Zero(), this._collisionMask = -1, this._onCollisionPositionChange = (r, n, o = null) => {\n this._newPosition.copyFrom(n), this._newPosition.subtractToRef(this._oldPosition, this._diffPosition), this._diffPosition.length() > ee.CollisionsEpsilon && (this.position.addToRef(this._diffPosition, this._deferredPositionUpdate), this._deferOnly ? this._deferredUpdated = !0 : this.position.copyFrom(this._deferredPositionUpdate), this.onCollide && o && this.onCollide(o));\n }, this.inputs = new A_(this), this.inputs.addKeyboard().addMouse();\n }\n /**\n * Attached controls to the current camera.\n * @param ignored defines an ignored parameter kept for backward compatibility.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e, t) {\n t = J.BackCompatCameraNoPreventDefault(arguments), this.inputs.attachElement(t);\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this.inputs.detachElement(), this.cameraDirection = new g(0, 0, 0), this.cameraRotation = new Q(0, 0);\n }\n /**\n * Define a collision mask to limit the list of object the camera can collide with\n */\n get collisionMask() {\n return this._collisionMask;\n }\n set collisionMask(e) {\n this._collisionMask = isNaN(e) ? -1 : e;\n }\n /**\n * @internal\n */\n _collideWithWorld(e) {\n let t;\n this.parent ? t = g.TransformCoordinates(this.position, this.parent.getWorldMatrix()) : t = this.position, t.subtractFromFloatsToRef(0, this.ellipsoid.y, 0, this._oldPosition), this._oldPosition.addInPlace(this.ellipsoidOffset);\n const i = this.getScene().collisionCoordinator;\n this._collider || (this._collider = i.createCollider()), this._collider._radius = this.ellipsoid, this._collider.collisionMask = this._collisionMask;\n let s = e;\n this.applyGravity && (s = e.add(this.getScene().gravity)), i.getNewPosition(this._oldPosition, s, this._collider, 3, null, this._onCollisionPositionChange, this.uniqueId);\n }\n /** @internal */\n _checkInputs() {\n this._localDirection || (this._localDirection = g.Zero(), this._transformedDirection = g.Zero()), this.inputs.checkInputs(), super._checkInputs();\n }\n /**\n * Enable movement without a user input. This allows gravity to always be applied.\n */\n set needMoveForGravity(e) {\n this._needMoveForGravity = e;\n }\n /**\n * When true, gravity is applied whether there is user input or not.\n */\n get needMoveForGravity() {\n return this._needMoveForGravity;\n }\n /** @internal */\n _decideIfNeedsToMove() {\n return this._needMoveForGravity || Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0;\n }\n /** @internal */\n _updatePosition() {\n this.checkCollisions && this.getScene().collisionsEnabled ? this._collideWithWorld(this.cameraDirection) : super._updatePosition();\n }\n /**\n * Destroy the camera and release the current resources hold by it.\n */\n dispose() {\n this.inputs.clear(), super.dispose();\n }\n /**\n * Gets the current object class name.\n * @returns the class name\n */\n getClassName() {\n return \"FreeCamera\";\n }\n}\ny([\n Zs()\n], cn.prototype, \"ellipsoid\", void 0);\ny([\n Zs()\n], cn.prototype, \"ellipsoidOffset\", void 0);\ny([\n I()\n], cn.prototype, \"checkCollisions\", void 0);\ny([\n I()\n], cn.prototype, \"applyGravity\", void 0);\nU(\"BABYLON.FreeCamera\", cn);\nclass jh extends cn {\n /**\n * Creates a new webXRCamera, this should only be set at the camera after it has been updated by the xrSessionManager\n * @param name the name of the camera\n * @param scene the scene to add the camera to\n * @param _xrSessionManager a constructed xr session manager\n */\n constructor(e, t, i) {\n super(e, g.Zero(), t), this._xrSessionManager = i, this._firstFrame = !1, this._referenceQuaternion = se.Identity(), this._referencedPosition = new g(), this._trackingState = 0, this.onXRCameraInitializedObservable = new G(), this.onBeforeCameraTeleport = new G(), this.onAfterCameraTeleport = new G(), this.onTrackingStateChanged = new G(), this.compensateOnFirstFrame = !0, this._rotate180 = new se(0, 1, 0, 0), this.minZ = 0.1, this.rotationQuaternion = new se(), this.cameraRigMode = Fe.RIG_MODE_CUSTOM, this.updateUpVectorFromRotation = !0, this._updateNumberOfRigCameras(1), this.freezeProjectionMatrix(), this._deferOnly = !0, this._xrSessionManager.onXRSessionInit.add(() => {\n this._referencedPosition.copyFromFloats(0, 0, 0), this._referenceQuaternion.copyFromFloats(0, 0, 0, 1), this._firstFrame = this.compensateOnFirstFrame, this._xrSessionManager.onWorldScaleFactorChangedObservable.add(() => {\n this._xrSessionManager.currentFrame && this._updateDepthNearFar();\n });\n }), this._xrSessionManager.onXRFrameObservable.add(() => {\n this._firstFrame && this._updateFromXRSession(), this.onXRCameraInitializedObservable.hasObservers() && (this.onXRCameraInitializedObservable.notifyObservers(this), this.onXRCameraInitializedObservable.clear()), this._deferredUpdated && (this.position.copyFrom(this._deferredPositionUpdate), this.rotationQuaternion.copyFrom(this._deferredRotationQuaternionUpdate)), this._updateReferenceSpace(), this._updateFromXRSession();\n }, void 0, !0);\n }\n /**\n * Get the current XR tracking state of the camera\n */\n get trackingState() {\n return this._trackingState;\n }\n _setTrackingState(e) {\n this._trackingState !== e && (this._trackingState = e, this.onTrackingStateChanged.notifyObservers(e));\n }\n /**\n * Return the user's height, unrelated to the current ground.\n * This will be the y position of this camera, when ground level is 0.\n *\n * Note - this value is multiplied by the worldScalingFactor (if set), so it will be in the same units as the scene.\n */\n get realWorldHeight() {\n const e = this._xrSessionManager.currentFrame && this._xrSessionManager.currentFrame.getViewerPose(this._xrSessionManager.baseReferenceSpace);\n return e && e.transform ? e.transform.position.y * this._xrSessionManager.worldScalingFactor : 0;\n }\n /** @internal */\n _updateForDualEyeDebugging() {\n this._updateNumberOfRigCameras(2), this.rigCameras[0].viewport = new xr(0, 0, 0.5, 1), this.rigCameras[0].outputRenderTarget = null, this.rigCameras[1].viewport = new xr(0.5, 0, 0.5, 1), this.rigCameras[1].outputRenderTarget = null;\n }\n /**\n * Sets this camera's transformation based on a non-vr camera\n * @param otherCamera the non-vr camera to copy the transformation from\n * @param resetToBaseReferenceSpace should XR reset to the base reference space\n */\n setTransformationFromNonVRCamera(e = this.getScene().activeCamera, t = !0) {\n if (!e || e === this)\n return;\n e.computeWorldMatrix().decompose(void 0, this.rotationQuaternion, this.position), this.position.y = 0, se.FromEulerAnglesToRef(0, this.rotationQuaternion.toEulerAngles().y, 0, this.rotationQuaternion), this._firstFrame = !0, t && this._xrSessionManager.resetReferenceSpace();\n }\n /**\n * Gets the current instance class name (\"WebXRCamera\").\n * @returns the class name\n */\n getClassName() {\n return \"WebXRCamera\";\n }\n /**\n * Set the target for the camera to look at.\n * Note that this only rotates around the Y axis, as opposed to the default behavior of other cameras\n * @param target the target to set the camera to look at\n */\n setTarget(e) {\n const t = w.Vector3[1];\n e.subtractToRef(this.position, t), t.y = 0, t.normalize();\n const i = Math.atan2(t.x, t.z);\n this.rotationQuaternion.toEulerAnglesToRef(t), se.FromEulerAnglesToRef(t.x, i, t.z, this.rotationQuaternion);\n }\n dispose() {\n super.dispose(), this._lastXRViewerPose = void 0;\n }\n _updateDepthNearFar() {\n const e = (this.maxZ || 1e4) * this._xrSessionManager.worldScalingFactor, t = {\n // if maxZ is 0 it should be \"Infinity\", but it doesn't work with the WebXR API. Setting to a large number.\n depthFar: e,\n depthNear: this.minZ\n };\n this._xrSessionManager.updateRenderState(t), this._cache.minZ = this.minZ, this._cache.maxZ = e;\n }\n _updateFromXRSession() {\n const e = this._xrSessionManager.currentFrame && this._xrSessionManager.currentFrame.getViewerPose(this._xrSessionManager.referenceSpace);\n if (this._lastXRViewerPose = e || void 0, !e) {\n this._setTrackingState(\n 0\n /* WebXRTrackingState.NOT_TRACKING */\n );\n return;\n }\n const t = e.emulatedPosition ? 1 : 2;\n if (this._setTrackingState(t), (this.minZ !== this._cache.minZ || this.maxZ !== this._cache.maxZ) && this._updateDepthNearFar(), e.transform) {\n const i = e.transform.orientation;\n if (e.transform.orientation.x === void 0)\n return;\n const s = e.transform.position;\n this._referencedPosition.set(s.x, s.y, s.z).scaleInPlace(this._xrSessionManager.worldScalingFactor), this._referenceQuaternion.set(i.x, i.y, i.z, i.w), this._scene.useRightHandedSystem || (this._referencedPosition.z *= -1, this._referenceQuaternion.z *= -1, this._referenceQuaternion.w *= -1), this._firstFrame ? (this._firstFrame = !1, this.position.y += this._referencedPosition.y, this._referenceQuaternion.copyFromFloats(0, 0, 0, 1)) : (this.rotationQuaternion.copyFrom(this._referenceQuaternion), this.position.copyFrom(this._referencedPosition));\n }\n this.rigCameras.length !== e.views.length && this._updateNumberOfRigCameras(e.views.length), e.views.forEach((i, s) => {\n var u;\n const r = this.rigCameras[s];\n !r.isLeftCamera && !r.isRightCamera && (i.eye === \"right\" ? r._isRightCamera = !0 : i.eye === \"left\" && (r._isLeftCamera = !0));\n const n = this.getScene().customRenderTargets;\n for (let d = 0; d < n.length; d++) {\n const f = n[d];\n r.customRenderTargets.indexOf(f) === -1 && r.customRenderTargets.push(f);\n }\n const o = i.transform.position, l = i.transform.orientation;\n r.parent = this.parent, r.position.set(o.x, o.y, o.z).scaleInPlace(this._xrSessionManager.worldScalingFactor), r.rotationQuaternion.set(l.x, l.y, l.z, l.w), this._scene.useRightHandedSystem ? r.rotationQuaternion.multiplyInPlace(this._rotate180) : (r.position.z *= -1, r.rotationQuaternion.z *= -1, r.rotationQuaternion.w *= -1), O.FromFloat32ArrayToRefScaled(i.projectionMatrix, 0, 1, r._projectionMatrix), this._scene.useRightHandedSystem || r._projectionMatrix.toggleProjectionMatrixHandInPlace();\n const h = Math.atan2(1, i.projectionMatrix[5]) * 2;\n r.fov = h, s === 0 && (this.fov = h, this._projectionMatrix.copyFrom(r._projectionMatrix));\n const c = this._xrSessionManager.getRenderTargetTextureForView(i);\n this._renderingMultiview = ((u = c == null ? void 0 : c._texture) == null ? void 0 : u.isMultiview) || !1, this._renderingMultiview ? s == 0 && (this._xrSessionManager.trySetViewportForView(this.viewport, i), this.outputRenderTarget = c) : (this._xrSessionManager.trySetViewportForView(r.viewport, i), r.outputRenderTarget = c || this._xrSessionManager.getRenderTargetTextureForView(i)), r.layerMask = this.layerMask;\n });\n }\n _updateNumberOfRigCameras(e = 1) {\n for (; this.rigCameras.length < e; ) {\n const t = new $i(\"XR-RigCamera: \" + this.rigCameras.length, g.Zero(), this.getScene());\n t.minZ = 0.1, t.rotationQuaternion = new se(), t.updateUpVectorFromRotation = !0, t.isRigCamera = !0, t.rigParent = this, t.freezeProjectionMatrix(), this.rigCameras.push(t);\n }\n for (; this.rigCameras.length > e; ) {\n const t = this.rigCameras.pop();\n t && t.dispose();\n }\n }\n _updateReferenceSpace() {\n if (!this.position.equals(this._referencedPosition) || !this.rotationQuaternion.equals(this._referenceQuaternion)) {\n const e = w.Matrix[0], t = w.Matrix[1], i = w.Matrix[2];\n O.ComposeToRef(jh._ScaleReadOnly, this._referenceQuaternion, this._referencedPosition, e), O.ComposeToRef(jh._ScaleReadOnly, this.rotationQuaternion, this.position, t), e.invert().multiplyToRef(t, i), i.invert(), this._scene.useRightHandedSystem || i.toggleModelMatrixHandInPlace(), i.decompose(void 0, this._referenceQuaternion, this._referencedPosition);\n const s = new XRRigidTransform({\n x: this._referencedPosition.x / this._xrSessionManager.worldScalingFactor,\n y: this._referencedPosition.y / this._xrSessionManager.worldScalingFactor,\n z: this._referencedPosition.z / this._xrSessionManager.worldScalingFactor\n }, {\n x: this._referenceQuaternion.x,\n y: this._referenceQuaternion.y,\n z: this._referenceQuaternion.z,\n w: this._referenceQuaternion.w\n });\n this._xrSessionManager.referenceSpace = this._xrSessionManager.referenceSpace.getOffsetReferenceSpace(s);\n }\n }\n}\njh._ScaleReadOnly = g.One();\nclass Tt {\n}\nTt.ANCHOR_SYSTEM = \"xr-anchor-system\";\nTt.BACKGROUND_REMOVER = \"xr-background-remover\";\nTt.HIT_TEST = \"xr-hit-test\";\nTt.MESH_DETECTION = \"xr-mesh-detection\";\nTt.PHYSICS_CONTROLLERS = \"xr-physics-controller\";\nTt.PLANE_DETECTION = \"xr-plane-detection\";\nTt.POINTER_SELECTION = \"xr-controller-pointer-selection\";\nTt.TELEPORTATION = \"xr-controller-teleportation\";\nTt.FEATURE_POINTS = \"xr-feature-points\";\nTt.HAND_TRACKING = \"xr-hand-tracking\";\nTt.IMAGE_TRACKING = \"xr-image-tracking\";\nTt.NEAR_INTERACTION = \"xr-near-interaction\";\nTt.DOM_OVERLAY = \"xr-dom-overlay\";\nTt.MOVEMENT = \"xr-controller-movement\";\nTt.LIGHT_ESTIMATION = \"xr-light-estimation\";\nTt.EYE_TRACKING = \"xr-eye-tracking\";\nTt.WALKING_LOCOMOTION = \"xr-walking-locomotion\";\nTt.LAYERS = \"xr-layers\";\nTt.DEPTH_SENSING = \"xr-depth-sensing\";\nTt.SPACE_WARP = \"xr-space-warp\";\nTt.RAW_CAMERA_ACCESS = \"xr-raw-camera-access\";\nclass Ri {\n /**\n * constructs a new features manages.\n *\n * @param _xrSessionManager an instance of WebXRSessionManager\n */\n constructor(e) {\n this._xrSessionManager = e, this._features = {}, this._xrSessionManager.onXRSessionInit.add(() => {\n this.getEnabledFeatures().forEach((t) => {\n const i = this._features[t];\n i.enabled && !i.featureImplementation.attached && !i.featureImplementation.disableAutoAttach && this.attachFeature(t);\n });\n }), this._xrSessionManager.onXRSessionEnded.add(() => {\n this.getEnabledFeatures().forEach((t) => {\n const i = this._features[t];\n i.enabled && i.featureImplementation.attached && this.detachFeature(t);\n });\n });\n }\n /**\n * Used to register a module. After calling this function a developer can use this feature in the scene.\n * Mainly used internally.\n *\n * @param featureName the name of the feature to register\n * @param constructorFunction the function used to construct the module\n * @param version the (babylon) version of the module\n * @param stable is that a stable version of this module\n */\n static AddWebXRFeature(e, t, i = 1, s = !1) {\n this._AvailableFeatures[e] = this._AvailableFeatures[e] || { latest: i }, i > this._AvailableFeatures[e].latest && (this._AvailableFeatures[e].latest = i), s && (this._AvailableFeatures[e].stable = i), this._AvailableFeatures[e][i] = t;\n }\n /**\n * Returns a constructor of a specific feature.\n *\n * @param featureName the name of the feature to construct\n * @param version the version of the feature to load\n * @param xrSessionManager the xrSessionManager. Used to construct the module\n * @param options optional options provided to the module.\n * @returns a function that, when called, will return a new instance of this feature\n */\n static ConstructFeature(e, t = 1, i, s) {\n const r = this._AvailableFeatures[e][t];\n if (!r)\n throw new Error(\"feature not found\");\n return r(i, s);\n }\n /**\n * Can be used to return the list of features currently registered\n *\n * @returns an Array of available features\n */\n static GetAvailableFeatures() {\n return Object.keys(this._AvailableFeatures);\n }\n /**\n * Gets the versions available for a specific feature\n * @param featureName the name of the feature\n * @returns an array with the available versions\n */\n static GetAvailableVersions(e) {\n return Object.keys(this._AvailableFeatures[e]);\n }\n /**\n * Return the latest unstable version of this feature\n * @param featureName the name of the feature to search\n * @returns the version number. if not found will return -1\n */\n static GetLatestVersionOfFeature(e) {\n return this._AvailableFeatures[e] && this._AvailableFeatures[e].latest || -1;\n }\n /**\n * Return the latest stable version of this feature\n * @param featureName the name of the feature to search\n * @returns the version number. if not found will return -1\n */\n static GetStableVersionOfFeature(e) {\n return this._AvailableFeatures[e] && this._AvailableFeatures[e].stable || -1;\n }\n /**\n * Attach a feature to the current session. Mainly used when session started to start the feature effect.\n * Can be used during a session to start a feature\n * @param featureName the name of feature to attach\n */\n attachFeature(e) {\n const t = this._features[e];\n t && t.enabled && !t.featureImplementation.attached && (t.featureImplementation.attach() || J.Warn(`Feature ${e} failed to attach`));\n }\n /**\n * Can be used inside a session or when the session ends to detach a specific feature\n * @param featureName the name of the feature to detach\n */\n detachFeature(e) {\n const t = this._features[e];\n t && t.featureImplementation.attached && (t.featureImplementation.detach() || J.Warn(`Feature ${e} failed to detach`));\n }\n /**\n * Used to disable an already-enabled feature\n * The feature will be disposed and will be recreated once enabled.\n * @param featureName the feature to disable\n * @returns true if disable was successful\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n disableFeature(e) {\n const t = typeof e == \"string\" ? e : e.Name, i = this._features[t];\n return i && i.enabled ? (i.enabled = !1, this.detachFeature(t), i.featureImplementation.dispose(), delete this._features[t], !0) : !1;\n }\n /**\n * dispose this features manager\n */\n dispose() {\n this.getEnabledFeatures().forEach((e) => {\n this.disableFeature(e);\n });\n }\n /**\n * Enable a feature using its name and a version. This will enable it in the scene, and will be responsible to attach it when the session starts.\n * If used twice, the old version will be disposed and a new one will be constructed. This way you can re-enable with different configuration.\n *\n * @param featureName the name of the feature to load or the class of the feature\n * @param version optional version to load. if not provided the latest version will be enabled\n * @param moduleOptions options provided to the module. Ses the module documentation / constructor\n * @param attachIfPossible if set to true (default) the feature will be automatically attached, if it is currently possible\n * @param required is this feature required to the app. If set to true the session init will fail if the feature is not available.\n * @returns a new constructed feature or throws an error if feature not found or conflicts with another enabled feature.\n */\n enableFeature(e, t = \"latest\", i = {}, s = !0, r = !0) {\n const n = typeof e == \"string\" ? e : e.Name;\n let o = 0;\n if (typeof t == \"string\") {\n if (!t)\n throw new Error(`Error in provided version - ${n} (${t})`);\n if (t === \"stable\" ? o = Ri.GetStableVersionOfFeature(n) : t === \"latest\" ? o = Ri.GetLatestVersionOfFeature(n) : o = +t, o === -1 || isNaN(o))\n throw new Error(`feature not found - ${n} (${t})`);\n } else\n o = t;\n const l = Ri._ConflictingFeatures[n];\n if (l !== void 0 && this.getEnabledFeatures().indexOf(l) !== -1)\n throw new Error(`Feature ${n} cannot be enabled while ${l} is enabled.`);\n const h = this._features[n], c = Ri.ConstructFeature(n, o, this._xrSessionManager, i);\n if (!c)\n throw new Error(`feature not found - ${n}`);\n h && this.disableFeature(n);\n const u = c();\n if (u.dependsOn && !u.dependsOn.every((f) => !!this._features[f]))\n throw new Error(`Dependant features missing. Make sure the following features are enabled - ${u.dependsOn.join(\", \")}`);\n if (u.isCompatible())\n return this._features[n] = {\n featureImplementation: u,\n enabled: !0,\n version: o,\n required: r\n }, s ? this._xrSessionManager.session && !this._features[n].featureImplementation.attached && this.attachFeature(n) : this._features[n].featureImplementation.disableAutoAttach = !0, this._features[n].featureImplementation;\n if (r)\n throw new Error(\"required feature not compatible\");\n return J.Warn(`Feature ${n} not compatible with the current environment/browser and was not enabled.`), u;\n }\n /**\n * get the implementation of an enabled feature.\n * @param featureName the name of the feature to load\n * @returns the feature class, if found\n */\n getEnabledFeature(e) {\n return this._features[e] && this._features[e].featureImplementation;\n }\n /**\n * Get the list of enabled features\n * @returns an array of enabled features\n */\n getEnabledFeatures() {\n return Object.keys(this._features);\n }\n /**\n * This function will extend the session creation configuration object with enabled features.\n * If, for example, the anchors feature is enabled, it will be automatically added to the optional or required features list,\n * according to the defined \"required\" variable, provided during enableFeature call\n * @param xrSessionInit the xr Session init object to extend\n *\n * @returns an extended XRSessionInit object\n */\n async _extendXRSessionInitObject(e) {\n const t = this.getEnabledFeatures();\n for (const i of t) {\n const s = this._features[i], r = s.featureImplementation.xrNativeFeatureName;\n if (r && (s.required ? (e.requiredFeatures = e.requiredFeatures || [], e.requiredFeatures.indexOf(r) === -1 && e.requiredFeatures.push(r)) : (e.optionalFeatures = e.optionalFeatures || [], e.optionalFeatures.indexOf(r) === -1 && e.optionalFeatures.push(r))), s.featureImplementation.getXRSessionInitExtension) {\n const n = await s.featureImplementation.getXRSessionInitExtension();\n e = {\n ...e,\n ...n\n };\n }\n }\n return e;\n }\n}\nRi._AvailableFeatures = {};\nRi._ConflictingFeatures = {\n [Tt.TELEPORTATION]: Tt.MOVEMENT,\n [Tt.MOVEMENT]: Tt.TELEPORTATION\n};\nLt.AddNodeConstructor(\"TouchCamera\", (a, e) => () => new l0(a, g.Zero(), e));\nclass l0 extends cn {\n /**\n * Defines the touch sensibility for rotation.\n * The higher the faster.\n */\n get touchAngularSensibility() {\n const e = this.inputs.attached.touch;\n return e ? e.touchAngularSensibility : 0;\n }\n set touchAngularSensibility(e) {\n const t = this.inputs.attached.touch;\n t && (t.touchAngularSensibility = e);\n }\n /**\n * Defines the touch sensibility for move.\n * The higher the faster.\n */\n get touchMoveSensibility() {\n const e = this.inputs.attached.touch;\n return e ? e.touchMoveSensibility : 0;\n }\n set touchMoveSensibility(e) {\n const t = this.inputs.attached.touch;\n t && (t.touchMoveSensibility = e);\n }\n /**\n * Instantiates a new touch camera.\n * This represents a FPS type of camera controlled by touch.\n * This is like a universal camera minus the Gamepad controls.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#universal-camera\n * @param name Define the name of the camera in the scene\n * @param position Define the start position of the camera in the scene\n * @param scene Define the scene the camera belongs to\n */\n constructor(e, t, i) {\n super(e, t, i), this.inputs.addTouch(), this._setupInputs();\n }\n /**\n * Gets the current object class name.\n * @returns the class name\n */\n getClassName() {\n return \"TouchCamera\";\n }\n /** @internal */\n _setupInputs() {\n const e = this.inputs.attached.touch, t = this.inputs.attached.mouse;\n t ? t.touchEnabled = !e : e.allowMouse = !t;\n }\n}\nclass Zj {\n /**\n * Initializes the gamepad x and y control stick values\n * @param x The x component of the gamepad control stick value\n * @param y The y component of the gamepad control stick value\n */\n constructor(e, t) {\n this.x = e, this.y = t;\n }\n}\nclass Os {\n /**\n * Specifies if the gamepad has been connected\n */\n get isConnected() {\n return this._isConnected;\n }\n /**\n * Initializes the gamepad\n * @param id The id of the gamepad\n * @param index The index of the gamepad\n * @param browserGamepad The browser gamepad\n * @param leftStickX The x component of the left joystick\n * @param leftStickY The y component of the left joystick\n * @param rightStickX The x component of the right joystick\n * @param rightStickY The y component of the right joystick\n */\n constructor(e, t, i, s = 0, r = 1, n = 2, o = 3) {\n this.id = e, this.index = t, this.browserGamepad = i, this._leftStick = { x: 0, y: 0 }, this._rightStick = { x: 0, y: 0 }, this._isConnected = !0, this._invertLeftStickY = !1, this.type = Os.GAMEPAD, this._leftStickAxisX = s, this._leftStickAxisY = r, this._rightStickAxisX = n, this._rightStickAxisY = o, this.browserGamepad.axes.length >= 2 && (this._leftStick = { x: this.browserGamepad.axes[this._leftStickAxisX], y: this.browserGamepad.axes[this._leftStickAxisY] }), this.browserGamepad.axes.length >= 4 && (this._rightStick = { x: this.browserGamepad.axes[this._rightStickAxisX], y: this.browserGamepad.axes[this._rightStickAxisY] });\n }\n /**\n * Callback triggered when the left joystick has changed\n * @param callback callback to trigger\n */\n onleftstickchanged(e) {\n this._onleftstickchanged = e;\n }\n /**\n * Callback triggered when the right joystick has changed\n * @param callback callback to trigger\n */\n onrightstickchanged(e) {\n this._onrightstickchanged = e;\n }\n /**\n * Gets the left joystick\n */\n get leftStick() {\n return this._leftStick;\n }\n /**\n * Sets the left joystick values\n */\n set leftStick(e) {\n this._onleftstickchanged && (this._leftStick.x !== e.x || this._leftStick.y !== e.y) && this._onleftstickchanged(e), this._leftStick = e;\n }\n /**\n * Gets the right joystick\n */\n get rightStick() {\n return this._rightStick;\n }\n /**\n * Sets the right joystick value\n */\n set rightStick(e) {\n this._onrightstickchanged && (this._rightStick.x !== e.x || this._rightStick.y !== e.y) && this._onrightstickchanged(e), this._rightStick = e;\n }\n /**\n * Updates the gamepad joystick positions\n */\n update() {\n this._leftStick && (this.leftStick = { x: this.browserGamepad.axes[this._leftStickAxisX], y: this.browserGamepad.axes[this._leftStickAxisY] }, this._invertLeftStickY && (this.leftStick.y *= -1)), this._rightStick && (this.rightStick = { x: this.browserGamepad.axes[this._rightStickAxisX], y: this.browserGamepad.axes[this._rightStickAxisY] });\n }\n /**\n * Disposes the gamepad\n */\n dispose() {\n }\n}\nOs.GAMEPAD = 0;\nOs.GENERIC = 1;\nOs.XBOX = 2;\nOs.POSE_ENABLED = 3;\nOs.DUALSHOCK = 4;\nclass vw extends Os {\n /**\n * Callback triggered when a button has been pressed\n * @param callback Called when a button has been pressed\n */\n onbuttondown(e) {\n this._onbuttondown = e;\n }\n /**\n * Callback triggered when a button has been released\n * @param callback Called when a button has been released\n */\n onbuttonup(e) {\n this._onbuttonup = e;\n }\n /**\n * Initializes the generic gamepad\n * @param id The id of the generic gamepad\n * @param index The index of the generic gamepad\n * @param browserGamepad The browser gamepad\n */\n constructor(e, t, i) {\n super(e, t, i), this.onButtonDownObservable = new G(), this.onButtonUpObservable = new G(), this.type = Os.GENERIC, this._buttons = new Array(i.buttons.length);\n }\n _setButtonValue(e, t, i) {\n return e !== t && (e === 1 && (this._onbuttondown && this._onbuttondown(i), this.onButtonDownObservable.notifyObservers(i)), e === 0 && (this._onbuttonup && this._onbuttonup(i), this.onButtonUpObservable.notifyObservers(i))), e;\n }\n /**\n * Updates the generic gamepad\n */\n update() {\n super.update();\n for (let e = 0; e < this._buttons.length; e++)\n this._buttons[e] = this._setButtonValue(this.browserGamepad.buttons[e].value, this._buttons[e], e);\n }\n /**\n * Disposes the generic gamepad\n */\n dispose() {\n super.dispose(), this.onButtonDownObservable.clear(), this.onButtonUpObservable.clear();\n }\n}\nvar Ob;\n(function(a) {\n a[a.A = 0] = \"A\", a[a.B = 1] = \"B\", a[a.X = 2] = \"X\", a[a.Y = 3] = \"Y\", a[a.LB = 4] = \"LB\", a[a.RB = 5] = \"RB\", a[a.Back = 8] = \"Back\", a[a.Start = 9] = \"Start\", a[a.LeftStick = 10] = \"LeftStick\", a[a.RightStick = 11] = \"RightStick\";\n})(Ob || (Ob = {}));\nvar wb;\n(function(a) {\n a[a.Up = 12] = \"Up\", a[a.Down = 13] = \"Down\", a[a.Left = 14] = \"Left\", a[a.Right = 15] = \"Right\";\n})(wb || (wb = {}));\nclass Tw extends Os {\n /**\n * Creates a new XBox360 gamepad object\n * @param id defines the id of this gamepad\n * @param index defines its index\n * @param gamepad defines the internal HTML gamepad object\n * @param xboxOne defines if it is a XBox One gamepad\n */\n constructor(e, t, i, s = !1) {\n super(e, t, i, 0, 1, 2, 3), this._leftTrigger = 0, this._rightTrigger = 0, this.onButtonDownObservable = new G(), this.onButtonUpObservable = new G(), this.onPadDownObservable = new G(), this.onPadUpObservable = new G(), this._buttonA = 0, this._buttonB = 0, this._buttonX = 0, this._buttonY = 0, this._buttonBack = 0, this._buttonStart = 0, this._buttonLB = 0, this._buttonRB = 0, this._buttonLeftStick = 0, this._buttonRightStick = 0, this._dPadUp = 0, this._dPadDown = 0, this._dPadLeft = 0, this._dPadRight = 0, this._isXboxOnePad = !1, this.type = Os.XBOX, this._isXboxOnePad = s;\n }\n /**\n * Defines the callback to call when left trigger is pressed\n * @param callback defines the callback to use\n */\n onlefttriggerchanged(e) {\n this._onlefttriggerchanged = e;\n }\n /**\n * Defines the callback to call when right trigger is pressed\n * @param callback defines the callback to use\n */\n onrighttriggerchanged(e) {\n this._onrighttriggerchanged = e;\n }\n /**\n * Gets the left trigger value\n */\n get leftTrigger() {\n return this._leftTrigger;\n }\n /**\n * Sets the left trigger value\n */\n set leftTrigger(e) {\n this._onlefttriggerchanged && this._leftTrigger !== e && this._onlefttriggerchanged(e), this._leftTrigger = e;\n }\n /**\n * Gets the right trigger value\n */\n get rightTrigger() {\n return this._rightTrigger;\n }\n /**\n * Sets the right trigger value\n */\n set rightTrigger(e) {\n this._onrighttriggerchanged && this._rightTrigger !== e && this._onrighttriggerchanged(e), this._rightTrigger = e;\n }\n /**\n * Defines the callback to call when a button is pressed\n * @param callback defines the callback to use\n */\n onbuttondown(e) {\n this._onbuttondown = e;\n }\n /**\n * Defines the callback to call when a button is released\n * @param callback defines the callback to use\n */\n onbuttonup(e) {\n this._onbuttonup = e;\n }\n /**\n * Defines the callback to call when a pad is pressed\n * @param callback defines the callback to use\n */\n ondpaddown(e) {\n this._ondpaddown = e;\n }\n /**\n * Defines the callback to call when a pad is released\n * @param callback defines the callback to use\n */\n ondpadup(e) {\n this._ondpadup = e;\n }\n _setButtonValue(e, t, i) {\n return e !== t && (e === 1 && (this._onbuttondown && this._onbuttondown(i), this.onButtonDownObservable.notifyObservers(i)), e === 0 && (this._onbuttonup && this._onbuttonup(i), this.onButtonUpObservable.notifyObservers(i))), e;\n }\n _setDPadValue(e, t, i) {\n return e !== t && (e === 1 && (this._ondpaddown && this._ondpaddown(i), this.onPadDownObservable.notifyObservers(i)), e === 0 && (this._ondpadup && this._ondpadup(i), this.onPadUpObservable.notifyObservers(i))), e;\n }\n /**\n * Gets the value of the `A` button\n */\n get buttonA() {\n return this._buttonA;\n }\n /**\n * Sets the value of the `A` button\n */\n set buttonA(e) {\n this._buttonA = this._setButtonValue(\n e,\n this._buttonA,\n 0\n /* Xbox360Button.A */\n );\n }\n /**\n * Gets the value of the `B` button\n */\n get buttonB() {\n return this._buttonB;\n }\n /**\n * Sets the value of the `B` button\n */\n set buttonB(e) {\n this._buttonB = this._setButtonValue(\n e,\n this._buttonB,\n 1\n /* Xbox360Button.B */\n );\n }\n /**\n * Gets the value of the `X` button\n */\n get buttonX() {\n return this._buttonX;\n }\n /**\n * Sets the value of the `X` button\n */\n set buttonX(e) {\n this._buttonX = this._setButtonValue(\n e,\n this._buttonX,\n 2\n /* Xbox360Button.X */\n );\n }\n /**\n * Gets the value of the `Y` button\n */\n get buttonY() {\n return this._buttonY;\n }\n /**\n * Sets the value of the `Y` button\n */\n set buttonY(e) {\n this._buttonY = this._setButtonValue(\n e,\n this._buttonY,\n 3\n /* Xbox360Button.Y */\n );\n }\n /**\n * Gets the value of the `Start` button\n */\n get buttonStart() {\n return this._buttonStart;\n }\n /**\n * Sets the value of the `Start` button\n */\n set buttonStart(e) {\n this._buttonStart = this._setButtonValue(\n e,\n this._buttonStart,\n 9\n /* Xbox360Button.Start */\n );\n }\n /**\n * Gets the value of the `Back` button\n */\n get buttonBack() {\n return this._buttonBack;\n }\n /**\n * Sets the value of the `Back` button\n */\n set buttonBack(e) {\n this._buttonBack = this._setButtonValue(\n e,\n this._buttonBack,\n 8\n /* Xbox360Button.Back */\n );\n }\n /**\n * Gets the value of the `Left` button\n */\n get buttonLB() {\n return this._buttonLB;\n }\n /**\n * Sets the value of the `Left` button\n */\n set buttonLB(e) {\n this._buttonLB = this._setButtonValue(\n e,\n this._buttonLB,\n 4\n /* Xbox360Button.LB */\n );\n }\n /**\n * Gets the value of the `Right` button\n */\n get buttonRB() {\n return this._buttonRB;\n }\n /**\n * Sets the value of the `Right` button\n */\n set buttonRB(e) {\n this._buttonRB = this._setButtonValue(\n e,\n this._buttonRB,\n 5\n /* Xbox360Button.RB */\n );\n }\n /**\n * Gets the value of the Left joystick\n */\n get buttonLeftStick() {\n return this._buttonLeftStick;\n }\n /**\n * Sets the value of the Left joystick\n */\n set buttonLeftStick(e) {\n this._buttonLeftStick = this._setButtonValue(\n e,\n this._buttonLeftStick,\n 10\n /* Xbox360Button.LeftStick */\n );\n }\n /**\n * Gets the value of the Right joystick\n */\n get buttonRightStick() {\n return this._buttonRightStick;\n }\n /**\n * Sets the value of the Right joystick\n */\n set buttonRightStick(e) {\n this._buttonRightStick = this._setButtonValue(\n e,\n this._buttonRightStick,\n 11\n /* Xbox360Button.RightStick */\n );\n }\n /**\n * Gets the value of D-pad up\n */\n get dPadUp() {\n return this._dPadUp;\n }\n /**\n * Sets the value of D-pad up\n */\n set dPadUp(e) {\n this._dPadUp = this._setDPadValue(\n e,\n this._dPadUp,\n 12\n /* Xbox360Dpad.Up */\n );\n }\n /**\n * Gets the value of D-pad down\n */\n get dPadDown() {\n return this._dPadDown;\n }\n /**\n * Sets the value of D-pad down\n */\n set dPadDown(e) {\n this._dPadDown = this._setDPadValue(\n e,\n this._dPadDown,\n 13\n /* Xbox360Dpad.Down */\n );\n }\n /**\n * Gets the value of D-pad left\n */\n get dPadLeft() {\n return this._dPadLeft;\n }\n /**\n * Sets the value of D-pad left\n */\n set dPadLeft(e) {\n this._dPadLeft = this._setDPadValue(\n e,\n this._dPadLeft,\n 14\n /* Xbox360Dpad.Left */\n );\n }\n /**\n * Gets the value of D-pad right\n */\n get dPadRight() {\n return this._dPadRight;\n }\n /**\n * Sets the value of D-pad right\n */\n set dPadRight(e) {\n this._dPadRight = this._setDPadValue(\n e,\n this._dPadRight,\n 15\n /* Xbox360Dpad.Right */\n );\n }\n /**\n * Force the gamepad to synchronize with device values\n */\n update() {\n super.update(), this._isXboxOnePad ? (this.buttonA = this.browserGamepad.buttons[0].value, this.buttonB = this.browserGamepad.buttons[1].value, this.buttonX = this.browserGamepad.buttons[2].value, this.buttonY = this.browserGamepad.buttons[3].value, this.buttonLB = this.browserGamepad.buttons[4].value, this.buttonRB = this.browserGamepad.buttons[5].value, this.leftTrigger = this.browserGamepad.buttons[6].value, this.rightTrigger = this.browserGamepad.buttons[7].value, this.buttonBack = this.browserGamepad.buttons[8].value, this.buttonStart = this.browserGamepad.buttons[9].value, this.buttonLeftStick = this.browserGamepad.buttons[10].value, this.buttonRightStick = this.browserGamepad.buttons[11].value, this.dPadUp = this.browserGamepad.buttons[12].value, this.dPadDown = this.browserGamepad.buttons[13].value, this.dPadLeft = this.browserGamepad.buttons[14].value, this.dPadRight = this.browserGamepad.buttons[15].value) : (this.buttonA = this.browserGamepad.buttons[0].value, this.buttonB = this.browserGamepad.buttons[1].value, this.buttonX = this.browserGamepad.buttons[2].value, this.buttonY = this.browserGamepad.buttons[3].value, this.buttonLB = this.browserGamepad.buttons[4].value, this.buttonRB = this.browserGamepad.buttons[5].value, this.leftTrigger = this.browserGamepad.buttons[6].value, this.rightTrigger = this.browserGamepad.buttons[7].value, this.buttonBack = this.browserGamepad.buttons[8].value, this.buttonStart = this.browserGamepad.buttons[9].value, this.buttonLeftStick = this.browserGamepad.buttons[10].value, this.buttonRightStick = this.browserGamepad.buttons[11].value, this.dPadUp = this.browserGamepad.buttons[12].value, this.dPadDown = this.browserGamepad.buttons[13].value, this.dPadLeft = this.browserGamepad.buttons[14].value, this.dPadRight = this.browserGamepad.buttons[15].value);\n }\n /**\n * Disposes the gamepad\n */\n dispose() {\n super.dispose(), this.onButtonDownObservable.clear(), this.onButtonUpObservable.clear(), this.onPadDownObservable.clear(), this.onPadUpObservable.clear();\n }\n}\nvar Nb;\n(function(a) {\n a[a.Cross = 0] = \"Cross\", a[a.Circle = 1] = \"Circle\", a[a.Square = 2] = \"Square\", a[a.Triangle = 3] = \"Triangle\", a[a.L1 = 4] = \"L1\", a[a.R1 = 5] = \"R1\", a[a.Share = 8] = \"Share\", a[a.Options = 9] = \"Options\", a[a.LeftStick = 10] = \"LeftStick\", a[a.RightStick = 11] = \"RightStick\";\n})(Nb || (Nb = {}));\nvar Fb;\n(function(a) {\n a[a.Up = 12] = \"Up\", a[a.Down = 13] = \"Down\", a[a.Left = 14] = \"Left\", a[a.Right = 15] = \"Right\";\n})(Fb || (Fb = {}));\nclass Sw extends Os {\n /**\n * Creates a new DualShock gamepad object\n * @param id defines the id of this gamepad\n * @param index defines its index\n * @param gamepad defines the internal HTML gamepad object\n */\n constructor(e, t, i) {\n super(e.replace(\"STANDARD GAMEPAD\", \"SONY PLAYSTATION DUALSHOCK\"), t, i, 0, 1, 2, 3), this._leftTrigger = 0, this._rightTrigger = 0, this.onButtonDownObservable = new G(), this.onButtonUpObservable = new G(), this.onPadDownObservable = new G(), this.onPadUpObservable = new G(), this._buttonCross = 0, this._buttonCircle = 0, this._buttonSquare = 0, this._buttonTriangle = 0, this._buttonShare = 0, this._buttonOptions = 0, this._buttonL1 = 0, this._buttonR1 = 0, this._buttonLeftStick = 0, this._buttonRightStick = 0, this._dPadUp = 0, this._dPadDown = 0, this._dPadLeft = 0, this._dPadRight = 0, this.type = Os.DUALSHOCK;\n }\n /**\n * Defines the callback to call when left trigger is pressed\n * @param callback defines the callback to use\n */\n onlefttriggerchanged(e) {\n this._onlefttriggerchanged = e;\n }\n /**\n * Defines the callback to call when right trigger is pressed\n * @param callback defines the callback to use\n */\n onrighttriggerchanged(e) {\n this._onrighttriggerchanged = e;\n }\n /**\n * Gets the left trigger value\n */\n get leftTrigger() {\n return this._leftTrigger;\n }\n /**\n * Sets the left trigger value\n */\n set leftTrigger(e) {\n this._onlefttriggerchanged && this._leftTrigger !== e && this._onlefttriggerchanged(e), this._leftTrigger = e;\n }\n /**\n * Gets the right trigger value\n */\n get rightTrigger() {\n return this._rightTrigger;\n }\n /**\n * Sets the right trigger value\n */\n set rightTrigger(e) {\n this._onrighttriggerchanged && this._rightTrigger !== e && this._onrighttriggerchanged(e), this._rightTrigger = e;\n }\n /**\n * Defines the callback to call when a button is pressed\n * @param callback defines the callback to use\n */\n onbuttondown(e) {\n this._onbuttondown = e;\n }\n /**\n * Defines the callback to call when a button is released\n * @param callback defines the callback to use\n */\n onbuttonup(e) {\n this._onbuttonup = e;\n }\n /**\n * Defines the callback to call when a pad is pressed\n * @param callback defines the callback to use\n */\n ondpaddown(e) {\n this._ondpaddown = e;\n }\n /**\n * Defines the callback to call when a pad is released\n * @param callback defines the callback to use\n */\n ondpadup(e) {\n this._ondpadup = e;\n }\n _setButtonValue(e, t, i) {\n return e !== t && (e === 1 && (this._onbuttondown && this._onbuttondown(i), this.onButtonDownObservable.notifyObservers(i)), e === 0 && (this._onbuttonup && this._onbuttonup(i), this.onButtonUpObservable.notifyObservers(i))), e;\n }\n _setDPadValue(e, t, i) {\n return e !== t && (e === 1 && (this._ondpaddown && this._ondpaddown(i), this.onPadDownObservable.notifyObservers(i)), e === 0 && (this._ondpadup && this._ondpadup(i), this.onPadUpObservable.notifyObservers(i))), e;\n }\n /**\n * Gets the value of the `Cross` button\n */\n get buttonCross() {\n return this._buttonCross;\n }\n /**\n * Sets the value of the `Cross` button\n */\n set buttonCross(e) {\n this._buttonCross = this._setButtonValue(\n e,\n this._buttonCross,\n 0\n /* DualShockButton.Cross */\n );\n }\n /**\n * Gets the value of the `Circle` button\n */\n get buttonCircle() {\n return this._buttonCircle;\n }\n /**\n * Sets the value of the `Circle` button\n */\n set buttonCircle(e) {\n this._buttonCircle = this._setButtonValue(\n e,\n this._buttonCircle,\n 1\n /* DualShockButton.Circle */\n );\n }\n /**\n * Gets the value of the `Square` button\n */\n get buttonSquare() {\n return this._buttonSquare;\n }\n /**\n * Sets the value of the `Square` button\n */\n set buttonSquare(e) {\n this._buttonSquare = this._setButtonValue(\n e,\n this._buttonSquare,\n 2\n /* DualShockButton.Square */\n );\n }\n /**\n * Gets the value of the `Triangle` button\n */\n get buttonTriangle() {\n return this._buttonTriangle;\n }\n /**\n * Sets the value of the `Triangle` button\n */\n set buttonTriangle(e) {\n this._buttonTriangle = this._setButtonValue(\n e,\n this._buttonTriangle,\n 3\n /* DualShockButton.Triangle */\n );\n }\n /**\n * Gets the value of the `Options` button\n */\n get buttonOptions() {\n return this._buttonOptions;\n }\n /**\n * Sets the value of the `Options` button\n */\n set buttonOptions(e) {\n this._buttonOptions = this._setButtonValue(\n e,\n this._buttonOptions,\n 9\n /* DualShockButton.Options */\n );\n }\n /**\n * Gets the value of the `Share` button\n */\n get buttonShare() {\n return this._buttonShare;\n }\n /**\n * Sets the value of the `Share` button\n */\n set buttonShare(e) {\n this._buttonShare = this._setButtonValue(\n e,\n this._buttonShare,\n 8\n /* DualShockButton.Share */\n );\n }\n /**\n * Gets the value of the `L1` button\n */\n get buttonL1() {\n return this._buttonL1;\n }\n /**\n * Sets the value of the `L1` button\n */\n set buttonL1(e) {\n this._buttonL1 = this._setButtonValue(\n e,\n this._buttonL1,\n 4\n /* DualShockButton.L1 */\n );\n }\n /**\n * Gets the value of the `R1` button\n */\n get buttonR1() {\n return this._buttonR1;\n }\n /**\n * Sets the value of the `R1` button\n */\n set buttonR1(e) {\n this._buttonR1 = this._setButtonValue(\n e,\n this._buttonR1,\n 5\n /* DualShockButton.R1 */\n );\n }\n /**\n * Gets the value of the Left joystick\n */\n get buttonLeftStick() {\n return this._buttonLeftStick;\n }\n /**\n * Sets the value of the Left joystick\n */\n set buttonLeftStick(e) {\n this._buttonLeftStick = this._setButtonValue(\n e,\n this._buttonLeftStick,\n 10\n /* DualShockButton.LeftStick */\n );\n }\n /**\n * Gets the value of the Right joystick\n */\n get buttonRightStick() {\n return this._buttonRightStick;\n }\n /**\n * Sets the value of the Right joystick\n */\n set buttonRightStick(e) {\n this._buttonRightStick = this._setButtonValue(\n e,\n this._buttonRightStick,\n 11\n /* DualShockButton.RightStick */\n );\n }\n /**\n * Gets the value of D-pad up\n */\n get dPadUp() {\n return this._dPadUp;\n }\n /**\n * Sets the value of D-pad up\n */\n set dPadUp(e) {\n this._dPadUp = this._setDPadValue(\n e,\n this._dPadUp,\n 12\n /* DualShockDpad.Up */\n );\n }\n /**\n * Gets the value of D-pad down\n */\n get dPadDown() {\n return this._dPadDown;\n }\n /**\n * Sets the value of D-pad down\n */\n set dPadDown(e) {\n this._dPadDown = this._setDPadValue(\n e,\n this._dPadDown,\n 13\n /* DualShockDpad.Down */\n );\n }\n /**\n * Gets the value of D-pad left\n */\n get dPadLeft() {\n return this._dPadLeft;\n }\n /**\n * Sets the value of D-pad left\n */\n set dPadLeft(e) {\n this._dPadLeft = this._setDPadValue(\n e,\n this._dPadLeft,\n 14\n /* DualShockDpad.Left */\n );\n }\n /**\n * Gets the value of D-pad right\n */\n get dPadRight() {\n return this._dPadRight;\n }\n /**\n * Sets the value of D-pad right\n */\n set dPadRight(e) {\n this._dPadRight = this._setDPadValue(\n e,\n this._dPadRight,\n 15\n /* DualShockDpad.Right */\n );\n }\n /**\n * Force the gamepad to synchronize with device values\n */\n update() {\n super.update(), this.buttonCross = this.browserGamepad.buttons[0].value, this.buttonCircle = this.browserGamepad.buttons[1].value, this.buttonSquare = this.browserGamepad.buttons[2].value, this.buttonTriangle = this.browserGamepad.buttons[3].value, this.buttonL1 = this.browserGamepad.buttons[4].value, this.buttonR1 = this.browserGamepad.buttons[5].value, this.leftTrigger = this.browserGamepad.buttons[6].value, this.rightTrigger = this.browserGamepad.buttons[7].value, this.buttonShare = this.browserGamepad.buttons[8].value, this.buttonOptions = this.browserGamepad.buttons[9].value, this.buttonLeftStick = this.browserGamepad.buttons[10].value, this.buttonRightStick = this.browserGamepad.buttons[11].value, this.dPadUp = this.browserGamepad.buttons[12].value, this.dPadDown = this.browserGamepad.buttons[13].value, this.dPadLeft = this.browserGamepad.buttons[14].value, this.dPadRight = this.browserGamepad.buttons[15].value;\n }\n /**\n * Disposes the gamepad\n */\n dispose() {\n super.dispose(), this.onButtonDownObservable.clear(), this.onButtonUpObservable.clear(), this.onPadDownObservable.clear(), this.onPadUpObservable.clear();\n }\n}\nclass bw {\n /**\n * Initializes the gamepad manager\n * @param _scene BabylonJS scene\n */\n constructor(e) {\n if (this._scene = e, this._babylonGamepads = [], this._oneGamepadConnected = !1, this._isMonitoring = !1, this.onGamepadDisconnectedObservable = new G(), us() ? (this._gamepadEventSupported = \"GamepadEvent\" in window, this._gamepadSupport = navigator && navigator.getGamepads) : this._gamepadEventSupported = !1, this.onGamepadConnectedObservable = new G((t) => {\n for (const i in this._babylonGamepads) {\n const s = this._babylonGamepads[i];\n s && s._isConnected && this.onGamepadConnectedObservable.notifyObserver(t, s);\n }\n }), this._onGamepadConnectedEvent = (t) => {\n const i = t.gamepad;\n if (i.index in this._babylonGamepads && this._babylonGamepads[i.index].isConnected)\n return;\n let s;\n this._babylonGamepads[i.index] ? (s = this._babylonGamepads[i.index], s.browserGamepad = i, s._isConnected = !0) : s = this._addNewGamepad(i), this.onGamepadConnectedObservable.notifyObservers(s), this._startMonitoringGamepads();\n }, this._onGamepadDisconnectedEvent = (t) => {\n const i = t.gamepad;\n for (const s in this._babylonGamepads)\n if (this._babylonGamepads[s].index === i.index) {\n const r = this._babylonGamepads[s];\n r._isConnected = !1, this.onGamepadDisconnectedObservable.notifyObservers(r), r.dispose && r.dispose();\n break;\n }\n }, this._gamepadSupport)\n if (this._updateGamepadObjects(), this._babylonGamepads.length && this._startMonitoringGamepads(), this._gamepadEventSupported) {\n const t = this._scene ? this._scene.getEngine().getHostWindow() : window;\n t && (t.addEventListener(\"gamepadconnected\", this._onGamepadConnectedEvent, !1), t.addEventListener(\"gamepaddisconnected\", this._onGamepadDisconnectedEvent, !1));\n } else\n this._startMonitoringGamepads();\n }\n /**\n * The gamepads in the game pad manager\n */\n get gamepads() {\n return this._babylonGamepads;\n }\n /**\n * Get the gamepad controllers based on type\n * @param type The type of gamepad controller\n * @returns Nullable gamepad\n */\n getGamepadByType(e = Os.XBOX) {\n for (const t of this._babylonGamepads)\n if (t && t.type === e)\n return t;\n return null;\n }\n /**\n * Disposes the gamepad manager\n */\n dispose() {\n this._gamepadEventSupported && (this._onGamepadConnectedEvent && window.removeEventListener(\"gamepadconnected\", this._onGamepadConnectedEvent), this._onGamepadDisconnectedEvent && window.removeEventListener(\"gamepaddisconnected\", this._onGamepadDisconnectedEvent), this._onGamepadConnectedEvent = null, this._onGamepadDisconnectedEvent = null), this._babylonGamepads.forEach((e) => {\n e.dispose();\n }), this.onGamepadConnectedObservable.clear(), this.onGamepadDisconnectedObservable.clear(), this._oneGamepadConnected = !1, this._stopMonitoringGamepads(), this._babylonGamepads = [];\n }\n _addNewGamepad(e) {\n this._oneGamepadConnected || (this._oneGamepadConnected = !0);\n let t;\n const i = e.id.search(\"054c\") !== -1 && e.id.search(\"0ce6\") === -1, s = e.id.search(\"Xbox One\") !== -1;\n return s || e.id.search(\"Xbox 360\") !== -1 || e.id.search(\"xinput\") !== -1 || e.id.search(\"045e\") !== -1 && e.id.search(\"Surface Dock\") === -1 ? t = new Tw(e.id, e.index, e, s) : i ? t = new Sw(e.id, e.index, e) : t = new vw(e.id, e.index, e), this._babylonGamepads[t.index] = t, t;\n }\n _startMonitoringGamepads() {\n this._isMonitoring || (this._isMonitoring = !0, this._checkGamepadsStatus());\n }\n _stopMonitoringGamepads() {\n this._isMonitoring = !1;\n }\n /** @internal */\n _checkGamepadsStatus() {\n this._updateGamepadObjects();\n for (const e in this._babylonGamepads) {\n const t = this._babylonGamepads[e];\n if (!(!t || !t.isConnected))\n try {\n t.update();\n } catch {\n this._loggedErrors.indexOf(t.index) === -1 && (J.Warn(`Error updating gamepad ${t.id}`), this._loggedErrors.push(t.index));\n }\n }\n this._isMonitoring && ee.QueueNewFrame(() => {\n this._checkGamepadsStatus();\n });\n }\n // This function is called only on Chrome, which does not properly support\n // connection/disconnection events and forces you to recopy again the gamepad object\n _updateGamepadObjects() {\n const e = navigator.getGamepads ? navigator.getGamepads() : [];\n for (let t = 0; t < e.length; t++) {\n const i = e[t];\n if (i)\n if (this._babylonGamepads[i.index])\n this._babylonGamepads[t].browserGamepad = i, this._babylonGamepads[t].isConnected || (this._babylonGamepads[t]._isConnected = !0, this.onGamepadConnectedObservable.notifyObservers(this._babylonGamepads[t]));\n else {\n const s = this._addNewGamepad(i);\n this.onGamepadConnectedObservable.notifyObservers(s);\n }\n }\n }\n}\nclass R_ {\n constructor() {\n this.gamepadAngularSensibility = 200, this.gamepadMoveSensibility = 40, this.deadzoneDelta = 0.1, this._yAxisScale = 1, this._cameraTransform = O.Identity(), this._deltaTransform = g.Zero(), this._vector3 = g.Zero(), this._vector2 = Q.Zero();\n }\n /**\n * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted\n */\n get invertYAxis() {\n return this._yAxisScale !== 1;\n }\n set invertYAxis(e) {\n this._yAxisScale = e ? -1 : 1;\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n */\n attachControl() {\n const e = this.camera.getScene().gamepadManager;\n this._onGamepadConnectedObserver = e.onGamepadConnectedObservable.add((t) => {\n t.type !== Os.POSE_ENABLED && (!this.gamepad || t.type === Os.XBOX) && (this.gamepad = t);\n }), this._onGamepadDisconnectedObserver = e.onGamepadDisconnectedObservable.add((t) => {\n this.gamepad === t && (this.gamepad = null);\n }), this.gamepad = e.getGamepadByType(Os.XBOX), !this.gamepad && e.gamepads.length && (this.gamepad = e.gamepads[0]);\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this.camera.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver), this.camera.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver), this.gamepad = null;\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n if (this.gamepad && this.gamepad.leftStick) {\n const e = this.camera, t = this.gamepad.leftStick;\n this.gamepadMoveSensibility !== 0 && (t.x = Math.abs(t.x) > this.deadzoneDelta ? t.x / this.gamepadMoveSensibility : 0, t.y = Math.abs(t.y) > this.deadzoneDelta ? t.y / this.gamepadMoveSensibility : 0);\n let i = this.gamepad.rightStick;\n i && this.gamepadAngularSensibility !== 0 ? (i.x = Math.abs(i.x) > this.deadzoneDelta ? i.x / this.gamepadAngularSensibility : 0, i.y = (Math.abs(i.y) > this.deadzoneDelta ? i.y / this.gamepadAngularSensibility : 0) * this._yAxisScale) : i = { x: 0, y: 0 }, e.rotationQuaternion ? e.rotationQuaternion.toRotationMatrix(this._cameraTransform) : O.RotationYawPitchRollToRef(e.rotation.y, e.rotation.x, 0, this._cameraTransform);\n const s = e._computeLocalCameraSpeed() * 50;\n this._vector3.copyFromFloats(t.x * s, 0, -t.y * s), g.TransformCoordinatesToRef(this._vector3, this._cameraTransform, this._deltaTransform), e.cameraDirection.addInPlace(this._deltaTransform), this._vector2.copyFromFloats(i.y, i.x), e.cameraRotation.addInPlace(this._vector2);\n }\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FreeCameraGamepadInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"gamepad\";\n }\n}\ny([\n I()\n], R_.prototype, \"gamepadAngularSensibility\", void 0);\ny([\n I()\n], R_.prototype, \"gamepadMoveSensibility\", void 0);\nlr.FreeCameraGamepadInput = R_;\nclass I_ {\n constructor() {\n this.gamepadRotationSensibility = 80, this.gamepadMoveSensibility = 40, this._yAxisScale = 1;\n }\n /**\n * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted\n */\n get invertYAxis() {\n return this._yAxisScale !== 1;\n }\n set invertYAxis(e) {\n this._yAxisScale = e ? -1 : 1;\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n */\n attachControl() {\n const e = this.camera.getScene().gamepadManager;\n this._onGamepadConnectedObserver = e.onGamepadConnectedObservable.add((t) => {\n t.type !== Os.POSE_ENABLED && (!this.gamepad || t.type === Os.XBOX) && (this.gamepad = t);\n }), this._onGamepadDisconnectedObserver = e.onGamepadDisconnectedObservable.add((t) => {\n this.gamepad === t && (this.gamepad = null);\n }), this.gamepad = e.getGamepadByType(Os.XBOX), !this.gamepad && e.gamepads.length && (this.gamepad = e.gamepads[0]);\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this.camera.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver), this.camera.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver), this.gamepad = null;\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n if (this.gamepad) {\n const e = this.camera, t = this.gamepad.rightStick;\n if (t) {\n if (t.x != 0) {\n const s = t.x / this.gamepadRotationSensibility;\n s != 0 && Math.abs(s) > 5e-3 && (e.inertialAlphaOffset += s);\n }\n if (t.y != 0) {\n const s = t.y / this.gamepadRotationSensibility * this._yAxisScale;\n s != 0 && Math.abs(s) > 5e-3 && (e.inertialBetaOffset += s);\n }\n }\n const i = this.gamepad.leftStick;\n if (i && i.y != 0) {\n const s = i.y / this.gamepadMoveSensibility;\n s != 0 && Math.abs(s) > 5e-3 && (this.camera.inertialRadiusOffset -= s);\n }\n }\n }\n /**\n * Gets the class name of the current intput.\n * @returns the class name\n */\n getClassName() {\n return \"ArcRotateCameraGamepadInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"gamepad\";\n }\n}\ny([\n I()\n], I_.prototype, \"gamepadRotationSensibility\", void 0);\ny([\n I()\n], I_.prototype, \"gamepadMoveSensibility\", void 0);\nlr.ArcRotateCameraGamepadInput = I_;\nObject.defineProperty(De.prototype, \"gamepadManager\", {\n get: function() {\n if (!this._gamepadManager) {\n this._gamepadManager = new bw(this);\n let a = this._getComponent(me.NAME_GAMEPAD);\n a || (a = new Ew(this), this._addComponent(a));\n }\n return this._gamepadManager;\n },\n enumerable: !0,\n configurable: !0\n});\nA_.prototype.addGamepad = function() {\n return this.add(new R_()), this;\n};\nHx.prototype.addGamepad = function() {\n return this.add(new I_()), this;\n};\nclass Ew {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_GAMEPAD, this.scene = e;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._beforeCameraUpdateStage.registerStep(me.STEP_BEFORECAMERAUPDATE_GAMEPAD, this, this._beforeCameraUpdate);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n const e = this.scene._gamepadManager;\n e && (e.dispose(), this.scene._gamepadManager = null);\n }\n _beforeCameraUpdate() {\n const e = this.scene._gamepadManager;\n e && e._isMonitoring && e._checkGamepadsStatus();\n }\n}\nLt.AddNodeConstructor(\"FreeCamera\", (a, e) => () => new Tc(a, g.Zero(), e));\nclass Tc extends l0 {\n /**\n * Defines the gamepad rotation sensibility.\n * This is the threshold from when rotation starts to be accounted for to prevent jittering.\n */\n get gamepadAngularSensibility() {\n const e = this.inputs.attached.gamepad;\n return e ? e.gamepadAngularSensibility : 0;\n }\n set gamepadAngularSensibility(e) {\n const t = this.inputs.attached.gamepad;\n t && (t.gamepadAngularSensibility = e);\n }\n /**\n * Defines the gamepad move sensibility.\n * This is the threshold from when moving starts to be accounted for to prevent jittering.\n */\n get gamepadMoveSensibility() {\n const e = this.inputs.attached.gamepad;\n return e ? e.gamepadMoveSensibility : 0;\n }\n set gamepadMoveSensibility(e) {\n const t = this.inputs.attached.gamepad;\n t && (t.gamepadMoveSensibility = e);\n }\n /**\n * The Universal Camera is the one to choose for first person shooter type games, and works with all the keyboard, mouse, touch and gamepads. This replaces the earlier Free Camera,\n * which still works and will still be found in many Playgrounds.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#universal-camera\n * @param name Define the name of the camera in the scene\n * @param position Define the start position of the camera in the scene\n * @param scene Define the scene the camera belongs to\n */\n constructor(e, t, i) {\n super(e, t, i), this.inputs.addGamepad();\n }\n /**\n * Gets the current object class name.\n * @returns the class name\n */\n getClassName() {\n return \"UniversalCamera\";\n }\n}\nFe._CreateDefaultParsedCamera = (a, e) => new Tc(a, g.Zero(), e);\nclass vf {\n /**\n * Creates a WebXRExperienceHelper\n * @param _scene The scene the helper should be created in\n */\n constructor(e) {\n this._scene = e, this._nonVRCamera = null, this._attachedToElement = !1, this._spectatorCamera = null, this._originalSceneAutoClear = !0, this._supported = !1, this._spectatorMode = !1, this._lastTimestamp = 0, this.onInitialXRPoseSetObservable = new G(), this.onStateChangedObservable = new G(), this.state = 3, this.sessionManager = new vc(e), this.camera = new jh(\"webxr\", e, this.sessionManager), this.featuresManager = new Ri(this.sessionManager), e.onDisposeObservable.addOnce(() => {\n this.dispose();\n });\n }\n /**\n * Creates the experience helper\n * @param scene the scene to attach the experience helper to\n * @returns a promise for the experience helper\n */\n static CreateAsync(e) {\n const t = new vf(e);\n return t.sessionManager.initializeAsync().then(() => (t._supported = !0, t)).catch((i) => {\n throw t._setState(\n 3\n /* WebXRState.NOT_IN_XR */\n ), t.dispose(), i;\n });\n }\n /**\n * Disposes of the experience helper\n */\n dispose() {\n var e;\n this.exitXRAsync(), this.camera.dispose(), this.onStateChangedObservable.clear(), this.onInitialXRPoseSetObservable.clear(), this.sessionManager.dispose(), (e = this._spectatorCamera) == null || e.dispose(), this._nonVRCamera && (this._scene.activeCamera = this._nonVRCamera);\n }\n /**\n * Enters XR mode (This must be done within a user interaction in most browsers eg. button click)\n * @param sessionMode options for the XR session\n * @param referenceSpaceType frame of reference of the XR session\n * @param renderTarget the output canvas that will be used to enter XR mode\n * @param sessionCreationOptions optional XRSessionInit object to init the session with\n * @returns promise that resolves after xr mode has entered\n */\n async enterXRAsync(e, t, i = this.sessionManager.getWebXRRenderTarget(), s = {}) {\n var r, n, o, l;\n if (!this._supported)\n throw \"WebXR not supported in this browser or environment\";\n this._setState(\n 0\n /* WebXRState.ENTERING_XR */\n ), t !== \"viewer\" && t !== \"local\" && (s.optionalFeatures = s.optionalFeatures || [], s.optionalFeatures.push(t)), s = await this.featuresManager._extendXRSessionInitObject(s), e === \"immersive-ar\" && t !== \"unbounded\" && L.Warn(\"We recommend using 'unbounded' reference space type when using 'immersive-ar' session mode\");\n try {\n await this.sessionManager.initializeSessionAsync(e, s), await this.sessionManager.setReferenceSpaceTypeAsync(t);\n const h = {\n // if maxZ is 0 it should be \"Infinity\", but it doesn't work with the WebXR API. Setting to a large number.\n depthFar: this.camera.maxZ || 1e4,\n depthNear: this.camera.minZ\n };\n if (!this.featuresManager.getEnabledFeature(Tt.LAYERS)) {\n const c = await i.initializeXRLayerAsync(this.sessionManager.session);\n h.baseLayer = c;\n }\n return this.sessionManager.updateRenderState(h), this.sessionManager.runXRRenderLoop(), this._originalSceneAutoClear = this._scene.autoClear, this._nonVRCamera = this._scene.activeCamera, this._attachedToElement = !!((n = (r = this._nonVRCamera) == null ? void 0 : r.inputs) != null && n.attachedToElement), (o = this._nonVRCamera) == null || o.detachControl(), this._scene.activeCamera = this.camera, e !== \"immersive-ar\" ? this._nonXRToXRCamera() : (this._scene.autoClear = !1, this.camera.compensateOnFirstFrame = !1, this.camera.position.set(0, 0, 0), this.camera.rotationQuaternion.set(0, 0, 0, 1), this.onInitialXRPoseSetObservable.notifyObservers(this.camera)), (l = ee.audioEngine) == null || l._resumeAudioContextOnStateChange(), this.sessionManager.onXRSessionEnded.addOnce(() => {\n this.state !== 1 && this._setState(\n 1\n /* WebXRState.EXITING_XR */\n ), this.camera.rigCameras.forEach((c) => {\n c.outputRenderTarget = null;\n }), this._scene.autoClear = this._originalSceneAutoClear, this._scene.activeCamera = this._nonVRCamera, this._attachedToElement && this._nonVRCamera && this._nonVRCamera.attachControl(!!this._nonVRCamera.inputs.noPreventDefault), e !== \"immersive-ar\" && this.camera.compensateOnFirstFrame && (this._nonVRCamera.setPosition ? this._nonVRCamera.setPosition(this.camera.position) : this._nonVRCamera.position.copyFrom(this.camera.position)), this._setState(\n 3\n /* WebXRState.NOT_IN_XR */\n );\n }), this.sessionManager.onXRFrameObservable.addOnce(() => {\n this._setState(\n 2\n /* WebXRState.IN_XR */\n );\n }), this.sessionManager;\n } catch (h) {\n throw L.Log(h), L.Log(h.message), this._setState(\n 3\n /* WebXRState.NOT_IN_XR */\n ), h;\n }\n }\n /**\n * Exits XR mode and returns the scene to its original state\n * @returns promise that resolves after xr mode has exited\n */\n exitXRAsync() {\n return this.state !== 2 ? Promise.resolve() : (this._setState(\n 1\n /* WebXRState.EXITING_XR */\n ), this.sessionManager.exitXRAsync());\n }\n /**\n * Enable spectator mode for desktop VR experiences.\n * When spectator mode is enabled a camera will be attached to the desktop canvas and will\n * display the first rig camera's view on the desktop canvas.\n * Please note that this will degrade performance, as it requires another camera render.\n * It is also not recommended to enable this in devices like the quest, as it brings no benefit there.\n * @param options giving WebXRSpectatorModeOption for specutator camera to setup when the spectator mode is enabled.\n */\n enableSpectatorMode(e) {\n this._spectatorMode || (this._spectatorMode = !0, this._switchSpectatorMode(e));\n }\n /**\n * Disable spectator mode for desktop VR experiences.\n */\n disableSpecatatorMode() {\n this._spectatorMode && (this._spectatorMode = !1, this._switchSpectatorMode());\n }\n _switchSpectatorMode(e) {\n const i = 1 / (e != null && e.fps ? e.fps : 1e3) * 1e3, s = e != null && e.preferredCameraIndex ? e == null ? void 0 : e.preferredCameraIndex : 0, r = () => {\n this._spectatorCamera && this.sessionManager.currentTimestamp - this._lastTimestamp >= i && (this._lastTimestamp = this.sessionManager.currentTimestamp, this._spectatorCamera.position.copyFrom(this.camera.rigCameras[s].globalPosition), this._spectatorCamera.rotationQuaternion.copyFrom(this.camera.rigCameras[s].absoluteRotation));\n };\n if (this._spectatorMode) {\n if (s >= this.camera.rigCameras.length)\n throw new Error(\"the preferred camera index is beyond the length of rig camera array.\");\n const n = () => {\n this.state === 2 ? (this._spectatorCamera = new Tc(\"webxr-spectator\", g.Zero(), this._scene), this._spectatorCamera.rotationQuaternion = new se(), this._scene.activeCameras = [this.camera, this._spectatorCamera], this.sessionManager.onXRFrameObservable.add(r), this._scene.onAfterRenderCameraObservable.add((o) => {\n o === this.camera && (this._scene.getEngine().framebufferDimensionsObject = null);\n })) : this.state === 1 && (this.sessionManager.onXRFrameObservable.removeCallback(r), this._scene.activeCameras = null);\n };\n this.onStateChangedObservable.add(n), n();\n } else\n this.sessionManager.onXRFrameObservable.removeCallback(r), this._scene.activeCameras = [this.camera];\n }\n _nonXRToXRCamera() {\n this.camera.setTransformationFromNonVRCamera(this._nonVRCamera), this.onInitialXRPoseSetObservable.notifyObservers(this.camera);\n }\n _setState(e) {\n this.state !== e && (this.state = e, this.onStateChangedObservable.notifyObservers(this.state));\n }\n}\nclass at extends Lt {\n /**\n * Defines how far from the source the light is impacting in scene units.\n * Note: Unused in PBR material as the distance light falloff is defined following the inverse squared falloff.\n */\n get range() {\n return this._range;\n }\n /**\n * Defines how far from the source the light is impacting in scene units.\n * Note: Unused in PBR material as the distance light falloff is defined following the inverse squared falloff.\n */\n set range(e) {\n this._range = e, this._inverseSquaredRange = 1 / (this.range * this.range);\n }\n /**\n * Gets the photometric scale used to interpret the intensity.\n * This is only relevant with PBR Materials where the light intensity can be defined in a physical way.\n */\n get intensityMode() {\n return this._intensityMode;\n }\n /**\n * Sets the photometric scale used to interpret the intensity.\n * This is only relevant with PBR Materials where the light intensity can be defined in a physical way.\n */\n set intensityMode(e) {\n this._intensityMode = e, this._computePhotometricScale();\n }\n /**\n * Gets the light radius used by PBR Materials to simulate soft area lights.\n */\n get radius() {\n return this._radius;\n }\n /**\n * sets the light radius used by PBR Materials to simulate soft area lights.\n */\n set radius(e) {\n this._radius = e, this._computePhotometricScale();\n }\n /**\n * Gets whether or not the shadows are enabled for this light. This can help turning off/on shadow without detaching\n * the current shadow generator.\n */\n get shadowEnabled() {\n return this._shadowEnabled;\n }\n /**\n * Sets whether or not the shadows are enabled for this light. This can help turning off/on shadow without detaching\n * the current shadow generator.\n */\n set shadowEnabled(e) {\n this._shadowEnabled !== e && (this._shadowEnabled = e, this._markMeshesAsLightDirty());\n }\n /**\n * Gets the only meshes impacted by this light.\n */\n get includedOnlyMeshes() {\n return this._includedOnlyMeshes;\n }\n /**\n * Sets the only meshes impacted by this light.\n */\n set includedOnlyMeshes(e) {\n this._includedOnlyMeshes = e, this._hookArrayForIncludedOnly(e);\n }\n /**\n * Gets the meshes not impacted by this light.\n */\n get excludedMeshes() {\n return this._excludedMeshes;\n }\n /**\n * Sets the meshes not impacted by this light.\n */\n set excludedMeshes(e) {\n this._excludedMeshes = e, this._hookArrayForExcluded(e);\n }\n /**\n * Gets the layer id use to find what meshes are not impacted by the light.\n * Inactive if 0\n */\n get excludeWithLayerMask() {\n return this._excludeWithLayerMask;\n }\n /**\n * Sets the layer id use to find what meshes are not impacted by the light.\n * Inactive if 0\n */\n set excludeWithLayerMask(e) {\n this._excludeWithLayerMask = e, this._resyncMeshes();\n }\n /**\n * Gets the layer id use to find what meshes are impacted by the light.\n * Inactive if 0\n */\n get includeOnlyWithLayerMask() {\n return this._includeOnlyWithLayerMask;\n }\n /**\n * Sets the layer id use to find what meshes are impacted by the light.\n * Inactive if 0\n */\n set includeOnlyWithLayerMask(e) {\n this._includeOnlyWithLayerMask = e, this._resyncMeshes();\n }\n /**\n * Gets the lightmap mode of this light (should be one of the constants defined by Light.LIGHTMAP_x)\n */\n get lightmapMode() {\n return this._lightmapMode;\n }\n /**\n * Sets the lightmap mode of this light (should be one of the constants defined by Light.LIGHTMAP_x)\n */\n set lightmapMode(e) {\n this._lightmapMode !== e && (this._lightmapMode = e, this._markMeshesAsLightDirty());\n }\n /**\n * Returns the view matrix.\n * @param _faceIndex The index of the face for which we want to extract the view matrix. Only used for point light types.\n * @returns The view matrix. Can be null, if a view matrix cannot be defined for the type of light considered (as for a hemispherical light, for example).\n */\n getViewMatrix(e) {\n return null;\n }\n /**\n * Returns the projection matrix.\n * Note that viewMatrix and renderList are optional and are only used by lights that calculate the projection matrix from a list of meshes (e.g. directional lights with automatic extents calculation).\n * @param _viewMatrix The view transform matrix of the light (optional).\n * @param _renderList The list of meshes to take into account when calculating the projection matrix (optional).\n * @returns The projection matrix. Can be null, if a projection matrix cannot be defined for the type of light considered (as for a hemispherical light, for example).\n */\n getProjectionMatrix(e, t) {\n return null;\n }\n /**\n * Creates a Light object in the scene.\n * Documentation : https://doc.babylonjs.com/features/featuresDeepDive/lights/lights_introduction\n * @param name The friendly name of the light\n * @param scene The scene the light belongs too\n */\n constructor(e, t) {\n super(e, t, !1), this.diffuse = new re(1, 1, 1), this.specular = new re(1, 1, 1), this.falloffType = at.FALLOFF_DEFAULT, this.intensity = 1, this._range = Number.MAX_VALUE, this._inverseSquaredRange = 0, this._photometricScale = 1, this._intensityMode = at.INTENSITYMODE_AUTOMATIC, this._radius = 1e-5, this.renderPriority = 0, this._shadowEnabled = !0, this._excludeWithLayerMask = 0, this._includeOnlyWithLayerMask = 0, this._lightmapMode = 0, this._shadowGenerators = null, this._excludedMeshesIds = new Array(), this._includedOnlyMeshesIds = new Array(), this._isLight = !0, this.getScene().addLight(this), this._uniformBuffer = new Ve(this.getScene().getEngine(), void 0, void 0, e), this._buildUniformLayout(), this.includedOnlyMeshes = [], this.excludedMeshes = [], this._resyncMeshes();\n }\n /**\n * Sets the passed Effect \"effect\" with the Light textures.\n * @param effect The effect to update\n * @param lightIndex The index of the light in the effect to update\n * @returns The light\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transferTexturesToEffect(e, t) {\n return this;\n }\n /**\n * Binds the lights information from the scene to the effect for the given mesh.\n * @param lightIndex Light index\n * @param scene The scene where the light belongs to\n * @param effect The effect we are binding the data to\n * @param useSpecular Defines if specular is supported\n * @param receiveShadows Defines if the effect (mesh) we bind the light for receives shadows\n */\n _bindLight(e, t, i, s, r = !0) {\n const n = e.toString();\n let o = !1;\n if (this._uniformBuffer.bindToEffect(i, \"Light\" + n), this._renderId !== t.getRenderId() || this._lastUseSpecular !== s || !this._uniformBuffer.useUbo) {\n this._renderId = t.getRenderId(), this._lastUseSpecular = s;\n const l = this.getScaledIntensity();\n this.transferToEffect(i, n), this.diffuse.scaleToRef(l, wt.Color3[0]), this._uniformBuffer.updateColor4(\"vLightDiffuse\", wt.Color3[0], this.range, n), s && (this.specular.scaleToRef(l, wt.Color3[1]), this._uniformBuffer.updateColor4(\"vLightSpecular\", wt.Color3[1], this.radius, n)), o = !0;\n }\n if (this.transferTexturesToEffect(i, n), t.shadowsEnabled && this.shadowEnabled && r) {\n const l = this.getShadowGenerator(t.activeCamera) ?? this.getShadowGenerator();\n l && (l.bindShadowLight(n, i), o = !0);\n }\n o ? this._uniformBuffer.update() : this._uniformBuffer.bindUniformBuffer();\n }\n /**\n * Returns the string \"Light\".\n * @returns the class name\n */\n getClassName() {\n return \"Light\";\n }\n /**\n * Converts the light information to a readable string for debug purpose.\n * @param fullDetails Supports for multiple levels of logging within scene loading\n * @returns the human readable light info\n */\n toString(e) {\n let t = \"Name: \" + this.name;\n if (t += \", type: \" + [\"Point\", \"Directional\", \"Spot\", \"Hemispheric\"][this.getTypeID()], this.animations)\n for (let i = 0; i < this.animations.length; i++)\n t += \", animation[0]: \" + this.animations[i].toString(e);\n return t;\n }\n /** @internal */\n _syncParentEnabledState() {\n super._syncParentEnabledState(), this.isDisposed() || this._resyncMeshes();\n }\n /**\n * Set the enabled state of this node.\n * @param value - the new enabled state\n */\n setEnabled(e) {\n super.setEnabled(e), this._resyncMeshes();\n }\n /**\n * Returns the Light associated shadow generator if any.\n * @param camera Camera for which the shadow generator should be retrieved (default: null). If null, retrieves the default shadow generator\n * @returns the associated shadow generator.\n */\n getShadowGenerator(e = null) {\n return this._shadowGenerators === null ? null : this._shadowGenerators.get(e) ?? null;\n }\n /**\n * Returns all the shadow generators associated to this light\n * @returns\n */\n getShadowGenerators() {\n return this._shadowGenerators;\n }\n /**\n * Returns a Vector3, the absolute light position in the World.\n * @returns the world space position of the light\n */\n getAbsolutePosition() {\n return g.Zero();\n }\n /**\n * Specifies if the light will affect the passed mesh.\n * @param mesh The mesh to test against the light\n * @returns true the mesh is affected otherwise, false.\n */\n canAffectMesh(e) {\n return e ? !(this.includedOnlyMeshes && this.includedOnlyMeshes.length > 0 && this.includedOnlyMeshes.indexOf(e) === -1 || this.excludedMeshes && this.excludedMeshes.length > 0 && this.excludedMeshes.indexOf(e) !== -1 || this.includeOnlyWithLayerMask !== 0 && !(this.includeOnlyWithLayerMask & e.layerMask) || this.excludeWithLayerMask !== 0 && this.excludeWithLayerMask & e.layerMask) : !0;\n }\n /**\n * Releases resources associated with this node.\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\n */\n dispose(e, t = !1) {\n if (this._shadowGenerators) {\n const i = this._shadowGenerators.values();\n for (let s = i.next(); s.done !== !0; s = i.next())\n s.value.dispose();\n this._shadowGenerators = null;\n }\n if (this.getScene().stopAnimation(this), this._parentContainer) {\n const i = this._parentContainer.lights.indexOf(this);\n i > -1 && this._parentContainer.lights.splice(i, 1), this._parentContainer = null;\n }\n for (const i of this.getScene().meshes)\n i._removeLightSource(this, !0);\n this._uniformBuffer.dispose(), this.getScene().removeLight(this), super.dispose(e, t);\n }\n /**\n * Returns the light type ID (integer).\n * @returns The light Type id as a constant defines in Light.LIGHTTYPEID_x\n */\n getTypeID() {\n return 0;\n }\n /**\n * Returns the intensity scaled by the Photometric Scale according to the light type and intensity mode.\n * @returns the scaled intensity in intensity mode unit\n */\n getScaledIntensity() {\n return this._photometricScale * this.intensity;\n }\n /**\n * Returns a new Light object, named \"name\", from the current one.\n * @param name The name of the cloned light\n * @param newParent The parent of this light, if it has one\n * @returns the new created light\n */\n clone(e, t = null) {\n const i = at.GetConstructorFromName(this.getTypeID(), e, this.getScene());\n if (!i)\n return null;\n const s = Ae.Clone(i, this);\n return e && (s.name = e), t && (s.parent = t), s.setEnabled(this.isEnabled()), this.onClonedObservable.notifyObservers(s), s;\n }\n /**\n * Serializes the current light into a Serialization object.\n * @returns the serialized object.\n */\n serialize() {\n const e = Ae.Serialize(this);\n return e.uniqueId = this.uniqueId, e.type = this.getTypeID(), this.parent && this.parent._serializeAsParent(e), this.excludedMeshes.length > 0 && (e.excludedMeshesIds = [], this.excludedMeshes.forEach((t) => {\n e.excludedMeshesIds.push(t.id);\n })), this.includedOnlyMeshes.length > 0 && (e.includedOnlyMeshesIds = [], this.includedOnlyMeshes.forEach((t) => {\n e.includedOnlyMeshesIds.push(t.id);\n })), Ae.AppendSerializedAnimations(this, e), e.ranges = this.serializeAnimationRanges(), e.isEnabled = this.isEnabled(), e;\n }\n /**\n * Creates a new typed light from the passed type (integer) : point light = 0, directional light = 1, spot light = 2, hemispheric light = 3.\n * This new light is named \"name\" and added to the passed scene.\n * @param type Type according to the types available in Light.LIGHTTYPEID_x\n * @param name The friendly name of the light\n * @param scene The scene the new light will belong to\n * @returns the constructor function\n */\n static GetConstructorFromName(e, t, i) {\n const s = Lt.Construct(\"Light_Type_\" + e, t, i);\n return s || null;\n }\n /**\n * Parses the passed \"parsedLight\" and returns a new instanced Light from this parsing.\n * @param parsedLight The JSON representation of the light\n * @param scene The scene to create the parsed light in\n * @returns the created light after parsing\n */\n static Parse(e, t) {\n const i = at.GetConstructorFromName(e.type, e.name, t);\n if (!i)\n return null;\n const s = Ae.Parse(i, e, t);\n if (e.excludedMeshesIds && (s._excludedMeshesIds = e.excludedMeshesIds), e.includedOnlyMeshesIds && (s._includedOnlyMeshesIds = e.includedOnlyMeshesIds), e.parentId !== void 0 && (s._waitingParentId = e.parentId), e.parentInstanceIndex !== void 0 && (s._waitingParentInstanceIndex = e.parentInstanceIndex), e.falloffType !== void 0 && (s.falloffType = e.falloffType), e.lightmapMode !== void 0 && (s.lightmapMode = e.lightmapMode), e.animations) {\n for (let r = 0; r < e.animations.length; r++) {\n const n = e.animations[r], o = Oi(\"BABYLON.Animation\");\n o && s.animations.push(o.Parse(n));\n }\n Lt.ParseAnimationRanges(s, e, t);\n }\n return e.autoAnimate && t.beginAnimation(s, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1), e.isEnabled !== void 0 && s.setEnabled(e.isEnabled), s;\n }\n _hookArrayForExcluded(e) {\n const t = e.push;\n e.push = (...s) => {\n const r = t.apply(e, s);\n for (const n of s)\n n._resyncLightSource(this);\n return r;\n };\n const i = e.splice;\n e.splice = (s, r) => {\n const n = i.apply(e, [s, r]);\n for (const o of n)\n o._resyncLightSource(this);\n return n;\n };\n for (const s of e)\n s._resyncLightSource(this);\n }\n _hookArrayForIncludedOnly(e) {\n const t = e.push;\n e.push = (...s) => {\n const r = t.apply(e, s);\n return this._resyncMeshes(), r;\n };\n const i = e.splice;\n e.splice = (s, r) => {\n const n = i.apply(e, [s, r]);\n return this._resyncMeshes(), n;\n }, this._resyncMeshes();\n }\n _resyncMeshes() {\n for (const e of this.getScene().meshes)\n e._resyncLightSource(this);\n }\n /**\n * Forces the meshes to update their light related information in their rendering used effects\n * @internal Internal Use Only\n */\n _markMeshesAsLightDirty() {\n for (const e of this.getScene().meshes)\n e.lightSources.indexOf(this) !== -1 && e._markSubMeshesAsLightDirty();\n }\n /**\n * Recomputes the cached photometric scale if needed.\n */\n _computePhotometricScale() {\n this._photometricScale = this._getPhotometricScale(), this.getScene().resetCachedMaterial();\n }\n /**\n * @returns the Photometric Scale according to the light type and intensity mode.\n */\n _getPhotometricScale() {\n let e = 0;\n const t = this.getTypeID();\n let i = this.intensityMode;\n switch (i === at.INTENSITYMODE_AUTOMATIC && (t === at.LIGHTTYPEID_DIRECTIONALLIGHT ? i = at.INTENSITYMODE_ILLUMINANCE : i = at.INTENSITYMODE_LUMINOUSINTENSITY), t) {\n case at.LIGHTTYPEID_POINTLIGHT:\n case at.LIGHTTYPEID_SPOTLIGHT:\n switch (i) {\n case at.INTENSITYMODE_LUMINOUSPOWER:\n e = 1 / (4 * Math.PI);\n break;\n case at.INTENSITYMODE_LUMINOUSINTENSITY:\n e = 1;\n break;\n case at.INTENSITYMODE_LUMINANCE:\n e = this.radius * this.radius;\n break;\n }\n break;\n case at.LIGHTTYPEID_DIRECTIONALLIGHT:\n switch (i) {\n case at.INTENSITYMODE_ILLUMINANCE:\n e = 1;\n break;\n case at.INTENSITYMODE_LUMINANCE: {\n let s = this.radius;\n s = Math.max(s, 1e-3), e = 2 * Math.PI * (1 - Math.cos(s));\n break;\n }\n }\n break;\n case at.LIGHTTYPEID_HEMISPHERICLIGHT:\n e = 1;\n break;\n }\n return e;\n }\n /**\n * Reorder the light in the scene according to their defined priority.\n * @internal Internal Use Only\n */\n _reorderLightsInScene() {\n const e = this.getScene();\n this._renderPriority != 0 && (e.requireLightSorting = !0), this.getScene().sortLightsByPriority();\n }\n}\nat.FALLOFF_DEFAULT = Qt.FALLOFF_DEFAULT;\nat.FALLOFF_PHYSICAL = Qt.FALLOFF_PHYSICAL;\nat.FALLOFF_GLTF = Qt.FALLOFF_GLTF;\nat.FALLOFF_STANDARD = Qt.FALLOFF_STANDARD;\nat.LIGHTMAP_DEFAULT = Qt.LIGHTMAP_DEFAULT;\nat.LIGHTMAP_SPECULAR = Qt.LIGHTMAP_SPECULAR;\nat.LIGHTMAP_SHADOWSONLY = Qt.LIGHTMAP_SHADOWSONLY;\nat.INTENSITYMODE_AUTOMATIC = Qt.INTENSITYMODE_AUTOMATIC;\nat.INTENSITYMODE_LUMINOUSPOWER = Qt.INTENSITYMODE_LUMINOUSPOWER;\nat.INTENSITYMODE_LUMINOUSINTENSITY = Qt.INTENSITYMODE_LUMINOUSINTENSITY;\nat.INTENSITYMODE_ILLUMINANCE = Qt.INTENSITYMODE_ILLUMINANCE;\nat.INTENSITYMODE_LUMINANCE = Qt.INTENSITYMODE_LUMINANCE;\nat.LIGHTTYPEID_POINTLIGHT = Qt.LIGHTTYPEID_POINTLIGHT;\nat.LIGHTTYPEID_DIRECTIONALLIGHT = Qt.LIGHTTYPEID_DIRECTIONALLIGHT;\nat.LIGHTTYPEID_SPOTLIGHT = Qt.LIGHTTYPEID_SPOTLIGHT;\nat.LIGHTTYPEID_HEMISPHERICLIGHT = Qt.LIGHTTYPEID_HEMISPHERICLIGHT;\ny([\n bi()\n], at.prototype, \"diffuse\", void 0);\ny([\n bi()\n], at.prototype, \"specular\", void 0);\ny([\n I()\n], at.prototype, \"falloffType\", void 0);\ny([\n I()\n], at.prototype, \"intensity\", void 0);\ny([\n I()\n], at.prototype, \"range\", null);\ny([\n I()\n], at.prototype, \"intensityMode\", null);\ny([\n I()\n], at.prototype, \"radius\", null);\ny([\n I()\n], at.prototype, \"_renderPriority\", void 0);\ny([\n ce(\"_reorderLightsInScene\")\n], at.prototype, \"renderPriority\", void 0);\ny([\n I(\"shadowEnabled\")\n], at.prototype, \"_shadowEnabled\", void 0);\ny([\n I(\"excludeWithLayerMask\")\n], at.prototype, \"_excludeWithLayerMask\", void 0);\ny([\n I(\"includeOnlyWithLayerMask\")\n], at.prototype, \"_includeOnlyWithLayerMask\", void 0);\ny([\n I(\"lightmapMode\")\n], at.prototype, \"_lightmapMode\", void 0);\nclass Ll extends at {\n constructor() {\n super(...arguments), this._needProjectionMatrixCompute = !0, this._viewMatrix = O.Identity(), this._projectionMatrix = O.Identity();\n }\n _setPosition(e) {\n this._position = e;\n }\n /**\n * Sets the position the shadow will be casted from. Also use as the light position for both\n * point and spot lights.\n */\n get position() {\n return this._position;\n }\n /**\n * Sets the position the shadow will be casted from. Also use as the light position for both\n * point and spot lights.\n */\n set position(e) {\n this._setPosition(e);\n }\n _setDirection(e) {\n this._direction = e;\n }\n /**\n * In 2d mode (needCube being false), gets the direction used to cast the shadow.\n * Also use as the light direction on spot and directional lights.\n */\n get direction() {\n return this._direction;\n }\n /**\n * In 2d mode (needCube being false), sets the direction used to cast the shadow.\n * Also use as the light direction on spot and directional lights.\n */\n set direction(e) {\n this._setDirection(e);\n }\n /**\n * Gets the shadow projection clipping minimum z value.\n */\n get shadowMinZ() {\n return this._shadowMinZ;\n }\n /**\n * Sets the shadow projection clipping minimum z value.\n */\n set shadowMinZ(e) {\n this._shadowMinZ = e, this.forceProjectionMatrixCompute();\n }\n /**\n * Sets the shadow projection clipping maximum z value.\n */\n get shadowMaxZ() {\n return this._shadowMaxZ;\n }\n /**\n * Gets the shadow projection clipping maximum z value.\n */\n set shadowMaxZ(e) {\n this._shadowMaxZ = e, this.forceProjectionMatrixCompute();\n }\n /**\n * Computes the transformed information (transformedPosition and transformedDirection in World space) of the current light\n * @returns true if the information has been computed, false if it does not need to (no parenting)\n */\n computeTransformedInformation() {\n return this.parent && this.parent.getWorldMatrix ? (this.transformedPosition || (this.transformedPosition = g.Zero()), g.TransformCoordinatesToRef(this.position, this.parent.getWorldMatrix(), this.transformedPosition), this.direction && (this.transformedDirection || (this.transformedDirection = g.Zero()), g.TransformNormalToRef(this.direction, this.parent.getWorldMatrix(), this.transformedDirection)), !0) : !1;\n }\n /**\n * Return the depth scale used for the shadow map.\n * @returns the depth scale.\n */\n getDepthScale() {\n return 50;\n }\n /**\n * Get the direction to use to render the shadow map. In case of cube texture, the face index can be passed.\n * @param faceIndex The index of the face we are computed the direction to generate shadow\n * @returns The set direction in 2d mode otherwise the direction to the cubemap face if needCube() is true\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getShadowDirection(e) {\n return this.transformedDirection ? this.transformedDirection : this.direction;\n }\n /**\n * If computeTransformedInformation has been called, returns the ShadowLight absolute position in the world. Otherwise, returns the local position.\n * @returns the position vector in world space\n */\n getAbsolutePosition() {\n return this.transformedPosition ? this.transformedPosition : this.position;\n }\n /**\n * Sets the ShadowLight direction toward the passed target.\n * @param target The point to target in local space\n * @returns the updated ShadowLight direction\n */\n setDirectionToTarget(e) {\n return this.direction = g.Normalize(e.subtract(this.position)), this.direction;\n }\n /**\n * Returns the light rotation in euler definition.\n * @returns the x y z rotation in local space.\n */\n getRotation() {\n this.direction.normalize();\n const e = g.Cross(this.direction, zs.Y), t = g.Cross(e, this.direction);\n return g.RotationFromAxis(e, t, this.direction);\n }\n /**\n * Returns whether or not the shadow generation require a cube texture or a 2d texture.\n * @returns true if a cube texture needs to be use\n */\n needCube() {\n return !1;\n }\n /**\n * Detects if the projection matrix requires to be recomputed this frame.\n * @returns true if it requires to be recomputed otherwise, false.\n */\n needProjectionMatrixCompute() {\n return this._needProjectionMatrixCompute;\n }\n /**\n * Forces the shadow generator to recompute the projection matrix even if position and direction did not changed.\n */\n forceProjectionMatrixCompute() {\n this._needProjectionMatrixCompute = !0;\n }\n /** @internal */\n _initCache() {\n super._initCache(), this._cache.position = g.Zero();\n }\n /** @internal */\n _isSynchronized() {\n return !!this._cache.position.equals(this.position);\n }\n /**\n * Computes the world matrix of the node\n * @param force defines if the cache version should be invalidated forcing the world matrix to be created from scratch\n * @returns the world matrix\n */\n computeWorldMatrix(e) {\n return !e && this.isSynchronized() ? (this._currentRenderId = this.getScene().getRenderId(), this._worldMatrix) : (this._updateCache(), this._cache.position.copyFrom(this.position), this._worldMatrix || (this._worldMatrix = O.Identity()), O.TranslationToRef(this.position.x, this.position.y, this.position.z, this._worldMatrix), this.parent && this.parent.getWorldMatrix && (this._worldMatrix.multiplyToRef(this.parent.getWorldMatrix(), this._worldMatrix), this._markSyncedWithParent()), this._worldMatrixDeterminantIsDirty = !0, this._worldMatrix);\n }\n /**\n * Gets the minZ used for shadow according to both the scene and the light.\n * @param activeCamera The camera we are returning the min for\n * @returns the depth min z\n */\n getDepthMinZ(e) {\n return this.shadowMinZ !== void 0 ? this.shadowMinZ : e.minZ;\n }\n /**\n * Gets the maxZ used for shadow according to both the scene and the light.\n * @param activeCamera The camera we are returning the max for\n * @returns the depth max z\n */\n getDepthMaxZ(e) {\n return this.shadowMaxZ !== void 0 ? this.shadowMaxZ : e.maxZ;\n }\n /**\n * Sets the shadow projection matrix in parameter to the generated projection matrix.\n * @param matrix The matrix to updated with the projection information\n * @param viewMatrix The transform matrix of the light\n * @param renderList The list of mesh to render in the map\n * @returns The current light\n */\n setShadowProjectionMatrix(e, t, i) {\n return this.customProjectionMatrixBuilder ? this.customProjectionMatrixBuilder(t, i, e) : this._setDefaultShadowProjectionMatrix(e, t, i), this;\n }\n /** @internal */\n _syncParentEnabledState() {\n super._syncParentEnabledState(), (!this.parent || !this.parent.getWorldMatrix) && (this.transformedPosition = null, this.transformedDirection = null);\n }\n /**\n * Returns the view matrix.\n * @param faceIndex The index of the face for which we want to extract the view matrix. Only used for point light types.\n * @returns The view matrix. Can be null, if a view matrix cannot be defined for the type of light considered (as for a hemispherical light, for example).\n */\n getViewMatrix(e) {\n const t = w.Vector3[0];\n let i = this.position;\n this.computeTransformedInformation() && (i = this.transformedPosition), g.NormalizeToRef(this.getShadowDirection(e), t), Math.abs(g.Dot(t, g.Up())) === 1 && (t.z = 1e-13);\n const s = w.Vector3[1];\n return i.addToRef(t, s), O.LookAtLHToRef(i, s, g.Up(), this._viewMatrix), this._viewMatrix;\n }\n /**\n * Returns the projection matrix.\n * Note that viewMatrix and renderList are optional and are only used by lights that calculate the projection matrix from a list of meshes (e.g. directional lights with automatic extents calculation).\n * @param viewMatrix The view transform matrix of the light (optional).\n * @param renderList The list of meshes to take into account when calculating the projection matrix (optional).\n * @returns The projection matrix. Can be null, if a projection matrix cannot be defined for the type of light considered (as for a hemispherical light, for example).\n */\n getProjectionMatrix(e, t) {\n return this.setShadowProjectionMatrix(this._projectionMatrix, e ?? this._viewMatrix, t ?? []), this._projectionMatrix;\n }\n}\ny([\n Zs()\n], Ll.prototype, \"position\", null);\ny([\n Zs()\n], Ll.prototype, \"direction\", null);\ny([\n I()\n], Ll.prototype, \"shadowMinZ\", null);\ny([\n I()\n], Ll.prototype, \"shadowMaxZ\", null);\nLt.AddNodeConstructor(\"Light_Type_1\", (a, e) => () => new bn(a, g.Zero(), e));\nclass bn extends Ll {\n /**\n * Fix frustum size for the shadow generation. This is disabled if the value is 0.\n */\n get shadowFrustumSize() {\n return this._shadowFrustumSize;\n }\n /**\n * Specifies a fix frustum size for the shadow generation.\n */\n set shadowFrustumSize(e) {\n this._shadowFrustumSize = e, this.forceProjectionMatrixCompute();\n }\n /**\n * Gets the shadow projection scale against the optimal computed one.\n * 0.1 by default which means that the projection window is increase by 10% from the optimal size.\n * This does not impact in fixed frustum size (shadowFrustumSize being set)\n */\n get shadowOrthoScale() {\n return this._shadowOrthoScale;\n }\n /**\n * Sets the shadow projection scale against the optimal computed one.\n * 0.1 by default which means that the projection window is increase by 10% from the optimal size.\n * This does not impact in fixed frustum size (shadowFrustumSize being set)\n */\n set shadowOrthoScale(e) {\n this._shadowOrthoScale = e, this.forceProjectionMatrixCompute();\n }\n /**\n * Gets or sets the orthoLeft property used to build the light frustum\n */\n get orthoLeft() {\n return this._orthoLeft;\n }\n set orthoLeft(e) {\n this._orthoLeft = e;\n }\n /**\n * Gets or sets the orthoRight property used to build the light frustum\n */\n get orthoRight() {\n return this._orthoRight;\n }\n set orthoRight(e) {\n this._orthoRight = e;\n }\n /**\n * Gets or sets the orthoTop property used to build the light frustum\n */\n get orthoTop() {\n return this._orthoTop;\n }\n set orthoTop(e) {\n this._orthoTop = e;\n }\n /**\n * Gets or sets the orthoBottom property used to build the light frustum\n */\n get orthoBottom() {\n return this._orthoBottom;\n }\n set orthoBottom(e) {\n this._orthoBottom = e;\n }\n /**\n * Creates a DirectionalLight object in the scene, oriented towards the passed direction (Vector3).\n * The directional light is emitted from everywhere in the given direction.\n * It can cast shadows.\n * Documentation : https://doc.babylonjs.com/features/featuresDeepDive/lights/lights_introduction\n * @param name The friendly name of the light\n * @param direction The direction of the light\n * @param scene The scene the light belongs to\n */\n constructor(e, t, i) {\n super(e, i), this._shadowFrustumSize = 0, this._shadowOrthoScale = 0.1, this.autoUpdateExtends = !0, this.autoCalcShadowZBounds = !1, this._orthoLeft = Number.MAX_VALUE, this._orthoRight = Number.MIN_VALUE, this._orthoTop = Number.MIN_VALUE, this._orthoBottom = Number.MAX_VALUE, this.position = t.scale(-1), this.direction = t;\n }\n /**\n * Returns the string \"DirectionalLight\".\n * @returns The class name\n */\n getClassName() {\n return \"DirectionalLight\";\n }\n /**\n * Returns the integer 1.\n * @returns The light Type id as a constant defines in Light.LIGHTTYPEID_x\n */\n getTypeID() {\n return at.LIGHTTYPEID_DIRECTIONALLIGHT;\n }\n /**\n * Sets the passed matrix \"matrix\" as projection matrix for the shadows cast by the light according to the passed view matrix.\n * Returns the DirectionalLight Shadow projection matrix.\n * @param matrix\n * @param viewMatrix\n * @param renderList\n */\n _setDefaultShadowProjectionMatrix(e, t, i) {\n this.shadowFrustumSize > 0 ? this._setDefaultFixedFrustumShadowProjectionMatrix(e) : this._setDefaultAutoExtendShadowProjectionMatrix(e, t, i);\n }\n /**\n * Sets the passed matrix \"matrix\" as fixed frustum projection matrix for the shadows cast by the light according to the passed view matrix.\n * Returns the DirectionalLight Shadow projection matrix.\n * @param matrix\n */\n _setDefaultFixedFrustumShadowProjectionMatrix(e) {\n const t = this.getScene().activeCamera;\n t && O.OrthoLHToRef(this.shadowFrustumSize, this.shadowFrustumSize, this.shadowMinZ !== void 0 ? this.shadowMinZ : t.minZ, this.shadowMaxZ !== void 0 ? this.shadowMaxZ : t.maxZ, e, this.getScene().getEngine().isNDCHalfZRange);\n }\n /**\n * Sets the passed matrix \"matrix\" as auto extend projection matrix for the shadows cast by the light according to the passed view matrix.\n * Returns the DirectionalLight Shadow projection matrix.\n * @param matrix\n * @param viewMatrix\n * @param renderList\n */\n _setDefaultAutoExtendShadowProjectionMatrix(e, t, i) {\n const s = this.getScene().activeCamera;\n if (!s)\n return;\n if (this.autoUpdateExtends || this._orthoLeft === Number.MAX_VALUE) {\n const c = g.Zero();\n this._orthoLeft = Number.MAX_VALUE, this._orthoRight = -Number.MAX_VALUE, this._orthoTop = -Number.MAX_VALUE, this._orthoBottom = Number.MAX_VALUE;\n let u = Number.MAX_VALUE, d = -Number.MAX_VALUE;\n for (let f = 0; f < i.length; f++) {\n const p = i[f];\n if (!p)\n continue;\n const m = p.getBoundingInfo().boundingBox;\n for (let x = 0; x < m.vectorsWorld.length; x++)\n g.TransformCoordinatesToRef(m.vectorsWorld[x], t, c), c.x < this._orthoLeft && (this._orthoLeft = c.x), c.y < this._orthoBottom && (this._orthoBottom = c.y), c.x > this._orthoRight && (this._orthoRight = c.x), c.y > this._orthoTop && (this._orthoTop = c.y), this.autoCalcShadowZBounds && (c.z < u && (u = c.z), c.z > d && (d = c.z));\n }\n this.autoCalcShadowZBounds && (this._shadowMinZ = u, this._shadowMaxZ = d);\n }\n const r = this._orthoRight - this._orthoLeft, n = this._orthoTop - this._orthoBottom, o = this.shadowMinZ !== void 0 ? this.shadowMinZ : s.minZ, l = this.shadowMaxZ !== void 0 ? this.shadowMaxZ : s.maxZ, h = this.getScene().getEngine().useReverseDepthBuffer;\n O.OrthoOffCenterLHToRef(this._orthoLeft - r * this.shadowOrthoScale, this._orthoRight + r * this.shadowOrthoScale, this._orthoBottom - n * this.shadowOrthoScale, this._orthoTop + n * this.shadowOrthoScale, h ? l : o, h ? o : l, e, this.getScene().getEngine().isNDCHalfZRange);\n }\n _buildUniformLayout() {\n this._uniformBuffer.addUniform(\"vLightData\", 4), this._uniformBuffer.addUniform(\"vLightDiffuse\", 4), this._uniformBuffer.addUniform(\"vLightSpecular\", 4), this._uniformBuffer.addUniform(\"shadowsInfo\", 3), this._uniformBuffer.addUniform(\"depthValues\", 2), this._uniformBuffer.create();\n }\n /**\n * Sets the passed Effect object with the DirectionalLight transformed position (or position if not parented) and the passed name.\n * @param effect The effect to update\n * @param lightIndex The index of the light in the effect to update\n * @returns The directional light\n */\n transferToEffect(e, t) {\n return this.computeTransformedInformation() ? (this._uniformBuffer.updateFloat4(\"vLightData\", this.transformedDirection.x, this.transformedDirection.y, this.transformedDirection.z, 1, t), this) : (this._uniformBuffer.updateFloat4(\"vLightData\", this.direction.x, this.direction.y, this.direction.z, 1, t), this);\n }\n transferToNodeMaterialEffect(e, t) {\n return this.computeTransformedInformation() ? (e.setFloat3(t, this.transformedDirection.x, this.transformedDirection.y, this.transformedDirection.z), this) : (e.setFloat3(t, this.direction.x, this.direction.y, this.direction.z), this);\n }\n /**\n * Gets the minZ used for shadow according to both the scene and the light.\n *\n * Values are fixed on directional lights as it relies on an ortho projection hence the need to convert being\n * -1 and 1 to 0 and 1 doing (depth + min) / (min + max) -> (depth + 1) / (1 + 1) -> (depth * 0.5) + 0.5.\n * (when not using reverse depth buffer / NDC half Z range)\n * @param activeCamera The camera we are returning the min for\n * @returns the depth min z\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getDepthMinZ(e) {\n const t = this._scene.getEngine();\n return !t.useReverseDepthBuffer && t.isNDCHalfZRange ? 0 : 1;\n }\n /**\n * Gets the maxZ used for shadow according to both the scene and the light.\n *\n * Values are fixed on directional lights as it relies on an ortho projection hence the need to convert being\n * -1 and 1 to 0 and 1 doing (depth + min) / (min + max) -> (depth + 1) / (1 + 1) -> (depth * 0.5) + 0.5.\n * (when not using reverse depth buffer / NDC half Z range)\n * @param activeCamera The camera we are returning the max for\n * @returns the depth max z\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getDepthMaxZ(e) {\n const t = this._scene.getEngine();\n return t.useReverseDepthBuffer && t.isNDCHalfZRange ? 0 : 1;\n }\n /**\n * Prepares the list of defines specific to the light type.\n * @param defines the list of defines\n * @param lightIndex defines the index of the light for the effect\n */\n prepareLightSpecificDefines(e, t) {\n e[\"DIRLIGHT\" + t] = !0;\n }\n}\ny([\n I()\n], bn.prototype, \"shadowFrustumSize\", null);\ny([\n I()\n], bn.prototype, \"shadowOrthoScale\", null);\ny([\n I()\n], bn.prototype, \"autoUpdateExtends\", void 0);\ny([\n I()\n], bn.prototype, \"autoCalcShadowZBounds\", void 0);\ny([\n I(\"orthoLeft\")\n], bn.prototype, \"_orthoLeft\", void 0);\ny([\n I(\"orthoRight\")\n], bn.prototype, \"_orthoRight\", void 0);\ny([\n I(\"orthoTop\")\n], bn.prototype, \"_orthoTop\", void 0);\ny([\n I(\"orthoBottom\")\n], bn.prototype, \"_orthoBottom\", void 0);\nU(\"BABYLON.DirectionalLight\", bn);\nclass yw {\n constructor() {\n this.isVRSupported = !1;\n }\n async setup(e) {\n this.fluxGraphicsEngine = e, this.isVRSupported = await this.checkVRSupport(), rr.triggerOnVRSupported(this.isVRSupported), this.isVRSupported && this.setupVR();\n }\n async checkVRSupport() {\n let e = await vc.IsSessionSupportedAsync(\"immersive-vr\"), t = window.matchMedia(\"(pointer: coarse)\").matches;\n return e && !t;\n }\n async setupVR() {\n rr.triggerOnBeforeVRSetup();\n let e = await Promise.resolve().then(() => BH);\n await import(\"./index-4K-Qb6nr.js\").then((i) => i.g), await Promise.resolve().then(() => FU), this.xrHelper = await vf.CreateAsync(this.fluxGraphicsEngine.getScene()), this.xrHelper.featuresManager.enableFeature(e.WebXRFeatureName.HIT_TEST, \"latest\");\n let t = new e.WebXRInput(this.xrHelper.sessionManager, this.xrHelper.camera);\n rr.triggerOnVRInputAdded(t), this.xrHelper.featuresManager.enableFeature(e.WebXRFeatureName.POINTER_SELECTION, \"latest\", { xrInput: t }), this.xrHelper.featuresManager.enableFeature(e.WebXRFeatureName.HAND_TRACKING, \"latest\", { xrInput: t }), this.xrHelper.featuresManager.enableFeature(e.WebXRFeatureName.NEAR_INTERACTION, \"latest\", { xrInput: t, enableNearInteractionOnAllControllers: !0 }), process.env.NODE_ENV == \"development\" && await this.createDebugVRButton(), rr.triggerOnAfterVRSetup(this.xrHelper);\n }\n async enterVR() {\n if (this.xrHelper) {\n rr.triggerOnBeforeVREnter();\n let e = await this.xrHelper.enterXRAsync(\"immersive-vr\", \"local-floor\");\n new bn(\"light\", new g(0, -1, 0), this.fluxGraphicsEngine.getScene()), rr.triggerOnAfterVREnter(e);\n }\n }\n async exitVR() {\n this.xrHelper && (rr.triggerOnBeforeVRLeave(), await this.xrHelper.exitXRAsync(), rr.triggerOnAfterVRLeave());\n }\n ////////////\n // Getter //\n ////////////\n vrSupported() {\n return this.isVRSupported;\n }\n getXRHelper() {\n return this.xrHelper;\n }\n ///////////\n // DEBUG //\n ///////////\n async createDebugVRButton() {\n let e = document.createElement(\"div\");\n e.innerHTML = \"Enter VR\", e.style.background = \"gray\", e.style.padding = \"20px\", e.style.cursor = \"pointer\", e.style.position = \"absolute\", e.style.top = \"20px\", e.style.right = \"180px\", e.style.color = \"white\", e.style.fontFamily = \"Arial\", e.addEventListener(\"click\", async () => {\n this.enterVR();\n }), document.body.appendChild(e);\n }\n}\nclass Cw {\n constructor() {\n console.log(\"[Logic] [FluxGraphicsEngine] Starting...\"), this.vrManager = new yw();\n }\n async setup(e) {\n this.canvas = e, rr.triggerOnBeforeSetup(), await this.createEngine(), this.createScene(), this.createCamera(), await this.vrManager.setup(this), process.env.NODE_ENV == \"development\" && this.setupDevelopmentMode(), this.startRenderLoop();\n }\n async createEngine() {\n let e;\n const t = await it.IsSupportedAsync;\n console.log(\"[Logic] Initializing WebGL engine\"), e = new ee(this.canvas, !0, void 0, !0), window.addEventListener(\"resize\", () => this.engine.resize()), Ca.prototype.displayLoadingUI = () => {\n rr.triggerDisplayLoadingUI();\n }, Ca.prototype.hideLoadingUI = () => {\n rr.triggerHideLoadingUI();\n }, rr.triggerOnEngineCreated(e), this.engine = e;\n }\n createScene() {\n const e = new De(this.engine);\n e.clearColor = new Ce(0, 0, 0, 0), rr.triggerOnSceneCreated(e), this.scene = e;\n }\n createCamera() {\n let e = new ri(\"MainCamera\", Math.PI / 2, Math.PI / 2, 1, g.Zero(), this.getScene());\n e.attachControl(this.canvas, !0, !1), e.inputs.attached.mousewheel.detachControl(), e.inputs.attached.pointers.buttons = [0], e.angularSensibilityX = 3e3, e.angularSensibilityY = 3e3, e.fov = 1, e.minZ = 10, e.maxZ = 401, e.lowerRadiusLimit = e.upperRadiusLimit = 0.1, e.onViewMatrixChangedObservable.add(() => {\n rr.triggerOnCameraMoved(e);\n }), this.camera = e;\n let t = (s) => {\n let r = 1.4, n = 0.7, o = 5e-4, l = e.fov;\n l < r && 0 < s && (e.fov += s * o), n < l && s < 0 && (e.fov += s * o), rr.triggerOnCameraFOVChanged(e.fov);\n };\n this.canvas.addEventListener(\"wheel\", (s) => {\n t(s.deltaY);\n });\n let i;\n this.canvas.addEventListener(\"touchstart\", (s) => {\n s.touches.length === 2 && (i = s);\n }), this.canvas.addEventListener(\"touchmove\", (s) => {\n if (i) {\n let r = Math.hypot(s.touches[0].pageX - s.touches[1].pageX, s.touches[0].pageY - s.touches[1].pageY), o = Math.hypot(i.touches[0].pageX - i.touches[1].pageX, i.touches[0].pageY - i.touches[1].pageY) - r;\n t(o);\n }\n }), this.canvas.addEventListener(\"touchend\", () => {\n i = void 0;\n });\n }\n startRenderLoop() {\n rr.triggerOnBeforeFirstFrame(), this.engine.runRenderLoop(() => {\n this.scene.render();\n }), this.scene.registerBeforeRender(() => {\n rr.triggerOnBeforeUpdate();\n }), this.scene.registerAfterRender(() => {\n rr.triggerOnAfterUpdate();\n });\n }\n ////////////\n // Getter //\n ////////////\n getScene() {\n return this.scene;\n }\n getEngine() {\n return this.engine;\n }\n getCamera() {\n return this.camera;\n }\n getLifeCycleHooks() {\n return rr;\n }\n getVRManager() {\n return this.vrManager;\n }\n ///////////\n // DEBUG //\n ///////////\n async setupDevelopmentMode() {\n this.createDebugButton(), this.addDebugClickPosition();\n }\n addDebugClickPosition() {\n let e = this.scene;\n window.addEventListener(\"click\", () => {\n var i;\n var t = e.pick(e.pointerX, e.pointerY);\n if (t.hit && ((i = t.pickedMesh) != null && i.name.includes(\"PhotoDome\"))) {\n let s = t.pickedPoint, r = 0.9, n = parseInt((s.x * r).toString()), o = parseInt((s.y * r).toString()), l = parseInt((s.z * r).toString());\n console.log(\"[Logic] \" + n + \" \" + o + \" \" + l);\n }\n });\n }\n async createDebugButton() {\n let e = document.createElement(\"div\");\n e.innerHTML = \"Babylon Debug\", e.style.background = \"gray\", e.style.padding = \"20px\", e.style.cursor = \"pointer\", e.style.position = \"absolute\", e.style.top = \"20px\", e.style.right = \"20px\", e.style.color = \"white\", e.style.fontFamily = \"Arial\", e.addEventListener(\"click\", async () => {\n (await import(\"./babylon.inspector.bundle.max-f7-Rp5gB.js\").then((i) => i.b)).Inspector.Show(this.scene, {});\n }), document.body.appendChild(e);\n }\n // private createLoadingscreen(){\n // LifecycleFlux360GraphicsEngineSingleton.getInstance().registerOnDisplayLoadingUI(() => {\n // console.log(\"[Logic] \" + \"display loading\");\n // if (document.getElementById(\"customLoadingScreenDiv\")) {\n // let loadingDiv = document.getElementById(\"customLoadingScreenDiv\")!;\n // loadingDiv.style.opacity = \"1\";\n // loadingDiv.style.display = \"block\";\n // return;\n // }\n // let _loadingDiv = document.createElement(\"div\");\n // _loadingDiv.id = \"customLoadingScreenDiv\";\n // var customLoadingScreenCss = document.createElement('style');\n // customLoadingScreenCss.innerHTML = `\n // #customLoadingScreenDiv{\n // width: 100%;\n // height: 100%;\n // position: absolute;\n // top: 0;\n // left: 0;\n // z-index: 9999;\n // background-color: white;\n // transition: .5s opacity ease;\n // }\n // `;\n // document.getElementsByTagName('head')[0].appendChild(customLoadingScreenCss);\n // document.body.appendChild(_loadingDiv);\n // })\n // LifecycleFlux360GraphicsEngineSingleton.getInstance().registerOnHideLoadingUI(() => {\n // console.log(\"[Logic] \" + \"hide loading\");\n // let loadingDiv = document.getElementById(\"customLoadingScreenDiv\")!;\n // loadingDiv.style.opacity = \"0\";\n // setTimeout(() => { loadingDiv.style.display = \"none\"; }, 500);\n // })\n // }\n}\nfunction Xc(a) {\n return new URL(`${a}`, import.meta.url).href;\n}\nvar h0 = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {};\nfunction c0(a) {\n return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, \"default\") ? a.default : a;\n}\nfunction Jj(a) {\n if (a.__esModule) return a;\n var e = a.default;\n if (typeof e == \"function\") {\n var t = function i() {\n return this instanceof i ? Reflect.construct(e, arguments, this.constructor) : e.apply(this, arguments);\n };\n t.prototype = e.prototype;\n } else t = {};\n return Object.defineProperty(t, \"__esModule\", { value: !0 }), Object.keys(a).forEach(function(i) {\n var s = Object.getOwnPropertyDescriptor(a, i);\n Object.defineProperty(t, i, s.get ? s : {\n enumerable: !0,\n get: function() {\n return a[i];\n }\n });\n }), t;\n}\nvar Ig = { exports: {} };\n(function(a, e) {\n (function(t, i) {\n var s = \"1.0.38\", r = \"\", n = \"?\", o = \"function\", l = \"undefined\", h = \"object\", c = \"string\", u = \"major\", d = \"model\", f = \"name\", p = \"type\", _ = \"vendor\", m = \"version\", x = \"architecture\", v = \"console\", T = \"mobile\", E = \"tablet\", b = \"smarttv\", S = \"wearable\", C = \"embedded\", P = 500, N = \"Amazon\", F = \"Apple\", $ = \"ASUS\", j = \"BlackBerry\", ne = \"Browser\", te = \"Chrome\", le = \"Edge\", _e = \"Firefox\", Se = \"Google\", Ie = \"Huawei\", de = \"LG\", Y = \"Microsoft\", M = \"Motorola\", k = \"Opera\", W = \"Samsung\", V = \"Sharp\", K = \"Sony\", ie = \"Xiaomi\", fe = \"Zebra\", pe = \"Facebook\", ve = \"Chromium OS\", Ue = \"Mac OS\", ht = function(bt, Dt) {\n var lt = {};\n for (var Ht in bt)\n Dt[Ht] && Dt[Ht].length % 2 === 0 ? lt[Ht] = Dt[Ht].concat(bt[Ht]) : lt[Ht] = bt[Ht];\n return lt;\n }, Ee = function(bt) {\n for (var Dt = {}, lt = 0; lt < bt.length; lt++)\n Dt[bt[lt].toUpperCase()] = bt[lt];\n return Dt;\n }, Je = function(bt, Dt) {\n return typeof bt === c ? St(Dt).indexOf(St(bt)) !== -1 : !1;\n }, St = function(bt) {\n return bt.toLowerCase();\n }, Yt = function(bt) {\n return typeof bt === c ? bt.replace(/[^\\d\\.]/g, r).split(\".\")[0] : i;\n }, yt = function(bt, Dt) {\n if (typeof bt === c)\n return bt = bt.replace(/^\\s\\s*/, r), typeof Dt === l ? bt : bt.substring(0, P);\n }, Ui = function(bt, Dt) {\n for (var lt = 0, Ht, yi, zi, rt, gt, ki; lt < Dt.length && !gt; ) {\n var Kr = Dt[lt], gs = Dt[lt + 1];\n for (Ht = yi = 0; Ht < Kr.length && !gt && Kr[Ht]; )\n if (gt = Kr[Ht++].exec(bt), gt)\n for (zi = 0; zi < gs.length; zi++)\n ki = gt[++yi], rt = gs[zi], typeof rt === h && rt.length > 0 ? rt.length === 2 ? typeof rt[1] == o ? this[rt[0]] = rt[1].call(this, ki) : this[rt[0]] = rt[1] : rt.length === 3 ? typeof rt[1] === o && !(rt[1].exec && rt[1].test) ? this[rt[0]] = ki ? rt[1].call(this, ki, rt[2]) : i : this[rt[0]] = ki ? ki.replace(rt[1], rt[2]) : i : rt.length === 4 && (this[rt[0]] = ki ? rt[3].call(this, ki.replace(rt[1], rt[2])) : i) : this[rt] = ki || i;\n lt += 2;\n }\n }, is = function(bt, Dt) {\n for (var lt in Dt)\n if (typeof Dt[lt] === h && Dt[lt].length > 0) {\n for (var Ht = 0; Ht < Dt[lt].length; Ht++)\n if (Je(Dt[lt][Ht], bt))\n return lt === n ? i : lt;\n } else if (Je(Dt[lt], bt))\n return lt === n ? i : lt;\n return bt;\n }, fr = {\n \"1.0\": \"/8\",\n \"1.2\": \"/1\",\n \"1.3\": \"/3\",\n \"2.0\": \"/412\",\n \"2.0.2\": \"/416\",\n \"2.0.3\": \"/417\",\n \"2.0.4\": \"/419\",\n \"?\": \"/\"\n }, pr = {\n ME: \"4.90\",\n \"NT 3.11\": \"NT3.51\",\n \"NT 4.0\": \"NT4.0\",\n 2e3: \"NT 5.0\",\n XP: [\"NT 5.1\", \"NT 5.2\"],\n Vista: \"NT 6.0\",\n 7: \"NT 6.1\",\n 8: \"NT 6.2\",\n \"8.1\": \"NT 6.3\",\n 10: [\"NT 6.4\", \"NT 10.0\"],\n RT: \"ARM\"\n }, Er = {\n browser: [\n [\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i\n // Chrome for Android/iOS\n ],\n [m, [f, \"Chrome\"]],\n [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i\n // Microsoft Edge\n ],\n [m, [f, \"Edge\"]],\n [\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i,\n // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,\n // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i\n // Opera\n ],\n [f, m],\n [\n /opios[\\/ ]+([\\w\\.]+)/i\n // Opera mini on iphone >= 8.0\n ],\n [m, [f, k + \" Mini\"]],\n [\n /\\bop(?:rg)?x\\/([\\w\\.]+)/i\n // Opera GX\n ],\n [m, [f, k + \" GX\"]],\n [\n /\\bopr\\/([\\w\\.]+)/i\n // Opera Webkit\n ],\n [m, [f, k]],\n [\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i\n // Baidu\n ],\n [m, [f, \"Baidu\"]],\n [\n /(kindle)\\/([\\w\\.]+)/i,\n // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,\n // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant|iemobile|slim)\\s?(?:browser)?[\\/ ]?([\\w\\.]*)/i,\n // Avant/IEMobile/SlimBrowser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i,\n // Internet Explorer\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n /(heytap|ovi)browser\\/([\\d\\.]+)/i,\n // Heytap/Ovi\n /(weibo)__([\\d\\.]+)/i\n // Weibo\n ],\n [f, m],\n [\n /\\bddg\\/([\\w\\.]+)/i\n // DuckDuckGo\n ],\n [m, [f, \"DuckDuckGo\"]],\n [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i\n // UCBrowser\n ],\n [m, [f, \"UC\" + ne]],\n [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i,\n // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i\n // WeChat\n ],\n [m, [f, \"WeChat\"]],\n [\n /konqueror\\/([\\w\\.]+)/i\n // Konqueror\n ],\n [m, [f, \"Konqueror\"]],\n [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i\n // IE11\n ],\n [m, [f, \"IE\"]],\n [\n /ya(?:search)?browser\\/([\\w\\.]+)/i\n // Yandex\n ],\n [m, [f, \"Yandex\"]],\n [\n /slbrowser\\/([\\w\\.]+)/i\n // Smart Lenovo Browser\n ],\n [m, [f, \"Smart Lenovo \" + ne]],\n [\n /(avast|avg)\\/([\\w\\.]+)/i\n // Avast/AVG Secure Browser\n ],\n [[f, /(.+)/, \"$1 Secure \" + ne], m],\n [\n /\\bfocus\\/([\\w\\.]+)/i\n // Firefox Focus\n ],\n [m, [f, _e + \" Focus\"]],\n [\n /\\bopt\\/([\\w\\.]+)/i\n // Opera Touch\n ],\n [m, [f, k + \" Touch\"]],\n [\n /coc_coc\\w+\\/([\\w\\.]+)/i\n // Coc Coc Browser\n ],\n [m, [f, \"Coc Coc\"]],\n [\n /dolfin\\/([\\w\\.]+)/i\n // Dolphin\n ],\n [m, [f, \"Dolphin\"]],\n [\n /coast\\/([\\w\\.]+)/i\n // Opera Coast\n ],\n [m, [f, k + \" Coast\"]],\n [\n /miuibrowser\\/([\\w\\.]+)/i\n // MIUI Browser\n ],\n [m, [f, \"MIUI \" + ne]],\n [\n /fxios\\/([-\\w\\.]+)/i\n // Firefox for iOS\n ],\n [m, [f, _e]],\n [\n /\\bqihu|(qi?ho?o?|360)browser/i\n // 360\n ],\n [[f, \"360 \" + ne]],\n [\n /(oculus|sailfish|huawei|vivo)browser\\/([\\w\\.]+)/i\n ],\n [[f, /(.+)/, \"$1 \" + ne], m],\n [\n // Oculus/Sailfish/HuaweiBrowser/VivoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i\n // Samsung Internet\n ],\n [m, [f, W + \" Internet\"]],\n [\n /(comodo_dragon)\\/([\\w\\.]+)/i\n // Comodo Dragon\n ],\n [[f, /_/g, \" \"], m],\n [\n /metasr[\\/ ]?([\\d\\.]+)/i\n // Sogou Explorer\n ],\n [m, [f, \"Sogou Explorer\"]],\n [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i\n // Sogou Mobile\n ],\n [[f, \"Sogou Mobile\"], m],\n [\n /(electron)\\/([\\w\\.]+) safari/i,\n // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,\n // Tesla\n /m?(qqbrowser|2345Explorer)[\\/ ]?([\\w\\.]+)/i\n // QQBrowser/2345 Browser\n ],\n [f, m],\n [\n /(lbbrowser)/i,\n // LieBao Browser\n /\\[(linkedin)app\\]/i\n // LinkedIn App for iOS & Android\n ],\n [f],\n [\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i\n // Facebook App for iOS & Android\n ],\n [[f, pe], m],\n [\n /(Klarna)\\/([\\w\\.]+)/i,\n // Klarna Shopping Browser for iOS & Android\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,\n // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,\n // Naver InApp\n /safari (line)\\/([\\w\\.]+)/i,\n // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i,\n // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i,\n // Alipay\n /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i,\n // Twitter\n /(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i\n // Chromium/Instagram/Snapchat\n ],\n [f, m],\n [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i\n // Google Search Appliance on iOS\n ],\n [m, [f, \"GSA\"]],\n [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i\n // TikTok\n ],\n [m, [f, \"TikTok\"]],\n [\n /headlesschrome(?:\\/([\\w\\.]+)| )/i\n // Chrome Headless\n ],\n [m, [f, te + \" Headless\"]],\n [\n / wv\\).+(chrome)\\/([\\w\\.]+)/i\n // Chrome WebView\n ],\n [[f, te + \" WebView\"], m],\n [\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i\n // Android Browser\n ],\n [m, [f, \"Android \" + ne]],\n [\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i\n // Chrome/OmniWeb/Arora/Tizen/Nokia\n ],\n [f, m],\n [\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i\n // Mobile Safari\n ],\n [m, [f, \"Mobile Safari\"]],\n [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i\n // Safari & Safari Mobile\n ],\n [m, f],\n [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i\n // Safari < 3.0\n ],\n [f, [m, is, fr]],\n [\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ],\n [f, m],\n [\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i\n // Netscape\n ],\n [[f, \"Netscape\"], m],\n [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i\n // Firefox Reality\n ],\n [m, [f, _e + \" Reality\"]],\n [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i,\n // Flow\n /(swiftfox)/i,\n // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i,\n // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,\n // Mozilla\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i,\n // Links\n /panasonic;(viera)/i\n // Panasonic Viera\n ],\n [f, m],\n [\n /(cobalt)\\/([\\w\\.]+)/i\n // Cobalt\n ],\n [f, [m, /master.|lts./, \"\"]]\n ],\n cpu: [\n [\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i\n // AMD64 (x64)\n ],\n [[x, \"amd64\"]],\n [\n /(ia32(?=;))/i\n // IA32 (quicktime)\n ],\n [[x, St]],\n [\n /((?:i[346]|x)86)[;\\)]/i\n // IA32 (x86)\n ],\n [[x, \"ia32\"]],\n [\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i\n // ARM64\n ],\n [[x, \"arm64\"]],\n [\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i\n // ARMHF\n ],\n [[x, \"armhf\"]],\n [\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ],\n [[x, \"arm\"]],\n [\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i\n // PowerPC\n ],\n [[x, /ower/, r, St]],\n [\n /(sun4\\w)[;\\)]/i\n // SPARC\n ],\n [[x, \"sparc\"]],\n [\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ],\n [[x, St]]\n ],\n device: [\n [\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ],\n [d, [_, W], [p, E]],\n [\n /\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]([-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ],\n [d, [_, W], [p, T]],\n [\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i\n // iPod/iPhone\n ],\n [d, [_, F], [p, T]],\n [\n /\\((ipad);[-\\w\\),; ]+apple/i,\n // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ],\n [d, [_, F], [p, E]],\n [\n /(macintosh);/i\n ],\n [d, [_, F]],\n [\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ],\n [d, [_, V], [p, T]],\n [\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ],\n [d, [_, Ie], [p, E]],\n [\n /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ],\n [d, [_, Ie], [p, T]],\n [\n // Xiaomi\n /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i,\n // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i,\n // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,\n // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,\n // Xiaomi Redmi\n /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i,\n // Xiaomi Redmi 'numeric' models\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i\n // Xiaomi Mi\n ],\n [[d, /_/g, \" \"], [_, ie], [p, T]],\n [\n /oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i,\n // Redmi Pad\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i\n // Mi Pad tablets\n ],\n [[d, /_/g, \" \"], [_, ie], [p, E]],\n [\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ],\n [d, [_, \"OPPO\"], [p, T]],\n [\n /\\b(opd2\\d{3}a?) bui/i\n ],\n [d, [_, \"OPPO\"], [p, E]],\n [\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ],\n [d, [_, \"Vivo\"], [p, T]],\n [\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ],\n [d, [_, \"Realme\"], [p, T]],\n [\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ],\n [d, [_, M], [p, T]],\n [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ],\n [d, [_, M], [p, E]],\n [\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ],\n [d, [_, de], [p, E]],\n [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ],\n [d, [_, de], [p, T]],\n [\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ],\n [d, [_, \"Lenovo\"], [p, E]],\n [\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ],\n [[d, /_/g, \" \"], [_, \"Nokia\"], [p, T]],\n [\n // Google\n /(pixel c)\\b/i\n // Google Pixel C\n ],\n [d, [_, Se], [p, E]],\n [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i\n // Google Pixel\n ],\n [d, [_, Se], [p, T]],\n [\n // Sony\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ],\n [d, [_, K], [p, T]],\n [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ],\n [[d, \"Xperia Tablet\"], [_, K], [p, E]],\n [\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ],\n [d, [_, \"OnePlus\"], [p, T]],\n [\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,\n // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i\n // Kindle Fire HD\n ],\n [d, [_, N], [p, E]],\n [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i\n // Fire Phone\n ],\n [[d, /(.+)/g, \"Fire Phone $1\"], [_, N], [p, T]],\n [\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i\n // BlackBerry PlayBook\n ],\n [d, _, [p, E]],\n [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i\n // BlackBerry 10\n ],\n [d, [_, j], [p, T]],\n [\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ],\n [d, [_, $], [p, E]],\n [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ],\n [d, [_, $], [p, T]],\n [\n // HTC\n /(nexus 9)/i\n // HTC Nexus 9\n ],\n [d, [_, \"HTC\"], [p, E]],\n [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,\n // HTC\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i\n // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ],\n [_, [d, /_/g, \" \"], [p, T]],\n [\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ],\n [d, [_, \"Acer\"], [p, E]],\n [\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ],\n [d, [_, \"Meizu\"], [p, T]],\n [\n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ],\n [d, [_, \"Ulefone\"], [p, T]],\n [\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i,\n // HP iPAQ\n /(asus)-?(\\w+)/i,\n // Asus\n /(microsoft); (lumia[\\w ]+)/i,\n // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i,\n // Lenovo\n /(jolla)/i,\n // Jolla\n /(oppo) ?([\\w ]+) bui/i\n // OPPO\n ],\n [_, d, [p, T]],\n [\n /(kobo)\\s(ereader|touch)/i,\n // Kobo\n /(archos) (gamepad2?)/i,\n // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i,\n // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i,\n // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i,\n // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i,\n // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,\n // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i,\n // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i,\n // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i\n // Vodafone\n ],\n [_, d, [p, E]],\n [\n /(surface duo)/i\n // Surface Duo\n ],\n [d, [_, Y], [p, E]],\n [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i\n // Fairphone\n ],\n [d, [_, \"Fairphone\"], [p, T]],\n [\n /(u304aa)/i\n // AT&T\n ],\n [d, [_, \"AT&T\"], [p, T]],\n [\n /\\bsie-(\\w*)/i\n // Siemens\n ],\n [d, [_, \"Siemens\"], [p, T]],\n [\n /\\b(rct\\w+) b/i\n // RCA Tablets\n ],\n [d, [_, \"RCA\"], [p, E]],\n [\n /\\b(venue[\\d ]{2,7}) b/i\n // Dell Venue Tablets\n ],\n [d, [_, \"Dell\"], [p, E]],\n [\n /\\b(q(?:mv|ta)\\w+) b/i\n // Verizon Tablet\n ],\n [d, [_, \"Verizon\"], [p, E]],\n [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i\n // Barnes & Noble Tablet\n ],\n [d, [_, \"Barnes & Noble\"], [p, E]],\n [\n /\\b(tm\\d{3}\\w+) b/i\n ],\n [d, [_, \"NuVision\"], [p, E]],\n [\n /\\b(k88) b/i\n // ZTE K Series Tablet\n ],\n [d, [_, \"ZTE\"], [p, E]],\n [\n /\\b(nx\\d{3}j) b/i\n // ZTE Nubia\n ],\n [d, [_, \"ZTE\"], [p, T]],\n [\n /\\b(gen\\d{3}) b.+49h/i\n // Swiss GEN Mobile\n ],\n [d, [_, \"Swiss\"], [p, T]],\n [\n /\\b(zur\\d{3}) b/i\n // Swiss ZUR Tablet\n ],\n [d, [_, \"Swiss\"], [p, E]],\n [\n /\\b((zeki)?tb.*\\b) b/i\n // Zeki Tablets\n ],\n [d, [_, \"Zeki\"], [p, E]],\n [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i\n // Dragon Touch Tablet\n ],\n [[_, \"Dragon Touch\"], d, [p, E]],\n [\n /\\b(ns-?\\w{0,9}) b/i\n // Insignia Tablets\n ],\n [d, [_, \"Insignia\"], [p, E]],\n [\n /\\b((nxa|next)-?\\w{0,9}) b/i\n // NextBook Tablets\n ],\n [d, [_, \"NextBook\"], [p, E]],\n [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i\n // Voice Xtreme Phones\n ],\n [[_, \"Voice\"], d, [p, T]],\n [\n /\\b(lvtel\\-)?(v1[12]) b/i\n // LvTel Phones\n ],\n [[_, \"LvTel\"], d, [p, T]],\n [\n /\\b(ph-1) /i\n // Essential PH-1\n ],\n [d, [_, \"Essential\"], [p, T]],\n [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i\n // Envizen Tablets\n ],\n [d, [_, \"Envizen\"], [p, E]],\n [\n /\\b(trio[-\\w\\. ]+) b/i\n // MachSpeed Tablets\n ],\n [d, [_, \"MachSpeed\"], [p, E]],\n [\n /\\btu_(1491) b/i\n // Rotor Tablets\n ],\n [d, [_, \"Rotor\"], [p, E]],\n [\n /(shield[\\w ]+) b/i\n // Nvidia Shield Tablets\n ],\n [d, [_, \"Nvidia\"], [p, E]],\n [\n /(sprint) (\\w+)/i\n // Sprint Phones\n ],\n [_, d, [p, T]],\n [\n /(kin\\.[onetw]{3})/i\n // Microsoft Kin\n ],\n [[d, /\\./g, \" \"], [_, Y], [p, T]],\n [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i\n // Zebra\n ],\n [d, [_, fe], [p, E]],\n [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ],\n [d, [_, fe], [p, T]],\n [\n ///////////////////\n // SMARTTVS\n ///////////////////\n /smart-tv.+(samsung)/i\n // Samsung\n ],\n [_, [p, b]],\n [\n /hbbtv.+maple;(\\d+)/i\n ],\n [[d, /^/, \"SmartTV\"], [_, W], [p, b]],\n [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i\n // LG SmartTV\n ],\n [[_, de], [p, b]],\n [\n /(apple) ?tv/i\n // Apple TV\n ],\n [_, [d, F + \" TV\"], [p, b]],\n [\n /crkey/i\n // Google Chromecast\n ],\n [[d, te + \"cast\"], [_, Se], [p, b]],\n [\n /droid.+aft(\\w+)( bui|\\))/i\n // Fire TV\n ],\n [d, [_, N], [p, b]],\n [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i\n // Sharp\n ],\n [d, [_, V], [p, b]],\n [\n /(bravia[\\w ]+)( bui|\\))/i\n // Sony\n ],\n [d, [_, K], [p, b]],\n [\n /(mitv-\\w{5}) bui/i\n // Xiaomi\n ],\n [d, [_, ie], [p, b]],\n [\n /Hbbtv.*(technisat) (.*);/i\n // TechniSAT\n ],\n [_, d, [p, b]],\n [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,\n // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i\n // HbbTV devices\n ],\n [[_, yt], [d, yt], [p, b]],\n [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i\n // SmartTV from Unidentified Vendors\n ],\n [[p, b]],\n [\n ///////////////////\n // CONSOLES\n ///////////////////\n /(ouya)/i,\n // Ouya\n /(nintendo) ([wids3utch]+)/i\n // Nintendo\n ],\n [_, d, [p, v]],\n [\n /droid.+; (shield) bui/i\n // Nvidia\n ],\n [d, [_, \"Nvidia\"], [p, v]],\n [\n /(playstation [345portablevi]+)/i\n // Playstation\n ],\n [d, [_, K], [p, v]],\n [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i\n // Microsoft Xbox\n ],\n [d, [_, Y], [p, v]],\n [\n ///////////////////\n // WEARABLES\n ///////////////////\n /((pebble))app/i\n // Pebble\n ],\n [_, d, [p, S]],\n [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i\n // Apple Watch\n ],\n [d, [_, F], [p, S]],\n [\n /droid.+; (glass) \\d/i\n // Google Glass\n ],\n [d, [_, Se], [p, S]],\n [\n /droid.+; (wt63?0{2,3})\\)/i\n ],\n [d, [_, fe], [p, S]],\n [\n /(quest( \\d| pro)?)/i\n // Oculus Quest\n ],\n [d, [_, pe], [p, S]],\n [\n ///////////////////\n // EMBEDDED\n ///////////////////\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i\n // Tesla\n ],\n [_, [p, C]],\n [\n /(aeobc)\\b/i\n // Echo Dot\n ],\n [d, [_, N], [p, C]],\n [\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i\n // Android Phones from Unidentified Vendors\n ],\n [d, [p, T]],\n [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i\n // Android Tablets from Unidentified Vendors\n ],\n [d, [p, E]],\n [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i\n // Unidentifiable Tablet\n ],\n [[p, E]],\n [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i\n // Unidentifiable Mobile\n ],\n [[p, T]],\n [\n /(android[-\\w\\. ]{0,9});.+buil/i\n // Generic Android Device\n ],\n [d, [_, \"Generic\"]]\n ],\n engine: [\n [\n /windows.+ edge\\/([\\w\\.]+)/i\n // EdgeHTML\n ],\n [m, [f, le + \"HTML\"]],\n [\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i\n // Blink\n ],\n [m, [f, \"Blink\"]],\n [\n /(presto)\\/([\\w\\.]+)/i,\n // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,\n // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i,\n // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,\n // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i,\n // iCab\n /\\b(libweb)/i\n ],\n [f, m],\n [\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i\n // Gecko\n ],\n [m, f]\n ],\n os: [\n [\n // Windows\n /microsoft (windows) (vista|xp)/i\n // Windows (iTunes)\n ],\n [f, m],\n [\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i\n // Windows Phone\n ],\n [f, [m, is, pr]],\n [\n /windows nt 6\\.2; (arm)/i,\n // Windows RT\n /windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,\n /(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ],\n [[m, is, pr], [f, \"Windows\"]],\n [\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,\n // iOS\n /(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ],\n [[m, /_/g, \".\"], [f, \"iOS\"]],\n [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i\n // Mac OS\n ],\n [[f, Ue], [m, /_/g, \".\"]],\n [\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i\n // Android-x86/HarmonyOS\n ],\n [m, f],\n [\n // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i,\n // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i,\n // Tizen/KaiOS\n /\\((series40);/i\n // Series 40\n ],\n [f, m],\n [\n /\\(bb(10);/i\n // BlackBerry 10\n ],\n [m, [f, j]],\n [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i\n // Symbian\n ],\n [m, [f, \"Symbian\"]],\n [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i\n // Firefox OS\n ],\n [m, [f, _e + \" OS\"]],\n [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i\n // WebOS\n ],\n [m, [f, \"webOS\"]],\n [\n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i\n // watchOS\n ],\n [m, [f, \"watchOS\"]],\n [\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i\n // Google Chromecast\n ],\n [m, [f, te + \"cast\"]],\n [\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i\n // Chromium OS\n ],\n [[f, ve], m],\n [\n // Smart TVs\n /panasonic;(viera)/i,\n // Panasonic Viera\n /(netrange)mmh/i,\n // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i,\n // NetTV\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i,\n // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i,\n // Microsoft Xbox (360, One, X, S, Series X, Series S)\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,\n // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i,\n // Mint\n /(mageia|vectorlinux)[; ]/i,\n // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i,\n // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i,\n // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,\n // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i\n // Haiku\n ],\n [f, m],\n [\n /(sunos) ?([\\w\\.\\d]*)/i\n // Solaris\n ],\n [[f, \"Solaris\"], m],\n [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,\n // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,\n // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,\n // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i\n // UNIX\n ],\n [f, m]\n ]\n }, gi = function(bt, Dt) {\n if (typeof bt === h && (Dt = bt, bt = i), !(this instanceof gi))\n return new gi(bt, Dt).getResult();\n var lt = typeof t !== l && t.navigator ? t.navigator : i, Ht = bt || (lt && lt.userAgent ? lt.userAgent : r), yi = lt && lt.userAgentData ? lt.userAgentData : i, zi = Dt ? ht(Er, Dt) : Er, rt = lt && lt.userAgent == Ht;\n return this.getBrowser = function() {\n var gt = {};\n return gt[f] = i, gt[m] = i, Ui.call(gt, Ht, zi.browser), gt[u] = Yt(gt[m]), rt && lt && lt.brave && typeof lt.brave.isBrave == o && (gt[f] = \"Brave\"), gt;\n }, this.getCPU = function() {\n var gt = {};\n return gt[x] = i, Ui.call(gt, Ht, zi.cpu), gt;\n }, this.getDevice = function() {\n var gt = {};\n return gt[_] = i, gt[d] = i, gt[p] = i, Ui.call(gt, Ht, zi.device), rt && !gt[p] && yi && yi.mobile && (gt[p] = T), rt && gt[d] == \"Macintosh\" && lt && typeof lt.standalone !== l && lt.maxTouchPoints && lt.maxTouchPoints > 2 && (gt[d] = \"iPad\", gt[p] = E), gt;\n }, this.getEngine = function() {\n var gt = {};\n return gt[f] = i, gt[m] = i, Ui.call(gt, Ht, zi.engine), gt;\n }, this.getOS = function() {\n var gt = {};\n return gt[f] = i, gt[m] = i, Ui.call(gt, Ht, zi.os), rt && !gt[f] && yi && yi.platform && yi.platform != \"Unknown\" && (gt[f] = yi.platform.replace(/chrome os/i, ve).replace(/macos/i, Ue)), gt;\n }, this.getResult = function() {\n return {\n ua: this.getUA(),\n browser: this.getBrowser(),\n engine: this.getEngine(),\n os: this.getOS(),\n device: this.getDevice(),\n cpu: this.getCPU()\n };\n }, this.getUA = function() {\n return Ht;\n }, this.setUA = function(gt) {\n return Ht = typeof gt === c && gt.length > P ? yt(gt, P) : gt, this;\n }, this.setUA(Ht), this;\n };\n gi.VERSION = s, gi.BROWSER = Ee([f, m, u]), gi.CPU = Ee([x]), gi.DEVICE = Ee([d, _, p, v, T, b, E, S, C]), gi.ENGINE = gi.OS = Ee([f, m]), a.exports && (e = a.exports = gi), e.UAParser = gi;\n var Ni = typeof t !== l && (t.jQuery || t.Zepto);\n if (Ni && !Ni.ua) {\n var hr = new gi();\n Ni.ua = hr.getResult(), Ni.ua.get = function() {\n return hr.getUA();\n }, Ni.ua.set = function(bt) {\n hr.setUA(bt);\n var Dt = hr.getResult();\n for (var lt in Dt)\n Ni.ua[lt] = Dt[lt];\n };\n }\n })(typeof window == \"object\" ? window : h0);\n})(Ig, Ig.exports);\nvar Aw = Ig.exports;\nconst Yx = /* @__PURE__ */ c0(Aw);\nclass u0 {\n constructor(e, t) {\n this.id = e.id, this.url = this.checkFallbackURL(e, t), this.type = e.type;\n }\n checkFallbackURL(e, t) {\n if (e.fallbacks)\n for (let r = 0; r < e.fallbacks.length; r++) {\n let n = e.fallbacks[r];\n if (n.type == \"browser\") {\n var i = new Yx().getResult();\n if (i.browser.name == n.browser)\n return Xc(n.url);\n }\n if (n.type == \"maxTextureSize\" && n.maxTextureSize == t.getEngine().getCaps().maxTextureSize || n.type == \"vr\" && t.getVRManager().vrSupported())\n return Xc(n.url);\n if (n.type == \"maxDeviceWidth\") {\n var s = window.innerWidth > 0 ? window.innerWidth : screen.width;\n if (n.maxDeviceWidth > s)\n return Xc(n.url);\n }\n }\n return Xc(e.url);\n }\n // Getters\n getID() {\n return this.id;\n }\n getType() {\n return this.type;\n }\n getURL() {\n return this.url;\n }\n}\nclass Rw extends u0 {\n constructor(e, t) {\n super(e, t);\n }\n // Fetch texture and create bitmap. The babylon texture will be created from that bitmap when the components are constructed (in enterSituation())\n async preloadMediaFile() {\n let t = await (await fetch(this.url)).blob(), i = await createImageBitmap(t);\n this.bitmap = i;\n }\n getBitmap() {\n return this.bitmap;\n }\n}\nlet Iw = class extends u0 {\n constructor(e, t) {\n super(e, t), this.hasAlphaChannel = !1, e.hasAlpha != null && (this.hasAlphaChannel = e.hasAlpha);\n }\n async preloadMediaFile() {\n return new Promise((e) => {\n let t = document.createElement(\"video\");\n t.src = this.url, t.muted = !0, t.play().then(() => {\n t.pause(), t.muted = !1, t.currentTime = 0;\n }), this.video = t, e();\n });\n }\n getVideo() {\n return this.video;\n }\n hasAlpha() {\n return this.hasAlphaChannel;\n }\n};\nclass Pw {\n constructor() {\n this.mediaFiles = [];\n }\n // if I set this to private this error occures: Property 'mediaFiles' of exported class expression may not be private or protected.\n hasMedia(e) {\n return this.mediaFiles.find((t) => t.getID() === e) != null;\n }\n getMedia(e) {\n return this.mediaFiles.find((t) => t.getID() === e);\n }\n setup(e, t) {\n e.forEach((i) => {\n i.type == \"Texture\" && this.mediaFiles.push(new Rw(i, t)), i.type == \"Video\" && this.mediaFiles.push(new Iw(i, t));\n });\n }\n}\nconst on = new Pw();\nclass ui {\n /**\n * Creates a new Action\n * @param triggerOptions the trigger, with or without parameters, for the action\n * @param condition an optional determinant of action\n */\n constructor(e, t) {\n this.triggerOptions = e, this.onBeforeExecuteObservable = new G(), e.parameter ? (this.trigger = e.trigger, this._triggerParameter = e.parameter) : e.trigger ? this.trigger = e.trigger : this.trigger = e, this._nextActiveAction = this, this._condition = t;\n }\n /**\n * Internal only\n * @internal\n */\n _prepare() {\n }\n /**\n * Gets the trigger parameter\n * @returns the trigger parameter\n */\n getTriggerParameter() {\n return this._triggerParameter;\n }\n /**\n * Sets the trigger parameter\n * @param value defines the new trigger parameter\n */\n setTriggerParameter(e) {\n this._triggerParameter = e;\n }\n /**\n * Internal only - Returns if the current condition allows to run the action\n * @internal\n */\n _evaluateConditionForCurrentFrame() {\n const e = this._condition;\n if (!e)\n return !0;\n const t = this._actionManager.getScene().getRenderId();\n return e._evaluationId !== t && (e._evaluationId = t, e._currentResult = e.isValid()), e._currentResult;\n }\n /**\n * Internal only - executes current action event\n * @internal\n */\n _executeCurrent(e) {\n this._evaluateConditionForCurrentFrame() && (this.onBeforeExecuteObservable.notifyObservers(this), this._nextActiveAction.execute(e), this.skipToNextActiveAction());\n }\n /**\n * Execute placeholder for child classes\n * @param evt optional action event\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n execute(e) {\n }\n /**\n * Skips to next active action\n */\n skipToNextActiveAction() {\n this._nextActiveAction._child ? (this._nextActiveAction._child._actionManager || (this._nextActiveAction._child._actionManager = this._actionManager), this._nextActiveAction = this._nextActiveAction._child) : this._nextActiveAction = this;\n }\n /**\n * Adds action to chain of actions, may be a DoNothingAction\n * @param action defines the next action to execute\n * @returns The action passed in\n * @see https://www.babylonjs-playground.com/#1T30HR#0\n */\n then(e) {\n return this._child = e, e._actionManager = this._actionManager, e._prepare(), e;\n }\n /**\n * Internal only\n * @internal\n */\n _getProperty(e) {\n return this._actionManager._getProperty(e);\n }\n /**\n * @internal\n */\n _getEffectiveTarget(e, t) {\n return this._actionManager._getEffectiveTarget(e, t);\n }\n /**\n * Serialize placeholder for child classes\n * @param parent of child\n * @returns the serialized object\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n serialize(e) {\n return null;\n }\n /**\n * Internal only called by serialize\n * @internal\n */\n _serialize(e, t) {\n const i = {\n type: 1,\n children: [],\n name: e.name,\n properties: e.properties || []\n };\n if (this._child && this._child.serialize(i), this._condition) {\n const s = this._condition.serialize();\n return s.children.push(i), t && t.children.push(s), s;\n }\n return t && t.children.push(i), i;\n }\n}\nui._SerializeValueAsString = (a) => typeof a == \"number\" ? a.toString() : typeof a == \"boolean\" ? a ? \"true\" : \"false\" : a instanceof Q ? a.x + \", \" + a.y : a instanceof g ? a.x + \", \" + a.y + \", \" + a.z : a instanceof re ? a.r + \", \" + a.g + \", \" + a.b : a instanceof Ce ? a.r + \", \" + a.g + \", \" + a.b + \", \" + a.a : a;\nui._GetTargetProperty = (a) => ({\n name: \"target\",\n targetType: a._isMesh ? \"MeshProperties\" : a._isLight ? \"LightProperties\" : a._isCamera ? \"CameraProperties\" : a._isMaterial ? \"MaterialProperties\" : \"SceneProperties\",\n value: a._isScene ? \"Scene\" : a.name\n});\nU(\"BABYLON.Action\", ui);\nclass Tu {\n /**\n * Creates a new Condition\n * @param actionManager the manager of the action the condition is applied to\n */\n constructor(e) {\n this._actionManager = e;\n }\n /**\n * Check if the current condition is valid\n * @returns a boolean\n */\n isValid() {\n return !0;\n }\n /**\n * @internal\n */\n _getProperty(e) {\n return this._actionManager._getProperty(e);\n }\n /**\n * @internal\n */\n _getEffectiveTarget(e, t) {\n return this._actionManager._getEffectiveTarget(e, t);\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Serialize placeholder for child classes\n * @returns the serialized object\n */\n serialize() {\n }\n /**\n * @internal\n */\n _serialize(e) {\n return {\n type: 2,\n children: [],\n name: e.name,\n properties: e.properties\n };\n }\n}\nclass Ps extends Tu {\n /**\n * returns the number for IsEqual\n */\n static get IsEqual() {\n return Ps._IsEqual;\n }\n /**\n * Returns the number for IsDifferent\n */\n static get IsDifferent() {\n return Ps._IsDifferent;\n }\n /**\n * Returns the number for IsGreater\n */\n static get IsGreater() {\n return Ps._IsGreater;\n }\n /**\n * Returns the number for IsLesser\n */\n static get IsLesser() {\n return Ps._IsLesser;\n }\n /**\n * Creates a new ValueCondition\n * @param actionManager manager for the action the condition applies to\n * @param target for the action\n * @param propertyPath path to specify the property of the target the conditional operator uses\n * @param value the value compared by the conditional operator against the current value of the property\n * @param operator the conditional operator, default ValueCondition.IsEqual\n */\n constructor(e, t, i, s, r = Ps.IsEqual) {\n super(e), this.propertyPath = i, this.value = s, this.operator = r, this._target = t, this._effectiveTarget = this._getEffectiveTarget(t, this.propertyPath), this._property = this._getProperty(this.propertyPath);\n }\n /**\n * Compares the given value with the property value for the specified conditional operator\n * @returns the result of the comparison\n */\n isValid() {\n switch (this.operator) {\n case Ps.IsGreater:\n return this._effectiveTarget[this._property] > this.value;\n case Ps.IsLesser:\n return this._effectiveTarget[this._property] < this.value;\n case Ps.IsEqual:\n case Ps.IsDifferent: {\n let e;\n return this.value.equals ? e = this.value.equals(this._effectiveTarget[this._property]) : e = this.value === this._effectiveTarget[this._property], this.operator === Ps.IsEqual ? e : !e;\n }\n }\n return !1;\n }\n /**\n * Serialize the ValueCondition into a JSON compatible object\n * @returns serialization object\n */\n serialize() {\n return this._serialize({\n name: \"ValueCondition\",\n properties: [\n ui._GetTargetProperty(this._target),\n { name: \"propertyPath\", value: this.propertyPath },\n { name: \"value\", value: ui._SerializeValueAsString(this.value) },\n { name: \"operator\", value: Ps.GetOperatorName(this.operator) }\n ]\n });\n }\n /**\n * Gets the name of the conditional operator for the ValueCondition\n * @param operator the conditional operator\n * @returns the name\n */\n static GetOperatorName(e) {\n switch (e) {\n case Ps._IsEqual:\n return \"IsEqual\";\n case Ps._IsDifferent:\n return \"IsDifferent\";\n case Ps._IsGreater:\n return \"IsGreater\";\n case Ps._IsLesser:\n return \"IsLesser\";\n default:\n return \"\";\n }\n }\n}\nPs._IsEqual = 0;\nPs._IsDifferent = 1;\nPs._IsGreater = 2;\nPs._IsLesser = 3;\nclass Mw extends Tu {\n /**\n * Creates a new PredicateCondition\n * @param actionManager manager for the action the condition applies to\n * @param predicate defines the predicate function used to validate the condition\n */\n constructor(e, t) {\n super(e), this.predicate = t;\n }\n /**\n * @returns the validity of the predicate condition\n */\n isValid() {\n return this.predicate();\n }\n}\nclass Dw extends Tu {\n /**\n * Creates a new StateCondition\n * @param actionManager manager for the action the condition applies to\n * @param target of the condition\n * @param value to compare with target state\n */\n constructor(e, t, i) {\n super(e), this.value = i, this._target = t;\n }\n /**\n * Gets a boolean indicating if the current condition is met\n * @returns the validity of the state\n */\n isValid() {\n return this._target.state === this.value;\n }\n /**\n * Serialize the StateCondition into a JSON compatible object\n * @returns serialization object\n */\n serialize() {\n return this._serialize({\n name: \"StateCondition\",\n properties: [ui._GetTargetProperty(this._target), { name: \"value\", value: this.value }]\n });\n }\n}\nU(\"BABYLON.ValueCondition\", Ps);\nU(\"BABYLON.PredicateCondition\", Mw);\nU(\"BABYLON.StateCondition\", Dw);\nclass Ow extends ui {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param target defines the object containing the boolean\n * @param propertyPath defines the path to the boolean property in the target object\n * @param condition defines the trigger related conditions\n */\n constructor(e, t, i, s) {\n super(e, s), this.propertyPath = i, this._target = this._effectiveTarget = t;\n }\n /** @internal */\n _prepare() {\n this._effectiveTarget = this._getEffectiveTarget(this._effectiveTarget, this.propertyPath), this._property = this._getProperty(this.propertyPath);\n }\n /**\n * Execute the action toggle the boolean value.\n */\n execute() {\n this._effectiveTarget[this._property] = !this._effectiveTarget[this._property];\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(e) {\n return super._serialize({\n name: \"SwitchBooleanAction\",\n properties: [ui._GetTargetProperty(this._target), { name: \"propertyPath\", value: this.propertyPath }]\n }, e);\n }\n}\nclass ww extends ui {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param target defines the object containing the state property\n * @param value defines the value to store in the state field\n * @param condition defines the trigger related conditions\n */\n constructor(e, t, i, s) {\n super(e, s), this.value = i, this._target = t;\n }\n /**\n * Execute the action and store the value on the target state property.\n */\n execute() {\n this._target.state = this.value;\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(e) {\n return super._serialize({\n name: \"SetStateAction\",\n properties: [ui._GetTargetProperty(this._target), { name: \"value\", value: this.value }]\n }, e);\n }\n}\nclass Nw extends ui {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param target defines the object containing the property\n * @param propertyPath defines the path of the property to set in the target\n * @param value defines the value to set in the property\n * @param condition defines the trigger related conditions\n */\n constructor(e, t, i, s, r) {\n super(e, r), this.propertyPath = i, this.value = s, this._target = this._effectiveTarget = t;\n }\n /** @internal */\n _prepare() {\n this._effectiveTarget = this._getEffectiveTarget(this._effectiveTarget, this.propertyPath), this._property = this._getProperty(this.propertyPath);\n }\n /**\n * Execute the action and set the targeted property to the desired value.\n */\n execute() {\n this._effectiveTarget[this._property] = this.value, this._target.markAsDirty && this._target.markAsDirty(this._property);\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(e) {\n return super._serialize({\n name: \"SetValueAction\",\n properties: [\n ui._GetTargetProperty(this._target),\n { name: \"propertyPath\", value: this.propertyPath },\n { name: \"value\", value: ui._SerializeValueAsString(this.value) }\n ]\n }, e);\n }\n}\nclass Fw extends ui {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param target defines the object containing the property\n * @param propertyPath defines the path of the property to increment in the target\n * @param value defines the value value we should increment the property by\n * @param condition defines the trigger related conditions\n */\n constructor(e, t, i, s, r) {\n super(e, r), this.propertyPath = i, this.value = s, this._target = this._effectiveTarget = t;\n }\n /** @internal */\n _prepare() {\n this._effectiveTarget = this._getEffectiveTarget(this._effectiveTarget, this.propertyPath), this._property = this._getProperty(this.propertyPath), typeof this._effectiveTarget[this._property] != \"number\" && L.Warn(\"Warning: IncrementValueAction can only be used with number values\");\n }\n /**\n * Execute the action and increment the target of the value amount.\n */\n execute() {\n this._effectiveTarget[this._property] += this.value, this._target.markAsDirty && this._target.markAsDirty(this._property);\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(e) {\n return super._serialize({\n name: \"IncrementValueAction\",\n properties: [\n ui._GetTargetProperty(this._target),\n { name: \"propertyPath\", value: this.propertyPath },\n { name: \"value\", value: ui._SerializeValueAsString(this.value) }\n ]\n }, e);\n }\n}\nclass Lw extends ui {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param target defines the target animation or animation name\n * @param from defines from where the animation should start (animation frame)\n * @param to defines where the animation should stop (animation frame)\n * @param loop defines if the animation should loop or stop after the first play\n * @param condition defines the trigger related conditions\n */\n constructor(e, t, i, s, r, n) {\n super(e, n), this.from = i, this.to = s, this.loop = r, this._target = t;\n }\n /** @internal */\n _prepare() {\n }\n /**\n * Execute the action and play the animation.\n */\n execute() {\n this._actionManager.getScene().beginAnimation(this._target, this.from, this.to, this.loop);\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(e) {\n return super._serialize({\n name: \"PlayAnimationAction\",\n properties: [\n ui._GetTargetProperty(this._target),\n { name: \"from\", value: String(this.from) },\n { name: \"to\", value: String(this.to) },\n { name: \"loop\", value: ui._SerializeValueAsString(this.loop) || !1 }\n ]\n }, e);\n }\n}\nclass Bw extends ui {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param target defines the target animation or animation name\n * @param condition defines the trigger related conditions\n */\n constructor(e, t, i) {\n super(e, i), this._target = t;\n }\n /** @internal */\n _prepare() {\n }\n /**\n * Execute the action and stop the animation.\n */\n execute() {\n this._actionManager.getScene().stopAnimation(this._target);\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(e) {\n return super._serialize({\n name: \"StopAnimationAction\",\n properties: [ui._GetTargetProperty(this._target)]\n }, e);\n }\n}\nclass d0 extends ui {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param condition defines the trigger related conditions\n */\n constructor(e = 0, t) {\n super(e, t);\n }\n /**\n * Execute the action and do nothing.\n */\n execute() {\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(e) {\n return super._serialize({\n name: \"DoNothingAction\",\n properties: []\n }, e);\n }\n}\nclass Vw extends ui {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param children defines the list of aggregated animations to run\n * @param condition defines the trigger related conditions\n * @param enableChildrenConditions defines if the children actions conditions should be check before execution\n */\n constructor(e, t, i, s = !0) {\n super(e, i), this.children = t, this.enableChildrenConditions = s;\n }\n /** @internal */\n _prepare() {\n for (let e = 0; e < this.children.length; e++)\n this.children[e]._actionManager = this._actionManager, this.children[e]._prepare();\n }\n /**\n * Execute the action and executes all the aggregated actions.\n * @param evt event to execute\n */\n execute(e) {\n for (const t of this.children)\n (!this.enableChildrenConditions || t._evaluateConditionForCurrentFrame()) && t.execute(e);\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(e) {\n const t = super._serialize({\n name: \"CombineAction\",\n properties: [],\n combine: []\n }, e);\n for (let i = 0; i < this.children.length; i++)\n t.combine.push(this.children[i].serialize(null));\n return t;\n }\n}\nclass ln extends ui {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param func defines the callback function to run\n * @param condition defines the trigger related conditions\n */\n constructor(e, t, i) {\n super(e, i), this.func = t;\n }\n /**\n * Execute the action and run the attached code.\n * @param evt event to execute\n */\n execute(e) {\n this.func(e);\n }\n}\nclass f0 extends ui {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param target defines the target containing the parent property\n * @param parent defines from where the animation should start (animation frame)\n * @param condition defines the trigger related conditions\n */\n constructor(e, t, i, s) {\n super(e, s), this._target = t, this._parent = i;\n }\n /** @internal */\n _prepare() {\n }\n /**\n * Execute the action and set the parent property.\n */\n execute() {\n if (this._target.parent === this._parent)\n return;\n const e = this._parent.getWorldMatrix().clone();\n e.invert(), this._target.position = g.TransformCoordinates(this._target.position, e), this._target.parent = this._parent;\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(e) {\n return super._serialize({\n name: \"SetParentAction\",\n properties: [ui._GetTargetProperty(this._target), ui._GetTargetProperty(this._parent)]\n }, e);\n }\n}\nU(\"BABYLON.SetParentAction\", f0);\nU(\"BABYLON.ExecuteCodeAction\", ln);\nU(\"BABYLON.DoNothingAction\", d0);\nU(\"BABYLON.StopAnimationAction\", Bw);\nU(\"BABYLON.PlayAnimationAction\", Lw);\nU(\"BABYLON.IncrementValueAction\", Fw);\nU(\"BABYLON.SetValueAction\", Nw);\nU(\"BABYLON.SetStateAction\", ww);\nU(\"BABYLON.SetParentAction\", f0);\nU(\"BABYLON.SwitchBooleanAction\", Ow);\nU(\"BABYLON.CombineAction\", Vw);\nclass dt extends rn {\n /**\n * Creates a new action manager\n * @param scene defines the hosting scene\n */\n constructor(e) {\n super(), e = e || Me.LastCreatedScene, e && (this._scene = e, e.actionManagers.push(this));\n }\n // Methods\n /**\n * Releases all associated resources\n */\n dispose() {\n const e = this._scene.actionManagers.indexOf(this);\n for (let i = 0; i < this.actions.length; i++) {\n const s = this.actions[i];\n dt.Triggers[s.trigger]--, dt.Triggers[s.trigger] === 0 && delete dt.Triggers[s.trigger];\n }\n this.actions.length = 0, e > -1 && this._scene.actionManagers.splice(e, 1);\n const t = this._scene.meshes.filter((i) => i.actionManager === this);\n for (const i of t)\n i.actionManager = null;\n }\n /**\n * Gets hosting scene\n * @returns the hosting scene\n */\n getScene() {\n return this._scene;\n }\n /**\n * Does this action manager handles actions of any of the given triggers\n * @param triggers defines the triggers to be tested\n * @returns a boolean indicating whether one (or more) of the triggers is handled\n */\n hasSpecificTriggers(e) {\n for (let t = 0; t < this.actions.length; t++) {\n const i = this.actions[t];\n if (e.indexOf(i.trigger) > -1)\n return !0;\n }\n return !1;\n }\n /**\n * Does this action manager handles actions of any of the given triggers. This function takes two arguments for\n * speed.\n * @param triggerA defines the trigger to be tested\n * @param triggerB defines the trigger to be tested\n * @returns a boolean indicating whether one (or more) of the triggers is handled\n */\n hasSpecificTriggers2(e, t) {\n for (let i = 0; i < this.actions.length; i++) {\n const s = this.actions[i];\n if (e == s.trigger || t == s.trigger)\n return !0;\n }\n return !1;\n }\n /**\n * Does this action manager handles actions of a given trigger\n * @param trigger defines the trigger to be tested\n * @param parameterPredicate defines an optional predicate to filter triggers by parameter\n * @returns whether the trigger is handled\n */\n hasSpecificTrigger(e, t) {\n for (let i = 0; i < this.actions.length; i++) {\n const s = this.actions[i];\n if (s.trigger === e)\n if (t) {\n if (t(s.getTriggerParameter()))\n return !0;\n } else\n return !0;\n }\n return !1;\n }\n /**\n * Does this action manager has pointer triggers\n */\n get hasPointerTriggers() {\n for (let e = 0; e < this.actions.length; e++) {\n const t = this.actions[e];\n if (t.trigger >= dt.OnPickTrigger && t.trigger <= dt.OnPointerOutTrigger)\n return !0;\n }\n return !1;\n }\n /**\n * Does this action manager has pick triggers\n */\n get hasPickTriggers() {\n for (let e = 0; e < this.actions.length; e++) {\n const t = this.actions[e];\n if (t.trigger >= dt.OnPickTrigger && t.trigger <= dt.OnPickUpTrigger)\n return !0;\n }\n return !1;\n }\n /**\n * Registers an action to this action manager\n * @param action defines the action to be registered\n * @returns the action amended (prepared) after registration\n */\n registerAction(e) {\n return e.trigger === dt.OnEveryFrameTrigger && this.getScene().actionManager !== this ? (L.Warn(\"OnEveryFrameTrigger can only be used with scene.actionManager\"), null) : (this.actions.push(e), this.getScene()._registeredActions++, dt.Triggers[e.trigger] ? dt.Triggers[e.trigger]++ : dt.Triggers[e.trigger] = 1, e._actionManager = this, e._prepare(), e);\n }\n /**\n * Unregisters an action to this action manager\n * @param action defines the action to be unregistered\n * @returns a boolean indicating whether the action has been unregistered\n */\n unregisterAction(e) {\n const t = this.actions.indexOf(e);\n return t !== -1 ? (this.actions.splice(t, 1), dt.Triggers[e.trigger] -= 1, dt.Triggers[e.trigger] === 0 && delete dt.Triggers[e.trigger], e._actionManager = null, this.getScene()._registeredActions--, !0) : !1;\n }\n /**\n * Process a specific trigger\n * @param trigger defines the trigger to process\n * @param evt defines the event details to be processed\n */\n processTrigger(e, t) {\n for (let i = 0; i < this.actions.length; i++) {\n const s = this.actions[i];\n if (s.trigger === e) {\n if (t && (e === dt.OnKeyUpTrigger || e === dt.OnKeyDownTrigger)) {\n const r = s.getTriggerParameter();\n if (typeof r == \"function\") {\n if (!r(t))\n continue;\n } else if (r && r !== t.sourceEvent.keyCode) {\n if (!r.toLowerCase)\n continue;\n const n = r.toLowerCase();\n if (n !== t.sourceEvent.key) {\n const o = t.sourceEvent.charCode ? t.sourceEvent.charCode : t.sourceEvent.keyCode;\n if (String.fromCharCode(o).toLowerCase() !== n)\n continue;\n }\n }\n }\n s._executeCurrent(t);\n }\n }\n }\n /**\n * @internal\n */\n _getEffectiveTarget(e, t) {\n const i = t.split(\".\");\n for (let s = 0; s < i.length - 1; s++)\n e = e[i[s]];\n return e;\n }\n /**\n * @internal\n */\n _getProperty(e) {\n const t = e.split(\".\");\n return t[t.length - 1];\n }\n /**\n * Serialize this manager to a JSON object\n * @param name defines the property name to store this manager\n * @returns a JSON representation of this manager\n */\n serialize(e) {\n const t = {\n children: new Array(),\n name: e,\n type: 3,\n properties: new Array()\n // Empty for root but required\n };\n for (let i = 0; i < this.actions.length; i++) {\n const s = {\n type: 0,\n children: new Array(),\n name: dt.GetTriggerName(this.actions[i].trigger),\n properties: new Array()\n }, r = this.actions[i].triggerOptions;\n if (r && typeof r != \"number\")\n if (r.parameter instanceof Node)\n s.properties.push(ui._GetTargetProperty(r.parameter));\n else if (typeof r.parameter == \"object\") {\n const n = {};\n Hs.DeepCopy(r.parameter, n, [\"mesh\"]), r.parameter && r.parameter.mesh && (n._meshId = r.parameter.mesh.id), s.properties.push({ name: \"parameter\", targetType: null, value: n });\n } else\n s.properties.push({ name: \"parameter\", targetType: null, value: r.parameter });\n this.actions[i].serialize(s), t.children.push(s);\n }\n return t;\n }\n /**\n * Creates a new ActionManager from a JSON data\n * @param parsedActions defines the JSON data to read from\n * @param object defines the hosting mesh\n * @param scene defines the hosting scene\n */\n static Parse(e, t, i) {\n const s = new dt(i);\n t === null ? i.actionManager = s : t.actionManager = s;\n const r = (l, h) => {\n const c = Oi(\"BABYLON.\" + l);\n return c && new c(...h);\n }, n = (l, h, c, u) => {\n if (u === null) {\n const _ = parseFloat(h);\n return h === \"true\" || h === \"false\" ? h === \"true\" : isNaN(_) ? h : _;\n }\n const d = u.split(\".\"), f = h.split(\",\");\n for (let _ = 0; _ < d.length; _++)\n c = c[d[_]];\n if (typeof c == \"boolean\")\n return f[0] === \"true\";\n if (typeof c == \"string\")\n return f[0];\n const p = [];\n for (let _ = 0; _ < f.length; _++)\n p.push(parseFloat(f[_]));\n return c instanceof g ? g.FromArray(p) : c instanceof Ne ? Ne.FromArray(p) : c instanceof re ? re.FromArray(p) : c instanceof Ce ? Ce.FromArray(p) : parseFloat(f[0]);\n }, o = (l, h, c, u, d = null) => {\n if (l.detached)\n return;\n const f = [];\n let p = null, _ = null;\n const m = l.combine && l.combine.length > 0;\n if (l.type === 2 ? f.push(s) : f.push(h), m) {\n const v = [];\n for (let T = 0; T < l.combine.length; T++)\n o(l.combine[T], dt.NothingTrigger, c, u, v);\n f.push(v);\n } else\n for (let v = 0; v < l.properties.length; v++) {\n let T = l.properties[v].value;\n const E = l.properties[v].name, b = l.properties[v].targetType;\n E === \"target\" ? b === \"SceneProperties\" ? T = p = i : b === \"MaterialProperties\" ? T = p = i.getMaterialByName(T) : T = p = i.getNodeByName(T) : E === \"parent\" ? T = i.getNodeByName(T) : E === \"sound\" ? i.getSoundByName && (T = i.getSoundByName(T)) : E !== \"propertyPath\" ? l.type === 2 && E === \"operator\" ? T = Ps[T] : T = n(E, T, p, E === \"value\" ? _ : null) : _ = T, f.push(T);\n }\n if (d === null ? f.push(c) : f.push(null), l.name === \"InterpolateValueAction\") {\n const v = f[f.length - 2];\n f[f.length - 1] = v, f[f.length - 2] = c;\n }\n let x = r(l.name, f);\n if (x instanceof Tu && c !== null) {\n const v = new d0(h, c);\n u ? u.then(v) : s.registerAction(v), u = v;\n }\n d === null ? x instanceof Tu ? (c = x, x = u) : (c = null, u ? u.then(x) : s.registerAction(x)) : d.push(x);\n for (let v = 0; v < l.children.length; v++)\n o(l.children[v], h, c, x, null);\n };\n for (let l = 0; l < e.children.length; l++) {\n let h;\n const c = e.children[l];\n if (c.properties.length > 0) {\n const u = c.properties[0].value, d = c.properties[0].targetType === null ? u : i.getMeshByName(u);\n d._meshId && (d.mesh = i.getMeshById(d._meshId)), h = { trigger: dt[c.name], parameter: d };\n } else\n h = dt[c.name];\n for (let u = 0; u < c.children.length; u++)\n c.detached || o(c.children[u], h, null, null);\n }\n }\n /**\n * Get a trigger name by index\n * @param trigger defines the trigger index\n * @returns a trigger name\n */\n static GetTriggerName(e) {\n switch (e) {\n case 0:\n return \"NothingTrigger\";\n case 1:\n return \"OnPickTrigger\";\n case 2:\n return \"OnLeftPickTrigger\";\n case 3:\n return \"OnRightPickTrigger\";\n case 4:\n return \"OnCenterPickTrigger\";\n case 5:\n return \"OnPickDownTrigger\";\n case 6:\n return \"OnDoublePickTrigger\";\n case 7:\n return \"OnPickUpTrigger\";\n case 8:\n return \"OnLongPressTrigger\";\n case 9:\n return \"OnPointerOverTrigger\";\n case 10:\n return \"OnPointerOutTrigger\";\n case 11:\n return \"OnEveryFrameTrigger\";\n case 12:\n return \"OnIntersectionEnterTrigger\";\n case 13:\n return \"OnIntersectionExitTrigger\";\n case 14:\n return \"OnKeyDownTrigger\";\n case 15:\n return \"OnKeyUpTrigger\";\n case 16:\n return \"OnPickOutTrigger\";\n default:\n return \"\";\n }\n }\n}\ndt.NothingTrigger = 0;\ndt.OnPickTrigger = 1;\ndt.OnLeftPickTrigger = 2;\ndt.OnRightPickTrigger = 3;\ndt.OnCenterPickTrigger = 4;\ndt.OnPickDownTrigger = 5;\ndt.OnDoublePickTrigger = 6;\ndt.OnPickUpTrigger = 7;\ndt.OnPickOutTrigger = 16;\ndt.OnLongPressTrigger = 8;\ndt.OnPointerOverTrigger = 9;\ndt.OnPointerOutTrigger = 10;\ndt.OnEveryFrameTrigger = 11;\ndt.OnIntersectionEnterTrigger = 12;\ndt.OnIntersectionExitTrigger = 13;\ndt.OnKeyDownTrigger = 14;\ndt.OnKeyUpTrigger = 15;\nfunction p0(a) {\n let e = a.pathArray;\n const t = a.closeArray || !1, i = a.closePath || !1, s = a.invertUV || !1, r = Math.floor(e[0].length / 2);\n let n = a.offset || r;\n n = n > r ? r : Math.floor(n);\n const o = a.sideOrientation === 0 ? 0 : a.sideOrientation || ge.DEFAULTSIDE, l = a.uvs, h = a.colors, c = [], u = [], d = [], f = [], p = [], _ = [], m = [], x = [];\n let v;\n const T = [], E = [];\n let b, S, C;\n if (e.length < 2) {\n const Ee = [], Je = [];\n for (S = 0; S < e[0].length - n; S++)\n Ee.push(e[0][S]), Je.push(e[0][S + n]);\n e = [Ee, Je];\n }\n let P = 0;\n const N = i ? 1 : 0, F = t ? 1 : 0;\n let $, j;\n v = e[0].length;\n let ne, te;\n for (b = 0; b < e.length + F; b++) {\n for (m[b] = 0, p[b] = [0], $ = b === e.length ? e[0] : e[b], j = $.length, v = v < j ? v : j, C = 0; C < j; )\n c.push($[C].x, $[C].y, $[C].z), C > 0 && (ne = $[C].subtract($[C - 1]).length(), te = ne + m[b], p[b].push(te), m[b] = te), C++;\n i && (C--, c.push($[0].x, $[0].y, $[0].z), ne = $[C].subtract($[0]).length(), te = ne + m[b], p[b].push(te), m[b] = te), T[b] = j + N, E[b] = P, P += j + N;\n }\n let le, _e, Se = null, Ie = null;\n for (S = 0; S < v + N; S++)\n for (x[S] = 0, _[S] = [0], b = 0; b < e.length - 1 + F; b++)\n le = e[b], _e = b === e.length - 1 ? e[0] : e[b + 1], S === v ? (Se = le[0], Ie = _e[0]) : (Se = le[S], Ie = _e[S]), ne = Ie.subtract(Se).length(), te = ne + x[S], _[S].push(te), x[S] = te;\n let de, Y;\n if (l)\n for (b = 0; b < l.length; b++)\n f.push(l[b].x, At.UseOpenGLOrientationForUV ? 1 - l[b].y : l[b].y);\n else\n for (b = 0; b < e.length + F; b++)\n for (S = 0; S < v + N; S++)\n de = m[b] != 0 ? p[b][S] / m[b] : 0, Y = x[S] != 0 ? _[S][b] / x[S] : 0, s ? f.push(Y, de) : f.push(de, At.UseOpenGLOrientationForUV ? 1 - Y : Y);\n b = 0;\n let M = 0, k = T[b] - 1, W = T[b + 1] - 1, V = k < W ? k : W, K = E[1] - E[0];\n const ie = T.length - 1;\n for (; M <= V && b < ie; )\n u.push(M, M + K, M + 1), u.push(M + K + 1, M + 1, M + K), M += 1, M === V && (b++, K = E[b + 1] - E[b], k = T[b] - 1, W = T[b + 1] - 1, M = E[b], V = k < W ? k + M : W + M);\n if (ge.ComputeNormals(c, u, d), i) {\n let Ee = 0, Je = 0;\n for (b = 0; b < e.length; b++) {\n Ee = E[b] * 3, b + 1 < e.length ? Je = (E[b + 1] - 1) * 3 : Je = d.length - 3, d[Ee] = (d[Ee] + d[Je]) * 0.5, d[Ee + 1] = (d[Ee + 1] + d[Je + 1]) * 0.5, d[Ee + 2] = (d[Ee + 2] + d[Je + 2]) * 0.5;\n const St = Math.sqrt(d[Ee] * d[Ee] + d[Ee + 1] * d[Ee + 1] + d[Ee + 2] * d[Ee + 2]);\n d[Ee] /= St, d[Ee + 1] /= St, d[Ee + 2] /= St, d[Je] = d[Ee], d[Je + 1] = d[Ee + 1], d[Je + 2] = d[Ee + 2];\n }\n }\n if (t) {\n let Ee = E[0] * 3, Je = E[e.length] * 3;\n for (S = 0; S < v + N; S++) {\n d[Ee] = (d[Ee] + d[Je]) * 0.5, d[Ee + 1] = (d[Ee + 1] + d[Je + 1]) * 0.5, d[Ee + 2] = (d[Ee + 2] + d[Je + 2]) * 0.5;\n const St = Math.sqrt(d[Ee] * d[Ee] + d[Ee + 1] * d[Ee + 1] + d[Ee + 2] * d[Ee + 2]);\n d[Ee] /= St, d[Ee + 1] /= St, d[Ee + 2] /= St, d[Je] = d[Ee], d[Je + 1] = d[Ee + 1], d[Je + 2] = d[Ee + 2], Ee += 3, Je += 3;\n }\n }\n ge._ComputeSides(o, c, u, d, f, a.frontUVs, a.backUVs);\n let fe = null;\n if (h) {\n fe = new Float32Array(h.length * 4);\n for (let Ee = 0; Ee < h.length; Ee++)\n fe[Ee * 4] = h[Ee].r, fe[Ee * 4 + 1] = h[Ee].g, fe[Ee * 4 + 2] = h[Ee].b, fe[Ee * 4 + 3] = h[Ee].a;\n }\n const pe = new ge(), ve = new Float32Array(c), Ue = new Float32Array(d), ht = new Float32Array(f);\n return pe.indices = u, pe.positions = ve, pe.normals = Ue, pe.uvs = ht, fe && pe.set(fe, R.ColorKind), i && (pe._idx = E), pe;\n}\nfunction Zo(a, e, t = null) {\n const i = e.pathArray, s = e.closeArray, r = e.closePath, n = H._GetDefaultSideOrientation(e.sideOrientation), o = e.instance, l = e.updatable;\n if (o) {\n const h = w.Vector3[0].setAll(Number.MAX_VALUE), c = w.Vector3[1].setAll(-Number.MAX_VALUE), u = (f) => {\n let p = i[0].length;\n const _ = o;\n let m = 0;\n const x = _._originalBuilderSideOrientation === H.DOUBLESIDE ? 2 : 1;\n for (let v = 1; v <= x; ++v)\n for (let T = 0; T < i.length; ++T) {\n const E = i[T], b = E.length;\n p = p < b ? p : b;\n for (let S = 0; S < p; ++S) {\n const C = E[S];\n f[m] = C.x, f[m + 1] = C.y, f[m + 2] = C.z, h.minimizeInPlaceFromFloats(C.x, C.y, C.z), c.maximizeInPlaceFromFloats(C.x, C.y, C.z), m += 3;\n }\n if (_._creationDataStorage && _._creationDataStorage.closePath) {\n const S = E[0];\n f[m] = S.x, f[m + 1] = S.y, f[m + 2] = S.z, m += 3;\n }\n }\n }, d = o.getVerticesData(R.PositionKind);\n if (u(d), o.hasBoundingInfo ? o.getBoundingInfo().reConstruct(h, c, o._worldMatrix) : o.buildBoundingInfo(h, c, o._worldMatrix), o.updateVerticesData(R.PositionKind, d, !1, !1), e.colors) {\n const f = o.getVerticesData(R.ColorKind);\n for (let p = 0, _ = 0; p < e.colors.length; p++, _ += 4) {\n const m = e.colors[p];\n f[_] = m.r, f[_ + 1] = m.g, f[_ + 2] = m.b, f[_ + 3] = m.a;\n }\n o.updateVerticesData(R.ColorKind, f, !1, !1);\n }\n if (e.uvs) {\n const f = o.getVerticesData(R.UVKind);\n for (let p = 0; p < e.uvs.length; p++)\n f[p * 2] = e.uvs[p].x, f[p * 2 + 1] = At.UseOpenGLOrientationForUV ? 1 - e.uvs[p].y : e.uvs[p].y;\n o.updateVerticesData(R.UVKind, f, !1, !1);\n }\n if (!o.areNormalsFrozen || o.isFacetDataEnabled) {\n const f = o.getIndices(), p = o.getVerticesData(R.NormalKind), _ = o.isFacetDataEnabled ? o.getFacetDataParameters() : null;\n if (ge.ComputeNormals(d, f, p, _), o._creationDataStorage && o._creationDataStorage.closePath) {\n let m = 0, x = 0;\n for (let v = 0; v < i.length; v++)\n m = o._creationDataStorage.idx[v] * 3, v + 1 < i.length ? x = (o._creationDataStorage.idx[v + 1] - 1) * 3 : x = p.length - 3, p[m] = (p[m] + p[x]) * 0.5, p[m + 1] = (p[m + 1] + p[x + 1]) * 0.5, p[m + 2] = (p[m + 2] + p[x + 2]) * 0.5, p[x] = p[m], p[x + 1] = p[m + 1], p[x + 2] = p[m + 2];\n }\n o.areNormalsFrozen || o.updateVerticesData(R.NormalKind, p, !1, !1);\n }\n return o;\n } else {\n const h = new H(a, t);\n h._originalBuilderSideOrientation = n, h._creationDataStorage = new qC();\n const c = p0(e);\n return r && (h._creationDataStorage.idx = c._idx), h._creationDataStorage.closePath = r, h._creationDataStorage.closeArray = s, c.applyToMesh(h, l), h;\n }\n}\nconst tK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateRibbon: Zo\n};\nge.CreateRibbon = p0;\nH.CreateRibbon = (a, e, t = !1, i, s, r, n = !1, o, l) => Zo(a, {\n pathArray: e,\n closeArray: t,\n closePath: i,\n offset: s,\n updatable: n,\n sideOrientation: o,\n instance: l\n}, r);\nfunction jx(a) {\n const e = [], t = [], i = [], s = [], r = a.radius || 0.5, n = a.tessellation || 64, o = a.arc && (a.arc <= 0 || a.arc > 1) ? 1 : a.arc || 1, l = a.sideOrientation === 0 ? 0 : a.sideOrientation || ge.DEFAULTSIDE;\n e.push(0, 0, 0), s.push(0.5, 0.5);\n const h = Math.PI * 2 * o, c = o === 1 ? h / n : h / (n - 1);\n let u = 0;\n for (let p = 0; p < n; p++) {\n const _ = Math.cos(u), m = Math.sin(u), x = (_ + 1) / 2, v = (1 - m) / 2;\n e.push(r * _, r * m, 0), s.push(x, At.UseOpenGLOrientationForUV ? 1 - v : v), u += c;\n }\n o === 1 && (e.push(e[3], e[4], e[5]), s.push(s[2], At.UseOpenGLOrientationForUV ? 1 - s[3] : s[3]));\n const d = e.length / 3;\n for (let p = 1; p < d - 1; p++)\n t.push(p + 1, 0, p);\n ge.ComputeNormals(e, t, i), ge._ComputeSides(l, e, t, i, s, a.frontUVs, a.backUVs);\n const f = new ge();\n return f.indices = t, f.positions = e, f.normals = i, f.uvs = s, f;\n}\nfunction P_(a, e = {}, t = null) {\n const i = new H(a, t);\n return e.sideOrientation = H._GetDefaultSideOrientation(e.sideOrientation), i._originalBuilderSideOrientation = e.sideOrientation, jx(e).applyToMesh(i, e.updatable), i;\n}\nconst iK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateDisc: P_\n};\nge.CreateDisc = jx;\nH.CreateDisc = (a, e, t, i = null, s, r) => P_(a, {\n radius: e,\n tessellation: t,\n sideOrientation: r,\n updatable: s\n}, i);\nH._GroundMeshParser = (a, e) => Tf.Parse(a, e);\nclass Tf extends H {\n constructor(e, t) {\n super(e, t), this.generateOctree = !1;\n }\n /**\n * \"GroundMesh\"\n * @returns \"GroundMesh\"\n */\n getClassName() {\n return \"GroundMesh\";\n }\n /**\n * The minimum of x and y subdivisions\n */\n get subdivisions() {\n return Math.min(this._subdivisionsX, this._subdivisionsY);\n }\n /**\n * X subdivisions\n */\n get subdivisionsX() {\n return this._subdivisionsX;\n }\n /**\n * Y subdivisions\n */\n get subdivisionsY() {\n return this._subdivisionsY;\n }\n /**\n * This function will divide the mesh into submeshes and update an octree to help to select the right submeshes\n * for rendering, picking and collision computations. Please note that you must have a decent number of submeshes\n * to get performance improvements when using an octree.\n * @param chunksCount the number of submeshes the mesh will be divided into\n * @param octreeBlocksSize the maximum size of the octree blocks (Default: 32)\n */\n optimize(e, t = 32) {\n this._subdivisionsX = e, this._subdivisionsY = e, this.subdivide(e);\n const i = this;\n i.createOrUpdateSubmeshesOctree && i.createOrUpdateSubmeshesOctree(t);\n }\n /**\n * Returns a height (y) value in the World system :\n * the ground altitude at the coordinates (x, z) expressed in the World system.\n * @param x x coordinate\n * @param z z coordinate\n * @returns the ground y position if (x, z) are outside the ground surface.\n */\n getHeightAtCoordinates(e, t) {\n const i = this.getWorldMatrix(), s = w.Matrix[5];\n i.invertToRef(s);\n const r = w.Vector3[8];\n if (g.TransformCoordinatesFromFloatsToRef(e, 0, t, s, r), e = r.x, t = r.z, e < this._minX || e >= this._maxX || t <= this._minZ || t > this._maxZ)\n return this.position.y;\n (!this._heightQuads || this._heightQuads.length == 0) && (this._initHeightQuads(), this._computeHeightQuads());\n const n = this._getFacetAt(e, t), o = -(n.x * e + n.z * t + n.w) / n.y;\n return g.TransformCoordinatesFromFloatsToRef(0, o, 0, i, r), r.y;\n }\n /**\n * Returns a normalized vector (Vector3) orthogonal to the ground\n * at the ground coordinates (x, z) expressed in the World system.\n * @param x x coordinate\n * @param z z coordinate\n * @returns Vector3(0.0, 1.0, 0.0) if (x, z) are outside the ground surface.\n */\n getNormalAtCoordinates(e, t) {\n const i = new g(0, 1, 0);\n return this.getNormalAtCoordinatesToRef(e, t, i), i;\n }\n /**\n * Updates the Vector3 passed a reference with a normalized vector orthogonal to the ground\n * at the ground coordinates (x, z) expressed in the World system.\n * Doesn't update the reference Vector3 if (x, z) are outside the ground surface.\n * @param x x coordinate\n * @param z z coordinate\n * @param ref vector to store the result\n * @returns the GroundMesh.\n */\n getNormalAtCoordinatesToRef(e, t, i) {\n const s = this.getWorldMatrix(), r = w.Matrix[5];\n s.invertToRef(r);\n const n = w.Vector3[8];\n if (g.TransformCoordinatesFromFloatsToRef(e, 0, t, r, n), e = n.x, t = n.z, e < this._minX || e > this._maxX || t < this._minZ || t > this._maxZ)\n return this;\n (!this._heightQuads || this._heightQuads.length == 0) && (this._initHeightQuads(), this._computeHeightQuads());\n const o = this._getFacetAt(e, t);\n return g.TransformNormalFromFloatsToRef(o.x, o.y, o.z, s, i), this;\n }\n /**\n * Force the heights to be recomputed for getHeightAtCoordinates() or getNormalAtCoordinates()\n * if the ground has been updated.\n * This can be used in the render loop.\n * @returns the GroundMesh.\n */\n updateCoordinateHeights() {\n return (!this._heightQuads || this._heightQuads.length == 0) && this._initHeightQuads(), this._computeHeightQuads(), this;\n }\n // Returns the element \"facet\" from the heightQuads array relative to (x, z) local coordinates\n _getFacetAt(e, t) {\n const i = Math.floor((e + this._maxX) * this._subdivisionsX / this._width), s = Math.floor(-(t + this._maxZ) * this._subdivisionsY / this._height + this._subdivisionsY), r = this._heightQuads[s * this._subdivisionsX + i];\n let n;\n return t < r.slope.x * e + r.slope.y ? n = r.facet1 : n = r.facet2, n;\n }\n // Creates and populates the heightMap array with \"facet\" elements :\n // a quad is two triangular facets separated by a slope, so a \"facet\" element is 1 slope + 2 facets\n // slope : Vector2(c, h) = 2D diagonal line equation setting apart two triangular facets in a quad : z = cx + h\n // facet1 : Vector4(a, b, c, d) = first facet 3D plane equation : ax + by + cz + d = 0\n // facet2 : Vector4(a, b, c, d) = second facet 3D plane equation : ax + by + cz + d = 0\n // Returns the GroundMesh.\n _initHeightQuads() {\n const e = this._subdivisionsX, t = this._subdivisionsY;\n this._heightQuads = new Array();\n for (let i = 0; i < t; i++)\n for (let s = 0; s < e; s++) {\n const r = { slope: Q.Zero(), facet1: new Ne(0, 0, 0, 0), facet2: new Ne(0, 0, 0, 0) };\n this._heightQuads[i * e + s] = r;\n }\n return this;\n }\n // Compute each quad element values and update the heightMap array :\n // slope : Vector2(c, h) = 2D diagonal line equation setting apart two triangular facets in a quad : z = cx + h\n // facet1 : Vector4(a, b, c, d) = first facet 3D plane equation : ax + by + cz + d = 0\n // facet2 : Vector4(a, b, c, d) = second facet 3D plane equation : ax + by + cz + d = 0\n // Returns the GroundMesh.\n _computeHeightQuads() {\n const e = this.getVerticesData(R.PositionKind);\n if (!e)\n return this;\n const t = w.Vector3[3], i = w.Vector3[2], s = w.Vector3[1], r = w.Vector3[0], n = w.Vector3[4], o = w.Vector3[5], l = w.Vector3[6], h = w.Vector3[7], c = w.Vector3[8];\n let u = 0, d = 0, f = 0, p = 0, _ = 0, m = 0, x = 0;\n const v = this._subdivisionsX, T = this._subdivisionsY;\n for (let E = 0; E < T; E++)\n for (let b = 0; b < v; b++) {\n u = b * 3, d = E * (v + 1) * 3, f = (E + 1) * (v + 1) * 3, t.x = e[d + u], t.y = e[d + u + 1], t.z = e[d + u + 2], i.x = e[d + u + 3], i.y = e[d + u + 4], i.z = e[d + u + 5], s.x = e[f + u], s.y = e[f + u + 1], s.z = e[f + u + 2], r.x = e[f + u + 3], r.y = e[f + u + 4], r.z = e[f + u + 5], p = (r.z - t.z) / (r.x - t.x), _ = t.z - p * t.x, i.subtractToRef(t, n), s.subtractToRef(t, o), r.subtractToRef(t, l), g.CrossToRef(l, o, h), g.CrossToRef(n, l, c), h.normalize(), c.normalize(), m = -(h.x * t.x + h.y * t.y + h.z * t.z), x = -(c.x * i.x + c.y * i.y + c.z * i.z);\n const S = this._heightQuads[E * v + b];\n S.slope.copyFromFloats(p, _), S.facet1.copyFromFloats(h.x, h.y, h.z, m), S.facet2.copyFromFloats(c.x, c.y, c.z, x);\n }\n return this;\n }\n /**\n * Serializes this ground mesh\n * @param serializationObject object to write serialization to\n */\n serialize(e) {\n super.serialize(e), e.subdivisionsX = this._subdivisionsX, e.subdivisionsY = this._subdivisionsY, e.minX = this._minX, e.maxX = this._maxX, e.minZ = this._minZ, e.maxZ = this._maxZ, e.width = this._width, e.height = this._height;\n }\n /**\n * Parses a serialized ground mesh\n * @param parsedMesh the serialized mesh\n * @param scene the scene to create the ground mesh in\n * @returns the created ground mesh\n */\n static Parse(e, t) {\n const i = new Tf(e.name, t);\n return i._subdivisionsX = e.subdivisionsX || 1, i._subdivisionsY = e.subdivisionsY || 1, i._minX = e.minX, i._maxX = e.maxX, i._minZ = e.minZ, i._maxZ = e.maxZ, i._width = e.width, i._height = e.height, i;\n }\n}\nfunction Ya(a) {\n const e = [], t = [], i = [], s = [];\n let r, n;\n const o = a.width || 1, l = a.height || 1, h = (a.subdivisionsX || a.subdivisions || 1) | 0, c = (a.subdivisionsY || a.subdivisions || 1) | 0;\n for (r = 0; r <= c; r++)\n for (n = 0; n <= h; n++) {\n const d = new g(n * o / h - o / 2, 0, (c - r) * l / c - l / 2), f = new g(0, 1, 0);\n t.push(d.x, d.y, d.z), i.push(f.x, f.y, f.z), s.push(n / h, At.UseOpenGLOrientationForUV ? r / c : 1 - r / c);\n }\n for (r = 0; r < c; r++)\n for (n = 0; n < h; n++)\n e.push(n + 1 + (r + 1) * (h + 1)), e.push(n + 1 + r * (h + 1)), e.push(n + r * (h + 1)), e.push(n + (r + 1) * (h + 1)), e.push(n + 1 + (r + 1) * (h + 1)), e.push(n + r * (h + 1));\n const u = new ge();\n return u.indices = e, u.positions = t, u.normals = i, u.uvs = s, u;\n}\nfunction _0(a) {\n const e = a.xmin !== void 0 && a.xmin !== null ? a.xmin : -1, t = a.zmin !== void 0 && a.zmin !== null ? a.zmin : -1, i = a.xmax !== void 0 && a.xmax !== null ? a.xmax : 1, s = a.zmax !== void 0 && a.zmax !== null ? a.zmax : 1, r = a.subdivisions || { w: 1, h: 1 }, n = a.precision || { w: 1, h: 1 }, o = [], l = [], h = [], c = [];\n let u, d, f, p;\n r.h = r.h < 1 ? 1 : r.h, r.w = r.w < 1 ? 1 : r.w, n.w = n.w < 1 ? 1 : n.w, n.h = n.h < 1 ? 1 : n.h;\n const _ = {\n w: (i - e) / r.w,\n h: (s - t) / r.h\n };\n function m(v, T, E, b) {\n const S = l.length / 3, C = n.w + 1;\n for (u = 0; u < n.h; u++)\n for (d = 0; d < n.w; d++) {\n const F = [S + d + u * C, S + (d + 1) + u * C, S + (d + 1) + (u + 1) * C, S + d + (u + 1) * C];\n o.push(F[1]), o.push(F[2]), o.push(F[3]), o.push(F[0]), o.push(F[1]), o.push(F[3]);\n }\n const P = g.Zero(), N = new g(0, 1, 0);\n for (u = 0; u <= n.h; u++)\n for (P.z = u * (b - T) / n.h + T, d = 0; d <= n.w; d++)\n P.x = d * (E - v) / n.w + v, P.y = 0, l.push(P.x, P.y, P.z), h.push(N.x, N.y, N.z), c.push(d / n.w, u / n.h);\n }\n for (f = 0; f < r.h; f++)\n for (p = 0; p < r.w; p++)\n m(e + p * _.w, t + f * _.h, e + (p + 1) * _.w, t + (f + 1) * _.h);\n const x = new ge();\n return x.indices = o, x.positions = l, x.normals = h, x.uvs = c, x;\n}\nfunction m0(a) {\n const e = [], t = [], i = [], s = [];\n let r, n;\n const o = a.colorFilter || new re(0.3, 0.59, 0.11), l = a.alphaFilter || 0;\n let h = !1;\n if (a.minHeight > a.maxHeight) {\n h = !0;\n const u = a.maxHeight;\n a.maxHeight = a.minHeight, a.minHeight = u;\n }\n for (r = 0; r <= a.subdivisions; r++)\n for (n = 0; n <= a.subdivisions; n++) {\n const u = new g(n * a.width / a.subdivisions - a.width / 2, 0, (a.subdivisions - r) * a.height / a.subdivisions - a.height / 2), d = (u.x + a.width / 2) / a.width * (a.bufferWidth - 1) | 0, f = (1 - (u.z + a.height / 2) / a.height) * (a.bufferHeight - 1) | 0, p = (d + f * a.bufferWidth) * 4;\n let _ = a.buffer[p] / 255, m = a.buffer[p + 1] / 255, x = a.buffer[p + 2] / 255;\n const v = a.buffer[p + 3] / 255;\n h && (_ = 1 - _, m = 1 - m, x = 1 - x);\n const T = _ * o.r + m * o.g + x * o.b;\n v >= l ? u.y = a.minHeight + (a.maxHeight - a.minHeight) * T : u.y = a.minHeight - tt, a.heightBuffer && (a.heightBuffer[r * (a.subdivisions + 1) + n] = u.y), t.push(u.x, u.y, u.z), i.push(0, 0, 0), s.push(n / a.subdivisions, 1 - r / a.subdivisions);\n }\n for (r = 0; r < a.subdivisions; r++)\n for (n = 0; n < a.subdivisions; n++) {\n const u = n + 1 + (r + 1) * (a.subdivisions + 1), d = n + 1 + r * (a.subdivisions + 1), f = n + r * (a.subdivisions + 1), p = n + (r + 1) * (a.subdivisions + 1), _ = t[u * 3 + 1] >= a.minHeight, m = t[d * 3 + 1] >= a.minHeight, x = t[f * 3 + 1] >= a.minHeight;\n _ && m && x && (e.push(u), e.push(d), e.push(f)), t[p * 3 + 1] >= a.minHeight && _ && x && (e.push(p), e.push(u), e.push(f));\n }\n ge.ComputeNormals(t, e, i);\n const c = new ge();\n return c.indices = e, c.positions = t, c.normals = i, c.uvs = s, c;\n}\nfunction Sf(a, e = {}, t) {\n const i = new Tf(a, t);\n return i._setReady(!1), i._subdivisionsX = e.subdivisionsX || e.subdivisions || 1, i._subdivisionsY = e.subdivisionsY || e.subdivisions || 1, i._width = e.width || 1, i._height = e.height || 1, i._maxX = i._width / 2, i._maxZ = i._height / 2, i._minX = -i._maxX, i._minZ = -i._maxZ, Ya(e).applyToMesh(i, e.updatable), i._setReady(!0), i;\n}\nfunction Kx(a, e, t = null) {\n const i = new H(a, t);\n return _0(e).applyToMesh(i, e.updatable), i;\n}\nfunction qx(a, e, t = {}, i = null) {\n const s = t.width || 10, r = t.height || 10, n = t.subdivisions || 1, o = t.minHeight || 0, l = t.maxHeight || 1, h = t.colorFilter || new re(0.3, 0.59, 0.11), c = t.alphaFilter || 0, u = t.updatable, d = t.onReady;\n i = i || Me.LastCreatedScene;\n const f = new Tf(a, i);\n f._subdivisionsX = n, f._subdivisionsY = n, f._width = s, f._height = r, f._maxX = f._width / 2, f._maxZ = f._height / 2, f._minX = -f._maxX, f._minZ = -f._maxZ, f._setReady(!1);\n let p;\n t.passHeightBufferInCallback && (p = new Float32Array((n + 1) * (n + 1)));\n const _ = (m, x, v) => {\n m0({\n width: s,\n height: r,\n subdivisions: n,\n minHeight: o,\n maxHeight: l,\n colorFilter: h,\n buffer: m,\n bufferWidth: x,\n bufferHeight: v,\n alphaFilter: c,\n heightBuffer: p\n }).applyToMesh(f, u), d && d(f, p), f._setReady(!0);\n };\n if (typeof e == \"string\") {\n const m = (x) => {\n const v = x.width, T = x.height;\n if (i.isDisposed)\n return;\n const E = i == null ? void 0 : i.getEngine().resizeImageBitmap(x, v, T);\n _(E, v, T);\n };\n J.LoadImage(e, m, t.onError ? t.onError : () => {\n }, i.offlineProvider);\n } else\n _(e.data, e.width, e.height);\n return f;\n}\nconst sK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateGround: Sf,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateGroundFromHeightMap: qx,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateTiledGround: Kx\n};\nge.CreateGround = Ya;\nge.CreateTiledGround = _0;\nge.CreateGroundFromHeightMap = m0;\nH.CreateGround = (a, e, t, i, s, r) => Sf(a, {\n width: e,\n height: t,\n subdivisions: i,\n updatable: r\n}, s);\nH.CreateTiledGround = (a, e, t, i, s, r, n, o, l) => Kx(a, {\n xmin: e,\n zmin: t,\n xmax: i,\n zmax: s,\n subdivisions: r,\n precision: n,\n updatable: l\n}, o);\nH.CreateGroundFromHeightMap = (a, e, t, i, s, r, n, o, l, h, c) => qx(a, e, {\n width: t,\n height: i,\n subdivisions: s,\n minHeight: r,\n maxHeight: n,\n updatable: l,\n onReady: h,\n alphaFilter: c\n}, o);\nfunction Qx(a) {\n let t = [0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 13, 14, 12, 14, 15, 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23];\n const i = [\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n -1,\n 0,\n 0,\n -1,\n 0,\n 0,\n -1,\n 0,\n 0,\n -1,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n -1,\n 0,\n 0,\n -1,\n 0,\n 0,\n -1,\n 0,\n 0,\n -1,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 0,\n 0,\n -1,\n 0,\n 0,\n -1,\n 0,\n 0,\n -1,\n 0,\n 0,\n -1,\n 0\n ], s = [];\n let r = [];\n const n = a.width || a.size || 1, o = a.height || a.size || 1, l = a.depth || a.size || 1, h = a.wrap || !1;\n let c = a.topBaseAt === void 0 ? 1 : a.topBaseAt, u = a.bottomBaseAt === void 0 ? 0 : a.bottomBaseAt;\n c = (c + 4) % 4, u = (u + 4) % 4;\n const d = [2, 0, 3, 1], f = [2, 0, 1, 3];\n let p = d[c], _ = f[u], m = [\n 1,\n -1,\n 1,\n -1,\n -1,\n 1,\n -1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n -1,\n -1,\n 1,\n -1,\n -1,\n -1,\n -1,\n 1,\n -1,\n -1,\n 1,\n 1,\n -1,\n 1,\n -1,\n -1,\n 1,\n -1,\n 1,\n 1,\n 1,\n 1,\n -1,\n 1,\n 1,\n -1,\n -1,\n 1,\n -1,\n -1,\n -1,\n -1,\n 1,\n -1,\n -1,\n 1,\n 1,\n -1,\n 1,\n -1,\n 1,\n 1,\n -1,\n 1,\n 1,\n 1,\n 1,\n -1,\n 1,\n 1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n 1\n ];\n if (h) {\n t = [2, 3, 0, 2, 0, 1, 4, 5, 6, 4, 6, 7, 9, 10, 11, 9, 11, 8, 12, 14, 15, 12, 13, 14], m = [\n -1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n -1,\n 1,\n -1,\n -1,\n 1,\n 1,\n 1,\n -1,\n -1,\n 1,\n -1,\n -1,\n -1,\n -1,\n 1,\n -1,\n -1,\n 1,\n 1,\n 1,\n 1,\n 1,\n -1,\n 1,\n -1,\n -1,\n 1,\n -1,\n 1,\n -1,\n 1,\n -1,\n -1,\n 1,\n 1,\n -1,\n -1,\n 1,\n -1,\n -1,\n -1\n ];\n let C = [\n [1, 1, 1],\n [-1, 1, 1],\n [-1, 1, -1],\n [1, 1, -1]\n ], P = [\n [-1, -1, 1],\n [1, -1, 1],\n [1, -1, -1],\n [-1, -1, -1]\n ];\n const N = [17, 18, 19, 16], F = [22, 23, 20, 21];\n for (; p > 0; )\n C.unshift(C.pop()), N.unshift(N.pop()), p--;\n for (; _ > 0; )\n P.unshift(P.pop()), F.unshift(F.pop()), _--;\n C = C.flat(), P = P.flat(), m = m.concat(C).concat(P), t.push(N[0], N[2], N[3], N[0], N[1], N[2]), t.push(F[0], F[2], F[3], F[0], F[1], F[2]);\n }\n const x = [n / 2, o / 2, l / 2];\n r = m.reduce((C, P, N) => C.concat(P * x[N % 3]), []);\n const v = a.sideOrientation === 0 ? 0 : a.sideOrientation || ge.DEFAULTSIDE, T = a.faceUV || new Array(6), E = a.faceColors, b = [];\n for (let C = 0; C < 6; C++)\n T[C] === void 0 && (T[C] = new Ne(0, 0, 1, 1)), E && E[C] === void 0 && (E[C] = new Ce(1, 1, 1, 1));\n for (let C = 0; C < 6; C++)\n if (s.push(T[C].z, At.UseOpenGLOrientationForUV ? 1 - T[C].w : T[C].w), s.push(T[C].x, At.UseOpenGLOrientationForUV ? 1 - T[C].w : T[C].w), s.push(T[C].x, At.UseOpenGLOrientationForUV ? 1 - T[C].y : T[C].y), s.push(T[C].z, At.UseOpenGLOrientationForUV ? 1 - T[C].y : T[C].y), E)\n for (let P = 0; P < 4; P++)\n b.push(E[C].r, E[C].g, E[C].b, E[C].a);\n ge._ComputeSides(v, r, t, i, s, a.frontUVs, a.backUVs);\n const S = new ge();\n if (S.indices = t, S.positions = r, S.normals = i, S.uvs = s, E) {\n const C = v === ge.DOUBLESIDE ? b.concat(b) : b;\n S.colors = C;\n }\n return S;\n}\nfunction Uw(a) {\n const e = a.width || a.size || 1, t = a.height || a.size || 1, i = a.depth || a.size || 1, s = (a.widthSegments || a.segments || 1) | 0, r = (a.heightSegments || a.segments || 1) | 0, n = (a.depthSegments || a.segments || 1) | 0, o = new O(), l = new O(), h = new O(), c = Ya({ width: e, height: i, subdivisionsX: s, subdivisionsY: n });\n O.TranslationToRef(0, -t / 2, 0, l), O.RotationZToRef(Math.PI, o), o.multiplyToRef(l, h), c.transform(h);\n const u = Ya({ width: e, height: i, subdivisionsX: s, subdivisionsY: n });\n O.TranslationToRef(0, t / 2, 0, h), u.transform(h);\n const d = Ya({ width: t, height: i, subdivisionsX: r, subdivisionsY: n });\n O.TranslationToRef(-e / 2, 0, 0, l), O.RotationZToRef(Math.PI / 2, o), o.multiplyToRef(l, h), d.transform(h);\n const f = Ya({ width: t, height: i, subdivisionsX: r, subdivisionsY: n });\n O.TranslationToRef(e / 2, 0, 0, l), O.RotationZToRef(-Math.PI / 2, o), o.multiplyToRef(l, h), f.transform(h);\n const p = Ya({ width: e, height: t, subdivisionsX: s, subdivisionsY: r });\n O.TranslationToRef(0, 0, -i / 2, l), O.RotationXToRef(-Math.PI / 2, o), o.multiplyToRef(l, h), p.transform(h);\n const _ = Ya({ width: e, height: t, subdivisionsX: s, subdivisionsY: r });\n return O.TranslationToRef(0, 0, i / 2, l), O.RotationXToRef(Math.PI / 2, o), o.multiplyToRef(l, h), _.transform(h), c.merge([u, f, d, p, _], !0), c;\n}\nfunction Bl(a, e = {}, t = null) {\n const i = new H(a, t);\n return e.sideOrientation = H._GetDefaultSideOrientation(e.sideOrientation), i._originalBuilderSideOrientation = e.sideOrientation, Qx(e).applyToMesh(i, e.updatable), i;\n}\nconst rK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateBox: Bl\n};\nge.CreateBox = Qx;\nH.CreateBox = (a, e, t = null, i, s) => Bl(a, {\n size: e,\n sideOrientation: s,\n updatable: i\n}, t);\nfunction tu(a) {\n const e = a.pattern || H.NO_FLIP, t = a.tileWidth || a.tileSize || 1, i = a.tileHeight || a.tileSize || 1, s = a.alignHorizontal || 0, r = a.alignVertical || 0, n = a.width || a.size || 1, o = Math.floor(n / t);\n let l = n - o * t;\n const h = a.height || a.size || 1, c = Math.floor(h / i);\n let u = h - c * i;\n const d = t * o / 2, f = i * c / 2;\n let p = 0, _ = 0, m = 0, x = 0, v = 0, T = 0;\n if (l > 0 || u > 0) {\n switch (m = -d, x = -f, v = d, T = f, s) {\n case H.CENTER:\n l /= 2, m -= l, v += l;\n break;\n case H.LEFT:\n v += l, p = -l / 2;\n break;\n case H.RIGHT:\n m -= l, p = l / 2;\n break;\n }\n switch (r) {\n case H.CENTER:\n u /= 2, x -= u, T += u;\n break;\n case H.BOTTOM:\n T += u, _ = -u / 2;\n break;\n case H.TOP:\n x -= u, _ = u / 2;\n break;\n }\n }\n const E = [], b = [], S = [];\n S[0] = [0, 0, 1, 0, 1, 1, 0, 1], S[1] = [0, 0, 1, 0, 1, 1, 0, 1], (e === H.ROTATE_TILE || e === H.ROTATE_ROW) && (S[1] = [1, 1, 0, 1, 0, 0, 1, 0]), (e === H.FLIP_TILE || e === H.FLIP_ROW) && (S[1] = [1, 0, 0, 0, 0, 1, 1, 1]), (e === H.FLIP_N_ROTATE_TILE || e === H.FLIP_N_ROTATE_ROW) && (S[1] = [0, 1, 1, 1, 1, 0, 0, 0]);\n let C = [];\n const P = [], N = [];\n let F = 0;\n for (let te = 0; te < c; te++)\n for (let le = 0; le < o; le++)\n E.push(-d + le * t + p, -f + te * i + _, 0), E.push(-d + (le + 1) * t + p, -f + te * i + _, 0), E.push(-d + (le + 1) * t + p, -f + (te + 1) * i + _, 0), E.push(-d + le * t + p, -f + (te + 1) * i + _, 0), N.push(F, F + 1, F + 3, F + 1, F + 2, F + 3), e === H.FLIP_TILE || e === H.ROTATE_TILE || e === H.FLIP_N_ROTATE_TILE ? C = C.concat(S[(le % 2 + te % 2) % 2]) : e === H.FLIP_ROW || e === H.ROTATE_ROW || e === H.FLIP_N_ROTATE_ROW ? C = C.concat(S[te % 2]) : C = C.concat(S[0]), P.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), b.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1), F += 4;\n if (l > 0 || u > 0) {\n const te = u > 0 && (r === H.CENTER || r === H.TOP), le = u > 0 && (r === H.CENTER || r === H.BOTTOM), _e = l > 0 && (s === H.CENTER || s === H.RIGHT), Se = l > 0 && (s === H.CENTER || s === H.LEFT);\n let Ie = [], de, Y, M, k;\n if (te && _e && (E.push(m + p, x + _, 0), E.push(-d + p, x + _, 0), E.push(-d + p, x + u + _, 0), E.push(m + p, x + u + _, 0), N.push(F, F + 1, F + 3, F + 1, F + 2, F + 3), F += 4, de = 1 - l / t, Y = 1 - u / i, M = 1, k = 1, Ie = [de, Y, M, Y, M, k, de, k], e === H.ROTATE_ROW && (Ie = [1 - de, 1 - Y, 1 - M, 1 - Y, 1 - M, 1 - k, 1 - de, 1 - k]), e === H.FLIP_ROW && (Ie = [1 - de, Y, 1 - M, Y, 1 - M, k, 1 - de, k]), e === H.FLIP_N_ROTATE_ROW && (Ie = [de, 1 - Y, M, 1 - Y, M, 1 - k, de, 1 - k]), C = C.concat(Ie), P.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), b.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1)), te && Se && (E.push(d + p, x + _, 0), E.push(v + p, x + _, 0), E.push(v + p, x + u + _, 0), E.push(d + p, x + u + _, 0), N.push(F, F + 1, F + 3, F + 1, F + 2, F + 3), F += 4, de = 0, Y = 1 - u / i, M = l / t, k = 1, Ie = [de, Y, M, Y, M, k, de, k], (e === H.ROTATE_ROW || e === H.ROTATE_TILE && o % 2 === 0) && (Ie = [1 - de, 1 - Y, 1 - M, 1 - Y, 1 - M, 1 - k, 1 - de, 1 - k]), (e === H.FLIP_ROW || e === H.FLIP_TILE && o % 2 === 0) && (Ie = [1 - de, Y, 1 - M, Y, 1 - M, k, 1 - de, k]), (e === H.FLIP_N_ROTATE_ROW || e === H.FLIP_N_ROTATE_TILE && o % 2 === 0) && (Ie = [de, 1 - Y, M, 1 - Y, M, 1 - k, de, 1 - k]), C = C.concat(Ie), P.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), b.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1)), le && _e && (E.push(m + p, f + _, 0), E.push(-d + p, f + _, 0), E.push(-d + p, T + _, 0), E.push(m + p, T + _, 0), N.push(F, F + 1, F + 3, F + 1, F + 2, F + 3), F += 4, de = 1 - l / t, Y = 0, M = 1, k = u / i, Ie = [de, Y, M, Y, M, k, de, k], (e === H.ROTATE_ROW && c % 2 === 1 || e === H.ROTATE_TILE && c % 1 === 0) && (Ie = [1 - de, 1 - Y, 1 - M, 1 - Y, 1 - M, 1 - k, 1 - de, 1 - k]), (e === H.FLIP_ROW && c % 2 === 1 || e === H.FLIP_TILE && c % 2 === 0) && (Ie = [1 - de, Y, 1 - M, Y, 1 - M, k, 1 - de, k]), (e === H.FLIP_N_ROTATE_ROW && c % 2 === 1 || e === H.FLIP_N_ROTATE_TILE && c % 2 === 0) && (Ie = [de, 1 - Y, M, 1 - Y, M, 1 - k, de, 1 - k]), C = C.concat(Ie), P.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), b.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1)), le && Se && (E.push(d + p, f + _, 0), E.push(v + p, f + _, 0), E.push(v + p, T + _, 0), E.push(d + p, T + _, 0), N.push(F, F + 1, F + 3, F + 1, F + 2, F + 3), F += 4, de = 0, Y = 0, M = l / t, k = u / i, Ie = [de, Y, M, Y, M, k, de, k], (e === H.ROTATE_ROW && c % 2 === 1 || e === H.ROTATE_TILE && (c + o) % 2 === 1) && (Ie = [1 - de, 1 - Y, 1 - M, 1 - Y, 1 - M, 1 - k, 1 - de, 1 - k]), (e === H.FLIP_ROW && c % 2 === 1 || e === H.FLIP_TILE && (c + o) % 2 === 1) && (Ie = [1 - de, Y, 1 - M, Y, 1 - M, k, 1 - de, k]), (e === H.FLIP_N_ROTATE_ROW && c % 2 === 1 || e === H.FLIP_N_ROTATE_TILE && (c + o) % 2 === 1) && (Ie = [de, 1 - Y, M, 1 - Y, M, 1 - k, de, 1 - k]), C = C.concat(Ie), P.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), b.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1)), te) {\n const W = [];\n de = 0, Y = 1 - u / i, M = 1, k = 1, W[0] = [de, Y, M, Y, M, k, de, k], W[1] = [de, Y, M, Y, M, k, de, k], (e === H.ROTATE_TILE || e === H.ROTATE_ROW) && (W[1] = [1 - de, 1 - Y, 1 - M, 1 - Y, 1 - M, 1 - k, 1 - de, 1 - k]), (e === H.FLIP_TILE || e === H.FLIP_ROW) && (W[1] = [1 - de, Y, 1 - M, Y, 1 - M, k, 1 - de, k]), (e === H.FLIP_N_ROTATE_TILE || e === H.FLIP_N_ROTATE_ROW) && (W[1] = [de, 1 - Y, M, 1 - Y, M, 1 - k, de, 1 - k]);\n for (let V = 0; V < o; V++)\n E.push(-d + V * t + p, x + _, 0), E.push(-d + (V + 1) * t + p, x + _, 0), E.push(-d + (V + 1) * t + p, x + u + _, 0), E.push(-d + V * t + p, x + u + _, 0), N.push(F, F + 1, F + 3, F + 1, F + 2, F + 3), F += 4, e === H.FLIP_TILE || e === H.ROTATE_TILE || e === H.FLIP_N_ROTATE_TILE ? C = C.concat(W[(V + 1) % 2]) : e === H.FLIP_ROW || e === H.ROTATE_ROW || e === H.FLIP_N_ROTATE_ROW ? C = C.concat(W[1]) : C = C.concat(W[0]), P.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), b.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1);\n }\n if (le) {\n const W = [];\n de = 0, Y = 0, M = 1, k = u / i, W[0] = [de, Y, M, Y, M, k, de, k], W[1] = [de, Y, M, Y, M, k, de, k], (e === H.ROTATE_TILE || e === H.ROTATE_ROW) && (W[1] = [1 - de, 1 - Y, 1 - M, 1 - Y, 1 - M, 1 - k, 1 - de, 1 - k]), (e === H.FLIP_TILE || e === H.FLIP_ROW) && (W[1] = [1 - de, Y, 1 - M, Y, 1 - M, k, 1 - de, k]), (e === H.FLIP_N_ROTATE_TILE || e === H.FLIP_N_ROTATE_ROW) && (W[1] = [de, 1 - Y, M, 1 - Y, M, 1 - k, de, 1 - k]);\n for (let V = 0; V < o; V++)\n E.push(-d + V * t + p, T - u + _, 0), E.push(-d + (V + 1) * t + p, T - u + _, 0), E.push(-d + (V + 1) * t + p, T + _, 0), E.push(-d + V * t + p, T + _, 0), N.push(F, F + 1, F + 3, F + 1, F + 2, F + 3), F += 4, e === H.FLIP_TILE || e === H.ROTATE_TILE || e === H.FLIP_N_ROTATE_TILE ? C = C.concat(W[(V + c) % 2]) : e === H.FLIP_ROW || e === H.ROTATE_ROW || e === H.FLIP_N_ROTATE_ROW ? C = C.concat(W[c % 2]) : C = C.concat(W[0]), P.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), b.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1);\n }\n if (_e) {\n const W = [];\n de = 1 - l / t, Y = 0, M = 1, k = 1, W[0] = [de, Y, M, Y, M, k, de, k], W[1] = [de, Y, M, Y, M, k, de, k], (e === H.ROTATE_TILE || e === H.ROTATE_ROW) && (W[1] = [1 - de, 1 - Y, 1 - M, 1 - Y, 1 - M, 1 - k, 1 - de, 1 - k]), (e === H.FLIP_TILE || e === H.FLIP_ROW) && (W[1] = [1 - de, Y, 1 - M, Y, 1 - M, k, 1 - de, k]), (e === H.FLIP_N_ROTATE_TILE || e === H.FLIP_N_ROTATE_ROW) && (W[1] = [de, 1 - Y, M, 1 - Y, M, 1 - k, de, 1 - k]);\n for (let V = 0; V < c; V++)\n E.push(m + p, -f + V * i + _, 0), E.push(m + l + p, -f + V * i + _, 0), E.push(m + l + p, -f + (V + 1) * i + _, 0), E.push(m + p, -f + (V + 1) * i + _, 0), N.push(F, F + 1, F + 3, F + 1, F + 2, F + 3), F += 4, e === H.FLIP_TILE || e === H.ROTATE_TILE || e === H.FLIP_N_ROTATE_TILE ? C = C.concat(W[(V + 1) % 2]) : e === H.FLIP_ROW || e === H.ROTATE_ROW || e === H.FLIP_N_ROTATE_ROW ? C = C.concat(W[V % 2]) : C = C.concat(W[0]), P.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), b.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1);\n }\n if (Se) {\n const W = [];\n de = 0, Y = 0, M = l / i, k = 1, W[0] = [de, Y, M, Y, M, k, de, k], W[1] = [de, Y, M, Y, M, k, de, k], (e === H.ROTATE_TILE || e === H.ROTATE_ROW) && (W[1] = [1 - de, 1 - Y, 1 - M, 1 - Y, 1 - M, 1 - k, 1 - de, 1 - k]), (e === H.FLIP_TILE || e === H.FLIP_ROW) && (W[1] = [1 - de, Y, 1 - M, Y, 1 - M, k, 1 - de, k]), (e === H.FLIP_N_ROTATE_TILE || e === H.FLIP_N_ROTATE_ROW) && (W[1] = [de, 1 - Y, M, 1 - Y, M, 1 - k, de, 1 - k]);\n for (let V = 0; V < c; V++)\n E.push(v - l + p, -f + V * i + _, 0), E.push(v + p, -f + V * i + _, 0), E.push(v + p, -f + (V + 1) * i + _, 0), E.push(v - l + p, -f + (V + 1) * i + _, 0), N.push(F, F + 1, F + 3, F + 1, F + 2, F + 3), F += 4, e === H.FLIP_TILE || e === H.ROTATE_TILE || e === H.FLIP_N_ROTATE_TILE ? C = C.concat(W[(V + o) % 2]) : e === H.FLIP_ROW || e === H.ROTATE_ROW || e === H.FLIP_N_ROTATE_ROW ? C = C.concat(W[V % 2]) : C = C.concat(W[0]), P.push(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), b.push(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1);\n }\n }\n const $ = a.sideOrientation === 0 ? 0 : a.sideOrientation || ge.DEFAULTSIDE;\n ge._ComputeSides($, E, N, b, C, a.frontUVs, a.backUVs);\n const j = new ge();\n j.indices = N, j.positions = E, j.normals = b, j.uvs = C;\n const ne = $ === ge.DOUBLESIDE ? P.concat(P) : P;\n return j.colors = ne, j;\n}\nfunction g0(a, e, t = null) {\n const i = new H(a, t);\n return e.sideOrientation = H._GetDefaultSideOrientation(e.sideOrientation), i._originalBuilderSideOrientation = e.sideOrientation, tu(e).applyToMesh(i, e.updatable), i;\n}\nconst nK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateTiledPlane: g0\n};\nge.CreateTiledPlane = tu;\nfunction x0(a) {\n const t = a.faceUV || new Array(6), i = a.faceColors, s = a.pattern || H.NO_FLIP, r = a.width || a.size || 1, n = a.height || a.size || 1, o = a.depth || a.size || 1, l = a.tileWidth || a.tileSize || 1, h = a.tileHeight || a.tileSize || 1, c = a.alignHorizontal || 0, u = a.alignVertical || 0, d = a.sideOrientation === 0 ? 0 : a.sideOrientation || ge.DEFAULTSIDE;\n for (let M = 0; M < 6; M++)\n t[M] === void 0 && (t[M] = new Ne(0, 0, 1, 1)), i && i[M] === void 0 && (i[M] = new Ce(1, 1, 1, 1));\n const f = r / 2, p = n / 2, _ = o / 2, m = [];\n for (let M = 0; M < 2; M++)\n m[M] = tu({\n pattern: s,\n tileWidth: l,\n tileHeight: h,\n width: r,\n height: n,\n alignVertical: u,\n alignHorizontal: c,\n sideOrientation: d\n });\n for (let M = 2; M < 4; M++)\n m[M] = tu({\n pattern: s,\n tileWidth: l,\n tileHeight: h,\n width: o,\n height: n,\n alignVertical: u,\n alignHorizontal: c,\n sideOrientation: d\n });\n let x = u;\n u === H.BOTTOM ? x = H.TOP : u === H.TOP && (x = H.BOTTOM);\n for (let M = 4; M < 6; M++)\n m[M] = tu({\n pattern: s,\n tileWidth: l,\n tileHeight: h,\n width: r,\n height: o,\n alignVertical: x,\n alignHorizontal: c,\n sideOrientation: d\n });\n let v = [], T = [], E = [], b = [];\n const S = [], C = [], P = [], N = [];\n let F = 0, $ = 0;\n for (let M = 0; M < 6; M++) {\n const k = m[M].positions.length;\n C[M] = [], P[M] = [];\n for (let W = 0; W < k / 3; W++)\n C[M].push(new g(m[M].positions[3 * W], m[M].positions[3 * W + 1], m[M].positions[3 * W + 2])), P[M].push(new g(m[M].normals[3 * W], m[M].normals[3 * W + 1], m[M].normals[3 * W + 2]));\n F = m[M].uvs.length, N[M] = [];\n for (let W = 0; W < F; W += 2)\n N[M][W] = t[M].x + (t[M].z - t[M].x) * m[M].uvs[W], N[M][W + 1] = t[M].y + (t[M].w - t[M].y) * m[M].uvs[W + 1], At.UseOpenGLOrientationForUV && (N[M][W + 1] = 1 - N[M][W + 1]);\n if (E = E.concat(N[M]), b = b.concat(m[M].indices.map((W) => W + $)), $ += C[M].length, i)\n for (let W = 0; W < 4; W++)\n S.push(i[M].r, i[M].g, i[M].b, i[M].a);\n }\n const j = new g(0, 0, _), ne = O.RotationY(Math.PI);\n v = C[0].map((M) => g.TransformNormal(M, ne).add(j)).map((M) => [M.x, M.y, M.z]).reduce((M, k) => M.concat(k), []), T = P[0].map((M) => g.TransformNormal(M, ne)).map((M) => [M.x, M.y, M.z]).reduce((M, k) => M.concat(k), []), v = v.concat(C[1].map((M) => M.subtract(j)).map((M) => [M.x, M.y, M.z]).reduce((M, k) => M.concat(k), [])), T = T.concat(P[1].map((M) => [M.x, M.y, M.z]).reduce((M, k) => M.concat(k), []));\n const te = new g(f, 0, 0), le = O.RotationY(-Math.PI / 2);\n v = v.concat(C[2].map((M) => g.TransformNormal(M, le).add(te)).map((M) => [M.x, M.y, M.z]).reduce((M, k) => M.concat(k), [])), T = T.concat(P[2].map((M) => g.TransformNormal(M, le)).map((M) => [M.x, M.y, M.z]).reduce((M, k) => M.concat(k), []));\n const _e = O.RotationY(Math.PI / 2);\n v = v.concat(C[3].map((M) => g.TransformNormal(M, _e).subtract(te)).map((M) => [M.x, M.y, M.z]).reduce((M, k) => M.concat(k), [])), T = T.concat(P[3].map((M) => g.TransformNormal(M, _e)).map((M) => [M.x, M.y, M.z]).reduce((M, k) => M.concat(k), []));\n const Se = new g(0, p, 0), Ie = O.RotationX(Math.PI / 2);\n v = v.concat(C[4].map((M) => g.TransformNormal(M, Ie).add(Se)).map((M) => [M.x, M.y, M.z]).reduce((M, k) => M.concat(k), [])), T = T.concat(P[4].map((M) => g.TransformNormal(M, Ie)).map((M) => [M.x, M.y, M.z]).reduce((M, k) => M.concat(k), []));\n const de = O.RotationX(-Math.PI / 2);\n v = v.concat(C[5].map((M) => g.TransformNormal(M, de).subtract(Se)).map((M) => [M.x, M.y, M.z]).reduce((M, k) => M.concat(k), [])), T = T.concat(P[5].map((M) => g.TransformNormal(M, de)).map((M) => [M.x, M.y, M.z]).reduce((M, k) => M.concat(k), [])), ge._ComputeSides(d, v, b, T, E);\n const Y = new ge();\n if (Y.indices = b, Y.positions = v, Y.normals = T, Y.uvs = E, i) {\n const M = d === ge.DOUBLESIDE ? S.concat(S) : S;\n Y.colors = M;\n }\n return Y;\n}\nfunction v0(a, e, t = null) {\n const i = new H(a, t);\n return e.sideOrientation = H._GetDefaultSideOrientation(e.sideOrientation), i._originalBuilderSideOrientation = e.sideOrientation, x0(e).applyToMesh(i, e.updatable), i;\n}\nconst aK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateTiledBox: v0\n};\nge.CreateTiledBox = x0;\nfunction Zx(a) {\n const e = (a.segments || 32) | 0, t = a.diameterX || a.diameter || 1, i = a.diameterY || a.diameter || 1, s = a.diameterZ || a.diameter || 1, r = a.arc && (a.arc <= 0 || a.arc > 1) ? 1 : a.arc || 1, n = a.slice && a.slice <= 0 ? 1 : a.slice || 1, o = a.sideOrientation === 0 ? 0 : a.sideOrientation || ge.DEFAULTSIDE, l = !!a.dedupTopBottomIndices, h = new g(t / 2, i / 2, s / 2), c = 2 + e, u = 2 * c, d = [], f = [], p = [], _ = [];\n for (let x = 0; x <= c; x++) {\n const v = x / c, T = v * Math.PI * n;\n for (let E = 0; E <= u; E++) {\n const b = E / u, S = b * Math.PI * 2 * r, C = O.RotationZ(-T), P = O.RotationY(S), N = g.TransformCoordinates(g.Up(), C), F = g.TransformCoordinates(N, P), $ = F.multiply(h), j = F.divide(h).normalize();\n f.push($.x, $.y, $.z), p.push(j.x, j.y, j.z), _.push(b, At.UseOpenGLOrientationForUV ? 1 - v : v);\n }\n if (x > 0) {\n const E = f.length / 3;\n for (let b = E - 2 * (u + 1); b + u + 2 < E; b++)\n l ? (x > 1 && (d.push(b), d.push(b + 1), d.push(b + u + 1)), (x < c || n < 1) && (d.push(b + u + 1), d.push(b + 1), d.push(b + u + 2))) : (d.push(b), d.push(b + 1), d.push(b + u + 1), d.push(b + u + 1), d.push(b + 1), d.push(b + u + 2));\n }\n }\n ge._ComputeSides(o, f, d, p, _, a.frontUVs, a.backUVs);\n const m = new ge();\n return m.indices = d, m.positions = f, m.normals = p, m.uvs = _, m;\n}\nfunction Tr(a, e = {}, t = null) {\n const i = new H(a, t);\n return e.sideOrientation = H._GetDefaultSideOrientation(e.sideOrientation), i._originalBuilderSideOrientation = e.sideOrientation, Zx(e).applyToMesh(i, e.updatable), i;\n}\nconst oK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateSphere: Tr\n};\nge.CreateSphere = Zx;\nH.CreateSphere = (a, e, t, i, s, r) => Tr(a, {\n segments: e,\n diameterX: t,\n diameterY: t,\n diameterZ: t,\n sideOrientation: r,\n updatable: s\n}, i);\nfunction Jx(a) {\n const e = a.height || 2;\n let t = a.diameterTop === 0 ? 0 : a.diameterTop || a.diameter || 1, i = a.diameterBottom === 0 ? 0 : a.diameterBottom || a.diameter || 1;\n t = t || 1e-5, i = i || 1e-5;\n const s = (a.tessellation || 24) | 0, r = (a.subdivisions || 1) | 0, n = !!a.hasRings, o = !!a.enclose, l = a.cap === 0 ? 0 : a.cap || H.CAP_ALL, h = a.arc && (a.arc <= 0 || a.arc > 1) ? 1 : a.arc || 1, c = a.sideOrientation === 0 ? 0 : a.sideOrientation || ge.DEFAULTSIDE, u = a.faceUV || new Array(3), d = a.faceColors, f = h !== 1 && o ? 2 : 0, p = n ? r : 1, _ = 2 + (1 + f) * p;\n let m;\n for (m = 0; m < _; m++)\n d && d[m] === void 0 && (d[m] = new Ce(1, 1, 1, 1));\n for (m = 0; m < _; m++)\n u && u[m] === void 0 && (u[m] = new Ne(0, 0, 1, 1));\n const x = [], v = [], T = [], E = [], b = [], S = Math.PI * 2 * h / s;\n let C, P, N;\n const F = (i - t) / 2 / e, $ = g.Zero(), j = g.Zero(), ne = g.Zero(), te = g.Zero(), le = g.Zero(), _e = zs.Y;\n let Se, Ie, de, Y = 1, M = 1, k = 0, W = 0;\n for (Se = 0; Se <= r; Se++)\n for (P = Se / r, N = (P * (t - i) + i) / 2, Y = n && Se !== 0 && Se !== r ? 2 : 1, de = 0; de < Y; de++) {\n for (n && (M += de), o && (M += 2 * de), Ie = 0; Ie <= s; Ie++)\n C = Ie * S, $.x = Math.cos(-C) * N, $.y = -e / 2 + P * e, $.z = Math.sin(-C) * N, t === 0 && Se === r ? (j.x = T[T.length - (s + 1) * 3], j.y = T[T.length - (s + 1) * 3 + 1], j.z = T[T.length - (s + 1) * 3 + 2]) : (j.x = $.x, j.z = $.z, j.y = Math.sqrt(j.x * j.x + j.z * j.z) * F, j.normalize()), Ie === 0 && (ne.copyFrom($), te.copyFrom(j)), v.push($.x, $.y, $.z), T.push(j.x, j.y, j.z), n ? W = k !== M ? u[M].y : u[M].w : W = u[M].y + (u[M].w - u[M].y) * P, E.push(u[M].x + (u[M].z - u[M].x) * Ie / s, At.UseOpenGLOrientationForUV ? 1 - W : W), d && b.push(d[M].r, d[M].g, d[M].b, d[M].a);\n h !== 1 && o && (v.push($.x, $.y, $.z), v.push(0, $.y, 0), v.push(0, $.y, 0), v.push(ne.x, ne.y, ne.z), g.CrossToRef(_e, j, le), le.normalize(), T.push(le.x, le.y, le.z, le.x, le.y, le.z), g.CrossToRef(te, _e, le), le.normalize(), T.push(le.x, le.y, le.z, le.x, le.y, le.z), n ? W = k !== M ? u[M + 1].y : u[M + 1].w : W = u[M + 1].y + (u[M + 1].w - u[M + 1].y) * P, E.push(u[M + 1].x, At.UseOpenGLOrientationForUV ? 1 - W : W), E.push(u[M + 1].z, At.UseOpenGLOrientationForUV ? 1 - W : W), n ? W = k !== M ? u[M + 2].y : u[M + 2].w : W = u[M + 2].y + (u[M + 2].w - u[M + 2].y) * P, E.push(u[M + 2].x, At.UseOpenGLOrientationForUV ? 1 - W : W), E.push(u[M + 2].z, At.UseOpenGLOrientationForUV ? 1 - W : W), d && (b.push(d[M + 1].r, d[M + 1].g, d[M + 1].b, d[M + 1].a), b.push(d[M + 1].r, d[M + 1].g, d[M + 1].b, d[M + 1].a), b.push(d[M + 2].r, d[M + 2].g, d[M + 2].b, d[M + 2].a), b.push(d[M + 2].r, d[M + 2].g, d[M + 2].b, d[M + 2].a))), k !== M && (k = M);\n }\n const V = h !== 1 && o ? s + 4 : s;\n for (Se = 0, M = 0; M < r; M++) {\n let fe = 0, pe = 0, ve = 0, Ue = 0;\n for (Ie = 0; Ie < s; Ie++)\n fe = Se * (V + 1) + Ie, pe = (Se + 1) * (V + 1) + Ie, ve = Se * (V + 1) + (Ie + 1), Ue = (Se + 1) * (V + 1) + (Ie + 1), x.push(fe, pe, ve), x.push(Ue, ve, pe);\n h !== 1 && o && (x.push(fe + 2, pe + 2, ve + 2), x.push(Ue + 2, ve + 2, pe + 2), x.push(fe + 4, pe + 4, ve + 4), x.push(Ue + 4, ve + 4, pe + 4)), Se = n ? Se + 2 : Se + 1;\n }\n const K = (fe) => {\n const pe = fe ? t / 2 : i / 2;\n if (pe === 0)\n return;\n let ve, Ue, ht;\n const Ee = fe ? u[_ - 1] : u[0];\n let Je = null;\n d && (Je = fe ? d[_ - 1] : d[0]);\n const St = v.length / 3, Yt = fe ? e / 2 : -e / 2, yt = new g(0, Yt, 0);\n v.push(yt.x, yt.y, yt.z), T.push(0, fe ? 1 : -1, 0);\n const Ui = Ee.y + (Ee.w - Ee.y) * 0.5;\n E.push(Ee.x + (Ee.z - Ee.x) * 0.5, At.UseOpenGLOrientationForUV ? 1 - Ui : Ui), Je && b.push(Je.r, Je.g, Je.b, Je.a);\n const is = new Q(0.5, 0.5);\n for (ht = 0; ht <= s; ht++) {\n ve = Math.PI * 2 * ht * h / s;\n const fr = Math.cos(-ve), pr = Math.sin(-ve);\n Ue = new g(fr * pe, Yt, pr * pe);\n const Er = new Q(fr * is.x + 0.5, pr * is.y + 0.5);\n v.push(Ue.x, Ue.y, Ue.z), T.push(0, fe ? 1 : -1, 0);\n const gi = Ee.y + (Ee.w - Ee.y) * Er.y;\n E.push(Ee.x + (Ee.z - Ee.x) * Er.x, At.UseOpenGLOrientationForUV ? 1 - gi : gi), Je && b.push(Je.r, Je.g, Je.b, Je.a);\n }\n for (ht = 0; ht < s; ht++)\n fe ? (x.push(St), x.push(St + (ht + 2)), x.push(St + (ht + 1))) : (x.push(St), x.push(St + (ht + 1)), x.push(St + (ht + 2)));\n };\n (l === H.CAP_START || l === H.CAP_ALL) && K(!1), (l === H.CAP_END || l === H.CAP_ALL) && K(!0), ge._ComputeSides(c, v, x, T, E, a.frontUVs, a.backUVs);\n const ie = new ge();\n return ie.indices = x, ie.positions = v, ie.normals = T, ie.uvs = E, d && (ie.colors = b), ie;\n}\nfunction hn(a, e = {}, t) {\n const i = new H(a, t);\n return e.sideOrientation = H._GetDefaultSideOrientation(e.sideOrientation), i._originalBuilderSideOrientation = e.sideOrientation, Jx(e).applyToMesh(i, e.updatable), i;\n}\nconst lK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateCylinder: hn\n};\nge.CreateCylinder = Jx;\nH.CreateCylinder = (a, e, t, i, s, r, n, o, l) => ((n === void 0 || !(n instanceof De)) && (n !== void 0 && (l = o || H.DEFAULTSIDE, o = n), n = r, r = 1), hn(a, {\n height: e,\n diameterTop: t,\n diameterBottom: i,\n tessellation: s,\n subdivisions: r,\n sideOrientation: l,\n updatable: o\n}, n));\nfunction ev(a) {\n const e = [], t = [], i = [], s = [], r = a.diameter || 1, n = a.thickness || 0.5, o = (a.tessellation || 16) | 0, l = a.sideOrientation === 0 ? 0 : a.sideOrientation || ge.DEFAULTSIDE, h = o + 1;\n for (let u = 0; u <= o; u++) {\n const d = u / o, f = u * Math.PI * 2 / o - Math.PI / 2, p = O.Translation(r / 2, 0, 0).multiply(O.RotationY(f));\n for (let _ = 0; _ <= o; _++) {\n const m = 1 - _ / o, x = _ * Math.PI * 2 / o + Math.PI, v = Math.cos(x), T = Math.sin(x);\n let E = new g(v, T, 0), b = E.scale(n / 2);\n const S = new Q(d, m);\n b = g.TransformCoordinates(b, p), E = g.TransformNormal(E, p), t.push(b.x, b.y, b.z), i.push(E.x, E.y, E.z), s.push(S.x, At.UseOpenGLOrientationForUV ? 1 - S.y : S.y);\n const C = (u + 1) % h, P = (_ + 1) % h;\n e.push(u * h + _), e.push(u * h + P), e.push(C * h + _), e.push(u * h + P), e.push(C * h + P), e.push(C * h + _);\n }\n }\n ge._ComputeSides(l, t, e, i, s, a.frontUVs, a.backUVs);\n const c = new ge();\n return c.indices = e, c.positions = t, c.normals = i, c.uvs = s, c;\n}\nfunction Da(a, e = {}, t) {\n const i = new H(a, t);\n return e.sideOrientation = H._GetDefaultSideOrientation(e.sideOrientation), i._originalBuilderSideOrientation = e.sideOrientation, ev(e).applyToMesh(i, e.updatable), i;\n}\nconst hK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateTorus: Da\n};\nge.CreateTorus = ev;\nH.CreateTorus = (a, e, t, i, s, r, n) => Da(a, {\n diameter: e,\n thickness: t,\n tessellation: i,\n sideOrientation: n,\n updatable: r\n}, s);\nfunction T0(a) {\n const e = [], t = [], i = [], s = [], r = a.radius || 2, n = a.tube || 0.5, o = a.radialSegments || 32, l = a.tubularSegments || 32, h = a.p || 2, c = a.q || 3, u = a.sideOrientation === 0 ? 0 : a.sideOrientation || ge.DEFAULTSIDE, d = (m) => {\n const x = Math.cos(m), v = Math.sin(m), T = c / h * m, E = Math.cos(T), b = r * (2 + E) * 0.5 * x, S = r * (2 + E) * v * 0.5, C = r * Math.sin(T) * 0.5;\n return new g(b, S, C);\n };\n let f, p;\n for (f = 0; f <= o; f++) {\n const x = f % o / o * 2 * h * Math.PI, v = d(x), T = d(x + 0.01), E = T.subtract(v);\n let b = T.add(v);\n const S = g.Cross(E, b);\n for (b = g.Cross(S, E), S.normalize(), b.normalize(), p = 0; p < l; p++) {\n const P = p % l / l * 2 * Math.PI, N = -n * Math.cos(P), F = n * Math.sin(P);\n t.push(v.x + N * b.x + F * S.x), t.push(v.y + N * b.y + F * S.y), t.push(v.z + N * b.z + F * S.z), s.push(f / o), s.push(At.UseOpenGLOrientationForUV ? 1 - p / l : p / l);\n }\n }\n for (f = 0; f < o; f++)\n for (p = 0; p < l; p++) {\n const m = (p + 1) % l, x = f * l + p, v = (f + 1) * l + p, T = (f + 1) * l + m, E = f * l + m;\n e.push(E), e.push(v), e.push(x), e.push(E), e.push(T), e.push(v);\n }\n ge.ComputeNormals(t, e, i), ge._ComputeSides(u, t, e, i, s, a.frontUVs, a.backUVs);\n const _ = new ge();\n return _.indices = e, _.positions = t, _.normals = i, _.uvs = s, _;\n}\nfunction tv(a, e = {}, t) {\n const i = new H(a, t);\n return e.sideOrientation = H._GetDefaultSideOrientation(e.sideOrientation), i._originalBuilderSideOrientation = e.sideOrientation, T0(e).applyToMesh(i, e.updatable), i;\n}\nconst cK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateTorusKnot: tv\n};\nge.CreateTorusKnot = T0;\nH.CreateTorusKnot = (a, e, t, i, s, r, n, o, l, h) => tv(a, {\n radius: e,\n tube: t,\n radialSegments: i,\n tubularSegments: s,\n p: r,\n q: n,\n sideOrientation: h,\n updatable: l\n}, o);\nH._instancedMeshFactory = (a, e) => {\n const t = new M_(a, e);\n if (e.instancedBuffers) {\n t.instancedBuffers = {};\n for (const i in e.instancedBuffers)\n t.instancedBuffers[i] = e.instancedBuffers[i];\n }\n return t;\n};\nclass M_ extends Pt {\n /**\n * Creates a new InstancedMesh object from the mesh source.\n * @param name defines the name of the instance\n * @param source the mesh to create the instance from\n */\n constructor(e, t) {\n super(e, t.getScene()), this._indexInSourceMeshInstanceArray = -1, this._distanceToCamera = 0, t.addInstance(this), this._sourceMesh = t, this._unIndexed = t._unIndexed, this.position.copyFrom(t.position), this.rotation.copyFrom(t.rotation), this.scaling.copyFrom(t.scaling), t.rotationQuaternion && (this.rotationQuaternion = t.rotationQuaternion.clone()), this.animations = t.animations.slice();\n for (const i of t.getAnimationRanges())\n i != null && this.createAnimationRange(i.name, i.from, i.to);\n this.infiniteDistance = t.infiniteDistance, this.setPivotMatrix(t.getPivotMatrix()), this.refreshBoundingInfo(!0, !0), this._syncSubMeshes();\n }\n /**\n * @returns the string \"InstancedMesh\".\n */\n getClassName() {\n return \"InstancedMesh\";\n }\n /** Gets the list of lights affecting that mesh */\n get lightSources() {\n return this._sourceMesh._lightSources;\n }\n _resyncLightSources() {\n }\n _resyncLightSource() {\n }\n _removeLightSource() {\n }\n // Methods\n /**\n * If the source mesh receives shadows\n */\n get receiveShadows() {\n return this._sourceMesh.receiveShadows;\n }\n set receiveShadows(e) {\n var t;\n ((t = this._sourceMesh) == null ? void 0 : t.receiveShadows) !== e && J.Warn(\"Setting receiveShadows on an instanced mesh has no effect\");\n }\n /**\n * The material of the source mesh\n */\n get material() {\n return this._sourceMesh.material;\n }\n set material(e) {\n var t;\n ((t = this._sourceMesh) == null ? void 0 : t.material) !== e && J.Warn(\"Setting material on an instanced mesh has no effect\");\n }\n /**\n * Visibility of the source mesh\n */\n get visibility() {\n return this._sourceMesh.visibility;\n }\n set visibility(e) {\n var t;\n ((t = this._sourceMesh) == null ? void 0 : t.visibility) !== e && J.Warn(\"Setting visibility on an instanced mesh has no effect\");\n }\n /**\n * Skeleton of the source mesh\n */\n get skeleton() {\n return this._sourceMesh.skeleton;\n }\n set skeleton(e) {\n var t;\n ((t = this._sourceMesh) == null ? void 0 : t.skeleton) !== e && J.Warn(\"Setting skeleton on an instanced mesh has no effect\");\n }\n /**\n * Rendering ground id of the source mesh\n */\n get renderingGroupId() {\n return this._sourceMesh.renderingGroupId;\n }\n set renderingGroupId(e) {\n !this._sourceMesh || e === this._sourceMesh.renderingGroupId || L.Warn(\"Note - setting renderingGroupId of an instanced mesh has no effect on the scene\");\n }\n /**\n * @returns the total number of vertices (integer).\n */\n getTotalVertices() {\n return this._sourceMesh ? this._sourceMesh.getTotalVertices() : 0;\n }\n /**\n * Returns a positive integer : the total number of indices in this mesh geometry.\n * @returns the number of indices or zero if the mesh has no geometry.\n */\n getTotalIndices() {\n return this._sourceMesh.getTotalIndices();\n }\n /**\n * The source mesh of the instance\n */\n get sourceMesh() {\n return this._sourceMesh;\n }\n /**\n * Creates a new InstancedMesh object from the mesh model.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/copies/instances\n * @param name defines the name of the new instance\n * @returns a new InstancedMesh\n */\n createInstance(e) {\n return this._sourceMesh.createInstance(e);\n }\n /**\n * Is this node ready to be used/rendered\n * @param completeCheck defines if a complete check (including materials and lights) has to be done (false by default)\n * @returns {boolean} is it ready\n */\n isReady(e = !1) {\n return this._sourceMesh.isReady(e, !0);\n }\n /**\n * Returns an array of integers or a typed array (Int32Array, Uint32Array, Uint16Array) populated with the mesh indices.\n * @param kind kind of verticies to retrieve (eg. positions, normals, uvs, etc.)\n * @param copyWhenShared If true (default false) and and if the mesh geometry is shared among some other meshes, the returned array is a copy of the internal one.\n * @param forceCopy defines a boolean forcing the copy of the buffer no matter what the value of copyWhenShared is\n * @returns a float array or a Float32Array of the requested kind of data : positions, normals, uvs, etc.\n */\n getVerticesData(e, t, i) {\n return this._sourceMesh.getVerticesData(e, t, i);\n }\n copyVerticesData(e, t) {\n this._sourceMesh.copyVerticesData(e, t);\n }\n /**\n * Sets the vertex data of the mesh geometry for the requested `kind`.\n * If the mesh has no geometry, a new Geometry object is set to the mesh and then passed this vertex data.\n * The `data` are either a numeric array either a Float32Array.\n * The parameter `updatable` is passed as is to the underlying Geometry object constructor (if initially none) or updater.\n * The parameter `stride` is an optional positive integer, it is usually automatically deducted from the `kind` (3 for positions or normals, 2 for UV, etc).\n * Note that a new underlying VertexBuffer object is created each call.\n * If the `kind` is the `PositionKind`, the mesh BoundingInfo is renewed, so the bounding box and sphere, and the mesh World Matrix is recomputed.\n *\n * Possible `kind` values :\n * - VertexBuffer.PositionKind\n * - VertexBuffer.UVKind\n * - VertexBuffer.UV2Kind\n * - VertexBuffer.UV3Kind\n * - VertexBuffer.UV4Kind\n * - VertexBuffer.UV5Kind\n * - VertexBuffer.UV6Kind\n * - VertexBuffer.ColorKind\n * - VertexBuffer.MatricesIndicesKind\n * - VertexBuffer.MatricesIndicesExtraKind\n * - VertexBuffer.MatricesWeightsKind\n * - VertexBuffer.MatricesWeightsExtraKind\n *\n * Returns the Mesh.\n * @param kind defines vertex data kind\n * @param data defines the data source\n * @param updatable defines if the data must be flagged as updatable (false as default)\n * @param stride defines the vertex stride (optional)\n * @returns the current mesh\n */\n setVerticesData(e, t, i, s) {\n return this.sourceMesh && this.sourceMesh.setVerticesData(e, t, i, s), this.sourceMesh;\n }\n /**\n * Updates the existing vertex data of the mesh geometry for the requested `kind`.\n * If the mesh has no geometry, it is simply returned as it is.\n * The `data` are either a numeric array either a Float32Array.\n * No new underlying VertexBuffer object is created.\n * If the `kind` is the `PositionKind` and if `updateExtends` is true, the mesh BoundingInfo is renewed, so the bounding box and sphere, and the mesh World Matrix is recomputed.\n * If the parameter `makeItUnique` is true, a new global geometry is created from this positions and is set to the mesh.\n *\n * Possible `kind` values :\n * - VertexBuffer.PositionKind\n * - VertexBuffer.UVKind\n * - VertexBuffer.UV2Kind\n * - VertexBuffer.UV3Kind\n * - VertexBuffer.UV4Kind\n * - VertexBuffer.UV5Kind\n * - VertexBuffer.UV6Kind\n * - VertexBuffer.ColorKind\n * - VertexBuffer.MatricesIndicesKind\n * - VertexBuffer.MatricesIndicesExtraKind\n * - VertexBuffer.MatricesWeightsKind\n * - VertexBuffer.MatricesWeightsExtraKind\n *\n * Returns the Mesh.\n * @param kind defines vertex data kind\n * @param data defines the data source\n * @param updateExtends defines if extends info of the mesh must be updated (can be null). This is mostly useful for \"position\" kind\n * @param makeItUnique defines it the updated vertex buffer must be flagged as unique (false by default)\n * @returns the source mesh\n */\n updateVerticesData(e, t, i, s) {\n return this.sourceMesh && this.sourceMesh.updateVerticesData(e, t, i, s), this.sourceMesh;\n }\n /**\n * Sets the mesh indices.\n * Expects an array populated with integers or a typed array (Int32Array, Uint32Array, Uint16Array).\n * If the mesh has no geometry, a new Geometry object is created and set to the mesh.\n * This method creates a new index buffer each call.\n * Returns the Mesh.\n * @param indices the source data\n * @param totalVertices defines the total number of vertices referenced by indices (could be null)\n * @returns source mesh\n */\n setIndices(e, t = null) {\n return this.sourceMesh && this.sourceMesh.setIndices(e, t), this.sourceMesh;\n }\n /**\n * Boolean : True if the mesh owns the requested kind of data.\n * @param kind defines which buffer to check (positions, indices, normals, etc). Possible `kind` values :\n * - VertexBuffer.PositionKind\n * - VertexBuffer.UVKind\n * - VertexBuffer.UV2Kind\n * - VertexBuffer.UV3Kind\n * - VertexBuffer.UV4Kind\n * - VertexBuffer.UV5Kind\n * - VertexBuffer.UV6Kind\n * - VertexBuffer.ColorKind\n * - VertexBuffer.MatricesIndicesKind\n * - VertexBuffer.MatricesIndicesExtraKind\n * - VertexBuffer.MatricesWeightsKind\n * - VertexBuffer.MatricesWeightsExtraKind\n * @returns true if data kind is present\n */\n isVerticesDataPresent(e) {\n return this._sourceMesh.isVerticesDataPresent(e);\n }\n /**\n * @returns an array of indices (IndicesArray).\n */\n getIndices() {\n return this._sourceMesh.getIndices();\n }\n get _positions() {\n return this._sourceMesh._positions;\n }\n refreshBoundingInfo(e = !1, t = !1) {\n if (this.hasBoundingInfo && this.getBoundingInfo().isLocked)\n return this;\n let i;\n typeof e == \"object\" ? i = e : i = {\n applySkeleton: e,\n applyMorph: t\n };\n const s = this._sourceMesh.geometry ? this._sourceMesh.geometry.boundingBias : null;\n return this._refreshBoundingInfo(this._sourceMesh._getData(i, null, R.PositionKind), s), this;\n }\n /** @internal */\n _preActivate() {\n return this._currentLOD && this._currentLOD._preActivate(), this;\n }\n /**\n * @internal\n */\n _activate(e, t) {\n if (super._activate(e, t), this._sourceMesh.subMeshes || L.Warn(\"Instances should only be created for meshes with geometry.\"), this._currentLOD) {\n if (this._currentLOD._getWorldMatrixDeterminant() >= 0 != this._getWorldMatrixDeterminant() >= 0)\n return this._internalAbstractMeshDataInfo._actAsRegularMesh = !0, !0;\n if (this._internalAbstractMeshDataInfo._actAsRegularMesh = !1, this._currentLOD._registerInstanceForRenderId(this, e), t) {\n if (!this._currentLOD._internalAbstractMeshDataInfo._isActiveIntermediate)\n return this._currentLOD._internalAbstractMeshDataInfo._onlyForInstancesIntermediate = !0, !0;\n } else if (!this._currentLOD._internalAbstractMeshDataInfo._isActive)\n return this._currentLOD._internalAbstractMeshDataInfo._onlyForInstances = !0, !0;\n }\n return !1;\n }\n /** @internal */\n _postActivate() {\n this._sourceMesh.edgesShareWithInstances && this._sourceMesh._edgesRenderer && this._sourceMesh._edgesRenderer.isEnabled && this._sourceMesh._renderingGroup ? (this._sourceMesh._renderingGroup._edgesRenderers.pushNoDuplicate(this._sourceMesh._edgesRenderer), this._sourceMesh._edgesRenderer.customInstances.push(this.getWorldMatrix())) : this._edgesRenderer && this._edgesRenderer.isEnabled && this._sourceMesh._renderingGroup && this._sourceMesh._renderingGroup._edgesRenderers.push(this._edgesRenderer);\n }\n getWorldMatrix() {\n if (this._currentLOD && this._currentLOD.billboardMode !== Ye.BILLBOARDMODE_NONE && this._currentLOD._masterMesh !== this) {\n this._billboardWorldMatrix || (this._billboardWorldMatrix = new O());\n const e = this._currentLOD._masterMesh;\n return this._currentLOD._masterMesh = this, w.Vector3[7].copyFrom(this._currentLOD.position), this._currentLOD.position.set(0, 0, 0), this._billboardWorldMatrix.copyFrom(this._currentLOD.computeWorldMatrix(!0)), this._currentLOD.position.copyFrom(w.Vector3[7]), this._currentLOD._masterMesh = e, this._billboardWorldMatrix;\n }\n return super.getWorldMatrix();\n }\n get isAnInstance() {\n return !0;\n }\n /**\n * Returns the current associated LOD AbstractMesh.\n * @param camera defines the camera to use to pick the LOD level\n * @returns a Mesh or `null` if no LOD is associated with the AbstractMesh\n */\n getLOD(e) {\n if (!e)\n return this;\n const t = this.sourceMesh.getLODLevels();\n if (!t || t.length === 0)\n this._currentLOD = this.sourceMesh;\n else {\n const i = this.getBoundingInfo();\n this._currentLOD = this.sourceMesh.getLOD(e, i.boundingSphere);\n }\n return this._currentLOD;\n }\n /**\n * @internal\n */\n _preActivateForIntermediateRendering(e) {\n return this.sourceMesh._preActivateForIntermediateRendering(e);\n }\n /** @internal */\n _syncSubMeshes() {\n if (this.releaseSubMeshes(), this._sourceMesh.subMeshes)\n for (let e = 0; e < this._sourceMesh.subMeshes.length; e++)\n this._sourceMesh.subMeshes[e].clone(this, this._sourceMesh);\n return this;\n }\n /** @internal */\n _generatePointsArray() {\n return this._sourceMesh._generatePointsArray();\n }\n /** @internal */\n _updateBoundingInfo() {\n return this.hasBoundingInfo ? this.getBoundingInfo().update(this.worldMatrixFromCache) : this.buildBoundingInfo(this.absolutePosition, this.absolutePosition, this.worldMatrixFromCache), this._updateSubMeshesBoundingInfo(this.worldMatrixFromCache), this;\n }\n /**\n * Creates a new InstancedMesh from the current mesh.\n *\n * Returns the clone.\n * @param name the cloned mesh name\n * @param newParent the optional Node to parent the clone to.\n * @param doNotCloneChildren if `true` the model children aren't cloned.\n * @param newSourceMesh if set this mesh will be used as the source mesh instead of ths instance's one\n * @returns the clone\n */\n clone(e, t = null, i, s) {\n const r = (s || this._sourceMesh).createInstance(e);\n if (Hs.DeepCopy(this, r, [\n \"name\",\n \"subMeshes\",\n \"uniqueId\",\n \"parent\",\n \"lightSources\",\n \"receiveShadows\",\n \"material\",\n \"visibility\",\n \"skeleton\",\n \"sourceMesh\",\n \"isAnInstance\",\n \"facetNb\",\n \"isFacetDataEnabled\",\n \"isBlocked\",\n \"useBones\",\n \"hasInstances\",\n \"collider\",\n \"edgesRenderer\",\n \"forward\",\n \"up\",\n \"right\",\n \"absolutePosition\",\n \"absoluteScaling\",\n \"absoluteRotationQuaternion\",\n \"isWorldMatrixFrozen\",\n \"nonUniformScaling\",\n \"behaviors\",\n \"worldMatrixFromCache\",\n \"hasThinInstances\",\n \"hasBoundingInfo\"\n ], []), this.refreshBoundingInfo(), t && (r.parent = t), !i)\n for (let n = 0; n < this.getScene().meshes.length; n++) {\n const o = this.getScene().meshes[n];\n o.parent === this && o.clone(o.name, r);\n }\n return r.computeWorldMatrix(!0), this.onClonedObservable.notifyObservers(r), r;\n }\n /**\n * Disposes the InstancedMesh.\n * Returns nothing.\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\n */\n dispose(e, t = !1) {\n this._sourceMesh.removeInstance(this), super.dispose(e, t);\n }\n /**\n * @internal\n */\n _serializeAsParent(e) {\n super._serializeAsParent(e), e.parentId = this._sourceMesh.uniqueId, e.parentInstanceIndex = this._indexInSourceMeshInstanceArray;\n }\n /**\n * Instantiate (when possible) or clone that node with its hierarchy\n * @param newParent defines the new parent to use for the instance (or clone)\n * @param options defines options to configure how copy is done\n * @param options.doNotInstantiate defines if the model must be instantiated or just cloned\n * @param options.newSourcedMesh newSourcedMesh the new source mesh for the instance (or clone)\n * @param onNewNodeCreated defines an option callback to call when a clone or an instance is created\n * @returns an instance (or a clone) of the current node with its hierarchy\n */\n instantiateHierarchy(e = null, t, i) {\n const s = this.clone(\"Clone of \" + (this.name || this.id), e || this.parent, !0, t && t.newSourcedMesh);\n s && i && i(this, s);\n for (const r of this.getChildTransformNodes(!0))\n r.instantiateHierarchy(s, t, i);\n return s;\n }\n}\nH.prototype.registerInstancedBuffer = function(a, e) {\n var t, i;\n if ((i = (t = this._userInstancedBuffersStorage) == null ? void 0 : t.vertexBuffers[a]) == null || i.dispose(), !this.instancedBuffers) {\n this.instancedBuffers = {};\n for (const s of this.instances)\n s.instancedBuffers = {};\n }\n this._userInstancedBuffersStorage || (this._userInstancedBuffersStorage = {\n data: {},\n vertexBuffers: {},\n strides: {},\n sizes: {},\n vertexArrayObjects: this.getEngine().getCaps().vertexArrayObject ? {} : void 0\n }), this.instancedBuffers[a] = null, this._userInstancedBuffersStorage.strides[a] = e, this._userInstancedBuffersStorage.sizes[a] = e * 32, this._userInstancedBuffersStorage.data[a] = new Float32Array(this._userInstancedBuffersStorage.sizes[a]), this._userInstancedBuffersStorage.vertexBuffers[a] = new R(this.getEngine(), this._userInstancedBuffersStorage.data[a], a, !0, !1, e, !0);\n for (const s of this.instances)\n s.instancedBuffers[a] = null;\n this._invalidateInstanceVertexArrayObject(), this._markSubMeshesAsAttributesDirty();\n};\nH.prototype._processInstancedBuffers = function(a, e) {\n const t = a ? a.length : 0;\n for (const i in this.instancedBuffers) {\n let s = this._userInstancedBuffersStorage.sizes[i];\n const r = this._userInstancedBuffersStorage.strides[i], n = (t + 1) * r;\n for (; s < n; )\n s *= 2;\n this._userInstancedBuffersStorage.data[i].length != s && (this._userInstancedBuffersStorage.data[i] = new Float32Array(s), this._userInstancedBuffersStorage.sizes[i] = s, this._userInstancedBuffersStorage.vertexBuffers[i] && (this._userInstancedBuffersStorage.vertexBuffers[i].dispose(), this._userInstancedBuffersStorage.vertexBuffers[i] = null));\n const o = this._userInstancedBuffersStorage.data[i];\n let l = 0;\n if (e) {\n const h = this.instancedBuffers[i];\n h.toArray ? h.toArray(o, l) : h.copyToArray ? h.copyToArray(o, l) : o[l] = h, l += r;\n }\n for (let h = 0; h < t; h++) {\n const u = a[h].instancedBuffers[i];\n u.toArray ? u.toArray(o, l) : u.copyToArray ? u.copyToArray(o, l) : o[l] = u, l += r;\n }\n this._userInstancedBuffersStorage.vertexBuffers[i] ? this._userInstancedBuffersStorage.vertexBuffers[i].updateDirectly(o, 0) : (this._userInstancedBuffersStorage.vertexBuffers[i] = new R(this.getEngine(), this._userInstancedBuffersStorage.data[i], i, !0, !1, r, !0), this._invalidateInstanceVertexArrayObject());\n }\n};\nH.prototype._invalidateInstanceVertexArrayObject = function() {\n if (!(!this._userInstancedBuffersStorage || this._userInstancedBuffersStorage.vertexArrayObjects === void 0)) {\n for (const a in this._userInstancedBuffersStorage.vertexArrayObjects)\n this.getEngine().releaseVertexArrayObject(this._userInstancedBuffersStorage.vertexArrayObjects[a]);\n this._userInstancedBuffersStorage.vertexArrayObjects = {};\n }\n};\nH.prototype._disposeInstanceSpecificData = function() {\n for (this._instanceDataStorage.instancesBuffer && (this._instanceDataStorage.instancesBuffer.dispose(), this._instanceDataStorage.instancesBuffer = null); this.instances.length; )\n this.instances[0].dispose();\n for (const a in this.instancedBuffers)\n this._userInstancedBuffersStorage.vertexBuffers[a] && this._userInstancedBuffersStorage.vertexBuffers[a].dispose();\n this._invalidateInstanceVertexArrayObject(), this.instancedBuffers = {};\n};\nU(\"BABYLON.InstancedMesh\", M_);\nclass Vl {\n constructor() {\n this._defines = {}, this._currentRank = 32, this._maxRank = -1, this._mesh = null;\n }\n /**\n * Removes the fallback from the bound mesh.\n */\n unBindMesh() {\n this._mesh = null;\n }\n /**\n * Adds a fallback on the specified property.\n * @param rank The rank of the fallback (Lower ranks will be fallbacked to first)\n * @param define The name of the define in the shader\n */\n addFallback(e, t) {\n this._defines[e] || (e < this._currentRank && (this._currentRank = e), e > this._maxRank && (this._maxRank = e), this._defines[e] = new Array()), this._defines[e].push(t);\n }\n /**\n * Sets the mesh to use CPU skinning when needing to fallback.\n * @param rank The rank of the fallback (Lower ranks will be fallbacked to first)\n * @param mesh The mesh to use the fallbacks.\n */\n addCPUSkinningFallback(e, t) {\n this._mesh = t, e < this._currentRank && (this._currentRank = e), e > this._maxRank && (this._maxRank = e);\n }\n /**\n * Checks to see if more fallbacks are still available.\n */\n get hasMoreFallbacks() {\n return this._currentRank <= this._maxRank;\n }\n /**\n * Removes the defines that should be removed when falling back.\n * @param currentDefines defines the current define statements for the shader.\n * @param effect defines the current effect we try to compile\n * @returns The resulting defines with defines of the current rank removed.\n */\n reduce(e, t) {\n if (this._mesh && this._mesh.computeBonesUsingShaders && this._mesh.numBoneInfluencers > 0) {\n this._mesh.computeBonesUsingShaders = !1, e = e.replace(\"#define NUM_BONE_INFLUENCERS \" + this._mesh.numBoneInfluencers, \"#define NUM_BONE_INFLUENCERS 0\"), t._bonesComputationForcedToCPU = !0;\n const i = this._mesh.getScene();\n for (let s = 0; s < i.meshes.length; s++) {\n const r = i.meshes[s];\n if (!r.material) {\n !this._mesh.material && r.computeBonesUsingShaders && r.numBoneInfluencers > 0 && (r.computeBonesUsingShaders = !1);\n continue;\n }\n if (!(!r.computeBonesUsingShaders || r.numBoneInfluencers === 0)) {\n if (r.material.getEffect() === t)\n r.computeBonesUsingShaders = !1;\n else if (r.subMeshes) {\n for (const n of r.subMeshes)\n if (n.effect === t) {\n r.computeBonesUsingShaders = !1;\n break;\n }\n }\n }\n }\n } else {\n const i = this._defines[this._currentRank];\n if (i)\n for (let s = 0; s < i.length; s++)\n e = e.replace(\"#define \" + i[s], \"\");\n this._currentRank++;\n }\n return e;\n }\n}\nclass Sc extends ue {\n constructor(e, t, i = !0) {\n super(e, t), this._normalMatrix = new O(), this._storeEffectOnSubMeshes = i;\n }\n getEffect() {\n return this._storeEffectOnSubMeshes ? this._activeEffect : super.getEffect();\n }\n isReady(e, t) {\n return e ? !this._storeEffectOnSubMeshes || !e.subMeshes || e.subMeshes.length === 0 ? !0 : this.isReadyForSubMesh(e, e.subMeshes[0], t) : !1;\n }\n _isReadyForSubMesh(e) {\n const t = e.materialDefines;\n return !!(!this.checkReadyOnEveryCall && e.effect && t && t._renderId === this.getScene().getRenderId());\n }\n /**\n * Binds the given world matrix to the active effect\n *\n * @param world the matrix to bind\n */\n bindOnlyWorldMatrix(e) {\n this._activeEffect.setMatrix(\"world\", e);\n }\n /**\n * Binds the given normal matrix to the active effect\n *\n * @param normalMatrix the matrix to bind\n */\n bindOnlyNormalMatrix(e) {\n this._activeEffect.setMatrix(\"normalMatrix\", e);\n }\n bind(e, t) {\n t && this.bindForSubMesh(e, t, t.subMeshes[0]);\n }\n _afterBind(e, t = null, i) {\n super._afterBind(e, t, i), this.getScene()._cachedEffect = t, i ? i._drawWrapper._forceRebindOnNextCall = !1 : this._drawWrapper._forceRebindOnNextCall = !1;\n }\n _mustRebind(e, t, i, s = 1) {\n return i._drawWrapper._forceRebindOnNextCall || e.isCachedMaterialInvalid(this, t, s);\n }\n dispose(e, t, i) {\n this._activeEffect = void 0, super.dispose(e, t, i);\n }\n}\nconst Um = { effect: null, subMesh: null };\nclass Or extends Sc {\n /**\n * Instantiate a new shader material.\n * The ShaderMaterial object has the necessary methods to pass data from your scene to the Vertex and Fragment Shaders and returns a material that can be applied to any mesh.\n * This returned material effects how the mesh will look based on the code in the shaders.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/shaders/shaderMaterial\n * @param name Define the name of the material in the scene\n * @param scene Define the scene the material belongs to\n * @param shaderPath Defines the route to the shader code.\n * @param options Define the options used to create the shader\n * @param storeEffectOnSubMeshes true to store effect on submeshes, false to store the effect directly in the material class.\n */\n constructor(e, t, i, s = {}, r = !0) {\n super(e, t, r), this._textures = {}, this._textureArrays = {}, this._externalTextures = {}, this._floats = {}, this._ints = {}, this._uints = {}, this._floatsArrays = {}, this._colors3 = {}, this._colors3Arrays = {}, this._colors4 = {}, this._colors4Arrays = {}, this._vectors2 = {}, this._vectors3 = {}, this._vectors4 = {}, this._quaternions = {}, this._quaternionsArrays = {}, this._matrices = {}, this._matrixArrays = {}, this._matrices3x3 = {}, this._matrices2x2 = {}, this._vectors2Arrays = {}, this._vectors3Arrays = {}, this._vectors4Arrays = {}, this._uniformBuffers = {}, this._textureSamplers = {}, this._storageBuffers = {}, this._cachedWorldViewMatrix = new O(), this._cachedWorldViewProjectionMatrix = new O(), this._multiview = !1, this._materialHelperNeedsPreviousMatrices = !1, this._shaderPath = i, this._options = {\n needAlphaBlending: !1,\n needAlphaTesting: !1,\n attributes: [\"position\", \"normal\", \"uv\"],\n uniforms: [\"worldViewProjection\"],\n uniformBuffers: [],\n samplers: [],\n externalTextures: [],\n samplerObjects: [],\n storageBuffers: [],\n defines: [],\n useClipPlane: !1,\n ...s\n };\n }\n /**\n * Gets the shader path used to define the shader code\n * It can be modified to trigger a new compilation\n */\n get shaderPath() {\n return this._shaderPath;\n }\n /**\n * Sets the shader path used to define the shader code\n * It can be modified to trigger a new compilation\n */\n set shaderPath(e) {\n this._shaderPath = e;\n }\n /**\n * Gets the options used to compile the shader.\n * They can be modified to trigger a new compilation\n */\n get options() {\n return this._options;\n }\n /**\n * is multiview set to true?\n */\n get isMultiview() {\n return this._multiview;\n }\n /**\n * Gets the current class name of the material e.g. \"ShaderMaterial\"\n * Mainly use in serialization.\n * @returns the class name\n */\n getClassName() {\n return \"ShaderMaterial\";\n }\n /**\n * Specifies if the material will require alpha blending\n * @returns a boolean specifying if alpha blending is needed\n */\n needAlphaBlending() {\n return this.alpha < 1 || this._options.needAlphaBlending;\n }\n /**\n * Specifies if this material should be rendered in alpha test mode\n * @returns a boolean specifying if an alpha test is needed.\n */\n needAlphaTesting() {\n return this._options.needAlphaTesting;\n }\n _checkUniform(e) {\n this._options.uniforms.indexOf(e) === -1 && this._options.uniforms.push(e);\n }\n /**\n * Set a texture in the shader.\n * @param name Define the name of the uniform samplers as defined in the shader\n * @param texture Define the texture to bind to this sampler\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setTexture(e, t) {\n return this._options.samplers.indexOf(e) === -1 && this._options.samplers.push(e), this._textures[e] = t, this;\n }\n /**\n * Set a texture array in the shader.\n * @param name Define the name of the uniform sampler array as defined in the shader\n * @param textures Define the list of textures to bind to this sampler\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setTextureArray(e, t) {\n return this._options.samplers.indexOf(e) === -1 && this._options.samplers.push(e), this._checkUniform(e), this._textureArrays[e] = t, this;\n }\n /**\n * Set an internal texture in the shader.\n * @param name Define the name of the uniform samplers as defined in the shader\n * @param texture Define the texture to bind to this sampler\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setExternalTexture(e, t) {\n return this._options.externalTextures.indexOf(e) === -1 && this._options.externalTextures.push(e), this._externalTextures[e] = t, this;\n }\n /**\n * Set a float in the shader.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setFloat(e, t) {\n return this._checkUniform(e), this._floats[e] = t, this;\n }\n /**\n * Set a int in the shader.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setInt(e, t) {\n return this._checkUniform(e), this._ints[e] = t, this;\n }\n /**\n * Set a unsigned int in the shader.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setUInt(e, t) {\n return this._checkUniform(e), this._uints[e] = t, this;\n }\n /**\n * Set an array of floats in the shader.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setFloats(e, t) {\n return this._checkUniform(e), this._floatsArrays[e] = t, this;\n }\n /**\n * Set a vec3 in the shader from a Color3.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setColor3(e, t) {\n return this._checkUniform(e), this._colors3[e] = t, this;\n }\n /**\n * Set a vec3 array in the shader from a Color3 array.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setColor3Array(e, t) {\n return this._checkUniform(e), this._colors3Arrays[e] = t.reduce((i, s) => (s.toArray(i, i.length), i), []), this;\n }\n /**\n * Set a vec4 in the shader from a Color4.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setColor4(e, t) {\n return this._checkUniform(e), this._colors4[e] = t, this;\n }\n /**\n * Set a vec4 array in the shader from a Color4 array.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setColor4Array(e, t) {\n return this._checkUniform(e), this._colors4Arrays[e] = t.reduce((i, s) => (s.toArray(i, i.length), i), []), this;\n }\n /**\n * Set a vec2 in the shader from a Vector2.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setVector2(e, t) {\n return this._checkUniform(e), this._vectors2[e] = t, this;\n }\n /**\n * Set a vec3 in the shader from a Vector3.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setVector3(e, t) {\n return this._checkUniform(e), this._vectors3[e] = t, this;\n }\n /**\n * Set a vec4 in the shader from a Vector4.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setVector4(e, t) {\n return this._checkUniform(e), this._vectors4[e] = t, this;\n }\n /**\n * Set a vec4 in the shader from a Quaternion.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setQuaternion(e, t) {\n return this._checkUniform(e), this._quaternions[e] = t, this;\n }\n /**\n * Set a vec4 array in the shader from a Quaternion array.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setQuaternionArray(e, t) {\n return this._checkUniform(e), this._quaternionsArrays[e] = t.reduce((i, s) => (s.toArray(i, i.length), i), []), this;\n }\n /**\n * Set a mat4 in the shader from a Matrix.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setMatrix(e, t) {\n return this._checkUniform(e), this._matrices[e] = t, this;\n }\n /**\n * Set a float32Array in the shader from a matrix array.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setMatrices(e, t) {\n this._checkUniform(e);\n const i = new Float32Array(t.length * 16);\n for (let s = 0; s < t.length; s++)\n t[s].copyToArray(i, s * 16);\n return this._matrixArrays[e] = i, this;\n }\n /**\n * Set a mat3 in the shader from a Float32Array.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setMatrix3x3(e, t) {\n return this._checkUniform(e), this._matrices3x3[e] = t, this;\n }\n /**\n * Set a mat2 in the shader from a Float32Array.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setMatrix2x2(e, t) {\n return this._checkUniform(e), this._matrices2x2[e] = t, this;\n }\n /**\n * Set a vec2 array in the shader from a number array.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setArray2(e, t) {\n return this._checkUniform(e), this._vectors2Arrays[e] = t, this;\n }\n /**\n * Set a vec3 array in the shader from a number array.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setArray3(e, t) {\n return this._checkUniform(e), this._vectors3Arrays[e] = t, this;\n }\n /**\n * Set a vec4 array in the shader from a number array.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setArray4(e, t) {\n return this._checkUniform(e), this._vectors4Arrays[e] = t, this;\n }\n /**\n * Set a uniform buffer in the shader\n * @param name Define the name of the uniform as defined in the shader\n * @param buffer Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setUniformBuffer(e, t) {\n return this._options.uniformBuffers.indexOf(e) === -1 && this._options.uniformBuffers.push(e), this._uniformBuffers[e] = t, this;\n }\n /**\n * Set a texture sampler in the shader\n * @param name Define the name of the uniform as defined in the shader\n * @param sampler Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setTextureSampler(e, t) {\n return this._options.samplerObjects.indexOf(e) === -1 && this._options.samplerObjects.push(e), this._textureSamplers[e] = t, this;\n }\n /**\n * Set a storage buffer in the shader\n * @param name Define the name of the storage buffer as defined in the shader\n * @param buffer Define the value to give to the uniform\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setStorageBuffer(e, t) {\n return this._options.storageBuffers.indexOf(e) === -1 && this._options.storageBuffers.push(e), this._storageBuffers[e] = t, this;\n }\n /**\n * Adds, removes, or replaces the specified shader define and value.\n * * setDefine(\"MY_DEFINE\", true); // enables a boolean define\n * * setDefine(\"MY_DEFINE\", \"0.5\"); // adds \"#define MY_DEFINE 0.5\" to the shader (or sets and replaces the value of any existing define with that name)\n * * setDefine(\"MY_DEFINE\", false); // disables and removes the define\n * Note if the active defines do change, the shader will be recompiled and this can be expensive.\n * @param define the define name e.g., \"OUTPUT_TO_SRGB\" or \"#define OUTPUT_TO_SRGB\". If the define was passed into the constructor already, the version used should match that, and in either case, it should not include any appended value.\n * @param value either the value of the define (e.g. a numerical value) or for booleans, true if the define should be enabled or false if it should be disabled\n * @returns the material itself allowing \"fluent\" like uniform updates\n */\n setDefine(e, t) {\n const i = e.trimEnd() + \" \", s = this.options.defines.findIndex((r) => r === e || r.startsWith(i));\n return s >= 0 && this.options.defines.splice(s, 1), (typeof t != \"boolean\" || t) && this.options.defines.push(i + t), this;\n }\n /**\n * Specifies that the submesh is ready to be used\n * @param mesh defines the mesh to check\n * @param subMesh defines which submesh to check\n * @param useInstances specifies that instances should be used\n * @returns a boolean indicating that the submesh is ready or not\n */\n isReadyForSubMesh(e, t, i) {\n return this.isReady(e, i, t);\n }\n /**\n * Checks if the material is ready to render the requested mesh\n * @param mesh Define the mesh to render\n * @param useInstances Define whether or not the material is used with instances\n * @param subMesh defines which submesh to render\n * @returns true if ready, otherwise false\n */\n isReady(e, t, i) {\n const s = i && this._storeEffectOnSubMeshes;\n if (this.isFrozen) {\n const b = s ? i._drawWrapper : this._drawWrapper;\n if (b.effect && b._wasPreviouslyReady && b._wasPreviouslyUsingInstances === t)\n return !0;\n }\n const r = this.getScene(), n = r.getEngine(), o = [], l = [], h = new Vl();\n let c = this._shaderPath, u = this._options.uniforms, d = this._options.uniformBuffers, f = this._options.samplers;\n n.getCaps().multiview && r.activeCamera && r.activeCamera.outputRenderTarget && r.activeCamera.outputRenderTarget.getViewCount() > 1 && (this._multiview = !0, o.push(\"#define MULTIVIEW\"), u.indexOf(\"viewProjection\") !== -1 && u.indexOf(\"viewProjectionR\") === -1 && u.push(\"viewProjectionR\"));\n for (let b = 0; b < this._options.defines.length; b++) {\n const S = this._options.defines[b].indexOf(\"#define\") === 0 ? this._options.defines[b] : `#define ${this._options.defines[b]}`;\n o.push(S);\n }\n for (let b = 0; b < this._options.attributes.length; b++)\n l.push(this._options.attributes[b]);\n if (e && e.isVerticesDataPresent(R.ColorKind) && (l.indexOf(R.ColorKind) === -1 && l.push(R.ColorKind), o.push(\"#define VERTEXCOLOR\")), t && (o.push(\"#define INSTANCES\"), So(l, this._materialHelperNeedsPreviousMatrices), e != null && e.hasThinInstances && (o.push(\"#define THIN_INSTANCES\"), e && e.isVerticesDataPresent(R.ColorInstanceKind) && (l.push(R.ColorInstanceKind), o.push(\"#define INSTANCESCOLOR\")))), e && e.useBones && e.computeBonesUsingShaders && e.skeleton) {\n l.push(R.MatricesIndicesKind), l.push(R.MatricesWeightsKind), e.numBoneInfluencers > 4 && (l.push(R.MatricesIndicesExtraKind), l.push(R.MatricesWeightsExtraKind));\n const b = e.skeleton;\n o.push(\"#define NUM_BONE_INFLUENCERS \" + e.numBoneInfluencers), h.addCPUSkinningFallback(0, e), b.isUsingTextureForMatrices ? (o.push(\"#define BONETEXTURE\"), u.indexOf(\"boneTextureWidth\") === -1 && u.push(\"boneTextureWidth\"), this._options.samplers.indexOf(\"boneSampler\") === -1 && this._options.samplers.push(\"boneSampler\")) : (o.push(\"#define BonesPerMesh \" + (b.bones.length + 1)), u.indexOf(\"mBones\") === -1 && u.push(\"mBones\"));\n } else\n o.push(\"#define NUM_BONE_INFLUENCERS 0\");\n let p = 0;\n const _ = e ? e.morphTargetManager : null;\n if (_) {\n const b = _.supportsUVs && o.indexOf(\"#define UV1\") !== -1, S = _.supportsTangents && o.indexOf(\"#define TANGENT\") !== -1, C = _.supportsNormals && o.indexOf(\"#define NORMAL\") !== -1;\n p = _.numMaxInfluencers || _.numInfluencers, b && o.push(\"#define MORPHTARGETS_UV\"), S && o.push(\"#define MORPHTARGETS_TANGENT\"), C && o.push(\"#define MORPHTARGETS_NORMAL\"), p > 0 && o.push(\"#define MORPHTARGETS\"), _.isUsingTextureForTargets && (o.push(\"#define MORPHTARGETS_TEXTURE\"), u.indexOf(\"morphTargetTextureIndices\") === -1 && u.push(\"morphTargetTextureIndices\"), this._options.samplers.indexOf(\"morphTargets\") === -1 && this._options.samplers.push(\"morphTargets\")), o.push(\"#define NUM_MORPH_INFLUENCERS \" + p);\n for (let P = 0; P < p; P++)\n l.push(R.PositionKind + P), C && l.push(R.NormalKind + P), S && l.push(R.TangentKind + P), b && l.push(R.UVKind + \"_\" + P);\n p > 0 && (u = u.slice(), u.push(\"morphTargetInfluences\"), u.push(\"morphTargetCount\"), u.push(\"morphTargetTextureInfo\"), u.push(\"morphTargetTextureIndices\"));\n } else\n o.push(\"#define NUM_MORPH_INFLUENCERS 0\");\n if (e) {\n const b = e.bakedVertexAnimationManager;\n b && b.isEnabled && (o.push(\"#define BAKED_VERTEX_ANIMATION_TEXTURE\"), u.indexOf(\"bakedVertexAnimationSettings\") === -1 && u.push(\"bakedVertexAnimationSettings\"), u.indexOf(\"bakedVertexAnimationTextureSizeInverted\") === -1 && u.push(\"bakedVertexAnimationTextureSizeInverted\"), u.indexOf(\"bakedVertexAnimationTime\") === -1 && u.push(\"bakedVertexAnimationTime\"), this._options.samplers.indexOf(\"bakedVertexAnimationTexture\") === -1 && this._options.samplers.push(\"bakedVertexAnimationTexture\")), cf(l, e, o);\n }\n for (const b in this._textures)\n if (!this._textures[b].isReady())\n return !1;\n e && this._shouldTurnAlphaTestOn(e) && o.push(\"#define ALPHATEST\"), this._options.useClipPlane !== !1 && (Ln(u), tl(this, r, o)), r.fogEnabled && (e != null && e.applyFog) && r.fogMode !== De.FOGMODE_NONE && (o.push(\"#define FOG\"), u.indexOf(\"view\") === -1 && u.push(\"view\"), u.indexOf(\"vFogInfos\") === -1 && u.push(\"vFogInfos\"), u.indexOf(\"vFogColor\") === -1 && u.push(\"vFogColor\")), this._useLogarithmicDepth && (o.push(\"#define LOGARITHMICDEPTH\"), u.indexOf(\"logarithmicDepthConstant\") === -1 && u.push(\"logarithmicDepthConstant\")), this.customShaderNameResolve && (u = u.slice(), d = d.slice(), f = f.slice(), c = this.customShaderNameResolve(this.name, u, d, f, o, l));\n const m = s ? i._getDrawWrapper(void 0, !0) : this._drawWrapper, x = (m == null ? void 0 : m.effect) ?? null, v = (m == null ? void 0 : m.defines) ?? null, T = o.join(`\n`);\n let E = x;\n return v !== T && (E = n.createEffect(c, {\n attributes: l,\n uniformsNames: u,\n uniformBuffersNames: d,\n samplers: f,\n defines: T,\n fallbacks: h,\n onCompiled: this.onCompiled,\n onError: this.onError,\n indexParameters: { maxSimultaneousMorphTargets: p },\n shaderLanguage: this._options.shaderLanguage\n }, n), s ? i.setEffect(E, T, this._materialContext) : m && m.setEffect(E, T), this._onEffectCreatedObservable && (Um.effect = E, Um.subMesh = i ?? (e == null ? void 0 : e.subMeshes[0]) ?? null, this._onEffectCreatedObservable.notifyObservers(Um))), m._wasPreviouslyUsingInstances = !!t, E != null && E.isReady() ? (x !== E && r.resetCachedMaterial(), m._wasPreviouslyReady = !0, !0) : !1;\n }\n /**\n * Binds the world matrix to the material\n * @param world defines the world transformation matrix\n * @param effectOverride - If provided, use this effect instead of internal effect\n */\n bindOnlyWorldMatrix(e, t) {\n const i = this.getScene(), s = t ?? this.getEffect();\n s && (this._options.uniforms.indexOf(\"world\") !== -1 && s.setMatrix(\"world\", e), this._options.uniforms.indexOf(\"worldView\") !== -1 && (e.multiplyToRef(i.getViewMatrix(), this._cachedWorldViewMatrix), s.setMatrix(\"worldView\", this._cachedWorldViewMatrix)), this._options.uniforms.indexOf(\"worldViewProjection\") !== -1 && (e.multiplyToRef(i.getTransformMatrix(), this._cachedWorldViewProjectionMatrix), s.setMatrix(\"worldViewProjection\", this._cachedWorldViewProjectionMatrix)), this._options.uniforms.indexOf(\"view\") !== -1 && s.setMatrix(\"view\", i.getViewMatrix()));\n }\n /**\n * Binds the submesh to this material by preparing the effect and shader to draw\n * @param world defines the world transformation matrix\n * @param mesh defines the mesh containing the submesh\n * @param subMesh defines the submesh to bind the material to\n */\n bindForSubMesh(e, t, i) {\n var s;\n this.bind(e, t, (s = i._drawWrapperOverride) == null ? void 0 : s.effect, i);\n }\n /**\n * Binds the material to the mesh\n * @param world defines the world transformation matrix\n * @param mesh defines the mesh to bind the material to\n * @param effectOverride - If provided, use this effect instead of internal effect\n * @param subMesh defines the submesh to bind the material to\n */\n bind(e, t, i, s) {\n var u;\n const r = s && this._storeEffectOnSubMeshes, n = i ?? (r ? s.effect : this.getEffect());\n if (!n)\n return;\n const o = this.getScene();\n this._activeEffect = n, this.bindOnlyWorldMatrix(e, i);\n const l = this._options.uniformBuffers;\n let h = !1;\n if (n && l && l.length > 0 && o.getEngine().supportsUniformBuffers)\n for (let d = 0; d < l.length; ++d)\n switch (l[d]) {\n case \"Mesh\":\n t && (t.getMeshUniformBuffer().bindToEffect(n, \"Mesh\"), t.transferToEffect(e));\n break;\n case \"Scene\":\n hf(n, o.getSceneUniformBuffer()), o.finalizeSceneUbo(), h = !0;\n break;\n }\n const c = t && r ? this._mustRebind(o, n, s, t.visibility) : o.getCachedMaterial() !== this;\n if (n && c) {\n !h && this._options.uniforms.indexOf(\"view\") !== -1 && n.setMatrix(\"view\", o.getViewMatrix()), !h && this._options.uniforms.indexOf(\"projection\") !== -1 && n.setMatrix(\"projection\", o.getProjectionMatrix()), !h && this._options.uniforms.indexOf(\"viewProjection\") !== -1 && (n.setMatrix(\"viewProjection\", o.getTransformMatrix()), this._multiview && n.setMatrix(\"viewProjectionR\", o._transformMatrixR)), o.activeCamera && this._options.uniforms.indexOf(\"cameraPosition\") !== -1 && n.setVector3(\"cameraPosition\", o.activeCamera.globalPosition), Fl(t, n), Tn(n, this, o), this._useLogarithmicDepth && Oa(r ? s.materialDefines : n.defines, n, o), t && il(o, t, n);\n let d;\n for (d in this._textures)\n n.setTexture(d, this._textures[d]);\n for (d in this._textureArrays)\n n.setTextureArray(d, this._textureArrays[d]);\n for (d in this._ints)\n n.setInt(d, this._ints[d]);\n for (d in this._uints)\n n.setUInt(d, this._uints[d]);\n for (d in this._floats)\n n.setFloat(d, this._floats[d]);\n for (d in this._floatsArrays)\n n.setArray(d, this._floatsArrays[d]);\n for (d in this._colors3)\n n.setColor3(d, this._colors3[d]);\n for (d in this._colors3Arrays)\n n.setArray3(d, this._colors3Arrays[d]);\n for (d in this._colors4) {\n const x = this._colors4[d];\n n.setFloat4(d, x.r, x.g, x.b, x.a);\n }\n for (d in this._colors4Arrays)\n n.setArray4(d, this._colors4Arrays[d]);\n for (d in this._vectors2)\n n.setVector2(d, this._vectors2[d]);\n for (d in this._vectors3)\n n.setVector3(d, this._vectors3[d]);\n for (d in this._vectors4)\n n.setVector4(d, this._vectors4[d]);\n for (d in this._quaternions)\n n.setQuaternion(d, this._quaternions[d]);\n for (d in this._matrices)\n n.setMatrix(d, this._matrices[d]);\n for (d in this._matrixArrays)\n n.setMatrices(d, this._matrixArrays[d]);\n for (d in this._matrices3x3)\n n.setMatrix3x3(d, this._matrices3x3[d]);\n for (d in this._matrices2x2)\n n.setMatrix2x2(d, this._matrices2x2[d]);\n for (d in this._vectors2Arrays)\n n.setArray2(d, this._vectors2Arrays[d]);\n for (d in this._vectors3Arrays)\n n.setArray3(d, this._vectors3Arrays[d]);\n for (d in this._vectors4Arrays)\n n.setArray4(d, this._vectors4Arrays[d]);\n for (d in this._quaternionsArrays)\n n.setArray4(d, this._quaternionsArrays[d]);\n for (d in this._uniformBuffers) {\n const x = this._uniformBuffers[d].getBuffer();\n x && n.bindUniformBuffer(x, d);\n }\n const f = o.getEngine(), p = f.setExternalTexture;\n if (p)\n for (d in this._externalTextures)\n p.call(f, d, this._externalTextures[d]);\n const _ = f.setTextureSampler;\n if (_)\n for (d in this._textureSamplers)\n _.call(f, d, this._textureSamplers[d]);\n const m = f.setStorageBuffer;\n if (m)\n for (d in this._storageBuffers)\n m.call(f, d, this._storageBuffers[d]);\n }\n if (n && t && (c || !this.isFrozen)) {\n const d = t.morphTargetManager;\n d && d.numInfluencers > 0 && na(t, n);\n const f = t.bakedVertexAnimationManager;\n if (f && f.isEnabled) {\n const p = r ? s._drawWrapper : this._drawWrapper;\n (u = t.bakedVertexAnimationManager) == null || u.bind(n, !!p._wasPreviouslyUsingInstances);\n }\n }\n this._afterBind(t, n, s);\n }\n /**\n * Gets the active textures from the material\n * @returns an array of textures\n */\n getActiveTextures() {\n const e = super.getActiveTextures();\n for (const t in this._textures)\n e.push(this._textures[t]);\n for (const t in this._textureArrays) {\n const i = this._textureArrays[t];\n for (let s = 0; s < i.length; s++)\n e.push(i[s]);\n }\n return e;\n }\n /**\n * Specifies if the material uses a texture\n * @param texture defines the texture to check against the material\n * @returns a boolean specifying if the material uses the texture\n */\n hasTexture(e) {\n if (super.hasTexture(e))\n return !0;\n for (const t in this._textures)\n if (this._textures[t] === e)\n return !0;\n for (const t in this._textureArrays) {\n const i = this._textureArrays[t];\n for (let s = 0; s < i.length; s++)\n if (i[s] === e)\n return !0;\n }\n return !1;\n }\n /**\n * Makes a duplicate of the material, and gives it a new name\n * @param name defines the new name for the duplicated material\n * @returns the cloned material\n */\n clone(e) {\n const t = Ae.Clone(() => new Or(e, this.getScene(), this._shaderPath, this._options, this._storeEffectOnSubMeshes), this);\n t.name = e, t.id = e, typeof t._shaderPath == \"object\" && (t._shaderPath = { ...t._shaderPath }), this._options = { ...this._options }, Object.keys(this._options).forEach((i) => {\n const s = this._options[i];\n Array.isArray(s) && (this._options[i] = s.slice(0));\n }), this.stencil.copyTo(t.stencil);\n for (const i in this._textures)\n t.setTexture(i, this._textures[i]);\n for (const i in this._textureArrays)\n t.setTextureArray(i, this._textureArrays[i]);\n for (const i in this._externalTextures)\n t.setExternalTexture(i, this._externalTextures[i]);\n for (const i in this._ints)\n t.setInt(i, this._ints[i]);\n for (const i in this._uints)\n t.setUInt(i, this._uints[i]);\n for (const i in this._floats)\n t.setFloat(i, this._floats[i]);\n for (const i in this._floatsArrays)\n t.setFloats(i, this._floatsArrays[i]);\n for (const i in this._colors3)\n t.setColor3(i, this._colors3[i]);\n for (const i in this._colors3Arrays)\n t._colors3Arrays[i] = this._colors3Arrays[i];\n for (const i in this._colors4)\n t.setColor4(i, this._colors4[i]);\n for (const i in this._colors4Arrays)\n t._colors4Arrays[i] = this._colors4Arrays[i];\n for (const i in this._vectors2)\n t.setVector2(i, this._vectors2[i]);\n for (const i in this._vectors3)\n t.setVector3(i, this._vectors3[i]);\n for (const i in this._vectors4)\n t.setVector4(i, this._vectors4[i]);\n for (const i in this._quaternions)\n t.setQuaternion(i, this._quaternions[i]);\n for (const i in this._quaternionsArrays)\n t._quaternionsArrays[i] = this._quaternionsArrays[i];\n for (const i in this._matrices)\n t.setMatrix(i, this._matrices[i]);\n for (const i in this._matrixArrays)\n t._matrixArrays[i] = this._matrixArrays[i].slice();\n for (const i in this._matrices3x3)\n t.setMatrix3x3(i, this._matrices3x3[i]);\n for (const i in this._matrices2x2)\n t.setMatrix2x2(i, this._matrices2x2[i]);\n for (const i in this._vectors2Arrays)\n t.setArray2(i, this._vectors2Arrays[i]);\n for (const i in this._vectors3Arrays)\n t.setArray3(i, this._vectors3Arrays[i]);\n for (const i in this._vectors4Arrays)\n t.setArray4(i, this._vectors4Arrays[i]);\n for (const i in this._uniformBuffers)\n t.setUniformBuffer(i, this._uniformBuffers[i]);\n for (const i in this._textureSamplers)\n t.setTextureSampler(i, this._textureSamplers[i]);\n for (const i in this._storageBuffers)\n t.setStorageBuffer(i, this._storageBuffers[i]);\n return t;\n }\n /**\n * Disposes the material\n * @param forceDisposeEffect specifies if effects should be forcefully disposed\n * @param forceDisposeTextures specifies if textures should be forcefully disposed\n * @param notBoundToMesh specifies if the material that is being disposed is known to be not bound to any mesh\n */\n dispose(e, t, i) {\n if (t) {\n let s;\n for (s in this._textures)\n this._textures[s].dispose();\n for (s in this._textureArrays) {\n const r = this._textureArrays[s];\n for (let n = 0; n < r.length; n++)\n r[n].dispose();\n }\n }\n this._textures = {}, super.dispose(e, t, i);\n }\n /**\n * Serializes this material in a JSON representation\n * @returns the serialized material object\n */\n serialize() {\n const e = Ae.Serialize(this);\n e.customType = \"BABYLON.ShaderMaterial\", e.uniqueId = this.uniqueId, e.options = this._options, e.shaderPath = this._shaderPath, e.storeEffectOnSubMeshes = this._storeEffectOnSubMeshes;\n let t;\n e.stencil = this.stencil.serialize(), e.textures = {};\n for (t in this._textures)\n e.textures[t] = this._textures[t].serialize();\n e.textureArrays = {};\n for (t in this._textureArrays) {\n e.textureArrays[t] = [];\n const i = this._textureArrays[t];\n for (let s = 0; s < i.length; s++)\n e.textureArrays[t].push(i[s].serialize());\n }\n e.ints = {};\n for (t in this._ints)\n e.ints[t] = this._ints[t];\n e.uints = {};\n for (t in this._uints)\n e.uints[t] = this._uints[t];\n e.floats = {};\n for (t in this._floats)\n e.floats[t] = this._floats[t];\n e.floatsArrays = {};\n for (t in this._floatsArrays)\n e.floatsArrays[t] = this._floatsArrays[t];\n e.colors3 = {};\n for (t in this._colors3)\n e.colors3[t] = this._colors3[t].asArray();\n e.colors3Arrays = {};\n for (t in this._colors3Arrays)\n e.colors3Arrays[t] = this._colors3Arrays[t];\n e.colors4 = {};\n for (t in this._colors4)\n e.colors4[t] = this._colors4[t].asArray();\n e.colors4Arrays = {};\n for (t in this._colors4Arrays)\n e.colors4Arrays[t] = this._colors4Arrays[t];\n e.vectors2 = {};\n for (t in this._vectors2)\n e.vectors2[t] = this._vectors2[t].asArray();\n e.vectors3 = {};\n for (t in this._vectors3)\n e.vectors3[t] = this._vectors3[t].asArray();\n e.vectors4 = {};\n for (t in this._vectors4)\n e.vectors4[t] = this._vectors4[t].asArray();\n e.quaternions = {};\n for (t in this._quaternions)\n e.quaternions[t] = this._quaternions[t].asArray();\n e.matrices = {};\n for (t in this._matrices)\n e.matrices[t] = this._matrices[t].asArray();\n e.matrixArray = {};\n for (t in this._matrixArrays)\n e.matrixArray[t] = this._matrixArrays[t];\n e.matrices3x3 = {};\n for (t in this._matrices3x3)\n e.matrices3x3[t] = this._matrices3x3[t];\n e.matrices2x2 = {};\n for (t in this._matrices2x2)\n e.matrices2x2[t] = this._matrices2x2[t];\n e.vectors2Arrays = {};\n for (t in this._vectors2Arrays)\n e.vectors2Arrays[t] = this._vectors2Arrays[t];\n e.vectors3Arrays = {};\n for (t in this._vectors3Arrays)\n e.vectors3Arrays[t] = this._vectors3Arrays[t];\n e.vectors4Arrays = {};\n for (t in this._vectors4Arrays)\n e.vectors4Arrays[t] = this._vectors4Arrays[t];\n e.quaternionsArrays = {};\n for (t in this._quaternionsArrays)\n e.quaternionsArrays[t] = this._quaternionsArrays[t];\n return e;\n }\n /**\n * Creates a shader material from parsed shader material data\n * @param source defines the JSON representation of the material\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @returns a new material\n */\n static Parse(e, t, i) {\n const s = Ae.Parse(() => new Or(e.name, t, e.shaderPath, e.options, e.storeEffectOnSubMeshes), e, t, i);\n let r;\n e.stencil && s.stencil.parse(e.stencil, t, i);\n for (r in e.textures)\n s.setTexture(r, X.Parse(e.textures[r], t, i));\n for (r in e.textureArrays) {\n const n = e.textureArrays[r], o = [];\n for (let l = 0; l < n.length; l++)\n o.push(X.Parse(n[l], t, i));\n s.setTextureArray(r, o);\n }\n for (r in e.ints)\n s.setInt(r, e.ints[r]);\n for (r in e.uints)\n s.setUInt(r, e.uints[r]);\n for (r in e.floats)\n s.setFloat(r, e.floats[r]);\n for (r in e.floatsArrays)\n s.setFloats(r, e.floatsArrays[r]);\n for (r in e.colors3)\n s.setColor3(r, re.FromArray(e.colors3[r]));\n for (r in e.colors3Arrays) {\n const n = e.colors3Arrays[r].reduce((o, l, h) => (h % 3 === 0 ? o.push([l]) : o[o.length - 1].push(l), o), []).map((o) => re.FromArray(o));\n s.setColor3Array(r, n);\n }\n for (r in e.colors4)\n s.setColor4(r, Ce.FromArray(e.colors4[r]));\n for (r in e.colors4Arrays) {\n const n = e.colors4Arrays[r].reduce((o, l, h) => (h % 4 === 0 ? o.push([l]) : o[o.length - 1].push(l), o), []).map((o) => Ce.FromArray(o));\n s.setColor4Array(r, n);\n }\n for (r in e.vectors2)\n s.setVector2(r, Q.FromArray(e.vectors2[r]));\n for (r in e.vectors3)\n s.setVector3(r, g.FromArray(e.vectors3[r]));\n for (r in e.vectors4)\n s.setVector4(r, Ne.FromArray(e.vectors4[r]));\n for (r in e.quaternions)\n s.setQuaternion(r, se.FromArray(e.quaternions[r]));\n for (r in e.matrices)\n s.setMatrix(r, O.FromArray(e.matrices[r]));\n for (r in e.matrixArray)\n s._matrixArrays[r] = new Float32Array(e.matrixArray[r]);\n for (r in e.matrices3x3)\n s.setMatrix3x3(r, e.matrices3x3[r]);\n for (r in e.matrices2x2)\n s.setMatrix2x2(r, e.matrices2x2[r]);\n for (r in e.vectors2Arrays)\n s.setArray2(r, e.vectors2Arrays[r]);\n for (r in e.vectors3Arrays)\n s.setArray3(r, e.vectors3Arrays[r]);\n for (r in e.vectors4Arrays)\n s.setArray4(r, e.vectors4Arrays[r]);\n for (r in e.quaternionsArrays)\n s.setArray4(r, e.quaternionsArrays[r]);\n return s;\n }\n /**\n * Creates a new ShaderMaterial from a snippet saved in a remote file\n * @param name defines the name of the ShaderMaterial to create (can be null or empty to use the one from the json data)\n * @param url defines the url to load from\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @returns a promise that will resolve to the new ShaderMaterial\n */\n static ParseFromFileAsync(e, t, i, s = \"\") {\n return new Promise((r, n) => {\n const o = new Di();\n o.addEventListener(\"readystatechange\", () => {\n if (o.readyState == 4)\n if (o.status == 200) {\n const l = JSON.parse(o.responseText), h = this.Parse(l, i || Me.LastCreatedScene, s);\n e && (h.name = e), r(h);\n } else\n n(\"Unable to load the ShaderMaterial\");\n }), o.open(\"GET\", t), o.send();\n });\n }\n /**\n * Creates a ShaderMaterial from a snippet saved by the Inspector\n * @param snippetId defines the snippet to load\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @returns a promise that will resolve to the new ShaderMaterial\n */\n static ParseFromSnippetAsync(e, t, i = \"\") {\n return new Promise((s, r) => {\n const n = new Di();\n n.addEventListener(\"readystatechange\", () => {\n if (n.readyState == 4)\n if (n.status == 200) {\n const o = JSON.parse(JSON.parse(n.responseText).jsonPayload), l = JSON.parse(o.shaderMaterial), h = this.Parse(l, t || Me.LastCreatedScene, i);\n h.snippetId = e, s(h);\n } else\n r(\"Unable to load the snippet \" + e);\n }), n.open(\"GET\", this.SnippetUrl + \"/\" + e.replace(/#/g, \"/\")), n.send();\n });\n }\n}\nOr.SnippetUrl = \"https://snippet.babylonjs.com\";\nOr.CreateFromSnippetAsync = Or.ParseFromSnippetAsync;\nU(\"BABYLON.ShaderMaterial\", Or);\nconst kw = \"clipPlaneFragmentDeclaration\", Gw = `#ifdef CLIPPLANE\nvarying float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nvarying float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nvarying float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nvarying float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nvarying float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nvarying float fClipDistance6;\n#endif\n`;\nz.IncludesShadersStore[kw] = Gw;\nconst zw = \"fogFragmentDeclaration\", Ww = `#ifdef FOG\n#define FOGMODE_NONE 0.\n#define FOGMODE_EXP 1.\n#define FOGMODE_EXP2 2.\n#define FOGMODE_LINEAR 3.\n#define E 2.71828\nuniform vec4 vFogInfos;uniform vec3 vFogColor;varying vec3 vFogDistance;float CalcFogFactor()\n{float fogCoeff=1.0;float fogStart=vFogInfos.y;float fogEnd=vFogInfos.z;float fogDensity=vFogInfos.w;float fogDistance=length(vFogDistance);if (FOGMODE_LINEAR==vFogInfos.x)\n{fogCoeff=(fogEnd-fogDistance)/(fogEnd-fogStart);}\nelse if (FOGMODE_EXP==vFogInfos.x)\n{fogCoeff=1.0/pow(E,fogDistance*fogDensity);}\nelse if (FOGMODE_EXP2==vFogInfos.x)\n{fogCoeff=1.0/pow(E,fogDistance*fogDistance*fogDensity*fogDensity);}\nreturn clamp(fogCoeff,0.0,1.0);}\n#endif\n`;\nz.IncludesShadersStore[zw] = Ww;\nconst Hw = \"clipPlaneFragment\", Xw = `#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)\nif (false) {}\n#endif\n#ifdef CLIPPLANE\nelse if (fClipDistance>0.0)\n{discard;}\n#endif\n#ifdef CLIPPLANE2\nelse if (fClipDistance2>0.0)\n{discard;}\n#endif\n#ifdef CLIPPLANE3\nelse if (fClipDistance3>0.0)\n{discard;}\n#endif\n#ifdef CLIPPLANE4\nelse if (fClipDistance4>0.0)\n{discard;}\n#endif\n#ifdef CLIPPLANE5\nelse if (fClipDistance5>0.0)\n{discard;}\n#endif\n#ifdef CLIPPLANE6\nelse if (fClipDistance6>0.0)\n{discard;}\n#endif\n`;\nz.IncludesShadersStore[Hw] = Xw;\nconst $w = \"fogFragment\", Yw = `#ifdef FOG\nfloat fog=CalcFogFactor();\n#ifdef PBR\nfog=toLinearSpace(fog);\n#endif\ncolor.rgb=mix(vFogColor,color.rgb,fog);\n#endif\n`;\nz.IncludesShadersStore[$w] = Yw;\nconst jw = \"colorPixelShader\", Kw = `#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\n#define VERTEXCOLOR\nvarying vec4 vColor;\n#else\nuniform vec4 color;\n#endif\n#include\n#include\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\ngl_FragColor=vColor;\n#else\ngl_FragColor=color;\n#endif\n#include(color,gl_FragColor)\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\nz.ShadersStore[jw] = Kw;\nconst qw = \"bonesDeclaration\", Qw = `#if NUM_BONE_INFLUENCERS>0\nattribute vec4 matricesIndices;attribute vec4 matricesWeights;\n#if NUM_BONE_INFLUENCERS>4\nattribute vec4 matricesIndicesExtra;attribute vec4 matricesWeightsExtra;\n#endif\n#ifndef BAKED_VERTEX_ANIMATION_TEXTURE\n#ifdef BONETEXTURE\nuniform highp sampler2D boneSampler;uniform float boneTextureWidth;\n#else\nuniform mat4 mBones[BonesPerMesh];\n#endif\n#ifdef BONES_VELOCITY_ENABLED\nuniform mat4 mPreviousBones[BonesPerMesh];\n#endif\n#ifdef BONETEXTURE\n#define inline\nmat4 readMatrixFromRawSampler(sampler2D smp,float index)\n{float offset=index *4.0;float dx=1.0/boneTextureWidth;vec4 m0=texture2D(smp,vec2(dx*(offset+0.5),0.));vec4 m1=texture2D(smp,vec2(dx*(offset+1.5),0.));vec4 m2=texture2D(smp,vec2(dx*(offset+2.5),0.));vec4 m3=texture2D(smp,vec2(dx*(offset+3.5),0.));return mat4(m0,m1,m2,m3);}\n#endif\n#endif\n#endif\n`;\nz.IncludesShadersStore[qw] = Qw;\nconst Zw = \"bakedVertexAnimationDeclaration\", Jw = `#ifdef BAKED_VERTEX_ANIMATION_TEXTURE\nuniform float bakedVertexAnimationTime;uniform vec2 bakedVertexAnimationTextureSizeInverted;uniform vec4 bakedVertexAnimationSettings;uniform sampler2D bakedVertexAnimationTexture;\n#ifdef INSTANCES\nattribute vec4 bakedVertexAnimationSettingsInstanced;\n#endif\n#define inline\nmat4 readMatrixFromRawSamplerVAT(sampler2D smp,float index,float frame)\n{float offset=index*4.0;float frameUV=(frame+0.5)*bakedVertexAnimationTextureSizeInverted.y;float dx=bakedVertexAnimationTextureSizeInverted.x;vec4 m0=texture2D(smp,vec2(dx*(offset+0.5),frameUV));vec4 m1=texture2D(smp,vec2(dx*(offset+1.5),frameUV));vec4 m2=texture2D(smp,vec2(dx*(offset+2.5),frameUV));vec4 m3=texture2D(smp,vec2(dx*(offset+3.5),frameUV));return mat4(m0,m1,m2,m3);}\n#endif\n`;\nz.IncludesShadersStore[Zw] = Jw;\nconst eN = \"clipPlaneVertexDeclaration\", tN = `#ifdef CLIPPLANE\nuniform vec4 vClipPlane;varying float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nuniform vec4 vClipPlane2;varying float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nuniform vec4 vClipPlane3;varying float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nuniform vec4 vClipPlane4;varying float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nuniform vec4 vClipPlane5;varying float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nuniform vec4 vClipPlane6;varying float fClipDistance6;\n#endif\n`;\nz.IncludesShadersStore[eN] = tN;\nconst iN = \"fogVertexDeclaration\", sN = `#ifdef FOG\nvarying vec3 vFogDistance;\n#endif\n`;\nz.IncludesShadersStore[iN] = sN;\nconst rN = \"instancesDeclaration\", nN = `#ifdef INSTANCES\nattribute vec4 world0;attribute vec4 world1;attribute vec4 world2;attribute vec4 world3;\n#ifdef INSTANCESCOLOR\nattribute vec4 instanceColor;\n#endif\n#if defined(THIN_INSTANCES) && !defined(WORLD_UBO)\nuniform mat4 world;\n#endif\n#if defined(VELOCITY) || defined(PREPASS_VELOCITY)\nattribute vec4 previousWorld0;attribute vec4 previousWorld1;attribute vec4 previousWorld2;attribute vec4 previousWorld3;\n#ifdef THIN_INSTANCES\nuniform mat4 previousWorld;\n#endif\n#endif\n#else\n#if !defined(WORLD_UBO)\nuniform mat4 world;\n#endif\n#if defined(VELOCITY) || defined(PREPASS_VELOCITY)\nuniform mat4 previousWorld;\n#endif\n#endif\n`;\nz.IncludesShadersStore[rN] = nN;\nconst aN = \"instancesVertex\", oN = `#ifdef INSTANCES\nmat4 finalWorld=mat4(world0,world1,world2,world3);\n#if defined(PREPASS_VELOCITY) || defined(VELOCITY)\nmat4 finalPreviousWorld=mat4(previousWorld0,previousWorld1,previousWorld2,previousWorld3);\n#endif\n#ifdef THIN_INSTANCES\nfinalWorld=world*finalWorld;\n#if defined(PREPASS_VELOCITY) || defined(VELOCITY)\nfinalPreviousWorld=previousWorld*finalPreviousWorld;\n#endif\n#endif\n#else\nmat4 finalWorld=world;\n#if defined(PREPASS_VELOCITY) || defined(VELOCITY)\nmat4 finalPreviousWorld=previousWorld;\n#endif\n#endif\n`;\nz.IncludesShadersStore[aN] = oN;\nconst lN = \"bonesVertex\", hN = `#ifndef BAKED_VERTEX_ANIMATION_TEXTURE\n#if NUM_BONE_INFLUENCERS>0\nmat4 influence;\n#ifdef BONETEXTURE\ninfluence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[0])*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[1])*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[2])*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[3])*matricesWeightsExtra[3];\n#endif\n#else\ninfluence=mBones[int(matricesIndices[0])]*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\ninfluence+=mBones[int(matricesIndices[1])]*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\ninfluence+=mBones[int(matricesIndices[2])]*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\ninfluence+=mBones[int(matricesIndices[3])]*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\ninfluence+=mBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\ninfluence+=mBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\ninfluence+=mBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\ninfluence+=mBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\n#endif\n#endif\nfinalWorld=finalWorld*influence;\n#endif\n#endif\n`;\nz.IncludesShadersStore[lN] = hN;\nconst cN = \"bakedVertexAnimation\", uN = `#ifdef BAKED_VERTEX_ANIMATION_TEXTURE\n{\n#ifdef INSTANCES\n#define BVASNAME bakedVertexAnimationSettingsInstanced\n#else\n#define BVASNAME bakedVertexAnimationSettings\n#endif\nfloat VATStartFrame=BVASNAME.x;float VATEndFrame=BVASNAME.y;float VATOffsetFrame=BVASNAME.z;float VATSpeed=BVASNAME.w;float totalFrames=VATEndFrame-VATStartFrame+1.0;float time=bakedVertexAnimationTime*VATSpeed/totalFrames;float frameCorrection=time<1.0 ? 0.0 : 1.0;float numOfFrames=totalFrames-frameCorrection;float VATFrameNum=fract(time)*numOfFrames;VATFrameNum=mod(VATFrameNum+VATOffsetFrame,numOfFrames);VATFrameNum=floor(VATFrameNum);VATFrameNum+=VATStartFrame+frameCorrection;mat4 VATInfluence;VATInfluence=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[0],VATFrameNum)*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[1],VATFrameNum)*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[2],VATFrameNum)*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[3],VATFrameNum)*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[0],VATFrameNum)*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[1],VATFrameNum)*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[2],VATFrameNum)*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[3],VATFrameNum)*matricesWeightsExtra[3];\n#endif\nfinalWorld=finalWorld*VATInfluence;}\n#endif\n`;\nz.IncludesShadersStore[cN] = uN;\nconst dN = \"clipPlaneVertex\", fN = `#ifdef CLIPPLANE\nfClipDistance=dot(worldPos,vClipPlane);\n#endif\n#ifdef CLIPPLANE2\nfClipDistance2=dot(worldPos,vClipPlane2);\n#endif\n#ifdef CLIPPLANE3\nfClipDistance3=dot(worldPos,vClipPlane3);\n#endif\n#ifdef CLIPPLANE4\nfClipDistance4=dot(worldPos,vClipPlane4);\n#endif\n#ifdef CLIPPLANE5\nfClipDistance5=dot(worldPos,vClipPlane5);\n#endif\n#ifdef CLIPPLANE6\nfClipDistance6=dot(worldPos,vClipPlane6);\n#endif\n`;\nz.IncludesShadersStore[dN] = fN;\nconst pN = \"fogVertex\", _N = `#ifdef FOG\nvFogDistance=(view*worldPos).xyz;\n#endif\n`;\nz.IncludesShadersStore[pN] = _N;\nconst mN = \"vertexColorMixing\", gN = `#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvColor=vec4(1.0);\n#ifdef VERTEXCOLOR\n#ifdef VERTEXALPHA\nvColor*=color;\n#else\nvColor.rgb*=color.rgb;\n#endif\n#endif\n#ifdef INSTANCESCOLOR\nvColor*=instanceColor;\n#endif\n#endif\n`;\nz.IncludesShadersStore[mN] = gN;\nconst xN = \"colorVertexShader\", vN = `attribute vec3 position;\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include\n#include\n#include\n#include\n#ifdef FOG\nuniform mat4 view;\n#endif\n#include\nuniform mat4 viewProjection;\n#ifdef MULTIVIEW\nuniform mat4 viewProjectionR;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvarying vec4 vColor;\n#endif\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#include\n#include\n#include\nvec4 worldPos=finalWorld*vec4(position,1.0);\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR==0u) {gl_Position=viewProjection*worldPos;} else {gl_Position=viewProjectionR*worldPos;}\n#else\ngl_Position=viewProjection*worldPos;\n#endif\n#include\n#include\n#include\n#define CUSTOM_VERTEX_MAIN_END\n}`;\nz.ShadersStore[xN] = vN;\nH._LinesMeshParser = (a, e) => Jo.Parse(a, e);\nclass Jo extends H {\n _isShaderMaterial(e) {\n return e.getClassName() === \"ShaderMaterial\";\n }\n /**\n * Creates a new LinesMesh\n * @param name defines the name\n * @param scene defines the hosting scene\n * @param parent defines the parent mesh if any\n * @param source defines the optional source LinesMesh used to clone data from\n * @param doNotCloneChildren When cloning, skip cloning child meshes of source, default False.\n * When false, achieved by calling a clone(), also passing False.\n * This will make creation of children, recursive.\n * @param useVertexColor defines if this LinesMesh supports vertex color\n * @param useVertexAlpha defines if this LinesMesh supports vertex alpha\n * @param material material to use to draw the line. If not provided, will create a new one\n */\n constructor(e, t = null, i = null, s = null, r, n, o, l) {\n super(e, t, i, s, r), this.useVertexColor = n, this.useVertexAlpha = o, this.color = new re(1, 1, 1), this.alpha = 1, s && (this.color = s.color.clone(), this.alpha = s.alpha, this.useVertexColor = s.useVertexColor, this.useVertexAlpha = s.useVertexAlpha), this.intersectionThreshold = 0.1;\n const h = [], c = {\n attributes: [R.PositionKind],\n uniforms: [\"world\", \"viewProjection\"],\n needAlphaBlending: !0,\n defines: h,\n useClipPlane: null\n };\n o === !1 ? c.needAlphaBlending = !1 : c.defines.push(\"#define VERTEXALPHA\"), n ? (c.defines.push(\"#define VERTEXCOLOR\"), c.attributes.push(R.ColorKind)) : (c.uniforms.push(\"color\"), this._color4 = new Ce()), l ? this.material = l : (this.material = new Or(\"colorShader\", this.getScene(), \"color\", c, !1), this.material.doNotSerialize = !0);\n }\n isReady() {\n return this._lineMaterial.isReady(this, !!this._userInstancedBuffersStorage || this.hasThinInstances) ? super.isReady() : !1;\n }\n /**\n * @returns the string \"LineMesh\"\n */\n getClassName() {\n return \"LinesMesh\";\n }\n /**\n * @internal\n */\n get material() {\n return this._lineMaterial;\n }\n /**\n * @internal\n */\n set material(e) {\n this._lineMaterial = e, this._lineMaterial.fillMode = ue.LineListDrawMode;\n }\n /**\n * @internal\n */\n get checkCollisions() {\n return !1;\n }\n set checkCollisions(e) {\n }\n /**\n * @internal\n */\n _bind(e, t) {\n if (!this._geometry)\n return this;\n const i = this.isUnIndexed ? null : this._geometry.getIndexBuffer();\n if (!this._userInstancedBuffersStorage || this.hasThinInstances ? this._geometry._bind(t, i) : this._geometry._bind(t, i, this._userInstancedBuffersStorage.vertexBuffers, this._userInstancedBuffersStorage.vertexArrayObjects), !this.useVertexColor && this._isShaderMaterial(this._lineMaterial)) {\n const { r: s, g: r, b: n } = this.color;\n this._color4.set(s, r, n, this.alpha), this._lineMaterial.setColor4(\"color\", this._color4);\n }\n return this;\n }\n /**\n * @internal\n */\n _draw(e, t, i) {\n if (!this._geometry || !this._geometry.getVertexBuffers() || !this._unIndexed && !this._geometry.getIndexBuffer())\n return this;\n const s = this.getScene().getEngine();\n return this._unIndexed ? s.drawArraysType(ue.LineListDrawMode, e.verticesStart, e.verticesCount, i) : s.drawElementsType(ue.LineListDrawMode, e.indexStart, e.indexCount, i), this;\n }\n /**\n * Disposes of the line mesh\n * @param doNotRecurse If children should be disposed\n * @param disposeMaterialAndTextures This parameter is not used by the LineMesh class\n * @param doNotDisposeMaterial If the material should not be disposed (default: false, meaning the material is disposed)\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dispose(e, t = !1, i) {\n i || this._lineMaterial.dispose(!1, !1, !0), super.dispose(e);\n }\n /**\n * Returns a new LineMesh object cloned from the current one.\n * @param name defines the cloned mesh name\n * @param newParent defines the new mesh parent\n * @param doNotCloneChildren if set to true, none of the mesh children are cloned (false by default)\n * @returns the new mesh\n */\n clone(e, t = null, i) {\n return new Jo(e, this.getScene(), t, this, i);\n }\n /**\n * Creates a new InstancedLinesMesh object from the mesh model.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/copies/instances\n * @param name defines the name of the new instance\n * @returns a new InstancedLinesMesh\n */\n createInstance(e) {\n const t = new S0(e, this);\n if (this.instancedBuffers) {\n t.instancedBuffers = {};\n for (const i in this.instancedBuffers)\n t.instancedBuffers[i] = this.instancedBuffers[i];\n }\n return t;\n }\n /**\n * Serializes this ground mesh\n * @param serializationObject object to write serialization to\n */\n serialize(e) {\n super.serialize(e), e.color = this.color.asArray(), e.alpha = this.alpha;\n }\n /**\n * Parses a serialized ground mesh\n * @param parsedMesh the serialized mesh\n * @param scene the scene to create the ground mesh in\n * @returns the created ground mesh\n */\n static Parse(e, t) {\n const i = new Jo(e.name, t);\n return i.color = re.FromArray(e.color), i.alpha = e.alpha, i;\n }\n}\nclass S0 extends M_ {\n constructor(e, t) {\n super(e, t), this.intersectionThreshold = t.intersectionThreshold;\n }\n /**\n * @returns the string \"InstancedLinesMesh\".\n */\n getClassName() {\n return \"InstancedLinesMesh\";\n }\n}\nfunction b0(a) {\n const e = [], t = [], i = a.lines, s = a.colors, r = [];\n let n = 0;\n for (let l = 0; l < i.length; l++) {\n const h = i[l];\n for (let c = 0; c < h.length; c++) {\n const { x: u, y: d, z: f } = h[c];\n if (t.push(u, d, f), s) {\n const p = s[l], { r: _, g: m, b: x, a: v } = p[c];\n r.push(_, m, x, v);\n }\n c > 0 && (e.push(n - 1), e.push(n)), n++;\n }\n }\n const o = new ge();\n return o.indices = e, o.positions = t, s && (o.colors = r), o;\n}\nfunction E0(a) {\n const e = a.dashSize || 3, t = a.gapSize || 1, i = a.dashNb || 200, s = a.points, r = [], n = [], o = g.Zero();\n let l = 0, h = 0, c = 0, u = 0, d = 0, f = 0, p = 0;\n for (p = 0; p < s.length - 1; p++)\n s[p + 1].subtractToRef(s[p], o), l += o.length();\n for (c = l / i, u = e * c / (e + t), p = 0; p < s.length - 1; p++) {\n s[p + 1].subtractToRef(s[p], o), h = Math.floor(o.length() / c), o.normalize();\n for (let m = 0; m < h; m++)\n d = c * m, r.push(s[p].x + d * o.x, s[p].y + d * o.y, s[p].z + d * o.z), r.push(s[p].x + (d + u) * o.x, s[p].y + (d + u) * o.y, s[p].z + (d + u) * o.z), n.push(f, f + 1), f += 2;\n }\n const _ = new ge();\n return _.positions = r, _.indices = n, _;\n}\nfunction Sh(a, e, t = null) {\n const i = e.instance, s = e.lines, r = e.colors;\n if (i) {\n const h = i.getVerticesData(R.PositionKind);\n let c, u;\n r && (c = i.getVerticesData(R.ColorKind));\n let d = 0, f = 0;\n for (let p = 0; p < s.length; p++) {\n const _ = s[p];\n for (let m = 0; m < _.length; m++)\n h[d] = _[m].x, h[d + 1] = _[m].y, h[d + 2] = _[m].z, r && c && (u = r[p], c[f] = u[m].r, c[f + 1] = u[m].g, c[f + 2] = u[m].b, c[f + 3] = u[m].a, f += 4), d += 3;\n }\n return i.updateVerticesData(R.PositionKind, h, !1, !1), r && c && i.updateVerticesData(R.ColorKind, c, !1, !1), i;\n }\n const n = !!r, o = new Jo(a, t, null, void 0, void 0, n, e.useVertexAlpha, e.material);\n return b0(e).applyToMesh(o, e.updatable), o;\n}\nfunction Wo(a, e, t = null) {\n const i = e.colors ? [e.colors] : null;\n return Sh(a, { lines: [e.points], updatable: e.updatable, instance: e.instance, colors: i, useVertexAlpha: e.useVertexAlpha, material: e.material }, t);\n}\nfunction iv(a, e, t = null) {\n const i = e.points, s = e.instance, r = e.gapSize || 1, n = e.dashSize || 3;\n if (s) {\n const h = (c) => {\n const u = g.Zero(), d = c.length / 6;\n let f = 0, p = 0, _ = 0, m = 0, x = 0, v = 0, T = 0, E = 0;\n for (T = 0; T < i.length - 1; T++)\n i[T + 1].subtractToRef(i[T], u), f += u.length();\n _ = f / d;\n const b = s._creationDataStorage.dashSize, S = s._creationDataStorage.gapSize;\n for (m = b * _ / (b + S), T = 0; T < i.length - 1; T++)\n for (i[T + 1].subtractToRef(i[T], u), p = Math.floor(u.length() / _), u.normalize(), E = 0; E < p && v < c.length; )\n x = _ * E, c[v] = i[T].x + x * u.x, c[v + 1] = i[T].y + x * u.y, c[v + 2] = i[T].z + x * u.z, c[v + 3] = i[T].x + (x + m) * u.x, c[v + 4] = i[T].y + (x + m) * u.y, c[v + 5] = i[T].z + (x + m) * u.z, v += 6, E++;\n for (; v < c.length; )\n c[v] = i[T].x, c[v + 1] = i[T].y, c[v + 2] = i[T].z, v += 3;\n };\n return (e.dashNb || e.dashSize || e.gapSize || e.useVertexAlpha || e.material) && L.Warn(\"You have used an option other than points with the instance option. Please be aware that these other options will be ignored.\"), s.updateMeshPositions(h, !1), s;\n }\n const o = new Jo(a, t, null, void 0, void 0, void 0, e.useVertexAlpha, e.material);\n return E0(e).applyToMesh(o, e.updatable), o._creationDataStorage = new qC(), o._creationDataStorage.dashSize = n, o._creationDataStorage.gapSize = r, o;\n}\nconst uK = {\n CreateDashedLines: iv,\n CreateLineSystem: Sh,\n CreateLines: Wo\n};\nge.CreateLineSystem = b0;\nge.CreateDashedLines = E0;\nH.CreateLines = (a, e, t = null, i = !1, s = null) => Wo(a, {\n points: e,\n updatable: i,\n instance: s\n}, t);\nH.CreateDashedLines = (a, e, t, i, s, r = null, n, o) => iv(a, {\n points: e,\n dashSize: t,\n gapSize: i,\n dashNb: s,\n updatable: n,\n instance: o\n}, r);\nclass TN extends Q {\n constructor(e, t) {\n super(e.x, e.y), this.index = t;\n }\n}\nclass km {\n constructor() {\n this.elements = [];\n }\n add(e) {\n const t = [];\n return e.forEach((i) => {\n const s = new TN(i, this.elements.length);\n t.push(s), this.elements.push(s);\n }), t;\n }\n computeBounds() {\n const e = new Q(this.elements[0].x, this.elements[0].y), t = new Q(this.elements[0].x, this.elements[0].y);\n return this.elements.forEach((i) => {\n i.x < e.x ? e.x = i.x : i.x > t.x && (t.x = i.x), i.y < e.y ? e.y = i.y : i.y > t.y && (t.y = i.y);\n }), {\n min: e,\n max: t,\n width: t.x - e.x,\n height: t.y - e.y\n };\n }\n}\nclass dK {\n /**\n * Creates a rectangle\n * @param xmin bottom X coord\n * @param ymin bottom Y coord\n * @param xmax top X coord\n * @param ymax top Y coord\n * @returns points that make the resulting rectangle\n */\n static Rectangle(e, t, i, s) {\n return [new Q(e, t), new Q(i, t), new Q(i, s), new Q(e, s)];\n }\n /**\n * Creates a circle\n * @param radius radius of circle\n * @param cx scale in x\n * @param cy scale in y\n * @param numberOfSides number of sides that make up the circle\n * @returns points that make the resulting circle\n */\n static Circle(e, t = 0, i = 0, s = 32) {\n const r = [];\n let n = 0;\n const o = Math.PI * 2 / s;\n for (let l = 0; l < s; l++)\n r.push(new Q(t + Math.cos(n) * e, i + Math.sin(n) * e)), n -= o;\n return r;\n }\n /**\n * Creates a polygon from input string\n * @param input Input polygon data\n * @returns the parsed points\n */\n static Parse(e) {\n const t = e.split(/[^-+eE.\\d]+/).map(parseFloat).filter((r) => !isNaN(r));\n let i;\n const s = [];\n for (i = 0; i < (t.length & 2147483646); i += 2)\n s.push(new Q(t[i], t[i + 1]));\n return s;\n }\n /**\n * Starts building a polygon from x and y coordinates\n * @param x x coordinate\n * @param y y coordinate\n * @returns the started path2\n */\n static StartingAt(e, t) {\n return lf.StartingAt(e, t);\n }\n}\nclass SN {\n _addToepoint(e) {\n for (const t of e)\n this._epoints.push(t.x, t.y);\n }\n /**\n * Creates a PolygonMeshBuilder\n * @param name name of the builder\n * @param contours Path of the polygon\n * @param scene scene to add to when creating the mesh\n * @param earcutInjection can be used to inject your own earcut reference\n */\n constructor(e, t, i, s = earcut) {\n this._points = new km(), this._outlinepoints = new km(), this._holes = new Array(), this._epoints = new Array(), this._eholes = new Array(), this.bjsEarcut = s, this._name = e, this._scene = i || Me.LastCreatedScene;\n let r;\n t instanceof lf ? r = t.getPoints() : r = t, this._addToepoint(r), this._points.add(r), this._outlinepoints.add(r), typeof this.bjsEarcut > \"u\" && L.Warn(\"Earcut was not found, the polygon will not be built.\");\n }\n /**\n * Adds a hole within the polygon\n * @param hole Array of points defining the hole\n * @returns this\n */\n addHole(e) {\n this._points.add(e);\n const t = new km();\n return t.add(e), this._holes.push(t), this._eholes.push(this._epoints.length / 2), this._addToepoint(e), this;\n }\n /**\n * Creates the polygon\n * @param updatable If the mesh should be updatable\n * @param depth The depth of the mesh created\n * @param smoothingThreshold Dot product threshold for smoothed normals\n * @returns the created mesh\n */\n build(e = !1, t = 0, i = 2) {\n const s = new H(this._name, this._scene), r = this.buildVertexData(t, i);\n return s.setVerticesData(R.PositionKind, r.positions, e), s.setVerticesData(R.NormalKind, r.normals, e), s.setVerticesData(R.UVKind, r.uvs, e), s.setIndices(r.indices), s;\n }\n /**\n * Creates the polygon\n * @param depth The depth of the mesh created\n * @param smoothingThreshold Dot product threshold for smoothed normals\n * @returns the created VertexData\n */\n buildVertexData(e = 0, t = 2) {\n const i = new ge(), s = [], r = [], n = [], o = this._points.computeBounds();\n this._points.elements.forEach((c) => {\n s.push(0, 1, 0), r.push(c.x, 0, c.y), n.push((c.x - o.min.x) / o.width, (c.y - o.min.y) / o.height);\n });\n const l = [], h = this.bjsEarcut(this._epoints, this._eholes, 2);\n for (let c = 0; c < h.length; c++)\n l.push(h[c]);\n if (e > 0) {\n const c = r.length / 3;\n this._points.elements.forEach((d) => {\n s.push(0, -1, 0), r.push(d.x, -e, d.y), n.push(1 - (d.x - o.min.x) / o.width, 1 - (d.y - o.min.y) / o.height);\n });\n const u = l.length;\n for (let d = 0; d < u; d += 3) {\n const f = l[d + 0], p = l[d + 1], _ = l[d + 2];\n l.push(_ + c), l.push(p + c), l.push(f + c);\n }\n this._addSide(r, s, n, l, o, this._outlinepoints, e, !1, t), this._holes.forEach((d) => {\n this._addSide(r, s, n, l, o, d, e, !0, t);\n });\n }\n return i.indices = l, i.positions = r, i.normals = s, i.uvs = n, i;\n }\n /**\n * Adds a side to the polygon\n * @param positions points that make the polygon\n * @param normals normals of the polygon\n * @param uvs uvs of the polygon\n * @param indices indices of the polygon\n * @param bounds bounds of the polygon\n * @param points points of the polygon\n * @param depth depth of the polygon\n * @param flip flip of the polygon\n * @param smoothingThreshold\n */\n _addSide(e, t, i, s, r, n, o, l, h) {\n let c = e.length / 3, u = 0;\n for (let d = 0; d < n.elements.length; d++) {\n const f = n.elements[d], p = n.elements[(d + 1) % n.elements.length];\n e.push(f.x, 0, f.y), e.push(f.x, -o, f.y), e.push(p.x, 0, p.y), e.push(p.x, -o, p.y);\n const _ = n.elements[(d + n.elements.length - 1) % n.elements.length], m = n.elements[(d + 2) % n.elements.length];\n let x = new g(-(p.y - f.y), 0, p.x - f.x), v = new g(-(f.y - _.y), 0, f.x - _.x), T = new g(-(m.y - p.y), 0, m.x - p.x);\n l || (x = x.scale(-1), v = v.scale(-1), T = T.scale(-1));\n const E = x.normalizeToNew();\n let b = v.normalizeToNew(), S = T.normalizeToNew();\n const C = g.Dot(b, E);\n C > h ? C < tt - 1 ? b = new g(f.x, 0, f.y).subtract(new g(p.x, 0, p.y)).normalize() : b = v.add(x).normalize() : b = E;\n const P = g.Dot(T, x);\n P > h ? P < tt - 1 ? S = new g(p.x, 0, p.y).subtract(new g(f.x, 0, f.y)).normalize() : S = T.add(x).normalize() : S = E, i.push(u / r.width, 0), i.push(u / r.width, 1), u += x.length(), i.push(u / r.width, 0), i.push(u / r.width, 1), t.push(b.x, b.y, b.z), t.push(b.x, b.y, b.z), t.push(S.x, S.y, S.z), t.push(S.x, S.y, S.z), l ? (s.push(c), s.push(c + 2), s.push(c + 1), s.push(c + 1), s.push(c + 2), s.push(c + 3)) : (s.push(c), s.push(c + 1), s.push(c + 2), s.push(c + 1), s.push(c + 3), s.push(c + 2)), c += 4;\n }\n }\n}\nfunction y0(a, e, t, i, s, r, n) {\n const o = t || new Array(3), l = i, h = [], c = n || !1;\n for (let N = 0; N < 3; N++)\n o[N] === void 0 && (o[N] = new Ne(0, 0, 1, 1)), l && l[N] === void 0 && (l[N] = new Ce(1, 1, 1, 1));\n const u = a.getVerticesData(R.PositionKind), d = a.getVerticesData(R.NormalKind), f = a.getVerticesData(R.UVKind), p = a.getIndices(), _ = u.length / 9;\n let m = 0, x = 0, v = 0, T = 0, E = 0;\n const b = [0];\n if (c)\n for (let N = _; N < u.length / 3; N += 4)\n x = u[3 * (N + 2)] - u[3 * N], v = u[3 * (N + 2) + 2] - u[3 * N + 2], T = Math.sqrt(x * x + v * v), E += T, b.push(E);\n let S = 0, C = 0;\n for (let N = 0; N < d.length; N += 3)\n Math.abs(d[N + 1]) < 1e-3 && (C = 1), Math.abs(d[N + 1] - 1) < 1e-3 && (C = 0), Math.abs(d[N + 1] + 1) < 1e-3 && (C = 2), S = N / 3, C === 1 ? (m = S - _, m % 4 < 1.5 ? c ? f[2 * S] = o[C].x + (o[C].z - o[C].x) * b[Math.floor(m / 4)] / E : f[2 * S] = o[C].x : c ? f[2 * S] = o[C].x + (o[C].z - o[C].x) * b[Math.floor(m / 4) + 1] / E : f[2 * S] = o[C].z, m % 2 === 0 ? f[2 * S + 1] = At.UseOpenGLOrientationForUV ? 1 - o[C].w : o[C].w : f[2 * S + 1] = At.UseOpenGLOrientationForUV ? 1 - o[C].y : o[C].y) : (f[2 * S] = (1 - f[2 * S]) * o[C].x + f[2 * S] * o[C].z, f[2 * S + 1] = (1 - f[2 * S + 1]) * o[C].y + f[2 * S + 1] * o[C].w, At.UseOpenGLOrientationForUV && (f[2 * S + 1] = 1 - f[2 * S + 1])), l && h.push(l[C].r, l[C].g, l[C].b, l[C].a);\n ge._ComputeSides(e, u, p, d, f, s, r);\n const P = new ge();\n if (P.indices = p, P.positions = u, P.normals = d, P.uvs = f, l) {\n const N = e === ge.DOUBLESIDE ? h.concat(h) : h;\n P.colors = N;\n }\n return P;\n}\nfunction D_(a, e, t = null, i = earcut) {\n e.sideOrientation = H._GetDefaultSideOrientation(e.sideOrientation);\n const s = e.shape, r = e.holes || [], n = e.depth || 0, o = e.smoothingThreshold || 2, l = [];\n let h = [];\n for (let p = 0; p < s.length; p++)\n l[p] = new Q(s[p].x, s[p].z);\n l[0].equalsWithEpsilon(l[l.length - 1], 1e-8) && l.pop();\n const u = new SN(a, l, t || Me.LastCreatedScene, i);\n for (let p = 0; p < r.length; p++) {\n h = [];\n for (let _ = 0; _ < r[p].length; _++)\n h.push(new Q(r[p][_].x, r[p][_].z));\n u.addHole(h);\n }\n const d = u.build(!1, n, o);\n return d._originalBuilderSideOrientation = e.sideOrientation, y0(d, e.sideOrientation, e.faceUV, e.faceColors, e.frontUVs, e.backUVs, e.wrap).applyToMesh(d, e.updatable), d;\n}\nfunction O_(a, e, t = null, i = earcut) {\n return D_(a, e, t, i);\n}\nconst fK = {\n ExtrudePolygon: O_,\n CreatePolygon: D_\n};\nge.CreatePolygon = y0;\nH.CreatePolygon = (a, e, t, i, s, r, n = earcut) => D_(a, {\n shape: e,\n holes: i,\n updatable: s,\n sideOrientation: r\n}, t, n);\nH.ExtrudePolygon = (a, e, t, i, s, r, n, o = earcut) => O_(a, {\n shape: e,\n holes: s,\n depth: t,\n updatable: r,\n sideOrientation: n\n}, i, o);\nfunction w_(a, e, t = null) {\n const i = e.path, s = e.shape, r = e.scale || 1, n = e.rotation || 0, o = e.cap === 0 ? 0 : e.cap || H.NO_CAP, l = e.updatable, h = H._GetDefaultSideOrientation(e.sideOrientation), c = e.instance || null, u = e.invertUV || !1, d = e.closeShape || !1, f = e.closePath || !1;\n return C0(a, s, i, r, n, null, null, f, d, o, !1, t, !!l, h, c, u, e.frontUVs || null, e.backUVs || null, e.firstNormal || null, !!e.adjustFrame);\n}\nfunction N_(a, e, t = null) {\n const i = e.path, s = e.shape, r = e.scaleFunction || (() => 1), n = e.rotationFunction || (() => 0), o = e.closePath || e.ribbonCloseArray || !1, l = e.closeShape || e.ribbonClosePath || !1, h = e.cap === 0 ? 0 : e.cap || H.NO_CAP, c = e.updatable, u = e.firstNormal || null, d = e.adjustFrame || !1, f = H._GetDefaultSideOrientation(e.sideOrientation), p = e.instance, _ = e.invertUV || !1;\n return C0(a, s, i, null, null, r, n, o, l, h, !0, t, !!c, f, p || null, _, e.frontUVs || null, e.backUVs || null, u, d);\n}\nfunction C0(a, e, t, i, s, r, n, o, l, h, c, u, d, f, p, _, m, x, v, T) {\n const E = (N, F, $, j, ne, te, le, _e, Se, Ie, de) => {\n const Y = $.getTangents(), M = $.getNormals(), k = $.getBinormals(), W = $.getDistances();\n if (de) {\n for (let Ee = 0; Ee < Y.length; Ee++)\n if (Y[Ee].x == 0 && Y[Ee].y == 0 && Y[Ee].z == 0 && Y[Ee].copyFrom(Y[Ee - 1]), M[Ee].x == 0 && M[Ee].y == 0 && M[Ee].z == 0 && M[Ee].copyFrom(M[Ee - 1]), k[Ee].x == 0 && k[Ee].y == 0 && k[Ee].z == 0 && k[Ee].copyFrom(k[Ee - 1]), Ee > 0) {\n let Je = Y[Ee - 1];\n g.Dot(Je, Y[Ee]) < 0 && Y[Ee].scaleInPlace(-1), Je = M[Ee - 1], g.Dot(Je, M[Ee]) < 0 && M[Ee].scaleInPlace(-1), Je = k[Ee - 1], g.Dot(Je, k[Ee]) < 0 && k[Ee].scaleInPlace(-1);\n }\n }\n let V = 0;\n const K = () => ne !== null ? ne : 1, fe = Ie && _e ? _e : () => te !== null ? te : 0, pe = Ie && le ? le : K;\n let ve = Se === H.NO_CAP || Se === H.CAP_END ? 0 : 2;\n const Ue = w.Matrix[0];\n for (let Ee = 0; Ee < F.length; Ee++) {\n const Je = [], St = fe(Ee, W[Ee]), Yt = pe(Ee, W[Ee]);\n O.RotationAxisToRef(Y[Ee], V, Ue);\n for (let yt = 0; yt < N.length; yt++) {\n const Ui = Y[Ee].scale(N[yt].z).add(M[Ee].scale(N[yt].x)).add(k[Ee].scale(N[yt].y)), is = g.Zero();\n g.TransformCoordinatesToRef(Ui, Ue, is), is.scaleInPlace(Yt).addInPlace(F[Ee]), Je[yt] = is;\n }\n j[ve] = Je, V += St, ve++;\n }\n const ht = (Ee) => {\n const Je = Array(), St = g.Zero();\n let Yt;\n for (Yt = 0; Yt < Ee.length; Yt++)\n St.addInPlace(Ee[Yt]);\n for (St.scaleInPlace(1 / Ee.length), Yt = 0; Yt < Ee.length; Yt++)\n Je.push(St);\n return Je;\n };\n switch (Se) {\n case H.NO_CAP:\n break;\n case H.CAP_START:\n j[0] = ht(j[2]), j[1] = j[2];\n break;\n case H.CAP_END:\n j[ve] = j[ve - 1], j[ve + 1] = ht(j[ve - 1]);\n break;\n case H.CAP_ALL:\n j[0] = ht(j[2]), j[1] = j[2], j[ve] = j[ve - 1], j[ve + 1] = ht(j[ve - 1]);\n break;\n }\n return j;\n };\n let b, S;\n if (p) {\n const N = p._creationDataStorage;\n return b = v ? N.path3D.update(t, v) : N.path3D.update(t), S = E(e, t, N.path3D, N.pathArray, i, s, r, n, N.cap, c, T), p = Zo(\"\", { pathArray: S, closeArray: !1, closePath: !1, offset: 0, updatable: !1, sideOrientation: 0, instance: p }, u || void 0), p;\n }\n b = v ? new vu(t, v) : new vu(t);\n const C = new Array();\n h = h < 0 || h > 3 ? 0 : h, S = E(e, t, b, C, i, s, r, n, h, c, T);\n const P = Zo(a, {\n pathArray: S,\n closeArray: o,\n closePath: l,\n updatable: d,\n sideOrientation: f,\n invertUV: _,\n frontUVs: m || void 0,\n backUVs: x || void 0\n }, u);\n return P._creationDataStorage.pathArray = S, P._creationDataStorage.path3D = b, P._creationDataStorage.cap = h, P;\n}\nconst pK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n ExtrudeShape: w_,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n ExtrudeShapeCustom: N_\n};\nH.ExtrudeShape = (a, e, t, i, s, r, n = null, o, l, h) => {\n const c = {\n shape: e,\n path: t,\n scale: i,\n rotation: s,\n cap: r === 0 ? 0 : r || H.NO_CAP,\n sideOrientation: l,\n instance: h,\n updatable: o\n };\n return w_(a, c, n);\n};\nH.ExtrudeShapeCustom = (a, e, t, i, s, r, n, o, l, h, c, u) => {\n const d = {\n shape: e,\n path: t,\n scaleFunction: i,\n rotationFunction: s,\n ribbonCloseArray: r,\n ribbonClosePath: n,\n cap: o === 0 ? 0 : o || H.NO_CAP,\n sideOrientation: c,\n instance: u,\n updatable: h\n };\n return N_(a, d, l);\n};\nfunction sv(a, e, t = null) {\n const i = e.arc ? e.arc <= 0 || e.arc > 1 ? 1 : e.arc : 1, s = e.closed === void 0 ? !0 : e.closed, r = e.shape, n = e.radius || 1, o = e.tessellation || 64, l = e.clip || 0, h = e.updatable, c = H._GetDefaultSideOrientation(e.sideOrientation), u = e.cap || H.NO_CAP, d = Math.PI * 2, f = [], p = e.invertUV || !1;\n let _ = 0, m = 0;\n const x = d / o * i;\n let v, T;\n for (_ = 0; _ <= o - l; _++) {\n for (T = [], (u == H.CAP_START || u == H.CAP_ALL) && (T.push(new g(0, r[0].y, 0)), T.push(new g(Math.cos(_ * x) * r[0].x * n, r[0].y, Math.sin(_ * x) * r[0].x * n))), m = 0; m < r.length; m++)\n v = new g(Math.cos(_ * x) * r[m].x * n, r[m].y, Math.sin(_ * x) * r[m].x * n), T.push(v);\n (u == H.CAP_END || u == H.CAP_ALL) && (T.push(new g(Math.cos(_ * x) * r[r.length - 1].x * n, r[r.length - 1].y, Math.sin(_ * x) * r[r.length - 1].x * n)), T.push(new g(0, r[r.length - 1].y, 0))), f.push(T);\n }\n return Zo(a, { pathArray: f, closeArray: s, sideOrientation: c, updatable: h, invertUV: p, frontUVs: e.frontUVs, backUVs: e.backUVs }, t);\n}\nconst _K = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateLathe: sv\n};\nH.CreateLathe = (a, e, t, i, s, r, n) => sv(a, {\n shape: e,\n radius: t,\n tessellation: i,\n sideOrientation: n,\n updatable: r\n}, s);\nfunction rv(a) {\n const e = [], t = [], i = [], s = [], r = a.width || a.size || 1, n = a.height || a.size || 1, o = a.sideOrientation === 0 ? 0 : a.sideOrientation || ge.DEFAULTSIDE, l = r / 2, h = n / 2;\n t.push(-l, -h, 0), i.push(0, 0, -1), s.push(0, At.UseOpenGLOrientationForUV ? 1 : 0), t.push(l, -h, 0), i.push(0, 0, -1), s.push(1, At.UseOpenGLOrientationForUV ? 1 : 0), t.push(l, h, 0), i.push(0, 0, -1), s.push(1, At.UseOpenGLOrientationForUV ? 0 : 1), t.push(-l, h, 0), i.push(0, 0, -1), s.push(0, At.UseOpenGLOrientationForUV ? 0 : 1), e.push(0), e.push(1), e.push(2), e.push(0), e.push(2), e.push(3), ge._ComputeSides(o, t, e, i, s, a.frontUVs, a.backUVs);\n const c = new ge();\n return c.indices = e, c.positions = t, c.normals = i, c.uvs = s, c;\n}\nfunction Ul(a, e = {}, t = null) {\n const i = new H(a, t);\n return e.sideOrientation = H._GetDefaultSideOrientation(e.sideOrientation), i._originalBuilderSideOrientation = e.sideOrientation, rv(e).applyToMesh(i, e.updatable), e.sourcePlane && (i.translate(e.sourcePlane.normal, -e.sourcePlane.d), i.setDirection(e.sourcePlane.normal.scale(-1))), i;\n}\nconst mK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreatePlane: Ul\n};\nge.CreatePlane = rv;\nH.CreatePlane = (a, e, t, i, s) => Ul(a, {\n size: e,\n width: e,\n height: e,\n sideOrientation: s,\n updatable: i\n}, t);\nfunction nv(a, e, t = null) {\n const i = e.path;\n let s = e.instance, r = 1;\n e.radius !== void 0 ? r = e.radius : s && (r = s._creationDataStorage.radius);\n const n = e.tessellation || 64, o = e.radiusFunction || null;\n let l = e.cap || H.NO_CAP;\n const h = e.invertUV || !1, c = e.updatable, u = H._GetDefaultSideOrientation(e.sideOrientation);\n e.arc = e.arc && (e.arc <= 0 || e.arc > 1) ? 1 : e.arc || 1;\n const d = (x, v, T, E, b, S, C, P) => {\n const N = v.getTangents(), F = v.getNormals(), $ = v.getDistances(), ne = Math.PI * 2 / b * P, le = S || (() => E);\n let _e, Se, Ie, de;\n const Y = w.Matrix[0];\n let M = C === H.NO_CAP || C === H.CAP_END ? 0 : 2;\n for (let W = 0; W < x.length; W++) {\n Se = le(W, $[W]), _e = Array(), Ie = F[W];\n for (let V = 0; V < b; V++)\n O.RotationAxisToRef(N[W], ne * V, Y), de = _e[V] ? _e[V] : g.Zero(), g.TransformCoordinatesToRef(Ie, Y, de), de.scaleInPlace(Se).addInPlace(x[W]), _e[V] = de;\n T[M] = _e, M++;\n }\n const k = (W, V) => {\n const K = Array();\n for (let ie = 0; ie < W; ie++)\n K.push(x[V]);\n return K;\n };\n switch (C) {\n case H.NO_CAP:\n break;\n case H.CAP_START:\n T[0] = k(b, 0), T[1] = T[2].slice(0);\n break;\n case H.CAP_END:\n T[M] = T[M - 1].slice(0), T[M + 1] = k(b, x.length - 1);\n break;\n case H.CAP_ALL:\n T[0] = k(b, 0), T[1] = T[2].slice(0), T[M] = T[M - 1].slice(0), T[M + 1] = k(b, x.length - 1);\n break;\n }\n return T;\n };\n let f, p;\n if (s) {\n const x = s._creationDataStorage, v = e.arc || x.arc;\n return f = x.path3D.update(i), p = d(i, f, x.pathArray, r, x.tessellation, o, x.cap, v), s = Zo(\"\", { pathArray: p, instance: s }), x.path3D = f, x.pathArray = p, x.arc = v, x.radius = r, s;\n }\n f = new vu(i);\n const _ = new Array();\n l = l < 0 || l > 3 ? 0 : l, p = d(i, f, _, r, n, o, l, e.arc);\n const m = Zo(a, {\n pathArray: p,\n closePath: !0,\n closeArray: !1,\n updatable: c,\n sideOrientation: u,\n invertUV: h,\n frontUVs: e.frontUVs,\n backUVs: e.backUVs\n }, t);\n return m._creationDataStorage.pathArray = p, m._creationDataStorage.path3D = f, m._creationDataStorage.tessellation = n, m._creationDataStorage.cap = l, m._creationDataStorage.arc = e.arc, m._creationDataStorage.radius = r, m;\n}\nconst gK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateTube: nv\n};\nH.CreateTube = (a, e, t, i, s, r, n, o, l, h) => nv(a, {\n path: e,\n radius: t,\n tessellation: i,\n radiusFunction: s,\n arc: 1,\n cap: r,\n updatable: o,\n sideOrientation: l,\n instance: h\n}, n);\nfunction A0(a) {\n const e = [];\n e[0] = {\n vertex: [\n [0, 0, 1.732051],\n [1.632993, 0, -0.5773503],\n [-0.8164966, 1.414214, -0.5773503],\n [-0.8164966, -1.414214, -0.5773503]\n ],\n face: [\n [0, 1, 2],\n [0, 2, 3],\n [0, 3, 1],\n [1, 3, 2]\n ]\n }, e[1] = {\n vertex: [\n [0, 0, 1.414214],\n [1.414214, 0, 0],\n [0, 1.414214, 0],\n [-1.414214, 0, 0],\n [0, -1.414214, 0],\n [0, 0, -1.414214]\n ],\n face: [\n [0, 1, 2],\n [0, 2, 3],\n [0, 3, 4],\n [0, 4, 1],\n [1, 4, 5],\n [1, 5, 2],\n [2, 5, 3],\n [3, 5, 4]\n ]\n }, e[2] = {\n vertex: [\n [0, 0, 1.070466],\n [0.7136442, 0, 0.7978784],\n [-0.3568221, 0.618034, 0.7978784],\n [-0.3568221, -0.618034, 0.7978784],\n [0.7978784, 0.618034, 0.3568221],\n [0.7978784, -0.618034, 0.3568221],\n [-0.9341724, 0.381966, 0.3568221],\n [0.1362939, 1, 0.3568221],\n [0.1362939, -1, 0.3568221],\n [-0.9341724, -0.381966, 0.3568221],\n [0.9341724, 0.381966, -0.3568221],\n [0.9341724, -0.381966, -0.3568221],\n [-0.7978784, 0.618034, -0.3568221],\n [-0.1362939, 1, -0.3568221],\n [-0.1362939, -1, -0.3568221],\n [-0.7978784, -0.618034, -0.3568221],\n [0.3568221, 0.618034, -0.7978784],\n [0.3568221, -0.618034, -0.7978784],\n [-0.7136442, 0, -0.7978784],\n [0, 0, -1.070466]\n ],\n face: [\n [0, 1, 4, 7, 2],\n [0, 2, 6, 9, 3],\n [0, 3, 8, 5, 1],\n [1, 5, 11, 10, 4],\n [2, 7, 13, 12, 6],\n [3, 9, 15, 14, 8],\n [4, 10, 16, 13, 7],\n [5, 8, 14, 17, 11],\n [6, 12, 18, 15, 9],\n [10, 11, 17, 19, 16],\n [12, 13, 16, 19, 18],\n [14, 15, 18, 19, 17]\n ]\n }, e[3] = {\n vertex: [\n [0, 0, 1.175571],\n [1.051462, 0, 0.5257311],\n [0.3249197, 1, 0.5257311],\n [-0.8506508, 0.618034, 0.5257311],\n [-0.8506508, -0.618034, 0.5257311],\n [0.3249197, -1, 0.5257311],\n [0.8506508, 0.618034, -0.5257311],\n [0.8506508, -0.618034, -0.5257311],\n [-0.3249197, 1, -0.5257311],\n [-1.051462, 0, -0.5257311],\n [-0.3249197, -1, -0.5257311],\n [0, 0, -1.175571]\n ],\n face: [\n [0, 1, 2],\n [0, 2, 3],\n [0, 3, 4],\n [0, 4, 5],\n [0, 5, 1],\n [1, 5, 7],\n [1, 7, 6],\n [1, 6, 2],\n [2, 6, 8],\n [2, 8, 3],\n [3, 8, 9],\n [3, 9, 4],\n [4, 9, 10],\n [4, 10, 5],\n [5, 10, 7],\n [6, 7, 11],\n [6, 11, 8],\n [7, 10, 11],\n [8, 11, 9],\n [9, 11, 10]\n ]\n }, e[4] = {\n vertex: [\n [0, 0, 1.070722],\n [0.7148135, 0, 0.7971752],\n [-0.104682, 0.7071068, 0.7971752],\n [-0.6841528, 0.2071068, 0.7971752],\n [-0.104682, -0.7071068, 0.7971752],\n [0.6101315, 0.7071068, 0.5236279],\n [1.04156, 0.2071068, 0.1367736],\n [0.6101315, -0.7071068, 0.5236279],\n [-0.3574067, 1, 0.1367736],\n [-0.7888348, -0.5, 0.5236279],\n [-0.9368776, 0.5, 0.1367736],\n [-0.3574067, -1, 0.1367736],\n [0.3574067, 1, -0.1367736],\n [0.9368776, -0.5, -0.1367736],\n [0.7888348, 0.5, -0.5236279],\n [0.3574067, -1, -0.1367736],\n [-0.6101315, 0.7071068, -0.5236279],\n [-1.04156, -0.2071068, -0.1367736],\n [-0.6101315, -0.7071068, -0.5236279],\n [0.104682, 0.7071068, -0.7971752],\n [0.6841528, -0.2071068, -0.7971752],\n [0.104682, -0.7071068, -0.7971752],\n [-0.7148135, 0, -0.7971752],\n [0, 0, -1.070722]\n ],\n face: [\n [0, 2, 3],\n [1, 6, 5],\n [4, 9, 11],\n [7, 15, 13],\n [8, 16, 10],\n [12, 14, 19],\n [17, 22, 18],\n [20, 21, 23],\n [0, 1, 5, 2],\n [0, 3, 9, 4],\n [0, 4, 7, 1],\n [1, 7, 13, 6],\n [2, 5, 12, 8],\n [2, 8, 10, 3],\n [3, 10, 17, 9],\n [4, 11, 15, 7],\n [5, 6, 14, 12],\n [6, 13, 20, 14],\n [8, 12, 19, 16],\n [9, 17, 18, 11],\n [10, 16, 22, 17],\n [11, 18, 21, 15],\n [13, 15, 21, 20],\n [14, 20, 23, 19],\n [16, 19, 23, 22],\n [18, 22, 23, 21]\n ]\n }, e[5] = {\n vertex: [\n [0, 0, 1.322876],\n [1.309307, 0, 0.1889822],\n [-0.9819805, 0.8660254, 0.1889822],\n [0.1636634, -1.299038, 0.1889822],\n [0.3273268, 0.8660254, -0.9449112],\n [-0.8183171, -0.4330127, -0.9449112]\n ],\n face: [\n [0, 3, 1],\n [2, 4, 5],\n [0, 1, 4, 2],\n [0, 2, 5, 3],\n [1, 3, 5, 4]\n ]\n }, e[6] = {\n vertex: [\n [0, 0, 1.159953],\n [1.013464, 0, 0.5642542],\n [-0.3501431, 0.9510565, 0.5642542],\n [-0.7715208, -0.6571639, 0.5642542],\n [0.6633206, 0.9510565, -0.03144481],\n [0.8682979, -0.6571639, -0.3996071],\n [-1.121664, 0.2938926, -0.03144481],\n [-0.2348831, -1.063314, -0.3996071],\n [0.5181548, 0.2938926, -0.9953061],\n [-0.5850262, -0.112257, -0.9953061]\n ],\n face: [\n [0, 1, 4, 2],\n [0, 2, 6, 3],\n [1, 5, 8, 4],\n [3, 6, 9, 7],\n [5, 7, 9, 8],\n [0, 3, 7, 5, 1],\n [2, 4, 8, 9, 6]\n ]\n }, e[7] = {\n vertex: [\n [0, 0, 1.118034],\n [0.8944272, 0, 0.6708204],\n [-0.2236068, 0.8660254, 0.6708204],\n [-0.7826238, -0.4330127, 0.6708204],\n [0.6708204, 0.8660254, 0.2236068],\n [1.006231, -0.4330127, -0.2236068],\n [-1.006231, 0.4330127, 0.2236068],\n [-0.6708204, -0.8660254, -0.2236068],\n [0.7826238, 0.4330127, -0.6708204],\n [0.2236068, -0.8660254, -0.6708204],\n [-0.8944272, 0, -0.6708204],\n [0, 0, -1.118034]\n ],\n face: [\n [0, 1, 4, 2],\n [0, 2, 6, 3],\n [1, 5, 8, 4],\n [3, 6, 10, 7],\n [5, 9, 11, 8],\n [7, 10, 11, 9],\n [0, 3, 7, 9, 5, 1],\n [2, 4, 8, 11, 10, 6]\n ]\n }, e[8] = {\n vertex: [\n [-0.729665, 0.670121, 0.319155],\n [-0.655235, -0.29213, -0.754096],\n [-0.093922, -0.607123, 0.537818],\n [0.702196, 0.595691, 0.485187],\n [0.776626, -0.36656, -0.588064]\n ],\n face: [\n [1, 4, 2],\n [0, 1, 2],\n [3, 0, 2],\n [4, 3, 2],\n [4, 1, 0, 3]\n ]\n }, e[9] = {\n vertex: [\n [-0.868849, -0.100041, 0.61257],\n [-0.329458, 0.976099, 0.28078],\n [-0.26629, -0.013796, -0.477654],\n [-0.13392, -1.034115, 0.229829],\n [0.738834, 0.707117, -0.307018],\n [0.859683, -0.535264, -0.338508]\n ],\n face: [\n [3, 0, 2],\n [5, 3, 2],\n [4, 5, 2],\n [1, 4, 2],\n [0, 1, 2],\n [0, 3, 5, 4, 1]\n ]\n }, e[10] = {\n vertex: [\n [-0.610389, 0.243975, 0.531213],\n [-0.187812, -0.48795, -0.664016],\n [-0.187812, 0.9759, -0.664016],\n [0.187812, -0.9759, 0.664016],\n [0.798201, 0.243975, 0.132803]\n ],\n face: [\n [1, 3, 0],\n [3, 4, 0],\n [3, 1, 4],\n [0, 2, 1],\n [0, 4, 2],\n [2, 4, 1]\n ]\n }, e[11] = {\n vertex: [\n [-1.028778, 0.392027, -0.048786],\n [-0.640503, -0.646161, 0.621837],\n [-0.125162, -0.395663, -0.540059],\n [4683e-6, 0.888447, -0.651988],\n [0.125161, 0.395663, 0.540059],\n [0.632925, -0.791376, 0.433102],\n [1.031672, 0.157063, -0.354165]\n ],\n face: [\n [3, 2, 0],\n [2, 1, 0],\n [2, 5, 1],\n [0, 4, 3],\n [0, 1, 4],\n [4, 1, 5],\n [2, 3, 6],\n [3, 4, 6],\n [5, 2, 6],\n [4, 5, 6]\n ]\n }, e[12] = {\n vertex: [\n [-0.669867, 0.334933, -0.529576],\n [-0.669867, 0.334933, 0.529577],\n [-0.4043, 1.212901, 0],\n [-0.334933, -0.669867, -0.529576],\n [-0.334933, -0.669867, 0.529577],\n [0.334933, 0.669867, -0.529576],\n [0.334933, 0.669867, 0.529577],\n [0.4043, -1.212901, 0],\n [0.669867, -0.334933, -0.529576],\n [0.669867, -0.334933, 0.529577]\n ],\n face: [\n [8, 9, 7],\n [6, 5, 2],\n [3, 8, 7],\n [5, 0, 2],\n [4, 3, 7],\n [0, 1, 2],\n [9, 4, 7],\n [1, 6, 2],\n [9, 8, 5, 6],\n [8, 3, 0, 5],\n [3, 4, 1, 0],\n [4, 9, 6, 1]\n ]\n }, e[13] = {\n vertex: [\n [-0.931836, 0.219976, -0.264632],\n [-0.636706, 0.318353, 0.692816],\n [-0.613483, -0.735083, -0.264632],\n [-0.326545, 0.979634, 0],\n [-0.318353, -0.636706, 0.692816],\n [-0.159176, 0.477529, -0.856368],\n [0.159176, -0.477529, -0.856368],\n [0.318353, 0.636706, 0.692816],\n [0.326545, -0.979634, 0],\n [0.613482, 0.735082, -0.264632],\n [0.636706, -0.318353, 0.692816],\n [0.931835, -0.219977, -0.264632]\n ],\n face: [\n [11, 10, 8],\n [7, 9, 3],\n [6, 11, 8],\n [9, 5, 3],\n [2, 6, 8],\n [5, 0, 3],\n [4, 2, 8],\n [0, 1, 3],\n [10, 4, 8],\n [1, 7, 3],\n [10, 11, 9, 7],\n [11, 6, 5, 9],\n [6, 2, 0, 5],\n [2, 4, 1, 0],\n [4, 10, 7, 1]\n ]\n }, e[14] = {\n vertex: [\n [-0.93465, 0.300459, -0.271185],\n [-0.838689, -0.260219, -0.516017],\n [-0.711319, 0.717591, 0.128359],\n [-0.710334, -0.156922, 0.080946],\n [-0.599799, 0.556003, -0.725148],\n [-0.503838, -4675e-6, -0.969981],\n [-0.487004, 0.26021, 0.48049],\n [-0.460089, -0.750282, -0.512622],\n [-0.376468, 0.973135, -0.325605],\n [-0.331735, -0.646985, 0.084342],\n [-0.254001, 0.831847, 0.530001],\n [-0.125239, -0.494738, -0.966586],\n [0.029622, 0.027949, 0.730817],\n [0.056536, -0.982543, -0.262295],\n [0.08085, 1.087391, 0.076037],\n [0.125583, -0.532729, 0.485984],\n [0.262625, 0.599586, 0.780328],\n [0.391387, -0.726999, -0.716259],\n [0.513854, -0.868287, 0.139347],\n [0.597475, 0.85513, 0.326364],\n [0.641224, 0.109523, 0.783723],\n [0.737185, -0.451155, 0.538891],\n [0.848705, -0.612742, -0.314616],\n [0.976075, 0.365067, 0.32976],\n [1.072036, -0.19561, 0.084927]\n ],\n face: [\n [15, 18, 21],\n [12, 20, 16],\n [6, 10, 2],\n [3, 0, 1],\n [9, 7, 13],\n [2, 8, 4, 0],\n [0, 4, 5, 1],\n [1, 5, 11, 7],\n [7, 11, 17, 13],\n [13, 17, 22, 18],\n [18, 22, 24, 21],\n [21, 24, 23, 20],\n [20, 23, 19, 16],\n [16, 19, 14, 10],\n [10, 14, 8, 2],\n [15, 9, 13, 18],\n [12, 15, 21, 20],\n [6, 12, 16, 10],\n [3, 6, 2, 0],\n [9, 3, 1, 7],\n [9, 15, 12, 6, 3],\n [22, 17, 11, 5, 4, 8, 14, 19, 23, 24]\n ]\n };\n const t = a.type && (a.type < 0 || a.type >= e.length) ? 0 : a.type || 0, i = a.size, s = a.sizeX || i || 1, r = a.sizeY || i || 1, n = a.sizeZ || i || 1, o = a.custom || e[t], l = o.face.length, h = a.faceUV || new Array(l), c = a.faceColors, u = a.flat === void 0 ? !0 : a.flat, d = a.sideOrientation === 0 ? 0 : a.sideOrientation || ge.DEFAULTSIDE, f = [], p = [], _ = [], m = [], x = [];\n let v = 0, T = 0;\n const E = [];\n let b = 0, S = 0, C, P, N, F, $, j;\n if (u)\n for (S = 0; S < l; S++)\n c && c[S] === void 0 && (c[S] = new Ce(1, 1, 1, 1)), h && h[S] === void 0 && (h[S] = new Ne(0, 0, 1, 1));\n if (u)\n for (S = 0; S < l; S++) {\n const te = o.face[S].length;\n for (N = 2 * Math.PI / te, F = 0.5 * Math.tan(N / 2), $ = 0.5, b = 0; b < te; b++)\n f.push(o.vertex[o.face[S][b]][0] * s, o.vertex[o.face[S][b]][1] * r, o.vertex[o.face[S][b]][2] * n), E.push(v), v++, C = h[S].x + (h[S].z - h[S].x) * (0.5 + F), P = h[S].y + (h[S].w - h[S].y) * ($ - 0.5), m.push(C, At.UseOpenGLOrientationForUV ? 1 - P : P), j = F * Math.cos(N) - $ * Math.sin(N), $ = F * Math.sin(N) + $ * Math.cos(N), F = j, c && x.push(c[S].r, c[S].g, c[S].b, c[S].a);\n for (b = 0; b < te - 2; b++)\n p.push(E[0 + T], E[b + 2 + T], E[b + 1 + T]);\n T += te;\n }\n else {\n for (b = 0; b < o.vertex.length; b++)\n f.push(o.vertex[b][0] * s, o.vertex[b][1] * r, o.vertex[b][2] * n), m.push(0, At.UseOpenGLOrientationForUV ? 1 : 0);\n for (S = 0; S < l; S++)\n for (b = 0; b < o.face[S].length - 2; b++)\n p.push(o.face[S][0], o.face[S][b + 2], o.face[S][b + 1]);\n }\n ge.ComputeNormals(f, p, _), ge._ComputeSides(d, f, p, _, m, a.frontUVs, a.backUVs);\n const ne = new ge();\n return ne.positions = f, ne.indices = p, ne.normals = _, ne.uvs = m, c && u && (ne.colors = x), ne;\n}\nfunction F_(a, e = {}, t = null) {\n const i = new H(a, t);\n return e.sideOrientation = H._GetDefaultSideOrientation(e.sideOrientation), i._originalBuilderSideOrientation = e.sideOrientation, A0(e).applyToMesh(i, e.updatable), i;\n}\nconst xK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreatePolyhedron: F_\n};\nge.CreatePolyhedron = A0;\nH.CreatePolyhedron = (a, e, t) => F_(a, e, t);\nfunction av(a) {\n const e = a.sideOrientation || ge.DEFAULTSIDE, t = a.radius || 1, i = a.flat === void 0 ? !0 : a.flat, s = (a.subdivisions || 4) | 0, r = a.radiusX || t, n = a.radiusY || t, o = a.radiusZ || t, l = (1 + Math.sqrt(5)) / 2, h = [\n -1,\n l,\n -0,\n 1,\n l,\n 0,\n -1,\n -l,\n 0,\n 1,\n -l,\n 0,\n 0,\n -1,\n -l,\n 0,\n 1,\n -l,\n 0,\n -1,\n l,\n 0,\n 1,\n l,\n l,\n 0,\n 1,\n l,\n 0,\n -1,\n -l,\n 0,\n 1,\n -l,\n 0,\n -1\n // v8-11\n ], c = [\n 0,\n 11,\n 5,\n 0,\n 5,\n 1,\n 0,\n 1,\n 7,\n 0,\n 7,\n 10,\n 12,\n 22,\n 23,\n 1,\n 5,\n 20,\n 5,\n 11,\n 4,\n 23,\n 22,\n 13,\n 22,\n 18,\n 6,\n 7,\n 1,\n 8,\n 14,\n 21,\n 4,\n 14,\n 4,\n 2,\n 16,\n 13,\n 6,\n 15,\n 6,\n 19,\n 3,\n 8,\n 9,\n 4,\n 21,\n 5,\n 13,\n 17,\n 23,\n 6,\n 13,\n 22,\n 19,\n 6,\n 18,\n 9,\n 8,\n 1\n ], u = [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n // vertex alias\n 0,\n 2,\n 3,\n 3,\n 3,\n 4,\n 7,\n 8,\n 9,\n 9,\n 10,\n 11\n // 23: B + 12\n ], d = [\n 5,\n 1,\n 3,\n 1,\n 6,\n 4,\n 0,\n 0,\n 5,\n 3,\n 4,\n 2,\n 2,\n 2,\n 4,\n 0,\n 2,\n 0,\n 1,\n 1,\n 6,\n 0,\n 6,\n 2,\n // vertex alias (for same vertex on different faces)\n 0,\n 4,\n 3,\n 3,\n 4,\n 4,\n 3,\n 1,\n 4,\n 2,\n 4,\n 4,\n 0,\n 2,\n 1,\n 1,\n 2,\n 2,\n 3,\n 3,\n 1,\n 3,\n 2,\n 4\n // 23: B + 12\n ], f = 138 / 1024, p = 239 / 1024, _ = 60 / 1024, m = 26 / 1024, x = -40 / 1024, v = 20 / 1024, T = [\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 1,\n 1,\n 0,\n 0,\n 0,\n 1,\n 1,\n 0,\n 0,\n 1,\n 1,\n 1,\n 0\n // 15 - 19\n ], E = [], b = [], S = [], C = [];\n let P = 0;\n const N = new Array(3), F = new Array(3);\n let $;\n for ($ = 0; $ < 3; $++)\n N[$] = g.Zero(), F[$] = Q.Zero();\n for (let ne = 0; ne < 20; ne++) {\n for ($ = 0; $ < 3; $++) {\n const le = c[3 * ne + $];\n N[$].copyFromFloats(h[3 * u[le]], h[3 * u[le] + 1], h[3 * u[le] + 2]), N[$].normalize(), F[$].copyFromFloats(d[2 * le] * f + _ + T[ne] * x, d[2 * le + 1] * p + m + T[ne] * v);\n }\n const te = (le, _e, Se, Ie) => {\n const de = g.Lerp(N[0], N[2], _e / s), Y = g.Lerp(N[1], N[2], _e / s), M = s === _e ? N[2] : g.Lerp(de, Y, le / (s - _e));\n M.normalize();\n let k;\n if (i) {\n const ie = g.Lerp(N[0], N[2], Ie / s), fe = g.Lerp(N[1], N[2], Ie / s);\n k = g.Lerp(ie, fe, Se / (s - Ie));\n } else\n k = new g(M.x, M.y, M.z);\n k.x /= r, k.y /= n, k.z /= o, k.normalize();\n const W = Q.Lerp(F[0], F[2], _e / s), V = Q.Lerp(F[1], F[2], _e / s), K = s === _e ? F[2] : Q.Lerp(W, V, le / (s - _e));\n b.push(M.x * r, M.y * n, M.z * o), S.push(k.x, k.y, k.z), C.push(K.x, At.UseOpenGLOrientationForUV ? 1 - K.y : K.y), E.push(P), P++;\n };\n for (let le = 0; le < s; le++)\n for (let _e = 0; _e + le < s; _e++)\n te(_e, le, _e + 1 / 3, le + 1 / 3), te(_e + 1, le, _e + 1 / 3, le + 1 / 3), te(_e, le + 1, _e + 1 / 3, le + 1 / 3), _e + le + 1 < s && (te(_e + 1, le, _e + 2 / 3, le + 2 / 3), te(_e + 1, le + 1, _e + 2 / 3, le + 2 / 3), te(_e, le + 1, _e + 2 / 3, le + 2 / 3));\n }\n ge._ComputeSides(e, b, E, S, C, a.frontUVs, a.backUVs);\n const j = new ge();\n return j.indices = E, j.positions = b, j.normals = S, j.uvs = C, j;\n}\nfunction L_(a, e = {}, t = null) {\n const i = new H(a, t);\n return e.sideOrientation = H._GetDefaultSideOrientation(e.sideOrientation), i._originalBuilderSideOrientation = e.sideOrientation, av(e).applyToMesh(i, e.updatable), i;\n}\nconst vK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateIcoSphere: L_\n};\nge.CreateIcoSphere = av;\nH.CreateIcoSphere = (a, e, t) => L_(a, e, t);\nconst bN = new g(1, 0, 0), EN = new g(-1, 0, 0), yN = new g(0, 1, 0), CN = new g(0, -1, 0), AN = new g(0, 0, 1), RN = new g(0, 0, -1);\nclass Vp {\n constructor(e = g.Zero(), t = g.Up(), i = Q.Zero(), s = 0, r = 0, n = null, o = null, l = null, h = null) {\n this.position = e, this.normal = t, this.uv = i, this.vertexIdx = s, this.vertexIdxForBones = r, this.localPositionOverride = n, this.localNormalOverride = o, this.matrixIndicesOverride = l, this.matrixWeightsOverride = h;\n }\n clone() {\n var e, t, i, s;\n return new Vp(this.position.clone(), this.normal.clone(), this.uv.clone(), this.vertexIdx, this.vertexIdxForBones, (e = this.localPositionOverride) == null ? void 0 : e.slice(), (t = this.localNormalOverride) == null ? void 0 : t.slice(), (i = this.matrixIndicesOverride) == null ? void 0 : i.slice(), (s = this.matrixWeightsOverride) == null ? void 0 : s.slice());\n }\n}\nfunction ov(a, e, t) {\n var _e, Se, Ie, de;\n const i = !!e.skeleton, s = t.localMode || i, r = e.getIndices(), n = i ? e.getPositionData(!0, !0) : e.getVerticesData(R.PositionKind), o = i ? e.getNormalsData(!0, !0) : e.getVerticesData(R.NormalKind), l = s ? i ? e.getVerticesData(R.PositionKind) : n : null, h = s ? i ? e.getVerticesData(R.NormalKind) : o : null, c = e.getVerticesData(R.UVKind), u = i ? e.getVerticesData(R.MatricesIndicesKind) : null, d = i ? e.getVerticesData(R.MatricesWeightsKind) : null, f = i ? e.getVerticesData(R.MatricesIndicesExtraKind) : null, p = i ? e.getVerticesData(R.MatricesWeightsExtraKind) : null, _ = t.position || g.Zero();\n let m = t.normal || g.Up();\n const x = t.size || g.One(), v = t.angle || 0;\n if (!m) {\n const Y = new g(0, 0, 1), M = e.getScene().activeCamera, k = g.TransformCoordinates(Y, M.getWorldMatrix());\n m = M.globalPosition.subtract(k);\n }\n const T = -Math.atan2(m.z, m.x) - Math.PI / 2, E = Math.sqrt(m.x * m.x + m.z * m.z), b = Math.atan2(m.y, E), S = new ge();\n S.indices = [], S.positions = [], S.normals = [], S.uvs = [], S.matricesIndices = i ? [] : null, S.matricesWeights = i ? [] : null, S.matricesIndicesExtra = f ? [] : null, S.matricesWeightsExtra = p ? [] : null;\n let C = 0;\n const P = (Y, M) => {\n const k = new Vp();\n if (!r || !n || !o)\n return k;\n const W = r[Y];\n if (k.vertexIdx = W * 3, k.vertexIdxForBones = W * 4, k.position = new g(n[W * 3], n[W * 3 + 1], n[W * 3 + 2]), g.TransformCoordinatesToRef(k.position, M, k.position), k.normal = new g(o[W * 3], o[W * 3 + 1], o[W * 3 + 2]), g.TransformNormalToRef(k.normal, M, k.normal), t.captureUVS && c) {\n const V = c[W * 2 + 1];\n k.uv = new Q(c[W * 2], At.UseOpenGLOrientationForUV ? 1 - V : V);\n }\n return k;\n }, N = [0, 0, 0, 0], F = (Y, M) => {\n if (Y.length === 0)\n return Y;\n const k = 0.5 * Math.abs(g.Dot(x, M)), W = (ie, fe, pe, ve) => {\n for (let Ue = 0; Ue < ve; ++Ue)\n if (ie[pe + Ue] === fe)\n return pe + Ue;\n return -1;\n }, V = (ie, fe) => {\n const pe = g.GetClipFactor(ie.position, fe.position, M, k);\n let ve = N, Ue = N;\n if (u && d) {\n const lt = ie.matrixIndicesOverride ? 0 : ie.vertexIdxForBones, Ht = ie.matrixIndicesOverride ?? u, yi = ie.matrixWeightsOverride ?? d, zi = fe.matrixIndicesOverride ? 0 : fe.vertexIdxForBones, rt = fe.matrixIndicesOverride ?? u, gt = fe.matrixWeightsOverride ?? d;\n ve = [0, 0, 0, 0], Ue = [0, 0, 0, 0];\n let ki = 0;\n for (let gs = 0; gs < 4; ++gs)\n if (yi[lt + gs] > 0) {\n const Vn = W(rt, Ht[lt + gs], zi, 4);\n ve[ki] = Ht[lt + gs], Ue[ki] = Re.Lerp(yi[lt + gs], Vn >= 0 ? gt[Vn] : 0, pe), ki++;\n }\n for (let gs = 0; gs < 4 && ki < 4; ++gs) {\n const Vn = rt[zi + gs];\n W(Ht, Vn, lt, 4) === -1 && (ve[ki] = Vn, Ue[ki] = Re.Lerp(0, gt[zi + gs], pe), ki++);\n }\n const Kr = Ue[0] + Ue[1] + Ue[2] + Ue[3];\n Ue[0] /= Kr, Ue[1] /= Kr, Ue[2] /= Kr, Ue[3] /= Kr;\n }\n const ht = ie.localPositionOverride ? ie.localPositionOverride[0] : (l == null ? void 0 : l[ie.vertexIdx]) ?? 0, Ee = ie.localPositionOverride ? ie.localPositionOverride[1] : (l == null ? void 0 : l[ie.vertexIdx + 1]) ?? 0, Je = ie.localPositionOverride ? ie.localPositionOverride[2] : (l == null ? void 0 : l[ie.vertexIdx + 2]) ?? 0, St = fe.localPositionOverride ? fe.localPositionOverride[0] : (l == null ? void 0 : l[fe.vertexIdx]) ?? 0, Yt = fe.localPositionOverride ? fe.localPositionOverride[1] : (l == null ? void 0 : l[fe.vertexIdx + 1]) ?? 0, yt = fe.localPositionOverride ? fe.localPositionOverride[2] : (l == null ? void 0 : l[fe.vertexIdx + 2]) ?? 0, Ui = ie.localNormalOverride ? ie.localNormalOverride[0] : (h == null ? void 0 : h[ie.vertexIdx]) ?? 0, is = ie.localNormalOverride ? ie.localNormalOverride[1] : (h == null ? void 0 : h[ie.vertexIdx + 1]) ?? 0, fr = ie.localNormalOverride ? ie.localNormalOverride[2] : (h == null ? void 0 : h[ie.vertexIdx + 2]) ?? 0, pr = fe.localNormalOverride ? fe.localNormalOverride[0] : (h == null ? void 0 : h[fe.vertexIdx]) ?? 0, Er = fe.localNormalOverride ? fe.localNormalOverride[1] : (h == null ? void 0 : h[fe.vertexIdx + 1]) ?? 0, gi = fe.localNormalOverride ? fe.localNormalOverride[2] : (h == null ? void 0 : h[fe.vertexIdx + 2]) ?? 0, Ni = Ui + (pr - Ui) * pe, hr = is + (Er - is) * pe, bt = fr + (gi - fr) * pe, Dt = Math.sqrt(Ni * Ni + hr * hr + bt * bt);\n return new Vp(g.Lerp(ie.position, fe.position, pe), g.Lerp(ie.normal, fe.normal, pe).normalize(), Q.Lerp(ie.uv, fe.uv, pe), -1, -1, l ? [\n ht + (St - ht) * pe,\n Ee + (Yt - Ee) * pe,\n Je + (yt - Je) * pe\n ] : null, h ? [Ni / Dt, hr / Dt, bt / Dt] : null, ve, Ue);\n };\n let K = null;\n Y.length > 3 && (K = []);\n for (let ie = 0; ie < Y.length; ie += 3) {\n let fe = 0, pe = null, ve = null, Ue = null, ht = null;\n const Ee = g.Dot(Y[ie].position, M) - k, Je = g.Dot(Y[ie + 1].position, M) - k, St = g.Dot(Y[ie + 2].position, M) - k, Yt = Ee > 0, yt = Je > 0, Ui = St > 0;\n switch (fe = (Yt ? 1 : 0) + (yt ? 1 : 0) + (Ui ? 1 : 0), fe) {\n case 0:\n Y.length > 3 ? (K.push(Y[ie]), K.push(Y[ie + 1]), K.push(Y[ie + 2])) : K = Y;\n break;\n case 1:\n if (K = K ?? new Array(), Yt && (pe = Y[ie + 1], ve = Y[ie + 2], Ue = V(Y[ie], pe), ht = V(Y[ie], ve)), yt) {\n pe = Y[ie], ve = Y[ie + 2], Ue = V(Y[ie + 1], pe), ht = V(Y[ie + 1], ve), K.push(Ue), K.push(ve.clone()), K.push(pe.clone()), K.push(ve.clone()), K.push(Ue.clone()), K.push(ht);\n break;\n }\n Ui && (pe = Y[ie], ve = Y[ie + 1], Ue = V(Y[ie + 2], pe), ht = V(Y[ie + 2], ve)), pe && ve && Ue && ht && (K.push(pe.clone()), K.push(ve.clone()), K.push(Ue), K.push(ht), K.push(Ue.clone()), K.push(ve.clone()));\n break;\n case 2:\n K = K ?? new Array(), Yt || (pe = Y[ie].clone(), ve = V(pe, Y[ie + 1]), Ue = V(pe, Y[ie + 2]), K.push(pe), K.push(ve), K.push(Ue)), yt || (pe = Y[ie + 1].clone(), ve = V(pe, Y[ie + 2]), Ue = V(pe, Y[ie]), K.push(pe), K.push(ve), K.push(Ue)), Ui || (pe = Y[ie + 2].clone(), ve = V(pe, Y[ie]), Ue = V(pe, Y[ie + 1]), K.push(pe), K.push(ve), K.push(Ue));\n break;\n }\n }\n return K;\n }, $ = e instanceof H ? e : null, j = $ == null ? void 0 : $._thinInstanceDataStorage.matrixData, ne = ($ == null ? void 0 : $.thinInstanceCount) || 1, te = w.Matrix[0];\n te.copyFrom(O.IdentityReadOnly);\n for (let Y = 0; Y < ne; ++Y) {\n if ($ != null && $.hasThinInstances && j) {\n const ie = Y * 16;\n te.setRowFromFloats(0, j[ie + 0], j[ie + 1], j[ie + 2], j[ie + 3]), te.setRowFromFloats(1, j[ie + 4], j[ie + 5], j[ie + 6], j[ie + 7]), te.setRowFromFloats(2, j[ie + 8], j[ie + 9], j[ie + 10], j[ie + 11]), te.setRowFromFloats(3, j[ie + 12], j[ie + 13], j[ie + 14], j[ie + 15]);\n }\n const M = O.RotationYawPitchRoll(T, b, v).multiply(O.Translation(_.x, _.y, _.z)), k = O.Invert(M), W = e.getWorldMatrix(), V = te.multiply(W).multiply(k), K = new Array(3);\n for (let ie = 0; ie < r.length; ie += 3) {\n let fe = K;\n if (fe[0] = P(ie, V), s ? (fe[1] = P(ie + 2, V), fe[2] = P(ie + 1, V)) : (fe[1] = P(ie + 1, V), fe[2] = P(ie + 2, V)), !(t.cullBackFaces && -fe[0].normal.z <= 0 && -fe[1].normal.z <= 0 && -fe[2].normal.z <= 0) && (fe = F(fe, bN), !!fe && (fe = F(fe, EN), !!fe && (fe = F(fe, yN), !!fe && (fe = F(fe, CN), !!fe && (fe = F(fe, AN), !!fe && (fe = F(fe, RN), !!fe)))))))\n for (let pe = 0; pe < fe.length; pe++) {\n const ve = fe[pe];\n if (S.indices.push(C), s ? (ve.localPositionOverride ? (S.positions[C * 3] = ve.localPositionOverride[0], S.positions[C * 3 + 1] = ve.localPositionOverride[1], S.positions[C * 3 + 2] = ve.localPositionOverride[2]) : l && (S.positions[C * 3] = l[ve.vertexIdx], S.positions[C * 3 + 1] = l[ve.vertexIdx + 1], S.positions[C * 3 + 2] = l[ve.vertexIdx + 2]), ve.localNormalOverride ? (S.normals[C * 3] = ve.localNormalOverride[0], S.normals[C * 3 + 1] = ve.localNormalOverride[1], S.normals[C * 3 + 2] = ve.localNormalOverride[2]) : h && (S.normals[C * 3] = h[ve.vertexIdx], S.normals[C * 3 + 1] = h[ve.vertexIdx + 1], S.normals[C * 3 + 2] = h[ve.vertexIdx + 2])) : (ve.position.toArray(S.positions, C * 3), ve.normal.toArray(S.normals, C * 3)), S.matricesIndices && S.matricesWeights && (ve.matrixIndicesOverride ? (S.matricesIndices[C * 4] = ve.matrixIndicesOverride[0], S.matricesIndices[C * 4 + 1] = ve.matrixIndicesOverride[1], S.matricesIndices[C * 4 + 2] = ve.matrixIndicesOverride[2], S.matricesIndices[C * 4 + 3] = ve.matrixIndicesOverride[3]) : (u && (S.matricesIndices[C * 4] = u[ve.vertexIdxForBones], S.matricesIndices[C * 4 + 1] = u[ve.vertexIdxForBones + 1], S.matricesIndices[C * 4 + 2] = u[ve.vertexIdxForBones + 2], S.matricesIndices[C * 4 + 3] = u[ve.vertexIdxForBones + 3]), f && S.matricesIndicesExtra && (S.matricesIndicesExtra[C * 4] = f[ve.vertexIdxForBones], S.matricesIndicesExtra[C * 4 + 1] = f[ve.vertexIdxForBones + 1], S.matricesIndicesExtra[C * 4 + 2] = f[ve.vertexIdxForBones + 2], S.matricesIndicesExtra[C * 4 + 3] = f[ve.vertexIdxForBones + 3])), ve.matrixWeightsOverride ? (S.matricesWeights[C * 4] = ve.matrixWeightsOverride[0], S.matricesWeights[C * 4 + 1] = ve.matrixWeightsOverride[1], S.matricesWeights[C * 4 + 2] = ve.matrixWeightsOverride[2], S.matricesWeights[C * 4 + 3] = ve.matrixWeightsOverride[3]) : (d && (S.matricesWeights[C * 4] = d[ve.vertexIdxForBones], S.matricesWeights[C * 4 + 1] = d[ve.vertexIdxForBones + 1], S.matricesWeights[C * 4 + 2] = d[ve.vertexIdxForBones + 2], S.matricesWeights[C * 4 + 3] = d[ve.vertexIdxForBones + 3]), p && S.matricesWeightsExtra && (S.matricesWeightsExtra[C * 4] = p[ve.vertexIdxForBones], S.matricesWeightsExtra[C * 4 + 1] = p[ve.vertexIdxForBones + 1], S.matricesWeightsExtra[C * 4 + 2] = p[ve.vertexIdxForBones + 2], S.matricesWeightsExtra[C * 4 + 3] = p[ve.vertexIdxForBones + 3]))), t.captureUVS)\n ve.uv.toArray(S.uvs, C * 2);\n else {\n S.uvs.push(0.5 + ve.position.x / x.x);\n const Ue = 0.5 + ve.position.y / x.y;\n S.uvs.push(At.UseOpenGLOrientationForUV ? 1 - Ue : Ue);\n }\n C++;\n }\n }\n }\n S.indices.length === 0 && (S.indices = null), S.positions.length === 0 && (S.positions = null), S.normals.length === 0 && (S.normals = null), S.uvs.length === 0 && (S.uvs = null), ((_e = S.matricesIndices) == null ? void 0 : _e.length) === 0 && (S.matricesIndices = null), ((Se = S.matricesWeights) == null ? void 0 : Se.length) === 0 && (S.matricesWeights = null), ((Ie = S.matricesIndicesExtra) == null ? void 0 : Ie.length) === 0 && (S.matricesIndicesExtra = null), ((de = S.matricesWeightsExtra) == null ? void 0 : de.length) === 0 && (S.matricesWeightsExtra = null);\n const le = new H(a, e.getScene());\n return S.applyToMesh(le), s ? (le.skeleton = e.skeleton, le.parent = e) : (le.position = _.clone(), le.rotation = new g(b, T, v)), le.computeWorldMatrix(!0), le.refreshBoundingInfo(!0, !0), le;\n}\nconst TK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateDecal: ov\n};\nH.CreateDecal = (a, e, t, i, s, r) => ov(a, e, {\n position: t,\n normal: i,\n size: s,\n angle: r\n});\nfunction lv(a = {\n subdivisions: 2,\n tessellation: 16,\n height: 1,\n radius: 0.25,\n capSubdivisions: 6\n}) {\n const e = Math.max(a.subdivisions ? a.subdivisions : 2, 1) | 0, t = Math.max(a.tessellation ? a.tessellation : 16, 3) | 0, i = Math.max(a.height ? a.height : 1, 0), s = Math.max(a.radius ? a.radius : 0.25, 0), r = Math.max(a.capSubdivisions ? a.capSubdivisions : 6, 1) | 0, n = t, o = e, l = Math.max(a.radiusTop ? a.radiusTop : s, 0), h = Math.max(a.radiusBottom ? a.radiusBottom : s, 0), c = i - (l + h), u = 0, d = 2 * Math.PI, f = Math.max(a.topCapSubdivisions ? a.topCapSubdivisions : r, 1), p = Math.max(a.bottomCapSubdivisions ? a.bottomCapSubdivisions : r, 1), _ = Math.acos((h - l) / i);\n let m = [];\n const x = [], v = [], T = [];\n let E = 0;\n const b = [], S = c * 0.5, C = Math.PI * 0.5;\n let P, N;\n const F = g.Zero(), $ = g.Zero(), j = Math.cos(_), ne = Math.sin(_), te = new Q(l * ne, S + l * j).subtract(new Q(h * ne, -S + h * j)).length(), le = l * _ + te + h * (C - _);\n let _e = 0;\n for (N = 0; N <= f; N++) {\n const Y = [], M = C - _ * (N / f);\n _e += l * _ / f;\n const k = Math.cos(M), W = Math.sin(M), V = k * l;\n for (P = 0; P <= n; P++) {\n const K = P / n, ie = K * d + u, fe = Math.sin(ie), pe = Math.cos(ie);\n $.x = V * fe, $.y = S + W * l, $.z = V * pe, x.push($.x, $.y, $.z), F.set(k * fe, W, k * pe), v.push(F.x, F.y, F.z), T.push(K, At.UseOpenGLOrientationForUV ? _e / le : 1 - _e / le), Y.push(E), E++;\n }\n b.push(Y);\n }\n const Se = i - l - h + j * l - j * h, Ie = ne * (h - l) / Se;\n for (N = 1; N <= o; N++) {\n const Y = [];\n _e += te / o;\n const M = ne * (N * (h - l) / o + l);\n for (P = 0; P <= n; P++) {\n const k = P / n, W = k * d + u, V = Math.sin(W), K = Math.cos(W);\n $.x = M * V, $.y = S + j * l - N * Se / o, $.z = M * K, x.push($.x, $.y, $.z), F.set(V, Ie, K).normalize(), v.push(F.x, F.y, F.z), T.push(k, At.UseOpenGLOrientationForUV ? _e / le : 1 - _e / le), Y.push(E), E++;\n }\n b.push(Y);\n }\n for (N = 1; N <= p; N++) {\n const Y = [], M = C - _ - (Math.PI - _) * (N / p);\n _e += h * _ / p;\n const k = Math.cos(M), W = Math.sin(M), V = k * h;\n for (P = 0; P <= n; P++) {\n const K = P / n, ie = K * d + u, fe = Math.sin(ie), pe = Math.cos(ie);\n $.x = V * fe, $.y = -S + W * h, $.z = V * pe, x.push($.x, $.y, $.z), F.set(k * fe, W, k * pe), v.push(F.x, F.y, F.z), T.push(K, At.UseOpenGLOrientationForUV ? _e / le : 1 - _e / le), Y.push(E), E++;\n }\n b.push(Y);\n }\n for (P = 0; P < n; P++)\n for (N = 0; N < f + o + p; N++) {\n const Y = b[N][P], M = b[N + 1][P], k = b[N + 1][P + 1], W = b[N][P + 1];\n m.push(Y), m.push(M), m.push(W), m.push(M), m.push(k), m.push(W);\n }\n if (m = m.reverse(), a.orientation && !a.orientation.equals(g.Up())) {\n const Y = new O();\n a.orientation.clone().scale(Math.PI * 0.5).cross(g.Up()).toQuaternion().toRotationMatrix(Y);\n const M = g.Zero();\n for (let k = 0; k < x.length; k += 3)\n M.set(x[k], x[k + 1], x[k + 2]), g.TransformCoordinatesToRef(M.clone(), Y, M), x[k] = M.x, x[k + 1] = M.y, x[k + 2] = M.z;\n }\n const de = new ge();\n return de.positions = x, de.normals = v, de.uvs = T, de.indices = m, de;\n}\nfunction hv(a, e = {\n orientation: g.Up(),\n subdivisions: 2,\n tessellation: 16,\n height: 1,\n radius: 0.25,\n capSubdivisions: 6,\n updatable: !1\n}, t = null) {\n const i = new H(a, t);\n return lv(e).applyToMesh(i, e.updatable), i;\n}\nconst SK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateCapsule: hv\n};\nH.CreateCapsule = (a, e, t) => hv(a, e, t);\nge.CreateCapsule = lv;\nclass Fi {\n /**\n * Creates a new isovector from the given x and y coordinates\n * @param x defines the first coordinate, must be an integer\n * @param y defines the second coordinate, must be an integer\n */\n constructor(e = 0, t = 0) {\n this.x = e, this.y = t, e !== Math.floor(e) && L.Warn(\"x is not an integer, floor(x) used\"), t !== Math.floor(t) && L.Warn(\"y is not an integer, floor(y) used\");\n }\n // Operators\n /**\n * Gets a new IsoVector copied from the IsoVector\n * @returns a new IsoVector\n */\n clone() {\n return new Fi(this.x, this.y);\n }\n /**\n * Rotates one IsoVector 60 degrees counter clockwise about another\n * Please note that this is an in place operation\n * @param other an IsoVector a center of rotation\n * @returns the rotated IsoVector\n */\n rotate60About(e) {\n const t = this.x;\n return this.x = e.x + e.y - this.y, this.y = t + this.y - e.x, this;\n }\n /**\n * Rotates one IsoVector 60 degrees clockwise about another\n * Please note that this is an in place operation\n * @param other an IsoVector as center of rotation\n * @returns the rotated IsoVector\n */\n rotateNeg60About(e) {\n const t = this.x;\n return this.x = t + this.y - e.y, this.y = e.x + e.y - t, this;\n }\n /**\n * For an equilateral triangle OAB with O at isovector (0, 0) and A at isovector (m, n)\n * Rotates one IsoVector 120 degrees counter clockwise about the center of the triangle\n * Please note that this is an in place operation\n * @param m integer a measure a Primary triangle of order (m, n) m > n\n * @param n >= 0 integer a measure for a Primary triangle of order (m, n)\n * @returns the rotated IsoVector\n */\n rotate120(e, t) {\n e !== Math.floor(e) && L.Warn(\"m not an integer only floor(m) used\"), t !== Math.floor(t) && L.Warn(\"n not an integer only floor(n) used\");\n const i = this.x;\n return this.x = e - i - this.y, this.y = t + i, this;\n }\n /**\n * For an equilateral triangle OAB with O at isovector (0, 0) and A at isovector (m, n)\n * Rotates one IsoVector 120 degrees clockwise about the center of the triangle\n * Please note that this is an in place operation\n * @param m integer a measure a Primary triangle of order (m, n) m > n\n * @param n >= 0 integer a measure for a Primary triangle of order (m, n)\n * @returns the rotated IsoVector\n */\n rotateNeg120(e, t) {\n e !== Math.floor(e) && L.Warn(\"m is not an integer, floor(m) used\"), t !== Math.floor(t) && L.Warn(\"n is not an integer, floor(n) used\");\n const i = this.x;\n return this.x = this.y - t, this.y = e + t - i - this.y, this;\n }\n /**\n * Transforms an IsoVector to one in Cartesian 3D space based on an isovector\n * @param origin an IsoVector\n * @param isoGridSize\n * @returns Point as a Vector3\n */\n toCartesianOrigin(e, t) {\n const i = g.Zero();\n return i.x = e.x + 2 * this.x * t + this.y * t, i.y = e.y + Math.sqrt(3) * this.y * t, i;\n }\n // Statics\n /**\n * Gets a new IsoVector(0, 0)\n * @returns a new IsoVector\n */\n static Zero() {\n return new Fi(0, 0);\n }\n}\nclass R0 {\n constructor() {\n this.cartesian = [], this.vertices = [], this.max = [], this.min = [], this.closestTo = [], this.innerFacets = [], this.isoVecsABOB = [], this.isoVecsOBOA = [], this.isoVecsBAOA = [], this.vertexTypes = [], this.IDATA = new Pg(\"icosahedron\", \"Regular\", [\n [0, cs, -1],\n [-cs, 1, 0],\n [-1, 0, -cs],\n [1, 0, -cs],\n [cs, 1, 0],\n [0, cs, 1],\n [-1, 0, cs],\n [-cs, -1, 0],\n [0, -cs, -1],\n [cs, -1, 0],\n [1, 0, cs],\n [0, -cs, 1]\n ], [\n [0, 2, 1],\n [0, 3, 2],\n [0, 4, 3],\n [0, 5, 4],\n [0, 1, 5],\n [7, 6, 1],\n [8, 7, 2],\n [9, 8, 3],\n [10, 9, 4],\n [6, 10, 5],\n [2, 7, 1],\n [3, 8, 2],\n [4, 9, 3],\n [5, 10, 4],\n [1, 6, 5],\n [11, 6, 7],\n [11, 7, 8],\n [11, 8, 9],\n [11, 9, 10],\n [11, 10, 6]\n ]);\n }\n /**\n * Creates the PrimaryIsoTriangle Triangle OAB\n * @param m an integer\n * @param n an integer\n */\n //operators\n setIndices() {\n let e = 12;\n const t = {}, i = this.m, s = this.n;\n let r = i, n = 1, o = 0;\n s !== 0 && (r = Re.HCF(i, s)), n = i / r, o = s / r;\n let l, h, c, u, d;\n const f = Fi.Zero(), p = new Fi(i, s), _ = new Fi(-s, i + s), m = Fi.Zero(), x = Fi.Zero(), v = Fi.Zero();\n let T = [], E, b, S, C;\n const P = [], N = this.vertByDist, F = ($, j, ne, te) => {\n E = $ + \"|\" + ne, b = j + \"|\" + te, E in t || b in t ? E in t && !(b in t) ? t[b] = t[E] : b in t && !(E in t) && (t[E] = t[b]) : (t[E] = e, t[b] = e, e++), N[ne][0] > 2 ? P[t[E]] = [-N[ne][0], N[ne][1], t[E]] : P[t[E]] = [T[N[ne][0]], N[ne][1], t[E]];\n };\n this.IDATA.edgematch = [\n [1, \"B\"],\n [2, \"B\"],\n [3, \"B\"],\n [4, \"B\"],\n [0, \"B\"],\n [10, \"O\", 14, \"A\"],\n [11, \"O\", 10, \"A\"],\n [12, \"O\", 11, \"A\"],\n [13, \"O\", 12, \"A\"],\n [14, \"O\", 13, \"A\"],\n [0, \"O\"],\n [1, \"O\"],\n [2, \"O\"],\n [3, \"O\"],\n [4, \"O\"],\n [19, \"B\", 5, \"A\"],\n [15, \"B\", 6, \"A\"],\n [16, \"B\", 7, \"A\"],\n [17, \"B\", 8, \"A\"],\n [18, \"B\", 9, \"A\"]\n ];\n for (let $ = 0; $ < 20; $++) {\n if (T = this.IDATA.face[$], c = T[2], u = T[1], d = T[0], S = f.x + \"|\" + f.y, E = $ + \"|\" + S, E in t || (t[E] = c, P[c] = [T[N[S][0]], N[S][1]]), S = p.x + \"|\" + p.y, E = $ + \"|\" + S, E in t || (t[E] = u, P[u] = [T[N[S][0]], N[S][1]]), S = _.x + \"|\" + _.y, E = $ + \"|\" + S, E in t || (t[E] = d, P[d] = [T[N[S][0]], N[S][1]]), l = this.IDATA.edgematch[$][0], h = this.IDATA.edgematch[$][1], h === \"B\")\n for (let j = 1; j < r; j++)\n x.x = i - j * (n + o), x.y = s + j * n, v.x = -j * o, v.y = j * (n + o), S = x.x + \"|\" + x.y, C = v.x + \"|\" + v.y, F($, l, S, C);\n if (h === \"O\")\n for (let j = 1; j < r; j++)\n v.x = -j * o, v.y = j * (n + o), m.x = j * n, m.y = j * o, S = v.x + \"|\" + v.y, C = m.x + \"|\" + m.y, F($, l, S, C);\n if (l = this.IDATA.edgematch[$][2], h = this.IDATA.edgematch[$][3], h && h === \"A\")\n for (let j = 1; j < r; j++)\n m.x = j * n, m.y = j * o, x.x = i - (r - j) * (n + o), x.y = s + (r - j) * n, S = m.x + \"|\" + m.y, C = x.x + \"|\" + x.y, F($, l, S, C);\n for (let j = 0; j < this.vertices.length; j++)\n S = this.vertices[j].x + \"|\" + this.vertices[j].y, E = $ + \"|\" + S, E in t || (t[E] = e++, N[S][0] > 2 ? P[t[E]] = [-N[S][0], N[S][1], t[E]] : P[t[E]] = [T[N[S][0]], N[S][1], t[E]]);\n }\n this.closestTo = P, this.vecToidx = t;\n }\n calcCoeffs() {\n const e = this.m, t = this.n, i = Math.sqrt(3) / 3, s = e * e + t * t + e * t;\n this.coau = (e + t) / s, this.cobu = -t / s, this.coav = -i * (e - t) / s, this.cobv = i * (2 * e + t) / s;\n }\n createInnerFacets() {\n const e = this.m, t = this.n;\n for (let i = 0; i < t + e + 1; i++)\n for (let s = this.min[i]; s < this.max[i] + 1; s++)\n s < this.max[i] && s < this.max[i + 1] + 1 && this.innerFacets.push([\"|\" + s + \"|\" + i, \"|\" + s + \"|\" + (i + 1), \"|\" + (s + 1) + \"|\" + i]), i > 0 && s < this.max[i - 1] && s + 1 < this.max[i] + 1 && this.innerFacets.push([\"|\" + s + \"|\" + i, \"|\" + (s + 1) + \"|\" + i, \"|\" + (s + 1) + \"|\" + (i - 1)]);\n }\n edgeVecsABOB() {\n const e = this.m, t = this.n, i = new Fi(-t, e + t);\n for (let s = 1; s < e + t; s++) {\n const r = new Fi(this.min[s], s), n = new Fi(this.min[s - 1], s - 1), o = new Fi(this.min[s + 1], s + 1), l = r.clone(), h = n.clone(), c = o.clone();\n l.rotate60About(i), h.rotate60About(i), c.rotate60About(i);\n const u = new Fi(this.max[l.y], l.y), d = new Fi(this.max[l.y - 1], l.y - 1), f = new Fi(this.max[l.y - 1] - 1, l.y - 1);\n (l.x !== u.x || l.y !== u.y) && (l.x !== d.x ? (this.vertexTypes.push([1, 0, 0]), this.isoVecsABOB.push([r, d, f]), this.vertexTypes.push([1, 0, 0]), this.isoVecsABOB.push([r, f, u])) : l.y === c.y ? (this.vertexTypes.push([1, 1, 0]), this.isoVecsABOB.push([r, n, d]), this.vertexTypes.push([1, 0, 1]), this.isoVecsABOB.push([r, d, o])) : (this.vertexTypes.push([1, 1, 0]), this.isoVecsABOB.push([r, n, d]), this.vertexTypes.push([1, 0, 0]), this.isoVecsABOB.push([r, d, u])));\n }\n }\n mapABOBtoOBOA() {\n const e = new Fi(0, 0);\n for (let t = 0; t < this.isoVecsABOB.length; t++) {\n const i = [];\n for (let s = 0; s < 3; s++)\n e.x = this.isoVecsABOB[t][s].x, e.y = this.isoVecsABOB[t][s].y, this.vertexTypes[t][s] === 0 && e.rotateNeg120(this.m, this.n), i.push(e.clone());\n this.isoVecsOBOA.push(i);\n }\n }\n mapABOBtoBAOA() {\n const e = new Fi(0, 0);\n for (let t = 0; t < this.isoVecsABOB.length; t++) {\n const i = [];\n for (let s = 0; s < 3; s++)\n e.x = this.isoVecsABOB[t][s].x, e.y = this.isoVecsABOB[t][s].y, this.vertexTypes[t][s] === 1 && e.rotate120(this.m, this.n), i.push(e.clone());\n this.isoVecsBAOA.push(i);\n }\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n MapToFace(e, t) {\n const i = this.IDATA.face[e], s = i[2], r = i[1], n = i[0], o = g.FromArray(this.IDATA.vertex[s]), l = g.FromArray(this.IDATA.vertex[r]), h = g.FromArray(this.IDATA.vertex[n]), c = l.subtract(o), u = h.subtract(o), d = c.scale(this.coau).add(u.scale(this.cobu)), f = c.scale(this.coav).add(u.scale(this.cobv));\n let p, _ = w.Vector3[0];\n for (let m = 0; m < this.cartesian.length; m++)\n _ = d.scale(this.cartesian[m].x).add(f.scale(this.cartesian[m].y)).add(o), _.x, _.y, _.z, p = e + \"|\" + this.vertices[m].x + \"|\" + this.vertices[m].y, t.vertex[this.vecToidx[p]] = [_.x, _.y, _.z];\n }\n //statics\n /**Creates a primary triangle\n * @internal\n */\n build(e, t) {\n const i = [], s = Fi.Zero(), r = new Fi(e, t), n = new Fi(-t, e + t);\n i.push(s, r, n);\n for (let b = t; b < e + 1; b++)\n for (let S = 0; S < e + 1 - b; S++)\n i.push(new Fi(S, b));\n if (t > 0) {\n const b = Re.HCF(e, t), S = e / b, C = t / b;\n for (let N = 1; N < b; N++)\n i.push(new Fi(N * S, N * C)), i.push(new Fi(-N * C, N * (S + C))), i.push(new Fi(e - N * (S + C), t + N * S));\n const P = e / t;\n for (let N = 1; N < t; N++)\n for (let F = 0; F < N * P; F++)\n i.push(new Fi(F, N)), i.push(new Fi(F, N).rotate120(e, t)), i.push(new Fi(F, N).rotateNeg120(e, t));\n }\n i.sort((b, S) => b.x - S.x), i.sort((b, S) => b.y - S.y);\n const o = new Array(e + t + 1), l = new Array(e + t + 1);\n for (let b = 0; b < o.length; b++)\n o[b] = 1 / 0, l[b] = -1 / 0;\n let h = 0, c = 0;\n const u = i.length;\n for (let b = 0; b < u; b++)\n c = i[b].x, h = i[b].y, o[h] = Math.min(c, o[h]), l[h] = Math.max(c, l[h]);\n const d = (b, S) => {\n const C = b.clone();\n return S === \"A\" && C.rotateNeg120(e, t), S === \"B\" && C.rotate120(e, t), C.x < 0 ? C.y : C.x + C.y;\n }, f = [], p = [], _ = [], m = [], x = {}, v = [];\n let T = -1, E = -1;\n for (let b = 0; b < u; b++)\n f[b] = i[b].toCartesianOrigin(new Fi(0, 0), 0.5), p[b] = d(i[b], \"O\"), _[b] = d(i[b], \"A\"), m[b] = d(i[b], \"B\"), p[b] === _[b] && _[b] === m[b] ? (T = 3, E = p[b]) : p[b] === _[b] ? (T = 4, E = p[b]) : _[b] === m[b] ? (T = 5, E = _[b]) : m[b] === p[b] && (T = 6, E = p[b]), p[b] < _[b] && p[b] < m[b] && (T = 2, E = p[b]), _[b] < p[b] && _[b] < m[b] && (T = 1, E = _[b]), m[b] < _[b] && m[b] < p[b] && (T = 0, E = m[b]), v.push([T, E, i[b].x, i[b].y]);\n v.sort((b, S) => b[2] - S[2]), v.sort((b, S) => b[3] - S[3]), v.sort((b, S) => b[1] - S[1]), v.sort((b, S) => b[0] - S[0]);\n for (let b = 0; b < v.length; b++)\n x[v[b][2] + \"|\" + v[b][3]] = [v[b][0], v[b][1], b];\n return this.m = e, this.n = t, this.vertices = i, this.vertByDist = x, this.cartesian = f, this.min = o, this.max = l, this;\n }\n}\nclass Pg {\n constructor(e, t, i, s) {\n this.name = e, this.category = t, this.vertex = i, this.face = s;\n }\n}\nclass B_ extends Pg {\n /**\n * @internal\n */\n innerToData(e, t) {\n for (let i = 0; i < t.innerFacets.length; i++)\n this.face.push(t.innerFacets[i].map((s) => t.vecToidx[e + s]));\n }\n /**\n * @internal\n */\n mapABOBtoDATA(e, t) {\n const i = t.IDATA.edgematch[e][0];\n for (let s = 0; s < t.isoVecsABOB.length; s++) {\n const r = [];\n for (let n = 0; n < 3; n++)\n t.vertexTypes[s][n] === 0 ? r.push(e + \"|\" + t.isoVecsABOB[s][n].x + \"|\" + t.isoVecsABOB[s][n].y) : r.push(i + \"|\" + t.isoVecsABOB[s][n].x + \"|\" + t.isoVecsABOB[s][n].y);\n this.face.push([t.vecToidx[r[0]], t.vecToidx[r[1]], t.vecToidx[r[2]]]);\n }\n }\n /**\n * @internal\n */\n mapOBOAtoDATA(e, t) {\n const i = t.IDATA.edgematch[e][0];\n for (let s = 0; s < t.isoVecsOBOA.length; s++) {\n const r = [];\n for (let n = 0; n < 3; n++)\n t.vertexTypes[s][n] === 1 ? r.push(e + \"|\" + t.isoVecsOBOA[s][n].x + \"|\" + t.isoVecsOBOA[s][n].y) : r.push(i + \"|\" + t.isoVecsOBOA[s][n].x + \"|\" + t.isoVecsOBOA[s][n].y);\n this.face.push([t.vecToidx[r[0]], t.vecToidx[r[1]], t.vecToidx[r[2]]]);\n }\n }\n /**\n * @internal\n */\n mapBAOAtoDATA(e, t) {\n const i = t.IDATA.edgematch[e][2];\n for (let s = 0; s < t.isoVecsBAOA.length; s++) {\n const r = [];\n for (let n = 0; n < 3; n++)\n t.vertexTypes[s][n] === 1 ? r.push(e + \"|\" + t.isoVecsBAOA[s][n].x + \"|\" + t.isoVecsBAOA[s][n].y) : r.push(i + \"|\" + t.isoVecsBAOA[s][n].x + \"|\" + t.isoVecsBAOA[s][n].y);\n this.face.push([t.vecToidx[r[0]], t.vecToidx[r[1]], t.vecToidx[r[2]]]);\n }\n }\n /**\n * @internal\n */\n orderData(e) {\n const t = [];\n for (let n = 0; n < 13; n++)\n t[n] = [];\n const i = e.closestTo;\n for (let n = 0; n < i.length; n++)\n i[n][0] > -1 ? i[n][1] > 0 && t[i[n][0]].push([n, i[n][1]]) : t[12].push([n, i[n][0]]);\n const s = [];\n for (let n = 0; n < 12; n++)\n s[n] = n;\n let r = 12;\n for (let n = 0; n < 12; n++) {\n t[n].sort((o, l) => o[1] - l[1]);\n for (let o = 0; o < t[n].length; o++)\n s[t[n][o][0]] = r++;\n }\n for (let n = 0; n < t[12].length; n++)\n s[t[12][n][0]] = r++;\n for (let n = 0; n < this.vertex.length; n++)\n this.vertex[n].push(s[n]);\n this.vertex.sort((n, o) => n[3] - o[3]);\n for (let n = 0; n < this.vertex.length; n++)\n this.vertex[n].pop();\n for (let n = 0; n < this.face.length; n++)\n for (let o = 0; o < this.face[n].length; o++)\n this.face[n][o] = s[this.face[n][o]];\n this.sharedNodes = t[12].length, this.poleNodes = this.vertex.length - this.sharedNodes;\n }\n /**\n * @internal\n */\n setOrder(e, t) {\n const i = [], s = [];\n let r = t.pop();\n s.push(r);\n let n = this.face[r].indexOf(e);\n n = (n + 2) % 3;\n let o = this.face[r][n];\n i.push(o);\n let l = 0;\n for (; t.length > 0; )\n r = t[l], this.face[r].indexOf(o) > -1 ? (n = (this.face[r].indexOf(o) + 1) % 3, o = this.face[r][n], i.push(o), s.push(r), t.splice(l, 1), l = 0) : l++;\n return this.adjacentFaces.push(i), s;\n }\n /**\n * @internal\n */\n toGoldbergPolyhedronData() {\n const e = new Pg(\"GeoDual\", \"Goldberg\", [], []);\n e.name = \"GD dual\";\n const t = this.vertex.length, i = new Array(t);\n for (let h = 0; h < t; h++)\n i[h] = [];\n for (let h = 0; h < this.face.length; h++)\n for (let c = 0; c < 3; c++)\n i[this.face[h][c]].push(h);\n let s = 0, r = 0, n = 0, o = [], l = [];\n this.adjacentFaces = [];\n for (let h = 0; h < i.length; h++)\n e.face[h] = this.setOrder(h, i[h].concat([])), i[h].forEach((c) => {\n s = 0, r = 0, n = 0, o = this.face[c];\n for (let u = 0; u < 3; u++)\n l = this.vertex[o[u]], s += l[0], r += l[1], n += l[2];\n e.vertex[c] = [s / 3, r / 3, n / 3];\n });\n return e;\n }\n //statics\n /**Builds the data for a Geodesic Polyhedron from a primary triangle\n * @param primTri the primary triangle\n * @internal\n */\n static BuildGeodesicData(e) {\n const t = new B_(\"Geodesic-m-n\", \"Geodesic\", [\n [0, cs, -1],\n [-cs, 1, 0],\n [-1, 0, -cs],\n [1, 0, -cs],\n [cs, 1, 0],\n [0, cs, 1],\n [-1, 0, cs],\n [-cs, -1, 0],\n [0, -cs, -1],\n [cs, -1, 0],\n [1, 0, cs],\n [0, -cs, 1]\n ], []);\n e.setIndices(), e.calcCoeffs(), e.createInnerFacets(), e.edgeVecsABOB(), e.mapABOBtoOBOA(), e.mapABOBtoBAOA();\n for (let s = 0; s < e.IDATA.face.length; s++)\n e.MapToFace(s, t), t.innerToData(s, e), e.IDATA.edgematch[s][1] === \"B\" && t.mapABOBtoDATA(s, e), e.IDATA.edgematch[s][1] === \"O\" && t.mapOBOAtoDATA(s, e), e.IDATA.edgematch[s][3] === \"A\" && t.mapBAOAtoDATA(s, e);\n t.orderData(e);\n const i = 1;\n return t.vertex = t.vertex.map(function(s) {\n const r = s[0], n = s[1], o = s[2], l = Math.sqrt(r * r + n * n + o * o);\n return s[0] *= i / l, s[1] *= i / l, s[2] *= i / l, s;\n }), t;\n }\n}\nfunction IN(a, e, t = null) {\n let i = e.m || 1;\n i !== Math.floor(i) && L.Warn(\"m not an integer only floor(m) used\");\n let s = e.n || 0;\n if (s !== Math.floor(s) && L.Warn(\"n not an integer only floor(n) used\"), s > i) {\n const h = s;\n s = i, i = h, L.Warn(\"n > m therefore m and n swapped\");\n }\n const r = new R0();\n r.build(i, s);\n const o = {\n custom: B_.BuildGeodesicData(r),\n size: e.size,\n sizeX: e.sizeX,\n sizeY: e.sizeY,\n sizeZ: e.sizeZ,\n faceUV: e.faceUV,\n faceColors: e.faceColors,\n flat: e.flat,\n updatable: e.updatable,\n sideOrientation: e.sideOrientation,\n frontUVs: e.frontUVs,\n backUVs: e.backUVs\n };\n return F_(a, o, t);\n}\nH._GoldbergMeshParser = (a, e) => V_.Parse(a, e);\nclass V_ extends H {\n constructor() {\n super(...arguments), this.goldbergData = {\n faceColors: [],\n faceCenters: [],\n faceZaxis: [],\n faceXaxis: [],\n faceYaxis: [],\n nbSharedFaces: 0,\n nbUnsharedFaces: 0,\n nbFaces: 0,\n nbFacesAtPole: 0,\n adjacentFaces: []\n };\n }\n /**\n * Gets the related Goldberg face from pole infos\n * @param poleOrShared Defines the pole index or the shared face index if the fromPole parameter is passed in\n * @param fromPole Defines an optional pole index to find the related info from\n * @returns the goldberg face number\n */\n relatedGoldbergFace(e, t) {\n return t === void 0 ? (e > this.goldbergData.nbUnsharedFaces - 1 && (L.Warn(\"Maximum number of unshared faces used\"), e = this.goldbergData.nbUnsharedFaces - 1), this.goldbergData.nbUnsharedFaces + e) : (e > 11 && (L.Warn(\"Last pole used\"), e = 11), t > this.goldbergData.nbFacesAtPole - 1 && (L.Warn(\"Maximum number of faces at a pole used\"), t = this.goldbergData.nbFacesAtPole - 1), 12 + e * this.goldbergData.nbFacesAtPole + t);\n }\n _changeGoldbergFaceColors(e) {\n for (let i = 0; i < e.length; i++) {\n const s = e[i][0], r = e[i][1], n = e[i][2];\n for (let o = s; o < r + 1; o++)\n this.goldbergData.faceColors[o] = n;\n }\n const t = [];\n for (let i = 0; i < 12; i++)\n for (let s = 0; s < 5; s++)\n t.push(this.goldbergData.faceColors[i].r, this.goldbergData.faceColors[i].g, this.goldbergData.faceColors[i].b, this.goldbergData.faceColors[i].a);\n for (let i = 12; i < this.goldbergData.faceColors.length; i++)\n for (let s = 0; s < 6; s++)\n t.push(this.goldbergData.faceColors[i].r, this.goldbergData.faceColors[i].g, this.goldbergData.faceColors[i].b, this.goldbergData.faceColors[i].a);\n return t;\n }\n /**\n * Set new goldberg face colors\n * @param colorRange the new color to apply to the mesh\n */\n setGoldbergFaceColors(e) {\n const t = this._changeGoldbergFaceColors(e);\n this.setVerticesData(R.ColorKind, t);\n }\n /**\n * Updates new goldberg face colors\n * @param colorRange the new color to apply to the mesh\n */\n updateGoldbergFaceColors(e) {\n const t = this._changeGoldbergFaceColors(e);\n this.updateVerticesData(R.ColorKind, t);\n }\n _changeGoldbergFaceUVs(e) {\n const t = this.getVerticesData(R.UVKind);\n for (let i = 0; i < e.length; i++) {\n const s = e[i][0], r = e[i][1], n = e[i][2], o = e[i][3], l = e[i][4], h = [], c = [];\n let u, d;\n for (let f = 0; f < 5; f++)\n u = n.x + o * Math.cos(l + f * Math.PI / 2.5), d = n.y + o * Math.sin(l + f * Math.PI / 2.5), u < 0 && (u = 0), u > 1 && (u = 1), h.push(u, d);\n for (let f = 0; f < 6; f++)\n u = n.x + o * Math.cos(l + f * Math.PI / 3), d = n.y + o * Math.sin(l + f * Math.PI / 3), u < 0 && (u = 0), u > 1 && (u = 1), c.push(u, d);\n for (let f = s; f < Math.min(12, r + 1); f++)\n for (let p = 0; p < 5; p++)\n t[10 * f + 2 * p] = h[2 * p], t[10 * f + 2 * p + 1] = h[2 * p + 1];\n for (let f = Math.max(12, s); f < r + 1; f++)\n for (let p = 0; p < 6; p++)\n t[12 * f - 24 + 2 * p] = c[2 * p], t[12 * f - 23 + 2 * p] = c[2 * p + 1];\n }\n return t;\n }\n /**\n * set new goldberg face UVs\n * @param uvRange the new UVs to apply to the mesh\n */\n setGoldbergFaceUVs(e) {\n const t = this._changeGoldbergFaceUVs(e);\n this.setVerticesData(R.UVKind, t);\n }\n /**\n * Updates new goldberg face UVs\n * @param uvRange the new UVs to apply to the mesh\n */\n updateGoldbergFaceUVs(e) {\n const t = this._changeGoldbergFaceUVs(e);\n this.updateVerticesData(R.UVKind, t);\n }\n /**\n * Places a mesh on a particular face of the goldberg polygon\n * @param mesh Defines the mesh to position\n * @param face Defines the face to position onto\n * @param position Defines the position relative to the face we are positioning the mesh onto\n */\n placeOnGoldbergFaceAt(e, t, i) {\n const s = g.RotationFromAxis(this.goldbergData.faceXaxis[t], this.goldbergData.faceYaxis[t], this.goldbergData.faceZaxis[t]);\n e.rotation = s, e.position = this.goldbergData.faceCenters[t].add(this.goldbergData.faceXaxis[t].scale(i.x)).add(this.goldbergData.faceYaxis[t].scale(i.y)).add(this.goldbergData.faceZaxis[t].scale(i.z));\n }\n /**\n * Serialize current mesh\n * @param serializationObject defines the object which will receive the serialization data\n */\n serialize(e) {\n super.serialize(e), e.type = \"GoldbergMesh\";\n const t = {};\n if (t.adjacentFaces = this.goldbergData.adjacentFaces, t.nbSharedFaces = this.goldbergData.nbSharedFaces, t.nbUnsharedFaces = this.goldbergData.nbUnsharedFaces, t.nbFaces = this.goldbergData.nbFaces, t.nbFacesAtPole = this.goldbergData.nbFacesAtPole, this.goldbergData.faceColors) {\n t.faceColors = [];\n for (const i of this.goldbergData.faceColors)\n t.faceColors.push(i.asArray());\n }\n if (this.goldbergData.faceCenters) {\n t.faceCenters = [];\n for (const i of this.goldbergData.faceCenters)\n t.faceCenters.push(i.asArray());\n }\n if (this.goldbergData.faceZaxis) {\n t.faceZaxis = [];\n for (const i of this.goldbergData.faceZaxis)\n t.faceZaxis.push(i.asArray());\n }\n if (this.goldbergData.faceYaxis) {\n t.faceYaxis = [];\n for (const i of this.goldbergData.faceYaxis)\n t.faceYaxis.push(i.asArray());\n }\n if (this.goldbergData.faceXaxis) {\n t.faceXaxis = [];\n for (const i of this.goldbergData.faceXaxis)\n t.faceXaxis.push(i.asArray());\n }\n e.goldbergData = t;\n }\n /**\n * Parses a serialized goldberg mesh\n * @param parsedMesh the serialized mesh\n * @param scene the scene to create the goldberg mesh in\n * @returns the created goldberg mesh\n */\n static Parse(e, t) {\n const i = e.goldbergData;\n i.faceColors = i.faceColors.map((r) => Ce.FromArray(r)), i.faceCenters = i.faceCenters.map((r) => g.FromArray(r)), i.faceZaxis = i.faceZaxis.map((r) => g.FromArray(r)), i.faceXaxis = i.faceXaxis.map((r) => g.FromArray(r)), i.faceYaxis = i.faceYaxis.map((r) => g.FromArray(r));\n const s = new V_(e.name, t);\n return s.goldbergData = i, s;\n }\n}\nfunction PN(a, e) {\n const t = a.size, i = a.sizeX || t || 1, s = a.sizeY || t || 1, r = a.sizeZ || t || 1, n = a.sideOrientation === 0 ? 0 : a.sideOrientation || ge.DEFAULTSIDE, o = [], l = [], h = [], c = [];\n let u = 1 / 0, d = -1 / 0, f = 1 / 0, p = -1 / 0;\n for (let x = 0; x < e.vertex.length; x++)\n u = Math.min(u, e.vertex[x][0] * i), d = Math.max(d, e.vertex[x][0] * i), f = Math.min(f, e.vertex[x][1] * s), p = Math.max(p, e.vertex[x][1] * s);\n let _ = 0;\n for (let x = 0; x < e.face.length; x++) {\n const v = e.face[x], T = g.FromArray(e.vertex[v[0]]), E = g.FromArray(e.vertex[v[2]]), b = g.FromArray(e.vertex[v[1]]), S = E.subtract(T), C = b.subtract(T), P = g.Cross(C, S).normalize();\n for (let N = 0; N < v.length; N++) {\n h.push(P.x, P.y, P.z);\n const F = e.vertex[v[N]];\n o.push(F[0] * i, F[1] * s, F[2] * r);\n const $ = (F[1] * s - f) / (p - f);\n c.push((F[0] * i - u) / (d - u), At.UseOpenGLOrientationForUV ? 1 - $ : $);\n }\n for (let N = 0; N < v.length - 2; N++)\n l.push(_, _ + N + 2, _ + N + 1);\n _ += v.length;\n }\n ge._ComputeSides(n, o, l, h, c);\n const m = new ge();\n return m.positions = o, m.indices = l, m.normals = h, m.uvs = c, m;\n}\nfunction MN(a, e, t = null) {\n const i = e.size, s = e.sizeX || i || 1, r = e.sizeY || i || 1, n = e.sizeZ || i || 1;\n let o = e.m || 1;\n o !== Math.floor(o) && L.Warn(\"m not an integer only floor(m) used\");\n let l = e.n || 0;\n if (l !== Math.floor(l) && L.Warn(\"n not an integer only floor(n) used\"), l > o) {\n const p = l;\n l = o, o = p, L.Warn(\"n > m therefore m and n swapped\");\n }\n const h = new R0();\n h.build(o, l);\n const c = B_.BuildGeodesicData(h), u = c.toGoldbergPolyhedronData(), d = new V_(a, t);\n e.sideOrientation = H._GetDefaultSideOrientation(e.sideOrientation), d._originalBuilderSideOrientation = e.sideOrientation, PN(e, u).applyToMesh(d, e.updatable), d.goldbergData.nbSharedFaces = c.sharedNodes, d.goldbergData.nbUnsharedFaces = c.poleNodes, d.goldbergData.adjacentFaces = c.adjacentFaces, d.goldbergData.nbFaces = d.goldbergData.nbSharedFaces + d.goldbergData.nbUnsharedFaces, d.goldbergData.nbFacesAtPole = (d.goldbergData.nbUnsharedFaces - 12) / 12;\n for (let p = 0; p < c.vertex.length; p++)\n d.goldbergData.faceCenters.push(g.FromArray(c.vertex[p])), d.goldbergData.faceCenters[p].x *= s, d.goldbergData.faceCenters[p].y *= r, d.goldbergData.faceCenters[p].z *= n, d.goldbergData.faceColors.push(new Ce(1, 1, 1, 1));\n for (let p = 0; p < u.face.length; p++) {\n const _ = u.face[p], m = g.FromArray(u.vertex[_[0]]), x = g.FromArray(u.vertex[_[2]]), v = g.FromArray(u.vertex[_[1]]), T = x.subtract(m), E = v.subtract(m), b = g.Cross(E, T).normalize(), S = g.Cross(E, b).normalize();\n d.goldbergData.faceXaxis.push(E.normalize()), d.goldbergData.faceYaxis.push(b), d.goldbergData.faceZaxis.push(S);\n }\n return d;\n}\nclass DN {\n /** Create the ShapePath used to support glyphs\n * @param resolution defines the resolution used to determine the number of points per curve (default is 4)\n */\n constructor(e) {\n this._paths = [], this._tempPaths = [], this._holes = [], this._resolution = e;\n }\n /** Move the virtual cursor to a coordinate\n * @param x defines the x coordinate\n * @param y defines the y coordinate\n */\n moveTo(e, t) {\n this._currentPath = new lf(e, t), this._tempPaths.push(this._currentPath);\n }\n /** Draw a line from the virtual cursor to a given coordinate\n * @param x defines the x coordinate\n * @param y defines the y coordinate\n */\n lineTo(e, t) {\n this._currentPath.addLineTo(e, t);\n }\n /** Create a quadratic curve from the virtual cursor to a given coordinate\n * @param cpx defines the x coordinate of the control point\n * @param cpy defines the y coordinate of the control point\n * @param x defines the x coordinate of the end point\n * @param y defines the y coordinate of the end point\n */\n quadraticCurveTo(e, t, i, s) {\n this._currentPath.addQuadraticCurveTo(e, t, i, s, this._resolution);\n }\n /**\n * Create a bezier curve from the virtual cursor to a given coordinate\n * @param cpx1 defines the x coordinate of the first control point\n * @param cpy1 defines the y coordinate of the first control point\n * @param cpx2 defines the x coordinate of the second control point\n * @param cpy2 defines the y coordinate of the second control point\n * @param x defines the x coordinate of the end point\n * @param y defines the y coordinate of the end point\n */\n bezierCurveTo(e, t, i, s, r, n) {\n this._currentPath.addBezierCurveTo(e, t, i, s, r, n, this._resolution);\n }\n /** Extract holes based on CW / CCW */\n extractHoles() {\n for (const e of this._tempPaths)\n e.area() > 0 ? this._holes.push(e) : this._paths.push(e);\n if (!this._paths.length && this._holes.length) {\n const e = this._holes;\n this._holes = this._paths, this._paths = e;\n }\n this._tempPaths.length = 0;\n }\n /** Gets the list of paths */\n get paths() {\n return this._paths;\n }\n /** Gets the list of holes */\n get holes() {\n return this._holes;\n }\n}\nfunction ON(a, e, t, i, s, r) {\n const n = r.glyphs[a] || r.glyphs[\"?\"];\n if (!n)\n return null;\n const o = new DN(s);\n if (n.o) {\n const l = n.o.split(\" \");\n for (let h = 0, c = l.length; h < c; )\n switch (l[h++]) {\n case \"m\": {\n const d = parseInt(l[h++]) * e + t, f = parseInt(l[h++]) * e + i;\n o.moveTo(d, f);\n break;\n }\n case \"l\": {\n const d = parseInt(l[h++]) * e + t, f = parseInt(l[h++]) * e + i;\n o.lineTo(d, f);\n break;\n }\n case \"q\": {\n const d = parseInt(l[h++]) * e + t, f = parseInt(l[h++]) * e + i, p = parseInt(l[h++]) * e + t, _ = parseInt(l[h++]) * e + i;\n o.quadraticCurveTo(p, _, d, f);\n break;\n }\n case \"b\": {\n const d = parseInt(l[h++]) * e + t, f = parseInt(l[h++]) * e + i, p = parseInt(l[h++]) * e + t, _ = parseInt(l[h++]) * e + i, m = parseInt(l[h++]) * e + t, x = parseInt(l[h++]) * e + i;\n o.bezierCurveTo(p, _, m, x, d, f);\n break;\n }\n }\n }\n return o.extractHoles(), { offsetX: n.ha * e, shapePath: o };\n}\nfunction I0(a, e, t, i) {\n const s = Array.from(a), r = e / i.resolution, n = (i.boundingBox.yMax - i.boundingBox.yMin + i.underlineThickness) * r, o = [];\n let l = 0, h = 0;\n for (let c = 0; c < s.length; c++) {\n const u = s[c];\n if (u === `\n`)\n l = 0, h -= n;\n else {\n const d = ON(u, r, l, h, t, i);\n d && (l += d.offsetX, o.push(d.shapePath));\n }\n }\n return o;\n}\nfunction wN(a, e, t, i = {\n size: 50,\n resolution: 8,\n depth: 1\n}, s = null, r = earcut) {\n var c, u;\n const n = I0(e, i.size || 50, i.resolution || 8, t), o = [];\n let l = 0;\n for (const d of n) {\n if (!d.paths.length)\n continue;\n const f = d.holes.slice();\n for (const p of d.paths) {\n const _ = [], m = [], x = p.getPoints();\n for (const E of x)\n m.push(new g(E.x, 0, E.y));\n const v = f.slice();\n for (const E of v) {\n const b = E.getPoints();\n let S = !1;\n for (const P of b)\n if (p.isPointInside(P)) {\n S = !0;\n break;\n }\n if (!S)\n continue;\n const C = [];\n for (const P of b)\n C.push(new g(P.x, 0, P.y));\n _.push(C), f.splice(f.indexOf(E), 1);\n }\n if (!_.length && f.length)\n for (const E of f) {\n const b = E.getPoints(), S = [];\n for (const C of b)\n S.push(new g(C.x, 0, C.y));\n _.push(S);\n }\n const T = O_(a, {\n shape: m,\n holes: _.length ? _ : void 0,\n depth: i.depth || 1,\n faceUV: i.faceUV || ((c = i.perLetterFaceUV) == null ? void 0 : c.call(i, l)),\n faceColors: i.faceColors || ((u = i.perLetterFaceColors) == null ? void 0 : u.call(i, l)),\n sideOrientation: H._GetDefaultSideOrientation(i.sideOrientation || H.DOUBLESIDE)\n }, s, r);\n o.push(T), l++;\n }\n }\n const h = H.MergeMeshes(o, !0, !0);\n if (h) {\n const d = h.getBoundingInfo().boundingBox;\n h.position.x += -(d.minimumWorld.x + d.maximumWorld.x) / 2, h.position.y += -(d.minimumWorld.y + d.maximumWorld.y) / 2, h.position.z += -(d.minimumWorld.z + d.maximumWorld.z) / 2 + d.extendSize.z, h.name = a;\n const f = new Ye(\"pivot\", s);\n f.rotation.x = -Math.PI / 2, h.parent = f, h.bakeCurrentTransformIntoVertices(), h.parent = null, f.dispose();\n }\n return h;\n}\nconst U_ = {\n CreateBox: Bl,\n CreateTiledBox: v0,\n CreateSphere: Tr,\n CreateDisc: P_,\n CreateIcoSphere: L_,\n CreateRibbon: Zo,\n CreateCylinder: hn,\n CreateTorus: Da,\n CreateTorusKnot: tv,\n CreateLineSystem: Sh,\n CreateLines: Wo,\n CreateDashedLines: iv,\n ExtrudeShape: w_,\n ExtrudeShapeCustom: N_,\n CreateLathe: sv,\n CreateTiledPlane: g0,\n CreatePlane: Ul,\n CreateGround: Sf,\n CreateTiledGround: Kx,\n CreateGroundFromHeightMap: qx,\n CreatePolygon: D_,\n ExtrudePolygon: O_,\n CreateTube: nv,\n CreatePolyhedron: F_,\n CreateGeodesic: IN,\n CreateGoldberg: MN,\n CreateDecal: ov,\n CreateCapsule: hv,\n CreateText: wN\n};\nclass Up {\n constructor() {\n this.previousWorldMatrices = {}, this.previousBones = {};\n }\n /**\n * Add the required uniforms to the current list.\n * @param uniforms defines the current uniform list.\n */\n static AddUniforms(e) {\n e.push(\"previousWorld\", \"previousViewProjection\", \"mPreviousBones\");\n }\n /**\n * Add the required samplers to the current list.\n * @param samplers defines the current sampler list.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static AddSamplers(e) {\n }\n /**\n * Binds the material data.\n * @param effect defines the effect to update\n * @param scene defines the scene the material belongs to.\n * @param mesh The mesh\n * @param world World matrix of this mesh\n * @param isFrozen Is the material frozen\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n bindForSubMesh(e, t, i, s, r) {\n if (t.prePassRenderer && t.prePassRenderer.enabled && t.prePassRenderer.currentRTisSceneRT && t.prePassRenderer.getIndex(2) !== -1) {\n this.previousWorldMatrices[i.uniqueId] || (this.previousWorldMatrices[i.uniqueId] = s.clone()), this.previousViewProjection || (this.previousViewProjection = t.getTransformMatrix().clone(), this.currentViewProjection = t.getTransformMatrix().clone());\n const n = t.getEngine();\n this.currentViewProjection.updateFlag !== t.getTransformMatrix().updateFlag ? (this._lastUpdateFrameId = n.frameId, this.previousViewProjection.copyFrom(this.currentViewProjection), this.currentViewProjection.copyFrom(t.getTransformMatrix())) : this._lastUpdateFrameId !== n.frameId && (this._lastUpdateFrameId = n.frameId, this.previousViewProjection.copyFrom(this.currentViewProjection)), e.setMatrix(\"previousWorld\", this.previousWorldMatrices[i.uniqueId]), e.setMatrix(\"previousViewProjection\", this.previousViewProjection), this.previousWorldMatrices[i.uniqueId] = s.clone();\n }\n }\n}\nclass dr {\n /**\n * Creates a new instance\n * @param externalProperties list of external properties to inject into the object\n */\n constructor(e) {\n if (this._keys = [], this._isDirty = !0, this._areLightsDirty = !0, this._areLightsDisposed = !1, this._areAttributesDirty = !0, this._areTexturesDirty = !0, this._areFresnelDirty = !0, this._areMiscDirty = !0, this._arePrePassDirty = !0, this._areImageProcessingDirty = !0, this._normals = !1, this._uvs = !1, this._needNormals = !1, this._needUVs = !1, this._externalProperties = e, e)\n for (const t in e)\n Object.prototype.hasOwnProperty.call(e, t) && this._setDefaultValue(t);\n }\n /**\n * Specifies if the material needs to be re-calculated\n */\n get isDirty() {\n return this._isDirty;\n }\n /**\n * Marks the material to indicate that it has been re-calculated\n */\n markAsProcessed() {\n this._isDirty = !1, this._areAttributesDirty = !1, this._areTexturesDirty = !1, this._areFresnelDirty = !1, this._areLightsDirty = !1, this._areLightsDisposed = !1, this._areMiscDirty = !1, this._arePrePassDirty = !1, this._areImageProcessingDirty = !1;\n }\n /**\n * Marks the material to indicate that it needs to be re-calculated\n */\n markAsUnprocessed() {\n this._isDirty = !0;\n }\n /**\n * Marks the material to indicate all of its defines need to be re-calculated\n */\n markAllAsDirty() {\n this._areTexturesDirty = !0, this._areAttributesDirty = !0, this._areLightsDirty = !0, this._areFresnelDirty = !0, this._areMiscDirty = !0, this._arePrePassDirty = !1, this._areImageProcessingDirty = !0, this._isDirty = !0;\n }\n /**\n * Marks the material to indicate that image processing needs to be re-calculated\n */\n markAsImageProcessingDirty() {\n this._areImageProcessingDirty = !0, this._isDirty = !0;\n }\n /**\n * Marks the material to indicate the lights need to be re-calculated\n * @param disposed Defines whether the light is dirty due to dispose or not\n */\n markAsLightDirty(e = !1) {\n this._areLightsDirty = !0, this._areLightsDisposed = this._areLightsDisposed || e, this._isDirty = !0;\n }\n /**\n * Marks the attribute state as changed\n */\n markAsAttributesDirty() {\n this._areAttributesDirty = !0, this._isDirty = !0;\n }\n /**\n * Marks the texture state as changed\n */\n markAsTexturesDirty() {\n this._areTexturesDirty = !0, this._isDirty = !0;\n }\n /**\n * Marks the fresnel state as changed\n */\n markAsFresnelDirty() {\n this._areFresnelDirty = !0, this._isDirty = !0;\n }\n /**\n * Marks the misc state as changed\n */\n markAsMiscDirty() {\n this._areMiscDirty = !0, this._isDirty = !0;\n }\n /**\n * Marks the prepass state as changed\n */\n markAsPrePassDirty() {\n this._arePrePassDirty = !0, this._isDirty = !0;\n }\n /**\n * Rebuilds the material defines\n */\n rebuild() {\n this._keys.length = 0;\n for (const e of Object.keys(this))\n e[0] !== \"_\" && this._keys.push(e);\n if (this._externalProperties)\n for (const e in this._externalProperties)\n this._keys.indexOf(e) === -1 && this._keys.push(e);\n }\n /**\n * Specifies if two material defines are equal\n * @param other - A material define instance to compare to\n * @returns - Boolean indicating if the material defines are equal (true) or not (false)\n */\n isEqual(e) {\n if (this._keys.length !== e._keys.length)\n return !1;\n for (let t = 0; t < this._keys.length; t++) {\n const i = this._keys[t];\n if (this[i] !== e[i])\n return !1;\n }\n return !0;\n }\n /**\n * Clones this instance's defines to another instance\n * @param other - material defines to clone values to\n */\n cloneTo(e) {\n this._keys.length !== e._keys.length && (e._keys = this._keys.slice(0));\n for (let t = 0; t < this._keys.length; t++) {\n const i = this._keys[t];\n e[i] = this[i];\n }\n }\n /**\n * Resets the material define values\n */\n reset() {\n this._keys.forEach((e) => this._setDefaultValue(e));\n }\n _setDefaultValue(e) {\n var s, r, n, o;\n const t = ((r = (s = this._externalProperties) == null ? void 0 : s[e]) == null ? void 0 : r.type) ?? typeof this[e], i = (o = (n = this._externalProperties) == null ? void 0 : n[e]) == null ? void 0 : o.default;\n switch (t) {\n case \"number\":\n this[e] = i ?? 0;\n break;\n case \"string\":\n this[e] = i ?? \"\";\n break;\n default:\n this[e] = i ?? !1;\n break;\n }\n }\n /**\n * Converts the material define values to a string\n * @returns - String of material define information\n */\n toString() {\n let e = \"\";\n for (let t = 0; t < this._keys.length; t++) {\n const i = this._keys[t], s = this[i];\n switch (typeof s) {\n case \"number\":\n case \"string\":\n e += \"#define \" + i + \" \" + s + `\n`;\n break;\n default:\n s && (e += \"#define \" + i + `\n`);\n break;\n }\n }\n return e;\n }\n}\nclass xe {\n /**\n * Are diffuse textures enabled in the application.\n */\n static get DiffuseTextureEnabled() {\n return this._DiffuseTextureEnabled;\n }\n static set DiffuseTextureEnabled(e) {\n this._DiffuseTextureEnabled !== e && (this._DiffuseTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are detail textures enabled in the application.\n */\n static get DetailTextureEnabled() {\n return this._DetailTextureEnabled;\n }\n static set DetailTextureEnabled(e) {\n this._DetailTextureEnabled !== e && (this._DetailTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are decal maps enabled in the application.\n */\n static get DecalMapEnabled() {\n return this._DecalMapEnabled;\n }\n static set DecalMapEnabled(e) {\n this._DecalMapEnabled !== e && (this._DecalMapEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are ambient textures enabled in the application.\n */\n static get AmbientTextureEnabled() {\n return this._AmbientTextureEnabled;\n }\n static set AmbientTextureEnabled(e) {\n this._AmbientTextureEnabled !== e && (this._AmbientTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are opacity textures enabled in the application.\n */\n static get OpacityTextureEnabled() {\n return this._OpacityTextureEnabled;\n }\n static set OpacityTextureEnabled(e) {\n this._OpacityTextureEnabled !== e && (this._OpacityTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are reflection textures enabled in the application.\n */\n static get ReflectionTextureEnabled() {\n return this._ReflectionTextureEnabled;\n }\n static set ReflectionTextureEnabled(e) {\n this._ReflectionTextureEnabled !== e && (this._ReflectionTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are emissive textures enabled in the application.\n */\n static get EmissiveTextureEnabled() {\n return this._EmissiveTextureEnabled;\n }\n static set EmissiveTextureEnabled(e) {\n this._EmissiveTextureEnabled !== e && (this._EmissiveTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are specular textures enabled in the application.\n */\n static get SpecularTextureEnabled() {\n return this._SpecularTextureEnabled;\n }\n static set SpecularTextureEnabled(e) {\n this._SpecularTextureEnabled !== e && (this._SpecularTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are bump textures enabled in the application.\n */\n static get BumpTextureEnabled() {\n return this._BumpTextureEnabled;\n }\n static set BumpTextureEnabled(e) {\n this._BumpTextureEnabled !== e && (this._BumpTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are lightmap textures enabled in the application.\n */\n static get LightmapTextureEnabled() {\n return this._LightmapTextureEnabled;\n }\n static set LightmapTextureEnabled(e) {\n this._LightmapTextureEnabled !== e && (this._LightmapTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are refraction textures enabled in the application.\n */\n static get RefractionTextureEnabled() {\n return this._RefractionTextureEnabled;\n }\n static set RefractionTextureEnabled(e) {\n this._RefractionTextureEnabled !== e && (this._RefractionTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are color grading textures enabled in the application.\n */\n static get ColorGradingTextureEnabled() {\n return this._ColorGradingTextureEnabled;\n }\n static set ColorGradingTextureEnabled(e) {\n this._ColorGradingTextureEnabled !== e && (this._ColorGradingTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are fresnels enabled in the application.\n */\n static get FresnelEnabled() {\n return this._FresnelEnabled;\n }\n static set FresnelEnabled(e) {\n this._FresnelEnabled !== e && (this._FresnelEnabled = e, ee.MarkAllMaterialsAsDirty(4));\n }\n /**\n * Are clear coat textures enabled in the application.\n */\n static get ClearCoatTextureEnabled() {\n return this._ClearCoatTextureEnabled;\n }\n static set ClearCoatTextureEnabled(e) {\n this._ClearCoatTextureEnabled !== e && (this._ClearCoatTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are clear coat bump textures enabled in the application.\n */\n static get ClearCoatBumpTextureEnabled() {\n return this._ClearCoatBumpTextureEnabled;\n }\n static set ClearCoatBumpTextureEnabled(e) {\n this._ClearCoatBumpTextureEnabled !== e && (this._ClearCoatBumpTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are clear coat tint textures enabled in the application.\n */\n static get ClearCoatTintTextureEnabled() {\n return this._ClearCoatTintTextureEnabled;\n }\n static set ClearCoatTintTextureEnabled(e) {\n this._ClearCoatTintTextureEnabled !== e && (this._ClearCoatTintTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are sheen textures enabled in the application.\n */\n static get SheenTextureEnabled() {\n return this._SheenTextureEnabled;\n }\n static set SheenTextureEnabled(e) {\n this._SheenTextureEnabled !== e && (this._SheenTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are anisotropic textures enabled in the application.\n */\n static get AnisotropicTextureEnabled() {\n return this._AnisotropicTextureEnabled;\n }\n static set AnisotropicTextureEnabled(e) {\n this._AnisotropicTextureEnabled !== e && (this._AnisotropicTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are thickness textures enabled in the application.\n */\n static get ThicknessTextureEnabled() {\n return this._ThicknessTextureEnabled;\n }\n static set ThicknessTextureEnabled(e) {\n this._ThicknessTextureEnabled !== e && (this._ThicknessTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are refraction intensity textures enabled in the application.\n */\n static get RefractionIntensityTextureEnabled() {\n return this._ThicknessTextureEnabled;\n }\n static set RefractionIntensityTextureEnabled(e) {\n this._RefractionIntensityTextureEnabled !== e && (this._RefractionIntensityTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are translucency intensity textures enabled in the application.\n */\n static get TranslucencyIntensityTextureEnabled() {\n return this._TranslucencyIntensityTextureEnabled;\n }\n static set TranslucencyIntensityTextureEnabled(e) {\n this._TranslucencyIntensityTextureEnabled !== e && (this._TranslucencyIntensityTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are translucency tint textures enabled in the application.\n */\n static get TranslucencyColorTextureEnabled() {\n return this._TranslucencyColorTextureEnabled;\n }\n static set TranslucencyColorTextureEnabled(e) {\n this._TranslucencyColorTextureEnabled !== e && (this._TranslucencyColorTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n /**\n * Are translucency intensity textures enabled in the application.\n */\n static get IridescenceTextureEnabled() {\n return this._IridescenceTextureEnabled;\n }\n static set IridescenceTextureEnabled(e) {\n this._IridescenceTextureEnabled !== e && (this._IridescenceTextureEnabled = e, ee.MarkAllMaterialsAsDirty(1));\n }\n}\nxe._DiffuseTextureEnabled = !0;\nxe._DetailTextureEnabled = !0;\nxe._DecalMapEnabled = !0;\nxe._AmbientTextureEnabled = !0;\nxe._OpacityTextureEnabled = !0;\nxe._ReflectionTextureEnabled = !0;\nxe._EmissiveTextureEnabled = !0;\nxe._SpecularTextureEnabled = !0;\nxe._BumpTextureEnabled = !0;\nxe._LightmapTextureEnabled = !0;\nxe._RefractionTextureEnabled = !0;\nxe._ColorGradingTextureEnabled = !0;\nxe._FresnelEnabled = !0;\nxe._ClearCoatTextureEnabled = !0;\nxe._ClearCoatBumpTextureEnabled = !0;\nxe._ClearCoatTintTextureEnabled = !0;\nxe._SheenTextureEnabled = !0;\nxe._AnisotropicTextureEnabled = !0;\nxe._ThicknessTextureEnabled = !0;\nxe._RefractionIntensityTextureEnabled = !0;\nxe._TranslucencyIntensityTextureEnabled = !0;\nxe._TranslucencyColorTextureEnabled = !0;\nxe._IridescenceTextureEnabled = !0;\nconst NN = \"decalFragmentDeclaration\", FN = `#ifdef DECAL\nuniform vec4 vDecalInfos;\n#endif\n`;\nz.IncludesShadersStore[NN] = FN;\nconst LN = \"defaultFragmentDeclaration\", BN = `uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;\n#ifdef SPECULARTERM\nuniform vec4 vSpecularColor;\n#endif\nuniform vec3 vEmissiveColor;uniform vec3 vAmbientColor;uniform float visibility;\n#ifdef DIFFUSE\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef AMBIENT\nuniform vec2 vAmbientInfos;\n#endif\n#ifdef OPACITY \nuniform vec2 vOpacityInfos;\n#endif\n#ifdef EMISSIVE\nuniform vec2 vEmissiveInfos;\n#endif\n#ifdef LIGHTMAP\nuniform vec2 vLightmapInfos;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;uniform vec2 vTangentSpaceParams;\n#endif\n#ifdef ALPHATEST\nuniform float alphaCutOff;\n#endif\n#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(REFRACTION) || defined(PREPASS)\nuniform mat4 view;\n#endif\n#ifdef REFRACTION\nuniform vec4 vRefractionInfos;\n#ifndef REFRACTIONMAP_3D\nuniform mat4 refractionMatrix;\n#endif\n#ifdef REFRACTIONFRESNEL\nuniform vec4 refractionLeftColor;uniform vec4 refractionRightColor;\n#endif\n#if defined(USE_LOCAL_REFRACTIONMAP_CUBIC) && defined(REFRACTIONMAP_3D)\nuniform vec3 vRefractionPosition;uniform vec3 vRefractionSize; \n#endif\n#endif\n#if defined(SPECULAR) && defined(SPECULARTERM)\nuniform vec2 vSpecularInfos;\n#endif\n#ifdef DIFFUSEFRESNEL\nuniform vec4 diffuseLeftColor;uniform vec4 diffuseRightColor;\n#endif\n#ifdef OPACITYFRESNEL\nuniform vec4 opacityParts;\n#endif\n#ifdef EMISSIVEFRESNEL\nuniform vec4 emissiveLeftColor;uniform vec4 emissiveRightColor;\n#endif\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;\n#if defined(REFLECTIONMAP_PLANAR) || defined(REFLECTIONMAP_CUBIC) || defined(REFLECTIONMAP_PROJECTION) || defined(REFLECTIONMAP_EQUIRECTANGULAR) || defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_SKYBOX)\nuniform mat4 reflectionMatrix;\n#endif\n#ifndef REFLECTIONMAP_SKYBOX\n#if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC)\nuniform vec3 vReflectionPosition;uniform vec3 vReflectionSize; \n#endif\n#endif\n#ifdef REFLECTIONFRESNEL\nuniform vec4 reflectionLeftColor;uniform vec4 reflectionRightColor;\n#endif\n#endif\n#ifdef DETAIL\nuniform vec4 vDetailInfos;\n#endif\n#include\n#define ADDITIONAL_FRAGMENT_DECLARATION\n`;\nz.IncludesShadersStore[LN] = BN;\nconst VN = \"sceneUboDeclaration\", UN = `layout(std140,column_major) uniform;uniform Scene {mat4 viewProjection;\n#ifdef MULTIVIEW\nmat4 viewProjectionR;\n#endif \nmat4 view;mat4 projection;vec4 vEyePosition;};\n`;\nz.IncludesShadersStore[VN] = UN;\nconst kN = \"meshUboDeclaration\", GN = `#ifdef WEBGL2\nuniform mat4 world;uniform float visibility;\n#else\nlayout(std140,column_major) uniform;uniform Mesh\n{mat4 world;float visibility;};\n#endif\n#define WORLD_UBO\n`;\nz.IncludesShadersStore[kN] = GN;\nconst zN = \"defaultUboDeclaration\", WN = `layout(std140,column_major) uniform;uniform Material\n{vec4 diffuseLeftColor;vec4 diffuseRightColor;vec4 opacityParts;vec4 reflectionLeftColor;vec4 reflectionRightColor;vec4 refractionLeftColor;vec4 refractionRightColor;vec4 emissiveLeftColor;vec4 emissiveRightColor;vec2 vDiffuseInfos;vec2 vAmbientInfos;vec2 vOpacityInfos;vec2 vReflectionInfos;vec3 vReflectionPosition;vec3 vReflectionSize;vec2 vEmissiveInfos;vec2 vLightmapInfos;vec2 vSpecularInfos;vec3 vBumpInfos;mat4 diffuseMatrix;mat4 ambientMatrix;mat4 opacityMatrix;mat4 reflectionMatrix;mat4 emissiveMatrix;mat4 lightmapMatrix;mat4 specularMatrix;mat4 bumpMatrix;vec2 vTangentSpaceParams;float pointSize;float alphaCutOff;mat4 refractionMatrix;vec4 vRefractionInfos;vec3 vRefractionPosition;vec3 vRefractionSize;vec4 vSpecularColor;vec3 vEmissiveColor;vec4 vDiffuseColor;vec3 vAmbientColor;\n#define ADDITIONAL_UBO_DECLARATION\n};\n#include\n#include\n`;\nz.IncludesShadersStore[zN] = WN;\nconst HN = \"prePassDeclaration\", XN = `#ifdef PREPASS\n#extension GL_EXT_draw_buffers : require\nlayout(location=0) out highp vec4 glFragData[{X}];highp vec4 gl_FragColor;\n#ifdef PREPASS_DEPTH\nvarying highp vec3 vViewPos;\n#endif\n#ifdef PREPASS_VELOCITY\nvarying highp vec4 vCurrentPosition;varying highp vec4 vPreviousPosition;\n#endif\n#endif\n`;\nz.IncludesShadersStore[HN] = XN;\nconst $N = \"oitDeclaration\", YN = `#ifdef ORDER_INDEPENDENT_TRANSPARENCY\n#extension GL_EXT_draw_buffers : require\nlayout(location=0) out vec2 depth; \nlayout(location=1) out vec4 frontColor;layout(location=2) out vec4 backColor;\n#define MAX_DEPTH 99999.0\nhighp vec4 gl_FragColor;uniform sampler2D oitDepthSampler;uniform sampler2D oitFrontColorSampler;\n#endif\n`;\nz.IncludesShadersStore[$N] = YN;\nconst jN = \"mainUVVaryingDeclaration\", KN = `#ifdef MAINUV{X}\nvarying vec2 vMainUV{X};\n#endif\n`;\nz.IncludesShadersStore[jN] = KN;\nconst qN = \"helperFunctions\", QN = `const float PI=3.1415926535897932384626433832795;const float RECIPROCAL_PI=0.3183098861837907;const float RECIPROCAL_PI2=0.15915494309189535;const float HALF_MIN=5.96046448e-08; \nconst float LinearEncodePowerApprox=2.2;const float GammaEncodePowerApprox=1.0/LinearEncodePowerApprox;const vec3 LuminanceEncodeApprox=vec3(0.2126,0.7152,0.0722);const float Epsilon=0.0000001;\n#define saturate(x) clamp(x,0.0,1.0)\n#define absEps(x) abs(x)+Epsilon\n#define maxEps(x) max(x,Epsilon)\n#define saturateEps(x) clamp(x,Epsilon,1.0)\nmat3 transposeMat3(mat3 inMatrix) {vec3 i0=inMatrix[0];vec3 i1=inMatrix[1];vec3 i2=inMatrix[2];mat3 outMatrix=mat3(\nvec3(i0.x,i1.x,i2.x),\nvec3(i0.y,i1.y,i2.y),\nvec3(i0.z,i1.z,i2.z)\n);return outMatrix;}\nmat3 inverseMat3(mat3 inMatrix) {float a00=inMatrix[0][0],a01=inMatrix[0][1],a02=inMatrix[0][2];float a10=inMatrix[1][0],a11=inMatrix[1][1],a12=inMatrix[1][2];float a20=inMatrix[2][0],a21=inMatrix[2][1],a22=inMatrix[2][2];float b01=a22*a11-a12*a21;float b11=-a22*a10+a12*a20;float b21=a21*a10-a11*a20;float det=a00*b01+a01*b11+a02*b21;return mat3(b01,(-a22*a01+a02*a21),(a12*a01-a02*a11),\nb11,(a22*a00-a02*a20),(-a12*a00+a02*a10),\nb21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;}\n#if USE_EXACT_SRGB_CONVERSIONS\nvec3 toLinearSpaceExact(vec3 color)\n{vec3 nearZeroSection=0.0773993808*color;vec3 remainingSection=pow(0.947867299*(color+vec3(0.055)),vec3(2.4));\n#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\nreturn mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.04045)));\n#else\nreturn\nvec3(\ncolor.r<=0.04045 ? nearZeroSection.r : remainingSection.r,\ncolor.g<=0.04045 ? nearZeroSection.g : remainingSection.g,\ncolor.b<=0.04045 ? nearZeroSection.b : remainingSection.b);\n#endif\n}\nvec3 toGammaSpaceExact(vec3 color)\n{vec3 nearZeroSection=12.92*color;vec3 remainingSection=1.055*pow(color,vec3(0.41666))-vec3(0.055);\n#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\nreturn mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.0031308)));\n#else\nreturn\nvec3(\ncolor.r<=0.0031308 ? nearZeroSection.r : remainingSection.r,\ncolor.g<=0.0031308 ? nearZeroSection.g : remainingSection.g,\ncolor.b<=0.0031308 ? nearZeroSection.b : remainingSection.b);\n#endif\n}\n#endif\nfloat toLinearSpace(float color)\n{\n#if USE_EXACT_SRGB_CONVERSIONS\nfloat nearZeroSection=0.0773993808*color;float remainingSection=pow(0.947867299*(color+0.055),2.4);return color<=0.04045 ? nearZeroSection : remainingSection;\n#else\nreturn pow(color,LinearEncodePowerApprox);\n#endif\n}\nvec3 toLinearSpace(vec3 color)\n{\n#if USE_EXACT_SRGB_CONVERSIONS\nreturn toLinearSpaceExact(color);\n#else\nreturn pow(color,vec3(LinearEncodePowerApprox));\n#endif\n}\nvec4 toLinearSpace(vec4 color)\n{\n#if USE_EXACT_SRGB_CONVERSIONS\nreturn vec4(toLinearSpaceExact(color.rgb),color.a);\n#else\nreturn vec4(pow(color.rgb,vec3(LinearEncodePowerApprox)),color.a);\n#endif\n}\nfloat toGammaSpace(float color)\n{\n#if USE_EXACT_SRGB_CONVERSIONS\nfloat nearZeroSection=12.92*color;float remainingSection=1.055*pow(color,0.41666)-0.055;return color<=0.0031308 ? nearZeroSection : remainingSection;\n#else\nreturn pow(color,GammaEncodePowerApprox);\n#endif\n}\nvec3 toGammaSpace(vec3 color)\n{\n#if USE_EXACT_SRGB_CONVERSIONS\nreturn toGammaSpaceExact(color);\n#else\nreturn pow(color,vec3(GammaEncodePowerApprox));\n#endif\n}\nvec4 toGammaSpace(vec4 color)\n{\n#if USE_EXACT_SRGB_CONVERSIONS\nreturn vec4(toGammaSpaceExact(color.rgb),color.a);\n#else\nreturn vec4(pow(color.rgb,vec3(GammaEncodePowerApprox)),color.a);\n#endif\n}\nfloat square(float value)\n{return value*value;}\nvec3 square(vec3 value)\n{return value*value;}\nfloat pow5(float value) {float sq=value*value;return sq*sq*value;}\nfloat getLuminance(vec3 color)\n{return clamp(dot(color,LuminanceEncodeApprox),0.,1.);}\nfloat getRand(vec2 seed) {return fract(sin(dot(seed.xy ,vec2(12.9898,78.233)))*43758.5453);}\nfloat dither(vec2 seed,float varianceAmount) {float rand=getRand(seed);float normVariance=varianceAmount/255.0;float dither=mix(-normVariance,normVariance,rand);return dither;}\nconst float rgbdMaxRange=255.0;vec4 toRGBD(vec3 color) {float maxRGB=maxEps(max(color.r,max(color.g,color.b)));float D =max(rgbdMaxRange/maxRGB,1.);D =clamp(floor(D)/255.0,0.,1.);vec3 rgb=color.rgb*D;rgb=toGammaSpace(rgb);return vec4(clamp(rgb,0.,1.),D); }\nvec3 fromRGBD(vec4 rgbd) {rgbd.rgb=toLinearSpace(rgbd.rgb);return rgbd.rgb/rgbd.a;}\nvec3 parallaxCorrectNormal( vec3 vertexPos,vec3 origVec,vec3 cubeSize,vec3 cubePos ) {vec3 invOrigVec=vec3(1.0,1.0,1.0)/origVec;vec3 halfSize=cubeSize*0.5;vec3 intersecAtMaxPlane=(cubePos+halfSize-vertexPos)*invOrigVec;vec3 intersecAtMinPlane=(cubePos-halfSize-vertexPos)*invOrigVec;vec3 largestIntersec=max(intersecAtMaxPlane,intersecAtMinPlane);float distance=min(min(largestIntersec.x,largestIntersec.y),largestIntersec.z);vec3 intersectPositionWS=vertexPos+origVec*distance;return intersectPositionWS-cubePos;}\n`;\nz.IncludesShadersStore[qN] = QN;\nconst ZN = \"lightFragmentDeclaration\", JN = `#ifdef LIGHT{X}\nuniform vec4 vLightData{X};uniform vec4 vLightDiffuse{X};\n#ifdef SPECULARTERM\nuniform vec4 vLightSpecular{X};\n#else\nvec4 vLightSpecular{X}=vec4(0.);\n#endif\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nuniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];uniform float viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];uniform float frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];uniform float cascadeBlendFactor{X};varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};\n#if defined(SHADOWPCSS{X})\nuniform highp sampler2DArrayShadow shadowTexture{X};uniform highp sampler2DArray depthTexture{X};uniform vec2 lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];uniform float depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];uniform float penumbraDarkness{X};\n#elif defined(SHADOWPCF{X})\nuniform highp sampler2DArrayShadow shadowTexture{X};\n#else\nuniform highp sampler2DArray shadowTexture{X};\n#endif\n#ifdef SHADOWCSMDEBUG{X}\nconst vec3 vCascadeColorsMultiplier{X}[8]=vec3[8]\n(\nvec3 ( 1.5,0.0,0.0 ),\nvec3 ( 0.0,1.5,0.0 ),\nvec3 ( 0.0,0.0,5.5 ),\nvec3 ( 1.5,0.0,5.5 ),\nvec3 ( 1.5,1.5,0.0 ),\nvec3 ( 1.0,1.0,1.0 ),\nvec3 ( 0.0,1.0,5.5 ),\nvec3 ( 0.5,3.5,0.75 )\n);vec3 shadowDebug{X};\n#endif\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\nint index{X}=-1;\n#else\nint index{X}=SHADOWCSMNUM_CASCADES{X}-1;\n#endif\nfloat diff{X}=0.;\n#elif defined(SHADOWCUBE{X})\nuniform samplerCube shadowTexture{X};\n#else\nvarying vec4 vPositionFromLight{X};varying float vDepthMetric{X};\n#if defined(SHADOWPCSS{X})\nuniform highp sampler2DShadow shadowTexture{X};uniform highp sampler2D depthTexture{X};\n#elif defined(SHADOWPCF{X})\nuniform highp sampler2DShadow shadowTexture{X};\n#else\nuniform sampler2D shadowTexture{X};\n#endif\nuniform mat4 lightMatrix{X};\n#endif\nuniform vec4 shadowsInfo{X};uniform vec2 depthValues{X};\n#endif\n#ifdef SPOTLIGHT{X}\nuniform vec4 vLightDirection{X};uniform vec4 vLightFalloff{X};\n#elif defined(POINTLIGHT{X})\nuniform vec4 vLightFalloff{X};\n#elif defined(HEMILIGHT{X})\nuniform vec3 vLightGround{X};\n#endif\n#ifdef PROJECTEDLIGHTTEXTURE{X}\nuniform mat4 textureProjectionMatrix{X};uniform sampler2D projectionLightTexture{X};\n#endif\n#endif\n`;\nz.IncludesShadersStore[ZN] = JN;\nconst eF = \"lightUboDeclaration\", tF = `#ifdef LIGHT{X}\nuniform Light{X}\n{vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;\n#ifdef SPOTLIGHT{X}\nvec4 vLightDirection;vec4 vLightFalloff;\n#elif defined(POINTLIGHT{X})\nvec4 vLightFalloff;\n#elif defined(HEMILIGHT{X})\nvec3 vLightGround;\n#endif\nvec4 shadowsInfo;vec2 depthValues;} light{X};\n#ifdef PROJECTEDLIGHTTEXTURE{X}\nuniform mat4 textureProjectionMatrix{X};uniform sampler2D projectionLightTexture{X};\n#endif\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nuniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];uniform float viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];uniform float frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];uniform float cascadeBlendFactor{X};varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};\n#if defined(SHADOWPCSS{X})\nuniform highp sampler2DArrayShadow shadowTexture{X};uniform highp sampler2DArray depthTexture{X};uniform vec2 lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];uniform float depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];uniform float penumbraDarkness{X};\n#elif defined(SHADOWPCF{X})\nuniform highp sampler2DArrayShadow shadowTexture{X};\n#else\nuniform highp sampler2DArray shadowTexture{X};\n#endif\n#ifdef SHADOWCSMDEBUG{X}\nconst vec3 vCascadeColorsMultiplier{X}[8]=vec3[8]\n(\nvec3 ( 1.5,0.0,0.0 ),\nvec3 ( 0.0,1.5,0.0 ),\nvec3 ( 0.0,0.0,5.5 ),\nvec3 ( 1.5,0.0,5.5 ),\nvec3 ( 1.5,1.5,0.0 ),\nvec3 ( 1.0,1.0,1.0 ),\nvec3 ( 0.0,1.0,5.5 ),\nvec3 ( 0.5,3.5,0.75 )\n);vec3 shadowDebug{X};\n#endif\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\nint index{X}=-1;\n#else\nint index{X}=SHADOWCSMNUM_CASCADES{X}-1;\n#endif\nfloat diff{X}=0.;\n#elif defined(SHADOWCUBE{X})\nuniform samplerCube shadowTexture{X}; \n#else\nvarying vec4 vPositionFromLight{X};varying float vDepthMetric{X};\n#if defined(SHADOWPCSS{X})\nuniform highp sampler2DShadow shadowTexture{X};uniform highp sampler2D depthTexture{X};\n#elif defined(SHADOWPCF{X})\nuniform highp sampler2DShadow shadowTexture{X};\n#else\nuniform sampler2D shadowTexture{X};\n#endif\nuniform mat4 lightMatrix{X};\n#endif\n#endif\n#endif\n`;\nz.IncludesShadersStore[eF] = tF;\nconst iF = \"lightsFragmentFunctions\", sF = `struct lightingInfo\n{vec3 diffuse;\n#ifdef SPECULARTERM\nvec3 specular;\n#endif\n#ifdef NDOTL\nfloat ndl;\n#endif\n};lightingInfo computeLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,float range,float glossiness) {lightingInfo result;vec3 lightVectorW;float attenuation=1.0;if (lightData.w==0.)\n{vec3 direction=lightData.xyz-vPositionW;attenuation=max(0.,1.0-length(direction)/range);lightVectorW=normalize(direction);}\nelse\n{lightVectorW=normalize(-lightData.xyz);}\nfloat ndl=max(0.,dot(vNormal,lightVectorW));\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=ndl*diffuseColor*attenuation;\n#ifdef SPECULARTERM\nvec3 angleW=normalize(viewDirectionW+lightVectorW);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor*attenuation;\n#endif\nreturn result;}\nlightingInfo computeSpotLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec4 lightDirection,vec3 diffuseColor,vec3 specularColor,float range,float glossiness) {lightingInfo result;vec3 direction=lightData.xyz-vPositionW;vec3 lightVectorW=normalize(direction);float attenuation=max(0.,1.0-length(direction)/range);float cosAngle=max(0.,dot(lightDirection.xyz,-lightVectorW));if (cosAngle>=lightDirection.w)\n{cosAngle=max(0.,pow(cosAngle,lightData.w));attenuation*=cosAngle;float ndl=max(0.,dot(vNormal,lightVectorW));\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=ndl*diffuseColor*attenuation;\n#ifdef SPECULARTERM\nvec3 angleW=normalize(viewDirectionW+lightVectorW);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor*attenuation;\n#endif\nreturn result;}\nresult.diffuse=vec3(0.);\n#ifdef SPECULARTERM\nresult.specular=vec3(0.);\n#endif\n#ifdef NDOTL\nresult.ndl=0.;\n#endif\nreturn result;}\nlightingInfo computeHemisphericLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,vec3 groundColor,float glossiness) {lightingInfo result;float ndl=dot(vNormal,lightData.xyz)*0.5+0.5;\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=mix(groundColor,diffuseColor,ndl);\n#ifdef SPECULARTERM\nvec3 angleW=normalize(viewDirectionW+lightData.xyz);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor;\n#endif\nreturn result;}\n#define inline\nvec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix){vec4 strq=textureProjectionMatrix*vec4(vPositionW,1.0);strq/=strq.w;vec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;return textureColor;}`;\nz.IncludesShadersStore[iF] = sF;\nconst rF = \"shadowsFragmentFunctions\", nF = `#ifdef SHADOWS\n#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\n#define TEXTUREFUNC(s,c,l) texture2DLodEXT(s,c,l)\n#else\n#define TEXTUREFUNC(s,c,b) texture2D(s,c,b)\n#endif\n#ifndef SHADOWFLOAT\nfloat unpack(vec4 color)\n{const vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(color,bit_shift);}\n#endif\nfloat computeFallOff(float value,vec2 clipSpace,float frustumEdgeFalloff)\n{float mask=smoothstep(1.0-frustumEdgeFalloff,1.00000012,clamp(dot(clipSpace,clipSpace),0.,1.));return mix(value,1.0,mask);}\n#define inline\nfloat computeShadowCube(vec3 worldPos,vec3 lightPosition,samplerCube shadowSampler,float darkness,vec2 depthValues)\n{vec3 directionToLight=worldPos-lightPosition;float depth=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);depth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;\n#ifndef SHADOWFLOAT\nfloat shadow=unpack(textureCube(shadowSampler,directionToLight));\n#else\nfloat shadow=textureCube(shadowSampler,directionToLight).x;\n#endif\nreturn depth>shadow ? darkness : 1.0;}\n#define inline\nfloat computeShadowWithPoissonSamplingCube(vec3 worldPos,vec3 lightPosition,samplerCube shadowSampler,float mapSize,float darkness,vec2 depthValues)\n{vec3 directionToLight=worldPos-lightPosition;float depth=length(directionToLight);depth=(depth+depthValues.x)/(depthValues.y);depth=clamp(depth,0.,1.0);directionToLight=normalize(directionToLight);directionToLight.y=-directionToLight.y;float visibility=1.;vec3 poissonDisk[4];poissonDisk[0]=vec3(-1.0,1.0,-1.0);poissonDisk[1]=vec3(1.0,-1.0,-1.0);poissonDisk[2]=vec3(-1.0,-1.0,-1.0);poissonDisk[3]=vec3(1.0,-1.0,1.0);\n#ifndef SHADOWFLOAT\nif (unpack(textureCube(shadowSampler,directionToLight+poissonDisk[0]*mapSize))shadow ? computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff) : 1.;}\n#endif\n#define inline\nfloat computeShadow(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float frustumEdgeFalloff)\n{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec2 uv=0.5*clipSpace.xy+vec2(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\n{return 1.0;}\nelse\n{float shadowPixelDepth=clamp(depthMetric,0.,1.0);\n#ifndef SHADOWFLOAT\nfloat shadow=unpack(TEXTUREFUNC(shadowSampler,uv,0.));\n#else\nfloat shadow=TEXTUREFUNC(shadowSampler,uv,0.).x;\n#endif\nreturn shadowPixelDepth>shadow ? computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff) : 1.;}}\n#define inline\nfloat computeShadowWithPoissonSampling(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float mapSize,float darkness,float frustumEdgeFalloff)\n{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec2 uv=0.5*clipSpace.xy+vec2(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\n{return 1.0;}\nelse\n{float shadowPixelDepth=clamp(depthMetric,0.,1.0);float visibility=1.;vec2 poissonDisk[4];poissonDisk[0]=vec2(-0.94201624,-0.39906216);poissonDisk[1]=vec2(0.94558609,-0.76890725);poissonDisk[2]=vec2(-0.094184101,-0.92938870);poissonDisk[3]=vec2(0.34495938,0.29387760);\n#ifndef SHADOWFLOAT\nif (unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[0]*mapSize,0.))1.0 || uv.y<0. || uv.y>1.0)\n{return 1.0;}\nelse\n{float shadowPixelDepth=clamp(depthMetric,0.,1.0);\n#ifndef SHADOWFLOAT\nfloat shadowMapSample=unpack(TEXTUREFUNC(shadowSampler,uv,0.));\n#else\nfloat shadowMapSample=TEXTUREFUNC(shadowSampler,uv,0.).x;\n#endif\nfloat esm=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);}}\n#define inline\nfloat computeShadowWithCloseESM(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float depthScale,float frustumEdgeFalloff)\n{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec2 uv=0.5*clipSpace.xy+vec2(0.5);if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\n{return 1.0;}\nelse\n{float shadowPixelDepth=clamp(depthMetric,0.,1.0); \n#ifndef SHADOWFLOAT\nfloat shadowMapSample=unpack(TEXTUREFUNC(shadowSampler,uv,0.));\n#else\nfloat shadowMapSample=TEXTUREFUNC(shadowSampler,uv,0.).x;\n#endif\nfloat esm=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);}}\n#ifdef IS_NDC_HALF_ZRANGE\n#define ZINCLIP clipSpace.z\n#else\n#define ZINCLIP uvDepth.z\n#endif\n#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\n#define GREATEST_LESS_THAN_ONE 0.99999994\n#define DISABLE_UNIFORMITY_ANALYSIS\n#define inline\nfloat computeShadowWithCSMPCF1(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,float darkness,float frustumEdgeFalloff)\n{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);vec4 uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);float shadow=texture2D(shadowSampler,uvDepthLayer);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}\n#define inline\nfloat computeShadowWithCSMPCF3(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\n{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x; \nuv+=0.5; \nvec2 st=fract(uv); \nvec2 base_uv=floor(uv)-0.5; \nbase_uv*=shadowMapSizeAndInverse.y; \nvec2 uvw0=3.-2.*st;vec2 uvw1=1.+2.*st;vec2 u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;vec2 v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;float shadow=0.;shadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));shadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));shadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));shadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));shadow=shadow/16.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}\n#define inline\nfloat computeShadowWithCSMPCF5(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\n{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x; \nuv+=0.5; \nvec2 st=fract(uv); \nvec2 base_uv=floor(uv)-0.5; \nbase_uv*=shadowMapSizeAndInverse.y; \nvec2 uvw0=4.-3.*st;vec2 uvw1=vec2(7.);vec2 uvw2=1.+3.*st;vec3 u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;vec3 v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;float shadow=0.;shadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));shadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));shadow+=uvw2.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[0]),layer,uvDepth.z));shadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));shadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));shadow+=uvw2.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[1]),layer,uvDepth.z));shadow+=uvw0.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[2]),layer,uvDepth.z));shadow+=uvw1.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[2]),layer,uvDepth.z));shadow+=uvw2.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[2]),layer,uvDepth.z));shadow=shadow/144.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}\n#define inline\nfloat computeShadowWithPCF1(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,float darkness,float frustumEdgeFalloff)\n{if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}\nelse\n{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=ZINCLIP;float shadow=TEXTUREFUNC(shadowSampler,uvDepth,0.);shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}\n#define inline\nfloat computeShadowWithPCF3(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\n{if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}\nelse\n{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=ZINCLIP;vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x; \nuv+=0.5; \nvec2 st=fract(uv); \nvec2 base_uv=floor(uv)-0.5; \nbase_uv*=shadowMapSizeAndInverse.y; \nvec2 uvw0=3.-2.*st;vec2 uvw1=1.+2.*st;vec2 u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;vec2 v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;float shadow=0.;shadow+=uvw0.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z),0.);shadow+=uvw1.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z),0.);shadow+=uvw0.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z),0.);shadow+=uvw1.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z),0.);shadow=shadow/16.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}\n#define inline\nfloat computeShadowWithPCF5(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\n{if (depthMetric>1.0 || depthMetric<0.0) {return 1.0;}\nelse\n{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=ZINCLIP;vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x; \nuv+=0.5; \nvec2 st=fract(uv); \nvec2 base_uv=floor(uv)-0.5; \nbase_uv*=shadowMapSizeAndInverse.y; \nvec2 uvw0=4.-3.*st;vec2 uvw1=vec2(7.);vec2 uvw2=1.+3.*st;vec3 u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;vec3 v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;float shadow=0.;shadow+=uvw0.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z),0.);shadow+=uvw1.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z),0.);shadow+=uvw2.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[0]),uvDepth.z),0.);shadow+=uvw0.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z),0.);shadow+=uvw1.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z),0.);shadow+=uvw2.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[1]),uvDepth.z),0.);shadow+=uvw0.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[2]),uvDepth.z),0.);shadow+=uvw1.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[2]),uvDepth.z),0.);shadow+=uvw2.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[2]),uvDepth.z),0.);shadow=shadow/144.;shadow=mix(darkness,1.,shadow);return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);}}\nconst vec3 PoissonSamplers32[64]=vec3[64](\nvec3(0.06407013,0.05409927,0.),\nvec3(0.7366577,0.5789394,0.),\nvec3(-0.6270542,-0.5320278,0.),\nvec3(-0.4096107,0.8411095,0.),\nvec3(0.6849564,-0.4990818,0.),\nvec3(-0.874181,-0.04579735,0.),\nvec3(0.9989998,0.0009880066,0.),\nvec3(-0.004920578,-0.9151649,0.),\nvec3(0.1805763,0.9747483,0.),\nvec3(-0.2138451,0.2635818,0.),\nvec3(0.109845,0.3884785,0.),\nvec3(0.06876755,-0.3581074,0.),\nvec3(0.374073,-0.7661266,0.),\nvec3(0.3079132,-0.1216763,0.),\nvec3(-0.3794335,-0.8271583,0.),\nvec3(-0.203878,-0.07715034,0.),\nvec3(0.5912697,0.1469799,0.),\nvec3(-0.88069,0.3031784,0.),\nvec3(0.5040108,0.8283722,0.),\nvec3(-0.5844124,0.5494877,0.),\nvec3(0.6017799,-0.1726654,0.),\nvec3(-0.5554981,0.1559997,0.),\nvec3(-0.3016369,-0.3900928,0.),\nvec3(-0.5550632,-0.1723762,0.),\nvec3(0.925029,0.2995041,0.),\nvec3(-0.2473137,0.5538505,0.),\nvec3(0.9183037,-0.2862392,0.),\nvec3(0.2469421,0.6718712,0.),\nvec3(0.3916397,-0.4328209,0.),\nvec3(-0.03576927,-0.6220032,0.),\nvec3(-0.04661255,0.7995201,0.),\nvec3(0.4402924,0.3640312,0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.),\nvec3(0.)\n);const vec3 PoissonSamplers64[64]=vec3[64](\nvec3(-0.613392,0.617481,0.),\nvec3(0.170019,-0.040254,0.),\nvec3(-0.299417,0.791925,0.),\nvec3(0.645680,0.493210,0.),\nvec3(-0.651784,0.717887,0.),\nvec3(0.421003,0.027070,0.),\nvec3(-0.817194,-0.271096,0.),\nvec3(-0.705374,-0.668203,0.),\nvec3(0.977050,-0.108615,0.),\nvec3(0.063326,0.142369,0.),\nvec3(0.203528,0.214331,0.),\nvec3(-0.667531,0.326090,0.),\nvec3(-0.098422,-0.295755,0.),\nvec3(-0.885922,0.215369,0.),\nvec3(0.566637,0.605213,0.),\nvec3(0.039766,-0.396100,0.),\nvec3(0.751946,0.453352,0.),\nvec3(0.078707,-0.715323,0.),\nvec3(-0.075838,-0.529344,0.),\nvec3(0.724479,-0.580798,0.),\nvec3(0.222999,-0.215125,0.),\nvec3(-0.467574,-0.405438,0.),\nvec3(-0.248268,-0.814753,0.),\nvec3(0.354411,-0.887570,0.),\nvec3(0.175817,0.382366,0.),\nvec3(0.487472,-0.063082,0.),\nvec3(-0.084078,0.898312,0.),\nvec3(0.488876,-0.783441,0.),\nvec3(0.470016,0.217933,0.),\nvec3(-0.696890,-0.549791,0.),\nvec3(-0.149693,0.605762,0.),\nvec3(0.034211,0.979980,0.),\nvec3(0.503098,-0.308878,0.),\nvec3(-0.016205,-0.872921,0.),\nvec3(0.385784,-0.393902,0.),\nvec3(-0.146886,-0.859249,0.),\nvec3(0.643361,0.164098,0.),\nvec3(0.634388,-0.049471,0.),\nvec3(-0.688894,0.007843,0.),\nvec3(0.464034,-0.188818,0.),\nvec3(-0.440840,0.137486,0.),\nvec3(0.364483,0.511704,0.),\nvec3(0.034028,0.325968,0.),\nvec3(0.099094,-0.308023,0.),\nvec3(0.693960,-0.366253,0.),\nvec3(0.678884,-0.204688,0.),\nvec3(0.001801,0.780328,0.),\nvec3(0.145177,-0.898984,0.),\nvec3(0.062655,-0.611866,0.),\nvec3(0.315226,-0.604297,0.),\nvec3(-0.780145,0.486251,0.),\nvec3(-0.371868,0.882138,0.),\nvec3(0.200476,0.494430,0.),\nvec3(-0.494552,-0.711051,0.),\nvec3(0.612476,0.705252,0.),\nvec3(-0.578845,-0.768792,0.),\nvec3(-0.772454,-0.090976,0.),\nvec3(0.504440,0.372295,0.),\nvec3(0.155736,0.065157,0.),\nvec3(0.391522,0.849605,0.),\nvec3(-0.620106,-0.328104,0.),\nvec3(0.789239,-0.419965,0.),\nvec3(-0.545396,0.538133,0.),\nvec3(-0.178564,-0.596057,0.)\n);\n#define inline\nfloat computeShadowWithCSMPCSS(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray depthSampler,highp sampler2DArrayShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,int searchTapCount,int pcfTapCount,vec3[64] poissonSamplers,vec2 lightSizeUVCorrection,float depthCorrection,float penumbraDarkness)\n{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);vec4 uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);float blockerDepth=0.0;float sumBlockerDepth=0.0;float numBlocker=0.0;for (int i=0; i1.0 || depthMetric<0.0) {return 1.0;}\nelse\n{vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));uvDepth.z=ZINCLIP;float blockerDepth=0.0;float sumBlockerDepth=0.0;float numBlocker=0.0;for (int i=0; i(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump)\n#endif\n#if defined(DETAIL)\n#include(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_SAMPLERNAME_,detail)\n#endif\n#if defined(BUMP) && defined(PARALLAX)\nconst float minSamples=4.;const float maxSamples=15.;const int iMaxSamples=15;vec2 parallaxOcclusion(vec3 vViewDirCoT,vec3 vNormalCoT,vec2 texCoord,float parallaxScale) {float parallaxLimit=length(vViewDirCoT.xy)/vViewDirCoT.z;parallaxLimit*=parallaxScale;vec2 vOffsetDir=normalize(vViewDirCoT.xy);vec2 vMaxOffset=vOffsetDir*parallaxLimit;float numSamples=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));float stepSize=1.0/numSamples;float currRayHeight=1.0;vec2 vCurrOffset=vec2(0,0);vec2 vLastOffset=vec2(0,0);float lastSampledHeight=1.0;float currSampledHeight=1.0;bool keepWorking=true;for (int i=0; icurrRayHeight)\n{float delta1=currSampledHeight-currRayHeight;float delta2=(currRayHeight+stepSize)-lastSampledHeight;float ratio=delta1/(delta1+delta2);vCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset;keepWorking=false;}\nelse\n{currRayHeight-=stepSize;vLastOffset=vCurrOffset;\n#ifdef PARALLAX_RHS\nvCurrOffset-=stepSize*vMaxOffset;\n#else\nvCurrOffset+=stepSize*vMaxOffset;\n#endif\nlastSampledHeight=currSampledHeight;}}\nreturn vCurrOffset;}\nvec2 parallaxOffset(vec3 viewDir,float heightScale)\n{float height=texture2D(bumpSampler,vBumpUV).w;vec2 texCoordOffset=heightScale*viewDir.xy*height;\n#ifdef PARALLAX_RHS\nreturn texCoordOffset;\n#else\nreturn -texCoordOffset;\n#endif\n}\n#endif\n`;\nz.IncludesShadersStore[xF] = vF;\nconst TF = \"logDepthDeclaration\", SF = `#ifdef LOGARITHMICDEPTH\nuniform float logarithmicDepthConstant;varying float vFragmentDepth;\n#endif\n`;\nz.IncludesShadersStore[TF] = SF;\nconst bF = \"bumpFragment\", EF = `vec2 uvOffset=vec2(0.0,0.0);\n#if defined(BUMP) || defined(PARALLAX) || defined(DETAIL)\n#ifdef NORMALXYSCALE\nfloat normalScale=1.0;\n#elif defined(BUMP)\nfloat normalScale=vBumpInfos.y;\n#else\nfloat normalScale=1.0;\n#endif\n#if defined(TANGENT) && defined(NORMAL)\nmat3 TBN=vTBN;\n#elif defined(BUMP)\nvec2 TBNUV=gl_FrontFacing ? vBumpUV : -vBumpUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vTangentSpaceParams);\n#else\nvec2 TBNUV=gl_FrontFacing ? vDetailUV : -vDetailUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vec2(1.,1.));\n#endif\n#elif defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL)\nmat3 TBN=vTBN;\n#else\nvec2 TBNUV=gl_FrontFacing ? vMainUV1 : -vMainUV1;mat3 TBN=cotangent_frame(normalW,vPositionW,TBNUV,vec2(1.,1.));\n#endif\n#endif\n#ifdef PARALLAX\nmat3 invTBN=transposeMat3(TBN);\n#ifdef PARALLAXOCCLUSION\nuvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,vBumpUV,vBumpInfos.z);\n#else\nuvOffset=parallaxOffset(invTBN*viewDirectionW,vBumpInfos.z);\n#endif\n#endif\n#ifdef DETAIL\nvec4 detailColor=texture2D(detailSampler,vDetailUV+uvOffset);vec2 detailNormalRG=detailColor.wy*2.0-1.0;float detailNormalB=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));vec3 detailNormal=vec3(detailNormalRG,detailNormalB);\n#endif\n#ifdef BUMP\n#ifdef OBJECTSPACE_NORMALMAP\n#define CUSTOM_FRAGMENT_BUMP_FRAGMENT\nnormalW=normalize(texture2D(bumpSampler,vBumpUV).xyz *2.0-1.0);normalW=normalize(mat3(normalMatrix)*normalW);\n#elif !defined(DETAIL)\nnormalW=perturbNormal(TBN,texture2D(bumpSampler,vBumpUV+uvOffset).xyz,vBumpInfos.y);\n#else\nvec3 bumpNormal=texture2D(bumpSampler,vBumpUV+uvOffset).xyz*2.0-1.0;\n#if DETAIL_NORMALBLENDMETHOD==0 \ndetailNormal.xy*=vDetailInfos.z;vec3 blendedNormal=normalize(vec3(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));\n#elif DETAIL_NORMALBLENDMETHOD==1 \ndetailNormal.xy*=vDetailInfos.z;bumpNormal+=vec3(0.0,0.0,1.0);detailNormal*=vec3(-1.0,-1.0,1.0);vec3 blendedNormal=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal;\n#endif\nnormalW=perturbNormalBase(TBN,blendedNormal,vBumpInfos.y);\n#endif\n#elif defined(DETAIL)\ndetailNormal.xy*=vDetailInfos.z;normalW=perturbNormalBase(TBN,detailNormal,vDetailInfos.z);\n#endif\n`;\nz.IncludesShadersStore[bF] = EF;\nconst yF = \"decalFragment\", CF = `#ifdef DECAL\n#ifdef GAMMADECAL\ndecalColor.rgb=toLinearSpace(decalColor.rgb);\n#endif\n#ifdef DECAL_SMOOTHALPHA\ndecalColor.a*=decalColor.a;\n#endif\nsurfaceAlbedo.rgb=mix(surfaceAlbedo.rgb,decalColor.rgb,decalColor.a);\n#endif\n`;\nz.IncludesShadersStore[yF] = CF;\nconst AF = \"depthPrePass\", RF = `#ifdef DEPTHPREPASS\ngl_FragColor=vec4(0.,0.,0.,1.0);return;\n#endif\n`;\nz.IncludesShadersStore[AF] = RF;\nconst IF = \"lightFragment\", PF = `#ifdef LIGHT{X}\n#if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})\n#else\n#ifdef PBR\n#ifdef SPOTLIGHT{X}\npreInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\n#elif defined(POINTLIGHT{X})\npreInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\n#elif defined(HEMILIGHT{X})\npreInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\n#elif defined(DIRLIGHT{X})\npreInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\n#endif\npreInfo.NdotV=NdotV;\n#ifdef SPOTLIGHT{X}\n#ifdef LIGHT_FALLOFF_GLTF{X}\npreInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);preInfo.attenuation*=computeDirectionalLightFalloff_GLTF(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);\n#elif defined(LIGHT_FALLOFF_PHYSICAL{X})\npreInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);preInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w);\n#elif defined(LIGHT_FALLOFF_STANDARD{X})\npreInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);preInfo.attenuation*=computeDirectionalLightFalloff_Standard(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w);\n#else\npreInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);preInfo.attenuation*=computeDirectionalLightFalloff(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);\n#endif\n#elif defined(POINTLIGHT{X})\n#ifdef LIGHT_FALLOFF_GLTF{X}\npreInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);\n#elif defined(LIGHT_FALLOFF_PHYSICAL{X})\npreInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);\n#elif defined(LIGHT_FALLOFF_STANDARD{X})\npreInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);\n#else\npreInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);\n#endif\n#else\npreInfo.attenuation=1.0;\n#endif\n#ifdef HEMILIGHT{X}\npreInfo.roughness=roughness;\n#else\npreInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\n#endif\n#ifdef IRIDESCENCE\npreInfo.iridescenceIntensity=iridescenceIntensity;\n#endif\n#ifdef HEMILIGHT{X}\ninfo.diffuse=computeHemisphericDiffuseLighting(preInfo,light{X}.vLightDiffuse.rgb,light{X}.vLightGround);\n#elif defined(SS_TRANSLUCENCY)\ninfo.diffuse=computeDiffuseAndTransmittedLighting(preInfo,light{X}.vLightDiffuse.rgb,subSurfaceOut.transmittance);\n#else\ninfo.diffuse=computeDiffuseLighting(preInfo,light{X}.vLightDiffuse.rgb);\n#endif\n#ifdef SPECULARTERM\n#ifdef ANISOTROPIC\ninfo.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\n#else\ninfo.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\n#endif\n#endif\n#ifdef SHEEN\n#ifdef SHEEN_LINKWITHALBEDO\npreInfo.roughness=sheenOut.sheenIntensity;\n#else\n#ifdef HEMILIGHT{X}\npreInfo.roughness=sheenOut.sheenRoughness;\n#else\npreInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\n#endif\n#endif\ninfo.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\n#endif\n#ifdef CLEARCOAT\n#ifdef HEMILIGHT{X}\npreInfo.roughness=clearcoatOut.clearCoatRoughness;\n#else\npreInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\n#endif\ninfo.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,light{X}.vLightDiffuse.rgb);\n#ifdef CLEARCOAT_TINT\nabsorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity);info.diffuse*=absorption;\n#ifdef SPECULARTERM\ninfo.specular*=absorption;\n#endif\n#endif\ninfo.diffuse*=info.clearCoat.w;\n#ifdef SPECULARTERM\ninfo.specular*=info.clearCoat.w;\n#endif\n#ifdef SHEEN\ninfo.sheen*=info.clearCoat.w;\n#endif\n#endif\n#else\n#ifdef SPOTLIGHT{X}\ninfo=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightDiffuse.a,glossiness);\n#elif defined(HEMILIGHT{X})\ninfo=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness);\n#elif defined(POINTLIGHT{X}) || defined(DIRLIGHT{X})\ninfo=computeLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightDiffuse.a,glossiness);\n#endif\n#endif\n#ifdef PROJECTEDLIGHTTEXTURE{X}\ninfo.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightTexture{X},textureProjectionMatrix{X});\n#endif\n#endif\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nfor (int i=0; i=0.) {index{X}=i;break;}}\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\nif (index{X}>=0)\n#endif\n{\n#if defined(SHADOWPCF{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nshadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCSS{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\n#else\nshadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\n#endif\n#else\nshadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#ifdef SHADOWCSMDEBUG{X}\nshadowDebug{X}=vec3(shadow)*vCascadeColorsMultiplier{X}[index{X}];\n#endif\n#ifndef SHADOWCSMNOBLEND{X}\nfloat frustumLength=frustumLengths{X}[index{X}];float diffRatio=clamp(diff{X}/frustumLength,0.,1.)*cascadeBlendFactor{X};if (index{X}<(SHADOWCSMNUM_CASCADES{X}-1) && diffRatio<1.)\n{index{X}+=1;float nextShadow=0.;\n#if defined(SHADOWPCF{X})\n#if defined(SHADOWLOWQUALITY{X})\nnextShadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nnextShadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nnextShadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCSS{X})\n#if defined(SHADOWLOWQUALITY{X})\nnextShadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\n#elif defined(SHADOWMEDIUMQUALITY{X})\nnextShadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\n#else\nnextShadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\n#endif\n#else\nnextShadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\nshadow=mix(nextShadow,shadow,diffRatio);\n#ifdef SHADOWCSMDEBUG{X}\nshadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio);\n#endif\n}\n#endif\n}\n#elif defined(SHADOWCLOSEESM{X})\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowWithCloseESMCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);\n#else\nshadow=computeShadowWithCloseESM(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWESM{X})\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowWithESMCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);\n#else\nshadow=computeShadowWithESM(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPOISSON{X})\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowWithPoissonSamplingCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues);\n#else\nshadow=computeShadowWithPoissonSampling(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCF{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithPCF1(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithPCF3(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nshadow=computeShadowWithPCF5(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCSS{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithPCSS16(vPositionFromLight{X},vDepthMetric{X},depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithPCSS32(vPositionFromLight{X},vDepthMetric{X},depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nshadow=computeShadowWithPCSS64(vPositionFromLight{X},vDepthMetric{X},depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#else\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.x,light{X}.depthValues);\n#else\nshadow=computeShadow(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#endif\n#ifdef SHADOWONLY\n#ifndef SHADOWINUSE\n#define SHADOWINUSE\n#endif\nglobalShadow+=shadow;shadowLightCount+=1.0;\n#endif\n#else\nshadow=1.;\n#endif\naggShadow+=shadow;numLights+=1.0;\n#ifndef SHADOWONLY\n#ifdef CUSTOMUSERLIGHTING\ndiffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow);\n#ifdef SPECULARTERM\nspecularBase+=computeCustomSpecularLighting(info,specularBase,shadow);\n#endif\n#elif defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X})\ndiffuseBase+=lightmapColor.rgb*shadow;\n#ifdef SPECULARTERM\n#ifndef LIGHTMAPNOSPECULAR{X}\nspecularBase+=info.specular*shadow*lightmapColor.rgb;\n#endif\n#endif\n#ifdef CLEARCOAT\n#ifndef LIGHTMAPNOSPECULAR{X}\nclearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb;\n#endif\n#endif\n#ifdef SHEEN\n#ifndef LIGHTMAPNOSPECULAR{X}\nsheenBase+=info.sheen.rgb*shadow;\n#endif\n#endif\n#else\n#ifdef SHADOWCSMDEBUG{X}\ndiffuseBase+=info.diffuse*shadowDebug{X};\n#else \ndiffuseBase+=info.diffuse*shadow;\n#endif\n#ifdef SPECULARTERM\nspecularBase+=info.specular*shadow;\n#endif\n#ifdef CLEARCOAT\nclearCoatBase+=info.clearCoat.rgb*shadow;\n#endif\n#ifdef SHEEN\nsheenBase+=info.sheen.rgb*shadow;\n#endif\n#endif\n#endif\n#endif\n`;\nz.IncludesShadersStore[IF] = PF;\nconst MF = \"logDepthFragment\", DF = `#ifdef LOGARITHMICDEPTH\ngl_FragDepthEXT=log2(vFragmentDepth)*logarithmicDepthConstant*0.5;\n#endif\n`;\nz.IncludesShadersStore[MF] = DF;\nconst OF = \"oitFragment\", wF = `#ifdef ORDER_INDEPENDENT_TRANSPARENCY\nfloat fragDepth=gl_FragCoord.z; \n#ifdef ORDER_INDEPENDENT_TRANSPARENCY_16BITS\nuint halfFloat=packHalf2x16(vec2(fragDepth));vec2 full=unpackHalf2x16(halfFloat);fragDepth=full.x;\n#endif\nivec2 fragCoord=ivec2(gl_FragCoord.xy);vec2 lastDepth=texelFetch(oitDepthSampler,fragCoord,0).rg;vec4 lastFrontColor=texelFetch(oitFrontColorSampler,fragCoord,0);depth.rg=vec2(-MAX_DEPTH);frontColor=lastFrontColor;backColor=vec4(0.0);\n#ifdef USE_REVERSE_DEPTHBUFFER\nfloat furthestDepth=-lastDepth.x;float nearestDepth=lastDepth.y;\n#else\nfloat nearestDepth=-lastDepth.x;float furthestDepth=lastDepth.y;\n#endif\nfloat alphaMultiplier=1.0-lastFrontColor.a;\n#ifdef USE_REVERSE_DEPTHBUFFER\nif (fragDepth>nearestDepth || fragDepthfurthestDepth) {\n#endif\nreturn;}\n#ifdef USE_REVERSE_DEPTHBUFFER\nif (fragDepthfurthestDepth) {\n#else\nif (fragDepth>nearestDepth && fragDepth\n#if defined(BUMP) || !defined(NORMAL)\n#extension GL_OES_standard_derivatives : enable\n#endif\n#include[SCENE_MRT_COUNT]\n#include\n#define CUSTOM_FRAGMENT_BEGIN\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvarying vec4 vColor;\n#endif\n#include[1..7]\n#include\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include\n#include\n#include(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse,_SAMPLERNAME_,diffuse)\n#include(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_SAMPLERNAME_,ambient)\n#include(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_SAMPLERNAME_,opacity)\n#include(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_SAMPLERNAME_,emissive)\n#include(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_SAMPLERNAME_,lightmap)\n#include(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_SAMPLERNAME_,decal)\n#ifdef REFRACTION\n#ifdef REFRACTIONMAP_3D\nuniform samplerCube refractionCubeSampler;\n#else\nuniform sampler2D refraction2DSampler;\n#endif\n#endif\n#if defined(SPECULARTERM)\n#include(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular,_SAMPLERNAME_,specular)\n#endif\n#include\n#ifdef REFLECTION\n#ifdef REFLECTIONMAP_3D\nuniform samplerCube reflectionCubeSampler;\n#else\nuniform sampler2D reflection2DSampler;\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#else\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#endif\n#include\n#endif\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=normalize(-cross(dFdx(vPositionW),dFdy(vPositionW)));\n#endif\n#include\n#ifdef TWOSIDEDLIGHTING\nnormalW=gl_FrontFacing ? normalW : -normalW;\n#endif\n#ifdef DIFFUSE\nbaseColor=texture2D(diffuseSampler,vDiffuseUV+uvOffset);\n#if defined(ALPHATEST) && !defined(ALPHATEST_AFTERALLALPHACOMPUTATIONS)\nif (baseColor.a(surfaceAlbedo,baseColor,GAMMADECAL,_GAMMADECAL_NOTUSED_)\n#endif\n#include\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nbaseColor.rgb*=vColor.rgb;\n#endif\n#ifdef DETAIL\nbaseColor.rgb=baseColor.rgb*2.0*mix(0.5,detailColor.r,vDetailInfos.y);\n#endif\n#if defined(DECAL) && defined(DECAL_AFTER_DETAIL)\nvec4 decalColor=texture2D(decalSampler,vDecalUV+uvOffset);\n#include(surfaceAlbedo,baseColor,GAMMADECAL,_GAMMADECAL_NOTUSED_)\n#endif\n#define CUSTOM_FRAGMENT_UPDATE_DIFFUSE\nvec3 baseAmbientColor=vec3(1.,1.,1.);\n#ifdef AMBIENT\nbaseAmbientColor=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb*vAmbientInfos.y;\n#endif\n#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\n#ifdef SPECULARTERM\nfloat glossiness=vSpecularColor.a;vec3 specularColor=vSpecularColor.rgb;\n#ifdef SPECULAR\nvec4 specularMapColor=texture2D(specularSampler,vSpecularUV+uvOffset);specularColor=specularMapColor.rgb;\n#ifdef GLOSSINESS\nglossiness=glossiness*specularMapColor.a;\n#endif\n#endif\n#else\nfloat glossiness=0.;\n#endif\nvec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;\n#ifdef SPECULARTERM\nvec3 specularBase=vec3(0.,0.,0.);\n#endif\nfloat shadow=1.;float aggShadow=0.;float numLights=0.;\n#ifdef LIGHTMAP\nvec4 lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset);\n#ifdef RGBDLIGHTMAP\nlightmapColor.rgb=fromRGBD(lightmapColor);\n#endif\nlightmapColor.rgb*=vLightmapInfos.y;\n#endif\n#include[0..maxSimultaneousLights]\naggShadow=aggShadow/numLights;vec4 refractionColor=vec4(0.,0.,0.,1.);\n#ifdef REFRACTION\nvec3 refractionVector=normalize(refract(-viewDirectionW,normalW,vRefractionInfos.y));\n#ifdef REFRACTIONMAP_3D\n#ifdef USE_LOCAL_REFRACTIONMAP_CUBIC\nrefractionVector=parallaxCorrectNormal(vPositionW,refractionVector,vRefractionSize,vRefractionPosition);\n#endif\nrefractionVector.y=refractionVector.y*vRefractionInfos.w;vec4 refractionLookup=textureCube(refractionCubeSampler,refractionVector);if (dot(refractionVector,viewDirectionW)<1.0) {refractionColor=refractionLookup;}\n#else\nvec3 vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0)));vec2 refractionCoords=vRefractionUVW.xy/vRefractionUVW.z;refractionCoords.y=1.0-refractionCoords.y;refractionColor=texture2D(refraction2DSampler,refractionCoords);\n#endif\n#ifdef RGBDREFRACTION\nrefractionColor.rgb=fromRGBD(refractionColor);\n#endif\n#ifdef IS_REFRACTION_LINEAR\nrefractionColor.rgb=toGammaSpace(refractionColor.rgb);\n#endif\nrefractionColor.rgb*=vRefractionInfos.x;\n#endif\nvec4 reflectionColor=vec4(0.,0.,0.,1.);\n#ifdef REFLECTION\nvec3 vReflectionUVW=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\n#ifdef REFLECTIONMAP_OPPOSITEZ\nvReflectionUVW.z*=-1.0;\n#endif\n#ifdef REFLECTIONMAP_3D\n#ifdef ROUGHNESS\nfloat bias=vReflectionInfos.y;\n#ifdef SPECULARTERM\n#ifdef SPECULAR\n#ifdef GLOSSINESS\nbias*=(1.0-specularMapColor.a);\n#endif\n#endif\n#endif\nreflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW,bias);\n#else\nreflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW);\n#endif\n#else\nvec2 coords=vReflectionUVW.xy;\n#ifdef REFLECTIONMAP_PROJECTION\ncoords/=vReflectionUVW.z;\n#endif\ncoords.y=1.0-coords.y;reflectionColor=texture2D(reflection2DSampler,coords);\n#endif\n#ifdef RGBDREFLECTION\nreflectionColor.rgb=fromRGBD(reflectionColor);\n#endif\n#ifdef IS_REFLECTION_LINEAR\nreflectionColor.rgb=toGammaSpace(reflectionColor.rgb);\n#endif\nreflectionColor.rgb*=vReflectionInfos.x;\n#ifdef REFLECTIONFRESNEL\nfloat reflectionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,reflectionRightColor.a,reflectionLeftColor.a);\n#ifdef REFLECTIONFRESNELFROMSPECULAR\n#ifdef SPECULARTERM\nreflectionColor.rgb*=specularColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#else\nreflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#endif\n#else\nreflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#endif\n#endif\n#endif\n#ifdef REFRACTIONFRESNEL\nfloat refractionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,refractionRightColor.a,refractionLeftColor.a);refractionColor.rgb*=refractionLeftColor.rgb*(1.0-refractionFresnelTerm)+refractionFresnelTerm*refractionRightColor.rgb;\n#endif\n#ifdef OPACITY\nvec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);\n#ifdef OPACITYRGB\nopacityMap.rgb=opacityMap.rgb*vec3(0.3,0.59,0.11);alpha*=(opacityMap.x+opacityMap.y+opacityMap.z)* vOpacityInfos.y;\n#else\nalpha*=opacityMap.a*vOpacityInfos.y;\n#endif\n#endif\n#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nalpha*=vColor.a;\n#endif\n#ifdef OPACITYFRESNEL\nfloat opacityFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,opacityParts.z,opacityParts.w);alpha+=opacityParts.x*(1.0-opacityFresnelTerm)+opacityFresnelTerm*opacityParts.y;\n#endif\n#ifdef ALPHATEST\n#ifdef ALPHATEST_AFTERALLALPHACOMPUTATIONS\nif (alpha\n#include\n#ifdef IMAGEPROCESSINGPOSTPROCESS\ncolor.rgb=toLinearSpace(color.rgb);\n#else\n#ifdef IMAGEPROCESSING\ncolor.rgb=toLinearSpace(color.rgb);color=applyImageProcessing(color);\n#endif\n#endif\ncolor.a*=visibility;\n#ifdef PREMULTIPLYALPHA\ncolor.rgb*=color.a;\n#endif\n#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\n#ifdef PREPASS\nfloat writeGeometryInfo=color.a>0.4 ? 1.0 : 0.0;gl_FragData[0]=color; \n#ifdef PREPASS_POSITION\ngl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);\n#endif\n#ifdef PREPASS_VELOCITY\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;gl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);\n#endif\n#ifdef PREPASS_IRRADIANCE\ngl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(0.0,0.0,0.0,writeGeometryInfo); \n#endif\n#ifdef PREPASS_DEPTH\ngl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo); \n#endif\n#ifdef PREPASS_NORMAL\n#ifdef PREPASS_NORMAL_WORLDSPACE\ngl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalW,writeGeometryInfo); \n#else\ngl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo); \n#endif\n#endif\n#ifdef PREPASS_ALBEDO_SQRT\ngl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(0.0,0.0,0.0,writeGeometryInfo); \n#endif\n#ifdef PREPASS_REFLECTIVITY\n#if defined(SPECULARTERM)\n#if defined(SPECULAR)\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(toLinearSpace(specularMapColor))*writeGeometryInfo; \n#else\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(toLinearSpace(specularColor),1.0)*writeGeometryInfo;\n#endif\n#else\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(0.0,0.0,0.0,1.0)*writeGeometryInfo;\n#endif\n#endif\n#endif\n#if !defined(PREPASS) || defined(WEBGL2)\ngl_FragColor=color;\n#endif\n#include\n#if ORDER_INDEPENDENT_TRANSPARENCY\nif (fragDepth==nearestDepth) {frontColor.rgb+=color.rgb*color.a*alphaMultiplier;frontColor.a=1.0-alphaMultiplier*(1.0-color.a);} else {backColor+=color;}\n#endif\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n`;\nz.ShadersStore[NF] = FF;\nconst LF = \"decalVertexDeclaration\", BF = `#ifdef DECAL\nuniform vec4 vDecalInfos;uniform mat4 decalMatrix;\n#endif\n`;\nz.IncludesShadersStore[LF] = BF;\nconst VF = \"defaultVertexDeclaration\", UF = `uniform mat4 viewProjection;uniform mat4 view;\n#ifdef DIFFUSE\nuniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;\n#endif\n#ifdef AMBIENT\nuniform mat4 ambientMatrix;uniform vec2 vAmbientInfos;\n#endif\n#ifdef OPACITY\nuniform mat4 opacityMatrix;uniform vec2 vOpacityInfos;\n#endif\n#ifdef EMISSIVE\nuniform vec2 vEmissiveInfos;uniform mat4 emissiveMatrix;\n#endif\n#ifdef LIGHTMAP\nuniform vec2 vLightmapInfos;uniform mat4 lightmapMatrix;\n#endif\n#if defined(SPECULAR) && defined(SPECULARTERM)\nuniform vec2 vSpecularInfos;uniform mat4 specularMatrix;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;uniform mat4 bumpMatrix;\n#endif\n#ifdef REFLECTION\nuniform mat4 reflectionMatrix;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n#ifdef DETAIL\nuniform vec4 vDetailInfos;uniform mat4 detailMatrix;\n#endif\n#include\n#define ADDITIONAL_VERTEX_DECLARATION\n`;\nz.IncludesShadersStore[VF] = UF;\nconst kF = \"uvAttributeDeclaration\", GF = `#ifdef UV{X}\nattribute vec2 uv{X};\n#endif\n`;\nz.IncludesShadersStore[kF] = GF;\nconst zF = \"prePassVertexDeclaration\", WF = `#ifdef PREPASS\n#ifdef PREPASS_DEPTH\nvarying vec3 vViewPos;\n#endif\n#ifdef PREPASS_VELOCITY\nuniform mat4 previousViewProjection;varying vec4 vCurrentPosition;varying vec4 vPreviousPosition;\n#endif\n#endif\n`;\nz.IncludesShadersStore[zF] = WF;\nconst HF = \"samplerVertexDeclaration\", XF = `#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0\nvarying vec2 v_VARYINGNAME_UV;\n#endif\n`;\nz.IncludesShadersStore[HF] = XF;\nconst $F = \"bumpVertexDeclaration\", YF = `#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL) \nvarying mat3 vTBN;\n#endif\n#endif\n`;\nz.IncludesShadersStore[$F] = YF;\nconst jF = \"lightVxFragmentDeclaration\", KF = `#ifdef LIGHT{X}\nuniform vec4 vLightData{X};uniform vec4 vLightDiffuse{X};\n#ifdef SPECULARTERM\nuniform vec4 vLightSpecular{X};\n#else\nvec4 vLightSpecular{X}=vec4(0.);\n#endif\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nuniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};\n#elif defined(SHADOWCUBE{X})\n#else\nvarying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 lightMatrix{X};\n#endif\nuniform vec4 shadowsInfo{X};uniform vec2 depthValues{X};\n#endif\n#ifdef SPOTLIGHT{X}\nuniform vec4 vLightDirection{X};uniform vec4 vLightFalloff{X};\n#elif defined(POINTLIGHT{X})\nuniform vec4 vLightFalloff{X};\n#elif defined(HEMILIGHT{X})\nuniform vec3 vLightGround{X};\n#endif\n#endif\n`;\nz.IncludesShadersStore[jF] = KF;\nconst qF = \"lightVxUboDeclaration\", QF = `#ifdef LIGHT{X}\nuniform Light{X}\n{vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;\n#ifdef SPOTLIGHT{X}\nvec4 vLightDirection;vec4 vLightFalloff;\n#elif defined(POINTLIGHT{X})\nvec4 vLightFalloff;\n#elif defined(HEMILIGHT{X})\nvec3 vLightGround;\n#endif\nvec4 shadowsInfo;vec2 depthValues;} light{X};\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nuniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};\n#elif defined(SHADOWCUBE{X})\n#else\nvarying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 lightMatrix{X};\n#endif\n#endif\n#endif\n`;\nz.IncludesShadersStore[qF] = QF;\nconst ZF = \"morphTargetsVertexGlobalDeclaration\", JF = `#ifdef MORPHTARGETS\nuniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS];\n#ifdef MORPHTARGETS_TEXTURE \nuniform float morphTargetTextureIndices[NUM_MORPH_INFLUENCERS];uniform vec3 morphTargetTextureInfo;uniform highp sampler2DArray morphTargets;vec3 readVector3FromRawSampler(int targetIndex,float vertexIndex)\n{ \nfloat y=floor(vertexIndex/morphTargetTextureInfo.y);float x=vertexIndex-y*morphTargetTextureInfo.y;vec3 textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);return texture(morphTargets,textureUV).xyz;}\n#endif\n#endif\n`;\nz.IncludesShadersStore[ZF] = JF;\nconst e1 = \"morphTargetsVertexDeclaration\", t1 = `#ifdef MORPHTARGETS\n#ifndef MORPHTARGETS_TEXTURE\nattribute vec3 position{X};\n#ifdef MORPHTARGETS_NORMAL\nattribute vec3 normal{X};\n#endif\n#ifdef MORPHTARGETS_TANGENT\nattribute vec3 tangent{X};\n#endif\n#ifdef MORPHTARGETS_UV\nattribute vec2 uv_{X};\n#endif\n#elif {X}==0\nuniform int morphTargetCount;\n#endif\n#endif\n`;\nz.IncludesShadersStore[e1] = t1;\nconst i1 = \"morphTargetsVertexGlobal\", s1 = `#ifdef MORPHTARGETS\n#ifdef MORPHTARGETS_TEXTURE\nfloat vertexID;\n#endif\n#endif\n`;\nz.IncludesShadersStore[i1] = s1;\nconst r1 = \"morphTargetsVertex\", n1 = `#ifdef MORPHTARGETS\n#ifdef MORPHTARGETS_TEXTURE\n#if {X}==0\nfor (int i=0; i=morphTargetCount) break;vertexID=float(gl_VertexID)*morphTargetTextureInfo.x;positionUpdated+=(readVector3FromRawSampler(i,vertexID)-position)*morphTargetInfluences[i];vertexID+=1.0;\n#ifdef MORPHTARGETS_NORMAL\nnormalUpdated+=(readVector3FromRawSampler(i,vertexID) -normal)*morphTargetInfluences[i];vertexID+=1.0;\n#endif\n#ifdef MORPHTARGETS_UV\nuvUpdated+=(readVector3FromRawSampler(i,vertexID).xy-uv)*morphTargetInfluences[i];vertexID+=1.0;\n#endif\n#ifdef MORPHTARGETS_TANGENT\ntangentUpdated.xyz+=(readVector3FromRawSampler(i,vertexID) -tangent.xyz)*morphTargetInfluences[i];\n#endif\n}\n#endif\n#else\npositionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];\n#ifdef MORPHTARGETS_NORMAL\nnormalUpdated+=(normal{X}-normal)*morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_TANGENT\ntangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_UV\nuvUpdated+=(uv_{X}-uv)*morphTargetInfluences[{X}];\n#endif\n#endif\n#endif\n`;\nz.IncludesShadersStore[r1] = n1;\nconst a1 = \"prePassVertex\", o1 = `#ifdef PREPASS_DEPTH\nvViewPos=(view*worldPos).rgb;\n#endif\n#if defined(PREPASS_VELOCITY) && defined(BONES_VELOCITY_ENABLED)\nvCurrentPosition=viewProjection*worldPos;\n#if NUM_BONE_INFLUENCERS>0\nmat4 previousInfluence;previousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\npreviousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];\n#endif \n#if NUM_BONE_INFLUENCERS>2\npreviousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];\n#endif \n#if NUM_BONE_INFLUENCERS>3\npreviousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\n#endif \n#if NUM_BONE_INFLUENCERS>5\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\n#endif \n#if NUM_BONE_INFLUENCERS>6\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\n#endif \n#if NUM_BONE_INFLUENCERS>7\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\n#endif\nvPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);\n#else\nvPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\n#endif\n#endif\n`;\nz.IncludesShadersStore[a1] = o1;\nconst l1 = \"uvVariableDeclaration\", h1 = `#if !defined(UV{X}) && defined(MAINUV{X})\nvec2 uv{X}=vec2(0.,0.);\n#endif\n#ifdef MAINUV{X}\nvMainUV{X}=uv{X};\n#endif\n`;\nz.IncludesShadersStore[l1] = h1;\nconst c1 = \"samplerVertexImplementation\", u1 = `#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0\nif (v_INFONAME_==0.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uvUpdated,1.0,0.0));}\n#ifdef UV2\nelse if (v_INFONAME_==1.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv2,1.0,0.0));}\n#endif\n#ifdef UV3\nelse if (v_INFONAME_==2.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv3,1.0,0.0));}\n#endif\n#ifdef UV4\nelse if (v_INFONAME_==3.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv4,1.0,0.0));}\n#endif\n#ifdef UV5\nelse if (v_INFONAME_==4.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv5,1.0,0.0));}\n#endif\n#ifdef UV6\nelse if (v_INFONAME_==5.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv6,1.0,0.0));}\n#endif\n#endif\n`;\nz.IncludesShadersStore[c1] = u1;\nconst d1 = \"bumpVertex\", f1 = `#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL)\nvec3 tbnNormal=normalize(normalUpdated);vec3 tbnTangent=normalize(tangentUpdated.xyz);vec3 tbnBitangent=cross(tbnNormal,tbnTangent)*tangentUpdated.w;vTBN=mat3(finalWorld)*mat3(tbnTangent,tbnBitangent,tbnNormal);\n#endif\n#endif\n`;\nz.IncludesShadersStore[d1] = f1;\nconst p1 = \"shadowsVertex\", _1 = `#ifdef SHADOWS\n#if defined(SHADOWCSM{X})\nvPositionFromCamera{X}=view*worldPos;for (int i=0; i\n#define CUSTOM_VERTEX_BEGIN\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#ifdef TANGENT\nattribute vec4 tangent;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#include[2..7]\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include\n#include\n#include\n#include\n#include\n#include[1..7]\n#include(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse)\n#include(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)\n#include(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient)\n#include(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity)\n#include(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive)\n#include(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap)\n#if defined(SPECULARTERM)\n#include(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular)\n#endif\n#include(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump)\n#include(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvarying vec4 vColor;\n#endif\n#include\n#include\n#include\n#include<__decl__lightVxFragment>[0..maxSimultaneousLights]\n#include\n#include[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#include\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvec3 positionUpdated=position;\n#ifdef NORMAL\nvec3 normalUpdated=normal;\n#endif\n#ifdef TANGENT\nvec4 tangentUpdated=tangent;\n#endif\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include\n#include[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvPositionUVW=positionUpdated;\n#endif\n#define CUSTOM_VERTEX_UPDATE_POSITION\n#define CUSTOM_VERTEX_UPDATE_NORMAL\n#include\n#if defined(PREPASS) && defined(PREPASS_VELOCITY) && !defined(BONES_VELOCITY_ENABLED)\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\n#endif\n#include\n#include\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);\n#ifdef NORMAL\nmat3 normalWorld=mat3(finalWorld);\n#if defined(INSTANCES) && defined(THIN_INSTANCES)\nvNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));vNormalW=normalize(normalWorld*vNormalW);\n#else\n#ifdef NONUNIFORMSCALING\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\n#endif\nvNormalW=normalize(normalWorld*normalUpdated);\n#endif\n#endif\n#define CUSTOM_VERTEX_UPDATE_WORLDPOS\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR==0u) {gl_Position=viewProjection*worldPos;} else {gl_Position=viewProjectionR*worldPos;}\n#else\ngl_Position=viewProjection*worldPos;\n#endif\nvPositionW=vec3(worldPos);\n#include\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));\n#endif\n#ifndef UV1\nvec2 uvUpdated=vec2(0.,0.);\n#endif\n#ifdef MAINUV1\nvMainUV1=uvUpdated;\n#endif\n#include[2..7]\n#include(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse,_MATRIXNAME_,diffuse,_INFONAME_,DiffuseInfos.x)\n#include(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)\n#include(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_MATRIXNAME_,ambient,_INFONAME_,AmbientInfos.x)\n#include(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_MATRIXNAME_,opacity,_INFONAME_,OpacityInfos.x)\n#include(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_MATRIXNAME_,emissive,_INFONAME_,EmissiveInfos.x)\n#include(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_MATRIXNAME_,lightmap,_INFONAME_,LightmapInfos.x)\n#if defined(SPECULARTERM)\n#include(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular,_MATRIXNAME_,specular,_INFONAME_,SpecularInfos.x)\n#endif\n#include(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_MATRIXNAME_,bump,_INFONAME_,BumpInfos.x)\n#include(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)\n#include\n#include\n#include\n#include[0..maxSimultaneousLights]\n#include\n#include\n#include\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\nz.ShadersStore[T1] = S1;\nconst b1 = new RegExp(\"^([gimus]+)!\");\nclass No {\n /**\n * Creates a new instance of the plugin manager\n * @param material material that this manager will manage the plugins for\n */\n constructor(e) {\n this._plugins = [], this._activePlugins = [], this._activePluginsForExtraEvents = [], this._material = e, this._scene = e.getScene(), this._engine = this._scene.getEngine();\n }\n /**\n * @internal\n */\n _addPlugin(e) {\n for (let s = 0; s < this._plugins.length; ++s)\n if (this._plugins[s].name === e.name)\n return !1;\n if (this._material._uniformBufferLayoutBuilt)\n throw `The plugin \"${e.name}\" can't be added to the material \"${this._material.name}\" because this material has already been used for rendering! Please add plugins to materials before any rendering with this material occurs.`;\n const t = e.getClassName();\n No._MaterialPluginClassToMainDefine[t] || (No._MaterialPluginClassToMainDefine[t] = \"MATERIALPLUGIN_\" + ++No._MaterialPluginCounter), this._material._callbackPluginEventGeneric = (s, r) => this._handlePluginEvent(s, r), this._plugins.push(e), this._plugins.sort((s, r) => s.priority - r.priority), this._codeInjectionPoints = {};\n const i = {};\n i[No._MaterialPluginClassToMainDefine[t]] = {\n type: \"boolean\",\n default: !0\n };\n for (const s of this._plugins)\n s.collectDefines(i), this._collectPointNames(\"vertex\", s.getCustomCode(\"vertex\")), this._collectPointNames(\"fragment\", s.getCustomCode(\"fragment\"));\n return this._defineNamesFromPlugins = i, !0;\n }\n /**\n * @internal\n */\n _activatePlugin(e) {\n this._activePlugins.indexOf(e) === -1 && (this._activePlugins.push(e), this._activePlugins.sort((t, i) => t.priority - i.priority), this._material._callbackPluginEventIsReadyForSubMesh = this._handlePluginEventIsReadyForSubMesh.bind(this), this._material._callbackPluginEventPrepareDefinesBeforeAttributes = this._handlePluginEventPrepareDefinesBeforeAttributes.bind(this), this._material._callbackPluginEventPrepareDefines = this._handlePluginEventPrepareDefines.bind(this), this._material._callbackPluginEventBindForSubMesh = this._handlePluginEventBindForSubMesh.bind(this), e.registerForExtraEvents && (this._activePluginsForExtraEvents.push(e), this._activePluginsForExtraEvents.sort((t, i) => t.priority - i.priority), this._material._callbackPluginEventHasRenderTargetTextures = this._handlePluginEventHasRenderTargetTextures.bind(this), this._material._callbackPluginEventFillRenderTargetTextures = this._handlePluginEventFillRenderTargetTextures.bind(this), this._material._callbackPluginEventHardBindForSubMesh = this._handlePluginEventHardBindForSubMesh.bind(this)));\n }\n /**\n * Gets a plugin from the list of plugins managed by this manager\n * @param name name of the plugin\n * @returns the plugin if found, else null\n */\n getPlugin(e) {\n for (let t = 0; t < this._plugins.length; ++t)\n if (this._plugins[t].name === e)\n return this._plugins[t];\n return null;\n }\n _handlePluginEventIsReadyForSubMesh(e) {\n let t = !0;\n for (const i of this._activePlugins)\n t = t && i.isReadyForSubMesh(e.defines, this._scene, this._engine, e.subMesh);\n e.isReadyForSubMesh = t;\n }\n _handlePluginEventPrepareDefinesBeforeAttributes(e) {\n for (const t of this._activePlugins)\n t.prepareDefinesBeforeAttributes(e.defines, this._scene, e.mesh);\n }\n _handlePluginEventPrepareDefines(e) {\n for (const t of this._activePlugins)\n t.prepareDefines(e.defines, this._scene, e.mesh);\n }\n _handlePluginEventHardBindForSubMesh(e) {\n for (const t of this._activePluginsForExtraEvents)\n t.hardBindForSubMesh(this._material._uniformBuffer, this._scene, this._engine, e.subMesh);\n }\n _handlePluginEventBindForSubMesh(e) {\n for (const t of this._activePlugins)\n t.bindForSubMesh(this._material._uniformBuffer, this._scene, this._engine, e.subMesh);\n }\n _handlePluginEventHasRenderTargetTextures(e) {\n let t = !1;\n for (const i of this._activePluginsForExtraEvents)\n if (t = i.hasRenderTargetTextures(), t)\n break;\n e.hasRenderTargetTextures = t;\n }\n _handlePluginEventFillRenderTargetTextures(e) {\n for (const t of this._activePluginsForExtraEvents)\n t.fillRenderTargetTextures(e.renderTargets);\n }\n _handlePluginEvent(e, t) {\n switch (e) {\n case 512: {\n const i = t;\n for (const s of this._activePlugins)\n s.getActiveTextures(i.activeTextures);\n break;\n }\n case 256: {\n const i = t;\n for (const s of this._activePlugins)\n s.getAnimatables(i.animatables);\n break;\n }\n case 1024: {\n const i = t;\n let s = !1;\n for (const r of this._activePlugins)\n if (s = r.hasTexture(i.texture), s)\n break;\n i.hasTexture = s;\n break;\n }\n case 2: {\n const i = t;\n for (const s of this._plugins)\n s.dispose(i.forceDisposeTextures);\n break;\n }\n case 4: {\n const i = t;\n i.defineNames = this._defineNamesFromPlugins;\n break;\n }\n case 128: {\n const i = t;\n for (const s of this._activePlugins)\n i.fallbackRank = s.addFallbacks(i.defines, i.fallbacks, i.fallbackRank), s.getAttributes(i.attributes, this._scene, i.mesh);\n this._uniformList.length > 0 && i.uniforms.push(...this._uniformList), this._samplerList.length > 0 && i.samplers.push(...this._samplerList), this._uboList.length > 0 && i.uniformBuffersNames.push(...this._uboList), i.customCode = this._injectCustomCode(i, i.customCode);\n break;\n }\n case 8: {\n const i = t;\n this._uboDeclaration = \"\", this._vertexDeclaration = \"\", this._fragmentDeclaration = \"\", this._uniformList = [], this._samplerList = [], this._uboList = [];\n for (const s of this._plugins) {\n const r = s.getUniforms();\n if (r) {\n if (r.ubo)\n for (const n of r.ubo) {\n if (n.size && n.type) {\n const o = n.arraySize ?? 0;\n i.ubo.addUniform(n.name, n.size, o), this._uboDeclaration += `${n.type} ${n.name}${o > 0 ? `[${o}]` : \"\"};\n`;\n }\n this._uniformList.push(n.name);\n }\n r.vertex && (this._vertexDeclaration += r.vertex + `\n`), r.fragment && (this._fragmentDeclaration += r.fragment + `\n`);\n }\n s.getSamplers(this._samplerList), s.getUniformBuffersNames(this._uboList);\n }\n break;\n }\n }\n }\n _collectPointNames(e, t) {\n if (t)\n for (const i in t)\n this._codeInjectionPoints[e] || (this._codeInjectionPoints[e] = {}), this._codeInjectionPoints[e][i] = !0;\n }\n _injectCustomCode(e, t) {\n return (i, s) => {\n var o, l;\n t && (s = t(i, s)), this._uboDeclaration && (s = s.replace(\"#define ADDITIONAL_UBO_DECLARATION\", this._uboDeclaration)), this._vertexDeclaration && (s = s.replace(\"#define ADDITIONAL_VERTEX_DECLARATION\", this._vertexDeclaration)), this._fragmentDeclaration && (s = s.replace(\"#define ADDITIONAL_FRAGMENT_DECLARATION\", this._fragmentDeclaration));\n const r = (o = this._codeInjectionPoints) == null ? void 0 : o[i];\n if (!r)\n return s;\n let n = null;\n for (let h in r) {\n let c = \"\";\n for (const u of this._activePlugins) {\n let d = (l = u.getCustomCode(i)) == null ? void 0 : l[h];\n d && (u.resolveIncludes && (n === null && (n = {\n defines: [],\n indexParameters: e.indexParameters,\n isFragment: !1,\n shouldUseHighPrecisionShader: this._engine._shouldUseHighPrecisionShader,\n processor: void 0,\n supportsUniformBuffers: this._engine.supportsUniformBuffers,\n shadersRepository: z.GetShadersRepository(0),\n includesShadersStore: z.GetIncludesShadersStore(0),\n version: void 0,\n platformName: this._engine.shaderPlatformName,\n processingContext: void 0,\n isNDCHalfZRange: this._engine.isNDCHalfZRange,\n useReverseDepthBuffer: this._engine.useReverseDepthBuffer,\n processCodeAfterIncludes: void 0\n // not used by _ProcessIncludes\n }), n.isFragment = i === \"fragment\", gu(d, n, (f) => d = f)), c += d + `\n`);\n }\n if (c.length > 0)\n if (h.charAt(0) === \"!\") {\n h = h.substring(1);\n let u = \"g\";\n if (h.charAt(0) === \"!\")\n u = \"\", h = h.substring(1);\n else {\n const _ = b1.exec(h);\n _ && _.length >= 2 && (u = _[1], h = h.substring(u.length + 1));\n }\n u.indexOf(\"g\") < 0 && (u += \"g\");\n const d = s, f = new RegExp(h, u);\n let p = f.exec(d);\n for (; p !== null; ) {\n let _ = c;\n for (let m = 0; m < p.length; ++m)\n _ = _.replace(\"$\" + m, p[m]);\n s = s.replace(p[0], _), p = f.exec(d);\n }\n } else {\n const u = \"#define \" + h;\n s = s.replace(u, `\n` + c + `\n` + u);\n }\n }\n return s;\n };\n }\n}\nNo._MaterialPluginClassToMainDefine = {};\nNo._MaterialPluginCounter = 0;\nMe.OnEnginesDisposedObservable.add(() => {\n P0();\n});\nconst Fo = [];\nlet Mg = !1, Dg = null;\nfunction bK(a, e) {\n Mg || (Dg = ue.OnEventObservable.add(\n (i) => {\n for (const [, s] of Fo)\n s(i);\n },\n 1\n /* MaterialPluginEvent.Created */\n ), Mg = !0);\n const t = Fo.filter(([i, s]) => i === a);\n t.length > 0 ? t[0][1] = e : Fo.push([a, e]);\n}\nfunction EK(a) {\n for (let e = 0; e < Fo.length; ++e)\n if (Fo[e][0] === a)\n return Fo.splice(e, 1), Fo.length === 0 && P0(), !0;\n return !1;\n}\nfunction P0() {\n Fo.length = 0, Mg = !1, ue.OnEventObservable.remove(Dg), Dg = null;\n}\nclass br {\n _enable(e) {\n e && this._pluginManager._activatePlugin(this);\n }\n /**\n * Creates a new material plugin\n * @param material parent material of the plugin\n * @param name name of the plugin\n * @param priority priority of the plugin\n * @param defines list of defines used by the plugin. The value of the property is the default value for this property\n * @param addToPluginList true to add the plugin to the list of plugins managed by the material plugin manager of the material (default: true)\n * @param enable true to enable the plugin (it is handy if the plugin does not handle properties to switch its current activation)\n * @param resolveIncludes Indicates that any #include directive in the plugin code must be replaced by the corresponding code (default: false)\n */\n constructor(e, t, i, s, r = !0, n = !1, o = !1) {\n this.priority = 500, this.resolveIncludes = !1, this.registerForExtraEvents = !1, this._material = e, this.name = t, this.priority = i, this.resolveIncludes = o, e.pluginManager || (e.pluginManager = new No(e), e.onDisposeObservable.add(() => {\n e.pluginManager = void 0;\n })), this._pluginDefineNames = s, this._pluginManager = e.pluginManager, r && this._pluginManager._addPlugin(this), n && this._enable(!0), this.markAllDefinesAsDirty = e._dirtyCallbacks[63];\n }\n /**\n * Gets the current class name useful for serialization or dynamic coding.\n * @returns The class name.\n */\n getClassName() {\n return \"MaterialPluginBase\";\n }\n /**\n * Specifies that the submesh is ready to be used.\n * @param defines the list of \"defines\" to update.\n * @param scene defines the scene the material belongs to.\n * @param engine the engine this scene belongs to.\n * @param subMesh the submesh to check for readiness\n * @returns - boolean indicating that the submesh is ready or not.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isReadyForSubMesh(e, t, i, s) {\n return !0;\n }\n /**\n * Binds the material data (this function is called even if mustRebind() returns false)\n * @param uniformBuffer defines the Uniform buffer to fill in.\n * @param scene defines the scene the material belongs to.\n * @param engine defines the engine the material belongs to.\n * @param subMesh the submesh to bind data for\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n hardBindForSubMesh(e, t, i, s) {\n }\n /**\n * Binds the material data.\n * @param uniformBuffer defines the Uniform buffer to fill in.\n * @param scene defines the scene the material belongs to.\n * @param engine the engine this scene belongs to.\n * @param subMesh the submesh to bind data for\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n bindForSubMesh(e, t, i, s) {\n }\n /**\n * Disposes the resources of the material.\n * @param forceDisposeTextures - Forces the disposal of all textures.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dispose(e) {\n }\n /**\n * Returns a list of custom shader code fragments to customize the shader.\n * @param shaderType \"vertex\" or \"fragment\"\n * @returns null if no code to be added, or a list of pointName =\\> code.\n * Note that `pointName` can also be a regular expression if it starts with a `!`.\n * In that case, the string found by the regular expression (if any) will be\n * replaced by the code provided.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getCustomCode(e) {\n return null;\n }\n /**\n * Collects all defines.\n * @param defines The object to append to.\n */\n collectDefines(e) {\n if (this._pluginDefineNames)\n for (const t of Object.keys(this._pluginDefineNames)) {\n if (t[0] === \"_\")\n continue;\n const i = typeof this._pluginDefineNames[t];\n e[t] = {\n type: i === \"number\" ? \"number\" : i === \"string\" ? \"string\" : i === \"boolean\" ? \"boolean\" : \"object\",\n default: this._pluginDefineNames[t]\n };\n }\n }\n /**\n * Sets the defines for the next rendering. Called before PrepareDefinesForAttributes is called.\n * @param defines the list of \"defines\" to update.\n * @param scene defines the scene to the material belongs to.\n * @param mesh the mesh being rendered\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n prepareDefinesBeforeAttributes(e, t, i) {\n }\n /**\n * Sets the defines for the next rendering\n * @param defines the list of \"defines\" to update.\n * @param scene defines the scene to the material belongs to.\n * @param mesh the mesh being rendered\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n prepareDefines(e, t, i) {\n }\n /**\n * Checks to see if a texture is used in the material.\n * @param texture - Base texture to use.\n * @returns - Boolean specifying if a texture is used in the material.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n hasTexture(e) {\n return !1;\n }\n /**\n * Gets a boolean indicating that current material needs to register RTT\n * @returns true if this uses a render target otherwise false.\n */\n hasRenderTargetTextures() {\n return !1;\n }\n /**\n * Fills the list of render target textures.\n * @param renderTargets the list of render targets to update\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n fillRenderTargetTextures(e) {\n }\n /**\n * Returns an array of the actively used textures.\n * @param activeTextures Array of BaseTextures\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getActiveTextures(e) {\n }\n /**\n * Returns the animatable textures.\n * @param animatables Array of animatable textures.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getAnimatables(e) {\n }\n /**\n * Add fallbacks to the effect fallbacks list.\n * @param defines defines the Base texture to use.\n * @param fallbacks defines the current fallback list.\n * @param currentRank defines the current fallback rank.\n * @returns the new fallback rank.\n */\n addFallbacks(e, t, i) {\n return i;\n }\n /**\n * Gets the samplers used by the plugin.\n * @param samplers list that the sampler names should be added to.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getSamplers(e) {\n }\n /**\n * Gets the attributes used by the plugin.\n * @param attributes list that the attribute names should be added to.\n * @param scene the scene that the material belongs to.\n * @param mesh the mesh being rendered.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getAttributes(e, t, i) {\n }\n /**\n * Gets the uniform buffers names added by the plugin.\n * @param ubos list that the ubo names should be added to.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getUniformBuffersNames(e) {\n }\n /**\n * Gets the description of the uniforms to add to the ubo (if engine supports ubos) or to inject directly in the vertex/fragment shaders (if engine does not support ubos)\n * @returns the description of the uniforms\n */\n getUniforms() {\n return {};\n }\n /**\n * Makes a duplicate of the current configuration into another one.\n * @param plugin define the config where to copy the info\n */\n copyTo(e) {\n Ae.Clone(() => e, this);\n }\n /**\n * Serializes this plugin configuration.\n * @returns - An object with the serialized config.\n */\n serialize() {\n return Ae.Serialize(this);\n }\n /**\n * Parses a plugin configuration from a serialized object.\n * @param source - Serialized object.\n * @param scene Defines the scene we are parsing for\n * @param rootUrl Defines the rootUrl to load from\n */\n parse(e, t, i) {\n Ae.Parse(() => this, e, t, i);\n }\n}\ny([\n I()\n], br.prototype, \"name\", void 0);\ny([\n I()\n], br.prototype, \"priority\", void 0);\ny([\n I()\n], br.prototype, \"resolveIncludes\", void 0);\ny([\n I()\n], br.prototype, \"registerForExtraEvents\", void 0);\nU(\"BABYLON.MaterialPluginBase\", br);\nclass E1 extends dr {\n constructor() {\n super(...arguments), this.DETAIL = !1, this.DETAILDIRECTUV = 0, this.DETAIL_NORMALBLENDMETHOD = 0;\n }\n}\nclass sl extends br {\n /** @internal */\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled), this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n constructor(e, t = !0) {\n super(e, \"DetailMap\", 140, new E1(), t), this._texture = null, this.diffuseBlendLevel = 1, this.roughnessBlendLevel = 1, this.bumpLevel = 1, this._normalBlendMethod = ue.MATERIAL_NORMALBLENDMETHOD_WHITEOUT, this._isEnabled = !1, this.isEnabled = !1, this._internalMarkAllSubMeshesAsTexturesDirty = e._dirtyCallbacks[1];\n }\n isReadyForSubMesh(e, t, i) {\n return this._isEnabled ? !(e._areTexturesDirty && t.texturesEnabled && i.getCaps().standardDerivatives && this._texture && xe.DetailTextureEnabled && !this._texture.isReady()) : !0;\n }\n prepareDefines(e, t) {\n if (this._isEnabled) {\n e.DETAIL_NORMALBLENDMETHOD = this._normalBlendMethod;\n const i = t.getEngine();\n e._areTexturesDirty && (i.getCaps().standardDerivatives && this._texture && xe.DetailTextureEnabled && this._isEnabled ? (ci(this._texture, e, \"DETAIL\"), e.DETAIL_NORMALBLENDMETHOD = this._normalBlendMethod) : e.DETAIL = !1);\n } else\n e.DETAIL = !1;\n }\n bindForSubMesh(e, t) {\n if (!this._isEnabled)\n return;\n const i = this._material.isFrozen;\n (!e.useUbo || !i || !e.isSync) && this._texture && xe.DetailTextureEnabled && (e.updateFloat4(\"vDetailInfos\", this._texture.coordinatesIndex, this.diffuseBlendLevel, this.bumpLevel, this.roughnessBlendLevel), pi(this._texture, e, \"detail\")), t.texturesEnabled && this._texture && xe.DetailTextureEnabled && e.setTexture(\"detailSampler\", this._texture);\n }\n hasTexture(e) {\n return this._texture === e;\n }\n getActiveTextures(e) {\n this._texture && e.push(this._texture);\n }\n getAnimatables(e) {\n this._texture && this._texture.animations && this._texture.animations.length > 0 && e.push(this._texture);\n }\n dispose(e) {\n var t;\n e && ((t = this._texture) == null || t.dispose());\n }\n getClassName() {\n return \"DetailMapConfiguration\";\n }\n getSamplers(e) {\n e.push(\"detailSampler\");\n }\n getUniforms() {\n return {\n ubo: [\n { name: \"vDetailInfos\", size: 4, type: \"vec4\" },\n { name: \"detailMatrix\", size: 16, type: \"mat4\" }\n ]\n };\n }\n}\ny([\n xt(\"detailTexture\"),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], sl.prototype, \"texture\", void 0);\ny([\n I()\n], sl.prototype, \"diffuseBlendLevel\", void 0);\ny([\n I()\n], sl.prototype, \"roughnessBlendLevel\", void 0);\ny([\n I()\n], sl.prototype, \"bumpLevel\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], sl.prototype, \"normalBlendMethod\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], sl.prototype, \"isEnabled\", void 0);\nconst Gm = { effect: null, subMesh: null };\nclass y1 extends dr {\n /**\n * Initializes the Standard Material defines.\n * @param externalProperties The external properties\n */\n constructor(e) {\n super(e), this.MAINUV1 = !1, this.MAINUV2 = !1, this.MAINUV3 = !1, this.MAINUV4 = !1, this.MAINUV5 = !1, this.MAINUV6 = !1, this.DIFFUSE = !1, this.DIFFUSEDIRECTUV = 0, this.BAKED_VERTEX_ANIMATION_TEXTURE = !1, this.AMBIENT = !1, this.AMBIENTDIRECTUV = 0, this.OPACITY = !1, this.OPACITYDIRECTUV = 0, this.OPACITYRGB = !1, this.REFLECTION = !1, this.EMISSIVE = !1, this.EMISSIVEDIRECTUV = 0, this.SPECULAR = !1, this.SPECULARDIRECTUV = 0, this.BUMP = !1, this.BUMPDIRECTUV = 0, this.PARALLAX = !1, this.PARALLAX_RHS = !1, this.PARALLAXOCCLUSION = !1, this.SPECULAROVERALPHA = !1, this.CLIPPLANE = !1, this.CLIPPLANE2 = !1, this.CLIPPLANE3 = !1, this.CLIPPLANE4 = !1, this.CLIPPLANE5 = !1, this.CLIPPLANE6 = !1, this.ALPHATEST = !1, this.DEPTHPREPASS = !1, this.ALPHAFROMDIFFUSE = !1, this.POINTSIZE = !1, this.FOG = !1, this.SPECULARTERM = !1, this.DIFFUSEFRESNEL = !1, this.OPACITYFRESNEL = !1, this.REFLECTIONFRESNEL = !1, this.REFRACTIONFRESNEL = !1, this.EMISSIVEFRESNEL = !1, this.FRESNEL = !1, this.NORMAL = !1, this.TANGENT = !1, this.UV1 = !1, this.UV2 = !1, this.UV3 = !1, this.UV4 = !1, this.UV5 = !1, this.UV6 = !1, this.VERTEXCOLOR = !1, this.VERTEXALPHA = !1, this.NUM_BONE_INFLUENCERS = 0, this.BonesPerMesh = 0, this.BONETEXTURE = !1, this.BONES_VELOCITY_ENABLED = !1, this.INSTANCES = !1, this.THIN_INSTANCES = !1, this.INSTANCESCOLOR = !1, this.GLOSSINESS = !1, this.ROUGHNESS = !1, this.EMISSIVEASILLUMINATION = !1, this.LINKEMISSIVEWITHDIFFUSE = !1, this.REFLECTIONFRESNELFROMSPECULAR = !1, this.LIGHTMAP = !1, this.LIGHTMAPDIRECTUV = 0, this.OBJECTSPACE_NORMALMAP = !1, this.USELIGHTMAPASSHADOWMAP = !1, this.REFLECTIONMAP_3D = !1, this.REFLECTIONMAP_SPHERICAL = !1, this.REFLECTIONMAP_PLANAR = !1, this.REFLECTIONMAP_CUBIC = !1, this.USE_LOCAL_REFLECTIONMAP_CUBIC = !1, this.USE_LOCAL_REFRACTIONMAP_CUBIC = !1, this.REFLECTIONMAP_PROJECTION = !1, this.REFLECTIONMAP_SKYBOX = !1, this.REFLECTIONMAP_EXPLICIT = !1, this.REFLECTIONMAP_EQUIRECTANGULAR = !1, this.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1, this.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1, this.REFLECTIONMAP_OPPOSITEZ = !1, this.INVERTCUBICMAP = !1, this.LOGARITHMICDEPTH = !1, this.REFRACTION = !1, this.REFRACTIONMAP_3D = !1, this.REFLECTIONOVERALPHA = !1, this.TWOSIDEDLIGHTING = !1, this.SHADOWFLOAT = !1, this.MORPHTARGETS = !1, this.MORPHTARGETS_NORMAL = !1, this.MORPHTARGETS_TANGENT = !1, this.MORPHTARGETS_UV = !1, this.NUM_MORPH_INFLUENCERS = 0, this.MORPHTARGETS_TEXTURE = !1, this.NONUNIFORMSCALING = !1, this.PREMULTIPLYALPHA = !1, this.ALPHATEST_AFTERALLALPHACOMPUTATIONS = !1, this.ALPHABLEND = !0, this.PREPASS = !1, this.PREPASS_IRRADIANCE = !1, this.PREPASS_IRRADIANCE_INDEX = -1, this.PREPASS_ALBEDO_SQRT = !1, this.PREPASS_ALBEDO_SQRT_INDEX = -1, this.PREPASS_DEPTH = !1, this.PREPASS_DEPTH_INDEX = -1, this.PREPASS_NORMAL = !1, this.PREPASS_NORMAL_INDEX = -1, this.PREPASS_NORMAL_WORLDSPACE = !1, this.PREPASS_POSITION = !1, this.PREPASS_POSITION_INDEX = -1, this.PREPASS_VELOCITY = !1, this.PREPASS_VELOCITY_INDEX = -1, this.PREPASS_REFLECTIVITY = !1, this.PREPASS_REFLECTIVITY_INDEX = -1, this.SCENE_MRT_COUNT = 0, this.RGBDLIGHTMAP = !1, this.RGBDREFLECTION = !1, this.RGBDREFRACTION = !1, this.IMAGEPROCESSING = !1, this.VIGNETTE = !1, this.VIGNETTEBLENDMODEMULTIPLY = !1, this.VIGNETTEBLENDMODEOPAQUE = !1, this.TONEMAPPING = 0, this.CONTRAST = !1, this.COLORCURVES = !1, this.COLORGRADING = !1, this.COLORGRADING3D = !1, this.SAMPLER3DGREENDEPTH = !1, this.SAMPLER3DBGRMAP = !1, this.DITHER = !1, this.IMAGEPROCESSINGPOSTPROCESS = !1, this.SKIPFINALCOLORCLAMP = !1, this.MULTIVIEW = !1, this.ORDER_INDEPENDENT_TRANSPARENCY = !1, this.ORDER_INDEPENDENT_TRANSPARENCY_16BITS = !1, this.CAMERA_ORTHOGRAPHIC = !1, this.CAMERA_PERSPECTIVE = !1, this.IS_REFLECTION_LINEAR = !1, this.IS_REFRACTION_LINEAR = !1, this.EXPOSURE = !1, this.DECAL_AFTER_DETAIL = !1, this.rebuild();\n }\n setReflectionMode(e) {\n const t = [\n \"REFLECTIONMAP_CUBIC\",\n \"REFLECTIONMAP_EXPLICIT\",\n \"REFLECTIONMAP_PLANAR\",\n \"REFLECTIONMAP_PROJECTION\",\n \"REFLECTIONMAP_PROJECTION\",\n \"REFLECTIONMAP_SKYBOX\",\n \"REFLECTIONMAP_SPHERICAL\",\n \"REFLECTIONMAP_EQUIRECTANGULAR\",\n \"REFLECTIONMAP_EQUIRECTANGULAR_FIXED\",\n \"REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\"\n ];\n for (const i of t)\n this[i] = i === e;\n }\n}\nclass ye extends Sc {\n /**\n * Gets the image processing configuration used either in this material.\n */\n get imageProcessingConfiguration() {\n return this._imageProcessingConfiguration;\n }\n /**\n * Sets the Default image processing configuration used either in the this material.\n *\n * If sets to null, the scene one is in use.\n */\n set imageProcessingConfiguration(e) {\n this._attachImageProcessingConfiguration(e), this._markAllSubMeshesAsTexturesDirty();\n }\n /**\n * Attaches a new image processing configuration to the Standard Material.\n * @param configuration\n */\n _attachImageProcessingConfiguration(e) {\n e !== this._imageProcessingConfiguration && (this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), e ? this._imageProcessingConfiguration = e : this._imageProcessingConfiguration = this.getScene().imageProcessingConfiguration, this._imageProcessingConfiguration && (this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(() => {\n this._markAllSubMeshesAsImageProcessingDirty();\n })));\n }\n /**\n * Can this material render to prepass\n */\n get isPrePassCapable() {\n return !this.disableDepthWrite;\n }\n /**\n * Gets whether the color curves effect is enabled.\n */\n get cameraColorCurvesEnabled() {\n return this.imageProcessingConfiguration.colorCurvesEnabled;\n }\n /**\n * Sets whether the color curves effect is enabled.\n */\n set cameraColorCurvesEnabled(e) {\n this.imageProcessingConfiguration.colorCurvesEnabled = e;\n }\n /**\n * Gets whether the color grading effect is enabled.\n */\n get cameraColorGradingEnabled() {\n return this.imageProcessingConfiguration.colorGradingEnabled;\n }\n /**\n * Gets whether the color grading effect is enabled.\n */\n set cameraColorGradingEnabled(e) {\n this.imageProcessingConfiguration.colorGradingEnabled = e;\n }\n /**\n * Gets whether tonemapping is enabled or not.\n */\n get cameraToneMappingEnabled() {\n return this._imageProcessingConfiguration.toneMappingEnabled;\n }\n /**\n * Sets whether tonemapping is enabled or not\n */\n set cameraToneMappingEnabled(e) {\n this._imageProcessingConfiguration.toneMappingEnabled = e;\n }\n /**\n * The camera exposure used on this material.\n * This property is here and not in the camera to allow controlling exposure without full screen post process.\n * This corresponds to a photographic exposure.\n */\n get cameraExposure() {\n return this._imageProcessingConfiguration.exposure;\n }\n /**\n * The camera exposure used on this material.\n * This property is here and not in the camera to allow controlling exposure without full screen post process.\n * This corresponds to a photographic exposure.\n */\n set cameraExposure(e) {\n this._imageProcessingConfiguration.exposure = e;\n }\n /**\n * Gets The camera contrast used on this material.\n */\n get cameraContrast() {\n return this._imageProcessingConfiguration.contrast;\n }\n /**\n * Sets The camera contrast used on this material.\n */\n set cameraContrast(e) {\n this._imageProcessingConfiguration.contrast = e;\n }\n /**\n * Gets the Color Grading 2D Lookup Texture.\n */\n get cameraColorGradingTexture() {\n return this._imageProcessingConfiguration.colorGradingTexture;\n }\n /**\n * Sets the Color Grading 2D Lookup Texture.\n */\n set cameraColorGradingTexture(e) {\n this._imageProcessingConfiguration.colorGradingTexture = e;\n }\n /**\n * The color grading curves provide additional color adjustmnent that is applied after any color grading transform (3D LUT).\n * They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects.\n * These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image;\n * corresponding to low luminance, medium luminance, and high luminance areas respectively.\n */\n get cameraColorCurves() {\n return this._imageProcessingConfiguration.colorCurves;\n }\n /**\n * The color grading curves provide additional color adjustment that is applied after any color grading transform (3D LUT).\n * They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects.\n * These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image;\n * corresponding to low luminance, medium luminance, and high luminance areas respectively.\n */\n set cameraColorCurves(e) {\n this._imageProcessingConfiguration.colorCurves = e;\n }\n /**\n * Can this material render to several textures at once\n */\n get canRenderToMRT() {\n return !0;\n }\n /**\n * Instantiates a new standard material.\n * This is the default material used in Babylon. It is the best trade off between quality\n * and performances.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/materials_introduction\n * @param name Define the name of the material in the scene\n * @param scene Define the scene the material belong to\n */\n constructor(e, t) {\n super(e, t), this._diffuseTexture = null, this._ambientTexture = null, this._opacityTexture = null, this._reflectionTexture = null, this._emissiveTexture = null, this._specularTexture = null, this._bumpTexture = null, this._lightmapTexture = null, this._refractionTexture = null, this.ambientColor = new re(0, 0, 0), this.diffuseColor = new re(1, 1, 1), this.specularColor = new re(1, 1, 1), this.emissiveColor = new re(0, 0, 0), this.specularPower = 64, this._useAlphaFromDiffuseTexture = !1, this._useEmissiveAsIllumination = !1, this._linkEmissiveWithDiffuse = !1, this._useSpecularOverAlpha = !1, this._useReflectionOverAlpha = !1, this._disableLighting = !1, this._useObjectSpaceNormalMap = !1, this._useParallax = !1, this._useParallaxOcclusion = !1, this.parallaxScaleBias = 0.05, this._roughness = 0, this.indexOfRefraction = 0.98, this.invertRefractionY = !0, this.alphaCutOff = 0.4, this._useLightmapAsShadowmap = !1, this._useReflectionFresnelFromSpecular = !1, this._useGlossinessFromSpecularMapAlpha = !1, this._maxSimultaneousLights = 4, this._invertNormalMapX = !1, this._invertNormalMapY = !1, this._twoSidedLighting = !1, this._applyDecalMapAfterDetailMap = !1, this._renderTargets = new fs(16), this._worldViewProjectionMatrix = O.Zero(), this._globalAmbientColor = new re(0, 0, 0), this._cacheHasRenderTargetTextures = !1, this.detailMap = new sl(this), this._attachImageProcessingConfiguration(null), this.prePassConfiguration = new Up(), this.getRenderTargetTextures = () => (this._renderTargets.reset(), ye.ReflectionTextureEnabled && this._reflectionTexture && this._reflectionTexture.isRenderTarget && this._renderTargets.push(this._reflectionTexture), ye.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget && this._renderTargets.push(this._refractionTexture), this._eventInfo.renderTargets = this._renderTargets, this._callbackPluginEventFillRenderTargetTextures(this._eventInfo), this._renderTargets);\n }\n /**\n * Gets a boolean indicating that current material needs to register RTT\n */\n get hasRenderTargetTextures() {\n return ye.ReflectionTextureEnabled && this._reflectionTexture && this._reflectionTexture.isRenderTarget || ye.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget ? !0 : this._cacheHasRenderTargetTextures;\n }\n /**\n * Gets the current class name of the material e.g. \"StandardMaterial\"\n * Mainly use in serialization.\n * @returns the class name\n */\n getClassName() {\n return \"StandardMaterial\";\n }\n /**\n * Specifies if the material will require alpha blending\n * @returns a boolean specifying if alpha blending is needed\n */\n needAlphaBlending() {\n return this._disableAlphaBlending ? !1 : this.alpha < 1 || this._opacityTexture != null || this._shouldUseAlphaFromDiffuseTexture() || this._opacityFresnelParameters && this._opacityFresnelParameters.isEnabled;\n }\n /**\n * Specifies if this material should be rendered in alpha test mode\n * @returns a boolean specifying if an alpha test is needed.\n */\n needAlphaTesting() {\n return this._forceAlphaTest ? !0 : this._hasAlphaChannel() && (this._transparencyMode == null || this._transparencyMode === ue.MATERIAL_ALPHATEST);\n }\n /**\n * @returns whether or not the alpha value of the diffuse texture should be used for alpha blending.\n */\n _shouldUseAlphaFromDiffuseTexture() {\n return this._diffuseTexture != null && this._diffuseTexture.hasAlpha && this._useAlphaFromDiffuseTexture && this._transparencyMode !== ue.MATERIAL_OPAQUE;\n }\n /**\n * @returns whether or not there is a usable alpha channel for transparency.\n */\n _hasAlphaChannel() {\n return this._diffuseTexture != null && this._diffuseTexture.hasAlpha || this._opacityTexture != null;\n }\n /**\n * Get the texture used for alpha test purpose.\n * @returns the diffuse texture in case of the standard material.\n */\n getAlphaTestTexture() {\n return this._diffuseTexture;\n }\n /**\n * Get if the submesh is ready to be used and all its information available.\n * Child classes can use it to update shaders\n * @param mesh defines the mesh to check\n * @param subMesh defines which submesh to check\n * @param useInstances specifies that instances should be used\n * @returns a boolean indicating that the submesh is ready or not\n */\n isReadyForSubMesh(e, t, i = !1) {\n this._uniformBufferLayoutBuilt || this.buildUniformLayout();\n const s = t._drawWrapper;\n if (s.effect && this.isFrozen && s._wasPreviouslyReady && s._wasPreviouslyUsingInstances === i)\n return !0;\n t.materialDefines || (this._callbackPluginEventGeneric(4, this._eventInfo), t.materialDefines = new y1(this._eventInfo.defineNames));\n const r = this.getScene(), n = t.materialDefines;\n if (this._isReadyForSubMesh(t))\n return !0;\n const o = r.getEngine();\n n._needNormals = xc(r, e, n, !0, this._maxSimultaneousLights, this._disableLighting), _f(r, n);\n const l = this.needAlphaBlendingForMesh(e) && this.getScene().useOrderIndependentTransparency;\n if (v_(r, n, this.canRenderToMRT && !l), Gx(r, n, l), n._areTexturesDirty) {\n this._eventInfo.hasRenderTargetTextures = !1, this._callbackPluginEventHasRenderTargetTextures(this._eventInfo), this._cacheHasRenderTargetTextures = this._eventInfo.hasRenderTargetTextures, n._needUVs = !1;\n for (let c = 1; c <= 6; ++c)\n n[\"MAINUV\" + c] = !1;\n if (r.texturesEnabled) {\n if (n.DIFFUSEDIRECTUV = 0, n.BUMPDIRECTUV = 0, n.AMBIENTDIRECTUV = 0, n.OPACITYDIRECTUV = 0, n.EMISSIVEDIRECTUV = 0, n.SPECULARDIRECTUV = 0, n.LIGHTMAPDIRECTUV = 0, this._diffuseTexture && ye.DiffuseTextureEnabled)\n if (this._diffuseTexture.isReadyOrNotBlocking())\n ci(this._diffuseTexture, n, \"DIFFUSE\");\n else\n return !1;\n else\n n.DIFFUSE = !1;\n if (this._ambientTexture && ye.AmbientTextureEnabled)\n if (this._ambientTexture.isReadyOrNotBlocking())\n ci(this._ambientTexture, n, \"AMBIENT\");\n else\n return !1;\n else\n n.AMBIENT = !1;\n if (this._opacityTexture && ye.OpacityTextureEnabled)\n if (this._opacityTexture.isReadyOrNotBlocking())\n ci(this._opacityTexture, n, \"OPACITY\"), n.OPACITYRGB = this._opacityTexture.getAlphaFromRGB;\n else\n return !1;\n else\n n.OPACITY = !1;\n if (this._reflectionTexture && ye.ReflectionTextureEnabled)\n if (this._reflectionTexture.isReadyOrNotBlocking()) {\n switch (n._needNormals = !0, n.REFLECTION = !0, n.ROUGHNESS = this._roughness > 0, n.REFLECTIONOVERALPHA = this._useReflectionOverAlpha, n.INVERTCUBICMAP = this._reflectionTexture.coordinatesMode === X.INVCUBIC_MODE, n.REFLECTIONMAP_3D = this._reflectionTexture.isCube, n.REFLECTIONMAP_OPPOSITEZ = n.REFLECTIONMAP_3D && this.getScene().useRightHandedSystem ? !this._reflectionTexture.invertZ : this._reflectionTexture.invertZ, n.RGBDREFLECTION = this._reflectionTexture.isRGBD, this._reflectionTexture.coordinatesMode) {\n case X.EXPLICIT_MODE:\n n.setReflectionMode(\"REFLECTIONMAP_EXPLICIT\");\n break;\n case X.PLANAR_MODE:\n n.setReflectionMode(\"REFLECTIONMAP_PLANAR\");\n break;\n case X.PROJECTION_MODE:\n n.setReflectionMode(\"REFLECTIONMAP_PROJECTION\");\n break;\n case X.SKYBOX_MODE:\n n.setReflectionMode(\"REFLECTIONMAP_SKYBOX\");\n break;\n case X.SPHERICAL_MODE:\n n.setReflectionMode(\"REFLECTIONMAP_SPHERICAL\");\n break;\n case X.EQUIRECTANGULAR_MODE:\n n.setReflectionMode(\"REFLECTIONMAP_EQUIRECTANGULAR\");\n break;\n case X.FIXED_EQUIRECTANGULAR_MODE:\n n.setReflectionMode(\"REFLECTIONMAP_EQUIRECTANGULAR_FIXED\");\n break;\n case X.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:\n n.setReflectionMode(\"REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\");\n break;\n case X.CUBIC_MODE:\n case X.INVCUBIC_MODE:\n default:\n n.setReflectionMode(\"REFLECTIONMAP_CUBIC\");\n break;\n }\n n.USE_LOCAL_REFLECTIONMAP_CUBIC = !!this._reflectionTexture.boundingBoxSize;\n } else\n return !1;\n else\n n.REFLECTION = !1, n.REFLECTIONMAP_OPPOSITEZ = !1;\n if (this._emissiveTexture && ye.EmissiveTextureEnabled)\n if (this._emissiveTexture.isReadyOrNotBlocking())\n ci(this._emissiveTexture, n, \"EMISSIVE\");\n else\n return !1;\n else\n n.EMISSIVE = !1;\n if (this._lightmapTexture && ye.LightmapTextureEnabled)\n if (this._lightmapTexture.isReadyOrNotBlocking())\n ci(this._lightmapTexture, n, \"LIGHTMAP\"), n.USELIGHTMAPASSHADOWMAP = this._useLightmapAsShadowmap, n.RGBDLIGHTMAP = this._lightmapTexture.isRGBD;\n else\n return !1;\n else\n n.LIGHTMAP = !1;\n if (this._specularTexture && ye.SpecularTextureEnabled)\n if (this._specularTexture.isReadyOrNotBlocking())\n ci(this._specularTexture, n, \"SPECULAR\"), n.GLOSSINESS = this._useGlossinessFromSpecularMapAlpha;\n else\n return !1;\n else\n n.SPECULAR = !1;\n if (r.getEngine().getCaps().standardDerivatives && this._bumpTexture && ye.BumpTextureEnabled) {\n if (this._bumpTexture.isReady())\n ci(this._bumpTexture, n, \"BUMP\"), n.PARALLAX = this._useParallax, n.PARALLAX_RHS = r.useRightHandedSystem, n.PARALLAXOCCLUSION = this._useParallaxOcclusion;\n else\n return !1;\n n.OBJECTSPACE_NORMALMAP = this._useObjectSpaceNormalMap;\n } else\n n.BUMP = !1, n.PARALLAX = !1, n.PARALLAX_RHS = !1, n.PARALLAXOCCLUSION = !1;\n if (this._refractionTexture && ye.RefractionTextureEnabled)\n if (this._refractionTexture.isReadyOrNotBlocking())\n n._needUVs = !0, n.REFRACTION = !0, n.REFRACTIONMAP_3D = this._refractionTexture.isCube, n.RGBDREFRACTION = this._refractionTexture.isRGBD, n.USE_LOCAL_REFRACTIONMAP_CUBIC = !!this._refractionTexture.boundingBoxSize;\n else\n return !1;\n else\n n.REFRACTION = !1;\n n.TWOSIDEDLIGHTING = !this._backFaceCulling && this._twoSidedLighting;\n } else\n n.DIFFUSE = !1, n.AMBIENT = !1, n.OPACITY = !1, n.REFLECTION = !1, n.EMISSIVE = !1, n.LIGHTMAP = !1, n.BUMP = !1, n.REFRACTION = !1;\n n.ALPHAFROMDIFFUSE = this._shouldUseAlphaFromDiffuseTexture(), n.EMISSIVEASILLUMINATION = this._useEmissiveAsIllumination, n.LINKEMISSIVEWITHDIFFUSE = this._linkEmissiveWithDiffuse, n.SPECULAROVERALPHA = this._useSpecularOverAlpha, n.PREMULTIPLYALPHA = this.alphaMode === 7 || this.alphaMode === 8, n.ALPHATEST_AFTERALLALPHACOMPUTATIONS = this.transparencyMode !== null, n.ALPHABLEND = this.transparencyMode === null || this.needAlphaBlendingForMesh(e);\n }\n if (this._eventInfo.isReadyForSubMesh = !0, this._eventInfo.defines = n, this._eventInfo.subMesh = t, this._callbackPluginEventIsReadyForSubMesh(this._eventInfo), !this._eventInfo.isReadyForSubMesh)\n return !1;\n if (n._areImageProcessingDirty && this._imageProcessingConfiguration) {\n if (!this._imageProcessingConfiguration.isReady())\n return !1;\n this._imageProcessingConfiguration.prepareDefines(n), n.IS_REFLECTION_LINEAR = this.reflectionTexture != null && !this.reflectionTexture.gammaSpace, n.IS_REFRACTION_LINEAR = this.refractionTexture != null && !this.refractionTexture.gammaSpace;\n }\n n._areFresnelDirty && (ye.FresnelEnabled ? (this._diffuseFresnelParameters || this._opacityFresnelParameters || this._emissiveFresnelParameters || this._refractionFresnelParameters || this._reflectionFresnelParameters) && (n.DIFFUSEFRESNEL = this._diffuseFresnelParameters && this._diffuseFresnelParameters.isEnabled, n.OPACITYFRESNEL = this._opacityFresnelParameters && this._opacityFresnelParameters.isEnabled, n.REFLECTIONFRESNEL = this._reflectionFresnelParameters && this._reflectionFresnelParameters.isEnabled, n.REFLECTIONFRESNELFROMSPECULAR = this._useReflectionFresnelFromSpecular, n.REFRACTIONFRESNEL = this._refractionFresnelParameters && this._refractionFresnelParameters.isEnabled, n.EMISSIVEFRESNEL = this._emissiveFresnelParameters && this._emissiveFresnelParameters.isEnabled, n._needNormals = !0, n.FRESNEL = !0) : n.FRESNEL = !1), df(e, r, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(e) || this._forceAlphaTest, n, this._applyDecalMapAfterDetailMap), ff(r, o, this, n, i, null, t.getRenderingMesh().hasThinInstances), this._eventInfo.defines = n, this._eventInfo.mesh = e, this._callbackPluginEventPrepareDefinesBeforeAttributes(this._eventInfo), pf(e, n, !0, !0, !0), this._callbackPluginEventPrepareDefines(this._eventInfo);\n let h = !1;\n if (n.isDirty) {\n const c = n._areLightsDisposed;\n n.markAsProcessed();\n const u = new Vl();\n n.REFLECTION && u.addFallback(0, \"REFLECTION\"), n.SPECULAR && u.addFallback(0, \"SPECULAR\"), n.BUMP && u.addFallback(0, \"BUMP\"), n.PARALLAX && u.addFallback(1, \"PARALLAX\"), n.PARALLAX_RHS && u.addFallback(1, \"PARALLAX_RHS\"), n.PARALLAXOCCLUSION && u.addFallback(0, \"PARALLAXOCCLUSION\"), n.SPECULAROVERALPHA && u.addFallback(0, \"SPECULAROVERALPHA\"), n.FOG && u.addFallback(1, \"FOG\"), n.POINTSIZE && u.addFallback(0, \"POINTSIZE\"), n.LOGARITHMICDEPTH && u.addFallback(0, \"LOGARITHMICDEPTH\"), g_(n, u, this._maxSimultaneousLights), n.SPECULARTERM && u.addFallback(0, \"SPECULARTERM\"), n.DIFFUSEFRESNEL && u.addFallback(1, \"DIFFUSEFRESNEL\"), n.OPACITYFRESNEL && u.addFallback(2, \"OPACITYFRESNEL\"), n.REFLECTIONFRESNEL && u.addFallback(3, \"REFLECTIONFRESNEL\"), n.EMISSIVEFRESNEL && u.addFallback(4, \"EMISSIVEFRESNEL\"), n.FRESNEL && u.addFallback(4, \"FRESNEL\"), n.MULTIVIEW && u.addFallback(0, \"MULTIVIEW\");\n const d = [R.PositionKind];\n n.NORMAL && d.push(R.NormalKind), n.TANGENT && d.push(R.TangentKind);\n for (let S = 1; S <= 6; ++S)\n n[\"UV\" + S] && d.push(`uv${S === 1 ? \"\" : S}`);\n n.VERTEXCOLOR && d.push(R.ColorKind), m_(d, e, n, u), uf(d, n), p_(d, e, n), cf(d, e, n);\n let f = \"default\";\n const p = [\n \"world\",\n \"view\",\n \"viewProjection\",\n \"vEyePosition\",\n \"vLightsType\",\n \"vAmbientColor\",\n \"vDiffuseColor\",\n \"vSpecularColor\",\n \"vEmissiveColor\",\n \"visibility\",\n \"vFogInfos\",\n \"vFogColor\",\n \"pointSize\",\n \"vDiffuseInfos\",\n \"vAmbientInfos\",\n \"vOpacityInfos\",\n \"vReflectionInfos\",\n \"vEmissiveInfos\",\n \"vSpecularInfos\",\n \"vBumpInfos\",\n \"vLightmapInfos\",\n \"vRefractionInfos\",\n \"mBones\",\n \"diffuseMatrix\",\n \"ambientMatrix\",\n \"opacityMatrix\",\n \"reflectionMatrix\",\n \"emissiveMatrix\",\n \"specularMatrix\",\n \"bumpMatrix\",\n \"normalMatrix\",\n \"lightmapMatrix\",\n \"refractionMatrix\",\n \"diffuseLeftColor\",\n \"diffuseRightColor\",\n \"opacityParts\",\n \"reflectionLeftColor\",\n \"reflectionRightColor\",\n \"emissiveLeftColor\",\n \"emissiveRightColor\",\n \"refractionLeftColor\",\n \"refractionRightColor\",\n \"vReflectionPosition\",\n \"vReflectionSize\",\n \"vRefractionPosition\",\n \"vRefractionSize\",\n \"logarithmicDepthConstant\",\n \"vTangentSpaceParams\",\n \"alphaCutOff\",\n \"boneTextureWidth\",\n \"morphTargetTextureInfo\",\n \"morphTargetTextureIndices\"\n ], _ = [\n \"diffuseSampler\",\n \"ambientSampler\",\n \"opacitySampler\",\n \"reflectionCubeSampler\",\n \"reflection2DSampler\",\n \"emissiveSampler\",\n \"specularSampler\",\n \"bumpSampler\",\n \"lightmapSampler\",\n \"refractionCubeSampler\",\n \"refraction2DSampler\",\n \"boneSampler\",\n \"morphTargets\",\n \"oitDepthSampler\",\n \"oitFrontColorSampler\"\n ], m = [\"Material\", \"Scene\", \"Mesh\"], x = { maxSimultaneousLights: this._maxSimultaneousLights, maxSimultaneousMorphTargets: n.NUM_MORPH_INFLUENCERS };\n this._eventInfo.fallbacks = u, this._eventInfo.fallbackRank = 0, this._eventInfo.defines = n, this._eventInfo.uniforms = p, this._eventInfo.attributes = d, this._eventInfo.samplers = _, this._eventInfo.uniformBuffersNames = m, this._eventInfo.customCode = void 0, this._eventInfo.mesh = e, this._eventInfo.indexParameters = x, this._callbackPluginEventGeneric(128, this._eventInfo), Up.AddUniforms(p), pt && (pt.PrepareUniforms(p, n), pt.PrepareSamplers(_, n)), mf({\n uniformsNames: p,\n uniformBuffersNames: m,\n samplers: _,\n defines: n,\n maxSimultaneousLights: this._maxSimultaneousLights\n }), Ln(p);\n const v = {};\n this.customShaderNameResolve && (f = this.customShaderNameResolve(f, p, m, _, n, d, v));\n const T = n.toString(), E = t.effect;\n let b = r.getEngine().createEffect(f, {\n attributes: d,\n uniformsNames: p,\n uniformBuffersNames: m,\n samplers: _,\n defines: T,\n fallbacks: u,\n onCompiled: this.onCompiled,\n onError: this.onError,\n indexParameters: x,\n processFinalCode: v.processFinalCode,\n processCodeAfterIncludes: this._eventInfo.customCode,\n multiTarget: n.PREPASS\n }, o);\n if (this._eventInfo.customCode = void 0, b)\n if (this._onEffectCreatedObservable && (Gm.effect = b, Gm.subMesh = t, this._onEffectCreatedObservable.notifyObservers(Gm)), this.allowShaderHotSwapping && E && !b.isReady()) {\n if (b = E, n.markAsUnprocessed(), h = this.isFrozen, c)\n return n._areLightsDisposed = !0, !1;\n } else\n r.resetCachedMaterial(), t.setEffect(b, n, this._materialContext);\n }\n return !t.effect || !t.effect.isReady() ? !1 : (n._renderId = r.getRenderId(), s._wasPreviouslyReady = !h, s._wasPreviouslyUsingInstances = i, this._checkScenePerformancePriority(), !0);\n }\n /**\n * Builds the material UBO layouts.\n * Used internally during the effect preparation.\n */\n buildUniformLayout() {\n const e = this._uniformBuffer;\n e.addUniform(\"diffuseLeftColor\", 4), e.addUniform(\"diffuseRightColor\", 4), e.addUniform(\"opacityParts\", 4), e.addUniform(\"reflectionLeftColor\", 4), e.addUniform(\"reflectionRightColor\", 4), e.addUniform(\"refractionLeftColor\", 4), e.addUniform(\"refractionRightColor\", 4), e.addUniform(\"emissiveLeftColor\", 4), e.addUniform(\"emissiveRightColor\", 4), e.addUniform(\"vDiffuseInfos\", 2), e.addUniform(\"vAmbientInfos\", 2), e.addUniform(\"vOpacityInfos\", 2), e.addUniform(\"vReflectionInfos\", 2), e.addUniform(\"vReflectionPosition\", 3), e.addUniform(\"vReflectionSize\", 3), e.addUniform(\"vEmissiveInfos\", 2), e.addUniform(\"vLightmapInfos\", 2), e.addUniform(\"vSpecularInfos\", 2), e.addUniform(\"vBumpInfos\", 3), e.addUniform(\"diffuseMatrix\", 16), e.addUniform(\"ambientMatrix\", 16), e.addUniform(\"opacityMatrix\", 16), e.addUniform(\"reflectionMatrix\", 16), e.addUniform(\"emissiveMatrix\", 16), e.addUniform(\"lightmapMatrix\", 16), e.addUniform(\"specularMatrix\", 16), e.addUniform(\"bumpMatrix\", 16), e.addUniform(\"vTangentSpaceParams\", 2), e.addUniform(\"pointSize\", 1), e.addUniform(\"alphaCutOff\", 1), e.addUniform(\"refractionMatrix\", 16), e.addUniform(\"vRefractionInfos\", 4), e.addUniform(\"vRefractionPosition\", 3), e.addUniform(\"vRefractionSize\", 3), e.addUniform(\"vSpecularColor\", 4), e.addUniform(\"vEmissiveColor\", 3), e.addUniform(\"vDiffuseColor\", 4), e.addUniform(\"vAmbientColor\", 3), super.buildUniformLayout();\n }\n /**\n * Binds the submesh to this material by preparing the effect and shader to draw\n * @param world defines the world transformation matrix\n * @param mesh defines the mesh containing the submesh\n * @param subMesh defines the submesh to bind the material to\n */\n bindForSubMesh(e, t, i) {\n var h;\n const s = this.getScene(), r = i.materialDefines;\n if (!r)\n return;\n const n = i.effect;\n if (!n)\n return;\n this._activeEffect = n, t.getMeshUniformBuffer().bindToEffect(n, \"Mesh\"), t.transferToEffect(e), this._uniformBuffer.bindToEffect(n, \"Material\"), this.prePassConfiguration.bindForSubMesh(this._activeEffect, s, t, e, this.isFrozen), this._eventInfo.subMesh = i, this._callbackPluginEventHardBindForSubMesh(this._eventInfo), r.OBJECTSPACE_NORMALMAP && (e.toNormalMatrix(this._normalMatrix), this.bindOnlyNormalMatrix(this._normalMatrix));\n const o = this._mustRebind(s, n, i, t.visibility);\n Fl(t, n);\n const l = this._uniformBuffer;\n if (o) {\n if (this.bindViewProjection(n), !l.useUbo || !this.isFrozen || !l.isSync || i._drawWrapper._forceRebindOnNextCall) {\n if (ye.FresnelEnabled && r.FRESNEL && (this.diffuseFresnelParameters && this.diffuseFresnelParameters.isEnabled && (l.updateColor4(\"diffuseLeftColor\", this.diffuseFresnelParameters.leftColor, this.diffuseFresnelParameters.power), l.updateColor4(\"diffuseRightColor\", this.diffuseFresnelParameters.rightColor, this.diffuseFresnelParameters.bias)), this.opacityFresnelParameters && this.opacityFresnelParameters.isEnabled && l.updateColor4(\"opacityParts\", new re(this.opacityFresnelParameters.leftColor.toLuminance(), this.opacityFresnelParameters.rightColor.toLuminance(), this.opacityFresnelParameters.bias), this.opacityFresnelParameters.power), this.reflectionFresnelParameters && this.reflectionFresnelParameters.isEnabled && (l.updateColor4(\"reflectionLeftColor\", this.reflectionFresnelParameters.leftColor, this.reflectionFresnelParameters.power), l.updateColor4(\"reflectionRightColor\", this.reflectionFresnelParameters.rightColor, this.reflectionFresnelParameters.bias)), this.refractionFresnelParameters && this.refractionFresnelParameters.isEnabled && (l.updateColor4(\"refractionLeftColor\", this.refractionFresnelParameters.leftColor, this.refractionFresnelParameters.power), l.updateColor4(\"refractionRightColor\", this.refractionFresnelParameters.rightColor, this.refractionFresnelParameters.bias)), this.emissiveFresnelParameters && this.emissiveFresnelParameters.isEnabled && (l.updateColor4(\"emissiveLeftColor\", this.emissiveFresnelParameters.leftColor, this.emissiveFresnelParameters.power), l.updateColor4(\"emissiveRightColor\", this.emissiveFresnelParameters.rightColor, this.emissiveFresnelParameters.bias))), s.texturesEnabled) {\n if (this._diffuseTexture && ye.DiffuseTextureEnabled && (l.updateFloat2(\"vDiffuseInfos\", this._diffuseTexture.coordinatesIndex, this._diffuseTexture.level), pi(this._diffuseTexture, l, \"diffuse\")), this._ambientTexture && ye.AmbientTextureEnabled && (l.updateFloat2(\"vAmbientInfos\", this._ambientTexture.coordinatesIndex, this._ambientTexture.level), pi(this._ambientTexture, l, \"ambient\")), this._opacityTexture && ye.OpacityTextureEnabled && (l.updateFloat2(\"vOpacityInfos\", this._opacityTexture.coordinatesIndex, this._opacityTexture.level), pi(this._opacityTexture, l, \"opacity\")), this._hasAlphaChannel() && l.updateFloat(\"alphaCutOff\", this.alphaCutOff), this._reflectionTexture && ye.ReflectionTextureEnabled && (l.updateFloat2(\"vReflectionInfos\", this._reflectionTexture.level, this.roughness), l.updateMatrix(\"reflectionMatrix\", this._reflectionTexture.getReflectionTextureMatrix()), this._reflectionTexture.boundingBoxSize)) {\n const c = this._reflectionTexture;\n l.updateVector3(\"vReflectionPosition\", c.boundingBoxPosition), l.updateVector3(\"vReflectionSize\", c.boundingBoxSize);\n }\n if (this._emissiveTexture && ye.EmissiveTextureEnabled && (l.updateFloat2(\"vEmissiveInfos\", this._emissiveTexture.coordinatesIndex, this._emissiveTexture.level), pi(this._emissiveTexture, l, \"emissive\")), this._lightmapTexture && ye.LightmapTextureEnabled && (l.updateFloat2(\"vLightmapInfos\", this._lightmapTexture.coordinatesIndex, this._lightmapTexture.level), pi(this._lightmapTexture, l, \"lightmap\")), this._specularTexture && ye.SpecularTextureEnabled && (l.updateFloat2(\"vSpecularInfos\", this._specularTexture.coordinatesIndex, this._specularTexture.level), pi(this._specularTexture, l, \"specular\")), this._bumpTexture && s.getEngine().getCaps().standardDerivatives && ye.BumpTextureEnabled && (l.updateFloat3(\"vBumpInfos\", this._bumpTexture.coordinatesIndex, 1 / this._bumpTexture.level, this.parallaxScaleBias), pi(this._bumpTexture, l, \"bump\"), s._mirroredCameraPosition ? l.updateFloat2(\"vTangentSpaceParams\", this._invertNormalMapX ? 1 : -1, this._invertNormalMapY ? 1 : -1) : l.updateFloat2(\"vTangentSpaceParams\", this._invertNormalMapX ? -1 : 1, this._invertNormalMapY ? -1 : 1)), this._refractionTexture && ye.RefractionTextureEnabled) {\n let c = 1;\n if (this._refractionTexture.isCube || (l.updateMatrix(\"refractionMatrix\", this._refractionTexture.getReflectionTextureMatrix()), this._refractionTexture.depth && (c = this._refractionTexture.depth)), l.updateFloat4(\"vRefractionInfos\", this._refractionTexture.level, this.indexOfRefraction, c, this.invertRefractionY ? -1 : 1), this._refractionTexture.boundingBoxSize) {\n const u = this._refractionTexture;\n l.updateVector3(\"vRefractionPosition\", u.boundingBoxPosition), l.updateVector3(\"vRefractionSize\", u.boundingBoxSize);\n }\n }\n }\n this.pointsCloud && l.updateFloat(\"pointSize\", this.pointSize), r.SPECULARTERM && l.updateColor4(\"vSpecularColor\", this.specularColor, this.specularPower), l.updateColor3(\"vEmissiveColor\", ye.EmissiveTextureEnabled ? this.emissiveColor : re.BlackReadOnly), l.updateColor4(\"vDiffuseColor\", this.diffuseColor, this.alpha), s.ambientColor.multiplyToRef(this.ambientColor, this._globalAmbientColor), l.updateColor3(\"vAmbientColor\", this._globalAmbientColor);\n }\n s.texturesEnabled && (this._diffuseTexture && ye.DiffuseTextureEnabled && n.setTexture(\"diffuseSampler\", this._diffuseTexture), this._ambientTexture && ye.AmbientTextureEnabled && n.setTexture(\"ambientSampler\", this._ambientTexture), this._opacityTexture && ye.OpacityTextureEnabled && n.setTexture(\"opacitySampler\", this._opacityTexture), this._reflectionTexture && ye.ReflectionTextureEnabled && (this._reflectionTexture.isCube ? n.setTexture(\"reflectionCubeSampler\", this._reflectionTexture) : n.setTexture(\"reflection2DSampler\", this._reflectionTexture)), this._emissiveTexture && ye.EmissiveTextureEnabled && n.setTexture(\"emissiveSampler\", this._emissiveTexture), this._lightmapTexture && ye.LightmapTextureEnabled && n.setTexture(\"lightmapSampler\", this._lightmapTexture), this._specularTexture && ye.SpecularTextureEnabled && n.setTexture(\"specularSampler\", this._specularTexture), this._bumpTexture && s.getEngine().getCaps().standardDerivatives && ye.BumpTextureEnabled && n.setTexture(\"bumpSampler\", this._bumpTexture), this._refractionTexture && ye.RefractionTextureEnabled && (this._refractionTexture.isCube ? n.setTexture(\"refractionCubeSampler\", this._refractionTexture) : n.setTexture(\"refraction2DSampler\", this._refractionTexture))), this.getScene().useOrderIndependentTransparency && this.needAlphaBlendingForMesh(t) && this.getScene().depthPeelingRenderer.bind(n), this._eventInfo.subMesh = i, this._callbackPluginEventBindForSubMesh(this._eventInfo), Tn(n, this, s), this.bindEyePosition(n);\n } else s.getEngine()._features.needToAlwaysBindUniformBuffers && (this._needToBindSceneUbo = !0);\n (o || !this.isFrozen) && (s.lightsEnabled && !this._disableLighting && gc(s, t, n, r, this._maxSimultaneousLights), (s.fogEnabled && t.applyFog && s.fogMode !== De.FOGMODE_NONE || this._reflectionTexture || this._refractionTexture || t.receiveShadows || r.PREPASS) && this.bindView(n), il(s, t, n), r.NUM_MORPH_INFLUENCERS && na(t, n), r.BAKED_VERTEX_ANIMATION_TEXTURE && ((h = t.bakedVertexAnimationManager) == null || h.bind(n, r.INSTANCES)), this.useLogarithmicDepth && Oa(r, n, s), this._imageProcessingConfiguration && !this._imageProcessingConfiguration.applyByPostProcess && this._imageProcessingConfiguration.bind(this._activeEffect)), this._afterBind(t, this._activeEffect, i), l.update();\n }\n /**\n * Get the list of animatables in the material.\n * @returns the list of animatables object used in the material\n */\n getAnimatables() {\n const e = super.getAnimatables();\n return this._diffuseTexture && this._diffuseTexture.animations && this._diffuseTexture.animations.length > 0 && e.push(this._diffuseTexture), this._ambientTexture && this._ambientTexture.animations && this._ambientTexture.animations.length > 0 && e.push(this._ambientTexture), this._opacityTexture && this._opacityTexture.animations && this._opacityTexture.animations.length > 0 && e.push(this._opacityTexture), this._reflectionTexture && this._reflectionTexture.animations && this._reflectionTexture.animations.length > 0 && e.push(this._reflectionTexture), this._emissiveTexture && this._emissiveTexture.animations && this._emissiveTexture.animations.length > 0 && e.push(this._emissiveTexture), this._specularTexture && this._specularTexture.animations && this._specularTexture.animations.length > 0 && e.push(this._specularTexture), this._bumpTexture && this._bumpTexture.animations && this._bumpTexture.animations.length > 0 && e.push(this._bumpTexture), this._lightmapTexture && this._lightmapTexture.animations && this._lightmapTexture.animations.length > 0 && e.push(this._lightmapTexture), this._refractionTexture && this._refractionTexture.animations && this._refractionTexture.animations.length > 0 && e.push(this._refractionTexture), e;\n }\n /**\n * Gets the active textures from the material\n * @returns an array of textures\n */\n getActiveTextures() {\n const e = super.getActiveTextures();\n return this._diffuseTexture && e.push(this._diffuseTexture), this._ambientTexture && e.push(this._ambientTexture), this._opacityTexture && e.push(this._opacityTexture), this._reflectionTexture && e.push(this._reflectionTexture), this._emissiveTexture && e.push(this._emissiveTexture), this._specularTexture && e.push(this._specularTexture), this._bumpTexture && e.push(this._bumpTexture), this._lightmapTexture && e.push(this._lightmapTexture), this._refractionTexture && e.push(this._refractionTexture), e;\n }\n /**\n * Specifies if the material uses a texture\n * @param texture defines the texture to check against the material\n * @returns a boolean specifying if the material uses the texture\n */\n hasTexture(e) {\n return !!(super.hasTexture(e) || this._diffuseTexture === e || this._ambientTexture === e || this._opacityTexture === e || this._reflectionTexture === e || this._emissiveTexture === e || this._specularTexture === e || this._bumpTexture === e || this._lightmapTexture === e || this._refractionTexture === e);\n }\n /**\n * Disposes the material\n * @param forceDisposeEffect specifies if effects should be forcefully disposed\n * @param forceDisposeTextures specifies if textures should be forcefully disposed\n */\n dispose(e, t) {\n var i, s, r, n, o, l, h, c, u;\n t && ((i = this._diffuseTexture) == null || i.dispose(), (s = this._ambientTexture) == null || s.dispose(), (r = this._opacityTexture) == null || r.dispose(), (n = this._reflectionTexture) == null || n.dispose(), (o = this._emissiveTexture) == null || o.dispose(), (l = this._specularTexture) == null || l.dispose(), (h = this._bumpTexture) == null || h.dispose(), (c = this._lightmapTexture) == null || c.dispose(), (u = this._refractionTexture) == null || u.dispose()), this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), super.dispose(e, t);\n }\n /**\n * Makes a duplicate of the material, and gives it a new name\n * @param name defines the new name for the duplicated material\n * @param cloneTexturesOnlyOnce - if a texture is used in more than one channel (e.g diffuse and opacity), only clone it once and reuse it on the other channels. Default false.\n * @param rootUrl defines the root URL to use to load textures\n * @returns the cloned material\n */\n clone(e, t = !0, i = \"\") {\n const s = Ae.Clone(() => new ye(e, this.getScene()), this, { cloneTexturesOnlyOnce: t });\n return s.name = e, s.id = e, this.stencil.copyTo(s.stencil), this._clonePlugins(s, i), s;\n }\n /**\n * Creates a standard material from parsed material data\n * @param source defines the JSON representation of the material\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @returns a new standard material\n */\n static Parse(e, t, i) {\n const s = Ae.Parse(() => new ye(e.name, t), e, t, i);\n return e.stencil && s.stencil.parse(e.stencil, t, i), ue._ParsePlugins(e, s, t, i), s;\n }\n // Flags used to enable or disable a type of texture for all Standard Materials\n /**\n * Are diffuse textures enabled in the application.\n */\n static get DiffuseTextureEnabled() {\n return xe.DiffuseTextureEnabled;\n }\n static set DiffuseTextureEnabled(e) {\n xe.DiffuseTextureEnabled = e;\n }\n /**\n * Are detail textures enabled in the application.\n */\n static get DetailTextureEnabled() {\n return xe.DetailTextureEnabled;\n }\n static set DetailTextureEnabled(e) {\n xe.DetailTextureEnabled = e;\n }\n /**\n * Are ambient textures enabled in the application.\n */\n static get AmbientTextureEnabled() {\n return xe.AmbientTextureEnabled;\n }\n static set AmbientTextureEnabled(e) {\n xe.AmbientTextureEnabled = e;\n }\n /**\n * Are opacity textures enabled in the application.\n */\n static get OpacityTextureEnabled() {\n return xe.OpacityTextureEnabled;\n }\n static set OpacityTextureEnabled(e) {\n xe.OpacityTextureEnabled = e;\n }\n /**\n * Are reflection textures enabled in the application.\n */\n static get ReflectionTextureEnabled() {\n return xe.ReflectionTextureEnabled;\n }\n static set ReflectionTextureEnabled(e) {\n xe.ReflectionTextureEnabled = e;\n }\n /**\n * Are emissive textures enabled in the application.\n */\n static get EmissiveTextureEnabled() {\n return xe.EmissiveTextureEnabled;\n }\n static set EmissiveTextureEnabled(e) {\n xe.EmissiveTextureEnabled = e;\n }\n /**\n * Are specular textures enabled in the application.\n */\n static get SpecularTextureEnabled() {\n return xe.SpecularTextureEnabled;\n }\n static set SpecularTextureEnabled(e) {\n xe.SpecularTextureEnabled = e;\n }\n /**\n * Are bump textures enabled in the application.\n */\n static get BumpTextureEnabled() {\n return xe.BumpTextureEnabled;\n }\n static set BumpTextureEnabled(e) {\n xe.BumpTextureEnabled = e;\n }\n /**\n * Are lightmap textures enabled in the application.\n */\n static get LightmapTextureEnabled() {\n return xe.LightmapTextureEnabled;\n }\n static set LightmapTextureEnabled(e) {\n xe.LightmapTextureEnabled = e;\n }\n /**\n * Are refraction textures enabled in the application.\n */\n static get RefractionTextureEnabled() {\n return xe.RefractionTextureEnabled;\n }\n static set RefractionTextureEnabled(e) {\n xe.RefractionTextureEnabled = e;\n }\n /**\n * Are color grading textures enabled in the application.\n */\n static get ColorGradingTextureEnabled() {\n return xe.ColorGradingTextureEnabled;\n }\n static set ColorGradingTextureEnabled(e) {\n xe.ColorGradingTextureEnabled = e;\n }\n /**\n * Are fresnels enabled in the application.\n */\n static get FresnelEnabled() {\n return xe.FresnelEnabled;\n }\n static set FresnelEnabled(e) {\n xe.FresnelEnabled = e;\n }\n}\ny([\n xt(\"diffuseTexture\")\n], ye.prototype, \"_diffuseTexture\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesAndMiscDirty\")\n], ye.prototype, \"diffuseTexture\", void 0);\ny([\n xt(\"ambientTexture\")\n], ye.prototype, \"_ambientTexture\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"ambientTexture\", void 0);\ny([\n xt(\"opacityTexture\")\n], ye.prototype, \"_opacityTexture\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesAndMiscDirty\")\n], ye.prototype, \"opacityTexture\", void 0);\ny([\n xt(\"reflectionTexture\")\n], ye.prototype, \"_reflectionTexture\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"reflectionTexture\", void 0);\ny([\n xt(\"emissiveTexture\")\n], ye.prototype, \"_emissiveTexture\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"emissiveTexture\", void 0);\ny([\n xt(\"specularTexture\")\n], ye.prototype, \"_specularTexture\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"specularTexture\", void 0);\ny([\n xt(\"bumpTexture\")\n], ye.prototype, \"_bumpTexture\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"bumpTexture\", void 0);\ny([\n xt(\"lightmapTexture\")\n], ye.prototype, \"_lightmapTexture\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"lightmapTexture\", void 0);\ny([\n xt(\"refractionTexture\")\n], ye.prototype, \"_refractionTexture\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"refractionTexture\", void 0);\ny([\n bi(\"ambient\")\n], ye.prototype, \"ambientColor\", void 0);\ny([\n bi(\"diffuse\")\n], ye.prototype, \"diffuseColor\", void 0);\ny([\n bi(\"specular\")\n], ye.prototype, \"specularColor\", void 0);\ny([\n bi(\"emissive\")\n], ye.prototype, \"emissiveColor\", void 0);\ny([\n I()\n], ye.prototype, \"specularPower\", void 0);\ny([\n I(\"useAlphaFromDiffuseTexture\")\n], ye.prototype, \"_useAlphaFromDiffuseTexture\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesAndMiscDirty\")\n], ye.prototype, \"useAlphaFromDiffuseTexture\", void 0);\ny([\n I(\"useEmissiveAsIllumination\")\n], ye.prototype, \"_useEmissiveAsIllumination\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"useEmissiveAsIllumination\", void 0);\ny([\n I(\"linkEmissiveWithDiffuse\")\n], ye.prototype, \"_linkEmissiveWithDiffuse\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"linkEmissiveWithDiffuse\", void 0);\ny([\n I(\"useSpecularOverAlpha\")\n], ye.prototype, \"_useSpecularOverAlpha\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"useSpecularOverAlpha\", void 0);\ny([\n I(\"useReflectionOverAlpha\")\n], ye.prototype, \"_useReflectionOverAlpha\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"useReflectionOverAlpha\", void 0);\ny([\n I(\"disableLighting\")\n], ye.prototype, \"_disableLighting\", void 0);\ny([\n ce(\"_markAllSubMeshesAsLightsDirty\")\n], ye.prototype, \"disableLighting\", void 0);\ny([\n I(\"useObjectSpaceNormalMap\")\n], ye.prototype, \"_useObjectSpaceNormalMap\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"useObjectSpaceNormalMap\", void 0);\ny([\n I(\"useParallax\")\n], ye.prototype, \"_useParallax\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"useParallax\", void 0);\ny([\n I(\"useParallaxOcclusion\")\n], ye.prototype, \"_useParallaxOcclusion\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"useParallaxOcclusion\", void 0);\ny([\n I()\n], ye.prototype, \"parallaxScaleBias\", void 0);\ny([\n I(\"roughness\")\n], ye.prototype, \"_roughness\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"roughness\", void 0);\ny([\n I()\n], ye.prototype, \"indexOfRefraction\", void 0);\ny([\n I()\n], ye.prototype, \"invertRefractionY\", void 0);\ny([\n I()\n], ye.prototype, \"alphaCutOff\", void 0);\ny([\n I(\"useLightmapAsShadowmap\")\n], ye.prototype, \"_useLightmapAsShadowmap\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"useLightmapAsShadowmap\", void 0);\ny([\n nf(\"diffuseFresnelParameters\")\n], ye.prototype, \"_diffuseFresnelParameters\", void 0);\ny([\n ce(\"_markAllSubMeshesAsFresnelDirty\")\n], ye.prototype, \"diffuseFresnelParameters\", void 0);\ny([\n nf(\"opacityFresnelParameters\")\n], ye.prototype, \"_opacityFresnelParameters\", void 0);\ny([\n ce(\"_markAllSubMeshesAsFresnelAndMiscDirty\")\n], ye.prototype, \"opacityFresnelParameters\", void 0);\ny([\n nf(\"reflectionFresnelParameters\")\n], ye.prototype, \"_reflectionFresnelParameters\", void 0);\ny([\n ce(\"_markAllSubMeshesAsFresnelDirty\")\n], ye.prototype, \"reflectionFresnelParameters\", void 0);\ny([\n nf(\"refractionFresnelParameters\")\n], ye.prototype, \"_refractionFresnelParameters\", void 0);\ny([\n ce(\"_markAllSubMeshesAsFresnelDirty\")\n], ye.prototype, \"refractionFresnelParameters\", void 0);\ny([\n nf(\"emissiveFresnelParameters\")\n], ye.prototype, \"_emissiveFresnelParameters\", void 0);\ny([\n ce(\"_markAllSubMeshesAsFresnelDirty\")\n], ye.prototype, \"emissiveFresnelParameters\", void 0);\ny([\n I(\"useReflectionFresnelFromSpecular\")\n], ye.prototype, \"_useReflectionFresnelFromSpecular\", void 0);\ny([\n ce(\"_markAllSubMeshesAsFresnelDirty\")\n], ye.prototype, \"useReflectionFresnelFromSpecular\", void 0);\ny([\n I(\"useGlossinessFromSpecularMapAlpha\")\n], ye.prototype, \"_useGlossinessFromSpecularMapAlpha\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"useGlossinessFromSpecularMapAlpha\", void 0);\ny([\n I(\"maxSimultaneousLights\")\n], ye.prototype, \"_maxSimultaneousLights\", void 0);\ny([\n ce(\"_markAllSubMeshesAsLightsDirty\")\n], ye.prototype, \"maxSimultaneousLights\", void 0);\ny([\n I(\"invertNormalMapX\")\n], ye.prototype, \"_invertNormalMapX\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"invertNormalMapX\", void 0);\ny([\n I(\"invertNormalMapY\")\n], ye.prototype, \"_invertNormalMapY\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"invertNormalMapY\", void 0);\ny([\n I(\"twoSidedLighting\")\n], ye.prototype, \"_twoSidedLighting\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ye.prototype, \"twoSidedLighting\", void 0);\ny([\n I(\"applyDecalMapAfterDetailMap\")\n], ye.prototype, \"_applyDecalMapAfterDetailMap\", void 0);\ny([\n ce(\"_markAllSubMeshesAsMiscDirty\")\n], ye.prototype, \"applyDecalMapAfterDetailMap\", void 0);\nU(\"BABYLON.StandardMaterial\", ye);\nDe.DefaultMaterialFactory = (a) => new ye(\"default material\", a);\nXe.prototype.updateRawTexture = function(a, e, t, i, s = null, r = 0, n = !1) {\n if (!a)\n return;\n const o = this._getRGBABufferInternalSizedFormat(r, t, n), l = this._getInternalFormat(t), h = this._getWebGLTextureType(r);\n this._bindTextureDirectly(this._gl.TEXTURE_2D, a, !0), this._unpackFlipY(i === void 0 ? !0 : !!i), this._doNotHandleContextLost || (a._bufferView = e, a.format = t, a.type = r, a.invertY = i, a._compression = s), a.width % 4 !== 0 && this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT, 1), s && e ? this._gl.compressedTexImage2D(this._gl.TEXTURE_2D, 0, this.getCaps().s3tc[s], a.width, a.height, 0, e) : this._gl.texImage2D(this._gl.TEXTURE_2D, 0, o, a.width, a.height, 0, l, h, e), a.generateMipMaps && this._gl.generateMipmap(this._gl.TEXTURE_2D), this._bindTextureDirectly(this._gl.TEXTURE_2D, null), a.isReady = !0;\n};\nXe.prototype.createRawTexture = function(a, e, t, i, s, r, n, o = null, l = 0, h = 0, c = !1) {\n const u = new Nt(\n this,\n 3\n /* InternalTextureSource.Raw */\n );\n u.baseWidth = e, u.baseHeight = t, u.width = e, u.height = t, u.format = i, u.generateMipMaps = s, u.samplingMode = n, u.invertY = r, u._compression = o, u.type = l, u._useSRGBBuffer = this._getUseSRGBBuffer(c, !s), this._doNotHandleContextLost || (u._bufferView = a), this.updateRawTexture(u, a, i, r, o, l, u._useSRGBBuffer), this._bindTextureDirectly(this._gl.TEXTURE_2D, u, !0);\n const d = this._getSamplingParameters(n, s);\n return this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, d.mag), this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, d.min), s && this._gl.generateMipmap(this._gl.TEXTURE_2D), this._bindTextureDirectly(this._gl.TEXTURE_2D, null), this._internalTexturesCache.push(u), u;\n};\nXe.prototype.createRawCubeTexture = function(a, e, t, i, s, r, n, o = null) {\n const l = this._gl, h = new Nt(\n this,\n 8\n /* InternalTextureSource.CubeRaw */\n );\n h.isCube = !0, h.format = t, h.type = i, this._doNotHandleContextLost || (h._bufferViewArray = a);\n const c = this._getWebGLTextureType(i);\n let u = this._getInternalFormat(t);\n u === l.RGB && (u = l.RGBA), c === l.FLOAT && !this._caps.textureFloatLinearFiltering ? (s = !1, n = 1, L.Warn(\"Float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.\")) : c === this._gl.HALF_FLOAT_OES && !this._caps.textureHalfFloatLinearFiltering ? (s = !1, n = 1, L.Warn(\"Half float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.\")) : c === l.FLOAT && !this._caps.textureFloatRender ? (s = !1, L.Warn(\"Render to float textures is not supported. Mipmap generation forced to false.\")) : c === l.HALF_FLOAT && !this._caps.colorBufferFloat && (s = !1, L.Warn(\"Render to half float textures is not supported. Mipmap generation forced to false.\"));\n const d = e, f = d;\n if (h.width = d, h.height = f, h.invertY = r, h._compression = o, !this.needPOTTextures || mu(h.width) && mu(h.height) || (s = !1), a)\n this.updateRawCubeTexture(h, a, t, i, r, o);\n else {\n const m = this._getRGBABufferInternalSizedFormat(i), x = 0;\n this._bindTextureDirectly(l.TEXTURE_CUBE_MAP, h, !0);\n for (let v = 0; v < 6; v++)\n o ? l.compressedTexImage2D(l.TEXTURE_CUBE_MAP_POSITIVE_X + v, x, this.getCaps().s3tc[o], h.width, h.height, 0, void 0) : l.texImage2D(l.TEXTURE_CUBE_MAP_POSITIVE_X + v, x, m, h.width, h.height, 0, u, c, null);\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, h, !0), a && s && this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP);\n const _ = this._getSamplingParameters(n, s);\n return l.texParameteri(l.TEXTURE_CUBE_MAP, l.TEXTURE_MAG_FILTER, _.mag), l.texParameteri(l.TEXTURE_CUBE_MAP, l.TEXTURE_MIN_FILTER, _.min), l.texParameteri(l.TEXTURE_CUBE_MAP, l.TEXTURE_WRAP_S, l.CLAMP_TO_EDGE), l.texParameteri(l.TEXTURE_CUBE_MAP, l.TEXTURE_WRAP_T, l.CLAMP_TO_EDGE), this._bindTextureDirectly(l.TEXTURE_CUBE_MAP, null), h.generateMipMaps = s, h.samplingMode = n, h.isReady = !0, h;\n};\nXe.prototype.updateRawCubeTexture = function(a, e, t, i, s, r = null, n = 0) {\n a._bufferViewArray = e, a.format = t, a.type = i, a.invertY = s, a._compression = r;\n const o = this._gl, l = this._getWebGLTextureType(i);\n let h = this._getInternalFormat(t);\n const c = this._getRGBABufferInternalSizedFormat(i);\n let u = !1;\n h === o.RGB && (h = o.RGBA, u = !0), this._bindTextureDirectly(o.TEXTURE_CUBE_MAP, a, !0), this._unpackFlipY(s === void 0 ? !0 : !!s), a.width % 4 !== 0 && o.pixelStorei(o.UNPACK_ALIGNMENT, 1);\n for (let f = 0; f < 6; f++) {\n let p = e[f];\n r ? o.compressedTexImage2D(o.TEXTURE_CUBE_MAP_POSITIVE_X + f, n, this.getCaps().s3tc[r], a.width, a.height, 0, p) : (u && (p = M0(p, a.width, a.height, i)), o.texImage2D(o.TEXTURE_CUBE_MAP_POSITIVE_X + f, n, c, a.width, a.height, 0, h, l, p));\n }\n (!this.needPOTTextures || mu(a.width) && mu(a.height)) && a.generateMipMaps && n === 0 && this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP), this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null), a.isReady = !0;\n};\nXe.prototype.createRawCubeTextureFromUrl = function(a, e, t, i, s, r, n, o, l = null, h = null, c = 3, u = !1) {\n const d = this._gl, f = this.createRawCubeTexture(null, t, i, s, !r, u, c, null);\n e == null || e.addPendingData(f), f.url = a, f.isReady = !1, this._internalTexturesCache.push(f);\n const p = (m, x) => {\n e == null || e.removePendingData(f), h && m && h(m.status + \" \" + m.statusText, x);\n }, _ = (m) => {\n const x = f.width, v = n(m);\n if (v) {\n if (o) {\n const T = this._getWebGLTextureType(s);\n let E = this._getInternalFormat(i);\n const b = this._getRGBABufferInternalSizedFormat(s);\n let S = !1;\n E === d.RGB && (E = d.RGBA, S = !0), this._bindTextureDirectly(d.TEXTURE_CUBE_MAP, f, !0), this._unpackFlipY(!1);\n const C = o(v);\n for (let P = 0; P < C.length; P++) {\n const N = x >> P;\n for (let F = 0; F < 6; F++) {\n let $ = C[P][F];\n S && ($ = M0($, N, N, s)), d.texImage2D(F, P, b, N, N, 0, E, T, $);\n }\n }\n this._bindTextureDirectly(d.TEXTURE_CUBE_MAP, null);\n } else\n this.updateRawCubeTexture(f, v, i, s, u);\n f.isReady = !0, e == null || e.removePendingData(f), f.onLoadedObservable.notifyObservers(f), f.onLoadedObservable.clear(), l && l();\n }\n };\n return this._loadFile(a, (m) => {\n _(m);\n }, void 0, e == null ? void 0 : e.offlineProvider, !0, p), f;\n};\nfunction M0(a, e, t, i) {\n let s, r = 1;\n i === 1 ? s = new Float32Array(e * t * 4) : i === 2 ? (s = new Uint16Array(e * t * 4), r = 15360) : i === 7 ? s = new Uint32Array(e * t * 4) : s = new Uint8Array(e * t * 4);\n for (let n = 0; n < e; n++)\n for (let o = 0; o < t; o++) {\n const l = (o * e + n) * 3, h = (o * e + n) * 4;\n s[h + 0] = a[l + 0], s[h + 1] = a[l + 1], s[h + 2] = a[l + 2], s[h + 3] = r;\n }\n return s;\n}\nfunction D0(a) {\n return function(e, t, i, s, r, n, o, l, h = null, c = 0) {\n const u = a ? this._gl.TEXTURE_3D : this._gl.TEXTURE_2D_ARRAY, d = a ? 10 : 11, f = new Nt(this, d);\n f.baseWidth = t, f.baseHeight = i, f.baseDepth = s, f.width = t, f.height = i, f.depth = s, f.format = r, f.type = c, f.generateMipMaps = n, f.samplingMode = l, a ? f.is3D = !0 : f.is2DArray = !0, this._doNotHandleContextLost || (f._bufferView = e), a ? this.updateRawTexture3D(f, e, r, o, h, c) : this.updateRawTexture2DArray(f, e, r, o, h, c), this._bindTextureDirectly(u, f, !0);\n const p = this._getSamplingParameters(l, n);\n return this._gl.texParameteri(u, this._gl.TEXTURE_MAG_FILTER, p.mag), this._gl.texParameteri(u, this._gl.TEXTURE_MIN_FILTER, p.min), n && this._gl.generateMipmap(u), this._bindTextureDirectly(u, null), this._internalTexturesCache.push(f), f;\n };\n}\nXe.prototype.createRawTexture2DArray = D0(!1);\nXe.prototype.createRawTexture3D = D0(!0);\nfunction O0(a) {\n return function(e, t, i, s, r = null, n = 0) {\n const o = a ? this._gl.TEXTURE_3D : this._gl.TEXTURE_2D_ARRAY, l = this._getWebGLTextureType(n), h = this._getInternalFormat(i), c = this._getRGBABufferInternalSizedFormat(n, i);\n this._bindTextureDirectly(o, e, !0), this._unpackFlipY(s === void 0 ? !0 : !!s), this._doNotHandleContextLost || (e._bufferView = t, e.format = i, e.invertY = s, e._compression = r), e.width % 4 !== 0 && this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT, 1), r && t ? this._gl.compressedTexImage3D(o, 0, this.getCaps().s3tc[r], e.width, e.height, e.depth, 0, t) : this._gl.texImage3D(o, 0, c, e.width, e.height, e.depth, 0, h, l, t), e.generateMipMaps && this._gl.generateMipmap(o), this._bindTextureDirectly(o, null), e.isReady = !0;\n };\n}\nXe.prototype.updateRawTexture2DArray = O0(!1);\nXe.prototype.updateRawTexture3D = O0(!0);\nclass _i extends X {\n /**\n * Instantiates a new RawTexture.\n * Raw texture can help creating a texture directly from an array of data.\n * This can be super useful if you either get the data from an uncompressed source or\n * if you wish to create your texture pixel by pixel.\n * @param data define the array of data to use to create the texture (null to create an empty texture)\n * @param width define the width of the texture\n * @param height define the height of the texture\n * @param format define the format of the data (RGB, RGBA... Engine.TEXTUREFORMAT_xxx)\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps define whether mip maps should be generated or not\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n */\n constructor(e, t, i, s, r, n = !0, o = !1, l = 3, h = 0, c, u) {\n super(null, r, !n, o, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, c), this.format = s, this._engine && (!this._engine._caps.textureFloatLinearFiltering && h === 1 && (l = 1), !this._engine._caps.textureHalfFloatLinearFiltering && h === 2 && (l = 1), this._texture = this._engine.createRawTexture(e, t, i, s, n, o, l, null, h, c ?? 0, u ?? !1), this.wrapU = X.CLAMP_ADDRESSMODE, this.wrapV = X.CLAMP_ADDRESSMODE);\n }\n /**\n * Updates the texture underlying data.\n * @param data Define the new data of the texture\n */\n update(e) {\n this._getEngine().updateRawTexture(this._texture, e, this._texture.format, this._texture.invertY, null, this._texture.type, this._texture._useSRGBBuffer);\n }\n /**\n * Creates a luminance texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @returns the luminance texture\n */\n static CreateLuminanceTexture(e, t, i, s, r = !0, n = !1, o = 3) {\n return new _i(e, t, i, 1, s, r, n, o);\n }\n /**\n * Creates a luminance alpha texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @returns the luminance alpha texture\n */\n static CreateLuminanceAlphaTexture(e, t, i, s, r = !0, n = !1, o = 3) {\n return new _i(e, t, i, 2, s, r, n, o);\n }\n /**\n * Creates an alpha texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @returns the alpha texture\n */\n static CreateAlphaTexture(e, t, i, s, r = !0, n = !1, o = 3) {\n return new _i(e, t, i, 0, s, r, n, o);\n }\n /**\n * Creates a RGB texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns the RGB alpha texture\n */\n static CreateRGBTexture(e, t, i, s, r = !0, n = !1, o = 3, l = 0, h = 0, c = !1) {\n return new _i(e, t, i, 4, s, r, n, o, l, h, c);\n }\n /**\n * Creates a RGBA texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns the RGBA texture\n */\n static CreateRGBATexture(e, t, i, s, r = !0, n = !1, o = 3, l = 0, h = 0, c = !1) {\n return new _i(e, t, i, 5, s, r, n, o, l, h, c);\n }\n /**\n * Creates a RGBA storage texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns the RGBA texture\n */\n static CreateRGBAStorageTexture(e, t, i, s, r = !0, n = !1, o = 3, l = 0, h = !1) {\n return new _i(e, t, i, 5, s, r, n, o, l, 1, h);\n }\n /**\n * Creates a R texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @returns the R texture\n */\n static CreateRTexture(e, t, i, s, r = !0, n = !1, o = X.TRILINEAR_SAMPLINGMODE, l = 1) {\n return new _i(e, t, i, 6, s, r, n, o, l);\n }\n /**\n * Creates a R storage texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @returns the R texture\n */\n static CreateRStorageTexture(e, t, i, s, r = !0, n = !1, o = X.TRILINEAR_SAMPLINGMODE, l = 1) {\n return new _i(e, t, i, 6, s, r, n, o, l, 1);\n }\n}\nclass q {\n}\nq.AUTOSAMPLERSUFFIX = \"Sampler\";\nq.DISABLEUA = \"#define DISABLE_UNIFORMITY_ANALYSIS\";\nq.ALPHA_DISABLE = 0;\nq.ALPHA_ADD = 1;\nq.ALPHA_COMBINE = 2;\nq.ALPHA_SUBTRACT = 3;\nq.ALPHA_MULTIPLY = 4;\nq.ALPHA_MAXIMIZED = 5;\nq.ALPHA_ONEONE = 6;\nq.ALPHA_PREMULTIPLIED = 7;\nq.ALPHA_PREMULTIPLIED_PORTERDUFF = 8;\nq.ALPHA_INTERPOLATE = 9;\nq.ALPHA_SCREENMODE = 10;\nq.ALPHA_ONEONE_ONEONE = 11;\nq.ALPHA_ALPHATOCOLOR = 12;\nq.ALPHA_REVERSEONEMINUS = 13;\nq.ALPHA_SRC_DSTONEMINUSSRCALPHA = 14;\nq.ALPHA_ONEONE_ONEZERO = 15;\nq.ALPHA_EXCLUSION = 16;\nq.ALPHA_LAYER_ACCUMULATE = 17;\nq.ALPHA_EQUATION_ADD = 0;\nq.ALPHA_EQUATION_SUBSTRACT = 1;\nq.ALPHA_EQUATION_REVERSE_SUBTRACT = 2;\nq.ALPHA_EQUATION_MAX = 3;\nq.ALPHA_EQUATION_MIN = 4;\nq.ALPHA_EQUATION_DARKEN = 5;\nq.DELAYLOADSTATE_NONE = 0;\nq.DELAYLOADSTATE_LOADED = 1;\nq.DELAYLOADSTATE_LOADING = 2;\nq.DELAYLOADSTATE_NOTLOADED = 4;\nq.NEVER = 512;\nq.ALWAYS = 519;\nq.LESS = 513;\nq.EQUAL = 514;\nq.LEQUAL = 515;\nq.GREATER = 516;\nq.GEQUAL = 518;\nq.NOTEQUAL = 517;\nq.KEEP = 7680;\nq.ZERO = 0;\nq.REPLACE = 7681;\nq.INCR = 7682;\nq.DECR = 7683;\nq.INVERT = 5386;\nq.INCR_WRAP = 34055;\nq.DECR_WRAP = 34056;\nq.TEXTURE_CLAMP_ADDRESSMODE = 0;\nq.TEXTURE_WRAP_ADDRESSMODE = 1;\nq.TEXTURE_MIRROR_ADDRESSMODE = 2;\nq.TEXTURE_CREATIONFLAG_STORAGE = 1;\nq.TEXTUREFORMAT_ALPHA = 0;\nq.TEXTUREFORMAT_LUMINANCE = 1;\nq.TEXTUREFORMAT_LUMINANCE_ALPHA = 2;\nq.TEXTUREFORMAT_RGB = 4;\nq.TEXTUREFORMAT_RGBA = 5;\nq.TEXTUREFORMAT_RED = 6;\nq.TEXTUREFORMAT_R = 6;\nq.TEXTUREFORMAT_RG = 7;\nq.TEXTUREFORMAT_RED_INTEGER = 8;\nq.TEXTUREFORMAT_R_INTEGER = 8;\nq.TEXTUREFORMAT_RG_INTEGER = 9;\nq.TEXTUREFORMAT_RGB_INTEGER = 10;\nq.TEXTUREFORMAT_RGBA_INTEGER = 11;\nq.TEXTUREFORMAT_BGRA = 12;\nq.TEXTUREFORMAT_DEPTH24_STENCIL8 = 13;\nq.TEXTUREFORMAT_DEPTH32_FLOAT = 14;\nq.TEXTUREFORMAT_DEPTH16 = 15;\nq.TEXTUREFORMAT_DEPTH24 = 16;\nq.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8 = 17;\nq.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8 = 18;\nq.TEXTUREFORMAT_STENCIL8 = 19;\nq.TEXTUREFORMAT_UNDEFINED = 4294967295;\nq.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM = 36492;\nq.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 36493;\nq.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 36495;\nq.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 36494;\nq.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5 = 33779;\nq.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 35919;\nq.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3 = 33778;\nq.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 35918;\nq.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1 = 33777;\nq.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1 = 33776;\nq.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 35917;\nq.TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT = 35916;\nq.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4 = 37808;\nq.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 37840;\nq.TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL = 36196;\nq.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2 = 37492;\nq.TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2 = 37493;\nq.TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37494;\nq.TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37495;\nq.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC = 37496;\nq.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 37497;\nq.TEXTURETYPE_UNSIGNED_BYTE = 0;\nq.TEXTURETYPE_UNSIGNED_INT = 0;\nq.TEXTURETYPE_FLOAT = 1;\nq.TEXTURETYPE_HALF_FLOAT = 2;\nq.TEXTURETYPE_BYTE = 3;\nq.TEXTURETYPE_SHORT = 4;\nq.TEXTURETYPE_UNSIGNED_SHORT = 5;\nq.TEXTURETYPE_INT = 6;\nq.TEXTURETYPE_UNSIGNED_INTEGER = 7;\nq.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 = 8;\nq.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 = 9;\nq.TEXTURETYPE_UNSIGNED_SHORT_5_6_5 = 10;\nq.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV = 11;\nq.TEXTURETYPE_UNSIGNED_INT_24_8 = 12;\nq.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV = 13;\nq.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV = 14;\nq.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV = 15;\nq.TEXTURETYPE_UNDEFINED = 16;\nq.TEXTURE_2D = 3553;\nq.TEXTURE_2D_ARRAY = 35866;\nq.TEXTURE_CUBE_MAP = 34067;\nq.TEXTURE_CUBE_MAP_ARRAY = 3735928559;\nq.TEXTURE_3D = 32879;\nq.TEXTURE_NEAREST_SAMPLINGMODE = 1;\nq.TEXTURE_NEAREST_NEAREST = 1;\nq.TEXTURE_BILINEAR_SAMPLINGMODE = 2;\nq.TEXTURE_LINEAR_LINEAR = 2;\nq.TEXTURE_TRILINEAR_SAMPLINGMODE = 3;\nq.TEXTURE_LINEAR_LINEAR_MIPLINEAR = 3;\nq.TEXTURE_NEAREST_NEAREST_MIPNEAREST = 4;\nq.TEXTURE_NEAREST_LINEAR_MIPNEAREST = 5;\nq.TEXTURE_NEAREST_LINEAR_MIPLINEAR = 6;\nq.TEXTURE_NEAREST_LINEAR = 7;\nq.TEXTURE_NEAREST_NEAREST_MIPLINEAR = 8;\nq.TEXTURE_LINEAR_NEAREST_MIPNEAREST = 9;\nq.TEXTURE_LINEAR_NEAREST_MIPLINEAR = 10;\nq.TEXTURE_LINEAR_LINEAR_MIPNEAREST = 11;\nq.TEXTURE_LINEAR_NEAREST = 12;\nq.TEXTURE_EXPLICIT_MODE = 0;\nq.TEXTURE_SPHERICAL_MODE = 1;\nq.TEXTURE_PLANAR_MODE = 2;\nq.TEXTURE_CUBIC_MODE = 3;\nq.TEXTURE_PROJECTION_MODE = 4;\nq.TEXTURE_SKYBOX_MODE = 5;\nq.TEXTURE_INVCUBIC_MODE = 6;\nq.TEXTURE_EQUIRECTANGULAR_MODE = 7;\nq.TEXTURE_FIXED_EQUIRECTANGULAR_MODE = 8;\nq.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE = 9;\nq.TEXTURE_FILTERING_QUALITY_OFFLINE = 4096;\nq.TEXTURE_FILTERING_QUALITY_HIGH = 64;\nq.TEXTURE_FILTERING_QUALITY_MEDIUM = 16;\nq.TEXTURE_FILTERING_QUALITY_LOW = 8;\nq.SCALEMODE_FLOOR = 1;\nq.SCALEMODE_NEAREST = 2;\nq.SCALEMODE_CEILING = 3;\nq.MATERIAL_TextureDirtyFlag = 1;\nq.MATERIAL_LightDirtyFlag = 2;\nq.MATERIAL_FresnelDirtyFlag = 4;\nq.MATERIAL_AttributesDirtyFlag = 8;\nq.MATERIAL_MiscDirtyFlag = 16;\nq.MATERIAL_PrePassDirtyFlag = 32;\nq.MATERIAL_AllDirtyFlag = 63;\nq.MATERIAL_TriangleFillMode = 0;\nq.MATERIAL_WireFrameFillMode = 1;\nq.MATERIAL_PointFillMode = 2;\nq.MATERIAL_PointListDrawMode = 3;\nq.MATERIAL_LineListDrawMode = 4;\nq.MATERIAL_LineLoopDrawMode = 5;\nq.MATERIAL_LineStripDrawMode = 6;\nq.MATERIAL_TriangleStripDrawMode = 7;\nq.MATERIAL_TriangleFanDrawMode = 8;\nq.MATERIAL_ClockWiseSideOrientation = 0;\nq.MATERIAL_CounterClockWiseSideOrientation = 1;\nq.ACTION_NothingTrigger = 0;\nq.ACTION_OnPickTrigger = 1;\nq.ACTION_OnLeftPickTrigger = 2;\nq.ACTION_OnRightPickTrigger = 3;\nq.ACTION_OnCenterPickTrigger = 4;\nq.ACTION_OnPickDownTrigger = 5;\nq.ACTION_OnDoublePickTrigger = 6;\nq.ACTION_OnPickUpTrigger = 7;\nq.ACTION_OnPickOutTrigger = 16;\nq.ACTION_OnLongPressTrigger = 8;\nq.ACTION_OnPointerOverTrigger = 9;\nq.ACTION_OnPointerOutTrigger = 10;\nq.ACTION_OnEveryFrameTrigger = 11;\nq.ACTION_OnIntersectionEnterTrigger = 12;\nq.ACTION_OnIntersectionExitTrigger = 13;\nq.ACTION_OnKeyDownTrigger = 14;\nq.ACTION_OnKeyUpTrigger = 15;\nq.PARTICLES_BILLBOARDMODE_Y = 2;\nq.PARTICLES_BILLBOARDMODE_ALL = 7;\nq.PARTICLES_BILLBOARDMODE_STRETCHED = 8;\nq.PARTICLES_BILLBOARDMODE_STRETCHED_LOCAL = 9;\nq.MESHES_CULLINGSTRATEGY_STANDARD = 0;\nq.MESHES_CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY = 1;\nq.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION = 2;\nq.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY = 3;\nq.SCENELOADER_NO_LOGGING = 0;\nq.SCENELOADER_MINIMAL_LOGGING = 1;\nq.SCENELOADER_SUMMARY_LOGGING = 2;\nq.SCENELOADER_DETAILED_LOGGING = 3;\nq.PREPASS_IRRADIANCE_TEXTURE_TYPE = 0;\nq.PREPASS_POSITION_TEXTURE_TYPE = 1;\nq.PREPASS_VELOCITY_TEXTURE_TYPE = 2;\nq.PREPASS_REFLECTIVITY_TEXTURE_TYPE = 3;\nq.PREPASS_COLOR_TEXTURE_TYPE = 4;\nq.PREPASS_DEPTH_TEXTURE_TYPE = 5;\nq.PREPASS_NORMAL_TEXTURE_TYPE = 6;\nq.PREPASS_ALBEDO_SQRT_TEXTURE_TYPE = 7;\nq.BUFFER_CREATIONFLAG_READ = 1;\nq.BUFFER_CREATIONFLAG_WRITE = 2;\nq.BUFFER_CREATIONFLAG_READWRITE = 3;\nq.BUFFER_CREATIONFLAG_UNIFORM = 4;\nq.BUFFER_CREATIONFLAG_VERTEX = 8;\nq.BUFFER_CREATIONFLAG_INDEX = 16;\nq.BUFFER_CREATIONFLAG_STORAGE = 32;\nq.BUFFER_CREATIONFLAG_INDIRECT = 64;\nq.RENDERPASS_MAIN = 0;\nq.INPUT_ALT_KEY = 18;\nq.INPUT_CTRL_KEY = 17;\nq.INPUT_META_KEY1 = 91;\nq.INPUT_META_KEY2 = 92;\nq.INPUT_META_KEY3 = 93;\nq.INPUT_SHIFT_KEY = 16;\nq.SNAPSHOTRENDERING_STANDARD = 0;\nq.SNAPSHOTRENDERING_FAST = 1;\nq.PERSPECTIVE_CAMERA = 0;\nq.ORTHOGRAPHIC_CAMERA = 1;\nq.FOVMODE_VERTICAL_FIXED = 0;\nq.FOVMODE_HORIZONTAL_FIXED = 1;\nq.RIG_MODE_NONE = 0;\nq.RIG_MODE_STEREOSCOPIC_ANAGLYPH = 10;\nq.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL = 11;\nq.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED = 12;\nq.RIG_MODE_STEREOSCOPIC_OVERUNDER = 13;\nq.RIG_MODE_STEREOSCOPIC_INTERLACED = 14;\nq.RIG_MODE_VR = 20;\nq.RIG_MODE_CUSTOM = 22;\nq.MAX_SUPPORTED_UV_SETS = 6;\nq.GL_ALPHA_EQUATION_ADD = 32774;\nq.GL_ALPHA_EQUATION_MIN = 32775;\nq.GL_ALPHA_EQUATION_MAX = 32776;\nq.GL_ALPHA_EQUATION_SUBTRACT = 32778;\nq.GL_ALPHA_EQUATION_REVERSE_SUBTRACT = 32779;\nq.GL_ALPHA_FUNCTION_SRC = 768;\nq.GL_ALPHA_FUNCTION_ONE_MINUS_SRC_COLOR = 769;\nq.GL_ALPHA_FUNCTION_SRC_ALPHA = 770;\nq.GL_ALPHA_FUNCTION_ONE_MINUS_SRC_ALPHA = 771;\nq.GL_ALPHA_FUNCTION_DST_ALPHA = 772;\nq.GL_ALPHA_FUNCTION_ONE_MINUS_DST_ALPHA = 773;\nq.GL_ALPHA_FUNCTION_DST_COLOR = 774;\nq.GL_ALPHA_FUNCTION_ONE_MINUS_DST_COLOR = 775;\nq.GL_ALPHA_FUNCTION_SRC_ALPHA_SATURATED = 776;\nq.GL_ALPHA_FUNCTION_CONSTANT_COLOR = 32769;\nq.GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_COLOR = 32770;\nq.GL_ALPHA_FUNCTION_CONSTANT_ALPHA = 32771;\nq.GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_ALPHA = 32772;\nq.SnippetUrl = \"https://snippet.babylonjs.com\";\nq.FOGMODE_NONE = 0;\nq.FOGMODE_EXP = 1;\nq.FOGMODE_EXP2 = 2;\nq.FOGMODE_LINEAR = 3;\nq.BYTE = 5120;\nq.UNSIGNED_BYTE = 5121;\nq.SHORT = 5122;\nq.UNSIGNED_SHORT = 5123;\nq.INT = 5124;\nq.UNSIGNED_INT = 5125;\nq.FLOAT = 5126;\nq.PositionKind = \"position\";\nq.NormalKind = \"normal\";\nq.TangentKind = \"tangent\";\nq.UVKind = \"uv\";\nq.UV2Kind = \"uv2\";\nq.UV3Kind = \"uv3\";\nq.UV4Kind = \"uv4\";\nq.UV5Kind = \"uv5\";\nq.UV6Kind = \"uv6\";\nq.ColorKind = \"color\";\nq.ColorInstanceKind = \"instanceColor\";\nq.MatricesIndicesKind = \"matricesIndices\";\nq.MatricesWeightsKind = \"matricesWeights\";\nq.MatricesIndicesExtraKind = \"matricesIndicesExtra\";\nq.MatricesWeightsExtraKind = \"matricesWeightsExtra\";\nclass bf {\n constructor(e, t) {\n bs.triggerOnBeforeSituationComponentCreated(this), this.situation = e, this.scene = e.getScene(), this.situationComponentConfig = t, this.rootNode = new Ye(t.type, this.scene), this.rootNode.parent = e.getSituationNode(), this.construct(e, t), bs.triggerOnAfterSituationComponentCreated(this);\n }\n // Enable this component in the scene graph\n enable() {\n }\n // Disable this component in the scene graph\n disable() {\n }\n ////////////\n // Getter //\n ////////////\n getConfig() {\n return this.situationComponentConfig;\n }\n getSituation() {\n return this.situation;\n }\n getRootNode() {\n return this.rootNode;\n }\n}\nfunction C1(a) {\n return a / 180 * Math.PI;\n}\nfunction Il(a) {\n return new g(a.x, a.y, a.z);\n}\nfunction cv(a) {\n return new g(a.x / 180 * Math.PI, a.y / 180 * Math.PI, a.z / 180 * Math.PI);\n}\nfunction w0(a, e, t, i, s) {\n let r = 16;\n const n = ge.DEFAULTSIDE, o = new g(e / 2, e / 2, e / 2), l = 2 + r, h = 2 * l, c = [], u = [], d = [], f = [];\n for (let m = 0; m <= l; m++) {\n const x = m / l, T = (i + x * (s - i)) * Math.PI;\n for (let E = 0; E <= h; E++) {\n const b = E / h, S = b * Math.PI * 2 * t, C = O.RotationZ(-T), P = O.RotationY(S), N = g.TransformCoordinates(g.Up(), C), F = g.TransformCoordinates(N, P), $ = F.multiply(o), j = F.divide(o).normalize();\n u.push($.x, $.y, $.z), d.push(j.x, j.y, j.z), f.push(b, At.UseOpenGLOrientationForUV ? 1 - x : x);\n }\n if (m > 0) {\n const E = u.length / 3;\n for (let b = E - 2 * (h + 1); b + h + 2 < E; b++)\n m > 1 && (c.push(b), c.push(b + 1), c.push(b + h + 1)), (m < l || s < 1) && (c.push(b + h + 1), c.push(b + 1), c.push(b + h + 2));\n }\n }\n ge._ComputeSides(n, u, c, d, f);\n const p = new ge();\n p.indices = c, p.positions = u, p.normals = d, p.uvs = f;\n const _ = new H(\"Sphere\", a);\n return p.applyToMesh(_), _;\n}\nclass uv extends bf {\n constructor(e, t) {\n super(e, t);\n }\n construct(e, t) {\n let i = this.rootNode;\n i.position = Il(t.position), t.rotation.x != 0 || t.rotation.y != 0 || t.rotation.z != 0 ? i.rotation = cv(t.rotation) : i.lookAt(new g(0, 0, 0)), i.scaling = Il(t.scale);\n let r = on.getMedia(t.textureMediaID).getBitmap(), n = _i.CreateRGBATexture(r, r.width, r.height, this.scene, !0, !0, X.TRILINEAR_SAMPLINGMODE);\n n.wrapU = n.wrapV = q.TEXTURE_WRAP_ADDRESSMODE, n.uScale = n.vScale = -1, n.name = this.situation.getName() + \" - \" + t.type + \" Texture - \" + t.textureMediaID;\n let o = new ye(this.situation.getName() + \" - \" + t.type + \" Material\", this.scene);\n o.disableLighting = !0, o.emissiveTexture = o.opacityTexture = n;\n let l = U_.CreatePlane(t.type + \" Plane - \" + t.textureMediaID, {\n height: t.height ? t.height : 30,\n width: t.width ? t.width : 30\n }, this.scene);\n l.parent = i, l.material = o, l.renderingGroupId = 1, this.plane = l, l.actionManager = new dt(this.scene), l.actionManager.registerAction(new ln(dt.OnPickTrigger, () => {\n bs.triggerOnSituationComponentClicked(this);\n })), l.actionManager.registerAction(new ln(dt.OnPointerOutTrigger, () => {\n bs.triggerOnSituationComponentHoverOut(this);\n })), l.actionManager.registerAction(new ln(dt.OnPointerOverTrigger, () => {\n bs.triggerOnSituationComponentHoverOver(this);\n }));\n }\n}\nclass A1 extends uv {\n constructor(e, t) {\n super(e, t);\n }\n construct(e, t) {\n super.construct(e, t);\n var i = new zo();\n i.setEasingMode(Ti.EASINGMODE_EASEIN);\n let s = this.plane;\n s.actionManager.registerAction(new ln(dt.OnPickTrigger, async () => {\n e.getSituationManager().changeSituation(t.targetSituationID, { playAnimation: !1 });\n }));\n var r = new zo();\n r.setEasingMode(Ti.EASINGMODE_EASEINOUT);\n const n = 10, o = new oe(\"pulse\", \"scaling\", n, oe.ANIMATIONTYPE_VECTOR3, oe.ANIMATIONLOOPMODE_CYCLE);\n o.setEasingFunction(r);\n const l = [];\n l.push({ frame: 0, value: new g(1, 1, 1) }), l.push({ frame: n, value: new g(1.08, 1.08, 1.08) }), l.push({ frame: 2 * n, value: new g(1, 1, 1) }), o.setKeys(l), s.animations.push(o), this.scene.beginAnimation(s, 0, 2 * n, !0);\n }\n}\nclass R1 extends uv {\n constructor(e, t) {\n super(e, t);\n }\n construct(e, t) {\n super.construct(e, t);\n var i = new zo();\n i.setEasingMode(Ti.EASINGMODE_EASEIN);\n let s = this.plane;\n s.renderingGroupId = 1, s.material.backFaceCulling = !1, s.actionManager.registerAction(new ln(dt.OnPointerOutTrigger, () => {\n oe.CreateAndStartAnimation(\"\", s, \"scaling\", 30, 10, s.scaling, g.One(), 0, i);\n })), s.actionManager.registerAction(new ln(dt.OnPointerOverTrigger, () => {\n oe.CreateAndStartAnimation(\"\", s, \"scaling\", 30, 10, s.scaling, g.One().scale(1.1), 0, i);\n }));\n }\n}\nconst I1 = \"backgroundFragmentDeclaration\", P1 = `uniform vec4 vEyePosition;uniform vec4 vPrimaryColor;\n#ifdef USEHIGHLIGHTANDSHADOWCOLORS\nuniform vec4 vPrimaryColorShadow;\n#endif\nuniform float shadowLevel;uniform float alpha;\n#ifdef DIFFUSE\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;uniform mat4 reflectionMatrix;uniform vec3 vReflectionMicrosurfaceInfos;\n#endif\n#if defined(REFLECTIONFRESNEL) || defined(OPACITYFRESNEL)\nuniform vec3 vBackgroundCenter;\n#endif\n#ifdef REFLECTIONFRESNEL\nuniform vec4 vReflectionControl;\n#endif\n#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(REFRACTION)\nuniform mat4 view;\n#endif\n#ifdef PROJECTED_GROUND\nuniform vec2 projectedGroundInfos;\n#endif\n`;\nz.IncludesShadersStore[I1] = P1;\nconst M1 = \"backgroundUboDeclaration\", D1 = `layout(std140,column_major) uniform;uniform Material\n{uniform vec4 vPrimaryColor;uniform vec4 vPrimaryColorShadow;uniform vec2 vDiffuseInfos;uniform vec2 vReflectionInfos;uniform mat4 diffuseMatrix;uniform mat4 reflectionMatrix;uniform vec3 vReflectionMicrosurfaceInfos;uniform float fFovMultiplier;uniform float pointSize;uniform float shadowLevel;uniform float alpha;uniform vec3 vBackgroundCenter;uniform vec4 vReflectionControl;uniform vec2 projectedGroundInfos;};\n#include\n`;\nz.IncludesShadersStore[M1] = D1;\nconst O1 = \"backgroundPixelShader\", w1 = `#ifdef TEXTURELODSUPPORT\n#extension GL_EXT_shader_texture_lod : enable\n#endif\nprecision highp float;\n#include<__decl__backgroundFragment>\n#include\nvarying vec3 vPositionW;\n#ifdef MAINUV1\nvarying vec2 vMainUV1;\n#endif \n#ifdef MAINUV2 \nvarying vec2 vMainUV2; \n#endif \n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef DIFFUSE\n#if DIFFUSEDIRECTUV==1\n#define vDiffuseUV vMainUV1\n#elif DIFFUSEDIRECTUV==2\n#define vDiffuseUV vMainUV2\n#else\nvarying vec2 vDiffuseUV;\n#endif\nuniform sampler2D diffuseSampler;\n#endif\n#ifdef REFLECTION\n#ifdef REFLECTIONMAP_3D\n#define sampleReflection(s,c) textureCube(s,c)\nuniform samplerCube reflectionSampler;\n#ifdef TEXTURELODSUPPORT\n#define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)\n#else\nuniform samplerCube reflectionSamplerLow;uniform samplerCube reflectionSamplerHigh;\n#endif\n#else\n#define sampleReflection(s,c) texture2D(s,c)\nuniform sampler2D reflectionSampler;\n#ifdef TEXTURELODSUPPORT\n#define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)\n#else\nuniform samplerCube reflectionSamplerLow;uniform samplerCube reflectionSamplerHigh;\n#endif\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#else\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#endif\n#include\n#endif\n#ifndef FROMLINEARSPACE\n#define FROMLINEARSPACE;\n#endif\n#ifndef SHADOWONLY\n#define SHADOWONLY;\n#endif\n#include\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include\n#include\n#include\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n#include\n#include\n#include\n#ifdef REFLECTIONFRESNEL\n#define FRESNEL_MAXIMUM_ON_ROUGH 0.25\nvec3 fresnelSchlickEnvironmentGGX(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)\n{float weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}\n#endif\n#ifdef PROJECTED_GROUND\nfloat diskIntersectWithBackFaceCulling(vec3 ro,vec3 rd,vec3 c,float r) {float d=rd.y;if(d>0.0) { return 1e6; }\nvec3 o=ro-c;float t=-o.y/d;vec3 q=o+rd*t;return (dot(q,q)\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=vec3(0.0,1.0,0.0);\n#endif\nfloat shadow=1.;float globalShadow=0.;float shadowLightCount=0.;float aggShadow=0.;float numLights=0.;\n#include[0..maxSimultaneousLights]\n#ifdef SHADOWINUSE\nglobalShadow/=shadowLightCount;\n#else\nglobalShadow=1.0;\n#endif\n#ifndef BACKMAT_SHADOWONLY\nvec4 reflectionColor=vec4(1.,1.,1.,1.);\n#ifdef REFLECTION\n#ifdef PROJECTED_GROUND\nvec3 reflectionVector=project(viewDirectionW,vEyePosition.xyz);reflectionVector=vec3(reflectionMatrix*vec4(reflectionVector,1.));\n#else\nvec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\n#endif\n#ifdef REFLECTIONMAP_OPPOSITEZ\nreflectionVector.z*=-1.0;\n#endif\n#ifdef REFLECTIONMAP_3D\nvec3 reflectionCoords=reflectionVector;\n#else\nvec2 reflectionCoords=reflectionVector.xy;\n#ifdef REFLECTIONMAP_PROJECTION\nreflectionCoords/=reflectionVector.z;\n#endif\nreflectionCoords.y=1.0-reflectionCoords.y;\n#endif\n#ifdef REFLECTIONBLUR\nfloat reflectionLOD=vReflectionInfos.y;\n#ifdef TEXTURELODSUPPORT\nreflectionLOD=reflectionLOD*log2(vReflectionMicrosurfaceInfos.x)*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;reflectionColor=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);\n#else\nfloat lodReflectionNormalized=saturate(reflectionLOD);float lodReflectionNormalizedDoubled=lodReflectionNormalized*2.0;vec4 reflectionSpecularMid=sampleReflection(reflectionSampler,reflectionCoords);if(lodReflectionNormalizedDoubled<1.0){reflectionColor=mix(\nsampleReflection(reflectionSamplerHigh,reflectionCoords),\nreflectionSpecularMid,\nlodReflectionNormalizedDoubled\n);} else {reflectionColor=mix(\nreflectionSpecularMid,\nsampleReflection(reflectionSamplerLow,reflectionCoords),\nlodReflectionNormalizedDoubled-1.0\n);}\n#endif\n#else\nvec4 reflectionSample=sampleReflection(reflectionSampler,reflectionCoords);reflectionColor=reflectionSample;\n#endif\n#ifdef RGBDREFLECTION\nreflectionColor.rgb=fromRGBD(reflectionColor);\n#endif\n#ifdef GAMMAREFLECTION\nreflectionColor.rgb=toLinearSpace(reflectionColor.rgb);\n#endif\n#ifdef REFLECTIONBGR\nreflectionColor.rgb=reflectionColor.bgr;\n#endif\nreflectionColor.rgb*=vReflectionInfos.x;\n#endif\nvec3 diffuseColor=vec3(1.,1.,1.);float finalAlpha=alpha;\n#ifdef DIFFUSE\nvec4 diffuseMap=texture2D(diffuseSampler,vDiffuseUV);\n#ifdef GAMMADIFFUSE\ndiffuseMap.rgb=toLinearSpace(diffuseMap.rgb);\n#endif\ndiffuseMap.rgb*=vDiffuseInfos.y;\n#ifdef DIFFUSEHASALPHA\nfinalAlpha*=diffuseMap.a;\n#endif\ndiffuseColor=diffuseMap.rgb;\n#endif\n#ifdef REFLECTIONFRESNEL\nvec3 colorBase=diffuseColor;\n#else\nvec3 colorBase=reflectionColor.rgb*diffuseColor;\n#endif\ncolorBase=max(colorBase,0.0);\n#ifdef USERGBCOLOR\nvec3 finalColor=colorBase;\n#else\n#ifdef USEHIGHLIGHTANDSHADOWCOLORS\nvec3 mainColor=mix(vPrimaryColorShadow.rgb,vPrimaryColor.rgb,colorBase);\n#else\nvec3 mainColor=vPrimaryColor.rgb;\n#endif\nvec3 finalColor=colorBase*mainColor;\n#endif\n#ifdef REFLECTIONFRESNEL\nvec3 reflectionAmount=vReflectionControl.xxx;vec3 reflectionReflectance0=vReflectionControl.yyy;vec3 reflectionReflectance90=vReflectionControl.zzz;float VdotN=dot(normalize(vEyePosition.xyz),normalW);vec3 planarReflectionFresnel=fresnelSchlickEnvironmentGGX(saturate(VdotN),reflectionReflectance0,reflectionReflectance90,1.0);reflectionAmount*=planarReflectionFresnel;\n#ifdef REFLECTIONFALLOFF\nfloat reflectionDistanceFalloff=1.0-saturate(length(vPositionW.xyz-vBackgroundCenter)*vReflectionControl.w);reflectionDistanceFalloff*=reflectionDistanceFalloff;reflectionAmount*=reflectionDistanceFalloff;\n#endif\nfinalColor=mix(finalColor,reflectionColor.rgb,saturate(reflectionAmount));\n#endif\n#ifdef OPACITYFRESNEL\nfloat viewAngleToFloor=dot(normalW,normalize(vEyePosition.xyz-vBackgroundCenter));const float startAngle=0.1;float fadeFactor=saturate(viewAngleToFloor/startAngle);finalAlpha*=fadeFactor*fadeFactor;\n#endif\n#ifdef SHADOWINUSE\nfinalColor=mix(finalColor*shadowLevel,finalColor,globalShadow);\n#endif\nvec4 color=vec4(finalColor,finalAlpha);\n#else\nvec4 color=vec4(vPrimaryColor.rgb,(1.0-clamp(globalShadow,0.,1.))*alpha);\n#endif\n#include\n#include\n#ifdef IMAGEPROCESSINGPOSTPROCESS\n#if !defined(SKIPFINALCOLORCLAMP)\ncolor.rgb=clamp(color.rgb,0.,30.0);\n#endif\n#else\ncolor=applyImageProcessing(color);\n#endif\n#ifdef PREMULTIPLYALPHA\ncolor.rgb*=color.a;\n#endif\n#ifdef NOISE\ncolor.rgb+=dither(vPositionW.xy,0.5);color=max(color,0.0);\n#endif\ngl_FragColor=color;\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n`;\nz.ShadersStore[O1] = w1;\nconst N1 = \"backgroundVertexDeclaration\", F1 = `uniform mat4 view;uniform mat4 viewProjection;uniform float shadowLevel;\n#ifdef DIFFUSE\nuniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;\n#endif\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;uniform mat4 reflectionMatrix;uniform vec3 vReflectionMicrosurfaceInfos;uniform float fFovMultiplier;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n`;\nz.IncludesShadersStore[N1] = F1;\nconst L1 = \"backgroundVertexShader\", B1 = `precision highp float;\n#include<__decl__backgroundVertex>\n#include\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#include\n#include\n#include\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#ifdef MAINUV1\nvarying vec2 vMainUV1;\n#endif\n#ifdef MAINUV2\nvarying vec2 vMainUV2;\n#endif\n#if defined(DIFFUSE) && DIFFUSEDIRECTUV==0\nvarying vec2 vDiffuseUV;\n#endif\n#include\n#include\n#include<__decl__lightVxFragment>[0..maxSimultaneousLights]\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#include\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#ifdef REFLECTIONMAP_SKYBOX\nvPositionUVW=position;\n#endif\n#include\n#include\n#include\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR==0u) {gl_Position=viewProjection*finalWorld*vec4(position,1.0);} else {gl_Position=viewProjectionR*finalWorld*vec4(position,1.0);}\n#else\ngl_Position=viewProjection*finalWorld*vec4(position,1.0);\n#endif\nvec4 worldPos=finalWorld*vec4(position,1.0);vPositionW=vec3(worldPos);\n#ifdef NORMAL\nmat3 normalWorld=mat3(finalWorld);\n#ifdef NONUNIFORMSCALING\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\n#endif\nvNormalW=normalize(normalWorld*normal);\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvDirectionW=normalize(vec3(finalWorld*vec4(position,0.0)));\n#ifdef EQUIRECTANGULAR_RELFECTION_FOV\nmat3 screenToWorld=inverseMat3(mat3(finalWorld*viewProjection));vec3 segment=mix(vDirectionW,screenToWorld*vec3(0.0,0.0,1.0),abs(fFovMultiplier-1.0));if (fFovMultiplier<=1.0) {vDirectionW=normalize(segment);} else {vDirectionW=normalize(vDirectionW+(vDirectionW-segment));}\n#endif\n#endif\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\n#endif\n#ifdef MAINUV1\nvMainUV1=uv;\n#endif\n#ifdef MAINUV2\nvMainUV2=uv2;\n#endif\n#if defined(DIFFUSE) && DIFFUSEDIRECTUV==0\nif (vDiffuseInfos.x==0.)\n{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}\nelse\n{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}\n#endif\n#include\n#include\n#include[0..maxSimultaneousLights]\n#ifdef VERTEXCOLOR\nvColor=color;\n#endif\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\n#endif\n#include\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\nz.ShadersStore[L1] = B1;\nclass V1 extends dr {\n /**\n * Constructor of the defines.\n */\n constructor() {\n super(), this.DIFFUSE = !1, this.DIFFUSEDIRECTUV = 0, this.GAMMADIFFUSE = !1, this.DIFFUSEHASALPHA = !1, this.OPACITYFRESNEL = !1, this.REFLECTIONBLUR = !1, this.REFLECTIONFRESNEL = !1, this.REFLECTIONFALLOFF = !1, this.TEXTURELODSUPPORT = !1, this.PREMULTIPLYALPHA = !1, this.USERGBCOLOR = !1, this.USEHIGHLIGHTANDSHADOWCOLORS = !1, this.BACKMAT_SHADOWONLY = !1, this.NOISE = !1, this.REFLECTIONBGR = !1, this.PROJECTED_GROUND = !1, this.IMAGEPROCESSING = !1, this.VIGNETTE = !1, this.VIGNETTEBLENDMODEMULTIPLY = !1, this.VIGNETTEBLENDMODEOPAQUE = !1, this.TONEMAPPING = 0, this.CONTRAST = !1, this.COLORCURVES = !1, this.COLORGRADING = !1, this.COLORGRADING3D = !1, this.SAMPLER3DGREENDEPTH = !1, this.SAMPLER3DBGRMAP = !1, this.DITHER = !1, this.IMAGEPROCESSINGPOSTPROCESS = !1, this.SKIPFINALCOLORCLAMP = !1, this.EXPOSURE = !1, this.MULTIVIEW = !1, this.REFLECTION = !1, this.REFLECTIONMAP_3D = !1, this.REFLECTIONMAP_SPHERICAL = !1, this.REFLECTIONMAP_PLANAR = !1, this.REFLECTIONMAP_CUBIC = !1, this.REFLECTIONMAP_PROJECTION = !1, this.REFLECTIONMAP_SKYBOX = !1, this.REFLECTIONMAP_EXPLICIT = !1, this.REFLECTIONMAP_EQUIRECTANGULAR = !1, this.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1, this.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1, this.INVERTCUBICMAP = !1, this.REFLECTIONMAP_OPPOSITEZ = !1, this.LODINREFLECTIONALPHA = !1, this.GAMMAREFLECTION = !1, this.RGBDREFLECTION = !1, this.EQUIRECTANGULAR_RELFECTION_FOV = !1, this.MAINUV1 = !1, this.MAINUV2 = !1, this.UV1 = !1, this.UV2 = !1, this.CLIPPLANE = !1, this.CLIPPLANE2 = !1, this.CLIPPLANE3 = !1, this.CLIPPLANE4 = !1, this.CLIPPLANE5 = !1, this.CLIPPLANE6 = !1, this.POINTSIZE = !1, this.FOG = !1, this.NORMAL = !1, this.NUM_BONE_INFLUENCERS = 0, this.BonesPerMesh = 0, this.INSTANCES = !1, this.SHADOWFLOAT = !1, this.LOGARITHMICDEPTH = !1, this.NONUNIFORMSCALING = !1, this.ALPHATEST = !1, this.rebuild();\n }\n}\nclass mt extends Sc {\n /**\n * Experimental Internal Use Only.\n *\n * Key light Color in \"perceptual value\" meaning the color you would like to see on screen.\n * This acts as a helper to set the primary color to a more \"human friendly\" value.\n * Conversion to linear space as well as exposure and tone mapping correction will be applied to keep the\n * output color as close as possible from the chosen value.\n * (This does not account for contrast color grading and color curves as they are considered post effect and not directly\n * part of lighting setup.)\n */\n get _perceptualColor() {\n return this.__perceptualColor;\n }\n set _perceptualColor(e) {\n this.__perceptualColor = e, this._computePrimaryColorFromPerceptualColor(), this._markAllSubMeshesAsLightsDirty();\n }\n /**\n * Defines the level of the shadows (dark area of the reflection map) in order to help scaling the colors.\n * The color opposite to the primary color is used at the level chosen to define what the black area would look.\n */\n get primaryColorShadowLevel() {\n return this._primaryColorShadowLevel;\n }\n set primaryColorShadowLevel(e) {\n this._primaryColorShadowLevel = e, this._computePrimaryColors(), this._markAllSubMeshesAsLightsDirty();\n }\n /**\n * Defines the level of the highlights (highlight area of the reflection map) in order to help scaling the colors.\n * The primary color is used at the level chosen to define what the white area would look.\n */\n get primaryColorHighlightLevel() {\n return this._primaryColorHighlightLevel;\n }\n set primaryColorHighlightLevel(e) {\n this._primaryColorHighlightLevel = e, this._computePrimaryColors(), this._markAllSubMeshesAsLightsDirty();\n }\n /**\n * Sets the reflection reflectance fresnel values according to the default standard\n * empirically know to work well :-)\n */\n set reflectionStandardFresnelWeight(e) {\n let t = e;\n t < 0.5 ? (t = t * 2, this.reflectionReflectance0 = mt.StandardReflectance0 * t, this.reflectionReflectance90 = mt.StandardReflectance90 * t) : (t = t * 2 - 1, this.reflectionReflectance0 = mt.StandardReflectance0 + (1 - mt.StandardReflectance0) * t, this.reflectionReflectance90 = mt.StandardReflectance90 + (1 - mt.StandardReflectance90) * t);\n }\n /**\n * The current fov(field of view) multiplier, 0.0 - 2.0. Defaults to 1.0. Lower values \"zoom in\" and higher values \"zoom out\".\n * Best used when trying to implement visual zoom effects like fish-eye or binoculars while not adjusting camera fov.\n * Recommended to be keep at 1.0 except for special cases.\n */\n get fovMultiplier() {\n return this._fovMultiplier;\n }\n set fovMultiplier(e) {\n isNaN(e) && (e = 1), this._fovMultiplier = Math.max(0, Math.min(2, e));\n }\n /**\n * Attaches a new image processing configuration to the PBR Material.\n * @param configuration (if null the scene configuration will be use)\n */\n _attachImageProcessingConfiguration(e) {\n e !== this._imageProcessingConfiguration && (this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), e ? this._imageProcessingConfiguration = e : this._imageProcessingConfiguration = this.getScene().imageProcessingConfiguration, this._imageProcessingConfiguration && (this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(() => {\n this._computePrimaryColorFromPerceptualColor(), this._markAllSubMeshesAsImageProcessingDirty();\n })));\n }\n /**\n * Gets the image processing configuration used either in this material.\n */\n get imageProcessingConfiguration() {\n return this._imageProcessingConfiguration;\n }\n /**\n * Sets the Default image processing configuration used either in the this material.\n *\n * If sets to null, the scene one is in use.\n */\n set imageProcessingConfiguration(e) {\n this._attachImageProcessingConfiguration(e), this._markAllSubMeshesAsTexturesDirty();\n }\n /**\n * Gets whether the color curves effect is enabled.\n */\n get cameraColorCurvesEnabled() {\n return this.imageProcessingConfiguration.colorCurvesEnabled;\n }\n /**\n * Sets whether the color curves effect is enabled.\n */\n set cameraColorCurvesEnabled(e) {\n this.imageProcessingConfiguration.colorCurvesEnabled = e;\n }\n /**\n * Gets whether the color grading effect is enabled.\n */\n get cameraColorGradingEnabled() {\n return this.imageProcessingConfiguration.colorGradingEnabled;\n }\n /**\n * Gets whether the color grading effect is enabled.\n */\n set cameraColorGradingEnabled(e) {\n this.imageProcessingConfiguration.colorGradingEnabled = e;\n }\n /**\n * Gets whether tonemapping is enabled or not.\n */\n get cameraToneMappingEnabled() {\n return this._imageProcessingConfiguration.toneMappingEnabled;\n }\n /**\n * Sets whether tonemapping is enabled or not\n */\n set cameraToneMappingEnabled(e) {\n this._imageProcessingConfiguration.toneMappingEnabled = e;\n }\n /**\n * The camera exposure used on this material.\n * This property is here and not in the camera to allow controlling exposure without full screen post process.\n * This corresponds to a photographic exposure.\n */\n get cameraExposure() {\n return this._imageProcessingConfiguration.exposure;\n }\n /**\n * The camera exposure used on this material.\n * This property is here and not in the camera to allow controlling exposure without full screen post process.\n * This corresponds to a photographic exposure.\n */\n set cameraExposure(e) {\n this._imageProcessingConfiguration.exposure = e;\n }\n /**\n * Gets The camera contrast used on this material.\n */\n get cameraContrast() {\n return this._imageProcessingConfiguration.contrast;\n }\n /**\n * Sets The camera contrast used on this material.\n */\n set cameraContrast(e) {\n this._imageProcessingConfiguration.contrast = e;\n }\n /**\n * Gets the Color Grading 2D Lookup Texture.\n */\n get cameraColorGradingTexture() {\n return this._imageProcessingConfiguration.colorGradingTexture;\n }\n /**\n * Sets the Color Grading 2D Lookup Texture.\n */\n set cameraColorGradingTexture(e) {\n this.imageProcessingConfiguration.colorGradingTexture = e;\n }\n /**\n * The color grading curves provide additional color adjustment that is applied after any color grading transform (3D LUT).\n * They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects.\n * These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image;\n * corresponding to low luminance, medium luminance, and high luminance areas respectively.\n */\n get cameraColorCurves() {\n return this.imageProcessingConfiguration.colorCurves;\n }\n /**\n * The color grading curves provide additional color adjustment that is applied after any color grading transform (3D LUT).\n * They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects.\n * These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image;\n * corresponding to low luminance, medium luminance, and high luminance areas respectively.\n */\n set cameraColorCurves(e) {\n this.imageProcessingConfiguration.colorCurves = e;\n }\n /**\n * Instantiates a Background Material in the given scene\n * @param name The friendly name of the material\n * @param scene The scene to add the material to\n */\n constructor(e, t) {\n super(e, t), this.primaryColor = re.White(), this._primaryColorShadowLevel = 0, this._primaryColorHighlightLevel = 0, this.reflectionTexture = null, this.reflectionBlur = 0, this.diffuseTexture = null, this._shadowLights = null, this.shadowLights = null, this.shadowLevel = 0, this.sceneCenter = g.Zero(), this.opacityFresnel = !0, this.reflectionFresnel = !1, this.reflectionFalloffDistance = 0, this.reflectionAmount = 1, this.reflectionReflectance0 = 0.05, this.reflectionReflectance90 = 0.5, this.useRGBColor = !0, this.enableNoise = !1, this._fovMultiplier = 1, this.useEquirectangularFOV = !1, this._maxSimultaneousLights = 4, this.maxSimultaneousLights = 4, this._shadowOnly = !1, this.shadowOnly = !1, this._imageProcessingObserver = null, this.switchToBGR = !1, this._enableGroundProjection = !1, this.enableGroundProjection = !1, this.projectedGroundRadius = 1e3, this.projectedGroundHeight = 10, this._renderTargets = new fs(16), this._reflectionControls = Ne.Zero(), this._white = re.White(), this._primaryShadowColor = re.Black(), this._primaryHighlightColor = re.Black(), this._attachImageProcessingConfiguration(null), this.getRenderTargetTextures = () => (this._renderTargets.reset(), this._diffuseTexture && this._diffuseTexture.isRenderTarget && this._renderTargets.push(this._diffuseTexture), this._reflectionTexture && this._reflectionTexture.isRenderTarget && this._renderTargets.push(this._reflectionTexture), this._renderTargets);\n }\n /**\n * Gets a boolean indicating that current material needs to register RTT\n */\n get hasRenderTargetTextures() {\n return !!(this._diffuseTexture && this._diffuseTexture.isRenderTarget || this._reflectionTexture && this._reflectionTexture.isRenderTarget);\n }\n /**\n * The entire material has been created in order to prevent overdraw.\n * @returns false\n */\n needAlphaTesting() {\n return !0;\n }\n /**\n * The entire material has been created in order to prevent overdraw.\n * @returns true if blending is enable\n */\n needAlphaBlending() {\n return this.alpha < 1 || this._diffuseTexture != null && this._diffuseTexture.hasAlpha || this._shadowOnly;\n }\n /**\n * Checks whether the material is ready to be rendered for a given mesh.\n * @param mesh The mesh to render\n * @param subMesh The submesh to check against\n * @param useInstances Specify wether or not the material is used with instances\n * @returns true if all the dependencies are ready (Textures, Effects...)\n */\n isReadyForSubMesh(e, t, i = !1) {\n const s = t._drawWrapper;\n if (s.effect && this.isFrozen && s._wasPreviouslyReady && s._wasPreviouslyUsingInstances === i)\n return !0;\n t.materialDefines || (t.materialDefines = new V1());\n const r = this.getScene(), n = t.materialDefines;\n if (this._isReadyForSubMesh(t))\n return !0;\n const o = r.getEngine();\n if (xc(r, e, n, !1, this._maxSimultaneousLights), n._needNormals = !0, _f(r, n), n._areTexturesDirty) {\n if (n._needUVs = !1, r.texturesEnabled) {\n if (r.getEngine().getCaps().textureLOD && (n.TEXTURELODSUPPORT = !0), this._diffuseTexture && xe.DiffuseTextureEnabled) {\n if (!this._diffuseTexture.isReadyOrNotBlocking())\n return !1;\n ci(this._diffuseTexture, n, \"DIFFUSE\"), n.DIFFUSEHASALPHA = this._diffuseTexture.hasAlpha, n.GAMMADIFFUSE = this._diffuseTexture.gammaSpace, n.OPACITYFRESNEL = this._opacityFresnel;\n } else\n n.DIFFUSE = !1, n.DIFFUSEDIRECTUV = 0, n.DIFFUSEHASALPHA = !1, n.GAMMADIFFUSE = !1, n.OPACITYFRESNEL = !1;\n const l = this._reflectionTexture;\n if (l && xe.ReflectionTextureEnabled) {\n if (!l.isReadyOrNotBlocking())\n return !1;\n switch (n.REFLECTION = !0, n.GAMMAREFLECTION = l.gammaSpace, n.RGBDREFLECTION = l.isRGBD, n.REFLECTIONBLUR = this._reflectionBlur > 0, n.LODINREFLECTIONALPHA = l.lodLevelInAlpha, n.EQUIRECTANGULAR_RELFECTION_FOV = this.useEquirectangularFOV, n.REFLECTIONBGR = this.switchToBGR, l.coordinatesMode === X.INVCUBIC_MODE && (n.INVERTCUBICMAP = !0), n.REFLECTIONMAP_3D = l.isCube, n.REFLECTIONMAP_OPPOSITEZ = n.REFLECTIONMAP_3D && this.getScene().useRightHandedSystem ? !l.invertZ : l.invertZ, l.coordinatesMode) {\n case X.EXPLICIT_MODE:\n n.REFLECTIONMAP_EXPLICIT = !0;\n break;\n case X.PLANAR_MODE:\n n.REFLECTIONMAP_PLANAR = !0;\n break;\n case X.PROJECTION_MODE:\n n.REFLECTIONMAP_PROJECTION = !0;\n break;\n case X.SKYBOX_MODE:\n n.REFLECTIONMAP_SKYBOX = !0;\n break;\n case X.SPHERICAL_MODE:\n n.REFLECTIONMAP_SPHERICAL = !0;\n break;\n case X.EQUIRECTANGULAR_MODE:\n n.REFLECTIONMAP_EQUIRECTANGULAR = !0;\n break;\n case X.FIXED_EQUIRECTANGULAR_MODE:\n n.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !0;\n break;\n case X.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:\n n.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !0;\n break;\n case X.CUBIC_MODE:\n case X.INVCUBIC_MODE:\n default:\n n.REFLECTIONMAP_CUBIC = !0;\n break;\n }\n this.reflectionFresnel ? (n.REFLECTIONFRESNEL = !0, n.REFLECTIONFALLOFF = this.reflectionFalloffDistance > 0, this._reflectionControls.x = this.reflectionAmount, this._reflectionControls.y = this.reflectionReflectance0, this._reflectionControls.z = this.reflectionReflectance90, this._reflectionControls.w = 1 / this.reflectionFalloffDistance) : (n.REFLECTIONFRESNEL = !1, n.REFLECTIONFALLOFF = !1);\n } else\n n.REFLECTION = !1, n.REFLECTIONFRESNEL = !1, n.REFLECTIONFALLOFF = !1, n.REFLECTIONBLUR = !1, n.REFLECTIONMAP_3D = !1, n.REFLECTIONMAP_SPHERICAL = !1, n.REFLECTIONMAP_PLANAR = !1, n.REFLECTIONMAP_CUBIC = !1, n.REFLECTIONMAP_PROJECTION = !1, n.REFLECTIONMAP_SKYBOX = !1, n.REFLECTIONMAP_EXPLICIT = !1, n.REFLECTIONMAP_EQUIRECTANGULAR = !1, n.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1, n.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1, n.INVERTCUBICMAP = !1, n.REFLECTIONMAP_OPPOSITEZ = !1, n.LODINREFLECTIONALPHA = !1, n.GAMMAREFLECTION = !1, n.RGBDREFLECTION = !1;\n }\n n.PREMULTIPLYALPHA = this.alphaMode === 7 || this.alphaMode === 8, n.USERGBCOLOR = this._useRGBColor, n.NOISE = this._enableNoise;\n }\n if (n._areLightsDirty && (n.USEHIGHLIGHTANDSHADOWCOLORS = !this._useRGBColor && (this._primaryColorShadowLevel !== 0 || this._primaryColorHighlightLevel !== 0), n.BACKMAT_SHADOWONLY = this._shadowOnly), n._areImageProcessingDirty && this._imageProcessingConfiguration) {\n if (!this._imageProcessingConfiguration.isReady())\n return !1;\n this._imageProcessingConfiguration.prepareDefines(n);\n }\n if (n._areMiscDirty && (n.REFLECTIONMAP_3D && this._enableGroundProjection ? (n.PROJECTED_GROUND = !0, n.REFLECTIONMAP_SKYBOX = !0) : n.PROJECTED_GROUND = !1), df(e, r, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(e), n), ff(r, o, this, n, i, null, t.getRenderingMesh().hasThinInstances), pf(e, n, !1, !0, !1) && e && !r.getEngine().getCaps().standardDerivatives && !e.isVerticesDataPresent(R.NormalKind) && (e.createNormals(!0), L.Warn(\"BackgroundMaterial: Normals have been created for the mesh: \" + e.name)), n.isDirty) {\n n.markAsProcessed(), r.resetCachedMaterial();\n const l = new Vl();\n n.FOG && l.addFallback(0, \"FOG\"), n.POINTSIZE && l.addFallback(1, \"POINTSIZE\"), n.MULTIVIEW && l.addFallback(0, \"MULTIVIEW\"), g_(n, l, this._maxSimultaneousLights);\n const h = [R.PositionKind];\n n.NORMAL && h.push(R.NormalKind), n.UV1 && h.push(R.UVKind), n.UV2 && h.push(R.UV2Kind), m_(h, e, n, l), uf(h, n);\n const c = [\n \"world\",\n \"view\",\n \"viewProjection\",\n \"vEyePosition\",\n \"vLightsType\",\n \"vFogInfos\",\n \"vFogColor\",\n \"pointSize\",\n \"mBones\",\n \"vPrimaryColor\",\n \"vPrimaryColorShadow\",\n \"vReflectionInfos\",\n \"reflectionMatrix\",\n \"vReflectionMicrosurfaceInfos\",\n \"fFovMultiplier\",\n \"shadowLevel\",\n \"alpha\",\n \"vBackgroundCenter\",\n \"vReflectionControl\",\n \"vDiffuseInfos\",\n \"diffuseMatrix\",\n \"projectedGroundInfos\",\n \"logarithmicDepthConstant\"\n ];\n Ln(c);\n const u = [\"diffuseSampler\", \"reflectionSampler\", \"reflectionSamplerLow\", \"reflectionSamplerHigh\"], d = [\"Material\", \"Scene\"];\n pt && (pt.PrepareUniforms(c, n), pt.PrepareSamplers(u, n)), mf({\n uniformsNames: c,\n uniformBuffersNames: d,\n samplers: u,\n defines: n,\n maxSimultaneousLights: this._maxSimultaneousLights\n });\n const f = n.toString(), p = r.getEngine().createEffect(\"background\", {\n attributes: h,\n uniformsNames: c,\n uniformBuffersNames: d,\n samplers: u,\n defines: f,\n fallbacks: l,\n onCompiled: this.onCompiled,\n onError: this.onError,\n indexParameters: { maxSimultaneousLights: this._maxSimultaneousLights }\n }, o);\n t.setEffect(p, n, this._materialContext), this.buildUniformLayout();\n }\n return !t.effect || !t.effect.isReady() ? !1 : (n._renderId = r.getRenderId(), s._wasPreviouslyReady = !0, s._wasPreviouslyUsingInstances = i, this._checkScenePerformancePriority(), !0);\n }\n /**\n * Compute the primary color according to the chosen perceptual color.\n */\n _computePrimaryColorFromPerceptualColor() {\n this.__perceptualColor && (this._primaryColor.copyFrom(this.__perceptualColor), this._primaryColor.toLinearSpaceToRef(this._primaryColor, this.getScene().getEngine().useExactSrgbConversions), this._imageProcessingConfiguration && this._primaryColor.scaleToRef(1 / this._imageProcessingConfiguration.exposure, this._primaryColor), this._computePrimaryColors());\n }\n /**\n * Compute the highlights and shadow colors according to their chosen levels.\n */\n _computePrimaryColors() {\n this._primaryColorShadowLevel === 0 && this._primaryColorHighlightLevel === 0 || (this._primaryColor.scaleToRef(this._primaryColorShadowLevel, this._primaryShadowColor), this._primaryColor.subtractToRef(this._primaryShadowColor, this._primaryShadowColor), this._white.subtractToRef(this._primaryColor, this._primaryHighlightColor), this._primaryHighlightColor.scaleToRef(this._primaryColorHighlightLevel, this._primaryHighlightColor), this._primaryColor.addToRef(this._primaryHighlightColor, this._primaryHighlightColor));\n }\n /**\n * Build the uniform buffer used in the material.\n */\n buildUniformLayout() {\n this._uniformBuffer.addUniform(\"vPrimaryColor\", 4), this._uniformBuffer.addUniform(\"vPrimaryColorShadow\", 4), this._uniformBuffer.addUniform(\"vDiffuseInfos\", 2), this._uniformBuffer.addUniform(\"vReflectionInfos\", 2), this._uniformBuffer.addUniform(\"diffuseMatrix\", 16), this._uniformBuffer.addUniform(\"reflectionMatrix\", 16), this._uniformBuffer.addUniform(\"vReflectionMicrosurfaceInfos\", 3), this._uniformBuffer.addUniform(\"fFovMultiplier\", 1), this._uniformBuffer.addUniform(\"pointSize\", 1), this._uniformBuffer.addUniform(\"shadowLevel\", 1), this._uniformBuffer.addUniform(\"alpha\", 1), this._uniformBuffer.addUniform(\"vBackgroundCenter\", 3), this._uniformBuffer.addUniform(\"vReflectionControl\", 4), this._uniformBuffer.addUniform(\"projectedGroundInfos\", 2), this._uniformBuffer.create();\n }\n /**\n * Unbind the material.\n */\n unbind() {\n this._diffuseTexture && this._diffuseTexture.isRenderTarget && this._uniformBuffer.setTexture(\"diffuseSampler\", null), this._reflectionTexture && this._reflectionTexture.isRenderTarget && this._uniformBuffer.setTexture(\"reflectionSampler\", null), super.unbind();\n }\n /**\n * Bind only the world matrix to the material.\n * @param world The world matrix to bind.\n */\n bindOnlyWorldMatrix(e) {\n this._activeEffect.setMatrix(\"world\", e);\n }\n /**\n * Bind the material for a dedicated submesh (every used meshes will be considered opaque).\n * @param world The world matrix to bind.\n * @param mesh the mesh to bind for.\n * @param subMesh The submesh to bind for.\n */\n bindForSubMesh(e, t, i) {\n const s = this.getScene(), r = i.materialDefines;\n if (!r)\n return;\n const n = i.effect;\n if (!n)\n return;\n this._activeEffect = n, this.bindOnlyWorldMatrix(e), Fl(t, this._activeEffect);\n const o = this._mustRebind(s, n, i, t.visibility);\n if (o) {\n this._uniformBuffer.bindToEffect(n, \"Material\"), this.bindViewProjection(n);\n const l = this._reflectionTexture;\n (!this._uniformBuffer.useUbo || !this.isFrozen || !this._uniformBuffer.isSync || i._drawWrapper._forceRebindOnNextCall) && (s.texturesEnabled && (this._diffuseTexture && xe.DiffuseTextureEnabled && (this._uniformBuffer.updateFloat2(\"vDiffuseInfos\", this._diffuseTexture.coordinatesIndex, this._diffuseTexture.level), pi(this._diffuseTexture, this._uniformBuffer, \"diffuse\")), l && xe.ReflectionTextureEnabled && (this._uniformBuffer.updateMatrix(\"reflectionMatrix\", l.getReflectionTextureMatrix()), this._uniformBuffer.updateFloat2(\"vReflectionInfos\", l.level, this._reflectionBlur), this._uniformBuffer.updateFloat3(\"vReflectionMicrosurfaceInfos\", l.getSize().width, l.lodGenerationScale, l.lodGenerationOffset))), this.shadowLevel > 0 && this._uniformBuffer.updateFloat(\"shadowLevel\", this.shadowLevel), this._uniformBuffer.updateFloat(\"alpha\", this.alpha), this.pointsCloud && this._uniformBuffer.updateFloat(\"pointSize\", this.pointSize), r.USEHIGHLIGHTANDSHADOWCOLORS ? (this._uniformBuffer.updateColor4(\"vPrimaryColor\", this._primaryHighlightColor, 1), this._uniformBuffer.updateColor4(\"vPrimaryColorShadow\", this._primaryShadowColor, 1)) : this._uniformBuffer.updateColor4(\"vPrimaryColor\", this._primaryColor, 1)), this._uniformBuffer.updateFloat(\"fFovMultiplier\", this._fovMultiplier), s.texturesEnabled && (this._diffuseTexture && xe.DiffuseTextureEnabled && this._uniformBuffer.setTexture(\"diffuseSampler\", this._diffuseTexture), l && xe.ReflectionTextureEnabled && (r.REFLECTIONBLUR && r.TEXTURELODSUPPORT ? this._uniformBuffer.setTexture(\"reflectionSampler\", l) : r.REFLECTIONBLUR ? (this._uniformBuffer.setTexture(\"reflectionSampler\", l._lodTextureMid || l), this._uniformBuffer.setTexture(\"reflectionSamplerLow\", l._lodTextureLow || l), this._uniformBuffer.setTexture(\"reflectionSamplerHigh\", l._lodTextureHigh || l)) : this._uniformBuffer.setTexture(\"reflectionSampler\", l), r.REFLECTIONFRESNEL && (this._uniformBuffer.updateFloat3(\"vBackgroundCenter\", this.sceneCenter.x, this.sceneCenter.y, this.sceneCenter.z), this._uniformBuffer.updateFloat4(\"vReflectionControl\", this._reflectionControls.x, this._reflectionControls.y, this._reflectionControls.z, this._reflectionControls.w))), r.PROJECTED_GROUND && this._uniformBuffer.updateFloat2(\"projectedGroundInfos\", this.projectedGroundRadius, this.projectedGroundHeight)), Tn(this._activeEffect, this, s), s.bindEyePosition(n);\n } else s.getEngine()._features.needToAlwaysBindUniformBuffers && (this._uniformBuffer.bindToEffect(n, \"Material\"), this._needToBindSceneUbo = !0);\n (o || !this.isFrozen) && (s.lightsEnabled && gc(s, t, this._activeEffect, r, this._maxSimultaneousLights), this.bindView(n), il(s, t, this._activeEffect, !0), this._useLogarithmicDepth && Oa(r, n, s), this._imageProcessingConfiguration && this._imageProcessingConfiguration.bind(this._activeEffect)), this._afterBind(t, this._activeEffect, i), this._uniformBuffer.update();\n }\n /**\n * Checks to see if a texture is used in the material.\n * @param texture - Base texture to use.\n * @returns - Boolean specifying if a texture is used in the material.\n */\n hasTexture(e) {\n return !!(super.hasTexture(e) || this._reflectionTexture === e || this._diffuseTexture === e);\n }\n /**\n * Dispose the material.\n * @param forceDisposeEffect Force disposal of the associated effect.\n * @param forceDisposeTextures Force disposal of the associated textures.\n */\n dispose(e = !1, t = !1) {\n t && (this.diffuseTexture && this.diffuseTexture.dispose(), this.reflectionTexture && this.reflectionTexture.dispose()), this._renderTargets.dispose(), this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), super.dispose(e);\n }\n /**\n * Clones the material.\n * @param name The cloned name.\n * @returns The cloned material.\n */\n clone(e) {\n return Ae.Clone(() => new mt(e, this.getScene()), this);\n }\n /**\n * Serializes the current material to its JSON representation.\n * @returns The JSON representation.\n */\n serialize() {\n const e = super.serialize();\n return e.customType = \"BABYLON.BackgroundMaterial\", e;\n }\n /**\n * Gets the class name of the material\n * @returns \"BackgroundMaterial\"\n */\n getClassName() {\n return \"BackgroundMaterial\";\n }\n /**\n * Parse a JSON input to create back a background material.\n * @param source The JSON data to parse\n * @param scene The scene to create the parsed material in\n * @param rootUrl The root url of the assets the material depends upon\n * @returns the instantiated BackgroundMaterial.\n */\n static Parse(e, t, i) {\n return Ae.Parse(() => new mt(e.name, t), e, t, i);\n }\n}\nmt.StandardReflectance0 = 0.05;\nmt.StandardReflectance90 = 0.5;\ny([\n bi()\n], mt.prototype, \"_primaryColor\", void 0);\ny([\n ce(\"_markAllSubMeshesAsLightsDirty\")\n], mt.prototype, \"primaryColor\", void 0);\ny([\n bi()\n], mt.prototype, \"__perceptualColor\", void 0);\ny([\n I()\n], mt.prototype, \"_primaryColorShadowLevel\", void 0);\ny([\n I()\n], mt.prototype, \"_primaryColorHighlightLevel\", void 0);\ny([\n ce(\"_markAllSubMeshesAsLightsDirty\")\n], mt.prototype, \"primaryColorHighlightLevel\", null);\ny([\n xt()\n], mt.prototype, \"_reflectionTexture\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"reflectionTexture\", void 0);\ny([\n I()\n], mt.prototype, \"_reflectionBlur\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"reflectionBlur\", void 0);\ny([\n xt()\n], mt.prototype, \"_diffuseTexture\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"diffuseTexture\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"shadowLights\", void 0);\ny([\n I()\n], mt.prototype, \"_shadowLevel\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"shadowLevel\", void 0);\ny([\n Zs()\n], mt.prototype, \"_sceneCenter\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"sceneCenter\", void 0);\ny([\n I()\n], mt.prototype, \"_opacityFresnel\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"opacityFresnel\", void 0);\ny([\n I()\n], mt.prototype, \"_reflectionFresnel\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"reflectionFresnel\", void 0);\ny([\n I()\n], mt.prototype, \"_reflectionFalloffDistance\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"reflectionFalloffDistance\", void 0);\ny([\n I()\n], mt.prototype, \"_reflectionAmount\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"reflectionAmount\", void 0);\ny([\n I()\n], mt.prototype, \"_reflectionReflectance0\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"reflectionReflectance0\", void 0);\ny([\n I()\n], mt.prototype, \"_reflectionReflectance90\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"reflectionReflectance90\", void 0);\ny([\n I()\n], mt.prototype, \"_useRGBColor\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"useRGBColor\", void 0);\ny([\n I()\n], mt.prototype, \"_enableNoise\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"enableNoise\", void 0);\ny([\n I()\n], mt.prototype, \"_maxSimultaneousLights\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], mt.prototype, \"maxSimultaneousLights\", void 0);\ny([\n I()\n], mt.prototype, \"_shadowOnly\", void 0);\ny([\n ce(\"_markAllSubMeshesAsLightsDirty\")\n], mt.prototype, \"shadowOnly\", void 0);\ny([\n NC()\n], mt.prototype, \"_imageProcessingConfiguration\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsMiscDirty\")\n], mt.prototype, \"enableGroundProjection\", void 0);\ny([\n I()\n], mt.prototype, \"projectedGroundRadius\", void 0);\ny([\n I()\n], mt.prototype, \"projectedGroundHeight\", void 0);\nU(\"BABYLON.BackgroundMaterial\", mt);\nclass Mr extends Ye {\n /**\n * Gets the texture being displayed on the sphere\n */\n get texture() {\n return this._texture;\n }\n /**\n * Sets the texture being displayed on the sphere\n */\n set texture(e) {\n this._texture !== e && (this._texture = e, this._useDirectMapping ? (this._texture.wrapU = X.CLAMP_ADDRESSMODE, this._texture.wrapV = X.CLAMP_ADDRESSMODE, this._material.diffuseTexture = this._texture) : (this._texture.coordinatesMode = X.FIXED_EQUIRECTANGULAR_MIRRORED_MODE, this._texture.wrapV = X.CLAMP_ADDRESSMODE, this._material.reflectionTexture = this._texture), this._changeTextureMode(this._textureMode));\n }\n /**\n * Gets the mesh used for the dome.\n */\n get mesh() {\n return this._mesh;\n }\n /**\n * The current fov(field of view) multiplier, 0.0 - 2.0. Defaults to 1.0. Lower values \"zoom in\" and higher values \"zoom out\".\n * Also see the options.resolution property.\n */\n get fovMultiplier() {\n return this._material.fovMultiplier;\n }\n set fovMultiplier(e) {\n this._material.fovMultiplier = e;\n }\n /**\n * Gets or set the current texture mode for the texture. It can be:\n * * TextureDome.MODE_MONOSCOPIC : Define the texture source as a Monoscopic panoramic 360.\n * * TextureDome.MODE_TOPBOTTOM : Define the texture source as a Stereoscopic TopBottom/OverUnder panoramic 360.\n * * TextureDome.MODE_SIDEBYSIDE : Define the texture source as a Stereoscopic Side by Side panoramic 360.\n */\n get textureMode() {\n return this._textureMode;\n }\n /**\n * Sets the current texture mode for the texture. It can be:\n * * TextureDome.MODE_MONOSCOPIC : Define the texture source as a Monoscopic panoramic 360.\n * * TextureDome.MODE_TOPBOTTOM : Define the texture source as a Stereoscopic TopBottom/OverUnder panoramic 360.\n * * TextureDome.MODE_SIDEBYSIDE : Define the texture source as a Stereoscopic Side by Side panoramic 360.\n */\n set textureMode(e) {\n this._textureMode !== e && this._changeTextureMode(e);\n }\n /**\n * Is it a 180 degrees dome (half dome) or 360 texture (full dome)\n */\n get halfDome() {\n return this._halfDome;\n }\n /**\n * Set the halfDome mode. If set, only the front (180 degrees) will be displayed and the back will be blacked out.\n */\n set halfDome(e) {\n this._halfDome = e, this._halfDomeMask.setEnabled(e), this._changeTextureMode(this._textureMode);\n }\n /**\n * Set the cross-eye mode. If set, images that can be seen when crossing eyes will render correctly\n */\n set crossEye(e) {\n this._crossEye = e, this._changeTextureMode(this._textureMode);\n }\n /**\n * Is it a cross-eye texture?\n */\n get crossEye() {\n return this._crossEye;\n }\n /**\n * The background material of this dome.\n */\n get material() {\n return this._material;\n }\n /**\n * Create an instance of this class and pass through the parameters to the relevant classes- Texture, StandardMaterial, and Mesh.\n * @param name Element's name, child elements will append suffixes for their own names.\n * @param textureUrlOrElement defines the url(s) or the (video) HTML element to use\n * @param options An object containing optional or exposed sub element properties\n * @param options.resolution\n * @param options.clickToPlay\n * @param options.autoPlay\n * @param options.loop\n * @param options.size\n * @param options.poster\n * @param options.faceForward\n * @param options.useDirectMapping\n * @param options.halfDomeMode\n * @param options.crossEyeMode\n * @param options.generateMipMaps\n * @param options.mesh\n * @param scene\n * @param onError\n */\n constructor(e, t, i, s, r = null) {\n super(e, s), this.onError = r, this._halfDome = !1, this._crossEye = !1, this._useDirectMapping = !1, this._textureMode = Mr.MODE_MONOSCOPIC, this._onBeforeCameraRenderObserver = null, this.onLoadErrorObservable = new G(), this.onLoadObservable = new G(), s = this.getScene(), e = e || \"textureDome\", i.resolution = Math.abs(i.resolution) | 0 || 32, i.clickToPlay = !!i.clickToPlay, i.autoPlay = i.autoPlay === void 0 ? !0 : !!i.autoPlay, i.loop = i.loop === void 0 ? !0 : !!i.loop, i.size = Math.abs(i.size) || (s.activeCamera ? s.activeCamera.maxZ * 0.48 : 1e3), i.useDirectMapping === void 0 ? this._useDirectMapping = !0 : this._useDirectMapping = i.useDirectMapping, i.faceForward === void 0 && (i.faceForward = !0), this._setReady(!1), i.mesh ? this._mesh = i.mesh : this._mesh = Tr(e + \"_mesh\", { segments: i.resolution, diameter: i.size, updatable: !1, sideOrientation: H.BACKSIDE }, s);\n const n = this._material = new mt(e + \"_material\", s);\n n.useEquirectangularFOV = !0, n.fovMultiplier = 1, n.opacityFresnel = !1;\n const o = this._initTexture(t, s, i);\n if (this.texture = o, this._mesh.material = n, this._mesh.parent = this, this._halfDomeMask = Tr(\"\", { slice: 0.5, diameter: i.size * 0.98, segments: i.resolution * 2, sideOrientation: H.BACKSIDE }, s), this._halfDomeMask.rotate(zs.X, -Math.PI / 2), this._halfDomeMask.parent = this._mesh, this._halfDome = !!i.halfDomeMode, this._halfDomeMask.setEnabled(this._halfDome), this._crossEye = !!i.crossEyeMode, this._texture.anisotropicFilteringLevel = 1, this._texture.onLoadObservable.addOnce(() => {\n this._setReady(!0);\n }), i.faceForward && s.activeCamera) {\n const l = s.activeCamera, h = g.Forward(), c = g.TransformNormal(h, l.getViewMatrix());\n c.normalize(), this.rotation.y = Math.acos(g.Dot(h, c));\n }\n this._changeTextureMode(this._textureMode);\n }\n _changeTextureMode(e) {\n switch (this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver), this._textureMode = e, this._texture.uScale = 1, this._texture.vScale = 1, this._texture.uOffset = 0, this._texture.vOffset = 0, this._texture.vAng = 0, e) {\n case Mr.MODE_MONOSCOPIC:\n this._halfDome && (this._texture.uScale = 2, this._texture.uOffset = -1);\n break;\n case Mr.MODE_SIDEBYSIDE: {\n this._texture.uScale = this._halfDome ? 0.99999 : 0.5;\n const t = this._halfDome ? 0 : 0.5, i = this._halfDome ? -0.5 : 0;\n this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add((s) => {\n let r = s.isRightCamera;\n this._crossEye && (r = !r), r ? this._texture.uOffset = t : this._texture.uOffset = i;\n });\n break;\n }\n case Mr.MODE_TOPBOTTOM:\n this._texture.vScale = this._halfDome ? 0.99999 : 0.5, this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add((t) => {\n let i = t.isRightCamera;\n this._crossEye && (i = !i), this._texture.vOffset = i ? 0.5 : 0;\n });\n break;\n }\n }\n /**\n * Releases resources associated with this node.\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\n */\n dispose(e, t = !1) {\n this._texture.dispose(), this._mesh.dispose(), this._material.dispose(), this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver), this.onLoadErrorObservable.clear(), this.onLoadObservable.clear(), super.dispose(e, t);\n }\n}\nMr.MODE_MONOSCOPIC = 0;\nMr.MODE_TOPBOTTOM = 1;\nMr.MODE_SIDEBYSIDE = 2;\nclass k_ extends Mr {\n /**\n * Gets or sets the texture being displayed on the sphere\n */\n get photoTexture() {\n return this.texture;\n }\n /**\n * sets the texture being displayed on the sphere\n */\n set photoTexture(e) {\n this.texture = e;\n }\n /**\n * Gets the current video mode for the video. It can be:\n * * TextureDome.MODE_MONOSCOPIC : Define the texture source as a Monoscopic panoramic 360.\n * * TextureDome.MODE_TOPBOTTOM : Define the texture source as a Stereoscopic TopBottom/OverUnder panoramic 360.\n * * TextureDome.MODE_SIDEBYSIDE : Define the texture source as a Stereoscopic Side by Side panoramic 360.\n */\n get imageMode() {\n return this.textureMode;\n }\n /**\n * Sets the current video mode for the video. It can be:\n * * TextureDome.MODE_MONOSCOPIC : Define the texture source as a Monoscopic panoramic 360.\n * * TextureDome.MODE_TOPBOTTOM : Define the texture source as a Stereoscopic TopBottom/OverUnder panoramic 360.\n * * TextureDome.MODE_SIDEBYSIDE : Define the texture source as a Stereoscopic Side by Side panoramic 360.\n */\n set imageMode(e) {\n this.textureMode = e;\n }\n _initTexture(e, t, i) {\n return new X(e, t, !i.generateMipMaps, !this._useDirectMapping, void 0, () => {\n this.onLoadObservable.notifyObservers();\n }, (s, r) => {\n this.onLoadErrorObservable.notifyObservers(s || \"Unknown error occured\"), this.onError && this.onError(s, r);\n });\n }\n}\nk_.MODE_MONOSCOPIC = Mr.MODE_MONOSCOPIC;\nk_.MODE_TOPBOTTOM = Mr.MODE_TOPBOTTOM;\nk_.MODE_SIDEBYSIDE = Mr.MODE_SIDEBYSIDE;\nclass U1 extends bf {\n constructor(e, t) {\n super(e, t);\n }\n construct(e, t) {\n let s = on.getMedia(t.panoramaMediaID).getBitmap(), r = _i.CreateRGBATexture(s, s.width, s.height, this.scene, !0, !0);\n r.wrapU = r.wrapV = q.TEXTURE_WRAP_ADDRESSMODE, r.name = e.getName() + \" - Panorama Texture\";\n const n = new k_(\"PhotoDome\", \"\", {\n resolution: 32,\n faceForward: !1,\n size: 400,\n generateMipMaps: !1\n }, this.scene);\n n.photoTexture.dispose(), n.photoTexture = r, n.material.name = e.getName() + \" - Panorama Material\", n.parent = this.rootNode;\n }\n}\nXe.prototype.updateVideoTexture = function(a, e, t) {\n if (!a || a._isDisabled)\n return;\n const i = this._getInternalFormat(a.format), s = this._getRGBABufferInternalSizedFormat(0, a.format), r = this._bindTextureDirectly(this._gl.TEXTURE_2D, a, !0);\n this._unpackFlipY(!t);\n try {\n if (this._videoTextureSupported === void 0 && (this._gl.getError(), this._gl.texImage2D(this._gl.TEXTURE_2D, 0, s, i, this._gl.UNSIGNED_BYTE, e), this._gl.getError() !== 0 ? this._videoTextureSupported = !1 : this._videoTextureSupported = !0), this._videoTextureSupported)\n this._gl.texImage2D(this._gl.TEXTURE_2D, 0, s, i, this._gl.UNSIGNED_BYTE, e);\n else {\n if (!a._workingCanvas) {\n a._workingCanvas = this.createCanvas(a.width, a.height);\n const n = a._workingCanvas.getContext(\"2d\");\n if (!n)\n throw new Error(\"Unable to get 2d context\");\n a._workingContext = n, a._workingCanvas.width = a.width, a._workingCanvas.height = a.height;\n }\n a._workingContext.clearRect(0, 0, a.width, a.height), a._workingContext.drawImage(e, 0, 0, e.videoWidth, e.videoHeight, 0, 0, a.width, a.height), this._gl.texImage2D(this._gl.TEXTURE_2D, 0, s, i, this._gl.UNSIGNED_BYTE, a._workingCanvas);\n }\n a.generateMipMaps && this._gl.generateMipmap(this._gl.TEXTURE_2D), r || this._bindTextureDirectly(this._gl.TEXTURE_2D, null), a.isReady = !0;\n } catch {\n a._isDisabled = !0;\n }\n};\nXe.prototype.createDynamicTexture = function(a, e, t, i) {\n const s = new Nt(\n this,\n 4\n /* InternalTextureSource.Dynamic */\n );\n return s.baseWidth = a, s.baseHeight = e, t && (a = this.needPOTTextures ? Dr(a, this._caps.maxTextureSize) : a, e = this.needPOTTextures ? Dr(e, this._caps.maxTextureSize) : e), s.width = a, s.height = e, s.isReady = !1, s.generateMipMaps = t, s.samplingMode = i, this.updateTextureSamplingMode(i, s), this._internalTexturesCache.push(s), s;\n};\nXe.prototype.updateDynamicTexture = function(a, e, t, i = !1, s, r = !1, n = !1) {\n if (!a)\n return;\n const o = this._gl, l = o.TEXTURE_2D, h = this._bindTextureDirectly(l, a, !0, r);\n this._unpackFlipY(t === void 0 ? a.invertY : t), i && o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);\n const c = this._getWebGLTextureType(a.type), u = this._getInternalFormat(s || a.format), d = this._getRGBABufferInternalSizedFormat(a.type, u);\n o.texImage2D(l, 0, d, u, c, e), a.generateMipMaps && o.generateMipmap(l), h || this._bindTextureDirectly(l, null), i && o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 0), s && (a.format = s), a._dynamicTextureSource = e, a._premulAlpha = i, a.invertY = t || !1, a.isReady = !0;\n};\nfunction Lb(a) {\n for (; a.firstChild; )\n a.removeChild(a.firstChild);\n a.srcObject = null, a.src = \"\", a.removeAttribute(\"src\");\n}\nclass vr extends X {\n /**\n * Event triggered when a dom action is required by the user to play the video.\n * This happens due to recent changes in browser policies preventing video to auto start.\n */\n get onUserActionRequestedObservable() {\n return this._onUserActionRequestedObservable || (this._onUserActionRequestedObservable = new G()), this._onUserActionRequestedObservable;\n }\n _processError(e) {\n this._errorFound = !0, this._onError ? this._onError(e == null ? void 0 : e.message) : L.Error(e == null ? void 0 : e.message);\n }\n _handlePlay() {\n this._errorFound = !1, this.video.play().catch((e) => {\n if ((e == null ? void 0 : e.name) === \"NotAllowedError\") {\n if (this._onUserActionRequestedObservable && this._onUserActionRequestedObservable.hasObservers()) {\n this._onUserActionRequestedObservable.notifyObservers(this);\n return;\n } else if (!this.video.muted) {\n L.Warn(\"Unable to autoplay a video with sound. Trying again with muted turned true\"), this.video.muted = !0, this._errorFound = !1, this.video.play().catch((t) => {\n this._processError(t);\n });\n return;\n }\n }\n this._processError(e);\n });\n }\n /**\n * Creates a video texture.\n * If you want to display a video in your scene, this is the special texture for that.\n * This special texture works similar to other textures, with the exception of a few parameters.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/videoTexture\n * @param name optional name, will detect from video source, if not defined\n * @param src can be used to provide an url, array of urls or an already setup HTML video element.\n * @param scene is obviously the current scene.\n * @param generateMipMaps can be used to turn on mipmaps (Can be expensive for videoTextures because they are often updated).\n * @param invertY is false by default but can be used to invert video on Y axis\n * @param samplingMode controls the sampling method and is set to TRILINEAR_SAMPLINGMODE by default\n * @param settings allows finer control over video usage\n * @param onError defines a callback triggered when an error occurred during the loading session\n * @param format defines the texture format to use (Engine.TEXTUREFORMAT_RGBA by default)\n */\n constructor(e, t, i, s = !1, r = !1, n = X.TRILINEAR_SAMPLINGMODE, o = {}, l, h = 5) {\n super(null, i, !s, r), this._externalTexture = null, this._onUserActionRequestedObservable = null, this._stillImageCaptured = !1, this._displayingPosterTexture = !1, this._frameId = -1, this._currentSrc = null, this._errorFound = !1, this.isVideo = !0, this._resizeInternalTexture = () => {\n this._texture != null && this._texture.dispose(), !this._getEngine().needPOTTextures || J.IsExponentOfTwo(this.video.videoWidth) && J.IsExponentOfTwo(this.video.videoHeight) ? (this.wrapU = X.WRAP_ADDRESSMODE, this.wrapV = X.WRAP_ADDRESSMODE) : (this.wrapU = X.CLAMP_ADDRESSMODE, this.wrapV = X.CLAMP_ADDRESSMODE, this._generateMipMaps = !1), this._texture = this._getEngine().createDynamicTexture(this.video.videoWidth, this.video.videoHeight, this._generateMipMaps, this.samplingMode), this._texture.format = this._format ?? 5, this._frameId = -1, this._updateInternalTexture();\n }, this._createInternalTexture = () => {\n if (this._texture != null)\n if (this._displayingPosterTexture)\n this._displayingPosterTexture = !1;\n else\n return;\n if (this.video.addEventListener(\"resize\", this._resizeInternalTexture), this._resizeInternalTexture(), !this.video.autoplay && !this._settings.poster && !this._settings.independentVideoSource) {\n const f = this.video.onplaying, p = this.video.muted;\n this.video.muted = !0, this.video.onplaying = () => {\n this.video.muted = p, this.video.onplaying = f, this._updateInternalTexture(), this._errorFound || this.video.pause(), this.onLoadObservable.hasObservers() && this.onLoadObservable.notifyObservers(this);\n }, this._handlePlay();\n } else\n this._updateInternalTexture(), this.onLoadObservable.hasObservers() && this.onLoadObservable.notifyObservers(this);\n }, this._reset = () => {\n this._texture != null && (this._displayingPosterTexture || (this._texture.dispose(), this._texture = null));\n }, this._updateInternalTexture = () => {\n if (this._texture == null || this.video.readyState < this.video.HAVE_CURRENT_DATA || this._displayingPosterTexture)\n return;\n const f = this.getScene().getFrameId();\n this._frameId !== f && (this._frameId = f, this._getEngine().updateVideoTexture(this._texture, this._externalTexture ? this._externalTexture : this.video, this._invertY));\n }, this._settings = {\n autoPlay: !0,\n loop: !0,\n autoUpdateTexture: !0,\n ...o\n }, this._onError = l, this._generateMipMaps = s, this._initialSamplingMode = n, this.autoUpdateTexture = this._settings.autoUpdateTexture, this._currentSrc = t, this.name = e || this._getName(t), this.video = this._getVideo(t);\n const c = this._engine, u = c == null ? void 0 : c.createExternalTexture;\n u && (this._externalTexture = u.call(c, this.video)), this._settings.independentVideoSource || (this._settings.poster && (this.video.poster = this._settings.poster), this._settings.autoPlay !== void 0 && (this.video.autoplay = this._settings.autoPlay), this._settings.loop !== void 0 && (this.video.loop = this._settings.loop), this._settings.muted !== void 0 && (this.video.muted = this._settings.muted), this.video.setAttribute(\"playsinline\", \"\"), this.video.addEventListener(\"paused\", this._updateInternalTexture), this.video.addEventListener(\"seeked\", this._updateInternalTexture), this.video.addEventListener(\"loadeddata\", this._updateInternalTexture), this.video.addEventListener(\"emptied\", this._reset), this._settings.autoPlay && this._handlePlay()), this._createInternalTextureOnEvent = this._settings.poster && !this._settings.autoPlay ? \"play\" : \"canplay\", this.video.addEventListener(this._createInternalTextureOnEvent, this._createInternalTexture), this._format = h;\n const d = this.video.readyState >= this.video.HAVE_CURRENT_DATA;\n this._settings.poster && (!this._settings.autoPlay || !d) ? (this._texture = this._getEngine().createTexture(this._settings.poster, !1, !this.invertY, i), this._displayingPosterTexture = !0) : d && this._createInternalTexture();\n }\n /**\n * Get the current class name of the video texture useful for serialization or dynamic coding.\n * @returns \"VideoTexture\"\n */\n getClassName() {\n return \"VideoTexture\";\n }\n _getName(e) {\n return e instanceof HTMLVideoElement ? e.currentSrc : typeof e == \"object\" ? e.toString() : e;\n }\n _getVideo(e) {\n if (e.isNative)\n return e;\n if (e instanceof HTMLVideoElement)\n return J.SetCorsBehavior(e.currentSrc, e), e;\n const t = document.createElement(\"video\");\n return typeof e == \"string\" ? (J.SetCorsBehavior(e, t), t.src = e) : (J.SetCorsBehavior(e[0], t), e.forEach((i) => {\n const s = document.createElement(\"source\");\n s.src = i, t.appendChild(s);\n })), this.onDisposeObservable.addOnce(() => {\n Lb(t);\n }), t;\n }\n /**\n * @internal Internal method to initiate `update`.\n */\n _rebuild() {\n this.update();\n }\n /**\n * Update Texture in the `auto` mode. Does not do anything if `settings.autoUpdateTexture` is false.\n */\n update() {\n this.autoUpdateTexture && this.updateTexture(!0);\n }\n /**\n * Update Texture in `manual` mode. Does not do anything if not visible or paused.\n * @param isVisible Visibility state, detected by user using `scene.getActiveMeshes()` or otherwise.\n */\n updateTexture(e) {\n e && (this.video.paused && this._stillImageCaptured || (this._stillImageCaptured = !0, this._updateInternalTexture()));\n }\n /**\n * Get the underlying external texture (if supported by the current engine, else null)\n */\n get externalTexture() {\n return this._externalTexture;\n }\n /**\n * Change video content. Changing video instance or setting multiple urls (as in constructor) is not supported.\n * @param url New url.\n */\n updateURL(e) {\n this.video.src = e, this._currentSrc = e;\n }\n /**\n * Clones the texture.\n * @returns the cloned texture\n */\n clone() {\n return new vr(this.name, this._currentSrc, this.getScene(), this._generateMipMaps, this.invertY, this.samplingMode, this._settings);\n }\n /**\n * Dispose the texture and release its associated resources.\n */\n dispose() {\n var e;\n super.dispose(), this._currentSrc = null, this._onUserActionRequestedObservable && (this._onUserActionRequestedObservable.clear(), this._onUserActionRequestedObservable = null), this.video.removeEventListener(this._createInternalTextureOnEvent, this._createInternalTexture), this._settings.independentVideoSource || (this.video.removeEventListener(\"paused\", this._updateInternalTexture), this.video.removeEventListener(\"seeked\", this._updateInternalTexture), this.video.removeEventListener(\"loadeddata\", this._updateInternalTexture), this.video.removeEventListener(\"emptied\", this._reset), this.video.removeEventListener(\"resize\", this._resizeInternalTexture), this.video.pause()), (e = this._externalTexture) == null || e.dispose();\n }\n /**\n * Creates a video texture straight from a stream.\n * @param scene Define the scene the texture should be created in\n * @param stream Define the stream the texture should be created from\n * @param constraints video constraints\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\n * @returns The created video texture as a promise\n */\n static CreateFromStreamAsync(e, t, i, s = !0) {\n const r = e.getEngine().createVideoElement(i);\n return e.getEngine()._badOS && (document.body.appendChild(r), r.style.transform = \"scale(0.0001, 0.0001)\", r.style.opacity = \"0\", r.style.position = \"fixed\", r.style.bottom = \"0px\", r.style.right = \"0px\"), r.setAttribute(\"autoplay\", \"\"), r.setAttribute(\"muted\", \"true\"), r.setAttribute(\"playsinline\", \"\"), r.muted = !0, r.isNative || (r.mozSrcObject !== void 0 ? r.mozSrcObject = t : typeof r.srcObject == \"object\" ? r.srcObject = t : r.src = window.URL && window.URL.createObjectURL(t)), new Promise((n) => {\n const o = () => {\n const l = new vr(\"video\", r, e, !0, s, void 0, void 0, void 0, 4);\n e.getEngine()._badOS && l.onDisposeObservable.addOnce(() => {\n r.remove();\n }), l.onDisposeObservable.addOnce(() => {\n Lb(r);\n }), n(l), r.removeEventListener(\"playing\", o);\n };\n r.addEventListener(\"playing\", o), r.play();\n });\n }\n /**\n * Creates a video texture straight from your WebCam video feed.\n * @param scene Define the scene the texture should be created in\n * @param constraints Define the constraints to use to create the web cam feed from WebRTC\n * @param audioConstaints Define the audio constraints to use to create the web cam feed from WebRTC\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\n * @returns The created video texture as a promise\n */\n static async CreateFromWebCamAsync(e, t, i = !1, s = !0) {\n if (navigator.mediaDevices) {\n const r = await navigator.mediaDevices.getUserMedia({\n video: t,\n audio: i\n }), n = await this.CreateFromStreamAsync(e, r, t, s);\n return n.onDisposeObservable.addOnce(() => {\n r.getTracks().forEach((o) => {\n o.stop();\n });\n }), n;\n }\n return Promise.reject(\"No support for userMedia on this device\");\n }\n /**\n * Creates a video texture straight from your WebCam video feed.\n * @param scene Defines the scene the texture should be created in\n * @param onReady Defines a callback to triggered once the texture will be ready\n * @param constraints Defines the constraints to use to create the web cam feed from WebRTC\n * @param audioConstaints Defines the audio constraints to use to create the web cam feed from WebRTC\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\n */\n static CreateFromWebCam(e, t, i, s = !1, r = !0) {\n this.CreateFromWebCamAsync(e, i, s, r).then(function(n) {\n t && t(n);\n }).catch(function(n) {\n L.Error(n.name);\n });\n }\n}\ny([\n I(\"settings\")\n], vr.prototype, \"_settings\", void 0);\ny([\n I(\"src\")\n], vr.prototype, \"_currentSrc\", void 0);\ny([\n I()\n], vr.prototype, \"isVideo\", void 0);\nX._CreateVideoTexture = (a, e, t, i = !1, s = !1, r = X.TRILINEAR_SAMPLINGMODE, n = {}, o, l = 5) => new vr(a, e, t, i, s, r, n, o, l);\nU(\"BABYLON.VideoTexture\", vr);\nclass k1 {\n /**\n * Gets the current frame of the runtime animation\n */\n get currentFrame() {\n return this._currentFrame;\n }\n /**\n * Gets the weight of the runtime animation\n */\n get weight() {\n return this._weight;\n }\n /**\n * Gets the current value of the runtime animation\n */\n get currentValue() {\n return this._currentValue;\n }\n /**\n * Gets or sets the target path of the runtime animation\n */\n get targetPath() {\n return this._targetPath;\n }\n /**\n * Gets the actual target of the runtime animation\n */\n get target() {\n return this._currentActiveTarget;\n }\n /**\n * Gets the additive state of the runtime animation\n */\n get isAdditive() {\n return this._host && this._host.isAdditive;\n }\n /**\n * Create a new RuntimeAnimation object\n * @param target defines the target of the animation\n * @param animation defines the source animation object\n * @param scene defines the hosting scene\n * @param host defines the initiating Animatable\n */\n constructor(e, t, i, s) {\n if (this._events = new Array(), this._currentFrame = 0, this._originalValue = new Array(), this._originalBlendValue = null, this._offsetsCache = {}, this._highLimitsCache = {}, this._stopped = !1, this._blendingFactor = 0, this._currentValue = null, this._currentActiveTarget = null, this._directTarget = null, this._targetPath = \"\", this._weight = 1, this._absoluteFrameOffset = 0, this._previousElapsedTime = 0, this._yoyoDirection = 1, this._previousAbsoluteFrame = 0, this._targetIsArray = !1, this._animation = t, this._target = e, this._scene = i, this._host = s, this._activeTargets = [], t._runtimeAnimations.push(this), this._animationState = {\n key: 0,\n repeatCount: 0,\n loopMode: this._getCorrectLoopMode()\n }, this._animation.dataType === oe.ANIMATIONTYPE_MATRIX && (this._animationState.workValue = O.Zero()), this._keys = this._animation.getKeys(), this._minFrame = this._keys[0].frame, this._maxFrame = this._keys[this._keys.length - 1].frame, this._minValue = this._keys[0].value, this._maxValue = this._keys[this._keys.length - 1].value, this._minFrame !== 0) {\n const n = { frame: 0, value: this._minValue };\n this._keys.splice(0, 0, n);\n }\n if (this._target instanceof Array) {\n let n = 0;\n for (const o of this._target)\n this._preparePath(o, n), this._getOriginalValues(n), n++;\n this._targetIsArray = !0;\n } else\n this._preparePath(this._target), this._getOriginalValues(), this._targetIsArray = !1, this._directTarget = this._activeTargets[0];\n const r = t.getEvents();\n r && r.length > 0 && r.forEach((n) => {\n this._events.push(n._clone());\n }), this._enableBlending = e && e.animationPropertiesOverride ? e.animationPropertiesOverride.enableBlending : this._animation.enableBlending;\n }\n _preparePath(e, t = 0) {\n const i = this._animation.targetPropertyPath;\n if (i.length > 1) {\n let s = e;\n for (let r = 0; r < i.length - 1; r++) {\n const n = i[r];\n if (s = s[n], s === void 0)\n throw new Error(`Invalid property (${n}) in property path (${i.join(\".\")})`);\n }\n this._targetPath = i[i.length - 1], this._activeTargets[t] = s;\n } else\n this._targetPath = i[0], this._activeTargets[t] = e;\n if (this._activeTargets[t][this._targetPath] === void 0)\n throw new Error(`Invalid property (${this._targetPath}) in property path (${i.join(\".\")})`);\n }\n /**\n * Gets the animation from the runtime animation\n */\n get animation() {\n return this._animation;\n }\n /**\n * Resets the runtime animation to the beginning\n * @param restoreOriginal defines whether to restore the target property to the original value\n */\n reset(e = !1) {\n if (e)\n if (this._target instanceof Array) {\n let t = 0;\n for (const i of this._target)\n this._originalValue[t] !== void 0 && this._setValue(i, this._activeTargets[t], this._originalValue[t], -1, t), t++;\n } else\n this._originalValue[0] !== void 0 && this._setValue(this._target, this._directTarget, this._originalValue[0], -1, 0);\n this._offsetsCache = {}, this._highLimitsCache = {}, this._currentFrame = 0, this._blendingFactor = 0;\n for (let t = 0; t < this._events.length; t++)\n this._events[t].isDone = !1;\n }\n /**\n * Specifies if the runtime animation is stopped\n * @returns Boolean specifying if the runtime animation is stopped\n */\n isStopped() {\n return this._stopped;\n }\n /**\n * Disposes of the runtime animation\n */\n dispose() {\n const e = this._animation.runtimeAnimations.indexOf(this);\n e > -1 && this._animation.runtimeAnimations.splice(e, 1);\n }\n /**\n * Apply the interpolated value to the target\n * @param currentValue defines the value computed by the animation\n * @param weight defines the weight to apply to this value (Defaults to 1.0)\n */\n setValue(e, t) {\n if (this._targetIsArray) {\n for (let i = 0; i < this._target.length; i++) {\n const s = this._target[i];\n this._setValue(s, this._activeTargets[i], e, t, i);\n }\n return;\n }\n this._setValue(this._target, this._directTarget, e, t, 0);\n }\n _getOriginalValues(e = 0) {\n let t;\n const i = this._activeTargets[e];\n i.getLocalMatrix && this._targetPath === \"_matrix\" ? t = i.getLocalMatrix() : t = i[this._targetPath], t && t.clone ? this._originalValue[e] = t.clone() : this._originalValue[e] = t;\n }\n _setValue(e, t, i, s, r) {\n if (this._currentActiveTarget = t, this._weight = s, this._enableBlending && this._blendingFactor <= 1) {\n if (!this._originalBlendValue) {\n const o = t[this._targetPath];\n o.clone ? this._originalBlendValue = o.clone() : this._originalBlendValue = o;\n }\n this._originalBlendValue.m ? oe.AllowMatrixDecomposeForInterpolation ? this._currentValue ? O.DecomposeLerpToRef(this._originalBlendValue, i, this._blendingFactor, this._currentValue) : this._currentValue = O.DecomposeLerp(this._originalBlendValue, i, this._blendingFactor) : this._currentValue ? O.LerpToRef(this._originalBlendValue, i, this._blendingFactor, this._currentValue) : this._currentValue = O.Lerp(this._originalBlendValue, i, this._blendingFactor) : this._currentValue = oe._UniversalLerp(this._originalBlendValue, i, this._blendingFactor);\n const n = e && e.animationPropertiesOverride ? e.animationPropertiesOverride.blendingSpeed : this._animation.blendingSpeed;\n this._blendingFactor += n;\n } else\n this._currentValue ? this._currentValue.copyFrom ? this._currentValue.copyFrom(i) : this._currentValue = i : i != null && i.clone ? this._currentValue = i.clone() : this._currentValue = i;\n s !== -1 ? this._scene._registerTargetForLateAnimationBinding(this, this._originalValue[r]) : this._animationState.loopMode === oe.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT ? this._currentValue.addToRef ? this._currentValue.addToRef(this._originalValue[r], t[this._targetPath]) : t[this._targetPath] = this._originalValue[r] + this._currentValue : t[this._targetPath] = this._currentValue, e.markAsDirty && e.markAsDirty(this._animation.targetProperty);\n }\n /**\n * Gets the loop pmode of the runtime animation\n * @returns Loop Mode\n */\n _getCorrectLoopMode() {\n return this._target && this._target.animationPropertiesOverride ? this._target.animationPropertiesOverride.loopMode : this._animation.loopMode;\n }\n /**\n * Move the current animation to a given frame\n * @param frame defines the frame to move to\n * @param weight defines the weight to apply to the animation (-1.0 by default)\n */\n goToFrame(e, t = -1) {\n const i = this._animation.getKeys();\n e < i[0].frame ? e = i[0].frame : e > i[i.length - 1].frame && (e = i[i.length - 1].frame);\n const s = this._events;\n if (s.length)\n for (let n = 0; n < s.length; n++)\n s[n].onlyOnce || (s[n].isDone = s[n].frame < e);\n this._currentFrame = e;\n const r = this._animation._interpolate(e, this._animationState);\n this.setValue(r, t);\n }\n /**\n * @internal Internal use only\n */\n _prepareForSpeedRatioChange(e) {\n const t = this._previousElapsedTime * (this._animation.framePerSecond * e) / 1e3;\n this._absoluteFrameOffset = this._previousAbsoluteFrame - t;\n }\n /**\n * Execute the current animation\n * @param elapsedTimeSinceAnimationStart defines the elapsed time (in milliseconds) since the animation was started\n * @param from defines the lower frame of the animation range\n * @param to defines the upper frame of the animation range\n * @param loop defines if the current animation must loop\n * @param speedRatio defines the current speed ratio\n * @param weight defines the weight of the animation (default is -1 so no weight)\n * @returns a boolean indicating if the animation is running\n */\n animate(e, t, i, s, r, n = -1) {\n const o = this._animation, l = o.targetPropertyPath;\n if (!l || l.length < 1)\n return this._stopped = !0, !1;\n let h = !0;\n (t < this._minFrame || t > this._maxFrame) && (t = this._minFrame), (i < this._minFrame || i > this._maxFrame) && (i = this._maxFrame);\n const c = i - t;\n let u, d = e * (o.framePerSecond * r) / 1e3 + this._absoluteFrameOffset, f = 0, p = !1;\n const _ = s && this._animationState.loopMode === oe.ANIMATIONLOOPMODE_YOYO;\n if (_) {\n const T = (d - t) / c, E = Math.sin(T * Math.PI);\n d = Math.abs(E) * c + t;\n const S = E >= 0 ? 1 : -1;\n this._yoyoDirection !== S && (p = !0), this._yoyoDirection = S;\n }\n if (this._previousElapsedTime = e, this._previousAbsoluteFrame = d, !s && i >= t && (d >= c && r > 0 || d <= 0 && r < 0))\n h = !1, f = o._getKeyValue(this._maxValue);\n else if (!s && t >= i && (d <= c && r < 0 || d >= 0 && r > 0))\n h = !1, f = o._getKeyValue(this._minValue);\n else if (this._animationState.loopMode !== oe.ANIMATIONLOOPMODE_CYCLE) {\n const T = i.toString() + t.toString();\n if (!this._offsetsCache[T]) {\n this._animationState.repeatCount = 0, this._animationState.loopMode = oe.ANIMATIONLOOPMODE_CYCLE;\n const E = o._interpolate(t, this._animationState), b = o._interpolate(i, this._animationState);\n switch (this._animationState.loopMode = this._getCorrectLoopMode(), o.dataType) {\n case oe.ANIMATIONTYPE_FLOAT:\n this._offsetsCache[T] = b - E;\n break;\n case oe.ANIMATIONTYPE_QUATERNION:\n this._offsetsCache[T] = b.subtract(E);\n break;\n case oe.ANIMATIONTYPE_VECTOR3:\n this._offsetsCache[T] = b.subtract(E);\n break;\n case oe.ANIMATIONTYPE_VECTOR2:\n this._offsetsCache[T] = b.subtract(E);\n break;\n case oe.ANIMATIONTYPE_SIZE:\n this._offsetsCache[T] = b.subtract(E);\n break;\n case oe.ANIMATIONTYPE_COLOR3:\n this._offsetsCache[T] = b.subtract(E);\n break;\n }\n this._highLimitsCache[T] = b;\n }\n f = this._highLimitsCache[T], u = this._offsetsCache[T];\n }\n if (u === void 0)\n switch (o.dataType) {\n case oe.ANIMATIONTYPE_FLOAT:\n u = 0;\n break;\n case oe.ANIMATIONTYPE_QUATERNION:\n u = ZC;\n break;\n case oe.ANIMATIONTYPE_VECTOR3:\n u = JC;\n break;\n case oe.ANIMATIONTYPE_VECTOR2:\n u = e0;\n break;\n case oe.ANIMATIONTYPE_SIZE:\n u = t0;\n break;\n case oe.ANIMATIONTYPE_COLOR3:\n u = i0;\n break;\n case oe.ANIMATIONTYPE_COLOR4:\n u = s0;\n break;\n }\n let m;\n if (this._host && this._host.syncRoot) {\n const T = this._host.syncRoot, E = (T.masterFrame - T.fromFrame) / (T.toFrame - T.fromFrame);\n m = t + c * E;\n } else\n d > 0 && t > i || d < 0 && t < i ? m = h && c !== 0 ? i + d % c : t : m = h && c !== 0 ? t + d % c : i;\n const x = this._events;\n if (!_ && (r > 0 && this.currentFrame > m || r < 0 && this.currentFrame < m) || _ && p) {\n this._onLoop();\n for (let T = 0; T < x.length; T++)\n x[T].onlyOnce || (x[T].isDone = !1);\n this._animationState.key = r > 0 ? 0 : o.getKeys().length - 1;\n }\n this._currentFrame = m, this._animationState.repeatCount = c === 0 ? 0 : d / c >> 0, this._animationState.highLimitValue = f, this._animationState.offsetValue = u;\n const v = o._interpolate(m, this._animationState);\n if (this.setValue(v, n), x.length) {\n for (let T = 0; T < x.length; T++)\n if (c >= 0 && m >= x[T].frame && x[T].frame >= t || c < 0 && m <= x[T].frame && x[T].frame <= t) {\n const E = x[T];\n E.isDone || (E.onlyOnce && (x.splice(T, 1), T--), E.isDone = !0, E.action(m));\n }\n }\n return h || (this._stopped = !0), h;\n }\n}\nclass Si extends Lt {\n /** @internal */\n get _matrix() {\n return this._compose(), this._localMatrix;\n }\n /** @internal */\n set _matrix(e) {\n e.updateFlag === this._localMatrix.updateFlag && !this._needToCompose || (this._needToCompose = !1, this._localMatrix.copyFrom(e), this._markAsDirtyAndDecompose());\n }\n /**\n * Create a new bone\n * @param name defines the bone name\n * @param skeleton defines the parent skeleton\n * @param parentBone defines the parent (can be null if the bone is the root)\n * @param localMatrix defines the local matrix (default: identity)\n * @param restMatrix defines the rest matrix (default: localMatrix)\n * @param bindMatrix defines the bind matrix (default: localMatrix)\n * @param index defines index of the bone in the hierarchy (default: null)\n */\n constructor(e, t, i = null, s = null, r = null, n = null, o = null) {\n super(e, t.getScene(), !1), this.name = e, this.children = [], this.animations = [], this._index = null, this._scalingDeterminant = 1, this._needToDecompose = !0, this._needToCompose = !1, this._linkedTransformNode = null, this._waitingTransformNodeId = null, this._skeleton = t, this._localMatrix = (s == null ? void 0 : s.clone()) ?? O.Identity(), this._restMatrix = r ?? this._localMatrix.clone(), this._bindMatrix = n ?? this._localMatrix.clone(), this._index = o, this._absoluteMatrix = new O(), this._absoluteBindMatrix = new O(), this._absoluteInverseBindMatrix = new O(), this._finalMatrix = new O(), t.bones.push(this), this.setParent(i, !1), this._updateAbsoluteBindMatrices();\n }\n /**\n * Gets the current object class name.\n * @returns the class name\n */\n getClassName() {\n return \"Bone\";\n }\n // Members\n /**\n * Gets the parent skeleton\n * @returns a skeleton\n */\n getSkeleton() {\n return this._skeleton;\n }\n get parent() {\n return this._parentNode;\n }\n /**\n * Gets parent bone\n * @returns a bone or null if the bone is the root of the bone hierarchy\n */\n getParent() {\n return this.parent;\n }\n /**\n * Returns an array containing the children of the bone\n * @returns an array containing the children of the bone (can be empty if the bone has no children)\n */\n getChildren() {\n return this.children;\n }\n /**\n * Gets the node index in matrix array generated for rendering\n * @returns the node index\n */\n getIndex() {\n return this._index === null ? this.getSkeleton().bones.indexOf(this) : this._index;\n }\n set parent(e) {\n this.setParent(e);\n }\n /**\n * Sets the parent bone\n * @param parent defines the parent (can be null if the bone is the root)\n * @param updateAbsoluteBindMatrices defines if the absolute bind and absolute inverse bind matrices must be updated\n */\n setParent(e, t = !0) {\n if (this.parent !== e) {\n if (this.parent) {\n const i = this.parent.children.indexOf(this);\n i !== -1 && this.parent.children.splice(i, 1);\n }\n this._parentNode = e, this.parent && this.parent.children.push(this), t && this._updateAbsoluteBindMatrices(), this.markAsDirty();\n }\n }\n /**\n * Gets the local matrix\n * @returns the local matrix\n */\n getLocalMatrix() {\n return this._compose(), this._localMatrix;\n }\n /**\n * Gets the bind matrix\n * @returns the bind matrix\n */\n getBindMatrix() {\n return this._bindMatrix;\n }\n /**\n * Gets the bind matrix.\n * @returns the bind matrix\n * @deprecated Please use getBindMatrix instead\n */\n getBaseMatrix() {\n return this.getBindMatrix();\n }\n /**\n * Gets the rest matrix\n * @returns the rest matrix\n */\n getRestMatrix() {\n return this._restMatrix;\n }\n /**\n * Gets the rest matrix\n * @returns the rest matrix\n * @deprecated Please use getRestMatrix instead\n */\n getRestPose() {\n return this.getRestMatrix();\n }\n /**\n * Sets the rest matrix\n * @param matrix the local-space rest matrix to set for this bone\n */\n setRestMatrix(e) {\n this._restMatrix.copyFrom(e);\n }\n /**\n * Sets the rest matrix\n * @param matrix the local-space rest to set for this bone\n * @deprecated Please use setRestMatrix instead\n */\n setRestPose(e) {\n this.setRestMatrix(e);\n }\n /**\n * Gets the bind matrix\n * @returns the bind matrix\n * @deprecated Please use getBindMatrix instead\n */\n getBindPose() {\n return this.getBindMatrix();\n }\n /**\n * Sets the bind matrix\n * This will trigger a recomputation of the absolute bind and absolute inverse bind matrices for this bone and its children\n * Note that the local matrix will also be set with the matrix passed in parameter!\n * @param matrix the local-space bind matrix to set for this bone\n */\n setBindMatrix(e) {\n this.updateMatrix(e);\n }\n /**\n * Sets the bind matrix\n * @param matrix the local-space bind to set for this bone\n * @deprecated Please use setBindMatrix instead\n */\n setBindPose(e) {\n this.setBindMatrix(e);\n }\n /**\n * Gets the matrix used to store the final world transformation of the bone (ie. the matrix sent to shaders)\n * @returns the final world matrix\n */\n getFinalMatrix() {\n return this._finalMatrix;\n }\n /**\n * Gets the matrix used to store the final world transformation of the bone (ie. the matrix sent to shaders)\n * @deprecated Please use getFinalMatrix instead\n * @returns the final world matrix\n */\n getWorldMatrix() {\n return this.getFinalMatrix();\n }\n /**\n * Sets the local matrix to the rest matrix\n */\n returnToRest() {\n if (this._linkedTransformNode) {\n const e = w.Vector3[0], t = w.Quaternion[0], i = w.Vector3[1];\n this.getRestMatrix().decompose(e, t, i), this._linkedTransformNode.position.copyFrom(i), this._linkedTransformNode.rotationQuaternion = this._linkedTransformNode.rotationQuaternion ?? se.Identity(), this._linkedTransformNode.rotationQuaternion.copyFrom(t), this._linkedTransformNode.scaling.copyFrom(e);\n } else\n this._matrix = this._restMatrix;\n }\n /**\n * Gets the inverse of the bind matrix, in world space (relative to the skeleton root)\n * @returns the inverse bind matrix, in world space\n */\n getAbsoluteInverseBindMatrix() {\n return this._absoluteInverseBindMatrix;\n }\n /**\n * Gets the inverse of the bind matrix, in world space (relative to the skeleton root)\n * @returns the inverse bind matrix, in world space\n * @deprecated Please use getAbsoluteInverseBindMatrix instead\n */\n getInvertedAbsoluteTransform() {\n return this.getAbsoluteInverseBindMatrix();\n }\n /**\n * Gets the bone matrix, in world space (relative to the skeleton root)\n * @returns the bone matrix, in world space\n */\n getAbsoluteMatrix() {\n return this._absoluteMatrix;\n }\n /**\n * Gets the bone matrix, in world space (relative to the skeleton root)\n * @returns the bone matrix, in world space\n * @deprecated Please use getAbsoluteMatrix instead\n */\n getAbsoluteTransform() {\n return this._absoluteMatrix;\n }\n /**\n * Links with the given transform node.\n * The local matrix of this bone is overwritten by the transform of the node every frame.\n * @param transformNode defines the transform node to link to\n */\n linkTransformNode(e) {\n this._linkedTransformNode && this._skeleton._numBonesWithLinkedTransformNode--, this._linkedTransformNode = e, this._linkedTransformNode && this._skeleton._numBonesWithLinkedTransformNode++;\n }\n // Properties (matches TransformNode properties)\n /**\n * Gets the node used to drive the bone's transformation\n * @returns a transform node or null\n */\n getTransformNode() {\n return this._linkedTransformNode;\n }\n /** Gets or sets current position (in local space) */\n get position() {\n return this._decompose(), this._localPosition;\n }\n set position(e) {\n this._decompose(), this._localPosition.copyFrom(e), this._markAsDirtyAndCompose();\n }\n /** Gets or sets current rotation (in local space) */\n get rotation() {\n return this.getRotation();\n }\n set rotation(e) {\n this.setRotation(e);\n }\n /** Gets or sets current rotation quaternion (in local space) */\n get rotationQuaternion() {\n return this._decompose(), this._localRotation;\n }\n set rotationQuaternion(e) {\n this.setRotationQuaternion(e);\n }\n /** Gets or sets current scaling (in local space) */\n get scaling() {\n return this.getScale();\n }\n set scaling(e) {\n this.setScale(e);\n }\n /**\n * Gets the animation properties override\n */\n get animationPropertiesOverride() {\n return this._skeleton.animationPropertiesOverride;\n }\n // Methods\n _decompose() {\n this._needToDecompose && (this._needToDecompose = !1, this._localScaling || (this._localScaling = g.Zero(), this._localRotation = se.Zero(), this._localPosition = g.Zero()), this._localMatrix.decompose(this._localScaling, this._localRotation, this._localPosition));\n }\n _compose() {\n if (this._needToCompose) {\n if (!this._localScaling) {\n this._needToCompose = !1;\n return;\n }\n this._needToCompose = !1, O.ComposeToRef(this._localScaling, this._localRotation, this._localPosition, this._localMatrix);\n }\n }\n /**\n * Update the bind (and optionally the local) matrix\n * @param bindMatrix defines the new matrix to set to the bind/local matrix, in local space\n * @param updateAbsoluteBindMatrices defines if the absolute bind and absolute inverse bind matrices must be recomputed (default: true)\n * @param updateLocalMatrix defines if the local matrix should also be updated with the matrix passed in parameter (default: true)\n */\n updateMatrix(e, t = !0, i = !0) {\n this._bindMatrix.copyFrom(e), t && this._updateAbsoluteBindMatrices(), i ? this._matrix = e : this.markAsDirty();\n }\n /**\n * @internal\n */\n _updateAbsoluteBindMatrices(e, t = !0) {\n if (e || (e = this._bindMatrix), this.parent ? e.multiplyToRef(this.parent._absoluteBindMatrix, this._absoluteBindMatrix) : this._absoluteBindMatrix.copyFrom(e), this._absoluteBindMatrix.invertToRef(this._absoluteInverseBindMatrix), t)\n for (let i = 0; i < this.children.length; i++)\n this.children[i]._updateAbsoluteBindMatrices();\n this._scalingDeterminant = this._absoluteBindMatrix.determinant() < 0 ? -1 : 1;\n }\n /**\n * Flag the bone as dirty (Forcing it to update everything)\n * @returns this bone\n */\n markAsDirty() {\n return this._currentRenderId++, this._childUpdateId++, this._skeleton._markAsDirty(), this;\n }\n /** @internal */\n _markAsDirtyAndCompose() {\n this.markAsDirty(), this._needToCompose = !0;\n }\n _markAsDirtyAndDecompose() {\n this.markAsDirty(), this._needToDecompose = !0;\n }\n _updatePosition(e, t = 0, i, s = !0) {\n const r = this.getLocalMatrix();\n if (t == 0)\n s ? (r.addAtIndex(12, e.x), r.addAtIndex(13, e.y), r.addAtIndex(14, e.z)) : r.setTranslationFromFloats(e.x, e.y, e.z);\n else {\n let n = null;\n i && (n = i.getWorldMatrix()), this._skeleton.computeAbsoluteMatrices();\n const o = Si._TmpMats[0], l = Si._TmpVecs[0];\n this.parent ? i && n ? (o.copyFrom(this.parent.getAbsoluteMatrix()), o.multiplyToRef(n, o)) : o.copyFrom(this.parent.getAbsoluteMatrix()) : O.IdentityToRef(o), s && o.setTranslationFromFloats(0, 0, 0), o.invert(), g.TransformCoordinatesToRef(e, o, l), s ? (r.addAtIndex(12, l.x), r.addAtIndex(13, l.y), r.addAtIndex(14, l.z)) : r.setTranslationFromFloats(l.x, l.y, l.z);\n }\n this._markAsDirtyAndDecompose();\n }\n /**\n * Translate the bone in local or world space\n * @param vec The amount to translate the bone\n * @param space The space that the translation is in (default: Space.LOCAL)\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n */\n translate(e, t = 0, i) {\n this._updatePosition(e, t, i, !0);\n }\n /**\n * Set the position of the bone in local or world space\n * @param position The position to set the bone\n * @param space The space that the position is in (default: Space.LOCAL)\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n */\n setPosition(e, t = 0, i) {\n this._updatePosition(e, t, i, !1);\n }\n /**\n * Set the absolute position of the bone (world space)\n * @param position The position to set the bone\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n */\n setAbsolutePosition(e, t) {\n this.setPosition(e, 1, t);\n }\n /**\n * Scale the bone on the x, y and z axes (in local space)\n * @param x The amount to scale the bone on the x axis\n * @param y The amount to scale the bone on the y axis\n * @param z The amount to scale the bone on the z axis\n * @param scaleChildren sets this to true if children of the bone should be scaled as well (false by default)\n */\n scale(e, t, i, s = !1) {\n const r = this.getLocalMatrix(), n = Si._TmpMats[0];\n O.ScalingToRef(e, t, i, n), n.multiplyToRef(r, r), n.invert();\n for (const o of this.children) {\n const l = o.getLocalMatrix();\n l.multiplyToRef(n, l), l.multiplyAtIndex(12, e), l.multiplyAtIndex(13, t), l.multiplyAtIndex(14, i), o._markAsDirtyAndDecompose();\n }\n if (this._markAsDirtyAndDecompose(), s)\n for (const o of this.children)\n o.scale(e, t, i, s);\n }\n /**\n * Set the bone scaling in local space\n * @param scale defines the scaling vector\n */\n setScale(e) {\n this._decompose(), this._localScaling.copyFrom(e), this._markAsDirtyAndCompose();\n }\n /**\n * Gets the current scaling in local space\n * @returns the current scaling vector\n */\n getScale() {\n return this._decompose(), this._localScaling;\n }\n /**\n * Gets the current scaling in local space and stores it in a target vector\n * @param result defines the target vector\n */\n getScaleToRef(e) {\n this._decompose(), e.copyFrom(this._localScaling);\n }\n /**\n * Set the yaw, pitch, and roll of the bone in local or world space\n * @param yaw The rotation of the bone on the y axis\n * @param pitch The rotation of the bone on the x axis\n * @param roll The rotation of the bone on the z axis\n * @param space The space that the axes of rotation are in\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n */\n setYawPitchRoll(e, t, i, s = 0, r) {\n if (s === 0) {\n const l = Si._TmpQuat;\n se.RotationYawPitchRollToRef(e, t, i, l), this.setRotationQuaternion(l, s, r);\n return;\n }\n const n = Si._TmpMats[0];\n if (!this._getAbsoluteInverseMatrixUnscaledToRef(n, r))\n return;\n const o = Si._TmpMats[1];\n O.RotationYawPitchRollToRef(e, t, i, o), n.multiplyToRef(o, o), this._rotateWithMatrix(o, s, r);\n }\n /**\n * Add a rotation to the bone on an axis in local or world space\n * @param axis The axis to rotate the bone on\n * @param amount The amount to rotate the bone\n * @param space The space that the axis is in\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n */\n rotate(e, t, i = 0, s) {\n const r = Si._TmpMats[0];\n r.setTranslationFromFloats(0, 0, 0), O.RotationAxisToRef(e, t, r), this._rotateWithMatrix(r, i, s);\n }\n /**\n * Set the rotation of the bone to a particular axis angle in local or world space\n * @param axis The axis to rotate the bone on\n * @param angle The angle that the bone should be rotated to\n * @param space The space that the axis is in\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n */\n setAxisAngle(e, t, i = 0, s) {\n if (i === 0) {\n const o = Si._TmpQuat;\n se.RotationAxisToRef(e, t, o), this.setRotationQuaternion(o, i, s);\n return;\n }\n const r = Si._TmpMats[0];\n if (!this._getAbsoluteInverseMatrixUnscaledToRef(r, s))\n return;\n const n = Si._TmpMats[1];\n O.RotationAxisToRef(e, t, n), r.multiplyToRef(n, n), this._rotateWithMatrix(n, i, s);\n }\n /**\n * Set the euler rotation of the bone in local or world space\n * @param rotation The euler rotation that the bone should be set to\n * @param space The space that the rotation is in\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n */\n setRotation(e, t = 0, i) {\n this.setYawPitchRoll(e.y, e.x, e.z, t, i);\n }\n /**\n * Set the quaternion rotation of the bone in local or world space\n * @param quat The quaternion rotation that the bone should be set to\n * @param space The space that the rotation is in\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n */\n setRotationQuaternion(e, t = 0, i) {\n if (t === 0) {\n this._decompose(), this._localRotation.copyFrom(e), this._markAsDirtyAndCompose();\n return;\n }\n const s = Si._TmpMats[0];\n if (!this._getAbsoluteInverseMatrixUnscaledToRef(s, i))\n return;\n const r = Si._TmpMats[1];\n O.FromQuaternionToRef(e, r), s.multiplyToRef(r, r), this._rotateWithMatrix(r, t, i);\n }\n /**\n * Set the rotation matrix of the bone in local or world space\n * @param rotMat The rotation matrix that the bone should be set to\n * @param space The space that the rotation is in\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n */\n setRotationMatrix(e, t = 0, i) {\n if (t === 0) {\n const n = Si._TmpQuat;\n se.FromRotationMatrixToRef(e, n), this.setRotationQuaternion(n, t, i);\n return;\n }\n const s = Si._TmpMats[0];\n if (!this._getAbsoluteInverseMatrixUnscaledToRef(s, i))\n return;\n const r = Si._TmpMats[1];\n r.copyFrom(e), s.multiplyToRef(e, r), this._rotateWithMatrix(r, t, i);\n }\n _rotateWithMatrix(e, t = 0, i) {\n const s = this.getLocalMatrix(), r = s.m[12], n = s.m[13], o = s.m[14], l = this.getParent(), h = Si._TmpMats[3], c = Si._TmpMats[4];\n l && t == 1 ? (i ? (h.copyFrom(i.getWorldMatrix()), l.getAbsoluteMatrix().multiplyToRef(h, h)) : h.copyFrom(l.getAbsoluteMatrix()), c.copyFrom(h), c.invert(), s.multiplyToRef(h, s), s.multiplyToRef(e, s), s.multiplyToRef(c, s)) : t == 1 && i ? (h.copyFrom(i.getWorldMatrix()), c.copyFrom(h), c.invert(), s.multiplyToRef(h, s), s.multiplyToRef(e, s), s.multiplyToRef(c, s)) : s.multiplyToRef(e, s), s.setTranslationFromFloats(r, n, o), this.computeAbsoluteMatrices(), this._markAsDirtyAndDecompose();\n }\n _getAbsoluteInverseMatrixUnscaledToRef(e, t) {\n const i = Si._TmpMats[2];\n return e.copyFrom(this.getAbsoluteMatrix()), t ? (e.multiplyToRef(t.getWorldMatrix(), e), O.ScalingToRef(t.scaling.x, t.scaling.y, t.scaling.z, i)) : O.IdentityToRef(i), e.invert(), isNaN(e.m[0]) ? !1 : (i.multiplyAtIndex(0, this._scalingDeterminant), e.multiplyToRef(i, e), !0);\n }\n /**\n * Get the position of the bone in local or world space\n * @param space The space that the returned position is in\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @returns The position of the bone\n */\n getPosition(e = 0, t = null) {\n const i = g.Zero();\n return this.getPositionToRef(e, t, i), i;\n }\n /**\n * Copy the position of the bone to a vector3 in local or world space\n * @param space The space that the returned position is in\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @param result The vector3 to copy the position to\n */\n getPositionToRef(e = 0, t, i) {\n if (e == 0) {\n const s = this.getLocalMatrix();\n i.x = s.m[12], i.y = s.m[13], i.z = s.m[14];\n } else {\n let s = null;\n t && (s = t.getWorldMatrix()), this._skeleton.computeAbsoluteMatrices();\n let r = Si._TmpMats[0];\n t && s ? (r.copyFrom(this.getAbsoluteMatrix()), r.multiplyToRef(s, r)) : r = this.getAbsoluteMatrix(), i.x = r.m[12], i.y = r.m[13], i.z = r.m[14];\n }\n }\n /**\n * Get the absolute position of the bone (world space)\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @returns The absolute position of the bone\n */\n getAbsolutePosition(e = null) {\n const t = g.Zero();\n return this.getPositionToRef(1, e, t), t;\n }\n /**\n * Copy the absolute position of the bone (world space) to the result param\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @param result The vector3 to copy the absolute position to\n */\n getAbsolutePositionToRef(e, t) {\n this.getPositionToRef(1, e, t);\n }\n /**\n * Compute the absolute matrices of this bone and its children\n */\n computeAbsoluteMatrices() {\n if (this._compose(), this.parent)\n this._localMatrix.multiplyToRef(this.parent._absoluteMatrix, this._absoluteMatrix);\n else {\n this._absoluteMatrix.copyFrom(this._localMatrix);\n const i = this._skeleton.getPoseMatrix();\n i && this._absoluteMatrix.multiplyToRef(i, this._absoluteMatrix);\n }\n const e = this.children, t = e.length;\n for (let i = 0; i < t; i++)\n e[i].computeAbsoluteMatrices();\n }\n /**\n * Compute the absolute matrices of this bone and its children\n * @deprecated Please use computeAbsoluteMatrices instead\n */\n computeAbsoluteTransforms() {\n this.computeAbsoluteMatrices();\n }\n /**\n * Get the world direction from an axis that is in the local space of the bone\n * @param localAxis The local direction that is used to compute the world direction\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @returns The world direction\n */\n getDirection(e, t = null) {\n const i = g.Zero();\n return this.getDirectionToRef(e, t, i), i;\n }\n /**\n * Copy the world direction to a vector3 from an axis that is in the local space of the bone\n * @param localAxis The local direction that is used to compute the world direction\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @param result The vector3 that the world direction will be copied to\n */\n getDirectionToRef(e, t = null, i) {\n let s = null;\n t && (s = t.getWorldMatrix()), this._skeleton.computeAbsoluteMatrices();\n const r = Si._TmpMats[0];\n r.copyFrom(this.getAbsoluteMatrix()), t && s && r.multiplyToRef(s, r), g.TransformNormalToRef(e, r, i), i.normalize();\n }\n /**\n * Get the euler rotation of the bone in local or world space\n * @param space The space that the rotation should be in\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @returns The euler rotation\n */\n getRotation(e = 0, t = null) {\n const i = g.Zero();\n return this.getRotationToRef(e, t, i), i;\n }\n /**\n * Copy the euler rotation of the bone to a vector3. The rotation can be in either local or world space\n * @param space The space that the rotation should be in\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @param result The vector3 that the rotation should be copied to\n */\n getRotationToRef(e = 0, t = null, i) {\n const s = Si._TmpQuat;\n this.getRotationQuaternionToRef(e, t, s), s.toEulerAnglesToRef(i);\n }\n /**\n * Get the quaternion rotation of the bone in either local or world space\n * @param space The space that the rotation should be in\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @returns The quaternion rotation\n */\n getRotationQuaternion(e = 0, t = null) {\n const i = se.Identity();\n return this.getRotationQuaternionToRef(e, t, i), i;\n }\n /**\n * Copy the quaternion rotation of the bone to a quaternion. The rotation can be in either local or world space\n * @param space The space that the rotation should be in\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @param result The quaternion that the rotation should be copied to\n */\n getRotationQuaternionToRef(e = 0, t = null, i) {\n if (e == 0)\n this._decompose(), i.copyFrom(this._localRotation);\n else {\n const s = Si._TmpMats[0], r = this.getAbsoluteMatrix();\n t ? r.multiplyToRef(t.getWorldMatrix(), s) : s.copyFrom(r), s.multiplyAtIndex(0, this._scalingDeterminant), s.multiplyAtIndex(1, this._scalingDeterminant), s.multiplyAtIndex(2, this._scalingDeterminant), s.decompose(void 0, i, void 0);\n }\n }\n /**\n * Get the rotation matrix of the bone in local or world space\n * @param space The space that the rotation should be in\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @returns The rotation matrix\n */\n getRotationMatrix(e = 0, t) {\n const i = O.Identity();\n return this.getRotationMatrixToRef(e, t, i), i;\n }\n /**\n * Copy the rotation matrix of the bone to a matrix. The rotation can be in either local or world space\n * @param space The space that the rotation should be in\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @param result The quaternion that the rotation should be copied to\n */\n getRotationMatrixToRef(e = 0, t, i) {\n if (e == 0)\n this.getLocalMatrix().getRotationMatrixToRef(i);\n else {\n const s = Si._TmpMats[0], r = this.getAbsoluteMatrix();\n t ? r.multiplyToRef(t.getWorldMatrix(), s) : s.copyFrom(r), s.multiplyAtIndex(0, this._scalingDeterminant), s.multiplyAtIndex(1, this._scalingDeterminant), s.multiplyAtIndex(2, this._scalingDeterminant), s.getRotationMatrixToRef(i);\n }\n }\n /**\n * Get the world position of a point that is in the local space of the bone\n * @param position The local position\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @returns The world position\n */\n getAbsolutePositionFromLocal(e, t = null) {\n const i = g.Zero();\n return this.getAbsolutePositionFromLocalToRef(e, t, i), i;\n }\n /**\n * Get the world position of a point that is in the local space of the bone and copy it to the result param\n * @param position The local position\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @param result The vector3 that the world position should be copied to\n */\n getAbsolutePositionFromLocalToRef(e, t = null, i) {\n let s = null;\n t && (s = t.getWorldMatrix()), this._skeleton.computeAbsoluteMatrices();\n const r = Si._TmpMats[0];\n r.copyFrom(this.getAbsoluteMatrix()), t && s && r.multiplyToRef(s, r), g.TransformCoordinatesToRef(e, r, i);\n }\n /**\n * Get the local position of a point that is in world space\n * @param position The world position\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @returns The local position\n */\n getLocalPositionFromAbsolute(e, t = null) {\n const i = g.Zero();\n return this.getLocalPositionFromAbsoluteToRef(e, t, i), i;\n }\n /**\n * Get the local position of a point that is in world space and copy it to the result param\n * @param position The world position\n * @param tNode A TransformNode whose world matrix is to be applied to the calculated absolute matrix. In most cases, you'll want to pass the mesh associated with the skeleton from which this bone comes. Used only when space=Space.WORLD\n * @param result The vector3 that the local position should be copied to\n */\n getLocalPositionFromAbsoluteToRef(e, t = null, i) {\n let s = null;\n t && (s = t.getWorldMatrix()), this._skeleton.computeAbsoluteMatrices();\n const r = Si._TmpMats[0];\n r.copyFrom(this.getAbsoluteMatrix()), t && s && r.multiplyToRef(s, r), r.invert(), g.TransformCoordinatesToRef(e, r, i);\n }\n /**\n * Set the current local matrix as the restMatrix for this bone.\n */\n setCurrentPoseAsRest() {\n this.setRestMatrix(this.getLocalMatrix());\n }\n}\nSi._TmpVecs = _s.BuildArray(2, g.Zero);\nSi._TmpQuat = se.Identity();\nSi._TmpMats = _s.BuildArray(5, O.Identity);\nclass N0 {\n /**\n * Gets the root Animatable used to synchronize and normalize animations\n */\n get syncRoot() {\n return this._syncRoot;\n }\n /**\n * Gets the current frame of the first RuntimeAnimation\n * Used to synchronize Animatables\n */\n get masterFrame() {\n return this._runtimeAnimations.length === 0 ? 0 : this._runtimeAnimations[0].currentFrame;\n }\n /**\n * Gets or sets the animatable weight (-1.0 by default meaning not weighted)\n */\n get weight() {\n return this._weight;\n }\n set weight(e) {\n if (e === -1) {\n this._weight = -1;\n return;\n }\n this._weight = Math.min(Math.max(e, 0), 1);\n }\n /**\n * Gets or sets the speed ratio to apply to the animatable (1.0 by default)\n */\n get speedRatio() {\n return this._speedRatio;\n }\n set speedRatio(e) {\n for (let t = 0; t < this._runtimeAnimations.length; t++)\n this._runtimeAnimations[t]._prepareForSpeedRatioChange(e);\n this._speedRatio = e, this._goToFrame !== null && this.goToFrame(this._goToFrame);\n }\n /**\n * Gets the elapsed time since the animatable started in milliseconds\n */\n get elapsedTime() {\n return this._localDelayOffset === null ? 0 : this._scene._animationTime - this._localDelayOffset;\n }\n /**\n * Creates a new Animatable\n * @param scene defines the hosting scene\n * @param target defines the target object\n * @param fromFrame defines the starting frame number (default is 0)\n * @param toFrame defines the ending frame number (default is 100)\n * @param loopAnimation defines if the animation must loop (default is false)\n * @param speedRatio defines the factor to apply to animation speed (default is 1)\n * @param onAnimationEnd defines a callback to call when animation ends if it is not looping\n * @param animations defines a group of animation to add to the new Animatable\n * @param onAnimationLoop defines a callback to call when animation loops\n * @param isAdditive defines whether the animation should be evaluated additively\n * @param playOrder defines the order in which this animatable should be processed in the list of active animatables (default: 0)\n */\n constructor(e, t, i = 0, s = 100, r = !1, n = 1, o, l, h, c = !1, u = 0) {\n this.target = t, this.fromFrame = i, this.toFrame = s, this.loopAnimation = r, this.onAnimationEnd = o, this.onAnimationLoop = h, this.isAdditive = c, this.playOrder = u, this._localDelayOffset = null, this._pausedDelay = null, this._manualJumpDelay = null, this._runtimeAnimations = new Array(), this._paused = !1, this._speedRatio = 1, this._weight = -1, this._syncRoot = null, this._frameToSyncFromJump = null, this._goToFrame = null, this.disposeOnEnd = !0, this.animationStarted = !1, this.onAnimationEndObservable = new G(), this.onAnimationLoopObservable = new G(), this._scene = e, l && this.appendAnimations(t, l), this._speedRatio = n, e._activeAnimatables.push(this);\n }\n // Methods\n /**\n * Synchronize and normalize current Animatable with a source Animatable\n * This is useful when using animation weights and when animations are not of the same length\n * @param root defines the root Animatable to synchronize with (null to stop synchronizing)\n * @returns the current Animatable\n */\n syncWith(e) {\n if (this._syncRoot = e, e) {\n const t = this._scene._activeAnimatables.indexOf(this);\n t > -1 && (this._scene._activeAnimatables.splice(t, 1), this._scene._activeAnimatables.push(this));\n }\n return this;\n }\n /**\n * Gets the list of runtime animations\n * @returns an array of RuntimeAnimation\n */\n getAnimations() {\n return this._runtimeAnimations;\n }\n /**\n * Adds more animations to the current animatable\n * @param target defines the target of the animations\n * @param animations defines the new animations to add\n */\n appendAnimations(e, t) {\n for (let i = 0; i < t.length; i++) {\n const s = t[i], r = new k1(e, s, this._scene, this);\n r._onLoop = () => {\n this.onAnimationLoopObservable.notifyObservers(this), this.onAnimationLoop && this.onAnimationLoop();\n }, this._runtimeAnimations.push(r);\n }\n }\n /**\n * Gets the source animation for a specific property\n * @param property defines the property to look for\n * @returns null or the source animation for the given property\n */\n getAnimationByTargetProperty(e) {\n const t = this._runtimeAnimations;\n for (let i = 0; i < t.length; i++)\n if (t[i].animation.targetProperty === e)\n return t[i].animation;\n return null;\n }\n /**\n * Gets the runtime animation for a specific property\n * @param property defines the property to look for\n * @returns null or the runtime animation for the given property\n */\n getRuntimeAnimationByTargetProperty(e) {\n const t = this._runtimeAnimations;\n for (let i = 0; i < t.length; i++)\n if (t[i].animation.targetProperty === e)\n return t[i];\n return null;\n }\n /**\n * Resets the animatable to its original state\n */\n reset() {\n const e = this._runtimeAnimations;\n for (let t = 0; t < e.length; t++)\n e[t].reset(!0);\n this._localDelayOffset = null, this._pausedDelay = null;\n }\n /**\n * Allows the animatable to blend with current running animations\n * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#animation-blending\n * @param blendingSpeed defines the blending speed to use\n */\n enableBlending(e) {\n const t = this._runtimeAnimations;\n for (let i = 0; i < t.length; i++)\n t[i].animation.enableBlending = !0, t[i].animation.blendingSpeed = e;\n }\n /**\n * Disable animation blending\n * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#animation-blending\n */\n disableBlending() {\n const e = this._runtimeAnimations;\n for (let t = 0; t < e.length; t++)\n e[t].animation.enableBlending = !1;\n }\n /**\n * Jump directly to a given frame\n * @param frame defines the frame to jump to\n */\n goToFrame(e) {\n const t = this._runtimeAnimations;\n if (t[0]) {\n const i = t[0].animation.framePerSecond;\n this._frameToSyncFromJump = this._frameToSyncFromJump ?? t[0].currentFrame;\n const s = this.speedRatio === 0 ? 0 : (e - this._frameToSyncFromJump) / i * 1e3 / this.speedRatio;\n this._manualJumpDelay = -s;\n }\n for (let i = 0; i < t.length; i++)\n t[i].goToFrame(e, this._weight);\n this._goToFrame = e;\n }\n /**\n * Returns true if the animations for this animatable are paused\n */\n get paused() {\n return this._paused;\n }\n /**\n * Pause the animation\n */\n pause() {\n this._paused || (this._paused = !0);\n }\n /**\n * Restart the animation\n */\n restart() {\n this._paused = !1;\n }\n _raiseOnAnimationEnd() {\n this.onAnimationEnd && this.onAnimationEnd(), this.onAnimationEndObservable.notifyObservers(this);\n }\n /**\n * Stop and delete the current animation\n * @param animationName defines a string used to only stop some of the runtime animations instead of all\n * @param targetMask a function that determines if the animation should be stopped based on its target (all animations will be stopped if both this and animationName are empty)\n * @param useGlobalSplice if true, the animatables will be removed by the caller of this function (false by default)\n */\n stop(e, t, i = !1) {\n if (e || t) {\n const s = this._scene._activeAnimatables.indexOf(this);\n if (s > -1) {\n const r = this._runtimeAnimations;\n for (let n = r.length - 1; n >= 0; n--) {\n const o = r[n];\n e && o.animation.name != e || t && !t(o.target) || (o.dispose(), r.splice(n, 1));\n }\n r.length == 0 && (i || this._scene._activeAnimatables.splice(s, 1), this._raiseOnAnimationEnd());\n }\n } else {\n const s = this._scene._activeAnimatables.indexOf(this);\n if (s > -1) {\n i || this._scene._activeAnimatables.splice(s, 1);\n const r = this._runtimeAnimations;\n for (let n = 0; n < r.length; n++)\n r[n].dispose();\n this._runtimeAnimations.length = 0, this._raiseOnAnimationEnd();\n }\n }\n }\n /**\n * Wait asynchronously for the animation to end\n * @returns a promise which will be fulfilled when the animation ends\n */\n waitAsync() {\n return new Promise((e) => {\n this.onAnimationEndObservable.add(() => {\n e(this);\n }, void 0, void 0, this, !0);\n });\n }\n /**\n * @internal\n */\n _animate(e) {\n if (this._paused)\n return this.animationStarted = !1, this._pausedDelay === null && (this._pausedDelay = e), !0;\n if (this._localDelayOffset === null ? (this._localDelayOffset = e, this._pausedDelay = null) : this._pausedDelay !== null && (this._localDelayOffset += e - this._pausedDelay, this._pausedDelay = null), this._manualJumpDelay !== null && (this._localDelayOffset += this._manualJumpDelay, this._manualJumpDelay = null, this._frameToSyncFromJump = null), this._goToFrame = null, this._weight === 0)\n return !0;\n let t = !1;\n const i = this._runtimeAnimations;\n let s;\n for (s = 0; s < i.length; s++) {\n const n = i[s].animate(e - this._localDelayOffset, this.fromFrame, this.toFrame, this.loopAnimation, this._speedRatio, this._weight);\n t = t || n;\n }\n if (this.animationStarted = t, !t) {\n if (this.disposeOnEnd)\n for (s = this._scene._activeAnimatables.indexOf(this), this._scene._activeAnimatables.splice(s, 1), s = 0; s < i.length; s++)\n i[s].dispose();\n this._raiseOnAnimationEnd(), this.disposeOnEnd && (this.onAnimationEnd = null, this.onAnimationLoop = null, this.onAnimationLoopObservable.clear(), this.onAnimationEndObservable.clear());\n }\n return t;\n }\n}\nDe.prototype._animate = function(a) {\n if (!this.animationsEnabled)\n return;\n const e = Es.Now;\n if (!this._animationTimeLast) {\n if (this._pendingData.length > 0)\n return;\n this._animationTimeLast = e;\n }\n this.deltaTime = a !== void 0 ? a : this.useConstantAnimationDeltaTime ? 16 : (e - this._animationTimeLast) * this.animationTimeScale, this._animationTimeLast = e;\n const t = this._activeAnimatables;\n if (t.length === 0)\n return;\n this._animationTime += this.deltaTime;\n const i = this._animationTime;\n for (let s = 0; s < t.length; s++) {\n const r = t[s];\n !r._animate(i) && r.disposeOnEnd && s--;\n }\n this._processLateAnimationBindings();\n};\nDe.prototype.sortActiveAnimatables = function() {\n this._activeAnimatables.sort((a, e) => a.playOrder - e.playOrder);\n};\nDe.prototype.beginWeightedAnimation = function(a, e, t, i = 1, s, r = 1, n, o, l, h, c = !1) {\n const u = this.beginAnimation(a, e, t, s, r, n, o, !1, l, h, c);\n return u.weight = i, u;\n};\nDe.prototype.beginAnimation = function(a, e, t, i, s = 1, r, n, o = !0, l, h, c = !1) {\n e > t && s > 0 && (s *= -1), o && this.stopAnimation(a, void 0, l), n || (n = new N0(this, a, e, t, i, s, r, void 0, h, c));\n const u = l ? l(a) : !0;\n if (a.animations && u && n.appendAnimations(a, a.animations), a.getAnimatables) {\n const d = a.getAnimatables();\n for (let f = 0; f < d.length; f++)\n this.beginAnimation(d[f], e, t, i, s, r, n, o, l, h);\n }\n return n.reset(), n;\n};\nDe.prototype.beginHierarchyAnimation = function(a, e, t, i, s, r = 1, n, o, l = !0, h, c, u = !1) {\n const d = a.getDescendants(e), f = [];\n f.push(this.beginAnimation(a, t, i, s, r, n, o, l, h, void 0, u));\n for (const p of d)\n f.push(this.beginAnimation(p, t, i, s, r, n, o, l, h, void 0, u));\n return f;\n};\nDe.prototype.beginDirectAnimation = function(a, e, t, i, s, r, n, o, l = !1) {\n if (r === void 0 && (r = 1), t > i && r > 0)\n r *= -1;\n else if (i > t && r < 0) {\n const c = i;\n i = t, t = c;\n }\n return new N0(this, a, t, i, s, r, n, e, o, l);\n};\nDe.prototype.beginDirectHierarchyAnimation = function(a, e, t, i, s, r, n, o, l, h = !1) {\n const c = a.getDescendants(e), u = [];\n u.push(this.beginDirectAnimation(a, t, i, s, r, n, o, l, h));\n for (const d of c)\n u.push(this.beginDirectAnimation(d, t, i, s, r, n, o, l, h));\n return u;\n};\nDe.prototype.getAnimatableByTarget = function(a) {\n for (let e = 0; e < this._activeAnimatables.length; e++)\n if (this._activeAnimatables[e].target === a)\n return this._activeAnimatables[e];\n return null;\n};\nDe.prototype.getAllAnimatablesByTarget = function(a) {\n const e = [];\n for (let t = 0; t < this._activeAnimatables.length; t++)\n this._activeAnimatables[t].target === a && e.push(this._activeAnimatables[t]);\n return e;\n};\nDe.prototype.stopAnimation = function(a, e, t) {\n const i = this.getAllAnimatablesByTarget(a);\n for (const s of i)\n s.stop(e, t);\n};\nDe.prototype.stopAllAnimations = function() {\n if (this._activeAnimatables) {\n for (let a = 0; a < this._activeAnimatables.length; a++)\n this._activeAnimatables[a].stop(void 0, void 0, !0);\n this._activeAnimatables.length = 0;\n }\n for (const a of this.animationGroups)\n a.stop();\n};\nDe.prototype._registerTargetForLateAnimationBinding = function(a, e) {\n const t = a.target;\n this._registeredForLateAnimationBindings.pushNoDuplicate(t), t._lateAnimationHolders || (t._lateAnimationHolders = {}), t._lateAnimationHolders[a.targetPath] || (t._lateAnimationHolders[a.targetPath] = {\n totalWeight: 0,\n totalAdditiveWeight: 0,\n animations: [],\n additiveAnimations: [],\n originalValue: e\n }), a.isAdditive ? (t._lateAnimationHolders[a.targetPath].additiveAnimations.push(a), t._lateAnimationHolders[a.targetPath].totalAdditiveWeight += a.weight) : (t._lateAnimationHolders[a.targetPath].animations.push(a), t._lateAnimationHolders[a.targetPath].totalWeight += a.weight);\n};\nDe.prototype._processLateAnimationBindingsForMatrices = function(a) {\n if (a.totalWeight === 0 && a.totalAdditiveWeight === 0)\n return a.originalValue;\n let e = 1;\n const t = w.Vector3[0], i = w.Vector3[1], s = w.Quaternion[0];\n let r = 0;\n const n = a.animations[0], o = a.originalValue;\n let l = 1, h = !1;\n if (a.totalWeight < 1)\n l = 1 - a.totalWeight, o.decompose(i, s, t);\n else {\n if (r = 1, e = a.totalWeight, l = n.weight / e, l == 1)\n if (a.totalAdditiveWeight)\n h = !0;\n else\n return n.currentValue;\n n.currentValue.decompose(i, s, t);\n }\n if (!h) {\n i.scaleInPlace(l), t.scaleInPlace(l), s.scaleInPlace(l);\n for (let u = r; u < a.animations.length; u++) {\n const d = a.animations[u];\n if (d.weight === 0)\n continue;\n l = d.weight / e;\n const f = w.Vector3[2], p = w.Vector3[3], _ = w.Quaternion[1];\n d.currentValue.decompose(p, _, f), p.scaleAndAddToRef(l, i), _.scaleAndAddToRef(se.Dot(s, _) > 0 ? l : -l, s), f.scaleAndAddToRef(l, t);\n }\n s.normalize();\n }\n for (let u = 0; u < a.additiveAnimations.length; u++) {\n const d = a.additiveAnimations[u];\n if (d.weight === 0)\n continue;\n const f = w.Vector3[2], p = w.Vector3[3], _ = w.Quaternion[1];\n d.currentValue.decompose(p, _, f), p.multiplyToRef(i, p), g.LerpToRef(i, p, d.weight, i), s.multiplyToRef(_, _), se.SlerpToRef(s, _, d.weight, s), f.scaleAndAddToRef(d.weight, t);\n }\n const c = n ? n._animationState.workValue : w.Matrix[0].clone();\n return O.ComposeToRef(i, s, t, c), c;\n};\nDe.prototype._processLateAnimationBindingsForQuaternions = function(a, e) {\n if (a.totalWeight === 0 && a.totalAdditiveWeight === 0)\n return e;\n const t = a.animations[0], i = a.originalValue;\n let s = e;\n if (a.totalWeight === 0 && a.totalAdditiveWeight > 0)\n s.copyFrom(i);\n else if (a.animations.length === 1) {\n if (se.SlerpToRef(i, t.currentValue, Math.min(1, a.totalWeight), s), a.totalAdditiveWeight === 0)\n return s;\n } else if (a.animations.length > 1) {\n let r = 1, n, o;\n if (a.totalWeight < 1) {\n const h = 1 - a.totalWeight;\n n = [], o = [], n.push(i), o.push(h);\n } else {\n if (a.animations.length === 2 && (se.SlerpToRef(a.animations[0].currentValue, a.animations[1].currentValue, a.animations[1].weight / a.totalWeight, e), a.totalAdditiveWeight === 0))\n return e;\n n = [], o = [], r = a.totalWeight;\n }\n for (let h = 0; h < a.animations.length; h++) {\n const c = a.animations[h];\n n.push(c.currentValue), o.push(c.weight / r);\n }\n let l = 0;\n for (let h = 0; h < n.length; ) {\n if (!h) {\n se.SlerpToRef(n[h], n[h + 1], o[h + 1] / (o[h] + o[h + 1]), e), s = e, l = o[h] + o[h + 1], h += 2;\n continue;\n }\n l += o[h], se.SlerpToRef(s, n[h], o[h] / l, s), h++;\n }\n }\n for (let r = 0; r < a.additiveAnimations.length; r++) {\n const n = a.additiveAnimations[r];\n n.weight !== 0 && (s.multiplyToRef(n.currentValue, w.Quaternion[0]), se.SlerpToRef(s, w.Quaternion[0], n.weight, s));\n }\n return s;\n};\nDe.prototype._processLateAnimationBindings = function() {\n if (this._registeredForLateAnimationBindings.length) {\n for (let a = 0; a < this._registeredForLateAnimationBindings.length; a++) {\n const e = this._registeredForLateAnimationBindings.data[a];\n for (const t in e._lateAnimationHolders) {\n const i = e._lateAnimationHolders[t], s = i.animations[0], r = i.originalValue;\n if (r == null)\n continue;\n const n = oe.AllowMatrixDecomposeForInterpolation && r.m;\n let o = e[t];\n if (n)\n o = this._processLateAnimationBindingsForMatrices(i);\n else if (r.w !== void 0)\n o = this._processLateAnimationBindingsForQuaternions(i, o || se.Identity());\n else {\n let h = 0, c = 1;\n const u = s && s._animationState.loopMode === oe.ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT;\n if (i.totalWeight < 1)\n u ? o = r.clone ? r.clone() : r : s && r.scale ? o = r.scale(1 - i.totalWeight) : s ? o = r * (1 - i.totalWeight) : r.clone ? o = r.clone() : o = r;\n else if (s) {\n c = i.totalWeight;\n const d = s.weight / c;\n d !== 1 ? s.currentValue.scale ? o = s.currentValue.scale(d) : o = s.currentValue * d : o = s.currentValue, u && (o.addToRef ? o.addToRef(r, o) : o += r), h = 1;\n }\n for (let d = h; d < i.animations.length; d++) {\n const f = i.animations[d], p = f.weight / c;\n if (p)\n f.currentValue.scaleAndAddToRef ? f.currentValue.scaleAndAddToRef(p, o) : o += f.currentValue * p;\n else continue;\n }\n for (let d = 0; d < i.additiveAnimations.length; d++) {\n const f = i.additiveAnimations[d], p = f.weight;\n if (p)\n f.currentValue.scaleAndAddToRef ? f.currentValue.scaleAndAddToRef(p, o) : o += f.currentValue * p;\n else continue;\n }\n }\n e[t] = o;\n }\n e._lateAnimationHolders = {};\n }\n this._registeredForLateAnimationBindings.reset();\n }\n};\nSi.prototype.copyAnimationRange = function(a, e, t, i = !1, s = null) {\n this.animations.length === 0 && (this.animations.push(new oe(this.name, \"_matrix\", a.animations[0].framePerSecond, oe.ANIMATIONTYPE_MATRIX, 0)), this.animations[0].setKeys([]));\n const r = a.animations[0].getRange(e);\n if (!r)\n return !1;\n const n = r.from, o = r.to, l = a.animations[0].getKeys(), h = a.length, c = a.getParent(), u = this.getParent(), d = i && c && h && this.length && h !== this.length, f = d && u && c ? u.length / c.length : 1, p = i && !u && s && (s.x !== 1 || s.y !== 1 || s.z !== 1), _ = this.animations[0].getKeys();\n let m, x, v;\n for (let T = 0, E = l.length; T < E; T++)\n m = l[T], m.frame >= n && m.frame <= o && (i ? (v = m.value.clone(), d ? (x = v.getTranslation(), v.setTranslation(x.scaleInPlace(f))) : p && s ? (x = v.getTranslation(), v.setTranslation(x.multiplyInPlace(s))) : v = m.value) : v = m.value, _.push({ frame: m.frame + t, value: v }));\n return this.animations[0].createRange(e, n + t, o + t), !0;\n};\nclass F0 extends bf {\n constructor(e, t) {\n super(e, t);\n }\n construct(e, t) {\n }\n}\nclass G1 extends F0 {\n constructor(e, t) {\n super(e, t), this.panoramaOverlayAnimationConfig = t;\n }\n construct(e, t) {\n this.rootNode.rotation.y = C1(t.rotation), this.createVideoSphere(t), t.hasButton && this.createButton(t);\n }\n createVideoSphere(e) {\n let t = on.getMedia(e.videoMediaID), i = t.getVideo(), s = new vr(this.situation.getName() + \" - PanoramaOverlayAnimation Video Texture\", i, this.scene, !1, !0, vr.NEAREST_LINEAR_MIPLINEAR, {\n autoPlay: e.autoPlay,\n muted: e.muted,\n loop: e.loop\n });\n s.onLoadObservable.add(() => {\n s.wrapU = q.TEXTURE_CLAMP_ADDRESSMODE, this.video = s.video;\n });\n let r = new ye(this.situation.getName() + \" - PanoramaOverlayAnimation Video Material\", this.scene);\n if (r.diffuseTexture = s, r.emissiveColor = re.White(), r.disableLighting = !0, r.backFaceCulling = !1, this.videoMaterial = r, e.alphaTextureMediaID) {\n let h = on.getMedia(e.alphaTextureMediaID).getBitmap();\n r.opacityTexture = _i.CreateRGBATexture(h, h.width, h.height, this.scene, !0, !0, X.NEAREST_LINEAR_MIPLINEAR), r.opacityTexture.getAlphaFromRGB = !0, r.opacityTexture.name = this.situation.getName() + \" - PanoramaOverlayAnimation Alpha Texture\";\n }\n if (t.hasAlpha()) {\n var n = new Yx().getResult();\n if (n.browser.name != \"Safari\" && (r.opacityTexture = r.diffuseTexture), e.alphaVideoMediaID && n.browser.name == \"Safari\") {\n let h = on.getMedia(e.alphaVideoMediaID).getVideo(), c = new vr(this.situation.getName() + \" - Video Alpha Video Texture\", h, this.scene, !1, !0, vr.NEAREST_LINEAR_MIPLINEAR, {\n autoPlay: e.autoPlay,\n muted: e.muted,\n loop: e.loop\n });\n c.getAlphaFromRGB = !0, r.opacityTexture = c;\n }\n }\n let o = w0(this.scene, 399, e.arcSize, e.sliceFrom, e.sliceTo);\n o.parent = this.rootNode, o.material = r;\n }\n createButton(e) {\n let i = on.getMedia(e.buttonMediaID).getBitmap(), s = _i.CreateRGBATexture(i, i.width, i.height, this.scene, !0, !0, X.NEAREST_LINEAR_MIPLINEAR);\n s.name = this.situation.getName() + \" - PanoramaOverlayAnimation Button Texture\";\n let r = new ye(this.situation.getName() + \" - PanoramaOverlayAnimation Button Material\", this.scene);\n r.emissiveColor = re.White(), r.disableLighting = !0, r.backFaceCulling = !1, r.diffuseTexture = r.opacityTexture = s;\n let n = U_.CreatePlane(\"Button Plane\", { width: 8, height: 8 }, this.scene);\n n.position = Il(e.buttonPosition), n.lookAt(new g(0, 0, 0)), n.parent = this.rootNode, n.material = r, n.scaling.y = -1, n.scaling.x = -1;\n let o = new zo();\n o.setEasingMode(Ti.EASINGMODE_EASEINOUT), n.actionManager = new dt(this.scene), n.actionManager.registerAction(new ln(dt.OnPointerOutTrigger, () => {\n oe.CreateAndStartAnimation(\"\", n, \"scaling\", 30, 10, n.scaling, new g(-1, -1, 1), 0, o), bs.triggerOnSituationComponentHoverOut(this);\n })), n.actionManager.registerAction(new ln(dt.OnPointerOverTrigger, () => {\n oe.CreateAndStartAnimation(\"\", n, \"scaling\", 30, 10, n.scaling, new g(-1.1, -1.1, 1.1), 0, o), bs.triggerOnSituationComponentHoverOver(this);\n }));\n let l = this.videoMaterial;\n n.actionManager.registerAction(new ln(dt.OnPickTrigger, () => {\n bs.triggerOnBeforePanoramaAnimationStarted(this), bs.triggerOnSituationComponentClicked(this), e.playVideoBackwards && this.addVideoBackwardsFeature(), this.panoramaOverlayAnimationConfig.alphaVideoMediaID ? this.playVideo(l) : this.playVideo();\n }));\n }\n // This plays the video half and when the user plays the video again, it will play the other half.\n addVideoBackwardsFeature() {\n if (this.video.addEventListener(\"ended\", () => {\n this.video.currentTime = 0;\n }), this.video.currentTime < 0.2) {\n let e = this.video.duration / 2, t = () => {\n this.video.currentTime >= e && (this.video.pause(), this.video.removeEventListener(\"timeupdate\", t), this.panoramaOverlayAnimationConfig.alphaVideoMediaID && this.videoMaterial.opacityTexture.video.pause());\n };\n this.video.addEventListener(\"timeupdate\", t);\n }\n }\n playVideo(e) {\n this.panoramaOverlayAnimationConfig.alphaVideoMediaID && e.opacityTexture.video.play(), this.video.play();\n }\n}\nclass z1 extends F0 {\n constructor(e, t) {\n super(e, t);\n }\n construct(e, t) {\n this.createImageSphere(t);\n }\n createImageSphere(e) {\n let i = on.getMedia(e.textureMediaID).getBitmap(), r = on.getMedia(e.alphaMediaID).getBitmap(), n = _i.CreateRGBATexture(i, i.width, i.height, this.scene, !0, !0, X.TRILINEAR_SAMPLINGMODE);\n n.name = this.situation.getName() + \" - \" + e.type + \" Texture - \" + e.textureMediaID;\n let o = _i.CreateAlphaTexture(r, r.width, r.height, this.scene, !0, !0, X.TRILINEAR_SAMPLINGMODE);\n o.name = this.situation.getName() + \" - Alpha \" + e.type + \" Texture - \" + e.alphaMediaID;\n let l = new ye(this.situation.getName() + \" - \" + e.type + \" Material\", this.scene);\n l.opacityTexture = o, l.diffuseTexture = n, l.emissiveColor = re.White(), l.disableLighting = !0, l.backFaceCulling = !1, this.imageMaterial = l;\n let h = w0(this.scene, 399, e.arcSize, e.sliceFrom, e.sliceTo);\n h.rotation.y = Math.PI * e.rotation, h.renderingGroupId = 2, h.parent = this.rootNode, h.material = this.imageMaterial;\n }\n}\nclass W1 extends bf {\n constructor(e, t) {\n super(e, t);\n }\n construct(e, t) {\n let i = this.rootNode;\n i.position = Il(t.position), t.rotation.x != null || t.rotation.y != null || t.rotation.z != null ? i.rotation = cv(t.rotation) : i.lookAt(new g(0, 0, 0)), i.scaling = Il(t.scale);\n let s = on.getMedia(t.videoMediaID);\n this.video = s.getVideo();\n let r = new vr(e.getName() + \" - Video Texture \" + t.videoMediaID, this.video, this.scene, !0, !0, vr.NEAREST_LINEAR_MIPLINEAR, {\n autoPlay: t.autoPlay,\n muted: t.muted,\n loop: t.loop\n }), n = new ye(e.getName() + \" - Video Material\", this.scene);\n if (n.diffuseTexture = r, n.emissiveColor = re.White(), n.disableLighting = !0, n.backFaceCulling = !1, t.alphaTextureMediaID) {\n let c = on.getMedia(t.alphaTextureMediaID).getBitmap();\n n.opacityTexture = _i.CreateRGBATexture(c, c.width, c.height, this.scene, !0, !0, X.NEAREST_LINEAR_MIPLINEAR), n.opacityTexture.getAlphaFromRGB = !0, n.opacityTexture.name = this.situation.getName() + \" - Video Alpha Texture\";\n }\n if (s.hasAlpha()) {\n var o = new Yx().getResult();\n if (o.browser.name != \"Safari\" && (n.opacityTexture = n.diffuseTexture), t.alphaVideoMediaID && o.browser.name == \"Safari\") {\n let c = on.getMedia(t.alphaVideoMediaID).getVideo(), u = new vr(this.situation.getName() + \" - Video Alpha Video Texture\", c, this.scene, !1, !0, vr.NEAREST_LINEAR_MIPLINEAR, {\n autoPlay: t.autoPlay,\n muted: t.muted,\n loop: t.loop\n });\n u.getAlphaFromRGB = !0, n.opacityTexture = u;\n }\n }\n let l = U_.CreatePlane(e.getName() + \" - Video Plane \" + t.videoMediaID, { width: t.width, height: t.height }, this.scene);\n l.parent = i, l.material = n, l.renderingGroupId = 1, l.scaling.y *= -1, this.plane = l, t.url && t.url.length > 0 && (l.actionManager = new dt(this.scene), l.actionManager.registerAction(new ln(dt.OnPickTrigger, () => {\n bs.triggerOnSituationComponentClicked(this);\n })), l.actionManager.registerAction(new ln(dt.OnPointerOutTrigger, () => {\n bs.triggerOnSituationComponentHoverOut(this);\n })), l.actionManager.registerAction(new ln(dt.OnPointerOverTrigger, () => {\n bs.triggerOnSituationComponentHoverOver(this);\n })));\n }\n enable() {\n this.video && this.video.play();\n }\n // Disable this component in the scene graph\n disable() {\n this.video && this.video.pause();\n }\n}\nlet H1 = class extends uv {\n constructor(e, t) {\n super(e, t);\n }\n construct(e, t) {\n super.construct(e, t), this.plane.actionManager = null;\n }\n};\nclass li {\n /**\n * Creates a new ValueAndUnit\n * @param value defines the value to store\n * @param unit defines the unit to store - defaults to ValueAndUnit.UNITMODE_PIXEL\n * @param negativeValueAllowed defines a boolean indicating if the value can be negative\n */\n constructor(e, t = li.UNITMODE_PIXEL, i = !0) {\n this.negativeValueAllowed = i, this._value = 1, this._unit = li.UNITMODE_PIXEL, this.ignoreAdaptiveScaling = !1, this.onChangedObservable = new G(), this._value = e, this._unit = t, this._originalUnit = t;\n }\n /** Gets a boolean indicating if the value is a percentage */\n get isPercentage() {\n return this._unit === li.UNITMODE_PERCENTAGE;\n }\n /** Gets a boolean indicating if the value is store as pixel */\n get isPixel() {\n return this._unit === li.UNITMODE_PIXEL;\n }\n /**\n * Gets value (without units)\n * @deprecated use value property instead\n */\n get internalValue() {\n return this._value;\n }\n /** Gets value (without units) */\n get value() {\n return this._value;\n }\n /** Sets value (without units) */\n set value(e) {\n e !== this._value && (this._value = e, this.onChangedObservable.notifyObservers());\n }\n /** Gets units (without value) */\n get unit() {\n return this._unit;\n }\n /** Sets units (without value) */\n set unit(e) {\n e !== this._unit && (this._unit = e, this.onChangedObservable.notifyObservers());\n }\n /**\n * Gets value as pixel\n * @param host defines the root host\n * @param refValue defines the reference value for percentages\n * @returns the value as pixel\n */\n getValueInPixel(e, t) {\n return this.isPixel ? this.getValue(e) : this.getValue(e) * t;\n }\n /**\n * Update the current value and unit.\n * @param value defines the value to store\n * @param unit defines the unit to store\n * @returns the current ValueAndUnit\n */\n updateInPlace(e, t = li.UNITMODE_PIXEL) {\n return (this.value !== e || this.unit !== t) && (this._value = e, this._unit = t, this.onChangedObservable.notifyObservers()), this;\n }\n /**\n * Gets the value accordingly to its unit\n * @param host defines the root host\n * @returns the value\n */\n getValue(e) {\n if (e && !this.ignoreAdaptiveScaling && this.unit !== li.UNITMODE_PERCENTAGE) {\n let t = 0, i = 0;\n if (e.idealWidth && (t = Math.ceil(this._value * e.getSize().width / e.idealWidth)), e.idealHeight && (i = Math.ceil(this._value * e.getSize().height / e.idealHeight)), e.useSmallestIdeal && e.idealWidth && e.idealHeight)\n return window.innerWidth < window.innerHeight ? t : i;\n if (e.idealWidth)\n return t;\n if (e.idealHeight)\n return i;\n }\n return this._value;\n }\n /**\n * Gets a string representation of the value\n * @param host defines the root host\n * @param decimals defines an optional number of decimals to display\n * @returns a string\n */\n toString(e, t) {\n switch (this._unit) {\n case li.UNITMODE_PERCENTAGE: {\n const i = this.getValue(e) * 100;\n return (t ? i.toFixed(t) : i) + \"%\";\n }\n case li.UNITMODE_PIXEL: {\n const i = this.getValue(e);\n return (t ? i.toFixed(t) : i) + \"px\";\n }\n }\n return this._unit.toString();\n }\n /**\n * Store a value parsed from a string\n * @param source defines the source string\n * @returns true if the value was successfully parsed and updated\n */\n fromString(e) {\n const t = li._Regex.exec(e.toString());\n if (!t || t.length === 0)\n return !1;\n let i = parseFloat(t[1]), s = this._originalUnit;\n if (this.negativeValueAllowed || i < 0 && (i = 0), t.length === 4)\n switch (t[3]) {\n case \"px\":\n s = li.UNITMODE_PIXEL;\n break;\n case \"%\":\n s = li.UNITMODE_PERCENTAGE, i /= 100;\n break;\n }\n return i === this._value && s === this._unit ? !1 : (this._value = i, this._unit = s, this.onChangedObservable.notifyObservers(), !0);\n }\n /** UNITMODE_PERCENTAGE */\n static get UNITMODE_PERCENTAGE() {\n return li._UNITMODE_PERCENTAGE;\n }\n /** UNITMODE_PIXEL */\n static get UNITMODE_PIXEL() {\n return li._UNITMODE_PIXEL;\n }\n}\nli._Regex = /(^-?\\d*(\\.\\d+)?)(%|px)?/;\nli._UNITMODE_PERCENTAGE = 0;\nli._UNITMODE_PIXEL = 1;\nconst rh = [new Q(0, 0), new Q(0, 0), new Q(0, 0), new Q(0, 0)], $c = [new Q(0, 0), new Q(0, 0), new Q(0, 0), new Q(0, 0)], Xa = new Q(0, 0), dl = new Q(0, 0);\nclass cr {\n /**\n * Creates a new measure\n * @param left defines left coordinate\n * @param top defines top coordinate\n * @param width defines width dimension\n * @param height defines height dimension\n */\n constructor(e, t, i, s) {\n this.left = e, this.top = t, this.width = i, this.height = s;\n }\n /**\n * Copy from another measure\n * @param other defines the other measure to copy from\n */\n copyFrom(e) {\n this.left = e.left, this.top = e.top, this.width = e.width, this.height = e.height;\n }\n /**\n * Copy from a group of 4 floats\n * @param left defines left coordinate\n * @param top defines top coordinate\n * @param width defines width dimension\n * @param height defines height dimension\n */\n copyFromFloats(e, t, i, s) {\n this.left = e, this.top = t, this.width = i, this.height = s;\n }\n /**\n * Computes the axis aligned bounding box measure for two given measures\n * @param a Input measure\n * @param b Input measure\n * @param result the resulting bounding measure\n */\n static CombineToRef(e, t, i) {\n const s = Math.min(e.left, t.left), r = Math.min(e.top, t.top), n = Math.max(e.left + e.width, t.left + t.width), o = Math.max(e.top + e.height, t.top + t.height);\n i.left = s, i.top = r, i.width = n - s, i.height = o - r;\n }\n /**\n * Computes the axis aligned bounding box of the measure after it is modified by a given transform\n * @param transform the matrix to transform the measure before computing the AABB\n * @param addX number to add to left\n * @param addY number to add to top\n * @param addWidth number to add to width\n * @param addHeight number to add to height\n * @param result the resulting AABB\n */\n addAndTransformToRef(e, t, i, s, r, n) {\n const o = this.left + t, l = this.top + i, h = this.width + s, c = this.height + r;\n rh[0].copyFromFloats(o, l), rh[1].copyFromFloats(o + h, l), rh[2].copyFromFloats(o + h, l + c), rh[3].copyFromFloats(o, l + c), Xa.copyFromFloats(Number.MAX_VALUE, Number.MAX_VALUE), dl.copyFromFloats(0, 0);\n for (let u = 0; u < 4; u++)\n e.transformCoordinates(rh[u].x, rh[u].y, $c[u]), Xa.x = Math.floor(Math.min(Xa.x, $c[u].x)), Xa.y = Math.floor(Math.min(Xa.y, $c[u].y)), dl.x = Math.ceil(Math.max(dl.x, $c[u].x)), dl.y = Math.ceil(Math.max(dl.y, $c[u].y));\n n.left = Xa.x, n.top = Xa.y, n.width = dl.x - Xa.x, n.height = dl.y - Xa.y;\n }\n /**\n * Computes the axis aligned bounding box of the measure after it is modified by a given transform\n * @param transform the matrix to transform the measure before computing the AABB\n * @param result the resulting AABB\n */\n transformToRef(e, t) {\n this.addAndTransformToRef(e, 0, 0, 0, 0, t);\n }\n /**\n * Check equality between this measure and another one\n * @param other defines the other measures\n * @returns true if both measures are equals\n */\n isEqualsTo(e) {\n return !(this.left !== e.left || this.top !== e.top || this.width !== e.width || this.height !== e.height);\n }\n /**\n * Creates an empty measure\n * @returns a new measure\n */\n static Empty() {\n return new cr(0, 0, 0, 0);\n }\n}\nclass zm extends Q {\n /**\n * Creates a new Vector2WithInfo\n * @param source defines the vector2 data to transport\n * @param buttonIndex defines the current mouse button index\n */\n constructor(e, t = 0) {\n super(e.x, e.y), this.buttonIndex = t;\n }\n}\nclass Xt {\n /**\n * Creates a new matrix\n * @param m00 defines value for (0, 0)\n * @param m01 defines value for (0, 1)\n * @param m10 defines value for (1, 0)\n * @param m11 defines value for (1, 1)\n * @param m20 defines value for (2, 0)\n * @param m21 defines value for (2, 1)\n */\n constructor(e, t, i, s, r, n) {\n this.m = new Float32Array(6), this.fromValues(e, t, i, s, r, n);\n }\n /**\n * Fills the matrix from direct values\n * @param m00 defines value for (0, 0)\n * @param m01 defines value for (0, 1)\n * @param m10 defines value for (1, 0)\n * @param m11 defines value for (1, 1)\n * @param m20 defines value for (2, 0)\n * @param m21 defines value for (2, 1)\n * @returns the current modified matrix\n */\n fromValues(e, t, i, s, r, n) {\n return this.m[0] = e, this.m[1] = t, this.m[2] = i, this.m[3] = s, this.m[4] = r, this.m[5] = n, this;\n }\n /**\n * Gets matrix determinant\n * @returns the determinant\n */\n determinant() {\n return this.m[0] * this.m[3] - this.m[1] * this.m[2];\n }\n /**\n * Inverses the matrix and stores it in a target matrix\n * @param result defines the target matrix\n * @returns the current matrix\n */\n invertToRef(e) {\n const t = this.m[0], i = this.m[1], s = this.m[2], r = this.m[3], n = this.m[4], o = this.m[5], l = this.determinant();\n if (l < tt * tt)\n return e.m[0] = 0, e.m[1] = 0, e.m[2] = 0, e.m[3] = 0, e.m[4] = 0, e.m[5] = 0, this;\n const h = 1 / l, c = s * o - r * n, u = i * n - t * o;\n return e.m[0] = r * h, e.m[1] = -i * h, e.m[2] = -s * h, e.m[3] = t * h, e.m[4] = c * h, e.m[5] = u * h, this;\n }\n /**\n * Multiplies the current matrix with another one\n * @param other defines the second operand\n * @param result defines the target matrix\n * @returns the current matrix\n */\n multiplyToRef(e, t) {\n const i = this.m[0], s = this.m[1], r = this.m[2], n = this.m[3], o = this.m[4], l = this.m[5], h = e.m[0], c = e.m[1], u = e.m[2], d = e.m[3], f = e.m[4], p = e.m[5];\n return t.m[0] = i * h + s * u, t.m[1] = i * c + s * d, t.m[2] = r * h + n * u, t.m[3] = r * c + n * d, t.m[4] = o * h + l * u + f, t.m[5] = o * c + l * d + p, this;\n }\n /**\n * Applies the current matrix to a set of 2 floats and stores the result in a vector2\n * @param x defines the x coordinate to transform\n * @param y defines the x coordinate to transform\n * @param result defines the target vector2\n * @returns the current matrix\n */\n transformCoordinates(e, t, i) {\n return i.x = e * this.m[0] + t * this.m[2] + this.m[4], i.y = e * this.m[1] + t * this.m[3] + this.m[5], this;\n }\n // Statics\n /**\n * Creates an identity matrix\n * @returns a new matrix\n */\n static Identity() {\n return new Xt(1, 0, 0, 1, 0, 0);\n }\n /**\n * Creates an identity matrix and stores it in a target matrix\n * @param result defines the target matrix\n */\n static IdentityToRef(e) {\n e.m[0] = 1, e.m[1] = 0, e.m[2] = 0, e.m[3] = 1, e.m[4] = 0, e.m[5] = 0;\n }\n /**\n * Creates a translation matrix and stores it in a target matrix\n * @param x defines the x coordinate of the translation\n * @param y defines the y coordinate of the translation\n * @param result defines the target matrix\n */\n static TranslationToRef(e, t, i) {\n i.fromValues(1, 0, 0, 1, e, t);\n }\n /**\n * Creates a scaling matrix and stores it in a target matrix\n * @param x defines the x coordinate of the scaling\n * @param y defines the y coordinate of the scaling\n * @param result defines the target matrix\n */\n static ScalingToRef(e, t, i) {\n i.fromValues(e, 0, 0, t, 0, 0);\n }\n /**\n * Creates a rotation matrix and stores it in a target matrix\n * @param angle defines the rotation angle\n * @param result defines the target matrix\n */\n static RotationToRef(e, t) {\n const i = Math.sin(e), s = Math.cos(e);\n t.fromValues(s, i, -i, s, 0, 0);\n }\n /**\n * Composes a matrix from translation, rotation, scaling and parent matrix and stores it in a target matrix\n * @param tx defines the x coordinate of the translation\n * @param ty defines the y coordinate of the translation\n * @param angle defines the rotation angle\n * @param scaleX defines the x coordinate of the scaling\n * @param scaleY defines the y coordinate of the scaling\n * @param parentMatrix defines the parent matrix to multiply by (can be null)\n * @param result defines the target matrix\n */\n static ComposeToRef(e, t, i, s, r, n, o) {\n Xt.TranslationToRef(e, t, Xt._TempPreTranslationMatrix), Xt.ScalingToRef(s, r, Xt._TempScalingMatrix), Xt.RotationToRef(i, Xt._TempRotationMatrix), Xt.TranslationToRef(-e, -t, Xt._TempPostTranslationMatrix), Xt._TempPreTranslationMatrix.multiplyToRef(Xt._TempScalingMatrix, Xt._TempCompose0), Xt._TempCompose0.multiplyToRef(Xt._TempRotationMatrix, Xt._TempCompose1), n ? (Xt._TempCompose1.multiplyToRef(Xt._TempPostTranslationMatrix, Xt._TempCompose2), Xt._TempCompose2.multiplyToRef(n, o)) : Xt._TempCompose1.multiplyToRef(Xt._TempPostTranslationMatrix, o);\n }\n}\nXt._TempPreTranslationMatrix = Xt.Identity();\nXt._TempPostTranslationMatrix = Xt.Identity();\nXt._TempRotationMatrix = Xt.Identity();\nXt._TempScalingMatrix = Xt.Identity();\nXt._TempCompose0 = Xt.Identity();\nXt._TempCompose1 = Xt.Identity();\nXt._TempCompose2 = Xt.Identity();\nclass dv {\n /**\n * Rounds a number to the nearest multiple of a given precision\n * @param value the value to be rounded\n * @param precision the multiple to which the value will be rounded. Default is 100 (2 decimal digits)\n * @returns\n */\n static Round(e, t = dv.DefaultRoundingPrecision) {\n return Math.round(e * t) / t;\n }\n}\ndv.DefaultRoundingPrecision = 100;\nclass Le {\n /**\n * Gets or sets a boolean indicating if the control is readonly (default: false).\n * A readonly control will still raise pointer events but will not react to them\n */\n get isReadOnly() {\n return this._isReadOnly;\n }\n set isReadOnly(e) {\n this._isReadOnly = e;\n }\n /**\n * Gets the transformed measure, that is the bounding box of the control after applying all transformations\n */\n get transformedMeasure() {\n return this._evaluatedMeasure;\n }\n /**\n * Sets/Gets a boolean indicating if the children are clipped to the current control bounds.\n * Please note that not clipping children may generate issues with adt.useInvalidateRectOptimization so it is recommended to turn this optimization off if you want to use unclipped children\n */\n set clipChildren(e) {\n this._clipChildren = e;\n }\n get clipChildren() {\n return this._clipChildren;\n }\n /**\n * Sets/Gets a boolean indicating that control content must be clipped\n * Please note that not clipping content may generate issues with adt.useInvalidateRectOptimization so it is recommended to turn this optimization off if you want to use unclipped children\n */\n set clipContent(e) {\n this._clipContent = e;\n }\n get clipContent() {\n return this._clipContent;\n }\n /** Gets or sets a value indicating the offset to apply on X axis to render the shadow */\n get shadowOffsetX() {\n return this._shadowOffsetX;\n }\n set shadowOffsetX(e) {\n this._shadowOffsetX !== e && (this._shadowOffsetX = e, this._markAsDirty());\n }\n /** Gets or sets a value indicating the offset to apply on Y axis to render the shadow */\n get shadowOffsetY() {\n return this._shadowOffsetY;\n }\n set shadowOffsetY(e) {\n this._shadowOffsetY !== e && (this._shadowOffsetY = e, this._markAsDirty());\n }\n /** Gets or sets a value indicating the amount of blur to use to render the shadow */\n get shadowBlur() {\n return this._shadowBlur;\n }\n set shadowBlur(e) {\n this._shadowBlur !== e && (this._previousShadowBlur = this._shadowBlur, this._shadowBlur = e, this._markAsDirty());\n }\n /** Gets or sets a value indicating the color of the shadow (black by default ie. \"#000\") */\n get shadowColor() {\n return this._shadowColor;\n }\n set shadowColor(e) {\n this._shadowColor !== e && (this._shadowColor = e, this._markAsDirty());\n }\n // Properties\n /** Gets the control type name */\n get typeName() {\n return this._getTypeName();\n }\n /**\n * Get the current class name of the control.\n * @returns current class name\n */\n getClassName() {\n return this._getTypeName();\n }\n /**\n * Gets or sets the accessibility tag to describe the control for accessibility purpose.\n * By default, GUI controls already indicate accessibility info, but one can override the info using this tag.\n */\n set accessibilityTag(e) {\n this._accessibilityTag = e, this.onAccessibilityTagChangedObservable.notifyObservers(e);\n }\n get accessibilityTag() {\n return this._accessibilityTag;\n }\n /**\n * Get the hosting AdvancedDynamicTexture\n */\n get host() {\n return this._host;\n }\n /** Gets or set information about font offsets (used to render and align text) */\n get fontOffset() {\n return this._fontOffset;\n }\n set fontOffset(e) {\n this._fontOffset = e;\n }\n /** Gets or sets alpha value for the control (1 means opaque and 0 means entirely transparent) */\n get alpha() {\n return this._alpha;\n }\n set alpha(e) {\n this._alpha !== e && (this._alphaSet = !0, this._alpha = e, this._markAsDirty());\n }\n /**\n * Gets or sets a number indicating size of stroke we want to highlight the control with (mostly for debugging purpose)\n */\n get highlightLineWidth() {\n return this._highlightLineWidth;\n }\n set highlightLineWidth(e) {\n this._highlightLineWidth !== e && (this._highlightLineWidth = e, this._markAsDirty());\n }\n /**\n * Gets or sets a boolean indicating that we want to highlight the control (mostly for debugging purpose)\n */\n get isHighlighted() {\n return this._isHighlighted;\n }\n set isHighlighted(e) {\n this._isHighlighted !== e && (this._isHighlighted = e, this._markAsDirty());\n }\n /**\n * Gets or sets a string defining the color to use for highlighting this control\n */\n get highlightColor() {\n return this._highlightColor;\n }\n set highlightColor(e) {\n this._highlightColor !== e && (this._highlightColor = e, this._markAsDirty());\n }\n /** Gets or sets a value indicating the scale factor on X axis (1 by default)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#rotation-and-scaling\n */\n get scaleX() {\n return this._scaleX;\n }\n set scaleX(e) {\n this._scaleX !== e && (this._scaleX = e, this._markAsDirty(), this._markMatrixAsDirty());\n }\n /** Gets or sets a value indicating the scale factor on Y axis (1 by default)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#rotation-and-scaling\n */\n get scaleY() {\n return this._scaleY;\n }\n set scaleY(e) {\n this._scaleY !== e && (this._scaleY = e, this._markAsDirty(), this._markMatrixAsDirty());\n }\n /** Gets or sets the rotation angle (0 by default)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#rotation-and-scaling\n */\n get rotation() {\n return this._rotation;\n }\n set rotation(e) {\n this._rotation !== e && (this._rotation = e, this._markAsDirty(), this._markMatrixAsDirty());\n }\n /** Gets or sets the transformation center on Y axis (0 by default)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#rotation-and-scaling\n */\n get transformCenterY() {\n return this._transformCenterY;\n }\n set transformCenterY(e) {\n this._transformCenterY !== e && (this._transformCenterY = e, this._markAsDirty(), this._markMatrixAsDirty());\n }\n /** Gets or sets the transformation center on X axis (0 by default)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#rotation-and-scaling\n */\n get transformCenterX() {\n return this._transformCenterX;\n }\n set transformCenterX(e) {\n this._transformCenterX !== e && (this._transformCenterX = e, this._markAsDirty(), this._markMatrixAsDirty());\n }\n /**\n * Gets or sets the horizontal alignment\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#alignments\n */\n get horizontalAlignment() {\n return this._horizontalAlignment;\n }\n set horizontalAlignment(e) {\n this._horizontalAlignment !== e && (this._horizontalAlignment = e, this._markAsDirty());\n }\n /**\n * Gets or sets the vertical alignment\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#alignments\n */\n get verticalAlignment() {\n return this._verticalAlignment;\n }\n set verticalAlignment(e) {\n this._verticalAlignment !== e && (this._verticalAlignment = e, this._markAsDirty());\n }\n set fixedRatio(e) {\n this._fixedRatio !== e && (this._fixedRatio = e, this._markAsDirty());\n }\n /**\n * Gets or sets a fixed ratio for this control.\n * When different from 0, the ratio is used to compute the \"second\" dimension.\n * The first dimension used in the computation is the last one set (by setting width / widthInPixels or height / heightInPixels), and the\n * second dimension is computed as first dimension * fixedRatio\n */\n get fixedRatio() {\n return this._fixedRatio;\n }\n set fixedRatioMasterIsWidth(e) {\n this._fixedRatioMasterIsWidth !== e && (this._fixedRatioMasterIsWidth = e, this._markAsDirty());\n }\n /**\n * Gets or sets a boolean indicating that the fixed ratio is set on the width instead of the height. True by default.\n * When the height of a control is set, this property is changed to false.\n */\n get fixedRatioMasterIsWidth() {\n return this._fixedRatioMasterIsWidth;\n }\n /**\n * Gets or sets control width\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get width() {\n return this._width.toString(this._host);\n }\n set width(e) {\n this._fixedRatioMasterIsWidth = !0, this._width.toString(this._host) !== e && this._width.fromString(e) && this._markAsDirty();\n }\n /**\n * Gets or sets the control width in pixel\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get widthInPixels() {\n return this._width.getValueInPixel(this._host, this._cachedParentMeasure.width);\n }\n set widthInPixels(e) {\n isNaN(e) || (this._fixedRatioMasterIsWidth = !0, this.width = e + \"px\");\n }\n /**\n * Gets or sets control height\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get height() {\n return this._height.toString(this._host);\n }\n set height(e) {\n this._fixedRatioMasterIsWidth = !1, this._height.toString(this._host) !== e && this._height.fromString(e) && this._markAsDirty();\n }\n /**\n * Gets or sets control height in pixel\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get heightInPixels() {\n return this._height.getValueInPixel(this._host, this._cachedParentMeasure.height);\n }\n set heightInPixels(e) {\n isNaN(e) || (this._fixedRatioMasterIsWidth = !1, this.height = e + \"px\");\n }\n /** Gets or set font family */\n get fontFamily() {\n return this._fontFamily;\n }\n set fontFamily(e) {\n this._fontFamily !== e && (this._fontFamily = e, this._resetFontCache());\n }\n /** Gets or sets font style */\n get fontStyle() {\n return this._fontStyle;\n }\n set fontStyle(e) {\n this._fontStyle !== e && (this._fontStyle = e, this._resetFontCache());\n }\n /** Gets or sets font weight */\n get fontWeight() {\n return this._fontWeight;\n }\n set fontWeight(e) {\n this._fontWeight !== e && (this._fontWeight = e, this._resetFontCache());\n }\n /**\n * Gets or sets style\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#styles\n */\n get style() {\n return this._style;\n }\n set style(e) {\n this._style && (this._style.onChangedObservable.remove(this._styleObserver), this._styleObserver = null), this._style = e, this._style && (this._styleObserver = this._style.onChangedObservable.add(() => {\n this._markAsDirty(), this._resetFontCache();\n })), this._markAsDirty(), this._resetFontCache();\n }\n /** @internal */\n get _isFontSizeInPercentage() {\n return this._fontSize.isPercentage;\n }\n /** Gets or sets font size in pixels */\n get fontSizeInPixels() {\n const e = this._style ? this._style._fontSize : this._fontSize;\n return e.isPixel ? e.getValue(this._host) : e.getValueInPixel(this._host, this._tempParentMeasure.height || this._cachedParentMeasure.height);\n }\n set fontSizeInPixels(e) {\n isNaN(e) || (this.fontSize = e + \"px\");\n }\n /** Gets or sets font size */\n get fontSize() {\n return this._fontSize.toString(this._host);\n }\n set fontSize(e) {\n this._fontSize.toString(this._host) !== e && this._fontSize.fromString(e) && (this._markAsDirty(), this._resetFontCache());\n }\n /** Gets or sets foreground color */\n get color() {\n return this._color;\n }\n set color(e) {\n this._color !== e && (this._color = e, this._markAsDirty());\n }\n /** Gets or sets gradient. Setting a gradient will override the color */\n get gradient() {\n return this._gradient;\n }\n set gradient(e) {\n this._gradient !== e && (this._gradient = e, this._markAsDirty());\n }\n /** Gets or sets z index which is used to reorder controls on the z axis */\n get zIndex() {\n return this._zIndex;\n }\n set zIndex(e) {\n this.zIndex !== e && (this._zIndex = e, this.parent && this.parent._reOrderControl(this));\n }\n /** Gets or sets a boolean indicating if the control can be rendered */\n get notRenderable() {\n return this._doNotRender;\n }\n set notRenderable(e) {\n this._doNotRender !== e && (this._doNotRender = e, this._markAsDirty());\n }\n /** Gets or sets a boolean indicating if the control is visible */\n get isVisible() {\n return this._isVisible;\n }\n set isVisible(e) {\n this._isVisible !== e && (this._isVisible = e, this._markAsDirty(!0), this.onIsVisibleChangedObservable.notifyObservers(e));\n }\n /** Gets a boolean indicating that the control needs to update its rendering */\n get isDirty() {\n return this._isDirty;\n }\n /**\n * Gets the current linked mesh (or null if none)\n */\n get linkedMesh() {\n return this._linkedMesh;\n }\n /**\n * Gets or sets a value indicating the padding should work like in CSS.\n * Basically, it will add the padding amount on each side of the parent control for its children.\n */\n get descendantsOnlyPadding() {\n return this._descendantsOnlyPadding;\n }\n set descendantsOnlyPadding(e) {\n this._descendantsOnlyPadding !== e && (this._descendantsOnlyPadding = e, this._markAsDirty());\n }\n /**\n * Gets or sets a value indicating the padding to use on the left of the control\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get paddingLeft() {\n return this._paddingLeft.toString(this._host);\n }\n set paddingLeft(e) {\n this._paddingLeft.fromString(e) && this._markAsDirty();\n }\n /**\n * Gets or sets a value indicating the padding in pixels to use on the left of the control\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get paddingLeftInPixels() {\n return this._paddingLeft.getValueInPixel(this._host, this._cachedParentMeasure.width);\n }\n set paddingLeftInPixels(e) {\n isNaN(e) || (this.paddingLeft = e + \"px\");\n }\n /** @internal */\n get _paddingLeftInPixels() {\n return this._descendantsOnlyPadding ? 0 : this.paddingLeftInPixels;\n }\n /**\n * Gets or sets a value indicating the padding to use on the right of the control\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get paddingRight() {\n return this._paddingRight.toString(this._host);\n }\n set paddingRight(e) {\n this._paddingRight.fromString(e) && this._markAsDirty();\n }\n /**\n * Gets or sets a value indicating the padding in pixels to use on the right of the control\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get paddingRightInPixels() {\n return this._paddingRight.getValueInPixel(this._host, this._cachedParentMeasure.width);\n }\n set paddingRightInPixels(e) {\n isNaN(e) || (this.paddingRight = e + \"px\");\n }\n /** @internal */\n get _paddingRightInPixels() {\n return this._descendantsOnlyPadding ? 0 : this.paddingRightInPixels;\n }\n /**\n * Gets or sets a value indicating the padding to use on the top of the control\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get paddingTop() {\n return this._paddingTop.toString(this._host);\n }\n set paddingTop(e) {\n this._paddingTop.fromString(e) && this._markAsDirty();\n }\n /**\n * Gets or sets a value indicating the padding in pixels to use on the top of the control\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get paddingTopInPixels() {\n return this._paddingTop.getValueInPixel(this._host, this._cachedParentMeasure.height);\n }\n set paddingTopInPixels(e) {\n isNaN(e) || (this.paddingTop = e + \"px\");\n }\n /** @internal */\n get _paddingTopInPixels() {\n return this._descendantsOnlyPadding ? 0 : this.paddingTopInPixels;\n }\n /**\n * Gets or sets a value indicating the padding to use on the bottom of the control\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get paddingBottom() {\n return this._paddingBottom.toString(this._host);\n }\n set paddingBottom(e) {\n this._paddingBottom.fromString(e) && this._markAsDirty();\n }\n /**\n * Gets or sets a value indicating the padding in pixels to use on the bottom of the control\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get paddingBottomInPixels() {\n return this._paddingBottom.getValueInPixel(this._host, this._cachedParentMeasure.height);\n }\n set paddingBottomInPixels(e) {\n isNaN(e) || (this.paddingBottom = e + \"px\");\n }\n /** @internal */\n get _paddingBottomInPixels() {\n return this._descendantsOnlyPadding ? 0 : this.paddingBottomInPixels;\n }\n /**\n * Gets or sets a value indicating the left coordinate of the control\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get left() {\n return this._left.toString(this._host);\n }\n set left(e) {\n this._left.fromString(e) && this._markAsDirty();\n }\n /**\n * Gets or sets a value indicating the left coordinate in pixels of the control\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get leftInPixels() {\n return this._left.getValueInPixel(this._host, this._cachedParentMeasure.width);\n }\n set leftInPixels(e) {\n isNaN(e) || (this.left = e + \"px\");\n }\n /**\n * Gets or sets a value indicating the top coordinate of the control\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get top() {\n return this._top.toString(this._host);\n }\n set top(e) {\n this._top.fromString(e) && this._markAsDirty();\n }\n /**\n * Gets or sets a value indicating the top coordinate in pixels of the control\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n get topInPixels() {\n return this._top.getValueInPixel(this._host, this._cachedParentMeasure.height);\n }\n set topInPixels(e) {\n isNaN(e) || (this.top = e + \"px\");\n }\n /**\n * Gets or sets a value indicating the offset on X axis to the linked mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#tracking-positions\n */\n get linkOffsetX() {\n return this._linkOffsetX.toString(this._host);\n }\n set linkOffsetX(e) {\n this._linkOffsetX.fromString(e) && this._markAsDirty();\n }\n /**\n * Gets or sets a value indicating the offset in pixels on X axis to the linked mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#tracking-positions\n */\n get linkOffsetXInPixels() {\n return this._linkOffsetX.getValueInPixel(this._host, this._cachedParentMeasure.width);\n }\n set linkOffsetXInPixels(e) {\n isNaN(e) || (this.linkOffsetX = e + \"px\");\n }\n /**\n * Gets or sets a value indicating the offset on Y axis to the linked mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#tracking-positions\n */\n get linkOffsetY() {\n return this._linkOffsetY.toString(this._host);\n }\n set linkOffsetY(e) {\n this._linkOffsetY.fromString(e) && this._markAsDirty();\n }\n /**\n * Gets or sets a value indicating the offset in pixels on Y axis to the linked mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#tracking-positions\n */\n get linkOffsetYInPixels() {\n return this._linkOffsetY.getValueInPixel(this._host, this._cachedParentMeasure.height);\n }\n set linkOffsetYInPixels(e) {\n isNaN(e) || (this.linkOffsetY = e + \"px\");\n }\n /** Gets the center coordinate on X axis */\n get centerX() {\n return this._currentMeasure.left + this._currentMeasure.width / 2;\n }\n /** Gets the center coordinate on Y axis */\n get centerY() {\n return this._currentMeasure.top + this._currentMeasure.height / 2;\n }\n /** Gets or sets if control is Enabled */\n get isEnabled() {\n return this._isEnabled;\n }\n set isEnabled(e) {\n if (this._isEnabled === e)\n return;\n this._isEnabled = e, this._markAsDirty();\n const t = (i) => {\n if (i.host) {\n for (const s in i.host._lastControlOver)\n i === this.host._lastControlOver[s] && (i._onPointerOut(i, null, !0), delete i.host._lastControlOver[s]);\n i.children !== void 0 && i.children.forEach(t);\n }\n };\n t(this), this.onEnabledStateChangedObservable.notifyObservers(e);\n }\n /** Gets or sets background color of control if it's disabled. Only applies to Button class. */\n get disabledColor() {\n return this._disabledColor;\n }\n set disabledColor(e) {\n this._disabledColor !== e && (this._disabledColor = e, this._markAsDirty());\n }\n /** Gets or sets front color of control if it's disabled. Only applies to Checkbox class. */\n get disabledColorItem() {\n return this._disabledColorItem;\n }\n set disabledColorItem(e) {\n this._disabledColorItem !== e && (this._disabledColorItem = e, this._markAsDirty());\n }\n /**\n * Border color when control is focused\n * When not defined the ADT color will be used. If no ADT color is defined, focused state won't have any border\n */\n get focusedColor() {\n return this._focusedColor;\n }\n set focusedColor(e) {\n this._focusedColor = e;\n }\n /** @internal */\n onBlur() {\n this._isFocused && (this._isFocused = !1, this.focusedColor && this._unfocusedColor != null && (this.color = this._unfocusedColor), this.onBlurObservable.notifyObservers(this));\n }\n /** @internal */\n onFocus() {\n this._isFocused = !0, this.focusedColor && (this._unfocusedColor = this.color, this.color = this.focusedColor), this.onFocusObservable.notifyObservers(this);\n }\n /**\n * Function called to get the list of controls that should not steal the focus from this control\n * @returns an array of controls\n */\n keepsFocusWith() {\n return null;\n }\n /**\n * Function to focus a button programmatically\n */\n focus() {\n this._host.moveFocusToControl(this);\n }\n /**\n * Function to unfocus a button programmatically\n */\n blur() {\n this._host.focusedControl = null;\n }\n /**\n * Handles the keyboard event\n * @param evt Defines the KeyboardEvent\n */\n processKeyboard(e) {\n e.key === \"Enter\" && this.onEnterPressedObservable.notifyObservers(this), this.onKeyboardEventProcessedObservable.notifyObservers(e, -1, this);\n }\n // Functions\n /**\n * Creates a new control\n * @param name defines the name of the control\n */\n constructor(e) {\n this.name = e, this._alpha = 1, this._alphaSet = !1, this._zIndex = 0, this._currentMeasure = cr.Empty(), this._tempPaddingMeasure = cr.Empty(), this._fontFamily = \"\", this._fontStyle = \"\", this._fontWeight = \"\", this._fontSize = new li(18, li.UNITMODE_PIXEL, !1), this._width = new li(1, li.UNITMODE_PERCENTAGE, !1), this._height = new li(1, li.UNITMODE_PERCENTAGE, !1), this._color = \"\", this._style = null, this._horizontalAlignment = Le.HORIZONTAL_ALIGNMENT_CENTER, this._verticalAlignment = Le.VERTICAL_ALIGNMENT_CENTER, this._isDirty = !0, this._wasDirty = !1, this._tempParentMeasure = cr.Empty(), this._prevCurrentMeasureTransformedIntoGlobalSpace = cr.Empty(), this._cachedParentMeasure = cr.Empty(), this._descendantsOnlyPadding = !1, this._paddingLeft = new li(0), this._paddingRight = new li(0), this._paddingTop = new li(0), this._paddingBottom = new li(0), this._left = new li(0), this._top = new li(0), this._scaleX = 1, this._scaleY = 1, this._rotation = 0, this._transformCenterX = 0.5, this._transformCenterY = 0.5, this._transformMatrix = Xt.Identity(), this._invertTransformMatrix = Xt.Identity(), this._transformedPosition = Q.Zero(), this._isMatrixDirty = !0, this._isVisible = !0, this._isHighlighted = !1, this._highlightColor = \"#4affff\", this._highlightLineWidth = 2, this._fontSet = !1, this._dummyVector2 = Q.Zero(), this._downCount = 0, this._enterCount = -1, this._doNotRender = !1, this._downPointerIds = {}, this._evaluatedMeasure = new cr(0, 0, 0, 0), this._evaluatedParentMeasure = new cr(0, 0, 0, 0), this._isEnabled = !0, this._disabledColor = \"#9a9a9a\", this._disabledColorItem = \"#6a6a6a\", this._isReadOnly = !1, this._gradient = null, this._rebuildLayout = !1, this.onEnabledStateChangedObservable = new G(), this._customData = {}, this._isClipped = !1, this._automaticSize = !1, this.metadata = null, this.isHitTestVisible = !0, this.isPointerBlocker = !1, this.isFocusInvisible = !1, this._clipChildren = !0, this._clipContent = !0, this.useBitmapCache = !1, this._shadowOffsetX = 0, this._shadowOffsetY = 0, this._shadowBlur = 0, this._previousShadowBlur = 0, this._shadowColor = \"black\", this.hoverCursor = \"\", this._linkOffsetX = new li(0), this._linkOffsetY = new li(0), this._accessibilityTag = null, this.onAccessibilityTagChangedObservable = new G(), this.onWheelObservable = new G(), this.onPointerMoveObservable = new G(), this.onPointerOutObservable = new G(), this.onPointerDownObservable = new G(), this.onPointerUpObservable = new G(), this.onPointerClickObservable = new G(), this.onEnterPressedObservable = new G(), this.onPointerEnterObservable = new G(), this.onDirtyObservable = new G(), this.onBeforeDrawObservable = new G(), this.onAfterDrawObservable = new G(), this.onDisposeObservable = new G(), this.onIsVisibleChangedObservable = new G(), this.isSerializable = !0, this._fixedRatio = 0, this._fixedRatioMasterIsWidth = !0, this.animations = null, this._focusedColor = null, this.tabIndex = -1, this._isFocused = !1, this._unfocusedColor = null, this.onFocusObservable = new G(), this.onBlurObservable = new G(), this.onKeyboardEventProcessedObservable = new G(), this._tmpMeasureA = new cr(0, 0, 0, 0);\n }\n /** @internal */\n _getTypeName() {\n return \"Control\";\n }\n /**\n * Gets the first ascendant in the hierarchy of the given type\n * @param className defines the required type\n * @returns the ascendant or null if not found\n */\n getAscendantOfClass(e) {\n return this.parent ? this.parent.getClassName() === e ? this.parent : this.parent.getAscendantOfClass(e) : null;\n }\n /**\n * Mark control element as dirty\n * @param force force non visible elements to be marked too\n */\n markAsDirty(e = !1) {\n this._markAsDirty(e);\n }\n /**\n * Mark the element and its children as dirty\n */\n markAllAsDirty() {\n this._markAllAsDirty();\n }\n /** @internal */\n _resetFontCache() {\n this._fontSet = !0, this._markAsDirty();\n }\n /**\n * Determines if a container is an ascendant of the current control\n * @param container defines the container to look for\n * @returns true if the container is one of the ascendant of the control\n */\n isAscendant(e) {\n return this.parent ? this.parent === e ? !0 : this.parent.isAscendant(e) : !1;\n }\n /**\n * Gets coordinates in local control space\n * @param globalCoordinates defines the coordinates to transform\n * @returns the new coordinates in local space\n */\n getLocalCoordinates(e) {\n const t = Q.Zero();\n return this.getLocalCoordinatesToRef(e, t), t;\n }\n /**\n * Gets coordinates in local control space\n * @param globalCoordinates defines the coordinates to transform\n * @param result defines the target vector2 where to store the result\n * @returns the current control\n */\n getLocalCoordinatesToRef(e, t) {\n return t.x = e.x - this._currentMeasure.left, t.y = e.y - this._currentMeasure.top, this;\n }\n /**\n * Gets coordinates in parent local control space\n * @param globalCoordinates defines the coordinates to transform\n * @returns the new coordinates in parent local space\n */\n getParentLocalCoordinates(e) {\n const t = Q.Zero();\n return t.x = e.x - this._cachedParentMeasure.left, t.y = e.y - this._cachedParentMeasure.top, t;\n }\n /**\n * Move the current control to a vector3 position projected onto the screen.\n * @param position defines the target position\n * @param scene defines the hosting scene\n */\n moveToVector3(e, t) {\n if (!this._host || this.parent !== this._host._rootContainer) {\n J.Error(\"Cannot move a control to a vector3 if the control is not at root level\");\n return;\n }\n this.horizontalAlignment = Le.HORIZONTAL_ALIGNMENT_LEFT, this.verticalAlignment = Le.VERTICAL_ALIGNMENT_TOP;\n const i = this._host._getGlobalViewport(), s = g.Project(e, O.IdentityReadOnly, t.getTransformMatrix(), i);\n if (this._moveToProjectedPosition(s), s.z < 0 || s.z > 1) {\n this.notRenderable = !0;\n return;\n }\n this.notRenderable = !1;\n }\n /**\n * Will store all controls that have this control as ascendant in a given array\n * @param results defines the array where to store the descendants\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\n */\n getDescendantsToRef(e, t = !1, i) {\n }\n /**\n * Will return all controls that have this control as ascendant\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\n * @returns all child controls\n */\n getDescendants(e, t) {\n const i = [];\n return this.getDescendantsToRef(i, e, t), i;\n }\n /**\n * Link current control with a target mesh\n * @param mesh defines the mesh to link with\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#tracking-positions\n */\n linkWithMesh(e) {\n if (!this._host || this.parent && this.parent !== this._host._rootContainer) {\n e && J.Error(\"Cannot link a control to a mesh if the control is not at root level\");\n return;\n }\n const t = this._host._linkedControls.indexOf(this);\n if (t !== -1) {\n this._linkedMesh = e, e || this._host._linkedControls.splice(t, 1);\n return;\n } else if (!e)\n return;\n this.horizontalAlignment = Le.HORIZONTAL_ALIGNMENT_LEFT, this.verticalAlignment = Le.VERTICAL_ALIGNMENT_TOP, this._linkedMesh = e, this._host._linkedControls.push(this);\n }\n /**\n * Shorthand function to set the top, right, bottom, and left padding values on the control.\n * @param { string | number} paddingTop - The value of the top padding.\n * @param { string | number} paddingRight - The value of the right padding. If omitted, top is used.\n * @param { string | number} paddingBottom - The value of the bottom padding. If omitted, top is used.\n * @param { string | number} paddingLeft - The value of the left padding. If omitted, right is used.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n setPadding(e, t, i, s) {\n const r = e, n = t ?? r, o = i ?? r, l = s ?? n;\n this.paddingTop = r, this.paddingRight = n, this.paddingBottom = o, this.paddingLeft = l;\n }\n /**\n * Shorthand funtion to set the top, right, bottom, and left padding values in pixels on the control.\n * @param { number} paddingTop - The value in pixels of the top padding.\n * @param { number} paddingRight - The value in pixels of the right padding. If omitted, top is used.\n * @param { number} paddingBottom - The value in pixels of the bottom padding. If omitted, top is used.\n * @param { number} paddingLeft - The value in pixels of the left padding. If omitted, right is used.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#position-and-size\n */\n setPaddingInPixels(e, t, i, s) {\n const r = e, n = t ?? r, o = i ?? r, l = s ?? n;\n this.paddingTopInPixels = r, this.paddingRightInPixels = n, this.paddingBottomInPixels = o, this.paddingLeftInPixels = l;\n }\n /**\n * @internal\n */\n _moveToProjectedPosition(e) {\n var l;\n const t = this._left.getValue(this._host), i = this._top.getValue(this._host), s = (l = this.parent) == null ? void 0 : l._currentMeasure;\n s && this._processMeasures(s, this._host.getContext());\n let r = e.x + this._linkOffsetX.getValue(this._host) - this._currentMeasure.width / 2, n = e.y + this._linkOffsetY.getValue(this._host) - this._currentMeasure.height / 2;\n const o = this._left.ignoreAdaptiveScaling && this._top.ignoreAdaptiveScaling;\n o && (Math.abs(r - t) < 0.5 && (r = t), Math.abs(n - i) < 0.5 && (n = i)), !(!o && t === r && i === n) && (this.left = r + \"px\", this.top = n + \"px\", this._left.ignoreAdaptiveScaling = !0, this._top.ignoreAdaptiveScaling = !0, this._markAsDirty());\n }\n /**\n * @internal\n */\n _offsetLeft(e) {\n this._isDirty = !0, this._currentMeasure.left += e;\n }\n /**\n * @internal\n */\n _offsetTop(e) {\n this._isDirty = !0, this._currentMeasure.top += e;\n }\n /** @internal */\n _markMatrixAsDirty() {\n this._isMatrixDirty = !0, this._flagDescendantsAsMatrixDirty();\n }\n /** @internal */\n _flagDescendantsAsMatrixDirty() {\n }\n /**\n * @internal\n */\n _intersectsRect(e, t) {\n return this._transform(t), !(this._evaluatedMeasure.left >= e.left + e.width || this._evaluatedMeasure.top >= e.top + e.height || this._evaluatedMeasure.left + this._evaluatedMeasure.width <= e.left || this._evaluatedMeasure.top + this._evaluatedMeasure.height <= e.top);\n }\n /** @internal */\n _computeAdditionalOffsetX() {\n return 0;\n }\n /** @internal */\n _computeAdditionalOffsetY() {\n return 0;\n }\n /** @internal */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n invalidateRect() {\n if (this._transform(), this.host && this.host.useInvalidateRectOptimization) {\n this._currentMeasure.transformToRef(this._transformMatrix, this._tmpMeasureA), cr.CombineToRef(this._tmpMeasureA, this._prevCurrentMeasureTransformedIntoGlobalSpace, this._tmpMeasureA);\n const e = this.shadowOffsetX, t = this.shadowOffsetY, i = Math.max(this._previousShadowBlur, this.shadowBlur), s = Math.min(Math.min(e, 0) - i * 2, 0), r = Math.max(Math.max(e, 0) + i * 2, 0), n = Math.min(Math.min(t, 0) - i * 2, 0), o = Math.max(Math.max(t, 0) + i * 2, 0), l = this._computeAdditionalOffsetX(), h = this._computeAdditionalOffsetY();\n this.host.invalidateRect(Math.floor(this._tmpMeasureA.left + s - l), Math.floor(this._tmpMeasureA.top + n - h), Math.ceil(this._tmpMeasureA.left + this._tmpMeasureA.width + r + l), Math.ceil(this._tmpMeasureA.top + this._tmpMeasureA.height + o + h));\n }\n }\n /**\n * @internal\n */\n _markAsDirty(e = !1) {\n !this._isVisible && !e || (this._isDirty = !0, this._markMatrixAsDirty(), this._host && this._host.markAsDirty());\n }\n /** @internal */\n _markAllAsDirty() {\n this._markAsDirty(), this._font && this._prepareFont();\n }\n /**\n * @internal\n */\n _link(e) {\n this._host = e, this._host && (this.uniqueId = this._host.getScene().getUniqueId());\n }\n /**\n * @internal\n */\n _transform(e) {\n if (!this._isMatrixDirty && this._scaleX === 1 && this._scaleY === 1 && this._rotation === 0)\n return;\n const t = this._currentMeasure.width * this._transformCenterX + this._currentMeasure.left, i = this._currentMeasure.height * this._transformCenterY + this._currentMeasure.top;\n e && (e.translate(t, i), e.rotate(this._rotation), e.scale(this._scaleX, this._scaleY), e.translate(-t, -i)), (this._isMatrixDirty || this._cachedOffsetX !== t || this._cachedOffsetY !== i) && (this._cachedOffsetX = t, this._cachedOffsetY = i, this._isMatrixDirty = !1, this._flagDescendantsAsMatrixDirty(), Xt.ComposeToRef(-t, -i, this._rotation, this._scaleX, this._scaleY, this.parent ? this.parent._transformMatrix : null, this._transformMatrix), this._transformMatrix.invertToRef(this._invertTransformMatrix), this._currentMeasure.transformToRef(this._transformMatrix, this._evaluatedMeasure));\n }\n /**\n * @internal\n */\n _renderHighlight(e) {\n this.isHighlighted && (e.save(), e.strokeStyle = this._highlightColor, e.lineWidth = this._highlightLineWidth, this._renderHighlightSpecific(e), e.restore());\n }\n /**\n * @internal\n */\n _renderHighlightSpecific(e) {\n e.strokeRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);\n }\n _getColor(e) {\n return this.gradient ? this.gradient.getCanvasGradient(e) : this.color;\n }\n /**\n * @internal\n */\n _applyStates(e) {\n this._isFontSizeInPercentage && (this._fontSet = !0), this._host && this._host.useSmallestIdeal && !this._font && (this._fontSet = !0), this._fontSet && (this._prepareFont(), this._fontSet = !1), this._font && (e.font = this._font), (this._color || this.gradient) && (e.fillStyle = this._getColor(e)), Le.AllowAlphaInheritance ? e.globalAlpha *= this._alpha : this._alphaSet && (e.globalAlpha = this.parent && !this.parent.renderToIntermediateTexture ? this.parent.alpha * this._alpha : this._alpha);\n }\n /**\n * @internal\n */\n _layout(e, t) {\n if (!this.isDirty && (!this.isVisible || this.notRenderable))\n return !1;\n if (this._isDirty || !this._cachedParentMeasure.isEqualsTo(e)) {\n this.host._numLayoutCalls++, this._currentMeasure.addAndTransformToRef(this._transformMatrix, -this._paddingLeftInPixels | 0, -this._paddingTopInPixels | 0, this._paddingRightInPixels | 0, this._paddingBottomInPixels | 0, this._prevCurrentMeasureTransformedIntoGlobalSpace), t.save(), this._applyStates(t);\n let i = 0;\n do\n this._rebuildLayout = !1, this._processMeasures(e, t), i++;\n while (this._rebuildLayout && i < 3);\n i >= 3 && L.Error(`Layout cycle detected in GUI (Control name=${this.name}, uniqueId=${this.uniqueId})`), t.restore(), this.invalidateRect(), this._evaluateClippingState(e);\n }\n return this._wasDirty = this._isDirty, this._isDirty = !1, !0;\n }\n /**\n * @internal\n */\n _processMeasures(e, t) {\n this._tempPaddingMeasure.copyFrom(e), this.parent && this.parent.descendantsOnlyPadding && (this._tempPaddingMeasure.left += this.parent.paddingLeftInPixels, this._tempPaddingMeasure.top += this.parent.paddingTopInPixels, this._tempPaddingMeasure.width -= this.parent.paddingLeftInPixels + this.parent.paddingRightInPixels, this._tempPaddingMeasure.height -= this.parent.paddingTopInPixels + this.parent.paddingBottomInPixels), this._currentMeasure.copyFrom(this._tempPaddingMeasure), this._preMeasure(this._tempPaddingMeasure, t), this._measure(), this._postMeasure(this._tempPaddingMeasure, t), this._computeAlignment(this._tempPaddingMeasure, t), this._currentMeasure.left = this._currentMeasure.left | 0, this._currentMeasure.top = this._currentMeasure.top | 0, this._currentMeasure.width = this._currentMeasure.width | 0, this._currentMeasure.height = this._currentMeasure.height | 0, this._additionalProcessing(this._tempPaddingMeasure, t), this._cachedParentMeasure.copyFrom(this._tempPaddingMeasure), this._currentMeasure.transformToRef(this._transformMatrix, this._evaluatedMeasure), this.onDirtyObservable.hasObservers() && this.onDirtyObservable.notifyObservers(this);\n }\n _evaluateClippingState(e) {\n if (this._transform(), this._currentMeasure.transformToRef(this._transformMatrix, this._evaluatedMeasure), this.parent && this.parent.clipChildren) {\n if (e.transformToRef(this.parent._transformMatrix, this._evaluatedParentMeasure), this._evaluatedMeasure.left > this._evaluatedParentMeasure.left + this._evaluatedParentMeasure.width) {\n this._isClipped = !0;\n return;\n }\n if (this._evaluatedMeasure.left + this._evaluatedMeasure.width < this._evaluatedParentMeasure.left) {\n this._isClipped = !0;\n return;\n }\n if (this._evaluatedMeasure.top > this._evaluatedParentMeasure.top + this._evaluatedParentMeasure.height) {\n this._isClipped = !0;\n return;\n }\n if (this._evaluatedMeasure.top + this._evaluatedMeasure.height < this._evaluatedParentMeasure.top) {\n this._isClipped = !0;\n return;\n }\n }\n this._isClipped = !1;\n }\n /** @internal */\n _measure() {\n this._width.isPixel ? this._currentMeasure.width = this._width.getValue(this._host) : this._currentMeasure.width *= this._width.getValue(this._host), this._height.isPixel ? this._currentMeasure.height = this._height.getValue(this._host) : this._currentMeasure.height *= this._height.getValue(this._host), this._fixedRatio !== 0 && (this._fixedRatioMasterIsWidth ? this._currentMeasure.height = this._currentMeasure.width * this._fixedRatio : this._currentMeasure.width = this._currentMeasure.height * this._fixedRatio);\n }\n /**\n * @internal\n */\n _computeAlignment(e, t) {\n const i = this._currentMeasure.width, s = this._currentMeasure.height, r = e.width, n = e.height;\n let o = 0, l = 0;\n switch (this.horizontalAlignment) {\n case Le.HORIZONTAL_ALIGNMENT_LEFT:\n o = 0;\n break;\n case Le.HORIZONTAL_ALIGNMENT_RIGHT:\n o = r - i;\n break;\n case Le.HORIZONTAL_ALIGNMENT_CENTER:\n o = (r - i) / 2;\n break;\n }\n switch (this.verticalAlignment) {\n case Le.VERTICAL_ALIGNMENT_TOP:\n l = 0;\n break;\n case Le.VERTICAL_ALIGNMENT_BOTTOM:\n l = n - s;\n break;\n case Le.VERTICAL_ALIGNMENT_CENTER:\n l = (n - s) / 2;\n break;\n }\n this.descendantsOnlyPadding || (this._paddingLeft.isPixel ? (this._currentMeasure.left += this._paddingLeft.getValue(this._host), this._currentMeasure.width -= this._paddingLeft.getValue(this._host)) : (this._currentMeasure.left += r * this._paddingLeft.getValue(this._host), this._currentMeasure.width -= r * this._paddingLeft.getValue(this._host)), this._paddingRight.isPixel ? this._currentMeasure.width -= this._paddingRight.getValue(this._host) : this._currentMeasure.width -= r * this._paddingRight.getValue(this._host), this._paddingTop.isPixel ? (this._currentMeasure.top += this._paddingTop.getValue(this._host), this._currentMeasure.height -= this._paddingTop.getValue(this._host)) : (this._currentMeasure.top += n * this._paddingTop.getValue(this._host), this._currentMeasure.height -= n * this._paddingTop.getValue(this._host)), this._paddingBottom.isPixel ? this._currentMeasure.height -= this._paddingBottom.getValue(this._host) : this._currentMeasure.height -= n * this._paddingBottom.getValue(this._host)), this._left.isPixel ? this._currentMeasure.left += this._left.getValue(this._host) : this._currentMeasure.left += r * this._left.getValue(this._host), this._top.isPixel ? this._currentMeasure.top += this._top.getValue(this._host) : this._currentMeasure.top += n * this._top.getValue(this._host), this._currentMeasure.left += o, this._currentMeasure.top += l;\n }\n /**\n * @internal\n */\n _preMeasure(e, t) {\n }\n /**\n * @internal\n */\n _postMeasure(e, t) {\n }\n /**\n * @internal\n */\n _additionalProcessing(e, t) {\n }\n /**\n * @internal\n */\n _clipForChildren(e) {\n }\n _clip(e, t) {\n if (e.beginPath(), Le._ClipMeasure.copyFrom(this._currentMeasure), t) {\n t.transformToRef(this._invertTransformMatrix, this._tmpMeasureA);\n const i = new cr(0, 0, 0, 0);\n i.left = Math.max(this._tmpMeasureA.left, this._currentMeasure.left), i.top = Math.max(this._tmpMeasureA.top, this._currentMeasure.top), i.width = Math.min(this._tmpMeasureA.left + this._tmpMeasureA.width, this._currentMeasure.left + this._currentMeasure.width) - i.left, i.height = Math.min(this._tmpMeasureA.top + this._tmpMeasureA.height, this._currentMeasure.top + this._currentMeasure.height) - i.top, Le._ClipMeasure.copyFrom(i);\n }\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\n const i = this.shadowOffsetX, s = this.shadowOffsetY, r = this.shadowBlur, n = Math.min(Math.min(i, 0) - r * 2, 0), o = Math.max(Math.max(i, 0) + r * 2, 0), l = Math.min(Math.min(s, 0) - r * 2, 0), h = Math.max(Math.max(s, 0) + r * 2, 0);\n e.rect(Le._ClipMeasure.left + n, Le._ClipMeasure.top + l, Le._ClipMeasure.width + o - n, Le._ClipMeasure.height + h - l);\n } else\n e.rect(Le._ClipMeasure.left, Le._ClipMeasure.top, Le._ClipMeasure.width, Le._ClipMeasure.height);\n e.clip();\n }\n /**\n * @internal\n */\n _render(e, t) {\n return !this.isVisible || this.notRenderable || this._isClipped ? (this._isDirty = !1, !1) : (this.host._numRenderCalls++, e.save(), this._applyStates(e), this._transform(e), this.clipContent && this._clip(e, t), this.onBeforeDrawObservable.hasObservers() && this.onBeforeDrawObservable.notifyObservers(this), this.useBitmapCache && !this._wasDirty && this._cacheData ? e.putImageData(this._cacheData, this._currentMeasure.left, this._currentMeasure.top) : this._draw(e, t), this.useBitmapCache && this._wasDirty && (this._cacheData = e.getImageData(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height)), this._renderHighlight(e), this.onAfterDrawObservable.hasObservers() && this.onAfterDrawObservable.notifyObservers(this), e.restore(), !0);\n }\n /**\n * @internal\n */\n _draw(e, t) {\n }\n /**\n * Tests if a given coordinates belong to the current control\n * @param x defines x coordinate to test\n * @param y defines y coordinate to test\n * @returns true if the coordinates are inside the control\n */\n contains(e, t) {\n return this._invertTransformMatrix.transformCoordinates(e, t, this._transformedPosition), e = this._transformedPosition.x, t = this._transformedPosition.y, e < this._currentMeasure.left || e > this._currentMeasure.left + this._currentMeasure.width || t < this._currentMeasure.top || t > this._currentMeasure.top + this._currentMeasure.height ? !1 : (this.isPointerBlocker && (this._host._shouldBlockPointer = !0), !0);\n }\n /**\n * @internal\n */\n _processPicking(e, t, i, s, r, n, o, l) {\n return !this._isEnabled || !this.isHitTestVisible || !this.isVisible || this._doNotRender || !this.contains(e, t) ? !1 : (this._processObservables(s, e, t, i, r, n, o, l), !0);\n }\n /**\n * @internal\n */\n _onPointerMove(e, t, i, s) {\n this.onPointerMoveObservable.notifyObservers(t, -1, e, this, s) && this.parent != null && !this.isPointerBlocker && this.parent._onPointerMove(e, t, i, s);\n }\n /**\n * @internal\n */\n _onPointerEnter(e, t) {\n return !this._isEnabled || this._enterCount > 0 ? !1 : (this._enterCount === -1 && (this._enterCount = 0), this._enterCount++, this.onPointerEnterObservable.notifyObservers(this, -1, e, this, t) && this.parent != null && !this.isPointerBlocker && this.parent._onPointerEnter(e, t), !0);\n }\n /**\n * @internal\n */\n _onPointerOut(e, t, i = !1) {\n if (!i && !this._isEnabled)\n return;\n this._enterCount = 0;\n let s = !0;\n e.isAscendant(this) || (s = this.onPointerOutObservable.notifyObservers(this, -1, e, this, t)), s && this.parent != null && !this.isPointerBlocker && this.parent._onPointerOut(e, t, i);\n }\n /**\n * @internal\n */\n _onPointerDown(e, t, i, s, r) {\n return this._onPointerEnter(this, r), this._downCount !== 0 ? !1 : (this._downCount++, this._downPointerIds[i] = !0, this.onPointerDownObservable.notifyObservers(new zm(t, s), -1, e, this, r) && this.parent != null && !this.isPointerBlocker && this.parent._onPointerDown(e, t, i, s, r), r && this.uniqueId !== this._host.rootContainer.uniqueId && this._host._capturedPointerIds.add(r.event.pointerId), !0);\n }\n /**\n * @internal\n */\n _onPointerUp(e, t, i, s, r, n) {\n if (!this._isEnabled)\n return;\n this._downCount = 0, delete this._downPointerIds[i];\n let o = r;\n r && (this._enterCount > 0 || this._enterCount === -1) && (o = this.onPointerClickObservable.notifyObservers(new zm(t, s), -1, e, this, n)), this.onPointerUpObservable.notifyObservers(new zm(t, s), -1, e, this, n) && this.parent != null && !this.isPointerBlocker && this.parent._onPointerUp(e, t, i, s, o, n), n && this.uniqueId !== this._host.rootContainer.uniqueId && this._host._capturedPointerIds.delete(n.event.pointerId);\n }\n /**\n * @internal\n */\n _forcePointerUp(e = null) {\n if (e !== null)\n this._onPointerUp(this, Q.Zero(), e, 0, !0);\n else\n for (const t in this._downPointerIds)\n this._onPointerUp(this, Q.Zero(), +t, 0, !0);\n }\n /**\n * @internal\n */\n _onWheelScroll(e, t) {\n if (!this._isEnabled)\n return;\n this.onWheelObservable.notifyObservers(new Q(e, t)) && this.parent != null && this.parent._onWheelScroll(e, t);\n }\n /** @internal */\n _onCanvasBlur() {\n }\n /**\n * @internal\n */\n _processObservables(e, t, i, s, r, n, o, l) {\n if (!this._isEnabled)\n return !1;\n if (this._dummyVector2.copyFromFloats(t, i), e === Pe.POINTERMOVE) {\n this._onPointerMove(this, this._dummyVector2, r, s);\n const h = this._host._lastControlOver[r];\n return h && h !== this && h._onPointerOut(this, s), h !== this && this._onPointerEnter(this, s), this._host._lastControlOver[r] = this, !0;\n }\n return e === Pe.POINTERDOWN ? (this._onPointerDown(this, this._dummyVector2, r, n, s), this._host._registerLastControlDown(this, r), this._host._lastPickedControl = this, !0) : e === Pe.POINTERUP ? (this._host._lastControlDown[r] && this._host._lastControlDown[r]._onPointerUp(this, this._dummyVector2, r, n, !0, s), delete this._host._lastControlDown[r], !0) : e === Pe.POINTERWHEEL && this._host._lastControlOver[r] ? (this._host._lastControlOver[r]._onWheelScroll(o, l), !0) : !1;\n }\n _getStyleProperty(e, t) {\n const i = (this._style && this._style[e]) ?? this[e];\n return !i && this.parent ? this.parent._getStyleProperty(e, t) : this.parent ? i : t;\n }\n _prepareFont() {\n var e, t;\n !this._font && !this._fontSet || (this._font = this._getStyleProperty(\"fontStyle\", \"\") + \" \" + this._getStyleProperty(\"fontWeight\", \"\") + \" \" + this.fontSizeInPixels + \"px \" + this._getStyleProperty(\"fontFamily\", \"Arial\"), this._fontOffset = Le._GetFontOffset(this._font, (t = (e = this._host) == null ? void 0 : e.getScene()) == null ? void 0 : t.getEngine()), this.getDescendants().forEach((i) => i._markAllAsDirty()));\n }\n /**\n * A control has a dimension fully defined if that dimension doesn't depend on the parent's dimension.\n * As an example, a control that has dimensions in pixels is fully defined, while in percentage is not fully defined.\n * @param dim the dimension to check (width or height)\n * @returns if the dimension is fully defined\n */\n isDimensionFullyDefined(e) {\n return this.getDimension(e).isPixel;\n }\n /**\n * Gets the dimension of the control along a specified axis\n * @param dim the dimension to retrieve (width or height)\n * @returns the dimension value along the specified axis\n */\n getDimension(e) {\n return e === \"width\" ? this._width : this._height;\n }\n /**\n * Clones a control and its descendants\n * @param host the texture where the control will be instantiated. Can be empty, in which case the control will be created on the same texture\n * @returns the cloned control\n */\n clone(e) {\n const t = {};\n this.serialize(t, !0);\n const i = J.Instantiate(\"BABYLON.GUI.\" + t.className), s = new i();\n return s.parse(t, e), s;\n }\n /**\n * Parses a serialized object into this control\n * @param serializedObject the object with the serialized properties\n * @param host the texture where the control will be instantiated. Can be empty, in which case the control will be created on the same texture\n * @param urlRewriter defines an url rewriter to update urls before sending them to the controls\n * @returns this control\n */\n parse(e, t, i) {\n return this._urlRewriter = i, Ae.Parse(() => this, e, null), this.name = e.name, this._parseFromContent(e, t ?? this._host), this;\n }\n /**\n * Serializes the current control\n * @param serializationObject defined the JSON serialized object\n * @param force if the control should be serialized even if the isSerializable flag is set to false (default false)\n * @param allowCanvas defines if the control is allowed to use a Canvas2D object to serialize (true by default)\n */\n serialize(e, t = !1, i = !0) {\n !this.isSerializable && !t || (Ae.Serialize(this, e), e.name = this.name, e.className = this.getClassName(), i && this._prepareFont(), this._fontFamily && (e.fontFamily = this._fontFamily), this.fontSize && (e.fontSize = this.fontSize), this.fontWeight && (e.fontWeight = this.fontWeight), this.fontStyle && (e.fontStyle = this.fontStyle), this._gradient && (e.gradient = {}, this._gradient.serialize(e.gradient)), Ae.AppendSerializedAnimations(this, e));\n }\n /**\n * @internal\n */\n _parseFromContent(e, t, i) {\n var s;\n if (e.fontFamily && (this.fontFamily = e.fontFamily), e.fontSize && (this.fontSize = e.fontSize), e.fontWeight && (this.fontWeight = e.fontWeight), e.fontStyle && (this.fontStyle = e.fontStyle), e.gradient) {\n const r = J.Instantiate(\"BABYLON.GUI.\" + e.gradient.className);\n this._gradient = new r(), (s = this._gradient) == null || s.parse(e.gradient);\n }\n if (e.animations) {\n this.animations = [];\n for (let r = 0; r < e.animations.length; r++) {\n const n = e.animations[r], o = Oi(\"BABYLON.Animation\");\n o && this.animations.push(o.Parse(n));\n }\n e.autoAnimate && this._host && this._host.getScene() && this._host.getScene().beginAnimation(this, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1);\n }\n this.fixedRatioMasterIsWidth = e.fixedRatioMasterIsWidth ?? this.fixedRatioMasterIsWidth;\n }\n /** Releases associated resources */\n dispose() {\n this.onDirtyObservable.clear(), this.onBeforeDrawObservable.clear(), this.onAfterDrawObservable.clear(), this.onPointerDownObservable.clear(), this.onPointerEnterObservable.clear(), this.onPointerMoveObservable.clear(), this.onPointerOutObservable.clear(), this.onPointerUpObservable.clear(), this.onPointerClickObservable.clear(), this.onWheelObservable.clear(), this.onBlurObservable.clear(), this.onFocusObservable.clear(), this.onKeyboardEventProcessedObservable.clear(), this._styleObserver && this._style && (this._style.onChangedObservable.remove(this._styleObserver), this._styleObserver = null), this.parent && (this.parent.removeControl(this), this.parent = null), this._host && this._host._linkedControls.indexOf(this) > -1 && this.linkWithMesh(null), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear();\n }\n /** HORIZONTAL_ALIGNMENT_LEFT */\n static get HORIZONTAL_ALIGNMENT_LEFT() {\n return Le._HORIZONTAL_ALIGNMENT_LEFT;\n }\n /** HORIZONTAL_ALIGNMENT_RIGHT */\n static get HORIZONTAL_ALIGNMENT_RIGHT() {\n return Le._HORIZONTAL_ALIGNMENT_RIGHT;\n }\n /** HORIZONTAL_ALIGNMENT_CENTER */\n static get HORIZONTAL_ALIGNMENT_CENTER() {\n return Le._HORIZONTAL_ALIGNMENT_CENTER;\n }\n /** VERTICAL_ALIGNMENT_TOP */\n static get VERTICAL_ALIGNMENT_TOP() {\n return Le._VERTICAL_ALIGNMENT_TOP;\n }\n /** VERTICAL_ALIGNMENT_BOTTOM */\n static get VERTICAL_ALIGNMENT_BOTTOM() {\n return Le._VERTICAL_ALIGNMENT_BOTTOM;\n }\n /** VERTICAL_ALIGNMENT_CENTER */\n static get VERTICAL_ALIGNMENT_CENTER() {\n return Le._VERTICAL_ALIGNMENT_CENTER;\n }\n /**\n * @internal\n */\n static _GetFontOffset(e, t) {\n if (Le._FontHeightSizes[e])\n return Le._FontHeightSizes[e];\n const i = t || Me.LastCreatedEngine;\n if (!i)\n throw new Error(\"Invalid engine. Unable to create a canvas.\");\n const s = i.getFontOffset(e);\n return Le._FontHeightSizes[e] = s, s;\n }\n /**\n * Creates a Control from parsed data\n * @param serializedObject defines parsed data\n * @param host defines the hosting AdvancedDynamicTexture\n * @param urlRewriter defines an url rewriter to update urls before sending them to the controls\n * @returns a new Control\n */\n static Parse(e, t, i) {\n const s = J.Instantiate(\"BABYLON.GUI.\" + e.className), r = Ae.Parse(() => {\n const n = new s();\n return n._urlRewriter = i, n;\n }, e, null);\n return r.name = e.name, r._parseFromContent(e, t, i), r;\n }\n /**\n * @internal\n */\n static drawEllipse(e, t, i, s, r, n) {\n n.translate(e, t), n.scale(i, s), n.beginPath(), n.arc(0, 0, 1, 0, 2 * Math.PI * r, r < 0), r >= 1 && n.closePath(), n.scale(1 / i, 1 / s), n.translate(-e, -t);\n }\n /**\n * Returns true if the control is ready to be used\n * @returns\n */\n isReady() {\n return !0;\n }\n}\nLe.AllowAlphaInheritance = !1;\nLe._ClipMeasure = new cr(0, 0, 0, 0);\nLe._HORIZONTAL_ALIGNMENT_LEFT = 0;\nLe._HORIZONTAL_ALIGNMENT_RIGHT = 1;\nLe._HORIZONTAL_ALIGNMENT_CENTER = 2;\nLe._VERTICAL_ALIGNMENT_TOP = 0;\nLe._VERTICAL_ALIGNMENT_BOTTOM = 1;\nLe._VERTICAL_ALIGNMENT_CENTER = 2;\nLe._FontHeightSizes = {};\nLe.AddHeader = () => {\n};\ny([\n I()\n], Le.prototype, \"metadata\", void 0);\ny([\n I()\n], Le.prototype, \"isHitTestVisible\", void 0);\ny([\n I()\n], Le.prototype, \"isPointerBlocker\", void 0);\ny([\n I()\n], Le.prototype, \"isFocusInvisible\", void 0);\ny([\n I()\n], Le.prototype, \"clipChildren\", null);\ny([\n I()\n], Le.prototype, \"clipContent\", null);\ny([\n I()\n], Le.prototype, \"useBitmapCache\", void 0);\ny([\n I()\n], Le.prototype, \"shadowOffsetX\", null);\ny([\n I()\n], Le.prototype, \"shadowOffsetY\", null);\ny([\n I()\n], Le.prototype, \"shadowBlur\", null);\ny([\n I()\n], Le.prototype, \"shadowColor\", null);\ny([\n I()\n], Le.prototype, \"hoverCursor\", void 0);\ny([\n I()\n], Le.prototype, \"fontOffset\", null);\ny([\n I()\n], Le.prototype, \"alpha\", null);\ny([\n I()\n], Le.prototype, \"isSerializable\", void 0);\ny([\n I()\n], Le.prototype, \"scaleX\", null);\ny([\n I()\n], Le.prototype, \"scaleY\", null);\ny([\n I()\n], Le.prototype, \"rotation\", null);\ny([\n I()\n], Le.prototype, \"transformCenterY\", null);\ny([\n I()\n], Le.prototype, \"transformCenterX\", null);\ny([\n I()\n], Le.prototype, \"horizontalAlignment\", null);\ny([\n I()\n], Le.prototype, \"verticalAlignment\", null);\ny([\n I()\n], Le.prototype, \"fixedRatio\", null);\ny([\n I()\n], Le.prototype, \"fixedRatioMasterIsWidth\", null);\ny([\n I()\n], Le.prototype, \"width\", null);\ny([\n I()\n], Le.prototype, \"height\", null);\ny([\n I()\n], Le.prototype, \"style\", null);\ny([\n I()\n], Le.prototype, \"color\", null);\ny([\n I()\n], Le.prototype, \"gradient\", null);\ny([\n I()\n], Le.prototype, \"zIndex\", null);\ny([\n I()\n], Le.prototype, \"notRenderable\", null);\ny([\n I()\n], Le.prototype, \"isVisible\", null);\ny([\n I()\n], Le.prototype, \"descendantsOnlyPadding\", null);\ny([\n I()\n], Le.prototype, \"paddingLeft\", null);\ny([\n I()\n], Le.prototype, \"paddingRight\", null);\ny([\n I()\n], Le.prototype, \"paddingTop\", null);\ny([\n I()\n], Le.prototype, \"paddingBottom\", null);\ny([\n I()\n], Le.prototype, \"left\", null);\ny([\n I()\n], Le.prototype, \"top\", null);\ny([\n I()\n], Le.prototype, \"linkOffsetX\", null);\ny([\n I()\n], Le.prototype, \"linkOffsetY\", null);\ny([\n I()\n], Le.prototype, \"isEnabled\", null);\ny([\n I()\n], Le.prototype, \"disabledColor\", null);\ny([\n I()\n], Le.prototype, \"disabledColorItem\", null);\ny([\n I()\n], Le.prototype, \"overlapGroup\", void 0);\ny([\n I()\n], Le.prototype, \"overlapDeltaMultiplier\", void 0);\nU(\"BABYLON.GUI.Control\", Le);\nvar Og;\n(function(a) {\n a[a.Clip = 0] = \"Clip\", a[a.WordWrap = 1] = \"WordWrap\", a[a.Ellipsis = 2] = \"Ellipsis\", a[a.WordWrapEllipsis = 3] = \"WordWrapEllipsis\";\n})(Og || (Og = {}));\nclass $r extends Le {\n /**\n * Return the line list (you may need to use the onLinesReadyObservable to make sure the list is ready)\n */\n get lines() {\n return this._lines;\n }\n /**\n * Gets or sets a boolean indicating that the TextBlock will be resized to fit its content\n \n */\n get resizeToFit() {\n return this._resizeToFit;\n }\n /**\n * Gets or sets a boolean indicating that the TextBlock will be resized to fit its content\n \n */\n set resizeToFit(e) {\n this._resizeToFit !== e && (this._resizeToFit = e, this._resizeToFit && (this._width.ignoreAdaptiveScaling = !0, this._height.ignoreAdaptiveScaling = !0), this._markAsDirty());\n }\n /**\n * Gets or sets a boolean indicating if text must be wrapped\n */\n get textWrapping() {\n return this._textWrapping;\n }\n /**\n * Gets or sets a boolean indicating if text must be wrapped\n */\n set textWrapping(e) {\n this._textWrapping !== e && (this._textWrapping = +e, this._markAsDirty());\n }\n /**\n * Gets or sets text to display\n */\n get text() {\n return this._text;\n }\n /**\n * Gets or sets text to display\n */\n set text(e) {\n this._text !== e && (this._text = e + \"\", this._markAsDirty(), this.onTextChangedObservable.notifyObservers(this));\n }\n /**\n * Gets or sets text horizontal alignment (BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_CENTER by default)\n */\n get textHorizontalAlignment() {\n return this._textHorizontalAlignment;\n }\n /**\n * Gets or sets text horizontal alignment (BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_CENTER by default)\n */\n set textHorizontalAlignment(e) {\n this._textHorizontalAlignment !== e && (this._textHorizontalAlignment = e, this._markAsDirty());\n }\n /**\n * Gets or sets text vertical alignment (BABYLON.GUI.Control.VERTICAL_ALIGNMENT_CENTER by default)\n */\n get textVerticalAlignment() {\n return this._textVerticalAlignment;\n }\n /**\n * Gets or sets text vertical alignment (BABYLON.GUI.Control.VERTICAL_ALIGNMENT_CENTER by default)\n */\n set textVerticalAlignment(e) {\n this._textVerticalAlignment !== e && (this._textVerticalAlignment = e, this._markAsDirty());\n }\n /**\n * Gets or sets line spacing value\n */\n set lineSpacing(e) {\n this._lineSpacing.fromString(e) && this._markAsDirty();\n }\n /**\n * Gets or sets line spacing value\n */\n get lineSpacing() {\n return this._lineSpacing.toString(this._host);\n }\n /**\n * Gets or sets outlineWidth of the text to display\n */\n get outlineWidth() {\n return this._outlineWidth;\n }\n /**\n * Gets or sets outlineWidth of the text to display\n */\n set outlineWidth(e) {\n this._outlineWidth !== e && (this._outlineWidth = e, this._markAsDirty());\n }\n /**\n * Gets or sets a boolean indicating that text must have underline\n */\n get underline() {\n return this._underline;\n }\n /**\n * Gets or sets a boolean indicating that text must have underline\n */\n set underline(e) {\n this._underline !== e && (this._underline = e, this._markAsDirty());\n }\n /**\n * Gets or sets an boolean indicating that text must be crossed out\n */\n get lineThrough() {\n return this._lineThrough;\n }\n /**\n * Gets or sets an boolean indicating that text must be crossed out\n */\n set lineThrough(e) {\n this._lineThrough !== e && (this._lineThrough = e, this._markAsDirty());\n }\n /**\n * If the outline should be applied to the underline/strike-through too. Has different behavior in Edge/Chrome vs Firefox.\n */\n get applyOutlineToUnderline() {\n return this._applyOutlineToUnderline;\n }\n set applyOutlineToUnderline(e) {\n this._applyOutlineToUnderline !== e && (this._applyOutlineToUnderline = e, this._markAsDirty());\n }\n /**\n * Gets or sets outlineColor of the text to display\n */\n get outlineColor() {\n return this._outlineColor;\n }\n /**\n * Gets or sets outlineColor of the text to display\n */\n set outlineColor(e) {\n this._outlineColor !== e && (this._outlineColor = e, this._markAsDirty());\n }\n /**\n * Gets or sets word divider\n */\n get wordDivider() {\n return this._wordDivider;\n }\n /**\n * Gets or sets word divider\n */\n set wordDivider(e) {\n this._wordDivider !== e && (this._wordDivider = e, this._markAsDirty());\n }\n /**\n * By default, if a text block has text wrapping other than Clip, its width\n * is not resized even if resizeToFit = true. This parameter forces the width\n * to be resized.\n */\n get forceResizeWidth() {\n return this._forceResizeWidth;\n }\n set forceResizeWidth(e) {\n this._forceResizeWidth !== e && (this._forceResizeWidth = e, this._markAsDirty());\n }\n /**\n * Creates a new TextBlock object\n * @param name defines the name of the control\n * @param text defines the text to display (empty string by default)\n */\n constructor(e, t = \"\") {\n super(e), this.name = e, this._text = \"\", this._textWrapping = 0, this._textHorizontalAlignment = Le.HORIZONTAL_ALIGNMENT_CENTER, this._textVerticalAlignment = Le.VERTICAL_ALIGNMENT_CENTER, this._resizeToFit = !1, this._lineSpacing = new li(0), this._outlineWidth = 0, this._outlineColor = \"white\", this._underline = !1, this._lineThrough = !1, this._wordDivider = \" \", this._forceResizeWidth = !1, this._applyOutlineToUnderline = !1, this.onTextChangedObservable = new G(), this.onLinesReadyObservable = new G(), this._linesTemp = [], this.text = t;\n }\n _getTypeName() {\n return \"TextBlock\";\n }\n _processMeasures(e, t) {\n var s;\n (!this._fontOffset || this.isDirty) && (this._fontOffset = Le._GetFontOffset(t.font, (s = this._host.getScene()) == null ? void 0 : s.getEngine())), super._processMeasures(e, t), this._lines = this._breakLines(this._currentMeasure.width, this._currentMeasure.height, t), this.onLinesReadyObservable.notifyObservers(this);\n let i = 0;\n for (let r = 0; r < this._lines.length; r++) {\n const n = this._lines[r];\n n.width > i && (i = n.width);\n }\n if (this._resizeToFit) {\n if (this._textWrapping === 0 || this._forceResizeWidth) {\n const n = Math.ceil(this._paddingLeftInPixels) + Math.ceil(this._paddingRightInPixels) + Math.ceil(i);\n n !== this._width.getValueInPixel(this._host, this._tempParentMeasure.width) && (this._width.updateInPlace(n, li.UNITMODE_PIXEL), this._rebuildLayout = !0);\n }\n let r = this._paddingTopInPixels + this._paddingBottomInPixels + this._fontOffset.height * this._lines.length | 0;\n if (this._lines.length > 0 && this._lineSpacing.internalValue !== 0) {\n let n = 0;\n this._lineSpacing.isPixel ? n = this._lineSpacing.getValue(this._host) : n = this._lineSpacing.getValue(this._host) * this._height.getValueInPixel(this._host, this._cachedParentMeasure.height), r += (this._lines.length - 1) * n;\n }\n r !== this._height.internalValue && (this._height.updateInPlace(r, li.UNITMODE_PIXEL), this._rebuildLayout = !0);\n }\n }\n _drawText(e, t, i, s) {\n const r = this._currentMeasure.width;\n let n = 0;\n switch (this._textHorizontalAlignment) {\n case Le.HORIZONTAL_ALIGNMENT_LEFT:\n n = 0;\n break;\n case Le.HORIZONTAL_ALIGNMENT_RIGHT:\n n = r - t;\n break;\n case Le.HORIZONTAL_ALIGNMENT_CENTER:\n n = (r - t) / 2;\n break;\n }\n (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) && (s.shadowColor = this.shadowColor, s.shadowBlur = this.shadowBlur, s.shadowOffsetX = this.shadowOffsetX, s.shadowOffsetY = this.shadowOffsetY), this.outlineWidth && s.strokeText(e, this._currentMeasure.left + n, i), s.fillText(e, this._currentMeasure.left + n, i), this._underline && this._drawLine(this._currentMeasure.left + n, i + 3, this._currentMeasure.left + n + t, i + 3, s), this._lineThrough && this._drawLine(this._currentMeasure.left + n, i - this.fontSizeInPixels / 3, this._currentMeasure.left + n + t, i - this.fontSizeInPixels / 3, s);\n }\n _drawLine(e, t, i, s, r) {\n if (r.beginPath(), r.lineWidth = Math.round(this.fontSizeInPixels * 0.05), r.moveTo(e, t), r.lineTo(i, s), this.outlineWidth && this.applyOutlineToUnderline)\n r.stroke(), r.fill();\n else {\n const n = r.strokeStyle;\n r.strokeStyle = r.fillStyle, r.stroke(), r.strokeStyle = n;\n }\n r.closePath();\n }\n /**\n * @internal\n */\n _draw(e) {\n e.save(), this._applyStates(e), this._renderLines(e), e.restore();\n }\n _applyStates(e) {\n super._applyStates(e), this.outlineWidth && (e.lineWidth = this.outlineWidth, e.strokeStyle = this.outlineColor, e.lineJoin = \"miter\", e.miterLimit = 2);\n }\n _breakLines(e, t, i) {\n this._linesTemp.length = 0;\n const s = this.text.split(`\n`);\n if (this._textWrapping === 2)\n for (const r of s)\n this._linesTemp.push(this._parseLineEllipsis(r, e, i));\n else if (this._textWrapping === 1)\n for (const r of s)\n this._linesTemp.push(...this._parseLineWordWrap(r, e, i));\n else if (this._textWrapping === 3)\n for (const r of s)\n this._linesTemp.push(...this._parseLineWordWrapEllipsis(r, e, t, i));\n else\n for (const r of s)\n this._linesTemp.push(this._parseLine(r, i));\n return this._linesTemp;\n }\n _parseLine(e = \"\", t) {\n return { text: e, width: this._getTextMetricsWidth(t.measureText(e)) };\n }\n //Calculate how many characters approximately we need to remove\n _getCharsToRemove(e, t, i) {\n const s = e > t ? e - t : 0, r = e / i;\n return Math.max(Math.floor(s / r), 1);\n }\n _parseLineEllipsis(e = \"\", t, i) {\n let s = this._getTextMetricsWidth(i.measureText(e)), r = this._getCharsToRemove(s, t, e.length);\n const n = Array.from && Array.from(e);\n if (n)\n for (; n.length && s > t; )\n n.splice(n.length - r, r), e = `${n.join(\"\")}…`, s = this._getTextMetricsWidth(i.measureText(e)), r = this._getCharsToRemove(s, t, e.length);\n else {\n for (; e.length > 2 && s > t; )\n e = e.slice(0, -r), s = this._getTextMetricsWidth(i.measureText(e + \"…\")), r = this._getCharsToRemove(s, t, e.length);\n e += \"…\";\n }\n return { text: e, width: s };\n }\n _getTextMetricsWidth(e) {\n return e.actualBoundingBoxLeft !== void 0 ? Math.abs(e.actualBoundingBoxLeft) + Math.abs(e.actualBoundingBoxRight) : e.width;\n }\n _parseLineWordWrap(e = \"\", t, i) {\n const s = [], r = this.wordSplittingFunction ? this.wordSplittingFunction(e) : e.split(this._wordDivider);\n let n = this._getTextMetricsWidth(i.measureText(e));\n for (let o = 0; o < r.length; o++) {\n const l = o > 0 ? e + this._wordDivider + r[o] : r[0], h = this._getTextMetricsWidth(i.measureText(l));\n h > t && o > 0 ? (s.push({ text: e, width: n }), e = r[o], n = this._getTextMetricsWidth(i.measureText(e))) : (n = h, e = l);\n }\n return s.push({ text: e, width: n }), s;\n }\n _parseLineWordWrapEllipsis(e = \"\", t, i, s) {\n const r = this._parseLineWordWrap(e, t, s);\n for (let n = 1; n <= r.length; n++)\n if (this._computeHeightForLinesOf(n) > i && n > 1) {\n const l = r[n - 2], h = r[n - 1];\n r[n - 2] = this._parseLineEllipsis(l.text + this._wordDivider + h.text, t, s);\n const c = r.length - n + 1;\n for (let u = 0; u < c; u++)\n r.pop();\n return r;\n }\n return r;\n }\n _renderLines(e) {\n if (!this._fontOffset || !this._lines)\n return;\n const t = this._currentMeasure.height;\n let i = 0;\n switch (this._textVerticalAlignment) {\n case Le.VERTICAL_ALIGNMENT_TOP:\n i = this._fontOffset.ascent;\n break;\n case Le.VERTICAL_ALIGNMENT_BOTTOM:\n i = t - this._fontOffset.height * (this._lines.length - 1) - this._fontOffset.descent;\n break;\n case Le.VERTICAL_ALIGNMENT_CENTER:\n i = this._fontOffset.ascent + (t - this._fontOffset.height * this._lines.length) / 2;\n break;\n }\n i += this._currentMeasure.top;\n for (let s = 0; s < this._lines.length; s++) {\n const r = this._lines[s];\n s !== 0 && this._lineSpacing.internalValue !== 0 && (this._lineSpacing.isPixel ? i += this._lineSpacing.getValue(this._host) : i = i + this._lineSpacing.getValue(this._host) * this._height.getValueInPixel(this._host, this._cachedParentMeasure.height)), this._drawText(r.text, r.width, i, e), i += this._fontOffset.height;\n }\n }\n _computeHeightForLinesOf(e) {\n let t = this._paddingTopInPixels + this._paddingBottomInPixels + this._fontOffset.height * e;\n if (e > 0 && this._lineSpacing.internalValue !== 0) {\n let i = 0;\n this._lineSpacing.isPixel ? i = this._lineSpacing.getValue(this._host) : i = this._lineSpacing.getValue(this._host) * this._height.getValueInPixel(this._host, this._cachedParentMeasure.height), t += (e - 1) * i;\n }\n return t;\n }\n isDimensionFullyDefined(e) {\n return this.resizeToFit ? !0 : super.isDimensionFullyDefined(e);\n }\n /**\n * Given a width constraint applied on the text block, find the expected height\n * @returns expected height\n */\n computeExpectedHeight() {\n var e, t;\n if (this.text && this.widthInPixels) {\n const i = (e = Me.LastCreatedEngine) == null ? void 0 : e.createCanvas(0, 0).getContext(\"2d\");\n if (i) {\n this._applyStates(i), this._fontOffset || (this._fontOffset = Le._GetFontOffset(i.font, (t = this._host.getScene()) == null ? void 0 : t.getEngine()));\n const s = this._lines ? this._lines : this._breakLines(this.widthInPixels - this._paddingLeftInPixels - this._paddingRightInPixels, this.heightInPixels - this._paddingTopInPixels - this._paddingBottomInPixels, i);\n return this._computeHeightForLinesOf(s.length);\n }\n }\n return 0;\n }\n dispose() {\n super.dispose(), this.onTextChangedObservable.clear();\n }\n}\ny([\n I()\n], $r.prototype, \"resizeToFit\", null);\ny([\n I()\n], $r.prototype, \"textWrapping\", null);\ny([\n I()\n], $r.prototype, \"text\", null);\ny([\n I()\n], $r.prototype, \"textHorizontalAlignment\", null);\ny([\n I()\n], $r.prototype, \"textVerticalAlignment\", null);\ny([\n I()\n], $r.prototype, \"lineSpacing\", null);\ny([\n I()\n], $r.prototype, \"outlineWidth\", null);\ny([\n I()\n], $r.prototype, \"underline\", null);\ny([\n I()\n], $r.prototype, \"lineThrough\", null);\ny([\n I()\n], $r.prototype, \"applyOutlineToUnderline\", null);\ny([\n I()\n], $r.prototype, \"outlineColor\", null);\ny([\n I()\n], $r.prototype, \"wordDivider\", null);\ny([\n I()\n], $r.prototype, \"forceResizeWidth\", null);\nU(\"BABYLON.GUI.TextBlock\", $r);\nclass so {\n}\nso.COPY = 1;\nso.CUT = 2;\nso.PASTE = 3;\nclass Wm {\n /**\n *Creates an instance of ClipboardInfo.\n * @param type Defines the type of event (BABYLON.ClipboardEventTypes)\n * @param event Defines the related dom event\n */\n constructor(e, t) {\n this.type = e, this.event = t;\n }\n /**\n * Get the clipboard event's type from the keycode.\n * @param keyCode Defines the keyCode for the current keyboard event.\n * @returns {number}\n */\n static GetTypeFromCharacter(e) {\n switch (e) {\n case 67:\n return so.COPY;\n case 86:\n return so.PASTE;\n case 88:\n return so.CUT;\n default:\n return -1;\n }\n }\n}\nclass ea extends X {\n /**\n * Creates a DynamicTexture\n * @param name defines the name of the texture\n * @param options provides 3 alternatives for width and height of texture, a canvas, object with width and height properties, number for both width and height\n * @param scene defines the scene where you want the texture\n * @param generateMipMaps defines the use of MinMaps or not (default is false)\n * @param samplingMode defines the sampling mode to use (default is Texture.TRILINEAR_SAMPLINGMODE)\n * @param format defines the texture format to use (default is Engine.TEXTUREFORMAT_RGBA)\n * @param invertY defines if the texture needs to be inverted on the y axis during loading\n */\n constructor(e, t, i = null, s = !1, r = 3, n = 5, o) {\n super(null, i, !s, o, r, void 0, void 0, void 0, void 0, n), this.name = e, this.wrapU = X.CLAMP_ADDRESSMODE, this.wrapV = X.CLAMP_ADDRESSMODE, this._generateMipMaps = s;\n const l = this._getEngine();\n if (!l)\n return;\n t.getContext ? (this._canvas = t, this._ownCanvas = !1, this._texture = l.createDynamicTexture(t.width, t.height, s, r)) : (this._canvas = l.createCanvas(1, 1), this._ownCanvas = !0, t.width || t.width === 0 ? this._texture = l.createDynamicTexture(t.width, t.height, s, r) : this._texture = l.createDynamicTexture(t, t, s, r));\n const h = this.getSize();\n this._canvas.width !== h.width && (this._canvas.width = h.width), this._canvas.height !== h.height && (this._canvas.height = h.height), this._context = this._canvas.getContext(\"2d\");\n }\n /**\n * Get the current class name of the texture useful for serialization or dynamic coding.\n * @returns \"DynamicTexture\"\n */\n getClassName() {\n return \"DynamicTexture\";\n }\n /**\n * Gets the current state of canRescale\n */\n get canRescale() {\n return !0;\n }\n _recreate(e) {\n this._canvas.width = e.width, this._canvas.height = e.height, this.releaseInternalTexture(), this._texture = this._getEngine().createDynamicTexture(e.width, e.height, this._generateMipMaps, this.samplingMode);\n }\n /**\n * Scales the texture\n * @param ratio the scale factor to apply to both width and height\n */\n scale(e) {\n const t = this.getSize();\n t.width *= e, t.height *= e, this._recreate(t);\n }\n /**\n * Resizes the texture\n * @param width the new width\n * @param height the new height\n */\n scaleTo(e, t) {\n const i = this.getSize();\n i.width = e, i.height = t, this._recreate(i);\n }\n /**\n * Gets the context of the canvas used by the texture\n * @returns the canvas context of the dynamic texture\n */\n getContext() {\n return this._context;\n }\n /**\n * Clears the texture\n * @param clearColor Defines the clear color to use\n */\n clear(e) {\n const t = this.getSize();\n e && (this._context.fillStyle = e), this._context.clearRect(0, 0, t.width, t.height);\n }\n /**\n * Updates the texture\n * @param invertY defines the direction for the Y axis (default is true - y increases downwards)\n * @param premulAlpha defines if alpha is stored as premultiplied (default is false)\n * @param allowGPUOptimization true to allow some specific GPU optimizations (subject to engine feature \"allowGPUOptimizationsForGUI\" being true)\n */\n update(e, t = !1, i = !1) {\n this._getEngine().updateDynamicTexture(this._texture, this._canvas, e === void 0 ? !0 : e, t, this._format || void 0, void 0, i);\n }\n /**\n * Draws text onto the texture\n * @param text defines the text to be drawn\n * @param x defines the placement of the text from the left\n * @param y defines the placement of the text from the top when invertY is true and from the bottom when false\n * @param font defines the font to be used with font-style, font-size, font-name\n * @param color defines the color used for the text\n * @param fillColor defines the color for the canvas, use null to not overwrite canvas (this bleands with the background to replace, use the clear function)\n * @param invertY defines the direction for the Y axis (default is true - y increases downwards)\n * @param update defines whether texture is immediately update (default is true)\n */\n drawText(e, t, i, s, r, n, o, l = !0) {\n const h = this.getSize();\n if (n && (this._context.fillStyle = n, this._context.fillRect(0, 0, h.width, h.height)), this._context.font = s, t == null) {\n const c = this._context.measureText(e);\n t = (h.width - c.width) / 2;\n }\n if (i == null) {\n const c = parseInt(s.replace(/\\D/g, \"\"));\n i = h.height / 2 + c / 3.65;\n }\n this._context.fillStyle = r || \"\", this._context.fillText(e, t, i), l && this.update(o);\n }\n /**\n * Disposes the dynamic texture.\n */\n dispose() {\n var e, t;\n super.dispose(), this._ownCanvas && ((t = (e = this._canvas) == null ? void 0 : e.remove) == null || t.call(e)), this._canvas = null, this._context = null;\n }\n /**\n * Clones the texture\n * @returns the clone of the texture.\n */\n clone() {\n const e = this.getScene();\n if (!e)\n return this;\n const t = this.getSize(), i = new ea(this.name, t, e, this._generateMipMaps);\n return i.hasAlpha = this.hasAlpha, i.level = this.level, i.wrapU = this.wrapU, i.wrapV = this.wrapV, i;\n }\n /**\n * Serializes the dynamic texture. The scene should be ready before the dynamic texture is serialized\n * @returns a serialized dynamic texture object\n */\n serialize() {\n const e = this.getScene();\n e && !e.isReady() && L.Warn(\"The scene must be ready before serializing the dynamic texture\");\n const t = super.serialize();\n return ea._IsCanvasElement(this._canvas) && (t.base64String = this._canvas.toDataURL()), t.invertY = this._invertY, t.samplingMode = this.samplingMode, t;\n }\n static _IsCanvasElement(e) {\n return e.toDataURL !== void 0;\n }\n /** @internal */\n _rebuild() {\n this.update();\n }\n}\nclass X1 {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_LAYER, this.scene = e || Me.LastCreatedScene, this.scene && (this._engine = this.scene.getEngine(), this.scene.layers = []);\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._beforeCameraDrawStage.registerStep(me.STEP_BEFORECAMERADRAW_LAYER, this, this._drawCameraBackground), this.scene._afterCameraDrawStage.registerStep(me.STEP_AFTERCAMERADRAW_LAYER, this, this._drawCameraForegroundWithPostProcessing), this.scene._afterCameraPostProcessStage.registerStep(me.STEP_AFTERCAMERAPOSTPROCESS_LAYER, this, this._drawCameraForegroundWithoutPostProcessing), this.scene._beforeRenderTargetDrawStage.registerStep(me.STEP_BEFORERENDERTARGETDRAW_LAYER, this, this._drawRenderTargetBackground), this.scene._afterRenderTargetDrawStage.registerStep(me.STEP_AFTERRENDERTARGETDRAW_LAYER, this, this._drawRenderTargetForegroundWithPostProcessing), this.scene._afterRenderTargetPostProcessStage.registerStep(me.STEP_AFTERRENDERTARGETPOSTPROCESS_LAYER, this, this._drawRenderTargetForegroundWithoutPostProcessing);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n const e = this.scene.layers;\n for (const t of e)\n t._rebuild();\n }\n /**\n * Disposes the component and the associated resources.\n */\n dispose() {\n const e = this.scene.layers;\n for (; e.length; )\n e[0].dispose();\n }\n _draw(e) {\n const t = this.scene.layers;\n if (t.length) {\n this._engine.setDepthBuffer(!1);\n for (const i of t)\n e(i) && i.render();\n this._engine.setDepthBuffer(!0);\n }\n }\n _drawCameraPredicate(e, t, i, s) {\n return !e.renderOnlyInRenderTargetTextures && e.isBackground === t && e.applyPostProcess === i && (e.layerMask & s) !== 0;\n }\n _drawCameraBackground(e) {\n this._draw((t) => this._drawCameraPredicate(t, !0, !0, e.layerMask));\n }\n _drawCameraForegroundWithPostProcessing(e) {\n this._draw((t) => this._drawCameraPredicate(t, !1, !0, e.layerMask));\n }\n _drawCameraForegroundWithoutPostProcessing(e) {\n this._draw((t) => this._drawCameraPredicate(t, !1, !1, e.layerMask));\n }\n _drawRenderTargetPredicate(e, t, i, s, r) {\n return e.renderTargetTextures.length > 0 && e.isBackground === t && e.applyPostProcess === i && e.renderTargetTextures.indexOf(r) > -1 && (e.layerMask & s) !== 0;\n }\n _drawRenderTargetBackground(e) {\n this._draw((t) => this._drawRenderTargetPredicate(t, !0, !0, this.scene.activeCamera.layerMask, e));\n }\n _drawRenderTargetForegroundWithPostProcessing(e) {\n this._draw((t) => this._drawRenderTargetPredicate(t, !1, !0, this.scene.activeCamera.layerMask, e));\n }\n _drawRenderTargetForegroundWithoutPostProcessing(e) {\n this._draw((t) => this._drawRenderTargetPredicate(t, !1, !1, this.scene.activeCamera.layerMask, e));\n }\n /**\n * Adds all the elements from the container to the scene\n * @param container the container holding the elements\n */\n addFromContainer(e) {\n e.layers && e.layers.forEach((t) => {\n this.scene.layers.push(t);\n });\n }\n /**\n * Removes all the elements in the container from the scene\n * @param container contains the elements to remove\n * @param dispose if the removed element should be disposed (default: false)\n */\n removeFromContainer(e, t = !1) {\n e.layers && e.layers.forEach((i) => {\n const s = this.scene.layers.indexOf(i);\n s !== -1 && this.scene.layers.splice(s, 1), t && i.dispose();\n });\n }\n}\nconst $1 = \"layerPixelShader\", Y1 = `varying vec2 vUV;uniform sampler2D textureSampler;uniform vec4 color;\n#include\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nvec4 baseColor=texture2D(textureSampler,vUV);\n#ifdef LINEAR\nbaseColor.rgb=toGammaSpace(baseColor.rgb);\n#endif\n#ifdef ALPHATEST\nif (baseColor.a<0.4)\ndiscard;\n#endif\ngl_FragColor=baseColor*color;\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\nz.ShadersStore[$1] = Y1;\nconst j1 = \"layerVertexShader\", K1 = `attribute vec2 position;uniform vec2 scale;uniform vec2 offset;uniform mat4 textureMatrix;varying vec2 vUV;const vec2 madd=vec2(0.5,0.5);\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvec2 shiftedPosition=position*scale+offset;vUV=vec2(textureMatrix*vec4(shiftedPosition*madd+madd,1.0,0.0));gl_Position=vec4(shiftedPosition,0.0,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}`;\nz.ShadersStore[j1] = K1;\nclass L0 {\n /**\n * Determines if the layer is drawn before (true) or after (false) post-processing.\n * If the layer is background, it is always before.\n */\n set applyPostProcess(e) {\n this._applyPostProcess = e;\n }\n get applyPostProcess() {\n return this.isBackground || this._applyPostProcess;\n }\n /**\n * Back compatibility with callback before the onDisposeObservable existed.\n * The set callback will be triggered when the layer has been disposed.\n */\n set onDispose(e) {\n this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), this._onDisposeObserver = this.onDisposeObservable.add(e);\n }\n /**\n * Back compatibility with callback before the onBeforeRenderObservable existed.\n * The set callback will be triggered just before rendering the layer.\n */\n set onBeforeRender(e) {\n this._onBeforeRenderObserver && this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver), this._onBeforeRenderObserver = this.onBeforeRenderObservable.add(e);\n }\n /**\n * Back compatibility with callback before the onAfterRenderObservable existed.\n * The set callback will be triggered just after rendering the layer.\n */\n set onAfterRender(e) {\n this._onAfterRenderObserver && this.onAfterRenderObservable.remove(this._onAfterRenderObserver), this._onAfterRenderObserver = this.onAfterRenderObservable.add(e);\n }\n /**\n * Instantiates a new layer.\n * This represents a full screen 2d layer.\n * This can be useful to display a picture in the background of your scene for instance.\n * @see https://www.babylonjs-playground.com/#08A2BS#1\n * @param name Define the name of the layer in the scene\n * @param imgUrl Define the url of the texture to display in the layer\n * @param scene Define the scene the layer belongs to\n * @param isBackground Defines whether the layer is displayed in front or behind the scene\n * @param color Defines a color for the layer\n */\n constructor(e, t, i, s, r) {\n this.name = e, this._applyPostProcess = !0, this.scale = new Q(1, 1), this.offset = new Q(0, 0), this.alphaBlendingMode = 2, this.layerMask = 268435455, this.renderTargetTextures = [], this.renderOnlyInRenderTargetTextures = !1, this.isEnabled = !0, this._vertexBuffers = {}, this.onDisposeObservable = new G(), this.onBeforeRenderObservable = new G(), this.onAfterRenderObservable = new G(), this.texture = t ? new X(t, i, !0) : null, this.isBackground = s === void 0 ? !0 : s, this.color = r === void 0 ? new Ce(1, 1, 1, 1) : r, this._scene = i || Me.LastCreatedScene;\n let n = this._scene._getComponent(me.NAME_LAYER);\n n || (n = new X1(this._scene), this._scene._addComponent(n)), this._scene.layers.push(this);\n const o = this._scene.getEngine();\n this._drawWrapper = new Ds(o);\n const l = [];\n l.push(1, 1), l.push(-1, 1), l.push(-1, -1), l.push(1, -1);\n const h = new R(o, l, R.PositionKind, !1, !1, 2);\n this._vertexBuffers[R.PositionKind] = h, this._createIndexBuffer();\n }\n _createIndexBuffer() {\n const e = this._scene.getEngine(), t = [];\n t.push(0), t.push(1), t.push(2), t.push(0), t.push(2), t.push(3), this._indexBuffer = e.createIndexBuffer(t);\n }\n /** @internal */\n _rebuild() {\n const e = this._vertexBuffers[R.PositionKind];\n e && e._rebuild(), this._createIndexBuffer();\n }\n /**\n * Checks if the layer is ready to be rendered\n * @returns true if the layer is ready. False otherwise.\n */\n isReady() {\n const e = this._scene.getEngine();\n let t = \"\";\n this.alphaTest && (t = \"#define ALPHATEST\"), this.texture && !this.texture.gammaSpace && (t += `\n#define LINEAR`), this._previousDefines !== t && (this._previousDefines = t, this._drawWrapper.effect = e.createEffect(\"layer\", [R.PositionKind], [\"textureMatrix\", \"color\", \"scale\", \"offset\"], [\"textureSampler\"], t));\n const i = this._drawWrapper.effect;\n return (i == null ? void 0 : i.isReady()) && (!this.texture || this.texture.isReady());\n }\n /**\n * Renders the layer in the scene.\n */\n render() {\n if (!this.isEnabled)\n return;\n const e = this._scene.getEngine();\n if (!this.isReady())\n return;\n const t = this._drawWrapper.effect;\n this.onBeforeRenderObservable.notifyObservers(this), e.enableEffect(this._drawWrapper), e.setState(!1), this.texture && (t.setTexture(\"textureSampler\", this.texture), t.setMatrix(\"textureMatrix\", this.texture.getTextureMatrix())), t.setFloat4(\"color\", this.color.r, this.color.g, this.color.b, this.color.a), t.setVector2(\"offset\", this.offset), t.setVector2(\"scale\", this.scale), e.bindBuffers(this._vertexBuffers, this._indexBuffer, t), this.alphaTest ? e.drawElementsType(ue.TriangleFillMode, 0, 6) : (e.setAlphaMode(this.alphaBlendingMode), e.drawElementsType(ue.TriangleFillMode, 0, 6), e.setAlphaMode(0)), this.onAfterRenderObservable.notifyObservers(this);\n }\n /**\n * Disposes and releases the associated resources.\n */\n dispose() {\n const e = this._vertexBuffers[R.PositionKind];\n e && (e.dispose(), this._vertexBuffers[R.PositionKind] = null), this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), this._indexBuffer = null), this.texture && (this.texture.dispose(), this.texture = null), this.renderTargetTextures = [];\n const t = this._scene.layers.indexOf(this);\n this._scene.layers.splice(t, 1), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this.onAfterRenderObservable.clear(), this.onBeforeRenderObservable.clear();\n }\n}\nclass wa extends Le {\n /** Gets or sets boolean indicating if children should be rendered to an intermediate texture rather than directly to host, useful for alpha blending */\n get renderToIntermediateTexture() {\n return this._renderToIntermediateTexture;\n }\n set renderToIntermediateTexture(e) {\n this._renderToIntermediateTexture !== e && (this._renderToIntermediateTexture = e, this._markAsDirty());\n }\n /** Gets or sets a boolean indicating if the container should try to adapt to its children height */\n get adaptHeightToChildren() {\n return this._adaptHeightToChildren;\n }\n set adaptHeightToChildren(e) {\n this._adaptHeightToChildren !== e && (this._adaptHeightToChildren = e, e && (this.height = \"100%\"), this._markAsDirty());\n }\n /** Gets or sets a boolean indicating if the container should try to adapt to its children width */\n get adaptWidthToChildren() {\n return this._adaptWidthToChildren;\n }\n set adaptWidthToChildren(e) {\n this._adaptWidthToChildren !== e && (this._adaptWidthToChildren = e, e && (this.width = \"100%\"), this._markAsDirty());\n }\n /** Gets or sets background color */\n get background() {\n return this._background;\n }\n set background(e) {\n this._background !== e && (this._background = e, this._markAsDirty());\n }\n /** Gets or sets background gradient color. Takes precedence over background */\n get backgroundGradient() {\n return this._backgroundGradient;\n }\n set backgroundGradient(e) {\n this._backgroundGradient !== e && (this._backgroundGradient = e, this._markAsDirty());\n }\n /** Gets the list of children */\n get children() {\n return this._children;\n }\n get isReadOnly() {\n return this._isReadOnly;\n }\n set isReadOnly(e) {\n this._isReadOnly = e;\n for (const t of this._children)\n t.isReadOnly = e;\n }\n /**\n * Creates a new Container\n * @param name defines the name of the container\n */\n constructor(e) {\n super(e), this.name = e, this._children = new Array(), this._measureForChildren = cr.Empty(), this._background = \"\", this._backgroundGradient = null, this._adaptWidthToChildren = !1, this._adaptHeightToChildren = !1, this._renderToIntermediateTexture = !1, this._intermediateTexture = null, this.delegatePickingToChildren = !1, this.logLayoutCycleErrors = !1, this.maxLayoutCycle = 3, this.onControlAddedObservable = new G(), this.onControlRemovedObservable = new G(), this._inverseTransformMatrix = Xt.Identity(), this._inverseMeasure = new cr(0, 0, 0, 0);\n }\n _getTypeName() {\n return \"Container\";\n }\n _flagDescendantsAsMatrixDirty() {\n for (const e of this.children)\n e._isClipped = !1, e._markMatrixAsDirty();\n }\n /**\n * Gets a child using its name\n * @param name defines the child name to look for\n * @returns the child control if found\n */\n getChildByName(e) {\n for (const t of this.children)\n if (t.name === e)\n return t;\n return null;\n }\n /**\n * Gets a child using its type and its name\n * @param name defines the child name to look for\n * @param type defines the child type to look for\n * @returns the child control if found\n */\n getChildByType(e, t) {\n for (const i of this.children)\n if (i.typeName === t)\n return i;\n return null;\n }\n /**\n * Search for a specific control in children\n * @param control defines the control to look for\n * @returns true if the control is in child list\n */\n containsControl(e) {\n return this.children.indexOf(e) !== -1;\n }\n /**\n * Adds a new control to the current container\n * @param control defines the control to add\n * @returns the current container\n */\n addControl(e) {\n return e ? this._children.indexOf(e) !== -1 ? this : (e._link(this._host), e._markAllAsDirty(), this._reOrderControl(e), this._markAsDirty(), this.onControlAddedObservable.notifyObservers(e), this) : this;\n }\n /**\n * Removes all controls from the current container\n * @returns the current container\n */\n clearControls() {\n const e = this.children.slice();\n for (const t of e)\n this.removeControl(t);\n return this;\n }\n /**\n * Removes a control from the current container\n * @param control defines the control to remove\n * @returns the current container\n */\n removeControl(e) {\n const t = this._children.indexOf(e);\n return t !== -1 && (this._children.splice(t, 1), e.parent = null), e.linkWithMesh(null), this._host && this._host._cleanControlAfterRemoval(e), this._markAsDirty(), this.onControlRemovedObservable.notifyObservers(e), this;\n }\n /**\n * @internal\n */\n _reOrderControl(e) {\n const t = e.linkedMesh;\n this.removeControl(e);\n let i = !1;\n for (let s = 0; s < this._children.length; s++)\n if (this._children[s].zIndex > e.zIndex) {\n this._children.splice(s, 0, e), i = !0;\n break;\n }\n i || this._children.push(e), e.parent = this, t && e.linkWithMesh(t), this._markAsDirty();\n }\n /**\n * @internal\n */\n _offsetLeft(e) {\n super._offsetLeft(e);\n for (const t of this._children)\n t._offsetLeft(e);\n }\n /**\n * @internal\n */\n _offsetTop(e) {\n super._offsetTop(e);\n for (const t of this._children)\n t._offsetTop(e);\n }\n /** @internal */\n _markAllAsDirty() {\n super._markAllAsDirty();\n for (let e = 0; e < this._children.length; e++)\n this._children[e]._markAllAsDirty();\n }\n _getBackgroundColor(e) {\n return this._backgroundGradient ? this._backgroundGradient.getCanvasGradient(e) : this._background;\n }\n /**\n * @internal\n */\n _localDraw(e) {\n (this._background || this._backgroundGradient) && (e.save(), (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) && (e.shadowColor = this.shadowColor, e.shadowBlur = this.shadowBlur, e.shadowOffsetX = this.shadowOffsetX, e.shadowOffsetY = this.shadowOffsetY), e.fillStyle = this._getBackgroundColor(e), e.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height), e.restore());\n }\n /**\n * @internal\n */\n _link(e) {\n super._link(e);\n for (const t of this._children)\n t._link(e);\n }\n /** @internal */\n _beforeLayout() {\n }\n /**\n * @internal\n */\n _processMeasures(e, t) {\n (this._isDirty || !this._cachedParentMeasure.isEqualsTo(e)) && (super._processMeasures(e, t), this._evaluateClippingState(e), this._renderToIntermediateTexture && (this._intermediateTexture && this._host.getScene() != this._intermediateTexture.getScene() && (this._intermediateTexture.dispose(), this._intermediateTexture = null), this._intermediateTexture ? this._intermediateTexture.scaleTo(this._currentMeasure.width, this._currentMeasure.height) : (this._intermediateTexture = new ea(\"\", { width: this._currentMeasure.width, height: this._currentMeasure.height }, this._host.getScene(), !1, X.NEAREST_SAMPLINGMODE, q.TEXTUREFORMAT_RGBA, !1), this._intermediateTexture.hasAlpha = !0)));\n }\n /**\n * @internal\n */\n _layout(e, t) {\n var s, r;\n if (!this.isDirty && (!this.isVisible || this.notRenderable))\n return !1;\n this.host._numLayoutCalls++, this._isDirty && this._currentMeasure.transformToRef(this._transformMatrix, this._prevCurrentMeasureTransformedIntoGlobalSpace);\n let i = 0;\n t.save(), this._applyStates(t), this._beforeLayout();\n do {\n let n = -1, o = -1;\n if (this._rebuildLayout = !1, this._processMeasures(e, t), !this._isClipped) {\n for (const l of this._children)\n l._tempParentMeasure.copyFrom(this._measureForChildren), l._layout(this._measureForChildren, t) && l.isVisible && !l.notRenderable && (this.adaptWidthToChildren && l._width.isPixel && (n = Math.max(n, l._currentMeasure.width + l._paddingLeftInPixels + l._paddingRightInPixels)), this.adaptHeightToChildren && l._height.isPixel && (o = Math.max(o, l._currentMeasure.height + l._paddingTopInPixels + l._paddingBottomInPixels)));\n this.adaptWidthToChildren && n >= 0 && (n += this.paddingLeftInPixels + this.paddingRightInPixels, this.width !== n + \"px\" && ((s = this.parent) == null || s._markAsDirty(), this.width = n + \"px\", this._width.ignoreAdaptiveScaling = !0, this._rebuildLayout = !0)), this.adaptHeightToChildren && o >= 0 && (o += this.paddingTopInPixels + this.paddingBottomInPixels, this.height !== o + \"px\" && ((r = this.parent) == null || r._markAsDirty(), this.height = o + \"px\", this._height.ignoreAdaptiveScaling = !0, this._rebuildLayout = !0)), this._postMeasure();\n }\n i++;\n } while (this._rebuildLayout && i < this.maxLayoutCycle);\n return i >= 3 && this.logLayoutCycleErrors && L.Error(`Layout cycle detected in GUI (Container name=${this.name}, uniqueId=${this.uniqueId})`), t.restore(), this._isDirty && (this.invalidateRect(), this._isDirty = !1), !0;\n }\n _postMeasure() {\n }\n /**\n * @internal\n */\n _draw(e, t) {\n const i = this._renderToIntermediateTexture && this._intermediateTexture, s = i ? this._intermediateTexture.getContext() : e;\n i && (s.save(), s.translate(-this._currentMeasure.left, -this._currentMeasure.top), t ? (this._transformMatrix.invertToRef(this._inverseTransformMatrix), t.transformToRef(this._inverseTransformMatrix, this._inverseMeasure), s.clearRect(this._inverseMeasure.left, this._inverseMeasure.top, this._inverseMeasure.width, this._inverseMeasure.height)) : s.clearRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height)), this._localDraw(s), e.save(), this.clipChildren && this._clipForChildren(s);\n for (const r of this._children)\n t && !r._intersectsRect(t) || r._render(s, t);\n i && (s.restore(), e.save(), e.globalAlpha = this.alpha, e.drawImage(s.canvas, this._currentMeasure.left, this._currentMeasure.top), e.restore()), e.restore();\n }\n getDescendantsToRef(e, t = !1, i) {\n if (this.children)\n for (let s = 0; s < this.children.length; s++) {\n const r = this.children[s];\n (!i || i(r)) && e.push(r), t || r.getDescendantsToRef(e, !1, i);\n }\n }\n /**\n * @internal\n */\n _processPicking(e, t, i, s, r, n, o, l) {\n if (!this._isEnabled || !this.isVisible || this.notRenderable)\n return !1;\n const h = super.contains(e, t);\n if (!h && this.clipChildren)\n return !1;\n if (this.delegatePickingToChildren) {\n let c = !1;\n for (let u = this._children.length - 1; u >= 0; u--) {\n const d = this._children[u];\n if (d.isEnabled && d.isHitTestVisible && d.isVisible && !d.notRenderable && d.contains(e, t)) {\n c = !0;\n break;\n }\n }\n if (!c)\n return !1;\n }\n for (let c = this._children.length - 1; c >= 0; c--) {\n const u = this._children[c];\n if (u._processPicking(e, t, i, s, r, n, o, l))\n return u.hoverCursor && this._host._changeCursor(u.hoverCursor), !0;\n }\n return !h || !this.isHitTestVisible ? !1 : this._processObservables(s, e, t, i, r, n, o, l);\n }\n /**\n * @internal\n */\n _additionalProcessing(e, t) {\n super._additionalProcessing(e, t), this._measureForChildren.copyFrom(this._currentMeasure);\n }\n _getAdaptDimTo(e) {\n return e === \"width\" ? this.adaptWidthToChildren : this.adaptHeightToChildren;\n }\n isDimensionFullyDefined(e) {\n if (this._getAdaptDimTo(e)) {\n for (const t of this.children)\n if (!t.isDimensionFullyDefined(e))\n return !1;\n return !0;\n }\n return super.isDimensionFullyDefined(e);\n }\n /**\n * Serializes the current control\n * @param serializationObject defined the JSON serialized object\n * @param force force serialization even if isSerializable === false\n * @param allowCanvas defines if the control is allowed to use a Canvas2D object to serialize (true by default)\n */\n serialize(e, t = !1, i = !0) {\n if (super.serialize(e, t, i), !(!this.isSerializable && !t) && (this.backgroundGradient && (e.backgroundGradient = {}, this.backgroundGradient.serialize(e.backgroundGradient)), !!this.children.length)) {\n e.children = [];\n for (const s of this.children)\n if (s.isSerializable || t) {\n const r = {};\n s.serialize(r, t, i), e.children.push(r);\n }\n }\n }\n /** Releases associated resources */\n dispose() {\n var e;\n super.dispose();\n for (let t = this.children.length - 1; t >= 0; t--)\n this.children[t].dispose();\n (e = this._intermediateTexture) == null || e.dispose();\n }\n /**\n * @internal\n */\n _parseFromContent(e, t, i) {\n var s;\n if (super._parseFromContent(e, t, i), this._link(t), e.backgroundGradient) {\n const r = J.Instantiate(\"BABYLON.GUI.\" + e.backgroundGradient.className);\n this._backgroundGradient = new r(), (s = this._backgroundGradient) == null || s.parse(e.backgroundGradient);\n }\n if (e.children)\n for (const r of e.children)\n this.addControl(Le.Parse(r, t, i));\n }\n isReady() {\n for (const e of this.children)\n if (!e.isReady())\n return !1;\n return !0;\n }\n}\ny([\n I()\n], wa.prototype, \"delegatePickingToChildren\", void 0);\ny([\n I()\n], wa.prototype, \"renderToIntermediateTexture\", null);\ny([\n I()\n], wa.prototype, \"maxLayoutCycle\", void 0);\ny([\n I()\n], wa.prototype, \"adaptHeightToChildren\", null);\ny([\n I()\n], wa.prototype, \"adaptWidthToChildren\", null);\ny([\n I()\n], wa.prototype, \"background\", null);\ny([\n I()\n], wa.prototype, \"backgroundGradient\", null);\nU(\"BABYLON.GUI.Container\", wa);\nclass q1 {\n /**\n * Creates a new style object\n * @param host defines the AdvancedDynamicTexture which hosts this style\n */\n constructor(e) {\n this._fontFamily = \"Arial\", this._fontStyle = \"\", this._fontWeight = \"\", this._fontSize = new li(18, li.UNITMODE_PIXEL, !1), this.onChangedObservable = new G(), this._host = e;\n }\n /**\n * Gets or sets the font size\n */\n get fontSize() {\n return this._fontSize.toString(this._host);\n }\n set fontSize(e) {\n this._fontSize.toString(this._host) !== e && this._fontSize.fromString(e) && this.onChangedObservable.notifyObservers(this);\n }\n /**\n * Gets or sets the font family\n */\n get fontFamily() {\n return this._fontFamily;\n }\n set fontFamily(e) {\n this._fontFamily !== e && (this._fontFamily = e, this.onChangedObservable.notifyObservers(this));\n }\n /**\n * Gets or sets the font style\n */\n get fontStyle() {\n return this._fontStyle;\n }\n set fontStyle(e) {\n this._fontStyle !== e && (this._fontStyle = e, this.onChangedObservable.notifyObservers(this));\n }\n /** Gets or sets font weight */\n get fontWeight() {\n return this._fontWeight;\n }\n set fontWeight(e) {\n this._fontWeight !== e && (this._fontWeight = e, this.onChangedObservable.notifyObservers(this));\n }\n /** Dispose all associated resources */\n dispose() {\n this.onChangedObservable.clear();\n }\n}\nclass ir extends ea {\n /** Gets the number of layout calls made the last time the ADT has been rendered */\n get numLayoutCalls() {\n return this._numLayoutCalls;\n }\n /** Gets the number of render calls made the last time the ADT has been rendered */\n get numRenderCalls() {\n return this._numRenderCalls;\n }\n /**\n * Gets or sets a number used to scale rendering size (2 means that the texture will be twice bigger).\n * Useful when you want more antialiasing\n */\n get renderScale() {\n return this._renderScale;\n }\n set renderScale(e) {\n e !== this._renderScale && (this._renderScale = e, this._onResize());\n }\n /** Gets or sets the background color */\n get background() {\n return this._background;\n }\n set background(e) {\n this._background !== e && (this._background = e, this.markAsDirty());\n }\n /**\n * Gets or sets the ideal width used to design controls.\n * The GUI will then rescale everything accordingly\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#adaptive-scaling\n */\n get idealWidth() {\n return this._idealWidth;\n }\n set idealWidth(e) {\n this._idealWidth !== e && (this._idealWidth = e, this.markAsDirty(), this._rootContainer._markAllAsDirty());\n }\n /**\n * Gets or sets the ideal height used to design controls.\n * The GUI will then rescale everything accordingly\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#adaptive-scaling\n */\n get idealHeight() {\n return this._idealHeight;\n }\n set idealHeight(e) {\n this._idealHeight !== e && (this._idealHeight = e, this.markAsDirty(), this._rootContainer._markAllAsDirty());\n }\n /**\n * Gets or sets a boolean indicating if the smallest ideal value must be used if idealWidth and idealHeight are both set\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#adaptive-scaling\n */\n get useSmallestIdeal() {\n return this._useSmallestIdeal;\n }\n set useSmallestIdeal(e) {\n this._useSmallestIdeal !== e && (this._useSmallestIdeal = e, this.markAsDirty(), this._rootContainer._markAllAsDirty());\n }\n /**\n * Gets or sets a boolean indicating if adaptive scaling must be used\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#adaptive-scaling\n */\n get renderAtIdealSize() {\n return this._renderAtIdealSize;\n }\n set renderAtIdealSize(e) {\n this._renderAtIdealSize !== e && (this._renderAtIdealSize = e, this._onResize());\n }\n /**\n * Gets the ratio used when in \"ideal mode\"\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#adaptive-scaling\n * */\n get idealRatio() {\n let e = 0, t = 0;\n return this._idealWidth && (e = this.getSize().width / this._idealWidth), this._idealHeight && (t = this.getSize().height / this._idealHeight), this._useSmallestIdeal && this._idealWidth && this._idealHeight ? window.innerWidth < window.innerHeight ? e : t : this._idealWidth ? e : this._idealHeight ? t : 1;\n }\n /**\n * Gets the underlying layer used to render the texture when in fullscreen mode\n */\n get layer() {\n return this._layerToDispose;\n }\n /**\n * Gets the root container control\n */\n get rootContainer() {\n return this._rootContainer;\n }\n /**\n * Returns an array containing the root container.\n * This is mostly used to let the Inspector introspects the ADT\n * @returns an array containing the rootContainer\n */\n getChildren() {\n return [this._rootContainer];\n }\n /**\n * Will return all controls that are inside this texture\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\n * @returns all child controls\n */\n getDescendants(e, t) {\n return this._rootContainer.getDescendants(e, t);\n }\n /**\n * Will return all controls with the given type name\n * @param typeName defines the type name to search for\n * @returns an array of all controls found\n */\n getControlsByType(e) {\n return this._rootContainer.getDescendants(!1, (t) => t.typeName === e);\n }\n /**\n * Will return the first control with the given name\n * @param name defines the name to search for\n * @returns the first control found or null\n */\n getControlByName(e) {\n return this._getControlByKey(\"name\", e);\n }\n _getControlByKey(e, t) {\n return this._rootContainer.getDescendants().find((i) => i[e] === t) || null;\n }\n /**\n * Gets or sets the current focused control\n */\n get focusedControl() {\n return this._focusedControl;\n }\n set focusedControl(e) {\n this._focusedControl != e && (this._focusedControl && this._focusedControl.onBlur(), e && e.onFocus(), this._focusedControl = e);\n }\n /**\n * Gets or sets a boolean indicating if the texture must be rendered in background or foreground when in fullscreen mode\n */\n get isForeground() {\n return this.layer ? !this.layer.isBackground : !0;\n }\n set isForeground(e) {\n this.layer && this.layer.isBackground !== !e && (this.layer.isBackground = !e);\n }\n /**\n * Gets or set information about clipboardData\n */\n get clipboardData() {\n return this._clipboardData;\n }\n set clipboardData(e) {\n this._clipboardData = e;\n }\n /**\n * Creates a new AdvancedDynamicTexture\n * @param name defines the name of the texture\n * @param width defines the width of the texture\n * @param height defines the height of the texture\n * @param scene defines the hosting scene\n * @param generateMipMaps defines a boolean indicating if mipmaps must be generated (false by default)\n * @param samplingMode defines the texture sampling mode (Texture.NEAREST_SAMPLINGMODE by default)\n * @param invertY defines if the texture needs to be inverted on the y axis during loading (true by default)\n */\n constructor(e, t = 0, i = 0, s, r = !1, n = X.NEAREST_SAMPLINGMODE, o = !0) {\n super(e, { width: t, height: i }, s, r, n, q.TEXTUREFORMAT_RGBA, o), this.onGuiReadyObservable = new G(), this._isDirty = !1, this._rootContainer = new wa(\"root\"), this._lastControlOver = {}, this._lastControlDown = {}, this._capturingControl = {}, this._linkedControls = new Array(), this._isFullscreen = !1, this._fullscreenViewport = new xr(0, 0, 1, 1), this._idealWidth = 0, this._idealHeight = 0, this._useSmallestIdeal = !1, this._renderAtIdealSize = !1, this._blockNextFocusCheck = !1, this._renderScale = 1, this._cursorChanged = !1, this._defaultMousePointerId = 0, this._rootChildrenHaveChanged = !1, this._capturedPointerIds = /* @__PURE__ */ new Set(), this._numLayoutCalls = 0, this._numRenderCalls = 0, this._clipboardData = \"\", this.onClipboardObservable = new G(), this.onControlPickedObservable = new G(), this.onBeginLayoutObservable = new G(), this.onEndLayoutObservable = new G(), this.onBeginRenderObservable = new G(), this.onEndRenderObservable = new G(), this.premulAlpha = !1, this.applyYInversionOnUpdate = !0, this.disableTabNavigation = !1, this.skipBlockEvents = 0, this.checkPointerEveryFrame = !1, this._useInvalidateRectOptimization = !0, this._invalidatedRectangle = null, this._clearMeasure = new cr(0, 0, 0, 0), this._onClipboardCopy = (l) => {\n const h = l, c = new Wm(so.COPY, h);\n this.onClipboardObservable.notifyObservers(c), h.preventDefault();\n }, this._onClipboardCut = (l) => {\n const h = l, c = new Wm(so.CUT, h);\n this.onClipboardObservable.notifyObservers(c), h.preventDefault();\n }, this._onClipboardPaste = (l) => {\n const h = l, c = new Wm(so.PASTE, h);\n this.onClipboardObservable.notifyObservers(c), h.preventDefault();\n }, this.parseContent = this.parseSerializedObject, s = this.getScene(), !(!s || !this._texture) && (this.applyYInversionOnUpdate = o, this._rootElement = s.getEngine().getInputElement(), this._renderObserver = s.onBeforeCameraRenderObservable.add((l) => this._checkUpdate(l)), this._controlAddedObserver = this._rootContainer.onControlAddedObservable.add((l) => {\n l && (this._rootChildrenHaveChanged = !0);\n }), this._controlRemovedObserver = this._rootContainer.onControlRemovedObservable.add((l) => {\n l && (this._rootChildrenHaveChanged = !0);\n }), this._preKeyboardObserver = s.onPreKeyboardObservable.add((l) => {\n if (!this.disableTabNavigation && l.type === Ma.KEYDOWN && l.event.code === \"Tab\") {\n this._focusNextElement(!l.event.shiftKey), l.event.preventDefault();\n return;\n }\n this._focusedControl && (l.type === Ma.KEYDOWN && this._focusedControl.processKeyboard(l.event), l.skipOnPointerObservable = !0);\n }), this._rootContainer._link(this), this.hasAlpha = !0, (!t || !i) && (this._resizeObserver = s.getEngine().onResizeObservable.add(() => this._onResize()), this._onResize()), this._texture.isReady = !0);\n }\n /**\n * Get the current class name of the texture useful for serialization or dynamic coding.\n * @returns \"AdvancedDynamicTexture\"\n */\n getClassName() {\n return \"AdvancedDynamicTexture\";\n }\n /**\n * Function used to execute a function on all controls\n * @param func defines the function to execute\n * @param container defines the container where controls belong. If null the root container will be used\n */\n executeOnAllControls(e, t) {\n t || (t = this._rootContainer), e(t);\n for (const i of t.children) {\n if (i.children) {\n this.executeOnAllControls(e, i);\n continue;\n }\n e(i);\n }\n }\n /**\n * Gets or sets a boolean indicating if the InvalidateRect optimization should be turned on\n */\n get useInvalidateRectOptimization() {\n return this._useInvalidateRectOptimization;\n }\n set useInvalidateRectOptimization(e) {\n this._useInvalidateRectOptimization = e;\n }\n /**\n * Invalidates a rectangle area on the gui texture\n * @param invalidMinX left most position of the rectangle to invalidate in the texture\n * @param invalidMinY top most position of the rectangle to invalidate in the texture\n * @param invalidMaxX right most position of the rectangle to invalidate in the texture\n * @param invalidMaxY bottom most position of the rectangle to invalidate in the texture\n */\n invalidateRect(e, t, i, s) {\n if (this._useInvalidateRectOptimization)\n if (!this._invalidatedRectangle)\n this._invalidatedRectangle = new cr(e, t, i - e + 1, s - t + 1);\n else {\n const r = Math.ceil(Math.max(this._invalidatedRectangle.left + this._invalidatedRectangle.width - 1, i)), n = Math.ceil(Math.max(this._invalidatedRectangle.top + this._invalidatedRectangle.height - 1, s));\n this._invalidatedRectangle.left = Math.floor(Math.min(this._invalidatedRectangle.left, e)), this._invalidatedRectangle.top = Math.floor(Math.min(this._invalidatedRectangle.top, t)), this._invalidatedRectangle.width = r - this._invalidatedRectangle.left + 1, this._invalidatedRectangle.height = n - this._invalidatedRectangle.top + 1;\n }\n }\n /**\n * Marks the texture as dirty forcing a complete update\n */\n markAsDirty() {\n this._isDirty = !0;\n }\n /**\n * Helper function used to create a new style\n * @returns a new style\n * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#styles\n */\n createStyle() {\n return new q1(this);\n }\n /**\n * Adds a new control to the root container\n * @param control defines the control to add\n * @returns the current texture\n */\n addControl(e) {\n return this._rootContainer.addControl(e), this;\n }\n /**\n * Removes a control from the root container\n * @param control defines the control to remove\n * @returns the current texture\n */\n removeControl(e) {\n return this._rootContainer.removeControl(e), this;\n }\n /**\n * Moves overlapped controls towards a position where it is not overlapping anymore.\n * Please note that this method alters linkOffsetXInPixels and linkOffsetYInPixels.\n * @param overlapGroup the overlap group which will be processed or undefined to process all overlap groups\n * @param deltaStep the step size (speed) to reach the target non overlapping position (default 0.1)\n * @param repelFactor how much is the control repelled by other controls\n */\n moveToNonOverlappedPosition(e, t = 1, i = 1) {\n let s;\n if (Array.isArray(e))\n s = e;\n else {\n const r = this.getDescendants(!0);\n s = e === void 0 ? r.filter((n) => n.overlapGroup !== void 0) : r.filter((n) => n.overlapGroup === e);\n }\n s.forEach((r) => {\n let n = Q.Zero();\n const o = new Q(r.centerX, r.centerY);\n s.forEach((l) => {\n if (r !== l && ir._Overlaps(r, l)) {\n const h = o.subtract(new Q(l.centerX, l.centerY)), c = h.length();\n c > 0 && (n = n.add(h.normalize().scale(i / c)));\n }\n }), n.length() > 0 && (n = n.normalize().scale(t * (r.overlapDeltaMultiplier ?? 1)), r.linkOffsetXInPixels += n.x, r.linkOffsetYInPixels += n.y);\n });\n }\n /**\n * Release all resources\n */\n dispose() {\n const e = this.getScene();\n e && (this._rootElement = null, e.onBeforeCameraRenderObservable.remove(this._renderObserver), this._resizeObserver && e.getEngine().onResizeObservable.remove(this._resizeObserver), this._prePointerObserver && e.onPrePointerObservable.remove(this._prePointerObserver), this._sceneRenderObserver && e.onBeforeRenderObservable.remove(this._sceneRenderObserver), this._pointerObserver && e.onPointerObservable.remove(this._pointerObserver), this._preKeyboardObserver && e.onPreKeyboardObservable.remove(this._preKeyboardObserver), this._canvasPointerOutObserver && e.getEngine().onCanvasPointerOutObservable.remove(this._canvasPointerOutObserver), this._canvasBlurObserver && e.getEngine().onCanvasBlurObservable.remove(this._canvasBlurObserver), this._controlAddedObserver && this._rootContainer.onControlAddedObservable.remove(this._controlAddedObserver), this._controlRemovedObserver && this._rootContainer.onControlRemovedObservable.remove(this._controlRemovedObserver), this._layerToDispose && (this._layerToDispose.texture = null, this._layerToDispose.dispose(), this._layerToDispose = null), this._rootContainer.dispose(), this.onClipboardObservable.clear(), this.onControlPickedObservable.clear(), this.onBeginRenderObservable.clear(), this.onEndRenderObservable.clear(), this.onBeginLayoutObservable.clear(), this.onEndLayoutObservable.clear(), this.onGuiReadyObservable.clear(), super.dispose());\n }\n _onResize() {\n const e = this.getScene();\n if (!e)\n return;\n const t = e.getEngine(), i = this.getSize();\n let s = t.getRenderWidth() * this._renderScale, r = t.getRenderHeight() * this._renderScale;\n this._renderAtIdealSize && (this._idealWidth ? (r = r * this._idealWidth / s, s = this._idealWidth) : this._idealHeight && (s = s * this._idealHeight / r, r = this._idealHeight)), (i.width !== s || i.height !== r) && (this.scaleTo(s, r), this.markAsDirty(), (this._idealWidth || this._idealHeight) && this._rootContainer._markAllAsDirty()), this.invalidateRect(0, 0, i.width - 1, i.height - 1);\n }\n /** @internal */\n _getGlobalViewport() {\n const e = this.getSize(), t = this._fullscreenViewport.toGlobal(e.width, e.height), i = Math.round(t.width * (1 / this.rootContainer.scaleX)), s = Math.round(t.height * (1 / this.rootContainer.scaleY));\n return t.x += (t.width - i) / 2, t.y += (t.height - s) / 2, t.width = i, t.height = s, t;\n }\n /**\n * Get screen coordinates for a vector3\n * @param position defines the position to project\n * @param worldMatrix defines the world matrix to use\n * @returns the projected position\n */\n getProjectedPosition(e, t) {\n const i = this.getProjectedPositionWithZ(e, t);\n return new Q(i.x, i.y);\n }\n /**\n * Get screen coordinates for a vector3\n * @param position defines the position to project\n * @param worldMatrix defines the world matrix to use\n * @returns the projected position with Z\n */\n getProjectedPositionWithZ(e, t) {\n const i = this.getScene();\n if (!i)\n return g.Zero();\n const s = this._getGlobalViewport(), r = g.Project(e, t, i.getTransformMatrix(), s);\n return new g(r.x, r.y, r.z);\n }\n _checkUpdate(e, t) {\n if (!(this._layerToDispose && !(e.layerMask & this._layerToDispose.layerMask))) {\n if (this._isFullscreen && this._linkedControls.length) {\n const i = this.getScene();\n if (!i)\n return;\n const s = this._getGlobalViewport();\n for (const r of this._linkedControls) {\n if (!r.isVisible)\n continue;\n const n = r._linkedMesh;\n if (!n || n.isDisposed()) {\n J.SetImmediate(() => {\n r.linkWithMesh(null);\n });\n continue;\n }\n const o = n.getBoundingInfo ? n.getBoundingInfo().boundingSphere.center : g.ZeroReadOnly, l = g.Project(o, n.getWorldMatrix(), i.getTransformMatrix(), s);\n if (l.z < 0 || l.z > 1) {\n r.notRenderable = !0;\n continue;\n }\n r.notRenderable = !1, this.useInvalidateRectOptimization && r.invalidateRect(), r._moveToProjectedPosition(l);\n }\n }\n !this._isDirty && !this._rootContainer.isDirty || (this._isDirty = !1, this._render(t), t || this.update(this.applyYInversionOnUpdate, this.premulAlpha, ir.AllowGPUOptimizations));\n }\n }\n _render(e) {\n var o;\n const t = this.getSize(), i = t.width, s = t.height, r = this.getContext();\n if (r.font = \"18px Arial\", r.strokeStyle = \"white\", this.onGuiReadyObservable.hasObservers() && this._checkGuiIsReady(), this._rootChildrenHaveChanged) {\n const l = (o = this.getScene()) == null ? void 0 : o.activeCamera;\n l && (this._rootChildrenHaveChanged = !1, this._checkUpdate(l, !0));\n }\n this.onBeginLayoutObservable.notifyObservers(this);\n const n = new cr(0, 0, i, s);\n this._numLayoutCalls = 0, this._rootContainer._layout(n, r), this.onEndLayoutObservable.notifyObservers(this), this._isDirty = !1, !e && (this._invalidatedRectangle ? this._clearMeasure.copyFrom(this._invalidatedRectangle) : this._clearMeasure.copyFromFloats(0, 0, i, s), r.clearRect(this._clearMeasure.left, this._clearMeasure.top, this._clearMeasure.width, this._clearMeasure.height), this._background && (r.save(), r.fillStyle = this._background, r.fillRect(this._clearMeasure.left, this._clearMeasure.top, this._clearMeasure.width, this._clearMeasure.height), r.restore()), this.onBeginRenderObservable.notifyObservers(this), this._numRenderCalls = 0, this._rootContainer._render(r, this._invalidatedRectangle), this.onEndRenderObservable.notifyObservers(this), this._invalidatedRectangle = null);\n }\n /**\n * @internal\n */\n _changeCursor(e) {\n this._rootElement && (this._rootElement.style.cursor = e, this._cursorChanged = !0);\n }\n /**\n * @internal\n */\n _registerLastControlDown(e, t) {\n this._lastControlDown[t] = e, this.onControlPickedObservable.notifyObservers(e);\n }\n _doPicking(e, t, i, s, r, n, o, l) {\n const h = this.getScene();\n if (!h)\n return;\n const c = h.getEngine(), u = this.getSize();\n if (this._isFullscreen) {\n const d = h.cameraToUseForPointers || h.activeCamera;\n if (!d)\n return;\n const f = d.viewport;\n e = e * (u.width / (c.getRenderWidth() * f.width)), t = t * (u.height / (c.getRenderHeight() * f.height));\n }\n if (this._capturingControl[r]) {\n this._capturingControl[r].isPointerBlocker && (this._shouldBlockPointer = !0), this._capturingControl[r]._processObservables(s, e, t, i, r, n);\n return;\n }\n this._cursorChanged = !1, this._rootContainer._processPicking(e, t, i, s, r, n, o, l) || (h.doNotHandleCursors || this._changeCursor(\"\"), s === Pe.POINTERMOVE && this._lastControlOver[r] && (this._lastControlOver[r]._onPointerOut(this._lastControlOver[r], i), delete this._lastControlOver[r])), !this._cursorChanged && !h.doNotHandleCursors && this._changeCursor(\"\"), this._manageFocus();\n }\n /**\n * @internal\n */\n _cleanControlAfterRemovalFromList(e, t) {\n for (const i in e) {\n if (!Object.prototype.hasOwnProperty.call(e, i))\n continue;\n e[i] === t && delete e[i];\n }\n }\n /**\n * @internal\n */\n _cleanControlAfterRemoval(e) {\n this._cleanControlAfterRemovalFromList(this._lastControlDown, e), this._cleanControlAfterRemovalFromList(this._lastControlOver, e);\n }\n /**\n * This function will run a pointer event on this ADT and will trigger any pointer events on any controls\n * This will work on a fullscreen ADT only. For mesh based ADT, simulate pointer events using the scene directly.\n * @param x pointer X on the canvas for the picking\n * @param y pointer Y on the canvas for the picking\n * @param pi optional pointer information\n */\n pick(e, t, i = null) {\n this._isFullscreen && this._scene && this._translateToPicking(this._scene, new xr(0, 0, 0, 0), i, e, t);\n }\n _translateToPicking(e, t, i, s = e.pointerX, r = e.pointerY) {\n const n = e.cameraToUseForPointers || e.activeCamera, o = e.getEngine(), l = e.cameraToUseForPointers;\n if (!n)\n t.x = 0, t.y = 0, t.width = o.getRenderWidth(), t.height = o.getRenderHeight();\n else if (n.rigCameras.length) {\n const u = new xr(0, 0, 1, 1);\n n.rigCameras.forEach((d) => {\n d.viewport.toGlobalToRef(o.getRenderWidth(), o.getRenderHeight(), u);\n const f = s / o.getHardwareScalingLevel() - u.x, p = r / o.getHardwareScalingLevel() - (o.getRenderHeight() - u.y - u.height);\n f < 0 || p < 0 || s > u.width || r > u.height || (e.cameraToUseForPointers = d, t.x = u.x, t.y = u.y, t.width = u.width, t.height = u.height);\n });\n } else\n n.viewport.toGlobalToRef(o.getRenderWidth(), o.getRenderHeight(), t);\n const h = s / o.getHardwareScalingLevel() - t.x, c = r / o.getHardwareScalingLevel() - (o.getRenderHeight() - t.y - t.height);\n if (this._shouldBlockPointer = !1, i) {\n const u = i.event.pointerId || this._defaultMousePointerId;\n this._doPicking(h, c, i, i.type, u, i.event.button, i.event.deltaX, i.event.deltaY), (this._shouldBlockPointer && !(i.type & this.skipBlockEvents) || this._capturingControl[u]) && (i.skipOnPointerObservable = !0);\n } else\n this._doPicking(h, c, null, Pe.POINTERMOVE, this._defaultMousePointerId, 0);\n e.cameraToUseForPointers = l;\n }\n /** Attach to all scene events required to support pointer events */\n attach() {\n const e = this.getScene();\n if (!e)\n return;\n const t = new xr(0, 0, 0, 0);\n this._prePointerObserver = e.onPrePointerObservable.add((i) => {\n if (!(e.isPointerCaptured(i.event.pointerId) && i.type === Pe.POINTERUP && !this._capturedPointerIds.has(i.event.pointerId)) && !(i.type !== Pe.POINTERMOVE && i.type !== Pe.POINTERUP && i.type !== Pe.POINTERDOWN && i.type !== Pe.POINTERWHEEL)) {\n if (i.type === Pe.POINTERMOVE) {\n if (e.isPointerCaptured(i.event.pointerId))\n return;\n i.event.pointerId && (this._defaultMousePointerId = i.event.pointerId);\n }\n this._translateToPicking(e, t, i);\n }\n }), this._attachPickingToSceneRender(e, () => this._translateToPicking(e, t, null), !1), this._attachToOnPointerOut(e), this._attachToOnBlur(e);\n }\n _focusNextElement(e = !0) {\n const t = [];\n if (this.executeOnAllControls((i) => {\n i.isFocusInvisible || !i.isVisible || i.tabIndex < 0 || t.push(i);\n }), t.length !== 0)\n if (t.sort((i, s) => i.tabIndex === 0 ? 1 : s.tabIndex === 0 ? -1 : i.tabIndex - s.tabIndex), !this._focusedControl)\n t[0].focus();\n else {\n let s = t.indexOf(this._focusedControl) + (e ? 1 : -1);\n s < 0 ? s = t.length - 1 : s >= t.length && (s = 0), t[s].focus();\n }\n }\n /**\n * Register the clipboard Events onto the canvas\n */\n registerClipboardEvents() {\n self.addEventListener(\"copy\", this._onClipboardCopy, !1), self.addEventListener(\"cut\", this._onClipboardCut, !1), self.addEventListener(\"paste\", this._onClipboardPaste, !1);\n }\n /**\n * Unregister the clipboard Events from the canvas\n */\n unRegisterClipboardEvents() {\n self.removeEventListener(\"copy\", this._onClipboardCopy), self.removeEventListener(\"cut\", this._onClipboardCut), self.removeEventListener(\"paste\", this._onClipboardPaste);\n }\n /**\n * Transform uvs from mesh space to texture space, taking the texture into account\n * @param uv the uvs in mesh space\n * @returns the uvs in texture space\n */\n _transformUvs(e) {\n const t = this.getTextureMatrix();\n let i;\n if (t.isIdentityAs3x2())\n i = e;\n else {\n const s = w.Matrix[0];\n t.getRowToRef(0, w.Vector4[0]), t.getRowToRef(1, w.Vector4[1]), t.getRowToRef(2, w.Vector4[2]);\n const r = w.Vector4[0], n = w.Vector4[1], o = w.Vector4[2];\n s.setRowFromFloats(0, r.x, r.y, 0, 0), s.setRowFromFloats(1, n.x, n.y, 0, 0), s.setRowFromFloats(2, 0, 0, 1, 0), s.setRowFromFloats(3, o.x, o.y, 0, 1), i = w.Vector2[0], Q.TransformToRef(e, s, i);\n }\n if ((this.wrapU === X.WRAP_ADDRESSMODE || this.wrapU === X.MIRROR_ADDRESSMODE) && i.x > 1) {\n let s = i.x - Math.trunc(i.x);\n this.wrapU === X.MIRROR_ADDRESSMODE && Math.trunc(i.x) % 2 === 1 && (s = 1 - s), i.x = s;\n }\n if ((this.wrapV === X.WRAP_ADDRESSMODE || this.wrapV === X.MIRROR_ADDRESSMODE) && i.y > 1) {\n let s = i.y - Math.trunc(i.y);\n this.wrapV === X.MIRROR_ADDRESSMODE && Math.trunc(i.x) % 2 === 1 && (s = 1 - s), i.y = s;\n }\n return i;\n }\n /**\n * Connect the texture to a hosting mesh to enable interactions\n * @param mesh defines the mesh to attach to\n * @param supportPointerMove defines a boolean indicating if pointer move events must be catched as well\n */\n attachToMesh(e, t = !0) {\n const i = this.getScene();\n i && (this._pointerObserver && i.onPointerObservable.remove(this._pointerObserver), this._pointerObserver = i.onPointerObservable.add((s) => {\n if (s.type !== Pe.POINTERMOVE && s.type !== Pe.POINTERUP && s.type !== Pe.POINTERDOWN && s.type !== Pe.POINTERWHEEL)\n return;\n s.type === Pe.POINTERMOVE && s.event.pointerId && (this._defaultMousePointerId = s.event.pointerId);\n const r = s.event.pointerId || this._defaultMousePointerId;\n if (s.pickInfo && s.pickInfo.hit && s.pickInfo.pickedMesh === e) {\n let n = s.pickInfo.getTextureCoordinates();\n if (n) {\n n = this._transformUvs(n);\n const o = this.getSize();\n this._doPicking(n.x * o.width, (this.applyYInversionOnUpdate ? 1 - n.y : n.y) * o.height, s, s.type, r, s.event.button, s.event.deltaX, s.event.deltaY);\n }\n } else if (s.type === Pe.POINTERUP) {\n if (this._lastControlDown[r] && this._lastControlDown[r]._forcePointerUp(r), delete this._lastControlDown[r], this.focusedControl) {\n const n = this.focusedControl.keepsFocusWith();\n let o = !0;\n if (n)\n for (const l of n) {\n if (this === l._host)\n continue;\n const h = l._host;\n if (h._lastControlOver[r] && h._lastControlOver[r].isAscendant(l)) {\n o = !1;\n break;\n }\n }\n o && (this.focusedControl = null);\n }\n } else s.type === Pe.POINTERMOVE && (this._lastControlOver[r] && this._lastControlOver[r]._onPointerOut(this._lastControlOver[r], s, !0), delete this._lastControlOver[r]);\n }), e.enablePointerMoveEvents = t, this._attachPickingToSceneRender(i, () => {\n const s = this._defaultMousePointerId, r = i == null ? void 0 : i.pick(i.pointerX, i.pointerY);\n if (r && r.hit && r.pickedMesh === e) {\n let n = r.getTextureCoordinates();\n if (n) {\n n = this._transformUvs(n);\n const o = this.getSize();\n this._doPicking(n.x * o.width, (this.applyYInversionOnUpdate ? 1 - n.y : n.y) * o.height, null, Pe.POINTERMOVE, s, 0);\n }\n } else\n this._lastControlOver[s] && this._lastControlOver[s]._onPointerOut(this._lastControlOver[s], null, !0), delete this._lastControlOver[s];\n }, !0), this._attachToOnPointerOut(i), this._attachToOnBlur(i));\n }\n /**\n * Move the focus to a specific control\n * @param control defines the control which will receive the focus\n */\n moveFocusToControl(e) {\n this.focusedControl = e, this._lastPickedControl = e, this._blockNextFocusCheck = !0;\n }\n _manageFocus() {\n if (this._blockNextFocusCheck) {\n this._blockNextFocusCheck = !1, this._lastPickedControl = this._focusedControl;\n return;\n }\n if (this._focusedControl && this._focusedControl !== this._lastPickedControl) {\n if (this._lastPickedControl.isFocusInvisible)\n return;\n this.focusedControl = null;\n }\n }\n _attachPickingToSceneRender(e, t, i) {\n this._sceneRenderObserver = e.onBeforeRenderObservable.add(() => {\n this.checkPointerEveryFrame && (this._linkedControls.length > 0 || i) && t();\n });\n }\n _attachToOnPointerOut(e) {\n this._canvasPointerOutObserver = e.getEngine().onCanvasPointerOutObservable.add((t) => {\n this._lastControlOver[t.pointerId] && this._lastControlOver[t.pointerId]._onPointerOut(this._lastControlOver[t.pointerId], null), delete this._lastControlOver[t.pointerId], this._lastControlDown[t.pointerId] && this._lastControlDown[t.pointerId] !== this._capturingControl[t.pointerId] && (this._lastControlDown[t.pointerId]._forcePointerUp(t.pointerId), delete this._lastControlDown[t.pointerId]);\n });\n }\n _attachToOnBlur(e) {\n this._canvasBlurObserver = e.getEngine().onCanvasBlurObservable.add(() => {\n Object.entries(this._lastControlDown).forEach(([, t]) => {\n t._onCanvasBlur();\n }), this.focusedControl = null, this._lastControlDown = {};\n });\n }\n /**\n * Serializes the entire GUI system\n * @returns an object with the JSON serialized data\n */\n serializeContent() {\n const e = this.getSize(), t = {\n root: {},\n width: e.width,\n height: e.height\n };\n return this._rootContainer.serialize(t.root), t;\n }\n /**\n * Recreate the content of the ADT from a JSON object\n * @param serializedObject define the JSON serialized object to restore from\n * @param scaleToSize defines whether to scale to texture to the saved size\n * @param urlRewriter defines an url rewriter to update urls before sending them to the controls\n */\n parseSerializedObject(e, t, i) {\n if (this._rootContainer = Le.Parse(e.root, this, i), t) {\n const s = e.width, r = e.height;\n typeof s == \"number\" && typeof r == \"number\" && s >= 0 && r >= 0 ? this.scaleTo(s, r) : this.scaleTo(1920, 1080);\n }\n }\n /**\n * Clones the ADT. If no mesh is defined, the GUI will be considered as a fullscreen GUI\n * @param newName defines the name of the new ADT\n * @param attachToMesh defines if the new ADT should be attached to a mesh\n * @returns the clone of the ADT\n */\n clone(e, t) {\n const i = this.getScene();\n if (!i)\n return this;\n const s = this.getSize(), r = this.serializeContent();\n let n;\n return this._isFullscreen ? n = ir.CreateFullscreenUI(e ?? \"Clone of \" + this.name) : t ? n = ir.CreateForMesh(t, s.width, s.height) : n = new ir(e ?? \"Clone of \" + this.name, s.width, s.height, i, !this.noMipmap, this.samplingMode), n.parseSerializedObject(r), n;\n }\n /**\n * Recreate the content of the ADT from a snippet saved by the GUI editor\n * @param snippetId defines the snippet to load\n * @param scaleToSize defines whether to scale to texture to the saved size\n * @param appendToAdt if provided the snippet will be appended to the adt. Otherwise a fullscreen ADT will be created.\n * @param urlRewriter defines an url rewriter to update urls before sending them to the controls\n * @returns a promise that will resolve on success\n */\n static async ParseFromSnippetAsync(e, t, i, s) {\n const r = i ?? ir.CreateFullscreenUI(\"ADT from snippet\");\n if (e === \"_BLANK\")\n return r;\n const n = await ir._LoadURLContentAsync(ir.SnippetUrl + \"/\" + e.replace(/#/g, \"/\"), !0);\n return r.parseSerializedObject(n, t, s), r;\n }\n /**\n * Recreate the content of the ADT from a snippet saved by the GUI editor\n * @param snippetId defines the snippet to load\n * @param scaleToSize defines whether to scale to texture to the saved size\n * @param urlRewriter defines an url rewriter to update urls before sending them to the controls\n * @returns a promise that will resolve on success\n */\n parseFromSnippetAsync(e, t, i) {\n return ir.ParseFromSnippetAsync(e, t, this, i);\n }\n /**\n * Recreate the content of the ADT from a url json\n * @param url defines the url to load\n * @param scaleToSize defines whether to scale to texture to the saved size\n * @param appendToAdt if provided the snippet will be appended to the adt. Otherwise a fullscreen ADT will be created.\n * @param urlRewriter defines an url rewriter to update urls before sending them to the controls\n * @returns a promise that will resolve on success\n */\n static async ParseFromFileAsync(e, t, i, s) {\n const r = i ?? ir.CreateFullscreenUI(\"ADT from URL\"), n = await ir._LoadURLContentAsync(e);\n return r.parseSerializedObject(n, t, s), r;\n }\n /**\n * Recreate the content of the ADT from a url json\n * @param url defines the url to load\n * @param scaleToSize defines whether to scale to texture to the saved size\n * @param urlRewriter defines an url rewriter to update urls before sending them to the controls\n * @returns a promise that will resolve on success\n */\n parseFromURLAsync(e, t, i) {\n return ir.ParseFromFileAsync(e, t, this, i);\n }\n static _LoadURLContentAsync(e, t = !1) {\n return e === \"\" ? Promise.reject(\"No URL provided\") : new Promise((i, s) => {\n const r = new Di();\n r.addEventListener(\"readystatechange\", () => {\n if (r.readyState == 4)\n if (r.status == 200) {\n let n;\n if (t) {\n const l = JSON.parse(JSON.parse(r.responseText).jsonPayload);\n n = l.encodedGui ? new TextDecoder(\"utf-8\").decode(mx(l.encodedGui)) : l.gui;\n } else\n n = r.responseText;\n const o = JSON.parse(n);\n i(o);\n } else\n s(\"Unable to load\");\n }), r.open(\"GET\", e), r.send();\n });\n }\n // Statics\n /**\n * Compares two rectangle based controls for pixel overlap\n * @param control1 The first control to compare\n * @param control2 The second control to compare\n * @returns true if overlaps, otherwise false\n */\n static _Overlaps(e, t) {\n return !(e.centerX > t.centerX + t.widthInPixels || e.centerX + e.widthInPixels < t.centerX || e.centerY + e.heightInPixels < t.centerY || e.centerY > t.centerY + t.heightInPixels);\n }\n /**\n * Creates a new AdvancedDynamicTexture in projected mode (ie. attached to a mesh)\n * @param mesh defines the mesh which will receive the texture\n * @param width defines the texture width (1024 by default)\n * @param height defines the texture height (1024 by default)\n * @param supportPointerMove defines a boolean indicating if the texture must capture move events (true by default)\n * @param onlyAlphaTesting defines a boolean indicating that alpha blending will not be used (only alpha testing) (false by default)\n * @param invertY defines if the texture needs to be inverted on the y axis during loading (true by default)\n * @param materialSetupCallback defines a custom way of creating and setting up the material on the mesh\n * @param sampling defines the texture sampling mode (Texture.TRILINEAR_SAMPLINGMODE by default)\n * @returns a new AdvancedDynamicTexture\n */\n static CreateForMesh(e, t = 1024, i = 1024, s = !0, r = !1, n, o = this._CreateMaterial, l = X.TRILINEAR_SAMPLINGMODE) {\n const h = vo(), c = new ir(`AdvancedDynamicTexture for ${e.name} [${h}]`, t, i, e.getScene(), !0, l, n);\n return o(e, h, c, r), c.attachToMesh(e, s), c;\n }\n static _CreateMaterial(e, t, i, s) {\n const r = Oi(\"BABYLON.StandardMaterial\");\n if (!r)\n throw \"StandardMaterial needs to be imported before as it contains a side-effect required by your code.\";\n const n = new r(`AdvancedDynamicTextureMaterial for ${e.name} [${t}]`, e.getScene());\n n.backFaceCulling = !1, n.diffuseColor = re.Black(), n.specularColor = re.Black(), s ? (n.diffuseTexture = i, n.emissiveTexture = i, i.hasAlpha = !0) : (n.emissiveTexture = i, n.opacityTexture = i), e.material = n;\n }\n /**\n * Creates a new AdvancedDynamicTexture in projected mode (ie. attached to a mesh) BUT do not create a new material for the mesh. You will be responsible for connecting the texture\n * @param mesh defines the mesh which will receive the texture\n * @param width defines the texture width (1024 by default)\n * @param height defines the texture height (1024 by default)\n * @param supportPointerMove defines a boolean indicating if the texture must capture move events (true by default)\n * @param invertY defines if the texture needs to be inverted on the y axis during loading (true by default)\n * @param sampling defines the texture sampling mode (Texture.TRILINEAR_SAMPLINGMODE by default)\n * @returns a new AdvancedDynamicTexture\n */\n static CreateForMeshTexture(e, t = 1024, i = 1024, s = !0, r, n = X.TRILINEAR_SAMPLINGMODE) {\n const o = new ir(e.name + \" AdvancedDynamicTexture\", t, i, e.getScene(), !0, n, r);\n return o.attachToMesh(e, s), o;\n }\n /**\n * Creates a new AdvancedDynamicTexture in fullscreen mode.\n * In this mode the texture will rely on a layer for its rendering.\n * This allows it to be treated like any other layer.\n * As such, if you have a multi camera setup, you can set the layerMask on the GUI as well.\n * LayerMask is set through advancedTexture.layer.layerMask\n * @param name defines name for the texture\n * @param foreground defines a boolean indicating if the texture must be rendered in foreground (default is true)\n * @param scene defines the hosting scene\n * @param sampling defines the texture sampling mode (Texture.BILINEAR_SAMPLINGMODE by default)\n * @param adaptiveScaling defines whether to automatically scale root to match hardwarescaling (false by default)\n * @returns a new AdvancedDynamicTexture\n */\n static CreateFullscreenUI(e, t = !0, i = null, s = X.BILINEAR_SAMPLINGMODE, r = !1) {\n const n = new ir(e, 0, 0, i, !1, s), o = n.getScene(), l = new L0(e + \"_layer\", null, o, !t);\n if (l.texture = n, n._layerToDispose = l, n._isFullscreen = !0, r && o) {\n const h = 1 / o.getEngine().getHardwareScalingLevel();\n n._rootContainer.scaleX = h, n._rootContainer.scaleY = h;\n }\n return n.attach(), n;\n }\n /**\n * Scales the texture\n * @param ratio the scale factor to apply to both width and height\n */\n scale(e) {\n super.scale(e), this.markAsDirty();\n }\n /**\n * Resizes the texture\n * @param width the new width\n * @param height the new height\n */\n scaleTo(e, t) {\n super.scaleTo(e, t), this.markAsDirty();\n }\n _checkGuiIsReady() {\n this.guiIsReady() && (this.onGuiReadyObservable.notifyObservers(this), this.onGuiReadyObservable.clear());\n }\n /**\n * @returns true if all the GUI components are ready to render\n */\n guiIsReady() {\n return this._rootContainer.isReady();\n }\n}\nir.SnippetUrl = q.SnippetUrl;\nir.AllowGPUOptimizations = !0;\nclass po extends wa {\n /** Gets or sets border thickness */\n get thickness() {\n return this._thickness;\n }\n set thickness(e) {\n this._thickness !== e && (this._thickness = e, this._markAsDirty());\n }\n /** Gets or sets the corner radius of all angles */\n get cornerRadius() {\n return this._cornerRadius[0];\n }\n set cornerRadius(e) {\n e < 0 && (e = 0), !(this._cornerRadius[0] === e && this._cornerRadius[1] === e && this._cornerRadius[2] === e && this._cornerRadius[3] === e) && (this._cornerRadius[0] = this._cornerRadius[1] = this._cornerRadius[2] = this._cornerRadius[3] = e, this._markAsDirty());\n }\n /** Gets or sets the corner radius top left angle */\n get cornerRadiusX() {\n return this._cornerRadius[0];\n }\n set cornerRadiusX(e) {\n this._cornerRadius[0] !== e && (this._cornerRadius[0] = e);\n }\n /** Gets or sets the corner radius top right angle */\n get cornerRadiusY() {\n return this._cornerRadius[1];\n }\n set cornerRadiusY(e) {\n this._cornerRadius[1] !== e && (this._cornerRadius[1] = e);\n }\n /** Gets or sets the corner radius bottom left angle */\n get cornerRadiusZ() {\n return this._cornerRadius[2];\n }\n set cornerRadiusZ(e) {\n this._cornerRadius[2] !== e && (this._cornerRadius[2] = e);\n }\n /** Gets or sets the corner radius bottom right angle */\n get cornerRadiusW() {\n return this._cornerRadius[3];\n }\n set cornerRadiusW(e) {\n this._cornerRadius[3] !== e && (this._cornerRadius[3] = e);\n }\n /**\n * Creates a new Rectangle\n * @param name defines the control name\n */\n constructor(e) {\n super(e), this.name = e, this._thickness = 1, this._cornerRadius = [0, 0, 0, 0], this._cachedRadius = [0, 0, 0, 0];\n }\n _getTypeName() {\n return \"Rectangle\";\n }\n /** @internal */\n _computeAdditionalOffsetX() {\n let e = 0;\n return (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) && (e += 1), this.thickness && (e += this.thickness / 2), e;\n }\n /** @internal */\n _computeAdditionalOffsetY() {\n let e = 0;\n return (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) && (e += 1), this.thickness && (e += this.thickness / 2), e;\n }\n _getRectangleFill(e) {\n return this._getBackgroundColor(e);\n }\n _localDraw(e) {\n e.save(), (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) && (e.shadowColor = this.shadowColor, e.shadowBlur = this.shadowBlur, e.shadowOffsetX = this.shadowOffsetX, e.shadowOffsetY = this.shadowOffsetY), (this._background || this._backgroundGradient) && (e.fillStyle = this._getRectangleFill(e), this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0 ? (this._drawRoundedRect(e, this._thickness / 2), e.fill()) : e.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height)), this._thickness && ((this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) && (e.shadowBlur = 0, e.shadowOffsetX = 0, e.shadowOffsetY = 0), (this.color || this.gradient) && (e.strokeStyle = this.gradient ? this.gradient.getCanvasGradient(e) : this.color), e.lineWidth = this._thickness, this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0 ? (this._drawRoundedRect(e, this._thickness / 2), e.stroke()) : e.strokeRect(this._currentMeasure.left + this._thickness / 2, this._currentMeasure.top + this._thickness / 2, this._currentMeasure.width - this._thickness, this._currentMeasure.height - this._thickness)), e.restore();\n }\n _additionalProcessing(e, t) {\n super._additionalProcessing(e, t), this._measureForChildren.width -= 2 * this._thickness, this._measureForChildren.height -= 2 * this._thickness, this._measureForChildren.left += this._thickness, this._measureForChildren.top += this._thickness;\n }\n _drawRoundedRect(e, t = 0) {\n const i = this._currentMeasure.left + t, s = this._currentMeasure.top + t, r = this._currentMeasure.width - t * 2, n = this._currentMeasure.height - t * 2;\n for (let o = 0; o < this._cornerRadius.length; o++)\n this._cachedRadius[o] = Math.abs(Math.min(n / 2, Math.min(r / 2, this._cornerRadius[o])));\n e.beginPath(), e.moveTo(i + this._cachedRadius[0], s), e.lineTo(i + r - this._cachedRadius[1], s), e.arc(i + r - this._cachedRadius[1], s + this._cachedRadius[1], this._cachedRadius[1], 3 * Math.PI / 2, Math.PI * 2), e.lineTo(i + r, s + n - this._cachedRadius[2]), e.arc(i + r - this._cachedRadius[2], s + n - this._cachedRadius[2], this._cachedRadius[2], 0, Math.PI / 2), e.lineTo(i + this._cachedRadius[3], s + n), e.arc(i + this._cachedRadius[3], s + n - this._cachedRadius[3], this._cachedRadius[3], Math.PI / 2, Math.PI), e.lineTo(i, s + this._cachedRadius[0]), e.arc(i + this._cachedRadius[0], s + this._cachedRadius[0], this._cachedRadius[0], Math.PI, 3 * Math.PI / 2), e.closePath();\n }\n _clipForChildren(e) {\n (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) && (this._drawRoundedRect(e, this._thickness), e.clip());\n }\n}\ny([\n I()\n], po.prototype, \"thickness\", null);\ny([\n I()\n], po.prototype, \"cornerRadius\", null);\ny([\n I()\n], po.prototype, \"cornerRadiusX\", null);\ny([\n I()\n], po.prototype, \"cornerRadiusY\", null);\ny([\n I()\n], po.prototype, \"cornerRadiusZ\", null);\ny([\n I()\n], po.prototype, \"cornerRadiusW\", null);\nU(\"BABYLON.GUI.Rectangle\", po);\nclass Q1 extends ui {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param sound defines the sound to play\n * @param condition defines the trigger related conditions\n */\n constructor(e, t, i) {\n super(e, i), this._sound = t;\n }\n /** @internal */\n _prepare() {\n }\n /**\n * Execute the action and play the sound.\n */\n execute() {\n this._sound !== void 0 && this._sound.play();\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(e) {\n return super._serialize({\n name: \"PlaySoundAction\",\n properties: [{ name: \"sound\", value: this._sound.name }]\n }, e);\n }\n}\nclass Z1 extends ui {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param sound defines the sound to stop\n * @param condition defines the trigger related conditions\n */\n constructor(e, t, i) {\n super(e, i), this._sound = t;\n }\n /** @internal */\n _prepare() {\n }\n /**\n * Execute the action and stop the sound.\n */\n execute() {\n this._sound !== void 0 && this._sound.stop();\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(e) {\n return super._serialize({\n name: \"StopSoundAction\",\n properties: [{ name: \"sound\", value: this._sound.name }]\n }, e);\n }\n}\nU(\"BABYLON.PlaySoundAction\", Q1);\nU(\"BABYLON.StopSoundAction\", Z1);\nclass J1 extends ui {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param target defines the object containing the value to interpolate\n * @param propertyPath defines the path to the property in the target object\n * @param value defines the target value at the end of the interpolation\n * @param duration defines the time it will take for the property to interpolate to the value.\n * @param condition defines the trigger related conditions\n * @param stopOtherAnimations defines if the other scene animations should be stopped when the action has been triggered\n * @param onInterpolationDone defines a callback raised once the interpolation animation has been done\n */\n constructor(e, t, i, s, r = 1e3, n, o, l) {\n super(e, n), this.duration = 1e3, this.onInterpolationDoneObservable = new G(), this.propertyPath = i, this.value = s, this.duration = r, this.stopOtherAnimations = o, this.onInterpolationDone = l, this._target = this._effectiveTarget = t;\n }\n /** @internal */\n _prepare() {\n this._effectiveTarget = this._getEffectiveTarget(this._effectiveTarget, this.propertyPath), this._property = this._getProperty(this.propertyPath);\n }\n /**\n * Execute the action starts the value interpolation.\n */\n execute() {\n const e = this._actionManager.getScene(), t = [\n {\n frame: 0,\n value: this._effectiveTarget[this._property]\n },\n {\n frame: 100,\n value: this.value\n }\n ];\n let i;\n if (typeof this.value == \"number\")\n i = oe.ANIMATIONTYPE_FLOAT;\n else if (this.value instanceof re)\n i = oe.ANIMATIONTYPE_COLOR3;\n else if (this.value instanceof g)\n i = oe.ANIMATIONTYPE_VECTOR3;\n else if (this.value instanceof O)\n i = oe.ANIMATIONTYPE_MATRIX;\n else if (this.value instanceof se)\n i = oe.ANIMATIONTYPE_QUATERNION;\n else {\n L.Warn(\"InterpolateValueAction: Unsupported type (\" + typeof this.value + \")\");\n return;\n }\n const s = new oe(\"InterpolateValueAction\", this._property, 100 * (1e3 / this.duration), i, oe.ANIMATIONLOOPMODE_CONSTANT);\n s.setKeys(t), this.stopOtherAnimations && e.stopAnimation(this._effectiveTarget);\n const r = () => {\n this.onInterpolationDoneObservable.notifyObservers(this), this.onInterpolationDone && this.onInterpolationDone();\n };\n e.beginDirectAnimation(this._effectiveTarget, [s], 0, 100, !1, 1, r);\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(e) {\n return super._serialize({\n name: \"InterpolateValueAction\",\n properties: [\n ui._GetTargetProperty(this._target),\n { name: \"propertyPath\", value: this.propertyPath },\n { name: \"value\", value: ui._SerializeValueAsString(this.value) },\n { name: \"duration\", value: ui._SerializeValueAsString(this.duration) },\n { name: \"stopOtherAnimations\", value: ui._SerializeValueAsString(this.stopOtherAnimations) || !1 }\n ]\n }, e);\n }\n}\nU(\"BABYLON.InterpolateValueAction\", J1);\nclass eL {\n /**\n * Returns the string \"TargetedAnimation\"\n * @returns \"TargetedAnimation\"\n */\n getClassName() {\n return \"TargetedAnimation\";\n }\n /**\n * Serialize the object\n * @returns the JSON object representing the current entity\n */\n serialize() {\n const e = {};\n return e.animation = this.animation.serialize(), e.targetId = this.target.id, e;\n }\n}\nclass $a {\n /**\n * Gets or sets the mask associated with this animation group. This mask is used to filter which objects should be animated.\n */\n get mask() {\n return this._mask;\n }\n set mask(e) {\n this._mask !== e && (this._mask = e, this.syncWithMask(!0));\n }\n /**\n * Makes sure that the animations are either played or stopped according to the animation group mask.\n * Note however that the call won't have any effect if the animation group has not been started yet.\n * @param forceUpdate If true, forces to loop over the animatables even if no mask is defined (used internally, you shouldn't need to use it). Default: false.\n */\n syncWithMask(e = !1) {\n if (!this.mask && !e) {\n this._numActiveAnimatables = this._targetedAnimations.length;\n return;\n }\n this._numActiveAnimatables = 0;\n for (let t = 0; t < this._animatables.length; ++t) {\n const i = this._animatables[t];\n !this.mask || this.mask.disabled || this.mask.retainsTarget(i.target.name) ? (this._numActiveAnimatables++, i.paused && i.restart()) : i.paused || i.pause();\n }\n }\n /**\n * Removes all animations for the targets not retained by the animation group mask.\n * Use this function if you know you won't need those animations anymore and if you want to free memory.\n */\n removeUnmaskedAnimations() {\n if (!(!this.mask || this.mask.disabled)) {\n for (let e = 0; e < this._animatables.length; ++e) {\n const t = this._animatables[e];\n this.mask.retainsTarget(t.target.name) || (t.stop(), this._animatables.splice(e, 1), --e);\n }\n for (let e = 0; e < this._targetedAnimations.length; e++) {\n const t = this._targetedAnimations[e];\n this.mask.retainsTarget(t.target.name) || (this._targetedAnimations.splice(e, 1), --e);\n }\n }\n }\n /**\n * Gets or sets the first frame\n */\n get from() {\n return this._from;\n }\n set from(e) {\n if (this._from !== e) {\n this._from = e;\n for (let t = 0; t < this._animatables.length; t++) {\n const i = this._animatables[t];\n i.fromFrame = this._from;\n }\n }\n }\n /**\n * Gets or sets the last frame\n */\n get to() {\n return this._to;\n }\n set to(e) {\n if (this._to !== e) {\n this._to = e;\n for (let t = 0; t < this._animatables.length; t++) {\n const i = this._animatables[t];\n i.toFrame = this._to;\n }\n }\n }\n /**\n * Define if the animations are started\n */\n get isStarted() {\n return this._isStarted;\n }\n /**\n * Gets a value indicating that the current group is playing\n */\n get isPlaying() {\n return this._isStarted && !this._isPaused;\n }\n /**\n * Gets or sets the speed ratio to use for all animations\n */\n get speedRatio() {\n return this._speedRatio;\n }\n /**\n * Gets or sets the speed ratio to use for all animations\n */\n set speedRatio(e) {\n if (this._speedRatio !== e) {\n this._speedRatio = e;\n for (let t = 0; t < this._animatables.length; t++) {\n const i = this._animatables[t];\n i.speedRatio = this._speedRatio;\n }\n }\n }\n /**\n * Gets or sets if all animations should loop or not\n */\n get loopAnimation() {\n return this._loopAnimation;\n }\n set loopAnimation(e) {\n if (this._loopAnimation !== e) {\n this._loopAnimation = e;\n for (let t = 0; t < this._animatables.length; t++) {\n const i = this._animatables[t];\n i.loopAnimation = this._loopAnimation;\n }\n }\n }\n /**\n * Gets or sets if all animations should be evaluated additively\n */\n get isAdditive() {\n return this._isAdditive;\n }\n set isAdditive(e) {\n if (this._isAdditive !== e) {\n this._isAdditive = e;\n for (let t = 0; t < this._animatables.length; t++) {\n const i = this._animatables[t];\n i.isAdditive = this._isAdditive;\n }\n }\n }\n /**\n * Gets or sets the weight to apply to all animations of the group\n */\n get weight() {\n return this._weight;\n }\n set weight(e) {\n this._weight !== e && (this._weight = e, this.setWeightForAllAnimatables(this._weight));\n }\n /**\n * Gets the targeted animations for this animation group\n */\n get targetedAnimations() {\n return this._targetedAnimations;\n }\n /**\n * returning the list of animatables controlled by this animation group.\n */\n get animatables() {\n return this._animatables;\n }\n /**\n * Gets the list of target animations\n */\n get children() {\n return this._targetedAnimations;\n }\n /**\n * Gets or sets the order of play of the animation group (default: 0)\n */\n get playOrder() {\n return this._playOrder;\n }\n set playOrder(e) {\n if (this._playOrder !== e && (this._playOrder = e, this._animatables.length > 0)) {\n for (let t = 0; t < this._animatables.length; t++)\n this._animatables[t].playOrder = this._playOrder;\n this._scene.sortActiveAnimatables();\n }\n }\n /**\n * Allows the animations of the animation group to blend with current running animations\n * Note that a null value means that each animation will use their own existing blending configuration (Animation.enableBlending)\n */\n get enableBlending() {\n return this._enableBlending;\n }\n set enableBlending(e) {\n if (this._enableBlending !== e && (this._enableBlending = e, e !== null))\n for (let t = 0; t < this._targetedAnimations.length; ++t)\n this._targetedAnimations[t].animation.enableBlending = e;\n }\n /**\n * Gets or sets the animation blending speed\n * Note that a null value means that each animation will use their own existing blending configuration (Animation.blendingSpeed)\n */\n get blendingSpeed() {\n return this._blendingSpeed;\n }\n set blendingSpeed(e) {\n if (this._blendingSpeed !== e && (this._blendingSpeed = e, e !== null))\n for (let t = 0; t < this._targetedAnimations.length; ++t)\n this._targetedAnimations[t].animation.blendingSpeed = e;\n }\n /**\n * Gets the length (in seconds) of the animation group\n * This function assumes that all animations are played at the same framePerSecond speed!\n * Note: you can only call this method after you've added at least one targeted animation!\n * @param from Starting frame range (default is AnimationGroup.from)\n * @param to Ending frame range (default is AnimationGroup.to)\n * @returns The length in seconds\n */\n getLength(e, t) {\n e = e ?? this._from, t = t ?? this._to;\n const i = this.targetedAnimations[0].animation.framePerSecond * this._speedRatio;\n return (t - e) / i;\n }\n /**\n * Merge the array of animation groups into a new animation group\n * @param animationGroups List of animation groups to merge\n * @param disposeSource If true, animation groups will be disposed after being merged (default: true)\n * @param normalize If true, animation groups will be normalized before being merged, so that all animations have the same \"from\" and \"to\" frame (default: false)\n * @param weight Weight for the new animation group. If not provided, it will inherit the weight from the first animation group of the array\n * @returns The new animation group or null if no animation groups were passed\n */\n static MergeAnimationGroups(e, t = !0, i = !1, s) {\n if (e.length === 0)\n return null;\n s = s ?? e[0].weight;\n let r = Number.MAX_VALUE, n = -Number.MAX_VALUE;\n if (i)\n for (const l of e)\n l.from < r && (r = l.from), l.to > n && (n = l.to);\n const o = new $a(e[0].name + \"_merged\", e[0]._scene, s);\n for (const l of e) {\n i && l.normalize(r, n);\n for (const h of l.targetedAnimations)\n o.addTargetedAnimation(h.animation, h.target);\n t && l.dispose();\n }\n return o;\n }\n /**\n * Instantiates a new Animation Group.\n * This helps managing several animations at once.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/groupAnimations\n * @param name Defines the name of the group\n * @param scene Defines the scene the group belongs to\n * @param weight Defines the weight to use for animations in the group (-1.0 by default, meaning \"no weight\")\n * @param playOrder Defines the order of play of the animation group (default is 0)\n */\n constructor(e, t = null, i = -1, s = 0) {\n this.name = e, this._targetedAnimations = new Array(), this._animatables = new Array(), this._from = Number.MAX_VALUE, this._to = -Number.MAX_VALUE, this._speedRatio = 1, this._loopAnimation = !1, this._isAdditive = !1, this._weight = -1, this._playOrder = 0, this._enableBlending = null, this._blendingSpeed = null, this._numActiveAnimatables = 0, this._parentContainer = null, this.onAnimationEndObservable = new G(), this.onAnimationLoopObservable = new G(), this.onAnimationGroupLoopObservable = new G(), this.onAnimationGroupEndObservable = new G(), this.onAnimationGroupPauseObservable = new G(), this.onAnimationGroupPlayObservable = new G(), this.metadata = null, this._mask = null, this._animationLoopFlags = [], this._scene = t || Me.LastCreatedScene, this._weight = i, this._playOrder = s, this.uniqueId = this._scene.getUniqueId(), this._scene.addAnimationGroup(this);\n }\n /**\n * Add an animation (with its target) in the group\n * @param animation defines the animation we want to add\n * @param target defines the target of the animation\n * @returns the TargetedAnimation object\n */\n addTargetedAnimation(e, t) {\n const i = new eL();\n i.animation = e, i.target = t;\n const s = e.getKeys();\n return this._from > s[0].frame && (this._from = s[0].frame), this._to < s[s.length - 1].frame && (this._to = s[s.length - 1].frame), this._enableBlending !== null && (e.enableBlending = this._enableBlending), this._blendingSpeed !== null && (e.blendingSpeed = this._blendingSpeed), this._targetedAnimations.push(i), i;\n }\n /**\n * Remove an animation from the group\n * @param animation defines the animation we want to remove\n */\n removeTargetedAnimation(e) {\n for (let t = this._targetedAnimations.length - 1; t > -1; t--)\n this._targetedAnimations[t].animation === e && this._targetedAnimations.splice(t, 1);\n }\n /**\n * This function will normalize every animation in the group to make sure they all go from beginFrame to endFrame\n * It can add constant keys at begin or end\n * @param beginFrame defines the new begin frame for all animations or the smallest begin frame of all animations if null (defaults to null)\n * @param endFrame defines the new end frame for all animations or the largest end frame of all animations if null (defaults to null)\n * @returns the animation group\n */\n normalize(e = null, t = null) {\n e == null && (e = this._from), t == null && (t = this._to);\n for (let i = 0; i < this._targetedAnimations.length; i++) {\n const r = this._targetedAnimations[i].animation.getKeys(), n = r[0], o = r[r.length - 1];\n if (n.frame > e) {\n const l = {\n frame: e,\n value: n.value,\n inTangent: n.inTangent,\n outTangent: n.outTangent,\n interpolation: n.interpolation\n };\n r.splice(0, 0, l);\n }\n if (o.frame < t) {\n const l = {\n frame: t,\n value: o.value,\n inTangent: o.inTangent,\n outTangent: o.outTangent,\n interpolation: o.interpolation\n };\n r.push(l);\n }\n }\n return this._from = e, this._to = t, this;\n }\n _processLoop(e, t, i) {\n e.onAnimationLoop = () => {\n this.onAnimationLoopObservable.notifyObservers(t), !this._animationLoopFlags[i] && (this._animationLoopFlags[i] = !0, this._animationLoopCount++, this._animationLoopCount === this._numActiveAnimatables && (this.onAnimationGroupLoopObservable.notifyObservers(this), this._animationLoopCount = 0, this._animationLoopFlags.length = 0));\n };\n }\n /**\n * Start all animations on given targets\n * @param loop defines if animations must loop\n * @param speedRatio defines the ratio to apply to animation speed (1 by default)\n * @param from defines the from key (optional)\n * @param to defines the to key (optional)\n * @param isAdditive defines the additive state for the resulting animatables (optional)\n * @returns the current animation group\n */\n start(e = !1, t = 1, i, s, r) {\n if (this._isStarted || this._targetedAnimations.length === 0)\n return this;\n this._loopAnimation = e, this._animationLoopCount = 0, this._animationLoopFlags.length = 0;\n for (let n = 0; n < this._targetedAnimations.length; n++) {\n const o = this._targetedAnimations[n], l = this._scene.beginDirectAnimation(o.target, [o.animation], i !== void 0 ? i : this._from, s !== void 0 ? s : this._to, e, t, void 0, void 0, r !== void 0 ? r : this._isAdditive);\n l.weight = this._weight, l.playOrder = this._playOrder, l.onAnimationEnd = () => {\n this.onAnimationEndObservable.notifyObservers(o), this._checkAnimationGroupEnded(l);\n }, this._processLoop(l, o, n), this._animatables.push(l);\n }\n return this.syncWithMask(), this._scene.sortActiveAnimatables(), this._speedRatio = t, this._isStarted = !0, this._isPaused = !1, this.onAnimationGroupPlayObservable.notifyObservers(this), this;\n }\n /**\n * Pause all animations\n * @returns the animation group\n */\n pause() {\n if (!this._isStarted)\n return this;\n this._isPaused = !0;\n for (let e = 0; e < this._animatables.length; e++)\n this._animatables[e].pause();\n return this.onAnimationGroupPauseObservable.notifyObservers(this), this;\n }\n /**\n * Play all animations to initial state\n * This function will start() the animations if they were not started or will restart() them if they were paused\n * @param loop defines if animations must loop\n * @returns the animation group\n */\n play(e) {\n return this.isStarted && this._animatables.length === this._targetedAnimations.length ? (e !== void 0 && (this.loopAnimation = e), this.restart()) : (this.stop(), this.start(e, this._speedRatio)), this._isPaused = !1, this;\n }\n /**\n * Reset all animations to initial state\n * @returns the animation group\n */\n reset() {\n if (!this._isStarted)\n return this.play(), this.goToFrame(0), this.stop(), this;\n for (let e = 0; e < this._animatables.length; e++)\n this._animatables[e].reset();\n return this;\n }\n /**\n * Restart animations from key 0\n * @returns the animation group\n */\n restart() {\n if (!this._isStarted)\n return this;\n for (let e = 0; e < this._animatables.length; e++)\n this._animatables[e].restart();\n return this.syncWithMask(), this.onAnimationGroupPlayObservable.notifyObservers(this), this;\n }\n /**\n * Stop all animations\n * @returns the animation group\n */\n stop() {\n if (!this._isStarted)\n return this;\n const e = this._animatables.slice();\n for (let i = 0; i < e.length; i++)\n e[i].stop(void 0, void 0, !0);\n let t = 0;\n for (let i = 0; i < this._scene._activeAnimatables.length; i++) {\n const s = this._scene._activeAnimatables[i];\n s._runtimeAnimations.length > 0 && (this._scene._activeAnimatables[t++] = s);\n }\n return this._scene._activeAnimatables.length = t, this._isStarted = !1, this;\n }\n /**\n * Set animation weight for all animatables\n *\n * @since 6.12.4\n * You can pass the weight to the AnimationGroup constructor, or use the weight property to set it after the group has been created,\n * making it easier to define the overall animation weight than calling setWeightForAllAnimatables() after the animation group has been started\n * @param weight defines the weight to use\n * @returns the animationGroup\n * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#animation-weights\n */\n setWeightForAllAnimatables(e) {\n for (let t = 0; t < this._animatables.length; t++) {\n const i = this._animatables[t];\n i.weight = e;\n }\n return this;\n }\n /**\n * Synchronize and normalize all animatables with a source animatable\n * @param root defines the root animatable to synchronize with (null to stop synchronizing)\n * @returns the animationGroup\n * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#animation-weights\n */\n syncAllAnimationsWith(e) {\n for (let t = 0; t < this._animatables.length; t++)\n this._animatables[t].syncWith(e);\n return this;\n }\n /**\n * Goes to a specific frame in this animation group. Note that the animation group must be in playing or paused status\n * @param frame the frame number to go to\n * @returns the animationGroup\n */\n goToFrame(e) {\n if (!this._isStarted)\n return this;\n for (let t = 0; t < this._animatables.length; t++)\n this._animatables[t].goToFrame(e);\n return this;\n }\n /**\n * Dispose all associated resources\n */\n dispose() {\n this._targetedAnimations.length = 0, this._animatables.length = 0;\n const e = this._scene.animationGroups.indexOf(this);\n if (e > -1 && this._scene.animationGroups.splice(e, 1), this._parentContainer) {\n const t = this._parentContainer.animationGroups.indexOf(this);\n t > -1 && this._parentContainer.animationGroups.splice(t, 1), this._parentContainer = null;\n }\n this.onAnimationEndObservable.clear(), this.onAnimationGroupEndObservable.clear(), this.onAnimationGroupPauseObservable.clear(), this.onAnimationGroupPlayObservable.clear(), this.onAnimationLoopObservable.clear(), this.onAnimationGroupLoopObservable.clear();\n }\n _checkAnimationGroupEnded(e) {\n const t = this._animatables.indexOf(e);\n t > -1 && this._animatables.splice(t, 1), this._animatables.length === 0 && (this._isStarted = !1, this.onAnimationGroupEndObservable.notifyObservers(this));\n }\n /**\n * Clone the current animation group and returns a copy\n * @param newName defines the name of the new group\n * @param targetConverter defines an optional function used to convert current animation targets to new ones\n * @param cloneAnimations defines if the animations should be cloned or referenced\n * @returns the new animation group\n */\n clone(e, t, i = !1) {\n const s = new $a(e || this.name, this._scene, this._weight, this._playOrder);\n s._from = this.from, s._to = this.to, s._speedRatio = this.speedRatio, s._loopAnimation = this.loopAnimation, s._isAdditive = this.isAdditive, s._enableBlending = this.enableBlending, s._blendingSpeed = this.blendingSpeed, s.metadata = this.metadata, s.mask = this.mask;\n for (const r of this._targetedAnimations)\n s.addTargetedAnimation(i ? r.animation.clone() : r.animation, t ? t(r.target) : r.target);\n return s;\n }\n /**\n * Serializes the animationGroup to an object\n * @returns Serialized object\n */\n serialize() {\n const e = {};\n e.name = this.name, e.from = this.from, e.to = this.to, e.speedRatio = this.speedRatio, e.loopAnimation = this.loopAnimation, e.isAdditive = this.isAdditive, e.weight = this.weight, e.playOrder = this.playOrder, e.enableBlending = this.enableBlending, e.blendingSpeed = this.blendingSpeed, e.targetedAnimations = [];\n for (let t = 0; t < this.targetedAnimations.length; t++) {\n const i = this.targetedAnimations[t];\n e.targetedAnimations[t] = i.serialize();\n }\n return Ct && Ct.HasTags(this) && (e.tags = Ct.GetTags(this)), this.metadata && (e.metadata = this.metadata), e;\n }\n // Statics\n /**\n * Returns a new AnimationGroup object parsed from the source provided.\n * @param parsedAnimationGroup defines the source\n * @param scene defines the scene that will receive the animationGroup\n * @returns a new AnimationGroup\n */\n static Parse(e, t) {\n const i = new $a(e.name, t, e.weight, e.playOrder);\n for (let s = 0; s < e.targetedAnimations.length; s++) {\n const r = e.targetedAnimations[s], n = oe.Parse(r.animation), o = r.targetId;\n if (r.animation.property === \"influence\") {\n const l = t.getMorphTargetById(o);\n l && i.addTargetedAnimation(n, l);\n } else {\n const l = t.getNodeById(o);\n l != null && i.addTargetedAnimation(n, l);\n }\n }\n return Ct && Ct.AddTagsTo(i, e.tags), e.from !== null && e.to !== null && i.normalize(e.from, e.to), e.speedRatio !== void 0 && (i._speedRatio = e.speedRatio), e.loopAnimation !== void 0 && (i._loopAnimation = e.loopAnimation), e.isAdditive !== void 0 && (i._isAdditive = e.isAdditive), e.weight !== void 0 && (i._weight = e.weight), e.playOrder !== void 0 && (i._playOrder = e.playOrder), e.enableBlending !== void 0 && (i._enableBlending = e.enableBlending), e.blendingSpeed !== void 0 && (i._blendingSpeed = e.blendingSpeed), e.metadata !== void 0 && (i.metadata = e.metadata), i;\n }\n /** @internal */\n static MakeAnimationAdditive(e, t, i, s = !1, r) {\n let n;\n typeof t == \"object\" ? n = t : n = {\n referenceFrame: t,\n range: i,\n cloneOriginalAnimationGroup: s,\n clonedAnimationName: r\n };\n let o = e;\n n.cloneOriginalAnimationGroup && (o = e.clone(n.clonedAnimationGroupName || o.name));\n const l = o.targetedAnimations;\n for (let h = 0; h < l.length; h++) {\n const c = l[h];\n c.animation = oe.MakeAnimationAdditive(c.animation, n);\n }\n if (o.isAdditive = !0, n.clipKeys) {\n let h = Number.MAX_VALUE, c = -Number.MAX_VALUE;\n const u = o.targetedAnimations;\n for (let d = 0; d < u.length; d++) {\n const _ = u[d].animation.getKeys();\n h > _[0].frame && (h = _[0].frame), c < _[_.length - 1].frame && (c = _[_.length - 1].frame);\n }\n o._from = h, o._to = c;\n }\n return o;\n }\n /**\n * Creates a new animation, keeping only the keys that are inside a given key range\n * @param sourceAnimationGroup defines the animation group on which to operate\n * @param fromKey defines the lower bound of the range\n * @param toKey defines the upper bound of the range\n * @param name defines the name of the new animation group. If not provided, use the same name as animationGroup\n * @param dontCloneAnimations defines whether or not the animations should be cloned before clipping the keys. Default is false, so animations will be cloned\n * @returns a new animation group stripped from all the keys outside the given range\n */\n static ClipKeys(e, t, i, s, r) {\n const n = e.clone(s || e.name);\n return $a.ClipKeysInPlace(n, t, i, r);\n }\n /**\n * Updates an existing animation, keeping only the keys that are inside a given key range\n * @param animationGroup defines the animation group on which to operate\n * @param fromKey defines the lower bound of the range\n * @param toKey defines the upper bound of the range\n * @param dontCloneAnimations defines whether or not the animations should be cloned before clipping the keys. Default is false, so animations will be cloned\n * @returns the animationGroup stripped from all the keys outside the given range\n */\n static ClipKeysInPlace(e, t, i, s) {\n return $a.ClipInPlace(e, t, i, s, !1);\n }\n /**\n * Creates a new animation, keeping only the frames that are inside a given frame range\n * @param sourceAnimationGroup defines the animation group on which to operate\n * @param fromFrame defines the lower bound of the range\n * @param toFrame defines the upper bound of the range\n * @param name defines the name of the new animation group. If not provided, use the same name as animationGroup\n * @param dontCloneAnimations defines whether or not the animations should be cloned before clipping the frames. Default is false, so animations will be cloned\n * @returns a new animation group stripped from all the frames outside the given range\n */\n static ClipFrames(e, t, i, s, r) {\n const n = e.clone(s || e.name);\n return $a.ClipFramesInPlace(n, t, i, r);\n }\n /**\n * Updates an existing animation, keeping only the frames that are inside a given frame range\n * @param animationGroup defines the animation group on which to operate\n * @param fromFrame defines the lower bound of the range\n * @param toFrame defines the upper bound of the range\n * @param dontCloneAnimations defines whether or not the animations should be cloned before clipping the frames. Default is false, so animations will be cloned\n * @returns the animationGroup stripped from all the frames outside the given range\n */\n static ClipFramesInPlace(e, t, i, s) {\n return $a.ClipInPlace(e, t, i, s, !0);\n }\n /**\n * Updates an existing animation, keeping only the keys that are inside a given key or frame range\n * @param animationGroup defines the animation group on which to operate\n * @param start defines the lower bound of the range\n * @param end defines the upper bound of the range\n * @param dontCloneAnimations defines whether or not the animations should be cloned before clipping the keys. Default is false, so animations will be cloned\n * @param useFrame defines if the range is defined by frame numbers or key indices (default is false which means use key indices)\n * @returns the animationGroup stripped from all the keys outside the given range\n */\n static ClipInPlace(e, t, i, s, r = !1) {\n let n = Number.MAX_VALUE, o = -Number.MAX_VALUE;\n const l = e.targetedAnimations;\n for (let h = 0; h < l.length; h++) {\n const c = l[h], u = s ? c.animation : c.animation.clone();\n r && (u.createKeyForFrame(t), u.createKeyForFrame(i));\n const d = u.getKeys(), f = [];\n let p = Number.MAX_VALUE;\n for (let _ = 0; _ < d.length; _++) {\n const m = d[_];\n if (!r && _ >= t && _ <= i || r && m.frame >= t && m.frame <= i) {\n const x = {\n frame: m.frame,\n value: m.value.clone ? m.value.clone() : m.value,\n inTangent: m.inTangent,\n outTangent: m.outTangent,\n interpolation: m.interpolation,\n lockedTangent: m.lockedTangent\n };\n p === Number.MAX_VALUE && (p = x.frame), x.frame -= p, f.push(x);\n }\n }\n if (f.length === 0) {\n l.splice(h, 1), h--;\n continue;\n }\n n > f[0].frame && (n = f[0].frame), o < f[f.length - 1].frame && (o = f[f.length - 1].frame), u.setKeys(f, !0), c.animation = u;\n }\n return e._from = n, e._to = o, e;\n }\n /**\n * Returns the string \"AnimationGroup\"\n * @returns \"AnimationGroup\"\n */\n getClassName() {\n return \"AnimationGroup\";\n }\n /**\n * Creates a detailed string about the object\n * @param fullDetails defines if the output string will support multiple levels of logging within scene loading\n * @returns a string representing the object\n */\n toString(e) {\n let t = \"Name: \" + this.name;\n return t += \", type: \" + this.getClassName(), e && (t += \", from: \" + this._from, t += \", to: \" + this._to, t += \", isStarted: \" + this._isStarted, t += \", speedRatio: \" + this._speedRatio, t += \", targetedAnimations length: \" + this._targetedAnimations.length, t += \", animatables length: \" + this._animatables), t;\n }\n}\nvar Bb;\n(function(a) {\n a[a.NONE = 0] = \"NONE\", a[a.STEP = 1] = \"STEP\";\n})(Bb || (Bb = {}));\nvar Vb;\n(function(a) {\n a[a.Include = 0] = \"Include\", a[a.Exclude = 1] = \"Exclude\";\n})(Vb || (Vb = {}));\nclass CK {\n /**\n * Creates a new mask\n * @param names The list of target names to add to the mask (optional)\n * @param mode Defines the mode for the mask (default: AnimationGroupMaskMode.Include)\n */\n constructor(e, t = 0) {\n this.mode = t, this.disabled = !1, this._targetNames = /* @__PURE__ */ new Set(), e && this.addTargetName(e);\n }\n /**\n * Adds one or several target names to the mask\n * @param name The name(s) to add to the mask\n */\n addTargetName(e) {\n if (Array.isArray(e)) {\n for (const t of e)\n this._targetNames.add(t);\n return;\n }\n this._targetNames.add(e);\n }\n /**\n * Removes one or several target names from the mask\n * @param name The name(s) to remove from the mask\n */\n removeTargetName(e) {\n if (Array.isArray(e)) {\n for (const t of e)\n this._targetNames.delete(t);\n return;\n }\n this._targetNames.delete(e);\n }\n /**\n * Checks if the mask includes a target name.\n * This method is intended to know if a given target name is included in the mask, not if the name is actually retained by the mask (see retainsTarget() instead).\n * @param name The name to check with the mask\n * @returns True if the mask includes the name, false otherwise\n */\n hasTarget(e) {\n return this._targetNames.has(e);\n }\n /**\n * Checks if the mask retains a target name.\n * Note that in the \"Exclude\" mode, this will return false if the mask includes the name, and true otherwise!\n * This method is intended to know if a given target name is retained by the mask, not if the name is in the list of target names.\n * @param name The name to check with the mask\n * @returns True if the mask retains the name, false otherwise\n */\n retainsTarget(e) {\n return this._targetNames.has(e) === (this.mode === 0);\n }\n}\nclass tL extends qi {\n}\nclass iL {\n constructor() {\n this.rootNodes = [], this.skeletons = [], this.animationGroups = [];\n }\n /**\n * Disposes the instantiated entries from the scene\n */\n dispose() {\n this.rootNodes.slice(0).forEach((e) => {\n e.dispose();\n }), this.rootNodes.length = 0, this.skeletons.slice(0).forEach((e) => {\n e.dispose();\n }), this.skeletons.length = 0, this.animationGroups.slice(0).forEach((e) => {\n e.dispose();\n }), this.animationGroups.length = 0;\n }\n}\nclass sL extends qi {\n /**\n * Instantiates an AssetContainer.\n * @param scene The scene the AssetContainer belongs to.\n */\n constructor(e) {\n super(), this._wasAddedToScene = !1, e = e || Me.LastCreatedScene, e && (this.scene = e, this.sounds = [], this.effectLayers = [], this.layers = [], this.lensFlareSystems = [], this.proceduralTextures = [], this.reflectionProbes = [], e.onDisposeObservable.add(() => {\n this._wasAddedToScene || this.dispose();\n }), this._onContextRestoredObserver = e.getEngine().onContextRestoredObservable.add(() => {\n for (const t of this.geometries)\n t._rebuild();\n for (const t of this.meshes)\n t._rebuild();\n for (const t of this.particleSystems)\n t.rebuild();\n for (const t of this.textures)\n t._rebuild();\n }));\n }\n /**\n * Given a list of nodes, return a topological sorting of them.\n * @param nodes\n * @returns a sorted array of nodes\n */\n _topologicalSort(e) {\n const t = /* @__PURE__ */ new Map();\n for (const o of e)\n t.set(o.uniqueId, o);\n const i = {\n dependsOn: /* @__PURE__ */ new Map(),\n dependedBy: /* @__PURE__ */ new Map()\n // given a node id, what are the ids of the nodes that depend on it\n };\n for (const o of e) {\n const l = o.uniqueId;\n i.dependsOn.set(l, /* @__PURE__ */ new Set()), i.dependedBy.set(l, /* @__PURE__ */ new Set());\n }\n for (const o of e) {\n const l = o.uniqueId, h = i.dependsOn.get(l);\n if (o instanceof M_) {\n const u = o.sourceMesh;\n t.has(u.uniqueId) && (h.add(u.uniqueId), i.dependedBy.get(u.uniqueId).add(l));\n }\n const c = i.dependedBy.get(l);\n for (const u of o.getDescendants()) {\n const d = u.uniqueId;\n t.has(d) && (c.add(d), i.dependsOn.get(d).add(l));\n }\n }\n const s = [], r = [];\n for (const o of e) {\n const l = o.uniqueId;\n i.dependsOn.get(l).size === 0 && (r.push(o), t.delete(l));\n }\n const n = r;\n for (; n.length > 0; ) {\n const o = n.shift();\n s.push(o);\n const l = i.dependedBy.get(o.uniqueId);\n for (const h of Array.from(l.values())) {\n const c = i.dependsOn.get(h);\n c.delete(o.uniqueId), c.size === 0 && t.get(h) && (n.push(t.get(h)), t.delete(h));\n }\n }\n return t.size > 0 && (L.Error(\"SceneSerializer._topologicalSort: There were unvisited nodes:\"), t.forEach((o) => L.Error(o.name))), s;\n }\n _addNodeAndDescendantsToList(e, t, i, s) {\n if (!(!i || s && !s(i) || t.has(i.uniqueId))) {\n e.push(i), t.add(i.uniqueId);\n for (const r of i.getDescendants(!0))\n this._addNodeAndDescendantsToList(e, t, r, s);\n }\n }\n /**\n * Check if a specific node is contained in this asset container.\n * @param node the node to check\n * @returns true if the node is contained in this container, otherwise false.\n */\n _isNodeInContainer(e) {\n return e instanceof Pt && this.meshes.indexOf(e) !== -1 || e instanceof Ye && this.transformNodes.indexOf(e) !== -1 || e instanceof at && this.lights.indexOf(e) !== -1 || e instanceof Fe && this.cameras.indexOf(e) !== -1;\n }\n /**\n * For every node in the scene, check if its parent node is also in the scene.\n * @returns true if every node's parent is also in the scene, otherwise false.\n */\n _isValidHierarchy() {\n for (const e of this.meshes)\n if (e.parent && !this._isNodeInContainer(e.parent))\n return L.Warn(`Node ${e.name} has a parent that is not in the container.`), !1;\n for (const e of this.transformNodes)\n if (e.parent && !this._isNodeInContainer(e.parent))\n return L.Warn(`Node ${e.name} has a parent that is not in the container.`), !1;\n for (const e of this.lights)\n if (e.parent && !this._isNodeInContainer(e.parent))\n return L.Warn(`Node ${e.name} has a parent that is not in the container.`), !1;\n for (const e of this.cameras)\n if (e.parent && !this._isNodeInContainer(e.parent))\n return L.Warn(`Node ${e.name} has a parent that is not in the container.`), !1;\n return !0;\n }\n /**\n * Instantiate or clone all meshes and add the new ones to the scene.\n * Skeletons and animation groups will all be cloned\n * @param nameFunction defines an optional function used to get new names for clones\n * @param cloneMaterials defines an optional boolean that defines if materials must be cloned as well (false by default)\n * @param options defines an optional list of options to control how to instantiate / clone models\n * @param options.doNotInstantiate defines if the model must be instantiated or just cloned\n * @param options.predicate defines a predicate used to filter whih mesh to instantiate/clone\n * @returns a list of rootNodes, skeletons and animation groups that were duplicated\n */\n instantiateModelsToScene(e, t = !1, i) {\n this._isValidHierarchy() || J.Warn(\"SceneSerializer.InstantiateModelsToScene: The Asset Container hierarchy is not valid.\");\n const s = {}, r = {}, n = new iL(), o = [], l = [], h = {\n doNotInstantiate: !0,\n ...i\n }, c = (_, m) => {\n if (s[_.uniqueId] = m.uniqueId, r[m.uniqueId] = m, e && (m.name = e(_.name)), m instanceof H) {\n const x = m;\n if (x.morphTargetManager) {\n const v = _.morphTargetManager;\n x.morphTargetManager = v.clone();\n for (let T = 0; T < v.numTargets; T++) {\n const E = v.getTarget(T), b = x.morphTargetManager.getTarget(T);\n s[E.uniqueId] = b.uniqueId, r[b.uniqueId] = b;\n }\n }\n }\n }, u = [], d = /* @__PURE__ */ new Set();\n for (const _ of this.transformNodes)\n _.parent === null && this._addNodeAndDescendantsToList(u, d, _, h.predicate);\n for (const _ of this.meshes)\n _.parent === null && this._addNodeAndDescendantsToList(u, d, _, h.predicate);\n const f = this._topologicalSort(u), p = (_, m) => {\n if (c(_, m), _.parent) {\n const x = s[_.parent.uniqueId], v = r[x];\n v ? m.parent = v : m.parent = _.parent;\n }\n if (m.position && _.position && m.position.copyFrom(_.position), m.rotationQuaternion && _.rotationQuaternion && m.rotationQuaternion.copyFrom(_.rotationQuaternion), m.rotation && _.rotation && m.rotation.copyFrom(_.rotation), m.scaling && _.scaling && m.scaling.copyFrom(_.scaling), m.material) {\n const x = m;\n if (x.material)\n if (t) {\n const v = _.material;\n if (l.indexOf(v) === -1) {\n let T = v.clone(e ? e(v.name) : \"Clone of \" + v.name);\n if (l.push(v), s[v.uniqueId] = T.uniqueId, r[T.uniqueId] = T, v.getClassName() === \"MultiMaterial\") {\n const E = v;\n for (const b of E.subMaterials)\n b && (T = b.clone(e ? e(b.name) : \"Clone of \" + b.name), l.push(b), s[b.uniqueId] = T.uniqueId, r[T.uniqueId] = T);\n E.subMaterials = E.subMaterials.map((b) => b && r[s[b.uniqueId]]);\n }\n }\n x.getClassName() !== \"InstancedMesh\" && (x.material = r[s[v.uniqueId]]);\n } else\n x.material.getClassName() === \"MultiMaterial\" ? this.scene.multiMaterials.indexOf(x.material) === -1 && this.scene.addMultiMaterial(x.material) : this.scene.materials.indexOf(x.material) === -1 && this.scene.addMaterial(x.material);\n }\n m.parent === null && n.rootNodes.push(m);\n };\n return f.forEach((_) => {\n if (_.getClassName() === \"InstancedMesh\") {\n const m = _, x = m.sourceMesh, v = s[x.uniqueId], E = (typeof v == \"number\" ? r[v] : x).createInstance(m.name);\n p(m, E);\n } else {\n let m = !0;\n _.getClassName() === \"TransformNode\" || _.getClassName() === \"Node\" || _.skeleton || !_.getTotalVertices || _.getTotalVertices() === 0 ? m = !1 : h.doNotInstantiate && (typeof h.doNotInstantiate == \"function\" ? m = !h.doNotInstantiate(_) : m = !h.doNotInstantiate);\n const x = m ? _.createInstance(`instance of ${_.name}`) : _.clone(`Clone of ${_.name}`, null, !0);\n if (!x)\n throw new Error(`Could not clone or instantiate node on Asset Container ${_.name}`);\n p(_, x);\n }\n }), this.skeletons.forEach((_) => {\n if (h.predicate && !h.predicate(_))\n return;\n const m = _.clone(e ? e(_.name) : \"Clone of \" + _.name);\n for (const x of this.meshes)\n if (x.skeleton === _ && !x.isAnInstance) {\n const v = r[s[x.uniqueId]];\n if (!v || v.isAnInstance || (v.skeleton = m, o.indexOf(m) !== -1))\n continue;\n o.push(m);\n for (const T of m.bones)\n T._linkedTransformNode && (T._linkedTransformNode = r[s[T._linkedTransformNode.uniqueId]]);\n }\n n.skeletons.push(m);\n }), this.animationGroups.forEach((_) => {\n if (h.predicate && !h.predicate(_))\n return;\n const m = _.clone(e ? e(_.name) : \"Clone of \" + _.name, (x) => r[s[x.uniqueId]] || x);\n n.animationGroups.push(m);\n }), n;\n }\n /**\n * Adds all the assets from the container to the scene.\n */\n addAllToScene() {\n if (!this._wasAddedToScene) {\n this._isValidHierarchy() || J.Warn(\"SceneSerializer.addAllToScene: The Asset Container hierarchy is not valid.\"), this._wasAddedToScene = !0, this.addToScene(null), this.environmentTexture && (this.scene.environmentTexture = this.environmentTexture);\n for (const e of this.scene._serializableComponents)\n e.addFromContainer(this);\n this.scene.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver), this._onContextRestoredObserver = null;\n }\n }\n /**\n * Adds assets from the container to the scene.\n * @param predicate defines a predicate used to select which entity will be added (can be null)\n */\n addToScene(e = null) {\n const t = [];\n this.cameras.forEach((i) => {\n e && !e(i) || (this.scene.addCamera(i), t.push(i));\n }), this.lights.forEach((i) => {\n e && !e(i) || (this.scene.addLight(i), t.push(i));\n }), this.meshes.forEach((i) => {\n e && !e(i) || (this.scene.addMesh(i), t.push(i));\n }), this.skeletons.forEach((i) => {\n e && !e(i) || this.scene.addSkeleton(i);\n }), this.animations.forEach((i) => {\n e && !e(i) || this.scene.addAnimation(i);\n }), this.animationGroups.forEach((i) => {\n e && !e(i) || this.scene.addAnimationGroup(i);\n }), this.multiMaterials.forEach((i) => {\n e && !e(i) || this.scene.addMultiMaterial(i);\n }), this.materials.forEach((i) => {\n e && !e(i) || this.scene.addMaterial(i);\n }), this.morphTargetManagers.forEach((i) => {\n e && !e(i) || this.scene.addMorphTargetManager(i);\n }), this.geometries.forEach((i) => {\n e && !e(i) || this.scene.addGeometry(i);\n }), this.transformNodes.forEach((i) => {\n e && !e(i) || (this.scene.addTransformNode(i), t.push(i));\n }), this.actionManagers.forEach((i) => {\n e && !e(i) || this.scene.addActionManager(i);\n }), this.textures.forEach((i) => {\n e && !e(i) || this.scene.addTexture(i);\n }), this.reflectionProbes.forEach((i) => {\n e && !e(i) || this.scene.addReflectionProbe(i);\n });\n for (const i of t)\n i.parent && this.scene.getNodes().indexOf(i.parent) === -1 && (i.setParent ? i.setParent(null) : i.parent = null);\n }\n /**\n * Removes all the assets in the container from the scene\n */\n removeAllFromScene() {\n this._isValidHierarchy() || J.Warn(\"SceneSerializer.removeAllFromScene: The Asset Container hierarchy is not valid.\"), this._wasAddedToScene = !1, this.removeFromScene(null), this.environmentTexture === this.scene.environmentTexture && (this.scene.environmentTexture = null);\n for (const e of this.scene._serializableComponents)\n e.removeFromContainer(this);\n }\n /**\n * Removes assets in the container from the scene\n * @param predicate defines a predicate used to select which entity will be added (can be null)\n */\n removeFromScene(e = null) {\n this.cameras.forEach((t) => {\n e && !e(t) || this.scene.removeCamera(t);\n }), this.lights.forEach((t) => {\n e && !e(t) || this.scene.removeLight(t);\n }), this.meshes.forEach((t) => {\n e && !e(t) || this.scene.removeMesh(t, !0);\n }), this.skeletons.forEach((t) => {\n e && !e(t) || this.scene.removeSkeleton(t);\n }), this.animations.forEach((t) => {\n e && !e(t) || this.scene.removeAnimation(t);\n }), this.animationGroups.forEach((t) => {\n e && !e(t) || this.scene.removeAnimationGroup(t);\n }), this.multiMaterials.forEach((t) => {\n e && !e(t) || this.scene.removeMultiMaterial(t);\n }), this.materials.forEach((t) => {\n e && !e(t) || this.scene.removeMaterial(t);\n }), this.morphTargetManagers.forEach((t) => {\n e && !e(t) || this.scene.removeMorphTargetManager(t);\n }), this.geometries.forEach((t) => {\n e && !e(t) || this.scene.removeGeometry(t);\n }), this.transformNodes.forEach((t) => {\n e && !e(t) || this.scene.removeTransformNode(t);\n }), this.actionManagers.forEach((t) => {\n e && !e(t) || this.scene.removeActionManager(t);\n }), this.textures.forEach((t) => {\n e && !e(t) || this.scene.removeTexture(t);\n }), this.reflectionProbes.forEach((t) => {\n e && !e(t) || this.scene.removeReflectionProbe(t);\n });\n }\n /**\n * Disposes all the assets in the container\n */\n dispose() {\n this.cameras.slice(0).forEach((e) => {\n e.dispose();\n }), this.cameras.length = 0, this.lights.slice(0).forEach((e) => {\n e.dispose();\n }), this.lights.length = 0, this.meshes.slice(0).forEach((e) => {\n e.dispose();\n }), this.meshes.length = 0, this.skeletons.slice(0).forEach((e) => {\n e.dispose();\n }), this.skeletons.length = 0, this.animationGroups.slice(0).forEach((e) => {\n e.dispose();\n }), this.animationGroups.length = 0, this.multiMaterials.slice(0).forEach((e) => {\n e.dispose();\n }), this.multiMaterials.length = 0, this.materials.slice(0).forEach((e) => {\n e.dispose();\n }), this.materials.length = 0, this.geometries.slice(0).forEach((e) => {\n e.dispose();\n }), this.geometries.length = 0, this.transformNodes.slice(0).forEach((e) => {\n e.dispose();\n }), this.transformNodes.length = 0, this.actionManagers.slice(0).forEach((e) => {\n e.dispose();\n }), this.actionManagers.length = 0, this.textures.slice(0).forEach((e) => {\n e.dispose();\n }), this.textures.length = 0, this.reflectionProbes.slice(0).forEach((e) => {\n e.dispose();\n }), this.reflectionProbes.length = 0, this.morphTargetManagers.slice(0).forEach((e) => {\n e.dispose();\n }), this.morphTargetManagers.length = 0, this.environmentTexture && (this.environmentTexture.dispose(), this.environmentTexture = null);\n for (const e of this.scene._serializableComponents)\n e.removeFromContainer(this, !0);\n this._onContextRestoredObserver && (this.scene.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver), this._onContextRestoredObserver = null);\n }\n _moveAssets(e, t, i) {\n if (!(!e || !t))\n for (const s of e) {\n let r = !0;\n if (i) {\n for (const n of i)\n if (s === n) {\n r = !1;\n break;\n }\n }\n r && (t.push(s), s._parentContainer = this);\n }\n }\n /**\n * Removes all the assets contained in the scene and adds them to the container.\n * @param keepAssets Set of assets to keep in the scene. (default: empty)\n */\n moveAllFromScene(e) {\n this._wasAddedToScene = !1, e === void 0 && (e = new tL());\n for (const t in this)\n Object.prototype.hasOwnProperty.call(this, t) && (this[t] = this[t] || (t === \"_environmentTexture\" ? null : []), this._moveAssets(this.scene[t], this[t], e[t]));\n this.environmentTexture = this.scene.environmentTexture, this.removeAllFromScene();\n }\n /**\n * Adds all meshes in the asset container to a root mesh that can be used to position all the contained meshes. The root mesh is then added to the front of the meshes in the assetContainer.\n * @returns the root mesh\n */\n createRootMesh() {\n const e = new H(\"assetContainerRootMesh\", this.scene);\n return this.meshes.forEach((t) => {\n t.parent || e.addChild(t);\n }), this.meshes.unshift(e), e;\n }\n /**\n * Merge animations (direct and animation groups) from this asset container into a scene\n * @param scene is the instance of BABYLON.Scene to append to (default: last created scene)\n * @param animatables set of animatables to retarget to a node from the scene\n * @param targetConverter defines a function used to convert animation targets from the asset container to the scene (default: search node by name)\n * @returns an array of the new AnimationGroup added to the scene (empty array if none)\n */\n mergeAnimationsTo(e = Me.LastCreatedScene, t, i = null) {\n if (!e)\n return L.Error(\"No scene available to merge animations to\"), [];\n const s = i || ((o) => {\n let l = null;\n const h = o.animations.length ? o.animations[0].targetProperty : \"\", c = o.name.split(\".\").join(\"\").split(\"_primitive\")[0];\n switch (h) {\n case \"position\":\n case \"rotationQuaternion\":\n l = e.getTransformNodeByName(o.name) || e.getTransformNodeByName(c);\n break;\n case \"influence\":\n l = e.getMorphTargetByName(o.name) || e.getMorphTargetByName(c);\n break;\n default:\n l = e.getNodeByName(o.name) || e.getNodeByName(c);\n }\n return l;\n });\n this.getNodes().forEach((o) => {\n const l = s(o);\n if (l !== null) {\n for (const h of o.animations) {\n const c = l.animations.filter((u) => u.targetProperty === h.targetProperty);\n for (const u of c) {\n const d = l.animations.indexOf(u, 0);\n d > -1 && l.animations.splice(d, 1);\n }\n }\n l.animations = l.animations.concat(o.animations);\n }\n });\n const n = [];\n return this.animationGroups.slice().forEach((o) => {\n n.push(o.clone(o.name, s)), o.animatables.forEach((l) => {\n l.stop();\n });\n }), t.forEach((o) => {\n const l = s(o.target);\n l && (e.beginAnimation(l, o.fromFrame, o.toFrame, o.loopAnimation, o.speedRatio, o.onAnimationEnd ? o.onAnimationEnd : void 0, void 0, !0, void 0, o.onAnimationLoop ? o.onAnimationLoop : void 0), e.stopAnimation(o.target));\n }), n;\n }\n /**\n * @since 6.15.0\n * This method checks for any node that has no parent\n * and is not in the rootNodes array, and adds the node\n * there, if so.\n */\n populateRootNodes() {\n this.rootNodes.length = 0, this.meshes.forEach((e) => {\n !e.parent && this.rootNodes.indexOf(e) === -1 && this.rootNodes.push(e);\n }), this.transformNodes.forEach((e) => {\n !e.parent && this.rootNodes.indexOf(e) === -1 && this.rootNodes.push(e);\n }), this.lights.forEach((e) => {\n !e.parent && this.rootNodes.indexOf(e) === -1 && this.rootNodes.push(e);\n }), this.cameras.forEach((e) => {\n !e.parent && this.rootNodes.indexOf(e) === -1 && this.rootNodes.push(e);\n });\n }\n /**\n * @since 6.26.0\n * Given a root asset, this method will traverse its hierarchy and add it, its children and any materials/skeletons/animation groups to the container.\n * @param root root node\n */\n addAllAssetsToContainer(e) {\n if (!e)\n return;\n const t = [], i = /* @__PURE__ */ new Set();\n for (t.push(e); t.length > 0; ) {\n const s = t.pop();\n if (s instanceof H ? (s.geometry && this.geometries.indexOf(s.geometry) === -1 && this.geometries.push(s.geometry), this.meshes.push(s)) : s instanceof Ye ? this.transformNodes.push(s) : s instanceof at ? this.lights.push(s) : s instanceof Fe && this.cameras.push(s), s instanceof Pt) {\n if (s.material && this.materials.indexOf(s.material) === -1) {\n this.materials.push(s.material);\n for (const r of s.material.getActiveTextures())\n this.textures.indexOf(r) === -1 && this.textures.push(r);\n }\n s.skeleton && this.skeletons.indexOf(s.skeleton) === -1 && this.skeletons.push(s.skeleton), s.morphTargetManager && this.morphTargetManagers.indexOf(s.morphTargetManager) === -1 && this.morphTargetManagers.push(s.morphTargetManager);\n }\n for (const r of s.getChildren())\n i.has(r) || t.push(r);\n i.add(s);\n }\n this.populateRootNodes();\n }\n}\nclass Qn {\n /**\n * Does the sound loop after it finishes playing once.\n */\n get loop() {\n return this._loop;\n }\n set loop(e) {\n e !== this._loop && (this._loop = e, this.updateOptions({ loop: e }));\n }\n /**\n * Gets the current time for the sound.\n */\n get currentTime() {\n var e;\n if (this._htmlAudioElement)\n return this._htmlAudioElement.currentTime;\n if ((e = ee.audioEngine) != null && e.audioContext && (this.isPlaying || this.isPaused)) {\n const t = this.isPaused ? 0 : ee.audioEngine.audioContext.currentTime - this._startTime;\n return this._currentTime + t;\n }\n return 0;\n }\n /**\n * Does this sound enables spatial sound.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#creating-a-spatial-3d-sound\n */\n get spatialSound() {\n return this._spatialSound;\n }\n /**\n * Does this sound enables spatial sound.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#creating-a-spatial-3d-sound\n */\n set spatialSound(e) {\n if (e == this._spatialSound)\n return;\n const t = this.isPlaying;\n this.pause(), e ? (this._spatialSound = e, this._updateSpatialParameters()) : this._disableSpatialSound(), t && this.play();\n }\n /**\n * Create a sound and attach it to a scene\n * @param name Name of your sound\n * @param urlOrArrayBuffer Url to the sound to load async or ArrayBuffer, it also works with MediaStreams and AudioBuffers\n * @param scene defines the scene the sound belongs to\n * @param readyToPlayCallback Provide a callback function if you'd like to load your code once the sound is ready to be played\n * @param options Objects to provide with the current available options: autoplay, loop, volume, spatialSound, maxDistance, rolloffFactor, refDistance, distanceModel, panningModel, streaming\n */\n constructor(e, t, i, s = null, r) {\n var n;\n if (this.autoplay = !1, this._loop = !1, this.useCustomAttenuation = !1, this.isPlaying = !1, this.isPaused = !1, this.refDistance = 1, this.rolloffFactor = 1, this.maxDistance = 100, this.distanceModel = \"linear\", this.metadata = null, this.onEndedObservable = new G(), this._spatialSound = !1, this._panningModel = \"equalpower\", this._playbackRate = 1, this._streaming = !1, this._startTime = 0, this._currentTime = 0, this._position = g.Zero(), this._localDirection = new g(1, 0, 0), this._volume = 1, this._isReadyToPlay = !1, this._isDirectional = !1, this._coneInnerAngle = 360, this._coneOuterAngle = 360, this._coneOuterGain = 0, this._isOutputConnected = !1, this._urlType = \"Unknown\", this.name = e, i = i || Me.LastCreatedScene, !!i)\n if (this._scene = i, Qn._SceneComponentInitialization(i), this._readyToPlayCallback = s, this._customAttenuationFunction = (o, l, h, c, u) => l < h ? o * (1 - l / h) : 0, r && (this.autoplay = r.autoplay || !1, this._loop = r.loop || !1, r.volume !== void 0 && (this._volume = r.volume), this._spatialSound = r.spatialSound ?? !1, this.maxDistance = r.maxDistance ?? 100, this.useCustomAttenuation = r.useCustomAttenuation ?? !1, this.rolloffFactor = r.rolloffFactor || 1, this.refDistance = r.refDistance || 1, this.distanceModel = r.distanceModel || \"linear\", this._playbackRate = r.playbackRate || 1, this._streaming = r.streaming ?? !1, this._length = r.length, this._offset = r.offset), (n = ee.audioEngine) != null && n.canUseWebAudio && ee.audioEngine.audioContext) {\n this._soundGain = ee.audioEngine.audioContext.createGain(), this._soundGain.gain.value = this._volume, this._inputAudioNode = this._soundGain, this._outputAudioNode = this._soundGain, this._spatialSound && this._createSpatialParameters(), this._scene.mainSoundTrack.addSound(this);\n let o = !0;\n if (t)\n try {\n typeof t == \"string\" ? (this._urlType = \"String\", this._url = t) : t instanceof ArrayBuffer ? this._urlType = \"ArrayBuffer\" : t instanceof HTMLMediaElement ? this._urlType = \"MediaElement\" : t instanceof MediaStream ? this._urlType = \"MediaStream\" : t instanceof AudioBuffer ? this._urlType = \"AudioBuffer\" : Array.isArray(t) && (this._urlType = \"Array\");\n let l = [], h = !1;\n switch (this._urlType) {\n case \"MediaElement\":\n this._streaming = !0, this._isReadyToPlay = !0, this._streamingSource = ee.audioEngine.audioContext.createMediaElementSource(t), this.autoplay && this.play(0, this._offset, this._length), this._readyToPlayCallback && this._readyToPlayCallback();\n break;\n case \"MediaStream\":\n this._streaming = !0, this._isReadyToPlay = !0, this._streamingSource = ee.audioEngine.audioContext.createMediaStreamSource(t), this.autoplay && this.play(0, this._offset, this._length), this._readyToPlayCallback && this._readyToPlayCallback();\n break;\n case \"ArrayBuffer\":\n t.byteLength > 0 && (h = !0, this._soundLoaded(t));\n break;\n case \"AudioBuffer\":\n this._audioBufferLoaded(t);\n break;\n case \"String\":\n l.push(t);\n case \"Array\":\n l.length === 0 && (l = t);\n for (let c = 0; c < l.length; c++) {\n const u = l[c];\n if (h = r && r.skipCodecCheck || u.indexOf(\".mp3\", u.length - 4) !== -1 && ee.audioEngine.isMP3supported || u.indexOf(\".ogg\", u.length - 4) !== -1 && ee.audioEngine.isOGGsupported || u.indexOf(\".wav\", u.length - 4) !== -1 || u.indexOf(\".m4a\", u.length - 4) !== -1 || u.indexOf(\".mp4\", u.length - 4) !== -1 || u.indexOf(\"blob:\") !== -1, h) {\n this._streaming ? (this._htmlAudioElement = new Audio(u), this._htmlAudioElement.controls = !1, this._htmlAudioElement.loop = this.loop, J.SetCorsBehavior(u, this._htmlAudioElement), this._htmlAudioElement.preload = \"auto\", this._htmlAudioElement.addEventListener(\"canplaythrough\", () => {\n this._isReadyToPlay = !0, this.autoplay && this.play(0, this._offset, this._length), this._readyToPlayCallback && this._readyToPlayCallback();\n }), document.body.appendChild(this._htmlAudioElement), this._htmlAudioElement.load()) : this._scene._loadFile(u, (d) => {\n this._soundLoaded(d);\n }, void 0, !0, !0, (d) => {\n d && L.Error(\"XHR \" + d.status + \" error on: \" + u + \".\"), L.Error(\"Sound creation aborted.\"), this._scene.mainSoundTrack.removeSound(this);\n });\n break;\n }\n }\n break;\n default:\n o = !1;\n break;\n }\n o ? h || (this._isReadyToPlay = !0, this._readyToPlayCallback && setTimeout(() => {\n this._readyToPlayCallback && this._readyToPlayCallback();\n }, 1e3)) : L.Error(\"Parameter must be a URL to the sound, an Array of URLs (.mp3 & .ogg) or an ArrayBuffer of the sound.\");\n } catch {\n L.Error(\"Unexpected error. Sound creation aborted.\"), this._scene.mainSoundTrack.removeSound(this);\n }\n } else\n this._scene.mainSoundTrack.addSound(this), ee.audioEngine && !ee.audioEngine.WarnedWebAudioUnsupported && (L.Error(\"Web Audio is not supported by your browser.\"), ee.audioEngine.WarnedWebAudioUnsupported = !0), this._readyToPlayCallback && setTimeout(() => {\n this._readyToPlayCallback && this._readyToPlayCallback();\n }, 1e3);\n }\n /**\n * Release the sound and its associated resources\n */\n dispose() {\n var e;\n (e = ee.audioEngine) != null && e.canUseWebAudio && (this.isPlaying && this.stop(), this._isReadyToPlay = !1, this.soundTrackId === -1 ? this._scene.mainSoundTrack.removeSound(this) : this._scene.soundTracks && this._scene.soundTracks[this.soundTrackId].removeSound(this), this._soundGain && (this._soundGain.disconnect(), this._soundGain = null), this._soundPanner && (this._soundPanner.disconnect(), this._soundPanner = null), this._soundSource && (this._soundSource.disconnect(), this._soundSource = null), this._audioBuffer = null, this._htmlAudioElement && (this._htmlAudioElement.pause(), this._htmlAudioElement.src = \"\", document.body.removeChild(this._htmlAudioElement)), this._streamingSource && this._streamingSource.disconnect(), this._connectedTransformNode && this._registerFunc && (this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc), this._connectedTransformNode = null), this._clearTimeoutsAndObservers());\n }\n /**\n * Gets if the sounds is ready to be played or not.\n * @returns true if ready, otherwise false\n */\n isReady() {\n return this._isReadyToPlay;\n }\n /**\n * Get the current class name.\n * @returns current class name\n */\n getClassName() {\n return \"Sound\";\n }\n _audioBufferLoaded(e) {\n var t;\n (t = ee.audioEngine) != null && t.audioContext && (this._audioBuffer = e, this._isReadyToPlay = !0, this.autoplay && this.play(0, this._offset, this._length), this._readyToPlayCallback && this._readyToPlayCallback());\n }\n _soundLoaded(e) {\n var t;\n (t = ee.audioEngine) != null && t.audioContext && ee.audioEngine.audioContext.decodeAudioData(e, (i) => {\n this._audioBufferLoaded(i);\n }, (i) => {\n L.Error(\"Error while decoding audio data for: \" + this.name + \" / Error: \" + i);\n });\n }\n /**\n * Sets the data of the sound from an audiobuffer\n * @param audioBuffer The audioBuffer containing the data\n */\n setAudioBuffer(e) {\n var t;\n (t = ee.audioEngine) != null && t.canUseWebAudio && (this._audioBuffer = e, this._isReadyToPlay = !0);\n }\n /**\n * Updates the current sounds options such as maxdistance, loop...\n * @param options A JSON object containing values named as the object properties\n */\n updateOptions(e) {\n e && (this.loop = e.loop ?? this.loop, this.maxDistance = e.maxDistance ?? this.maxDistance, this.useCustomAttenuation = e.useCustomAttenuation ?? this.useCustomAttenuation, this.rolloffFactor = e.rolloffFactor ?? this.rolloffFactor, this.refDistance = e.refDistance ?? this.refDistance, this.distanceModel = e.distanceModel ?? this.distanceModel, this._playbackRate = e.playbackRate ?? this._playbackRate, this._length = e.length ?? void 0, this.spatialSound = e.spatialSound ?? this._spatialSound, this._setOffset(e.offset ?? void 0), this.setVolume(e.volume ?? this._volume), this._updateSpatialParameters(), this.isPlaying && (this._streaming && this._htmlAudioElement ? (this._htmlAudioElement.playbackRate = this._playbackRate, this._htmlAudioElement.loop !== this.loop && (this._htmlAudioElement.loop = this.loop)) : this._soundSource && (this._soundSource.playbackRate.value = this._playbackRate, this._soundSource.loop !== this.loop && (this._soundSource.loop = this.loop), this._offset !== void 0 && this._soundSource.loopStart !== this._offset && (this._soundSource.loopStart = this._offset), this._length !== void 0 && this._length !== this._soundSource.loopEnd && (this._soundSource.loopEnd = (this._offset | 0) + this._length))));\n }\n _createSpatialParameters() {\n var e;\n (e = ee.audioEngine) != null && e.canUseWebAudio && ee.audioEngine.audioContext && (this._scene.headphone && (this._panningModel = \"HRTF\"), this._soundPanner = this._soundPanner ?? ee.audioEngine.audioContext.createPanner(), this._soundPanner && this._outputAudioNode && (this._updateSpatialParameters(), this._soundPanner.connect(this._outputAudioNode), this._inputAudioNode = this._soundPanner));\n }\n _disableSpatialSound() {\n var e;\n this._spatialSound && (this._inputAudioNode = this._soundGain, (e = this._soundPanner) == null || e.disconnect(), this._soundPanner = null, this._spatialSound = !1);\n }\n _updateSpatialParameters() {\n this._spatialSound && (this._soundPanner ? this.useCustomAttenuation ? (this._soundPanner.distanceModel = \"linear\", this._soundPanner.maxDistance = Number.MAX_VALUE, this._soundPanner.refDistance = 1, this._soundPanner.rolloffFactor = 1, this._soundPanner.panningModel = this._panningModel) : (this._soundPanner.distanceModel = this.distanceModel, this._soundPanner.maxDistance = this.maxDistance, this._soundPanner.refDistance = this.refDistance, this._soundPanner.rolloffFactor = this.rolloffFactor, this._soundPanner.panningModel = this._panningModel) : this._createSpatialParameters());\n }\n /**\n * Switch the panning model to HRTF:\n * Renders a stereo output of higher quality than equalpower — it uses a convolution with measured impulse responses from human subjects.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#creating-a-spatial-3d-sound\n */\n switchPanningModelToHRTF() {\n this._panningModel = \"HRTF\", this._switchPanningModel();\n }\n /**\n * Switch the panning model to Equal Power:\n * Represents the equal-power panning algorithm, generally regarded as simple and efficient. equalpower is the default value.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#creating-a-spatial-3d-sound\n */\n switchPanningModelToEqualPower() {\n this._panningModel = \"equalpower\", this._switchPanningModel();\n }\n _switchPanningModel() {\n var e;\n (e = ee.audioEngine) != null && e.canUseWebAudio && this._spatialSound && this._soundPanner && (this._soundPanner.panningModel = this._panningModel);\n }\n /**\n * Connect this sound to a sound track audio node like gain...\n * @param soundTrackAudioNode the sound track audio node to connect to\n */\n connectToSoundTrackAudioNode(e) {\n var t;\n (t = ee.audioEngine) != null && t.canUseWebAudio && this._outputAudioNode && (this._isOutputConnected && this._outputAudioNode.disconnect(), this._outputAudioNode.connect(e), this._isOutputConnected = !0);\n }\n /**\n * Transform this sound into a directional source\n * @param coneInnerAngle Size of the inner cone in degree\n * @param coneOuterAngle Size of the outer cone in degree\n * @param coneOuterGain Volume of the sound outside the outer cone (between 0.0 and 1.0)\n */\n setDirectionalCone(e, t, i) {\n if (t < e) {\n L.Error(\"setDirectionalCone(): outer angle of the cone must be superior or equal to the inner angle.\");\n return;\n }\n this._coneInnerAngle = e, this._coneOuterAngle = t, this._coneOuterGain = i, this._isDirectional = !0, this.isPlaying && this.loop && (this.stop(), this.play(0, this._offset, this._length));\n }\n /**\n * Gets or sets the inner angle for the directional cone.\n */\n get directionalConeInnerAngle() {\n return this._coneInnerAngle;\n }\n /**\n * Gets or sets the inner angle for the directional cone.\n */\n set directionalConeInnerAngle(e) {\n var t;\n if (e != this._coneInnerAngle) {\n if (this._coneOuterAngle < e) {\n L.Error(\"directionalConeInnerAngle: outer angle of the cone must be superior or equal to the inner angle.\");\n return;\n }\n this._coneInnerAngle = e, (t = ee.audioEngine) != null && t.canUseWebAudio && this._spatialSound && this._soundPanner && (this._soundPanner.coneInnerAngle = this._coneInnerAngle);\n }\n }\n /**\n * Gets or sets the outer angle for the directional cone.\n */\n get directionalConeOuterAngle() {\n return this._coneOuterAngle;\n }\n /**\n * Gets or sets the outer angle for the directional cone.\n */\n set directionalConeOuterAngle(e) {\n var t;\n if (e != this._coneOuterAngle) {\n if (e < this._coneInnerAngle) {\n L.Error(\"directionalConeOuterAngle: outer angle of the cone must be superior or equal to the inner angle.\");\n return;\n }\n this._coneOuterAngle = e, (t = ee.audioEngine) != null && t.canUseWebAudio && this._spatialSound && this._soundPanner && (this._soundPanner.coneOuterAngle = this._coneOuterAngle);\n }\n }\n /**\n * Sets the position of the emitter if spatial sound is enabled\n * @param newPosition Defines the new position\n */\n setPosition(e) {\n var t;\n e.equals(this._position) || (this._position.copyFrom(e), (t = ee.audioEngine) != null && t.canUseWebAudio && this._spatialSound && this._soundPanner && !isNaN(this._position.x) && !isNaN(this._position.y) && !isNaN(this._position.z) && (this._soundPanner.positionX.value = this._position.x, this._soundPanner.positionY.value = this._position.y, this._soundPanner.positionZ.value = this._position.z));\n }\n /**\n * Sets the local direction of the emitter if spatial sound is enabled\n * @param newLocalDirection Defines the new local direction\n */\n setLocalDirectionToMesh(e) {\n var t;\n this._localDirection = e, (t = ee.audioEngine) != null && t.canUseWebAudio && this._connectedTransformNode && this.isPlaying && this._updateDirection();\n }\n _updateDirection() {\n if (!this._connectedTransformNode || !this._soundPanner)\n return;\n const e = this._connectedTransformNode.getWorldMatrix(), t = g.TransformNormal(this._localDirection, e);\n t.normalize(), this._soundPanner.orientationX.value = t.x, this._soundPanner.orientationY.value = t.y, this._soundPanner.orientationZ.value = t.z;\n }\n /** @internal */\n updateDistanceFromListener() {\n var e;\n if ((e = ee.audioEngine) != null && e.canUseWebAudio && this._connectedTransformNode && this.useCustomAttenuation && this._soundGain && this._scene.activeCamera) {\n const t = this._scene.audioListenerPositionProvider ? this._connectedTransformNode.position.subtract(this._scene.audioListenerPositionProvider()).length() : this._connectedTransformNode.getDistanceToCamera(this._scene.activeCamera);\n this._soundGain.gain.value = this._customAttenuationFunction(this._volume, t, this.maxDistance, this.refDistance, this.rolloffFactor);\n }\n }\n /**\n * Sets a new custom attenuation function for the sound.\n * @param callback Defines the function used for the attenuation\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#creating-your-own-custom-attenuation-function\n */\n setAttenuationFunction(e) {\n this._customAttenuationFunction = e;\n }\n /**\n * Play the sound\n * @param time (optional) Start the sound after X seconds. Start immediately (0) by default.\n * @param offset (optional) Start the sound at a specific time in seconds\n * @param length (optional) Sound duration (in seconds)\n */\n play(e, t, i) {\n var s, r, n, o;\n if (this._isReadyToPlay && this._scene.audioEnabled && ((s = ee.audioEngine) != null && s.audioContext))\n try {\n this._clearTimeoutsAndObservers();\n let l = e ? ((r = ee.audioEngine) == null ? void 0 : r.audioContext.currentTime) + e : (n = ee.audioEngine) == null ? void 0 : n.audioContext.currentTime;\n if ((!this._soundSource || !this._streamingSource) && this._spatialSound && this._soundPanner && (!isNaN(this._position.x) && !isNaN(this._position.y) && !isNaN(this._position.z) && (this._soundPanner.positionX.value = this._position.x, this._soundPanner.positionY.value = this._position.y, this._soundPanner.positionZ.value = this._position.z), this._isDirectional && (this._soundPanner.coneInnerAngle = this._coneInnerAngle, this._soundPanner.coneOuterAngle = this._coneOuterAngle, this._soundPanner.coneOuterGain = this._coneOuterGain, this._connectedTransformNode ? this._updateDirection() : this._soundPanner.setOrientation(this._localDirection.x, this._localDirection.y, this._localDirection.z))), this._streaming) {\n if (this._streamingSource || (this._streamingSource = ee.audioEngine.audioContext.createMediaElementSource(this._htmlAudioElement), this._htmlAudioElement.onended = () => {\n this._onended();\n }, this._htmlAudioElement.playbackRate = this._playbackRate), this._streamingSource.disconnect(), this._inputAudioNode && this._streamingSource.connect(this._inputAudioNode), this._htmlAudioElement) {\n const h = () => {\n var c, u;\n if ((c = ee.audioEngine) != null && c.unlocked) {\n const d = this._htmlAudioElement.play();\n d !== void 0 && d.catch(() => {\n var f, p;\n (f = ee.audioEngine) == null || f.lock(), (this.loop || this.autoplay) && (this._audioUnlockedObserver = (p = ee.audioEngine) == null ? void 0 : p.onAudioUnlockedObservable.addOnce(() => {\n h();\n }));\n });\n } else\n (this.loop || this.autoplay) && (this._audioUnlockedObserver = (u = ee.audioEngine) == null ? void 0 : u.onAudioUnlockedObservable.addOnce(() => {\n h();\n }));\n };\n h();\n }\n } else {\n const h = () => {\n var c, u, d;\n if ((c = ee.audioEngine) != null && c.audioContext) {\n if (i = i || this._length, t !== void 0 && this._setOffset(t), this._soundSource) {\n const f = this._soundSource;\n f.onended = () => {\n f.disconnect();\n };\n }\n if (this._soundSource = (u = ee.audioEngine) == null ? void 0 : u.audioContext.createBufferSource(), this._soundSource && this._inputAudioNode) {\n this._soundSource.buffer = this._audioBuffer, this._soundSource.connect(this._inputAudioNode), this._soundSource.loop = this.loop, t !== void 0 && (this._soundSource.loopStart = t), i !== void 0 && (this._soundSource.loopEnd = (t | 0) + i), this._soundSource.playbackRate.value = this._playbackRate, this._soundSource.onended = () => {\n this._onended();\n }, l = e ? ((d = ee.audioEngine) == null ? void 0 : d.audioContext.currentTime) + e : ee.audioEngine.audioContext.currentTime;\n const f = ((this.isPaused ? this.currentTime : 0) + (this._offset ?? 0)) % this._soundSource.buffer.duration;\n this._soundSource.start(l, f, this.loop ? void 0 : i);\n }\n }\n };\n ((o = ee.audioEngine) == null ? void 0 : o.audioContext.state) === \"suspended\" ? this._tryToPlayTimeout = setTimeout(() => {\n var c;\n ((c = ee.audioEngine) == null ? void 0 : c.audioContext.state) === \"suspended\" ? (ee.audioEngine.lock(), (this.loop || this.autoplay) && (this._audioUnlockedObserver = ee.audioEngine.onAudioUnlockedObservable.addOnce(() => {\n h();\n }))) : h();\n }, 500) : h();\n }\n this._startTime = l, this.isPlaying = !0, this.isPaused = !1;\n } catch (l) {\n L.Error(\"Error while trying to play audio: \" + this.name + \", \" + l.message);\n }\n }\n _onended() {\n this.isPlaying = !1, this._startTime = 0, this._currentTime = 0, this.onended && this.onended(), this.onEndedObservable.notifyObservers(this);\n }\n /**\n * Stop the sound\n * @param time (optional) Stop the sound after X seconds. Stop immediately (0) by default.\n */\n stop(e) {\n var t;\n if (this.isPlaying)\n if (this._clearTimeoutsAndObservers(), this._streaming)\n this._htmlAudioElement ? (this._htmlAudioElement.pause(), this._htmlAudioElement.currentTime > 0 && (this._htmlAudioElement.currentTime = 0)) : this._streamingSource.disconnect(), this.isPlaying = !1;\n else if ((t = ee.audioEngine) != null && t.audioContext && this._soundSource) {\n const i = e ? ee.audioEngine.audioContext.currentTime + e : void 0;\n this._soundSource.onended = () => {\n this.isPlaying = !1, this.isPaused = !1, this._startTime = 0, this._currentTime = 0, this._soundSource && (this._soundSource.onended = () => {\n }), this._onended();\n }, this._soundSource.stop(i);\n } else\n this.isPlaying = !1;\n else this.isPaused && (this.isPaused = !1, this._startTime = 0, this._currentTime = 0);\n }\n /**\n * Put the sound in pause\n */\n pause() {\n var e;\n this.isPlaying && (this._clearTimeoutsAndObservers(), this._streaming ? (this._htmlAudioElement ? this._htmlAudioElement.pause() : this._streamingSource.disconnect(), this.isPlaying = !1, this.isPaused = !0) : (e = ee.audioEngine) != null && e.audioContext && this._soundSource && (this._soundSource.onended = () => {\n }, this._soundSource.stop(), this.isPlaying = !1, this.isPaused = !0, this._currentTime += ee.audioEngine.audioContext.currentTime - this._startTime));\n }\n /**\n * Sets a dedicated volume for this sounds\n * @param newVolume Define the new volume of the sound\n * @param time Define time for gradual change to new volume\n */\n setVolume(e, t) {\n var i;\n (i = ee.audioEngine) != null && i.canUseWebAudio && this._soundGain && (t && ee.audioEngine.audioContext ? (this._soundGain.gain.cancelScheduledValues(ee.audioEngine.audioContext.currentTime), this._soundGain.gain.setValueAtTime(this._soundGain.gain.value, ee.audioEngine.audioContext.currentTime), this._soundGain.gain.linearRampToValueAtTime(e, ee.audioEngine.audioContext.currentTime + t)) : this._soundGain.gain.value = e), this._volume = e;\n }\n /**\n * Set the sound play back rate\n * @param newPlaybackRate Define the playback rate the sound should be played at\n */\n setPlaybackRate(e) {\n this._playbackRate = e, this.isPlaying && (this._streaming && this._htmlAudioElement ? this._htmlAudioElement.playbackRate = this._playbackRate : this._soundSource && (this._soundSource.playbackRate.value = this._playbackRate));\n }\n /**\n * Gets the sound play back rate.\n * @returns the play back rate of the sound\n */\n getPlaybackRate() {\n return this._playbackRate;\n }\n /**\n * Gets the volume of the sound.\n * @returns the volume of the sound\n */\n getVolume() {\n return this._volume;\n }\n /**\n * Attach the sound to a dedicated mesh\n * @param transformNode The transform node to connect the sound with\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#attaching-a-sound-to-a-mesh\n */\n attachToMesh(e) {\n this._connectedTransformNode && this._registerFunc && (this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc), this._registerFunc = null), this._connectedTransformNode = e, this._spatialSound || (this._spatialSound = !0, this._createSpatialParameters(), this.isPlaying && this.loop && (this.stop(), this.play(0, this._offset, this._length))), this._onRegisterAfterWorldMatrixUpdate(this._connectedTransformNode), this._registerFunc = (t) => this._onRegisterAfterWorldMatrixUpdate(t), this._connectedTransformNode.registerAfterWorldMatrixUpdate(this._registerFunc);\n }\n /**\n * Detach the sound from the previously attached mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#attaching-a-sound-to-a-mesh\n */\n detachFromMesh() {\n this._connectedTransformNode && this._registerFunc && (this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc), this._registerFunc = null, this._connectedTransformNode = null);\n }\n _onRegisterAfterWorldMatrixUpdate(e) {\n var t;\n if (!e.getBoundingInfo)\n this.setPosition(e.absolutePosition);\n else {\n const s = e.getBoundingInfo();\n this.setPosition(s.boundingSphere.centerWorld);\n }\n (t = ee.audioEngine) != null && t.canUseWebAudio && this._isDirectional && this.isPlaying && this._updateDirection();\n }\n /**\n * Clone the current sound in the scene.\n * @returns the new sound clone\n */\n clone() {\n if (this._streaming)\n return null;\n {\n const e = () => {\n this._isReadyToPlay ? (i._audioBuffer = this.getAudioBuffer(), i._isReadyToPlay = !0, i.autoplay && i.play(0, this._offset, this._length)) : setTimeout(e, 300);\n }, t = {\n autoplay: this.autoplay,\n loop: this.loop,\n volume: this._volume,\n spatialSound: this._spatialSound,\n maxDistance: this.maxDistance,\n useCustomAttenuation: this.useCustomAttenuation,\n rolloffFactor: this.rolloffFactor,\n refDistance: this.refDistance,\n distanceModel: this.distanceModel\n }, i = new Qn(this.name + \"_cloned\", new ArrayBuffer(0), this._scene, null, t);\n return this.useCustomAttenuation && i.setAttenuationFunction(this._customAttenuationFunction), i.setPosition(this._position), i.setPlaybackRate(this._playbackRate), e(), i;\n }\n }\n /**\n * Gets the current underlying audio buffer containing the data\n * @returns the audio buffer\n */\n getAudioBuffer() {\n return this._audioBuffer;\n }\n /**\n * Gets the WebAudio AudioBufferSourceNode, lets you keep track of and stop instances of this Sound.\n * @returns the source node\n */\n getSoundSource() {\n return this._soundSource;\n }\n /**\n * Gets the WebAudio GainNode, gives you precise control over the gain of instances of this Sound.\n * @returns the gain node\n */\n getSoundGain() {\n return this._soundGain;\n }\n /**\n * Serializes the Sound in a JSON representation\n * @returns the JSON representation of the sound\n */\n serialize() {\n const e = {\n name: this.name,\n url: this._url,\n autoplay: this.autoplay,\n loop: this.loop,\n volume: this._volume,\n spatialSound: this._spatialSound,\n maxDistance: this.maxDistance,\n rolloffFactor: this.rolloffFactor,\n refDistance: this.refDistance,\n distanceModel: this.distanceModel,\n playbackRate: this._playbackRate,\n panningModel: this._panningModel,\n soundTrackId: this.soundTrackId,\n metadata: this.metadata\n };\n return this._spatialSound && (this._connectedTransformNode && (e.connectedMeshId = this._connectedTransformNode.id), e.position = this._position.asArray(), e.refDistance = this.refDistance, e.distanceModel = this.distanceModel, e.isDirectional = this._isDirectional, e.localDirectionToMesh = this._localDirection.asArray(), e.coneInnerAngle = this._coneInnerAngle, e.coneOuterAngle = this._coneOuterAngle, e.coneOuterGain = this._coneOuterGain), e;\n }\n /**\n * Parse a JSON representation of a sound to instantiate in a given scene\n * @param parsedSound Define the JSON representation of the sound (usually coming from the serialize method)\n * @param scene Define the scene the new parsed sound should be created in\n * @param rootUrl Define the rooturl of the load in case we need to fetch relative dependencies\n * @param sourceSound Define a sound place holder if do not need to instantiate a new one\n * @returns the newly parsed sound\n */\n static Parse(e, t, i, s) {\n const r = e.name;\n let n;\n e.url ? n = i + e.url : n = i + r;\n const o = {\n autoplay: e.autoplay,\n loop: e.loop,\n volume: e.volume,\n spatialSound: e.spatialSound,\n maxDistance: e.maxDistance,\n rolloffFactor: e.rolloffFactor,\n refDistance: e.refDistance,\n distanceModel: e.distanceModel,\n playbackRate: e.playbackRate\n };\n let l;\n if (!s)\n l = new Qn(r, n, t, () => {\n t.removePendingData(l);\n }, o), t.addPendingData(l);\n else {\n const h = () => {\n s._isReadyToPlay ? (l._audioBuffer = s.getAudioBuffer(), l._isReadyToPlay = !0, l.autoplay && l.play(0, l._offset, l._length)) : setTimeout(h, 300);\n };\n l = new Qn(r, new ArrayBuffer(0), t, null, o), h();\n }\n if (e.position) {\n const h = g.FromArray(e.position);\n l.setPosition(h);\n }\n if (e.isDirectional && (l.setDirectionalCone(e.coneInnerAngle || 360, e.coneOuterAngle || 360, e.coneOuterGain || 0), e.localDirectionToMesh)) {\n const h = g.FromArray(e.localDirectionToMesh);\n l.setLocalDirectionToMesh(h);\n }\n if (e.connectedMeshId) {\n const h = t.getMeshById(e.connectedMeshId);\n h && l.attachToMesh(h);\n }\n return e.metadata && (l.metadata = e.metadata), l;\n }\n _setOffset(e) {\n this._offset !== e && (this.isPaused && (this.stop(), this.isPaused = !1), this._offset = e);\n }\n _clearTimeoutsAndObservers() {\n var e;\n this._tryToPlayTimeout && (clearTimeout(this._tryToPlayTimeout), this._tryToPlayTimeout = null), this._audioUnlockedObserver && ((e = ee.audioEngine) == null || e.onAudioUnlockedObservable.remove(this._audioUnlockedObserver), this._audioUnlockedObserver = null);\n }\n}\nQn._SceneComponentInitialization = (a) => {\n throw $e(\"AudioSceneComponent\");\n};\nU(\"BABYLON.Sound\", Qn);\nclass rL {\n /**\n * Creates a new sound track.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#using-sound-tracks\n * @param scene Define the scene the sound track belongs to\n * @param options\n */\n constructor(e, t = {}) {\n this.id = -1, this._isInitialized = !1, e = e || Me.LastCreatedScene, e && (this._scene = e, this.soundCollection = [], this._options = t, !this._options.mainTrack && this._scene.soundTracks && (this._scene.soundTracks.push(this), this.id = this._scene.soundTracks.length - 1));\n }\n _initializeSoundTrackAudioGraph() {\n var e;\n (e = ee.audioEngine) != null && e.canUseWebAudio && ee.audioEngine.audioContext && (this._outputAudioNode = ee.audioEngine.audioContext.createGain(), this._outputAudioNode.connect(ee.audioEngine.masterGain), this._options && this._options.volume && (this._outputAudioNode.gain.value = this._options.volume), this._isInitialized = !0);\n }\n /**\n * Release the sound track and its associated resources\n */\n dispose() {\n if (ee.audioEngine && ee.audioEngine.canUseWebAudio) {\n for (this._connectedAnalyser && this._connectedAnalyser.stopDebugCanvas(); this.soundCollection.length; )\n this.soundCollection[0].dispose();\n this._outputAudioNode && this._outputAudioNode.disconnect(), this._outputAudioNode = null;\n }\n }\n /**\n * Adds a sound to this sound track\n * @param sound define the sound to add\n * @ignoreNaming\n */\n addSound(e) {\n var t;\n this._isInitialized || this._initializeSoundTrackAudioGraph(), (t = ee.audioEngine) != null && t.canUseWebAudio && this._outputAudioNode && e.connectToSoundTrackAudioNode(this._outputAudioNode), e.soundTrackId !== void 0 && (e.soundTrackId === -1 ? this._scene.mainSoundTrack.removeSound(e) : this._scene.soundTracks && this._scene.soundTracks[e.soundTrackId].removeSound(e)), this.soundCollection.push(e), e.soundTrackId = this.id;\n }\n /**\n * Removes a sound to this sound track\n * @param sound define the sound to remove\n * @ignoreNaming\n */\n removeSound(e) {\n const t = this.soundCollection.indexOf(e);\n t !== -1 && this.soundCollection.splice(t, 1);\n }\n /**\n * Set a global volume for the full sound track.\n * @param newVolume Define the new volume of the sound track\n */\n setVolume(e) {\n var t;\n (t = ee.audioEngine) != null && t.canUseWebAudio && this._outputAudioNode && (this._outputAudioNode.gain.value = e);\n }\n /**\n * Switch the panning model to HRTF:\n * Renders a stereo output of higher quality than equalpower — it uses a convolution with measured impulse responses from human subjects.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#creating-a-spatial-3d-sound\n */\n switchPanningModelToHRTF() {\n var e;\n if ((e = ee.audioEngine) != null && e.canUseWebAudio)\n for (let t = 0; t < this.soundCollection.length; t++)\n this.soundCollection[t].switchPanningModelToHRTF();\n }\n /**\n * Switch the panning model to Equal Power:\n * Represents the equal-power panning algorithm, generally regarded as simple and efficient. equalpower is the default value.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#creating-a-spatial-3d-sound\n */\n switchPanningModelToEqualPower() {\n var e;\n if ((e = ee.audioEngine) != null && e.canUseWebAudio)\n for (let t = 0; t < this.soundCollection.length; t++)\n this.soundCollection[t].switchPanningModelToEqualPower();\n }\n /**\n * Connect the sound track to an audio analyser allowing some amazing\n * synchronization between the sounds/music and your visualization (VuMeter for instance).\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#using-the-analyser\n * @param analyser The analyser to connect to the engine\n */\n connectToAnalyser(e) {\n var t;\n this._connectedAnalyser && this._connectedAnalyser.stopDebugCanvas(), this._connectedAnalyser = e, (t = ee.audioEngine) != null && t.canUseWebAudio && this._outputAudioNode && (this._outputAudioNode.disconnect(), this._connectedAnalyser.connectAudioNodes(this._outputAudioNode, ee.audioEngine.masterGain));\n }\n}\nqi.AddParser(me.NAME_AUDIO, (a, e, t, i) => {\n var n;\n let s = [], r;\n if (t.sounds = t.sounds || [], a.sounds !== void 0 && a.sounds !== null)\n for (let o = 0, l = a.sounds.length; o < l; o++) {\n const h = a.sounds[o];\n (n = ee.audioEngine) != null && n.canUseWebAudio ? (h.url || (h.url = h.name), s[h.url] ? t.sounds.push(Qn.Parse(h, e, i, s[h.url])) : (r = Qn.Parse(h, e, i), s[h.url] = r, t.sounds.push(r))) : t.sounds.push(new Qn(h.name, null, e));\n }\n s = [];\n});\nObject.defineProperty(De.prototype, \"mainSoundTrack\", {\n get: function() {\n let a = this._getComponent(me.NAME_AUDIO);\n return a || (a = new Hr(this), this._addComponent(a)), this._mainSoundTrack || (this._mainSoundTrack = new rL(this, { mainTrack: !0 })), this._mainSoundTrack;\n },\n enumerable: !0,\n configurable: !0\n});\nDe.prototype.getSoundByName = function(a) {\n let e;\n for (e = 0; e < this.mainSoundTrack.soundCollection.length; e++)\n if (this.mainSoundTrack.soundCollection[e].name === a)\n return this.mainSoundTrack.soundCollection[e];\n if (this.soundTracks) {\n for (let t = 0; t < this.soundTracks.length; t++)\n for (e = 0; e < this.soundTracks[t].soundCollection.length; e++)\n if (this.soundTracks[t].soundCollection[e].name === a)\n return this.soundTracks[t].soundCollection[e];\n }\n return null;\n};\nObject.defineProperty(De.prototype, \"audioEnabled\", {\n get: function() {\n let a = this._getComponent(me.NAME_AUDIO);\n return a || (a = new Hr(this), this._addComponent(a)), a.audioEnabled;\n },\n set: function(a) {\n let e = this._getComponent(me.NAME_AUDIO);\n e || (e = new Hr(this), this._addComponent(e)), a ? e.enableAudio() : e.disableAudio();\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(De.prototype, \"headphone\", {\n get: function() {\n let a = this._getComponent(me.NAME_AUDIO);\n return a || (a = new Hr(this), this._addComponent(a)), a.headphone;\n },\n set: function(a) {\n let e = this._getComponent(me.NAME_AUDIO);\n e || (e = new Hr(this), this._addComponent(e)), a ? e.switchAudioModeForHeadphones() : e.switchAudioModeForNormalSpeakers();\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(De.prototype, \"audioListenerPositionProvider\", {\n get: function() {\n let a = this._getComponent(me.NAME_AUDIO);\n return a || (a = new Hr(this), this._addComponent(a)), a.audioListenerPositionProvider;\n },\n set: function(a) {\n let e = this._getComponent(me.NAME_AUDIO);\n if (e || (e = new Hr(this), this._addComponent(e)), a && typeof a != \"function\")\n throw new Error(\"The value passed to [Scene.audioListenerPositionProvider] must be a function that returns a Vector3\");\n e.audioListenerPositionProvider = a;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(De.prototype, \"audioListenerRotationProvider\", {\n get: function() {\n let a = this._getComponent(me.NAME_AUDIO);\n return a || (a = new Hr(this), this._addComponent(a)), a.audioListenerRotationProvider;\n },\n set: function(a) {\n let e = this._getComponent(me.NAME_AUDIO);\n if (e || (e = new Hr(this), this._addComponent(e)), a && typeof a != \"function\")\n throw new Error(\"The value passed to [Scene.audioListenerRotationProvider] must be a function that returns a Vector3\");\n e.audioListenerRotationProvider = a;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(De.prototype, \"audioPositioningRefreshRate\", {\n get: function() {\n let a = this._getComponent(me.NAME_AUDIO);\n return a || (a = new Hr(this), this._addComponent(a)), a.audioPositioningRefreshRate;\n },\n set: function(a) {\n let e = this._getComponent(me.NAME_AUDIO);\n e || (e = new Hr(this), this._addComponent(e)), e.audioPositioningRefreshRate = a;\n },\n enumerable: !0,\n configurable: !0\n});\nclass Hr {\n /**\n * Gets whether audio is enabled or not.\n * Please use related enable/disable method to switch state.\n */\n get audioEnabled() {\n return this._audioEnabled;\n }\n /**\n * Gets whether audio is outputting to headphone or not.\n * Please use the according Switch methods to change output.\n */\n get headphone() {\n return this._headphone;\n }\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_AUDIO, this._audioEnabled = !0, this._headphone = !1, this.audioPositioningRefreshRate = 500, this.audioListenerPositionProvider = null, this.audioListenerRotationProvider = null, this._cachedCameraDirection = new g(), this._cachedCameraPosition = new g(), this._lastCheck = 0, this._invertMatrixTemp = new O(), this._cameraDirectionTemp = new g(), e = e || Me.LastCreatedScene, e && (this.scene = e, e.soundTracks = [], e.sounds = []);\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._afterRenderStage.registerStep(me.STEP_AFTERRENDER_AUDIO, this, this._afterRender);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n }\n /**\n * Serializes the component data to the specified json object\n * @param serializationObject The object to serialize to\n */\n serialize(e) {\n if (e.sounds = [], this.scene.soundTracks)\n for (let t = 0; t < this.scene.soundTracks.length; t++) {\n const i = this.scene.soundTracks[t];\n for (let s = 0; s < i.soundCollection.length; s++)\n e.sounds.push(i.soundCollection[s].serialize());\n }\n }\n /**\n * Adds all the elements from the container to the scene\n * @param container the container holding the elements\n */\n addFromContainer(e) {\n e.sounds && e.sounds.forEach((t) => {\n t.play(), t.autoplay = !0, this.scene.mainSoundTrack.addSound(t);\n });\n }\n /**\n * Removes all the elements in the container from the scene\n * @param container contains the elements to remove\n * @param dispose if the removed element should be disposed (default: false)\n */\n removeFromContainer(e, t = !1) {\n e.sounds && e.sounds.forEach((i) => {\n i.stop(), i.autoplay = !1, this.scene.mainSoundTrack.removeSound(i), t && i.dispose();\n });\n }\n /**\n * Disposes the component and the associated resources.\n */\n dispose() {\n const e = this.scene;\n if (e._mainSoundTrack && e.mainSoundTrack.dispose(), e.soundTracks)\n for (let t = 0; t < e.soundTracks.length; t++)\n e.soundTracks[t].dispose();\n }\n /**\n * Disables audio in the associated scene.\n */\n disableAudio() {\n const e = this.scene;\n this._audioEnabled = !1, ee.audioEngine && ee.audioEngine.audioContext && ee.audioEngine.audioContext.suspend();\n let t;\n for (t = 0; t < e.mainSoundTrack.soundCollection.length; t++)\n e.mainSoundTrack.soundCollection[t].pause();\n if (e.soundTracks)\n for (t = 0; t < e.soundTracks.length; t++)\n for (let i = 0; i < e.soundTracks[t].soundCollection.length; i++)\n e.soundTracks[t].soundCollection[i].pause();\n }\n /**\n * Enables audio in the associated scene.\n */\n enableAudio() {\n const e = this.scene;\n this._audioEnabled = !0, ee.audioEngine && ee.audioEngine.audioContext && ee.audioEngine.audioContext.resume();\n let t;\n for (t = 0; t < e.mainSoundTrack.soundCollection.length; t++)\n e.mainSoundTrack.soundCollection[t].isPaused && e.mainSoundTrack.soundCollection[t].play();\n if (e.soundTracks)\n for (t = 0; t < e.soundTracks.length; t++)\n for (let i = 0; i < e.soundTracks[t].soundCollection.length; i++)\n e.soundTracks[t].soundCollection[i].isPaused && e.soundTracks[t].soundCollection[i].play();\n }\n /**\n * Switch audio to headphone output.\n */\n switchAudioModeForHeadphones() {\n const e = this.scene;\n if (this._headphone = !0, e.mainSoundTrack.switchPanningModelToHRTF(), e.soundTracks)\n for (let t = 0; t < e.soundTracks.length; t++)\n e.soundTracks[t].switchPanningModelToHRTF();\n }\n /**\n * Switch audio to normal speakers.\n */\n switchAudioModeForNormalSpeakers() {\n const e = this.scene;\n if (this._headphone = !1, e.mainSoundTrack.switchPanningModelToEqualPower(), e.soundTracks)\n for (let t = 0; t < e.soundTracks.length; t++)\n e.soundTracks[t].switchPanningModelToEqualPower();\n }\n _afterRender() {\n const e = Es.Now;\n if (this._lastCheck && e - this._lastCheck < this.audioPositioningRefreshRate)\n return;\n this._lastCheck = e;\n const t = this.scene;\n if (!this._audioEnabled || !t._mainSoundTrack || !t.soundTracks || t._mainSoundTrack.soundCollection.length === 0 && t.soundTracks.length === 1)\n return;\n const i = ee.audioEngine;\n if (i && i.audioContext) {\n let s = t.activeCamera;\n if (t.activeCameras && t.activeCameras.length > 0 && (s = t.activeCameras[0]), this.audioListenerPositionProvider) {\n const n = this.audioListenerPositionProvider();\n i.audioContext.listener.setPosition(n.x || 0, n.y || 0, n.z || 0);\n } else s ? this._cachedCameraPosition.equals(s.globalPosition) || (this._cachedCameraPosition.copyFrom(s.globalPosition), i.audioContext.listener.setPosition(s.globalPosition.x, s.globalPosition.y, s.globalPosition.z)) : i.audioContext.listener.setPosition(0, 0, 0);\n if (this.audioListenerRotationProvider) {\n const n = this.audioListenerRotationProvider();\n i.audioContext.listener.setOrientation(n.x || 0, n.y || 0, n.z || 0, 0, 1, 0);\n } else s ? (s.rigCameras && s.rigCameras.length > 0 && (s = s.rigCameras[0]), s.getViewMatrix().invertToRef(this._invertMatrixTemp), g.TransformNormalToRef(Hr._CameraDirection, this._invertMatrixTemp, this._cameraDirectionTemp), this._cameraDirectionTemp.normalize(), !isNaN(this._cameraDirectionTemp.x) && !isNaN(this._cameraDirectionTemp.y) && !isNaN(this._cameraDirectionTemp.z) && (this._cachedCameraDirection.equals(this._cameraDirectionTemp) || (this._cachedCameraDirection.copyFrom(this._cameraDirectionTemp), i.audioContext.listener.setOrientation(this._cameraDirectionTemp.x, this._cameraDirectionTemp.y, this._cameraDirectionTemp.z, 0, 1, 0)))) : i.audioContext.listener.setOrientation(0, 0, 0, 0, 1, 0);\n let r;\n for (r = 0; r < t.mainSoundTrack.soundCollection.length; r++) {\n const n = t.mainSoundTrack.soundCollection[r];\n n.useCustomAttenuation && n.updateDistanceFromListener();\n }\n if (t.soundTracks)\n for (r = 0; r < t.soundTracks.length; r++)\n for (let n = 0; n < t.soundTracks[r].soundCollection.length; n++) {\n const o = t.soundTracks[r].soundCollection[n];\n o.useCustomAttenuation && o.updateDistanceFromListener();\n }\n }\n }\n}\nHr._CameraDirection = new g(0, 0, -1);\nQn._SceneComponentInitialization = (a) => {\n let e = a._getComponent(me.NAME_AUDIO);\n e || (e = new Hr(a), a._addComponent(e));\n};\nclass bc {\n /**\n * Creates a new BakedVertexAnimationManager\n * @param scene defines the current scene\n */\n constructor(e) {\n this._texture = null, this._isEnabled = !0, this.isEnabled = !0, this.time = 0, e = e || Me.LastCreatedScene, e && (this._scene = e, this.animationParameters = new Ne(0, 0, 0, 30));\n }\n /** @internal */\n _markSubMeshesAsAttributesDirty() {\n for (const e of this._scene.meshes)\n e.bakedVertexAnimationManager === this && e._markSubMeshesAsAttributesDirty();\n }\n /**\n * Binds to the effect.\n * @param effect The effect to bind to.\n * @param useInstances True when it's an instance.\n */\n bind(e, t = !1) {\n if (!this._texture || !this._isEnabled)\n return;\n const i = this._texture.getSize();\n e.setFloat2(\"bakedVertexAnimationTextureSizeInverted\", 1 / i.width, 1 / i.height), e.setFloat(\"bakedVertexAnimationTime\", this.time), t || e.setVector4(\"bakedVertexAnimationSettings\", this.animationParameters), e.setTexture(\"bakedVertexAnimationTexture\", this._texture);\n }\n /**\n * Clone the current manager\n * @returns a new BakedVertexAnimationManager\n */\n clone() {\n const e = new bc(this._scene);\n return this.copyTo(e), e;\n }\n /**\n * Sets animation parameters.\n * @param startFrame The first frame of the animation.\n * @param endFrame The last frame of the animation.\n * @param offset The offset when starting the animation.\n * @param speedFramesPerSecond The frame rate.\n */\n setAnimationParameters(e, t, i = 0, s = 30) {\n this.animationParameters = new Ne(e, t, i, s);\n }\n /**\n * Disposes the resources of the manager.\n * @param forceDisposeTextures - Forces the disposal of all textures.\n */\n dispose(e) {\n var t;\n e && ((t = this._texture) == null || t.dispose());\n }\n /**\n * Get the current class name useful for serialization or dynamic coding.\n * @returns \"BakedVertexAnimationManager\"\n */\n getClassName() {\n return \"BakedVertexAnimationManager\";\n }\n /**\n * Makes a duplicate of the current instance into another one.\n * @param vatMap define the instance where to copy the info\n */\n copyTo(e) {\n Ae.Clone(() => e, this);\n }\n /**\n * Serializes this vertex animation instance\n * @returns - An object with the serialized instance.\n */\n serialize() {\n return Ae.Serialize(this);\n }\n /**\n * Parses a vertex animation setting from a serialized object.\n * @param source - Serialized object.\n * @param scene Defines the scene we are parsing for\n * @param rootUrl Defines the rootUrl to load from\n */\n parse(e, t, i) {\n Ae.Parse(() => this, e, t, i);\n }\n}\ny([\n xt(),\n ce(\"_markSubMeshesAsAttributesDirty\")\n], bc.prototype, \"texture\", void 0);\ny([\n I(),\n ce(\"_markSubMeshesAsAttributesDirty\")\n], bc.prototype, \"isEnabled\", void 0);\ny([\n I()\n], bc.prototype, \"animationParameters\", void 0);\ny([\n I()\n], bc.prototype, \"time\", void 0);\nclass Su {\n /**\n * Gets or sets a boolean indicating that bone matrices should be stored as a texture instead of using shader uniforms (default is true).\n * Please note that this option is not available if the hardware does not support it\n */\n get useTextureToStoreBoneMatrices() {\n return this._useTextureToStoreBoneMatrices;\n }\n set useTextureToStoreBoneMatrices(e) {\n this._useTextureToStoreBoneMatrices = e, this._markAsDirty();\n }\n /**\n * Gets or sets the animation properties override\n */\n get animationPropertiesOverride() {\n return this._animationPropertiesOverride ? this._animationPropertiesOverride : this._scene.animationPropertiesOverride;\n }\n set animationPropertiesOverride(e) {\n this._animationPropertiesOverride = e;\n }\n /**\n * Gets a boolean indicating that the skeleton effectively stores matrices into a texture\n */\n get isUsingTextureForMatrices() {\n return this.useTextureToStoreBoneMatrices && this._canUseTextureForBones;\n }\n /**\n * Gets the unique ID of this skeleton\n */\n get uniqueId() {\n return this._uniqueId;\n }\n /**\n * Creates a new skeleton\n * @param name defines the skeleton name\n * @param id defines the skeleton Id\n * @param scene defines the hosting scene\n */\n constructor(e, t, i) {\n this.name = e, this.id = t, this.bones = [], this.needInitialSkinMatrix = !1, this._isDirty = !0, this._meshesWithPoseMatrix = new Array(), this._identity = O.Identity(), this._currentRenderId = -1, this._ranges = {}, this._absoluteTransformIsDirty = !0, this._canUseTextureForBones = !1, this._uniqueId = 0, this._numBonesWithLinkedTransformNode = 0, this._hasWaitingData = null, this._parentContainer = null, this.doNotSerialize = !1, this._useTextureToStoreBoneMatrices = !0, this._animationPropertiesOverride = null, this.onBeforeComputeObservable = new G(), this.bones = [], this._scene = i || Me.LastCreatedScene, this._uniqueId = this._scene.getUniqueId(), this._scene.addSkeleton(this), this._isDirty = !0;\n const s = this._scene.getEngine().getCaps();\n this._canUseTextureForBones = s.textureFloat && s.maxVertexTextureImageUnits > 0;\n }\n /**\n * Gets the current object class name.\n * @returns the class name\n */\n getClassName() {\n return \"Skeleton\";\n }\n /**\n * Returns an array containing the root bones\n * @returns an array containing the root bones\n */\n getChildren() {\n return this.bones.filter((e) => !e.getParent());\n }\n // Members\n /**\n * Gets the list of transform matrices to send to shaders (one matrix per bone)\n * @param mesh defines the mesh to use to get the root matrix (if needInitialSkinMatrix === true)\n * @returns a Float32Array containing matrices data\n */\n getTransformMatrices(e) {\n if (this.needInitialSkinMatrix) {\n if (!e)\n throw new Error(\"getTransformMatrices: When using the needInitialSkinMatrix flag, a mesh must be provided\");\n return e._bonesTransformMatrices || this.prepare(!0), e._bonesTransformMatrices;\n }\n return (!this._transformMatrices || this._isDirty) && this.prepare(!this._transformMatrices), this._transformMatrices;\n }\n /**\n * Gets the list of transform matrices to send to shaders inside a texture (one matrix per bone)\n * @param mesh defines the mesh to use to get the root matrix (if needInitialSkinMatrix === true)\n * @returns a raw texture containing the data\n */\n getTransformMatrixTexture(e) {\n return this.needInitialSkinMatrix && e._transformMatrixTexture ? e._transformMatrixTexture : this._transformMatrixTexture;\n }\n /**\n * Gets the current hosting scene\n * @returns a scene object\n */\n getScene() {\n return this._scene;\n }\n // Methods\n /**\n * Gets a string representing the current skeleton data\n * @param fullDetails defines a boolean indicating if we want a verbose version\n * @returns a string representing the current skeleton data\n */\n toString(e) {\n let t = `Name: ${this.name}, nBones: ${this.bones.length}`;\n if (t += `, nAnimationRanges: ${this._ranges ? Object.keys(this._ranges).length : \"none\"}`, e) {\n t += \", Ranges: {\";\n let i = !0;\n for (const s in this._ranges)\n i && (t += \", \", i = !1), t += s;\n t += \"}\";\n }\n return t;\n }\n /**\n * Get bone's index searching by name\n * @param name defines bone's name to search for\n * @returns the indice of the bone. Returns -1 if not found\n */\n getBoneIndexByName(e) {\n for (let t = 0, i = this.bones.length; t < i; t++)\n if (this.bones[t].name === e)\n return t;\n return -1;\n }\n /**\n * Create a new animation range\n * @param name defines the name of the range\n * @param from defines the start key\n * @param to defines the end key\n */\n createAnimationRange(e, t, i) {\n if (!this._ranges[e]) {\n this._ranges[e] = new Yh(e, t, i);\n for (let s = 0, r = this.bones.length; s < r; s++)\n this.bones[s].animations[0] && this.bones[s].animations[0].createRange(e, t, i);\n }\n }\n /**\n * Delete a specific animation range\n * @param name defines the name of the range\n * @param deleteFrames defines if frames must be removed as well\n */\n deleteAnimationRange(e, t = !0) {\n for (let i = 0, s = this.bones.length; i < s; i++)\n this.bones[i].animations[0] && this.bones[i].animations[0].deleteRange(e, t);\n this._ranges[e] = null;\n }\n /**\n * Gets a specific animation range\n * @param name defines the name of the range to look for\n * @returns the requested animation range or null if not found\n */\n getAnimationRange(e) {\n return this._ranges[e] || null;\n }\n /**\n * Gets the list of all animation ranges defined on this skeleton\n * @returns an array\n */\n getAnimationRanges() {\n const e = [];\n let t;\n for (t in this._ranges)\n e.push(this._ranges[t]);\n return e;\n }\n /**\n * Copy animation range from a source skeleton.\n * This is not for a complete retargeting, only between very similar skeleton's with only possible bone length differences\n * @param source defines the source skeleton\n * @param name defines the name of the range to copy\n * @param rescaleAsRequired defines if rescaling must be applied if required\n * @returns true if operation was successful\n */\n copyAnimationRange(e, t, i = !1) {\n if (this._ranges[t] || !e.getAnimationRange(t))\n return !1;\n let s = !0;\n const r = this._getHighestAnimationFrame() + 1, n = {}, o = e.bones;\n let l, h;\n for (h = 0, l = o.length; h < l; h++)\n n[o[h].name] = o[h];\n this.bones.length !== o.length && (L.Warn(`copyAnimationRange: this rig has ${this.bones.length} bones, while source as ${o.length}`), s = !1);\n const c = i && this.dimensionsAtRest && e.dimensionsAtRest ? this.dimensionsAtRest.divide(e.dimensionsAtRest) : null;\n for (h = 0, l = this.bones.length; h < l; h++) {\n const d = this.bones[h].name, f = n[d];\n f ? s = s && this.bones[h].copyAnimationRange(f, t, r, i, c) : (L.Warn(\"copyAnimationRange: not same rig, missing source bone \" + d), s = !1);\n }\n const u = e.getAnimationRange(t);\n return u && (this._ranges[t] = new Yh(t, u.from + r, u.to + r)), s;\n }\n /**\n * Forces the skeleton to go to rest pose\n */\n returnToRest() {\n for (const e of this.bones)\n e._index !== -1 && e.returnToRest();\n }\n _getHighestAnimationFrame() {\n let e = 0;\n for (let t = 0, i = this.bones.length; t < i; t++)\n if (this.bones[t].animations[0]) {\n const s = this.bones[t].animations[0].getHighestFrame();\n e < s && (e = s);\n }\n return e;\n }\n /**\n * Begin a specific animation range\n * @param name defines the name of the range to start\n * @param loop defines if looping must be turned on (false by default)\n * @param speedRatio defines the speed ratio to apply (1 by default)\n * @param onAnimationEnd defines a callback which will be called when animation will end\n * @returns a new animatable\n */\n beginAnimation(e, t, i, s) {\n const r = this.getAnimationRange(e);\n return r ? this._scene.beginAnimation(this, r.from, r.to, t, i, s) : null;\n }\n /**\n * Convert the keyframes for a range of animation on a skeleton to be relative to a given reference frame.\n * @param skeleton defines the Skeleton containing the animation range to convert\n * @param referenceFrame defines the frame that keyframes in the range will be relative to\n * @param range defines the name of the AnimationRange belonging to the Skeleton to convert\n * @returns the original skeleton\n */\n static MakeAnimationAdditive(e, t = 0, i) {\n const s = e.getAnimationRange(i);\n if (!s)\n return null;\n const r = e._scene.getAllAnimatablesByTarget(e);\n let n = null;\n for (let l = 0; l < r.length; l++) {\n const h = r[l];\n if (h.fromFrame === (s == null ? void 0 : s.from) && h.toFrame === (s == null ? void 0 : s.to)) {\n n = h;\n break;\n }\n }\n const o = e.getAnimatables();\n for (let l = 0; l < o.length; l++) {\n const c = o[l].animations;\n if (c)\n for (let u = 0; u < c.length; u++)\n oe.MakeAnimationAdditive(c[u], t, i);\n }\n return n && (n.isAdditive = !0), e;\n }\n /** @internal */\n _markAsDirty() {\n this._isDirty = !0, this._absoluteTransformIsDirty = !0;\n }\n /**\n * @internal\n */\n _registerMeshWithPoseMatrix(e) {\n this._meshesWithPoseMatrix.push(e);\n }\n /**\n * @internal\n */\n _unregisterMeshWithPoseMatrix(e) {\n const t = this._meshesWithPoseMatrix.indexOf(e);\n t > -1 && this._meshesWithPoseMatrix.splice(t, 1);\n }\n _computeTransformMatrices(e, t) {\n this.onBeforeComputeObservable.notifyObservers(this);\n for (let i = 0; i < this.bones.length; i++) {\n const s = this.bones[i];\n s._childUpdateId++;\n const r = s.getParent();\n if (r ? s.getLocalMatrix().multiplyToRef(r.getFinalMatrix(), s.getFinalMatrix()) : t ? s.getLocalMatrix().multiplyToRef(t, s.getFinalMatrix()) : s.getFinalMatrix().copyFrom(s.getLocalMatrix()), s._index !== -1) {\n const n = s._index === null ? i : s._index;\n s.getAbsoluteInverseBindMatrix().multiplyToArray(s.getFinalMatrix(), e, n * 16);\n }\n }\n this._identity.copyToArray(e, this.bones.length * 16);\n }\n /**\n * Build all resources required to render a skeleton\n * @param dontCheckFrameId defines a boolean indicating if prepare should be run without checking first the current frame id (default: false)\n */\n prepare(e = !1) {\n if (!e) {\n const t = this.getScene().getRenderId();\n if (this._currentRenderId === t)\n return;\n this._currentRenderId = t;\n }\n if (this._numBonesWithLinkedTransformNode > 0) {\n for (const t of this.bones)\n if (t._linkedTransformNode) {\n const i = t._linkedTransformNode;\n t.position = i.position, i.rotationQuaternion ? t.rotationQuaternion = i.rotationQuaternion : t.rotation = i.rotation, t.scaling = i.scaling;\n }\n }\n if (this.needInitialSkinMatrix)\n for (const t of this._meshesWithPoseMatrix) {\n const i = t.getPoseMatrix();\n let s = this._isDirty;\n if ((!t._bonesTransformMatrices || t._bonesTransformMatrices.length !== 16 * (this.bones.length + 1)) && (t._bonesTransformMatrices = new Float32Array(16 * (this.bones.length + 1)), s = !0), !!s) {\n if (this._synchronizedWithMesh !== t) {\n this._synchronizedWithMesh = t;\n for (const r of this.bones)\n r.getParent() || (r.getBindMatrix().multiplyToRef(i, w.Matrix[1]), r._updateAbsoluteBindMatrices(w.Matrix[1]));\n if (this.isUsingTextureForMatrices) {\n const r = (this.bones.length + 1) * 4;\n (!t._transformMatrixTexture || t._transformMatrixTexture.getSize().width !== r) && (t._transformMatrixTexture && t._transformMatrixTexture.dispose(), t._transformMatrixTexture = _i.CreateRGBATexture(t._bonesTransformMatrices, (this.bones.length + 1) * 4, 1, this._scene, !1, !1, 1, 1));\n }\n }\n this._computeTransformMatrices(t._bonesTransformMatrices, i), this.isUsingTextureForMatrices && t._transformMatrixTexture && t._transformMatrixTexture.update(t._bonesTransformMatrices);\n }\n }\n else {\n if (!this._isDirty)\n return;\n (!this._transformMatrices || this._transformMatrices.length !== 16 * (this.bones.length + 1)) && (this._transformMatrices = new Float32Array(16 * (this.bones.length + 1)), this.isUsingTextureForMatrices && (this._transformMatrixTexture && this._transformMatrixTexture.dispose(), this._transformMatrixTexture = _i.CreateRGBATexture(this._transformMatrices, (this.bones.length + 1) * 4, 1, this._scene, !1, !1, 1, 1))), this._computeTransformMatrices(this._transformMatrices, null), this.isUsingTextureForMatrices && this._transformMatrixTexture && this._transformMatrixTexture.update(this._transformMatrices);\n }\n this._isDirty = !1;\n }\n /**\n * Gets the list of animatables currently running for this skeleton\n * @returns an array of animatables\n */\n getAnimatables() {\n if (!this._animatables || this._animatables.length !== this.bones.length) {\n this._animatables = [];\n for (let e = 0; e < this.bones.length; e++)\n this._animatables.push(this.bones[e]);\n }\n return this._animatables;\n }\n /**\n * Clone the current skeleton\n * @param name defines the name of the new skeleton\n * @param id defines the id of the new skeleton\n * @returns the new skeleton\n */\n clone(e, t) {\n const i = new Su(e, t || e, this._scene);\n i.needInitialSkinMatrix = this.needInitialSkinMatrix;\n for (let s = 0; s < this.bones.length; s++) {\n const r = this.bones[s];\n let n = null;\n const o = r.getParent();\n if (o) {\n const h = this.bones.indexOf(o);\n n = i.bones[h];\n }\n const l = new Si(r.name, i, n, r.getBindMatrix().clone(), r.getRestMatrix().clone());\n l._index = r._index, r._linkedTransformNode && l.linkTransformNode(r._linkedTransformNode), Hs.DeepCopy(r.animations, l.animations);\n }\n if (this._ranges) {\n i._ranges = {};\n for (const s in this._ranges) {\n const r = this._ranges[s];\n r && (i._ranges[s] = r.clone());\n }\n }\n return this._isDirty = !0, i.prepare(!0), i;\n }\n /**\n * Enable animation blending for this skeleton\n * @param blendingSpeed defines the blending speed to apply\n * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#animation-blending\n */\n enableBlending(e = 0.01) {\n this.bones.forEach((t) => {\n t.animations.forEach((i) => {\n i.enableBlending = !0, i.blendingSpeed = e;\n });\n });\n }\n /**\n * Releases all resources associated with the current skeleton\n */\n dispose() {\n if (this._meshesWithPoseMatrix.length = 0, this.getScene().stopAnimation(this), this.getScene().removeSkeleton(this), this._parentContainer) {\n const e = this._parentContainer.skeletons.indexOf(this);\n e > -1 && this._parentContainer.skeletons.splice(e, 1), this._parentContainer = null;\n }\n this._transformMatrixTexture && (this._transformMatrixTexture.dispose(), this._transformMatrixTexture = null);\n }\n /**\n * Serialize the skeleton in a JSON object\n * @returns a JSON object\n */\n serialize() {\n var t;\n const e = {};\n e.name = this.name, e.id = this.id, this.dimensionsAtRest && (e.dimensionsAtRest = this.dimensionsAtRest.asArray()), e.bones = [], e.needInitialSkinMatrix = this.needInitialSkinMatrix;\n for (let i = 0; i < this.bones.length; i++) {\n const s = this.bones[i], r = s.getParent(), n = {\n parentBoneIndex: r ? this.bones.indexOf(r) : -1,\n index: s.getIndex(),\n name: s.name,\n id: s.id,\n matrix: s.getBindMatrix().asArray(),\n rest: s.getRestMatrix().asArray(),\n linkedTransformNodeId: (t = s.getTransformNode()) == null ? void 0 : t.id\n };\n e.bones.push(n), s.length && (n.length = s.length), s.metadata && (n.metadata = s.metadata), s.animations && s.animations.length > 0 && (n.animation = s.animations[0].serialize()), e.ranges = [];\n for (const o in this._ranges) {\n const l = this._ranges[o];\n if (!l)\n continue;\n const h = {};\n h.name = o, h.from = l.from, h.to = l.to, e.ranges.push(h);\n }\n }\n return e;\n }\n /**\n * Creates a new skeleton from serialized data\n * @param parsedSkeleton defines the serialized data\n * @param scene defines the hosting scene\n * @returns a new skeleton\n */\n static Parse(e, t) {\n const i = new Su(e.name, e.id, t);\n e.dimensionsAtRest && (i.dimensionsAtRest = g.FromArray(e.dimensionsAtRest)), i.needInitialSkinMatrix = e.needInitialSkinMatrix;\n let s;\n for (s = 0; s < e.bones.length; s++) {\n const r = e.bones[s], n = e.bones[s].index;\n let o = null;\n r.parentBoneIndex > -1 && (o = i.bones[r.parentBoneIndex]);\n const l = r.rest ? O.FromArray(r.rest) : null, h = new Si(r.name, i, o, O.FromArray(r.matrix), l, null, n);\n r.id !== void 0 && r.id !== null && (h.id = r.id), r.length && (h.length = r.length), r.metadata && (h.metadata = r.metadata), r.animation && h.animations.push(oe.Parse(r.animation)), r.linkedTransformNodeId !== void 0 && r.linkedTransformNodeId !== null && (i._hasWaitingData = !0, h._waitingTransformNodeId = r.linkedTransformNodeId);\n }\n if (e.ranges)\n for (s = 0; s < e.ranges.length; s++) {\n const r = e.ranges[s];\n i.createAnimationRange(r.name, r.from, r.to);\n }\n return i;\n }\n /**\n * Compute all node absolute matrices\n * @param forceUpdate defines if computation must be done even if cache is up to date\n */\n computeAbsoluteMatrices(e = !1) {\n (this._absoluteTransformIsDirty || e) && (this.bones[0].computeAbsoluteMatrices(), this._absoluteTransformIsDirty = !1);\n }\n /**\n * Compute all node absolute matrices\n * @param forceUpdate defines if computation must be done even if cache is up to date\n * @deprecated Please use computeAbsoluteMatrices instead\n */\n computeAbsoluteTransforms(e = !1) {\n this.computeAbsoluteMatrices(e);\n }\n /**\n * Gets the root pose matrix\n * @returns a matrix\n */\n getPoseMatrix() {\n let e = null;\n return this._meshesWithPoseMatrix.length > 0 && (e = this._meshesWithPoseMatrix[0].getPoseMatrix()), e;\n }\n /**\n * Sorts bones per internal index\n */\n sortBones() {\n const e = [], t = new Array(this.bones.length);\n for (let i = 0; i < this.bones.length; i++)\n this._sortBones(i, e, t);\n this.bones = e;\n }\n _sortBones(e, t, i) {\n if (i[e])\n return;\n i[e] = !0;\n const s = this.bones[e];\n if (!s)\n return;\n s._index === void 0 && (s._index = e);\n const r = s.getParent();\n r && this._sortBones(this.bones.indexOf(r), t, i), t.push(s);\n }\n /**\n * Set the current local matrix as the restPose for all bones in the skeleton.\n */\n setCurrentPoseAsRest() {\n this.bones.forEach((e) => {\n e.setCurrentPoseAsRest();\n });\n }\n}\nclass vi {\n /**\n * @internal\n */\n static _RemoveAndStorePivotPoint(e) {\n e && vi._PivotCached === 0 && (e.getPivotPointToRef(vi._OldPivotPoint), vi._PivotPostMultiplyPivotMatrix = e._postMultiplyPivotMatrix, vi._OldPivotPoint.equalsToFloats(0, 0, 0) || (e.setPivotMatrix(O.IdentityReadOnly), vi._OldPivotPoint.subtractToRef(e.getPivotPoint(), vi._PivotTranslation), vi._PivotTmpVector.copyFromFloats(1, 1, 1), vi._PivotTmpVector.subtractInPlace(e.scaling), vi._PivotTmpVector.multiplyInPlace(vi._PivotTranslation), e.position.addInPlace(vi._PivotTmpVector))), vi._PivotCached++;\n }\n /**\n * @internal\n */\n static _RestorePivotPoint(e) {\n e && !vi._OldPivotPoint.equalsToFloats(0, 0, 0) && vi._PivotCached === 1 && (e.setPivotPoint(vi._OldPivotPoint), e._postMultiplyPivotMatrix = vi._PivotPostMultiplyPivotMatrix, vi._PivotTmpVector.copyFromFloats(1, 1, 1), vi._PivotTmpVector.subtractInPlace(e.scaling), vi._PivotTmpVector.multiplyInPlace(vi._PivotTranslation), e.position.subtractInPlace(vi._PivotTmpVector)), this._PivotCached--;\n }\n}\nvi._PivotCached = 0;\nvi._OldPivotPoint = new g();\nvi._PivotTranslation = new g();\nvi._PivotTmpVector = new g();\nvi._PivotPostMultiplyPivotMatrix = !1;\nclass Fr {\n /**\n * Get or set the currentDraggingPointerId\n * @deprecated Please use currentDraggingPointerId instead\n */\n get currentDraggingPointerID() {\n return this.currentDraggingPointerId;\n }\n set currentDraggingPointerID(e) {\n this.currentDraggingPointerId = e;\n }\n /**\n * If the drag behavior will react to drag events (Default: true)\n */\n set enabled(e) {\n e != this._enabled && this.onEnabledObservable.notifyObservers(e), this._enabled = e;\n }\n get enabled() {\n return this._enabled;\n }\n /**\n * Gets the options used by the behavior\n */\n get options() {\n return this._options;\n }\n /**\n * Sets the options used by the behavior\n */\n set options(e) {\n this._options = e;\n }\n /**\n * Creates a pointer drag behavior that can be attached to a mesh\n * @param options The drag axis or normal of the plane that will be dragged across. If no options are specified the drag plane will always face the ray's origin (eg. camera)\n * @param options.dragAxis\n * @param options.dragPlaneNormal\n */\n constructor(e) {\n this._useAlternatePickedPointAboveMaxDragAngleDragSpeed = -1.1, this._activeDragButton = -1, this.maxDragAngle = 0, this.dragButtons = [0, 1, 2], this._useAlternatePickedPointAboveMaxDragAngle = !1, this.currentDraggingPointerId = -1, this.dragging = !1, this.dragDeltaRatio = 0.2, this.updateDragPlane = !0, this._debugMode = !1, this._moving = !1, this.onDragObservable = new G(), this.onDragStartObservable = new G(), this.onDragEndObservable = new G(), this.onEnabledObservable = new G(), this.moveAttached = !0, this._enabled = !0, this.startAndReleaseDragOnPointerEvents = !0, this.detachCameraControls = !0, this.useObjectOrientationForDragging = !0, this.validateDrag = (i) => !0, this._tmpVector = new g(0, 0, 0), this._alternatePickedPoint = new g(0, 0, 0), this._worldDragAxis = new g(0, 0, 0), this._targetPosition = new g(0, 0, 0), this._attachedToElement = !1, this._startDragRay = new nt(new g(), new g()), this._lastPointerRay = {}, this._dragDelta = new g(), this._pointA = new g(0, 0, 0), this._pointC = new g(0, 0, 0), this._localAxis = new g(0, 0, 0), this._lookAt = new g(0, 0, 0), this._options = e || {};\n let t = 0;\n if (this._options.dragAxis && t++, this._options.dragPlaneNormal && t++, t > 1)\n throw \"Multiple drag modes specified in dragBehavior options. Only one expected\";\n }\n /**\n * The name of the behavior\n */\n get name() {\n return \"PointerDrag\";\n }\n /**\n * Initializes the behavior\n */\n init() {\n }\n /**\n * Attaches the drag behavior the passed in mesh\n * @param ownerNode The mesh that will be dragged around once attached\n * @param predicate Predicate to use for pick filtering\n */\n attach(e, t) {\n this._scene = e.getScene(), e.isNearGrabbable = !0, this.attachedNode = e, Fr._PlaneScene || (this._debugMode ? Fr._PlaneScene = this._scene : (Fr._PlaneScene = new De(this._scene.getEngine(), { virtual: !0 }), Fr._PlaneScene.detachControl(), this._scene.onDisposeObservable.addOnce(() => {\n Fr._PlaneScene.dispose(), Fr._PlaneScene = null;\n }))), this._dragPlane = Ul(\"pointerDragPlane\", { size: this._debugMode ? 1 : 1e4, updatable: !1, sideOrientation: H.DOUBLESIDE }, Fr._PlaneScene), this.lastDragPosition = new g(0, 0, 0);\n const i = t || ((s) => this.attachedNode == s || s.isDescendantOf(this.attachedNode));\n this._pointerObserver = this._scene.onPointerObservable.add((s) => {\n if (!this.enabled) {\n this._attachedToElement && this.releaseDrag();\n return;\n }\n if (s.type == Pe.POINTERDOWN)\n this.startAndReleaseDragOnPointerEvents && !this.dragging && s.pickInfo && s.pickInfo.hit && s.pickInfo.pickedMesh && s.pickInfo.pickedPoint && s.pickInfo.ray && i(s.pickInfo.pickedMesh) && this._activeDragButton === -1 && this.dragButtons.indexOf(s.event.button) !== -1 && (this._activeDragButton = s.event.button, this._activePointerInfo = s, this._startDrag(s.event.pointerId, s.pickInfo.ray, s.pickInfo.pickedPoint));\n else if (s.type == Pe.POINTERUP)\n this.startAndReleaseDragOnPointerEvents && this.currentDraggingPointerId == s.event.pointerId && (this._activeDragButton === s.event.button || this._activeDragButton === -1) && this.releaseDrag();\n else if (s.type == Pe.POINTERMOVE) {\n const r = s.event.pointerId;\n if (this.currentDraggingPointerId === Fr._AnyMouseId && r !== Fr._AnyMouseId) {\n const n = s.event;\n (n.pointerType === \"mouse\" || !this._scene.getEngine().hostInformation.isMobile && n instanceof MouseEvent) && (this._lastPointerRay[this.currentDraggingPointerId] && (this._lastPointerRay[r] = this._lastPointerRay[this.currentDraggingPointerId], delete this._lastPointerRay[this.currentDraggingPointerId]), this.currentDraggingPointerId = r);\n }\n this._lastPointerRay[r] || (this._lastPointerRay[r] = new nt(new g(), new g())), s.pickInfo && s.pickInfo.ray && (this._lastPointerRay[r].origin.copyFrom(s.pickInfo.ray.origin), this._lastPointerRay[r].direction.copyFrom(s.pickInfo.ray.direction), this.currentDraggingPointerId == r && this.dragging && this._moveDrag(s.pickInfo.ray));\n }\n }), this._beforeRenderObserver = this._scene.onBeforeRenderObservable.add(() => {\n if (this._moving && this.moveAttached) {\n let s = !1;\n vi._RemoveAndStorePivotPoint(this.attachedNode), this._targetPosition.subtractToRef(this.attachedNode.absolutePosition, this._tmpVector), this._tmpVector.scaleInPlace(this.dragDeltaRatio), this.attachedNode.getAbsolutePosition().addToRef(this._tmpVector, this._tmpVector), this.validateDrag(this._tmpVector) && (this.attachedNode.setAbsolutePosition(this._tmpVector), s = !0), vi._RestorePivotPoint(this.attachedNode), s && this.attachedNode.computeWorldMatrix();\n }\n });\n }\n /**\n * Force release the drag action by code.\n */\n releaseDrag() {\n if (this.dragging && (this.dragging = !1, this.onDragEndObservable.notifyObservers({ dragPlanePoint: this.lastDragPosition, pointerId: this.currentDraggingPointerId, pointerInfo: this._activePointerInfo })), this.currentDraggingPointerId = -1, this._activeDragButton = -1, this._activePointerInfo = null, this._moving = !1, this.detachCameraControls && this._attachedToElement && this._scene.activeCamera && !this._scene.activeCamera.leftCamera) {\n if (this._scene.activeCamera.getClassName() === \"ArcRotateCamera\") {\n const e = this._scene.activeCamera;\n e.attachControl(e.inputs ? e.inputs.noPreventDefault : !0, e._useCtrlForPanning, e._panningMouseButton);\n } else\n this._scene.activeCamera.attachControl(this._scene.activeCamera.inputs ? this._scene.activeCamera.inputs.noPreventDefault : !0);\n this._attachedToElement = !1;\n }\n }\n /**\n * Simulates the start of a pointer drag event on the behavior\n * @param pointerId pointerID of the pointer that should be simulated (Default: Any mouse pointer ID)\n * @param fromRay initial ray of the pointer to be simulated (Default: Ray from camera to attached mesh)\n * @param startPickedPoint picked point of the pointer to be simulated (Default: attached mesh position)\n */\n startDrag(e = Fr._AnyMouseId, t, i) {\n this._startDrag(e, t, i);\n let s = this._lastPointerRay[e];\n e === Fr._AnyMouseId && (s = this._lastPointerRay[Object.keys(this._lastPointerRay)[0]]), s && this._moveDrag(s);\n }\n _startDrag(e, t, i) {\n if (!this._scene.activeCamera || this.dragging || !this.attachedNode)\n return;\n vi._RemoveAndStorePivotPoint(this.attachedNode), t ? (this._startDragRay.direction.copyFrom(t.direction), this._startDragRay.origin.copyFrom(t.origin)) : (this._startDragRay.origin.copyFrom(this._scene.activeCamera.position), this.attachedNode.getWorldMatrix().getTranslationToRef(this._tmpVector), this._tmpVector.subtractToRef(this._scene.activeCamera.position, this._startDragRay.direction)), this._updateDragPlanePosition(this._startDragRay, i || this._tmpVector);\n const s = this._pickWithRayOnDragPlane(this._startDragRay);\n s ? (this.dragging = !0, this.currentDraggingPointerId = e, this.lastDragPosition.copyFrom(s), this.onDragStartObservable.notifyObservers({ dragPlanePoint: s, pointerId: this.currentDraggingPointerId, pointerInfo: this._activePointerInfo }), this._targetPosition.copyFrom(this.attachedNode.getAbsolutePosition()), this.detachCameraControls && this._scene.activeCamera && this._scene.activeCamera.inputs && !this._scene.activeCamera.leftCamera && (this._scene.activeCamera.inputs.attachedToElement ? (this._scene.activeCamera.detachControl(), this._attachedToElement = !0) : this._attachedToElement = !1)) : this.releaseDrag(), vi._RestorePivotPoint(this.attachedNode);\n }\n _moveDrag(e) {\n this._moving = !0;\n const t = this._pickWithRayOnDragPlane(e);\n if (t) {\n vi._RemoveAndStorePivotPoint(this.attachedNode), this.updateDragPlane && this._updateDragPlanePosition(e, t);\n let i = 0;\n this._options.dragAxis ? (this.useObjectOrientationForDragging ? g.TransformCoordinatesToRef(this._options.dragAxis, this.attachedNode.getWorldMatrix().getRotationMatrix(), this._worldDragAxis) : this._worldDragAxis.copyFrom(this._options.dragAxis), t.subtractToRef(this.lastDragPosition, this._tmpVector), i = g.Dot(this._tmpVector, this._worldDragAxis), this._worldDragAxis.scaleToRef(i, this._dragDelta)) : (i = this._dragDelta.length(), t.subtractToRef(this.lastDragPosition, this._dragDelta)), this._targetPosition.addInPlace(this._dragDelta), this.onDragObservable.notifyObservers({\n dragDistance: i,\n delta: this._dragDelta,\n dragPlanePoint: t,\n dragPlaneNormal: this._dragPlane.forward,\n pointerId: this.currentDraggingPointerId,\n pointerInfo: this._activePointerInfo\n }), this.lastDragPosition.copyFrom(t), vi._RestorePivotPoint(this.attachedNode);\n }\n }\n _pickWithRayOnDragPlane(e) {\n if (!e)\n return null;\n let t = Math.acos(g.Dot(this._dragPlane.forward, e.direction));\n if (t > Math.PI / 2 && (t = Math.PI - t), this.maxDragAngle > 0 && t > this.maxDragAngle)\n if (this._useAlternatePickedPointAboveMaxDragAngle) {\n this._tmpVector.copyFrom(e.direction), this.attachedNode.absolutePosition.subtractToRef(e.origin, this._alternatePickedPoint), this._alternatePickedPoint.normalize(), this._alternatePickedPoint.scaleInPlace(this._useAlternatePickedPointAboveMaxDragAngleDragSpeed * g.Dot(this._alternatePickedPoint, this._tmpVector)), this._tmpVector.addInPlace(this._alternatePickedPoint);\n const l = g.Dot(this._dragPlane.forward, this._tmpVector);\n return this._dragPlane.forward.scaleToRef(-l, this._alternatePickedPoint), this._alternatePickedPoint.addInPlace(this._tmpVector), this._alternatePickedPoint.addInPlace(this.attachedNode.absolutePosition), this._alternatePickedPoint;\n } else\n return null;\n const i = this._dragPlane.forward, s = this._dragPlane.position, r = e.direction.dot(i);\n if (Math.abs(r) < tt)\n return null;\n s.subtractToRef(e.origin, w.Vector3[0]);\n const n = w.Vector3[0].dot(i) / r;\n return n < 0 ? null : (e.direction.scaleToRef(n, w.Vector3[0]), e.origin.add(w.Vector3[0]));\n }\n // Position the drag plane based on the attached mesh position, for single axis rotate the plane along the axis to face the camera\n _updateDragPlanePosition(e, t) {\n this._pointA.copyFrom(t), this._options.dragAxis ? (this.useObjectOrientationForDragging ? g.TransformCoordinatesToRef(this._options.dragAxis, this.attachedNode.getWorldMatrix().getRotationMatrix(), this._localAxis) : this._localAxis.copyFrom(this._options.dragAxis), e.origin.subtractToRef(this._pointA, this._pointC), this._pointC.normalize(), Math.abs(g.Dot(this._localAxis, this._pointC)) > 0.999 ? Math.abs(g.Dot(g.UpReadOnly, this._pointC)) > 0.999 ? this._lookAt.copyFrom(g.Right()) : this._lookAt.copyFrom(g.UpReadOnly) : (g.CrossToRef(this._localAxis, this._pointC, this._lookAt), g.CrossToRef(this._localAxis, this._lookAt, this._lookAt), this._lookAt.normalize()), this._dragPlane.position.copyFrom(this._pointA), this._pointA.addToRef(this._lookAt, this._lookAt), this._dragPlane.lookAt(this._lookAt)) : this._options.dragPlaneNormal ? (this.useObjectOrientationForDragging ? g.TransformCoordinatesToRef(this._options.dragPlaneNormal, this.attachedNode.getWorldMatrix().getRotationMatrix(), this._localAxis) : this._localAxis.copyFrom(this._options.dragPlaneNormal), this._dragPlane.position.copyFrom(this._pointA), this._pointA.addToRef(this._localAxis, this._lookAt), this._dragPlane.lookAt(this._lookAt)) : (this._dragPlane.position.copyFrom(this._pointA), this._dragPlane.lookAt(e.origin)), this._dragPlane.position.copyFrom(this.attachedNode.getAbsolutePosition()), this._dragPlane.computeWorldMatrix(!0);\n }\n /**\n * Detaches the behavior from the mesh\n */\n detach() {\n this._lastPointerRay = {}, this.attachedNode && (this.attachedNode.isNearGrabbable = !1), this._pointerObserver && this._scene.onPointerObservable.remove(this._pointerObserver), this._beforeRenderObserver && this._scene.onBeforeRenderObservable.remove(this._beforeRenderObserver), this._dragPlane && this._dragPlane.dispose(), this.releaseDrag();\n }\n}\nFr._AnyMouseId = -2;\nvar Ub;\n(function(a) {\n a[a.ABOVE_FINGER_TIPS = 0] = \"ABOVE_FINGER_TIPS\", a[a.RADIAL_SIDE = 1] = \"RADIAL_SIDE\", a[a.ULNAR_SIDE = 2] = \"ULNAR_SIDE\", a[a.BELOW_WRIST = 3] = \"BELOW_WRIST\";\n})(Ub || (Ub = {}));\nvar kb;\n(function(a) {\n a[a.LOOK_AT_CAMERA = 0] = \"LOOK_AT_CAMERA\", a[a.HAND_ROTATION = 1] = \"HAND_ROTATION\";\n})(kb || (kb = {}));\nvar Gb;\n(function(a) {\n a[a.ALWAYS_VISIBLE = 0] = \"ALWAYS_VISIBLE\", a[a.PALM_UP = 1] = \"PALM_UP\", a[a.GAZE_FOCUS = 2] = \"GAZE_FOCUS\", a[a.PALM_AND_GAZE = 3] = \"PALM_AND_GAZE\";\n})(Gb || (Gb = {}));\nclass AK {\n /**\n * Builds a hand constraint behavior\n */\n constructor() {\n this._sceneRenderObserver = null, this._zoneAxis = {}, this.handConstraintVisibility = 3, this.palmUpStrictness = 0.95, this.gazeProximityRadius = 0.15, this.targetOffset = 0.1, this.targetZone = 2, this.zoneOrientationMode = 1, this.nodeOrientationMode = 1, this.handedness = \"none\", this.lerpTime = 100, this._zoneAxis[\n 0\n /* HandConstraintZone.ABOVE_FINGER_TIPS */\n ] = new g(0, 1, 0), this._zoneAxis[\n 1\n /* HandConstraintZone.RADIAL_SIDE */\n ] = new g(-1, 0, 0), this._zoneAxis[\n 2\n /* HandConstraintZone.ULNAR_SIDE */\n ] = new g(1, 0, 0), this._zoneAxis[\n 3\n /* HandConstraintZone.BELOW_WRIST */\n ] = new g(0, -1, 0);\n }\n /** gets or sets behavior's name */\n get name() {\n return \"HandConstraint\";\n }\n /** Enable the behavior */\n enable() {\n this._node.setEnabled(!0);\n }\n /** Disable the behavior */\n disable() {\n this._node.setEnabled(!1);\n }\n _getHandPose() {\n if (!this._handTracking)\n return null;\n let e;\n if (this.handedness === \"none\" ? e = this._handTracking.getHandByHandedness(\"left\") || this._handTracking.getHandByHandedness(\"right\") : e = this._handTracking.getHandByHandedness(this.handedness), e) {\n const t = e.getJointMesh(\n \"pinky-finger-metacarpal\"\n /* WebXRHandJoint.PINKY_FINGER_METACARPAL */\n ), i = e.getJointMesh(\n \"middle-finger-metacarpal\"\n /* WebXRHandJoint.MIDDLE_FINGER_METACARPAL */\n ), s = e.getJointMesh(\n \"wrist\"\n /* WebXRHandJoint.WRIST */\n );\n if (s && i && t) {\n const r = { position: i.absolutePosition, quaternion: new se(), id: e.xrController.uniqueId }, n = w.Vector3[0], o = w.Vector3[1], l = w.Vector3[2];\n return n.copyFrom(i.absolutePosition).subtractInPlace(s.absolutePosition).normalize(), o.copyFrom(t.absolutePosition).subtractInPlace(i.absolutePosition).normalize(), g.CrossToRef(n, o, o), g.CrossToRef(o, n, l), se.FromLookDirectionLHToRef(o, n, r.quaternion), r;\n }\n }\n return null;\n }\n /**\n * Initializes the hand constraint behavior\n */\n init() {\n }\n /**\n * Attaches the hand constraint to a `TransformNode`\n * @param node defines the node to attach the behavior to\n */\n attach(e) {\n this._node = e, this._scene = e.getScene(), this._node.rotationQuaternion || (this._node.rotationQuaternion = se.RotationYawPitchRoll(this._node.rotation.y, this._node.rotation.x, this._node.rotation.z));\n let t = Date.now();\n this._sceneRenderObserver = this._scene.onBeforeRenderObservable.add(() => {\n const i = this._getHandPose();\n if (this._node.reservedDataStore = this._node.reservedDataStore || {}, this._node.reservedDataStore.nearInteraction = this._node.reservedDataStore.nearInteraction || {}, this._node.reservedDataStore.nearInteraction.excludedControllerId = null, i) {\n const s = w.Vector3[0], r = this._scene.activeCamera;\n s.copyFrom(this._zoneAxis[this.targetZone]);\n const n = w.Quaternion[0];\n if (r && (this.zoneOrientationMode === 0 || this.nodeOrientationMode === 0)) {\n const c = w.Vector3[1];\n c.copyFrom(r.position).subtractInPlace(i.position).normalize(), this._scene.useRightHandedSystem ? se.FromLookDirectionRHToRef(c, g.UpReadOnly, n) : se.FromLookDirectionLHToRef(c, g.UpReadOnly, n);\n }\n this.zoneOrientationMode === 1 ? i.quaternion.toRotationMatrix(w.Matrix[0]) : n.toRotationMatrix(w.Matrix[0]), g.TransformNormalToRef(s, w.Matrix[0], s), s.scaleInPlace(this.targetOffset);\n const o = w.Vector3[2], l = w.Quaternion[1];\n o.copyFrom(i.position).addInPlace(s), this.nodeOrientationMode === 1 ? l.copyFrom(i.quaternion) : l.copyFrom(n);\n const h = Date.now() - t;\n g.SmoothToRef(this._node.position, o, h, this.lerpTime, this._node.position), se.SmoothToRef(this._node.rotationQuaternion, l, h, this.lerpTime, this._node.rotationQuaternion), this._node.reservedDataStore.nearInteraction.excludedControllerId = i.id;\n }\n this._setVisibility(i), t = Date.now();\n });\n }\n _setVisibility(e) {\n let t = !0, i = !0;\n const s = this._scene.activeCamera;\n if (s) {\n const r = s.getForwardRay();\n if (this.handConstraintVisibility === 2 || this.handConstraintVisibility === 3) {\n i = !1;\n let n;\n this._eyeTracking && (n = this._eyeTracking.getEyeGaze()), n = n || r;\n const o = w.Vector3[0];\n e ? e.position.subtractToRef(n.origin, o) : this._node.getAbsolutePosition().subtractToRef(n.origin, o);\n const l = g.Dot(o, n.direction), h = l * l;\n l > 0 && o.lengthSquared() - h < this.gazeProximityRadius * this.gazeProximityRadius && (i = !0);\n }\n if ((this.handConstraintVisibility === 1 || this.handConstraintVisibility === 3) && (t = !1, e)) {\n const n = w.Vector3[0];\n g.LeftHandedForwardReadOnly.rotateByQuaternionToRef(e.quaternion, n), g.Dot(n, r.direction) > this.palmUpStrictness * 2 - 1 && (t = !0);\n }\n }\n this._node.setEnabled(t && i);\n }\n /**\n * Detaches the behavior from the `TransformNode`\n */\n detach() {\n this._scene.onBeforeRenderObservable.remove(this._sceneRenderObserver);\n }\n /**\n * Links the behavior to the XR experience in which to retrieve hand transform information.\n * @param xr xr experience\n */\n linkToXRExperience(e) {\n const t = e.featuresManager ? e.featuresManager : e;\n if (!t)\n J.Error(\"XR features manager must be available or provided directly for the Hand Menu to work\");\n else {\n try {\n this._eyeTracking = t.getEnabledFeature(Tt.EYE_TRACKING);\n } catch {\n }\n try {\n this._handTracking = t.getEnabledFeature(Tt.HAND_TRACKING);\n } catch {\n J.Error(\"Hand tracking must be enabled for the Hand Menu to work\");\n }\n }\n }\n}\nclass pn {\n /**\n * Gets or sets maximum allowed angle\n */\n get maxAngle() {\n return this._maxAngle;\n }\n set maxAngle(e) {\n this._setMaxAngle(e);\n }\n /**\n * Creates a new BoneIKController\n * @param mesh defines the TransformNode to control\n * @param bone defines the bone to control. The bone needs to have a parent bone. It also needs to have a length greater than 0 or a children we can use to infer its length.\n * @param options defines options to set up the controller\n * @param options.targetMesh\n * @param options.poleTargetMesh\n * @param options.poleTargetBone\n * @param options.poleTargetLocalOffset\n * @param options.poleAngle\n * @param options.bendAxis\n * @param options.maxAngle\n * @param options.slerpAmount\n */\n constructor(e, t, i) {\n this.targetPosition = g.Zero(), this.poleTargetPosition = g.Zero(), this.poleTargetLocalOffset = g.Zero(), this.poleAngle = 0, this.slerpAmount = 1, this._bone1Quat = se.Identity(), this._bone1Mat = O.Identity(), this._bone2Ang = Math.PI, this._maxAngle = Math.PI, this._rightHandedSystem = !1, this._bendAxis = g.Right(), this._slerping = !1, this._adjustRoll = 0, this._notEnoughInformation = !1, this._bone2 = t;\n const s = t.getParent();\n if (!s) {\n this._notEnoughInformation = !0, L.Error(\"BoneIKController: bone must have a parent for IK to work.\");\n return;\n }\n if (this._bone1 = s, this._bone2.children.length === 0 && !this._bone2.length) {\n this._notEnoughInformation = !0, L.Error(\"BoneIKController: bone must not be a leaf or it should have a length for IK to work.\");\n return;\n }\n this.mesh = e, t.getSkeleton().computeAbsoluteMatrices();\n const r = t.getPosition();\n if (t.getAbsoluteMatrix().determinant() > 0 && (this._rightHandedSystem = !0, this._bendAxis.x = 0, this._bendAxis.y = 0, this._bendAxis.z = -1, r.x > r.y && r.x > r.z && (this._adjustRoll = Math.PI * 0.5, this._bendAxis.z = 1)), this._bone1.length && this._bone2.length) {\n const n = this._bone1.getScale(), o = this._bone2.getScale();\n this._bone1Length = this._bone1.length * n.y * this.mesh.scaling.y, this._bone2Length = this._bone2.length * o.y * this.mesh.scaling.y;\n } else if (this._bone2.children[0]) {\n e.computeWorldMatrix(!0);\n const n = this._bone2.children[0].getAbsolutePosition(e), o = this._bone2.getAbsolutePosition(e), l = this._bone1.getAbsolutePosition(e);\n this._bone2Length = g.Distance(n, o), this._bone1Length = g.Distance(o, l);\n } else {\n e.computeWorldMatrix(!0);\n const n = this._bone2.getScale();\n this._bone2Length = this._bone2.length * n.y * this.mesh.scaling.y;\n const o = this._bone2.getAbsolutePosition(e), l = this._bone1.getAbsolutePosition(e);\n this._bone1Length = g.Distance(o, l);\n }\n this._bone1.getRotationMatrixToRef(1, e, this._bone1Mat), this.maxAngle = Math.PI, i && (i.targetMesh && (this.targetMesh = i.targetMesh, this.targetMesh.computeWorldMatrix(!0)), i.poleTargetMesh ? (this.poleTargetMesh = i.poleTargetMesh, this.poleTargetMesh.computeWorldMatrix(!0)) : i.poleTargetBone ? this.poleTargetBone = i.poleTargetBone : this._bone1.getParent() && (this.poleTargetBone = this._bone1.getParent()), i.poleTargetLocalOffset && this.poleTargetLocalOffset.copyFrom(i.poleTargetLocalOffset), i.poleAngle && (this.poleAngle = i.poleAngle), i.bendAxis && this._bendAxis.copyFrom(i.bendAxis), i.maxAngle && (this.maxAngle = i.maxAngle), i.slerpAmount && (this.slerpAmount = i.slerpAmount));\n }\n _setMaxAngle(e) {\n e < 0 && (e = 0), (e > Math.PI || e == null) && (e = Math.PI), this._maxAngle = e;\n const t = this._bone1Length, i = this._bone2Length;\n this._maxReach = Math.sqrt(t * t + i * i - 2 * t * i * Math.cos(e));\n }\n /**\n * Force the controller to update the bones\n */\n update() {\n if (this._notEnoughInformation)\n return;\n const e = this.targetPosition, t = this.poleTargetPosition, i = pn._TmpMats[0], s = pn._TmpMats[1];\n this.targetMesh && e.copyFrom(this.targetMesh.getAbsolutePosition()), this.poleTargetBone ? this.poleTargetBone.getAbsolutePositionFromLocalToRef(this.poleTargetLocalOffset, this.mesh, t) : this.poleTargetMesh && g.TransformCoordinatesToRef(this.poleTargetLocalOffset, this.poleTargetMesh.getWorldMatrix(), t);\n const r = pn._TmpVecs[0], n = pn._TmpVecs[1], o = pn._TmpVecs[2], l = pn._TmpVecs[3], h = pn._TmpVecs[4], c = pn._TmpQuat;\n this._bone1.getAbsolutePositionToRef(this.mesh, r), t.subtractToRef(r, h), h.x == 0 && h.y == 0 && h.z == 0 ? h.y = 1 : h.normalize(), e.subtractToRef(r, l), l.normalize(), g.CrossToRef(l, h, n), n.normalize(), g.CrossToRef(l, n, o), o.normalize(), O.FromXYZAxesToRef(o, l, n, i);\n const u = this._bone1Length, d = this._bone2Length;\n let f = g.Distance(r, e);\n this._maxReach > 0 && (f = Math.min(this._maxReach, f));\n let p = (d * d + f * f - u * u) / (2 * d * f), _ = (f * f + u * u - d * d) / (2 * f * u);\n p > 1 && (p = 1), _ > 1 && (_ = 1), p < -1 && (p = -1), _ < -1 && (_ = -1);\n const m = Math.acos(p), x = Math.acos(_);\n let v = -m - x;\n if (this._rightHandedSystem)\n O.RotationYawPitchRollToRef(0, 0, this._adjustRoll, s), s.multiplyToRef(i, i), O.RotationAxisToRef(this._bendAxis, x, s), s.multiplyToRef(i, i);\n else {\n const T = pn._TmpVecs[5];\n T.copyFrom(this._bendAxis), T.x *= -1, O.RotationAxisToRef(T, -x, s), s.multiplyToRef(i, i);\n }\n this.poleAngle && (O.RotationAxisToRef(l, this.poleAngle, s), i.multiplyToRef(s, i)), this._bone1 && (this.slerpAmount < 1 ? (this._slerping || se.FromRotationMatrixToRef(this._bone1Mat, this._bone1Quat), se.FromRotationMatrixToRef(i, c), se.SlerpToRef(this._bone1Quat, c, this.slerpAmount, this._bone1Quat), v = this._bone2Ang * (1 - this.slerpAmount) + v * this.slerpAmount, this._bone1.setRotationQuaternion(this._bone1Quat, 1, this.mesh), this._slerping = !0) : (this._bone1.setRotationMatrix(i, 1, this.mesh), this._bone1Mat.copyFrom(i), this._slerping = !1), this._updateLinkedTransformRotation(this._bone1)), this._bone2.setAxisAngle(\n this._bendAxis,\n v,\n 0\n /* Space.LOCAL */\n ), this._updateLinkedTransformRotation(this._bone2), this._bone2Ang = v;\n }\n _updateLinkedTransformRotation(e) {\n e._linkedTransformNode && (e._linkedTransformNode.rotationQuaternion || (e._linkedTransformNode.rotationQuaternion = new se()), e.getRotationQuaternionToRef(0, null, e._linkedTransformNode.rotationQuaternion));\n }\n}\npn._TmpVecs = [g.Zero(), g.Zero(), g.Zero(), g.Zero(), g.Zero(), g.Zero()];\npn._TmpQuat = se.Identity();\npn._TmpMats = [O.Identity(), O.Identity()];\nclass $s {\n /**\n * Gets or sets the minimum yaw angle that the bone can look to\n */\n get minYaw() {\n return this._minYaw;\n }\n set minYaw(e) {\n this._minYaw = e, this._minYawSin = Math.sin(e), this._minYawCos = Math.cos(e), this._maxYaw != null && (this._midYawConstraint = this._getAngleDiff(this._minYaw, this._maxYaw) * 0.5 + this._minYaw, this._yawRange = this._maxYaw - this._minYaw);\n }\n /**\n * Gets or sets the maximum yaw angle that the bone can look to\n */\n get maxYaw() {\n return this._maxYaw;\n }\n set maxYaw(e) {\n this._maxYaw = e, this._maxYawSin = Math.sin(e), this._maxYawCos = Math.cos(e), this._minYaw != null && (this._midYawConstraint = this._getAngleDiff(this._minYaw, this._maxYaw) * 0.5 + this._minYaw, this._yawRange = this._maxYaw - this._minYaw);\n }\n /**\n * Gets or sets the minimum pitch angle that the bone can look to\n */\n get minPitch() {\n return this._minPitch;\n }\n set minPitch(e) {\n this._minPitch = e, this._minPitchTan = Math.tan(e);\n }\n /**\n * Gets or sets the maximum pitch angle that the bone can look to\n */\n get maxPitch() {\n return this._maxPitch;\n }\n set maxPitch(e) {\n this._maxPitch = e, this._maxPitchTan = Math.tan(e);\n }\n /**\n * Create a BoneLookController\n * @param mesh the TransformNode that the bone belongs to\n * @param bone the bone that will be looking to the target\n * @param target the target Vector3 to look at\n * @param options optional settings:\n * * maxYaw: the maximum angle the bone will yaw to\n * * minYaw: the minimum angle the bone will yaw to\n * * maxPitch: the maximum angle the bone will pitch to\n * * minPitch: the minimum angle the bone will yaw to\n * * slerpAmount: set the between 0 and 1 to make the bone slerp to the target.\n * * upAxis: the up axis of the coordinate system\n * * upAxisSpace: the space that the up axis is in - Space.BONE, Space.LOCAL (default), or Space.WORLD.\n * * yawAxis: set yawAxis if the bone does not yaw on the y axis\n * * pitchAxis: set pitchAxis if the bone does not pitch on the x axis\n * * adjustYaw: used to make an adjustment to the yaw of the bone\n * * adjustPitch: used to make an adjustment to the pitch of the bone\n * * adjustRoll: used to make an adjustment to the roll of the bone\n * @param options.maxYaw\n * @param options.minYaw\n * @param options.maxPitch\n * @param options.minPitch\n * @param options.slerpAmount\n * @param options.upAxis\n * @param options.upAxisSpace\n * @param options.yawAxis\n * @param options.pitchAxis\n * @param options.adjustYaw\n * @param options.adjustPitch\n * @param options.adjustRoll\n **/\n constructor(e, t, i, s) {\n if (this.upAxis = g.Up(), this.upAxisSpace = 0, this.adjustYaw = 0, this.adjustPitch = 0, this.adjustRoll = 0, this.slerpAmount = 1, this._boneQuat = se.Identity(), this._slerping = !1, this._firstFrameSkipped = !1, this._fowardAxis = g.Forward(), this.useAbsoluteValueForYaw = !1, this.mesh = e, this.bone = t, this.target = i, s) {\n if (s.adjustYaw && (this.adjustYaw = s.adjustYaw), s.adjustPitch && (this.adjustPitch = s.adjustPitch), s.adjustRoll && (this.adjustRoll = s.adjustRoll), s.maxYaw != null ? this.maxYaw = s.maxYaw : this.maxYaw = Math.PI, s.minYaw != null ? this.minYaw = s.minYaw : this.minYaw = -Math.PI, s.maxPitch != null ? this.maxPitch = s.maxPitch : this.maxPitch = Math.PI, s.minPitch != null ? this.minPitch = s.minPitch : this.minPitch = -Math.PI, s.slerpAmount != null && (this.slerpAmount = s.slerpAmount), s.upAxis != null && (this.upAxis = s.upAxis), s.upAxisSpace != null && (this.upAxisSpace = s.upAxisSpace), s.yawAxis != null || s.pitchAxis != null) {\n let r = zs.Y, n = zs.X;\n s.yawAxis != null && (r = s.yawAxis.clone(), r.normalize()), s.pitchAxis != null && (n = s.pitchAxis.clone(), n.normalize());\n const o = g.Cross(n, r);\n this._transformYawPitch = O.Identity(), O.FromXYZAxesToRef(n, r, o, this._transformYawPitch), this._transformYawPitchInv = this._transformYawPitch.clone(), this._transformYawPitch.invert();\n }\n s.useAbsoluteValueForYaw !== void 0 && (this.useAbsoluteValueForYaw = s.useAbsoluteValueForYaw);\n }\n !t.getParent() && this.upAxisSpace == 2 && (this.upAxisSpace = 0);\n }\n /**\n * Update the bone to look at the target. This should be called before the scene is rendered (use scene.registerBeforeRender())\n */\n update() {\n if (this.slerpAmount < 1 && !this._firstFrameSkipped) {\n this._firstFrameSkipped = !0;\n return;\n }\n const e = this.bone, t = $s._TmpVecs[0];\n e.getAbsolutePositionToRef(this.mesh, t);\n let i = this.target;\n const s = $s._TmpMats[0], r = $s._TmpMats[1], n = this.mesh, o = e.getParent(), l = $s._TmpVecs[1];\n l.copyFrom(this.upAxis), this.upAxisSpace == 2 && o ? (this._transformYawPitch && g.TransformCoordinatesToRef(l, this._transformYawPitchInv, l), o.getDirectionToRef(l, this.mesh, l)) : this.upAxisSpace == 0 && (n.getDirectionToRef(l, l), (n.scaling.x != 1 || n.scaling.y != 1 || n.scaling.z != 1) && l.normalize());\n let h = !1, c = !1;\n if ((this._maxYaw != Math.PI || this._minYaw != -Math.PI) && (h = !0), (this._maxPitch != Math.PI || this._minPitch != -Math.PI) && (c = !0), h || c) {\n const m = $s._TmpMats[2], x = $s._TmpMats[3];\n if (this.upAxisSpace == 2 && l.y == 1 && o)\n o.getRotationMatrixToRef(1, this.mesh, m);\n else if (this.upAxisSpace == 0 && l.y == 1 && !o)\n m.copyFrom(n.getWorldMatrix());\n else {\n let T = $s._TmpVecs[2];\n T.copyFrom(this._fowardAxis), this._transformYawPitch && g.TransformCoordinatesToRef(T, this._transformYawPitchInv, T), o ? o.getDirectionToRef(T, this.mesh, T) : n.getDirectionToRef(T, T);\n const E = g.Cross(l, T);\n E.normalize(), T = g.Cross(E, l), O.FromXYZAxesToRef(E, l, T, m);\n }\n m.invertToRef(x);\n let v = null;\n if (c) {\n const T = $s._TmpVecs[3];\n i.subtractToRef(t, T), g.TransformCoordinatesToRef(T, x, T), v = Math.sqrt(T.x * T.x + T.z * T.z);\n const E = Math.atan2(T.y, v);\n let b = E;\n E > this._maxPitch ? (T.y = this._maxPitchTan * v, b = this._maxPitch) : E < this._minPitch && (T.y = this._minPitchTan * v, b = this._minPitch), E != b && (g.TransformCoordinatesToRef(T, m, T), T.addInPlace(t), i = T);\n }\n if (h) {\n const T = $s._TmpVecs[4];\n i.subtractToRef(t, T), g.TransformCoordinatesToRef(T, x, T);\n const E = Math.atan2(T.x, T.z), b = this.useAbsoluteValueForYaw ? Math.abs(E) : E;\n let S = E;\n if ((b > this._maxYaw || b < this._minYaw) && (v == null && (v = Math.sqrt(T.x * T.x + T.z * T.z)), this._yawRange > Math.PI ? this._isAngleBetween(E, this._maxYaw, this._midYawConstraint) ? (T.z = this._maxYawCos * v, T.x = this._maxYawSin * v, S = this._maxYaw) : this._isAngleBetween(E, this._midYawConstraint, this._minYaw) && (T.z = this._minYawCos * v, T.x = this._minYawSin * v, S = this._minYaw) : b > this._maxYaw ? (T.z = this._maxYawCos * v, T.x = this._maxYawSin * v, E < 0 && this.useAbsoluteValueForYaw && (T.x *= -1), S = this._maxYaw) : b < this._minYaw && (T.z = this._minYawCos * v, T.x = this._minYawSin * v, E < 0 && this.useAbsoluteValueForYaw && (T.x *= -1), S = this._minYaw)), this._slerping && this._yawRange > Math.PI) {\n const C = $s._TmpVecs[8];\n C.copyFrom(zs.Z), this._transformYawPitch && g.TransformCoordinatesToRef(C, this._transformYawPitchInv, C);\n const P = $s._TmpMats[4];\n this._boneQuat.toRotationMatrix(P), this.mesh.getWorldMatrix().multiplyToRef(P, P), g.TransformCoordinatesToRef(C, P, C), g.TransformCoordinatesToRef(C, x, C);\n const N = Math.atan2(C.x, C.z), F = this._getAngleBetween(N, E), $ = this._getAngleBetween(N, this._midYawConstraint);\n if (F > $) {\n v == null && (v = Math.sqrt(T.x * T.x + T.z * T.z));\n const j = this._getAngleBetween(N, this._maxYaw);\n this._getAngleBetween(N, this._minYaw) < j ? (S = N + Math.PI * 0.75, T.z = Math.cos(S) * v, T.x = Math.sin(S) * v) : (S = N - Math.PI * 0.75, T.z = Math.cos(S) * v, T.x = Math.sin(S) * v);\n }\n }\n E != S && (g.TransformCoordinatesToRef(T, m, T), T.addInPlace(t), i = T);\n }\n }\n const u = $s._TmpVecs[5], d = $s._TmpVecs[6], f = $s._TmpVecs[7], p = $s._TmpQuat, _ = $s._TmpVecs[9];\n i.subtractToRef(t, u), u.normalize(), g.CrossToRef(l, u, d), d.normalize(), g.CrossToRef(u, d, f), f.normalize(), O.FromXYZAxesToRef(d, f, u, s), !(d.x === 0 && d.y === 0 && d.z === 0) && (f.x === 0 && f.y === 0 && f.z === 0 || u.x === 0 && u.y === 0 && u.z === 0 || ((this.adjustYaw || this.adjustPitch || this.adjustRoll) && (O.RotationYawPitchRollToRef(this.adjustYaw, this.adjustPitch, this.adjustRoll, r), r.multiplyToRef(s, s)), _.copyFrom(this.bone.getScale()), this.slerpAmount < 1 ? (this._slerping || this.bone.getRotationQuaternionToRef(1, this.mesh, this._boneQuat), this._transformYawPitch && this._transformYawPitch.multiplyToRef(s, s), se.FromRotationMatrixToRef(s, p), se.SlerpToRef(this._boneQuat, p, this.slerpAmount, this._boneQuat), this.bone.setRotationQuaternion(this._boneQuat, 1, this.mesh), this._slerping = !0) : (this._transformYawPitch && this._transformYawPitch.multiplyToRef(s, s), this.bone.setRotationMatrix(s, 1, this.mesh), this._slerping = !1), this.bone.setScale(_), this._updateLinkedTransformRotation()));\n }\n _getAngleDiff(e, t) {\n let i = t - e;\n return i %= Math.PI * 2, i > Math.PI ? i -= Math.PI * 2 : i < -Math.PI && (i += Math.PI * 2), i;\n }\n _getAngleBetween(e, t) {\n e %= 2 * Math.PI, e = e < 0 ? e + 2 * Math.PI : e, t %= 2 * Math.PI, t = t < 0 ? t + 2 * Math.PI : t;\n let i = 0;\n return e < t ? i = t - e : i = e - t, i > Math.PI && (i = Math.PI * 2 - i), i;\n }\n _isAngleBetween(e, t, i) {\n if (e %= 2 * Math.PI, e = e < 0 ? e + 2 * Math.PI : e, t %= 2 * Math.PI, t = t < 0 ? t + 2 * Math.PI : t, i %= 2 * Math.PI, i = i < 0 ? i + 2 * Math.PI : i, t < i) {\n if (e > t && e < i)\n return !0;\n } else if (e > i && e < t)\n return !0;\n return !1;\n }\n _updateLinkedTransformRotation() {\n const e = this.bone;\n e._linkedTransformNode && (e._linkedTransformNode.rotationQuaternion || (e._linkedTransformNode.rotationQuaternion = new se()), e.getRotationQuaternionToRef(0, null, e._linkedTransformNode.rotationQuaternion));\n }\n}\n$s._TmpVecs = _s.BuildArray(10, g.Zero);\n$s._TmpQuat = se.Identity();\n$s._TmpMats = _s.BuildArray(5, O.Identity);\nclass nL {\n /**\n * Creates a new storage buffer instance\n * @param engine The engine the buffer will be created inside\n * @param size The size of the buffer in bytes\n * @param creationFlags flags to use when creating the buffer (see undefined). The BUFFER_CREATIONFLAG_STORAGE flag will be automatically added.\n * @param label defines the label of the buffer (for debug purpose)\n */\n constructor(e, t, i = 3, s) {\n this._engine = e, this._label = s, this._engine._storageBuffers.push(this), this._create(t, i);\n }\n _create(e, t) {\n this._bufferSize = e, this._creationFlags = t, this._buffer = this._engine.createStorageBuffer(e, t, this._label);\n }\n /** @internal */\n _rebuild() {\n this._create(this._bufferSize, this._creationFlags);\n }\n /**\n * Gets underlying native buffer\n * @returns underlying native buffer\n */\n getBuffer() {\n return this._buffer;\n }\n /**\n * Updates the storage buffer\n * @param data the data used to update the storage buffer\n * @param byteOffset the byte offset of the data (optional)\n * @param byteLength the byte length of the data (optional)\n */\n update(e, t, i) {\n this._buffer && this._engine.updateStorageBuffer(this._buffer, e, t, i);\n }\n /**\n * Reads data from the storage buffer\n * @param offset The offset in the storage buffer to start reading from (default: 0)\n * @param size The number of bytes to read from the storage buffer (default: capacity of the buffer)\n * @param buffer The buffer to write the data we have read from the storage buffer to (optional)\n * @param noDelay If true, a call to flushFramebuffer will be issued so that the data can be read back immediately. This can speed up data retrieval, at the cost of a small perf penalty (default: false).\n * @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer\n */\n read(e, t, i, s) {\n return this._engine.readFromStorageBuffer(this._buffer, e, t, i, s);\n }\n /**\n * Disposes the storage buffer\n */\n dispose() {\n const e = this._engine._storageBuffers, t = e.indexOf(this);\n t !== -1 && (e[t] = e[e.length - 1], e.pop()), this._engine._releaseBuffer(this._buffer), this._buffer = null;\n }\n}\nHx.prototype.addVRDeviceOrientation = function() {\n return this.add(new B0()), this;\n};\nclass B0 {\n /**\n * Instantiate a new ArcRotateCameraVRDeviceOrientationInput.\n */\n constructor() {\n this.alphaCorrection = 1, this.gammaCorrection = 1, this._alpha = 0, this._gamma = 0, this._dirty = !1, this._deviceOrientationHandler = (e) => this._onOrientationEvent(e);\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e) {\n e = J.BackCompatCameraNoPreventDefault(arguments), this.camera.attachControl(e);\n const t = this.camera.getScene().getEngine().getHostWindow();\n t && (typeof DeviceOrientationEvent < \"u\" && typeof DeviceOrientationEvent.requestPermission == \"function\" ? DeviceOrientationEvent.requestPermission().then((i) => {\n i === \"granted\" ? t.addEventListener(\"deviceorientation\", this._deviceOrientationHandler) : J.Warn(\"Permission not granted.\");\n }).catch((i) => {\n J.Error(i);\n }) : t.addEventListener(\"deviceorientation\", this._deviceOrientationHandler));\n }\n /**\n * @internal\n */\n _onOrientationEvent(e) {\n e.alpha !== null && (this._alpha = (+e.alpha | 0) * this.alphaCorrection), e.gamma !== null && (this._gamma = (+e.gamma | 0) * this.gammaCorrection), this._dirty = !0;\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n this._dirty && (this._dirty = !1, this._gamma < 0 && (this._gamma = 180 + this._gamma), this.camera.alpha = -this._alpha / 180 * Math.PI % Math.PI * 2, this.camera.beta = this._gamma / 180 * Math.PI);\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n window.removeEventListener(\"deviceorientation\", this._deviceOrientationHandler);\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"ArcRotateCameraVRDeviceOrientationInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"VRDeviceOrientation\";\n }\n}\nlr.ArcRotateCameraVRDeviceOrientationInput = B0;\nclass rl {\n constructor() {\n this.keysForward = [87], this.keysBackward = [83], this.keysUp = [69], this.keysDown = [81], this.keysRight = [68], this.keysLeft = [65], this._keys = new Array();\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e) {\n e = J.BackCompatCameraNoPreventDefault(arguments), !this._onCanvasBlurObserver && (this._scene = this.camera.getScene(), this._engine = this._scene.getEngine(), this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(() => {\n this._keys.length = 0;\n }), this._onKeyboardObserver = this._scene.onKeyboardObservable.add((t) => {\n const i = t.event;\n if (t.type === Ma.KEYDOWN)\n (this.keysForward.indexOf(i.keyCode) !== -1 || this.keysBackward.indexOf(i.keyCode) !== -1 || this.keysUp.indexOf(i.keyCode) !== -1 || this.keysDown.indexOf(i.keyCode) !== -1 || this.keysLeft.indexOf(i.keyCode) !== -1 || this.keysRight.indexOf(i.keyCode) !== -1) && (this._keys.indexOf(i.keyCode) === -1 && this._keys.push(i.keyCode), e || i.preventDefault());\n else if (this.keysForward.indexOf(i.keyCode) !== -1 || this.keysBackward.indexOf(i.keyCode) !== -1 || this.keysUp.indexOf(i.keyCode) !== -1 || this.keysDown.indexOf(i.keyCode) !== -1 || this.keysLeft.indexOf(i.keyCode) !== -1 || this.keysRight.indexOf(i.keyCode) !== -1) {\n const s = this._keys.indexOf(i.keyCode);\n s >= 0 && this._keys.splice(s, 1), e || i.preventDefault();\n }\n }));\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this._scene && (this._onKeyboardObserver && this._scene.onKeyboardObservable.remove(this._onKeyboardObserver), this._onCanvasBlurObserver && this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver), this._onKeyboardObserver = null, this._onCanvasBlurObserver = null), this._keys.length = 0;\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FlyCameraKeyboardInput\";\n }\n /**\n * @internal\n */\n _onLostFocus() {\n this._keys.length = 0;\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"keyboard\";\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n if (this._onKeyboardObserver) {\n const e = this.camera;\n for (let t = 0; t < this._keys.length; t++) {\n const i = this._keys[t], s = e._computeLocalCameraSpeed();\n this.keysForward.indexOf(i) !== -1 ? e._localDirection.copyFromFloats(0, 0, s) : this.keysBackward.indexOf(i) !== -1 ? e._localDirection.copyFromFloats(0, 0, -s) : this.keysUp.indexOf(i) !== -1 ? e._localDirection.copyFromFloats(0, s, 0) : this.keysDown.indexOf(i) !== -1 ? e._localDirection.copyFromFloats(0, -s, 0) : this.keysRight.indexOf(i) !== -1 ? e._localDirection.copyFromFloats(s, 0, 0) : this.keysLeft.indexOf(i) !== -1 && e._localDirection.copyFromFloats(-s, 0, 0), e.getScene().useRightHandedSystem && (e._localDirection.z *= -1), e.getViewMatrix().invertToRef(e._cameraTransformMatrix), g.TransformNormalToRef(e._localDirection, e._cameraTransformMatrix, e._transformedDirection), e.cameraDirection.addInPlace(e._transformedDirection);\n }\n }\n }\n}\ny([\n I()\n], rl.prototype, \"keysForward\", void 0);\ny([\n I()\n], rl.prototype, \"keysBackward\", void 0);\ny([\n I()\n], rl.prototype, \"keysUp\", void 0);\ny([\n I()\n], rl.prototype, \"keysDown\", void 0);\ny([\n I()\n], rl.prototype, \"keysRight\", void 0);\ny([\n I()\n], rl.prototype, \"keysLeft\", void 0);\nlr.FlyCameraKeyboardInput = rl;\nclass G_ {\n /**\n * Listen to mouse events to control the camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\n constructor() {\n this.buttons = [0, 1, 2], this.buttonsYaw = [-1, 0, 1], this.buttonsPitch = [-1, 0, 1], this.buttonsRoll = [2], this.activeButton = -1, this.angularSensibility = 1e3, this._previousPosition = null;\n }\n /**\n * Attach the mouse control to the HTML DOM element.\n * @param noPreventDefault Defines whether events caught by the controls should call preventdefault().\n */\n attachControl(e) {\n e = J.BackCompatCameraNoPreventDefault(arguments), this._noPreventDefault = e, this._observer = this.camera.getScene()._inputManager._addCameraPointerObserver((t) => {\n this._pointerInput(t);\n }, Pe.POINTERDOWN | Pe.POINTERUP | Pe.POINTERMOVE), this._rollObserver = this.camera.getScene().onBeforeRenderObservable.add(() => {\n this.camera.rollCorrect && this.camera.restoreRoll(this.camera.rollCorrect);\n });\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this._observer && (this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer), this.camera.getScene().onBeforeRenderObservable.remove(this._rollObserver), this._observer = null, this._rollObserver = null, this._previousPosition = null, this._noPreventDefault = void 0);\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name.\n */\n getClassName() {\n return \"FlyCameraMouseInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input's friendly name.\n */\n getSimpleName() {\n return \"mouse\";\n }\n // Track mouse movement, when the pointer is not locked.\n _pointerInput(e) {\n const t = e.event, s = this.camera.getEngine();\n if (!this.touchEnabled && t.pointerType === \"touch\" || e.type !== Pe.POINTERMOVE && this.buttons.indexOf(t.button) === -1)\n return;\n const r = t.target;\n if (e.type === Pe.POINTERDOWN) {\n try {\n r == null || r.setPointerCapture(t.pointerId);\n } catch {\n }\n this._previousPosition = {\n x: t.clientX,\n y: t.clientY\n }, this.activeButton = t.button, this._noPreventDefault || t.preventDefault(), s.isPointerLock && this._onMouseMove(e.event);\n } else if (e.type === Pe.POINTERUP) {\n try {\n r == null || r.releasePointerCapture(t.pointerId);\n } catch {\n }\n this.activeButton = -1, this._previousPosition = null, this._noPreventDefault || t.preventDefault();\n } else if (e.type === Pe.POINTERMOVE) {\n if (!this._previousPosition) {\n s.isPointerLock && this._onMouseMove(e.event);\n return;\n }\n const n = t.clientX - this._previousPosition.x, o = t.clientY - this._previousPosition.y;\n this._rotateCamera(n, o), this._previousPosition = {\n x: t.clientX,\n y: t.clientY\n }, this._noPreventDefault || t.preventDefault();\n }\n }\n // Track mouse movement, when pointer is locked.\n _onMouseMove(e) {\n if (!this.camera.getEngine().isPointerLock)\n return;\n const s = e.movementX, r = e.movementY;\n this._rotateCamera(s, r), this._previousPosition = null, this._noPreventDefault || e.preventDefault();\n }\n /**\n * Rotate camera by mouse offset.\n * @param offsetX\n * @param offsetY\n */\n _rotateCamera(e, t) {\n const i = this.camera, s = i._calculateHandednessMultiplier();\n e *= s;\n const r = e / this.angularSensibility, n = t / this.angularSensibility, o = se.RotationYawPitchRoll(i.rotation.y, i.rotation.x, i.rotation.z);\n let l;\n if (this.buttonsPitch.some((h) => h === this.activeButton) && (l = se.RotationAxis(zs.X, n), o.multiplyInPlace(l)), this.buttonsYaw.some((h) => h === this.activeButton)) {\n l = se.RotationAxis(zs.Y, r), o.multiplyInPlace(l);\n const h = i.bankedTurnLimit + i._trackRoll;\n if (i.bankedTurn && -h < i.rotation.z && i.rotation.z < h) {\n const c = i.bankedTurnMultiplier * -r;\n l = se.RotationAxis(zs.Z, c), o.multiplyInPlace(l);\n }\n }\n this.buttonsRoll.some((h) => h === this.activeButton) && (l = se.RotationAxis(zs.Z, -r), i._trackRoll -= r, o.multiplyInPlace(l)), o.toEulerAnglesToRef(i.rotation);\n }\n}\ny([\n I()\n], G_.prototype, \"buttons\", void 0);\ny([\n I()\n], G_.prototype, \"angularSensibility\", void 0);\nlr.FlyCameraMouseInput = G_;\nclass Js {\n constructor() {\n this.keysHeightOffsetIncr = [38], this.keysHeightOffsetDecr = [40], this.keysHeightOffsetModifierAlt = !1, this.keysHeightOffsetModifierCtrl = !1, this.keysHeightOffsetModifierShift = !1, this.keysRotationOffsetIncr = [37], this.keysRotationOffsetDecr = [39], this.keysRotationOffsetModifierAlt = !1, this.keysRotationOffsetModifierCtrl = !1, this.keysRotationOffsetModifierShift = !1, this.keysRadiusIncr = [40], this.keysRadiusDecr = [38], this.keysRadiusModifierAlt = !0, this.keysRadiusModifierCtrl = !1, this.keysRadiusModifierShift = !1, this.heightSensibility = 1, this.rotationSensibility = 1, this.radiusSensibility = 1, this._keys = new Array();\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e) {\n e = J.BackCompatCameraNoPreventDefault(arguments), !this._onCanvasBlurObserver && (this._scene = this.camera.getScene(), this._engine = this._scene.getEngine(), this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(() => {\n this._keys.length = 0;\n }), this._onKeyboardObserver = this._scene.onKeyboardObservable.add((t) => {\n const i = t.event;\n if (!i.metaKey) {\n if (t.type === Ma.KEYDOWN)\n this._ctrlPressed = i.ctrlKey, this._altPressed = i.altKey, this._shiftPressed = i.shiftKey, (this.keysHeightOffsetIncr.indexOf(i.keyCode) !== -1 || this.keysHeightOffsetDecr.indexOf(i.keyCode) !== -1 || this.keysRotationOffsetIncr.indexOf(i.keyCode) !== -1 || this.keysRotationOffsetDecr.indexOf(i.keyCode) !== -1 || this.keysRadiusIncr.indexOf(i.keyCode) !== -1 || this.keysRadiusDecr.indexOf(i.keyCode) !== -1) && (this._keys.indexOf(i.keyCode) === -1 && this._keys.push(i.keyCode), i.preventDefault && (e || i.preventDefault()));\n else if (this.keysHeightOffsetIncr.indexOf(i.keyCode) !== -1 || this.keysHeightOffsetDecr.indexOf(i.keyCode) !== -1 || this.keysRotationOffsetIncr.indexOf(i.keyCode) !== -1 || this.keysRotationOffsetDecr.indexOf(i.keyCode) !== -1 || this.keysRadiusIncr.indexOf(i.keyCode) !== -1 || this.keysRadiusDecr.indexOf(i.keyCode) !== -1) {\n const s = this._keys.indexOf(i.keyCode);\n s >= 0 && this._keys.splice(s, 1), i.preventDefault && (e || i.preventDefault());\n }\n }\n }));\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this._scene && (this._onKeyboardObserver && this._scene.onKeyboardObservable.remove(this._onKeyboardObserver), this._onCanvasBlurObserver && this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver), this._onKeyboardObserver = null, this._onCanvasBlurObserver = null), this._keys.length = 0;\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n this._onKeyboardObserver && this._keys.forEach((e) => {\n this.keysHeightOffsetIncr.indexOf(e) !== -1 && this._modifierHeightOffset() ? this.camera.heightOffset += this.heightSensibility : this.keysHeightOffsetDecr.indexOf(e) !== -1 && this._modifierHeightOffset() ? this.camera.heightOffset -= this.heightSensibility : this.keysRotationOffsetIncr.indexOf(e) !== -1 && this._modifierRotationOffset() ? (this.camera.rotationOffset += this.rotationSensibility, this.camera.rotationOffset %= 360) : this.keysRotationOffsetDecr.indexOf(e) !== -1 && this._modifierRotationOffset() ? (this.camera.rotationOffset -= this.rotationSensibility, this.camera.rotationOffset %= 360) : this.keysRadiusIncr.indexOf(e) !== -1 && this._modifierRadius() ? this.camera.radius += this.radiusSensibility : this.keysRadiusDecr.indexOf(e) !== -1 && this._modifierRadius() && (this.camera.radius -= this.radiusSensibility);\n });\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FollowCameraKeyboardMoveInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"keyboard\";\n }\n /**\n * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to\n * allow modification of the heightOffset value.\n * @returns true if modifier keys match\n */\n _modifierHeightOffset() {\n return this.keysHeightOffsetModifierAlt === this._altPressed && this.keysHeightOffsetModifierCtrl === this._ctrlPressed && this.keysHeightOffsetModifierShift === this._shiftPressed;\n }\n /**\n * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to\n * allow modification of the rotationOffset value.\n * @returns true if modifier keys match\n */\n _modifierRotationOffset() {\n return this.keysRotationOffsetModifierAlt === this._altPressed && this.keysRotationOffsetModifierCtrl === this._ctrlPressed && this.keysRotationOffsetModifierShift === this._shiftPressed;\n }\n /**\n * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to\n * allow modification of the radius value.\n * @returns true if modifier keys match\n */\n _modifierRadius() {\n return this.keysRadiusModifierAlt === this._altPressed && this.keysRadiusModifierCtrl === this._ctrlPressed && this.keysRadiusModifierShift === this._shiftPressed;\n }\n}\ny([\n I()\n], Js.prototype, \"keysHeightOffsetIncr\", void 0);\ny([\n I()\n], Js.prototype, \"keysHeightOffsetDecr\", void 0);\ny([\n I()\n], Js.prototype, \"keysHeightOffsetModifierAlt\", void 0);\ny([\n I()\n], Js.prototype, \"keysHeightOffsetModifierCtrl\", void 0);\ny([\n I()\n], Js.prototype, \"keysHeightOffsetModifierShift\", void 0);\ny([\n I()\n], Js.prototype, \"keysRotationOffsetIncr\", void 0);\ny([\n I()\n], Js.prototype, \"keysRotationOffsetDecr\", void 0);\ny([\n I()\n], Js.prototype, \"keysRotationOffsetModifierAlt\", void 0);\ny([\n I()\n], Js.prototype, \"keysRotationOffsetModifierCtrl\", void 0);\ny([\n I()\n], Js.prototype, \"keysRotationOffsetModifierShift\", void 0);\ny([\n I()\n], Js.prototype, \"keysRadiusIncr\", void 0);\ny([\n I()\n], Js.prototype, \"keysRadiusDecr\", void 0);\ny([\n I()\n], Js.prototype, \"keysRadiusModifierAlt\", void 0);\ny([\n I()\n], Js.prototype, \"keysRadiusModifierCtrl\", void 0);\ny([\n I()\n], Js.prototype, \"keysRadiusModifierShift\", void 0);\ny([\n I()\n], Js.prototype, \"heightSensibility\", void 0);\ny([\n I()\n], Js.prototype, \"rotationSensibility\", void 0);\ny([\n I()\n], Js.prototype, \"radiusSensibility\", void 0);\nlr.FollowCameraKeyboardMoveInput = Js;\nclass kl {\n constructor() {\n this.axisControlRadius = !0, this.axisControlHeight = !1, this.axisControlRotation = !1, this.wheelPrecision = 3, this.wheelDeltaPercentage = 0;\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e) {\n e = J.BackCompatCameraNoPreventDefault(arguments), this._wheel = (t) => {\n if (t.type !== Pe.POINTERWHEEL)\n return;\n const i = t.event;\n let s = 0;\n const r = Math.max(-1, Math.min(1, i.deltaY));\n this.wheelDeltaPercentage ? (+this.axisControlRadius + +this.axisControlHeight + +this.axisControlRotation && L.Warn(\"wheelDeltaPercentage only usable when mouse wheel controls ONE axis. Currently enabled: axisControlRadius: \" + this.axisControlRadius + \", axisControlHeightOffset: \" + this.axisControlHeight + \", axisControlRotationOffset: \" + this.axisControlRotation), this.axisControlRadius ? s = r * 0.01 * this.wheelDeltaPercentage * this.camera.radius : this.axisControlHeight ? s = r * 0.01 * this.wheelDeltaPercentage * this.camera.heightOffset : this.axisControlRotation && (s = r * 0.01 * this.wheelDeltaPercentage * this.camera.rotationOffset)) : s = r * this.wheelPrecision, s && (this.axisControlRadius ? this.camera.radius += s : this.axisControlHeight ? this.camera.heightOffset -= s : this.axisControlRotation && (this.camera.rotationOffset -= s)), i.preventDefault && (e || i.preventDefault());\n }, this._observer = this.camera.getScene()._inputManager._addCameraPointerObserver(this._wheel, Pe.POINTERWHEEL);\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this._observer && (this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer), this._observer = null, this._wheel = null);\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"ArcRotateCameraMouseWheelInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"mousewheel\";\n }\n}\ny([\n I()\n], kl.prototype, \"axisControlRadius\", void 0);\ny([\n I()\n], kl.prototype, \"axisControlHeight\", void 0);\ny([\n I()\n], kl.prototype, \"axisControlRotation\", void 0);\ny([\n I()\n], kl.prototype, \"wheelPrecision\", void 0);\ny([\n I()\n], kl.prototype, \"wheelDeltaPercentage\", void 0);\nlr.FollowCameraMouseWheelInput = kl;\nclass Yr extends Wx {\n constructor() {\n super(...arguments), this.angularSensibilityX = 1, this.angularSensibilityY = 1, this.pinchPrecision = 1e4, this.pinchDeltaPercentage = 0, this.axisXControlRadius = !1, this.axisXControlHeight = !1, this.axisXControlRotation = !0, this.axisYControlRadius = !1, this.axisYControlHeight = !0, this.axisYControlRotation = !1, this.axisPinchControlRadius = !0, this.axisPinchControlHeight = !1, this.axisPinchControlRotation = !1, this.warningEnable = !0, this._warningCounter = 0;\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FollowCameraPointersInput\";\n }\n onTouch(e, t, i) {\n this._warning(), this.axisXControlRotation ? this.camera.rotationOffset += t / this.angularSensibilityX : this.axisYControlRotation && (this.camera.rotationOffset += i / this.angularSensibilityX), this.axisXControlHeight ? this.camera.heightOffset += t / this.angularSensibilityY : this.axisYControlHeight && (this.camera.heightOffset += i / this.angularSensibilityY), this.axisXControlRadius ? this.camera.radius -= t / this.angularSensibilityY : this.axisYControlRadius && (this.camera.radius -= i / this.angularSensibilityY);\n }\n onMultiTouch(e, t, i, s, r, n) {\n if (i === 0 && r === null || s === 0 && n === null)\n return;\n let o = (s - i) / (this.pinchPrecision * (this.angularSensibilityX + this.angularSensibilityY) / 2);\n this.pinchDeltaPercentage ? (o *= 0.01 * this.pinchDeltaPercentage, this.axisPinchControlRotation && (this.camera.rotationOffset += o * this.camera.rotationOffset), this.axisPinchControlHeight && (this.camera.heightOffset += o * this.camera.heightOffset), this.axisPinchControlRadius && (this.camera.radius -= o * this.camera.radius)) : (this.axisPinchControlRotation && (this.camera.rotationOffset += o), this.axisPinchControlHeight && (this.camera.heightOffset += o), this.axisPinchControlRadius && (this.camera.radius -= o));\n }\n _warning() {\n if (!this.warningEnable || this._warningCounter++ % 100 !== 0)\n return;\n const e = \"It probably only makes sense to control ONE camera property with each pointer axis. Set 'warningEnable = false' if you are sure. Currently enabled: \";\n +this.axisXControlRotation + +this.axisXControlHeight + +this.axisXControlRadius <= 1 && L.Warn(e + \"axisXControlRotation: \" + this.axisXControlRotation + \", axisXControlHeight: \" + this.axisXControlHeight + \", axisXControlRadius: \" + this.axisXControlRadius), +this.axisYControlRotation + +this.axisYControlHeight + +this.axisYControlRadius <= 1 && L.Warn(e + \"axisYControlRotation: \" + this.axisYControlRotation + \", axisYControlHeight: \" + this.axisYControlHeight + \", axisYControlRadius: \" + this.axisYControlRadius), +this.axisPinchControlRotation + +this.axisPinchControlHeight + +this.axisPinchControlRadius <= 1 && L.Warn(e + \"axisPinchControlRotation: \" + this.axisPinchControlRotation + \", axisPinchControlHeight: \" + this.axisPinchControlHeight + \", axisPinchControlRadius: \" + this.axisPinchControlRadius);\n }\n}\ny([\n I()\n], Yr.prototype, \"angularSensibilityX\", void 0);\ny([\n I()\n], Yr.prototype, \"angularSensibilityY\", void 0);\ny([\n I()\n], Yr.prototype, \"pinchPrecision\", void 0);\ny([\n I()\n], Yr.prototype, \"pinchDeltaPercentage\", void 0);\ny([\n I()\n], Yr.prototype, \"axisXControlRadius\", void 0);\ny([\n I()\n], Yr.prototype, \"axisXControlHeight\", void 0);\ny([\n I()\n], Yr.prototype, \"axisXControlRotation\", void 0);\ny([\n I()\n], Yr.prototype, \"axisYControlRadius\", void 0);\ny([\n I()\n], Yr.prototype, \"axisYControlHeight\", void 0);\ny([\n I()\n], Yr.prototype, \"axisYControlRotation\", void 0);\ny([\n I()\n], Yr.prototype, \"axisPinchControlRadius\", void 0);\ny([\n I()\n], Yr.prototype, \"axisPinchControlHeight\", void 0);\ny([\n I()\n], Yr.prototype, \"axisPinchControlRotation\", void 0);\nlr.FollowCameraPointersInput = Yr;\nA_.prototype.addDeviceOrientation = function(a) {\n return this._deviceOrientationInput || (this._deviceOrientationInput = new V0(), a && (this._deviceOrientationInput.smoothFactor = a), this.add(this._deviceOrientationInput)), this;\n};\nclass V0 {\n /**\n * Can be used to detect if a device orientation sensor is available on a device\n * @param timeout amount of time in milliseconds to wait for a response from the sensor (default: infinite)\n * @returns a promise that will resolve on orientation change\n */\n static WaitForOrientationChangeAsync(e) {\n return new Promise((t, i) => {\n let s = !1;\n const r = () => {\n window.removeEventListener(\"deviceorientation\", r), s = !0, t();\n };\n e && setTimeout(() => {\n s || (window.removeEventListener(\"deviceorientation\", r), i(\"WaitForOrientationChangeAsync timed out\"));\n }, e), typeof DeviceOrientationEvent < \"u\" && typeof DeviceOrientationEvent.requestPermission == \"function\" ? DeviceOrientationEvent.requestPermission().then((n) => {\n n == \"granted\" ? window.addEventListener(\"deviceorientation\", r) : J.Warn(\"Permission not granted.\");\n }).catch((n) => {\n J.Error(n);\n }) : window.addEventListener(\"deviceorientation\", r);\n });\n }\n /**\n * Instantiates a new input\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\n constructor() {\n this._screenOrientationAngle = 0, this._screenQuaternion = new se(), this._alpha = 0, this._beta = 0, this._gamma = 0, this.smoothFactor = 0, this._onDeviceOrientationChangedObservable = new G(), this._orientationChanged = () => {\n this._screenOrientationAngle = window.orientation !== void 0 ? +window.orientation : window.screen.orientation && window.screen.orientation.angle ? window.screen.orientation.angle : 0, this._screenOrientationAngle = -J.ToRadians(this._screenOrientationAngle / 2), this._screenQuaternion.copyFromFloats(0, Math.sin(this._screenOrientationAngle), 0, Math.cos(this._screenOrientationAngle));\n }, this._deviceOrientation = (e) => {\n this.smoothFactor ? (this._alpha = e.alpha !== null ? J.SmoothAngleChange(this._alpha, e.alpha, this.smoothFactor) : 0, this._beta = e.beta !== null ? J.SmoothAngleChange(this._beta, e.beta, this.smoothFactor) : 0, this._gamma = e.gamma !== null ? J.SmoothAngleChange(this._gamma, e.gamma, this.smoothFactor) : 0) : (this._alpha = e.alpha !== null ? e.alpha : 0, this._beta = e.beta !== null ? e.beta : 0, this._gamma = e.gamma !== null ? e.gamma : 0), e.alpha !== null && this._onDeviceOrientationChangedObservable.notifyObservers();\n }, this._constantTranform = new se(-Math.sqrt(0.5), 0, 0, Math.sqrt(0.5)), this._orientationChanged();\n }\n /**\n * Define the camera controlled by the input.\n */\n get camera() {\n return this._camera;\n }\n set camera(e) {\n this._camera = e, this._camera != null && !this._camera.rotationQuaternion && (this._camera.rotationQuaternion = new se()), this._camera && this._camera.onDisposeObservable.add(() => {\n this._onDeviceOrientationChangedObservable.clear();\n });\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n */\n attachControl() {\n const e = this.camera.getScene().getEngine().getHostWindow();\n if (e) {\n const t = () => {\n e.addEventListener(\"orientationchange\", this._orientationChanged), e.addEventListener(\"deviceorientation\", this._deviceOrientation), this._orientationChanged();\n };\n typeof DeviceOrientationEvent < \"u\" && typeof DeviceOrientationEvent.requestPermission == \"function\" ? DeviceOrientationEvent.requestPermission().then((i) => {\n i === \"granted\" ? t() : J.Warn(\"Permission not granted.\");\n }).catch((i) => {\n J.Error(i);\n }) : t();\n }\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n window.removeEventListener(\"orientationchange\", this._orientationChanged), window.removeEventListener(\"deviceorientation\", this._deviceOrientation), this._alpha = 0;\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n this._alpha && (se.RotationYawPitchRollToRef(J.ToRadians(this._alpha), J.ToRadians(this._beta), -J.ToRadians(this._gamma), this.camera.rotationQuaternion), this._camera.rotationQuaternion.multiplyInPlace(this._screenQuaternion), this._camera.rotationQuaternion.multiplyInPlace(this._constantTranform), this._camera.rotationQuaternion.z *= -1, this._camera.rotationQuaternion.w *= -1);\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FreeCameraDeviceOrientationInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"deviceOrientation\";\n }\n}\nlr.FreeCameraDeviceOrientationInput = V0;\nvar zb;\n(function(a) {\n a[a.X = 0] = \"X\", a[a.Y = 1] = \"Y\", a[a.Z = 2] = \"Z\";\n})(zb || (zb = {}));\nclass We {\n static _GetDefaultOptions() {\n return {\n puckSize: 40,\n containerSize: 60,\n color: \"cyan\",\n puckImage: void 0,\n containerImage: void 0,\n position: void 0,\n alwaysVisible: !1,\n limitToContainer: !1\n };\n }\n /**\n * Creates a new virtual joystick\n * @param leftJoystick defines that the joystick is for left hand (false by default)\n * @param customizations Defines the options we want to customize the VirtualJoystick\n */\n constructor(e, t) {\n this._released = !1;\n const i = {\n ...We._GetDefaultOptions(),\n ...t\n };\n if (e ? this._leftJoystick = !0 : this._leftJoystick = !1, We._GlobalJoystickIndex++, this._axisTargetedByLeftAndRight = 0, this._axisTargetedByUpAndDown = 1, this.reverseLeftRight = !1, this.reverseUpDown = !1, this._touches = new Tg(), this.deltaPosition = g.Zero(), this._joystickSensibility = 25, this._inversedSensibility = 1 / (this._joystickSensibility / 1e3), this._onResize = () => {\n We._VJCanvasWidth = window.innerWidth, We._VJCanvasHeight = window.innerHeight, We.Canvas && (We.Canvas.width = We._VJCanvasWidth, We.Canvas.height = We._VJCanvasHeight), We._HalfWidth = We._VJCanvasWidth / 2;\n }, !We.Canvas) {\n window.addEventListener(\"resize\", this._onResize, !1), We.Canvas = document.createElement(\"canvas\"), We._VJCanvasWidth = window.innerWidth, We._VJCanvasHeight = window.innerHeight, We.Canvas.width = window.innerWidth, We.Canvas.height = window.innerHeight, We.Canvas.style.width = \"100%\", We.Canvas.style.height = \"100%\", We.Canvas.style.position = \"absolute\", We.Canvas.style.backgroundColor = \"transparent\", We.Canvas.style.top = \"0px\", We.Canvas.style.left = \"0px\", We.Canvas.style.zIndex = \"5\", We.Canvas.style.touchAction = \"none\", We.Canvas.setAttribute(\"touch-action\", \"none\");\n const s = We.Canvas.getContext(\"2d\");\n if (!s)\n throw new Error(\"Unable to create canvas for virtual joystick\");\n We._VJCanvasContext = s, We._VJCanvasContext.strokeStyle = \"#ffffff\", We._VJCanvasContext.lineWidth = 2, document.body.appendChild(We.Canvas);\n }\n We._HalfWidth = We.Canvas.width / 2, this.pressed = !1, this.limitToContainer = i.limitToContainer, this._joystickColor = i.color, this.containerSize = i.containerSize, this.puckSize = i.puckSize, i.position && this.setPosition(i.position.x, i.position.y), i.puckImage && this.setPuckImage(i.puckImage), i.containerImage && this.setContainerImage(i.containerImage), i.alwaysVisible && We._AlwaysVisibleSticks++, this.alwaysVisible = i.alwaysVisible, this._joystickPointerId = -1, this._joystickPointerPos = new Q(0, 0), this._joystickPreviousPointerPos = new Q(0, 0), this._joystickPointerStartPos = new Q(0, 0), this._deltaJoystickVector = new Q(0, 0), this._onPointerDownHandlerRef = (s) => {\n this._onPointerDown(s);\n }, this._onPointerMoveHandlerRef = (s) => {\n this._onPointerMove(s);\n }, this._onPointerUpHandlerRef = (s) => {\n this._onPointerUp(s);\n }, We.Canvas.addEventListener(\"pointerdown\", this._onPointerDownHandlerRef, !1), We.Canvas.addEventListener(\"pointermove\", this._onPointerMoveHandlerRef, !1), We.Canvas.addEventListener(\"pointerup\", this._onPointerUpHandlerRef, !1), We.Canvas.addEventListener(\"pointerout\", this._onPointerUpHandlerRef, !1), We.Canvas.addEventListener(\"contextmenu\", (s) => {\n s.preventDefault();\n }, !1), requestAnimationFrame(() => {\n this._drawVirtualJoystick();\n });\n }\n /**\n * Defines joystick sensibility (ie. the ratio between a physical move and virtual joystick position change)\n * @param newJoystickSensibility defines the new sensibility\n */\n setJoystickSensibility(e) {\n this._joystickSensibility = e, this._inversedSensibility = 1 / (this._joystickSensibility / 1e3);\n }\n _onPointerDown(e) {\n let t;\n e.preventDefault(), this._leftJoystick === !0 ? t = e.clientX < We._HalfWidth : t = e.clientX > We._HalfWidth, t && this._joystickPointerId < 0 ? (this._joystickPointerId = e.pointerId, this._joystickPosition ? (this._joystickPointerStartPos = this._joystickPosition.clone(), this._joystickPointerPos = this._joystickPosition.clone(), this._joystickPreviousPointerPos = this._joystickPosition.clone(), this._onPointerMove(e)) : (this._joystickPointerStartPos.x = e.clientX, this._joystickPointerStartPos.y = e.clientY, this._joystickPointerPos = this._joystickPointerStartPos.clone(), this._joystickPreviousPointerPos = this._joystickPointerStartPos.clone()), this._deltaJoystickVector.x = 0, this._deltaJoystickVector.y = 0, this.pressed = !0, this._touches.add(e.pointerId.toString(), e)) : We._GlobalJoystickIndex < 2 && this._action && (this._action(), this._touches.add(e.pointerId.toString(), { x: e.clientX, y: e.clientY, prevX: e.clientX, prevY: e.clientY }));\n }\n _onPointerMove(e) {\n if (this._joystickPointerId == e.pointerId) {\n if (this.limitToContainer) {\n const n = new Q(e.clientX - this._joystickPointerStartPos.x, e.clientY - this._joystickPointerStartPos.y), o = n.length();\n o > this.containerSize && n.scaleInPlace(this.containerSize / o), this._joystickPointerPos.x = this._joystickPointerStartPos.x + n.x, this._joystickPointerPos.y = this._joystickPointerStartPos.y + n.y;\n } else\n this._joystickPointerPos.x = e.clientX, this._joystickPointerPos.y = e.clientY;\n this._deltaJoystickVector = this._joystickPointerPos.clone(), this._deltaJoystickVector = this._deltaJoystickVector.subtract(this._joystickPointerStartPos), 0 < We._AlwaysVisibleSticks && (this._leftJoystick ? this._joystickPointerPos.x = Math.min(We._HalfWidth, this._joystickPointerPos.x) : this._joystickPointerPos.x = Math.max(We._HalfWidth, this._joystickPointerPos.x));\n const i = (this.reverseLeftRight ? -1 : 1) * this._deltaJoystickVector.x / this._inversedSensibility;\n switch (this._axisTargetedByLeftAndRight) {\n case 0:\n this.deltaPosition.x = Math.min(1, Math.max(-1, i));\n break;\n case 1:\n this.deltaPosition.y = Math.min(1, Math.max(-1, i));\n break;\n case 2:\n this.deltaPosition.z = Math.min(1, Math.max(-1, i));\n break;\n }\n const r = (this.reverseUpDown ? 1 : -1) * this._deltaJoystickVector.y / this._inversedSensibility;\n switch (this._axisTargetedByUpAndDown) {\n case 0:\n this.deltaPosition.x = Math.min(1, Math.max(-1, r));\n break;\n case 1:\n this.deltaPosition.y = Math.min(1, Math.max(-1, r));\n break;\n case 2:\n this.deltaPosition.z = Math.min(1, Math.max(-1, r));\n break;\n }\n } else {\n const t = this._touches.get(e.pointerId.toString());\n t && (t.x = e.clientX, t.y = e.clientY);\n }\n }\n _onPointerUp(e) {\n if (this._joystickPointerId == e.pointerId)\n this._clearPreviousDraw(), this._joystickPointerId = -1, this.pressed = !1;\n else {\n const t = this._touches.get(e.pointerId.toString());\n t && We._VJCanvasContext.clearRect(t.prevX - 44, t.prevY - 44, 88, 88);\n }\n this._deltaJoystickVector.x = 0, this._deltaJoystickVector.y = 0, this._touches.remove(e.pointerId.toString());\n }\n /**\n * Change the color of the virtual joystick\n * @param newColor a string that must be a CSS color value (like \"red\") or the hexa value (like \"#FF0000\")\n */\n setJoystickColor(e) {\n this._joystickColor = e;\n }\n /**\n * Size of the joystick's container\n */\n set containerSize(e) {\n this._joystickContainerSize = e, this._clearContainerSize = ~~(this._joystickContainerSize * 2.1), this._clearContainerSizeOffset = ~~(this._clearContainerSize / 2);\n }\n get containerSize() {\n return this._joystickContainerSize;\n }\n /**\n * Size of the joystick's puck\n */\n set puckSize(e) {\n this._joystickPuckSize = e, this._clearPuckSize = ~~(this._joystickPuckSize * 2.1), this._clearPuckSizeOffset = ~~(this._clearPuckSize / 2);\n }\n get puckSize() {\n return this._joystickPuckSize;\n }\n /**\n * Clears the set position of the joystick\n */\n clearPosition() {\n this.alwaysVisible = !1, this._joystickPosition = null;\n }\n /**\n * Defines whether or not the joystick container is always visible\n */\n set alwaysVisible(e) {\n this._alwaysVisible !== e && (e && this._joystickPosition ? (We._AlwaysVisibleSticks++, this._alwaysVisible = !0) : (We._AlwaysVisibleSticks--, this._alwaysVisible = !1));\n }\n get alwaysVisible() {\n return this._alwaysVisible;\n }\n /**\n * Sets the constant position of the Joystick container\n * @param x X axis coordinate\n * @param y Y axis coordinate\n */\n setPosition(e, t) {\n this._joystickPointerStartPos && this._clearPreviousDraw(), this._joystickPosition = new Q(e, t);\n }\n /**\n * Defines a callback to call when the joystick is touched\n * @param action defines the callback\n */\n setActionOnTouch(e) {\n this._action = e;\n }\n /**\n * Defines which axis you'd like to control for left & right\n * @param axis defines the axis to use\n */\n setAxisForLeftRight(e) {\n switch (e) {\n case 0:\n case 1:\n case 2:\n this._axisTargetedByLeftAndRight = e;\n break;\n default:\n this._axisTargetedByLeftAndRight = 0;\n break;\n }\n }\n /**\n * Defines which axis you'd like to control for up & down\n * @param axis defines the axis to use\n */\n setAxisForUpDown(e) {\n switch (e) {\n case 0:\n case 1:\n case 2:\n this._axisTargetedByUpAndDown = e;\n break;\n default:\n this._axisTargetedByUpAndDown = 1;\n break;\n }\n }\n /**\n * Clears the canvas from the previous puck / container draw\n */\n _clearPreviousDraw() {\n const e = this._joystickPosition || this._joystickPointerStartPos;\n We._VJCanvasContext.clearRect(e.x - this._clearContainerSizeOffset, e.y - this._clearContainerSizeOffset, this._clearContainerSize, this._clearContainerSize), We._VJCanvasContext.clearRect(this._joystickPreviousPointerPos.x - this._clearPuckSizeOffset - 1, this._joystickPreviousPointerPos.y - this._clearPuckSizeOffset - 1, this._clearPuckSize + 2, this._clearPuckSize + 2);\n }\n /**\n * Loads `urlPath` to be used for the container's image\n * @param urlPath defines the urlPath of an image to use\n */\n setContainerImage(e) {\n const t = new Image();\n t.src = e, t.onload = () => this._containerImage = t;\n }\n /**\n * Loads `urlPath` to be used for the puck's image\n * @param urlPath defines the urlPath of an image to use\n */\n setPuckImage(e) {\n const t = new Image();\n t.src = e, t.onload = () => this._puckImage = t;\n }\n /**\n * Draws the Virtual Joystick's container\n */\n _drawContainer() {\n const e = this._joystickPosition || this._joystickPointerStartPos;\n this._clearPreviousDraw(), this._containerImage ? We._VJCanvasContext.drawImage(this._containerImage, e.x - this.containerSize, e.y - this.containerSize, this.containerSize * 2, this.containerSize * 2) : (We._VJCanvasContext.beginPath(), We._VJCanvasContext.strokeStyle = this._joystickColor, We._VJCanvasContext.lineWidth = 2, We._VJCanvasContext.arc(e.x, e.y, this.containerSize, 0, Math.PI * 2, !0), We._VJCanvasContext.stroke(), We._VJCanvasContext.closePath(), We._VJCanvasContext.beginPath(), We._VJCanvasContext.lineWidth = 6, We._VJCanvasContext.strokeStyle = this._joystickColor, We._VJCanvasContext.arc(e.x, e.y, this.puckSize, 0, Math.PI * 2, !0), We._VJCanvasContext.stroke(), We._VJCanvasContext.closePath());\n }\n /**\n * Draws the Virtual Joystick's puck\n */\n _drawPuck() {\n this._puckImage ? We._VJCanvasContext.drawImage(this._puckImage, this._joystickPointerPos.x - this.puckSize, this._joystickPointerPos.y - this.puckSize, this.puckSize * 2, this.puckSize * 2) : (We._VJCanvasContext.beginPath(), We._VJCanvasContext.strokeStyle = this._joystickColor, We._VJCanvasContext.lineWidth = 2, We._VJCanvasContext.arc(this._joystickPointerPos.x, this._joystickPointerPos.y, this.puckSize, 0, Math.PI * 2, !0), We._VJCanvasContext.stroke(), We._VJCanvasContext.closePath());\n }\n _drawVirtualJoystick() {\n this._released || (this.alwaysVisible && this._drawContainer(), this.pressed && this._touches.forEach((e, t) => {\n t.pointerId === this._joystickPointerId ? (this.alwaysVisible || this._drawContainer(), this._drawPuck(), this._joystickPreviousPointerPos = this._joystickPointerPos.clone()) : (We._VJCanvasContext.clearRect(t.prevX - 44, t.prevY - 44, 88, 88), We._VJCanvasContext.beginPath(), We._VJCanvasContext.fillStyle = \"white\", We._VJCanvasContext.beginPath(), We._VJCanvasContext.strokeStyle = \"red\", We._VJCanvasContext.lineWidth = 6, We._VJCanvasContext.arc(t.x, t.y, 40, 0, Math.PI * 2, !0), We._VJCanvasContext.stroke(), We._VJCanvasContext.closePath(), t.prevX = t.x, t.prevY = t.y);\n }), requestAnimationFrame(() => {\n this._drawVirtualJoystick();\n }));\n }\n /**\n * Release internal HTML canvas\n */\n releaseCanvas() {\n We.Canvas && (We.Canvas.removeEventListener(\"pointerdown\", this._onPointerDownHandlerRef), We.Canvas.removeEventListener(\"pointermove\", this._onPointerMoveHandlerRef), We.Canvas.removeEventListener(\"pointerup\", this._onPointerUpHandlerRef), We.Canvas.removeEventListener(\"pointerout\", this._onPointerUpHandlerRef), window.removeEventListener(\"resize\", this._onResize), document.body.removeChild(We.Canvas), We.Canvas = null), this._released = !0;\n }\n}\nWe._GlobalJoystickIndex = 0;\nWe._AlwaysVisibleSticks = 0;\nA_.prototype.addVirtualJoystick = function() {\n return this.add(new U0()), this;\n};\nclass U0 {\n /**\n * Gets the left stick of the virtual joystick.\n * @returns The virtual Joystick\n */\n getLeftJoystick() {\n return this._leftjoystick;\n }\n /**\n * Gets the right stick of the virtual joystick.\n * @returns The virtual Joystick\n */\n getRightJoystick() {\n return this._rightjoystick;\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n if (this._leftjoystick) {\n const e = this.camera, t = e._computeLocalCameraSpeed() * 50, i = O.RotationYawPitchRoll(e.rotation.y, e.rotation.x, 0), s = g.TransformCoordinates(new g(this._leftjoystick.deltaPosition.x * t, this._leftjoystick.deltaPosition.y * t, this._leftjoystick.deltaPosition.z * t), i);\n e.cameraDirection = e.cameraDirection.add(s), e.cameraRotation = e.cameraRotation.addVector3(this._rightjoystick.deltaPosition), this._leftjoystick.pressed || (this._leftjoystick.deltaPosition = this._leftjoystick.deltaPosition.scale(0.9)), this._rightjoystick.pressed || (this._rightjoystick.deltaPosition = this._rightjoystick.deltaPosition.scale(0.9));\n }\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n */\n attachControl() {\n this._leftjoystick = new We(!0), this._leftjoystick.setAxisForUpDown(\n 2\n /* JoystickAxis.Z */\n ), this._leftjoystick.setAxisForLeftRight(\n 0\n /* JoystickAxis.X */\n ), this._leftjoystick.setJoystickSensibility(0.15), this._rightjoystick = new We(!1), this._rightjoystick.setAxisForUpDown(\n 0\n /* JoystickAxis.X */\n ), this._rightjoystick.setAxisForLeftRight(\n 1\n /* JoystickAxis.Y */\n ), this._rightjoystick.reverseUpDown = !0, this._rightjoystick.setJoystickSensibility(0.05), this._rightjoystick.setJoystickColor(\"yellow\");\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this._leftjoystick.releaseCanvas(), this._rightjoystick.releaseCanvas();\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FreeCameraVirtualJoystickInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"virtualJoystick\";\n }\n}\nlr.FreeCameraVirtualJoystickInput = U0;\nLt.AddNodeConstructor(\"DeviceOrientationCamera\", (a, e) => () => new fv(a, g.Zero(), e));\nclass fv extends cn {\n /**\n * Creates a new device orientation camera\n * @param name The name of the camera\n * @param position The start position camera\n * @param scene The scene the camera belongs to\n */\n constructor(e, t, i) {\n super(e, t, i), this._tmpDragQuaternion = new se(), this._disablePointerInputWhenUsingDeviceOrientation = !0, this._dragFactor = 0, this._quaternionCache = new se(), this.inputs.addDeviceOrientation(), this.inputs._deviceOrientationInput && this.inputs._deviceOrientationInput._onDeviceOrientationChangedObservable.addOnce(() => {\n this._disablePointerInputWhenUsingDeviceOrientation && this.inputs._mouseInput && (this.inputs._mouseInput._allowCameraRotation = !1, this.inputs._mouseInput.onPointerMovedObservable.add((s) => {\n this._dragFactor != 0 && (this._initialQuaternion || (this._initialQuaternion = new se()), se.FromEulerAnglesToRef(0, s.offsetX * this._dragFactor, 0, this._tmpDragQuaternion), this._initialQuaternion.multiplyToRef(this._tmpDragQuaternion, this._initialQuaternion));\n }));\n });\n }\n /**\n * Gets or sets a boolean indicating that pointer input must be disabled on first orientation sensor update (Default: true)\n */\n get disablePointerInputWhenUsingDeviceOrientation() {\n return this._disablePointerInputWhenUsingDeviceOrientation;\n }\n set disablePointerInputWhenUsingDeviceOrientation(e) {\n this._disablePointerInputWhenUsingDeviceOrientation = e;\n }\n /**\n * Enabled turning on the y axis when the orientation sensor is active\n * @param dragFactor the factor that controls the turn speed (default: 1/300)\n */\n enableHorizontalDragging(e = 1 / 300) {\n this._dragFactor = e;\n }\n /**\n * Gets the current instance class name (\"DeviceOrientationCamera\").\n * This helps avoiding instanceof at run time.\n * @returns the class name\n */\n getClassName() {\n return \"DeviceOrientationCamera\";\n }\n /**\n * @internal\n * Checks and applies the current values of the inputs to the camera. (Internal use only)\n */\n _checkInputs() {\n super._checkInputs(), this._quaternionCache.copyFrom(this.rotationQuaternion), this._initialQuaternion && this._initialQuaternion.multiplyToRef(this.rotationQuaternion, this.rotationQuaternion);\n }\n /**\n * Reset the camera to its default orientation on the specified axis only.\n * @param axis The axis to reset\n */\n resetToCurrentRotation(e = zs.Y) {\n this.rotationQuaternion && (this._initialQuaternion || (this._initialQuaternion = new se()), this._initialQuaternion.copyFrom(this._quaternionCache || this.rotationQuaternion), [\"x\", \"y\", \"z\"].forEach((t) => {\n e[t] ? this._initialQuaternion[t] *= -1 : this._initialQuaternion[t] = 0;\n }), this._initialQuaternion.normalize(), this._initialQuaternion.multiplyToRef(this.rotationQuaternion, this.rotationQuaternion));\n }\n}\nclass aL extends S_ {\n /**\n * Instantiates a new FlyCameraInputsManager.\n * @param camera Defines the camera the inputs belong to.\n */\n constructor(e) {\n super(e);\n }\n /**\n * Add keyboard input support to the input manager.\n * @returns the new FlyCameraKeyboardMoveInput().\n */\n addKeyboard() {\n return this.add(new rl()), this;\n }\n /**\n * Add mouse input support to the input manager.\n * @returns the new FlyCameraMouseInput().\n */\n addMouse() {\n return this.add(new G_()), this;\n }\n}\nclass Ef extends $i {\n /**\n * Gets the input sensibility for mouse input.\n * Higher values reduce sensitivity.\n */\n get angularSensibility() {\n const e = this.inputs.attached.mouse;\n return e ? e.angularSensibility : 0;\n }\n /**\n * Sets the input sensibility for a mouse input.\n * Higher values reduce sensitivity.\n */\n set angularSensibility(e) {\n const t = this.inputs.attached.mouse;\n t && (t.angularSensibility = e);\n }\n /**\n * Get the keys for camera movement forward.\n */\n get keysForward() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysForward : [];\n }\n /**\n * Set the keys for camera movement forward.\n */\n set keysForward(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysForward = e);\n }\n /**\n * Get the keys for camera movement backward.\n */\n get keysBackward() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysBackward : [];\n }\n set keysBackward(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysBackward = e);\n }\n /**\n * Get the keys for camera movement up.\n */\n get keysUp() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysUp : [];\n }\n /**\n * Set the keys for camera movement up.\n */\n set keysUp(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysUp = e);\n }\n /**\n * Get the keys for camera movement down.\n */\n get keysDown() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysDown : [];\n }\n /**\n * Set the keys for camera movement down.\n */\n set keysDown(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysDown = e);\n }\n /**\n * Get the keys for camera movement left.\n */\n get keysLeft() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysLeft : [];\n }\n /**\n * Set the keys for camera movement left.\n */\n set keysLeft(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysLeft = e);\n }\n /**\n * Set the keys for camera movement right.\n */\n get keysRight() {\n const e = this.inputs.attached.keyboard;\n return e ? e.keysRight : [];\n }\n /**\n * Set the keys for camera movement right.\n */\n set keysRight(e) {\n const t = this.inputs.attached.keyboard;\n t && (t.keysRight = e);\n }\n /**\n * Instantiates a FlyCamera.\n * This is a flying camera, designed for 3D movement and rotation in all directions,\n * such as in a 3D Space Shooter or a Flight Simulator.\n * @param name Define the name of the camera in the scene.\n * @param position Define the starting position of the camera in the scene.\n * @param scene Define the scene the camera belongs to.\n * @param setActiveOnSceneIfNoneActive Defines whether the camera should be marked as active, if no other camera has been defined as active.\n */\n constructor(e, t, i, s = !0) {\n super(e, t, i, s), this.ellipsoid = new g(1, 1, 1), this.ellipsoidOffset = new g(0, 0, 0), this.checkCollisions = !1, this.applyGravity = !1, this.cameraDirection = g.Zero(), this._trackRoll = 0, this.rollCorrect = 100, this.bankedTurn = !1, this.bankedTurnLimit = Math.PI / 2, this.bankedTurnMultiplier = 1, this._needMoveForGravity = !1, this._oldPosition = g.Zero(), this._diffPosition = g.Zero(), this._newPosition = g.Zero(), this._collisionMask = -1, this._onCollisionPositionChange = (r, n, o = null) => {\n ((h) => {\n this._newPosition.copyFrom(h), this._newPosition.subtractToRef(this._oldPosition, this._diffPosition), this._diffPosition.length() > ee.CollisionsEpsilon && (this.position.addInPlace(this._diffPosition), this.onCollide && o && this.onCollide(o));\n })(n);\n }, this.inputs = new aL(this), this.inputs.addKeyboard().addMouse();\n }\n /**\n * Attached controls to the current camera.\n * @param ignored defines an ignored parameter kept for backward compatibility.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e, t) {\n t = J.BackCompatCameraNoPreventDefault(arguments), this.inputs.attachElement(t);\n }\n /**\n * Detach a control from the HTML DOM element.\n * The camera will stop reacting to that input.\n */\n detachControl() {\n this.inputs.detachElement(), this.cameraDirection = new g(0, 0, 0);\n }\n /**\n * Get the mask that the camera ignores in collision events.\n */\n get collisionMask() {\n return this._collisionMask;\n }\n /**\n * Set the mask that the camera ignores in collision events.\n */\n set collisionMask(e) {\n this._collisionMask = isNaN(e) ? -1 : e;\n }\n /**\n * @internal\n */\n _collideWithWorld(e) {\n let t;\n this.parent ? t = g.TransformCoordinates(this.position, this.parent.getWorldMatrix()) : t = this.position, t.subtractFromFloatsToRef(0, this.ellipsoid.y, 0, this._oldPosition), this._oldPosition.addInPlace(this.ellipsoidOffset);\n const i = this.getScene().collisionCoordinator;\n this._collider || (this._collider = i.createCollider()), this._collider._radius = this.ellipsoid, this._collider.collisionMask = this._collisionMask;\n let s = e;\n this.applyGravity && (s = e.add(this.getScene().gravity)), i.getNewPosition(this._oldPosition, s, this._collider, 3, null, this._onCollisionPositionChange, this.uniqueId);\n }\n /** @internal */\n _checkInputs() {\n this._localDirection || (this._localDirection = g.Zero(), this._transformedDirection = g.Zero()), this.inputs.checkInputs(), super._checkInputs();\n }\n /**\n * Enable movement without a user input. This allows gravity to always be applied.\n */\n set needMoveForGravity(e) {\n this._needMoveForGravity = e;\n }\n /**\n * When true, gravity is applied whether there is user input or not.\n */\n get needMoveForGravity() {\n return this._needMoveForGravity;\n }\n /** @internal */\n _decideIfNeedsToMove() {\n return this._needMoveForGravity || Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0;\n }\n /** @internal */\n _updatePosition() {\n this.checkCollisions && this.getScene().collisionsEnabled ? this._collideWithWorld(this.cameraDirection) : super._updatePosition();\n }\n /**\n * Restore the Roll to its target value at the rate specified.\n * @param rate - Higher means slower restoring.\n * @internal\n */\n restoreRoll(e) {\n const t = this._trackRoll, i = this.rotation.z, s = t - i, r = 1e-3;\n Math.abs(s) >= r && (this.rotation.z += s / e, Math.abs(t - this.rotation.z) <= r && (this.rotation.z = t));\n }\n /**\n * Destroy the camera and release the current resources held by it.\n */\n dispose() {\n this.inputs.clear(), super.dispose();\n }\n /**\n * Get the current object class name.\n * @returns the class name.\n */\n getClassName() {\n return \"FlyCamera\";\n }\n}\ny([\n Zs()\n], Ef.prototype, \"ellipsoid\", void 0);\ny([\n Zs()\n], Ef.prototype, \"ellipsoidOffset\", void 0);\ny([\n I()\n], Ef.prototype, \"checkCollisions\", void 0);\ny([\n I()\n], Ef.prototype, \"applyGravity\", void 0);\nU(\"BABYLON.FlyCamera\", Ef);\nclass oL extends S_ {\n /**\n * Instantiates a new FollowCameraInputsManager.\n * @param camera Defines the camera the inputs belong to\n */\n constructor(e) {\n super(e);\n }\n /**\n * Add keyboard input support to the input manager.\n * @returns the current input manager\n */\n addKeyboard() {\n return this.add(new Js()), this;\n }\n /**\n * Add mouse wheel input support to the input manager.\n * @returns the current input manager\n */\n addMouseWheel() {\n return this.add(new kl()), this;\n }\n /**\n * Add pointers input support to the input manager.\n * @returns the current input manager\n */\n addPointers() {\n return this.add(new Yr()), this;\n }\n /**\n * Add orientation input support to the input manager.\n * @returns the current input manager\n */\n addVRDeviceOrientation() {\n return L.Warn(\"DeviceOrientation support not yet implemented for FollowCamera.\"), this;\n }\n}\nLt.AddNodeConstructor(\"FollowCamera\", (a, e) => () => new dn(a, g.Zero(), e));\nLt.AddNodeConstructor(\"ArcFollowCamera\", (a, e) => () => new k0(a, 0, 0, 1, null, e));\nclass dn extends $i {\n /**\n * Instantiates the follow camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#followcamera\n * @param name Define the name of the camera in the scene\n * @param position Define the position of the camera\n * @param scene Define the scene the camera belong to\n * @param lockedTarget Define the target of the camera\n */\n constructor(e, t, i, s = null) {\n super(e, t, i), this.radius = 12, this.lowerRadiusLimit = null, this.upperRadiusLimit = null, this.rotationOffset = 0, this.lowerRotationOffsetLimit = null, this.upperRotationOffsetLimit = null, this.heightOffset = 4, this.lowerHeightOffsetLimit = null, this.upperHeightOffsetLimit = null, this.cameraAcceleration = 0.05, this.maxCameraSpeed = 20, this.lockedTarget = s, this.inputs = new oL(this), this.inputs.addKeyboard().addMouseWheel().addPointers();\n }\n _follow(e) {\n if (!e)\n return;\n const t = w.Matrix[0];\n e.absoluteRotationQuaternion.toRotationMatrix(t);\n const i = Math.atan2(t.m[8], t.m[10]), s = J.ToRadians(this.rotationOffset) + i, r = e.getAbsolutePosition(), n = r.x + Math.sin(s) * this.radius, o = r.z + Math.cos(s) * this.radius, l = n - this.position.x, h = r.y + this.heightOffset - this.position.y, c = o - this.position.z;\n let u = l * this.cameraAcceleration * 2, d = h * this.cameraAcceleration, f = c * this.cameraAcceleration * 2;\n (u > this.maxCameraSpeed || u < -this.maxCameraSpeed) && (u = u < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed), (d > this.maxCameraSpeed || d < -this.maxCameraSpeed) && (d = d < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed), (f > this.maxCameraSpeed || f < -this.maxCameraSpeed) && (f = f < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed), this.position = new g(this.position.x + u, this.position.y + d, this.position.z + f), this.setTarget(r);\n }\n /**\n * Attached controls to the current camera.\n * @param ignored defines an ignored parameter kept for backward compatibility.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(e, t) {\n t = J.BackCompatCameraNoPreventDefault(arguments), this.inputs.attachElement(t), this._reset = () => {\n };\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this.inputs.detachElement(), this._reset && this._reset();\n }\n /** @internal */\n _checkInputs() {\n this.inputs.checkInputs(), this._checkLimits(), super._checkInputs(), this.lockedTarget && this._follow(this.lockedTarget);\n }\n _checkLimits() {\n this.lowerRadiusLimit !== null && this.radius < this.lowerRadiusLimit && (this.radius = this.lowerRadiusLimit), this.upperRadiusLimit !== null && this.radius > this.upperRadiusLimit && (this.radius = this.upperRadiusLimit), this.lowerHeightOffsetLimit !== null && this.heightOffset < this.lowerHeightOffsetLimit && (this.heightOffset = this.lowerHeightOffsetLimit), this.upperHeightOffsetLimit !== null && this.heightOffset > this.upperHeightOffsetLimit && (this.heightOffset = this.upperHeightOffsetLimit), this.lowerRotationOffsetLimit !== null && this.rotationOffset < this.lowerRotationOffsetLimit && (this.rotationOffset = this.lowerRotationOffsetLimit), this.upperRotationOffsetLimit !== null && this.rotationOffset > this.upperRotationOffsetLimit && (this.rotationOffset = this.upperRotationOffsetLimit);\n }\n /**\n * Gets the camera class name.\n * @returns the class name\n */\n getClassName() {\n return \"FollowCamera\";\n }\n}\ny([\n I()\n], dn.prototype, \"radius\", void 0);\ny([\n I()\n], dn.prototype, \"lowerRadiusLimit\", void 0);\ny([\n I()\n], dn.prototype, \"upperRadiusLimit\", void 0);\ny([\n I()\n], dn.prototype, \"rotationOffset\", void 0);\ny([\n I()\n], dn.prototype, \"lowerRotationOffsetLimit\", void 0);\ny([\n I()\n], dn.prototype, \"upperRotationOffsetLimit\", void 0);\ny([\n I()\n], dn.prototype, \"heightOffset\", void 0);\ny([\n I()\n], dn.prototype, \"lowerHeightOffsetLimit\", void 0);\ny([\n I()\n], dn.prototype, \"upperHeightOffsetLimit\", void 0);\ny([\n I()\n], dn.prototype, \"cameraAcceleration\", void 0);\ny([\n I()\n], dn.prototype, \"maxCameraSpeed\", void 0);\ny([\n af(\"lockedTargetId\")\n], dn.prototype, \"lockedTarget\", void 0);\nclass k0 extends $i {\n /**\n * Instantiates a new ArcFollowCamera\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#followcamera\n * @param name Define the name of the camera\n * @param alpha Define the rotation angle of the camera around the longitudinal axis\n * @param beta Define the rotation angle of the camera around the elevation axis\n * @param radius Define the radius of the camera from its target point\n * @param target Define the target of the camera\n * @param scene Define the scene the camera belongs to\n */\n constructor(e, t, i, s, r, n) {\n super(e, g.Zero(), n), this.alpha = t, this.beta = i, this.radius = s, this._cartesianCoordinates = g.Zero(), this.setMeshTarget(r);\n }\n /**\n * Sets the mesh to follow with this camera.\n * @param target the target to follow\n */\n setMeshTarget(e) {\n this._meshTarget = e, this._follow();\n }\n _follow() {\n if (!this._meshTarget)\n return;\n this._cartesianCoordinates.x = this.radius * Math.cos(this.alpha) * Math.cos(this.beta), this._cartesianCoordinates.y = this.radius * Math.sin(this.beta), this._cartesianCoordinates.z = this.radius * Math.sin(this.alpha) * Math.cos(this.beta);\n const e = this._meshTarget.getAbsolutePosition();\n this.position = e.add(this._cartesianCoordinates), this.setTarget(e);\n }\n /** @internal */\n _checkInputs() {\n super._checkInputs(), this._follow();\n }\n /**\n * Returns the class name of the object.\n * It is mostly used internally for serialization purposes.\n * @returns the class name\n */\n getClassName() {\n return \"ArcFollowCamera\";\n }\n}\nU(\"BABYLON.FollowCamera\", dn);\nU(\"BABYLON.ArcFollowCamera\", k0);\nLt.AddNodeConstructor(\"GamepadCamera\", (a, e) => () => new pv(a, g.Zero(), e));\nclass pv extends Tc {\n /**\n * Instantiates a new Gamepad Camera\n * This represents a FPS type of camera. This is only here for back compat purpose.\n * Please use the UniversalCamera instead as both are identical.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#universal-camera\n * @param name Define the name of the camera in the scene\n * @param position Define the start position of the camera in the scene\n * @param scene Define the scene the camera belongs to\n */\n constructor(e, t, i) {\n super(e, t, i);\n }\n /**\n * Gets the current object class name.\n * @returns the class name\n */\n getClassName() {\n return \"GamepadCamera\";\n }\n}\nconst lL = \"anaglyphPixelShader\", hL = `varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D leftSampler;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{vec4 leftFrag=texture2D(leftSampler,vUV);leftFrag=vec4(1.0,leftFrag.g,leftFrag.b,1.0);vec4 rightFrag=texture2D(textureSampler,vUV);rightFrag=vec4(rightFrag.r,1.0,1.0,1.0);gl_FragColor=vec4(rightFrag.rgb*leftFrag.rgb,1.0);}`;\nz.ShadersStore[lL] = hL;\nclass G0 extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"AnaglyphPostProcess\" string\n */\n getClassName() {\n return \"AnaglyphPostProcess\";\n }\n /**\n * Creates a new AnaglyphPostProcess\n * @param name defines postprocess name\n * @param options defines creation options or target ratio scale\n * @param rigCameras defines cameras using this postprocess\n * @param samplingMode defines required sampling mode (BABYLON.Texture.NEAREST_SAMPLINGMODE by default)\n * @param engine defines hosting engine\n * @param reusable defines if the postprocess will be reused multiple times per frame\n */\n constructor(e, t, i, s, r, n) {\n super(e, \"anaglyph\", null, [\"leftSampler\"], t, i[1], s, r, n), this._passedProcess = i[0]._rigPostProcess, this.onApplyObservable.add((o) => {\n o.setTextureFromPostProcess(\"leftSampler\", this._passedProcess);\n });\n }\n}\nU(\"BABYLON.AnaglyphPostProcess\", G0);\nfunction z_(a) {\n a._rigCameras[0]._rigPostProcess = new ra(a.name + \"_passthru\", 1, a._rigCameras[0]), a._rigCameras[1]._rigPostProcess = new G0(a.name + \"_anaglyph\", 1, a._rigCameras);\n}\nLt.AddNodeConstructor(\"AnaglyphArcRotateCamera\", (a, e, t) => () => new cL(a, 0, 0, 1, g.Zero(), t.interaxial_distance, e));\nclass cL extends ri {\n /**\n * Creates a new AnaglyphArcRotateCamera\n * @param name defines camera name\n * @param alpha defines alpha angle (in radians)\n * @param beta defines beta angle (in radians)\n * @param radius defines radius\n * @param target defines camera target\n * @param interaxialDistance defines distance between each color axis\n * @param scene defines the hosting scene\n */\n constructor(e, t, i, s, r, n, o) {\n super(e, t, i, s, r, o), this._setRigMode = () => z_(this), this.interaxialDistance = n, this.setCameraRigMode(Fe.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: n });\n }\n /**\n * Gets camera class name\n * @returns AnaglyphArcRotateCamera\n */\n getClassName() {\n return \"AnaglyphArcRotateCamera\";\n }\n}\nLt.AddNodeConstructor(\"AnaglyphFreeCamera\", (a, e, t) => () => new uL(a, g.Zero(), t.interaxial_distance, e));\nclass uL extends cn {\n /**\n * Creates a new AnaglyphFreeCamera\n * @param name defines camera name\n * @param position defines initial position\n * @param interaxialDistance defines distance between each color axis\n * @param scene defines the hosting scene\n */\n constructor(e, t, i, s) {\n super(e, t, s), this._setRigMode = () => z_(this), this.interaxialDistance = i, this.setCameraRigMode(Fe.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: i });\n }\n /**\n * Gets camera class name\n * @returns AnaglyphFreeCamera\n */\n getClassName() {\n return \"AnaglyphFreeCamera\";\n }\n}\nLt.AddNodeConstructor(\"AnaglyphGamepadCamera\", (a, e, t) => () => new dL(a, g.Zero(), t.interaxial_distance, e));\nclass dL extends pv {\n /**\n * Creates a new AnaglyphGamepadCamera\n * @param name defines camera name\n * @param position defines initial position\n * @param interaxialDistance defines distance between each color axis\n * @param scene defines the hosting scene\n */\n constructor(e, t, i, s) {\n super(e, t, s), this._setRigMode = () => z_(this), this.interaxialDistance = i, this.setCameraRigMode(Fe.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: i });\n }\n /**\n * Gets camera class name\n * @returns AnaglyphGamepadCamera\n */\n getClassName() {\n return \"AnaglyphGamepadCamera\";\n }\n}\nLt.AddNodeConstructor(\"AnaglyphUniversalCamera\", (a, e, t) => () => new fL(a, g.Zero(), t.interaxial_distance, e));\nclass fL extends Tc {\n /**\n * Creates a new AnaglyphUniversalCamera\n * @param name defines camera name\n * @param position defines initial position\n * @param interaxialDistance defines distance between each color axis\n * @param scene defines the hosting scene\n */\n constructor(e, t, i, s) {\n super(e, t, s), this._setRigMode = () => z_(this), this.interaxialDistance = i, this.setCameraRigMode(Fe.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: i });\n }\n /**\n * Gets camera class name\n * @returns AnaglyphUniversalCamera\n */\n getClassName() {\n return \"AnaglyphUniversalCamera\";\n }\n}\nconst pL = \"stereoscopicInterlacePixelShader\", _L = `const vec3 TWO=vec3(2.0,2.0,2.0);varying vec2 vUV;uniform sampler2D camASampler;uniform sampler2D textureSampler;uniform vec2 stepSize;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{bool useCamA;bool useCamB;vec2 texCoord1;vec2 texCoord2;vec3 frag1;vec3 frag2;\n#ifdef IS_STEREOSCOPIC_HORIZ\nuseCamB=vUV.x>0.5;useCamA=!useCamB;texCoord1=vec2(useCamB ? (vUV.x-0.5)*2.0 : vUV.x*2.0,vUV.y);texCoord2=vec2(texCoord1.x+stepSize.x,vUV.y);\n#else\n#ifdef IS_STEREOSCOPIC_INTERLACED\nfloat rowNum=floor(vUV.y/stepSize.y);useCamA=mod(rowNum,2.0)==1.0;useCamB=mod(rowNum,2.0)==0.0;texCoord1=vec2(vUV.x,vUV.y);texCoord2=vec2(vUV.x,vUV.y);\n#else\nuseCamB=vUV.y>0.5;useCamA=!useCamB;texCoord1=vec2(vUV.x,useCamB ? (vUV.y-0.5)*2.0 : vUV.y*2.0);texCoord2=vec2(vUV.x,texCoord1.y+stepSize.y);\n#endif\n#endif\nif (useCamB){frag1=texture2D(textureSampler,texCoord1).rgb;frag2=texture2D(textureSampler,texCoord2).rgb;}else if (useCamA){frag1=texture2D(camASampler ,texCoord1).rgb;frag2=texture2D(camASampler ,texCoord2).rgb;}else {discard;}\ngl_FragColor=vec4((frag1+frag2)/TWO,1.0);}\n`;\nz.ShadersStore[pL] = _L;\nclass mL extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"StereoscopicInterlacePostProcessI\" string\n */\n getClassName() {\n return \"StereoscopicInterlacePostProcessI\";\n }\n /**\n * Initializes a StereoscopicInterlacePostProcessI\n * @param name The name of the effect.\n * @param rigCameras The rig cameras to be applied to the post process\n * @param isStereoscopicHoriz If the rendered results are horizontal or vertical\n * @param isStereoscopicInterlaced If the rendered results are alternate line interlaced\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n */\n constructor(e, t, i, s, r, n, o) {\n super(e, \"stereoscopicInterlace\", [\"stepSize\"], [\"camASampler\"], 1, t[1], r, n, o, s ? \"#define IS_STEREOSCOPIC_INTERLACED 1\" : i ? \"#define IS_STEREOSCOPIC_HORIZ 1\" : void 0), this._passedProcess = t[0]._rigPostProcess, this._stepSize = new Q(1 / this.width, 1 / this.height), this.onSizeChangedObservable.add(() => {\n this._stepSize = new Q(1 / this.width, 1 / this.height);\n }), this.onApplyObservable.add((l) => {\n l.setTextureFromPostProcess(\"camASampler\", this._passedProcess), l.setFloat2(\"stepSize\", this._stepSize.x, this._stepSize.y);\n });\n }\n}\nclass RK extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"StereoscopicInterlacePostProcess\" string\n */\n getClassName() {\n return \"StereoscopicInterlacePostProcess\";\n }\n /**\n * Initializes a StereoscopicInterlacePostProcess\n * @param name The name of the effect.\n * @param rigCameras The rig cameras to be applied to the post process\n * @param isStereoscopicHoriz If the rendered results are horizontal or vertical\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n */\n constructor(e, t, i, s, r, n) {\n super(e, \"stereoscopicInterlace\", [\"stepSize\"], [\"camASampler\"], 1, t[1], s, r, n, i ? \"#define IS_STEREOSCOPIC_HORIZ 1\" : void 0), this._passedProcess = t[0]._rigPostProcess, this._stepSize = new Q(1 / this.width, 1 / this.height), this.onSizeChangedObservable.add(() => {\n this._stepSize = new Q(1 / this.width, 1 / this.height);\n }), this.onApplyObservable.add((o) => {\n o.setTextureFromPostProcess(\"camASampler\", this._passedProcess), o.setFloat2(\"stepSize\", this._stepSize.x, this._stepSize.y);\n });\n }\n}\nfunction W_(a) {\n const e = a.cameraRigMode === Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL || a.cameraRigMode === Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED, t = a.cameraRigMode === Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED;\n a.cameraRigMode === Fe.RIG_MODE_STEREOSCOPIC_INTERLACED ? (a._rigCameras[0]._rigPostProcess = new ra(a.name + \"_passthru\", 1, a._rigCameras[0]), a._rigCameras[1]._rigPostProcess = new mL(a.name + \"_stereoInterlace\", a._rigCameras, !1, !0)) : (a._rigCameras[t ? 1 : 0].viewport = new xr(0, 0, e ? 0.5 : 1, e ? 1 : 0.5), a._rigCameras[t ? 0 : 1].viewport = new xr(e ? 0.5 : 0, e ? 0 : 0.5, e ? 0.5 : 1, e ? 1 : 0.5));\n}\nLt.AddNodeConstructor(\"StereoscopicArcRotateCamera\", (a, e, t) => () => new gL(a, 0, 0, 1, g.Zero(), t.interaxial_distance, t.isStereoscopicSideBySide, e));\nclass gL extends ri {\n /**\n * Creates a new StereoscopicArcRotateCamera\n * @param name defines camera name\n * @param alpha defines alpha angle (in radians)\n * @param beta defines beta angle (in radians)\n * @param radius defines radius\n * @param target defines camera target\n * @param interaxialDistance defines distance between each color axis\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\n * @param scene defines the hosting scene\n */\n constructor(e, t, i, s, r, n, o, l) {\n super(e, t, i, s, r, l), this._setRigMode = () => W_(this), this.interaxialDistance = n, this.isStereoscopicSideBySide = o, this.setCameraRigMode(o ? Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Fe.RIG_MODE_STEREOSCOPIC_OVERUNDER, {\n interaxialDistance: n\n });\n }\n /**\n * Gets camera class name\n * @returns StereoscopicArcRotateCamera\n */\n getClassName() {\n return \"StereoscopicArcRotateCamera\";\n }\n}\nLt.AddNodeConstructor(\"StereoscopicFreeCamera\", (a, e, t) => () => new xL(a, g.Zero(), t.interaxial_distance, t.isStereoscopicSideBySide, e));\nclass xL extends cn {\n /**\n * Creates a new StereoscopicFreeCamera\n * @param name defines camera name\n * @param position defines initial position\n * @param interaxialDistance defines distance between each color axis\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\n * @param scene defines the hosting scene\n */\n constructor(e, t, i, s, r) {\n super(e, t, r), this._setRigMode = () => W_(this), this.interaxialDistance = i, this.isStereoscopicSideBySide = s, this.setCameraRigMode(s ? Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Fe.RIG_MODE_STEREOSCOPIC_OVERUNDER, {\n interaxialDistance: i\n });\n }\n /**\n * Gets camera class name\n * @returns StereoscopicFreeCamera\n */\n getClassName() {\n return \"StereoscopicFreeCamera\";\n }\n}\nLt.AddNodeConstructor(\"StereoscopicGamepadCamera\", (a, e, t) => () => new vL(a, g.Zero(), t.interaxial_distance, t.isStereoscopicSideBySide, e));\nclass vL extends pv {\n /**\n * Creates a new StereoscopicGamepadCamera\n * @param name defines camera name\n * @param position defines initial position\n * @param interaxialDistance defines distance between each color axis\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\n * @param scene defines the hosting scene\n */\n constructor(e, t, i, s, r) {\n super(e, t, r), this._setRigMode = () => W_(this), this.interaxialDistance = i, this.isStereoscopicSideBySide = s, this.setCameraRigMode(s ? Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Fe.RIG_MODE_STEREOSCOPIC_OVERUNDER, {\n interaxialDistance: i\n });\n }\n /**\n * Gets camera class name\n * @returns StereoscopicGamepadCamera\n */\n getClassName() {\n return \"StereoscopicGamepadCamera\";\n }\n}\nLt.AddNodeConstructor(\"StereoscopicFreeCamera\", (a, e, t) => () => new TL(a, g.Zero(), t.interaxial_distance, t.isStereoscopicSideBySide, e));\nclass TL extends Tc {\n /**\n * Creates a new StereoscopicUniversalCamera\n * @param name defines camera name\n * @param position defines initial position\n * @param interaxialDistance defines distance between each color axis\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\n * @param scene defines the hosting scene\n */\n constructor(e, t, i, s, r) {\n super(e, t, r), this._setRigMode = () => W_(this), this.interaxialDistance = i, this.isStereoscopicSideBySide = s, this.setCameraRigMode(s ? Fe.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Fe.RIG_MODE_STEREOSCOPIC_OVERUNDER, {\n interaxialDistance: i\n });\n }\n /**\n * Gets camera class name\n * @returns StereoscopicUniversalCamera\n */\n getClassName() {\n return \"StereoscopicUniversalCamera\";\n }\n}\nLt.AddNodeConstructor(\"VirtualJoysticksCamera\", (a, e) => () => new SL(a, g.Zero(), e));\nclass SL extends cn {\n /**\n * Instantiates a VirtualJoysticksCamera. It can be useful in First Person Shooter game for instance.\n * It is identical to the Free Camera and simply adds by default a virtual joystick.\n * Virtual Joysticks are on-screen 2D graphics that are used to control the camera or other scene items.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#virtual-joysticks-camera\n * @param name Define the name of the camera in the scene\n * @param position Define the start position of the camera in the scene\n * @param scene Define the scene the camera belongs to\n */\n constructor(e, t, i) {\n super(e, t, i), this.inputs.addVirtualJoystick();\n }\n /**\n * Gets the current object class name.\n * @returns the class name\n */\n getClassName() {\n return \"VirtualJoysticksCamera\";\n }\n}\nclass Ec {\n constructor() {\n this.compensateDistortion = !0, this.multiviewEnabled = !1;\n }\n /**\n * Gets the rendering aspect ratio based on the provided resolutions.\n */\n get aspectRatio() {\n return this.hResolution / (2 * this.vResolution);\n }\n /**\n * Gets the aspect ratio based on the FOV, scale factors, and real screen sizes.\n */\n get aspectRatioFov() {\n return 2 * Math.atan(this.postProcessScaleFactor * this.vScreenSize / (2 * this.eyeToScreenDistance));\n }\n /**\n * @internal\n */\n get leftHMatrix() {\n const t = 4 * (this.hScreenSize / 4 - this.lensSeparationDistance / 2) / this.hScreenSize;\n return O.Translation(t, 0, 0);\n }\n /**\n * @internal\n */\n get rightHMatrix() {\n const t = 4 * (this.hScreenSize / 4 - this.lensSeparationDistance / 2) / this.hScreenSize;\n return O.Translation(-t, 0, 0);\n }\n /**\n * @internal\n */\n get leftPreViewMatrix() {\n return O.Translation(0.5 * this.interpupillaryDistance, 0, 0);\n }\n /**\n * @internal\n */\n get rightPreViewMatrix() {\n return O.Translation(-0.5 * this.interpupillaryDistance, 0, 0);\n }\n /**\n * Get the default VRMetrics based on the most generic setup.\n * @returns the default vr metrics\n */\n static GetDefault() {\n const e = new Ec();\n return e.hResolution = 1280, e.vResolution = 800, e.hScreenSize = 0.149759993, e.vScreenSize = 0.0935999975, e.vScreenCenter = 0.0467999987, e.eyeToScreenDistance = 0.0410000011, e.lensSeparationDistance = 0.063500002, e.interpupillaryDistance = 0.064000003, e.distortionK = [1, 0.219999999, 0.239999995, 0], e.chromaAbCorrection = [0.995999992, -0.00400000019, 1.01400006, 0], e.postProcessScaleFactor = 1.714605507808412, e.lensCenterOffset = 0.151976421, e;\n }\n}\nconst bL = \"vrDistortionCorrectionPixelShader\", EL = `varying vec2 vUV;uniform sampler2D textureSampler;uniform vec2 LensCenter;uniform vec2 Scale;uniform vec2 ScaleIn;uniform vec4 HmdWarpParam;vec2 HmdWarp(vec2 in01) {vec2 theta=(in01-LensCenter)*ScaleIn; \nfloat rSq=theta.x*theta.x+theta.y*theta.y;vec2 rvector=theta*(HmdWarpParam.x+HmdWarpParam.y*rSq+HmdWarpParam.z*rSq*rSq+HmdWarpParam.w*rSq*rSq*rSq);return LensCenter+Scale*rvector;}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{vec2 tc=HmdWarp(vUV);if (tc.x <0.0 || tc.x>1.0 || tc.y<0.0 || tc.y>1.0)\ngl_FragColor=vec4(0.0,0.0,0.0,0.0);else{gl_FragColor=texture2D(textureSampler,tc);}}`;\nz.ShadersStore[bL] = EL;\nclass Wb extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"VRDistortionCorrectionPostProcess\" string\n */\n getClassName() {\n return \"VRDistortionCorrectionPostProcess\";\n }\n /**\n * Initializes the VRDistortionCorrectionPostProcess\n * @param name The name of the effect.\n * @param camera The camera to apply the render pass to.\n * @param isRightEye If this is for the right eye distortion\n * @param vrMetrics All the required metrics for the VR camera\n */\n constructor(e, t, i, s) {\n super(e, \"vrDistortionCorrection\", [\"LensCenter\", \"Scale\", \"ScaleIn\", \"HmdWarpParam\"], null, s.postProcessScaleFactor, t, X.BILINEAR_SAMPLINGMODE), this._isRightEye = i, this._distortionFactors = s.distortionK, this._postProcessScaleFactor = s.postProcessScaleFactor, this._lensCenterOffset = s.lensCenterOffset, this.adaptScaleToCurrentViewport = !0, this.onSizeChangedObservable.add(() => {\n this._scaleIn = new Q(2, 2 / this.aspectRatio), this._scaleFactor = new Q(0.5 * (1 / this._postProcessScaleFactor), 0.5 * (1 / this._postProcessScaleFactor) * this.aspectRatio), this._lensCenter = new Q(this._isRightEye ? 0.5 - this._lensCenterOffset * 0.5 : 0.5 + this._lensCenterOffset * 0.5, 0.5);\n }), this.onApplyObservable.add((r) => {\n r.setFloat2(\"LensCenter\", this._lensCenter.x, this._lensCenter.y), r.setFloat2(\"Scale\", this._scaleFactor.x, this._scaleFactor.y), r.setFloat2(\"ScaleIn\", this._scaleIn.x, this._scaleIn.y), r.setFloat4(\"HmdWarpParam\", this._distortionFactors[0], this._distortionFactors[1], this._distortionFactors[2], this._distortionFactors[3]);\n });\n }\n}\nconst yL = \"vrMultiviewToSingleviewPixelShader\", CL = `precision mediump sampler2DArray;varying vec2 vUV;uniform sampler2DArray multiviewSampler;uniform int imageIndex;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{gl_FragColor=texture2D(multiviewSampler,vec3(vUV,imageIndex));}`;\nz.ShadersStore[yL] = CL;\nee.prototype.createMultiviewRenderTargetTexture = function(a, e, t, i) {\n const s = this._gl;\n if (!this.getCaps().multiview)\n throw \"Multiview is not supported\";\n const r = this._createHardwareRenderTargetWrapper(!1, !1, { width: a, height: e });\n r._framebuffer = s.createFramebuffer();\n const n = new Nt(this, 0, !0);\n return n.width = a, n.height = e, n.isMultiview = !0, t || (t = s.createTexture(), s.bindTexture(s.TEXTURE_2D_ARRAY, t), s.texStorage3D(s.TEXTURE_2D_ARRAY, 1, s.RGBA8, a, e, 2)), r._colorTextureArray = t, i || (i = s.createTexture(), s.bindTexture(s.TEXTURE_2D_ARRAY, i), s.texStorage3D(s.TEXTURE_2D_ARRAY, 1, s.DEPTH24_STENCIL8, a, e, 2)), r._depthStencilTextureArray = i, n.isReady = !0, r.setTextures(n), r._depthStencilTexture = n, r;\n};\nee.prototype.bindMultiviewFramebuffer = function(a) {\n const e = a, t = this._gl, i = this.getCaps().oculusMultiview || this.getCaps().multiview;\n if (this.bindFramebuffer(e, void 0, void 0, void 0, !0), t.bindFramebuffer(t.DRAW_FRAMEBUFFER, e._framebuffer), e._colorTextureArray && e._depthStencilTextureArray)\n this.getCaps().oculusMultiview ? (i.framebufferTextureMultisampleMultiviewOVR(t.DRAW_FRAMEBUFFER, t.COLOR_ATTACHMENT0, e._colorTextureArray, 0, e.samples, 0, 2), i.framebufferTextureMultisampleMultiviewOVR(t.DRAW_FRAMEBUFFER, t.DEPTH_STENCIL_ATTACHMENT, e._depthStencilTextureArray, 0, e.samples, 0, 2)) : (i.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER, t.COLOR_ATTACHMENT0, e._colorTextureArray, 0, 0, 2), i.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER, t.DEPTH_STENCIL_ATTACHMENT, e._depthStencilTextureArray, 0, 0, 2));\n else\n throw \"Invalid multiview frame buffer\";\n};\nee.prototype.bindSpaceWarpFramebuffer = function(a) {\n const e = a, t = this._gl, i = this.getCaps().oculusMultiview || this.getCaps().multiview;\n if (this.bindFramebuffer(e, void 0, void 0, void 0, !0), t.bindFramebuffer(t.DRAW_FRAMEBUFFER, e._framebuffer), e._colorTextureArray && e._depthStencilTextureArray)\n i.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER, t.COLOR_ATTACHMENT0, e._colorTextureArray, 0, 0, 2), i.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER, t.DEPTH_ATTACHMENT, e._depthStencilTextureArray, 0, 0, 2);\n else\n throw new Error(\"Invalid Space Warp framebuffer\");\n};\nFe.prototype._useMultiviewToSingleView = !1;\nFe.prototype._multiviewTexture = null;\nFe.prototype._resizeOrCreateMultiviewTexture = function(a, e) {\n this._multiviewTexture ? (this._multiviewTexture.getRenderWidth() != a || this._multiviewTexture.getRenderHeight() != e) && (this._multiviewTexture.dispose(), this._multiviewTexture = new Rg(this.getScene(), { width: a, height: e })) : this._multiviewTexture = new Rg(this.getScene(), { width: a, height: e });\n};\nfunction z0(a, e) {\n const t = new Ve(a, void 0, !0, e);\n return t.addUniform(\"viewProjection\", 16), t.addUniform(\"viewProjectionR\", 16), t.addUniform(\"view\", 16), t.addUniform(\"projection\", 16), t.addUniform(\"vEyePosition\", 4), t;\n}\nconst AL = De.prototype.createSceneUniformBuffer;\nDe.prototype._transformMatrixR = O.Zero();\nDe.prototype._multiviewSceneUbo = null;\nDe.prototype._createMultiviewUbo = function() {\n this._multiviewSceneUbo = z0(this.getEngine(), \"scene_multiview\");\n};\nDe.prototype.createSceneUniformBuffer = function(a) {\n return this._multiviewSceneUbo ? z0(this.getEngine(), a) : AL.bind(this)(a);\n};\nDe.prototype._updateMultiviewUbo = function(a, e) {\n a && e && a.multiplyToRef(e, this._transformMatrixR), a && e && (a.multiplyToRef(e, w.Matrix[0]), _n.GetRightPlaneToRef(w.Matrix[0], this._frustumPlanes[3])), this._multiviewSceneUbo && (this._multiviewSceneUbo.updateMatrix(\"viewProjection\", this.getTransformMatrix()), this._multiviewSceneUbo.updateMatrix(\"viewProjectionR\", this._transformMatrixR), this._multiviewSceneUbo.updateMatrix(\"view\", this._viewMatrix), this._multiviewSceneUbo.updateMatrix(\"projection\", this._projectionMatrix));\n};\nDe.prototype._renderMultiviewToSingleView = function(a) {\n a._resizeOrCreateMultiviewTexture(a._rigPostProcess && a._rigPostProcess && a._rigPostProcess.width > 0 ? a._rigPostProcess.width : this.getEngine().getRenderWidth(!0), a._rigPostProcess && a._rigPostProcess && a._rigPostProcess.height > 0 ? a._rigPostProcess.height : this.getEngine().getRenderHeight(!0)), this._multiviewSceneUbo || this._createMultiviewUbo(), a.outputRenderTarget = a._multiviewTexture, this._renderForCamera(a), a.outputRenderTarget = null;\n for (let e = 0; e < a._rigCameras.length; e++) {\n const t = this.getEngine();\n this._activeCamera = a._rigCameras[e], t.setViewport(this._activeCamera.viewport), this.postProcessManager && (this.postProcessManager._prepareFrame(), this.postProcessManager._finalizeFrame(this._activeCamera.isIntermediate));\n }\n};\nclass RL extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"VRMultiviewToSingleviewPostProcess\" string\n */\n getClassName() {\n return \"VRMultiviewToSingleviewPostProcess\";\n }\n /**\n * Initializes a VRMultiviewToSingleview\n * @param name name of the post process\n * @param camera camera to be applied to\n * @param scaleFactor scaling factor to the size of the output texture\n */\n constructor(e, t, i) {\n super(e, \"vrMultiviewToSingleview\", [\"imageIndex\"], [\"multiviewSampler\"], i, t, X.BILINEAR_SAMPLINGMODE);\n const s = t ?? this.getCamera();\n this.onSizeChangedObservable.add(() => {\n }), this.onApplyObservable.add((r) => {\n s._scene.activeCamera && s._scene.activeCamera.isLeftCamera ? r.setInt(\"imageIndex\", 0) : r.setInt(\"imageIndex\", 1), r.setTexture(\"multiviewSampler\", s._multiviewTexture);\n });\n }\n}\nfunction _v(a, e) {\n const t = e.vrCameraMetrics || Ec.GetDefault();\n a._rigCameras[0]._cameraRigParams.vrMetrics = t, a._rigCameras[0].viewport = new xr(0, 0, 0.5, 1), a._rigCameras[0]._cameraRigParams.vrWorkMatrix = new O(), a._rigCameras[0]._cameraRigParams.vrHMatrix = t.leftHMatrix, a._rigCameras[0]._cameraRigParams.vrPreViewMatrix = t.leftPreViewMatrix, a._rigCameras[0].getProjectionMatrix = a._rigCameras[0]._getVRProjectionMatrix, a._rigCameras[1]._cameraRigParams.vrMetrics = t, a._rigCameras[1].viewport = new xr(0.5, 0, 0.5, 1), a._rigCameras[1]._cameraRigParams.vrWorkMatrix = new O(), a._rigCameras[1]._cameraRigParams.vrHMatrix = t.rightHMatrix, a._rigCameras[1]._cameraRigParams.vrPreViewMatrix = t.rightPreViewMatrix, a._rigCameras[1].getProjectionMatrix = a._rigCameras[1]._getVRProjectionMatrix, t.multiviewEnabled && (a.getScene().getEngine().getCaps().multiview ? (a._useMultiviewToSingleView = !0, a._rigPostProcess = new RL(\"VRMultiviewToSingleview\", a, t.postProcessScaleFactor)) : (L.Warn(\"Multiview is not supported, falling back to standard rendering\"), t.multiviewEnabled = !1)), t.compensateDistortion && (a._rigCameras[0]._rigPostProcess = new Wb(\"VR_Distort_Compensation_Left\", a._rigCameras[0], !1, t), a._rigCameras[1]._rigPostProcess = new Wb(\"VR_Distort_Compensation_Right\", a._rigCameras[1], !0, t));\n}\nLt.AddNodeConstructor(\"VRDeviceOrientationArcRotateCamera\", (a, e) => () => new IL(a, 0, 0, 1, g.Zero(), e));\nclass IL extends ri {\n /**\n * Creates a new VRDeviceOrientationArcRotateCamera\n * @param name defines camera name\n * @param alpha defines the camera rotation along the longitudinal axis\n * @param beta defines the camera rotation along the latitudinal axis\n * @param radius defines the camera distance from its target\n * @param target defines the camera target\n * @param scene defines the scene the camera belongs to\n * @param compensateDistortion defines if the camera needs to compensate the lens distortion\n * @param vrCameraMetrics defines the vr metrics associated to the camera\n */\n constructor(e, t, i, s, r, n, o = !0, l = Ec.GetDefault()) {\n super(e, t, i, s, r, n), this._setRigMode = (h) => _v(this, h), l.compensateDistortion = o, this.setCameraRigMode(Fe.RIG_MODE_VR, { vrCameraMetrics: l }), this.inputs.addVRDeviceOrientation();\n }\n /**\n * Gets camera class name\n * @returns VRDeviceOrientationArcRotateCamera\n */\n getClassName() {\n return \"VRDeviceOrientationArcRotateCamera\";\n }\n}\nLt.AddNodeConstructor(\"VRDeviceOrientationFreeCamera\", (a, e) => () => new mv(a, g.Zero(), e));\nclass mv extends fv {\n /**\n * Creates a new VRDeviceOrientationFreeCamera\n * @param name defines camera name\n * @param position defines the start position of the camera\n * @param scene defines the scene the camera belongs to\n * @param compensateDistortion defines if the camera needs to compensate the lens distortion\n * @param vrCameraMetrics defines the vr metrics associated to the camera\n */\n constructor(e, t, i, s = !0, r = Ec.GetDefault()) {\n super(e, t, i), this._setRigMode = (n) => _v(this, n), r.compensateDistortion = s, this.setCameraRigMode(Fe.RIG_MODE_VR, { vrCameraMetrics: r });\n }\n /**\n * Gets camera class name\n * @returns VRDeviceOrientationFreeCamera\n */\n getClassName() {\n return \"VRDeviceOrientationFreeCamera\";\n }\n}\nLt.AddNodeConstructor(\"VRDeviceOrientationGamepadCamera\", (a, e) => () => new PL(a, g.Zero(), e));\nclass PL extends mv {\n /**\n * Creates a new VRDeviceOrientationGamepadCamera\n * @param name defines camera name\n * @param position defines the start position of the camera\n * @param scene defines the scene the camera belongs to\n * @param compensateDistortion defines if the camera needs to compensate the lens distortion\n * @param vrCameraMetrics defines the vr metrics associated to the camera\n */\n constructor(e, t, i, s = !0, r = Ec.GetDefault()) {\n super(e, t, i, s, r), this._setRigMode = (n) => _v(this, n), this.inputs.addGamepad();\n }\n /**\n * Gets camera class name\n * @returns VRDeviceOrientationGamepadCamera\n */\n getClassName() {\n return \"VRDeviceOrientationGamepadCamera\";\n }\n}\nclass H_ {\n constructor(e, t = null) {\n if (this.scene = e, this._pointerDownOnMeshAsked = !1, this._isActionableMesh = !1, this._teleportationRequestInitiated = !1, this._teleportationBackRequestInitiated = !1, this._rotationRightAsked = !1, this._rotationLeftAsked = !1, this._dpadPressed = !0, this._activePointer = !1, this._id = H_._IdCounter++, t)\n this._gazeTracker = t.clone(\"gazeTracker\");\n else {\n this._gazeTracker = Da(\"gazeTracker\", {\n diameter: 35e-4,\n thickness: 25e-4,\n tessellation: 20,\n updatable: !1\n }, e), this._gazeTracker.bakeCurrentTransformIntoVertices(), this._gazeTracker.isPickable = !1, this._gazeTracker.isVisible = !1;\n const i = new ye(\"targetMat\", e);\n i.specularColor = re.Black(), i.emissiveColor = new re(0.7, 0.7, 0.7), i.backFaceCulling = !1, this._gazeTracker.material = i;\n }\n }\n /**\n * @internal\n */\n _getForwardRay(e) {\n return new nt(g.Zero(), new g(0, 0, e));\n }\n /** @internal */\n _selectionPointerDown() {\n this._pointerDownOnMeshAsked = !0, this._currentHit && this.scene.simulatePointerDown(this._currentHit, { pointerId: this._id });\n }\n /** @internal */\n _selectionPointerUp() {\n this._currentHit && this.scene.simulatePointerUp(this._currentHit, { pointerId: this._id }), this._pointerDownOnMeshAsked = !1;\n }\n /** @internal */\n _activatePointer() {\n this._activePointer = !0;\n }\n /** @internal */\n _deactivatePointer() {\n this._activePointer = !1;\n }\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _updatePointerDistance(e = 100) {\n }\n dispose() {\n this._interactionsEnabled = !1, this._teleportationEnabled = !1, this._gazeTracker && this._gazeTracker.dispose();\n }\n}\nH_._IdCounter = 0;\nclass Hb extends H_ {\n constructor(e, t) {\n super(t), this._getCamera = e;\n }\n _getForwardRay(e) {\n const t = this._getCamera();\n return t ? t.getForwardRay(e) : new nt(g.Zero(), g.Forward());\n }\n}\nclass IK {\n}\nclass Kh {\n /** Return this.onEnteringVRObservable\n * Note: This one is for backward compatibility. Please use onEnteringVRObservable directly\n */\n get onEnteringVR() {\n return this.onEnteringVRObservable;\n }\n /** Return this.onExitingVRObservable\n * Note: This one is for backward compatibility. Please use onExitingVRObservable directly\n */\n get onExitingVR() {\n return this.onExitingVRObservable;\n }\n /**\n * The mesh used to display where the user is going to teleport.\n */\n get teleportationTarget() {\n return this._teleportationTarget;\n }\n /**\n * Sets the mesh to be used to display where the user is going to teleport.\n */\n set teleportationTarget(e) {\n e && (e.name = \"teleportationTarget\", this._isDefaultTeleportationTarget = !1, this._teleportationTarget = e);\n }\n /**\n * The mesh used to display where the user is selecting, this mesh will be cloned and set as the gazeTracker for the left and right controller\n * when set bakeCurrentTransformIntoVertices will be called on the mesh.\n * See https://doc.babylonjs.com/features/featuresDeepDive/mesh/transforms/center_origin/bakingTransforms\n */\n get gazeTrackerMesh() {\n return this._cameraGazer._gazeTracker;\n }\n set gazeTrackerMesh(e) {\n e && (this._cameraGazer._gazeTracker && this._cameraGazer._gazeTracker.dispose(), this._cameraGazer._gazeTracker = e, this._cameraGazer._gazeTracker.bakeCurrentTransformIntoVertices(), this._cameraGazer._gazeTracker.isPickable = !1, this._cameraGazer._gazeTracker.isVisible = !1, this._cameraGazer._gazeTracker.name = \"gazeTracker\");\n }\n /**\n * If the ray of the gaze should be displayed.\n */\n get displayGaze() {\n return this._displayGaze;\n }\n /**\n * Sets if the ray of the gaze should be displayed.\n */\n set displayGaze(e) {\n this._displayGaze = e, e || (this._cameraGazer._gazeTracker.isVisible = !1);\n }\n /**\n * If the ray of the LaserPointer should be displayed.\n */\n get displayLaserPointer() {\n return this._displayLaserPointer;\n }\n /**\n * Sets if the ray of the LaserPointer should be displayed.\n */\n set displayLaserPointer(e) {\n this._displayLaserPointer = e;\n }\n /**\n * The deviceOrientationCamera used as the camera when not in VR.\n */\n get deviceOrientationCamera() {\n return this._deviceOrientationCamera;\n }\n /**\n * Based on the current WebVR support, returns the current VR camera used.\n */\n get currentVRCamera() {\n return this._scene.activeCamera;\n }\n /**\n * The deviceOrientationCamera that is used as a fallback when vr device is not connected.\n */\n get vrDeviceOrientationCamera() {\n return this._vrDeviceOrientationCamera;\n }\n /**\n * The html button that is used to trigger entering into VR.\n */\n get vrButton() {\n return this._btnVR;\n }\n get _teleportationRequestInitiated() {\n return this._cameraGazer._teleportationRequestInitiated;\n }\n /**\n * Instantiates a VRExperienceHelper.\n * Helps to quickly add VR support to an existing scene.\n * @param scene The scene the VRExperienceHelper belongs to.\n * @param webVROptions Options to modify the vr experience helper's behavior.\n */\n constructor(e, t = {}) {\n if (this.webVROptions = t, this._fullscreenVRpresenting = !1, this.enableGazeEvenWhenNoPointerLock = !1, this.exitVROnDoubleTap = !0, this.onEnteringVRObservable = new G(), this.onAfterEnteringVRObservable = new G(), this.onExitingVRObservable = new G(), this._useCustomVRButton = !1, this._teleportActive = !1, this._floorMeshesCollection = [], this._teleportationMode = Kh.TELEPORTATIONMODE_CONSTANTTIME, this._teleportationTime = 122, this._teleportationSpeed = 20, this._rotationAllowed = !0, this._teleportBackwardsVector = new g(0, -1, -1), this._isDefaultTeleportationTarget = !0, this._teleportationFillColor = \"#444444\", this._teleportationBorderColor = \"#FFFFFF\", this._rotationAngle = 0, this._haloCenter = new g(0, 0, 0), this._padSensibilityUp = 0.65, this._padSensibilityDown = 0.35, this._pickedLaserColor = new re(0.2, 0.2, 1), this._pickedGazeColor = new re(0, 0, 1), this.onNewMeshSelected = new G(), this.onNewMeshPicked = new G(), this.onBeforeCameraTeleport = new G(), this.onAfterCameraTeleport = new G(), this.onSelectedMeshUnselected = new G(), this.teleportationEnabled = !0, this._teleportationInitialized = !1, this._interactionsEnabled = !1, this._displayGaze = !0, this._displayLaserPointer = !0, this.updateGazeTrackerScale = !0, this.updateGazeTrackerColor = !0, this.updateControllerLaserColor = !0, this.requestPointerLockOnFullScreen = !0, this.xrTestDone = !1, this._onResize = () => {\n this._moveButtonToBottomRight();\n }, this._onFullscreenChange = () => {\n this._fullscreenVRpresenting = !!document.fullscreenElement, !this._fullscreenVRpresenting && this._inputElement && (this.exitVR(), !this._useCustomVRButton && this._btnVR && (this._btnVR.style.top = this._inputElement.offsetTop + this._inputElement.offsetHeight - 70 + \"px\", this._btnVR.style.left = this._inputElement.offsetLeft + this._inputElement.offsetWidth - 100 + \"px\", this._updateButtonVisibility()));\n }, this._cachedAngularSensibility = { angularSensibilityX: null, angularSensibilityY: null, angularSensibility: null }, this._beforeRender = () => {\n this._scene.getEngine().isPointerLock || this.enableGazeEvenWhenNoPointerLock || (this._cameraGazer._gazeTracker.isVisible = !1);\n }, this._onNewGamepadConnected = (s) => {\n s.type !== Os.POSE_ENABLED && (s.leftStick && s.onleftstickchanged((r) => {\n this._teleportationInitialized && this.teleportationEnabled && (this._checkTeleportWithRay(r, this._cameraGazer), this._checkTeleportBackwards(r, this._cameraGazer));\n }), s.rightStick && s.onrightstickchanged((r) => {\n this._teleportationInitialized && this._checkRotate(r, this._cameraGazer);\n }), s.type === Os.XBOX && (s.onbuttondown((r) => {\n this._interactionsEnabled && r === 0 && this._cameraGazer._selectionPointerDown();\n }), s.onbuttonup((r) => {\n this._interactionsEnabled && r === 0 && this._cameraGazer._selectionPointerUp();\n })));\n }, this._workingVector = g.Zero(), this._workingQuaternion = se.Identity(), this._workingMatrix = O.Identity(), L.Warn(\"WebVR is deprecated. Please avoid using this experience helper and use the WebXR experience helper instead\"), this._scene = e, this._inputElement = e.getEngine().getInputElement(), !(\"getVRDisplays\" in navigator) && t.useXR === void 0 && (t.useXR = !0), t.createFallbackVRDeviceOrientationFreeCamera === void 0 && (t.createFallbackVRDeviceOrientationFreeCamera = !0), t.createDeviceOrientationCamera === void 0 && (t.createDeviceOrientationCamera = !0), t.laserToggle === void 0 && (t.laserToggle = !0), this._hasEnteredVR = !1, this._scene.activeCamera ? this._position = this._scene.activeCamera.position.clone() : this._position = new g(0, this._defaultHeight, 0), t.createDeviceOrientationCamera || !this._scene.activeCamera) {\n if (this._deviceOrientationCamera = new fv(\"deviceOrientationVRHelper\", this._position.clone(), e), this._scene.activeCamera && (this._deviceOrientationCamera.minZ = this._scene.activeCamera.minZ, this._deviceOrientationCamera.maxZ = this._scene.activeCamera.maxZ, this._scene.activeCamera instanceof $i && this._scene.activeCamera.rotation)) {\n const s = this._scene.activeCamera;\n s.rotationQuaternion ? this._deviceOrientationCamera.rotationQuaternion.copyFrom(s.rotationQuaternion) : this._deviceOrientationCamera.rotationQuaternion.copyFrom(se.RotationYawPitchRoll(s.rotation.y, s.rotation.x, s.rotation.z)), this._deviceOrientationCamera.rotation = s.rotation.clone();\n }\n this._scene.activeCamera = this._deviceOrientationCamera, this._inputElement && this._scene.activeCamera.attachControl();\n } else\n this._existingCamera = this._scene.activeCamera;\n this.webVROptions.useXR && navigator.xr ? vc.IsSessionSupportedAsync(\"immersive-vr\").then((s) => {\n s ? (L.Log(\"Using WebXR. It is recommended to use the WebXRDefaultExperience directly\"), e.createDefaultXRExperienceAsync({\n floorMeshes: t.floorMeshes || []\n }).then((r) => {\n this.xr = r, this.xrTestDone = !0, this._cameraGazer = new Hb(() => this.xr.baseExperience.camera, e), this.xr.baseExperience.onStateChangedObservable.add((n) => {\n switch (n) {\n case 0:\n this.onEnteringVRObservable.notifyObservers(this), this._interactionsEnabled || this.xr.pointerSelection.detach(), this.xr.pointerSelection.displayLaserPointer = this._displayLaserPointer;\n break;\n case 1:\n this.onExitingVRObservable.notifyObservers(this), this._scene.getEngine().resize();\n break;\n case 2:\n this._hasEnteredVR = !0;\n break;\n case 3:\n this._hasEnteredVR = !1;\n break;\n }\n });\n })) : this._completeVRInit(e, t);\n }) : this._completeVRInit(e, t);\n }\n _completeVRInit(e, t) {\n if (this.xrTestDone = !0, t.createFallbackVRDeviceOrientationFreeCamera && (this._vrDeviceOrientationCamera = new mv(\"VRDeviceOrientationVRHelper\", this._position, this._scene, !0, t.vrDeviceOrientationCameraMetrics), this._vrDeviceOrientationCamera.angularSensibility = Number.MAX_VALUE), this._cameraGazer = new Hb(() => this.currentVRCamera, e), !this._useCustomVRButton) {\n this._btnVR = document.createElement(\"BUTTON\"), this._btnVR.className = \"babylonVRicon\", this._btnVR.id = \"babylonVRiconbtn\", this._btnVR.title = \"Click to switch to VR\";\n let r = \".babylonVRicon { position: absolute; right: 20px; height: 50px; width: 80px; background-color: rgba(51,51,51,0.7); background-image: url(\" + (window.SVGSVGElement ? \"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%222048%22%20height%3D%221152%22%20viewBox%3D%220%200%202048%201152%22%20version%3D%221.1%22%3E%3Cpath%20transform%3D%22rotate%28180%201024%2C576.0000000000001%29%22%20d%3D%22m1109%2C896q17%2C0%2030%2C-12t13%2C-30t-12.5%2C-30.5t-30.5%2C-12.5l-170%2C0q-18%2C0%20-30.5%2C12.5t-12.5%2C30.5t13%2C30t30%2C12l170%2C0zm-85%2C256q59%2C0%20132.5%2C-1.5t154.5%2C-5.5t164.5%2C-11.5t163%2C-20t150%2C-30t124.5%2C-41.5q23%2C-11%2042%2C-24t38%2C-30q27%2C-25%2041%2C-61.5t14%2C-72.5l0%2C-257q0%2C-123%20-47%2C-232t-128%2C-190t-190%2C-128t-232%2C-47l-81%2C0q-37%2C0%20-68.5%2C14t-60.5%2C34.5t-55.5%2C45t-53%2C45t-53%2C34.5t-55.5%2C14t-55.5%2C-14t-53%2C-34.5t-53%2C-45t-55.5%2C-45t-60.5%2C-34.5t-68.5%2C-14l-81%2C0q-123%2C0%20-232%2C47t-190%2C128t-128%2C190t-47%2C232l0%2C257q0%2C68%2038%2C115t97%2C73q54%2C24%20124.5%2C41.5t150%2C30t163%2C20t164.5%2C11.5t154.5%2C5.5t132.5%2C1.5zm939%2C-298q0%2C39%20-24.5%2C67t-58.5%2C42q-54%2C23%20-122%2C39.5t-143.5%2C28t-155.5%2C19t-157%2C11t-148.5%2C5t-129.5%2C1.5q-59%2C0%20-130%2C-1.5t-148%2C-5t-157%2C-11t-155.5%2C-19t-143.5%2C-28t-122%2C-39.5q-34%2C-14%20-58.5%2C-42t-24.5%2C-67l0%2C-257q0%2C-106%2040.5%2C-199t110%2C-162.5t162.5%2C-109.5t199%2C-40l81%2C0q27%2C0%2052%2C14t50%2C34.5t51%2C44.5t55.5%2C44.5t63.5%2C34.5t74%2C14t74%2C-14t63.5%2C-34.5t55.5%2C-44.5t51%2C-44.5t50%2C-34.5t52%2C-14l14%2C0q37%2C0%2070%2C0.5t64.5%2C4.5t63.5%2C12t68%2C23q71%2C30%20128.5%2C78.5t98.5%2C110t63.5%2C133.5t22.5%2C149l0%2C257z%22%20fill%3D%22white%22%20/%3E%3C/svg%3E%0A\" : \"https://cdn.babylonjs.com/Assets/vrButton.png\") + \"); background-size: 80%; background-repeat:no-repeat; background-position: center; border: none; outline: none; transition: transform 0.125s ease-out } .babylonVRicon:hover { transform: scale(1.05) } .babylonVRicon:active {background-color: rgba(51,51,51,1) } .babylonVRicon:focus {background-color: rgba(51,51,51,1) }\";\n r += \".babylonVRicon.vrdisplaypresenting { display: none; }\";\n const n = document.createElement(\"style\");\n n.appendChild(document.createTextNode(r)), document.getElementsByTagName(\"head\")[0].appendChild(n), this._moveButtonToBottomRight();\n }\n this._btnVR && this._btnVR.addEventListener(\"click\", () => {\n this.isInVRMode || this.enterVR();\n });\n const i = this._scene.getEngine().getHostWindow();\n i && (i.addEventListener(\"resize\", this._onResize), document.addEventListener(\"fullscreenchange\", this._onFullscreenChange, !1), t.createFallbackVRDeviceOrientationFreeCamera && this._displayVRButton(), this._onKeyDown = (s) => {\n s.keyCode === 27 && this.isInVRMode && this.exitVR();\n }, document.addEventListener(\"keydown\", this._onKeyDown), this._scene.onPrePointerObservable.add(() => {\n this._hasEnteredVR && this.exitVROnDoubleTap && (this.exitVR(), this._fullscreenVRpresenting && this._scene.getEngine().exitFullscreen());\n }, Pe.POINTERDOUBLETAP, !1), e.onDisposeObservable.add(() => {\n this.dispose();\n }), this._updateButtonVisibility(), this._circleEase = new uw(), this._circleEase.setEasingMode(Ti.EASINGMODE_EASEINOUT), this._teleportationEasing = this._circleEase, e.onPointerObservable.add((s) => {\n this._interactionsEnabled && e.activeCamera === this.vrDeviceOrientationCamera && s.event.pointerType === \"mouse\" && (s.type === Pe.POINTERDOWN ? this._cameraGazer._selectionPointerDown() : s.type === Pe.POINTERUP && this._cameraGazer._selectionPointerUp());\n }), this.webVROptions.floorMeshes && this.enableTeleportation({ floorMeshes: this.webVROptions.floorMeshes }));\n }\n /**\n * Gets a value indicating if we are currently in VR mode.\n */\n get isInVRMode() {\n return this.xr && this.webVROptions.useXR && this.xr.baseExperience.state === 2 || this._fullscreenVRpresenting;\n }\n _moveButtonToBottomRight() {\n if (this._inputElement && !this._useCustomVRButton && this._btnVR) {\n const e = this._inputElement.getBoundingClientRect();\n this._btnVR.style.top = e.top + e.height - 70 + \"px\", this._btnVR.style.left = e.left + e.width - 100 + \"px\";\n }\n }\n _displayVRButton() {\n !this._useCustomVRButton && !this._btnVRDisplayed && this._btnVR && (document.body.appendChild(this._btnVR), this._btnVRDisplayed = !0);\n }\n _updateButtonVisibility() {\n !this._btnVR || this._useCustomVRButton || (this._btnVR.className = \"babylonVRicon\", this.isInVRMode && (this._btnVR.className += \" vrdisplaypresenting\"));\n }\n /**\n * Attempt to enter VR. If a headset is connected and ready, will request present on that.\n * Otherwise, will use the fullscreen API.\n */\n enterVR() {\n if (this.xr) {\n this.xr.baseExperience.enterXRAsync(\"immersive-vr\", \"local-floor\", this.xr.renderTarget);\n return;\n }\n if (this.onEnteringVRObservable)\n try {\n this.onEnteringVRObservable.notifyObservers(this);\n } catch (e) {\n L.Warn(\"Error in your custom logic onEnteringVR: \" + e);\n }\n this._scene.activeCamera && (this._position = this._scene.activeCamera.position.clone(), this.vrDeviceOrientationCamera && (this.vrDeviceOrientationCamera.rotation = se.FromRotationMatrix(this._scene.activeCamera.getWorldMatrix().getRotationMatrix()).toEulerAngles(), this.vrDeviceOrientationCamera.angularSensibility = 2e3), this._existingCamera = this._scene.activeCamera, this._existingCamera.angularSensibilityX && (this._cachedAngularSensibility.angularSensibilityX = this._existingCamera.angularSensibilityX, this._existingCamera.angularSensibilityX = Number.MAX_VALUE), this._existingCamera.angularSensibilityY && (this._cachedAngularSensibility.angularSensibilityY = this._existingCamera.angularSensibilityY, this._existingCamera.angularSensibilityY = Number.MAX_VALUE), this._existingCamera.angularSensibility && (this._cachedAngularSensibility.angularSensibility = this._existingCamera.angularSensibility, this._existingCamera.angularSensibility = Number.MAX_VALUE)), this._vrDeviceOrientationCamera && (this._vrDeviceOrientationCamera.position = this._position, this._scene.activeCamera && (this._vrDeviceOrientationCamera.minZ = this._scene.activeCamera.minZ), this._scene.activeCamera = this._vrDeviceOrientationCamera, this._scene.getEngine().enterFullscreen(this.requestPointerLockOnFullScreen), this._updateButtonVisibility(), this._vrDeviceOrientationCamera.onViewMatrixChangedObservable.addOnce(() => {\n this.onAfterEnteringVRObservable.notifyObservers({ success: !0 });\n })), this._scene.activeCamera && this._inputElement && this._scene.activeCamera.attachControl(), this._interactionsEnabled && this._scene.registerBeforeRender(this._beforeRender), this._hasEnteredVR = !0;\n }\n /**\n * Attempt to exit VR, or fullscreen.\n */\n exitVR() {\n if (this.xr) {\n this.xr.baseExperience.exitXRAsync();\n return;\n }\n if (this._hasEnteredVR) {\n if (this.onExitingVRObservable)\n try {\n this.onExitingVRObservable.notifyObservers(this);\n } catch (e) {\n L.Warn(\"Error in your custom logic onExitingVR: \" + e);\n }\n this._scene.activeCamera && (this._position = this._scene.activeCamera.position.clone()), this.vrDeviceOrientationCamera && (this.vrDeviceOrientationCamera.angularSensibility = Number.MAX_VALUE), this._deviceOrientationCamera ? (this._deviceOrientationCamera.position = this._position, this._scene.activeCamera = this._deviceOrientationCamera, this._cachedAngularSensibility.angularSensibilityX && (this._deviceOrientationCamera.angularSensibilityX = this._cachedAngularSensibility.angularSensibilityX, this._cachedAngularSensibility.angularSensibilityX = null), this._cachedAngularSensibility.angularSensibilityY && (this._deviceOrientationCamera.angularSensibilityY = this._cachedAngularSensibility.angularSensibilityY, this._cachedAngularSensibility.angularSensibilityY = null), this._cachedAngularSensibility.angularSensibility && (this._deviceOrientationCamera.angularSensibility = this._cachedAngularSensibility.angularSensibility, this._cachedAngularSensibility.angularSensibility = null)) : this._existingCamera && (this._existingCamera.position = this._position, this._scene.activeCamera = this._existingCamera, this._inputElement && this._scene.activeCamera.attachControl(), this._cachedAngularSensibility.angularSensibilityX && (this._existingCamera.angularSensibilityX = this._cachedAngularSensibility.angularSensibilityX, this._cachedAngularSensibility.angularSensibilityX = null), this._cachedAngularSensibility.angularSensibilityY && (this._existingCamera.angularSensibilityY = this._cachedAngularSensibility.angularSensibilityY, this._cachedAngularSensibility.angularSensibilityY = null), this._cachedAngularSensibility.angularSensibility && (this._existingCamera.angularSensibility = this._cachedAngularSensibility.angularSensibility, this._cachedAngularSensibility.angularSensibility = null)), this._updateButtonVisibility(), this._interactionsEnabled && (this._scene.unregisterBeforeRender(this._beforeRender), this._cameraGazer._gazeTracker.isVisible = !1), this._scene.getEngine().resize(), this._hasEnteredVR = !1;\n }\n }\n /**\n * The position of the vr experience helper.\n */\n get position() {\n return this._position;\n }\n /**\n * Sets the position of the vr experience helper.\n */\n set position(e) {\n this._position = e, this._scene.activeCamera && (this._scene.activeCamera.position = e);\n }\n /**\n * Enables controllers and user interactions such as selecting and object or clicking on an object.\n */\n enableInteractions() {\n if (!this._interactionsEnabled) {\n if (this.xr) {\n this.xr.baseExperience.state === 2 && this.xr.pointerSelection.attach();\n return;\n }\n this.raySelectionPredicate = (e) => e.isVisible && (e.isPickable || e.name === this._floorMeshName), this.meshSelectionPredicate = () => !0, this._raySelectionPredicate = (e) => this._isTeleportationFloor(e) || e.name.indexOf(\"gazeTracker\") === -1 && e.name.indexOf(\"teleportationTarget\") === -1 && e.name.indexOf(\"torusTeleportation\") === -1 ? this.raySelectionPredicate(e) : !1, this._interactionsEnabled = !0;\n }\n }\n _isTeleportationFloor(e) {\n for (let t = 0; t < this._floorMeshesCollection.length; t++)\n if (this._floorMeshesCollection[t].id === e.id)\n return !0;\n return !!(this._floorMeshName && e.name === this._floorMeshName);\n }\n /**\n * Adds a floor mesh to be used for teleportation.\n * @param floorMesh the mesh to be used for teleportation.\n */\n addFloorMesh(e) {\n this._floorMeshesCollection && (this._floorMeshesCollection.indexOf(e) > -1 || this._floorMeshesCollection.push(e));\n }\n /**\n * Removes a floor mesh from being used for teleportation.\n * @param floorMesh the mesh to be removed.\n */\n removeFloorMesh(e) {\n if (!this._floorMeshesCollection)\n return;\n const t = this._floorMeshesCollection.indexOf(e);\n t !== -1 && this._floorMeshesCollection.splice(t, 1);\n }\n /**\n * Enables interactions and teleportation using the VR controllers and gaze.\n * @param vrTeleportationOptions options to modify teleportation behavior.\n */\n enableTeleportation(e = {}) {\n if (!this._teleportationInitialized) {\n if (this.enableInteractions(), this.webVROptions.useXR && (e.floorMeshes || e.floorMeshName)) {\n const i = e.floorMeshes || [];\n if (!i.length) {\n const s = this._scene.getMeshByName(e.floorMeshName);\n s && i.push(s);\n }\n if (this.xr) {\n i.forEach((s) => {\n this.xr.teleportation.addFloorMesh(s);\n }), this.xr.teleportation.attached || this.xr.teleportation.attach();\n return;\n } else if (!this.xrTestDone) {\n const s = () => {\n this.xrTestDone && (this._scene.unregisterBeforeRender(s), this.xr ? this.xr.teleportation.attached || this.xr.teleportation.attach() : this.enableTeleportation(e));\n };\n this._scene.registerBeforeRender(s);\n return;\n }\n }\n e.floorMeshName && (this._floorMeshName = e.floorMeshName), e.floorMeshes && (this._floorMeshesCollection = e.floorMeshes), e.teleportationMode && (this._teleportationMode = e.teleportationMode), e.teleportationTime && e.teleportationTime > 0 && (this._teleportationTime = e.teleportationTime), e.teleportationSpeed && e.teleportationSpeed > 0 && (this._teleportationSpeed = e.teleportationSpeed), e.easingFunction !== void 0 && (this._teleportationEasing = e.easingFunction);\n const t = new pt();\n t.vignetteColor = new Ce(0, 0, 0, 0), t.vignetteEnabled = !0, this._teleportationInitialized = !0, this._isDefaultTeleportationTarget && this._createTeleportationCircles();\n }\n }\n _checkTeleportWithRay(e, t) {\n this._teleportationRequestInitiated && !t._teleportationRequestInitiated || (t._teleportationRequestInitiated ? Math.sqrt(e.y * e.y + e.x * e.x) < this._padSensibilityDown && (this._teleportActive && this.teleportCamera(this._haloCenter), t._teleportationRequestInitiated = !1) : e.y < -this._padSensibilityUp && t._dpadPressed && (t._activatePointer(), t._teleportationRequestInitiated = !0));\n }\n _checkRotate(e, t) {\n t._teleportationRequestInitiated || (t._rotationLeftAsked ? e.x > -this._padSensibilityDown && (t._rotationLeftAsked = !1) : e.x < -this._padSensibilityUp && t._dpadPressed && (t._rotationLeftAsked = !0, this._rotationAllowed && this._rotateCamera(!1)), t._rotationRightAsked ? e.x < this._padSensibilityDown && (t._rotationRightAsked = !1) : e.x > this._padSensibilityUp && t._dpadPressed && (t._rotationRightAsked = !0, this._rotationAllowed && this._rotateCamera(!0)));\n }\n _checkTeleportBackwards(e, t) {\n if (!t._teleportationRequestInitiated)\n if (e.y > this._padSensibilityUp && t._dpadPressed) {\n if (!t._teleportationBackRequestInitiated) {\n if (!this.currentVRCamera)\n return;\n const i = se.FromRotationMatrix(this.currentVRCamera.getWorldMatrix().getRotationMatrix()), s = this.currentVRCamera.position;\n i.toEulerAnglesToRef(this._workingVector), this._workingVector.z = 0, this._workingVector.x = 0, se.RotationYawPitchRollToRef(this._workingVector.y, this._workingVector.x, this._workingVector.z, this._workingQuaternion), this._workingQuaternion.toRotationMatrix(this._workingMatrix), g.TransformCoordinatesToRef(this._teleportBackwardsVector, this._workingMatrix, this._workingVector);\n const r = new nt(s, this._workingVector), n = this._scene.pickWithRay(r, this._raySelectionPredicate);\n n && n.pickedPoint && n.pickedMesh && this._isTeleportationFloor(n.pickedMesh) && n.distance < 5 && this.teleportCamera(n.pickedPoint), t._teleportationBackRequestInitiated = !0;\n }\n } else\n t._teleportationBackRequestInitiated = !1;\n }\n _createTeleportationCircles() {\n this._teleportationTarget = Sf(\"teleportationTarget\", { width: 2, height: 2, subdivisions: 2 }, this._scene), this._teleportationTarget.isPickable = !1;\n const e = 512, t = new ea(\"DynamicTexture\", e, this._scene, !0);\n t.hasAlpha = !0;\n const i = t.getContext(), s = e / 2, r = e / 2, n = 200;\n i.beginPath(), i.arc(s, r, n, 0, 2 * Math.PI, !1), i.fillStyle = this._teleportationFillColor, i.fill(), i.lineWidth = 10, i.strokeStyle = this._teleportationBorderColor, i.stroke(), i.closePath(), t.update();\n const o = new ye(\"TextPlaneMaterial\", this._scene);\n o.diffuseTexture = t, this._teleportationTarget.material = o;\n const l = Da(\"torusTeleportation\", {\n diameter: 0.75,\n thickness: 0.1,\n tessellation: 25,\n updatable: !1\n }, this._scene);\n l.isPickable = !1, l.parent = this._teleportationTarget;\n const h = new oe(\"animationInnerCircle\", \"position.y\", 30, oe.ANIMATIONTYPE_FLOAT, oe.ANIMATIONLOOPMODE_CYCLE), c = [];\n c.push({\n frame: 0,\n value: 0\n }), c.push({\n frame: 30,\n value: 0.4\n }), c.push({\n frame: 60,\n value: 0\n }), h.setKeys(c);\n const u = new QC();\n u.setEasingMode(Ti.EASINGMODE_EASEINOUT), h.setEasingFunction(u), l.animations = [], l.animations.push(h), this._scene.beginAnimation(l, 0, 60, !0), this._hideTeleportationTarget();\n }\n _hideTeleportationTarget() {\n this._teleportActive = !1, this._teleportationInitialized && (this._teleportationTarget.isVisible = !1, this._isDefaultTeleportationTarget && (this._teleportationTarget.getChildren()[0].isVisible = !1));\n }\n _rotateCamera(e) {\n if (!(this.currentVRCamera instanceof cn))\n return;\n e ? this._rotationAngle++ : this._rotationAngle--, this.currentVRCamera.animations = [];\n const t = se.FromRotationMatrix(O.RotationY(Math.PI / 4 * this._rotationAngle)), i = new oe(\"animationRotation\", \"rotationQuaternion\", 90, oe.ANIMATIONTYPE_QUATERNION, oe.ANIMATIONLOOPMODE_CONSTANT), s = [];\n s.push({\n frame: 0,\n value: this.currentVRCamera.rotationQuaternion\n }), s.push({\n frame: 6,\n value: t\n }), i.setKeys(s), i.setEasingFunction(this._circleEase), this.currentVRCamera.animations.push(i), this._postProcessMove.animations = [];\n const r = new oe(\"animationPP\", \"vignetteWeight\", 90, oe.ANIMATIONTYPE_FLOAT, oe.ANIMATIONLOOPMODE_CONSTANT), n = [];\n n.push({\n frame: 0,\n value: 0\n }), n.push({\n frame: 3,\n value: 4\n }), n.push({\n frame: 6,\n value: 0\n }), r.setKeys(n), r.setEasingFunction(this._circleEase), this._postProcessMove.animations.push(r);\n const o = new oe(\"animationPP2\", \"vignetteStretch\", 90, oe.ANIMATIONTYPE_FLOAT, oe.ANIMATIONLOOPMODE_CONSTANT), l = [];\n l.push({\n frame: 0,\n value: 0\n }), l.push({\n frame: 3,\n value: 10\n }), l.push({\n frame: 6,\n value: 0\n }), o.setKeys(l), o.setEasingFunction(this._circleEase), this._postProcessMove.animations.push(o), this._postProcessMove.imageProcessingConfiguration.vignetteWeight = 0, this._postProcessMove.imageProcessingConfiguration.vignetteStretch = 0, this._postProcessMove.samples = 4, this._scene.beginAnimation(this.currentVRCamera, 0, 6, !1, 1);\n }\n /**\n * Teleports the users feet to the desired location\n * @param location The location where the user's feet should be placed\n */\n teleportCamera(e) {\n if (!(this.currentVRCamera instanceof cn))\n return;\n this._workingVector.copyFrom(e), this.isInVRMode || (this._workingVector.y += this._defaultHeight), this.onBeforeCameraTeleport.notifyObservers(this._workingVector);\n const t = 90;\n let i, s;\n if (this._teleportationMode == Kh.TELEPORTATIONMODE_CONSTANTSPEED) {\n s = t;\n const d = g.Distance(this.currentVRCamera.position, this._workingVector);\n i = this._teleportationSpeed / d;\n } else\n s = Math.round(this._teleportationTime * t / 1e3), i = 1;\n this.currentVRCamera.animations = [];\n const r = new oe(\"animationCameraTeleportation\", \"position\", t, oe.ANIMATIONTYPE_VECTOR3, oe.ANIMATIONLOOPMODE_CONSTANT), n = [\n {\n frame: 0,\n value: this.currentVRCamera.position\n },\n {\n frame: s,\n value: this._workingVector\n }\n ];\n r.setKeys(n), r.setEasingFunction(this._teleportationEasing), this.currentVRCamera.animations.push(r), this._postProcessMove.animations = [];\n const o = Math.round(s / 2), l = new oe(\"animationPP\", \"vignetteWeight\", t, oe.ANIMATIONTYPE_FLOAT, oe.ANIMATIONLOOPMODE_CONSTANT), h = [];\n h.push({\n frame: 0,\n value: 0\n }), h.push({\n frame: o,\n value: 8\n }), h.push({\n frame: s,\n value: 0\n }), l.setKeys(h), this._postProcessMove.animations.push(l);\n const c = new oe(\"animationPP2\", \"vignetteStretch\", t, oe.ANIMATIONTYPE_FLOAT, oe.ANIMATIONLOOPMODE_CONSTANT), u = [];\n u.push({\n frame: 0,\n value: 0\n }), u.push({\n frame: o,\n value: 10\n }), u.push({\n frame: s,\n value: 0\n }), c.setKeys(u), this._postProcessMove.animations.push(c), this._postProcessMove.imageProcessingConfiguration.vignetteWeight = 0, this._postProcessMove.imageProcessingConfiguration.vignetteStretch = 0, this._scene.beginAnimation(this.currentVRCamera, 0, s, !1, i, () => {\n this.onAfterCameraTeleport.notifyObservers(this._workingVector);\n }), this._hideTeleportationTarget();\n }\n /**\n * Permanently set new colors for the laser pointer\n * @param color the new laser color\n * @param pickedColor the new laser color when picked mesh detected\n */\n setLaserColor(e, t = this._pickedLaserColor) {\n this._pickedLaserColor = t;\n }\n /**\n * Set lighting enabled / disabled on the laser pointer of both controllers\n * @param _enabled should the lighting be enabled on the laser pointer\n */\n setLaserLightingState(e = !0) {\n }\n /**\n * Permanently set new colors for the gaze pointer\n * @param color the new gaze color\n * @param pickedColor the new gaze color when picked mesh detected\n */\n setGazeColor(e, t = this._pickedGazeColor) {\n this._pickedGazeColor = t;\n }\n /**\n * Sets the color of the laser ray from the vr controllers.\n * @param _color new color for the ray.\n */\n changeLaserColor(e) {\n this.updateControllerLaserColor;\n }\n /**\n * Sets the color of the ray from the vr headsets gaze.\n * @param color new color for the ray.\n */\n changeGazeColor(e) {\n this.updateGazeTrackerColor && this._cameraGazer._gazeTracker.material && (this._cameraGazer._gazeTracker.material.emissiveColor = e);\n }\n /**\n * Exits VR and disposes of the vr experience helper\n */\n dispose() {\n this.isInVRMode && this.exitVR(), this._postProcessMove && this._postProcessMove.dispose(), this._vrDeviceOrientationCamera && this._vrDeviceOrientationCamera.dispose(), !this._useCustomVRButton && this._btnVR && this._btnVR.parentNode && document.body.removeChild(this._btnVR), this._deviceOrientationCamera && this._scene.activeCamera != this._deviceOrientationCamera && this._deviceOrientationCamera.dispose(), this._cameraGazer && this._cameraGazer.dispose(), this._teleportationTarget && this._teleportationTarget.dispose(), this.xr && this.xr.dispose(), this._floorMeshesCollection.length = 0, document.removeEventListener(\"keydown\", this._onKeyDown), window.removeEventListener(\"vrdisplaypresentchange\", this._onVrDisplayPresentChangeBind), window.removeEventListener(\"resize\", this._onResize), document.removeEventListener(\"fullscreenchange\", this._onFullscreenChange), this._scene.gamepadManager.onGamepadConnectedObservable.removeCallback(this._onNewGamepadConnected), this._scene.unregisterBeforeRender(this._beforeRender);\n }\n /**\n * Gets the name of the VRExperienceHelper class\n * @returns \"VRExperienceHelper\"\n */\n getClassName() {\n return \"VRExperienceHelper\";\n }\n}\nKh.TELEPORTATIONMODE_CONSTANTTIME = 0;\nKh.TELEPORTATIONMODE_CONSTANTSPEED = 1;\nconst ML = (a, e, t, i) => !(a.x > t.x + i || t.x - i > e.x || a.y > t.y + i || t.y - i > e.y || a.z > t.z + i || t.z - i > e.z), nh = /* @__PURE__ */ function() {\n const a = { root: 0, found: !1 };\n return function(e, t, i, s) {\n a.root = 0, a.found = !1;\n const r = t * t - 4 * e * i;\n if (r < 0)\n return a;\n const n = Math.sqrt(r);\n let o = (-t - n) / (2 * e), l = (-t + n) / (2 * e);\n if (o > l) {\n const h = l;\n l = o, o = h;\n }\n return o > 0 && o < s ? (a.root = o, a.found = !0, a) : (l > 0 && l < s && (a.root = l, a.found = !0), a);\n };\n}();\nclass X_ {\n constructor() {\n this._collisionPoint = g.Zero(), this._planeIntersectionPoint = g.Zero(), this._tempVector = g.Zero(), this._tempVector2 = g.Zero(), this._tempVector3 = g.Zero(), this._tempVector4 = g.Zero(), this._edge = g.Zero(), this._baseToVertex = g.Zero(), this._destinationPoint = g.Zero(), this._slidePlaneNormal = g.Zero(), this._displacementVector = g.Zero(), this._radius = g.One(), this._retry = 0, this._basePointWorld = g.Zero(), this._velocityWorld = g.Zero(), this._normalizedVelocity = g.Zero(), this._collisionMask = -1;\n }\n get collisionMask() {\n return this._collisionMask;\n }\n set collisionMask(e) {\n this._collisionMask = isNaN(e) ? -1 : e;\n }\n /**\n * Gets the plane normal used to compute the sliding response (in local space)\n */\n get slidePlaneNormal() {\n return this._slidePlaneNormal;\n }\n // Methods\n /**\n * @internal\n */\n _initialize(e, t, i) {\n this._velocity = t, this._velocitySquaredLength = this._velocity.lengthSquared();\n const s = Math.sqrt(this._velocitySquaredLength);\n s === 0 || s === 1 ? this._normalizedVelocity.copyFromFloats(t._x, t._y, t._z) : t.scaleToRef(1 / s, this._normalizedVelocity), this._basePoint = e, e.multiplyToRef(this._radius, this._basePointWorld), t.multiplyToRef(this._radius, this._velocityWorld), this._velocityWorldLength = this._velocityWorld.length(), this._epsilon = i, this.collisionFound = !1;\n }\n /**\n * @internal\n */\n _checkPointInTriangle(e, t, i, s, r) {\n t.subtractToRef(e, this._tempVector), i.subtractToRef(e, this._tempVector2), g.CrossToRef(this._tempVector, this._tempVector2, this._tempVector4);\n let n = g.Dot(this._tempVector4, r);\n return n < 0 || (s.subtractToRef(e, this._tempVector3), g.CrossToRef(this._tempVector2, this._tempVector3, this._tempVector4), n = g.Dot(this._tempVector4, r), n < 0) ? !1 : (g.CrossToRef(this._tempVector3, this._tempVector, this._tempVector4), n = g.Dot(this._tempVector4, r), n >= 0);\n }\n /**\n * @internal\n */\n _canDoCollision(e, t, i, s) {\n const r = g.Distance(this._basePointWorld, e), n = Math.max(this._radius.x, this._radius.y, this._radius.z);\n return !(r > this._velocityWorldLength + n + t || !ML(i, s, this._basePointWorld, this._velocityWorldLength + n));\n }\n /**\n * @internal\n */\n _testTriangle(e, t, i, s, r, n, o) {\n let l, h = !1;\n t || (t = []), t[e] || (t[e] = new Pr(0, 0, 0, 0), t[e].copyFromPoints(i, s, r));\n const c = t[e];\n if (!n && !c.isFrontFacingTo(this._normalizedVelocity, 0))\n return;\n const u = c.signedDistanceTo(this._basePoint), d = g.Dot(c.normal, this._velocity);\n if (X_.DoubleSidedCheck && d > 1e-4)\n return;\n if (d == 0) {\n if (Math.abs(u) >= 1)\n return;\n h = !0, l = 0;\n } else {\n l = (-1 - u) / d;\n let _ = (1 - u) / d;\n if (l > _) {\n const m = _;\n _ = l, l = m;\n }\n if (l > 1 || _ < 0)\n return;\n l < 0 && (l = 0), l > 1 && (l = 1);\n }\n this._collisionPoint.copyFromFloats(0, 0, 0);\n let f = !1, p = 1;\n if (h || (this._basePoint.subtractToRef(c.normal, this._planeIntersectionPoint), this._velocity.scaleToRef(l, this._tempVector), this._planeIntersectionPoint.addInPlace(this._tempVector), this._checkPointInTriangle(this._planeIntersectionPoint, i, s, r, c.normal) && (f = !0, p = l, this._collisionPoint.copyFrom(this._planeIntersectionPoint))), !f) {\n let _ = this._velocitySquaredLength;\n this._basePoint.subtractToRef(i, this._tempVector);\n let m = 2 * g.Dot(this._velocity, this._tempVector), x = this._tempVector.lengthSquared() - 1, v = nh(_, m, x, p);\n v.found && (p = v.root, f = !0, this._collisionPoint.copyFrom(i)), this._basePoint.subtractToRef(s, this._tempVector), m = 2 * g.Dot(this._velocity, this._tempVector), x = this._tempVector.lengthSquared() - 1, v = nh(_, m, x, p), v.found && (p = v.root, f = !0, this._collisionPoint.copyFrom(s)), this._basePoint.subtractToRef(r, this._tempVector), m = 2 * g.Dot(this._velocity, this._tempVector), x = this._tempVector.lengthSquared() - 1, v = nh(_, m, x, p), v.found && (p = v.root, f = !0, this._collisionPoint.copyFrom(r)), s.subtractToRef(i, this._edge), i.subtractToRef(this._basePoint, this._baseToVertex);\n let T = this._edge.lengthSquared(), E = g.Dot(this._edge, this._velocity), b = g.Dot(this._edge, this._baseToVertex);\n if (_ = T * -this._velocitySquaredLength + E * E, m = 2 * (T * g.Dot(this._velocity, this._baseToVertex) - E * b), x = T * (1 - this._baseToVertex.lengthSquared()) + b * b, v = nh(_, m, x, p), v.found) {\n const S = (E * v.root - b) / T;\n S >= 0 && S <= 1 && (p = v.root, f = !0, this._edge.scaleInPlace(S), i.addToRef(this._edge, this._collisionPoint));\n }\n if (r.subtractToRef(s, this._edge), s.subtractToRef(this._basePoint, this._baseToVertex), T = this._edge.lengthSquared(), E = g.Dot(this._edge, this._velocity), b = g.Dot(this._edge, this._baseToVertex), _ = T * -this._velocitySquaredLength + E * E, m = 2 * (T * g.Dot(this._velocity, this._baseToVertex) - E * b), x = T * (1 - this._baseToVertex.lengthSquared()) + b * b, v = nh(_, m, x, p), v.found) {\n const S = (E * v.root - b) / T;\n S >= 0 && S <= 1 && (p = v.root, f = !0, this._edge.scaleInPlace(S), s.addToRef(this._edge, this._collisionPoint));\n }\n if (i.subtractToRef(r, this._edge), r.subtractToRef(this._basePoint, this._baseToVertex), T = this._edge.lengthSquared(), E = g.Dot(this._edge, this._velocity), b = g.Dot(this._edge, this._baseToVertex), _ = T * -this._velocitySquaredLength + E * E, m = 2 * (T * g.Dot(this._velocity, this._baseToVertex) - E * b), x = T * (1 - this._baseToVertex.lengthSquared()) + b * b, v = nh(_, m, x, p), v.found) {\n const S = (E * v.root - b) / T;\n S >= 0 && S <= 1 && (p = v.root, f = !0, this._edge.scaleInPlace(S), r.addToRef(this._edge, this._collisionPoint));\n }\n }\n if (f) {\n const _ = p * p * this._velocitySquaredLength;\n (!this.collisionFound || _ < this._nearestDistanceSquared) && (o.collisionResponse && (this.intersectionPoint ? this.intersectionPoint.copyFrom(this._collisionPoint) : this.intersectionPoint = this._collisionPoint.clone(), this._nearestDistanceSquared = _, this._nearestDistance = Math.sqrt(_), this.collisionFound = !0), this.collidedMesh = o);\n }\n }\n /**\n * @internal\n */\n _collide(e, t, i, s, r, n, o, l, h, c = !1) {\n if (c)\n if (!i || i.length === 0)\n for (let u = 0; u < t.length - 2; u += 1) {\n const d = t[u], f = t[u + 1], p = t[u + 2];\n !d || !f || !p || ((h ? 1 : 0) ^ u % 2 ? this._testTriangle(u, e, d, f, p, o, l) : this._testTriangle(u, e, f, d, p, o, l));\n }\n else\n for (let u = s; u < r - 2; u += 1) {\n const d = i[u], f = i[u + 1], p = i[u + 2];\n if (p === 4294967295) {\n u += 2;\n continue;\n }\n const _ = t[d], m = t[f], x = t[p];\n !_ || !m || !x || ((h ? 1 : 0) ^ u % 2 ? this._testTriangle(u, e, _, m, x, o, l) : this._testTriangle(u, e, m, _, x, o, l));\n }\n else if (!i || i.length === 0)\n for (let u = 0; u < t.length; u += 3) {\n const d = t[u], f = t[u + 1], p = t[u + 2];\n h ? this._testTriangle(u, e, d, f, p, o, l) : this._testTriangle(u, e, p, f, d, o, l);\n }\n else\n for (let u = s; u < r; u += 3) {\n const d = t[i[u] - n], f = t[i[u + 1] - n], p = t[i[u + 2] - n];\n h ? this._testTriangle(u, e, d, f, p, o, l) : this._testTriangle(u, e, p, f, d, o, l);\n }\n }\n /**\n * @internal\n */\n _getResponse(e, t) {\n e.addToRef(t, this._destinationPoint), t.scaleInPlace(this._nearestDistance / t.length()), this._basePoint.addToRef(t, e), e.subtractToRef(this.intersectionPoint, this._slidePlaneNormal), this._slidePlaneNormal.normalize(), this._slidePlaneNormal.scaleToRef(this._epsilon, this._displacementVector), e.addInPlace(this._displacementVector), this.intersectionPoint.addInPlace(this._displacementVector), this._slidePlaneNormal.scaleInPlace(Pr.SignedDistanceToPlaneFromPositionAndNormal(this.intersectionPoint, this._slidePlaneNormal, this._destinationPoint)), this._destinationPoint.subtractInPlace(this._slidePlaneNormal), this._destinationPoint.subtractToRef(this.intersectionPoint, t);\n }\n}\nX_.DoubleSidedCheck = !1;\nclass DL {\n constructor() {\n this._scaledPosition = g.Zero(), this._scaledVelocity = g.Zero(), this._finalPosition = g.Zero();\n }\n getNewPosition(e, t, i, s, r, n, o) {\n e.divideToRef(i._radius, this._scaledPosition), t.divideToRef(i._radius, this._scaledVelocity), i.collidedMesh = null, i._retry = 0, i._initialVelocity = this._scaledVelocity, i._initialPosition = this._scaledPosition, this._collideWithWorld(this._scaledPosition, this._scaledVelocity, i, s, this._finalPosition, r), this._finalPosition.multiplyInPlace(i._radius), n(o, this._finalPosition, i.collidedMesh);\n }\n createCollider() {\n return new X_();\n }\n init(e) {\n this._scene = e;\n }\n _collideWithWorld(e, t, i, s, r, n = null) {\n const o = ee.CollisionsEpsilon * 10;\n if (i._retry >= s) {\n r.copyFrom(e);\n return;\n }\n const l = n ? n.collisionMask : i.collisionMask;\n i._initialize(e, t, o);\n const h = n && n.surroundingMeshes || this._scene.meshes;\n for (let c = 0; c < h.length; c++) {\n const u = h[c];\n u.isEnabled() && u.checkCollisions && u.subMeshes && u !== n && l & u.collisionGroup && u._checkCollision(i);\n }\n if (!i.collisionFound) {\n e.addToRef(t, r);\n return;\n }\n if ((t.x !== 0 || t.y !== 0 || t.z !== 0) && i._getResponse(e, t), t.length() <= o) {\n r.copyFrom(e);\n return;\n }\n i._retry++, this._collideWithWorld(e, t, i, s, r, n);\n }\n}\nDe.CollisionCoordinatorFactory = () => new DL();\nconst OL = \"pickingPixelShader\", wL = `#if defined(INSTANCES)\nvarying vec4 vMeshID;\n#else\nuniform vec4 meshID;\n#endif\nvoid main(void) {\n#if defined(INSTANCES)\ngl_FragColor=vMeshID;\n#else\ngl_FragColor=meshID;\n#endif\n}`;\nz.ShadersStore[OL] = wL;\nconst NL = \"pickingVertexShader\", FL = `attribute vec3 position;\n#if defined(INSTANCES)\nattribute vec4 instanceMeshID;\n#endif\n#include\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\nuniform mat4 viewProjection;\n#if defined(INSTANCES)\nvarying vec4 vMeshID;\n#endif\nvoid main(void) {\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include\n#include\nvec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;\n#if defined(INSTANCES)\nvMeshID=instanceMeshID;\n#endif\n}`;\nz.ShadersStore[NL] = FL;\nclass qh {\n /**\n * Creates a compute effect that can be used to execute a compute shader\n * @param baseName Name of the effect\n * @param options Set of all options to create the effect\n * @param engine The engine the effect is created for\n * @param key Effect Key identifying uniquely compiled shader variants\n */\n constructor(e, t, i, s = \"\") {\n this.defines = \"\", this.onCompiled = null, this.onError = null, this.uniqueId = 0, this.onCompileObservable = new G(), this.onErrorObservable = new G(), this.onBindObservable = new G(), this._wasPreviouslyReady = !1, this._isReady = !1, this._compilationError = \"\", this._key = \"\", this._computeSourceCodeOverride = \"\", this._pipelineContext = null, this._computeSourceCode = \"\", this._rawComputeSourceCode = \"\", this._shaderLanguage = 1, this.name = e, this._key = s, this._engine = i, this.uniqueId = qh._UniqueIdSeed++, this.defines = t.defines ?? \"\", this.onError = t.onError, this.onCompiled = t.onCompiled, this._entryPoint = t.entryPoint ?? \"main\", this._shaderStore = z.GetShadersStore(this._shaderLanguage), this._shaderRepository = z.GetShadersRepository(this._shaderLanguage), this._includeShaderStore = z.GetIncludesShadersStore(this._shaderLanguage);\n let r;\n const n = us() ? this._engine.getHostDocument() : null;\n typeof e == \"string\" ? r = e : e.computeSource ? r = \"source:\" + e.computeSource : e.computeElement ? r = (n == null ? void 0 : n.getElementById(e.computeElement)) || e.computeElement : r = e.compute || e;\n const o = {\n defines: this.defines.split(`\n`),\n indexParameters: void 0,\n isFragment: !1,\n shouldUseHighPrecisionShader: !1,\n processor: null,\n supportsUniformBuffers: this._engine.supportsUniformBuffers,\n shadersRepository: this._shaderRepository,\n includesShadersStore: this._includeShaderStore,\n version: (this._engine.version * 100).toString(),\n platformName: this._engine.shaderPlatformName,\n processingContext: null,\n isNDCHalfZRange: this._engine.isNDCHalfZRange,\n useReverseDepthBuffer: this._engine.useReverseDepthBuffer,\n processCodeAfterIncludes: (l, h, c) => {\n if (!c)\n return h;\n for (const u of c) {\n const f = u.replace(\"#define\", \"\").replace(\";\", \"\").trim().split(\" \");\n if (f.length === 2) {\n const p = f[0], _ = f[1];\n (!isNaN(parseInt(_)) || !isNaN(parseFloat(_))) && (h = `const ${p} = ${_};\n` + h);\n }\n }\n return h;\n }\n };\n this._loadShader(r, \"Compute\", \"\", (l) => {\n dC(o), LP(l, o, (h) => {\n this._rawComputeSourceCode = l, t.processFinalCode && (h = t.processFinalCode(h));\n const c = fC(h, \"\", o);\n this._useFinalCode(c.vertexCode, e);\n }, this._engine);\n });\n }\n _useFinalCode(e, t) {\n if (t) {\n const i = t.computeElement || t.compute || t.spectorName || t;\n this._computeSourceCode = \"//#define SHADER_NAME compute:\" + i + `\n` + e;\n } else\n this._computeSourceCode = e;\n this._prepareEffect();\n }\n /**\n * Unique key for this effect\n */\n get key() {\n return this._key;\n }\n /**\n * If the effect has been compiled and prepared.\n * @returns if the effect is compiled and prepared.\n */\n isReady() {\n try {\n return this._isReadyInternal();\n } catch {\n return !1;\n }\n }\n _isReadyInternal() {\n return this._isReady ? !0 : this._pipelineContext ? this._pipelineContext.isReady : !1;\n }\n /**\n * The engine the effect was initialized with.\n * @returns the engine.\n */\n getEngine() {\n return this._engine;\n }\n /**\n * The pipeline context for this effect\n * @returns the associated pipeline context\n */\n getPipelineContext() {\n return this._pipelineContext;\n }\n /**\n * The error from the last compilation.\n * @returns the error string.\n */\n getCompilationError() {\n return this._compilationError;\n }\n /**\n * Adds a callback to the onCompiled observable and call the callback immediately if already ready.\n * @param func The callback to be used.\n */\n executeWhenCompiled(e) {\n if (this.isReady()) {\n e(this);\n return;\n }\n this.onCompileObservable.add((t) => {\n e(t);\n }), (!this._pipelineContext || this._pipelineContext.isAsync) && setTimeout(() => {\n this._checkIsReady(null);\n }, 16);\n }\n _checkIsReady(e) {\n try {\n if (this._isReadyInternal())\n return;\n } catch (t) {\n this._processCompilationErrors(t, e);\n return;\n }\n setTimeout(() => {\n this._checkIsReady(e);\n }, 16);\n }\n _loadShader(e, t, i, s) {\n if (typeof HTMLElement < \"u\" && e instanceof HTMLElement) {\n const n = l_(e);\n s(n);\n return;\n }\n if (e.substr(0, 7) === \"source:\") {\n s(e.substr(7));\n return;\n }\n if (e.substr(0, 7) === \"base64:\") {\n const n = window.atob(e.substr(7));\n s(n);\n return;\n }\n if (this._shaderStore[e + t + \"Shader\"]) {\n s(this._shaderStore[e + t + \"Shader\"]);\n return;\n }\n if (i && this._shaderStore[e + i + \"Shader\"]) {\n s(this._shaderStore[e + i + \"Shader\"]);\n return;\n }\n let r;\n e[0] === \".\" || e[0] === \"/\" || e.indexOf(\"http\") > -1 ? r = e : r = this._shaderRepository + e, this._engine._loadFile(r + \".\" + t.toLowerCase() + \".fx\", s);\n }\n /**\n * Gets the compute shader source code of this effect\n */\n get computeSourceCode() {\n var e;\n return this._computeSourceCodeOverride ? this._computeSourceCodeOverride : ((e = this._pipelineContext) == null ? void 0 : e._getComputeShaderCode()) ?? this._computeSourceCode;\n }\n /**\n * Gets the compute shader source code before it has been processed by the preprocessor\n */\n get rawComputeSourceCode() {\n return this._rawComputeSourceCode;\n }\n /**\n * Prepares the effect\n * @internal\n */\n _prepareEffect() {\n const e = this.defines, t = this._pipelineContext;\n this._isReady = !1;\n try {\n const i = this._engine;\n this._pipelineContext = i.createComputePipelineContext(), this._pipelineContext._name = this._key, i._prepareComputePipelineContext(this._pipelineContext, this._computeSourceCodeOverride ? this._computeSourceCodeOverride : this._computeSourceCode, this._rawComputeSourceCode, this._computeSourceCodeOverride ? null : e, this._entryPoint), i._executeWhenComputeStateIsCompiled(this._pipelineContext, (s) => {\n if (s && s.numErrors > 0) {\n this._processCompilationErrors(s, t);\n return;\n }\n this._compilationError = \"\", this._isReady = !0, this.onCompiled && this.onCompiled(this), this.onCompileObservable.notifyObservers(this), this.onCompileObservable.clear(), t && this.getEngine()._deleteComputePipelineContext(t);\n }), this._pipelineContext.isAsync && this._checkIsReady(t);\n } catch (i) {\n this._processCompilationErrors(i, t);\n }\n }\n _processCompilationErrors(e, t = null) {\n var i;\n if (this._compilationError = \"\", L.Error(\"Unable to compile compute effect:\"), this.defines && L.Error(`Defines:\n` + this.defines), qh.LogShaderCodeOnCompilationError) {\n const s = (i = this._pipelineContext) == null ? void 0 : i._getComputeShaderCode();\n s && (L.Error(\"Compute code:\"), L.Error(s));\n }\n if (typeof e == \"string\")\n this._compilationError = e, L.Error(\"Error: \" + this._compilationError);\n else\n for (const s of e.messages) {\n let r = \"\";\n s.line !== void 0 && (r += \"Line \" + s.line + \", \"), s.offset !== void 0 && (r += \"Offset \" + s.offset + \", \"), s.length !== void 0 && (r += \"Length \" + s.length + \", \"), r += s.type + \": \" + s.text, this._compilationError && (this._compilationError += `\n`), this._compilationError += r, L.Error(r);\n }\n t && (this._pipelineContext = t, this._isReady = !0), this.onError && this.onError(this, this._compilationError), this.onErrorObservable.notifyObservers(this);\n }\n /**\n * Release all associated resources.\n **/\n dispose() {\n this._pipelineContext && this._pipelineContext.dispose(), this._engine._releaseComputeEffect(this);\n }\n /**\n * This function will add a new compute shader to the shader store\n * @param name the name of the shader\n * @param computeShader compute shader content\n */\n static RegisterShader(e, t) {\n z.GetShadersStore(\n 1\n /* ShaderLanguage.WGSL */\n )[`${e}ComputeShader`] = t;\n }\n}\nqh._UniqueIdSeed = 0;\nqh.LogShaderCodeOnCompilationError = !0;\nclass qa {\n /**\n * The options used to create the shader\n */\n get options() {\n return this._options;\n }\n /**\n * The shaderPath used to create the shader\n */\n get shaderPath() {\n return this._shaderPath;\n }\n /**\n * Instantiates a new compute shader.\n * @param name Defines the name of the compute shader in the scene\n * @param engine Defines the engine the compute shader belongs to\n * @param shaderPath Defines the route to the shader code in one of three ways:\n * * object: \\{ compute: \"custom\" \\}, used with ShaderStore.ShadersStoreWGSL[\"customComputeShader\"]\n * * object: \\{ computeElement: \"HTMLElementId\" \\}, used with shader code in script tags\n * * object: \\{ computeSource: \"compute shader code string\" \\}, where the string contains the shader code\n * * string: try first to find the code in ShaderStore.ShadersStoreWGSL[shaderPath + \"ComputeShader\"]. If not, assumes it is a file with name shaderPath.compute.fx in index.html folder.\n * @param options Define the options used to create the shader\n */\n constructor(e, t, i, s = {}) {\n if (this._bindings = {}, this._samplers = {}, this._contextIsDirty = !1, this.fastMode = !1, this.onCompiled = null, this.onError = null, this.name = e, this._engine = t, this.uniqueId = of.UniqueId, t.enableGPUTimingMeasurements && (this.gpuTimeInFrame = new Fx()), !this._engine.getCaps().supportComputeShaders) {\n L.Error(\"This engine does not support compute shaders!\");\n return;\n }\n if (!s.bindingsMapping) {\n L.Error(\"You must provide the binding mappings as browsers don't support reflection for wgsl shaders yet!\");\n return;\n }\n this._context = t.createComputeContext(), this._shaderPath = i, this._options = {\n bindingsMapping: {},\n defines: [],\n ...s\n };\n }\n /**\n * Gets the current class name of the material e.g. \"ComputeShader\"\n * Mainly use in serialization.\n * @returns the class name\n */\n getClassName() {\n return \"ComputeShader\";\n }\n /**\n * Binds a texture to the shader\n * @param name Binding name of the texture\n * @param texture Texture to bind\n * @param bindSampler Bind the sampler corresponding to the texture (default: true). The sampler will be bound just before the binding index of the texture\n */\n setTexture(e, t, i = !0) {\n const s = this._bindings[e];\n this._bindings[e] = {\n type: i ? 0 : 4,\n object: t,\n indexInGroupEntries: s == null ? void 0 : s.indexInGroupEntries\n }, this._contextIsDirty || (this._contextIsDirty = !s || s.object !== t || s.type !== this._bindings[e].type);\n }\n /**\n * Binds a storage texture to the shader\n * @param name Binding name of the texture\n * @param texture Texture to bind\n */\n setStorageTexture(e, t) {\n const i = this._bindings[e];\n this._contextIsDirty || (this._contextIsDirty = !i || i.object !== t), this._bindings[e] = {\n type: 1,\n object: t,\n indexInGroupEntries: i == null ? void 0 : i.indexInGroupEntries\n };\n }\n /**\n * Binds an external texture to the shader\n * @param name Binding name of the texture\n * @param texture Texture to bind\n */\n setExternalTexture(e, t) {\n const i = this._bindings[e];\n this._contextIsDirty || (this._contextIsDirty = !i || i.object !== t), this._bindings[e] = {\n type: 6,\n object: t,\n indexInGroupEntries: i == null ? void 0 : i.indexInGroupEntries\n };\n }\n /**\n * Binds a video texture to the shader (by binding the external texture attached to this video)\n * @param name Binding name of the texture\n * @param texture Texture to bind\n * @returns true if the video texture was successfully bound, else false. false will be returned if the current engine does not support external textures\n */\n setVideoTexture(e, t) {\n return t.externalTexture ? (this.setExternalTexture(e, t.externalTexture), !0) : !1;\n }\n /**\n * Binds a uniform buffer to the shader\n * @param name Binding name of the buffer\n * @param buffer Buffer to bind\n */\n setUniformBuffer(e, t) {\n const i = this._bindings[e];\n this._contextIsDirty || (this._contextIsDirty = !i || i.object !== t), this._bindings[e] = {\n type: qa._BufferIsDataBuffer(t) ? 7 : 2,\n object: t,\n indexInGroupEntries: i == null ? void 0 : i.indexInGroupEntries\n };\n }\n /**\n * Binds a storage buffer to the shader\n * @param name Binding name of the buffer\n * @param buffer Buffer to bind\n */\n setStorageBuffer(e, t) {\n const i = this._bindings[e];\n this._contextIsDirty || (this._contextIsDirty = !i || i.object !== t), this._bindings[e] = {\n type: qa._BufferIsDataBuffer(t) ? 7 : 3,\n object: t,\n indexInGroupEntries: i == null ? void 0 : i.indexInGroupEntries\n };\n }\n /**\n * Binds a texture sampler to the shader\n * @param name Binding name of the sampler\n * @param sampler Sampler to bind\n */\n setTextureSampler(e, t) {\n const i = this._bindings[e];\n this._contextIsDirty || (this._contextIsDirty = !i || !t.compareSampler(i.object)), this._bindings[e] = {\n type: 5,\n object: t,\n indexInGroupEntries: i == null ? void 0 : i.indexInGroupEntries\n };\n }\n /**\n * Specifies that the compute shader is ready to be executed (the compute effect and all the resources are ready)\n * @returns true if the compute shader is ready to be executed\n */\n isReady() {\n let e = this._effect;\n for (const r in this._bindings) {\n const n = this._bindings[r], o = n.type, l = n.object;\n switch (o) {\n case 0:\n case 4:\n case 1: {\n if (!l.isReady())\n return !1;\n break;\n }\n case 6: {\n if (!l.isReady())\n return !1;\n break;\n }\n }\n }\n const t = [], i = this._shaderPath;\n if (this._options.defines)\n for (let r = 0; r < this._options.defines.length; r++)\n t.push(this._options.defines[r]);\n const s = t.join(`\n`);\n return this._cachedDefines !== s && (this._cachedDefines = s, e = this._engine.createComputeEffect(i, {\n defines: s,\n entryPoint: this._options.entryPoint,\n onCompiled: this.onCompiled,\n onError: this.onError\n }), this._effect = e), !!e.isReady();\n }\n /**\n * Dispatches (executes) the compute shader\n * @param x Number of workgroups to execute on the X dimension\n * @param y Number of workgroups to execute on the Y dimension (default: 1)\n * @param z Number of workgroups to execute on the Z dimension (default: 1)\n * @returns True if the dispatch could be done, else false (meaning either the compute effect or at least one of the bound resources was not ready)\n */\n dispatch(e, t, i) {\n return !this.fastMode && !this._checkContext() ? !1 : (this._engine.computeDispatch(this._effect, this._context, this._bindings, e, t, i, this._options.bindingsMapping, this.gpuTimeInFrame), !0);\n }\n /**\n * Dispatches (executes) the compute shader.\n * @param buffer Buffer containing the number of workgroups to execute on the X, Y and Z dimensions\n * @param offset Offset in the buffer where the workgroup counts are stored (default: 0)\n * @returns True if the dispatch could be done, else false (meaning either the compute effect or at least one of the bound resources was not ready)\n */\n dispatchIndirect(e, t = 0) {\n if (!this.fastMode && !this._checkContext())\n return !1;\n const i = qa._BufferIsDataBuffer(e) ? e : e.getBuffer();\n return this._engine.computeDispatchIndirect(this._effect, this._context, this._bindings, i, t, this._options.bindingsMapping, this.gpuTimeInFrame), !0;\n }\n _checkContext() {\n var e;\n if (!this.isReady())\n return !1;\n for (const t in this._bindings) {\n const i = this._bindings[t];\n if (!this._options.bindingsMapping[t])\n throw new Error(\"ComputeShader ('\" + this.name + \"'): No binding mapping has been provided for the property '\" + t + \"'\");\n switch (i.type) {\n case 0: {\n const s = this._samplers[t], r = i.object;\n (!s || !r._texture || !s.compareSampler(r._texture)) && (this._samplers[t] = new rC().setParameters(r.wrapU, r.wrapV, r.wrapR, r.anisotropicFilteringLevel, r._texture.samplingMode, (e = r._texture) == null ? void 0 : e._comparisonFunction), this._contextIsDirty = !0);\n break;\n }\n case 6: {\n this._contextIsDirty = !0;\n break;\n }\n case 2: {\n const s = i.object;\n s.getBuffer() !== i.buffer && (i.buffer = s.getBuffer(), this._contextIsDirty = !0);\n break;\n }\n }\n }\n return this._contextIsDirty && (this._contextIsDirty = !1, this._context.clear()), !0;\n }\n /**\n * Waits for the compute shader to be ready and executes it\n * @param x Number of workgroups to execute on the X dimension\n * @param y Number of workgroups to execute on the Y dimension (default: 1)\n * @param z Number of workgroups to execute on the Z dimension (default: 1)\n * @param delay Delay between the retries while the shader is not ready (in milliseconds - 10 by default)\n * @returns A promise that is resolved once the shader has been sent to the GPU. Note that it does not mean that the shader execution itself is finished!\n */\n dispatchWhenReady(e, t, i, s = 10) {\n return new Promise((r) => {\n const n = () => {\n this.dispatch(e, t, i) ? r() : setTimeout(n, s);\n };\n n();\n });\n }\n /**\n * Serializes this compute shader in a JSON representation\n * @returns the serialized compute shader object\n */\n serialize() {\n const e = Ae.Serialize(this);\n e.options = this._options, e.shaderPath = this._shaderPath, e.bindings = {}, e.textures = {};\n for (const t in this._bindings) {\n const i = this._bindings[t], s = i.object;\n switch (i.type) {\n case 0:\n case 4:\n case 1: {\n const r = s.serialize();\n r && (e.textures[t] = r, e.bindings[t] = {\n type: i.type\n });\n break;\n }\n }\n }\n return e;\n }\n /**\n * Creates a compute shader from parsed compute shader data\n * @param source defines the JSON representation of the compute shader\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @returns a new compute shader\n */\n static Parse(e, t, i) {\n const s = Ae.Parse(() => new qa(e.name, t.getEngine(), e.shaderPath, e.options), e, t, i);\n for (const r in e.textures) {\n const n = e.bindings[r], o = X.Parse(e.textures[r], t, i);\n n.type === 0 ? s.setTexture(r, o) : n.type === 4 ? s.setTexture(r, o, !1) : s.setStorageTexture(r, o);\n }\n return s;\n }\n static _BufferIsDataBuffer(e) {\n return e.underlyingResource !== void 0;\n }\n}\ny([\n I()\n], qa.prototype, \"name\", void 0);\ny([\n I()\n], qa.prototype, \"fastMode\", void 0);\nU(\"BABYLON.ComputeShader\", qa);\nconst LL = \"gpuTransformVertexShader\", BL = `attribute vec3 position;\n#include\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\nout vec3 outPosition;const mat4 identity=mat4(\nvec4(1.0,0.0,0.0,0.0),\nvec4(0.0,1.0,0.0,0.0),\nvec4(0.0,0.0,1.0,0.0),\nvec4(0.0,0.0,0.0,1.0)\n);void main(void) {vec3 positionUpdated=position;\n#include\n#include[0..maxSimultaneousMorphTargets]\nmat4 finalWorld=identity;\n#include\n#include\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);outPosition=worldPos.xyz;}`;\nz.ShadersStore[LL] = BL;\nconst VL = \"gpuTransformPixelShader\", UL = `#version 300 es\nvoid main() {discard;}\n`;\nz.ShadersStore[VL] = UL;\nclass Lo {\n /**\n * Creates a new TransformFeedbackBoundingHelper\n * @param engine defines the engine to use\n */\n constructor(e) {\n this._buffers = {}, this._effects = {}, this._meshListCounter = 0, this._engine = e;\n }\n /** @internal */\n processAsync(e) {\n return Array.isArray(e) || (e = [e]), this._meshListCounter = 0, this._processMeshList(e), Promise.resolve();\n }\n _processMeshList(e) {\n const t = this._engine.getCaps().parallelShaderCompile;\n this._engine.getCaps().parallelShaderCompile = void 0;\n for (let i = 0; i < e.length; ++i) {\n const s = e[i];\n if (s.getTotalVertices() === 0 || !s.getVertexBuffer || !s.getVertexBuffer(R.PositionKind))\n continue;\n let n, o = 0;\n const l = [];\n let h = [];\n const c = [R.PositionKind], u = [];\n if (s && s.useBones && s.computeBonesUsingShaders && s.skeleton) {\n c.push(R.MatricesIndicesKind), c.push(R.MatricesWeightsKind), s.numBoneInfluencers > 4 && (c.push(R.MatricesIndicesExtraKind), c.push(R.MatricesWeightsExtraKind));\n const _ = s.skeleton;\n l.push(\"#define NUM_BONE_INFLUENCERS \" + s.numBoneInfluencers), _.isUsingTextureForMatrices ? (l.push(\"#define BONETEXTURE\"), h.indexOf(\"boneTextureWidth\") === -1 && h.push(\"boneTextureWidth\"), u.indexOf(\"boneSampler\") === -1 && u.push(\"boneSampler\")) : (l.push(\"#define BonesPerMesh \" + (_.bones.length + 1)), h.indexOf(\"mBones\") === -1 && h.push(\"mBones\"));\n } else\n l.push(\"#define NUM_BONE_INFLUENCERS 0\");\n const d = s ? s.morphTargetManager : null;\n if (d) {\n o = d.numMaxInfluencers || d.numInfluencers, o > 0 && l.push(\"#define MORPHTARGETS\"), d.isUsingTextureForTargets && (l.push(\"#define MORPHTARGETS_TEXTURE\"), h.indexOf(\"morphTargetTextureIndices\") === -1 && h.push(\"morphTargetTextureIndices\"), u.indexOf(\"morphTargets\") === -1 && u.push(\"morphTargets\")), l.push(\"#define NUM_MORPH_INFLUENCERS \" + o);\n for (let _ = 0; _ < o; _++)\n c.push(R.PositionKind + _);\n o > 0 && (h = h.slice(), h.push(\"morphTargetInfluences\"), h.push(\"morphTargetCount\"), h.push(\"morphTargetTextureInfo\"), h.push(\"morphTargetTextureIndices\"));\n }\n const f = s.bakedVertexAnimationManager;\n f && f.isEnabled && (l.push(\"#define BAKED_VERTEX_ANIMATION_TEXTURE\"), h.indexOf(\"bakedVertexAnimationSettings\") === -1 && h.push(\"bakedVertexAnimationSettings\"), h.indexOf(\"bakedVertexAnimationTextureSizeInverted\") === -1 && h.push(\"bakedVertexAnimationTextureSizeInverted\"), h.indexOf(\"bakedVertexAnimationTime\") === -1 && h.push(\"bakedVertexAnimationTime\"), u.indexOf(\"bakedVertexAnimationTexture\") === -1 && u.push(\"bakedVertexAnimationTexture\"), cf(c, s, l));\n const p = l.join(`\n`);\n if (this._effects[p])\n n = this._effects[p];\n else {\n const _ = {\n attributes: c,\n uniformsNames: h,\n uniformBuffersNames: [],\n samplers: u,\n defines: p,\n fallbacks: null,\n onCompiled: null,\n onError: null,\n indexParameters: { maxSimultaneousMorphTargets: o },\n maxSimultaneousLights: 0,\n transformFeedbackVaryings: [\"outPosition\"]\n };\n n = this._engine.createEffect(\"gpuTransform\", _, this._engine), this._effects[p] = n;\n }\n this._compute(s, n);\n }\n this._engine.getCaps().parallelShaderCompile = t;\n }\n _compute(e, t) {\n var h;\n const i = this._engine;\n let s;\n const r = e.getTotalVertices();\n if (this._buffers[e.uniqueId])\n s = this._buffers[e.uniqueId];\n else {\n const c = new Float32Array(r * 3);\n s = new ys(e.getEngine(), c, !0, 3), this._buffers[e.uniqueId] = s;\n }\n t.getEngine().enableEffect(t), e._bindDirect(t, null, !0), Fl(e, t);\n const n = e.morphTargetManager;\n n && n.numInfluencers > 0 && na(e, t);\n const o = e.bakedVertexAnimationManager;\n o && o.isEnabled && ((h = e.bakedVertexAnimationManager) == null || h.bind(t, !1));\n const l = s.getData();\n if (i.bindTransformFeedbackBuffer(s.getBuffer()), i.setRasterizerState(!1), i.beginTransformFeedback(!0), i.drawArraysType(2, 0, r), i.endTransformFeedback(), i.setRasterizerState(!0), i.readTransformFeedbackBuffer(l), i.bindTransformFeedbackBuffer(null), this._meshListCounter === 0)\n e._refreshBoundingInfo(l, null);\n else {\n const c = e.getBoundingInfo().boundingBox, u = $h(l, 0, r);\n Lo._Min.copyFrom(c.minimum).minimizeInPlace(u.minimum), Lo._Max.copyFrom(c.maximum).maximizeInPlace(u.maximum), e._refreshBoundingInfoDirect({ minimum: Lo._Min, maximum: Lo._Max });\n }\n }\n /** @internal */\n registerMeshListAsync(e) {\n return Array.isArray(e) || (e = [e]), this._meshList = e, this._meshListCounter = 0, Promise.resolve();\n }\n /** @internal */\n processMeshList() {\n this._meshList.length !== 0 && (this._processMeshList(this._meshList), this._meshListCounter++);\n }\n /** @internal */\n fetchResultsForMeshListAsync() {\n return this._meshListCounter = 0, Promise.resolve();\n }\n /** @internal */\n dispose() {\n for (const e in this._buffers)\n this._buffers[e].dispose();\n this._buffers = {}, this._effects = {}, this._engine = null;\n }\n}\nLo._Min = new g();\nLo._Max = new g();\nconst PK = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n TransformFeedbackBoundingHelper: Lo\n}, Symbol.toStringTag, { value: \"Module\" })), kL = \"boundingInfoComputeShader\", GL = `struct Results {minX : atomic,\nminY : atomic,\nminZ : atomic,\nmaxX : atomic,\nmaxY : atomic,\nmaxZ : atomic,\ndummy1 : i32,\ndummy2 : i32,};fn floatToBits(value: f32)->i32 {return bitcast(value);}\nfn bitsToFloat(value: i32)->f32 {return bitcast(value);}\nfn atomicMinFloat(atomicVar: ptr,read_write>,value: f32) {let intValue=floatToBits(value);loop {let oldIntValue=atomicLoad(atomicVar);let oldValue=bitsToFloat(oldIntValue);if (value>=oldValue) {break;}\nif (atomicCompareExchangeWeak(atomicVar,oldIntValue,intValue).old_value==oldIntValue) {break;}}}\nfn atomicMaxFloat(atomicVar: ptr,read_write>,value: f32) {let intValue=floatToBits(value);loop {let oldIntValue=atomicLoad(atomicVar);let oldValue=bitsToFloat(oldIntValue);if (value<=oldValue) {break;}\nif (atomicCompareExchangeWeak(atomicVar,oldIntValue,intValue).old_value==oldIntValue) {break;}}}\nfn readMatrixFromRawSampler(smp : texture_2d,index : f32)->mat4x4\n{let offset=i32(index) *4; \nlet m0=textureLoad(smp,vec2(offset+0,0),0);let m1=textureLoad(smp,vec2(offset+1,0),0);let m2=textureLoad(smp,vec2(offset+2,0),0);let m3=textureLoad(smp,vec2(offset+3,0),0);return mat4x4(m0,m1,m2,m3);}\nconst identity=mat4x4f(\nvec4f(1.0,0.0,0.0,0.0),\nvec4f(0.0,1.0,0.0,0.0),\nvec4f(0.0,0.0,1.0,0.0),\nvec4f(0.0,0.0,0.0,1.0)\n);struct Settings {morphTargetTextureInfo: vec3f,\nmorphTargetCount: i32,\nindexResult : u32,};@group(0) @binding(0) var positionBuffer : array;@group(0) @binding(1) var resultBuffer : array;@group(0) @binding(7) var settings : Settings;\n#if NUM_BONE_INFLUENCERS>0\n@group(0) @binding(2) var boneSampler : texture_2d;@group(0) @binding(3) var indexBuffer : array;@group(0) @binding(4) var weightBuffer : array;\n#if NUM_BONE_INFLUENCERS>4\n@group(0) @binding(5) var indexExtraBuffer : array;@group(0) @binding(6) var weightExtraBuffer : array;\n#endif\n#endif\n#ifdef MORPHTARGETS\n@group(0) @binding(8) var morphTargets : texture_2d_array;@group(0) @binding(9) var morphTargetInfluences : array;@group(0) @binding(10) var morphTargetTextureIndices : array;\n#endif\n#ifdef MORPHTARGETS\nfn readVector3FromRawSampler(targetIndex : i32,vertexIndex : u32)->vec3f\n{ \nlet vertexID=f32(vertexIndex)*settings.morphTargetTextureInfo.x;let y=floor(vertexID/settings.morphTargetTextureInfo.y);let x=vertexID-y*settings.morphTargetTextureInfo.y;let textureUV=vec2(i32(x),i32(y));return textureLoad(morphTargets,textureUV,i32(morphTargetTextureIndices[targetIndex]),0).xyz;}\n#endif\n@compute @workgroup_size(256,1,1)\nfn main(@builtin(global_invocation_id) global_id : vec3) {let index=global_id.x;if (index>=arrayLength(&positionBuffer)/3) {return;}\nlet position=vec3f(positionBuffer[index*3],positionBuffer[index*3+1],positionBuffer[index*3+2]);var finalWorld=identity;var positionUpdated=position;\n#if NUM_BONE_INFLUENCERS>0\nvar influence : mat4x4;let matricesIndices=indexBuffer[index];let matricesWeights=weightBuffer[index];influence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\ninfluence=influence+readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1];\n#endif \n#if NUM_BONE_INFLUENCERS>2\ninfluence=influence+readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2];\n#endif \n#if NUM_BONE_INFLUENCERS>3\ninfluence=influence+readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3];\n#endif \n#if NUM_BONE_INFLUENCERS>4\nlet matricesIndicesExtra=indexExtraBuffer[index];let matricesWeightsExtra=weightExtraBuffer[index];influence=influence+readMatrixFromRawSampler(boneSampler,matricesIndicesExtra.x)*matricesWeightsExtra.x;\n#if NUM_BONE_INFLUENCERS>5\ninfluence=influence+readMatrixFromRawSampler(boneSampler,matricesIndicesExtra.y)*matricesWeightsExtra.y;\n#endif \n#if NUM_BONE_INFLUENCERS>6\ninfluence=influence+readMatrixFromRawSampler(boneSampler,matricesIndicesExtra.z)*matricesWeightsExtra.z;\n#endif \n#if NUM_BONE_INFLUENCERS>7\ninfluence=influence+readMatrixFromRawSampler(boneSampler,matricesIndicesExtra.w)*matricesWeightsExtra.w;\n#endif \n#endif \nfinalWorld=finalWorld*influence;\n#endif\n#ifdef MORPHTARGETS\nfor (var i=0; i=settings.morphTargetCount) {break;}\npositionUpdated=positionUpdated+(readVector3FromRawSampler(i,index)-position)*morphTargetInfluences[i];}\n#endif\nvar worldPos=finalWorld*vec4f(positionUpdated.x,positionUpdated.y,positionUpdated.z,1.0);atomicMinFloat(&resultBuffer[settings.indexResult].minX,worldPos.x);atomicMinFloat(&resultBuffer[settings.indexResult].minY,worldPos.y);atomicMinFloat(&resultBuffer[settings.indexResult].minZ,worldPos.z);atomicMaxFloat(&resultBuffer[settings.indexResult].maxX,worldPos.x);atomicMaxFloat(&resultBuffer[settings.indexResult].maxY,worldPos.y);atomicMaxFloat(&resultBuffer[settings.indexResult].maxZ,worldPos.z);}\n`;\nz.ShadersStoreWGSL[kL] = GL;\nclass kp {\n /**\n * Creates a new block\n * @param minPoint defines the minimum vector (in world space) of the block's bounding box\n * @param maxPoint defines the maximum vector (in world space) of the block's bounding box\n * @param capacity defines the maximum capacity of this block (if capacity is reached the block will be split into sub blocks)\n * @param depth defines the current depth of this block in the octree\n * @param maxDepth defines the maximal depth allowed (beyond this value, the capacity is ignored)\n * @param creationFunc defines a callback to call when an element is added to the block\n */\n constructor(e, t, i, s, r, n) {\n this.entries = [], this._boundingVectors = new Array(), this._capacity = i, this._depth = s, this._maxDepth = r, this._creationFunc = n, this._minPoint = e, this._maxPoint = t, this._boundingVectors.push(e.clone()), this._boundingVectors.push(t.clone()), this._boundingVectors.push(e.clone()), this._boundingVectors[2].x = t.x, this._boundingVectors.push(e.clone()), this._boundingVectors[3].y = t.y, this._boundingVectors.push(e.clone()), this._boundingVectors[4].z = t.z, this._boundingVectors.push(t.clone()), this._boundingVectors[5].z = e.z, this._boundingVectors.push(t.clone()), this._boundingVectors[6].x = e.x, this._boundingVectors.push(t.clone()), this._boundingVectors[7].y = e.y;\n }\n // Property\n /**\n * Gets the maximum capacity of this block (if capacity is reached the block will be split into sub blocks)\n */\n get capacity() {\n return this._capacity;\n }\n /**\n * Gets the minimum vector (in world space) of the block's bounding box\n */\n get minPoint() {\n return this._minPoint;\n }\n /**\n * Gets the maximum vector (in world space) of the block's bounding box\n */\n get maxPoint() {\n return this._maxPoint;\n }\n // Methods\n /**\n * Add a new element to this block\n * @param entry defines the element to add\n */\n addEntry(e) {\n if (this.blocks) {\n for (let t = 0; t < this.blocks.length; t++)\n this.blocks[t].addEntry(e);\n return;\n }\n this._creationFunc(e, this), this.entries.length > this.capacity && this._depth < this._maxDepth && this.createInnerBlocks();\n }\n /**\n * Remove an element from this block\n * @param entry defines the element to remove\n */\n removeEntry(e) {\n if (this.blocks) {\n for (let i = 0; i < this.blocks.length; i++)\n this.blocks[i].removeEntry(e);\n return;\n }\n const t = this.entries.indexOf(e);\n t > -1 && this.entries.splice(t, 1);\n }\n /**\n * Add an array of elements to this block\n * @param entries defines the array of elements to add\n */\n addEntries(e) {\n for (let t = 0; t < e.length; t++) {\n const i = e[t];\n this.addEntry(i);\n }\n }\n /**\n * Test if the current block intersects the frustum planes and if yes, then add its content to the selection array\n * @param frustumPlanes defines the frustum planes to test\n * @param selection defines the array to store current content if selection is positive\n * @param allowDuplicate defines if the selection array can contains duplicated entries\n */\n select(e, t, i) {\n if (Kn.IsInFrustum(this._boundingVectors, e)) {\n if (this.blocks) {\n for (let s = 0; s < this.blocks.length; s++)\n this.blocks[s].select(e, t, i);\n return;\n }\n i ? t.concat(this.entries) : t.concatWithNoDuplicate(this.entries);\n }\n }\n /**\n * Test if the current block intersect with the given bounding sphere and if yes, then add its content to the selection array\n * @param sphereCenter defines the bounding sphere center\n * @param sphereRadius defines the bounding sphere radius\n * @param selection defines the array to store current content if selection is positive\n * @param allowDuplicate defines if the selection array can contains duplicated entries\n */\n intersects(e, t, i, s) {\n if (Kn.IntersectsSphere(this._minPoint, this._maxPoint, e, t)) {\n if (this.blocks) {\n for (let r = 0; r < this.blocks.length; r++)\n this.blocks[r].intersects(e, t, i, s);\n return;\n }\n s ? i.concat(this.entries) : i.concatWithNoDuplicate(this.entries);\n }\n }\n /**\n * Test if the current block intersect with the given ray and if yes, then add its content to the selection array\n * @param ray defines the ray to test with\n * @param selection defines the array to store current content if selection is positive\n */\n intersectsRay(e, t) {\n if (e.intersectsBoxMinMax(this._minPoint, this._maxPoint)) {\n if (this.blocks) {\n for (let i = 0; i < this.blocks.length; i++)\n this.blocks[i].intersectsRay(e, t);\n return;\n }\n t.concatWithNoDuplicate(this.entries);\n }\n }\n /**\n * Subdivide the content into child blocks (this block will then be empty)\n */\n createInnerBlocks() {\n kp._CreateBlocks(this._minPoint, this._maxPoint, this.entries, this._capacity, this._depth, this._maxDepth, this, this._creationFunc), this.entries.splice(0);\n }\n /**\n * @internal\n */\n static _CreateBlocks(e, t, i, s, r, n, o, l) {\n o.blocks = new Array();\n const h = new g((t.x - e.x) / 2, (t.y - e.y) / 2, (t.z - e.z) / 2);\n for (let c = 0; c < 2; c++)\n for (let u = 0; u < 2; u++)\n for (let d = 0; d < 2; d++) {\n const f = e.add(h.multiplyByFloats(c, u, d)), p = e.add(h.multiplyByFloats(c + 1, u + 1, d + 1)), _ = new kp(f, p, s, r + 1, n, l);\n _.addEntries(i), o.blocks.push(_);\n }\n }\n}\nclass Qh {\n /**\n * Creates a octree\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimizeOctrees\n * @param creationFunc function to be used to instantiate the octree\n * @param maxBlockCapacity defines the maximum number of meshes you want on your octree's leaves (default: 64)\n * @param maxDepth defines the maximum depth (sub-levels) for your octree. Default value is 2, which means 8 8 8 = 512 blocks :) (This parameter takes precedence over capacity.)\n */\n constructor(e, t, i = 2) {\n this.maxDepth = i, this.dynamicContent = [], this._maxBlockCapacity = t || 64, this._selectionContent = new Mo(1024), this._creationFunc = e;\n }\n // Methods\n /**\n * Updates the octree by adding blocks for the passed in meshes within the min and max world parameters\n * @param worldMin worldMin for the octree blocks var blockSize = new Vector3((worldMax.x - worldMin.x) / 2, (worldMax.y - worldMin.y) / 2, (worldMax.z - worldMin.z) / 2);\n * @param worldMax worldMax for the octree blocks var blockSize = new Vector3((worldMax.x - worldMin.x) / 2, (worldMax.y - worldMin.y) / 2, (worldMax.z - worldMin.z) / 2);\n * @param entries meshes to be added to the octree blocks\n */\n update(e, t, i) {\n kp._CreateBlocks(e, t, i, this._maxBlockCapacity, 0, this.maxDepth, this, this._creationFunc);\n }\n /**\n * Adds a mesh to the octree\n * @param entry Mesh to add to the octree\n */\n addMesh(e) {\n for (let t = 0; t < this.blocks.length; t++)\n this.blocks[t].addEntry(e);\n }\n /**\n * Remove an element from the octree\n * @param entry defines the element to remove\n */\n removeMesh(e) {\n for (let t = 0; t < this.blocks.length; t++)\n this.blocks[t].removeEntry(e);\n }\n /**\n * Selects an array of meshes within the frustum\n * @param frustumPlanes The frustum planes to use which will select all meshes within it\n * @param allowDuplicate If duplicate objects are allowed in the resulting object array\n * @returns array of meshes within the frustum\n */\n select(e, t) {\n this._selectionContent.reset();\n for (let i = 0; i < this.blocks.length; i++)\n this.blocks[i].select(e, this._selectionContent, t);\n return t ? this._selectionContent.concat(this.dynamicContent) : this._selectionContent.concatWithNoDuplicate(this.dynamicContent), this._selectionContent;\n }\n /**\n * Test if the octree intersect with the given bounding sphere and if yes, then add its content to the selection array\n * @param sphereCenter defines the bounding sphere center\n * @param sphereRadius defines the bounding sphere radius\n * @param allowDuplicate defines if the selection array can contains duplicated entries\n * @returns an array of objects that intersect the sphere\n */\n intersects(e, t, i) {\n this._selectionContent.reset();\n for (let s = 0; s < this.blocks.length; s++)\n this.blocks[s].intersects(e, t, this._selectionContent, i);\n return i ? this._selectionContent.concat(this.dynamicContent) : this._selectionContent.concatWithNoDuplicate(this.dynamicContent), this._selectionContent;\n }\n /**\n * Test if the octree intersect with the given ray and if yes, then add its content to resulting array\n * @param ray defines the ray to test with\n * @returns array of intersected objects\n */\n intersectsRay(e) {\n this._selectionContent.reset();\n for (let t = 0; t < this.blocks.length; t++)\n this.blocks[t].intersectsRay(e, this._selectionContent);\n return this._selectionContent.concatWithNoDuplicate(this.dynamicContent), this._selectionContent;\n }\n}\nQh.CreationFuncForMeshes = (a, e) => {\n const t = a.getBoundingInfo();\n !a.isBlocked && t.boundingBox.intersectsMinMax(e.minPoint, e.maxPoint) && e.entries.push(a);\n};\nQh.CreationFuncForSubMeshes = (a, e) => {\n a.getBoundingInfo().boundingBox.intersectsMinMax(e.minPoint, e.maxPoint) && e.entries.push(a);\n};\nDe.prototype.createOrUpdateSelectionOctree = function(a = 64, e = 2) {\n let t = this._getComponent(me.NAME_OCTREE);\n t || (t = new W0(this), this._addComponent(t)), this._selectionOctree || (this._selectionOctree = new Qh(Qh.CreationFuncForMeshes, a, e));\n const i = this.getWorldExtends();\n return this._selectionOctree.update(i.min, i.max, this.meshes), this._selectionOctree;\n};\nObject.defineProperty(De.prototype, \"selectionOctree\", {\n get: function() {\n return this._selectionOctree;\n },\n enumerable: !0,\n configurable: !0\n});\nPt.prototype.createOrUpdateSubmeshesOctree = function(a = 64, e = 2) {\n const t = this.getScene();\n let i = t._getComponent(me.NAME_OCTREE);\n i || (i = new W0(t), t._addComponent(i)), this._submeshesOctree || (this._submeshesOctree = new Qh(Qh.CreationFuncForSubMeshes, a, e)), this.computeWorldMatrix(!0);\n const r = this.getBoundingInfo().boundingBox;\n return this._submeshesOctree.update(r.minimumWorld, r.maximumWorld, this.subMeshes), this._submeshesOctree;\n};\nclass W0 {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_OCTREE, this.checksIsEnabled = !0, this._tempRay = new nt(g.Zero(), new g(1, 1, 1)), e = e || Me.LastCreatedScene, e && (this.scene = e, this.scene.getActiveMeshCandidates = () => this.getActiveMeshCandidates(), this.scene.getActiveSubMeshCandidates = (t) => this.getActiveSubMeshCandidates(t), this.scene.getCollidingSubMeshCandidates = (t, i) => this.getCollidingSubMeshCandidates(t, i), this.scene.getIntersectingSubMeshCandidates = (t, i) => this.getIntersectingSubMeshCandidates(t, i));\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene.onMeshRemovedObservable.add((e) => {\n const t = this.scene.selectionOctree;\n if (t != null) {\n const i = t.dynamicContent.indexOf(e);\n i !== -1 && t.dynamicContent.splice(i, 1);\n }\n }), this.scene.onMeshImportedObservable.add((e) => {\n const t = this.scene.selectionOctree;\n t != null && t.addMesh(e);\n });\n }\n /**\n * Return the list of active meshes\n * @returns the list of active meshes\n */\n getActiveMeshCandidates() {\n var e;\n return ((e = this.scene._selectionOctree) == null ? void 0 : e.select(this.scene.frustumPlanes)) || this.scene._getDefaultMeshCandidates();\n }\n /**\n * Return the list of active sub meshes\n * @param mesh The mesh to get the candidates sub meshes from\n * @returns the list of active sub meshes\n */\n getActiveSubMeshCandidates(e) {\n return e._submeshesOctree && e.useOctreeForRenderingSelection ? e._submeshesOctree.select(this.scene.frustumPlanes) : this.scene._getDefaultSubMeshCandidates(e);\n }\n /**\n * Return the list of sub meshes intersecting with a given local ray\n * @param mesh defines the mesh to find the submesh for\n * @param localRay defines the ray in local space\n * @returns the list of intersecting sub meshes\n */\n getIntersectingSubMeshCandidates(e, t) {\n return e._submeshesOctree && e.useOctreeForPicking ? (nt.TransformToRef(t, e.getWorldMatrix(), this._tempRay), e._submeshesOctree.intersectsRay(this._tempRay)) : this.scene._getDefaultSubMeshCandidates(e);\n }\n /**\n * Return the list of sub meshes colliding with a collider\n * @param mesh defines the mesh to find the submesh for\n * @param collider defines the collider to evaluate the collision against\n * @returns the list of colliding sub meshes\n */\n getCollidingSubMeshCandidates(e, t) {\n if (e._submeshesOctree && e.useOctreeForCollisions) {\n const i = t._velocityWorldLength + Math.max(t._radius.x, t._radius.y, t._radius.z);\n return e._submeshesOctree.intersects(t._basePointWorld, i);\n }\n return this.scene._getDefaultSubMeshCandidates(e);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n }\n /**\n * Disposes the component and the associated resources.\n */\n dispose() {\n }\n}\nLt.AddNodeConstructor(\"Light_Type_3\", (a, e) => () => new Gl(a, g.Zero(), e));\nclass Gl extends at {\n /**\n * Creates a HemisphericLight object in the scene according to the passed direction (Vector3).\n * The HemisphericLight simulates the ambient environment light, so the passed direction is the light reflection direction, not the incoming direction.\n * The HemisphericLight can't cast shadows.\n * Documentation : https://doc.babylonjs.com/features/featuresDeepDive/lights/lights_introduction\n * @param name The friendly name of the light\n * @param direction The direction of the light reflection\n * @param scene The scene the light belongs to\n */\n constructor(e, t, i) {\n super(e, i), this.groundColor = new re(0, 0, 0), this.direction = t || g.Up();\n }\n _buildUniformLayout() {\n this._uniformBuffer.addUniform(\"vLightData\", 4), this._uniformBuffer.addUniform(\"vLightDiffuse\", 4), this._uniformBuffer.addUniform(\"vLightSpecular\", 4), this._uniformBuffer.addUniform(\"vLightGround\", 3), this._uniformBuffer.addUniform(\"shadowsInfo\", 3), this._uniformBuffer.addUniform(\"depthValues\", 2), this._uniformBuffer.create();\n }\n /**\n * Returns the string \"HemisphericLight\".\n * @returns The class name\n */\n getClassName() {\n return \"HemisphericLight\";\n }\n /**\n * Sets the HemisphericLight direction towards the passed target (Vector3).\n * Returns the updated direction.\n * @param target The target the direction should point to\n * @returns The computed direction\n */\n setDirectionToTarget(e) {\n return this.direction = g.Normalize(e.subtract(g.Zero())), this.direction;\n }\n /**\n * Returns the shadow generator associated to the light.\n * @returns Always null for hemispheric lights because it does not support shadows.\n */\n getShadowGenerator() {\n return null;\n }\n /**\n * Sets the passed Effect object with the HemisphericLight normalized direction and color and the passed name (string).\n * @param _effect The effect to update\n * @param lightIndex The index of the light in the effect to update\n * @returns The hemispheric light\n */\n transferToEffect(e, t) {\n const i = g.Normalize(this.direction);\n return this._uniformBuffer.updateFloat4(\"vLightData\", i.x, i.y, i.z, 0, t), this._uniformBuffer.updateColor3(\"vLightGround\", this.groundColor.scale(this.intensity), t), this;\n }\n transferToNodeMaterialEffect(e, t) {\n const i = g.Normalize(this.direction);\n return e.setFloat3(t, i.x, i.y, i.z), this;\n }\n /**\n * Computes the world matrix of the node\n * @returns the world matrix\n */\n computeWorldMatrix() {\n return this._worldMatrix || (this._worldMatrix = O.Identity()), this._worldMatrix;\n }\n /**\n * Returns the integer 3.\n * @returns The light Type id as a constant defines in Light.LIGHTTYPEID_x\n */\n getTypeID() {\n return at.LIGHTTYPEID_HEMISPHERICLIGHT;\n }\n /**\n * Prepares the list of defines specific to the light type.\n * @param defines the list of defines\n * @param lightIndex defines the index of the light for the effect\n */\n prepareLightSpecificDefines(e, t) {\n e[\"HEMILIGHT\" + t] = !0;\n }\n}\ny([\n bi()\n], Gl.prototype, \"groundColor\", void 0);\ny([\n Zs()\n], Gl.prototype, \"direction\", void 0);\nU(\"BABYLON.HemisphericLight\", Gl);\nclass Ci {\n /**\n * Gets the camera that is used to render the utility layer (when not set, this will be the last active camera)\n * @param getRigParentIfPossible if the current active camera is a rig camera, should its parent camera be returned\n * @returns the camera that is used when rendering the utility layer\n */\n getRenderCamera(e) {\n if (this._renderCamera)\n return this._renderCamera;\n {\n let t;\n return this.originalScene.activeCameras && this.originalScene.activeCameras.length > 1 ? t = this.originalScene.activeCameras[this.originalScene.activeCameras.length - 1] : t = this.originalScene.activeCamera, e && t && t.isRigCamera ? t.rigParent : t;\n }\n }\n /**\n * Sets the camera that should be used when rendering the utility layer (If set to null the last active camera will be used)\n * @param cam the camera that should be used when rendering the utility layer\n */\n setRenderCamera(e) {\n this._renderCamera = e;\n }\n /**\n * @internal\n * Light which used by gizmos to get light shading\n */\n _getSharedGizmoLight() {\n return this._sharedGizmoLight || (this._sharedGizmoLight = new Gl(\"shared gizmo light\", new g(0, 1, 0), this.utilityLayerScene), this._sharedGizmoLight.intensity = 2, this._sharedGizmoLight.groundColor = re.Gray()), this._sharedGizmoLight;\n }\n /**\n * A shared utility layer that can be used to overlay objects into a scene (Depth map of the previous scene is cleared before drawing on top of it)\n */\n static get DefaultUtilityLayer() {\n return Ci._DefaultUtilityLayer == null ? Ci._CreateDefaultUtilityLayerFromScene(Me.LastCreatedScene) : Ci._DefaultUtilityLayer;\n }\n /**\n * Creates an utility layer, and set it as a default utility layer\n * @param scene associated scene\n * @internal\n */\n static _CreateDefaultUtilityLayerFromScene(e) {\n return Ci._DefaultUtilityLayer = new Ci(e), Ci._DefaultUtilityLayer.originalScene.onDisposeObservable.addOnce(() => {\n Ci._DefaultUtilityLayer = null;\n }), Ci._DefaultUtilityLayer;\n }\n /**\n * A shared utility layer that can be used to embed objects into a scene (Depth map of the previous scene is not cleared before drawing on top of it)\n */\n static get DefaultKeepDepthUtilityLayer() {\n return Ci._DefaultKeepDepthUtilityLayer == null && (Ci._DefaultKeepDepthUtilityLayer = new Ci(Me.LastCreatedScene), Ci._DefaultKeepDepthUtilityLayer.utilityLayerScene.autoClearDepthAndStencil = !1, Ci._DefaultKeepDepthUtilityLayer.originalScene.onDisposeObservable.addOnce(() => {\n Ci._DefaultKeepDepthUtilityLayer = null;\n })), Ci._DefaultKeepDepthUtilityLayer;\n }\n /**\n * Instantiates a UtilityLayerRenderer\n * @param originalScene the original scene that will be rendered on top of\n * @param handleEvents boolean indicating if the utility layer should handle events\n */\n constructor(e, t = !0) {\n this.originalScene = e, this._pointerCaptures = {}, this._lastPointerEvents = {}, this._sharedGizmoLight = null, this._renderCamera = null, this.pickUtilitySceneFirst = !0, this.shouldRender = !0, this.onlyCheckPointerDownEvents = !0, this.processAllEvents = !1, this.pickingEnabled = !0, this.onPointerOutObservable = new G(), this.utilityLayerScene = new De(e.getEngine(), { virtual: !0 }), this.utilityLayerScene.useRightHandedSystem = e.useRightHandedSystem, this.utilityLayerScene._allowPostProcessClearColor = !1, this.utilityLayerScene.postProcessesEnabled = !1, this.utilityLayerScene.detachControl(), t && (this._originalPointerObserver = e.onPrePointerObservable.add((i) => {\n if (!this.utilityLayerScene.activeCamera || !this.pickingEnabled || !this.processAllEvents && i.type !== Pe.POINTERMOVE && i.type !== Pe.POINTERUP && i.type !== Pe.POINTERDOWN && i.type !== Pe.POINTERDOUBLETAP)\n return;\n this.utilityLayerScene.pointerX = e.pointerX, this.utilityLayerScene.pointerY = e.pointerY;\n const s = i.event;\n if (e.isPointerCaptured(s.pointerId)) {\n this._pointerCaptures[s.pointerId] = !1;\n return;\n }\n const r = (o) => {\n let l = null;\n if (i.nearInteractionPickingInfo)\n i.nearInteractionPickingInfo.pickedMesh.getScene() == o ? l = i.nearInteractionPickingInfo : l = new Cs();\n else if (o !== this.utilityLayerScene && i.originalPickingInfo)\n l = i.originalPickingInfo;\n else {\n let h = null;\n this._renderCamera && (h = o._activeCamera, o._activeCamera = this._renderCamera, i.ray = null), l = i.ray ? o.pickWithRay(i.ray) : o.pick(e.pointerX, e.pointerY), h && (o._activeCamera = h);\n }\n return l;\n }, n = r(this.utilityLayerScene);\n if (!i.ray && n && (i.ray = n.ray), this.utilityLayerScene.onPrePointerObservable.notifyObservers(i), this.onlyCheckPointerDownEvents && i.type != Pe.POINTERDOWN) {\n i.skipOnPointerObservable || this.utilityLayerScene.onPointerObservable.notifyObservers(new Mn(i.type, i.event, n), i.type), i.type === Pe.POINTERUP && this._pointerCaptures[s.pointerId] && (this._pointerCaptures[s.pointerId] = !1);\n return;\n }\n if (this.utilityLayerScene.autoClearDepthAndStencil || this.pickUtilitySceneFirst)\n n && n.hit && (i.skipOnPointerObservable || this.utilityLayerScene.onPointerObservable.notifyObservers(new Mn(i.type, i.event, n), i.type), i.skipOnPointerObservable = !0);\n else {\n const o = r(e), l = i.event;\n o && n && (n.distance === 0 && o.pickedMesh ? this.mainSceneTrackerPredicate && this.mainSceneTrackerPredicate(o.pickedMesh) ? (this._notifyObservers(i, o, l), i.skipOnPointerObservable = !0) : i.type === Pe.POINTERDOWN ? this._pointerCaptures[l.pointerId] = !0 : (i.type === Pe.POINTERMOVE || i.type === Pe.POINTERUP) && (this._lastPointerEvents[l.pointerId] && (this.onPointerOutObservable.notifyObservers(l.pointerId), delete this._lastPointerEvents[l.pointerId]), this._notifyObservers(i, o, l)) : !this._pointerCaptures[l.pointerId] && (n.distance < o.distance || o.distance === 0) ? (this._notifyObservers(i, n, l), i.skipOnPointerObservable || (i.skipOnPointerObservable = n.distance > 0)) : !this._pointerCaptures[l.pointerId] && n.distance >= o.distance && (this.mainSceneTrackerPredicate && this.mainSceneTrackerPredicate(o.pickedMesh) ? (this._notifyObservers(i, o, l), i.skipOnPointerObservable = !0) : ((i.type === Pe.POINTERMOVE || i.type === Pe.POINTERUP) && this._lastPointerEvents[l.pointerId] && (this.onPointerOutObservable.notifyObservers(l.pointerId), delete this._lastPointerEvents[l.pointerId]), this._notifyObservers(i, n, l))), i.type === Pe.POINTERUP && this._pointerCaptures[l.pointerId] && (this._pointerCaptures[l.pointerId] = !1));\n }\n }), this._originalPointerObserver && e.onPrePointerObservable.makeObserverTopPriority(this._originalPointerObserver)), this.utilityLayerScene.autoClear = !1, this._afterRenderObserver = this.originalScene.onAfterRenderCameraObservable.add((i) => {\n this.shouldRender && i == this.getRenderCamera() && this.render();\n }), this._sceneDisposeObserver = this.originalScene.onDisposeObservable.add(() => {\n this.dispose();\n }), this._updateCamera();\n }\n _notifyObservers(e, t, i) {\n e.skipOnPointerObservable || (this.utilityLayerScene.onPointerObservable.notifyObservers(new Mn(e.type, e.event, t), e.type), this._lastPointerEvents[i.pointerId] = !0);\n }\n /**\n * Renders the utility layers scene on top of the original scene\n */\n render() {\n if (this._updateCamera(), this.utilityLayerScene.activeCamera) {\n const e = this.utilityLayerScene.activeCamera.getScene(), t = this.utilityLayerScene.activeCamera;\n t._scene = this.utilityLayerScene, t.leftCamera && (t.leftCamera._scene = this.utilityLayerScene), t.rightCamera && (t.rightCamera._scene = this.utilityLayerScene), this.utilityLayerScene.render(!1), t._scene = e, t.leftCamera && (t.leftCamera._scene = e), t.rightCamera && (t.rightCamera._scene = e);\n }\n }\n /**\n * Disposes of the renderer\n */\n dispose() {\n this.onPointerOutObservable.clear(), this._afterRenderObserver && this.originalScene.onAfterCameraRenderObservable.remove(this._afterRenderObserver), this._sceneDisposeObserver && this.originalScene.onDisposeObservable.remove(this._sceneDisposeObserver), this._originalPointerObserver && this.originalScene.onPrePointerObservable.remove(this._originalPointerObserver), this.utilityLayerScene.dispose();\n }\n _updateCamera() {\n this.utilityLayerScene.cameraToUseForPointers = this.getRenderCamera(), this.utilityLayerScene.activeCamera = this.getRenderCamera();\n }\n}\nCi._DefaultUtilityLayer = null;\nCi._DefaultKeepDepthUtilityLayer = null;\nvar Xb;\n(function(a) {\n a[a.Origin = 0] = \"Origin\", a[a.Pivot = 1] = \"Pivot\";\n})(Xb || (Xb = {}));\nvar $b;\n(function(a) {\n a[a.World = 0] = \"World\", a[a.Local = 1] = \"Local\";\n})($b || ($b = {}));\nclass qs {\n /**\n * Ratio for the scale of the gizmo (Default: 1)\n */\n set scaleRatio(e) {\n this._scaleRatio = e;\n }\n get scaleRatio() {\n return this._scaleRatio;\n }\n /**\n * True when the mouse pointer is hovered a gizmo mesh\n */\n get isHovered() {\n return this._isHovered;\n }\n /**\n * Mesh that the gizmo will be attached to. (eg. on a drag gizmo the mesh that will be dragged)\n * * When set, interactions will be enabled\n */\n get attachedMesh() {\n return this._attachedMesh;\n }\n set attachedMesh(e) {\n this._attachedMesh = e, e && (this._attachedNode = e), this._rootMesh.setEnabled(!!e), this._attachedNodeChanged(e);\n }\n /**\n * Node that the gizmo will be attached to. (eg. on a drag gizmo the mesh, bone or NodeTransform that will be dragged)\n * * When set, interactions will be enabled\n */\n get attachedNode() {\n return this._attachedNode;\n }\n set attachedNode(e) {\n this._attachedNode = e, this._attachedMesh = null, this._rootMesh.setEnabled(!!e), this._attachedNodeChanged(e);\n }\n /**\n * Disposes and replaces the current meshes in the gizmo with the specified mesh\n * @param mesh The mesh to replace the default mesh of the gizmo\n */\n setCustomMesh(e) {\n if (e.getScene() != this.gizmoLayer.utilityLayerScene)\n throw \"When setting a custom mesh on a gizmo, the custom meshes scene must be the same as the gizmos (eg. gizmo.gizmoLayer.utilityLayerScene)\";\n this._rootMesh.getChildMeshes().forEach((t) => {\n t.dispose();\n }), e.parent = this._rootMesh, this._customMeshSet = !0;\n }\n /**\n * Additional transform applied to the gizmo.\n * It's useful when the gizmo is attached to a bone: if the bone is part of a skeleton attached to a mesh, you should define the mesh as additionalTransformNode if you want the gizmo to be displayed at the bone's correct location.\n * Otherwise, as the gizmo is relative to the skeleton root, the mesh transformation will not be taken into account.\n */\n get additionalTransformNode() {\n return this._additionalTransformNode;\n }\n set additionalTransformNode(e) {\n this._additionalTransformNode = e;\n }\n /**\n * If set the gizmo's rotation will be updated to match the attached mesh each frame (Default: true)\n * NOTE: This is only possible for meshes with uniform scaling, as otherwise it's not possible to decompose the rotation\n */\n set updateGizmoRotationToMatchAttachedMesh(e) {\n this._updateGizmoRotationToMatchAttachedMesh = e;\n }\n get updateGizmoRotationToMatchAttachedMesh() {\n return this._updateGizmoRotationToMatchAttachedMesh;\n }\n /**\n * If set the gizmo's position will be updated to match the attached mesh each frame (Default: true)\n */\n set updateGizmoPositionToMatchAttachedMesh(e) {\n this._updateGizmoPositionToMatchAttachedMesh = e;\n }\n get updateGizmoPositionToMatchAttachedMesh() {\n return this._updateGizmoPositionToMatchAttachedMesh;\n }\n /**\n * Defines where the gizmo will be positioned if `updateGizmoPositionToMatchAttachedMesh` is enabled.\n * (Default: GizmoAnchorPoint.Origin)\n */\n set anchorPoint(e) {\n this._anchorPoint = e;\n }\n get anchorPoint() {\n return this._anchorPoint;\n }\n /**\n * Set the coordinate system to use. By default it's local.\n * But it's possible for a user to tweak so its local for translation and world for rotation.\n * In that case, setting the coordinate system will change `updateGizmoRotationToMatchAttachedMesh` and `updateGizmoPositionToMatchAttachedMesh`\n */\n set coordinatesMode(e) {\n this._coordinatesMode = e;\n const t = e == 1;\n this.updateGizmoRotationToMatchAttachedMesh = t, this.updateGizmoPositionToMatchAttachedMesh = !0;\n }\n get coordinatesMode() {\n return this._coordinatesMode;\n }\n /**\n * When set, the gizmo will always appear the same size no matter where the camera is (default: true)\n */\n set updateScale(e) {\n this._updateScale = e;\n }\n get updateScale() {\n return this._updateScale;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _attachedNodeChanged(e) {\n }\n /**\n * Creates a gizmo\n * @param gizmoLayer The utility layer the gizmo will be added to\n */\n constructor(e = Ci.DefaultUtilityLayer) {\n this.gizmoLayer = e, this._attachedMesh = null, this._attachedNode = null, this._customRotationQuaternion = null, this._scaleRatio = 1, this._isHovered = !1, this._customMeshSet = !1, this._updateGizmoRotationToMatchAttachedMesh = !0, this._updateGizmoPositionToMatchAttachedMesh = !0, this._anchorPoint = 0, this._updateScale = !0, this._coordinatesMode = 1, this._interactionsEnabled = !0, this._rightHandtoLeftHandMatrix = O.RotationY(Math.PI), this._rootMesh = new H(\"gizmoRootNode\", e.utilityLayerScene), this._rootMesh.rotationQuaternion = se.Identity(), this._beforeRenderObserver = this.gizmoLayer.utilityLayerScene.onBeforeRenderObservable.add(() => {\n this._update();\n });\n }\n /**\n * posture that the gizmo will be display\n * When set null, default value will be used (Quaternion(0, 0, 0, 1))\n */\n get customRotationQuaternion() {\n return this._customRotationQuaternion;\n }\n set customRotationQuaternion(e) {\n this._customRotationQuaternion = e;\n }\n /**\n * Updates the gizmo to match the attached mesh's position/rotation\n */\n _update() {\n if (this.attachedNode) {\n let e = this.attachedNode;\n if (this.attachedMesh && (e = this.attachedMesh || this.attachedNode), this.updateGizmoPositionToMatchAttachedMesh)\n if (this.anchorPoint == 1 && e.getAbsolutePivotPoint) {\n const t = e.getAbsolutePivotPoint();\n this._rootMesh.position.copyFrom(t);\n } else {\n const t = e.getWorldMatrix().getRow(3), i = t ? t.toVector3() : new g(0, 0, 0);\n this._rootMesh.position.copyFrom(i);\n }\n if (this.updateGizmoRotationToMatchAttachedMesh) {\n const i = e._isMesh || e.getClassName() === \"AbstractMesh\" || e.getClassName() === \"TransformNode\" || e.getClassName() === \"InstancedMesh\" ? e : void 0;\n e.getWorldMatrix().decompose(void 0, this._rootMesh.rotationQuaternion, void 0, qs.PreserveScaling ? i : void 0), this._rootMesh.rotationQuaternion.normalize();\n } else\n this._customRotationQuaternion ? this._rootMesh.rotationQuaternion.copyFrom(this._customRotationQuaternion) : this._rootMesh.rotationQuaternion.set(0, 0, 0, 1);\n if (this.updateScale) {\n const t = this.gizmoLayer.utilityLayerScene.activeCamera, i = t.globalPosition;\n this._rootMesh.position.subtractToRef(i, w.Vector3[0]);\n let s = this.scaleRatio;\n if (t.mode == Fe.ORTHOGRAPHIC_CAMERA) {\n if (t.orthoTop && t.orthoBottom) {\n const r = t.orthoTop - t.orthoBottom;\n s *= r;\n }\n } else {\n const r = t.getScene().useRightHandedSystem ? g.RightHandedForwardReadOnly : g.LeftHandedForwardReadOnly, n = t.getDirection(r);\n s *= g.Dot(w.Vector3[0], n);\n }\n this._rootMesh.scaling.setAll(s), e._getWorldMatrixDeterminant() < 0 && !qs.PreserveScaling && (this._rootMesh.scaling.y *= -1);\n } else\n this._rootMesh.scaling.setAll(this.scaleRatio);\n }\n this.additionalTransformNode && (this._rootMesh.computeWorldMatrix(!0), this._rootMesh.getWorldMatrix().multiplyToRef(this.additionalTransformNode.getWorldMatrix(), w.Matrix[0]), w.Matrix[0].decompose(this._rootMesh.scaling, this._rootMesh.rotationQuaternion, this._rootMesh.position));\n }\n /**\n * if transform has a pivot and is not using PostMultiplyPivotMatrix, then the worldMatrix contains the pivot matrix (it's not cancelled at the end)\n * so, when extracting the world matrix component, the translation (and other components) is containing the pivot translation.\n * And the pivot is applied each frame. Removing it anyway here makes it applied only in computeWorldMatrix.\n * @param transform local transform that needs to be transform by the pivot inverse matrix\n * @param localMatrix local matrix that needs to be transform by the pivot inverse matrix\n * @param result resulting matrix transformed by pivot inverse if the transform node is using pivot without using post Multiply Pivot Matrix\n */\n _handlePivotMatrixInverse(e, t, i) {\n if (e.isUsingPivotMatrix() && !e.isUsingPostMultiplyPivotMatrix()) {\n e.getPivotMatrix().invertToRef(w.Matrix[5]), w.Matrix[5].multiplyToRef(t, i);\n return;\n }\n i.copyFrom(t);\n }\n /**\n * computes the rotation/scaling/position of the transform once the Node world matrix has changed.\n */\n _matrixChanged() {\n if (this._attachedNode)\n if (this._attachedNode._isCamera) {\n const e = this._attachedNode;\n let t, i;\n if (e.parent) {\n const r = w.Matrix[1];\n e.parent._worldMatrix.invertToRef(r), this._attachedNode._worldMatrix.multiplyToRef(r, w.Matrix[0]), t = w.Matrix[0];\n } else\n t = this._attachedNode._worldMatrix;\n if (e.getScene().useRightHandedSystem ? (this._rightHandtoLeftHandMatrix.multiplyToRef(t, w.Matrix[1]), i = w.Matrix[1]) : i = t, i.decompose(w.Vector3[1], w.Quaternion[0], w.Vector3[0]), this._attachedNode.getClassName() === \"FreeCamera\" || this._attachedNode.getClassName() === \"FlyCamera\" || this._attachedNode.getClassName() === \"ArcFollowCamera\" || this._attachedNode.getClassName() === \"TargetCamera\" || this._attachedNode.getClassName() === \"TouchCamera\" || this._attachedNode.getClassName() === \"UniversalCamera\") {\n const r = this._attachedNode;\n r.rotation = w.Quaternion[0].toEulerAngles(), r.rotationQuaternion && (r.rotationQuaternion.copyFrom(w.Quaternion[0]), r.rotationQuaternion.normalize());\n }\n e.position.copyFrom(w.Vector3[0]);\n } else if (this._attachedNode._isMesh || this._attachedNode.getClassName() === \"AbstractMesh\" || this._attachedNode.getClassName() === \"TransformNode\" || this._attachedNode.getClassName() === \"InstancedMesh\") {\n const e = this._attachedNode;\n if (e.parent) {\n const t = w.Matrix[0], i = w.Matrix[1];\n e.parent.getWorldMatrix().invertToRef(t), this._attachedNode.getWorldMatrix().multiplyToRef(t, i);\n const s = w.Matrix[4];\n if (this._handlePivotMatrixInverse(e, i, s), s.decompose(w.Vector3[0], w.Quaternion[0], e.position, qs.PreserveScaling ? e : void 0, qs.UseAbsoluteScaling), w.Quaternion[0].normalize(), e.isUsingPivotMatrix()) {\n const r = w.Quaternion[1];\n se.RotationYawPitchRollToRef(e.rotation.y, e.rotation.x, e.rotation.z, r);\n const n = w.Matrix[2];\n O.ScalingToRef(e.scaling.x, e.scaling.y, e.scaling.z, n);\n const o = w.Matrix[2];\n r.toRotationMatrix(o);\n const l = e.getPivotMatrix(), h = w.Matrix[3];\n l.invertToRef(h), l.multiplyToRef(n, w.Matrix[4]), w.Matrix[4].multiplyToRef(o, w.Matrix[5]), w.Matrix[5].multiplyToRef(h, w.Matrix[6]), w.Matrix[6].getTranslationToRef(w.Vector3[1]), e.position.subtractInPlace(w.Vector3[1]);\n }\n } else {\n const t = w.Matrix[4];\n this._handlePivotMatrixInverse(e, this._attachedNode._worldMatrix, t), t.decompose(w.Vector3[0], w.Quaternion[0], e.position, qs.PreserveScaling ? e : void 0, qs.UseAbsoluteScaling);\n }\n w.Vector3[0].scaleInPlace(1 / e.scalingDeterminant), e.scaling.copyFrom(w.Vector3[0]), e.billboardMode || (e.rotationQuaternion ? (e.rotationQuaternion.copyFrom(w.Quaternion[0]), e.rotationQuaternion.normalize()) : e.rotation = w.Quaternion[0].toEulerAngles());\n } else if (this._attachedNode.getClassName() === \"Bone\") {\n const e = this._attachedNode, t = e.getParent();\n if (t) {\n const i = w.Matrix[0], s = w.Matrix[1];\n t.getFinalMatrix().invertToRef(i), e.getFinalMatrix().multiplyToRef(i, s), e.getLocalMatrix().copyFrom(s);\n } else\n e.getLocalMatrix().copyFrom(e.getFinalMatrix());\n e.markAsDirty();\n } else {\n const e = this._attachedNode;\n if (e.getTypeID) {\n const t = e.getTypeID();\n if (t === at.LIGHTTYPEID_DIRECTIONALLIGHT || t === at.LIGHTTYPEID_SPOTLIGHT || t === at.LIGHTTYPEID_POINTLIGHT) {\n const i = e.parent;\n if (i) {\n const s = w.Matrix[0], r = w.Matrix[1];\n i.getWorldMatrix().invertToRef(s), e.getWorldMatrix().multiplyToRef(s, r), r.decompose(void 0, w.Quaternion[0], w.Vector3[0]);\n } else\n this._attachedNode._worldMatrix.decompose(void 0, w.Quaternion[0], w.Vector3[0]);\n e.position = new g(w.Vector3[0].x, w.Vector3[0].y, w.Vector3[0].z), e.direction && (e.direction = new g(e.direction.x, e.direction.y, e.direction.z));\n }\n }\n }\n }\n /**\n * refresh gizmo mesh material\n * @param gizmoMeshes\n * @param material material to apply\n */\n _setGizmoMeshMaterial(e, t) {\n e && e.forEach((i) => {\n i.material = t, i.color && (i.color = t.diffuseColor);\n });\n }\n /**\n * Subscribes to pointer up, down, and hover events. Used for responsive gizmos.\n * @param gizmoLayer The utility layer the gizmo will be added to\n * @param gizmoAxisCache Gizmo axis definition used for reactive gizmo UI\n * @returns {Observer} pointerObserver\n */\n static GizmoAxisPointerObserver(e, t) {\n let i = !1;\n return e.utilityLayerScene.onPointerObservable.add((r) => {\n var n, o;\n if (r.pickInfo) {\n if (r.type === Pe.POINTERMOVE) {\n if (i)\n return;\n t.forEach((l) => {\n var h, c;\n if (l.colliderMeshes && l.gizmoMeshes) {\n const u = ((c = l.colliderMeshes) == null ? void 0 : c.indexOf((h = r == null ? void 0 : r.pickInfo) == null ? void 0 : h.pickedMesh)) != -1, d = l.dragBehavior.enabled ? u || l.active ? l.hoverMaterial : l.material : l.disableMaterial;\n l.gizmoMeshes.forEach((f) => {\n f.material = d, f.color && (f.color = d.diffuseColor);\n });\n }\n });\n }\n if (r.type === Pe.POINTERDOWN && t.has((n = r.pickInfo.pickedMesh) == null ? void 0 : n.parent)) {\n i = !0;\n const l = t.get((o = r.pickInfo.pickedMesh) == null ? void 0 : o.parent);\n l.active = !0, t.forEach((h) => {\n var d, f;\n const u = (((f = h.colliderMeshes) == null ? void 0 : f.indexOf((d = r == null ? void 0 : r.pickInfo) == null ? void 0 : d.pickedMesh)) != -1 || h.active) && h.dragBehavior.enabled ? h.hoverMaterial : h.disableMaterial;\n h.gizmoMeshes.forEach((p) => {\n p.material = u, p.color && (p.color = u.diffuseColor);\n });\n });\n }\n r.type === Pe.POINTERUP && t.forEach((l) => {\n l.active = !1, i = !1, l.gizmoMeshes.forEach((h) => {\n h.material = l.dragBehavior.enabled ? l.material : l.disableMaterial, h.color && (h.color = l.material.diffuseColor);\n });\n });\n }\n });\n }\n /**\n * Disposes of the gizmo\n */\n dispose() {\n this._rootMesh.dispose(), this._beforeRenderObserver && this.gizmoLayer.utilityLayerScene.onBeforeRenderObservable.remove(this._beforeRenderObserver);\n }\n}\nqs.PreserveScaling = !1;\nqs.UseAbsoluteScaling = !0;\nObject.defineProperty(De.prototype, \"debugLayer\", {\n get: function() {\n return this._debugLayer || (this._debugLayer = new Zh(this)), this._debugLayer;\n },\n enumerable: !0,\n configurable: !0\n});\nvar Yb;\n(function(a) {\n a[a.Properties = 0] = \"Properties\", a[a.Debug = 1] = \"Debug\", a[a.Statistics = 2] = \"Statistics\", a[a.Tools = 3] = \"Tools\", a[a.Settings = 4] = \"Settings\";\n})(Yb || (Yb = {}));\nclass Zh {\n /**\n * Observable triggered when a property is changed through the inspector.\n */\n get onPropertyChangedObservable() {\n return this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector ? this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable : (this._onPropertyChangedObservable || (this._onPropertyChangedObservable = new G()), this._onPropertyChangedObservable);\n }\n /**\n * Observable triggered when the selection is changed through the inspector.\n */\n get onSelectionChangedObservable() {\n return this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector ? this.BJSINSPECTOR.Inspector.OnSelectionChangeObservable : (this._onSelectionChangedObservable || (this._onSelectionChangedObservable = new G()), this._onSelectionChangedObservable);\n }\n /**\n * Instantiates a new debug layer.\n * The debug layer (aka Inspector) is the go to tool in order to better understand\n * what is happening in your scene\n * @see https://doc.babylonjs.com/toolsAndResources/inspector\n * @param scene Defines the scene to inspect\n */\n constructor(e) {\n this.BJSINSPECTOR = this._getGlobalInspector(), this._scene = e || Me.LastCreatedScene, this._scene && this._scene.onDisposeObservable.add(() => {\n this._scene._debugLayer && this._scene._debugLayer.hide();\n });\n }\n /**\n * Creates the inspector window.\n * @param config\n */\n _createInspector(e) {\n if (this.isVisible())\n return;\n if (this._onPropertyChangedObservable) {\n for (const i of this._onPropertyChangedObservable.observers)\n this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable.add(i);\n this._onPropertyChangedObservable.clear(), this._onPropertyChangedObservable = void 0;\n }\n if (this._onSelectionChangedObservable) {\n for (const i of this._onSelectionChangedObservable.observers)\n this.BJSINSPECTOR.Inspector.OnSelectionChangedObservable.add(i);\n this._onSelectionChangedObservable.clear(), this._onSelectionChangedObservable = void 0;\n }\n const t = {\n ...Zh.Config,\n ...e\n };\n this.BJSINSPECTOR = this.BJSINSPECTOR || this._getGlobalInspector(), this.BJSINSPECTOR.Inspector.Show(this._scene, t);\n }\n /**\n * Select a specific entity in the scene explorer and highlight a specific block in that entity property grid\n * @param entity defines the entity to select\n * @param lineContainerTitles defines the specific blocks to highlight (could be a string or an array of strings)\n */\n select(e, t) {\n this.BJSINSPECTOR && (t && (Object.prototype.toString.call(t) == \"[object String]\" ? this.BJSINSPECTOR.Inspector.MarkLineContainerTitleForHighlighting(t) : this.BJSINSPECTOR.Inspector.MarkMultipleLineContainerTitlesForHighlighting(t)), this.BJSINSPECTOR.Inspector.OnSelectionChangeObservable.notifyObservers(e));\n }\n /**\n * Get the inspector from bundle or global\n * @returns the inspector instance if found otherwise, null\n */\n _getGlobalInspector() {\n if (typeof INSPECTOR < \"u\")\n return INSPECTOR;\n if (typeof BABYLON < \"u\" && typeof BABYLON.Inspector < \"u\")\n return BABYLON;\n }\n /**\n * Get if the inspector is visible or not.\n * @returns true if visible otherwise, false\n */\n isVisible() {\n return this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector.IsVisible;\n }\n /**\n * Hide the inspector and close its window.\n */\n hide() {\n this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector.Hide();\n }\n /**\n * Update the scene in the inspector\n */\n setAsActiveScene() {\n this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector._SetNewScene(this._scene);\n }\n /**\n * Launch the debugLayer.\n * @param config Define the configuration of the inspector\n * @returns a promise fulfilled when the debug layer is visible\n */\n show(e) {\n return new Promise((t) => {\n if (typeof this.BJSINSPECTOR > \"u\") {\n const i = e && e.inspectorURL ? e.inspectorURL : Zh.InspectorURL;\n J.LoadBabylonScript(i, () => {\n this._createInspector(e), t(this);\n });\n } else\n this._createInspector(e), t(this);\n });\n }\n}\nZh.InspectorURL = `${J._DefaultCdnUrl}/v${ee.Version}/inspector/babylon.inspector.bundle.js`;\nZh.Config = {\n overlay: !1,\n showExplorer: !0,\n showInspector: !0,\n embedMode: !1,\n handleResize: !0,\n enablePopup: !0\n};\nclass Jt {\n /**\n * Initializes the physics joint\n * @param type The type of the physics joint\n * @param jointData The data for the physics joint\n */\n constructor(e, t) {\n this.type = e, this.jointData = t, t.nativeParams = t.nativeParams || {};\n }\n /**\n * Gets the physics joint\n */\n get physicsJoint() {\n return this._physicsJoint;\n }\n /**\n * Sets the physics joint\n */\n set physicsJoint(e) {\n this._physicsJoint, this._physicsJoint = e;\n }\n /**\n * Sets the physics plugin\n */\n set physicsPlugin(e) {\n this._physicsPlugin = e;\n }\n /**\n * Execute a function that is physics-plugin specific.\n * @param {Function} func the function that will be executed.\n * It accepts two parameters: the physics world and the physics joint\n */\n executeNativeFunction(e) {\n e(this._physicsPlugin.world, this._physicsJoint);\n }\n}\nJt.DistanceJoint = 0;\nJt.HingeJoint = 1;\nJt.BallAndSocketJoint = 2;\nJt.WheelJoint = 3;\nJt.SliderJoint = 4;\nJt.PrismaticJoint = 5;\nJt.UniversalJoint = 6;\nJt.Hinge2Joint = Jt.WheelJoint;\nJt.PointToPointJoint = 8;\nJt.SpringJoint = 9;\nJt.LockJoint = 10;\nclass MK extends Jt {\n /**\n *\n * @param jointData The data for the Distance-Joint\n */\n constructor(e) {\n super(Jt.DistanceJoint, e);\n }\n /**\n * Update the predefined distance.\n * @param maxDistance The maximum preferred distance\n * @param minDistance The minimum preferred distance\n */\n updateDistance(e, t) {\n this._physicsPlugin.updateDistanceJoint(this, e, t);\n }\n}\nclass H0 extends Jt {\n /**\n * Initializes the Motor-Enabled Joint\n * @param type The type of the joint\n * @param jointData The physical joint data for the joint\n */\n constructor(e, t) {\n super(e, t);\n }\n /**\n * Set the motor values.\n * Attention, this function is plugin specific. Engines won't react 100% the same.\n * @param force the force to apply\n * @param maxForce max force for this motor.\n */\n setMotor(e, t) {\n this._physicsPlugin.setMotor(this, e || 0, t);\n }\n /**\n * Set the motor's limits.\n * Attention, this function is plugin specific. Engines won't react 100% the same.\n * @param upperLimit The upper limit of the motor\n * @param lowerLimit The lower limit of the motor\n */\n setLimit(e, t) {\n this._physicsPlugin.setLimit(this, e, t);\n }\n}\nclass DK extends H0 {\n /**\n * Initializes the Hinge-Joint\n * @param jointData The joint data for the Hinge-Joint\n */\n constructor(e) {\n super(Jt.HingeJoint, e);\n }\n /**\n * Set the motor values.\n * Attention, this function is plugin specific. Engines won't react 100% the same.\n * @param {number} force the force to apply\n * @param {number} maxForce max force for this motor.\n */\n setMotor(e, t) {\n this._physicsPlugin.setMotor(this, e || 0, t);\n }\n /**\n * Set the motor's limits.\n * Attention, this function is plugin specific. Engines won't react 100% the same.\n * @param upperLimit The upper limit of the motor\n * @param lowerLimit The lower limit of the motor\n */\n setLimit(e, t) {\n this._physicsPlugin.setLimit(this, e, t);\n }\n}\nclass OK extends H0 {\n /**\n * Initializes the Hinge2-Joint\n * @param jointData The joint data for the Hinge2-Joint\n */\n constructor(e) {\n super(Jt.Hinge2Joint, e);\n }\n /**\n * Set the motor values.\n * Attention, this function is plugin specific. Engines won't react 100% the same.\n * @param targetSpeed the speed the motor is to reach\n * @param maxForce max force for this motor.\n * @param motorIndex motor's index, 0 or 1.\n */\n setMotor(e, t, i = 0) {\n this._physicsPlugin.setMotor(this, e || 0, t, i);\n }\n /**\n * Set the motor limits.\n * Attention, this function is plugin specific. Engines won't react 100% the same.\n * @param upperLimit the upper limit\n * @param lowerLimit lower limit\n * @param motorIndex the motor's index, 0 or 1.\n */\n setLimit(e, t, i = 0) {\n this._physicsPlugin.setLimit(this, e, t, i);\n }\n}\nH._PhysicsImpostorParser = function(a, e, t) {\n return new Ke(e, t.physicsImpostor, {\n mass: t.physicsMass,\n friction: t.physicsFriction,\n restitution: t.physicsRestitution\n }, a);\n};\nclass Ke {\n /**\n * Specifies if the physics imposter is disposed\n */\n get isDisposed() {\n return this._isDisposed;\n }\n /**\n * Gets the mass of the physics imposter\n */\n get mass() {\n return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getBodyMass(this) : 0;\n }\n set mass(e) {\n this.setMass(e);\n }\n /**\n * Gets the coefficient of friction\n */\n get friction() {\n return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getBodyFriction(this) : 0;\n }\n /**\n * Sets the coefficient of friction\n */\n set friction(e) {\n this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setBodyFriction(this, e);\n }\n /**\n * Gets the coefficient of restitution\n */\n get restitution() {\n return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getBodyRestitution(this) : 0;\n }\n /**\n * Sets the coefficient of restitution\n */\n set restitution(e) {\n this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setBodyRestitution(this, e);\n }\n /**\n * Gets the pressure of a soft body; only supported by the AmmoJSPlugin\n */\n get pressure() {\n if (!this._physicsEngine)\n return 0;\n const e = this._physicsEngine.getPhysicsPlugin();\n return e.setBodyPressure ? e.getBodyPressure(this) : 0;\n }\n /**\n * Sets the pressure of a soft body; only supported by the AmmoJSPlugin\n */\n set pressure(e) {\n if (!this._physicsEngine)\n return;\n const t = this._physicsEngine.getPhysicsPlugin();\n t.setBodyPressure && t.setBodyPressure(this, e);\n }\n /**\n * Gets the stiffness of a soft body; only supported by the AmmoJSPlugin\n */\n get stiffness() {\n if (!this._physicsEngine)\n return 0;\n const e = this._physicsEngine.getPhysicsPlugin();\n return e.getBodyStiffness ? e.getBodyStiffness(this) : 0;\n }\n /**\n * Sets the stiffness of a soft body; only supported by the AmmoJSPlugin\n */\n set stiffness(e) {\n if (!this._physicsEngine)\n return;\n const t = this._physicsEngine.getPhysicsPlugin();\n t.setBodyStiffness && t.setBodyStiffness(this, e);\n }\n /**\n * Gets the velocityIterations of a soft body; only supported by the AmmoJSPlugin\n */\n get velocityIterations() {\n if (!this._physicsEngine)\n return 0;\n const e = this._physicsEngine.getPhysicsPlugin();\n return e.getBodyVelocityIterations ? e.getBodyVelocityIterations(this) : 0;\n }\n /**\n * Sets the velocityIterations of a soft body; only supported by the AmmoJSPlugin\n */\n set velocityIterations(e) {\n if (!this._physicsEngine)\n return;\n const t = this._physicsEngine.getPhysicsPlugin();\n t.setBodyVelocityIterations && t.setBodyVelocityIterations(this, e);\n }\n /**\n * Gets the positionIterations of a soft body; only supported by the AmmoJSPlugin\n */\n get positionIterations() {\n if (!this._physicsEngine)\n return 0;\n const e = this._physicsEngine.getPhysicsPlugin();\n return e.getBodyPositionIterations ? e.getBodyPositionIterations(this) : 0;\n }\n /**\n * Sets the positionIterations of a soft body; only supported by the AmmoJSPlugin\n */\n set positionIterations(e) {\n if (!this._physicsEngine)\n return;\n const t = this._physicsEngine.getPhysicsPlugin();\n t.setBodyPositionIterations && t.setBodyPositionIterations(this, e);\n }\n /**\n * Initializes the physics imposter\n * @param object The physics-enabled object used as the physics imposter\n * @param type The type of the physics imposter. Types are available as static members of this class.\n * @param _options The options for the physics imposter\n * @param _scene The Babylon scene\n */\n constructor(e, t, i = { mass: 0 }, s) {\n if (this.object = e, this.type = t, this._options = i, this._scene = s, this._pluginData = {}, this._bodyUpdateRequired = !1, this._onBeforePhysicsStepCallbacks = new Array(), this._onAfterPhysicsStepCallbacks = new Array(), this._onPhysicsCollideCallbacks = [], this._deltaPosition = g.Zero(), this._isDisposed = !1, this.soft = !1, this.segments = 0, this._tmpQuat = new se(), this._tmpQuat2 = new se(), this.beforeStep = () => {\n this._physicsEngine && (this.object.translate(this._deltaPosition, -1), this._deltaRotationConjugated && this.object.rotationQuaternion && this.object.rotationQuaternion.multiplyToRef(this._deltaRotationConjugated, this.object.rotationQuaternion), this.object.computeWorldMatrix(!1), this.object.parent && this.object.rotationQuaternion ? (this.getParentsRotation(), this._tmpQuat.multiplyToRef(this.object.rotationQuaternion, this._tmpQuat)) : this._tmpQuat.copyFrom(this.object.rotationQuaternion || new se()), this._options.disableBidirectionalTransformation || this.object.rotationQuaternion && this._physicsEngine.getPhysicsPlugin().setPhysicsBodyTransformation(\n this,\n /*bInfo.boundingBox.centerWorld*/\n this.object.getAbsolutePosition(),\n this._tmpQuat\n ), this._onBeforePhysicsStepCallbacks.forEach((r) => {\n r(this);\n }));\n }, this.afterStep = () => {\n this._physicsEngine && (this._onAfterPhysicsStepCallbacks.forEach((r) => {\n r(this);\n }), this._physicsEngine.getPhysicsPlugin().setTransformationFromPhysicsBody(this), this.object.parent && this.object.rotationQuaternion && (this.getParentsRotation(), this._tmpQuat.conjugateInPlace(), this._tmpQuat.multiplyToRef(this.object.rotationQuaternion, this.object.rotationQuaternion)), this.object.setAbsolutePosition(this.object.position), this._deltaRotation ? (this.object.rotationQuaternion && this.object.rotationQuaternion.multiplyToRef(this._deltaRotation, this.object.rotationQuaternion), this._deltaPosition.applyRotationQuaternionToRef(this._deltaRotation, Ke._TmpVecs[0]), this.object.translate(Ke._TmpVecs[0], 1)) : this.object.translate(this._deltaPosition, 1), this.object.computeWorldMatrix(!0));\n }, this.onCollideEvent = null, this.onCollide = (r) => {\n if (!this._onPhysicsCollideCallbacks.length && !this.onCollideEvent || !this._physicsEngine)\n return;\n const n = this._physicsEngine.getImpostorWithPhysicsBody(r.body);\n n && (this.onCollideEvent && this.onCollideEvent(this, n), this._onPhysicsCollideCallbacks.filter((o) => o.otherImpostors.indexOf(n) !== -1).forEach((o) => {\n o.callback(this, n, r.point, r.distance, r.impulse, r.normal);\n }));\n }, !this.object) {\n L.Error(\"No object was provided. A physics object is obligatory\");\n return;\n }\n this.object.parent && i.mass !== 0 && L.Warn(\"A physics impostor has been created for an object which has a parent. Babylon physics currently works in local space so unexpected issues may occur.\"), !this._scene && e.getScene && (this._scene = e.getScene()), this._scene && (this.type > 100 && (this.soft = !0), this._physicsEngine = this._scene.getPhysicsEngine(), this._physicsEngine ? (this.object.rotationQuaternion || (this.object.rotation ? this.object.rotationQuaternion = se.RotationYawPitchRoll(this.object.rotation.y, this.object.rotation.x, this.object.rotation.z) : this.object.rotationQuaternion = new se()), this._options.mass = i.mass === void 0 ? 0 : i.mass, this._options.friction = i.friction === void 0 ? 0.2 : i.friction, this._options.restitution = i.restitution === void 0 ? 0.2 : i.restitution, this.soft && (this._options.mass = this._options.mass > 0 ? this._options.mass : 1, this._options.pressure = i.pressure === void 0 ? 200 : i.pressure, this._options.stiffness = i.stiffness === void 0 ? 1 : i.stiffness, this._options.velocityIterations = i.velocityIterations === void 0 ? 20 : i.velocityIterations, this._options.positionIterations = i.positionIterations === void 0 ? 20 : i.positionIterations, this._options.fixedPoints = i.fixedPoints === void 0 ? 0 : i.fixedPoints, this._options.margin = i.margin === void 0 ? 0 : i.margin, this._options.damping = i.damping === void 0 ? 0 : i.damping, this._options.path = i.path === void 0 ? null : i.path, this._options.shape = i.shape === void 0 ? null : i.shape), this._joints = [], !this.object.parent || this._options.ignoreParent ? this._init() : this.object.parent.physicsImpostor && L.Warn(\"You must affect impostors to children before affecting impostor to parent.\")) : L.Error(\"Physics not enabled. Please use scene.enablePhysics(...) before creating impostors.\"));\n }\n /**\n * This function will completely initialize this impostor.\n * It will create a new body - but only if this mesh has no parent.\n * If it has, this impostor will not be used other than to define the impostor\n * of the child mesh.\n * @internal\n */\n _init() {\n this._physicsEngine && (this._physicsEngine.removeImpostor(this), this.physicsBody = null, this._parent = this._parent || this._getPhysicsParent(), !this._isDisposed && (!this.parent || this._options.ignoreParent) && this._physicsEngine.addImpostor(this));\n }\n _getPhysicsParent() {\n return this.object.parent instanceof Pt ? this.object.parent.physicsImpostor : null;\n }\n /**\n * Should a new body be generated.\n * @returns boolean specifying if body initialization is required\n */\n isBodyInitRequired() {\n return this._bodyUpdateRequired || !this._physicsBody && (!this._parent || !!this._options.ignoreParent);\n }\n /**\n * Sets the updated scaling\n */\n setScalingUpdated() {\n this.forceUpdate();\n }\n /**\n * Force a regeneration of this or the parent's impostor's body.\n * Use with caution - This will remove all previously-instantiated joints.\n */\n forceUpdate() {\n this._init(), this.parent && !this._options.ignoreParent && this.parent.forceUpdate();\n }\n /*public get mesh(): AbstractMesh {\n return this._mesh;\n }*/\n /**\n * Gets the body that holds this impostor. Either its own, or its parent.\n */\n get physicsBody() {\n return this._parent && !this._options.ignoreParent ? this._parent.physicsBody : this._physicsBody;\n }\n /**\n * Get the parent of the physics imposter\n * @returns Physics imposter or null\n */\n get parent() {\n return !this._options.ignoreParent && this._parent ? this._parent : null;\n }\n /**\n * Sets the parent of the physics imposter\n */\n set parent(e) {\n this._parent = e;\n }\n /**\n * Set the physics body. Used mainly by the physics engine/plugin\n */\n set physicsBody(e) {\n this._physicsBody && this._physicsEngine && this._physicsEngine.getPhysicsPlugin().removePhysicsBody(this), this._physicsBody = e, this.resetUpdateFlags();\n }\n /**\n * Resets the update flags\n */\n resetUpdateFlags() {\n this._bodyUpdateRequired = !1;\n }\n /**\n * Gets the object extents\n * @returns the object extents\n */\n getObjectExtents() {\n if (this.object.getBoundingInfo) {\n const e = this.object.rotationQuaternion, t = this.object.scaling.clone();\n this.object.rotationQuaternion = Ke.IDENTITY_QUATERNION;\n const i = this.object.computeWorldMatrix && this.object.computeWorldMatrix(!0);\n i && i.decompose(t, void 0, void 0);\n const r = this.object.getBoundingInfo().boundingBox.extendSize.scale(2).multiplyInPlace(t);\n return r.x = Math.abs(r.x), r.y = Math.abs(r.y), r.z = Math.abs(r.z), this.object.rotationQuaternion = e, this.object.computeWorldMatrix && this.object.computeWorldMatrix(!0), r;\n } else\n return Ke.DEFAULT_OBJECT_SIZE;\n }\n /**\n * Gets the object center\n * @returns The object center\n */\n getObjectCenter() {\n return this.object.getBoundingInfo ? this.object.getBoundingInfo().boundingBox.centerWorld : this.object.position;\n }\n /**\n * Get a specific parameter from the options parameters\n * @param paramName The object parameter name\n * @returns The object parameter\n */\n getParam(e) {\n return this._options[e];\n }\n /**\n * Sets a specific parameter in the options given to the physics plugin\n * @param paramName The parameter name\n * @param value The value of the parameter\n */\n setParam(e, t) {\n this._options[e] = t, this._bodyUpdateRequired = !0;\n }\n /**\n * Specifically change the body's mass. Won't recreate the physics body object\n * @param mass The mass of the physics imposter\n */\n setMass(e) {\n this.getParam(\"mass\") !== e && this.setParam(\"mass\", e), this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setBodyMass(this, e);\n }\n /**\n * Gets the linear velocity\n * @returns linear velocity or null\n */\n getLinearVelocity() {\n return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getLinearVelocity(this) : g.Zero();\n }\n /**\n * Sets the linear velocity\n * @param velocity linear velocity or null\n */\n setLinearVelocity(e) {\n this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setLinearVelocity(this, e);\n }\n /**\n * Gets the angular velocity\n * @returns angular velocity or null\n */\n getAngularVelocity() {\n return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getAngularVelocity(this) : g.Zero();\n }\n /**\n * Sets the angular velocity\n * @param velocity The velocity or null\n */\n setAngularVelocity(e) {\n this._physicsEngine && this._physicsEngine.getPhysicsPlugin().setAngularVelocity(this, e);\n }\n /**\n * Execute a function with the physics plugin native code\n * Provide a function the will have two variables - the world object and the physics body object\n * @param func The function to execute with the physics plugin native code\n */\n executeNativeFunction(e) {\n this._physicsEngine && e(this._physicsEngine.getPhysicsPlugin().world, this.physicsBody);\n }\n /**\n * Register a function that will be executed before the physics world is stepping forward\n * @param func The function to execute before the physics world is stepped forward\n */\n registerBeforePhysicsStep(e) {\n this._onBeforePhysicsStepCallbacks.push(e);\n }\n /**\n * Unregister a function that will be executed before the physics world is stepping forward\n * @param func The function to execute before the physics world is stepped forward\n */\n unregisterBeforePhysicsStep(e) {\n const t = this._onBeforePhysicsStepCallbacks.indexOf(e);\n t > -1 ? this._onBeforePhysicsStepCallbacks.splice(t, 1) : L.Warn(\"Function to remove was not found\");\n }\n /**\n * Register a function that will be executed after the physics step\n * @param func The function to execute after physics step\n */\n registerAfterPhysicsStep(e) {\n this._onAfterPhysicsStepCallbacks.push(e);\n }\n /**\n * Unregisters a function that will be executed after the physics step\n * @param func The function to execute after physics step\n */\n unregisterAfterPhysicsStep(e) {\n const t = this._onAfterPhysicsStepCallbacks.indexOf(e);\n t > -1 ? this._onAfterPhysicsStepCallbacks.splice(t, 1) : L.Warn(\"Function to remove was not found\");\n }\n /**\n * register a function that will be executed when this impostor collides against a different body\n * @param collideAgainst Physics imposter, or array of physics imposters to collide against\n * @param func Callback that is executed on collision\n */\n registerOnPhysicsCollide(e, t) {\n const i = e instanceof Array ? e : [e];\n this._onPhysicsCollideCallbacks.push({ callback: t, otherImpostors: i });\n }\n /**\n * Unregisters the physics imposter's collision callback\n * @param collideAgainst The physics object to collide against\n * @param func Callback to execute on collision\n */\n unregisterOnPhysicsCollide(e, t) {\n const i = e instanceof Array ? e : [e];\n let s = -1;\n this._onPhysicsCollideCallbacks.some((n, o) => {\n if (n.callback === t && n.otherImpostors.length === i.length) {\n const l = n.otherImpostors.every((h) => i.indexOf(h) > -1);\n return l && (s = o), l;\n }\n return !1;\n }) ? this._onPhysicsCollideCallbacks.splice(s, 1) : L.Warn(\"Function to remove was not found\");\n }\n /**\n * Get the parent rotation\n * @returns The parent rotation\n */\n getParentsRotation() {\n let e = this.object.parent;\n for (this._tmpQuat.copyFromFloats(0, 0, 0, 1); e; )\n e.rotationQuaternion ? this._tmpQuat2.copyFrom(e.rotationQuaternion) : se.RotationYawPitchRollToRef(e.rotation.y, e.rotation.x, e.rotation.z, this._tmpQuat2), this._tmpQuat.multiplyToRef(this._tmpQuat2, this._tmpQuat), e = e.parent;\n return this._tmpQuat;\n }\n /**\n * Apply a force\n * @param force The force to apply\n * @param contactPoint The contact point for the force\n * @returns The physics imposter\n */\n applyForce(e, t) {\n return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().applyForce(this, e, t), this;\n }\n /**\n * Apply an impulse\n * @param force The impulse force\n * @param contactPoint The contact point for the impulse force\n * @returns The physics imposter\n */\n applyImpulse(e, t) {\n return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().applyImpulse(this, e, t), this;\n }\n /**\n * A help function to create a joint\n * @param otherImpostor A physics imposter used to create a joint\n * @param jointType The type of joint\n * @param jointData The data for the joint\n * @returns The physics imposter\n */\n createJoint(e, t, i) {\n const s = new Jt(t, i);\n return this.addJoint(e, s), this;\n }\n /**\n * Add a joint to this impostor with a different impostor\n * @param otherImpostor A physics imposter used to add a joint\n * @param joint The joint to add\n * @returns The physics imposter\n */\n addJoint(e, t) {\n return this._joints.push({\n otherImpostor: e,\n joint: t\n }), this._physicsEngine && this._physicsEngine.addJoint(this, e, t), this;\n }\n /**\n * Add an anchor to a cloth impostor\n * @param otherImpostor rigid impostor to anchor to\n * @param width ratio across width from 0 to 1\n * @param height ratio up height from 0 to 1\n * @param influence the elasticity between cloth impostor and anchor from 0, very stretchy to 1, little stretch\n * @param noCollisionBetweenLinkedBodies when true collisions between cloth impostor and anchor are ignored; default false\n * @returns impostor the soft imposter\n */\n addAnchor(e, t, i, s, r) {\n if (!this._physicsEngine)\n return this;\n const n = this._physicsEngine.getPhysicsPlugin();\n return n.appendAnchor ? (this._physicsEngine && n.appendAnchor(this, e, t, i, s, r), this) : this;\n }\n /**\n * Add a hook to a rope impostor\n * @param otherImpostor rigid impostor to anchor to\n * @param length ratio across rope from 0 to 1\n * @param influence the elasticity between rope impostor and anchor from 0, very stretchy to 1, little stretch\n * @param noCollisionBetweenLinkedBodies when true collisions between soft impostor and anchor are ignored; default false\n * @returns impostor the rope imposter\n */\n addHook(e, t, i, s) {\n if (!this._physicsEngine)\n return this;\n const r = this._physicsEngine.getPhysicsPlugin();\n return r.appendAnchor ? (this._physicsEngine && r.appendHook(this, e, t, i, s), this) : this;\n }\n /**\n * Will keep this body still, in a sleep mode.\n * @returns the physics imposter\n */\n sleep() {\n return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().sleepBody(this), this;\n }\n /**\n * Wake the body up.\n * @returns The physics imposter\n */\n wakeUp() {\n return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().wakeUpBody(this), this;\n }\n /**\n * Clones the physics imposter\n * @param newObject The physics imposter clones to this physics-enabled object\n * @returns A nullable physics imposter\n */\n clone(e) {\n return e ? new Ke(e, this.type, this._options, this._scene) : null;\n }\n /**\n * Disposes the physics imposter\n */\n dispose() {\n this._physicsEngine && (this._joints.forEach((e) => {\n this._physicsEngine && this._physicsEngine.removeJoint(this, e.otherImpostor, e.joint);\n }), this._physicsEngine.removeImpostor(this), this.parent && this.parent.forceUpdate(), this._isDisposed = !0);\n }\n /**\n * Sets the delta position\n * @param position The delta position amount\n */\n setDeltaPosition(e) {\n this._deltaPosition.copyFrom(e);\n }\n /**\n * Sets the delta rotation\n * @param rotation The delta rotation amount\n */\n setDeltaRotation(e) {\n this._deltaRotation || (this._deltaRotation = new se()), this._deltaRotation.copyFrom(e), this._deltaRotationConjugated = this._deltaRotation.conjugate();\n }\n /**\n * Gets the box size of the physics imposter and stores the result in the input parameter\n * @param result Stores the box size\n * @returns The physics imposter\n */\n getBoxSizeToRef(e) {\n return this._physicsEngine && this._physicsEngine.getPhysicsPlugin().getBoxSizeToRef(this, e), this;\n }\n /**\n * Gets the radius of the physics imposter\n * @returns Radius of the physics imposter\n */\n getRadius() {\n return this._physicsEngine ? this._physicsEngine.getPhysicsPlugin().getRadius(this) : 0;\n }\n /**\n * Sync a bone with this impostor\n * @param bone The bone to sync to the impostor.\n * @param boneMesh The mesh that the bone is influencing.\n * @param jointPivot The pivot of the joint / bone in local space.\n * @param distToJoint Optional distance from the impostor to the joint.\n * @param adjustRotation Optional quaternion for adjusting the local rotation of the bone.\n */\n syncBoneWithImpostor(e, t, i, s, r) {\n const n = Ke._TmpVecs[0], o = this.object;\n if (o.rotationQuaternion)\n if (r) {\n const l = Ke._TmpQuat;\n o.rotationQuaternion.multiplyToRef(r, l), e.setRotationQuaternion(l, 1, t);\n } else\n e.setRotationQuaternion(o.rotationQuaternion, 1, t);\n n.x = 0, n.y = 0, n.z = 0, i && (n.x = i.x, n.y = i.y, n.z = i.z, e.getDirectionToRef(n, t, n), s == null && (s = i.length()), n.x *= s, n.y *= s, n.z *= s), e.getParent() ? (n.addInPlace(o.getAbsolutePosition()), e.setAbsolutePosition(n, t)) : (t.setAbsolutePosition(o.getAbsolutePosition()), t.position.x -= n.x, t.position.y -= n.y, t.position.z -= n.z);\n }\n /**\n * Sync impostor to a bone\n * @param bone The bone that the impostor will be synced to.\n * @param boneMesh The mesh that the bone is influencing.\n * @param jointPivot The pivot of the joint / bone in local space.\n * @param distToJoint Optional distance from the impostor to the joint.\n * @param adjustRotation Optional quaternion for adjusting the local rotation of the bone.\n * @param boneAxis Optional vector3 axis the bone is aligned with\n */\n syncImpostorWithBone(e, t, i, s, r, n) {\n const o = this.object;\n if (o.rotationQuaternion)\n if (r) {\n const c = Ke._TmpQuat;\n e.getRotationQuaternionToRef(1, t, c), c.multiplyToRef(r, o.rotationQuaternion);\n } else\n e.getRotationQuaternionToRef(1, t, o.rotationQuaternion);\n const l = Ke._TmpVecs[0], h = Ke._TmpVecs[1];\n n || (n = Ke._TmpVecs[2], n.x = 0, n.y = 1, n.z = 0), e.getDirectionToRef(n, t, h), e.getAbsolutePositionToRef(t, l), s == null && i && (s = i.length()), s != null && (l.x += h.x * s, l.y += h.y * s, l.z += h.z * s), o.setAbsolutePosition(l);\n }\n}\nKe.DEFAULT_OBJECT_SIZE = new g(1, 1, 1);\nKe.IDENTITY_QUATERNION = se.Identity();\nKe._TmpVecs = _s.BuildArray(3, g.Zero);\nKe._TmpQuat = se.Identity();\nKe.NoImpostor = 0;\nKe.SphereImpostor = 1;\nKe.BoxImpostor = 2;\nKe.PlaneImpostor = 3;\nKe.MeshImpostor = 4;\nKe.CapsuleImpostor = 6;\nKe.CylinderImpostor = 7;\nKe.ParticleImpostor = 8;\nKe.HeightmapImpostor = 9;\nKe.ConvexHullImpostor = 10;\nKe.CustomImpostor = 100;\nKe.RopeImpostor = 101;\nKe.ClothImpostor = 102;\nKe.SoftbodyImpostor = 103;\nclass Lr {\n /** public static method to create a BoneWeight Shader\n * @param options The constructor options\n * @param scene The scene that the shader is scoped to\n * @returns The created ShaderMaterial\n * @see http://www.babylonjs-playground.com/#1BZJVJ#395\n */\n static CreateBoneWeightShader(e, t) {\n const i = e.skeleton, s = e.colorBase ?? re.Black(), r = e.colorZero ?? re.Blue(), n = e.colorQuarter ?? re.Green(), o = e.colorHalf ?? re.Yellow(), l = e.colorFull ?? re.Red(), h = e.targetBoneIndex ?? 0;\n si.ShadersStore[\"boneWeights:\" + i.name + \"VertexShader\"] = `precision highp float;\n\n attribute vec3 position;\n attribute vec2 uv;\n\n uniform mat4 view;\n uniform mat4 projection;\n uniform mat4 worldViewProjection;\n\n #include\n #if NUM_BONE_INFLUENCERS == 0\n attribute vec4 matricesIndices;\n attribute vec4 matricesWeights;\n #endif\n #include\n\n #include\n\n varying vec3 vColor;\n\n uniform vec3 colorBase;\n uniform vec3 colorZero;\n uniform vec3 colorQuarter;\n uniform vec3 colorHalf;\n uniform vec3 colorFull;\n\n uniform float targetBoneIndex;\n\n void main() {\n vec3 positionUpdated = position;\n\n #include\n #include\n #include\n\n vec4 worldPos = finalWorld * vec4(positionUpdated, 1.0);\n\n vec3 color = colorBase;\n float totalWeight = 0.;\n if(matricesIndices[0] == targetBoneIndex && matricesWeights[0] > 0.){\n totalWeight += matricesWeights[0];\n }\n if(matricesIndices[1] == targetBoneIndex && matricesWeights[1] > 0.){\n totalWeight += matricesWeights[1];\n }\n if(matricesIndices[2] == targetBoneIndex && matricesWeights[2] > 0.){\n totalWeight += matricesWeights[2];\n }\n if(matricesIndices[3] == targetBoneIndex && matricesWeights[3] > 0.){\n totalWeight += matricesWeights[3];\n }\n\n color = mix(color, colorZero, smoothstep(0., 0.25, totalWeight));\n color = mix(color, colorQuarter, smoothstep(0.25, 0.5, totalWeight));\n color = mix(color, colorHalf, smoothstep(0.5, 0.75, totalWeight));\n color = mix(color, colorFull, smoothstep(0.75, 1.0, totalWeight));\n vColor = color;\n\n gl_Position = projection * view * worldPos;\n }`, si.ShadersStore[\"boneWeights:\" + i.name + \"FragmentShader\"] = `\n precision highp float;\n varying vec3 vPosition;\n\n varying vec3 vColor;\n\n void main() {\n vec4 color = vec4(vColor, 1.0);\n gl_FragColor = color;\n }\n `;\n const c = new Or(\"boneWeight:\" + i.name, t, {\n vertex: \"boneWeights:\" + i.name,\n fragment: \"boneWeights:\" + i.name\n }, {\n attributes: [\"position\", \"normal\", \"matricesIndices\", \"matricesWeights\"],\n uniforms: [\n \"world\",\n \"worldView\",\n \"worldViewProjection\",\n \"view\",\n \"projection\",\n \"viewProjection\",\n \"colorBase\",\n \"colorZero\",\n \"colorQuarter\",\n \"colorHalf\",\n \"colorFull\",\n \"targetBoneIndex\"\n ]\n });\n return c.setColor3(\"colorBase\", s), c.setColor3(\"colorZero\", r), c.setColor3(\"colorQuarter\", n), c.setColor3(\"colorHalf\", o), c.setColor3(\"colorFull\", l), c.setFloat(\"targetBoneIndex\", h), c.getClassName = () => \"BoneWeightShader\", c.transparencyMode = ue.MATERIAL_OPAQUE, c;\n }\n /** public static method to create a BoneWeight Shader\n * @param options The constructor options\n * @param scene The scene that the shader is scoped to\n * @returns The created ShaderMaterial\n */\n static CreateSkeletonMapShader(e, t) {\n const i = e.skeleton, s = e.colorMap ?? [\n {\n color: new re(1, 0.38, 0.18),\n location: 0\n },\n {\n color: new re(0.59, 0.18, 1),\n location: 0.2\n },\n {\n color: new re(0.59, 1, 0.18),\n location: 0.4\n },\n {\n color: new re(1, 0.87, 0.17),\n location: 0.6\n },\n {\n color: new re(1, 0.17, 0.42),\n location: 0.8\n },\n {\n color: new re(0.17, 0.68, 1),\n location: 1\n }\n ], r = i.bones.length + 1, n = Lr._CreateBoneMapColorBuffer(r, s, t), o = new Or(\"boneWeights:\" + i.name, t, {\n vertexSource: `precision highp float;\n\n attribute vec3 position;\n attribute vec2 uv;\n\n uniform mat4 view;\n uniform mat4 projection;\n uniform mat4 worldViewProjection;\n uniform float colorMap[` + i.bones.length * 4 + `];\n\n #include\n #if NUM_BONE_INFLUENCERS == 0\n attribute vec4 matricesIndices;\n attribute vec4 matricesWeights;\n #endif\n #include\n #include\n\n varying vec3 vColor;\n\n void main() {\n vec3 positionUpdated = position;\n\n #include\n #include\n #include\n\n vec3 color = vec3(0.);\n bool first = true;\n\n for (int i = 0; i < 4; i++) {\n int boneIdx = int(matricesIndices[i]);\n float boneWgt = matricesWeights[i];\n\n vec3 c = vec3(colorMap[boneIdx * 4 + 0], colorMap[boneIdx * 4 + 1], colorMap[boneIdx * 4 + 2]);\n\n if (boneWgt > 0.) {\n if (first) {\n first = false;\n color = c;\n } else {\n color = mix(color, c, boneWgt);\n }\n }\n }\n\n vColor = color;\n\n vec4 worldPos = finalWorld * vec4(positionUpdated, 1.0);\n\n gl_Position = projection * view * worldPos;\n }`,\n fragmentSource: `\n precision highp float;\n varying vec3 vColor;\n\n void main() {\n vec4 color = vec4( vColor, 1.0 );\n gl_FragColor = color;\n }\n `\n }, {\n attributes: [\"position\", \"normal\", \"matricesIndices\", \"matricesWeights\"],\n uniforms: [\"world\", \"worldView\", \"worldViewProjection\", \"view\", \"projection\", \"viewProjection\", \"colorMap\"]\n });\n return o.setFloats(\"colorMap\", n), o.getClassName = () => \"SkeletonMapShader\", o.transparencyMode = ue.MATERIAL_OPAQUE, o;\n }\n /** private static method to create a BoneWeight Shader\n * @param size The size of the buffer to create (usually the bone count)\n * @param colorMap The gradient data to generate\n * @param scene The scene that the shader is scoped to\n * @returns an Array of floats from the color gradient values\n */\n static _CreateBoneMapColorBuffer(e, t, i) {\n const s = new ea(\"temp\", { width: e, height: 1 }, i, !1), r = s.getContext(), n = r.createLinearGradient(0, 0, e, 0);\n t.forEach((c) => {\n n.addColorStop(c.location, c.color.toHexString());\n }), r.fillStyle = n, r.fillRect(0, 0, e, 1), s.update();\n const o = [], l = r.getImageData(0, 0, e, 1).data, h = 1 / 255;\n for (let c = 0; c < l.length; c++)\n o.push(l[c] * h);\n return s.dispose(), o;\n }\n /** Gets the Scene. */\n get scene() {\n return this._scene;\n }\n /** Gets the utilityLayer. */\n get utilityLayer() {\n return this._utilityLayer;\n }\n /** Checks Ready Status. */\n get isReady() {\n return this._ready;\n }\n /** Sets Ready Status. */\n set ready(e) {\n this._ready = e;\n }\n /** Gets the debugMesh */\n get debugMesh() {\n return this._debugMesh;\n }\n /** Sets the debugMesh */\n set debugMesh(e) {\n this._debugMesh = e;\n }\n /** Gets the displayMode */\n get displayMode() {\n return this.options.displayMode || Lr.DISPLAY_LINES;\n }\n /** Sets the displayMode */\n set displayMode(e) {\n e > Lr.DISPLAY_SPHERE_AND_SPURS && (e = Lr.DISPLAY_LINES), this.options.displayMode = e;\n }\n /**\n * Creates a new SkeletonViewer\n * @param skeleton defines the skeleton to render\n * @param mesh defines the mesh attached to the skeleton\n * @param scene defines the hosting scene\n * @param autoUpdateBonesMatrices defines a boolean indicating if bones matrices must be forced to update before rendering (true by default)\n * @param renderingGroupId defines the rendering group id to use with the viewer\n * @param options All of the extra constructor options for the SkeletonViewer\n */\n constructor(e, t, i, s = !0, r = 3, n = {}) {\n if (this.skeleton = e, this.mesh = t, this.autoUpdateBonesMatrices = s, this.renderingGroupId = r, this.options = n, this.color = re.White(), this._debugLines = new Array(), this._localAxes = null, this._isEnabled = !0, this._obs = null, this._scene = i, this._ready = !1, n.pauseAnimations = n.pauseAnimations ?? !0, n.returnToRest = n.returnToRest ?? !1, n.displayMode = n.displayMode ?? Lr.DISPLAY_LINES, n.displayOptions = n.displayOptions ?? {}, n.displayOptions.midStep = n.displayOptions.midStep ?? 0.235, n.displayOptions.midStepFactor = n.displayOptions.midStepFactor ?? 0.155, n.displayOptions.sphereBaseSize = n.displayOptions.sphereBaseSize ?? 0.15, n.displayOptions.sphereScaleUnit = n.displayOptions.sphereScaleUnit ?? 2, n.displayOptions.sphereFactor = n.displayOptions.sphereFactor ?? 0.865, n.displayOptions.spurFollowsChild = n.displayOptions.spurFollowsChild ?? !1, n.displayOptions.showLocalAxes = n.displayOptions.showLocalAxes ?? !1, n.displayOptions.localAxesSize = n.displayOptions.localAxesSize ?? 0.075, n.computeBonesUsingShaders = n.computeBonesUsingShaders ?? !0, n.useAllBones = n.useAllBones ?? !0, this._boneIndices = /* @__PURE__ */ new Set(), !n.useAllBones) {\n const l = t == null ? void 0 : t.getVerticesData(R.MatricesIndicesKind), h = t == null ? void 0 : t.getVerticesData(R.MatricesWeightsKind);\n if (l && h)\n for (let c = 0; c < l.length; ++c) {\n const u = l[c];\n h[c] !== 0 && this._boneIndices.add(u);\n }\n }\n this._utilityLayer = new Ci(this._scene, !1), this._utilityLayer.pickUtilitySceneFirst = !1, this._utilityLayer.utilityLayerScene.autoClearDepthAndStencil = !0;\n let o = this.options.displayMode || 0;\n o > Lr.DISPLAY_SPHERE_AND_SPURS && (o = Lr.DISPLAY_LINES), this.displayMode = o, this.update(), this._bindObs();\n }\n /** The Dynamic bindings for the update functions */\n _bindObs() {\n switch (this.displayMode) {\n case Lr.DISPLAY_LINES: {\n this._obs = this.scene.onBeforeRenderObservable.add(() => {\n this._displayLinesUpdate();\n });\n break;\n }\n }\n }\n /** Update the viewer to sync with current skeleton state, only used to manually update. */\n update() {\n switch (this.displayMode) {\n case Lr.DISPLAY_LINES: {\n this._displayLinesUpdate();\n break;\n }\n case Lr.DISPLAY_SPHERES: {\n this._buildSpheresAndSpurs(!0);\n break;\n }\n case Lr.DISPLAY_SPHERE_AND_SPURS: {\n this._buildSpheresAndSpurs(!1);\n break;\n }\n }\n this._buildLocalAxes();\n }\n /** Gets or sets a boolean indicating if the viewer is enabled */\n set isEnabled(e) {\n this.isEnabled !== e && (this._isEnabled = e, this.debugMesh && this.debugMesh.setEnabled(e), e && !this._obs ? this._bindObs() : !e && this._obs && (this.scene.onBeforeRenderObservable.remove(this._obs), this._obs = null));\n }\n get isEnabled() {\n return this._isEnabled;\n }\n _getBonePosition(e, t, i, s = 0, r = 0, n = 0) {\n const o = w.Matrix[0], l = t.getParent();\n if (o.copyFrom(t.getLocalMatrix()), s !== 0 || r !== 0 || n !== 0) {\n const h = w.Matrix[1];\n O.IdentityToRef(h), h.setTranslationFromFloats(s, r, n), h.multiplyToRef(o, o);\n }\n l && o.multiplyToRef(l.getAbsoluteMatrix(), o), o.multiplyToRef(i, o), e.x = o.m[12], e.y = o.m[13], e.z = o.m[14];\n }\n _getLinesForBonesWithLength(e, t) {\n const i = e.length;\n let s, r;\n t ? (s = t.getWorldMatrix(), r = t.position) : (s = new O(), r = e[0].position);\n let n = 0;\n for (let o = 0; o < i; o++) {\n const l = e[o];\n let h = this._debugLines[n];\n l._index === -1 || !this._boneIndices.has(l.getIndex()) && !this.options.useAllBones || (h || (h = [g.Zero(), g.Zero()], this._debugLines[n] = h), this._getBonePosition(h[0], l, s), this._getBonePosition(h[1], l, s, 0, l.length, 0), h[0].subtractInPlace(r), h[1].subtractInPlace(r), n++);\n }\n }\n _getLinesForBonesNoLength(e) {\n const t = e.length;\n let i = 0;\n const s = this.mesh;\n let r, n;\n s ? (r = s, n = s.position) : (r = new Ye(\"\"), n = e[0].position);\n for (let o = t - 1; o >= 0; o--) {\n const l = e[o], h = l.getParent();\n if (!h || !this._boneIndices.has(l.getIndex()) && !this.options.useAllBones)\n continue;\n let c = this._debugLines[i];\n c || (c = [g.Zero(), g.Zero()], this._debugLines[i] = c), l.getAbsolutePositionToRef(r, c[0]), h.getAbsolutePositionToRef(r, c[1]), c[0].subtractInPlace(n), c[1].subtractInPlace(n), i++;\n }\n s || r.dispose();\n }\n /**\n * function to revert the mesh and scene back to the initial state.\n * @param animationState\n */\n _revert(e) {\n this.options.pauseAnimations && (this.scene.animationsEnabled = e, this.utilityLayer.utilityLayerScene.animationsEnabled = e);\n }\n /**\n * function to get the absolute bind pose of a bone by accumulating transformations up the bone hierarchy.\n * @param bone\n * @param matrix\n */\n _getAbsoluteBindPoseToRef(e, t) {\n if (e === null || e._index === -1) {\n t.copyFrom(O.Identity());\n return;\n }\n this._getAbsoluteBindPoseToRef(e.getParent(), t), e.getBindMatrix().multiplyToRef(t, t);\n }\n _createSpur(e, t, i, s, r, n) {\n const o = i.subtract(e), l = o.length(), h = o.normalize().scale(l), c = r.midStep || 0.165, u = r.midStepFactor || 0.215, d = h.scale(c), f = N_(\"skeletonViewer\", {\n shape: [new g(1, -1, 0), new g(1, 1, 0), new g(-1, 1, 0), new g(-1, -1, 0), new g(1, -1, 0)],\n path: [g.Zero(), d, h],\n scaleFunction: (x) => {\n switch (x) {\n case 0:\n case 2:\n return 0;\n case 1:\n return l * u;\n }\n return 0;\n },\n sideOrientation: H.DEFAULTSIDE,\n updatable: !1\n }, n), p = f.getTotalVertices(), _ = [], m = [];\n for (let x = 0; x < p; x++)\n _.push(1, 0, 0, 0), s && r.spurFollowsChild && x > 9 ? m.push(s.getIndex(), 0, 0, 0) : m.push(t.getIndex(), 0, 0, 0);\n return f.position = e.clone(), f.setVerticesData(R.MatricesWeightsKind, _, !1), f.setVerticesData(R.MatricesIndicesKind, m, !1), f.convertToFlatShadedMesh(), f;\n }\n _getBoundingSphereForBone(e) {\n if (!this.mesh)\n return null;\n const t = this.mesh.getVerticesData(R.PositionKind), i = this.mesh.getIndices(), s = this.mesh.getVerticesData(R.MatricesWeightsKind), r = this.mesh.getVerticesData(R.MatricesIndicesKind);\n if (!t || !i || !s || !r)\n return null;\n const n = new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), o = new g(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\n let l = 0;\n for (let h = 0; h < i.length; ++h) {\n const c = i[h];\n for (let u = 0; u < 4; ++u) {\n const d = r[c * 4 + u], f = s[c * 4 + u];\n if (d === e && f > 1e-5) {\n g.FromArrayToRef(t, c * 3, w.Vector3[0]), n.minimizeInPlace(w.Vector3[0]), o.maximizeInPlace(w.Vector3[0]), l++;\n break;\n }\n }\n }\n return l > 1 ? {\n center: g.Center(n, o),\n radius: g.Distance(n, o) / 2\n } : null;\n }\n /**\n * function to build and bind sphere joint points and spur bone representations.\n * @param spheresOnly\n */\n _buildSpheresAndSpurs(e = !0) {\n var o;\n this._debugMesh && (this._debugMesh.dispose(), this._debugMesh = null, this.ready = !1), this._ready = !1;\n const t = (o = this.utilityLayer) == null ? void 0 : o.utilityLayerScene, i = this.skeleton.bones, s = [], r = [], n = this.scene.animationsEnabled;\n try {\n this.options.pauseAnimations && (this.scene.animationsEnabled = !1, t.animationsEnabled = !1), this.options.returnToRest && this.skeleton.returnToRest(), this.autoUpdateBonesMatrices && this.skeleton.computeAbsoluteMatrices();\n let l = Number.NEGATIVE_INFINITY;\n const h = this.options.displayOptions || {};\n for (let p = 0; p < i.length; p++) {\n const _ = i[p];\n if (_._index === -1 || !this._boneIndices.has(_.getIndex()) && !this.options.useAllBones)\n continue;\n const m = new O();\n this._getAbsoluteBindPoseToRef(_, m);\n const x = new g();\n if (m.decompose(void 0, void 0, x), _.children.length > 0)\n _.children.forEach((C) => {\n const P = new O();\n C.getLocalMatrix().multiplyToRef(m, P);\n const N = new g();\n P.decompose(void 0, void 0, N);\n const F = g.Distance(x, N);\n F > l && (l = F), !e && r.push(this._createSpur(x, _, N, C, h, t));\n });\n else {\n const C = this._getBoundingSphereForBone(_.getIndex());\n if (C && (C.radius > l && (l = C.radius), !e)) {\n let P;\n const N = _.getParent();\n N ? (this._getAbsoluteBindPoseToRef(N, m), m.decompose(void 0, void 0, w.Vector3[0]), P = x.subtract(w.Vector3[0]).normalize().scale(C.radius).add(x)) : P = C.center.subtract(x).normalize().scale(C.radius).add(x), r.push(this._createSpur(x, _, P, null, h, t));\n }\n }\n const v = h.sphereBaseSize || 0.2, T = Tr(\"skeletonViewer\", {\n segments: 6,\n diameter: v,\n updatable: !0\n }, t), E = T.getTotalVertices(), b = [], S = [];\n for (let C = 0; C < E; C++)\n b.push(1, 0, 0, 0), S.push(_.getIndex(), 0, 0, 0);\n T.setVerticesData(R.MatricesWeightsKind, b, !1), T.setVerticesData(R.MatricesIndicesKind, S, !1), T.position = x.clone(), s.push([T, _]);\n }\n const c = h.sphereScaleUnit || 2, u = h.sphereFactor || 0.85, d = [];\n for (let p = 0; p < s.length; p++) {\n const [_, m] = s[p], x = 1 / (c / l);\n let v = 0, T = m;\n for (; T.getParent() && T.getParent().getIndex() !== -1; )\n v++, T = T.getParent();\n _.scaling.scaleInPlace(x * Math.pow(u, v)), d.push(_);\n }\n this.debugMesh = H.MergeMeshes(d.concat(r), !0, !0), this.debugMesh && (this.debugMesh.renderingGroupId = this.renderingGroupId, this.debugMesh.skeleton = this.skeleton, this.debugMesh.parent = this.mesh, this.debugMesh.computeBonesUsingShaders = this.options.computeBonesUsingShaders ?? !0, this.debugMesh.alwaysSelectAsActiveMesh = !0);\n const f = this.utilityLayer._getSharedGizmoLight();\n f.intensity = 0.7, this._revert(n), this.ready = !0;\n } catch (l) {\n L.Error(l), this._revert(n), this.dispose();\n }\n }\n _buildLocalAxes() {\n this._localAxes && this._localAxes.dispose(), this._localAxes = null;\n const e = this.options.displayOptions || {};\n if (!e.showLocalAxes)\n return;\n const t = this._utilityLayer.utilityLayerScene, i = e.localAxesSize || 0.075, s = [], r = [], n = new Ce(1, 0, 0, 1), o = new Ce(0, 1, 0, 1), l = new Ce(0, 0, 1, 1), h = [], c = [], u = 6;\n for (const d in this.skeleton.bones) {\n const f = this.skeleton.bones[d];\n if (f._index === -1 || !this._boneIndices.has(f.getIndex()) && !this.options.useAllBones)\n continue;\n const p = new O(), _ = new g();\n this._getAbsoluteBindPoseToRef(f, p), p.decompose(void 0, w.Quaternion[0], _);\n const m = new O();\n w.Quaternion[0].toRotationMatrix(m);\n const x = g.TransformCoordinates(new g(0 + i, 0, 0), m), v = g.TransformCoordinates(new g(0, 0 + i, 0), m), T = g.TransformCoordinates(new g(0, 0, 0 + i), m), E = [_, _.add(x)], b = [_, _.add(v)], S = [_, _.add(T)], C = [E, b, S], P = [\n [n, n],\n [o, o],\n [l, l]\n ];\n s.push(...C), r.push(...P);\n for (let N = 0; N < u; N++)\n h.push(1, 0, 0, 0), c.push(f.getIndex(), 0, 0, 0);\n }\n this._localAxes = Sh(\"localAxes\", { lines: s, colors: r, updatable: !0 }, t), this._localAxes.setVerticesData(R.MatricesWeightsKind, h, !1), this._localAxes.setVerticesData(R.MatricesIndicesKind, c, !1), this._localAxes.skeleton = this.skeleton, this._localAxes.renderingGroupId = this.renderingGroupId + 1, this._localAxes.parent = this.mesh, this._localAxes.computeBonesUsingShaders = this.options.computeBonesUsingShaders ?? !0;\n }\n /** Update the viewer to sync with current skeleton state, only used for the line display. */\n _displayLinesUpdate() {\n if (!this._utilityLayer)\n return;\n this.autoUpdateBonesMatrices && this.skeleton.computeAbsoluteMatrices(), this.skeleton.bones[0].length === void 0 ? this._getLinesForBonesNoLength(this.skeleton.bones) : this._getLinesForBonesWithLength(this.skeleton.bones, this.mesh);\n const e = this._utilityLayer.utilityLayerScene;\n e && (this._debugMesh ? Sh(\"\", { lines: this._debugLines, updatable: !0, instance: this._debugMesh }, e) : (this._debugMesh = Sh(\"\", { lines: this._debugLines, updatable: !0, instance: null }, e), this._debugMesh.renderingGroupId = this.renderingGroupId), this.mesh ? this._debugMesh.position.copyFrom(this.mesh.position) : this._debugMesh.position.copyFrom(this.skeleton.bones[0].position), this._debugMesh.color = this.color);\n }\n /** Changes the displayMode of the skeleton viewer\n * @param mode The displayMode numerical value\n */\n changeDisplayMode(e) {\n const t = !!this.isEnabled;\n this.displayMode !== e && (this.isEnabled = !1, this._debugMesh && (this._debugMesh.dispose(), this._debugMesh = null, this.ready = !1), this.displayMode = e, this.update(), this._bindObs(), this.isEnabled = t);\n }\n /** Sets a display option of the skeleton viewer\n *\n * | Option | Type | Default | Description |\n * | ---------------- | ------- | ------- | ----------- |\n * | midStep | float | 0.235 | A percentage between a bone and its child that determines the widest part of a spur. Only used when `displayMode` is set to `DISPLAY_SPHERE_AND_SPURS`. |\n * | midStepFactor | float | 0.15 | Mid step width expressed as a factor of the length. A value of 0.5 makes the spur width half of the spur length. Only used when `displayMode` is set to `DISPLAY_SPHERE_AND_SPURS`. |\n * | sphereBaseSize | float | 2 | Sphere base size. Only used when `displayMode` is set to `DISPLAY_SPHERE_AND_SPURS`. |\n * | sphereScaleUnit | float | 0.865 | Sphere scale factor used to scale spheres in relation to the longest bone. Only used when `displayMode` is set to `DISPLAY_SPHERE_AND_SPURS`. |\n * | spurFollowsChild | boolean | false | Whether a spur should attach its far end to the child bone. |\n * | showLocalAxes | boolean | false | Displays local axes on all bones. |\n * | localAxesSize | float | 0.075 | Determines the length of each local axis. |\n *\n * @param option String of the option name\n * @param value The numerical option value\n */\n changeDisplayOptions(e, t) {\n const i = !!this.isEnabled;\n this.options.displayOptions[e] = t, this.isEnabled = !1, this._debugMesh && (this._debugMesh.dispose(), this._debugMesh = null, this.ready = !1), this.update(), this._bindObs(), this.isEnabled = i;\n }\n /** Release associated resources */\n dispose() {\n this.isEnabled = !1, this._debugMesh && (this._debugMesh.dispose(), this._debugMesh = null), this._utilityLayer && (this._utilityLayer.dispose(), this._utilityLayer = null), this.ready = !1;\n }\n}\nLr.DISPLAY_LINES = 0;\nLr.DISPLAY_SPHERES = 1;\nLr.DISPLAY_SPHERE_AND_SPURS = 2;\nwe.prototype._partialLoadFile = function(a, e, t, i, s = null) {\n const r = (o) => {\n t[e] = o, t._internalCount++, t._internalCount === 6 && i(t);\n }, n = (o, l) => {\n s && o && s(o.status + \" \" + o.statusText, l);\n };\n this._loadFile(a, r, void 0, void 0, !0, n);\n};\nwe.prototype._cascadeLoadFiles = function(a, e, t, i = null) {\n const s = [];\n s._internalCount = 0;\n for (let r = 0; r < 6; r++)\n this._partialLoadFile(t[r], r, s, e, i);\n};\nwe.prototype._cascadeLoadImgs = function(a, e, t, i, s = null, r) {\n const n = [];\n n._internalCount = 0;\n for (let o = 0; o < 6; o++)\n this._partialLoadImg(i[o], o, n, a, e, t, s, r);\n};\nwe.prototype._partialLoadImg = function(a, e, t, i, s, r, n = null, o) {\n const l = vo();\n rf(a, (u) => {\n t[e] = u, t._internalCount++, i && i.removePendingData(l), t._internalCount === 6 && r && r(s, t);\n }, (u, d) => {\n i && i.removePendingData(l), n && n(u, d);\n }, i ? i.offlineProvider : null, o), i && i.addPendingData(l);\n};\nwe.prototype.createCubeTextureBase = function(a, e, t, i, s = null, r = null, n, o = null, l = !1, h = 0, c = 0, u = null, d = null, f = null, p = !1, _ = null) {\n const m = u || new Nt(\n this,\n 7\n /* InternalTextureSource.Cube */\n );\n m.isCube = !0, m.url = a, m.generateMipMaps = !i, m._lodGenerationScale = h, m._lodGenerationOffset = c, m._useSRGBBuffer = !!p && this._caps.supportSRGBBuffers && (this.version > 1 || this.isWebGPU || !!i), m !== u && (m.label = a.substring(0, 60)), this._doNotHandleContextLost || (m._extension = o, m._files = t, m._buffer = _);\n const x = a;\n this._transformTextureUrl && !u && (a = this._transformTextureUrl(a));\n const v = a.split(\"?\")[0], T = v.lastIndexOf(\".\"), E = o || (T > -1 ? v.substring(T).toLowerCase() : \"\");\n let b = null;\n for (const C of we._TextureLoaders)\n if (C.canLoad(E)) {\n b = C;\n break;\n }\n const S = (C, P) => {\n a === x ? r && C && r(C.status + \" \" + C.statusText, P) : (L.Warn(`Failed to load ${a}, falling back to the ${x}`), this.createCubeTextureBase(x, e, t, !!i, s, r, n, o, l, h, c, m, d, f, p, _));\n };\n if (b) {\n const C = (P) => {\n d && d(m, P), b.loadCubeData(P, m, l, s, r);\n };\n _ ? C(_) : t && t.length === 6 ? b.supportCascades ? this._cascadeLoadFiles(e, (P) => C(P.map((N) => new Uint8Array(N))), t, r) : r ? r(\"Textures type does not support cascades.\") : L.Warn(\"Texture loader does not support cascades.\") : this._loadFile(a, (P) => C(new Uint8Array(P)), void 0, void 0, !0, S);\n } else {\n if (!t || t.length === 0)\n throw new Error(\"Cannot load cubemap because files were not defined, or the correct loader was not found.\");\n this._cascadeLoadImgs(e, m, (C, P) => {\n f && f(C, P);\n }, t, r);\n }\n return this._internalTexturesCache.push(m), m;\n};\nclass zL {\n constructor() {\n this.occlusionInternalRetryCounter = 0, this.isOcclusionQueryInProgress = !1, this.isOccluded = !1, this.occlusionRetryCount = -1, this.occlusionType = Pt.OCCLUSION_TYPE_NONE, this.occlusionQueryAlgorithmType = Pt.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE, this.forceRenderingWhenOccluded = !1;\n }\n}\nwe.prototype.getGPUFrameTimeCounter = function() {\n return null;\n};\nwe.prototype.captureGPUFrameTime = function(a) {\n};\nwe.prototype.createQuery = function() {\n return null;\n};\nwe.prototype.deleteQuery = function(a) {\n return this;\n};\nwe.prototype.isQueryResultAvailable = function(a) {\n return !1;\n};\nwe.prototype.getQueryResult = function(a) {\n return 0;\n};\nwe.prototype.beginOcclusionQuery = function(a, e) {\n return !1;\n};\nwe.prototype.endOcclusionQuery = function(a) {\n return this;\n};\nObject.defineProperty(Pt.prototype, \"isOcclusionQueryInProgress\", {\n get: function() {\n return this._occlusionDataStorage.isOcclusionQueryInProgress;\n },\n set: function(a) {\n this._occlusionDataStorage.isOcclusionQueryInProgress = a;\n },\n enumerable: !1,\n configurable: !0\n});\nObject.defineProperty(Pt.prototype, \"_occlusionDataStorage\", {\n get: function() {\n return this.__occlusionDataStorage || (this.__occlusionDataStorage = new zL()), this.__occlusionDataStorage;\n },\n enumerable: !1,\n configurable: !0\n});\nObject.defineProperty(Pt.prototype, \"isOccluded\", {\n get: function() {\n return this._occlusionDataStorage.isOccluded;\n },\n set: function(a) {\n this._occlusionDataStorage.isOccluded = a;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(Pt.prototype, \"occlusionQueryAlgorithmType\", {\n get: function() {\n return this._occlusionDataStorage.occlusionQueryAlgorithmType;\n },\n set: function(a) {\n this._occlusionDataStorage.occlusionQueryAlgorithmType = a;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(Pt.prototype, \"occlusionType\", {\n get: function() {\n return this._occlusionDataStorage.occlusionType;\n },\n set: function(a) {\n this._occlusionDataStorage.occlusionType = a;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(Pt.prototype, \"occlusionRetryCount\", {\n get: function() {\n return this._occlusionDataStorage.occlusionRetryCount;\n },\n set: function(a) {\n this._occlusionDataStorage.occlusionRetryCount = a;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(Pt.prototype, \"forceRenderingWhenOccluded\", {\n get: function() {\n return this._occlusionDataStorage.forceRenderingWhenOccluded;\n },\n set: function(a) {\n this._occlusionDataStorage.forceRenderingWhenOccluded = a;\n },\n enumerable: !0,\n configurable: !0\n});\nPt.prototype._checkOcclusionQuery = function() {\n const a = this._occlusionDataStorage;\n if (a.occlusionType === Pt.OCCLUSION_TYPE_NONE)\n return a.isOccluded = !1, !1;\n const e = this.getEngine();\n if (!e.getCaps().supportOcclusionQuery || !e.isQueryResultAvailable)\n return a.isOccluded = !1, !1;\n if (this.isOcclusionQueryInProgress && this._occlusionQuery !== null && this._occlusionQuery !== void 0)\n if (e.isQueryResultAvailable(this._occlusionQuery)) {\n const s = e.getQueryResult(this._occlusionQuery);\n a.isOcclusionQueryInProgress = !1, a.occlusionInternalRetryCounter = 0, a.isOccluded = !(s > 0);\n } else if (a.occlusionInternalRetryCounter++, a.occlusionRetryCount !== -1 && a.occlusionInternalRetryCounter > a.occlusionRetryCount)\n a.isOcclusionQueryInProgress = !1, a.occlusionInternalRetryCounter = 0, a.isOccluded = a.occlusionType === Pt.OCCLUSION_TYPE_OPTIMISTIC ? !1 : a.isOccluded;\n else\n return a.occlusionType === Pt.OCCLUSION_TYPE_OPTIMISTIC ? !1 : a.isOccluded;\n const t = this.getScene();\n if (t.getBoundingBoxRenderer) {\n const i = t.getBoundingBoxRenderer();\n this._occlusionQuery === null && (this._occlusionQuery = e.createQuery()), this._occlusionQuery && e.beginOcclusionQuery(a.occlusionQueryAlgorithmType, this._occlusionQuery) && (i.renderOcclusionBoundingBox(this), e.endOcclusionQuery(a.occlusionQueryAlgorithmType), this._occlusionDataStorage.isOcclusionQueryInProgress = !0);\n }\n return a.isOccluded;\n};\nclass wK {\n}\nconst X0 = new G(), $0 = new G();\nObject.defineProperty(we.prototype, \"onBeforeViewRenderObservable\", {\n get: function() {\n return X0;\n }\n});\nObject.defineProperty(we.prototype, \"onAfterViewRenderObservable\", {\n get: function() {\n return $0;\n }\n});\nObject.defineProperty(we.prototype, \"inputElement\", {\n get: function() {\n return this._inputElement;\n },\n set: function(a) {\n var e;\n this._inputElement !== a && (this._inputElement = a, (e = this._onEngineViewChanged) == null || e.call(this));\n }\n});\nwe.prototype.getInputElement = function() {\n return this.inputElement || this.getRenderingCanvas();\n};\nwe.prototype.registerView = function(a, e, t) {\n this.views || (this.views = []);\n for (const r of this.views)\n if (r.target === a)\n return r;\n const i = this.getRenderingCanvas();\n i && (a.width = i.width, a.height = i.height);\n const s = { target: a, camera: e, clearBeforeCopy: t, enabled: !0, id: (Math.random() * 1e5).toFixed() };\n return this.views.push(s), e && !Array.isArray(e) && e.onDisposeObservable.add(() => {\n this.unRegisterView(a);\n }), s;\n};\nwe.prototype.unRegisterView = function(a) {\n if (!this.views || this.views.length === 0)\n return this;\n for (const e of this.views)\n if (e.target === a) {\n const t = this.views.indexOf(e);\n t !== -1 && this.views.splice(t, 1);\n break;\n }\n return this;\n};\nwe.prototype._renderViewStep = function(a) {\n const e = a.target, t = e.getContext(\"2d\");\n if (!t)\n return !0;\n const i = this.getRenderingCanvas();\n X0.notifyObservers(a);\n const s = a.camera;\n let r = null, n = null, o = null;\n if (s && (o = Array.isArray(s) ? s[0].getScene() : s.getScene(), r = o.activeCamera, n = o.activeCameras, this.activeView = a, Array.isArray(s) ? o.activeCameras = s : (o.activeCamera = s, o.activeCameras = null)), a.customResize)\n a.customResize(e);\n else {\n const l = Math.floor(e.clientWidth / this._hardwareScalingLevel), h = Math.floor(e.clientHeight / this._hardwareScalingLevel), c = l !== e.width || i.width !== e.width || h !== e.height || i.height !== e.height;\n e.clientWidth && e.clientHeight && c && (e.width = l, e.height = h, this.setSize(l, h));\n }\n return !i.width || !i.height ? !1 : (this._renderFrame(), this.flushFramebuffer(), a.clearBeforeCopy && t.clearRect(0, 0, i.width, i.height), t.drawImage(i, 0, 0), o && (o.activeCameras = n, o.activeCamera = r), $0.notifyObservers(a), !0);\n};\nwe.prototype._renderViews = function() {\n if (!this.views || this.views.length === 0 || !this.getRenderingCanvas())\n return !1;\n let e;\n for (const t of this.views) {\n if (!t.enabled)\n continue;\n if (t.target === this.inputElement) {\n e = t;\n continue;\n }\n if (!this._renderViewStep(t))\n return !1;\n }\n return e && !this._renderViewStep(e) ? !1 : (this.activeView = null, !0);\n};\nwe.prototype._debugPushGroup = function(a, e) {\n};\nwe.prototype._debugPopGroup = function(a) {\n};\nwe.prototype._debugInsertMarker = function(a, e) {\n};\nwe.prototype._debugFlushPendingCommands = function() {\n};\nclass WL {\n constructor() {\n this._timeElapsedQueryEnded = !1;\n }\n}\nee.prototype.createQuery = function() {\n const a = this._gl.createQuery();\n if (!a)\n throw new Error(\"Unable to create Occlusion Query\");\n return a;\n};\nee.prototype.deleteQuery = function(a) {\n return this._gl.deleteQuery(a), this;\n};\nee.prototype.isQueryResultAvailable = function(a) {\n return this._gl.getQueryParameter(a, this._gl.QUERY_RESULT_AVAILABLE);\n};\nee.prototype.getQueryResult = function(a) {\n return this._gl.getQueryParameter(a, this._gl.QUERY_RESULT);\n};\nee.prototype.beginOcclusionQuery = function(a, e) {\n const t = this._getGlAlgorithmType(a);\n return this._gl.beginQuery(t, e), !0;\n};\nee.prototype.endOcclusionQuery = function(a) {\n const e = this._getGlAlgorithmType(a);\n return this._gl.endQuery(e), this;\n};\nee.prototype._createTimeQuery = function() {\n const a = this.getCaps().timerQuery;\n return a.createQueryEXT ? a.createQueryEXT() : this.createQuery();\n};\nee.prototype._deleteTimeQuery = function(a) {\n const e = this.getCaps().timerQuery;\n if (e.deleteQueryEXT) {\n e.deleteQueryEXT(a);\n return;\n }\n this.deleteQuery(a);\n};\nee.prototype._getTimeQueryResult = function(a) {\n const e = this.getCaps().timerQuery;\n return e.getQueryObjectEXT ? e.getQueryObjectEXT(a, e.QUERY_RESULT_EXT) : this.getQueryResult(a);\n};\nee.prototype._getTimeQueryAvailability = function(a) {\n const e = this.getCaps().timerQuery;\n return e.getQueryObjectEXT ? e.getQueryObjectEXT(a, e.QUERY_RESULT_AVAILABLE_EXT) : this.isQueryResultAvailable(a);\n};\nee.prototype.startTimeQuery = function() {\n const a = this.getCaps(), e = a.timerQuery;\n if (!e)\n return null;\n const t = new WL();\n if (this._gl.getParameter(e.GPU_DISJOINT_EXT), a.canUseTimestampForTimerQuery)\n t._startTimeQuery = this._createTimeQuery(), t._startTimeQuery && e.queryCounterEXT(t._startTimeQuery, e.TIMESTAMP_EXT);\n else {\n if (this._currentNonTimestampToken)\n return this._currentNonTimestampToken;\n t._timeElapsedQuery = this._createTimeQuery(), t._timeElapsedQuery && (e.beginQueryEXT ? e.beginQueryEXT(e.TIME_ELAPSED_EXT, t._timeElapsedQuery) : this._gl.beginQuery(e.TIME_ELAPSED_EXT, t._timeElapsedQuery)), this._currentNonTimestampToken = t;\n }\n return t;\n};\nee.prototype.endTimeQuery = function(a) {\n const e = this.getCaps(), t = e.timerQuery;\n if (!t || !a)\n return -1;\n if (e.canUseTimestampForTimerQuery) {\n if (!a._startTimeQuery)\n return -1;\n a._endTimeQuery || (a._endTimeQuery = this._createTimeQuery(), a._endTimeQuery && t.queryCounterEXT(a._endTimeQuery, t.TIMESTAMP_EXT));\n } else if (!a._timeElapsedQueryEnded) {\n if (!a._timeElapsedQuery)\n return -1;\n t.endQueryEXT ? t.endQueryEXT(t.TIME_ELAPSED_EXT) : (this._gl.endQuery(t.TIME_ELAPSED_EXT), this._currentNonTimestampToken = null), a._timeElapsedQueryEnded = !0;\n }\n const i = this._gl.getParameter(t.GPU_DISJOINT_EXT);\n let s = !1;\n if (a._endTimeQuery ? s = this._getTimeQueryAvailability(a._endTimeQuery) : a._timeElapsedQuery && (s = this._getTimeQueryAvailability(a._timeElapsedQuery)), s && !i) {\n let r = 0;\n if (e.canUseTimestampForTimerQuery) {\n if (!a._startTimeQuery || !a._endTimeQuery)\n return -1;\n const n = this._getTimeQueryResult(a._startTimeQuery);\n r = this._getTimeQueryResult(a._endTimeQuery) - n, this._deleteTimeQuery(a._startTimeQuery), this._deleteTimeQuery(a._endTimeQuery), a._startTimeQuery = null, a._endTimeQuery = null;\n } else {\n if (!a._timeElapsedQuery)\n return -1;\n r = this._getTimeQueryResult(a._timeElapsedQuery), this._deleteTimeQuery(a._timeElapsedQuery), a._timeElapsedQuery = null, a._timeElapsedQueryEnded = !1;\n }\n return r;\n }\n return -1;\n};\nee.prototype._captureGPUFrameTime = !1;\nee.prototype._gpuFrameTime = new nn();\nee.prototype.getGPUFrameTimeCounter = function() {\n return this._gpuFrameTime;\n};\nee.prototype.captureGPUFrameTime = function(a) {\n a !== this._captureGPUFrameTime && (this._captureGPUFrameTime = a, a ? (this._onBeginFrameObserver = this.onBeginFrameObservable.add(() => {\n this._gpuFrameTimeToken || (this._gpuFrameTimeToken = this.startTimeQuery());\n }), this._onEndFrameObserver = this.onEndFrameObservable.add(() => {\n if (!this._gpuFrameTimeToken)\n return;\n const e = this.endTimeQuery(this._gpuFrameTimeToken);\n e > -1 && (this._gpuFrameTimeToken = null, this._gpuFrameTime.fetchNewFrame(), this._gpuFrameTime.addCount(e, !0));\n })) : (this.onBeginFrameObservable.remove(this._onBeginFrameObserver), this._onBeginFrameObserver = null, this.onEndFrameObservable.remove(this._onEndFrameObserver), this._onEndFrameObserver = null));\n};\nee.prototype._getGlAlgorithmType = function(a) {\n return a === Pt.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE ? this._gl.ANY_SAMPLES_PASSED_CONSERVATIVE : this._gl.ANY_SAMPLES_PASSED;\n};\nvar NK = !0;\nee.prototype.createTransformFeedback = function() {\n const a = this._gl.createTransformFeedback();\n if (!a)\n throw new Error(\"Unable to create Transform Feedback\");\n return a;\n};\nee.prototype.deleteTransformFeedback = function(a) {\n this._gl.deleteTransformFeedback(a);\n};\nee.prototype.bindTransformFeedback = function(a) {\n this._gl.bindTransformFeedback(this._gl.TRANSFORM_FEEDBACK, a);\n};\nee.prototype.beginTransformFeedback = function(a = !0) {\n this._gl.beginTransformFeedback(a ? this._gl.POINTS : this._gl.TRIANGLES);\n};\nee.prototype.endTransformFeedback = function() {\n this._gl.endTransformFeedback();\n};\nee.prototype.setTranformFeedbackVaryings = function(a, e) {\n this._gl.transformFeedbackVaryings(a, e, this._gl.INTERLEAVED_ATTRIBS);\n};\nee.prototype.bindTransformFeedbackBuffer = function(a) {\n this._gl.bindBufferBase(this._gl.TRANSFORM_FEEDBACK_BUFFER, 0, a ? a.underlyingResource : null);\n};\nee.prototype.readTransformFeedbackBuffer = function(a) {\n this._gl.getBufferSubData(this._gl.TRANSFORM_FEEDBACK_BUFFER, 0, a);\n};\nXe.prototype.restoreSingleAttachment = function() {\n const a = this._gl;\n this.bindAttachments([a.BACK]);\n};\nXe.prototype.restoreSingleAttachmentForRenderTarget = function() {\n const a = this._gl;\n this.bindAttachments([a.COLOR_ATTACHMENT0]);\n};\nXe.prototype.buildTextureLayout = function(a) {\n const e = this._gl, t = [];\n for (let i = 0; i < a.length; i++)\n a[i] ? t.push(e[\"COLOR_ATTACHMENT\" + i]) : t.push(e.NONE);\n return t;\n};\nXe.prototype.bindAttachments = function(a) {\n this._gl.drawBuffers(a);\n};\nXe.prototype.unBindMultiColorAttachmentFramebuffer = function(a, e = !1, t) {\n this._currentRenderTarget = null;\n const i = this._gl, s = a._attachments, r = s.length;\n if (a._MSAAFramebuffer) {\n i.bindFramebuffer(i.READ_FRAMEBUFFER, a._MSAAFramebuffer), i.bindFramebuffer(i.DRAW_FRAMEBUFFER, a._framebuffer);\n for (let n = 0; n < r; n++) {\n const o = a.textures[n];\n for (let l = 0; l < r; l++)\n s[l] = i.NONE;\n s[n] = i[this.webGLVersion > 1 ? \"COLOR_ATTACHMENT\" + n : \"COLOR_ATTACHMENT\" + n + \"_WEBGL\"], i.readBuffer(s[n]), i.drawBuffers(s), i.blitFramebuffer(0, 0, o.width, o.height, 0, 0, o.width, o.height, i.COLOR_BUFFER_BIT, i.NEAREST);\n }\n for (let n = 0; n < r; n++)\n s[n] = i[this.webGLVersion > 1 ? \"COLOR_ATTACHMENT\" + n : \"COLOR_ATTACHMENT\" + n + \"_WEBGL\"];\n i.drawBuffers(s);\n }\n for (let n = 0; n < r; n++) {\n const o = a.textures[n];\n o != null && o.generateMipMaps && !e && !(o != null && o.isCube) && !(o != null && o.is3D) && (this._bindTextureDirectly(i.TEXTURE_2D, o, !0), i.generateMipmap(i.TEXTURE_2D), this._bindTextureDirectly(i.TEXTURE_2D, null));\n }\n t && (a._MSAAFramebuffer && this._bindUnboundFramebuffer(a._framebuffer), t()), this._bindUnboundFramebuffer(null);\n};\nXe.prototype.createMultipleRenderTarget = function(a, e, t = !0) {\n let i = !1, s = !0, r = !1, n = !1, o = 15, l = 1;\n const h = 0, c = 3, u = !1, d = 5, f = 3553;\n let p = [], _ = [], m = [], x = [], v = [], T = [], E = [], b = [];\n const S = this._createHardwareRenderTargetWrapper(!0, !1, a);\n e !== void 0 && (i = e.generateMipMaps === void 0 ? !1 : e.generateMipMaps, s = e.generateDepthBuffer === void 0 ? !0 : e.generateDepthBuffer, r = e.generateStencilBuffer === void 0 ? !1 : e.generateStencilBuffer, n = e.generateDepthTexture === void 0 ? !1 : e.generateDepthTexture, l = e.textureCount || 1, e.types && (p = e.types), e.samplingModes && (_ = e.samplingModes), e.useSRGBBuffers && (m = e.useSRGBBuffers), e.formats && (x = e.formats), e.targetTypes && (v = e.targetTypes), e.faceIndex && (T = e.faceIndex), e.layerIndex && (E = e.layerIndex), e.layerCounts && (b = e.layerCounts), this.webGLVersion > 1 && (e.depthTextureFormat === 13 || e.depthTextureFormat === 17 || e.depthTextureFormat === 16 || e.depthTextureFormat === 14 || e.depthTextureFormat === 18) && (o = e.depthTextureFormat)), S.label = (e == null ? void 0 : e.label) ?? \"MultiRenderTargetWrapper\";\n const C = this._gl, P = C.createFramebuffer();\n this._bindUnboundFramebuffer(P);\n const N = a.width || a, F = a.height || a, $ = [], j = [], ne = this.webGLVersion > 1 && n && (e.depthTextureFormat === 13 || e.depthTextureFormat === 17 || e.depthTextureFormat === 18), te = this._setupFramebufferDepthAttachments(!ne && r, !n && s, N, F);\n S._framebuffer = P, S._depthStencilBuffer = te, S._generateDepthBuffer = !n && s, S._generateStencilBuffer = !ne && r, S._attachments = j;\n for (let le = 0; le < l; le++) {\n let _e = _[le] || c, Se = p[le] || h, Ie = m[le] || u;\n const de = x[le] || d, Y = v[le] || f, M = b[le] ?? 1;\n (Se === 1 && !this._caps.textureFloatLinearFiltering || Se === 2 && !this._caps.textureHalfFloatLinearFiltering) && (_e = 1);\n const k = this._getSamplingParameters(_e, i);\n Se === 1 && !this._caps.textureFloat && (Se = 0, L.Warn(\"Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type\")), Ie = Ie && this._caps.supportSRGBBuffers && (this.webGLVersion > 1 || this.isWebGPU);\n const W = this.webGLVersion > 1, V = C[W ? \"COLOR_ATTACHMENT\" + le : \"COLOR_ATTACHMENT\" + le + \"_WEBGL\"];\n if (j.push(V), Y === -1)\n continue;\n const K = new Nt(\n this,\n 6\n /* InternalTextureSource.MultiRenderTarget */\n );\n $[le] = K, C.activeTexture(C[\"TEXTURE\" + le]), C.bindTexture(Y, K._hardwareTexture.underlyingResource), C.texParameteri(Y, C.TEXTURE_MAG_FILTER, k.mag), C.texParameteri(Y, C.TEXTURE_MIN_FILTER, k.min), C.texParameteri(Y, C.TEXTURE_WRAP_S, C.CLAMP_TO_EDGE), C.texParameteri(Y, C.TEXTURE_WRAP_T, C.CLAMP_TO_EDGE);\n const ie = this._getRGBABufferInternalSizedFormat(Se, de, Ie), fe = this._getInternalFormat(de), pe = this._getWebGLTextureType(Se);\n if (W && (Y === 35866 || Y === 32879))\n Y === 35866 ? K.is2DArray = !0 : K.is3D = !0, K.baseDepth = K.depth = M, C.texImage3D(Y, 0, ie, N, F, M, 0, fe, pe, null);\n else if (Y === 34067) {\n for (let ve = 0; ve < 6; ve++)\n C.texImage2D(C.TEXTURE_CUBE_MAP_POSITIVE_X + ve, 0, ie, N, F, 0, fe, pe, null);\n K.isCube = !0;\n } else\n C.texImage2D(C.TEXTURE_2D, 0, ie, N, F, 0, fe, pe, null);\n i && C.generateMipmap(Y), this._bindTextureDirectly(Y, null), K.baseWidth = N, K.baseHeight = F, K.width = N, K.height = F, K.isReady = !0, K.samples = 1, K.generateMipMaps = i, K.samplingMode = _e, K.type = Se, K._useSRGBBuffer = Ie, K.format = de, this._internalTexturesCache.push(K);\n }\n if (n && this._caps.depthTextureExtension) {\n const le = new Nt(\n this,\n 14\n /* InternalTextureSource.Depth */\n );\n let _e = 5, Se = C.DEPTH_COMPONENT16, Ie = C.DEPTH_COMPONENT, de = C.UNSIGNED_SHORT, Y = C.DEPTH_ATTACHMENT;\n this.webGLVersion < 2 ? Se = C.DEPTH_COMPONENT : o === 14 ? (_e = 1, de = C.FLOAT, Se = C.DEPTH_COMPONENT32F) : o === 18 ? (_e = 0, de = C.FLOAT_32_UNSIGNED_INT_24_8_REV, Se = C.DEPTH32F_STENCIL8, Ie = C.DEPTH_STENCIL, Y = C.DEPTH_STENCIL_ATTACHMENT) : o === 16 ? (_e = 0, de = C.UNSIGNED_INT, Se = C.DEPTH_COMPONENT24, Y = C.DEPTH_ATTACHMENT) : (o === 13 || o === 17) && (_e = 12, de = C.UNSIGNED_INT_24_8, Se = C.DEPTH24_STENCIL8, Ie = C.DEPTH_STENCIL, Y = C.DEPTH_STENCIL_ATTACHMENT), C.activeTexture(C.TEXTURE0), C.bindTexture(C.TEXTURE_2D, le._hardwareTexture.underlyingResource), C.texParameteri(C.TEXTURE_2D, C.TEXTURE_MAG_FILTER, C.NEAREST), C.texParameteri(C.TEXTURE_2D, C.TEXTURE_MIN_FILTER, C.NEAREST), C.texParameteri(C.TEXTURE_2D, C.TEXTURE_WRAP_S, C.CLAMP_TO_EDGE), C.texParameteri(C.TEXTURE_2D, C.TEXTURE_WRAP_T, C.CLAMP_TO_EDGE), C.texImage2D(C.TEXTURE_2D, 0, Se, N, F, 0, Ie, de, null), C.framebufferTexture2D(C.FRAMEBUFFER, Y, C.TEXTURE_2D, le._hardwareTexture.underlyingResource, 0), le.baseWidth = N, le.baseHeight = F, le.width = N, le.height = F, le.isReady = !0, le.samples = 1, le.generateMipMaps = i, le.samplingMode = 1, le.format = o, le.type = _e, $[l] = le, this._internalTexturesCache.push(le);\n }\n return S.setTextures($), t && C.drawBuffers(j), this._bindUnboundFramebuffer(null), S.setLayerAndFaceIndices(E, T), this.resetTextureCache(), S;\n};\nXe.prototype.updateMultipleRenderTargetTextureSampleCount = function(a, e, t = !0) {\n if (this.webGLVersion < 2 || !a || !a.texture)\n return 1;\n if (a.samples === e)\n return e;\n const i = a._attachments.length;\n if (i === 0)\n return 1;\n const s = this._gl;\n e = Math.min(e, this.getCaps().maxMSAASamples);\n const r = !!a._depthStencilBuffer;\n if (r && (s.deleteRenderbuffer(a._depthStencilBuffer), a._depthStencilBuffer = null), a._MSAAFramebuffer && (s.deleteFramebuffer(a._MSAAFramebuffer), a._MSAAFramebuffer = null), e > 1 && typeof s.renderbufferStorageMultisample == \"function\") {\n const n = s.createFramebuffer();\n if (!n)\n throw new Error(\"Unable to create multi sampled framebuffer\");\n a._MSAAFramebuffer = n, this._bindUnboundFramebuffer(n);\n const o = [];\n for (let l = 0; l < i; l++)\n a.textures[l]._hardwareTexture.releaseMSAARenderBuffers();\n for (let l = 0; l < i; l++) {\n const h = a.textures[l], c = h._hardwareTexture, u = s[this.webGLVersion > 1 ? \"COLOR_ATTACHMENT\" + l : \"COLOR_ATTACHMENT\" + l + \"_WEBGL\"], d = this._createRenderBuffer(h.width, h.height, e, -1, this._getRGBABufferInternalSizedFormat(h.type, h.format, h._useSRGBBuffer), u);\n if (!d)\n throw new Error(\"Unable to create multi sampled framebuffer\");\n c.addMSAARenderBuffer(d), h.samples = e, o.push(u);\n }\n t && s.drawBuffers(o);\n } else\n this._bindUnboundFramebuffer(a._framebuffer);\n return r && (a._depthStencilBuffer = this._setupFramebufferDepthAttachments(a._generateStencilBuffer, a._generateDepthBuffer, a.texture.width, a.texture.height, e)), this._bindUnboundFramebuffer(null), e;\n};\nXe.prototype._createDepthStencilCubeTexture = function(a, e) {\n const t = new Nt(\n this,\n 12\n /* InternalTextureSource.DepthStencil */\n );\n if (t.isCube = !0, this.webGLVersion === 1)\n return L.Error(\"Depth cube texture is not supported by WebGL 1.\"), t;\n const i = {\n bilinearFiltering: !1,\n comparisonFunction: 0,\n generateStencil: !1,\n ...e\n }, s = this._gl;\n this._bindTextureDirectly(s.TEXTURE_CUBE_MAP, t, !0), this._setupDepthStencilTexture(t, a, i.generateStencil, i.bilinearFiltering, i.comparisonFunction);\n for (let r = 0; r < 6; r++)\n i.generateStencil ? s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X + r, 0, s.DEPTH24_STENCIL8, a, a, 0, s.DEPTH_STENCIL, s.UNSIGNED_INT_24_8, null) : s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X + r, 0, s.DEPTH_COMPONENT24, a, a, 0, s.DEPTH_COMPONENT, s.UNSIGNED_INT, null);\n return this._bindTextureDirectly(s.TEXTURE_CUBE_MAP, null), this._internalTexturesCache.push(t), t;\n};\nXe.prototype._setCubeMapTextureParams = function(a, e, t) {\n const i = this._gl;\n i.texParameteri(i.TEXTURE_CUBE_MAP, i.TEXTURE_MAG_FILTER, i.LINEAR), i.texParameteri(i.TEXTURE_CUBE_MAP, i.TEXTURE_MIN_FILTER, e ? i.LINEAR_MIPMAP_LINEAR : i.LINEAR), i.texParameteri(i.TEXTURE_CUBE_MAP, i.TEXTURE_WRAP_S, i.CLAMP_TO_EDGE), i.texParameteri(i.TEXTURE_CUBE_MAP, i.TEXTURE_WRAP_T, i.CLAMP_TO_EDGE), a.samplingMode = e ? 3 : 2, e && this.getCaps().textureMaxLevel && t !== void 0 && t > 0 && (i.texParameteri(i.TEXTURE_CUBE_MAP, i.TEXTURE_MAX_LEVEL, t), a._maxLodLevel = t), this._bindTextureDirectly(i.TEXTURE_CUBE_MAP, null);\n};\nXe.prototype.createCubeTexture = function(a, e, t, i, s = null, r = null, n, o = null, l = !1, h = 0, c = 0, u = null, d, f = !1, p = null) {\n const _ = this._gl;\n return this.createCubeTextureBase(a, e, t, !!i, s, r, n, o, l, h, c, u, (m) => this._bindTextureDirectly(_.TEXTURE_CUBE_MAP, m, !0), (m, x) => {\n const v = this.needPOTTextures ? Dr(x[0].width, this._caps.maxCubemapTextureSize) : x[0].width, T = v, E = [\n _.TEXTURE_CUBE_MAP_POSITIVE_X,\n _.TEXTURE_CUBE_MAP_POSITIVE_Y,\n _.TEXTURE_CUBE_MAP_POSITIVE_Z,\n _.TEXTURE_CUBE_MAP_NEGATIVE_X,\n _.TEXTURE_CUBE_MAP_NEGATIVE_Y,\n _.TEXTURE_CUBE_MAP_NEGATIVE_Z\n ];\n this._bindTextureDirectly(_.TEXTURE_CUBE_MAP, m, !0), this._unpackFlipY(!1);\n const b = n ? this._getInternalFormat(n, m._useSRGBBuffer) : m._useSRGBBuffer ? this._glSRGBExtensionValues.SRGB8_ALPHA8 : _.RGBA;\n let S = n ? this._getInternalFormat(n) : _.RGBA;\n m._useSRGBBuffer && this.webGLVersion === 1 && (S = b);\n for (let C = 0; C < E.length; C++)\n if (x[C].width !== v || x[C].height !== T) {\n if (this._prepareWorkingCanvas(), !this._workingCanvas || !this._workingContext) {\n L.Warn(\"Cannot create canvas to resize texture.\");\n return;\n }\n this._workingCanvas.width = v, this._workingCanvas.height = T, this._workingContext.drawImage(x[C], 0, 0, x[C].width, x[C].height, 0, 0, v, T), _.texImage2D(E[C], 0, b, S, _.UNSIGNED_BYTE, this._workingCanvas);\n } else\n _.texImage2D(E[C], 0, b, S, _.UNSIGNED_BYTE, x[C]);\n i || _.generateMipmap(_.TEXTURE_CUBE_MAP), this._setCubeMapTextureParams(m, !i), m.width = v, m.height = T, m.isReady = !0, n && (m.format = n), m.onLoadedObservable.notifyObservers(m), m.onLoadedObservable.clear(), s && s();\n }, !!f, p);\n};\nXe.prototype.generateMipMapsForCubemap = function(a, e = !0) {\n if (a.generateMipMaps) {\n const t = this._gl;\n this._bindTextureDirectly(t.TEXTURE_CUBE_MAP, a, !0), t.generateMipmap(t.TEXTURE_CUBE_MAP), e && this._bindTextureDirectly(t.TEXTURE_CUBE_MAP, null);\n }\n};\nclass ah {\n constructor(e, t, i, s) {\n this.name = e, this.worldAxisForNormal = t, this.worldAxisForFileX = i, this.worldAxisForFileY = s;\n }\n}\nclass yc {\n /**\n * Converts a texture to the according Spherical Polynomial data.\n * This extracts the first 3 orders only as they are the only one used in the lighting.\n *\n * @param texture The texture to extract the information from.\n * @returns The Spherical Polynomial data.\n */\n static ConvertCubeMapTextureToSphericalPolynomial(e) {\n var d;\n if (!e.isCube)\n return null;\n (d = e.getScene()) == null || d.getEngine().flushFramebuffer();\n const t = e.getSize().width, i = e.readPixels(0, void 0, void 0, !1), s = e.readPixels(1, void 0, void 0, !1);\n let r, n;\n e.isRenderTarget ? (r = e.readPixels(3, void 0, void 0, !1), n = e.readPixels(2, void 0, void 0, !1)) : (r = e.readPixels(2, void 0, void 0, !1), n = e.readPixels(3, void 0, void 0, !1));\n const o = e.readPixels(4, void 0, void 0, !1), l = e.readPixels(5, void 0, void 0, !1), h = e.gammaSpace, c = 5;\n let u = 0;\n return (e.textureType == 1 || e.textureType == 2) && (u = 1), new Promise((f) => {\n Promise.all([s, i, r, n, o, l]).then(([p, _, m, x, v, T]) => {\n const E = {\n size: t,\n right: _,\n left: p,\n up: m,\n down: x,\n front: v,\n back: T,\n format: c,\n type: u,\n gammaSpace: h\n };\n f(this.ConvertCubeMapToSphericalPolynomial(E));\n });\n });\n }\n /**\n * Compute the area on the unit sphere of the rectangle defined by (x,y) and the origin\n * See https://www.rorydriscoll.com/2012/01/15/cubemap-texel-solid-angle/\n * @param x\n * @param y\n * @returns the area\n */\n static _AreaElement(e, t) {\n return Math.atan2(e * t, Math.sqrt(e * e + t * t + 1));\n }\n /**\n * Converts a cubemap to the according Spherical Polynomial data.\n * This extracts the first 3 orders only as they are the only one used in the lighting.\n *\n * @param cubeInfo The Cube map to extract the information from.\n * @returns The Spherical Polynomial data.\n */\n static ConvertCubeMapToSphericalPolynomial(e) {\n const t = new Xh();\n let i = 0;\n const s = 2 / e.size, r = s, n = 0.5 * s, o = n - 1;\n for (let d = 0; d < 6; d++) {\n const f = this._FileFaces[d], p = e[f.name];\n let _ = o;\n const m = e.format === 5 ? 4 : 3;\n for (let x = 0; x < e.size; x++) {\n let v = o;\n for (let T = 0; T < e.size; T++) {\n const E = f.worldAxisForFileX.scale(v).add(f.worldAxisForFileY.scale(_)).add(f.worldAxisForNormal);\n E.normalize();\n const b = this._AreaElement(v - n, _ - n) - this._AreaElement(v - n, _ + n) - this._AreaElement(v + n, _ - n) + this._AreaElement(v + n, _ + n);\n let S = p[x * e.size * m + T * m + 0], C = p[x * e.size * m + T * m + 1], P = p[x * e.size * m + T * m + 2];\n isNaN(S) && (S = 0), isNaN(C) && (C = 0), isNaN(P) && (P = 0), e.type === 0 && (S /= 255, C /= 255, P /= 255), e.gammaSpace && (S = Math.pow(Re.Clamp(S), mp), C = Math.pow(Re.Clamp(C), mp), P = Math.pow(Re.Clamp(P), mp));\n const N = this.MAX_HDRI_VALUE;\n if (this.PRESERVE_CLAMPED_COLORS) {\n const $ = Math.max(S, C, P);\n if ($ > N) {\n const j = N / $;\n S *= j, C *= j, P *= j;\n }\n } else\n S = Re.Clamp(S, 0, N), C = Re.Clamp(C, 0, N), P = Re.Clamp(P, 0, N);\n const F = new re(S, C, P);\n t.addLight(E, F, b), i += b, v += s;\n }\n _ += r;\n }\n }\n const u = 4 * Math.PI * 6 / 6 / i;\n return t.scaleInPlace(u), t.convertIncidentRadianceToIrradiance(), t.convertIrradianceToLambertianRadiance(), uo.FromHarmonics(t);\n }\n}\nyc._FileFaces = [\n new ah(\"right\", new g(1, 0, 0), new g(0, 0, -1), new g(0, -1, 0)),\n new ah(\"left\", new g(-1, 0, 0), new g(0, 0, 1), new g(0, -1, 0)),\n new ah(\"up\", new g(0, 1, 0), new g(1, 0, 0), new g(0, 0, 1)),\n new ah(\"down\", new g(0, -1, 0), new g(1, 0, 0), new g(0, 0, -1)),\n new ah(\"front\", new g(0, 0, 1), new g(1, 0, 0), new g(0, -1, 0)),\n new ah(\"back\", new g(0, 0, -1), new g(-1, 0, 0), new g(0, -1, 0))\n // -Z bottom\n];\nyc.MAX_HDRI_VALUE = 4096;\nyc.PRESERVE_CLAMPED_COLORS = !1;\nconst HL = 542327876, jb = 131072, Kb = 512, qb = 4, Qb = 64, Zb = 131072;\nfunction $_(a) {\n return a.charCodeAt(0) + (a.charCodeAt(1) << 8) + (a.charCodeAt(2) << 16) + (a.charCodeAt(3) << 24);\n}\nfunction XL(a) {\n return String.fromCharCode(a & 255, a >> 8 & 255, a >> 16 & 255, a >> 24 & 255);\n}\nconst Jb = $_(\"DXT1\"), eE = $_(\"DXT3\"), tE = $_(\"DXT5\"), Hm = $_(\"DX10\"), iE = 113, sE = 116, rE = 2, nE = 10, $L = 88, Xm = 31, YL = 0, jL = 1, aE = 2, oE = 3, $m = 4, lE = 7, Ym = 20, hE = 21, KL = 22, qL = 23, QL = 24, ZL = 25, JL = 26, eB = 28, tB = 32;\nclass ti {\n /**\n * Gets DDS information from an array buffer\n * @param data defines the array buffer view to read data from\n * @returns the DDS information\n */\n static GetDDSInfo(e) {\n const t = new Int32Array(e.buffer, e.byteOffset, Xm), i = new Int32Array(e.buffer, e.byteOffset, Xm + 4);\n let s = 1;\n t[aE] & jb && (s = Math.max(1, t[lE]));\n const r = t[hE], n = r === Hm ? i[tB] : 0;\n let o = 0;\n switch (r) {\n case iE:\n o = 2;\n break;\n case sE:\n o = 1;\n break;\n case Hm:\n if (n === nE) {\n o = 2;\n break;\n }\n if (n === rE) {\n o = 1;\n break;\n }\n }\n return {\n width: t[$m],\n height: t[oE],\n mipmapCount: s,\n isFourCC: (t[Ym] & qb) === qb,\n isRGB: (t[Ym] & Qb) === Qb,\n isLuminance: (t[Ym] & Zb) === Zb,\n isCube: (t[eB] & Kb) === Kb,\n isCompressed: r === Jb || r === eE || r === tE,\n dxgiFormat: n,\n textureType: o\n };\n }\n static _GetHalfFloatAsFloatRGBAArrayBuffer(e, t, i, s, r, n) {\n const o = new Float32Array(s), l = new Uint16Array(r, i);\n let h = 0;\n for (let c = 0; c < t; c++)\n for (let u = 0; u < e; u++) {\n const d = (u + c * e) * 4;\n o[h] = fa(l[d]), o[h + 1] = fa(l[d + 1]), o[h + 2] = fa(l[d + 2]), ti.StoreLODInAlphaChannel ? o[h + 3] = n : o[h + 3] = fa(l[d + 3]), h += 4;\n }\n return o;\n }\n static _GetHalfFloatRGBAArrayBuffer(e, t, i, s, r, n) {\n if (ti.StoreLODInAlphaChannel) {\n const o = new Uint16Array(s), l = new Uint16Array(r, i);\n let h = 0;\n for (let c = 0; c < t; c++)\n for (let u = 0; u < e; u++) {\n const d = (u + c * e) * 4;\n o[h] = l[d], o[h + 1] = l[d + 1], o[h + 2] = l[d + 2], o[h + 3] = ga(n), h += 4;\n }\n return o;\n }\n return new Uint16Array(r, i, s);\n }\n static _GetFloatRGBAArrayBuffer(e, t, i, s, r, n) {\n if (ti.StoreLODInAlphaChannel) {\n const o = new Float32Array(s), l = new Float32Array(r, i);\n let h = 0;\n for (let c = 0; c < t; c++)\n for (let u = 0; u < e; u++) {\n const d = (u + c * e) * 4;\n o[h] = l[d], o[h + 1] = l[d + 1], o[h + 2] = l[d + 2], o[h + 3] = n, h += 4;\n }\n return o;\n }\n return new Float32Array(r, i, s);\n }\n static _GetFloatAsHalfFloatRGBAArrayBuffer(e, t, i, s, r, n) {\n const o = new Uint16Array(s), l = new Float32Array(r, i);\n let h = 0;\n for (let c = 0; c < t; c++)\n for (let u = 0; u < e; u++)\n o[h] = ga(l[h]), o[h + 1] = ga(l[h + 1]), o[h + 2] = ga(l[h + 2]), ti.StoreLODInAlphaChannel ? o[h + 3] = ga(n) : o[h + 3] = ga(l[h + 3]), h += 4;\n return o;\n }\n static _GetFloatAsUIntRGBAArrayBuffer(e, t, i, s, r, n) {\n const o = new Uint8Array(s), l = new Float32Array(r, i);\n let h = 0;\n for (let c = 0; c < t; c++)\n for (let u = 0; u < e; u++) {\n const d = (u + c * e) * 4;\n o[h] = Re.Clamp(l[d]) * 255, o[h + 1] = Re.Clamp(l[d + 1]) * 255, o[h + 2] = Re.Clamp(l[d + 2]) * 255, ti.StoreLODInAlphaChannel ? o[h + 3] = n : o[h + 3] = Re.Clamp(l[d + 3]) * 255, h += 4;\n }\n return o;\n }\n static _GetHalfFloatAsUIntRGBAArrayBuffer(e, t, i, s, r, n) {\n const o = new Uint8Array(s), l = new Uint16Array(r, i);\n let h = 0;\n for (let c = 0; c < t; c++)\n for (let u = 0; u < e; u++) {\n const d = (u + c * e) * 4;\n o[h] = Re.Clamp(fa(l[d])) * 255, o[h + 1] = Re.Clamp(fa(l[d + 1])) * 255, o[h + 2] = Re.Clamp(fa(l[d + 2])) * 255, ti.StoreLODInAlphaChannel ? o[h + 3] = n : o[h + 3] = Re.Clamp(fa(l[d + 3])) * 255, h += 4;\n }\n return o;\n }\n static _GetRGBAArrayBuffer(e, t, i, s, r, n, o, l, h) {\n const c = new Uint8Array(s), u = new Uint8Array(r, i);\n let d = 0;\n for (let f = 0; f < t; f++)\n for (let p = 0; p < e; p++) {\n const _ = (p + f * e) * 4;\n c[d] = u[_ + n], c[d + 1] = u[_ + o], c[d + 2] = u[_ + l], c[d + 3] = u[_ + h], d += 4;\n }\n return c;\n }\n static _ExtractLongWordOrder(e) {\n return e === 0 || e === 255 || e === -16777216 ? 0 : 1 + ti._ExtractLongWordOrder(e >> 8);\n }\n static _GetRGBArrayBuffer(e, t, i, s, r, n, o, l) {\n const h = new Uint8Array(s), c = new Uint8Array(r, i);\n let u = 0;\n for (let d = 0; d < t; d++)\n for (let f = 0; f < e; f++) {\n const p = (f + d * e) * 3;\n h[u] = c[p + n], h[u + 1] = c[p + o], h[u + 2] = c[p + l], u += 3;\n }\n return h;\n }\n static _GetLuminanceArrayBuffer(e, t, i, s, r) {\n const n = new Uint8Array(s), o = new Uint8Array(r, i);\n let l = 0;\n for (let h = 0; h < t; h++)\n for (let c = 0; c < e; c++) {\n const u = c + h * e;\n n[l] = o[u], l++;\n }\n return n;\n }\n /**\n * Uploads DDS Levels to a Babylon Texture\n * @internal\n */\n static UploadDDSLevels(e, t, i, s, r, n, o = -1, l, h = !0) {\n let c = null;\n s.sphericalPolynomial && (c = []);\n const u = !!e.getCaps().s3tc;\n t.generateMipMaps = r;\n const d = new Int32Array(i.buffer, i.byteOffset, Xm);\n let f, p, _, m = 0, x, v, T, E, b = 0, S = 1;\n if (d[YL] !== HL) {\n L.Error(\"Invalid magic number in DDS header\");\n return;\n }\n if (!s.isFourCC && !s.isRGB && !s.isLuminance) {\n L.Error(\"Unsupported format, must contain a FourCC, RGB or LUMINANCE code\");\n return;\n }\n if (s.isCompressed && !u) {\n L.Error(\"Compressed textures are not supported on this platform.\");\n return;\n }\n let C = d[KL];\n x = d[jL] + 4;\n let P = !1;\n if (s.isFourCC)\n switch (f = d[hE], f) {\n case Jb:\n S = 8, b = 33777;\n break;\n case eE:\n S = 16, b = 33778;\n break;\n case tE:\n S = 16, b = 33779;\n break;\n case iE:\n P = !0, C = 64;\n break;\n case sE:\n P = !0, C = 128;\n break;\n case Hm: {\n x += 5 * 4;\n let le = !1;\n switch (s.dxgiFormat) {\n case nE:\n P = !0, C = 64, le = !0;\n break;\n case rE:\n P = !0, C = 128, le = !0;\n break;\n case $L:\n s.isRGB = !0, s.isFourCC = !1, C = 32, le = !0;\n break;\n }\n if (le)\n break;\n }\n default:\n L.Error([\"Unsupported FourCC code:\", XL(f)]);\n return;\n }\n const N = ti._ExtractLongWordOrder(d[qL]), F = ti._ExtractLongWordOrder(d[QL]), $ = ti._ExtractLongWordOrder(d[ZL]), j = ti._ExtractLongWordOrder(d[JL]);\n P && (b = e._getRGBABufferInternalSizedFormat(s.textureType)), T = 1, d[aE] & jb && r !== !1 && (T = Math.max(1, d[lE]));\n const ne = l || 0, te = e.getCaps();\n for (let le = ne; le < n; le++) {\n for (p = d[$m], _ = d[oE], E = 0; E < T; ++E) {\n if (o === -1 || o === E) {\n const _e = o === -1 ? E : 0;\n if (!s.isCompressed && s.isFourCC) {\n t.format = 5, m = p * _ * 4;\n let Se = null;\n if (e._badOS || e._badDesktopOS || !te.textureHalfFloat && !te.textureFloat)\n C === 128 ? (Se = ti._GetFloatAsUIntRGBAArrayBuffer(p, _, i.byteOffset + x, m, i.buffer, _e), c && _e == 0 && c.push(ti._GetFloatRGBAArrayBuffer(p, _, i.byteOffset + x, m, i.buffer, _e))) : C === 64 && (Se = ti._GetHalfFloatAsUIntRGBAArrayBuffer(p, _, i.byteOffset + x, m, i.buffer, _e), c && _e == 0 && c.push(ti._GetHalfFloatAsFloatRGBAArrayBuffer(p, _, i.byteOffset + x, m, i.buffer, _e))), t.type = 0;\n else {\n const Ie = te.textureFloat && (h && te.textureFloatLinearFiltering || !h), de = te.textureHalfFloat && (h && te.textureHalfFloatLinearFiltering || !h), Y = (C === 128 || C === 64 && !de) && Ie ? 1 : (C === 64 || C === 128 && !Ie) && de ? 2 : 0;\n let M, k = null;\n switch (C) {\n case 128: {\n switch (Y) {\n case 1:\n M = ti._GetFloatRGBAArrayBuffer, k = null;\n break;\n case 2:\n M = ti._GetFloatAsHalfFloatRGBAArrayBuffer, k = ti._GetFloatRGBAArrayBuffer;\n break;\n case 0:\n M = ti._GetFloatAsUIntRGBAArrayBuffer, k = ti._GetFloatRGBAArrayBuffer;\n break;\n }\n break;\n }\n default: {\n switch (Y) {\n case 1:\n M = ti._GetHalfFloatAsFloatRGBAArrayBuffer, k = null;\n break;\n case 2:\n M = ti._GetHalfFloatRGBAArrayBuffer, k = ti._GetHalfFloatAsFloatRGBAArrayBuffer;\n break;\n case 0:\n M = ti._GetHalfFloatAsUIntRGBAArrayBuffer, k = ti._GetHalfFloatAsFloatRGBAArrayBuffer;\n break;\n }\n break;\n }\n }\n t.type = Y, Se = M(p, _, i.byteOffset + x, m, i.buffer, _e), c && _e == 0 && c.push(k ? k(p, _, i.byteOffset + x, m, i.buffer, _e) : Se);\n }\n Se && e._uploadDataToTextureDirectly(t, Se, le, _e);\n } else if (s.isRGB)\n t.type = 0, C === 24 ? (t.format = 4, m = p * _ * 3, v = ti._GetRGBArrayBuffer(p, _, i.byteOffset + x, m, i.buffer, N, F, $), e._uploadDataToTextureDirectly(t, v, le, _e)) : (t.format = 5, m = p * _ * 4, v = ti._GetRGBAArrayBuffer(p, _, i.byteOffset + x, m, i.buffer, N, F, $, j), e._uploadDataToTextureDirectly(t, v, le, _e));\n else if (s.isLuminance) {\n const Se = e._getUnpackAlignement(), Ie = p;\n m = Math.floor((p + Se - 1) / Se) * Se * (_ - 1) + Ie, v = ti._GetLuminanceArrayBuffer(p, _, i.byteOffset + x, m, i.buffer), t.format = 1, t.type = 0, e._uploadDataToTextureDirectly(t, v, le, _e);\n } else\n m = Math.max(4, p) / 4 * Math.max(4, _) / 4 * S, v = new Uint8Array(i.buffer, i.byteOffset + x, m), t.type = 0, e._uploadCompressedDataToTextureDirectly(t, b, p, _, v, le, _e);\n }\n x += C ? p * _ * (C / 8) : m, p *= 0.5, _ *= 0.5, p = Math.max(1, p), _ = Math.max(1, _);\n }\n if (l !== void 0)\n break;\n }\n c && c.length > 0 ? s.sphericalPolynomial = yc.ConvertCubeMapToSphericalPolynomial({\n size: d[$m],\n right: c[0],\n left: c[1],\n up: c[2],\n down: c[3],\n front: c[4],\n back: c[5],\n format: 5,\n type: 1,\n gammaSpace: !1\n }) : s.sphericalPolynomial = void 0;\n }\n}\nti.StoreLODInAlphaChannel = !1;\nXe.prototype.createPrefilteredCubeTexture = function(a, e, t, i, s = null, r = null, n, o = null, l = !0) {\n const h = (c) => {\n if (!c) {\n s && s(null);\n return;\n }\n const u = c.texture;\n if (l ? c.info.sphericalPolynomial && (u._sphericalPolynomial = c.info.sphericalPolynomial) : u._sphericalPolynomial = new uo(), u._source = 9, this.getCaps().textureLOD) {\n s && s(u);\n return;\n }\n const d = 3, f = this._gl, p = c.width;\n if (!p)\n return;\n const _ = [];\n for (let m = 0; m < d; m++) {\n const v = 1 - m / (d - 1), T = i, E = Re.Log2(p) * t + i, b = T + (E - T) * v, S = Math.round(Math.min(Math.max(b, 0), E)), C = new Nt(\n this,\n 2\n /* InternalTextureSource.Temp */\n );\n if (C.type = u.type, C.format = u.format, C.width = Math.pow(2, Math.max(Re.Log2(p) - S, 0)), C.height = C.width, C.isCube = !0, C._cachedWrapU = 0, C._cachedWrapV = 0, this._bindTextureDirectly(f.TEXTURE_CUBE_MAP, C, !0), C.samplingMode = 2, f.texParameteri(f.TEXTURE_CUBE_MAP, f.TEXTURE_MAG_FILTER, f.LINEAR), f.texParameteri(f.TEXTURE_CUBE_MAP, f.TEXTURE_MIN_FILTER, f.LINEAR), f.texParameteri(f.TEXTURE_CUBE_MAP, f.TEXTURE_WRAP_S, f.CLAMP_TO_EDGE), f.texParameteri(f.TEXTURE_CUBE_MAP, f.TEXTURE_WRAP_T, f.CLAMP_TO_EDGE), c.isDDS) {\n const N = c.info, F = c.data;\n this._unpackFlipY(N.isCompressed), ti.UploadDDSLevels(this, C, F, N, !0, 6, S);\n } else\n L.Warn(\"DDS is the only prefiltered cube map supported so far.\");\n this._bindTextureDirectly(f.TEXTURE_CUBE_MAP, null);\n const P = new Mt(e);\n P._isCube = !0, P._texture = C, C.isReady = !0, _.push(P);\n }\n u._lodTextureHigh = _[2], u._lodTextureMid = _[1], u._lodTextureLow = _[0], s && s(u);\n };\n return this.createCubeTexture(a, e, null, !1, h, r, n, o, l, t, i);\n};\nvar cE;\n(function(a) {\n a[a.Texture = 0] = \"Texture\", a[a.StorageTexture = 1] = \"StorageTexture\", a[a.UniformBuffer = 2] = \"UniformBuffer\", a[a.StorageBuffer = 3] = \"StorageBuffer\", a[a.TextureWithoutSampler = 4] = \"TextureWithoutSampler\", a[a.Sampler = 5] = \"Sampler\", a[a.ExternalTexture = 6] = \"ExternalTexture\", a[a.DataBuffer = 7] = \"DataBuffer\";\n})(cE || (cE = {}));\nXe.prototype.createComputeEffect = function(a, e) {\n throw new Error(\"createComputeEffect: This engine does not support compute shaders!\");\n};\nXe.prototype.createComputePipelineContext = function() {\n throw new Error(\"createComputePipelineContext: This engine does not support compute shaders!\");\n};\nXe.prototype.createComputeContext = function() {\n};\nXe.prototype.computeDispatch = function(a, e, t, i, s, r, n) {\n throw new Error(\"computeDispatch: This engine does not support compute shaders!\");\n};\nXe.prototype.computeDispatchIndirect = function(a, e, t, i, s, r) {\n throw new Error(\"computeDispatchIndirect: This engine does not support compute shaders!\");\n};\nXe.prototype.areAllComputeEffectsReady = function() {\n return !0;\n};\nXe.prototype.releaseComputeEffects = function() {\n};\nXe.prototype._prepareComputePipelineContext = function(a, e, t, i, s) {\n};\nXe.prototype._rebuildComputeEffects = function() {\n};\nwe.prototype._executeWhenComputeStateIsCompiled = function(a, e) {\n e(null);\n};\nXe.prototype._releaseComputeEffect = function(a) {\n};\nXe.prototype._deleteComputePipelineContext = function(a) {\n};\nfunction iB(a) {\n const e = (r) => {\n const n = \"\\\\b\" + r + \"\\\\b\";\n return a && (a === r || a.match(new RegExp(n, \"g\")));\n };\n if (this._excludedCompressedTextures && this._excludedCompressedTextures.some(e))\n return a;\n const t = a.lastIndexOf(\".\"), i = a.lastIndexOf(\"?\"), s = i > -1 ? a.substring(i, a.length) : \"\";\n return (t > -1 ? a.substring(0, t) : a) + this._textureFormatInUse + s;\n}\nObject.defineProperty(ee.prototype, \"texturesSupported\", {\n get: function() {\n const a = [];\n return this._caps.astc && a.push(\"-astc.ktx\"), this._caps.s3tc && a.push(\"-dxt.ktx\"), this._caps.pvrtc && a.push(\"-pvrtc.ktx\"), this._caps.etc2 && a.push(\"-etc2.ktx\"), this._caps.etc1 && a.push(\"-etc1.ktx\"), a;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(ee.prototype, \"textureFormatInUse\", {\n get: function() {\n return this._textureFormatInUse || null;\n },\n enumerable: !0,\n configurable: !0\n});\nee.prototype.setCompressedTextureExclusions = function(a) {\n this._excludedCompressedTextures = a;\n};\nee.prototype.setTextureFormatToUse = function(a) {\n const e = this.texturesSupported;\n for (let t = 0, i = e.length; t < i; t++)\n for (let s = 0, r = a.length; s < r; s++)\n if (e[t] === a[s].toLowerCase())\n return this._transformTextureUrl = iB.bind(this), this._textureFormatInUse = e[t];\n return this._textureFormatInUse = \"\", this._transformTextureUrl = null, null;\n};\nclass Pl {\n constructor() {\n const e = new ArrayBuffer(Pl.DEFAULT_BUFFER_SIZE);\n this._uint32s = new Uint32Array(e), this._int32s = new Int32Array(e), this._float32s = new Float32Array(e), this._length = Pl.DEFAULT_BUFFER_SIZE / 4, this._position = 0, this._nativeDataStream = new _native.NativeDataStream(() => {\n this._flush();\n });\n }\n /**\n * Writes a uint32 to the stream\n * @param value the value to write\n */\n writeUint32(e) {\n this._flushIfNecessary(1), this._uint32s[this._position++] = e;\n }\n /**\n * Writes an int32 to the stream\n * @param value the value to write\n */\n writeInt32(e) {\n this._flushIfNecessary(1), this._int32s[this._position++] = e;\n }\n /**\n * Writes a float32 to the stream\n * @param value the value to write\n */\n writeFloat32(e) {\n this._flushIfNecessary(1), this._float32s[this._position++] = e;\n }\n /**\n * Writes a uint32 array to the stream\n * @param values the values to write\n */\n writeUint32Array(e) {\n this._flushIfNecessary(1 + e.length), this._uint32s[this._position++] = e.length, this._uint32s.set(e, this._position), this._position += e.length;\n }\n /**\n * Writes an int32 array to the stream\n * @param values the values to write\n */\n writeInt32Array(e) {\n this._flushIfNecessary(1 + e.length), this._uint32s[this._position++] = e.length, this._int32s.set(e, this._position), this._position += e.length;\n }\n /**\n * Writes a float32 array to the stream\n * @param values the values to write\n */\n writeFloat32Array(e) {\n this._flushIfNecessary(1 + e.length), this._uint32s[this._position++] = e.length, this._float32s.set(e, this._position), this._position += e.length;\n }\n /**\n * Writes native data to the stream\n * @param handle the handle to the native data\n */\n writeNativeData(e) {\n this._flushIfNecessary(e.length), this._uint32s.set(e, this._position), this._position += e.length;\n }\n /**\n * Writes a boolean to the stream\n * @param value the value to write\n */\n writeBoolean(e) {\n this.writeUint32(e ? 1 : 0);\n }\n _flushIfNecessary(e) {\n this._position + e > this._length && this._flush();\n }\n _flush() {\n this._nativeDataStream.writeBuffer(this._uint32s.buffer, this._position), this._position = 0;\n }\n}\nPl.DEFAULT_BUFFER_SIZE = 65536;\nconst sB = \"rgbdDecodePixelShader\", rB = `varying vec2 vUV;uniform sampler2D textureSampler;\n#include\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{gl_FragColor=vec4(fromRGBD(texture2D(textureSampler,vUV)),1.0);}`;\nz.ShadersStore[sB] = rB;\nclass wg {\n /**\n * Expand the RGBD Texture from RGBD to Half Float if possible.\n * @param texture the texture to expand.\n */\n static ExpandRGBDTexture(e) {\n const t = e._texture;\n if (!t || !e.isRGBD)\n return;\n const i = t.getEngine(), s = i.getCaps(), r = t.isReady;\n let n = !1;\n s.textureHalfFloatRender && s.textureHalfFloatLinearFiltering ? (n = !0, t.type = 2) : s.textureFloatRender && s.textureFloatLinearFiltering && (n = !0, t.type = 1), n && (t.isReady = !1, t._isRGBD = !1, t.invertY = !1);\n const o = () => {\n const l = new Be(\"rgbdDecode\", \"rgbdDecode\", null, null, 1, null, 3, i, !1, void 0, t.type, void 0, null, !1);\n l.externalTextureSamplerBinding = !0;\n const h = i.createRenderTargetTexture(t.width, {\n generateDepthBuffer: !1,\n generateMipMaps: !1,\n generateStencilBuffer: !1,\n samplingMode: t.samplingMode,\n type: t.type,\n format: 5\n });\n l.getEffect().executeWhenCompiled(() => {\n l.onApply = (c) => {\n c._bindTexture(\"textureSampler\", t), c.setFloat2(\"scale\", 1, 1);\n }, e.getScene().postProcessManager.directRender([l], h, !0), i.restoreDefaultFramebuffer(), i._releaseTexture(t), l && l.dispose(), h._swapAndDie(t), t.isReady = !0;\n });\n };\n n && (r ? o() : e.onLoadObservable.addOnce(o));\n }\n /**\n * Encode the texture to RGBD if possible.\n * @param internalTexture the texture to encode\n * @param scene the scene hosting the texture\n * @param outputTextureType type of the texture in which the encoding is performed\n * @returns a promise with the internalTexture having its texture replaced by the result of the processing\n */\n static EncodeTextureToRGBD(e, t, i = 0) {\n return Rx(\"rgbdEncode\", e, t, i, 1, 5);\n }\n}\nMt.prototype.forceSphericalPolynomialsRecompute = function() {\n this._texture && (this._texture._sphericalPolynomial = null, this._texture._sphericalPolynomialPromise = null, this._texture._sphericalPolynomialComputed = !1);\n};\nObject.defineProperty(Mt.prototype, \"sphericalPolynomial\", {\n get: function() {\n if (this._texture) {\n if (this._texture._sphericalPolynomial || this._texture._sphericalPolynomialComputed)\n return this._texture._sphericalPolynomial;\n if (this._texture.isReady)\n return this._texture._sphericalPolynomialPromise || (this._texture._sphericalPolynomialPromise = yc.ConvertCubeMapTextureToSphericalPolynomial(this), this._texture._sphericalPolynomialPromise === null ? this._texture._sphericalPolynomialComputed = !0 : this._texture._sphericalPolynomialPromise.then((a) => {\n this._texture._sphericalPolynomial = a, this._texture._sphericalPolynomialComputed = !0;\n })), null;\n }\n return null;\n },\n set: function(a) {\n this._texture && (this._texture._sphericalPolynomial = a);\n },\n enumerable: !0,\n configurable: !0\n});\nconst nB = \"rgbdEncodePixelShader\", aB = `varying vec2 vUV;uniform sampler2D textureSampler;\n#include\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{gl_FragColor=toRGBD(texture2D(textureSampler,vUV).rgb);}`;\nz.ShadersStore[nB] = aB;\nconst gv = \"image/png\", Ng = 2, iu = [134, 22, 135, 150, 246, 214, 150, 54];\nfunction xv(a) {\n const e = new DataView(a.buffer, a.byteOffset, a.byteLength);\n let t = 0;\n for (let n = 0; n < iu.length; n++)\n if (e.getUint8(t++) !== iu[n])\n return L.Error(\"Not a babylon environment map\"), null;\n let i = \"\", s = 0;\n for (; s = e.getUint8(t++); )\n i += String.fromCharCode(s);\n let r = JSON.parse(i);\n return r = Y_(r), r.specular && (r.specular.specularDataPosition = t, r.specular.lodGenerationScale = r.specular.lodGenerationScale || 0.8), r;\n}\nfunction Y_(a) {\n if (a.version > Ng)\n throw new Error(`Unsupported babylon environment map version \"${a.version}\". Latest supported version is \"${Ng}\".`);\n return a.version === 2 || (a = { ...a, version: 2, imageType: gv }), a;\n}\nasync function oB(a, e = {}) {\n var b;\n const t = a.getInternalTexture();\n if (!t)\n return Promise.reject(\"The cube texture is invalid.\");\n const i = e.imageType ?? gv, s = t.getEngine();\n if (a.textureType !== 2 && a.textureType !== 1 && a.textureType !== 0 && a.textureType !== 0 && a.textureType !== 7 && a.textureType !== -1)\n return Promise.reject(\"The cube texture should allow HDR (Full Float or Half Float).\");\n let r = 1;\n if (!s.getCaps().textureFloatRender && (r = 2, !s.getCaps().textureHalfFloatRender))\n return Promise.reject(\"Env texture can only be created when the browser supports half float or full float rendering.\");\n a.sphericalPolynomial;\n const n = (b = a.getInternalTexture()) == null ? void 0 : b._sphericalPolynomialPromise, o = t.width, l = new De(s), h = {};\n s.flushFramebuffer();\n const c = Re.ILog2(t.width);\n for (let S = 0; S <= c; S++) {\n const C = Math.pow(2, c - S);\n for (let P = 0; P < 6; P++) {\n let N = await a.readPixels(P, S, void 0, !1);\n if (N && N.byteLength === N.length) {\n const ne = new Float32Array(N.byteLength * 4);\n for (let te = 0; te < N.byteLength; te++)\n ne[te] = N[te] / 255, ne[te] = Math.pow(ne[te], 2.2);\n N = ne;\n } else if (N && a.gammaSpace) {\n const ne = N;\n for (let te = 0; te < ne.length; te++)\n ne[te] = Math.pow(ne[te], 2.2);\n }\n const F = s.createRawTexture(N, C, C, 5, !1, !0, 1, null, r);\n await wg.EncodeTextureToRGBD(F, l, r);\n const $ = await s._readTexturePixels(F, C, C), j = await js.DumpDataAsync(C, C, $, i, void 0, !1, !0, e.imageQuality);\n h[S * 6 + P] = j, F.dispose();\n }\n }\n l.dispose(), n && await n;\n const u = {\n version: Ng,\n width: o,\n imageType: i,\n irradiance: lB(a),\n specular: {\n mipmaps: [],\n lodGenerationScale: a.lodGenerationScale\n }\n };\n let d = 0;\n for (let S = 0; S <= c; S++)\n for (let C = 0; C < 6; C++) {\n const P = h[S * 6 + C].byteLength;\n u.specular.mipmaps.push({\n length: P,\n position: d\n }), d += P;\n }\n const f = JSON.stringify(u), p = new ArrayBuffer(f.length + 1), _ = new Uint8Array(p);\n for (let S = 0, C = f.length; S < C; S++)\n _[S] = f.charCodeAt(S);\n _[f.length] = 0;\n const m = iu.length + d + p.byteLength, x = new ArrayBuffer(m), v = new Uint8Array(x), T = new DataView(x);\n let E = 0;\n for (let S = 0; S < iu.length; S++)\n T.setUint8(E++, iu[S]);\n v.set(new Uint8Array(p), E), E += p.byteLength;\n for (let S = 0; S <= c; S++)\n for (let C = 0; C < 6; C++) {\n const P = h[S * 6 + C];\n v.set(new Uint8Array(P), E), E += P.byteLength;\n }\n return x;\n}\nfunction lB(a) {\n const e = a.sphericalPolynomial;\n return e == null ? null : {\n x: [e.x.x, e.x.y, e.x.z],\n y: [e.y.x, e.y.y, e.y.z],\n z: [e.z.x, e.z.y, e.z.z],\n xx: [e.xx.x, e.xx.y, e.xx.z],\n yy: [e.yy.x, e.yy.y, e.yy.z],\n zz: [e.zz.x, e.zz.y, e.zz.z],\n yz: [e.yz.x, e.yz.y, e.yz.z],\n zx: [e.zx.x, e.zx.y, e.zx.z],\n xy: [e.xy.x, e.xy.y, e.xy.z]\n };\n}\nfunction vv(a, e) {\n e = Y_(e);\n const t = e.specular;\n let i = Re.Log2(e.width);\n if (i = Math.round(i) + 1, t.mipmaps.length !== 6 * i)\n throw new Error(`Unsupported specular mipmaps number \"${t.mipmaps.length}\"`);\n const s = new Array(i);\n for (let r = 0; r < i; r++) {\n s[r] = new Array(6);\n for (let n = 0; n < 6; n++) {\n const o = t.mipmaps[r * 6 + n];\n s[r][n] = new Uint8Array(a.buffer, a.byteOffset + t.specularDataPosition + o.position, o.length);\n }\n }\n return s;\n}\nfunction Y0(a, e, t) {\n t = Y_(t);\n const i = t.specular;\n if (!i)\n return Promise.resolve();\n a._lodGenerationScale = i.lodGenerationScale;\n const s = vv(e, t);\n return Gp(a, s, t.imageType);\n}\nfunction uE(a, e, t, i, s, r, n, o, l, h, c) {\n return new Promise((u, d) => {\n if (t) {\n const f = e.createTexture(null, !0, !0, null, 1, null, (p) => {\n d(p);\n }, a);\n i.getEffect().executeWhenCompiled(() => {\n i.externalTextureSamplerBinding = !0, i.onApply = (p) => {\n p._bindTexture(\"textureSampler\", f), p.setFloat2(\"scale\", 1, e._features.needsInvertingBitmap && a instanceof ImageBitmap ? -1 : 1);\n }, e.scenes.length && (e.scenes[0].postProcessManager.directRender([i], h, !0, r, n), e.restoreDefaultFramebuffer(), f.dispose(), URL.revokeObjectURL(s), u());\n });\n } else {\n if (e._uploadImageToTexture(c, a, r, n), o) {\n const f = l[n];\n f && e._uploadImageToTexture(f._texture, a, r, 0);\n }\n u();\n }\n });\n}\nfunction Gp(a, e, t = gv) {\n if (!J.IsExponentOfTwo(a.width))\n throw new Error(\"Texture size must be a power of two\");\n const i = Re.ILog2(a.width) + 1, s = a.getEngine();\n let r = !1, n = !1, o = null, l = null, h = null;\n const c = s.getCaps();\n if (a.format = 5, a.type = 0, a.generateMipMaps = !0, a._cachedAnisotropicFilteringLevel = null, s.updateTextureSamplingMode(3, a), c.textureLOD ? s._features.supportRenderAndCopyToLodForFloatTextures ? c.textureHalfFloatRender && c.textureHalfFloatLinearFiltering ? (r = !0, a.type = 2) : c.textureFloatRender && c.textureFloatLinearFiltering && (r = !0, a.type = 1) : r = !1 : (r = !1, n = !0, h = {}), r)\n o = new Be(\"rgbdDecode\", \"rgbdDecode\", null, null, 1, null, 3, s, !1, void 0, a.type, void 0, null, !1), a._isRGBD = !1, a.invertY = !1, l = s.createRenderTargetCubeTexture(a.width, {\n generateDepthBuffer: !1,\n generateMipMaps: !0,\n generateStencilBuffer: !1,\n samplingMode: 3,\n type: a.type,\n format: 5\n });\n else if (a._isRGBD = !0, a.invertY = !0, n) {\n const f = a._lodGenerationScale, p = a._lodGenerationOffset;\n for (let _ = 0; _ < 3; _++) {\n const x = 1 - _ / 2, v = p, T = (i - 1) * f + p, E = v + (T - v) * x, b = Math.round(Math.min(Math.max(E, 0), T)), S = new Nt(\n s,\n 2\n /* InternalTextureSource.Temp */\n );\n S.isCube = !0, S.invertY = !0, S.generateMipMaps = !1, s.updateTextureSamplingMode(2, S);\n const C = new Mt(null);\n switch (C._isCube = !0, C._texture = S, h[b] = C, _) {\n case 0:\n a._lodTextureLow = C;\n break;\n case 1:\n a._lodTextureMid = C;\n break;\n case 2:\n a._lodTextureHigh = C;\n break;\n }\n }\n }\n const u = [];\n for (let d = 0; d < e.length; d++)\n for (let f = 0; f < 6; f++) {\n const p = e[d][f], _ = new Blob([p], { type: t }), m = URL.createObjectURL(_);\n let x;\n if (s._features.forceBitmapOverHTMLImageElement)\n x = s.createImageBitmap(_, { premultiplyAlpha: \"none\" }).then((v) => uE(v, s, r, o, m, f, d, n, h, l, a));\n else {\n const v = new Image();\n v.src = m, x = new Promise((T, E) => {\n v.onload = () => {\n uE(v, s, r, o, m, f, d, n, h, l, a).then(() => T()).catch((b) => {\n E(b);\n });\n }, v.onerror = (b) => {\n E(b);\n };\n });\n }\n u.push(x);\n }\n if (e.length < i) {\n let d;\n const f = Math.pow(2, i - 1 - e.length), p = f * f * 4;\n switch (a.type) {\n case 0: {\n d = new Uint8Array(p);\n break;\n }\n case 2: {\n d = new Uint16Array(p);\n break;\n }\n case 1: {\n d = new Float32Array(p);\n break;\n }\n }\n for (let _ = e.length; _ < i; _++)\n for (let m = 0; m < 6; m++)\n s._uploadArrayBufferViewToTexture(a, d, m, _);\n }\n return Promise.all(u).then(() => {\n l && (s._releaseTexture(a), l._swapAndDie(a)), o && o.dispose(), n && (a._lodTextureHigh && a._lodTextureHigh._texture && (a._lodTextureHigh._texture.isReady = !0), a._lodTextureMid && a._lodTextureMid._texture && (a._lodTextureMid._texture.isReady = !0), a._lodTextureLow && a._lodTextureLow._texture && (a._lodTextureLow._texture.isReady = !0));\n });\n}\nfunction Tv(a, e) {\n e = Y_(e);\n const t = e.irradiance;\n if (!t)\n return;\n const i = new uo();\n g.FromArrayToRef(t.x, 0, i.x), g.FromArrayToRef(t.y, 0, i.y), g.FromArrayToRef(t.z, 0, i.z), g.FromArrayToRef(t.xx, 0, i.xx), g.FromArrayToRef(t.yy, 0, i.yy), g.FromArrayToRef(t.zz, 0, i.zz), g.FromArrayToRef(t.yz, 0, i.yz), g.FromArrayToRef(t.zx, 0, i.zx), g.FromArrayToRef(t.xy, 0, i.xy), a._sphericalPolynomial = i;\n}\nfunction FK(a, e, t, i, s) {\n const r = a.getEngine().createRawCubeTexture(null, a.width, a.format, a.type, a.generateMipMaps, a.invertY, a.samplingMode, a._compression), n = Gp(r, e).then(() => a);\n return a.onRebuildCallback = (o) => ({\n proxy: n,\n isReady: !0,\n isAsync: !0\n }), a._source = 13, a._bufferViewArrayArray = e, a._lodGenerationScale = i, a._lodGenerationOffset = s, a._sphericalPolynomial = t, Gp(a, e).then(() => (a.isReady = !0, a));\n}\nconst LK = {\n /**\n * Gets the environment info from an env file.\n * @param data The array buffer containing the .env bytes.\n * @returns the environment file info (the json header) if successfully parsed, normalized to the latest supported version.\n */\n GetEnvInfo: xv,\n /**\n * Creates an environment texture from a loaded cube texture.\n * @param texture defines the cube texture to convert in env file\n * @param options options for the conversion process\n * @param options.imageType the mime type for the encoded images, with support for \"image/png\" (default) and \"image/webp\"\n * @param options.imageQuality the image quality of encoded WebP images.\n * @returns a promise containing the environment data if successful.\n */\n CreateEnvTextureAsync: oB,\n /**\n * Creates the ArrayBufferViews used for initializing environment texture image data.\n * @param data the image data\n * @param info parameters that determine what views will be created for accessing the underlying buffer\n * @returns the views described by info providing access to the underlying buffer\n */\n CreateImageDataArrayBufferViews: vv,\n /**\n * Uploads the texture info contained in the env file to the GPU.\n * @param texture defines the internal texture to upload to\n * @param data defines the data to load\n * @param info defines the texture info retrieved through the GetEnvInfo method\n * @returns a promise\n */\n UploadEnvLevelsAsync: Y0,\n /**\n * Uploads the levels of image data to the GPU.\n * @param texture defines the internal texture to upload to\n * @param imageData defines the array buffer views of image data [mipmap][face]\n * @param imageType the mime type of the image data\n * @returns a promise\n */\n UploadLevelsAsync: Gp,\n /**\n * Uploads spherical polynomials information to the texture.\n * @param texture defines the texture we are trying to upload the information to\n * @param info defines the environment texture info retrieved through the GetEnvInfo method\n */\n UploadEnvSpherical: Tv\n}, hB = /(flat\\s)?\\s*varying\\s*.*/;\nclass cB {\n constructor() {\n this.shaderLanguage = 0;\n }\n initializeShaders(e) {\n this._nativeProcessingContext = e, this._nativeProcessingContext && (this._nativeProcessingContext.remappedAttributeNames = {}, this._nativeProcessingContext.injectInVertexMain = \"\");\n }\n attributeProcessor(e) {\n if (!this._nativeProcessingContext)\n return e.replace(\"attribute\", \"in\");\n const i = /\\s*(?:attribute|in)\\s+(\\S+)\\s+(\\S+)\\s*;/gm.exec(e);\n if (i !== null) {\n const s = i[1], r = i[2], n = this._nativeProcessingContext.vertexBufferKindToNumberOfComponents[r];\n if (n !== void 0) {\n const o = n < 0 ? n === -1 ? \"int\" : \"ivec\" + -n : n === 1 ? \"uint\" : \"uvec\" + n, l = `_int_${r}_`;\n e = e.replace(i[0], `in ${o} ${l}; ${s} ${r};`), this._nativeProcessingContext.injectInVertexMain += `${r} = ${s}(${l});\n`, this._nativeProcessingContext.remappedAttributeNames[r] = l;\n } else\n e = e.replace(i[0], `in ${s} ${r};`);\n }\n return e;\n }\n varyingCheck(e, t) {\n return hB.test(e);\n }\n varyingProcessor(e, t) {\n return e.replace(\"varying\", t ? \"in\" : \"out\");\n }\n postProcessor(e, t, i) {\n var n;\n const s = e.search(/#extension.+GL_EXT_draw_buffers.+require/) !== -1, r = /#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g;\n if (e = e.replace(r, \"\"), e = e.replace(/texture2D\\s*\\(/g, \"texture(\"), i) {\n const o = e.search(/layout *\\(location *= *0\\) *out/g) !== -1;\n e = e.replace(/texture2DLodEXT\\s*\\(/g, \"textureLod(\"), e = e.replace(/textureCubeLodEXT\\s*\\(/g, \"textureLod(\"), e = e.replace(/textureCube\\s*\\(/g, \"texture(\"), e = e.replace(/gl_FragDepthEXT/g, \"gl_FragDepth\"), e = e.replace(/gl_FragColor/g, \"glFragColor\"), e = e.replace(/gl_FragData/g, \"glFragData\"), e = e.replace(/void\\s+?main\\s*\\(/g, (s || o ? \"\" : `layout(location = 0) out vec4 glFragColor;\n`) + \"void main(\");\n } else if ((n = this._nativeProcessingContext) != null && n.injectInVertexMain && (e = Np(e, \"void main\", this._nativeProcessingContext.injectInVertexMain)), t.indexOf(\"#define MULTIVIEW\") !== -1)\n return `#extension GL_OVR_multiview2 : require\nlayout (num_views = 2) in;\n` + e;\n return e;\n }\n}\nclass uB {\n get isReady() {\n if (this.compilationError) {\n const e = this.compilationError.message;\n throw new Error(\"SHADER ERROR\" + (typeof e == \"string\" ? `\n` + e : \"\"));\n }\n return this.isCompiled;\n }\n _getVertexShaderCode() {\n return null;\n }\n _getFragmentShaderCode() {\n return null;\n }\n constructor(e, t, i) {\n this.isCompiled = !1, this.vertexBufferKindToType = {}, this._valueCache = {}, this._engine = e, this.isAsync = t, this.shaderProcessingContext = i;\n }\n _fillEffectInformation(e, t, i, s, r, n, o, l) {\n const h = this._engine;\n if (h.supportsUniformBuffers)\n for (const d in t)\n e.bindUniformBlock(d, t[d]);\n this._engine.getUniforms(this, i).forEach((d, f) => {\n s[i[f]] = d;\n }), this._uniforms = s;\n let u;\n for (u = 0; u < r.length; u++)\n e.getUniform(r[u]) == null && (r.splice(u, 1), u--);\n r.forEach((d, f) => {\n n[d] = f;\n }), l.push(...h.getAttributes(this, o));\n }\n setEngine(e) {\n this._engine = e;\n }\n /**\n * Release all associated resources.\n **/\n dispose() {\n this._uniforms = {};\n }\n /**\n * @internal\n */\n _cacheMatrix(e, t) {\n const i = this._valueCache[e], s = t.updateFlag;\n return i !== void 0 && i === s ? !1 : (this._valueCache[e] = s, !0);\n }\n /**\n * @internal\n */\n _cacheFloat2(e, t, i) {\n let s = this._valueCache[e];\n if (!s)\n return s = [t, i], this._valueCache[e] = s, !0;\n let r = !1;\n return s[0] !== t && (s[0] = t, r = !0), s[1] !== i && (s[1] = i, r = !0), r;\n }\n /**\n * @internal\n */\n _cacheFloat3(e, t, i, s) {\n let r = this._valueCache[e];\n if (!r)\n return r = [t, i, s], this._valueCache[e] = r, !0;\n let n = !1;\n return r[0] !== t && (r[0] = t, n = !0), r[1] !== i && (r[1] = i, n = !0), r[2] !== s && (r[2] = s, n = !0), n;\n }\n /**\n * @internal\n */\n _cacheFloat4(e, t, i, s, r) {\n let n = this._valueCache[e];\n if (!n)\n return n = [t, i, s, r], this._valueCache[e] = n, !0;\n let o = !1;\n return n[0] !== t && (n[0] = t, o = !0), n[1] !== i && (n[1] = i, o = !0), n[2] !== s && (n[2] = s, o = !0), n[3] !== r && (n[3] = r, o = !0), o;\n }\n /**\n * Sets an integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n */\n setInt(e, t) {\n const i = this._valueCache[e];\n i !== void 0 && i === t || this._engine.setInt(this._uniforms[e], t) && (this._valueCache[e] = t);\n }\n /**\n * Sets a int2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int2.\n * @param y Second int in int2.\n */\n setInt2(e, t, i) {\n this._cacheFloat2(e, t, i) && (this._engine.setInt2(this._uniforms[e], t, i) || (this._valueCache[e] = null));\n }\n /**\n * Sets a int3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int3.\n * @param y Second int in int3.\n * @param z Third int in int3.\n */\n setInt3(e, t, i, s) {\n this._cacheFloat3(e, t, i, s) && (this._engine.setInt3(this._uniforms[e], t, i, s) || (this._valueCache[e] = null));\n }\n /**\n * Sets a int4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int4.\n * @param y Second int in int4.\n * @param z Third int in int4.\n * @param w Fourth int in int4.\n */\n setInt4(e, t, i, s, r) {\n this._cacheFloat4(e, t, i, s, r) && (this._engine.setInt4(this._uniforms[e], t, i, s, r) || (this._valueCache[e] = null));\n }\n /**\n * Sets an int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray(e, t) {\n this._valueCache[e] = null, this._engine.setIntArray(this._uniforms[e], t);\n }\n /**\n * Sets an int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray2(e, t) {\n this._valueCache[e] = null, this._engine.setIntArray2(this._uniforms[e], t);\n }\n /**\n * Sets an int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray3(e, t) {\n this._valueCache[e] = null, this._engine.setIntArray3(this._uniforms[e], t);\n }\n /**\n * Sets an int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray4(e, t) {\n this._valueCache[e] = null, this._engine.setIntArray4(this._uniforms[e], t);\n }\n /**\n * Sets an unsigned integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n */\n setUInt(e, t) {\n const i = this._valueCache[e];\n i !== void 0 && i === t || this._engine.setUInt(this._uniforms[e], t) && (this._valueCache[e] = t);\n }\n /**\n * Sets a unsigned int2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint2.\n * @param y Second unsigned int in uint2.\n */\n setUInt2(e, t, i) {\n this._cacheFloat2(e, t, i) && (this._engine.setUInt2(this._uniforms[e], t, i) || (this._valueCache[e] = null));\n }\n /**\n * Sets a unsigned int3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint3.\n * @param y Second unsigned int in uint3.\n * @param z Third unsigned int in uint3.\n */\n setUInt3(e, t, i, s) {\n this._cacheFloat3(e, t, i, s) && (this._engine.setUInt3(this._uniforms[e], t, i, s) || (this._valueCache[e] = null));\n }\n /**\n * Sets a unsigned int4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint4.\n * @param y Second unsigned int in uint4.\n * @param z Third unsigned int in uint4.\n * @param w Fourth unsigned int in uint4.\n */\n setUInt4(e, t, i, s, r) {\n this._cacheFloat4(e, t, i, s, r) && (this._engine.setUInt4(this._uniforms[e], t, i, s, r) || (this._valueCache[e] = null));\n }\n /**\n * Sets an unsigned int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray(e, t) {\n this._valueCache[e] = null, this._engine.setUIntArray(this._uniforms[e], t);\n }\n /**\n * Sets an unsigned int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray2(e, t) {\n this._valueCache[e] = null, this._engine.setUIntArray2(this._uniforms[e], t);\n }\n /**\n * Sets an unsigned int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray3(e, t) {\n this._valueCache[e] = null, this._engine.setUIntArray3(this._uniforms[e], t);\n }\n /**\n * Sets an unsigned int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray4(e, t) {\n this._valueCache[e] = null, this._engine.setUIntArray4(this._uniforms[e], t);\n }\n /**\n * Sets an float array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray(e, t) {\n this._valueCache[e] = null, this._engine.setFloatArray(this._uniforms[e], t);\n }\n /**\n * Sets an float array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray2(e, t) {\n this._valueCache[e] = null, this._engine.setFloatArray2(this._uniforms[e], t);\n }\n /**\n * Sets an float array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray3(e, t) {\n this._valueCache[e] = null, this._engine.setFloatArray3(this._uniforms[e], t);\n }\n /**\n * Sets an float array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray4(e, t) {\n this._valueCache[e] = null, this._engine.setFloatArray4(this._uniforms[e], t);\n }\n /**\n * Sets an array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray(e, t) {\n this._valueCache[e] = null, this._engine.setArray(this._uniforms[e], t);\n }\n /**\n * Sets an array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray2(e, t) {\n this._valueCache[e] = null, this._engine.setArray2(this._uniforms[e], t);\n }\n /**\n * Sets an array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray3(e, t) {\n this._valueCache[e] = null, this._engine.setArray3(this._uniforms[e], t);\n }\n /**\n * Sets an array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray4(e, t) {\n this._valueCache[e] = null, this._engine.setArray4(this._uniforms[e], t);\n }\n /**\n * Sets matrices on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrices matrices to be set.\n */\n setMatrices(e, t) {\n t && (this._valueCache[e] = null, this._engine.setMatrices(this._uniforms[e], t));\n }\n /**\n * Sets matrix on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix(e, t) {\n this._cacheMatrix(e, t) && (this._engine.setMatrices(this._uniforms[e], t.asArray()) || (this._valueCache[e] = null));\n }\n /**\n * Sets a 3x3 matrix on a uniform variable. (Specified as [1,2,3,4,5,6,7,8,9] will result in [1,2,3][4,5,6][7,8,9] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix3x3(e, t) {\n this._valueCache[e] = null, this._engine.setMatrix3x3(this._uniforms[e], t);\n }\n /**\n * Sets a 2x2 matrix on a uniform variable. (Specified as [1,2,3,4] will result in [1,2][3,4] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix2x2(e, t) {\n this._valueCache[e] = null, this._engine.setMatrix2x2(this._uniforms[e], t);\n }\n /**\n * Sets a float on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value value to be set.\n */\n setFloat(e, t) {\n const i = this._valueCache[e];\n i !== void 0 && i === t || this._engine.setFloat(this._uniforms[e], t) && (this._valueCache[e] = t);\n }\n /**\n * Sets a boolean on a uniform variable.\n * @param uniformName Name of the variable.\n * @param bool value to be set.\n */\n setBool(e, t) {\n const i = this._valueCache[e];\n i !== void 0 && i === t || this._engine.setInt(this._uniforms[e], t ? 1 : 0) && (this._valueCache[e] = t ? 1 : 0);\n }\n /**\n * Sets a Vector2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector2 vector2 to be set.\n */\n setVector2(e, t) {\n this._cacheFloat2(e, t.x, t.y) && (this._engine.setFloat2(this._uniforms[e], t.x, t.y) || (this._valueCache[e] = null));\n }\n /**\n * Sets a float2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float2.\n * @param y Second float in float2.\n */\n setFloat2(e, t, i) {\n this._cacheFloat2(e, t, i) && (this._engine.setFloat2(this._uniforms[e], t, i) || (this._valueCache[e] = null));\n }\n /**\n * Sets a Vector3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector3 Value to be set.\n */\n setVector3(e, t) {\n this._cacheFloat3(e, t.x, t.y, t.z) && (this._engine.setFloat3(this._uniforms[e], t.x, t.y, t.z) || (this._valueCache[e] = null));\n }\n /**\n * Sets a float3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float3.\n * @param y Second float in float3.\n * @param z Third float in float3.\n */\n setFloat3(e, t, i, s) {\n this._cacheFloat3(e, t, i, s) && (this._engine.setFloat3(this._uniforms[e], t, i, s) || (this._valueCache[e] = null));\n }\n /**\n * Sets a Vector4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector4 Value to be set.\n */\n setVector4(e, t) {\n this._cacheFloat4(e, t.x, t.y, t.z, t.w) && (this._engine.setFloat4(this._uniforms[e], t.x, t.y, t.z, t.w) || (this._valueCache[e] = null));\n }\n /**\n * Sets a Quaternion on a uniform variable.\n * @param uniformName Name of the variable.\n * @param quaternion Value to be set.\n */\n setQuaternion(e, t) {\n this._cacheFloat4(e, t.x, t.y, t.z, t.w) && (this._engine.setFloat4(this._uniforms[e], t.x, t.y, t.z, t.w) || (this._valueCache[e] = null));\n }\n /**\n * Sets a float4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float4.\n * @param y Second float in float4.\n * @param z Third float in float4.\n * @param w Fourth float in float4.\n */\n setFloat4(e, t, i, s, r) {\n this._cacheFloat4(e, t, i, s, r) && (this._engine.setFloat4(this._uniforms[e], t, i, s, r) || (this._valueCache[e] = null));\n }\n /**\n * Sets a Color3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n */\n setColor3(e, t) {\n this._cacheFloat3(e, t.r, t.g, t.b) && (this._engine.setFloat3(this._uniforms[e], t.r, t.g, t.b) || (this._valueCache[e] = null));\n }\n /**\n * Sets a Color4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n * @param alpha Alpha value to be set.\n */\n setColor4(e, t, i) {\n this._cacheFloat4(e, t.r, t.g, t.b, i) && (this._engine.setFloat4(this._uniforms[e], t.r, t.g, t.b, i) || (this._valueCache[e] = null));\n }\n /**\n * Sets a Color4 on a uniform variable\n * @param uniformName defines the name of the variable\n * @param color4 defines the value to be set\n */\n setDirectColor4(e, t) {\n this._cacheFloat4(e, t.r, t.g, t.b, t.a) && (this._engine.setFloat4(this._uniforms[e], t.r, t.g, t.b, t.a) || (this._valueCache[e] = null));\n }\n}\nclass dB extends Ax {\n get _framebuffer() {\n return this.__framebuffer;\n }\n set _framebuffer(e) {\n this.__framebuffer && this._engine._releaseFramebufferObjects(this.__framebuffer), this.__framebuffer = e;\n }\n get _framebufferDepthStencil() {\n return this.__framebufferDepthStencil;\n }\n set _framebufferDepthStencil(e) {\n this.__framebufferDepthStencil && this._engine._releaseFramebufferObjects(this.__framebufferDepthStencil), this.__framebufferDepthStencil = e;\n }\n constructor(e, t, i, s) {\n super(e, t, i, s), this.__framebuffer = null, this.__framebufferDepthStencil = null, this._engine = s;\n }\n dispose(e = !1) {\n this._framebuffer = null, this._framebufferDepthStencil = null, super.dispose(e);\n }\n}\nclass dE {\n get underlyingResource() {\n return this._nativeTexture;\n }\n constructor(e, t) {\n this._engine = t, this.set(e);\n }\n setUsage() {\n }\n set(e) {\n this._nativeTexture = e;\n }\n reset() {\n this._nativeTexture = null;\n }\n release() {\n this._nativeTexture && this._engine.deleteTexture(this._nativeTexture), this.reset();\n }\n}\nfunction jm(a, e) {\n switch (a) {\n case 15:\n return _native.Engine.TEXTURE_FORMAT_D16;\n case 16:\n return _native.Engine.TEXTURE_FORMAT_D24;\n case 13:\n return _native.Engine.TEXTURE_FORMAT_D24S8;\n case 14:\n return _native.Engine.TEXTURE_FORMAT_D32F;\n case 36492:\n return _native.Engine.TEXTURE_FORMAT_BC7;\n case 36494:\n return _native.Engine.TEXTURE_FORMAT_BC6H;\n case 33779:\n return _native.Engine.TEXTURE_FORMAT_BC3;\n case 33778:\n return _native.Engine.TEXTURE_FORMAT_BC2;\n case 33777:\n return _native.Engine.TEXTURE_FORMAT_BC1;\n case 33776:\n return _native.Engine.TEXTURE_FORMAT_BC1;\n case 37808:\n return _native.Engine.TEXTURE_FORMAT_ASTC4x4;\n case 36196:\n return _native.Engine.TEXTURE_FORMAT_ETC1;\n case 37492:\n return _native.Engine.TEXTURE_FORMAT_ETC2;\n case 37496:\n return _native.Engine.TEXTURE_FORMAT_ETC2A;\n case 4: {\n switch (e) {\n case 0:\n return _native.Engine.TEXTURE_FORMAT_RGB8;\n case 3:\n return _native.Engine.TEXTURE_FORMAT_RGB8S;\n case 6:\n return _native.Engine.TEXTURE_FORMAT_RGB8I;\n case 7:\n return _native.Engine.TEXTURE_FORMAT_RGB8U;\n }\n break;\n }\n case 5: {\n switch (e) {\n case 0:\n return _native.Engine.TEXTURE_FORMAT_RGBA8;\n case 1:\n return _native.Engine.TEXTURE_FORMAT_RGBA32F;\n case 2:\n return _native.Engine.TEXTURE_FORMAT_RGBA16F;\n case 3:\n return _native.Engine.TEXTURE_FORMAT_RGBA8S;\n case 4:\n return _native.Engine.TEXTURE_FORMAT_RGBA16I;\n case 5:\n return _native.Engine.TEXTURE_FORMAT_RGBA16U;\n case 6:\n return _native.Engine.TEXTURE_FORMAT_RGBA32I;\n case 7:\n return _native.Engine.TEXTURE_FORMAT_RGBA32U;\n }\n break;\n }\n case 6: {\n switch (e) {\n case 0:\n return _native.Engine.TEXTURE_FORMAT_R8;\n case 1:\n return _native.Engine.TEXTURE_FORMAT_R32F;\n case 2:\n return _native.Engine.TEXTURE_FORMAT_R16F;\n case 3:\n return _native.Engine.TEXTURE_FORMAT_R8S;\n case 4:\n return _native.Engine.TEXTURE_FORMAT_R16S;\n case 5:\n return _native.Engine.TEXTURE_FORMAT_R16U;\n case 6:\n return _native.Engine.TEXTURE_FORMAT_R32I;\n case 7:\n return _native.Engine.TEXTURE_FORMAT_R32U;\n }\n break;\n }\n case 7: {\n switch (e) {\n case 0:\n return _native.Engine.TEXTURE_FORMAT_RG8;\n case 1:\n return _native.Engine.TEXTURE_FORMAT_RG32F;\n case 2:\n return _native.Engine.TEXTURE_FORMAT_RG16F;\n case 3:\n return _native.Engine.TEXTURE_FORMAT_RG8S;\n case 4:\n return _native.Engine.TEXTURE_FORMAT_RG16S;\n case 5:\n return _native.Engine.TEXTURE_FORMAT_RG16U;\n case 6:\n return _native.Engine.TEXTURE_FORMAT_RG32I;\n case 7:\n return _native.Engine.TEXTURE_FORMAT_RG32U;\n }\n break;\n }\n case 12: {\n switch (e) {\n case 0:\n return _native.Engine.TEXTURE_FORMAT_BGRA8;\n }\n break;\n }\n }\n throw new Ia(`Unsupported texture format or type: format ${a}, type ${e}.`, Go.UnsupportedTextureError);\n}\nfunction Yc(a) {\n switch (a) {\n case 1:\n return _native.Engine.TEXTURE_NEAREST_NEAREST;\n case 2:\n return _native.Engine.TEXTURE_LINEAR_LINEAR;\n case 3:\n return _native.Engine.TEXTURE_LINEAR_LINEAR_MIPLINEAR;\n case 4:\n return _native.Engine.TEXTURE_NEAREST_NEAREST_MIPNEAREST;\n case 5:\n return _native.Engine.TEXTURE_NEAREST_LINEAR_MIPNEAREST;\n case 6:\n return _native.Engine.TEXTURE_NEAREST_LINEAR_MIPLINEAR;\n case 7:\n return _native.Engine.TEXTURE_NEAREST_LINEAR;\n case 8:\n return _native.Engine.TEXTURE_NEAREST_NEAREST_MIPLINEAR;\n case 9:\n return _native.Engine.TEXTURE_LINEAR_NEAREST_MIPNEAREST;\n case 10:\n return _native.Engine.TEXTURE_LINEAR_NEAREST_MIPLINEAR;\n case 11:\n return _native.Engine.TEXTURE_LINEAR_LINEAR_MIPNEAREST;\n case 12:\n return _native.Engine.TEXTURE_LINEAR_NEAREST;\n default:\n throw new Error(`Unsupported sampling mode: ${a}.`);\n }\n}\nfunction Km(a) {\n switch (a) {\n case 1:\n return _native.Engine.ADDRESS_MODE_WRAP;\n case 0:\n return _native.Engine.ADDRESS_MODE_CLAMP;\n case 2:\n return _native.Engine.ADDRESS_MODE_MIRROR;\n default:\n throw new Error(\"Unexpected wrap mode: \" + a + \".\");\n }\n}\nfunction fB(a) {\n switch (a) {\n case 513:\n return _native.Engine.STENCIL_TEST_LESS;\n case 515:\n return _native.Engine.STENCIL_TEST_LEQUAL;\n case 514:\n return _native.Engine.STENCIL_TEST_EQUAL;\n case 518:\n return _native.Engine.STENCIL_TEST_GEQUAL;\n case 516:\n return _native.Engine.STENCIL_TEST_GREATER;\n case 517:\n return _native.Engine.STENCIL_TEST_NOTEQUAL;\n case 512:\n return _native.Engine.STENCIL_TEST_NEVER;\n case 519:\n return _native.Engine.STENCIL_TEST_ALWAYS;\n default:\n throw new Error(`Unsupported stencil func mode: ${a}.`);\n }\n}\nfunction pB(a) {\n switch (a) {\n case 7680:\n return _native.Engine.STENCIL_OP_FAIL_S_KEEP;\n case 0:\n return _native.Engine.STENCIL_OP_FAIL_S_ZERO;\n case 7681:\n return _native.Engine.STENCIL_OP_FAIL_S_REPLACE;\n case 7682:\n return _native.Engine.STENCIL_OP_FAIL_S_INCR;\n case 7683:\n return _native.Engine.STENCIL_OP_FAIL_S_DECR;\n case 5386:\n return _native.Engine.STENCIL_OP_FAIL_S_INVERT;\n case 34055:\n return _native.Engine.STENCIL_OP_FAIL_S_INCRSAT;\n case 34056:\n return _native.Engine.STENCIL_OP_FAIL_S_DECRSAT;\n default:\n throw new Error(`Unsupported stencil OpFail mode: ${a}.`);\n }\n}\nfunction _B(a) {\n switch (a) {\n case 7680:\n return _native.Engine.STENCIL_OP_FAIL_Z_KEEP;\n case 0:\n return _native.Engine.STENCIL_OP_FAIL_Z_ZERO;\n case 7681:\n return _native.Engine.STENCIL_OP_FAIL_Z_REPLACE;\n case 7682:\n return _native.Engine.STENCIL_OP_FAIL_Z_INCR;\n case 7683:\n return _native.Engine.STENCIL_OP_FAIL_Z_DECR;\n case 5386:\n return _native.Engine.STENCIL_OP_FAIL_Z_INVERT;\n case 34055:\n return _native.Engine.STENCIL_OP_FAIL_Z_INCRSAT;\n case 34056:\n return _native.Engine.STENCIL_OP_FAIL_Z_DECRSAT;\n default:\n throw new Error(`Unsupported stencil depthFail mode: ${a}.`);\n }\n}\nfunction mB(a) {\n switch (a) {\n case 7680:\n return _native.Engine.STENCIL_OP_PASS_Z_KEEP;\n case 0:\n return _native.Engine.STENCIL_OP_PASS_Z_ZERO;\n case 7681:\n return _native.Engine.STENCIL_OP_PASS_Z_REPLACE;\n case 7682:\n return _native.Engine.STENCIL_OP_PASS_Z_INCR;\n case 7683:\n return _native.Engine.STENCIL_OP_PASS_Z_DECR;\n case 5386:\n return _native.Engine.STENCIL_OP_PASS_Z_INVERT;\n case 34055:\n return _native.Engine.STENCIL_OP_PASS_Z_INCRSAT;\n case 34056:\n return _native.Engine.STENCIL_OP_PASS_Z_DECRSAT;\n default:\n throw new Error(`Unsupported stencil opPass mode: ${a}.`);\n }\n}\nfunction gB(a) {\n switch (a) {\n case 0:\n return _native.Engine.ALPHA_DISABLE;\n case 1:\n return _native.Engine.ALPHA_ADD;\n case 2:\n return _native.Engine.ALPHA_COMBINE;\n case 3:\n return _native.Engine.ALPHA_SUBTRACT;\n case 4:\n return _native.Engine.ALPHA_MULTIPLY;\n case 5:\n return _native.Engine.ALPHA_MAXIMIZED;\n case 6:\n return _native.Engine.ALPHA_ONEONE;\n case 7:\n return _native.Engine.ALPHA_PREMULTIPLIED;\n case 8:\n return _native.Engine.ALPHA_PREMULTIPLIED_PORTERDUFF;\n case 9:\n return _native.Engine.ALPHA_INTERPOLATE;\n case 10:\n return _native.Engine.ALPHA_SCREENMODE;\n default:\n throw new Error(`Unsupported alpha mode: ${a}.`);\n }\n}\nfunction xB(a) {\n switch (a) {\n case R.BYTE:\n return _native.Engine.ATTRIB_TYPE_INT8;\n case R.UNSIGNED_BYTE:\n return _native.Engine.ATTRIB_TYPE_UINT8;\n case R.SHORT:\n return _native.Engine.ATTRIB_TYPE_INT16;\n case R.UNSIGNED_SHORT:\n return _native.Engine.ATTRIB_TYPE_UINT16;\n case R.FLOAT:\n return _native.Engine.ATTRIB_TYPE_FLOAT;\n default:\n throw new Error(`Unsupported attribute type: ${a}.`);\n }\n}\nclass vB {\n constructor() {\n this.vertexBufferKindToNumberOfComponents = {}, this.remappedAttributeNames = {}, this.injectInVertexMain = \"\";\n }\n}\nconst j0 = new G();\nif (typeof self < \"u\" && !Object.prototype.hasOwnProperty.call(self, \"_native\")) {\n let a;\n Object.defineProperty(self, \"_native\", {\n get: () => a,\n set: (e) => {\n a = e, a && j0.notifyObservers(a);\n }\n });\n}\nfunction TB() {\n return new Promise((a) => {\n typeof _native > \"u\" ? j0.addOnce((e) => a(e)) : a(_native);\n });\n}\nasync function SB(a, e) {\n (await TB())[a] = e;\n}\nclass fE extends Nl {\n}\nclass bB {\n constructor(e) {\n this._engine = e, this._pending = new Array(), this._isCommandBufferScopeActive = !1, this._commandStream = Jh._createNativeDataStream(), this._engine.setCommandDataStream(this._commandStream);\n }\n beginCommandScope() {\n if (this._isCommandBufferScopeActive)\n throw new Error(\"Command scope already active.\");\n this._isCommandBufferScopeActive = !0;\n }\n endCommandScope() {\n if (!this._isCommandBufferScopeActive)\n throw new Error(\"Command scope is not active.\");\n this._isCommandBufferScopeActive = !1, this._submit();\n }\n startEncodingCommand(e) {\n this._commandStream.writeNativeData(e);\n }\n encodeCommandArgAsUInt32(e) {\n this._commandStream.writeUint32(e);\n }\n encodeCommandArgAsUInt32s(e) {\n this._commandStream.writeUint32Array(e);\n }\n encodeCommandArgAsInt32(e) {\n this._commandStream.writeInt32(e);\n }\n encodeCommandArgAsInt32s(e) {\n this._commandStream.writeInt32Array(e);\n }\n encodeCommandArgAsFloat32(e) {\n this._commandStream.writeFloat32(e);\n }\n encodeCommandArgAsFloat32s(e) {\n this._commandStream.writeFloat32Array(e);\n }\n encodeCommandArgAsNativeData(e) {\n this._commandStream.writeNativeData(e), this._pending.push(e);\n }\n finishEncodingCommand() {\n this._isCommandBufferScopeActive || this._submit();\n }\n _submit() {\n this._engine.submitCommands(), this._pending.length = 0;\n }\n}\nconst qm = [];\nclass Jh extends ee {\n setHardwareScalingLevel(e) {\n super.setHardwareScalingLevel(e), this._engine.setHardwareScalingLevel(e);\n }\n constructor(e = {}) {\n if (super(null, !1, void 0, e.adaptToDeviceRatio), this._engine = new _native.Engine({\n version: ee.Version,\n nonFloatVertexBuffers: !0\n }), this._camera = _native.Camera ? new _native.Camera() : null, this._commandBufferEncoder = new bB(this._engine), this._boundBuffersVertexArray = null, this._currentDepthTest = _native.Engine.DEPTH_TEST_LEQUAL, this._stencilTest = !1, this._stencilMask = 255, this._stencilFunc = 519, this._stencilFuncRef = 0, this._stencilFuncMask = 255, this._stencilOpStencilFail = 7680, this._stencilOpDepthFail = 7680, this._stencilOpStencilDepthPass = 7681, this._zOffset = 0, this._zOffsetUnits = 0, this._depthWrite = !0, _native.Engine.PROTOCOL_VERSION !== Jh.PROTOCOL_VERSION)\n throw new Error(`Protocol version mismatch: ${_native.Engine.PROTOCOL_VERSION} (Native) !== ${Jh.PROTOCOL_VERSION} (JS)`);\n this._engine.setDeviceLostCallback && this._engine.setDeviceLostCallback(() => {\n this.onContextLostObservable.notifyObservers(this), this._contextWasLost = !0, this._restoreEngineAfterContextLost();\n }), this._webGLVersion = 2, this.disableUniformBuffers = !0, this._shaderPlatformName = \"NATIVE\", this._caps = {\n maxTexturesImageUnits: 16,\n maxVertexTextureImageUnits: 16,\n maxCombinedTexturesImageUnits: 32,\n maxTextureSize: _native.Engine.CAPS_LIMITS_MAX_TEXTURE_SIZE,\n maxCubemapTextureSize: 512,\n maxRenderTextureSize: 512,\n maxVertexAttribs: 16,\n maxVaryingVectors: 16,\n maxFragmentUniformVectors: 16,\n maxVertexUniformVectors: 16,\n standardDerivatives: !0,\n astc: null,\n pvrtc: null,\n etc1: null,\n etc2: null,\n bptc: null,\n maxAnisotropy: 16,\n uintIndices: !0,\n fragmentDepthSupported: !1,\n highPrecisionShaderSupported: !0,\n colorBufferFloat: !1,\n supportFloatTexturesResolve: !1,\n rg11b10ufColorRenderable: !1,\n textureFloat: !0,\n textureFloatLinearFiltering: !0,\n textureFloatRender: !0,\n textureHalfFloat: !0,\n textureHalfFloatLinearFiltering: !0,\n textureHalfFloatRender: !0,\n textureLOD: !0,\n texelFetch: !1,\n drawBuffersExtension: !1,\n depthTextureExtension: !1,\n vertexArrayObject: !0,\n instancedArrays: !0,\n supportOcclusionQuery: !1,\n canUseTimestampForTimerQuery: !1,\n blendMinMax: !1,\n maxMSAASamples: 16,\n canUseGLInstanceID: !0,\n canUseGLVertexID: !0,\n supportComputeShaders: !1,\n supportSRGBBuffers: !0,\n supportTransformFeedbacks: !1,\n textureMaxLevel: !1,\n texture2DArrayMaxLayerCount: _native.Engine.CAPS_LIMITS_MAX_TEXTURE_LAYERS,\n disableMorphTargetTexture: !1,\n parallelShaderCompile: { COMPLETION_STATUS_KHR: 0 }\n }, this._features = {\n forceBitmapOverHTMLImageElement: !0,\n supportRenderAndCopyToLodForFloatTextures: !1,\n supportDepthStencilTexture: !1,\n supportShadowSamplers: !1,\n uniformBufferHardCheckMatrix: !1,\n allowTexturePrefiltering: !1,\n trackUbosInFrame: !1,\n checkUbosContentBeforeUpload: !1,\n supportCSM: !1,\n basisNeedsPOT: !1,\n support3DTextures: !1,\n needTypeSuffixInShaderConstants: !1,\n supportMSAA: !0,\n supportSSAO2: !1,\n supportExtendedTextureFormats: !1,\n supportSwitchCaseInShader: !1,\n supportSyncTextureRead: !1,\n needsInvertingBitmap: !0,\n useUBOBindingCache: !0,\n needShaderCodeInlining: !0,\n needToAlwaysBindUniformBuffers: !1,\n supportRenderPasses: !0,\n supportSpriteInstancing: !1,\n forceVertexBufferStrideAndOffsetMultiple4Bytes: !0,\n _checkNonFloatVertexBuffersDontRecreatePipelineContext: !1,\n _collectUbosUpdatedInFrame: !1\n }, J.Log(\"Babylon Native (v\" + ee.Version + \") launched\"), J.LoadScript = function(s, r, n, o) {\n J.LoadFile(s, (l) => {\n Function(l).apply(null), r && r();\n }, void 0, void 0, !1, (l, h) => {\n n && n(\"LoadScript Error\", h);\n });\n }, typeof URL > \"u\" && (window.URL = {\n createObjectURL: function() {\n },\n revokeObjectURL: function() {\n }\n }), typeof Blob > \"u\" && (window.Blob = function(s) {\n return s;\n }), Array.prototype.flat || Object.defineProperty(Array.prototype, \"flat\", {\n configurable: !0,\n value: function s() {\n const r = isNaN(arguments[0]) ? 1 : Number(arguments[0]);\n return r ? Array.prototype.reduce.call(this, function(n, o) {\n return Array.isArray(o) ? n.push.apply(n, s.call(o, r - 1)) : n.push(o), n;\n }, []) : Array.prototype.slice.call(this);\n },\n writable: !0\n });\n const t = window && window.devicePixelRatio || 1;\n this._hardwareScalingLevel = e.adaptToDeviceRatio ? 1 / t : 1, this._engine.setHardwareScalingLevel(this._hardwareScalingLevel), this._lastDevicePixelRatio = t, this.resize();\n const i = this.getDepthFunction();\n i && this.setDepthFunction(i), this._shaderProcessor = new cB(), this.onNewSceneAddedObservable.add((s) => {\n const r = s.render;\n s.render = (...n) => {\n this._commandBufferEncoder.beginCommandScope(), r.apply(s, n), this._commandBufferEncoder.endCommandScope();\n };\n });\n }\n dispose() {\n super.dispose(), this._boundBuffersVertexArray && this._deleteVertexArray(this._boundBuffersVertexArray), this._engine.dispose();\n }\n /** @internal */\n static _createNativeDataStream() {\n return new Pl();\n }\n /**\n * Can be used to override the current requestAnimationFrame requester.\n * @internal\n */\n _queueNewFrame(e, t) {\n return t.requestAnimationFrame && t !== window ? t.requestAnimationFrame(e) : this._engine.requestAnimationFrame(e), 0;\n }\n _restoreEngineAfterContextLost() {\n this._clearEmptyResources();\n const e = this._depthCullingState.depthTest, t = this._depthCullingState.depthFunc, i = this._depthCullingState.depthMask, s = this._stencilState.stencilTest;\n this._rebuildGraphicsResources(), this._depthCullingState.depthTest = e, this._depthCullingState.depthFunc = t, this._depthCullingState.depthMask = i, this._stencilState.stencilTest = s, this._flagContextRestored();\n }\n /**\n * Override default engine behavior.\n * @param framebuffer\n */\n _bindUnboundFramebuffer(e) {\n this._currentFramebuffer !== e && (this._currentFramebuffer && (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_UNBINDFRAMEBUFFER), this._commandBufferEncoder.encodeCommandArgAsNativeData(this._currentFramebuffer), this._commandBufferEncoder.finishEncodingCommand()), e && (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_BINDFRAMEBUFFER), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.finishEncodingCommand()), this._currentFramebuffer = e);\n }\n /**\n * Gets host document\n * @returns the host document object\n */\n getHostDocument() {\n return null;\n }\n clear(e, t, i, s = !1) {\n if (this.useReverseDepthBuffer)\n throw new Error(\"reverse depth buffer is not currently implemented\");\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_CLEAR), this._commandBufferEncoder.encodeCommandArgAsUInt32(t && e ? 1 : 0), this._commandBufferEncoder.encodeCommandArgAsFloat32(e ? e.r : 0), this._commandBufferEncoder.encodeCommandArgAsFloat32(e ? e.g : 0), this._commandBufferEncoder.encodeCommandArgAsFloat32(e ? e.b : 0), this._commandBufferEncoder.encodeCommandArgAsFloat32(e ? e.a : 1), this._commandBufferEncoder.encodeCommandArgAsUInt32(i ? 1 : 0), this._commandBufferEncoder.encodeCommandArgAsFloat32(1), this._commandBufferEncoder.encodeCommandArgAsUInt32(s ? 1 : 0), this._commandBufferEncoder.encodeCommandArgAsUInt32(0), this._commandBufferEncoder.finishEncodingCommand();\n }\n createIndexBuffer(e, t, i) {\n const s = this._normalizeIndexData(e), r = new fE();\n return r.references = 1, r.is32Bits = s.BYTES_PER_ELEMENT === 4, s.byteLength && (r.nativeIndexBuffer = this._engine.createIndexBuffer(s.buffer, s.byteOffset, s.byteLength, r.is32Bits, t ?? !1)), r;\n }\n createVertexBuffer(e, t, i) {\n const s = ArrayBuffer.isView(e) ? e : new Float32Array(e), r = new fE();\n return r.references = 1, s.byteLength && (r.nativeVertexBuffer = this._engine.createVertexBuffer(s.buffer, s.byteOffset, s.byteLength, t ?? !1)), r;\n }\n _recordVertexArrayObject(e, t, i, s, r) {\n s._checkedNonFloatVertexBuffers || (XC(t, s), s._checkedNonFloatVertexBuffers = !0), i && this._engine.recordIndexBuffer(e, i.nativeIndexBuffer);\n const n = s.getAttributesNames();\n for (let o = 0; o < n.length; o++) {\n const l = s.getAttributeLocation(o);\n if (l >= 0) {\n const h = n[o];\n let c = null;\n if (r && (c = r[h]), c || (c = t[h]), c) {\n const u = c.effectiveBuffer;\n u && u.nativeVertexBuffer && this._engine.recordVertexBuffer(e, u.nativeVertexBuffer, l, c.effectiveByteOffset, c.effectiveByteStride, c.getSize(), xB(c.type), c.normalized, c.getInstanceDivisor());\n }\n }\n }\n }\n bindBuffers(e, t, i) {\n this._boundBuffersVertexArray && this._deleteVertexArray(this._boundBuffersVertexArray), this._boundBuffersVertexArray = this._engine.createVertexArray(), this._recordVertexArrayObject(this._boundBuffersVertexArray, e, t, i), this.bindVertexArrayObject(this._boundBuffersVertexArray);\n }\n recordVertexArrayObject(e, t, i, s) {\n const r = this._engine.createVertexArray();\n return this._recordVertexArrayObject(r, e, t, i, s), r;\n }\n _deleteVertexArray(e) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEVERTEXARRAY), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.finishEncodingCommand();\n }\n bindVertexArrayObject(e) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_BINDVERTEXARRAY), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.finishEncodingCommand();\n }\n releaseVertexArrayObject(e) {\n this._deleteVertexArray(e);\n }\n getAttributes(e, t) {\n const i = e, s = i.shaderProcessingContext;\n qm.length = 0;\n for (let r = 0; r < t.length; r++) {\n const n = t[r], o = s.remappedAttributeNames[n] ?? n;\n qm[r] = o;\n }\n return this._engine.getAttributes(i.program, qm);\n }\n /**\n * Draw a list of indexed primitives\n * @param fillMode defines the primitive to use\n * @param indexStart defines the starting index\n * @param indexCount defines the number of index to draw\n * @param instancesCount defines the number of instances to draw (if instantiation is enabled)\n */\n drawElementsType(e, t, i, s) {\n this._drawCalls.addCount(1, !1), s && _native.Engine.COMMAND_DRAWINDEXEDINSTANCED ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DRAWINDEXEDINSTANCED), this._commandBufferEncoder.encodeCommandArgAsUInt32(e), this._commandBufferEncoder.encodeCommandArgAsUInt32(t), this._commandBufferEncoder.encodeCommandArgAsUInt32(i), this._commandBufferEncoder.encodeCommandArgAsUInt32(s)) : (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DRAWINDEXED), this._commandBufferEncoder.encodeCommandArgAsUInt32(e), this._commandBufferEncoder.encodeCommandArgAsUInt32(t), this._commandBufferEncoder.encodeCommandArgAsUInt32(i)), this._commandBufferEncoder.finishEncodingCommand();\n }\n /**\n * Draw a list of unindexed primitives\n * @param fillMode defines the primitive to use\n * @param verticesStart defines the index of first vertex to draw\n * @param verticesCount defines the count of vertices to draw\n * @param instancesCount defines the number of instances to draw (if instantiation is enabled)\n */\n drawArraysType(e, t, i, s) {\n this._drawCalls.addCount(1, !1), s && _native.Engine.COMMAND_DRAWINSTANCED ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DRAWINSTANCED), this._commandBufferEncoder.encodeCommandArgAsUInt32(e), this._commandBufferEncoder.encodeCommandArgAsUInt32(t), this._commandBufferEncoder.encodeCommandArgAsUInt32(i), this._commandBufferEncoder.encodeCommandArgAsUInt32(s)) : (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DRAW), this._commandBufferEncoder.encodeCommandArgAsUInt32(e), this._commandBufferEncoder.encodeCommandArgAsUInt32(t), this._commandBufferEncoder.encodeCommandArgAsUInt32(i)), this._commandBufferEncoder.finishEncodingCommand();\n }\n createPipelineContext(e) {\n const t = !!(this._caps.parallelShaderCompile && this._engine.createProgramAsync);\n return new uB(this, t, e);\n }\n createMaterialContext() {\n }\n createDrawContext() {\n }\n /**\n * @internal\n */\n _preparePipelineContext(e, t, i, s, r, n, o, l) {\n s ? this.createRawShaderProgram() : this.createShaderProgram(e, t, i, l);\n }\n /**\n * @internal\n */\n _getShaderProcessingContext(e) {\n return new vB();\n }\n /**\n * @internal\n */\n _executeWhenRenderingStateIsCompiled(e, t) {\n const i = e;\n if (i.isAsync)\n if (i.onCompiled) {\n const s = i.onCompiled;\n i.onCompiled = () => {\n s(), t();\n };\n } else\n i.onCompiled = t;\n else\n t();\n }\n createRawShaderProgram() {\n throw new Error(\"Not Supported\");\n }\n createShaderProgram(e, t, i, s) {\n const r = e;\n this.onBeforeShaderCompilationObservable.notifyObservers(this);\n const n = new yl(t);\n n.processCode(), t = n.code;\n const o = new yl(i);\n o.processCode(), i = o.code, t = Xe._ConcatenateShader(t, s), i = Xe._ConcatenateShader(i, s);\n const l = () => {\n var h;\n r.isCompiled = !0, (h = r.onCompiled) == null || h.call(r), this.onAfterShaderCompilationObservable.notifyObservers(this);\n };\n if (e.isAsync)\n r.program = this._engine.createProgramAsync(t, i, l, (h) => {\n r.compilationError = h;\n });\n else\n try {\n r.program = this._engine.createProgram(t, i), l();\n } catch (h) {\n const c = h == null ? void 0 : h.message;\n throw new Error(\"SHADER ERROR\" + (typeof c == \"string\" ? `\n` + c : \"\"));\n }\n return r.program;\n }\n /**\n * Inline functions in shader code that are marked to be inlined\n * @param code code to inline\n * @returns inlined code\n */\n inlineShaderCode(e) {\n const t = new yl(e);\n return t.debug = !1, t.processCode(), t.code;\n }\n _setProgram(e) {\n this._currentProgram !== e && (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETPROGRAM), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.finishEncodingCommand(), this._currentProgram = e);\n }\n _deletePipelineContext(e) {\n const t = e;\n t && t.program && (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEPROGRAM), this._commandBufferEncoder.encodeCommandArgAsNativeData(t.program), this._commandBufferEncoder.finishEncodingCommand());\n }\n getUniforms(e, t) {\n const i = e;\n return this._engine.getUniforms(i.program, t);\n }\n bindUniformBlock(e, t, i) {\n throw new Error(\"Not Implemented\");\n }\n bindSamplers(e) {\n const t = e.getPipelineContext();\n this._setProgram(t.program);\n const i = e.getSamplers();\n for (let s = 0; s < i.length; s++) {\n const r = e.getUniform(i[s]);\n r && (this._boundUniforms[s] = r);\n }\n this._currentEffect = null;\n }\n getRenderWidth(e = !1) {\n return !e && this._currentRenderTarget ? this._currentRenderTarget.width : this._engine.getRenderWidth();\n }\n getRenderHeight(e = !1) {\n return !e && this._currentRenderTarget ? this._currentRenderTarget.height : this._engine.getRenderHeight();\n }\n setViewport(e, t, i) {\n this._cachedViewport = e, this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETVIEWPORT), this._commandBufferEncoder.encodeCommandArgAsFloat32(e.x), this._commandBufferEncoder.encodeCommandArgAsFloat32(e.y), this._commandBufferEncoder.encodeCommandArgAsFloat32(e.width), this._commandBufferEncoder.encodeCommandArgAsFloat32(e.height), this._commandBufferEncoder.finishEncodingCommand();\n }\n enableScissor(e, t, i, s) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETSCISSOR), this._commandBufferEncoder.encodeCommandArgAsFloat32(e), this._commandBufferEncoder.encodeCommandArgAsFloat32(t), this._commandBufferEncoder.encodeCommandArgAsFloat32(i), this._commandBufferEncoder.encodeCommandArgAsFloat32(s), this._commandBufferEncoder.finishEncodingCommand();\n }\n disableScissor() {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETSCISSOR), this._commandBufferEncoder.encodeCommandArgAsFloat32(0), this._commandBufferEncoder.encodeCommandArgAsFloat32(0), this._commandBufferEncoder.encodeCommandArgAsFloat32(0), this._commandBufferEncoder.encodeCommandArgAsFloat32(0), this._commandBufferEncoder.finishEncodingCommand();\n }\n setState(e, t = 0, i, s = !1, r, n, o = 0) {\n this._zOffset = t, this._zOffsetUnits = o, this._zOffset !== 0 && J.Warn(\"zOffset is not supported in Native engine.\"), this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETSTATE), this._commandBufferEncoder.encodeCommandArgAsUInt32(e ? 1 : 0), this._commandBufferEncoder.encodeCommandArgAsFloat32(t), this._commandBufferEncoder.encodeCommandArgAsFloat32(o), this._commandBufferEncoder.encodeCommandArgAsUInt32(this.cullBackFaces ?? r ?? !0 ? 1 : 0), this._commandBufferEncoder.encodeCommandArgAsUInt32(s ? 1 : 0), this._commandBufferEncoder.finishEncodingCommand();\n }\n /**\n * Gets the client rect of native canvas. Needed for InputManager.\n * @returns a client rectangle\n */\n getInputElementClientRect() {\n return {\n bottom: this.getRenderHeight(),\n height: this.getRenderHeight(),\n left: 0,\n right: this.getRenderWidth(),\n top: 0,\n width: this.getRenderWidth(),\n x: 0,\n y: 0,\n toJSON: () => {\n }\n };\n }\n /**\n * Set the z offset Factor to apply to current rendering\n * @param value defines the offset to apply\n */\n setZOffset(e) {\n e !== this._zOffset && (this._zOffset = e, this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETZOFFSET), this._commandBufferEncoder.encodeCommandArgAsFloat32(this.useReverseDepthBuffer ? -e : e), this._commandBufferEncoder.finishEncodingCommand());\n }\n /**\n * Gets the current value of the zOffset Factor\n * @returns the current zOffset Factor state\n */\n getZOffset() {\n return this._zOffset;\n }\n /**\n * Set the z offset Units to apply to current rendering\n * @param value defines the offset to apply\n */\n setZOffsetUnits(e) {\n e !== this._zOffsetUnits && (this._zOffsetUnits = e, this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETZOFFSETUNITS), this._commandBufferEncoder.encodeCommandArgAsFloat32(this.useReverseDepthBuffer ? -e : e), this._commandBufferEncoder.finishEncodingCommand());\n }\n /**\n * Gets the current value of the zOffset Units\n * @returns the current zOffset Units state\n */\n getZOffsetUnits() {\n return this._zOffsetUnits;\n }\n /**\n * Enable or disable depth buffering\n * @param enable defines the state to set\n */\n setDepthBuffer(e) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETDEPTHTEST), this._commandBufferEncoder.encodeCommandArgAsUInt32(e ? this._currentDepthTest : _native.Engine.DEPTH_TEST_ALWAYS), this._commandBufferEncoder.finishEncodingCommand();\n }\n /**\n * Gets a boolean indicating if depth writing is enabled\n * @returns the current depth writing state\n */\n getDepthWrite() {\n return this._depthWrite;\n }\n getDepthFunction() {\n switch (this._currentDepthTest) {\n case _native.Engine.DEPTH_TEST_NEVER:\n return 512;\n case _native.Engine.DEPTH_TEST_ALWAYS:\n return 519;\n case _native.Engine.DEPTH_TEST_GREATER:\n return 516;\n case _native.Engine.DEPTH_TEST_GEQUAL:\n return 518;\n case _native.Engine.DEPTH_TEST_NOTEQUAL:\n return 517;\n case _native.Engine.DEPTH_TEST_EQUAL:\n return 514;\n case _native.Engine.DEPTH_TEST_LESS:\n return 513;\n case _native.Engine.DEPTH_TEST_LEQUAL:\n return 515;\n }\n return null;\n }\n setDepthFunction(e) {\n let t = 0;\n switch (e) {\n case 512:\n t = _native.Engine.DEPTH_TEST_NEVER;\n break;\n case 519:\n t = _native.Engine.DEPTH_TEST_ALWAYS;\n break;\n case 516:\n t = _native.Engine.DEPTH_TEST_GREATER;\n break;\n case 518:\n t = _native.Engine.DEPTH_TEST_GEQUAL;\n break;\n case 517:\n t = _native.Engine.DEPTH_TEST_NOTEQUAL;\n break;\n case 514:\n t = _native.Engine.DEPTH_TEST_EQUAL;\n break;\n case 513:\n t = _native.Engine.DEPTH_TEST_LESS;\n break;\n case 515:\n t = _native.Engine.DEPTH_TEST_LEQUAL;\n break;\n }\n this._currentDepthTest = t, this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETDEPTHTEST), this._commandBufferEncoder.encodeCommandArgAsUInt32(this._currentDepthTest), this._commandBufferEncoder.finishEncodingCommand();\n }\n /**\n * Enable or disable depth writing\n * @param enable defines the state to set\n */\n setDepthWrite(e) {\n this._depthWrite = e, this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETDEPTHWRITE), this._commandBufferEncoder.encodeCommandArgAsUInt32(Number(e)), this._commandBufferEncoder.finishEncodingCommand();\n }\n /**\n * Enable or disable color writing\n * @param enable defines the state to set\n */\n setColorWrite(e) {\n this._colorWrite = e, this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETCOLORWRITE), this._commandBufferEncoder.encodeCommandArgAsUInt32(Number(e)), this._commandBufferEncoder.finishEncodingCommand();\n }\n /**\n * Gets a boolean indicating if color writing is enabled\n * @returns the current color writing state\n */\n getColorWrite() {\n return this._colorWrite;\n }\n applyStencil() {\n this._setStencil(this._stencilMask, pB(this._stencilOpStencilFail), _B(this._stencilOpDepthFail), mB(this._stencilOpStencilDepthPass), fB(this._stencilFunc), this._stencilFuncRef);\n }\n _setStencil(e, t, i, s, r, n) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETSTENCIL), this._commandBufferEncoder.encodeCommandArgAsUInt32(e), this._commandBufferEncoder.encodeCommandArgAsUInt32(t), this._commandBufferEncoder.encodeCommandArgAsUInt32(i), this._commandBufferEncoder.encodeCommandArgAsUInt32(s), this._commandBufferEncoder.encodeCommandArgAsUInt32(r), this._commandBufferEncoder.encodeCommandArgAsUInt32(n), this._commandBufferEncoder.finishEncodingCommand();\n }\n /**\n * Enable or disable the stencil buffer\n * @param enable defines if the stencil buffer must be enabled or disabled\n */\n setStencilBuffer(e) {\n this._stencilTest = e, e ? this.applyStencil() : this._setStencil(255, _native.Engine.STENCIL_OP_FAIL_S_KEEP, _native.Engine.STENCIL_OP_FAIL_Z_KEEP, _native.Engine.STENCIL_OP_PASS_Z_KEEP, _native.Engine.STENCIL_TEST_ALWAYS, 0);\n }\n /**\n * Gets a boolean indicating if stencil buffer is enabled\n * @returns the current stencil buffer state\n */\n getStencilBuffer() {\n return this._stencilTest;\n }\n /**\n * Gets the current stencil operation when stencil passes\n * @returns a number defining stencil operation to use when stencil passes\n */\n getStencilOperationPass() {\n return this._stencilOpStencilDepthPass;\n }\n /**\n * Sets the stencil operation to use when stencil passes\n * @param operation defines the stencil operation to use when stencil passes\n */\n setStencilOperationPass(e) {\n this._stencilOpStencilDepthPass = e, this.applyStencil();\n }\n /**\n * Sets the current stencil mask\n * @param mask defines the new stencil mask to use\n */\n setStencilMask(e) {\n this._stencilMask = e, this.applyStencil();\n }\n /**\n * Sets the current stencil function\n * @param stencilFunc defines the new stencil function to use\n */\n setStencilFunction(e) {\n this._stencilFunc = e, this.applyStencil();\n }\n /**\n * Sets the current stencil reference\n * @param reference defines the new stencil reference to use\n */\n setStencilFunctionReference(e) {\n this._stencilFuncRef = e, this.applyStencil();\n }\n /**\n * Sets the current stencil mask\n * @param mask defines the new stencil mask to use\n */\n setStencilFunctionMask(e) {\n this._stencilFuncMask = e;\n }\n /**\n * Sets the stencil operation to use when stencil fails\n * @param operation defines the stencil operation to use when stencil fails\n */\n setStencilOperationFail(e) {\n this._stencilOpStencilFail = e, this.applyStencil();\n }\n /**\n * Sets the stencil operation to use when depth fails\n * @param operation defines the stencil operation to use when depth fails\n */\n setStencilOperationDepthFail(e) {\n this._stencilOpDepthFail = e, this.applyStencil();\n }\n /**\n * Gets the current stencil mask\n * @returns a number defining the new stencil mask to use\n */\n getStencilMask() {\n return this._stencilMask;\n }\n /**\n * Gets the current stencil function\n * @returns a number defining the stencil function to use\n */\n getStencilFunction() {\n return this._stencilFunc;\n }\n /**\n * Gets the current stencil reference value\n * @returns a number defining the stencil reference value to use\n */\n getStencilFunctionReference() {\n return this._stencilFuncRef;\n }\n /**\n * Gets the current stencil mask\n * @returns a number defining the stencil mask to use\n */\n getStencilFunctionMask() {\n return this._stencilFuncMask;\n }\n /**\n * Gets the current stencil operation when stencil fails\n * @returns a number defining stencil operation to use when stencil fails\n */\n getStencilOperationFail() {\n return this._stencilOpStencilFail;\n }\n /**\n * Gets the current stencil operation when depth fails\n * @returns a number defining stencil operation to use when depth fails\n */\n getStencilOperationDepthFail() {\n return this._stencilOpDepthFail;\n }\n /**\n * Sets alpha constants used by some alpha blending modes\n * @param r defines the red component\n * @param g defines the green component\n * @param b defines the blue component\n * @param a defines the alpha component\n */\n setAlphaConstants(e, t, i, s) {\n throw new Error(\"Setting alpha blend constant color not yet implemented.\");\n }\n /**\n * Sets the current alpha mode\n * @param mode defines the mode to use (one of the BABYLON.undefined)\n * @param noDepthWriteChange defines if depth writing state should remains unchanged (false by default)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/advanced/transparent_rendering\n */\n setAlphaMode(e, t = !1) {\n if (this._alphaMode === e)\n return;\n const i = gB(e);\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETBLENDMODE), this._commandBufferEncoder.encodeCommandArgAsUInt32(i), this._commandBufferEncoder.finishEncodingCommand(), t || this.setDepthWrite(e === 0), this._alphaMode = e;\n }\n setInt(e, t) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINT), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsInt32(t), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setIntArray(e, t) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINTARRAY), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsInt32s(t), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setIntArray2(e, t) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINTARRAY2), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsInt32s(t), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setIntArray3(e, t) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINTARRAY3), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsInt32s(t), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setIntArray4(e, t) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINTARRAY4), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsInt32s(t), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setFloatArray(e, t) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOATARRAY), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsFloat32s(t), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setFloatArray2(e, t) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOATARRAY2), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsFloat32s(t), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setFloatArray3(e, t) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOATARRAY3), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsFloat32s(t), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setFloatArray4(e, t) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOATARRAY4), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsFloat32s(t), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setArray(e, t) {\n return e ? this.setFloatArray(e, new Float32Array(t)) : !1;\n }\n setArray2(e, t) {\n return e ? this.setFloatArray2(e, new Float32Array(t)) : !1;\n }\n setArray3(e, t) {\n return e ? this.setFloatArray3(e, new Float32Array(t)) : !1;\n }\n setArray4(e, t) {\n return e ? this.setFloatArray4(e, new Float32Array(t)) : !1;\n }\n setMatrices(e, t) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETMATRICES), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsFloat32s(t), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setMatrix3x3(e, t) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETMATRIX3X3), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsFloat32s(t), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setMatrix2x2(e, t) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETMATRIX2X2), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsFloat32s(t), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setFloat(e, t) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOAT), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsFloat32(t), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setFloat2(e, t, i) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOAT2), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsFloat32(t), this._commandBufferEncoder.encodeCommandArgAsFloat32(i), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setFloat3(e, t, i, s) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOAT3), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsFloat32(t), this._commandBufferEncoder.encodeCommandArgAsFloat32(i), this._commandBufferEncoder.encodeCommandArgAsFloat32(s), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setFloat4(e, t, i, s, r) {\n return e ? (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOAT4), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsFloat32(t), this._commandBufferEncoder.encodeCommandArgAsFloat32(i), this._commandBufferEncoder.encodeCommandArgAsFloat32(s), this._commandBufferEncoder.encodeCommandArgAsFloat32(r), this._commandBufferEncoder.finishEncodingCommand(), !0) : !1;\n }\n setColor3(e, t) {\n return e ? (this.setFloat3(e, t.r, t.g, t.b), !0) : !1;\n }\n setColor4(e, t, i) {\n return e ? (this.setFloat4(e, t.r, t.g, t.b, i), !0) : !1;\n }\n wipeCaches(e) {\n this.preventCacheWipeBetweenFrames || (this.resetTextureCache(), this._currentEffect = null, e && (this._currentProgram = null, this._stencilStateComposer.reset(), this._depthCullingState.reset(), this._alphaState.reset()), this._cachedVertexBuffers = null, this._cachedIndexBuffer = null, this._cachedEffectForVertexBuffers = null);\n }\n _createTexture() {\n return this._engine.createTexture();\n }\n _deleteTexture(e) {\n e && this._engine.deleteTexture(e.underlyingResource);\n }\n /**\n * Update the content of a dynamic texture\n * @param texture defines the texture to update\n * @param canvas defines the canvas containing the source\n * @param invertY defines if data must be stored with Y axis inverted\n * @param premulAlpha defines if alpha is stored as premultiplied\n * @param format defines the format of the data\n */\n updateDynamicTexture(e, t, i, s = !1, r) {\n if (s === void 0 && (s = !1), e && e._hardwareTexture) {\n const n = t.getCanvasTexture(), o = e._hardwareTexture.underlyingResource;\n this._engine.copyTexture(o, n), e.isReady = !0;\n }\n }\n createDynamicTexture(e, t, i, s) {\n return e = Math.max(e, 1), t = Math.max(t, 1), this.createRawTexture(new Uint8Array(e * t * 4), e, t, 5, !1, !1, s);\n }\n createVideoElement(e) {\n return this._camera ? this._camera.createVideo(e) : null;\n }\n updateVideoTexture(e, t, i) {\n if (e && e._hardwareTexture && this._camera) {\n const s = e._hardwareTexture.underlyingResource;\n this._camera.updateVideoTexture(s, t, i);\n }\n }\n createRawTexture(e, t, i, s, r, n, o, l = null, h = 0, c = 0, u = !1) {\n const d = new Nt(\n this,\n 3\n /* InternalTextureSource.Raw */\n );\n if (d.format = s, d.generateMipMaps = r, d.samplingMode = o, d.invertY = n, d.baseWidth = t, d.baseHeight = i, d.width = d.baseWidth, d.height = d.baseHeight, d._compression = l, d.type = h, d._useSRGBBuffer = this._getUseSRGBBuffer(u, !r), this.updateRawTexture(d, e, s, n, l, h, d._useSRGBBuffer), d._hardwareTexture) {\n const f = d._hardwareTexture.underlyingResource, p = Yc(o);\n this._setTextureSampling(f, p);\n }\n return this._internalTexturesCache.push(d), d;\n }\n createRawTexture2DArray(e, t, i, s, r, n, o, l, h = null, c = 0) {\n const u = new Nt(\n this,\n 11\n /* InternalTextureSource.Raw2DArray */\n );\n if (u.baseWidth = t, u.baseHeight = i, u.baseDepth = s, u.width = t, u.height = i, u.depth = s, u.format = r, u.type = c, u.generateMipMaps = n, u.samplingMode = l, u.is2DArray = !0, u._hardwareTexture) {\n const d = u._hardwareTexture.underlyingResource;\n this._engine.loadRawTexture2DArray(d, e, t, i, s, jm(r, c), n, o);\n const f = Yc(l);\n this._setTextureSampling(d, f);\n }\n return u.isReady = !0, this._internalTexturesCache.push(u), u;\n }\n updateRawTexture(e, t, i, s, r = null, n = 0, o = !1) {\n if (e) {\n if (t && e._hardwareTexture) {\n const l = e._hardwareTexture.underlyingResource;\n this._engine.loadRawTexture(l, t, e.width, e.height, jm(i, n), e.generateMipMaps, e.invertY);\n }\n e.isReady = !0;\n }\n }\n // TODO: Refactor to share more logic with babylon.engine.ts version.\n /**\n * Usually called from Texture.ts.\n * Passed information to create a NativeTexture\n * @param url defines a value which contains one of the following:\n * * A conventional http URL, e.g. 'http://...' or 'file://...'\n * * A base64 string of in-line texture data, e.g. 'data:image/jpg;base64,/...'\n * * An indicator that data being passed using the buffer parameter, e.g. 'data:mytexture.jpg'\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated. Ignored for compressed textures. They must be in the file\n * @param invertY when true, image is flipped when loaded. You probably want true. Certain compressed textures may invert this if their default is inverted (eg. ktx)\n * @param scene needed for loading to the correct scene\n * @param samplingMode mode with should be used sample / access the texture (Default: Texture.TRILINEAR_SAMPLINGMODE)\n * @param onLoad optional callback to be called upon successful completion\n * @param onError optional callback to be called upon failure\n * @param buffer a source of a file previously fetched as either a base64 string, an ArrayBuffer (compressed or image format), HTMLImageElement (image format), or a Blob\n * @param fallback an internal argument in case the function must be called again, due to etc1 not having alpha capabilities\n * @param format internal format. Default: RGB when extension is '.jpg' else RGBA. Ignored for compressed textures\n * @param forcedExtension defines the extension to use to pick the right loader\n * @param mimeType defines an optional mime type\n * @param loaderOptions options to be passed to the loader\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns a InternalTexture for assignment back into BABYLON.Texture\n */\n createTexture(e, t, i, s, r = 3, n = null, o = null, l = null, h = null, c = null, u = null, d, f, p, _ = !1) {\n e = e || \"\";\n const m = e.substr(0, 5) === \"data:\", x = m && e.indexOf(\";base64,\") !== -1, v = h || new Nt(\n this,\n 1\n /* InternalTextureSource.Url */\n ), T = e;\n this._transformTextureUrl && !x && !h && !l && (e = this._transformTextureUrl(e));\n const E = e.lastIndexOf(\".\"), b = u || (E > -1 ? e.substring(E).toLowerCase() : \"\");\n let S = null;\n for (const N of we._TextureLoaders)\n if (N.canLoad(b)) {\n S = N;\n break;\n }\n s && s.addPendingData(v), v.url = e, v.generateMipMaps = !t, v.samplingMode = r, v.invertY = i, v._useSRGBBuffer = this._getUseSRGBBuffer(_, t), this.doNotHandleContextLost || (v._buffer = l);\n let C = null;\n n && !h && (C = v.onLoadedObservable.add(n)), h || this._internalTexturesCache.push(v);\n const P = (N, F) => {\n s && s.removePendingData(v), e === T ? (C && v.onLoadedObservable.remove(C), Me.UseFallbackTexture && this.createTexture(Me.FallbackTexture, t, v.invertY, s, r, null, o, l, v), o && o((N || \"Unknown error\") + (Me.UseFallbackTexture ? \" - Fallback texture was used\" : \"\"), F)) : (L.Warn(`Failed to load ${e}, falling back to ${T}`), this.createTexture(T, t, v.invertY, s, r, n, o, l, v, c, u, d, f));\n };\n if (S)\n throw new Error(\"Loading textures from IInternalTextureLoader not yet implemented.\");\n {\n const N = (F) => {\n if (!v._hardwareTexture) {\n s && s.removePendingData(v);\n return;\n }\n const $ = v._hardwareTexture.underlyingResource;\n this._engine.loadTexture($, F, !t, i, v._useSRGBBuffer, () => {\n v.baseWidth = this._engine.getTextureWidth($), v.baseHeight = this._engine.getTextureHeight($), v.width = v.baseWidth, v.height = v.baseHeight, v.isReady = !0;\n const j = Yc(r);\n this._setTextureSampling($, j), s && s.removePendingData(v), v.onLoadedObservable.notifyObservers(v), v.onLoadedObservable.clear();\n }, () => {\n throw new Error(\"Could not load a native texture.\");\n });\n };\n if (m && l)\n if (l instanceof ArrayBuffer)\n N(new Uint8Array(l));\n else if (ArrayBuffer.isView(l))\n N(l);\n else if (typeof l == \"string\")\n N(new Uint8Array(J.DecodeBase64(l)));\n else\n throw new Error(\"Unsupported buffer type\");\n else\n x ? N(new Uint8Array(J.DecodeBase64(e))) : this._loadFile(e, (F) => N(new Uint8Array(F)), void 0, void 0, !0, (F, $) => {\n P(\"Unable to load \" + (F && F.responseURL, $));\n });\n }\n return v;\n }\n /**\n * Wraps an external native texture in a Babylon texture.\n * @param texture defines the external texture\n * @param hasMipMaps defines whether the external texture has mip maps\n * @param samplingMode defines the sampling mode for the external texture (default: 3)\n * @returns the babylon internal texture\n */\n wrapNativeTexture(e, t = !1, i = 3) {\n const s = new dE(e, this._engine), r = new Nt(this, 0, !0);\n return r._hardwareTexture = s, r.baseWidth = this._engine.getTextureWidth(e), r.baseHeight = this._engine.getTextureHeight(e), r.width = r.baseWidth, r.height = r.baseHeight, r.isReady = !0, r.useMipMaps = t, this.updateTextureSamplingMode(i, r), r;\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Wraps an external web gl texture in a Babylon texture.\n * @returns the babylon internal texture\n */\n wrapWebGLTexture() {\n throw new Error(\"wrapWebGLTexture is not supported, use wrapNativeTexture instead.\");\n }\n _createDepthStencilTexture(e, t, i) {\n const s = t.generateStencil || !1, r = t.samples || 1, n = i, o = new Nt(\n this,\n 12\n /* InternalTextureSource.DepthStencil */\n ), l = e.width ?? e, h = e.height ?? e, c = this._engine.createFrameBuffer(o._hardwareTexture.underlyingResource, l, h, s, !0, r);\n return n._framebufferDepthStencil = c, o;\n }\n /**\n * @internal\n */\n _releaseFramebufferObjects(e) {\n e && (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEFRAMEBUFFER), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.finishEncodingCommand());\n }\n /**\n * @internal Engine abstraction for loading and creating an image bitmap from a given source string.\n * @param imageSource source to load the image from.\n * @param options An object that sets options for the image's extraction.\n * @returns ImageBitmap\n */\n _createImageBitmapFromSource(e, t) {\n return new Promise((s, r) => {\n const n = this.createCanvasImage();\n n.onload = () => {\n try {\n const o = this._engine.createImageBitmap(n);\n s(o);\n } catch (o) {\n r(`Error loading image ${n.src} with exception: ${o}`);\n }\n }, n.onerror = (o) => {\n r(`Error loading image ${n.src} with exception: ${o}`);\n }, n.src = e;\n });\n }\n /**\n * Engine abstraction for createImageBitmap\n * @param image source for image\n * @param options An object that sets options for the image's extraction.\n * @returns ImageBitmap\n */\n createImageBitmap(e, t) {\n return new Promise((i, s) => {\n if (Array.isArray(e)) {\n const r = e;\n if (r.length) {\n const n = this._engine.createImageBitmap(r[0]);\n if (n) {\n i(n);\n return;\n }\n }\n }\n s(\"Unsupported data for createImageBitmap.\");\n });\n }\n /**\n * Resize an image and returns the image data as an uint8array\n * @param image image to resize\n * @param bufferWidth destination buffer width\n * @param bufferHeight destination buffer height\n * @returns an uint8array containing RGBA values of bufferWidth * bufferHeight size\n */\n resizeImageBitmap(e, t, i) {\n return this._engine.resizeImageBitmap(e, t, i);\n }\n /**\n * Creates a cube texture\n * @param rootUrl defines the url where the files to load is located\n * @param scene defines the current scene\n * @param files defines the list of files to load (1 per face)\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated (false by default)\n * @param onLoad defines an optional callback raised when the texture is loaded\n * @param onError defines an optional callback raised if there is an issue to load the texture\n * @param format defines the format of the data\n * @param forcedExtension defines the extension to use to pick the right loader\n * @param createPolynomials if a polynomial sphere should be created for the cube texture\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\n * @param fallback defines texture to use while falling back when (compressed) texture file not found.\n * @param loaderOptions options to be passed to the loader\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @param buffer defines the data buffer to load instead of loading the rootUrl\n * @returns the cube texture as an InternalTexture\n */\n createCubeTexture(e, t, i, s, r = null, n = null, o, l = null, h = !1, c = 0, u = 0, d = null, f, p = !1, _ = null) {\n const m = d || new Nt(\n this,\n 7\n /* InternalTextureSource.Cube */\n );\n m.isCube = !0, m.url = e, m.generateMipMaps = !s, m._lodGenerationScale = c, m._lodGenerationOffset = u, m._useSRGBBuffer = this._getUseSRGBBuffer(p, !!s), this._doNotHandleContextLost || (m._extension = l, m._files = i, m._buffer = _);\n const x = e.lastIndexOf(\".\");\n if ((l || (x > -1 ? e.substring(x).toLowerCase() : \"\")) === \".env\") {\n const T = (E) => {\n const b = xv(E);\n m.width = b.width, m.height = b.width, Tv(m, b);\n const S = b.specular;\n if (!S)\n throw new Error(\"Nothing else parsed so far\");\n m._lodGenerationScale = S.lodGenerationScale;\n const C = vv(E, b);\n m.format = 5, m.type = 0, m.generateMipMaps = !0, m.getEngine().updateTextureSamplingMode(X.TRILINEAR_SAMPLINGMODE, m), m._isRGBD = !0, m.invertY = !0, this._engine.loadCubeTextureWithMips(m._hardwareTexture.underlyingResource, C, !1, m._useSRGBBuffer, () => {\n m.isReady = !0, r && r();\n }, () => {\n throw new Error(\"Could not load a native cube texture.\");\n });\n };\n if (_)\n T(_);\n else {\n if (i && i.length === 6)\n throw new Error(\"Multi-file loading not allowed on env files.\");\n {\n const E = (b, S) => {\n n && b && n(b.status + \" \" + b.statusText, S);\n };\n this._loadFile(e, (b) => {\n T(new Uint8Array(b, 0, b.byteLength));\n }, void 0, void 0, !0, E);\n }\n }\n } else {\n if (!i || i.length !== 6)\n throw new Error(\"Cannot load cubemap because 6 files were not defined\");\n const T = [i[0], i[3], i[1], i[4], i[2], i[5]];\n Promise.all(T.map((E) => this._loadFileAsync(E, void 0, !0).then((b) => new Uint8Array(b, 0, b.byteLength)))).then((E) => new Promise((b, S) => {\n this._engine.loadCubeTexture(m._hardwareTexture.underlyingResource, E, !s, !0, m._useSRGBBuffer, b, S);\n })).then(() => {\n m.isReady = !0, r && r();\n }, (E) => {\n n && n(`Failed to load cubemap: ${E.message}`, E);\n });\n }\n return this._internalTexturesCache.push(m), m;\n }\n /** @internal */\n _createHardwareTexture() {\n return new dE(this._createTexture(), this._engine);\n }\n /** @internal */\n _createHardwareRenderTargetWrapper(e, t, i) {\n const s = new dB(e, t, i, this);\n return this._renderTargetWrapperCache.push(s), s;\n }\n /** @internal */\n _createInternalTexture(e, t, i = !0, s = 0) {\n let r = !1, n = 0, o = 3, l = 5, h = !1, c = 1, u;\n t !== void 0 && typeof t == \"object\" ? (r = !!t.generateMipMaps, n = t.type === void 0 ? 0 : t.type, o = t.samplingMode === void 0 ? 3 : t.samplingMode, l = t.format === void 0 ? 5 : t.format, h = t.useSRGBBuffer === void 0 ? !1 : t.useSRGBBuffer, c = t.samples ?? 1, u = t.label) : r = !!t, h = this._getUseSRGBBuffer(h, !r), (n === 1 && !this._caps.textureFloatLinearFiltering || n === 2 && !this._caps.textureHalfFloatLinearFiltering) && (o = 1), n === 1 && !this._caps.textureFloat && (n = 0, L.Warn(\"Float textures are not supported. Type forced to TEXTURETYPE_UNSIGNED_BYTE\"));\n const d = new Nt(this, s), f = e.width ?? e, p = e.height ?? e, _ = e.layers || 0;\n if (_ !== 0)\n throw new Error(\"Texture layers are not supported in Babylon Native\");\n const m = d._hardwareTexture.underlyingResource, x = jm(l, n);\n return this._engine.initializeTexture(m, f, p, r, x, !0, h, c), this._setTextureSampling(m, Yc(o)), d._useSRGBBuffer = h, d.baseWidth = f, d.baseHeight = p, d.width = f, d.height = p, d.depth = _, d.isReady = !0, d.samples = c, d.generateMipMaps = r, d.samplingMode = o, d.type = n, d.format = l, d.label = u, this._internalTexturesCache.push(d), d;\n }\n createRenderTargetTexture(e, t) {\n const i = this._createHardwareRenderTargetWrapper(!1, !1, e);\n let s = !0, r = !1, n = !1, o, l = 1;\n t !== void 0 && typeof t == \"object\" && (s = t.generateDepthBuffer ?? !0, r = !!t.generateStencilBuffer, n = !!t.noColorAttachment, o = t.colorAttachment, l = t.samples ?? 1);\n const h = o || (n ? null : this._createInternalTexture(\n e,\n t,\n !0,\n 5\n /* InternalTextureSource.RenderTarget */\n )), c = e.width ?? e, u = e.height ?? e, d = this._engine.createFrameBuffer(h ? h._hardwareTexture.underlyingResource : null, c, u, r, s, l);\n return i._framebuffer = d, i._generateDepthBuffer = s, i._generateStencilBuffer = r, i._samples = l, i.setTextures(h), i;\n }\n updateRenderTargetTextureSampleCount(e, t) {\n return L.Warn(\"Updating render target sample count is not currently supported\"), e.samples;\n }\n updateTextureSamplingMode(e, t) {\n if (t._hardwareTexture) {\n const i = Yc(e);\n this._setTextureSampling(t._hardwareTexture.underlyingResource, i);\n }\n t.samplingMode = e;\n }\n bindFramebuffer(e, t, i, s, r) {\n const n = e;\n if (this._currentRenderTarget && this.unBindFramebuffer(this._currentRenderTarget), this._currentRenderTarget = e, t)\n throw new Error(\"Cuboid frame buffers are not yet supported in NativeEngine.\");\n if (i || s)\n throw new Error(\"Required width/height for frame buffers not yet supported in NativeEngine.\");\n n._framebufferDepthStencil ? this._bindUnboundFramebuffer(n._framebufferDepthStencil) : this._bindUnboundFramebuffer(n._framebuffer);\n }\n unBindFramebuffer(e, t = !1, i) {\n this._currentRenderTarget = null, i && i(), this._bindUnboundFramebuffer(null);\n }\n createDynamicVertexBuffer(e) {\n return this.createVertexBuffer(e, !0);\n }\n updateDynamicIndexBuffer(e, t, i = 0) {\n const s = e, r = this._normalizeIndexData(t);\n s.is32Bits = r.BYTES_PER_ELEMENT === 4, this._engine.updateDynamicIndexBuffer(s.nativeIndexBuffer, r.buffer, r.byteOffset, r.byteLength, i);\n }\n updateDynamicVertexBuffer(e, t, i = 0, s) {\n const r = e, n = t instanceof Array ? new Float32Array(t) : t instanceof ArrayBuffer ? new Uint8Array(t) : t, o = new Uint8Array(n.buffer, n.byteOffset, s ?? n.byteLength);\n this._engine.updateDynamicVertexBuffer(r.nativeVertexBuffer, o.buffer, o.byteOffset, o.byteLength, i);\n }\n // TODO: Refactor to share more logic with base Engine implementation.\n /**\n * @internal\n */\n _setTexture(e, t, i = !1, s = !1) {\n const r = this._boundUniforms[e];\n if (!r)\n return !1;\n if (!t)\n return this._boundTexturesCache[e] != null && (this._activeChannel = e, this._boundTexturesCache[e] = null, this._unsetNativeTexture(r)), !1;\n if (t.video)\n this._activeChannel = e, t.update();\n else if (t.delayLoadState === 4)\n return t.delayLoad(), !1;\n let n;\n return s ? n = t.depthStencilTexture : t.isReady() ? n = t.getInternalTexture() : t.isCube ? n = this.emptyCubeTexture : t.is3D ? n = this.emptyTexture3D : t.is2DArray ? n = this.emptyTexture2DArray : n = this.emptyTexture, this._activeChannel = e, !n || !n._hardwareTexture ? !1 : (this._setTextureWrapMode(n._hardwareTexture.underlyingResource, Km(t.wrapU), Km(t.wrapV), Km(t.wrapR)), this._updateAnisotropicLevel(t), this._setNativeTexture(r, n._hardwareTexture.underlyingResource), !0);\n }\n // filter is a NativeFilter.XXXX value.\n _setTextureSampling(e, t) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETTEXTURESAMPLING), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsUInt32(t), this._commandBufferEncoder.finishEncodingCommand();\n }\n // addressModes are NativeAddressMode.XXXX values.\n _setTextureWrapMode(e, t, i, s) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETTEXTUREWRAPMODE), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsUInt32(t), this._commandBufferEncoder.encodeCommandArgAsUInt32(i), this._commandBufferEncoder.encodeCommandArgAsUInt32(s), this._commandBufferEncoder.finishEncodingCommand();\n }\n _setNativeTexture(e, t) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETTEXTURE), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.encodeCommandArgAsNativeData(t), this._commandBufferEncoder.finishEncodingCommand();\n }\n _unsetNativeTexture(e) {\n _native.Engine.COMMAND_UNSETTEXTURE && (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_UNSETTEXTURE), this._commandBufferEncoder.encodeCommandArgAsNativeData(e), this._commandBufferEncoder.finishEncodingCommand());\n }\n // TODO: Share more of this logic with the base implementation.\n // TODO: Rename to match naming in base implementation once refactoring allows different parameters.\n _updateAnisotropicLevel(e) {\n const t = e.getInternalTexture(), i = e.anisotropicFilteringLevel;\n !t || !t._hardwareTexture || t._cachedAnisotropicFilteringLevel !== i && (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETTEXTUREANISOTROPICLEVEL), this._commandBufferEncoder.encodeCommandArgAsNativeData(t._hardwareTexture.underlyingResource), this._commandBufferEncoder.encodeCommandArgAsUInt32(i), this._commandBufferEncoder.finishEncodingCommand(), t._cachedAnisotropicFilteringLevel = i);\n }\n /**\n * @internal\n */\n _bindTexture(e, t) {\n const i = this._boundUniforms[e];\n if (i)\n if (t && t._hardwareTexture) {\n const s = t._hardwareTexture.underlyingResource;\n this._setNativeTexture(i, s);\n } else\n this._unsetNativeTexture(i);\n }\n /**\n * Unbind all textures\n */\n unbindAllTextures() {\n _native.Engine.COMMAND_DISCARDALLTEXTURES && (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DISCARDALLTEXTURES), this._commandBufferEncoder.finishEncodingCommand());\n }\n _deleteBuffer(e) {\n e.nativeIndexBuffer && (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEINDEXBUFFER), this._commandBufferEncoder.encodeCommandArgAsNativeData(e.nativeIndexBuffer), this._commandBufferEncoder.finishEncodingCommand(), delete e.nativeIndexBuffer), e.nativeVertexBuffer && (this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEVERTEXBUFFER), this._commandBufferEncoder.encodeCommandArgAsNativeData(e.nativeVertexBuffer), this._commandBufferEncoder.finishEncodingCommand(), delete e.nativeVertexBuffer);\n }\n /**\n * Create a canvas\n * @param width width\n * @param height height\n * @returns ICanvas interface\n */\n createCanvas(e, t) {\n if (!_native.Canvas)\n throw new Error(\"Native Canvas plugin not available.\");\n const i = new _native.Canvas();\n return i.width = e, i.height = t, i;\n }\n /**\n * Create an image to use with canvas\n * @returns IImage interface\n */\n createCanvasImage() {\n if (!_native.Canvas)\n throw new Error(\"Native Canvas plugin not available.\");\n return new _native.Image();\n }\n /**\n * Update a portion of an internal texture\n * @param texture defines the texture to update\n * @param imageData defines the data to store into the texture\n * @param xOffset defines the x coordinates of the update rectangle\n * @param yOffset defines the y coordinates of the update rectangle\n * @param width defines the width of the update rectangle\n * @param height defines the height of the update rectangle\n * @param faceIndex defines the face index if texture is a cube (0 by default)\n * @param lod defines the lod level to update (0 by default)\n * @param generateMipMaps defines whether to generate mipmaps or not\n */\n updateTextureData(e, t, i, s, r, n, o = 0, l = 0, h = !1) {\n throw new Error(\"updateTextureData not implemented.\");\n }\n /**\n * @internal\n */\n _uploadCompressedDataToTextureDirectly(e, t, i, s, r, n = 0, o = 0) {\n throw new Error(\"_uploadCompressedDataToTextureDirectly not implemented.\");\n }\n /**\n * @internal\n */\n _uploadDataToTextureDirectly(e, t, i = 0, s = 0) {\n throw new Error(\"_uploadDataToTextureDirectly not implemented.\");\n }\n /**\n * @internal\n */\n _uploadArrayBufferViewToTexture(e, t, i = 0, s = 0) {\n throw new Error(\"_uploadArrayBufferViewToTexture not implemented.\");\n }\n /**\n * @internal\n */\n _uploadImageToTexture(e, t, i = 0, s = 0) {\n throw new Error(\"_uploadArrayBufferViewToTexture not implemented.\");\n }\n getFontOffset(e) {\n return { ascent: 0, height: 0, descent: 0 };\n }\n /**\n * No equivalent for native. Do nothing.\n */\n flushFramebuffer() {\n }\n _readTexturePixels(e, t, i, s, r, n, o, l, h, c) {\n var u;\n if (s !== void 0 && s !== -1)\n throw new Error(`Reading cubemap faces is not supported, but faceIndex is ${s}.`);\n return this._engine.readTexture((u = e._hardwareTexture) == null ? void 0 : u.underlyingResource, r ?? 0, h ?? 0, c ?? 0, t, i, (n == null ? void 0 : n.buffer) ?? null, (n == null ? void 0 : n.byteOffset) ?? 0, (n == null ? void 0 : n.byteLength) ?? 0).then((d) => (n || (n = new Uint8Array(d)), n));\n }\n}\nJh.PROTOCOL_VERSION = 8;\nJh._createNativeDataStream = function() {\n return _native.NativeDataStream.VALIDATION_ENABLED ? new EB() : new Pl();\n};\nclass EB extends Pl {\n constructor() {\n super();\n }\n writeUint32(e) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_UINT_32), super.writeUint32(e);\n }\n writeInt32(e) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_INT_32), super.writeInt32(e);\n }\n writeFloat32(e) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_FLOAT_32), super.writeFloat32(e);\n }\n writeUint32Array(e) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_UINT_32_ARRAY), super.writeUint32Array(e);\n }\n writeInt32Array(e) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_INT_32_ARRAY), super.writeInt32Array(e);\n }\n writeFloat32Array(e) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_FLOAT_32_ARRAY), super.writeFloat32Array(e);\n }\n writeNativeData(e) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_NATIVE_DATA), super.writeNativeData(e);\n }\n writeBoolean(e) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_BOOLEAN), super.writeBoolean(e);\n }\n}\nit.prototype.setAlphaMode = function(a, e = !1) {\n if (this._alphaMode === a && (a === 0 && !this._alphaState.alphaBlend || a !== 0 && this._alphaState.alphaBlend)) {\n if (!e) {\n const t = a === 0;\n this.depthCullingState.depthMask !== t && (this.setDepthWrite(t), this._cacheRenderPipeline.setDepthWriteEnabled(t));\n }\n return;\n }\n switch (a) {\n case 0:\n this._alphaState.alphaBlend = !1;\n break;\n case 7:\n this._alphaState.setAlphaBlendFunctionParameters(1, 771, 1, 1), this._alphaState.alphaBlend = !0;\n break;\n case 8:\n this._alphaState.setAlphaBlendFunctionParameters(1, 771, 1, 771), this._alphaState.alphaBlend = !0;\n break;\n case 2:\n this._alphaState.setAlphaBlendFunctionParameters(770, 771, 1, 1), this._alphaState.alphaBlend = !0;\n break;\n case 6:\n this._alphaState.setAlphaBlendFunctionParameters(1, 1, 0, 1), this._alphaState.alphaBlend = !0;\n break;\n case 1:\n this._alphaState.setAlphaBlendFunctionParameters(770, 1, 0, 1), this._alphaState.alphaBlend = !0;\n break;\n case 3:\n this._alphaState.setAlphaBlendFunctionParameters(0, 769, 1, 1), this._alphaState.alphaBlend = !0;\n break;\n case 4:\n this._alphaState.setAlphaBlendFunctionParameters(774, 0, 1, 1), this._alphaState.alphaBlend = !0;\n break;\n case 5:\n this._alphaState.setAlphaBlendFunctionParameters(770, 769, 1, 1), this._alphaState.alphaBlend = !0;\n break;\n case 9:\n this._alphaState.setAlphaBlendFunctionParameters(32769, 32770, 32771, 32772), this._alphaState.alphaBlend = !0;\n break;\n case 10:\n this._alphaState.setAlphaBlendFunctionParameters(1, 769, 1, 771), this._alphaState.alphaBlend = !0;\n break;\n case 11:\n this._alphaState.setAlphaBlendFunctionParameters(1, 1, 1, 1), this._alphaState.alphaBlend = !0;\n break;\n case 12:\n this._alphaState.setAlphaBlendFunctionParameters(772, 1, 0, 0), this._alphaState.alphaBlend = !0;\n break;\n case 13:\n this._alphaState.setAlphaBlendFunctionParameters(775, 769, 773, 771), this._alphaState.alphaBlend = !0;\n break;\n case 14:\n this._alphaState.setAlphaBlendFunctionParameters(1, 771, 1, 771), this._alphaState.alphaBlend = !0;\n break;\n case 15:\n this._alphaState.setAlphaBlendFunctionParameters(1, 1, 1, 0), this._alphaState.alphaBlend = !0;\n break;\n case 16:\n this._alphaState.setAlphaBlendFunctionParameters(775, 769, 0, 1), this._alphaState.alphaBlend = !0;\n break;\n case 17:\n this._alphaState.setAlphaBlendFunctionParameters(770, 771, 1, 771), this._alphaState.alphaBlend = !0;\n break;\n }\n e || (this.setDepthWrite(a === 0), this._cacheRenderPipeline.setDepthWriteEnabled(a === 0)), this._alphaMode = a, this._cacheRenderPipeline.setAlphaBlendEnabled(this._alphaState.alphaBlend), this._cacheRenderPipeline.setAlphaBlendFactors(this._alphaState._blendFunctionParameters, this._alphaState._blendEquationParameters);\n};\nit.prototype.setAlphaEquation = function(a) {\n we.prototype.setAlphaEquation.call(this, a), this._cacheRenderPipeline.setAlphaBlendFactors(this._alphaState._blendFunctionParameters, this._alphaState._blendEquationParameters);\n};\nclass j_ {\n getBindGroups(e, t, i) {\n if (!i)\n throw new Error(\"WebGPUComputeContext.getBindGroups: bindingsMapping is required until browsers support reflection for wgsl shaders!\");\n if (this._bindGroups.length === 0) {\n const s = this._bindGroupEntries.length > 0;\n for (const r in e) {\n const n = e[r], o = i[r], l = o.group, h = o.binding, c = n.type, u = n.object;\n let d = n.indexInGroupEntries, f = this._bindGroupEntries[l];\n switch (f || (f = this._bindGroupEntries[l] = []), c) {\n case 5: {\n const p = u;\n d !== void 0 && s ? f[d].resource = this._cacheSampler.getSampler(p) : (n.indexInGroupEntries = f.length, f.push({\n binding: h,\n resource: this._cacheSampler.getSampler(p)\n }));\n break;\n }\n case 0:\n case 4: {\n const p = u, _ = p._texture._hardwareTexture;\n d !== void 0 && s ? (c === 0 && (f[d++].resource = this._cacheSampler.getSampler(p._texture)), f[d].resource = _.view) : (n.indexInGroupEntries = f.length, c === 0 && f.push({\n binding: h - 1,\n resource: this._cacheSampler.getSampler(p._texture)\n }), f.push({\n binding: h,\n resource: _.view\n }));\n break;\n }\n case 1: {\n const p = u, _ = p._texture._hardwareTexture;\n _.textureAdditionalUsages & 8 || L.Error(`computeDispatch: The texture (name=${p.name}, uniqueId=${p.uniqueId}) is not a storage texture!`, 50), d !== void 0 && s ? f[d].resource = _.viewForWriting : (n.indexInGroupEntries = f.length, f.push({\n binding: h,\n resource: _.viewForWriting\n }));\n break;\n }\n case 6: {\n const _ = u.underlyingResource;\n d !== void 0 && s ? f[d].resource = this._device.importExternalTexture({ source: _ }) : (n.indexInGroupEntries = f.length, f.push({\n binding: h,\n resource: this._device.importExternalTexture({ source: _ })\n }));\n break;\n }\n case 2:\n case 3:\n case 7: {\n const p = c === 7 ? u : u.getBuffer(), _ = p.underlyingResource;\n d !== void 0 && s ? (f[d].resource.buffer = _, f[d].resource.size = p.capacity) : (n.indexInGroupEntries = f.length, f.push({\n binding: h,\n resource: {\n buffer: _,\n offset: 0,\n size: p.capacity\n }\n }));\n break;\n }\n }\n }\n for (let r = 0; r < this._bindGroupEntries.length; ++r) {\n const n = this._bindGroupEntries[r];\n if (!n) {\n this._bindGroups[r] = void 0;\n continue;\n }\n this._bindGroups[r] = this._device.createBindGroup({\n layout: t.getBindGroupLayout(r),\n entries: n\n });\n }\n this._bindGroups.length = this._bindGroupEntries.length;\n }\n return this._bindGroups;\n }\n constructor(e, t) {\n this._device = e, this._cacheSampler = t, this.uniqueId = j_._Counter++, this._bindGroupEntries = [], this.clear();\n }\n clear() {\n this._bindGroups = [];\n }\n}\nj_._Counter = 0;\nclass yB {\n get isAsync() {\n return !1;\n }\n get isReady() {\n return this.isAsync, !1;\n }\n constructor(e) {\n this._name = \"unnamed\", this.engine = e;\n }\n _getComputeShaderCode() {\n var e;\n return (e = this.sources) == null ? void 0 : e.compute;\n }\n dispose() {\n }\n}\nconst pE = {};\nit.prototype.createComputeContext = function() {\n return new j_(this._device, this._cacheSampler);\n};\nit.prototype.createComputeEffect = function(a, e) {\n const i = (typeof a == \"string\" ? a : a.computeToken || a.computeSource || a.computeElement || a.compute) + \"@\" + e.defines;\n if (this._compiledComputeEffects[i]) {\n const r = this._compiledComputeEffects[i];\n return e.onCompiled && r.isReady() && e.onCompiled(r), r;\n }\n const s = new qh(a, e, this, i);\n return this._compiledComputeEffects[i] = s, s;\n};\nit.prototype.createComputePipelineContext = function() {\n return new yB(this);\n};\nit.prototype.areAllComputeEffectsReady = function() {\n for (const a in this._compiledComputeEffects)\n if (!this._compiledComputeEffects[a].isReady())\n return !1;\n return !0;\n};\nit.prototype.computeDispatch = function(a, e, t, i, s = 1, r = 1, n, o) {\n this._computeDispatch(a, e, t, i, s, r, void 0, void 0, n, o);\n};\nit.prototype.computeDispatchIndirect = function(a, e, t, i, s = 0, r, n) {\n this._computeDispatch(a, e, t, void 0, void 0, void 0, i, s, r, n);\n};\nit.prototype._computeDispatch = function(a, e, t, i, s, r, n, o, l, h) {\n this._endCurrentRenderPass();\n const c = a._pipelineContext, u = e;\n c.computePipeline || (c.computePipeline = this._device.createComputePipeline({\n layout: \"auto\",\n compute: c.stage\n })), h && this._timestampQuery.startPass(pE, this._timestampIndex);\n const d = this._renderEncoder.beginComputePass(pE);\n d.setPipeline(c.computePipeline);\n const f = u.getBindGroups(t, c.computePipeline, l);\n for (let p = 0; p < f.length; ++p) {\n const _ = f[p];\n _ && d.setBindGroup(p, _);\n }\n n !== void 0 ? d.dispatchWorkgroupsIndirect(n.underlyingResource, o) : i + s + r > 0 && d.dispatchWorkgroups(i, s, r), d.end(), h && (this._timestampQuery.endPass(this._timestampIndex, h), this._timestampIndex += 2);\n};\nit.prototype.releaseComputeEffects = function() {\n for (const a in this._compiledComputeEffects) {\n const e = this._compiledComputeEffects[a].getPipelineContext();\n this._deleteComputePipelineContext(e);\n }\n this._compiledComputeEffects = {};\n};\nit.prototype._prepareComputePipelineContext = function(a, e, t, i, s) {\n const r = a;\n this.dbgShowShaderCode && (L.Log(i), L.Log(e)), r.sources = {\n compute: e,\n rawCompute: t\n }, r.stage = this._createComputePipelineStageDescriptor(e, i, s);\n};\nit.prototype._releaseComputeEffect = function(a) {\n this._compiledComputeEffects[a._key] && (delete this._compiledComputeEffects[a._key], this._deleteComputePipelineContext(a.getPipelineContext()));\n};\nit.prototype._rebuildComputeEffects = function() {\n for (const a in this._compiledComputeEffects) {\n const e = this._compiledComputeEffects[a];\n e._pipelineContext = null, e._wasPreviouslyReady = !1, e._prepareEffect();\n }\n};\nit.prototype._executeWhenComputeStateIsCompiled = function(a, e) {\n a.stage.module.getCompilationInfo().then((t) => {\n const i = {\n numErrors: 0,\n messages: []\n };\n for (const s of t.messages)\n s.type === \"error\" && i.numErrors++, i.messages.push({\n type: s.type,\n text: s.message,\n line: s.lineNum,\n column: s.linePos,\n length: s.length,\n offset: s.offset\n });\n e(i);\n });\n};\nit.prototype._deleteComputePipelineContext = function(a) {\n a && a.dispose();\n};\nit.prototype._createComputePipelineStageDescriptor = function(a, e, t) {\n return e ? e = \"//\" + e.split(`\n`).join(`\n//`) + `\n` : e = \"\", {\n module: this._device.createShaderModule({\n code: e + a\n }),\n entryPoint: t\n };\n};\nit.prototype._createDepthStencilCubeTexture = function(a, e) {\n const t = new Nt(\n this,\n e.generateStencil ? 12 : 14\n /* InternalTextureSource.Depth */\n );\n t.isCube = !0, t.label = e.label;\n const i = {\n bilinearFiltering: !1,\n comparisonFunction: 0,\n generateStencil: !1,\n samples: 1,\n depthTextureFormat: e.generateStencil ? 13 : 14,\n ...e\n };\n t.format = i.depthTextureFormat, this._setupDepthStencilTexture(t, a, i.generateStencil, i.bilinearFiltering, i.comparisonFunction, i.samples), this._textureHelper.createGPUTextureForInternalTexture(t);\n const s = t._hardwareTexture;\n return t.type = Bt.GetTextureTypeFromFormat(s.format), this._internalTexturesCache.push(t), t;\n};\nit.prototype.createCubeTexture = function(a, e, t, i, s = null, r = null, n, o = null, l = !1, h = 0, c = 0, u = null, d, f = !1, p = null) {\n return this.createCubeTextureBase(a, e, t, !!i, s, r, n, o, l, h, c, u, null, (_, m) => {\n const x = m, v = x[0].width, T = v;\n this._setCubeMapTextureParams(_, !i), _.format = n ?? -1;\n const E = this._textureHelper.createGPUTextureForInternalTexture(_, v, T);\n this._textureHelper.updateCubeTextures(x, E.underlyingResource, v, T, E.format, !1, !1, 0, 0), i || this._generateMipmaps(_, this._uploadEncoder), _.isReady = !0, _.onLoadedObservable.notifyObservers(_), _.onLoadedObservable.clear(), s && s();\n }, !!f, p);\n};\nit.prototype._setCubeMapTextureParams = function(a, e, t) {\n a.samplingMode = e ? 3 : 2, a._cachedWrapU = 0, a._cachedWrapV = 0, t && (a._maxLodLevel = t);\n};\nit.prototype.generateMipMapsForCubemap = function(a) {\n var e;\n a.generateMipMaps && ((e = a._hardwareTexture) != null && e.underlyingResource || this._textureHelper.createGPUTextureForInternalTexture(a), this._generateMipmaps(a));\n};\nit.prototype._debugPushGroup = function(a, e) {\n this._options.enableGPUDebugMarkers && (e === 0 || e === 1 ? this._renderEncoder.pushDebugGroup(a) : this._currentRenderPass ? this._currentRenderPass.pushDebugGroup(a) : this._pendingDebugCommands.push([\"push\", a]));\n};\nit.prototype._debugPopGroup = function(a) {\n this._options.enableGPUDebugMarkers && (a === 0 || a === 1 ? this._renderEncoder.popDebugGroup() : this._currentRenderPass ? this._currentRenderPass.popDebugGroup() : this._pendingDebugCommands.push([\"pop\", null]));\n};\nit.prototype._debugInsertMarker = function(a, e) {\n this._options.enableGPUDebugMarkers && (e === 0 || e === 1 ? this._renderEncoder.insertDebugMarker(a) : this._currentRenderPass ? this._currentRenderPass.insertDebugMarker(a) : this._pendingDebugCommands.push([\"insert\", a]));\n};\nit.prototype._debugFlushPendingCommands = function() {\n for (let a = 0; a < this._pendingDebugCommands.length; ++a) {\n const [e, t] = this._pendingDebugCommands[a];\n switch (e) {\n case \"push\":\n this._debugPushGroup(t);\n break;\n case \"pop\":\n this._debugPopGroup();\n break;\n case \"insert\":\n this._debugInsertMarker(t);\n break;\n }\n }\n this._pendingDebugCommands.length = 0;\n};\nit.prototype.createDynamicTexture = function(a, e, t, i) {\n const s = new Nt(\n this,\n 4\n /* InternalTextureSource.Dynamic */\n );\n return s.baseWidth = a, s.baseHeight = e, t && (a = this.needPOTTextures ? Dr(a, this._caps.maxTextureSize) : a, e = this.needPOTTextures ? Dr(e, this._caps.maxTextureSize) : e), s.width = a, s.height = e, s.isReady = !1, s.generateMipMaps = t, s.samplingMode = i, this.updateTextureSamplingMode(i, s), this._internalTexturesCache.push(s), a && e && this._textureHelper.createGPUTextureForInternalTexture(s, a, e), s;\n};\nit.prototype.updateDynamicTexture = function(a, e, t, i = !1, s, r, n) {\n var c;\n if (!a)\n return;\n const o = e.width, l = e.height;\n let h = a._hardwareTexture;\n (c = a._hardwareTexture) != null && c.underlyingResource || (h = this._textureHelper.createGPUTextureForInternalTexture(a, o, l)), this._textureHelper.updateTexture(e, a, o, l, a.depth, h.format, 0, 0, t, i, 0, 0, n), a.generateMipMaps && this._generateMipmaps(a), a._dynamicTextureSource = e, a._premulAlpha = i, a.invertY = t || !1, a.isReady = !0;\n};\nit.prototype.unBindMultiColorAttachmentFramebuffer = function(a, e = !1, t) {\n t && t();\n const s = a._attachments.length;\n this._endCurrentRenderPass();\n for (let r = 0; r < s; r++) {\n const n = a.textures[r];\n n.generateMipMaps && !e && !n.isCube && !n.is3D && this._generateMipmaps(n);\n }\n this._currentRenderTarget = null, this._mrtAttachments = [], this._cacheRenderPipeline.setMRT([]), this._cacheRenderPipeline.setMRTAttachments(this._mrtAttachments);\n};\nit.prototype.createMultipleRenderTarget = function(a, e, t) {\n let i = !1, s = !0, r = !1, n = !1, o = 15, l = 1;\n const h = 0, c = 3, u = !1, d = 5, f = 3553;\n let p = [], _ = [], m = [], x = [], v = [], T = [], E = [], b = [], S = [];\n const C = this._createHardwareRenderTargetWrapper(!0, !1, a);\n e !== void 0 && (i = e.generateMipMaps === void 0 ? !1 : e.generateMipMaps, s = e.generateDepthBuffer === void 0 ? !0 : e.generateDepthBuffer, r = e.generateStencilBuffer === void 0 ? !1 : e.generateStencilBuffer, n = e.generateDepthTexture === void 0 ? !1 : e.generateDepthTexture, l = e.textureCount || 1, o = e.depthTextureFormat ?? 15, e.types && (p = e.types), e.samplingModes && (_ = e.samplingModes), e.useSRGBBuffers && (m = e.useSRGBBuffers), e.formats && (x = e.formats), e.targetTypes && (v = e.targetTypes), e.faceIndex && (T = e.faceIndex), e.layerIndex && (E = e.layerIndex), e.layerCounts && (b = e.layerCounts), S = e.labels ?? S), C.label = (e == null ? void 0 : e.label) ?? \"MultiRenderTargetWrapper\";\n const P = a.width || a, N = a.height || a;\n let F = null;\n (s || r || n) && (n || (s && r ? o = 13 : s ? o = 14 : o = 19), F = C.createDepthStencilTexture(0, !1, r, 1, o, \"MultipleRenderTargetDepthStencil\"));\n const $ = [], j = [], ne = [];\n C._generateDepthBuffer = s, C._generateStencilBuffer = r, C._attachments = j, C._defaultAttachments = ne;\n for (let te = 0; te < l; te++) {\n let le = _[te] || c, _e = p[te] || h;\n const Se = x[te] || d, Ie = (m[te] || u) && this._caps.supportSRGBBuffers, de = v[te] || f, Y = b[te] ?? 1;\n if ((_e === 1 && !this._caps.textureFloatLinearFiltering || _e === 2 && !this._caps.textureHalfFloatLinearFiltering) && (le = 1), _e === 1 && !this._caps.textureFloat && (_e = 0, L.Warn(\"Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type\")), j.push(te + 1), ne.push(t ? te + 1 : te === 0 ? 1 : 0), de === -1)\n continue;\n const M = new Nt(\n this,\n 6\n /* InternalTextureSource.MultiRenderTarget */\n );\n switch ($[te] = M, de) {\n case 34067:\n M.isCube = !0;\n break;\n case 32879:\n M.is3D = !0, M.baseDepth = M.depth = Y;\n break;\n case 35866:\n M.is2DArray = !0, M.baseDepth = M.depth = Y;\n break;\n }\n M.baseWidth = P, M.baseHeight = N, M.width = P, M.height = N, M.isReady = !0, M.samples = 1, M.generateMipMaps = i, M.samplingMode = le, M.type = _e, M._cachedWrapU = 0, M._cachedWrapV = 0, M._useSRGBBuffer = Ie, M.format = Se, M.label = S[te], this._internalTexturesCache.push(M), this._textureHelper.createGPUTextureForInternalTexture(M);\n }\n return F && (F.incrementReferences(), $[l] = F, this._internalTexturesCache.push(F)), C.setTextures($), C.setLayerAndFaceIndices(E, T), C;\n};\nit.prototype.updateMultipleRenderTargetTextureSampleCount = function(a, e) {\n if (!a || !a.textures || a.textures[0].samples === e)\n return e;\n const t = a.textures.length;\n if (t === 0)\n return 1;\n e = Math.min(e, this.getCaps().maxMSAASamples);\n for (let s = 0; s < t; ++s) {\n const n = a.textures[s]._hardwareTexture;\n n == null || n.releaseMSAATexture();\n }\n const i = a._depthStencilTexture === a.textures[t - 1];\n for (let s = 0; s < t; ++s) {\n const r = a.textures[s];\n this._textureHelper.createMSAATexture(r, e, !1, s === t - 1 && i ? 0 : s), r.samples = e;\n }\n return a._depthStencilTexture && !i && (this._textureHelper.createMSAATexture(a._depthStencilTexture, e), a._depthStencilTexture.samples = e), e;\n};\nit.prototype.bindAttachments = function(a) {\n a.length === 0 || !this._currentRenderTarget || (this._mrtAttachments = a, this._currentRenderPass && this._cacheRenderPipeline.setMRTAttachments(a));\n};\nit.prototype.buildTextureLayout = function(a) {\n const e = [];\n for (let t = 0; t < a.length; t++)\n a[t] ? e.push(t + 1) : e.push(0);\n return e;\n};\nit.prototype.restoreSingleAttachment = function() {\n};\nit.prototype.restoreSingleAttachmentForRenderTarget = function() {\n};\nit.prototype.getGPUFrameTimeCounter = function() {\n return this._timestampQuery.gpuFrameTimeCounter;\n};\nit.prototype.captureGPUFrameTime = function(a) {\n this._timestampQuery.enable = a && !!this._caps.timerQuery;\n};\nit.prototype.createQuery = function() {\n return this._occlusionQuery.createQuery();\n};\nit.prototype.deleteQuery = function(a) {\n return this._occlusionQuery.deleteQuery(a), this;\n};\nit.prototype.isQueryResultAvailable = function(a) {\n return this._occlusionQuery.isQueryResultAvailable(a);\n};\nit.prototype.getQueryResult = function(a) {\n return this._occlusionQuery.getQueryResult(a);\n};\nit.prototype.beginOcclusionQuery = function(a, e) {\n var t;\n if (this.compatibilityMode) {\n if (this._occlusionQuery.canBeginQuery(e))\n return (t = this._currentRenderPass) == null || t.beginOcclusionQuery(e), !0;\n } else\n return this._bundleList.addItem(new Dx(e)), !0;\n return !1;\n};\nit.prototype.endOcclusionQuery = function() {\n var a;\n return this.compatibilityMode ? (a = this._currentRenderPass) == null || a.endOcclusionQuery() : this._bundleList.addItem(new Ox()), this;\n};\nit.prototype.createRawTexture = function(a, e, t, i, s, r, n, o = null, l = 0, h = 0, c = !1) {\n const u = new Nt(\n this,\n 3\n /* InternalTextureSource.Raw */\n );\n return u.baseWidth = e, u.baseHeight = t, u.width = e, u.height = t, u.format = i, u.generateMipMaps = s, u.samplingMode = n, u.invertY = r, u._compression = o, u.type = l, u._creationFlags = h, u._useSRGBBuffer = c, this._doNotHandleContextLost || (u._bufferView = a), this._textureHelper.createGPUTextureForInternalTexture(u, e, t, void 0, h), this.updateRawTexture(u, a, i, r, o, l, c), this._internalTexturesCache.push(u), u;\n};\nit.prototype.updateRawTexture = function(a, e, t, i, s = null, r = 0, n = !1) {\n if (a) {\n if (this._doNotHandleContextLost || (a._bufferView = e, a.invertY = i, a._compression = s, a._useSRGBBuffer = n), e) {\n const o = a._hardwareTexture;\n t === 4 && (e = yf(e, a.width, a.height, r));\n const h = new Uint8Array(e.buffer, e.byteOffset, e.byteLength);\n this._textureHelper.updateTexture(h, a, a.width, a.height, a.depth, o.format, 0, 0, i, !1, 0, 0), a.generateMipMaps && this._generateMipmaps(a, this._uploadEncoder);\n }\n a.isReady = !0;\n }\n};\nit.prototype.createRawCubeTexture = function(a, e, t, i, s, r, n, o = null) {\n const l = new Nt(\n this,\n 8\n /* InternalTextureSource.CubeRaw */\n );\n if (i === 1 && !this._caps.textureFloatLinearFiltering ? (s = !1, n = 1, L.Warn(\"Float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.\")) : i === 2 && !this._caps.textureHalfFloatLinearFiltering ? (s = !1, n = 1, L.Warn(\"Half float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.\")) : i === 1 && !this._caps.textureFloatRender ? (s = !1, L.Warn(\"Render to float textures is not supported. Mipmap generation forced to false.\")) : i === 2 && !this._caps.colorBufferFloat && (s = !1, L.Warn(\"Render to half float textures is not supported. Mipmap generation forced to false.\")), l.isCube = !0, l._originalFormat = t, l.format = t === 4 ? 5 : t, l.type = i, l.generateMipMaps = s, l.width = e, l.height = e, l.samplingMode = n, this._doNotHandleContextLost || (l._bufferViewArray = a), l.invertY = r, l._compression = o, l._cachedWrapU = 0, l._cachedWrapV = 0, this._textureHelper.createGPUTextureForInternalTexture(l), t === 4) {\n const h = l._hardwareTexture;\n h._originalFormatIsRGB = !0;\n }\n return a && this.updateRawCubeTexture(l, a, t, i, r, o), l.isReady = !0, l;\n};\nit.prototype.updateRawCubeTexture = function(a, e, t, i, s, r = null) {\n a._bufferViewArray = e, a.invertY = s, a._compression = r;\n const n = a._hardwareTexture, o = n._originalFormatIsRGB, l = [0, 2, 4, 1, 3, 5], h = [];\n for (let c = 0; c < e.length; ++c) {\n let u = e[l[c]];\n o && (u = yf(u, a.width, a.height, i)), h.push(new Uint8Array(u.buffer, u.byteOffset, u.byteLength));\n }\n this._textureHelper.updateCubeTextures(h, n.underlyingResource, a.width, a.height, n.format, s, !1, 0, 0), a.generateMipMaps && this._generateMipmaps(a, this._uploadEncoder), a.isReady = !0;\n};\nit.prototype.createRawCubeTextureFromUrl = function(a, e, t, i, s, r, n, o, l = null, h = null, c = 3, u = !1) {\n const d = this.createRawCubeTexture(null, t, i, s, !r, u, c, null);\n e == null || e.addPendingData(d), d.url = a, this._internalTexturesCache.push(d);\n const f = (_, m) => {\n e == null || e.removePendingData(d), h && _ && h(_.status + \" \" + _.statusText, m);\n }, p = (_) => {\n const m = d.width, x = n(_);\n if (x) {\n if (o) {\n const v = i === 4, T = o(x), E = d._hardwareTexture, b = [0, 1, 2, 3, 4, 5];\n for (let S = 0; S < T.length; S++) {\n const C = m >> S, P = [];\n for (let N = 0; N < 6; N++) {\n let F = T[S][b[N]];\n v && (F = yf(F, C, C, s)), P.push(new Uint8Array(F.buffer, F.byteOffset, F.byteLength));\n }\n this._textureHelper.updateCubeTextures(P, E.underlyingResource, C, C, E.format, u, !1, 0, 0);\n }\n } else\n this.updateRawCubeTexture(d, x, i, s, u);\n d.isReady = !0, e == null || e.removePendingData(d), l && l();\n }\n };\n return this._loadFile(a, (_) => {\n p(_);\n }, void 0, e == null ? void 0 : e.offlineProvider, !0, f), d;\n};\nit.prototype.createRawTexture3D = function(a, e, t, i, s, r, n, o, l = null, h = 0, c = 0) {\n const d = new Nt(this, 10);\n return d.baseWidth = e, d.baseHeight = t, d.baseDepth = i, d.width = e, d.height = t, d.depth = i, d.format = s, d.type = h, d.generateMipMaps = r, d.samplingMode = o, d.is3D = !0, d._creationFlags = c, this._doNotHandleContextLost || (d._bufferView = a), this._textureHelper.createGPUTextureForInternalTexture(d, e, t, void 0, c), this.updateRawTexture3D(d, a, s, n, l, h), this._internalTexturesCache.push(d), d;\n};\nit.prototype.updateRawTexture3D = function(a, e, t, i, s = null, r = 0) {\n if (this._doNotHandleContextLost || (a._bufferView = e, a.format = t, a.invertY = i, a._compression = s), e) {\n const n = a._hardwareTexture;\n t === 4 && (e = yf(e, a.width, a.height, r));\n const l = new Uint8Array(e.buffer, e.byteOffset, e.byteLength);\n this._textureHelper.updateTexture(l, a, a.width, a.height, a.depth, n.format, 0, 0, i, !1, 0, 0), a.generateMipMaps && this._generateMipmaps(a, this._uploadEncoder);\n }\n a.isReady = !0;\n};\nit.prototype.createRawTexture2DArray = function(a, e, t, i, s, r, n, o, l = null, h = 0, c = 0) {\n const d = new Nt(this, 11);\n return d.baseWidth = e, d.baseHeight = t, d.baseDepth = i, d.width = e, d.height = t, d.depth = i, d.format = s, d.type = h, d.generateMipMaps = r, d.samplingMode = o, d.is2DArray = !0, d._creationFlags = c, this._doNotHandleContextLost || (d._bufferView = a), this._textureHelper.createGPUTextureForInternalTexture(d, e, t, i, c), this.updateRawTexture2DArray(d, a, s, n, l, h), this._internalTexturesCache.push(d), d;\n};\nit.prototype.updateRawTexture2DArray = function(a, e, t, i, s = null, r = 0) {\n if (this._doNotHandleContextLost || (a._bufferView = e, a.format = t, a.invertY = i, a._compression = s), e) {\n const n = a._hardwareTexture;\n t === 4 && (e = yf(e, a.width, a.height, r));\n const l = new Uint8Array(e.buffer, e.byteOffset, e.byteLength);\n this._textureHelper.updateTexture(l, a, a.width, a.height, a.depth, n.format, 0, 0, i, !1, 0, 0), a.generateMipMaps && this._generateMipmaps(a, this._uploadEncoder);\n }\n a.isReady = !0;\n};\nfunction yf(a, e, t, i) {\n let s, r = 1;\n i === 1 ? s = new Float32Array(e * t * 4) : i === 2 ? (s = new Uint16Array(e * t * 4), r = 15360) : i === 7 ? s = new Uint32Array(e * t * 4) : s = new Uint8Array(e * t * 4);\n for (let n = 0; n < e; n++)\n for (let o = 0; o < t; o++) {\n const l = (o * e + n) * 3, h = (o * e + n) * 4;\n s[h + 0] = a[l + 0], s[h + 1] = a[l + 1], s[h + 2] = a[l + 2], s[h + 3] = r;\n }\n return s;\n}\nit.prototype._readTexturePixels = function(a, e, t, i = -1, s = 0, r = null, n = !0, o = !1, l = 0, h = 0) {\n const c = a._hardwareTexture;\n return n && this.flushFramebuffer(), this._textureHelper.readPixels(c.underlyingResource, l, h, e, t, c.format, i, s, r, o);\n};\nit.prototype._readTexturePixelsSync = function() {\n throw \"_readTexturePixelsSync is unsupported in WebGPU!\";\n};\nclass CB extends Ax {\n /**\n * Initializes the render target wrapper\n * @param isMulti true if the wrapper is a multi render target\n * @param isCube true if the wrapper should render to a cube texture\n * @param size size of the render target (width/height/layers)\n * @param engine engine used to create the render target\n * @param label defines the label to use for the wrapper (for debugging purpose only)\n */\n constructor(e, t, i, s, r) {\n super(e, t, i, s, r), s.enableGPUTimingMeasurements && (this.gpuTimeInFrame = new Fx());\n }\n}\nit.prototype._createHardwareRenderTargetWrapper = function(a, e, t) {\n const i = new CB(a, e, t, this);\n return this._renderTargetWrapperCache.push(i), i;\n};\nit.prototype.createRenderTargetTexture = function(a, e) {\n const t = this._createHardwareRenderTargetWrapper(!1, !1, a), i = {};\n e !== void 0 && typeof e == \"object\" ? (i.generateMipMaps = e.generateMipMaps, i.generateDepthBuffer = e.generateDepthBuffer === void 0 ? !0 : e.generateDepthBuffer, i.generateStencilBuffer = i.generateDepthBuffer && e.generateStencilBuffer, i.samplingMode = e.samplingMode === void 0 ? 3 : e.samplingMode, i.creationFlags = e.creationFlags ?? 0, i.noColorAttachment = !!e.noColorAttachment, i.samples = e.samples, i.label = e.label) : (i.generateMipMaps = e, i.generateDepthBuffer = !0, i.generateStencilBuffer = !1, i.samplingMode = 3, i.creationFlags = 0, i.noColorAttachment = !1);\n const s = i.noColorAttachment ? null : this._createInternalTexture(\n a,\n e,\n !0,\n 5\n /* InternalTextureSource.RenderTarget */\n );\n return t.label = i.label ?? \"RenderTargetWrapper\", t._samples = i.samples ?? 1, t._generateDepthBuffer = i.generateDepthBuffer, t._generateStencilBuffer = !!i.generateStencilBuffer, t.setTextures(s), (t._generateDepthBuffer || t._generateStencilBuffer) && t.createDepthStencilTexture(\n 0,\n !1,\n // force false as filtering is not supported for depth textures\n t._generateStencilBuffer,\n t.samples,\n i.generateStencilBuffer ? 13 : 14,\n i.label ? i.label + \"-DepthStencil\" : void 0\n ), s && (e !== void 0 && typeof e == \"object\" && e.createMipMaps && !i.generateMipMaps && (s.generateMipMaps = !0), this._textureHelper.createGPUTextureForInternalTexture(s, void 0, void 0, void 0, i.creationFlags), e !== void 0 && typeof e == \"object\" && e.createMipMaps && !i.generateMipMaps && (s.generateMipMaps = !1)), t;\n};\nit.prototype._createDepthStencilTexture = function(a, e) {\n const t = new Nt(\n this,\n e.generateStencil ? 12 : 14\n /* InternalTextureSource.Depth */\n );\n t.label = e.label;\n const i = {\n bilinearFiltering: !1,\n comparisonFunction: 0,\n generateStencil: !1,\n samples: 1,\n depthTextureFormat: e.generateStencil ? 13 : 14,\n ...e\n };\n t.format = i.depthTextureFormat, this._setupDepthStencilTexture(t, a, i.generateStencil, i.bilinearFiltering, i.comparisonFunction, i.samples), this._textureHelper.createGPUTextureForInternalTexture(t);\n const s = t._hardwareTexture;\n return t.type = Bt.GetTextureTypeFromFormat(s.format), this._internalTexturesCache.push(t), t;\n};\nit.prototype._setupDepthStencilTexture = function(a, e, t, i, s, r = 1) {\n const n = e.width || e, o = e.height || e, l = e.layers || 0, h = e.depth || 0;\n a.baseWidth = n, a.baseHeight = o, a.width = n, a.height = o, a.is2DArray = l > 0, a.is3D = h > 0, a.depth = l || h, a.isReady = !0, a.samples = r, a.generateMipMaps = !1, a.samplingMode = i ? 2 : 1, a.type = 1, a._comparisonFunction = s, a._cachedWrapU = 0, a._cachedWrapV = 0;\n};\nit.prototype.updateRenderTargetTextureSampleCount = function(a, e) {\n return !a || !a.texture || a.samples === e || (e = Math.min(e, this.getCaps().maxMSAASamples), this._textureHelper.createMSAATexture(a.texture, e), a._depthStencilTexture && (this._textureHelper.createMSAATexture(a._depthStencilTexture, e), a._depthStencilTexture.samples = e), a._samples = e, a.texture.samples = e), e;\n};\nit.prototype.createRenderTargetCubeTexture = function(a, e) {\n const t = this._createHardwareRenderTargetWrapper(!1, !0, a), i = {\n generateMipMaps: !0,\n generateDepthBuffer: !0,\n generateStencilBuffer: !1,\n type: 0,\n samplingMode: 3,\n format: 5,\n samples: 1,\n ...e\n };\n i.generateStencilBuffer = i.generateDepthBuffer && i.generateStencilBuffer, t.label = i.label ?? \"RenderTargetWrapper\", t._generateDepthBuffer = i.generateDepthBuffer, t._generateStencilBuffer = i.generateStencilBuffer;\n const s = new Nt(\n this,\n 5\n /* InternalTextureSource.RenderTarget */\n );\n return s.width = a, s.height = a, s.depth = 0, s.isReady = !0, s.isCube = !0, s.samples = i.samples, s.generateMipMaps = i.generateMipMaps, s.samplingMode = i.samplingMode, s.type = i.type, s.format = i.format, this._internalTexturesCache.push(s), t.setTextures(s), (t._generateDepthBuffer || t._generateStencilBuffer) && t.createDepthStencilTexture(0, i.samplingMode === void 0 || i.samplingMode === 2 || i.samplingMode === 2 || i.samplingMode === 3 || i.samplingMode === 3 || i.samplingMode === 5 || i.samplingMode === 6 || i.samplingMode === 7 || i.samplingMode === 11, t._generateStencilBuffer, t.samples), e && e.createMipMaps && !i.generateMipMaps && (s.generateMipMaps = !0), this._textureHelper.createGPUTextureForInternalTexture(s), e && e.createMipMaps && !i.generateMipMaps && (s.generateMipMaps = !1), t;\n};\nit.prototype.setDepthStencilTexture = function(a, e, t, i) {\n !t || !t.depthStencilTexture ? this._setTexture(a, null, void 0, void 0, i) : this._setTexture(a, t, !1, !0, i);\n};\nfunction AB(a) {\n return !!(a && a.underlyingResource !== void 0);\n}\nit.prototype.updateVideoTexture = function(a, e, t) {\n var s;\n if (!a || a._isDisabled)\n return;\n this._videoTextureSupported === void 0 && (this._videoTextureSupported = !0);\n let i = a._hardwareTexture;\n if ((s = a._hardwareTexture) != null && s.underlyingResource || (i = this._textureHelper.createGPUTextureForInternalTexture(a)), AB(e)) {\n if (e.isReady()) {\n try {\n this._textureHelper.copyVideoToTexture(e, a, i.format, !t), a.generateMipMaps && this._generateMipmaps(a);\n } catch {\n }\n a.isReady = !0;\n }\n } else e && this.createImageBitmap(e).then((r) => {\n this._textureHelper.updateTexture(r, a, a.width, a.height, a.depth, i.format, 0, 0, !t, !1, 0, 0), a.generateMipMaps && this._generateMipmaps(a), a.isReady = !0;\n }).catch(() => {\n a.isReady = !0;\n });\n};\nclass Do extends qs {\n /** Default material used to render when gizmo is not disabled or hovered */\n get coloredMaterial() {\n return this._coloredMaterial;\n }\n /** Material used to render when gizmo is hovered with mouse*/\n get hoverMaterial() {\n return this._hoverMaterial;\n }\n /** Material used to render when gizmo is disabled. typically grey.*/\n get disableMaterial() {\n return this._disableMaterial;\n }\n /**\n * Creates an AxisScaleGizmo\n * @param dragAxis The axis which the gizmo will be able to scale on\n * @param color The color of the gizmo\n * @param gizmoLayer The utility layer the gizmo will be added to\n * @param parent\n * @param thickness display gizmo axis thickness\n * @param hoverColor The color of the gizmo when hovering over and dragging\n * @param disableColor The Color of the gizmo when its disabled\n */\n constructor(e, t = re.Gray(), i = Ci.DefaultUtilityLayer, s = null, r = 1, n = re.Yellow(), o = re.Gray()) {\n var b, S, C, P, N, F, $;\n super(i), this._pointerObserver = null, this.snapDistance = 0, this.onSnapObservable = new G(), this.uniformScaling = !1, this.sensitivity = 1, this.dragScale = 1, this.incrementalSnap = !1, this._isEnabled = !0, this._parent = null, this._dragging = !1, this._tmpVector = new g(0, 0, 0), this._incrementalStartupValue = g.Zero(), this._parent = s, this._coloredMaterial = new ye(\"\", i.utilityLayerScene), this._coloredMaterial.diffuseColor = t, this._coloredMaterial.specularColor = t.subtract(new re(0.1, 0.1, 0.1)), this._hoverMaterial = new ye(\"\", i.utilityLayerScene), this._hoverMaterial.diffuseColor = n, this._disableMaterial = new ye(\"\", i.utilityLayerScene), this._disableMaterial.diffuseColor = o, this._disableMaterial.alpha = 0.4, this._gizmoMesh = new H(\"axis\", i.utilityLayerScene);\n const { arrowMesh: l, arrowTail: h } = this._createGizmoMesh(this._gizmoMesh, r), c = this._createGizmoMesh(this._gizmoMesh, r + 4, !0);\n this._gizmoMesh.lookAt(this._rootMesh.position.add(e)), this._rootMesh.addChild(this._gizmoMesh, qs.PreserveScaling), this._gizmoMesh.scaling.scaleInPlace(1 / 3);\n const u = l.position.clone(), d = h.position.clone(), f = h.scaling.clone(), p = (j) => {\n const ne = j * (3 / this._rootMesh.scaling.length()) * 6;\n l.position.z += ne / 3.5, h.scaling.y += ne, this.dragScale = h.scaling.y, h.position.z = l.position.z / 2;\n }, _ = () => {\n l.position.set(u.x, u.y, u.z), h.position.set(d.x, d.y, d.z), h.scaling.set(f.x, f.y, f.z), this.dragScale = h.scaling.y, this._dragging = !1;\n };\n this.dragBehavior = new Fr({ dragAxis: e }), this.dragBehavior.moveAttached = !1, this.dragBehavior.updateDragPlane = !1, this._rootMesh.addBehavior(this.dragBehavior);\n let m = 0, x = 0;\n const v = { snapDistance: 0 };\n this.dragBehavior.onDragObservable.add((j) => {\n if (this.attachedNode) {\n const ne = this.sensitivity * j.dragDistance * (this.scaleRatio * 3 / this._rootMesh.scaling.length()), te = this._tmpVector;\n let le = !1, _e = 0;\n if (this.uniformScaling ? te.setAll(0.57735) : te.copyFrom(e), this.snapDistance == 0)\n te.scaleToRef(ne, te);\n else {\n m += ne, x += ne;\n const de = this.incrementalSnap ? x : m;\n Math.abs(de) > this.snapDistance ? (_e = Math.floor(Math.abs(de) / this.snapDistance), de < 0 && (_e *= -1), m = m % this.snapDistance, te.scaleToRef(this.snapDistance * _e, te), le = !0) : te.scaleInPlace(0);\n }\n te.addInPlaceFromFloats(1, 1, 1), te.x = Math.abs(te.x) < Do.MinimumAbsoluteScale ? Do.MinimumAbsoluteScale * (te.x < 0 ? -1 : 1) : te.x, te.y = Math.abs(te.y) < Do.MinimumAbsoluteScale ? Do.MinimumAbsoluteScale * (te.y < 0 ? -1 : 1) : te.y, te.z = Math.abs(te.z) < Do.MinimumAbsoluteScale ? Do.MinimumAbsoluteScale * (te.z < 0 ? -1 : 1) : te.z;\n const Se = this.attachedNode._isMesh ? this.attachedNode : void 0;\n Math.abs(this.snapDistance) > 0 && this.incrementalSnap ? (this.attachedNode.getWorldMatrix().decompose(void 0, w.Quaternion[0], w.Vector3[2], qs.PreserveScaling ? Se : void 0), te.addInPlace(this._incrementalStartupValue), te.addInPlaceFromFloats(-1, -1, -1), te.x = Math.abs(te.x) * (this._incrementalStartupValue.x > 0 ? 1 : -1), te.y = Math.abs(te.y) * (this._incrementalStartupValue.y > 0 ? 1 : -1), te.z = Math.abs(te.z) * (this._incrementalStartupValue.z > 0 ? 1 : -1), O.ComposeToRef(te, w.Quaternion[0], w.Vector3[2], w.Matrix[1])) : (O.ScalingToRef(te.x, te.y, te.z, w.Matrix[2]), w.Matrix[2].multiplyToRef(this.attachedNode.getWorldMatrix(), w.Matrix[1])), w.Matrix[1].decompose(w.Vector3[1], void 0, void 0, qs.PreserveScaling ? Se : void 0);\n const Ie = 1e5;\n Math.abs(w.Vector3[1].x) < Ie && Math.abs(w.Vector3[1].y) < Ie && Math.abs(w.Vector3[1].z) < Ie && this.attachedNode.getWorldMatrix().copyFrom(w.Matrix[1]), le && (v.snapDistance = this.snapDistance * _e, this.onSnapObservable.notifyObservers(v)), this._matrixChanged();\n }\n }), this.dragBehavior.onDragStartObservable.add(() => {\n var ne;\n this._dragging = !0;\n const j = this.attachedNode._isMesh ? this.attachedNode : void 0;\n (ne = this.attachedNode) == null || ne.getWorldMatrix().decompose(this._incrementalStartupValue, void 0, void 0, qs.PreserveScaling ? j : void 0), m = 0, x = 0;\n }), this.dragBehavior.onDragObservable.add((j) => p(j.dragDistance)), this.dragBehavior.onDragEndObservable.add(_), (C = (S = (b = s == null ? void 0 : s.uniformScaleGizmo) == null ? void 0 : b.dragBehavior) == null ? void 0 : S.onDragObservable) == null || C.add((j) => p(j.delta.y)), (F = (N = (P = s == null ? void 0 : s.uniformScaleGizmo) == null ? void 0 : P.dragBehavior) == null ? void 0 : N.onDragEndObservable) == null || F.add(_);\n const T = {\n gizmoMeshes: [l, h],\n colliderMeshes: [c.arrowMesh, c.arrowTail],\n material: this._coloredMaterial,\n hoverMaterial: this._hoverMaterial,\n disableMaterial: this._disableMaterial,\n active: !1,\n dragBehavior: this.dragBehavior\n };\n ($ = this._parent) == null || $.addToAxisCache(this._gizmoMesh, T), this._pointerObserver = i.utilityLayerScene.onPointerObservable.add((j) => {\n var te, le, _e, Se;\n if (this._customMeshSet)\n return;\n let ne = (te = this._parent) == null ? void 0 : te.getAxisCache(this._gizmoMesh);\n if (this._isHovered = !!ne && ne.colliderMeshes.indexOf((le = j == null ? void 0 : j.pickInfo) == null ? void 0 : le.pickedMesh) != -1, ne = (_e = this._parent) == null ? void 0 : _e.getAxisCache(this._rootMesh), this._isHovered || (this._isHovered = !!ne && ne.colliderMeshes.indexOf((Se = j == null ? void 0 : j.pickInfo) == null ? void 0 : Se.pickedMesh) != -1), !this._parent) {\n const Ie = this.dragBehavior.enabled ? this._isHovered || this._dragging ? this._hoverMaterial : this._coloredMaterial : this._disableMaterial;\n this._setGizmoMeshMaterial(T.gizmoMeshes, Ie);\n }\n }), this.dragBehavior.onEnabledObservable.add((j) => {\n this._setGizmoMeshMaterial(T.gizmoMeshes, j ? this._coloredMaterial : this._disableMaterial);\n });\n const E = i._getSharedGizmoLight();\n E.includedOnlyMeshes = E.includedOnlyMeshes.concat(this._rootMesh.getChildMeshes());\n }\n /**\n * @internal\n * Create Geometry for Gizmo\n * @param parentMesh\n * @param thickness\n * @param isCollider\n * @returns the gizmo mesh\n */\n _createGizmoMesh(e, t, i = !1) {\n const s = Bl(\"yPosMesh\", { size: 0.4 * (1 + (t - 1) / 4) }, this.gizmoLayer.utilityLayerScene), r = hn(\"cylinder\", { diameterTop: 5e-3 * t, height: 0.275, diameterBottom: 5e-3 * t, tessellation: 96 }, this.gizmoLayer.utilityLayerScene);\n return s.scaling.scaleInPlace(0.1), s.material = this._coloredMaterial, s.rotation.x = Math.PI / 2, s.position.z += 0.3, r.material = this._coloredMaterial, r.position.z += 0.275 / 2, r.rotation.x = Math.PI / 2, i && (s.visibility = 0, r.visibility = 0), e.addChild(s), e.addChild(r), { arrowMesh: s, arrowTail: r };\n }\n _attachedNodeChanged(e) {\n this.dragBehavior && (this.dragBehavior.enabled = !!e);\n }\n /**\n * If the gizmo is enabled\n */\n set isEnabled(e) {\n this._isEnabled = e, e ? this._parent && (this.attachedMesh = this._parent.attachedMesh, this.attachedNode = this._parent.attachedNode) : (this.attachedMesh = null, this.attachedNode = null);\n }\n get isEnabled() {\n return this._isEnabled;\n }\n /**\n * Disposes of the gizmo\n */\n dispose() {\n this.onSnapObservable.clear(), this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver), this.dragBehavior.detach(), this._gizmoMesh && this._gizmoMesh.dispose(), [this._coloredMaterial, this._hoverMaterial, this._disableMaterial].forEach((e) => {\n e && e.dispose();\n }), super.dispose();\n }\n /**\n * Disposes and replaces the current meshes in the gizmo with the specified mesh\n * @param mesh The mesh to replace the default mesh of the gizmo\n * @param useGizmoMaterial If the gizmo's default material should be used (default: false)\n */\n setCustomMesh(e, t = !1) {\n super.setCustomMesh(e), t && (this._rootMesh.getChildMeshes().forEach((i) => {\n i.material = this._coloredMaterial, i.color && (i.color = this._coloredMaterial.diffuseColor);\n }), this._customMeshSet = !1);\n }\n}\nDo.MinimumAbsoluteScale = tt;\nclass Bo extends qs {\n /** Default material used to render when gizmo is not disabled or hovered */\n get coloredMaterial() {\n return this._coloredMaterial;\n }\n /** Material used to render when gizmo is hovered with mouse */\n get hoverMaterial() {\n return this._hoverMaterial;\n }\n /** Color used to render the drag angle sector when gizmo is rotated with mouse */\n set rotationColor(e) {\n this._rotationShaderMaterial.setColor3(\"rotationColor\", e);\n }\n /** Material used to render when gizmo is disabled. typically grey. */\n get disableMaterial() {\n return this._disableMaterial;\n }\n /**\n * Creates a PlaneRotationGizmo\n * @param planeNormal The normal of the plane which the gizmo will be able to rotate on\n * @param color The color of the gizmo\n * @param gizmoLayer The utility layer the gizmo will be added to\n * @param tessellation Amount of tessellation to be used when creating rotation circles\n * @param parent\n * @param useEulerRotation Use and update Euler angle instead of quaternion\n * @param thickness display gizmo axis thickness\n * @param hoverColor The color of the gizmo when hovering over and dragging\n * @param disableColor The Color of the gizmo when its disabled\n */\n constructor(e, t = re.Gray(), i = Ci.DefaultUtilityLayer, s = 32, r = null, n = !1, o = 1, l = re.Yellow(), h = re.Gray()) {\n var S;\n super(i), this._pointerObserver = null, this.snapDistance = 0, this.onSnapObservable = new G(), this.angle = 0, this.sensitivity = 1, this._isEnabled = !0, this._parent = null, this._dragging = !1, this._angles = new g(), this._parent = r, this._coloredMaterial = new ye(\"\", i.utilityLayerScene), this._coloredMaterial.diffuseColor = t, this._coloredMaterial.specularColor = t.subtract(new re(0.1, 0.1, 0.1)), this._hoverMaterial = new ye(\"\", i.utilityLayerScene), this._hoverMaterial.diffuseColor = l, this._hoverMaterial.specularColor = l, this._disableMaterial = new ye(\"\", i.utilityLayerScene), this._disableMaterial.diffuseColor = h, this._disableMaterial.alpha = 0.4, this._gizmoMesh = new H(\"\", i.utilityLayerScene);\n const { rotationMesh: c, collider: u } = this._createGizmoMesh(this._gizmoMesh, o, s);\n this._rotationDisplayPlane = Ul(\"rotationDisplay\", {\n size: 0.6,\n updatable: !1\n }, this.gizmoLayer.utilityLayerScene), this._rotationDisplayPlane.rotation.z = Math.PI * 0.5, this._rotationDisplayPlane.parent = this._gizmoMesh, this._rotationDisplayPlane.setEnabled(!1), si.ShadersStore.rotationGizmoVertexShader = Bo._RotationGizmoVertexShader, si.ShadersStore.rotationGizmoFragmentShader = Bo._RotationGizmoFragmentShader, this._rotationShaderMaterial = new Or(\"shader\", this.gizmoLayer.utilityLayerScene, {\n vertex: \"rotationGizmo\",\n fragment: \"rotationGizmo\"\n }, {\n attributes: [\"position\", \"uv\"],\n uniforms: [\"worldViewProjection\", \"angles\", \"rotationColor\"]\n }), this._rotationShaderMaterial.backFaceCulling = !1, this.rotationColor = l, this._rotationDisplayPlane.material = this._rotationShaderMaterial, this._rotationDisplayPlane.visibility = 0.999, this._gizmoMesh.lookAt(this._rootMesh.position.add(e)), this._rootMesh.addChild(this._gizmoMesh, qs.PreserveScaling), this._gizmoMesh.scaling.scaleInPlace(1 / 3), this.dragBehavior = new Fr({ dragPlaneNormal: e }), this.dragBehavior.moveAttached = !1, this.dragBehavior.maxDragAngle = Bo.MaxDragAngle, this.dragBehavior._useAlternatePickedPointAboveMaxDragAngle = !0, this._rootMesh.addBehavior(this.dragBehavior);\n const d = new g(), f = new O(), p = new g();\n let _ = new g();\n this.dragBehavior.onDragStartObservable.add((C) => {\n this.attachedNode && (d.copyFrom(C.dragPlanePoint), this._rotationDisplayPlane.setEnabled(!0), this._rotationDisplayPlane.getWorldMatrix().invertToRef(f), g.TransformCoordinatesToRef(C.dragPlanePoint, f, d), this._angles.x = Math.atan2(d.y, d.x) + Math.PI, this._angles.y = 0, this._angles.z = this.updateGizmoRotationToMatchAttachedMesh ? 1 : 0, this._dragging = !0, d.copyFrom(C.dragPlanePoint), this._rotationShaderMaterial.setVector3(\"angles\", this._angles), this.angle = 0);\n }), this.dragBehavior.onDragEndObservable.add(() => {\n this._dragging = !1, this._rotationDisplayPlane.setEnabled(!1);\n });\n const m = { snapDistance: 0 };\n let x = 0;\n const v = new O(), T = new se();\n this.dragBehavior.onDragObservable.add((C) => {\n if (this.attachedNode) {\n const P = new g(1, 1, 1), N = new se(0, 0, 0, 1), F = new g(0, 0, 0);\n if (this.attachedNode.getWorldMatrix().decompose(P, N, F), !(Math.abs(Math.abs(P.x) - Math.abs(P.y)) <= tt && Math.abs(Math.abs(P.x) - Math.abs(P.z)) <= tt) && this.updateGizmoRotationToMatchAttachedMesh) {\n L.Warn(\"Unable to use a rotation gizmo matching mesh rotation with non uniform scaling. Use uniform scaling or set updateGizmoRotationToMatchAttachedMesh to false.\");\n return;\n }\n N.normalize();\n const j = this.updateGizmoPositionToMatchAttachedMesh ? F : this._rootMesh.absolutePosition, ne = C.dragPlanePoint.subtract(j).normalize(), te = d.subtract(j).normalize(), le = g.Cross(ne, te), _e = g.Dot(ne, te);\n let Se = Math.atan2(le.length(), _e) * this.sensitivity;\n p.copyFrom(e), _.copyFrom(e), this.updateGizmoRotationToMatchAttachedMesh && (N.toRotationMatrix(f), _ = g.TransformCoordinates(p, f));\n let Ie = !1;\n if (i.utilityLayerScene.activeCamera) {\n const k = i.utilityLayerScene.activeCamera.position.subtract(j).normalize();\n g.Dot(k, _) > 0 && (p.scaleInPlace(-1), _.scaleInPlace(-1), Ie = !0);\n }\n g.Dot(_, le) > 0 && (Se = -Se), w.Vector3[0].set(Se, 0, 0), this.dragBehavior.validateDrag(w.Vector3[0]) || (Se = 0);\n let Y = !1;\n if (this.snapDistance != 0)\n if (x += Se, Math.abs(x) > this.snapDistance) {\n let k = Math.floor(Math.abs(x) / this.snapDistance);\n x < 0 && (k *= -1), x = x % this.snapDistance, Se = this.snapDistance * k, Y = !0;\n } else\n Se = 0;\n const M = Math.sin(Se / 2);\n if (T.set(p.x * M, p.y * M, p.z * M, Math.cos(Se / 2)), v.determinant() > 0) {\n const k = new g();\n T.toEulerAnglesToRef(k), se.RotationYawPitchRollToRef(k.y, -k.x, -k.z, T);\n }\n if (this.updateGizmoRotationToMatchAttachedMesh)\n N.multiplyToRef(T, N), N.normalize(), O.ComposeToRef(P, N, F, this.attachedNode.getWorldMatrix());\n else {\n T.toRotationMatrix(w.Matrix[0]);\n const k = this.attachedNode.getWorldMatrix().getTranslation();\n this.attachedNode.getWorldMatrix().multiplyToRef(w.Matrix[0], this.attachedNode.getWorldMatrix()), this.attachedNode.getWorldMatrix().setTranslation(k);\n }\n d.copyFrom(C.dragPlanePoint), Y && (m.snapDistance = Se, this.onSnapObservable.notifyObservers(m)), this._angles.y += Se, this.angle += Ie ? -Se : Se, this._rotationShaderMaterial.setVector3(\"angles\", this._angles), this._matrixChanged();\n }\n });\n const E = i._getSharedGizmoLight();\n E.includedOnlyMeshes = E.includedOnlyMeshes.concat(this._rootMesh.getChildMeshes(!1));\n const b = {\n colliderMeshes: [u],\n gizmoMeshes: [c],\n material: this._coloredMaterial,\n hoverMaterial: this._hoverMaterial,\n disableMaterial: this._disableMaterial,\n active: !1,\n dragBehavior: this.dragBehavior\n };\n (S = this._parent) == null || S.addToAxisCache(this._gizmoMesh, b), this._pointerObserver = i.utilityLayerScene.onPointerObservable.add((C) => {\n var P;\n if (!this._customMeshSet && (this.dragBehavior.maxDragAngle = Bo.MaxDragAngle, this._isHovered = b.colliderMeshes.indexOf((P = C == null ? void 0 : C.pickInfo) == null ? void 0 : P.pickedMesh) != -1, !this._parent)) {\n const N = b.dragBehavior.enabled ? this._isHovered || this._dragging ? this._hoverMaterial : this._coloredMaterial : this._disableMaterial;\n this._setGizmoMeshMaterial(b.gizmoMeshes, N);\n }\n }), this.dragBehavior.onEnabledObservable.add((C) => {\n this._setGizmoMeshMaterial(b.gizmoMeshes, C ? this._coloredMaterial : this._disableMaterial);\n });\n }\n /**\n * @internal\n * Create Geometry for Gizmo\n * @param parentMesh\n * @param thickness\n * @param tessellation\n * @returns\n */\n _createGizmoMesh(e, t, i) {\n const s = Da(\"ignore\", {\n diameter: 0.6,\n thickness: 0.03 * t,\n tessellation: i\n }, this.gizmoLayer.utilityLayerScene);\n s.visibility = 0;\n const r = Da(\"\", {\n diameter: 0.6,\n thickness: 5e-3 * t,\n tessellation: i\n }, this.gizmoLayer.utilityLayerScene);\n return r.material = this._coloredMaterial, r.rotation.x = Math.PI / 2, s.rotation.x = Math.PI / 2, e.addChild(r, qs.PreserveScaling), e.addChild(s, qs.PreserveScaling), { rotationMesh: r, collider: s };\n }\n _attachedNodeChanged(e) {\n this.dragBehavior && (this.dragBehavior.enabled = !!e);\n }\n /**\n * If the gizmo is enabled\n */\n set isEnabled(e) {\n this._isEnabled = e, e ? this._parent && (this.attachedMesh = this._parent.attachedMesh) : this.attachedMesh = null;\n }\n get isEnabled() {\n return this._isEnabled;\n }\n /**\n * Disposes of the gizmo\n */\n dispose() {\n this.onSnapObservable.clear(), this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver), this.dragBehavior.detach(), this._gizmoMesh && this._gizmoMesh.dispose(), this._rotationDisplayPlane && this._rotationDisplayPlane.dispose(), this._rotationShaderMaterial && this._rotationShaderMaterial.dispose(), [this._coloredMaterial, this._hoverMaterial, this._disableMaterial].forEach((e) => {\n e && e.dispose();\n }), super.dispose();\n }\n}\nBo.MaxDragAngle = Math.PI * 9 / 20;\nBo._RotationGizmoVertexShader = `\n precision highp float;\n attribute vec3 position;\n attribute vec2 uv;\n uniform mat4 worldViewProjection;\n varying vec3 vPosition;\n varying vec2 vUV;\n\n void main(void) {\n gl_Position = worldViewProjection * vec4(position, 1.0);\n vUV = uv;\n }`;\nBo._RotationGizmoFragmentShader = `\n precision highp float;\n varying vec2 vUV;\n varying vec3 vPosition;\n uniform vec3 angles;\n uniform vec3 rotationColor;\n\n #define twopi 6.283185307\n\n void main(void) {\n vec2 uv = vUV - vec2(0.5);\n float angle = atan(uv.y, uv.x) + 3.141592;\n float delta = gl_FrontFacing ? angles.y : -angles.y;\n float begin = angles.x - delta * angles.z;\n float start = (begin < (begin + delta)) ? begin : (begin + delta);\n float end = (begin > (begin + delta)) ? begin : (begin + delta);\n float len = sqrt(dot(uv,uv));\n float opacity = 1. - step(0.5, len);\n\n float base = abs(floor(start / twopi)) * twopi;\n start += base;\n end += base;\n\n float intensity = 0.;\n for (int i = 0; i < 5; i++)\n {\n intensity += max(step(start, angle) - step(end, angle), 0.);\n angle += twopi;\n }\n gl_FragColor = vec4(rotationColor, min(intensity * 0.25, 0.8)) * opacity;\n }\n `;\nfunction zp(a, e = {}, t) {\n e.diameter || (e.diameter = 1), e.segments || (e.segments = 16);\n const i = Tr(\"\", { slice: 0.5, diameter: e.diameter, segments: e.segments }, t), s = P_(\"\", { radius: e.diameter / 2, tessellation: e.segments * 3 + (4 - e.segments) }, t);\n s.rotation.x = -Math.PI / 2, s.parent = i;\n const r = H.MergeMeshes([s, i], !0);\n return r.name = a, r;\n}\nconst BK = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateHemisphere: zp\n};\nH.CreateHemisphere = (a, e, t, i) => zp(a, {\n segments: e,\n diameter: t\n}, i);\nLt.AddNodeConstructor(\"Light_Type_2\", (a, e) => () => new un(a, g.Zero(), g.Zero(), 0, 0, e));\nclass un extends Ll {\n /**\n * Gets the cone angle of the spot light in Radians.\n */\n get angle() {\n return this._angle;\n }\n /**\n * Sets the cone angle of the spot light in Radians.\n */\n set angle(e) {\n this._angle = e, this._cosHalfAngle = Math.cos(e * 0.5), this._projectionTextureProjectionLightDirty = !0, this.forceProjectionMatrixCompute(), this._computeAngleValues();\n }\n /**\n * Only used in gltf falloff mode, this defines the angle where\n * the directional falloff will start before cutting at angle which could be seen\n * as outer angle.\n */\n get innerAngle() {\n return this._innerAngle;\n }\n /**\n * Only used in gltf falloff mode, this defines the angle where\n * the directional falloff will start before cutting at angle which could be seen\n * as outer angle.\n */\n set innerAngle(e) {\n this._innerAngle = e, this._computeAngleValues();\n }\n /**\n * Allows scaling the angle of the light for shadow generation only.\n */\n get shadowAngleScale() {\n return this._shadowAngleScale;\n }\n /**\n * Allows scaling the angle of the light for shadow generation only.\n */\n set shadowAngleScale(e) {\n this._shadowAngleScale = e, this.forceProjectionMatrixCompute();\n }\n /**\n * Allows reading the projection texture\n */\n get projectionTextureMatrix() {\n return this._projectionTextureMatrix;\n }\n /**\n * Gets the near clip of the Spotlight for texture projection.\n */\n get projectionTextureLightNear() {\n return this._projectionTextureLightNear;\n }\n /**\n * Sets the near clip of the Spotlight for texture projection.\n */\n set projectionTextureLightNear(e) {\n this._projectionTextureLightNear = e, this._projectionTextureProjectionLightDirty = !0;\n }\n /**\n * Gets the far clip of the Spotlight for texture projection.\n */\n get projectionTextureLightFar() {\n return this._projectionTextureLightFar;\n }\n /**\n * Sets the far clip of the Spotlight for texture projection.\n */\n set projectionTextureLightFar(e) {\n this._projectionTextureLightFar = e, this._projectionTextureProjectionLightDirty = !0;\n }\n /**\n * Gets the Up vector of the Spotlight for texture projection.\n */\n get projectionTextureUpDirection() {\n return this._projectionTextureUpDirection;\n }\n /**\n * Sets the Up vector of the Spotlight for texture projection.\n */\n set projectionTextureUpDirection(e) {\n this._projectionTextureUpDirection = e, this._projectionTextureProjectionLightDirty = !0;\n }\n /**\n * Gets the projection texture of the light.\n */\n get projectionTexture() {\n return this._projectionTexture;\n }\n /**\n * Sets the projection texture of the light.\n */\n set projectionTexture(e) {\n this._projectionTexture !== e && (this._projectionTexture = e, this._projectionTextureDirty = !0, this._projectionTexture && !this._projectionTexture.isReady() && (un._IsProceduralTexture(this._projectionTexture) ? this._projectionTexture.getEffect().executeWhenCompiled(() => {\n this._markMeshesAsLightDirty();\n }) : un._IsTexture(this._projectionTexture) && this._projectionTexture.onLoadObservable.addOnce(() => {\n this._markMeshesAsLightDirty();\n })));\n }\n static _IsProceduralTexture(e) {\n return e.onGeneratedObservable !== void 0;\n }\n static _IsTexture(e) {\n return e.onLoadObservable !== void 0;\n }\n /**\n * Gets or sets the light projection matrix as used by the projection texture\n */\n get projectionTextureProjectionLightMatrix() {\n return this._projectionTextureProjectionLightMatrix;\n }\n set projectionTextureProjectionLightMatrix(e) {\n this._projectionTextureProjectionLightMatrix = e, this._projectionTextureProjectionLightDirty = !1, this._projectionTextureDirty = !0;\n }\n /**\n * Creates a SpotLight object in the scene. A spot light is a simply light oriented cone.\n * It can cast shadows.\n * Documentation : https://doc.babylonjs.com/features/featuresDeepDive/lights/lights_introduction\n * @param name The light friendly name\n * @param position The position of the spot light in the scene\n * @param direction The direction of the light in the scene\n * @param angle The cone angle of the light in Radians\n * @param exponent The light decay speed with the distance from the emission spot\n * @param scene The scene the lights belongs to\n */\n constructor(e, t, i, s, r, n) {\n super(e, n), this._innerAngle = 0, this._projectionTextureMatrix = O.Zero(), this._projectionTextureLightNear = 1e-6, this._projectionTextureLightFar = 1e3, this._projectionTextureUpDirection = g.Up(), this._projectionTextureViewLightDirty = !0, this._projectionTextureProjectionLightDirty = !0, this._projectionTextureDirty = !0, this._projectionTextureViewTargetVector = g.Zero(), this._projectionTextureViewLightMatrix = O.Zero(), this._projectionTextureProjectionLightMatrix = O.Zero(), this._projectionTextureScalingMatrix = O.FromValues(0.5, 0, 0, 0, 0, 0.5, 0, 0, 0, 0, 0.5, 0, 0.5, 0.5, 0.5, 1), this.position = t, this.direction = i, this.angle = s, this.exponent = r;\n }\n /**\n * Returns the string \"SpotLight\".\n * @returns the class name\n */\n getClassName() {\n return \"SpotLight\";\n }\n /**\n * Returns the integer 2.\n * @returns The light Type id as a constant defines in Light.LIGHTTYPEID_x\n */\n getTypeID() {\n return at.LIGHTTYPEID_SPOTLIGHT;\n }\n /**\n * Overrides the direction setter to recompute the projection texture view light Matrix.\n * @param value\n */\n _setDirection(e) {\n super._setDirection(e), this._projectionTextureViewLightDirty = !0;\n }\n /**\n * Overrides the position setter to recompute the projection texture view light Matrix.\n * @param value\n */\n _setPosition(e) {\n super._setPosition(e), this._projectionTextureViewLightDirty = !0;\n }\n /**\n * Sets the passed matrix \"matrix\" as perspective projection matrix for the shadows and the passed view matrix with the fov equal to the SpotLight angle and and aspect ratio of 1.0.\n * Returns the SpotLight.\n * @param matrix\n * @param viewMatrix\n * @param renderList\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _setDefaultShadowProjectionMatrix(e, t, i) {\n const s = this.getScene().activeCamera;\n if (!s)\n return;\n this._shadowAngleScale = this._shadowAngleScale || 1;\n const r = this._shadowAngleScale * this._angle, n = this.shadowMinZ !== void 0 ? this.shadowMinZ : s.minZ, o = this.shadowMaxZ !== void 0 ? this.shadowMaxZ : s.maxZ, l = this.getScene().getEngine().useReverseDepthBuffer;\n O.PerspectiveFovLHToRef(r, 1, l ? o : n, l ? n : o, e, !0, this._scene.getEngine().isNDCHalfZRange, void 0, l);\n }\n _computeProjectionTextureViewLightMatrix() {\n this._projectionTextureViewLightDirty = !1, this._projectionTextureDirty = !0, this.getAbsolutePosition().addToRef(this.getShadowDirection(), this._projectionTextureViewTargetVector), O.LookAtLHToRef(this.getAbsolutePosition(), this._projectionTextureViewTargetVector, this._projectionTextureUpDirection, this._projectionTextureViewLightMatrix);\n }\n _computeProjectionTextureProjectionLightMatrix() {\n this._projectionTextureProjectionLightDirty = !1, this._projectionTextureDirty = !0;\n const e = this.projectionTextureLightFar, t = this.projectionTextureLightNear, i = e / (e - t), s = -i * t, r = 1 / Math.tan(this._angle / 2);\n O.FromValuesToRef(r / 1, 0, 0, 0, 0, r, 0, 0, 0, 0, i, 1, 0, 0, s, 0, this._projectionTextureProjectionLightMatrix);\n }\n /**\n * Main function for light texture projection matrix computing.\n */\n _computeProjectionTextureMatrix() {\n if (this._projectionTextureDirty = !1, this._projectionTextureViewLightMatrix.multiplyToRef(this._projectionTextureProjectionLightMatrix, this._projectionTextureMatrix), this._projectionTexture instanceof X) {\n const e = this._projectionTexture.uScale / 2, t = this._projectionTexture.vScale / 2;\n O.FromValuesToRef(e, 0, 0, 0, 0, t, 0, 0, 0, 0, 0.5, 0, 0.5, 0.5, 0.5, 1, this._projectionTextureScalingMatrix);\n }\n this._projectionTextureMatrix.multiplyToRef(this._projectionTextureScalingMatrix, this._projectionTextureMatrix);\n }\n _buildUniformLayout() {\n this._uniformBuffer.addUniform(\"vLightData\", 4), this._uniformBuffer.addUniform(\"vLightDiffuse\", 4), this._uniformBuffer.addUniform(\"vLightSpecular\", 4), this._uniformBuffer.addUniform(\"vLightDirection\", 3), this._uniformBuffer.addUniform(\"vLightFalloff\", 4), this._uniformBuffer.addUniform(\"shadowsInfo\", 3), this._uniformBuffer.addUniform(\"depthValues\", 2), this._uniformBuffer.create();\n }\n _computeAngleValues() {\n this._lightAngleScale = 1 / Math.max(1e-3, Math.cos(this._innerAngle * 0.5) - this._cosHalfAngle), this._lightAngleOffset = -this._cosHalfAngle * this._lightAngleScale;\n }\n /**\n * Sets the passed Effect \"effect\" with the Light textures.\n * @param effect The effect to update\n * @param lightIndex The index of the light in the effect to update\n * @returns The light\n */\n transferTexturesToEffect(e, t) {\n return this.projectionTexture && this.projectionTexture.isReady() && (this._projectionTextureViewLightDirty && this._computeProjectionTextureViewLightMatrix(), this._projectionTextureProjectionLightDirty && this._computeProjectionTextureProjectionLightMatrix(), this._projectionTextureDirty && this._computeProjectionTextureMatrix(), e.setMatrix(\"textureProjectionMatrix\" + t, this._projectionTextureMatrix), e.setTexture(\"projectionLightTexture\" + t, this.projectionTexture)), this;\n }\n /**\n * Sets the passed Effect object with the SpotLight transformed position (or position if not parented) and normalized direction.\n * @param effect The effect to update\n * @param lightIndex The index of the light in the effect to update\n * @returns The spot light\n */\n transferToEffect(e, t) {\n let i;\n return this.computeTransformedInformation() ? (this._uniformBuffer.updateFloat4(\"vLightData\", this.transformedPosition.x, this.transformedPosition.y, this.transformedPosition.z, this.exponent, t), i = g.Normalize(this.transformedDirection)) : (this._uniformBuffer.updateFloat4(\"vLightData\", this.position.x, this.position.y, this.position.z, this.exponent, t), i = g.Normalize(this.direction)), this._uniformBuffer.updateFloat4(\"vLightDirection\", i.x, i.y, i.z, this._cosHalfAngle, t), this._uniformBuffer.updateFloat4(\"vLightFalloff\", this.range, this._inverseSquaredRange, this._lightAngleScale, this._lightAngleOffset, t), this;\n }\n transferToNodeMaterialEffect(e, t) {\n let i;\n return this.computeTransformedInformation() ? i = g.Normalize(this.transformedDirection) : i = g.Normalize(this.direction), this.getScene().useRightHandedSystem ? e.setFloat3(t, -i.x, -i.y, -i.z) : e.setFloat3(t, i.x, i.y, i.z), this;\n }\n /**\n * Disposes the light and the associated resources.\n */\n dispose() {\n super.dispose(), this._projectionTexture && this._projectionTexture.dispose();\n }\n /**\n * Gets the minZ used for shadow according to both the scene and the light.\n * @param activeCamera The camera we are returning the min for\n * @returns the depth min z\n */\n getDepthMinZ(e) {\n const t = this._scene.getEngine(), i = this.shadowMinZ !== void 0 ? this.shadowMinZ : e.minZ;\n return t.useReverseDepthBuffer && t.isNDCHalfZRange ? i : this._scene.getEngine().isNDCHalfZRange ? 0 : i;\n }\n /**\n * Gets the maxZ used for shadow according to both the scene and the light.\n * @param activeCamera The camera we are returning the max for\n * @returns the depth max z\n */\n getDepthMaxZ(e) {\n const t = this._scene.getEngine(), i = this.shadowMaxZ !== void 0 ? this.shadowMaxZ : e.maxZ;\n return t.useReverseDepthBuffer && t.isNDCHalfZRange ? 0 : i;\n }\n /**\n * Prepares the list of defines specific to the light type.\n * @param defines the list of defines\n * @param lightIndex defines the index of the light for the effect\n */\n prepareLightSpecificDefines(e, t) {\n e[\"SPOTLIGHT\" + t] = !0, e[\"PROJECTEDLIGHTTEXTURE\" + t] = !!(this.projectionTexture && this.projectionTexture.isReady());\n }\n}\ny([\n I()\n], un.prototype, \"angle\", null);\ny([\n I()\n], un.prototype, \"innerAngle\", null);\ny([\n I()\n], un.prototype, \"shadowAngleScale\", null);\ny([\n I()\n], un.prototype, \"exponent\", void 0);\ny([\n I()\n], un.prototype, \"projectionTextureLightNear\", null);\ny([\n I()\n], un.prototype, \"projectionTextureLightFar\", null);\ny([\n I()\n], un.prototype, \"projectionTextureUpDirection\", null);\ny([\n xt(\"projectedLightTexture\")\n], un.prototype, \"_projectionTexture\", void 0);\nU(\"BABYLON.SpotLight\", un);\nclass Xn extends qs {\n /**\n * Creates a LightGizmo\n * @param gizmoLayer The utility layer the gizmo will be added to\n */\n constructor(e = Ci.DefaultUtilityLayer) {\n super(e), this._cachedPosition = new g(), this._cachedForward = new g(0, 0, 1), this._pointerObserver = null, this.onClickedObservable = new G(), this._light = null, this.attachedMesh = new H(\"\", this.gizmoLayer.utilityLayerScene), this._attachedMeshParent = new Ye(\"parent\", this.gizmoLayer.utilityLayerScene), this.attachedMesh.parent = this._attachedMeshParent, this._material = new ye(\"light\", this.gizmoLayer.utilityLayerScene), this._material.diffuseColor = new re(0.5, 0.5, 0.5), this._material.specularColor = new re(0.1, 0.1, 0.1), this._pointerObserver = e.utilityLayerScene.onPointerObservable.add((t) => {\n this._light && (this._isHovered = !!(t.pickInfo && this._rootMesh.getChildMeshes().indexOf(t.pickInfo.pickedMesh) != -1), this._isHovered && t.event.button === 0 && this.onClickedObservable.notifyObservers(this._light));\n }, Pe.POINTERDOWN);\n }\n /**\n * Override attachedNode because lightgizmo only support attached mesh\n * It will return the attached mesh (if any) and setting an attached node will log\n * a warning\n */\n get attachedNode() {\n return this.attachedMesh;\n }\n set attachedNode(e) {\n L.Warn(\"Nodes cannot be attached to LightGizmo. Attach to a mesh instead.\");\n }\n /**\n * The light that the gizmo is attached to\n */\n set light(e) {\n if (this._light = e, e) {\n this._lightMesh && this._lightMesh.dispose(), e instanceof Gl ? this._lightMesh = Xn._CreateHemisphericLightMesh(this.gizmoLayer.utilityLayerScene) : e instanceof bn ? this._lightMesh = Xn._CreateDirectionalLightMesh(this.gizmoLayer.utilityLayerScene) : e instanceof un ? this._lightMesh = Xn._CreateSpotLightMesh(this.gizmoLayer.utilityLayerScene) : this._lightMesh = Xn._CreatePointLightMesh(this.gizmoLayer.utilityLayerScene), this._lightMesh.getChildMeshes(!1).forEach((i) => {\n i.material = this._material;\n }), this._lightMesh.parent = this._rootMesh;\n const t = this.gizmoLayer._getSharedGizmoLight();\n if (t.includedOnlyMeshes = t.includedOnlyMeshes.concat(this._lightMesh.getChildMeshes(!1)), this._lightMesh.rotationQuaternion = new se(), this.attachedMesh.reservedDataStore || (this.attachedMesh.reservedDataStore = {}), this.attachedMesh.reservedDataStore.lightGizmo = this, e.parent && this._attachedMeshParent.freezeWorldMatrix(e.parent.getWorldMatrix()), e.position && (this.attachedMesh.position.copyFrom(e.position), this.attachedMesh.computeWorldMatrix(!0), this._cachedPosition.copyFrom(this.attachedMesh.position)), e.direction) {\n this.attachedMesh.setDirection(e.direction), this.attachedMesh.computeWorldMatrix(!0);\n const i = this._getMeshForward();\n this._cachedForward.copyFrom(i);\n }\n this._update();\n }\n }\n get light() {\n return this._light;\n }\n /**\n * Gets the material used to render the light gizmo\n */\n get material() {\n return this._material;\n }\n /**\n * @internal\n * returns mesh forward\n */\n _getMeshForward() {\n let e = this.attachedMesh.forward;\n return this.attachedMesh.getScene().useRightHandedSystem && (e.negateToRef(w.Vector3[0]), e = w.Vector3[0]), e;\n }\n /**\n * @internal\n * Updates the gizmo to match the attached mesh's position/rotation\n */\n _update() {\n if (super._update(), !!this._light) {\n if (this._light.parent && this._attachedMeshParent.freezeWorldMatrix(this._light.parent.getWorldMatrix()), this._light.position)\n if (this.attachedMesh.position.equals(this._cachedPosition))\n this.attachedMesh.position.copyFrom(this._light.position), this.attachedMesh.computeWorldMatrix(!0), this._cachedPosition.copyFrom(this.attachedMesh.position);\n else {\n const e = this.attachedMesh.position;\n this._light.position = new g(e.x, e.y, e.z), this._cachedPosition.copyFrom(this.attachedMesh.position);\n }\n if (this._light.direction) {\n const e = this._getMeshForward();\n if (g.DistanceSquared(e, this._cachedForward) > 1e-4) {\n const t = e;\n this._light.direction = new g(t.x, t.y, t.z), this._cachedForward.copyFrom(e);\n } else g.DistanceSquared(e, this._light.direction) > 1e-4 && (this.attachedMesh.setDirection(this._light.direction), this.attachedMesh.computeWorldMatrix(!0), this._cachedForward.copyFrom(e));\n }\n }\n }\n /**\n * Disposes of the light gizmo\n */\n dispose() {\n this.onClickedObservable.clear(), this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver), this._material.dispose(), super.dispose(), this._attachedMeshParent.dispose();\n }\n static _CreateHemisphericLightMesh(e) {\n const t = new H(\"hemisphereLight\", e), i = zp(t.name, { segments: 10, diameter: 1 }, e);\n i.position.z = -0.15, i.rotation.x = Math.PI / 2, i.parent = t;\n const s = this._CreateLightLines(3, e);\n return s.parent = t, t.scaling.scaleInPlace(Xn._Scale), t.rotation.x = Math.PI / 2, t;\n }\n static _CreatePointLightMesh(e) {\n const t = new H(\"pointLight\", e), i = Tr(t.name, { segments: 10, diameter: 1 }, e);\n i.rotation.x = Math.PI / 2, i.parent = t;\n const s = this._CreateLightLines(5, e);\n return s.parent = t, t.scaling.scaleInPlace(Xn._Scale), t.rotation.x = Math.PI / 2, t;\n }\n static _CreateSpotLightMesh(e) {\n const t = new H(\"spotLight\", e), i = Tr(t.name, { segments: 10, diameter: 1 }, e);\n i.parent = t;\n const s = zp(t.name, { segments: 10, diameter: 2 }, e);\n s.parent = t, s.rotation.x = -Math.PI / 2;\n const r = this._CreateLightLines(2, e);\n return r.parent = t, t.scaling.scaleInPlace(Xn._Scale), t.rotation.x = Math.PI / 2, t;\n }\n static _CreateDirectionalLightMesh(e) {\n const t = new H(\"directionalLight\", e), i = new H(t.name, e);\n i.parent = t;\n const s = Tr(t.name, { diameter: 1.2, segments: 10 }, e);\n s.parent = i;\n const r = hn(t.name, {\n updatable: !1,\n height: 6,\n diameterTop: 0.3,\n diameterBottom: 0.3,\n tessellation: 6,\n subdivisions: 1\n }, e);\n r.parent = i;\n let n = r.clone(t.name);\n n.scaling.y = 0.5, n.position.x += 1.25;\n let o = r.clone(t.name);\n o.scaling.y = 0.5, o.position.x += -1.25;\n const l = hn(t.name, {\n updatable: !1,\n height: 1,\n diameterTop: 0,\n diameterBottom: 0.6,\n tessellation: 6,\n subdivisions: 1\n }, e);\n return l.position.y += 3, l.parent = i, n = l.clone(t.name), n.position.y = 1.5, n.position.x += 1.25, o = l.clone(t.name), o.position.y = 1.5, o.position.x += -1.25, i.scaling.scaleInPlace(Xn._Scale), i.rotation.z = Math.PI / 2, i.rotation.y = Math.PI / 2, t;\n }\n}\nXn._Scale = 7e-3;\nXn._CreateLightLines = (a, e) => {\n const i = new H(\"root\", e);\n i.rotation.x = Math.PI / 2;\n const s = new H(\"linePivot\", e);\n s.parent = i;\n const r = hn(\"line\", {\n updatable: !1,\n height: 2,\n diameterTop: 0.2,\n diameterBottom: 0.3,\n tessellation: 6,\n subdivisions: 1\n }, e);\n if (r.position.y = r.scaling.y / 2 + 1.2, r.parent = s, a < 2)\n return s;\n for (let o = 0; o < 4; o++) {\n const l = s.clone(\"lineParentClone\");\n l.rotation.z = Math.PI / 4, l.rotation.y = Math.PI / 2 + Math.PI / 2 * o, l.getChildMeshes()[0].scaling.y = 0.5, l.getChildMeshes()[0].scaling.x = l.getChildMeshes()[0].scaling.z = 0.8, l.getChildMeshes()[0].position.y = l.getChildMeshes()[0].scaling.y / 2 + 1.2;\n }\n if (a < 3)\n return i;\n for (let o = 0; o < 4; o++) {\n const l = s.clone(\"linePivotClone\");\n l.rotation.z = Math.PI / 2, l.rotation.y = Math.PI / 2 * o;\n }\n if (a < 4)\n return i;\n for (let o = 0; o < 4; o++) {\n const l = s.clone(\"linePivotClone\");\n l.rotation.z = Math.PI + Math.PI / 4, l.rotation.y = Math.PI / 2 + Math.PI / 2 * o, l.getChildMeshes()[0].scaling.y = 0.5, l.getChildMeshes()[0].scaling.x = l.getChildMeshes()[0].scaling.z = 0.8, l.getChildMeshes()[0].position.y = l.getChildMeshes()[0].scaling.y / 2 + 1.2;\n }\n if (a < 5)\n return i;\n const n = s.clone(\"linePivotClone\");\n return n.rotation.z = Math.PI, i;\n};\nclass su extends qs {\n /**\n * Creates a CameraGizmo\n * @param gizmoLayer The utility layer the gizmo will be added to\n * @param gizmoColor Camera mesh color. Default is Gray\n * @param frustumLinesColor Frustum lines color. Default is White\n */\n constructor(e = Ci.DefaultUtilityLayer, t, i) {\n super(e), this._pointerObserver = null, this.onClickedObservable = new G(), this._camera = null, this._invProjection = new O(), this._material = new ye(\"cameraGizmoMaterial\", this.gizmoLayer.utilityLayerScene), this._frustumLinesColor = i, this._material.diffuseColor = t ?? new re(0.5, 0.5, 0.5), this._material.specularColor = new re(0.1, 0.1, 0.1), this._pointerObserver = e.utilityLayerScene.onPointerObservable.add((s) => {\n this._camera && (this._isHovered = !!(s.pickInfo && this._rootMesh.getChildMeshes().indexOf(s.pickInfo.pickedMesh) != -1), this._isHovered && s.event.button === 0 && this.onClickedObservable.notifyObservers(this._camera));\n }, Pe.POINTERDOWN);\n }\n /** Gets or sets a boolean indicating if frustum lines must be rendered (true by default)) */\n get displayFrustum() {\n return this._cameraLinesMesh.isEnabled();\n }\n set displayFrustum(e) {\n this._cameraLinesMesh.setEnabled(e);\n }\n /**\n * The camera that the gizmo is attached to\n */\n set camera(e) {\n var t;\n if (this._camera = e, this.attachedNode = e, e) {\n this._customMeshSet || (this._cameraMesh && this._cameraMesh.dispose(), this._cameraMesh = su._CreateCameraMesh(this.gizmoLayer.utilityLayerScene), this._cameraMesh.getChildMeshes(!1).forEach((r) => {\n r.material = this._material;\n }), this._cameraMesh.parent = this._rootMesh), this._cameraLinesMesh && this._cameraLinesMesh.dispose();\n const i = ((t = this._frustumLinesColor) == null ? void 0 : t.toColor4(1)) ?? new Ce(1, 1, 1, 1);\n this._cameraLinesMesh = su._CreateCameraFrustum(this.gizmoLayer.utilityLayerScene, i), this._cameraLinesMesh.parent = this._rootMesh, this.gizmoLayer.utilityLayerScene.activeCamera && this.gizmoLayer.utilityLayerScene.activeCamera.maxZ < e.maxZ * 1.5 && (this.gizmoLayer.utilityLayerScene.activeCamera.maxZ = e.maxZ * 1.5), this.attachedNode.reservedDataStore || (this.attachedNode.reservedDataStore = {}), this.attachedNode.reservedDataStore.cameraGizmo = this;\n const s = this.gizmoLayer._getSharedGizmoLight();\n s.includedOnlyMeshes = s.includedOnlyMeshes.concat(this._cameraMesh.getChildMeshes(!1)), this._update();\n }\n }\n get camera() {\n return this._camera;\n }\n /**\n * Gets the material used to render the camera gizmo\n */\n get material() {\n return this._material;\n }\n /**\n * @internal\n * Updates the gizmo to match the attached mesh's position/rotation\n */\n _update() {\n super._update(), this._camera && (this._camera.getProjectionMatrix().invertToRef(this._invProjection), this._cameraLinesMesh.setPivotMatrix(this._invProjection, !1), this._cameraLinesMesh.scaling.x = 1 / this._rootMesh.scaling.x, this._cameraLinesMesh.scaling.y = 1 / this._rootMesh.scaling.y, this._cameraLinesMesh.scaling.z = 1 / this._rootMesh.scaling.z, this._cameraMesh.parent = null, this._cameraMesh.rotation.y = Math.PI * 0.5 * (this._camera.getScene().useRightHandedSystem ? 1 : -1), this._cameraMesh.parent = this._rootMesh);\n }\n /**\n * Disposes and replaces the current camera mesh in the gizmo with the specified mesh\n * @param mesh The mesh to replace the default mesh of the camera gizmo\n */\n setCustomMesh(e) {\n if (e.getScene() != this.gizmoLayer.utilityLayerScene)\n throw \"When setting a custom mesh on a gizmo, the custom meshes scene must be the same as the gizmos (eg. gizmo.gizmoLayer.utilityLayerScene)\";\n this._cameraMesh && this._cameraMesh.dispose(), this._cameraMesh = e, this._cameraMesh.parent = this._rootMesh, this._customMeshSet = !0;\n }\n /**\n * Disposes of the camera gizmo\n */\n dispose() {\n this.onClickedObservable.clear(), this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver), this._cameraMesh && this._cameraMesh.dispose(), this._cameraLinesMesh && this._cameraLinesMesh.dispose(), this._material.dispose(), super.dispose();\n }\n static _CreateCameraMesh(e) {\n const t = new H(\"rootCameraGizmo\", e), i = new H(t.name, e);\n i.parent = t;\n const s = Bl(t.name, { width: 1, height: 0.8, depth: 0.5 }, e);\n s.parent = i;\n const r = hn(t.name, { height: 0.5, diameterTop: 0.8, diameterBottom: 0.8 }, e);\n r.parent = i, r.position.y = 0.3, r.position.x = -0.6, r.rotation.x = Math.PI * 0.5;\n const n = hn(t.name, { height: 0.5, diameterTop: 0.6, diameterBottom: 0.6 }, e);\n n.parent = i, n.position.y = 0.5, n.position.x = 0.4, n.rotation.x = Math.PI * 0.5;\n const o = hn(t.name, { height: 0.5, diameterTop: 0.5, diameterBottom: 0.5 }, e);\n return o.parent = i, o.position.y = 0, o.position.x = 0.6, o.rotation.z = Math.PI * 0.5, t.scaling.scaleInPlace(su._Scale), i.position.x = -0.9, t;\n }\n static _CreateCameraFrustum(e, t) {\n const i = new H(\"rootCameraGizmo\", e), s = new H(i.name, e);\n s.parent = i;\n for (let r = 0; r < 4; r += 2)\n for (let n = 0; n < 4; n += 2) {\n let o = Wo(\"lines\", { points: [new g(-1 + n, -1 + r, -1), new g(-1 + n, -1 + r, 1)], colors: [t, t] }, e);\n o.parent = s, o.alwaysSelectAsActiveMesh = !0, o.isPickable = !1, o = Wo(\"lines\", { points: [new g(-1, -1 + n, -1 + r), new g(1, -1 + n, -1 + r)], colors: [t, t] }, e), o.parent = s, o.alwaysSelectAsActiveMesh = !0, o.isPickable = !1, o = Wo(\"lines\", { points: [new g(-1 + n, -1, -1 + r), new g(-1 + n, 1, -1 + r)], colors: [t, t] }, e), o.parent = s, o.alwaysSelectAsActiveMesh = !0, o.isPickable = !1;\n }\n return i;\n }\n}\nsu._Scale = 0.05;\nconst RB = \"kernelBlurVaryingDeclaration\", IB = \"varying vec2 sampleCoord{X};\";\nz.IncludesShadersStore[RB] = IB;\nconst PB = \"packingFunctions\", MB = `vec4 pack(float depth)\n{const vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const vec4 bit_mask=vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}\nfloat unpack(vec4 color)\n{const vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(color,bit_shift);}`;\nz.IncludesShadersStore[PB] = MB;\nconst DB = \"kernelBlurFragment\", OB = `#ifdef DOF\nfactor=sampleCoC(sampleCoord{X}); \ncomputedWeight=KERNEL_WEIGHT{X}*factor;sumOfWeights+=computedWeight;\n#else\ncomputedWeight=KERNEL_WEIGHT{X};\n#endif\n#ifdef PACKEDFLOAT\nblend+=unpack(texture2D(textureSampler,sampleCoord{X}))*computedWeight;\n#else\nblend+=texture2D(textureSampler,sampleCoord{X})*computedWeight;\n#endif\n`;\nz.IncludesShadersStore[DB] = OB;\nconst wB = \"kernelBlurFragment2\", NB = `#ifdef DOF\nfactor=sampleCoC(sampleCenter+delta*KERNEL_DEP_OFFSET{X});computedWeight=KERNEL_DEP_WEIGHT{X}*factor;sumOfWeights+=computedWeight;\n#else\ncomputedWeight=KERNEL_DEP_WEIGHT{X};\n#endif\n#ifdef PACKEDFLOAT\nblend+=unpack(texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X}))*computedWeight;\n#else\nblend+=texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X})*computedWeight;\n#endif\n`;\nz.IncludesShadersStore[wB] = NB;\nconst FB = \"kernelBlurPixelShader\", LB = `uniform sampler2D textureSampler;uniform vec2 delta;varying vec2 sampleCenter;\n#ifdef DOF\nuniform sampler2D circleOfConfusionSampler;float sampleCoC(in vec2 offset) {float coc=texture2D(circleOfConfusionSampler,offset).r;return coc; }\n#endif\n#include[0..varyingCount]\n#ifdef PACKEDFLOAT\n#include\n#endif\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{float computedWeight=0.0;\n#ifdef PACKEDFLOAT\nfloat blend=0.;\n#else\nvec4 blend=vec4(0.);\n#endif\n#ifdef DOF\nfloat sumOfWeights=CENTER_WEIGHT; \nfloat factor=0.0;\n#ifdef PACKEDFLOAT\nblend+=unpack(texture2D(textureSampler,sampleCenter))*CENTER_WEIGHT;\n#else\nblend+=texture2D(textureSampler,sampleCenter)*CENTER_WEIGHT;\n#endif\n#endif\n#include[0..varyingCount]\n#include[0..depCount]\n#ifdef PACKEDFLOAT\ngl_FragColor=pack(blend);\n#else\ngl_FragColor=blend;\n#endif\n#ifdef DOF\ngl_FragColor/=sumOfWeights;\n#endif\n}`;\nz.ShadersStore[FB] = LB;\nconst BB = \"kernelBlurVertex\", VB = \"sampleCoord{X}=sampleCenter+delta*KERNEL_OFFSET{X};\";\nz.IncludesShadersStore[BB] = VB;\nconst UB = \"kernelBlurVertexShader\", kB = `attribute vec2 position;uniform vec2 delta;varying vec2 sampleCenter;\n#include[0..varyingCount]\nconst vec2 madd=vec2(0.5,0.5);\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nsampleCenter=(position*madd+madd);\n#include[0..varyingCount]\ngl_Position=vec4(position,0.0,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}`;\nz.ShadersStore[UB] = kB;\nclass As extends Be {\n /**\n * Sets the length in pixels of the blur sample region\n */\n set kernel(e) {\n this._idealKernel !== e && (e = Math.max(e, 1), this._idealKernel = e, this._kernel = this._nearestBestKernel(e), this._blockCompilation || this._updateParameters());\n }\n /**\n * Gets the length in pixels of the blur sample region\n */\n get kernel() {\n return this._idealKernel;\n }\n /**\n * Sets whether or not the blur needs to unpack/repack floats\n */\n set packedFloat(e) {\n this._packedFloat !== e && (this._packedFloat = e, this._blockCompilation || this._updateParameters());\n }\n /**\n * Gets whether or not the blur is unpacking/repacking floats\n */\n get packedFloat() {\n return this._packedFloat;\n }\n /**\n * Gets a string identifying the name of the class\n * @returns \"BlurPostProcess\" string\n */\n getClassName() {\n return \"BlurPostProcess\";\n }\n /**\n * Creates a new instance BlurPostProcess\n * @param name The name of the effect.\n * @param direction The direction in which to blur the image.\n * @param kernel The size of the kernel to be used when computing the blur. eg. Size of 3 will blur the center pixel by 2 pixels surrounding it.\n * @param options The required width/height ratio to downsize to before computing the render pass. (Use 1.0 for full size)\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n * @param defines\n * @param _blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\n * @param textureFormat Format of textures used when performing the post process. (default: TEXTUREFORMAT_RGBA)\n */\n constructor(e, t, i, s, r, n = X.BILINEAR_SAMPLINGMODE, o, l, h = 0, c = \"\", u = !1, d = 5) {\n super(e, \"kernelBlur\", [\"delta\", \"direction\"], [\"circleOfConfusionSampler\"], s, r, n, o, l, null, h, \"kernelBlur\", { varyingCount: 0, depCount: 0 }, !0, d), this._blockCompilation = u, this._packedFloat = !1, this._staticDefines = \"\", this._staticDefines = c, this.direction = t, this.onApplyObservable.add((f) => {\n this._outputTexture ? f.setFloat2(\"delta\", 1 / this._outputTexture.width * this.direction.x, 1 / this._outputTexture.height * this.direction.y) : f.setFloat2(\"delta\", 1 / this.width * this.direction.x, 1 / this.height * this.direction.y);\n }), this.kernel = i;\n }\n /**\n * Updates the effect with the current post process compile time values and recompiles the shader.\n * @param defines Define statements that should be added at the beginning of the shader. (default: null)\n * @param uniforms Set of uniform variables that will be passed to the shader. (default: null)\n * @param samplers Set of Texture2D variables that will be passed to the shader. (default: null)\n * @param indexParameters The index parameters to be used for babylons include syntax \"#include[0..varyingCount]\". (default: undefined) See usage in babylon.blurPostProcess.ts and kernelBlur.vertex.fx\n * @param onCompiled Called when the shader has been compiled.\n * @param onError Called if there is an error when compiling a shader.\n */\n updateEffect(e = null, t = null, i = null, s, r, n) {\n this._updateParameters(r, n);\n }\n _updateParameters(e, t) {\n const i = this._kernel, s = (i - 1) / 2;\n let r = [], n = [], o = 0;\n for (let m = 0; m < i; m++) {\n const x = m / (i - 1), v = this._gaussianWeight(x * 2 - 1);\n r[m] = m - s, n[m] = v, o += v;\n }\n for (let m = 0; m < n.length; m++)\n n[m] /= o;\n const l = [], h = [], c = [];\n for (let m = 0; m <= s; m += 2) {\n const x = Math.min(m + 1, Math.floor(s));\n if (m === x)\n c.push({ o: r[m], w: n[m] });\n else {\n const T = x === s, E = n[m] + n[x] * (T ? 0.5 : 1), b = r[m] + 1 / (1 + n[m] / n[x]);\n b === 0 ? (c.push({ o: r[m], w: n[m] }), c.push({ o: r[m + 1], w: n[m + 1] })) : (c.push({ o: b, w: E }), c.push({ o: -b, w: E }));\n }\n }\n for (let m = 0; m < c.length; m++)\n h[m] = c[m].o, l[m] = c[m].w;\n r = h, n = l;\n const u = this.getEngine().getCaps().maxVaryingVectors, d = Math.max(u, 0) - 1;\n let f = Math.min(r.length, d), p = \"\";\n p += this._staticDefines, this._staticDefines.indexOf(\"DOF\") != -1 && (p += `#define CENTER_WEIGHT ${this._glslFloat(n[f - 1])}\n`, f--);\n for (let m = 0; m < f; m++)\n p += `#define KERNEL_OFFSET${m} ${this._glslFloat(r[m])}\n`, p += `#define KERNEL_WEIGHT${m} ${this._glslFloat(n[m])}\n`;\n let _ = 0;\n for (let m = d; m < r.length; m++)\n p += `#define KERNEL_DEP_OFFSET${_} ${this._glslFloat(r[m])}\n`, p += `#define KERNEL_DEP_WEIGHT${_} ${this._glslFloat(n[m])}\n`, _++;\n this.packedFloat && (p += \"#define PACKEDFLOAT 1\"), this._blockCompilation = !1, super.updateEffect(p, null, null, {\n varyingCount: f,\n depCount: _\n }, e, t);\n }\n /**\n * Best kernels are odd numbers that when divided by 2, their integer part is even, so 5, 9 or 13.\n * Other odd kernels optimize correctly but require proportionally more samples, even kernels are\n * possible but will produce minor visual artifacts. Since each new kernel requires a new shader we\n * want to minimize kernel changes, having gaps between physical kernels is helpful in that regard.\n * The gaps between physical kernels are compensated for in the weighting of the samples\n * @param idealKernel Ideal blur kernel.\n * @returns Nearest best kernel.\n */\n _nearestBestKernel(e) {\n const t = Math.round(e);\n for (const i of [t, t - 1, t + 1, t - 2, t + 2])\n if (i % 2 !== 0 && Math.floor(i / 2) % 2 === 0 && i > 0)\n return Math.max(i, 3);\n return Math.max(t, 3);\n }\n /**\n * Calculates the value of a Gaussian distribution with sigma 3 at a given point.\n * @param x The point on the Gaussian distribution to sample.\n * @returns the value of the Gaussian function at x.\n */\n _gaussianWeight(e) {\n const t = 0.3333333333333333, i = Math.sqrt(2 * Math.PI) * t, s = -(e * e / (2 * t * t));\n return 1 / i * Math.exp(s);\n }\n /**\n * Generates a string that can be used as a floating point number in GLSL.\n * @param x Value to print.\n * @param decimalFigures Number of decimal places to print the number to (excluding trailing 0s).\n * @returns GLSL float string.\n */\n _glslFloat(e, t = 8) {\n return e.toFixed(t).replace(/0+$/, \"\");\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new As(e.name, e.direction, e.kernel, e.options, t, e.renderTargetSamplingMode, i.getEngine(), e.reusable, e.textureType, void 0, !1), e, i, s);\n }\n}\ny([\n I(\"kernel\")\n], As.prototype, \"_kernel\", void 0);\ny([\n I(\"packedFloat\")\n], As.prototype, \"_packedFloat\", void 0);\ny([\n bx()\n], As.prototype, \"direction\", void 0);\nU(\"BABYLON.BlurPostProcess\", As);\nclass K_ extends Ii {\n /**\n * Define the blur ratio used to blur the reflection if needed.\n */\n set blurRatio(e) {\n this._blurRatio !== e && (this._blurRatio = e, this._preparePostProcesses());\n }\n get blurRatio() {\n return this._blurRatio;\n }\n /**\n * Define the adaptive blur kernel used to blur the reflection if needed.\n * This will autocompute the closest best match for the `blurKernel`\n */\n set adaptiveBlurKernel(e) {\n this._adaptiveBlurKernel = e, this._autoComputeBlurKernel();\n }\n /**\n * Define the blur kernel used to blur the reflection if needed.\n * Please consider using `adaptiveBlurKernel` as it could find the closest best value for you.\n */\n set blurKernel(e) {\n this.blurKernelX = e, this.blurKernelY = e;\n }\n /**\n * Define the blur kernel on the X Axis used to blur the reflection if needed.\n * Please consider using `adaptiveBlurKernel` as it could find the closest best value for you.\n */\n set blurKernelX(e) {\n this._blurKernelX !== e && (this._blurKernelX = e, this._preparePostProcesses());\n }\n get blurKernelX() {\n return this._blurKernelX;\n }\n /**\n * Define the blur kernel on the Y Axis used to blur the reflection if needed.\n * Please consider using `adaptiveBlurKernel` as it could find the closest best value for you.\n */\n set blurKernelY(e) {\n this._blurKernelY !== e && (this._blurKernelY = e, this._preparePostProcesses());\n }\n get blurKernelY() {\n return this._blurKernelY;\n }\n _autoComputeBlurKernel() {\n const e = this.getScene().getEngine(), t = this.getRenderWidth() / e.getRenderWidth(), i = this.getRenderHeight() / e.getRenderHeight();\n this.blurKernelX = this._adaptiveBlurKernel * t, this.blurKernelY = this._adaptiveBlurKernel * i;\n }\n _onRatioRescale() {\n this._sizeRatio && (this.resize(this._initialSizeParameter), this._adaptiveBlurKernel || this._preparePostProcesses()), this._adaptiveBlurKernel && this._autoComputeBlurKernel();\n }\n _updateGammaSpace() {\n const e = this.getScene();\n e && (this.gammaSpace = !e.imageProcessingConfiguration.isEnabled || !e.imageProcessingConfiguration.applyByPostProcess);\n }\n /**\n * Instantiates a Mirror Texture.\n * Mirror texture can be used to simulate the view from a mirror in a scene.\n * It will dynamically be rendered every frame to adapt to the camera point of view.\n * You can then easily use it as a reflectionTexture on a flat surface.\n * In case the surface is not a plane, please consider relying on reflection probes.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#mirrors\n * @param name\n * @param size\n * @param scene\n * @param generateMipMaps\n * @param type\n * @param samplingMode\n * @param generateDepthBuffer\n */\n constructor(e, t, i, s, r = 0, n = X.BILINEAR_SAMPLINGMODE, o = !0) {\n if (super(e, t, i, s, !0, r, !1, n, o), this.mirrorPlane = new Pr(0, 1, 0, 1), this._transformMatrix = O.Zero(), this._mirrorMatrix = O.Zero(), this._adaptiveBlurKernel = 0, this._blurKernelX = 0, this._blurKernelY = 0, this._blurRatio = 1, i = this.getScene(), !i)\n return this;\n this.ignoreCameraViewport = !0, this._updateGammaSpace(), this._imageProcessingConfigChangeObserver = i.imageProcessingConfiguration.onUpdateParameters.add(() => {\n this._updateGammaSpace();\n });\n const l = i.getEngine();\n l.supportsUniformBuffers && (this._sceneUBO = i.createSceneUniformBuffer(`Scene for Mirror Texture (name \"${e}\")`)), this.onBeforeBindObservable.add(() => {\n var c;\n (c = l._debugPushGroup) == null || c.call(l, `mirror generation for ${e}`, 1);\n }), this.onAfterUnbindObservable.add(() => {\n var c;\n (c = l._debugPopGroup) == null || c.call(l, 1);\n });\n let h;\n this.onBeforeRenderObservable.add(() => {\n this._sceneUBO && (this._currentSceneUBO = i.getSceneUniformBuffer(), i.setSceneUniformBuffer(this._sceneUBO), i.getSceneUniformBuffer().unbindEffect()), O.ReflectionToRef(this.mirrorPlane, this._mirrorMatrix), this._mirrorMatrix.multiplyToRef(i.getViewMatrix(), this._transformMatrix), i.setTransformMatrix(this._transformMatrix, i.getProjectionMatrix()), h = i.clipPlane, i.clipPlane = this.mirrorPlane, i._mirroredCameraPosition = g.TransformCoordinates(i.activeCamera.globalPosition, this._mirrorMatrix);\n }), this.onAfterRenderObservable.add(() => {\n this._sceneUBO && i.setSceneUniformBuffer(this._currentSceneUBO), i.updateTransformMatrix(), i._mirroredCameraPosition = null, i.clipPlane = h;\n });\n }\n _preparePostProcesses() {\n if (this.clearPostProcesses(!0), this._blurKernelX && this._blurKernelY) {\n const e = this.getScene().getEngine(), t = e.getCaps().textureFloatRender && e.getCaps().textureFloatLinearFiltering ? 1 : 2;\n this._blurX = new As(\"horizontal blur\", new Q(1, 0), this._blurKernelX, this._blurRatio, null, X.BILINEAR_SAMPLINGMODE, e, !1, t), this._blurX.autoClear = !1, this._blurRatio === 1 && this.samples < 2 && this._texture ? this._blurX.inputTexture = this._renderTarget : this._blurX.alwaysForcePOT = !0, this._blurY = new As(\"vertical blur\", new Q(0, 1), this._blurKernelY, this._blurRatio, null, X.BILINEAR_SAMPLINGMODE, e, !1, t), this._blurY.autoClear = !1, this._blurY.alwaysForcePOT = this._blurRatio !== 1, this.addPostProcess(this._blurX), this.addPostProcess(this._blurY);\n } else\n this._blurY && (this.removePostProcess(this._blurY), this._blurY.dispose(), this._blurY = null), this._blurX && (this.removePostProcess(this._blurX), this._blurX.dispose(), this._blurX = null);\n }\n /**\n * Clone the mirror texture.\n * @returns the cloned texture\n */\n clone() {\n const e = this.getScene();\n if (!e)\n return this;\n const t = this.getSize(), i = new K_(this.name, t.width, e, this._renderTargetOptions.generateMipMaps, this._renderTargetOptions.type, this._renderTargetOptions.samplingMode, this._renderTargetOptions.generateDepthBuffer);\n return i.hasAlpha = this.hasAlpha, i.level = this.level, i.mirrorPlane = this.mirrorPlane.clone(), this.renderList && (i.renderList = this.renderList.slice(0)), i;\n }\n /**\n * Serialize the texture to a JSON representation you could use in Parse later on\n * @returns the serialized JSON representation\n */\n serialize() {\n if (!this.name)\n return null;\n const e = super.serialize();\n return e.mirrorPlane = this.mirrorPlane.asArray(), e;\n }\n /**\n * Dispose the texture and release its associated resources.\n */\n dispose() {\n var t;\n super.dispose();\n const e = this.getScene();\n e && e.imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingConfigChangeObserver), (t = this._sceneUBO) == null || t.dispose();\n }\n}\nX._CreateMirror = (a, e, t, i) => new K_(a, e, t, i);\nconst _E = 0.8;\nclass ps extends Mt {\n /**\n * Gets or sets the size of the bounding box associated with the cube texture\n * When defined, the cubemap will switch to local mode\n * @see https://community.arm.com/graphics/b/blog/posts/reflections-based-on-local-cubemaps-in-unity\n * @example https://www.babylonjs-playground.com/#RNASML\n */\n set boundingBoxSize(e) {\n if (this._boundingBoxSize && this._boundingBoxSize.equals(e))\n return;\n this._boundingBoxSize = e;\n const t = this.getScene();\n t && t.markAllMaterialsAsDirty(1);\n }\n /**\n * Returns the bounding box size\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#using-local-cubemap-mode\n */\n get boundingBoxSize() {\n return this._boundingBoxSize;\n }\n /**\n * Sets texture matrix rotation angle around Y axis in radians.\n */\n set rotationY(e) {\n this._rotationY = e, this.setReflectionTextureMatrix(O.RotationY(this._rotationY));\n }\n /**\n * Gets texture matrix rotation angle around Y axis radians.\n */\n get rotationY() {\n return this._rotationY;\n }\n /**\n * Are mip maps generated for this texture or not.\n */\n get noMipmap() {\n return this._noMipmap;\n }\n /**\n * Gets the forced extension (if any)\n */\n get forcedExtension() {\n return this._forcedExtension;\n }\n /**\n * Creates a cube texture from an array of image urls\n * @param files defines an array of image urls\n * @param scene defines the hosting scene\n * @param noMipmap specifies if mip maps are not used\n * @returns a cube texture\n */\n static CreateFromImages(e, t, i) {\n let s = \"\";\n return e.forEach((r) => s += r), new ps(s, t, null, i, e);\n }\n /**\n * Creates and return a texture created from prefilterd data by tools like IBL Baker or Lys.\n * @param url defines the url of the prefiltered texture\n * @param scene defines the scene the texture is attached to\n * @param forcedExtension defines the extension of the file if different from the url\n * @param createPolynomials defines whether or not to create polynomial harmonics from the texture data if necessary\n * @returns the prefiltered texture\n */\n static CreateFromPrefilteredData(e, t, i = null, s = !0) {\n const r = t.useDelayedTextureLoading;\n t.useDelayedTextureLoading = !1;\n const n = new ps(e, t, null, !1, null, null, null, void 0, !0, i, s);\n return t.useDelayedTextureLoading = r, n;\n }\n /**\n * Creates a cube texture to use with reflection for instance. It can be based upon dds or six images as well\n * as prefiltered data.\n * @param rootUrl defines the url of the texture or the root name of the six images\n * @param sceneOrEngine defines the scene or engine the texture is attached to\n * @param extensionsOrOptions defines the suffixes add to the picture name in case six images are in use like _px.jpg or set of all options to create the cube texture\n * @param noMipmap defines if mipmaps should be created or not\n * @param files defines the six files to load for the different faces in that order: px, py, pz, nx, ny, nz\n * @param onLoad defines a callback triggered at the end of the file load if no errors occurred\n * @param onError defines a callback triggered in case of error during load\n * @param format defines the internal format to use for the texture once loaded\n * @param prefiltered defines whether or not the texture is created from prefiltered data\n * @param forcedExtension defines the extensions to use (force a special type of file to load) in case it is different from the file name\n * @param createPolynomials defines whether or not to create polynomial harmonics from the texture data if necessary\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\n * @param loaderOptions options to be passed to the loader\n * @param useSRGBBuffer Defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU) (default: false)\n * @returns the cube texture\n */\n constructor(e, t, i = null, s = !1, r = null, n = null, o = null, l = 5, h = !1, c = null, u = !1, d = _E, f = 0, p, _) {\n var v;\n super(t), this.onLoadObservable = new G(), this.boundingBoxPosition = g.Zero(), this._rotationY = 0, this._files = null, this._forcedExtension = null, this._extensions = null, this._textureMatrixRefraction = new O(), this._buffer = null, this.name = e, this.url = e, this._noMipmap = s, this.hasAlpha = !1, this.isCube = !0, this._textureMatrix = O.Identity(), this.coordinatesMode = X.CUBIC_MODE;\n let m = null, x = null;\n i !== null && !Array.isArray(i) ? (m = i.extensions ?? null, this._noMipmap = i.noMipmap ?? !1, r = i.files ?? null, x = i.buffer ?? null, this._format = i.format ?? 5, h = i.prefiltered ?? !1, c = i.forcedExtension ?? null, this._createPolynomials = i.createPolynomials ?? !1, this._lodScale = i.lodScale ?? _E, this._lodOffset = i.lodOffset ?? 0, this._loaderOptions = i.loaderOptions, this._useSRGBBuffer = i.useSRGBBuffer, n = i.onLoad ?? null, o = i.onError ?? null) : (this._noMipmap = s, this._format = l, this._createPolynomials = u, m = i, this._loaderOptions = p, this._useSRGBBuffer = _, this._lodScale = d, this._lodOffset = f), !(!e && !r) && this.updateURL(e, c, n, h, o, m, (v = this.getScene()) == null ? void 0 : v.useDelayedTextureLoading, r, x);\n }\n /**\n * Get the current class name of the texture useful for serialization or dynamic coding.\n * @returns \"CubeTexture\"\n */\n getClassName() {\n return \"CubeTexture\";\n }\n /**\n * Update the url (and optional buffer) of this texture if url was null during construction.\n * @param url the url of the texture\n * @param forcedExtension defines the extension to use\n * @param onLoad callback called when the texture is loaded (defaults to null)\n * @param prefiltered Defines whether the updated texture is prefiltered or not\n * @param onError callback called if there was an error during the loading process (defaults to null)\n * @param extensions defines the suffixes add to the picture name in case six images are in use like _px.jpg...\n * @param delayLoad defines if the texture should be loaded now (false by default)\n * @param files defines the six files to load for the different faces in that order: px, py, pz, nx, ny, nz\n * @param buffer the buffer to use instead of loading from the url\n */\n updateURL(e, t = null, i = null, s = !1, r = null, n = null, o = !1, l = null, h = null) {\n (!this.name || this.name.startsWith(\"data:\")) && (this.name = e), this.url = e, t && (this._forcedExtension = t);\n const c = e.lastIndexOf(\".\"), u = t || (c > -1 ? e.substring(c).toLowerCase() : \"\"), d = u.indexOf(\".dds\") === 0, f = u.indexOf(\".env\") === 0, p = u.indexOf(\".basis\") === 0;\n if (f ? (this.gammaSpace = !1, this._prefiltered = !1, this.anisotropicFilteringLevel = 1) : (this._prefiltered = s, s && (this.gammaSpace = !1, this.anisotropicFilteringLevel = 1)), l)\n this._files = l;\n else if (!p && !f && !d && !n && (n = [\"_px.jpg\", \"_py.jpg\", \"_pz.jpg\", \"_nx.jpg\", \"_ny.jpg\", \"_nz.jpg\"]), this._files = this._files || [], this._files.length = 0, n) {\n for (let _ = 0; _ < n.length; _++)\n this._files.push(e + n[_]);\n this._extensions = n;\n }\n this._buffer = h, o ? (this.delayLoadState = 4, this._delayedOnLoad = i, this._delayedOnError = r) : this._loadTexture(i, r);\n }\n /**\n * Delays loading of the cube texture\n * @param forcedExtension defines the extension to use\n */\n delayLoad(e) {\n this.delayLoadState === 4 && (e && (this._forcedExtension = e), this.delayLoadState = 1, this._loadTexture(this._delayedOnLoad, this._delayedOnError));\n }\n /**\n * Returns the reflection texture matrix\n * @returns the reflection texture matrix\n */\n getReflectionTextureMatrix() {\n return this._textureMatrix;\n }\n /**\n * Sets the reflection texture matrix\n * @param value Reflection texture matrix\n */\n setReflectionTextureMatrix(e) {\n var r, n;\n if (e.updateFlag === this._textureMatrix.updateFlag || (e.isIdentity() !== this._textureMatrix.isIdentity() && ((r = this.getScene()) == null || r.markAllMaterialsAsDirty(1, (o) => o.getActiveTextures().indexOf(this) !== -1)), this._textureMatrix = e, !((n = this.getScene()) != null && n.useRightHandedSystem)))\n return;\n const t = w.Vector3[0], i = w.Quaternion[0], s = w.Vector3[1];\n this._textureMatrix.decompose(t, i, s), i.z *= -1, i.w *= -1, O.ComposeToRef(t, i, s, this._textureMatrixRefraction);\n }\n /**\n * Gets a suitable rotate/transform matrix when the texture is used for refraction.\n * There's a separate function from getReflectionTextureMatrix because refraction requires a special configuration of the matrix in right-handed mode.\n * @returns The refraction matrix\n */\n getRefractionTextureMatrix() {\n var e;\n return (e = this.getScene()) != null && e.useRightHandedSystem ? this._textureMatrixRefraction : this._textureMatrix;\n }\n _loadTexture(e = null, t = null) {\n var o;\n const i = this.getScene(), s = this._texture;\n this._texture = this._getFromCache(this.url, this._noMipmap, void 0, void 0, this._useSRGBBuffer, this.isCube);\n const r = () => {\n var l;\n this.onLoadObservable.notifyObservers(this), s && (s.dispose(), (l = this.getScene()) == null || l.markAllMaterialsAsDirty(1)), e && e();\n }, n = (l, h) => {\n this._loadingError = !0, this._errorObject = { message: l, exception: h }, t && t(l, h), X.OnTextureLoadErrorObservable.notifyObservers(this);\n };\n this._texture ? this._texture.isReady ? J.SetImmediate(() => r()) : this._texture.onLoadedObservable.add(() => r()) : (this._prefiltered ? this._texture = this._getEngine().createPrefilteredCubeTexture(this.url, i, this._lodScale, this._lodOffset, e, n, this._format, this._forcedExtension, this._createPolynomials) : this._texture = this._getEngine().createCubeTexture(this.url, i, this._files, this._noMipmap, e, n, this._format, this._forcedExtension, !1, this._lodScale, this._lodOffset, null, this._loaderOptions, !!this._useSRGBBuffer, this._buffer), (o = this._texture) == null || o.onLoadedObservable.add(() => this.onLoadObservable.notifyObservers(this)));\n }\n /**\n * Parses text to create a cube texture\n * @param parsedTexture define the serialized text to read from\n * @param scene defines the hosting scene\n * @param rootUrl defines the root url of the cube texture\n * @returns a cube texture\n */\n static Parse(e, t, i) {\n const s = Ae.Parse(() => {\n let r = !1;\n return e.prefiltered && (r = e.prefiltered), new ps(i + (e.url ?? e.name), t, e.extensions, !1, e.files || null, null, null, void 0, r, e.forcedExtension);\n }, e, t);\n if (e.boundingBoxPosition && (s.boundingBoxPosition = g.FromArray(e.boundingBoxPosition)), e.boundingBoxSize && (s.boundingBoxSize = g.FromArray(e.boundingBoxSize)), e.animations)\n for (let r = 0; r < e.animations.length; r++) {\n const n = e.animations[r], o = Oi(\"BABYLON.Animation\");\n o && s.animations.push(o.Parse(n));\n }\n return s;\n }\n /**\n * Makes a clone, or deep copy, of the cube texture\n * @returns a new cube texture\n */\n clone() {\n let e = 0;\n const t = Ae.Clone(() => {\n const i = new ps(this.url, this.getScene() || this._getEngine(), this._extensions, this._noMipmap, this._files);\n return e = i.uniqueId, i;\n }, this);\n return t.uniqueId = e, t;\n }\n}\ny([\n I()\n], ps.prototype, \"url\", void 0);\ny([\n Zs()\n], ps.prototype, \"boundingBoxPosition\", void 0);\ny([\n Zs()\n], ps.prototype, \"boundingBoxSize\", null);\ny([\n I(\"rotationY\")\n], ps.prototype, \"rotationY\", null);\ny([\n I(\"files\")\n], ps.prototype, \"_files\", void 0);\ny([\n I(\"forcedExtension\")\n], ps.prototype, \"_forcedExtension\", void 0);\ny([\n I(\"extensions\")\n], ps.prototype, \"_extensions\", void 0);\ny([\n yx(\"textureMatrix\")\n], ps.prototype, \"_textureMatrix\", void 0);\ny([\n yx(\"textureMatrixRefraction\")\n], ps.prototype, \"_textureMatrixRefraction\", void 0);\nX._CubeTextureParser = ps.Parse;\nU(\"BABYLON.CubeTexture\", ps);\nclass Ml {\n /**\n * Creates the default options for the helper.\n * @param scene The scene the environment helper belongs to.\n * @returns default options for the helper.\n */\n static _GetDefaultOptions(e) {\n return {\n createGround: !0,\n groundSize: 15,\n groundTexture: this._GroundTextureCDNUrl,\n groundColor: new re(0.2, 0.2, 0.3).toLinearSpace(e.getEngine().useExactSrgbConversions).scale(3),\n groundOpacity: 0.9,\n enableGroundShadow: !0,\n groundShadowLevel: 0.5,\n enableGroundMirror: !1,\n groundMirrorSizeRatio: 0.3,\n groundMirrorBlurKernel: 64,\n groundMirrorAmount: 1,\n groundMirrorFresnelWeight: 1,\n groundMirrorFallOffDistance: 0,\n groundMirrorTextureType: 0,\n groundYBias: 1e-5,\n createSkybox: !0,\n skyboxSize: 20,\n skyboxTexture: this._SkyboxTextureCDNUrl,\n skyboxColor: new re(0.2, 0.2, 0.3).toLinearSpace(e.getEngine().useExactSrgbConversions).scale(3),\n backgroundYRotation: 0,\n sizeAuto: !0,\n rootPosition: g.Zero(),\n setupImageProcessing: !0,\n environmentTexture: this._EnvironmentTextureCDNUrl,\n cameraExposure: 0.8,\n cameraContrast: 1.2,\n toneMappingEnabled: !0\n };\n }\n /**\n * Gets the root mesh created by the helper.\n */\n get rootMesh() {\n return this._rootMesh;\n }\n /**\n * Gets the skybox created by the helper.\n */\n get skybox() {\n return this._skybox;\n }\n /**\n * Gets the skybox texture created by the helper.\n */\n get skyboxTexture() {\n return this._skyboxTexture;\n }\n /**\n * Gets the skybox material created by the helper.\n */\n get skyboxMaterial() {\n return this._skyboxMaterial;\n }\n /**\n * Gets the ground mesh created by the helper.\n */\n get ground() {\n return this._ground;\n }\n /**\n * Gets the ground texture created by the helper.\n */\n get groundTexture() {\n return this._groundTexture;\n }\n /**\n * Gets the ground mirror created by the helper.\n */\n get groundMirror() {\n return this._groundMirror;\n }\n /**\n * Gets the ground mirror render list to helps pushing the meshes\n * you wish in the ground reflection.\n */\n get groundMirrorRenderList() {\n return this._groundMirror ? this._groundMirror.renderList : null;\n }\n /**\n * Gets the ground material created by the helper.\n */\n get groundMaterial() {\n return this._groundMaterial;\n }\n /**\n * constructor\n * @param options Defines the options we want to customize the helper\n * @param scene The scene to add the material to\n */\n constructor(e, t) {\n this._errorHandler = (i, s) => {\n this.onErrorObservable.notifyObservers({ message: i, exception: s });\n }, this._options = {\n ...Ml._GetDefaultOptions(t),\n ...e\n }, this._scene = t, this.onErrorObservable = new G(), this._setupBackground(), this._setupImageProcessing();\n }\n /**\n * Updates the environment according to the new options\n * @param options options to configure the helper (IEnvironmentHelperOptions)\n */\n updateOptions(e) {\n const t = {\n ...this._options,\n ...e\n };\n this._ground && !t.createGround && (this._ground.dispose(), this._ground = null), this._groundMaterial && !t.createGround && (this._groundMaterial.dispose(), this._groundMaterial = null), this._groundTexture && this._options.groundTexture != t.groundTexture && (this._groundTexture.dispose(), this._groundTexture = null), this._skybox && !t.createSkybox && (this._skybox.dispose(), this._skybox = null), this._skyboxMaterial && !t.createSkybox && (this._skyboxMaterial.dispose(), this._skyboxMaterial = null), this._skyboxTexture && this._options.skyboxTexture != t.skyboxTexture && (this._skyboxTexture.dispose(), this._skyboxTexture = null), this._groundMirror && !t.enableGroundMirror && (this._groundMirror.dispose(), this._groundMirror = null), this._scene.environmentTexture && this._options.environmentTexture != t.environmentTexture && this._scene.environmentTexture.dispose(), this._options = t, this._setupBackground(), this._setupImageProcessing();\n }\n /**\n * Sets the primary color of all the available elements.\n * @param color the main color to affect to the ground and the background\n */\n setMainColor(e) {\n this.groundMaterial && (this.groundMaterial.primaryColor = e), this.skyboxMaterial && (this.skyboxMaterial.primaryColor = e), this.groundMirror && (this.groundMirror.clearColor = new Ce(e.r, e.g, e.b, 1));\n }\n /**\n * Setup the image processing according to the specified options.\n */\n _setupImageProcessing() {\n this._options.setupImageProcessing && (this._scene.imageProcessingConfiguration.contrast = this._options.cameraContrast, this._scene.imageProcessingConfiguration.exposure = this._options.cameraExposure, this._scene.imageProcessingConfiguration.toneMappingEnabled = this._options.toneMappingEnabled, this._setupEnvironmentTexture());\n }\n /**\n * Setup the environment texture according to the specified options.\n */\n _setupEnvironmentTexture() {\n if (this._scene.environmentTexture)\n return;\n if (this._options.environmentTexture instanceof Mt) {\n this._scene.environmentTexture = this._options.environmentTexture;\n return;\n }\n const e = ps.CreateFromPrefilteredData(this._options.environmentTexture, this._scene);\n this._scene.environmentTexture = e;\n }\n /**\n * Setup the background according to the specified options.\n */\n _setupBackground() {\n this._rootMesh || (this._rootMesh = new H(\"BackgroundHelper\", this._scene)), this._rootMesh.rotation.y = this._options.backgroundYRotation;\n const e = this._getSceneSize();\n this._options.createGround && (this._setupGround(e), this._setupGroundMaterial(), this._setupGroundDiffuseTexture(), this._options.enableGroundMirror && this._setupGroundMirrorTexture(e), this._setupMirrorInGroundMaterial()), this._options.createSkybox && (this._setupSkybox(e), this._setupSkyboxMaterial(), this._setupSkyboxReflectionTexture()), this._rootMesh.position.x = e.rootPosition.x, this._rootMesh.position.z = e.rootPosition.z, this._rootMesh.position.y = e.rootPosition.y;\n }\n /**\n * Get the scene sizes according to the setup.\n * @returns the different ground and skybox sizes.\n */\n _getSceneSize() {\n let e = this._options.groundSize, t = this._options.skyboxSize, i = this._options.rootPosition;\n if (!this._scene.meshes || this._scene.meshes.length === 1)\n return { groundSize: e, skyboxSize: t, rootPosition: i };\n const s = this._scene.getWorldExtends((n) => n !== this._ground && n !== this._rootMesh && n !== this._skybox), r = s.max.subtract(s.min);\n if (this._options.sizeAuto) {\n this._scene.activeCamera instanceof ri && this._scene.activeCamera.upperRadiusLimit && (e = this._scene.activeCamera.upperRadiusLimit * 2, t = e);\n const n = r.length();\n n > e && (e = n * 2, t = e), e *= 1.1, t *= 1.5, i = s.min.add(r.scale(0.5)), i.y = s.min.y - this._options.groundYBias;\n }\n return { groundSize: e, skyboxSize: t, rootPosition: i };\n }\n /**\n * Setup the ground according to the specified options.\n * @param sceneSize\n */\n _setupGround(e) {\n (!this._ground || this._ground.isDisposed()) && (this._ground = Ul(\"BackgroundPlane\", { size: e.groundSize }, this._scene), this._ground.rotation.x = Math.PI / 2, this._ground.isPickable = !1, this._ground.parent = this._rootMesh, this._ground.onDisposeObservable.add(() => {\n this._ground = null;\n })), this._ground.receiveShadows = this._options.enableGroundShadow;\n }\n /**\n * Setup the ground material according to the specified options.\n */\n _setupGroundMaterial() {\n this._groundMaterial || (this._groundMaterial = new mt(\"BackgroundPlaneMaterial\", this._scene)), this._groundMaterial.alpha = this._options.groundOpacity, this._groundMaterial.alphaMode = 8, this._groundMaterial.shadowLevel = this._options.groundShadowLevel, this._groundMaterial.primaryColor = this._options.groundColor, this._groundMaterial.useRGBColor = !1, this._groundMaterial.enableNoise = !0, this._ground && (this._ground.material = this._groundMaterial);\n }\n /**\n * Setup the ground diffuse texture according to the specified options.\n */\n _setupGroundDiffuseTexture() {\n if (this._groundMaterial && !this._groundTexture) {\n if (this._options.groundTexture instanceof Mt) {\n this._groundMaterial.diffuseTexture = this._options.groundTexture;\n return;\n }\n this._groundTexture = new X(this._options.groundTexture, this._scene, void 0, void 0, void 0, void 0, this._errorHandler), this._groundTexture.gammaSpace = !1, this._groundTexture.hasAlpha = !0, this._groundMaterial.diffuseTexture = this._groundTexture;\n }\n }\n /**\n * Setup the ground mirror texture according to the specified options.\n * @param sceneSize\n */\n _setupGroundMirrorTexture(e) {\n const t = X.CLAMP_ADDRESSMODE;\n if (!this._groundMirror && (this._groundMirror = new K_(\"BackgroundPlaneMirrorTexture\", { ratio: this._options.groundMirrorSizeRatio }, this._scene, !1, this._options.groundMirrorTextureType, X.BILINEAR_SAMPLINGMODE, !0), this._groundMirror.mirrorPlane = new Pr(0, -1, 0, e.rootPosition.y), this._groundMirror.anisotropicFilteringLevel = 1, this._groundMirror.wrapU = t, this._groundMirror.wrapV = t, this._groundMirror.renderList))\n for (let s = 0; s < this._scene.meshes.length; s++) {\n const r = this._scene.meshes[s];\n r !== this._ground && r !== this._skybox && r !== this._rootMesh && this._groundMirror.renderList.push(r);\n }\n const i = this._options.groundColor.toGammaSpace(this._scene.getEngine().useExactSrgbConversions);\n this._groundMirror.clearColor = new Ce(i.r, i.g, i.b, 1), this._groundMirror.adaptiveBlurKernel = this._options.groundMirrorBlurKernel;\n }\n /**\n * Setup the ground to receive the mirror texture.\n */\n _setupMirrorInGroundMaterial() {\n this._groundMaterial && (this._groundMaterial.reflectionTexture = this._groundMirror, this._groundMaterial.reflectionFresnel = !0, this._groundMaterial.reflectionAmount = this._options.groundMirrorAmount, this._groundMaterial.reflectionStandardFresnelWeight = this._options.groundMirrorFresnelWeight, this._groundMaterial.reflectionFalloffDistance = this._options.groundMirrorFallOffDistance);\n }\n /**\n * Setup the skybox according to the specified options.\n * @param sceneSize\n */\n _setupSkybox(e) {\n (!this._skybox || this._skybox.isDisposed()) && (this._skybox = Bl(\"BackgroundSkybox\", { size: e.skyboxSize, sideOrientation: H.BACKSIDE }, this._scene), this._skybox.isPickable = !1, this._skybox.onDisposeObservable.add(() => {\n this._skybox = null;\n })), this._skybox.parent = this._rootMesh;\n }\n /**\n * Setup the skybox material according to the specified options.\n */\n _setupSkyboxMaterial() {\n this._skybox && (this._skyboxMaterial || (this._skyboxMaterial = new mt(\"BackgroundSkyboxMaterial\", this._scene)), this._skyboxMaterial.useRGBColor = !1, this._skyboxMaterial.primaryColor = this._options.skyboxColor, this._skyboxMaterial.enableNoise = !0, this._skybox.material = this._skyboxMaterial);\n }\n /**\n * Setup the skybox reflection texture according to the specified options.\n */\n _setupSkyboxReflectionTexture() {\n if (this._skyboxMaterial && !this._skyboxTexture) {\n if (this._options.skyboxTexture instanceof Mt) {\n this._skyboxMaterial.reflectionTexture = this._options.skyboxTexture;\n return;\n }\n this._skyboxTexture = new ps(this._options.skyboxTexture, this._scene, void 0, void 0, void 0, void 0, this._errorHandler), this._skyboxTexture.coordinatesMode = X.SKYBOX_MODE, this._skyboxTexture.gammaSpace = !1, this._skyboxMaterial.reflectionTexture = this._skyboxTexture;\n }\n }\n /**\n * Dispose all the elements created by the Helper.\n */\n dispose() {\n this._groundMaterial && this._groundMaterial.dispose(!0, !0), this._skyboxMaterial && this._skyboxMaterial.dispose(!0, !0), this._rootMesh.dispose(!1);\n }\n}\nMl._GroundTextureCDNUrl = \"https://assets.babylonjs.com/environments/backgroundGround.png\";\nMl._SkyboxTextureCDNUrl = \"https://assets.babylonjs.com/environments/backgroundSkybox.dds\";\nMl._EnvironmentTextureCDNUrl = \"https://assets.babylonjs.com/environments/environmentSpecular.env\";\nconst GB = \"data:image/png;base64,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\";\nlet zB = 0;\nconst q_ = (a) => {\n if (!a.environmentBRDFTexture) {\n const e = a.useDelayedTextureLoading;\n a.useDelayedTextureLoading = !1;\n const t = a._blockEntityCollection;\n a._blockEntityCollection = !1;\n const i = X.CreateFromBase64String(GB, \"EnvironmentBRDFTexture\" + zB++, a, !0, !1, X.BILINEAR_SAMPLINGMODE);\n a._blockEntityCollection = t;\n const s = a.getEngine().getLoadedTexturesCache(), r = s.indexOf(i.getInternalTexture());\n r !== -1 && s.splice(r, 1), i.isRGBD = !0, i.wrapU = X.CLAMP_ADDRESSMODE, i.wrapV = X.CLAMP_ADDRESSMODE, a.environmentBRDFTexture = i, a.useDelayedTextureLoading = e, wg.ExpandRGBDTexture(i);\n const n = a.getEngine().onContextRestoredObservable.add(() => {\n i.isRGBD = !0;\n const o = a.onBeforeRenderObservable.add(() => {\n i.isReady() && (a.onBeforeRenderObservable.remove(o), wg.ExpandRGBDTexture(i));\n });\n });\n a.onDisposeObservable.add(() => {\n a.getEngine().onContextRestoredObservable.remove(n);\n });\n }\n return a.environmentBRDFTexture;\n}, VK = {\n /**\n * Gets a default environment BRDF for MS-BRDF Height Correlated BRDF\n * @param scene defines the hosting scene\n * @returns the environment BRDF texture\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n GetEnvironmentBRDFTexture: q_\n};\nclass WB extends dr {\n constructor() {\n super(...arguments), this.BRDF_V_HEIGHT_CORRELATED = !1, this.MS_BRDF_ENERGY_CONSERVATION = !1, this.SPHERICAL_HARMONICS = !1, this.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = !1;\n }\n}\nclass ur extends br {\n /** @internal */\n _markAllSubMeshesAsMiscDirty() {\n this._internalMarkAllSubMeshesAsMiscDirty();\n }\n constructor(e, t = !0) {\n super(e, \"PBRBRDF\", 90, new WB(), t), this._useEnergyConservation = ur.DEFAULT_USE_ENERGY_CONSERVATION, this.useEnergyConservation = ur.DEFAULT_USE_ENERGY_CONSERVATION, this._useSmithVisibilityHeightCorrelated = ur.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED, this.useSmithVisibilityHeightCorrelated = ur.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED, this._useSphericalHarmonics = ur.DEFAULT_USE_SPHERICAL_HARMONICS, this.useSphericalHarmonics = ur.DEFAULT_USE_SPHERICAL_HARMONICS, this._useSpecularGlossinessInputEnergyConservation = ur.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION, this.useSpecularGlossinessInputEnergyConservation = ur.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION, this._internalMarkAllSubMeshesAsMiscDirty = e._dirtyCallbacks[16], this._enable(!0);\n }\n prepareDefines(e) {\n e.BRDF_V_HEIGHT_CORRELATED = this._useSmithVisibilityHeightCorrelated, e.MS_BRDF_ENERGY_CONSERVATION = this._useEnergyConservation && this._useSmithVisibilityHeightCorrelated, e.SPHERICAL_HARMONICS = this._useSphericalHarmonics, e.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = this._useSpecularGlossinessInputEnergyConservation;\n }\n getClassName() {\n return \"PBRBRDFConfiguration\";\n }\n}\nur.DEFAULT_USE_ENERGY_CONSERVATION = !0;\nur.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED = !0;\nur.DEFAULT_USE_SPHERICAL_HARMONICS = !0;\nur.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION = !0;\ny([\n I(),\n ce(\"_markAllSubMeshesAsMiscDirty\")\n], ur.prototype, \"useEnergyConservation\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsMiscDirty\")\n], ur.prototype, \"useSmithVisibilityHeightCorrelated\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsMiscDirty\")\n], ur.prototype, \"useSphericalHarmonics\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsMiscDirty\")\n], ur.prototype, \"useSpecularGlossinessInputEnergyConservation\", void 0);\nconst HB = \"pbrFragmentDeclaration\", XB = `uniform vec4 vEyePosition;uniform vec3 vReflectionColor;uniform vec4 vAlbedoColor;uniform vec4 vLightingIntensity;uniform vec4 vReflectivityColor;uniform vec4 vMetallicReflectanceFactors;uniform vec3 vEmissiveColor;uniform float visibility;uniform vec3 vAmbientColor;\n#ifdef ALBEDO\nuniform vec2 vAlbedoInfos;\n#endif\n#ifdef AMBIENT\nuniform vec4 vAmbientInfos;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;uniform vec2 vTangentSpaceParams;\n#endif\n#ifdef OPACITY\nuniform vec2 vOpacityInfos;\n#endif\n#ifdef EMISSIVE\nuniform vec2 vEmissiveInfos;\n#endif\n#ifdef LIGHTMAP\nuniform vec2 vLightmapInfos;\n#endif\n#ifdef REFLECTIVITY\nuniform vec3 vReflectivityInfos;\n#endif\n#ifdef MICROSURFACEMAP\nuniform vec2 vMicroSurfaceSamplerInfos;\n#endif\n#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(SS_REFRACTION) || defined(PREPASS)\nuniform mat4 view;\n#endif\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;\n#ifdef REALTIME_FILTERING\nuniform vec2 vReflectionFilteringInfo;\n#endif\nuniform mat4 reflectionMatrix;uniform vec3 vReflectionMicrosurfaceInfos;\n#if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC)\nuniform vec3 vReflectionPosition;uniform vec3 vReflectionSize; \n#endif\n#endif\n#if defined(SS_REFRACTION) && defined(SS_USE_LOCAL_REFRACTIONMAP_CUBIC)\nuniform vec3 vRefractionPosition;uniform vec3 vRefractionSize; \n#endif\n#ifdef CLEARCOAT\nuniform vec2 vClearCoatParams;uniform vec4 vClearCoatRefractionParams;\n#if defined(CLEARCOAT_TEXTURE) || defined(CLEARCOAT_TEXTURE_ROUGHNESS)\nuniform vec4 vClearCoatInfos;\n#endif\n#ifdef CLEARCOAT_TEXTURE\nuniform mat4 clearCoatMatrix;\n#endif\n#ifdef CLEARCOAT_TEXTURE_ROUGHNESS\nuniform mat4 clearCoatRoughnessMatrix;\n#endif\n#ifdef CLEARCOAT_BUMP\nuniform vec2 vClearCoatBumpInfos;uniform vec2 vClearCoatTangentSpaceParams;uniform mat4 clearCoatBumpMatrix;\n#endif\n#ifdef CLEARCOAT_TINT\nuniform vec4 vClearCoatTintParams;uniform float clearCoatColorAtDistance;\n#ifdef CLEARCOAT_TINT_TEXTURE\nuniform vec2 vClearCoatTintInfos;uniform mat4 clearCoatTintMatrix;\n#endif\n#endif\n#endif\n#ifdef IRIDESCENCE\nuniform vec4 vIridescenceParams;\n#if defined(IRIDESCENCE_TEXTURE) || defined(IRIDESCENCE_THICKNESS_TEXTURE)\nuniform vec4 vIridescenceInfos;\n#endif\n#ifdef IRIDESCENCE_TEXTURE\nuniform mat4 iridescenceMatrix;\n#endif\n#ifdef IRIDESCENCE_THICKNESS_TEXTURE\nuniform mat4 iridescenceThicknessMatrix;\n#endif\n#endif\n#ifdef ANISOTROPIC\nuniform vec3 vAnisotropy;\n#ifdef ANISOTROPIC_TEXTURE\nuniform vec2 vAnisotropyInfos;uniform mat4 anisotropyMatrix;\n#endif\n#endif\n#ifdef SHEEN\nuniform vec4 vSheenColor;\n#ifdef SHEEN_ROUGHNESS\nuniform float vSheenRoughness;\n#endif\n#if defined(SHEEN_TEXTURE) || defined(SHEEN_TEXTURE_ROUGHNESS)\nuniform vec4 vSheenInfos;\n#endif\n#ifdef SHEEN_TEXTURE\nuniform mat4 sheenMatrix;\n#endif\n#ifdef SHEEN_TEXTURE_ROUGHNESS\nuniform mat4 sheenRoughnessMatrix;\n#endif\n#endif\n#ifdef SUBSURFACE\n#ifdef SS_REFRACTION\nuniform vec4 vRefractionMicrosurfaceInfos;uniform vec4 vRefractionInfos;uniform mat4 refractionMatrix;\n#ifdef REALTIME_FILTERING\nuniform vec2 vRefractionFilteringInfo;\n#endif\n#ifdef SS_DISPERSION\nuniform float dispersion;\n#endif\n#endif\n#ifdef SS_THICKNESSANDMASK_TEXTURE\nuniform vec2 vThicknessInfos;uniform mat4 thicknessMatrix;\n#endif\n#ifdef SS_REFRACTIONINTENSITY_TEXTURE\nuniform vec2 vRefractionIntensityInfos;uniform mat4 refractionIntensityMatrix;\n#endif\n#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE\nuniform vec2 vTranslucencyIntensityInfos;uniform mat4 translucencyIntensityMatrix;\n#endif\nuniform vec2 vThicknessParam;uniform vec3 vDiffusionDistance;uniform vec4 vTintColor;uniform vec3 vSubSurfaceIntensity;uniform vec4 vTranslucencyColor;\n#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE\nuniform vec2 vTranslucencyColorInfos;uniform mat4 translucencyColorMatrix;\n#endif\n#endif\n#ifdef PREPASS\n#ifdef SS_SCATTERING\nuniform float scatteringDiffusionProfile;\n#endif\n#endif\n#if DEBUGMODE>0\nuniform vec2 vDebugMode;\n#endif\n#ifdef DETAIL\nuniform vec4 vDetailInfos;\n#endif\n#include\n#ifdef USESPHERICALFROMREFLECTIONMAP\n#ifdef SPHERICAL_HARMONICS\nuniform vec3 vSphericalL00;uniform vec3 vSphericalL1_1;uniform vec3 vSphericalL10;uniform vec3 vSphericalL11;uniform vec3 vSphericalL2_2;uniform vec3 vSphericalL2_1;uniform vec3 vSphericalL20;uniform vec3 vSphericalL21;uniform vec3 vSphericalL22;\n#else\nuniform vec3 vSphericalX;uniform vec3 vSphericalY;uniform vec3 vSphericalZ;uniform vec3 vSphericalXX_ZZ;uniform vec3 vSphericalYY_ZZ;uniform vec3 vSphericalZZ;uniform vec3 vSphericalXY;uniform vec3 vSphericalYZ;uniform vec3 vSphericalZX;\n#endif\n#endif\n#define ADDITIONAL_FRAGMENT_DECLARATION\n`;\nz.IncludesShadersStore[HB] = XB;\nconst $B = \"pbrUboDeclaration\", YB = `layout(std140,column_major) uniform;uniform Material {vec2 vAlbedoInfos;vec4 vAmbientInfos;vec2 vOpacityInfos;vec2 vEmissiveInfos;vec2 vLightmapInfos;vec3 vReflectivityInfos;vec2 vMicroSurfaceSamplerInfos;vec2 vReflectionInfos;vec2 vReflectionFilteringInfo;vec3 vReflectionPosition;vec3 vReflectionSize;vec3 vBumpInfos;mat4 albedoMatrix;mat4 ambientMatrix;mat4 opacityMatrix;mat4 emissiveMatrix;mat4 lightmapMatrix;mat4 reflectivityMatrix;mat4 microSurfaceSamplerMatrix;mat4 bumpMatrix;vec2 vTangentSpaceParams;mat4 reflectionMatrix;vec3 vReflectionColor;vec4 vAlbedoColor;vec4 vLightingIntensity;vec3 vReflectionMicrosurfaceInfos;float pointSize;vec4 vReflectivityColor;vec3 vEmissiveColor;vec3 vAmbientColor;vec2 vDebugMode;vec4 vMetallicReflectanceFactors;vec2 vMetallicReflectanceInfos;mat4 metallicReflectanceMatrix;vec2 vReflectanceInfos;mat4 reflectanceMatrix;vec3 vSphericalL00;vec3 vSphericalL1_1;vec3 vSphericalL10;vec3 vSphericalL11;vec3 vSphericalL2_2;vec3 vSphericalL2_1;vec3 vSphericalL20;vec3 vSphericalL21;vec3 vSphericalL22;vec3 vSphericalX;vec3 vSphericalY;vec3 vSphericalZ;vec3 vSphericalXX_ZZ;vec3 vSphericalYY_ZZ;vec3 vSphericalZZ;vec3 vSphericalXY;vec3 vSphericalYZ;vec3 vSphericalZX;\n#define ADDITIONAL_UBO_DECLARATION\n};\n#include\n#include\n`;\nz.IncludesShadersStore[$B] = YB;\nconst jB = \"pbrFragmentExtraDeclaration\", KB = `varying vec3 vPositionW;\n#if DEBUGMODE>0\nvarying vec4 vClipSpacePosition;\n#endif\n#include[1..7]\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\nvarying vec3 vEnvironmentIrradiance;\n#endif\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvarying vec4 vColor;\n#endif\n`;\nz.IncludesShadersStore[jB] = KB;\nconst qB = \"samplerFragmentAlternateDeclaration\", QB = `#ifdef _DEFINENAME_\n#if _DEFINENAME_DIRECTUV==1\n#define v_VARYINGNAME_UV vMainUV1\n#elif _DEFINENAME_DIRECTUV==2\n#define v_VARYINGNAME_UV vMainUV2\n#elif _DEFINENAME_DIRECTUV==3\n#define v_VARYINGNAME_UV vMainUV3\n#elif _DEFINENAME_DIRECTUV==4\n#define v_VARYINGNAME_UV vMainUV4\n#elif _DEFINENAME_DIRECTUV==5\n#define v_VARYINGNAME_UV vMainUV5\n#elif _DEFINENAME_DIRECTUV==6\n#define v_VARYINGNAME_UV vMainUV6\n#else\nvarying vec2 v_VARYINGNAME_UV;\n#endif\n#endif\n`;\nz.IncludesShadersStore[qB] = QB;\nconst ZB = \"pbrFragmentSamplersDeclaration\", JB = `#include(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo,_SAMPLERNAME_,albedo)\n#include(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_SAMPLERNAME_,ambient)\n#include(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_SAMPLERNAME_,opacity)\n#include(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_SAMPLERNAME_,emissive)\n#include(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_SAMPLERNAME_,lightmap)\n#include(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity,_SAMPLERNAME_,reflectivity)\n#include(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler,_SAMPLERNAME_,microSurface)\n#include(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance,_SAMPLERNAME_,metallicReflectance)\n#include(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance,_SAMPLERNAME_,reflectance)\n#include(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_SAMPLERNAME_,decal)\n#ifdef CLEARCOAT\n#include(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat,_SAMPLERNAME_,clearCoat)\n#include(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness)\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS)\nuniform sampler2D clearCoatRoughnessSampler;\n#endif\n#include(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump,_SAMPLERNAME_,clearCoatBump)\n#include(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint,_SAMPLERNAME_,clearCoatTint)\n#endif\n#ifdef IRIDESCENCE\n#include(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence,_SAMPLERNAME_,iridescence)\n#include(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness,_SAMPLERNAME_,iridescenceThickness)\n#endif\n#ifdef SHEEN\n#include(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen,_SAMPLERNAME_,sheen)\n#include(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness)\n#if defined(SHEEN_ROUGHNESS) && defined(SHEEN_TEXTURE_ROUGHNESS)\nuniform sampler2D sheenRoughnessSampler;\n#endif\n#endif\n#ifdef ANISOTROPIC\n#include(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy,_SAMPLERNAME_,anisotropy)\n#endif\n#ifdef REFLECTION\n#ifdef REFLECTIONMAP_3D\n#define sampleReflection(s,c) textureCube(s,c)\nuniform samplerCube reflectionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)\n#else\nuniform samplerCube reflectionSamplerLow;uniform samplerCube reflectionSamplerHigh;\n#endif\n#ifdef USEIRRADIANCEMAP\nuniform samplerCube irradianceSampler;\n#endif\n#else\n#define sampleReflection(s,c) texture2D(s,c)\nuniform sampler2D reflectionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)\n#else\nuniform sampler2D reflectionSamplerLow;uniform sampler2D reflectionSamplerHigh;\n#endif\n#ifdef USEIRRADIANCEMAP\nuniform sampler2D irradianceSampler;\n#endif\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#else\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#endif\n#endif\n#ifdef ENVIRONMENTBRDF\nuniform sampler2D environmentBrdfSampler;\n#endif\n#ifdef SUBSURFACE\n#ifdef SS_REFRACTION\n#ifdef SS_REFRACTIONMAP_3D\n#define sampleRefraction(s,c) textureCube(s,c)\nuniform samplerCube refractionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleRefractionLod(s,c,l) textureCubeLodEXT(s,c,l)\n#else\nuniform samplerCube refractionSamplerLow;uniform samplerCube refractionSamplerHigh;\n#endif\n#else\n#define sampleRefraction(s,c) texture2D(s,c)\nuniform sampler2D refractionSampler;\n#ifdef LODBASEDMICROSFURACE\n#define sampleRefractionLod(s,c,l) texture2DLodEXT(s,c,l)\n#else\nuniform sampler2D refractionSamplerLow;uniform sampler2D refractionSamplerHigh;\n#endif\n#endif\n#endif\n#include(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness,_SAMPLERNAME_,thickness)\n#include(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity,_SAMPLERNAME_,refractionIntensity)\n#include(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity,_SAMPLERNAME_,translucencyIntensity)\n#include(_DEFINENAME_,SS_TRANSLUCENCYCOLOR_TEXTURE,_VARYINGNAME_,TranslucencyColor,_SAMPLERNAME_,translucencyColor)\n#endif\n`;\nz.IncludesShadersStore[ZB] = JB;\nconst e2 = \"subSurfaceScatteringFunctions\", t2 = `bool testLightingForSSS(float diffusionProfile)\n{return diffusionProfile<1.;}`;\nz.IncludesShadersStore[e2] = t2;\nconst i2 = \"importanceSampling\", s2 = `vec3 hemisphereCosSample(vec2 u) {float phi=2.*PI*u.x;float cosTheta2=1.-u.y;float cosTheta=sqrt(cosTheta2);float sinTheta=sqrt(1.-cosTheta2);return vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);}\nvec3 hemisphereImportanceSampleDggx(vec2 u,float a) {float phi=2.*PI*u.x;float cosTheta2=(1.-u.y)/(1.+(a+1.)*((a-1.)*u.y));float cosTheta=sqrt(cosTheta2);float sinTheta=sqrt(1.-cosTheta2);return vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);}\nvec3 hemisphereImportanceSampleDCharlie(vec2 u,float a) { \nfloat phi=2.*PI*u.x;float sinTheta=pow(u.y,a/(2.*a+1.));float cosTheta=sqrt(1.-sinTheta*sinTheta);return vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);}`;\nz.IncludesShadersStore[i2] = s2;\nconst r2 = \"pbrHelperFunctions\", n2 = `#define MINIMUMVARIANCE 0.0005\nfloat convertRoughnessToAverageSlope(float roughness)\n{return square(roughness)+MINIMUMVARIANCE;}\nfloat fresnelGrazingReflectance(float reflectance0) {float reflectance90=saturate(reflectance0*25.0);return reflectance90;}\nvec2 getAARoughnessFactors(vec3 normalVector) {\n#ifdef SPECULARAA\nvec3 nDfdx=dFdx(normalVector.xyz);vec3 nDfdy=dFdy(normalVector.xyz);float slopeSquare=max(dot(nDfdx,nDfdx),dot(nDfdy,nDfdy));float geometricRoughnessFactor=pow(saturate(slopeSquare),0.333);float geometricAlphaGFactor=sqrt(slopeSquare);geometricAlphaGFactor*=0.75;return vec2(geometricRoughnessFactor,geometricAlphaGFactor);\n#else\nreturn vec2(0.);\n#endif\n}\n#ifdef ANISOTROPIC\n#ifdef ANISOTROPIC_LEGACY\nvec2 getAnisotropicRoughness(float alphaG,float anisotropy) {float alphaT=max(alphaG*(1.0+anisotropy),MINIMUMVARIANCE);float alphaB=max(alphaG*(1.0-anisotropy),MINIMUMVARIANCE);return vec2(alphaT,alphaB);}\nvec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy,float roughness) {vec3 anisotropicFrameDirection=anisotropy>=0.0 ? B : T;vec3 anisotropicFrameTangent=cross(normalize(anisotropicFrameDirection),V);vec3 anisotropicFrameNormal=cross(anisotropicFrameTangent,anisotropicFrameDirection);vec3 anisotropicNormal=normalize(mix(N,anisotropicFrameNormal,abs(anisotropy)));return anisotropicNormal;}\n#else\nvec2 getAnisotropicRoughness(float alphaG,float anisotropy) {float alphaT=max(mix(alphaG,1.0,anisotropy*anisotropy),MINIMUMVARIANCE);float alphaB=max(alphaG,MINIMUMVARIANCE);return vec2(alphaT,alphaB);}\nvec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy,float roughness) {vec3 bentNormal=cross(B,V);bentNormal=normalize(cross(bentNormal,B));float a=square(square(1.0-anisotropy*(1.0-roughness)));bentNormal=normalize(mix(bentNormal,N,a));return bentNormal;}\n#endif\n#endif\n#if defined(CLEARCOAT) || defined(SS_REFRACTION)\nvec3 cocaLambert(vec3 alpha,float distance) {return exp(-alpha*distance);}\nvec3 cocaLambert(float NdotVRefract,float NdotLRefract,vec3 alpha,float thickness) {return cocaLambert(alpha,(thickness*((NdotLRefract+NdotVRefract)/(NdotLRefract*NdotVRefract))));}\nvec3 computeColorAtDistanceInMedia(vec3 color,float distance) {return -log(color)/distance;}\nvec3 computeClearCoatAbsorption(float NdotVRefract,float NdotLRefract,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {vec3 clearCoatAbsorption=mix(vec3(1.0),\ncocaLambert(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness),\nclearCoatIntensity);return clearCoatAbsorption;}\n#endif\n#ifdef MICROSURFACEAUTOMATIC\nfloat computeDefaultMicroSurface(float microSurface,vec3 reflectivityColor)\n{const float kReflectivityNoAlphaWorkflow_SmoothnessMax=0.95;float reflectivityLuminance=getLuminance(reflectivityColor);float reflectivityLuma=sqrt(reflectivityLuminance);microSurface=reflectivityLuma*kReflectivityNoAlphaWorkflow_SmoothnessMax;return microSurface;}\n#endif\n`;\nz.IncludesShadersStore[r2] = n2;\nconst a2 = \"harmonicsFunctions\", o2 = `#ifdef USESPHERICALFROMREFLECTIONMAP\n#ifdef SPHERICAL_HARMONICS\nvec3 computeEnvironmentIrradiance(vec3 normal) {return vSphericalL00\n+ vSphericalL1_1*(normal.y)\n+ vSphericalL10*(normal.z)\n+ vSphericalL11*(normal.x)\n+ vSphericalL2_2*(normal.y*normal.x)\n+ vSphericalL2_1*(normal.y*normal.z)\n+ vSphericalL20*((3.0*normal.z*normal.z)-1.0)\n+ vSphericalL21*(normal.z*normal.x)\n+ vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));}\n#else\nvec3 computeEnvironmentIrradiance(vec3 normal) {float Nx=normal.x;float Ny=normal.y;float Nz=normal.z;vec3 C1=vSphericalZZ.rgb;vec3 Cx=vSphericalX.rgb;vec3 Cy=vSphericalY.rgb;vec3 Cz=vSphericalZ.rgb;vec3 Cxx_zz=vSphericalXX_ZZ.rgb;vec3 Cyy_zz=vSphericalYY_ZZ.rgb;vec3 Cxy=vSphericalXY.rgb;vec3 Cyz=vSphericalYZ.rgb;vec3 Czx=vSphericalZX.rgb;vec3 a1=Cyy_zz*Ny+Cy;vec3 a2=Cyz*Nz+a1;vec3 b1=Czx*Nz+Cx;vec3 b2=Cxy*Ny+b1;vec3 b3=Cxx_zz*Nx+b2;vec3 t1=Cz *Nz+C1;vec3 t2=a2 *Ny+t1;vec3 t3=b3 *Nx+t2;return t3;}\n#endif\n#endif\n`;\nz.IncludesShadersStore[a2] = o2;\nconst l2 = \"pbrDirectLightingSetupFunctions\", h2 = `struct preLightingInfo\n{vec3 lightOffset;float lightDistanceSquared;float lightDistance;float attenuation;vec3 L;vec3 H;float NdotV;float NdotLUnclamped;float NdotL;float VdotH;float roughness;\n#ifdef IRIDESCENCE\nfloat iridescenceIntensity;\n#endif\n};preLightingInfo computePointAndSpotPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {preLightingInfo result;result.lightOffset=lightData.xyz-vPositionW;result.lightDistanceSquared=dot(result.lightOffset,result.lightOffset);result.lightDistance=sqrt(result.lightDistanceSquared);result.L=normalize(result.lightOffset);result.H=normalize(V+result.L);result.VdotH=saturate(dot(V,result.H));result.NdotLUnclamped=dot(N,result.L);result.NdotL=saturateEps(result.NdotLUnclamped);return result;}\npreLightingInfo computeDirectionalPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {preLightingInfo result;result.lightDistance=length(-lightData.xyz);result.L=normalize(-lightData.xyz);result.H=normalize(V+result.L);result.VdotH=saturate(dot(V,result.H));result.NdotLUnclamped=dot(N,result.L);result.NdotL=saturateEps(result.NdotLUnclamped);return result;}\npreLightingInfo computeHemisphericPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {preLightingInfo result;result.NdotL=dot(N,lightData.xyz)*0.5+0.5;result.NdotL=saturateEps(result.NdotL);result.NdotLUnclamped=result.NdotL;\n#ifdef SPECULARTERM\nresult.L=normalize(lightData.xyz);result.H=normalize(V+result.L);result.VdotH=saturate(dot(V,result.H));\n#endif\nreturn result;}`;\nz.IncludesShadersStore[l2] = h2;\nconst c2 = \"pbrDirectLightingFalloffFunctions\", u2 = `float computeDistanceLightFalloff_Standard(vec3 lightOffset,float range)\n{return max(0.,1.0-length(lightOffset)/range);}\nfloat computeDistanceLightFalloff_Physical(float lightDistanceSquared)\n{return 1.0/maxEps(lightDistanceSquared);}\nfloat computeDistanceLightFalloff_GLTF(float lightDistanceSquared,float inverseSquaredRange)\n{float lightDistanceFalloff=1.0/maxEps(lightDistanceSquared);float factor=lightDistanceSquared*inverseSquaredRange;float attenuation=saturate(1.0-factor*factor);attenuation*=attenuation;lightDistanceFalloff*=attenuation;return lightDistanceFalloff;}\nfloat computeDistanceLightFalloff(vec3 lightOffset,float lightDistanceSquared,float range,float inverseSquaredRange)\n{\n#ifdef USEPHYSICALLIGHTFALLOFF\nreturn computeDistanceLightFalloff_Physical(lightDistanceSquared);\n#elif defined(USEGLTFLIGHTFALLOFF)\nreturn computeDistanceLightFalloff_GLTF(lightDistanceSquared,inverseSquaredRange);\n#else\nreturn computeDistanceLightFalloff_Standard(lightOffset,range);\n#endif\n}\nfloat computeDirectionalLightFalloff_Standard(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle,float exponent)\n{float falloff=0.0;float cosAngle=maxEps(dot(-lightDirection,directionToLightCenterW));if (cosAngle>=cosHalfAngle)\n{falloff=max(0.,pow(cosAngle,exponent));}\nreturn falloff;}\nfloat computeDirectionalLightFalloff_Physical(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle)\n{const float kMinusLog2ConeAngleIntensityRatio=6.64385618977; \nfloat concentrationKappa=kMinusLog2ConeAngleIntensityRatio/(1.0-cosHalfAngle);vec4 lightDirectionSpreadSG=vec4(-lightDirection*concentrationKappa,-concentrationKappa);float falloff=exp2(dot(vec4(directionToLightCenterW,1.0),lightDirectionSpreadSG));return falloff;}\nfloat computeDirectionalLightFalloff_GLTF(vec3 lightDirection,vec3 directionToLightCenterW,float lightAngleScale,float lightAngleOffset)\n{float cd=dot(-lightDirection,directionToLightCenterW);float falloff=saturate(cd*lightAngleScale+lightAngleOffset);falloff*=falloff;return falloff;}\nfloat computeDirectionalLightFalloff(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle,float exponent,float lightAngleScale,float lightAngleOffset)\n{\n#ifdef USEPHYSICALLIGHTFALLOFF\nreturn computeDirectionalLightFalloff_Physical(lightDirection,directionToLightCenterW,cosHalfAngle);\n#elif defined(USEGLTFLIGHTFALLOFF)\nreturn computeDirectionalLightFalloff_GLTF(lightDirection,directionToLightCenterW,lightAngleScale,lightAngleOffset);\n#else\nreturn computeDirectionalLightFalloff_Standard(lightDirection,directionToLightCenterW,cosHalfAngle,exponent);\n#endif\n}`;\nz.IncludesShadersStore[c2] = u2;\nconst d2 = \"pbrBRDFFunctions\", f2 = `#define FRESNEL_MAXIMUM_ON_ROUGH 0.25\n#ifdef MS_BRDF_ENERGY_CONSERVATION\nvec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {return 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);}\n#endif\n#ifdef ENVIRONMENTBRDF\nvec3 getBRDFLookup(float NdotV,float perceptualRoughness) {vec2 UV=vec2(NdotV,perceptualRoughness);vec4 brdfLookup=texture2D(environmentBrdfSampler,UV);\n#ifdef ENVIRONMENTBRDF_RGBD\nbrdfLookup.rgb=fromRGBD(brdfLookup.rgba);\n#endif\nreturn brdfLookup.rgb;}\nvec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 specularEnvironmentR90,const vec3 environmentBrdf) {\n#ifdef BRDF_V_HEIGHT_CORRELATED\nvec3 reflectance=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;\n#else\nvec3 reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;\n#endif\nreturn reflectance;}\nvec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {\n#ifdef BRDF_V_HEIGHT_CORRELATED\nvec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);\n#else\nvec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;\n#endif\nreturn reflectance;}\n#endif\n/* NOT USED\n#if defined(SHEEN) && defined(SHEEN_SOFTER)\nfloat getBRDFLookupCharlieSheen(float NdotV,float perceptualRoughness)\n{float c=1.0-NdotV;float c3=c*c*c;return 0.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));}\n#endif\n*/\n#if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)\nvec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)\n{float weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}\n#endif\n#if defined(SHEEN) && defined(ENVIRONMENTBRDF)\n/**\n* The sheen BRDF not containing F can be easily stored in the blue channel of the BRDF texture.\n* The blue channel contains DCharlie*VAshikhmin*NdotL as a lokkup table\n*/\nvec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) {vec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;return sheenEnvironmentReflectance;}\n#endif\nvec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90)\n{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}\nfloat fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90)\n{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}\n#ifdef CLEARCOAT\nvec3 getR0RemappedForClearCoat(vec3 f0) {\n#ifdef CLEARCOAT_DEFAULTIOR\n#ifdef MOBILE\nreturn saturate(f0*(f0*0.526868+0.529324)-0.0482256);\n#else\nreturn saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);\n#endif\n#else\nvec3 s=sqrt(f0);vec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);return square(t);\n#endif\n}\n#endif\n#ifdef IRIDESCENCE\nconst mat3 XYZ_TO_REC709=mat3(\n3.2404542,-0.9692660, 0.0556434,\n-1.5371385, 1.8760108,-0.2040259,\n-0.4985314, 0.0415560, 1.0572252\n);vec3 getIORTfromAirToSurfaceR0(vec3 f0) {vec3 sqrtF0=sqrt(f0);return (1.+sqrtF0)/(1.-sqrtF0);}\nvec3 getR0fromIORs(vec3 iorT,float iorI) {return square((iorT-vec3(iorI))/(iorT+vec3(iorI)));}\nfloat getR0fromIORs(float iorT,float iorI) {return square((iorT-iorI)/(iorT+iorI));}\nvec3 evalSensitivity(float opd,vec3 shift) {float phase=2.0*PI*opd*1.0e-9;const vec3 val=vec3(5.4856e-13,4.4201e-13,5.2481e-13);const vec3 pos=vec3(1.6810e+06,1.7953e+06,2.2084e+06);const vec3 var=vec3(4.3278e+09,9.3046e+09,6.6121e+09);vec3 xyz=val*sqrt(2.0*PI*var)*cos(pos*phase+shift)*exp(-square(phase)*var);xyz.x+=9.7470e-14*sqrt(2.0*PI*4.5282e+09)*cos(2.2399e+06*phase+shift[0])*exp(-4.5282e+09*square(phase));xyz/=1.0685e-7;vec3 srgb=XYZ_TO_REC709*xyz;return srgb;}\nvec3 evalIridescence(float outsideIOR,float eta2,float cosTheta1,float thinFilmThickness,vec3 baseF0) {vec3 I=vec3(1.0);float iridescenceIOR=mix(outsideIOR,eta2,smoothstep(0.0,0.03,thinFilmThickness));float sinTheta2Sq=square(outsideIOR/iridescenceIOR)*(1.0-square(cosTheta1));float cosTheta2Sq=1.0-sinTheta2Sq;if (cosTheta2Sq<0.0) {return I;}\nfloat cosTheta2=sqrt(cosTheta2Sq);float R0=getR0fromIORs(iridescenceIOR,outsideIOR);float R12=fresnelSchlickGGX(cosTheta1,R0,1.);float R21=R12;float T121=1.0-R12;float phi12=0.0;if (iridescenceIOR0\n#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\nfloat radicalInverse_VdC(uint bits) \n{bits=(bits<<16u) | (bits>>16u);bits=((bits & 0x55555555u)<<1u) | ((bits & 0xAAAAAAAAu)>>1u);bits=((bits & 0x33333333u)<<2u) | ((bits & 0xCCCCCCCCu)>>2u);bits=((bits & 0x0F0F0F0Fu)<<4u) | ((bits & 0xF0F0F0F0u)>>4u);bits=((bits & 0x00FF00FFu)<<8u) | ((bits & 0xFF00FF00u)>>8u);return float(bits)*2.3283064365386963e-10; }\nvec2 hammersley(uint i,uint N)\n{return vec2(float(i)/float(N),radicalInverse_VdC(i));}\n#else\nfloat vanDerCorpus(int n,int base)\n{float invBase=1.0/float(base);float denom =1.0;float result =0.0;for(int i=0; i<32; ++i)\n{if(n>0)\n{denom =mod(float(n),2.0);result+=denom*invBase;invBase=invBase/2.0;n =int(float(n)/2.0);}}\nreturn result;}\nvec2 hammersley(int i,int N)\n{return vec2(float(i)/float(N),vanDerCorpus(i,2));}\n#endif\nfloat log4(float x) {return log2(x)/2.;}\nconst float NUM_SAMPLES_FLOAT=float(NUM_SAMPLES);const float NUM_SAMPLES_FLOAT_INVERSED=1./NUM_SAMPLES_FLOAT;const float K=4.;\n#define inline\nvec3 irradiance(samplerCube inputTexture,vec3 inputN,vec2 filteringInfo)\n{vec3 n=normalize(inputN);vec3 result=vec3(0.0);vec3 tangent=abs(n.z)<0.999 ? vec3(0.,0.,1.) : vec3(1.,0.,0.);tangent=normalize(cross(tangent,n));vec3 bitangent=cross(n,tangent);mat3 tbn=mat3(tangent,bitangent,n);float maxLevel=filteringInfo.y;float dim0=filteringInfo.x;float omegaP=(4.*PI)/(6.*dim0*dim0);\n#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\nfor(uint i=0u; i0.) {float pdf_inversed=PI/NoL;float omegaS=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed;float l=log4(omegaS)-log4(omegaP)+log4(K);float mipLevel=clamp(l,0.0,maxLevel);vec3 c=textureCubeLodEXT(inputTexture,tbn*Ls,mipLevel).rgb;\n#ifdef GAMMA_INPUT\nc=toLinearSpace(c);\n#endif\nresult+=c;}}\nresult=result*NUM_SAMPLES_FLOAT_INVERSED;return result;}\n#define inline\nvec3 radiance(float alphaG,samplerCube inputTexture,vec3 inputN,vec2 filteringInfo)\n{vec3 n=normalize(inputN);vec3 c=textureCube(inputTexture,n).rgb; \nif (alphaG==0.) {\n#ifdef GAMMA_INPUT\nc=toLinearSpace(c);\n#endif\nreturn c;} else {vec3 result=vec3(0.);vec3 tangent=abs(n.z)<0.999 ? vec3(0.,0.,1.) : vec3(1.,0.,0.);tangent=normalize(cross(tangent,n));vec3 bitangent=cross(n,tangent);mat3 tbn=mat3(tangent,bitangent,n);float maxLevel=filteringInfo.y;float dim0=filteringInfo.x;float omegaP=(4.*PI)/(6.*dim0*dim0);float weight=0.;\n#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\nfor(uint i=0u; i0.) {float pdf_inversed=4./normalDistributionFunction_TrowbridgeReitzGGX(NoH,alphaG);float omegaS=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed;float l=log4(omegaS)-log4(omegaP)+log4(K);float mipLevel=clamp(float(l),0.0,maxLevel);weight+=NoL;vec3 c=textureCubeLodEXT(inputTexture,tbn*L,mipLevel).rgb;\n#ifdef GAMMA_INPUT\nc=toLinearSpace(c);\n#endif\nresult+=c*NoL;}}\nresult=result/weight;return result;}}\n#endif\n#endif\n`;\nz.IncludesShadersStore[p2] = _2;\nconst m2 = \"pbrDirectLightingFunctions\", g2 = `#define CLEARCOATREFLECTANCE90 1.0\nstruct lightingInfo\n{vec3 diffuse;\n#ifdef SPECULARTERM\nvec3 specular;\n#endif\n#ifdef CLEARCOAT\nvec4 clearCoat;\n#endif\n#ifdef SHEEN\nvec3 sheen;\n#endif\n};float adjustRoughnessFromLightProperties(float roughness,float lightRadius,float lightDistance) {\n#if defined(USEPHYSICALLIGHTFALLOFF) || defined(USEGLTFLIGHTFALLOFF)\nfloat lightRoughness=lightRadius/lightDistance;float totalRoughness=saturate(lightRoughness+roughness);return totalRoughness;\n#else\nreturn roughness;\n#endif\n}\nvec3 computeHemisphericDiffuseLighting(preLightingInfo info,vec3 lightColor,vec3 groundColor) {return mix(groundColor,lightColor,info.NdotL);}\nvec3 computeDiffuseLighting(preLightingInfo info,vec3 lightColor) {float diffuseTerm=diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.roughness);return diffuseTerm*info.attenuation*info.NdotL*lightColor;}\n#define inline\nvec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix){vec4 strq=textureProjectionMatrix*vec4(vPositionW,1.0);strq/=strq.w;vec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;return toLinearSpace(textureColor);}\n#ifdef SS_TRANSLUCENCY\nvec3 computeDiffuseAndTransmittedLighting(preLightingInfo info,vec3 lightColor,vec3 transmittance) {float NdotL=absEps(info.NdotLUnclamped);float wrapNdotL=computeWrappedDiffuseNdotL(NdotL,0.02);float trAdapt=step(0.,info.NdotLUnclamped);vec3 transmittanceNdotL=mix(transmittance*wrapNdotL,vec3(wrapNdotL),trAdapt);float diffuseTerm=diffuseBRDF_Burley(NdotL,info.NdotV,info.VdotH,info.roughness);return diffuseTerm*transmittanceNdotL*info.attenuation*lightColor;}\n#endif\n#ifdef SPECULARTERM\nvec3 computeSpecularLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {float NdotH=saturateEps(dot(N,info.H));float roughness=max(info.roughness,geometricRoughnessFactor);float alphaG=convertRoughnessToAverageSlope(roughness);vec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\n#ifdef IRIDESCENCE\nfresnel=mix(fresnel,reflectance0,info.iridescenceIntensity);\n#endif\nfloat distribution=normalDistributionFunction_TrowbridgeReitzGGX(NdotH,alphaG);\n#ifdef BRDF_V_HEIGHT_CORRELATED\nfloat smithVisibility=smithVisibility_GGXCorrelated(info.NdotL,info.NdotV,alphaG);\n#else\nfloat smithVisibility=smithVisibility_TrowbridgeReitzGGXFast(info.NdotL,info.NdotV,alphaG);\n#endif\nvec3 specTerm=fresnel*distribution*smithVisibility;return specTerm*info.attenuation*info.NdotL*lightColor;}\n#endif\n#ifdef ANISOTROPIC\nvec3 computeAnisotropicSpecularLighting(preLightingInfo info,vec3 V,vec3 N,vec3 T,vec3 B,float anisotropy,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {float NdotH=saturateEps(dot(N,info.H));float TdotH=dot(T,info.H);float BdotH=dot(B,info.H);float TdotV=dot(T,V);float BdotV=dot(B,V);float TdotL=dot(T,info.L);float BdotL=dot(B,info.L);float alphaG=convertRoughnessToAverageSlope(info.roughness);vec2 alphaTB=getAnisotropicRoughness(alphaG,anisotropy);alphaTB=max(alphaTB,square(geometricRoughnessFactor));vec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\n#ifdef IRIDESCENCE\nfresnel=mix(fresnel,reflectance0,info.iridescenceIntensity);\n#endif\nfloat distribution=normalDistributionFunction_BurleyGGX_Anisotropic(NdotH,TdotH,BdotH,alphaTB);float smithVisibility=smithVisibility_GGXCorrelated_Anisotropic(info.NdotL,info.NdotV,TdotV,BdotV,TdotL,BdotL,alphaTB);vec3 specTerm=fresnel*distribution*smithVisibility;return specTerm*info.attenuation*info.NdotL*lightColor;}\n#endif\n#ifdef CLEARCOAT\nvec4 computeClearCoatLighting(preLightingInfo info,vec3 Ncc,float geometricRoughnessFactor,float clearCoatIntensity,vec3 lightColor) {float NccdotL=saturateEps(dot(Ncc,info.L));float NccdotH=saturateEps(dot(Ncc,info.H));float clearCoatRoughness=max(info.roughness,geometricRoughnessFactor);float alphaG=convertRoughnessToAverageSlope(clearCoatRoughness);float fresnel=fresnelSchlickGGX(info.VdotH,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);fresnel*=clearCoatIntensity;float distribution=normalDistributionFunction_TrowbridgeReitzGGX(NccdotH,alphaG);float kelemenVisibility=visibility_Kelemen(info.VdotH);float clearCoatTerm=fresnel*distribution*kelemenVisibility;return vec4(\nclearCoatTerm*info.attenuation*NccdotL*lightColor,\n1.0-fresnel\n);}\nvec3 computeClearCoatLightingAbsorption(float NdotVRefract,vec3 L,vec3 Ncc,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {vec3 LRefract=-refract(L,Ncc,vClearCoatRefractionParams.y);float NdotLRefract=saturateEps(dot(Ncc,LRefract));vec3 absorption=computeClearCoatAbsorption(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness,clearCoatIntensity);return absorption;}\n#endif\n#ifdef SHEEN\nvec3 computeSheenLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {float NdotH=saturateEps(dot(N,info.H));float roughness=max(info.roughness,geometricRoughnessFactor);float alphaG=convertRoughnessToAverageSlope(roughness);float fresnel=1.;float distribution=normalDistributionFunction_CharlieSheen(NdotH,alphaG);/*#ifdef SHEEN_SOFTER\nfloat visibility=visibility_CharlieSheen(info.NdotL,info.NdotV,alphaG);\n#else */\nfloat visibility=visibility_Ashikhmin(info.NdotL,info.NdotV);/* #endif */\nfloat sheenTerm=fresnel*distribution*visibility;return sheenTerm*info.attenuation*info.NdotL*lightColor;}\n#endif\n`;\nz.IncludesShadersStore[m2] = g2;\nconst x2 = \"pbrIBLFunctions\", v2 = `#if defined(REFLECTION) || defined(SS_REFRACTION)\nfloat getLodFromAlphaG(float cubeMapDimensionPixels,float microsurfaceAverageSlope) {float microsurfaceAverageSlopeTexels=cubeMapDimensionPixels*microsurfaceAverageSlope;float lod=log2(microsurfaceAverageSlopeTexels);return lod;}\nfloat getLinearLodFromRoughness(float cubeMapDimensionPixels,float roughness) {float lod=log2(cubeMapDimensionPixels)*roughness;return lod;}\n#endif\n#if defined(ENVIRONMENTBRDF) && defined(RADIANCEOCCLUSION)\nfloat environmentRadianceOcclusion(float ambientOcclusion,float NdotVUnclamped) {float temp=NdotVUnclamped+ambientOcclusion;return saturate(square(temp)-1.0+ambientOcclusion);}\n#endif\n#if defined(ENVIRONMENTBRDF) && defined(HORIZONOCCLUSION)\nfloat environmentHorizonOcclusion(vec3 view,vec3 normal,vec3 geometricNormal) {vec3 reflection=reflect(view,normal);float temp=saturate(1.0+1.1*dot(reflection,geometricNormal));return square(temp);}\n#endif\n#if defined(LODINREFLECTIONALPHA) || defined(SS_LODINREFRACTIONALPHA)\n#define UNPACK_LOD(x) (1.0-x)*255.0\nfloat getLodFromAlphaG(float cubeMapDimensionPixels,float alphaG,float NdotV) {float microsurfaceAverageSlope=alphaG;microsurfaceAverageSlope*=sqrt(abs(NdotV));return getLodFromAlphaG(cubeMapDimensionPixels,microsurfaceAverageSlope);}\n#endif\n`;\nz.IncludesShadersStore[x2] = v2;\nconst T2 = \"pbrBlockAlbedoOpacity\", S2 = `struct albedoOpacityOutParams\n{vec3 surfaceAlbedo;float alpha;};\n#define pbr_inline\nvoid albedoOpacityBlock(\nin vec4 vAlbedoColor,\n#ifdef ALBEDO\nin vec4 albedoTexture,\nin vec2 albedoInfos,\n#endif\n#ifdef OPACITY\nin vec4 opacityMap,\nin vec2 vOpacityInfos,\n#endif\n#ifdef DETAIL\nin vec4 detailColor,\nin vec4 vDetailInfos,\n#endif\n#ifdef DECAL\nin vec4 decalColor,\nin vec4 vDecalInfos,\n#endif\nout albedoOpacityOutParams outParams\n)\n{vec3 surfaceAlbedo=vAlbedoColor.rgb;float alpha=vAlbedoColor.a;\n#ifdef ALBEDO\n#if defined(ALPHAFROMALBEDO) || defined(ALPHATEST)\nalpha*=albedoTexture.a;\n#endif\n#ifdef GAMMAALBEDO\nsurfaceAlbedo*=toLinearSpace(albedoTexture.rgb);\n#else\nsurfaceAlbedo*=albedoTexture.rgb;\n#endif\nsurfaceAlbedo*=albedoInfos.y;\n#endif\n#ifndef DECAL_AFTER_DETAIL\n#include\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nsurfaceAlbedo*=vColor.rgb;\n#endif\n#ifdef DETAIL\nfloat detailAlbedo=2.0*mix(0.5,detailColor.r,vDetailInfos.y);surfaceAlbedo.rgb=surfaceAlbedo.rgb*detailAlbedo*detailAlbedo; \n#endif\n#ifdef DECAL_AFTER_DETAIL\n#include\n#endif\n#define CUSTOM_FRAGMENT_UPDATE_ALBEDO\n#ifdef OPACITY\n#ifdef OPACITYRGB\nalpha=getLuminance(opacityMap.rgb);\n#else\nalpha*=opacityMap.a;\n#endif\nalpha*=vOpacityInfos.y;\n#endif\n#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nalpha*=vColor.a;\n#endif\n#if !defined(SS_LINKREFRACTIONTOTRANSPARENCY) && !defined(ALPHAFRESNEL)\n#ifdef ALPHATEST \n#if DEBUGMODE != 88\nif (alpha0\n#ifdef METALLICWORKFLOW\nvec2 metallicRoughness;\n#ifdef REFLECTIVITY\nvec4 surfaceMetallicColorMap;\n#endif\n#ifndef FROSTBITE_REFLECTANCE\nvec3 metallicF0;\n#endif\n#else\n#ifdef REFLECTIVITY\nvec4 surfaceReflectivityColorMap;\n#endif\n#endif\n#endif\n};\n#define pbr_inline\nvoid reflectivityBlock(\nin vec4 vReflectivityColor,\n#ifdef METALLICWORKFLOW\nin vec3 surfaceAlbedo,\nin vec4 metallicReflectanceFactors,\n#endif\n#ifdef REFLECTIVITY\nin vec3 reflectivityInfos,\nin vec4 surfaceMetallicOrReflectivityColorMap,\n#endif\n#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\nin vec3 ambientOcclusionColorIn,\n#endif\n#ifdef MICROSURFACEMAP\nin vec4 microSurfaceTexel,\n#endif\n#ifdef DETAIL\nin vec4 detailColor,\nin vec4 vDetailInfos,\n#endif\nout reflectivityOutParams outParams\n)\n{float microSurface=vReflectivityColor.a;vec3 surfaceReflectivityColor=vReflectivityColor.rgb;\n#ifdef METALLICWORKFLOW\nvec2 metallicRoughness=surfaceReflectivityColor.rg;\n#ifdef REFLECTIVITY\n#if DEBUGMODE>0\noutParams.surfaceMetallicColorMap=surfaceMetallicOrReflectivityColorMap;\n#endif\n#ifdef AOSTOREINMETALMAPRED\nvec3 aoStoreInMetalMap=vec3(surfaceMetallicOrReflectivityColorMap.r,surfaceMetallicOrReflectivityColorMap.r,surfaceMetallicOrReflectivityColorMap.r);outParams.ambientOcclusionColor=mix(ambientOcclusionColorIn,aoStoreInMetalMap,reflectivityInfos.z);\n#endif\n#ifdef METALLNESSSTOREINMETALMAPBLUE\nmetallicRoughness.r*=surfaceMetallicOrReflectivityColorMap.b;\n#else\nmetallicRoughness.r*=surfaceMetallicOrReflectivityColorMap.r;\n#endif\n#ifdef ROUGHNESSSTOREINMETALMAPALPHA\nmetallicRoughness.g*=surfaceMetallicOrReflectivityColorMap.a;\n#else\n#ifdef ROUGHNESSSTOREINMETALMAPGREEN\nmetallicRoughness.g*=surfaceMetallicOrReflectivityColorMap.g;\n#endif\n#endif\n#endif\n#ifdef DETAIL\nfloat detailRoughness=mix(0.5,detailColor.b,vDetailInfos.w);float loLerp=mix(0.,metallicRoughness.g,detailRoughness*2.);float hiLerp=mix(metallicRoughness.g,1.,(detailRoughness-0.5)*2.);metallicRoughness.g=mix(loLerp,hiLerp,step(detailRoughness,0.5));\n#endif\n#ifdef MICROSURFACEMAP\nmetallicRoughness.g*=microSurfaceTexel.r;\n#endif\n#if DEBUGMODE>0\noutParams.metallicRoughness=metallicRoughness;\n#endif\n#define CUSTOM_FRAGMENT_UPDATE_METALLICROUGHNESS\nmicroSurface=1.0-metallicRoughness.g;vec3 baseColor=surfaceAlbedo;\n#ifdef FROSTBITE_REFLECTANCE\noutParams.surfaceAlbedo=baseColor.rgb*(1.0-metallicRoughness.r);surfaceReflectivityColor=mix(0.16*reflectance*reflectance,baseColor,metallicRoughness.r);\n#else\nvec3 metallicF0=metallicReflectanceFactors.rgb;\n#if DEBUGMODE>0\noutParams.metallicF0=metallicF0;\n#endif\noutParams.surfaceAlbedo=mix(baseColor.rgb*(1.0-metallicF0),vec3(0.,0.,0.),metallicRoughness.r);surfaceReflectivityColor=mix(metallicF0,baseColor,metallicRoughness.r);\n#endif\n#else\n#ifdef REFLECTIVITY\nsurfaceReflectivityColor*=surfaceMetallicOrReflectivityColorMap.rgb;\n#if DEBUGMODE>0\noutParams.surfaceReflectivityColorMap=surfaceMetallicOrReflectivityColorMap;\n#endif\n#ifdef MICROSURFACEFROMREFLECTIVITYMAP\nmicroSurface*=surfaceMetallicOrReflectivityColorMap.a;microSurface*=reflectivityInfos.z;\n#else\n#ifdef MICROSURFACEAUTOMATIC\nmicroSurface*=computeDefaultMicroSurface(microSurface,surfaceReflectivityColor);\n#endif\n#ifdef MICROSURFACEMAP\nmicroSurface*=microSurfaceTexel.r;\n#endif\n#define CUSTOM_FRAGMENT_UPDATE_MICROSURFACE\n#endif\n#endif\n#endif\nmicroSurface=saturate(microSurface);float roughness=1.-microSurface;outParams.microSurface=microSurface;outParams.roughness=roughness;outParams.surfaceReflectivityColor=surfaceReflectivityColor;}\n`;\nz.IncludesShadersStore[b2] = E2;\nconst y2 = \"pbrBlockAmbientOcclusion\", C2 = `struct ambientOcclusionOutParams\n{vec3 ambientOcclusionColor;\n#if DEBUGMODE>0 && defined(AMBIENT)\nvec3 ambientOcclusionColorMap;\n#endif\n};\n#define pbr_inline\nvoid ambientOcclusionBlock(\n#ifdef AMBIENT\nin vec3 ambientOcclusionColorMap_,\nin vec4 vAmbientInfos,\n#endif\nout ambientOcclusionOutParams outParams\n)\n{vec3 ambientOcclusionColor=vec3(1.,1.,1.);\n#ifdef AMBIENT\nvec3 ambientOcclusionColorMap=ambientOcclusionColorMap_*vAmbientInfos.y;\n#ifdef AMBIENTINGRAYSCALE\nambientOcclusionColorMap=vec3(ambientOcclusionColorMap.r,ambientOcclusionColorMap.r,ambientOcclusionColorMap.r);\n#endif\nambientOcclusionColor=mix(ambientOcclusionColor,ambientOcclusionColorMap,vAmbientInfos.z);\n#if DEBUGMODE>0\noutParams.ambientOcclusionColorMap=ambientOcclusionColorMap;\n#endif\n#endif\noutParams.ambientOcclusionColor=ambientOcclusionColor;}\n`;\nz.IncludesShadersStore[y2] = C2;\nconst A2 = \"pbrBlockAlphaFresnel\", R2 = `#ifdef ALPHAFRESNEL\n#if defined(ALPHATEST) || defined(ALPHABLEND)\nstruct alphaFresnelOutParams\n{float alpha;};\n#define pbr_inline\nvoid alphaFresnelBlock(\nin vec3 normalW,\nin vec3 viewDirectionW,\nin float alpha,\nin float microSurface,\nout alphaFresnelOutParams outParams\n)\n{float opacityPerceptual=alpha;\n#ifdef LINEARALPHAFRESNEL\nfloat opacity0=opacityPerceptual;\n#else\nfloat opacity0=opacityPerceptual*opacityPerceptual;\n#endif\nfloat opacity90=fresnelGrazingReflectance(opacity0);vec3 normalForward=faceforward(normalW,-viewDirectionW,normalW);outParams.alpha=getReflectanceFromAnalyticalBRDFLookup_Jones(saturate(dot(viewDirectionW,normalForward)),vec3(opacity0),vec3(opacity90),sqrt(microSurface)).x;\n#ifdef ALPHATEST\nif (outParams.alpha0 && defined(ANISOTROPIC_TEXTURE)\nvec3 anisotropyMapData;\n#endif\n};\n#define pbr_inline\nvoid anisotropicBlock(\nin vec3 vAnisotropy,\nin float roughness,\n#ifdef ANISOTROPIC_TEXTURE\nin vec3 anisotropyMapData,\n#endif\nin mat3 TBN,\nin vec3 normalW,\nin vec3 viewDirectionW,\nout anisotropicOutParams outParams\n)\n{float anisotropy=vAnisotropy.b;vec3 anisotropyDirection=vec3(vAnisotropy.xy,0.);\n#ifdef ANISOTROPIC_TEXTURE\nanisotropy*=anisotropyMapData.b;\n#if DEBUGMODE>0\noutParams.anisotropyMapData=anisotropyMapData;\n#endif\nanisotropyMapData.rg=anisotropyMapData.rg*2.0-1.0;\n#ifdef ANISOTROPIC_LEGACY\nanisotropyDirection.rg*=anisotropyMapData.rg;\n#else\nanisotropyDirection.xy=mat2(anisotropyDirection.x,anisotropyDirection.y,-anisotropyDirection.y,anisotropyDirection.x)*normalize(anisotropyMapData.rg);\n#endif\n#endif\nmat3 anisoTBN=mat3(normalize(TBN[0]),normalize(TBN[1]),normalize(TBN[2]));vec3 anisotropicTangent=normalize(anisoTBN*anisotropyDirection);vec3 anisotropicBitangent=normalize(cross(anisoTBN[2],anisotropicTangent));outParams.anisotropy=anisotropy;outParams.anisotropicTangent=anisotropicTangent;outParams.anisotropicBitangent=anisotropicBitangent;outParams.anisotropicNormal=getAnisotropicBentNormals(anisotropicTangent,anisotropicBitangent,normalW,viewDirectionW,anisotropy,roughness);}\n#endif\n`;\nz.IncludesShadersStore[I2] = P2;\nconst M2 = \"pbrBlockReflection\", D2 = `#ifdef REFLECTION\nstruct reflectionOutParams\n{vec4 environmentRadiance;vec3 environmentIrradiance;\n#ifdef REFLECTIONMAP_3D\nvec3 reflectionCoords;\n#else\nvec2 reflectionCoords;\n#endif\n#ifdef SS_TRANSLUCENCY\n#ifdef USESPHERICALFROMREFLECTIONMAP\n#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\nvec3 irradianceVector;\n#endif\n#endif\n#endif\n};\n#define pbr_inline\nvoid createReflectionCoords(\nin vec3 vPositionW,\nin vec3 normalW,\n#ifdef ANISOTROPIC\nin anisotropicOutParams anisotropicOut,\n#endif\n#ifdef REFLECTIONMAP_3D\nout vec3 reflectionCoords\n#else\nout vec2 reflectionCoords\n#endif\n)\n{\n#ifdef ANISOTROPIC\nvec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),anisotropicOut.anisotropicNormal);\n#else\nvec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\n#endif\n#ifdef REFLECTIONMAP_OPPOSITEZ\nreflectionVector.z*=-1.0;\n#endif\n#ifdef REFLECTIONMAP_3D\nreflectionCoords=reflectionVector;\n#else\nreflectionCoords=reflectionVector.xy;\n#ifdef REFLECTIONMAP_PROJECTION\nreflectionCoords/=reflectionVector.z;\n#endif\nreflectionCoords.y=1.0-reflectionCoords.y;\n#endif\n}\n#define pbr_inline\n#define inline\nvoid sampleReflectionTexture(\nin float alphaG,\nin vec3 vReflectionMicrosurfaceInfos,\nin vec2 vReflectionInfos,\nin vec3 vReflectionColor,\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\nin float NdotVUnclamped,\n#endif\n#ifdef LINEARSPECULARREFLECTION\nin float roughness,\n#endif\n#ifdef REFLECTIONMAP_3D\nin samplerCube reflectionSampler,\nconst vec3 reflectionCoords,\n#else\nin sampler2D reflectionSampler,\nconst vec2 reflectionCoords,\n#endif\n#ifndef LODBASEDMICROSFURACE\n#ifdef REFLECTIONMAP_3D\nin samplerCube reflectionSamplerLow,\nin samplerCube reflectionSamplerHigh,\n#else\nin sampler2D reflectionSamplerLow,\nin sampler2D reflectionSamplerHigh,\n#endif\n#endif\n#ifdef REALTIME_FILTERING\nin vec2 vReflectionFilteringInfo,\n#endif\nout vec4 environmentRadiance\n)\n{\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\nfloat reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG,NdotVUnclamped);\n#elif defined(LINEARSPECULARREFLECTION)\nfloat reflectionLOD=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness);\n#else\nfloat reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG);\n#endif\n#ifdef LODBASEDMICROSFURACE\nreflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;\n#ifdef LODINREFLECTIONALPHA\nfloat automaticReflectionLOD=UNPACK_LOD(sampleReflection(reflectionSampler,reflectionCoords).a);float requestedReflectionLOD=max(automaticReflectionLOD,reflectionLOD);\n#else\nfloat requestedReflectionLOD=reflectionLOD;\n#endif\n#ifdef REALTIME_FILTERING\nenvironmentRadiance=vec4(radiance(alphaG,reflectionSampler,reflectionCoords,vReflectionFilteringInfo),1.0);\n#else\nenvironmentRadiance=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);\n#endif\n#else\nfloat lodReflectionNormalized=saturate(reflectionLOD/log2(vReflectionMicrosurfaceInfos.x));float lodReflectionNormalizedDoubled=lodReflectionNormalized*2.0;vec4 environmentMid=sampleReflection(reflectionSampler,reflectionCoords);if (lodReflectionNormalizedDoubled<1.0){environmentRadiance=mix(\nsampleReflection(reflectionSamplerHigh,reflectionCoords),\nenvironmentMid,\nlodReflectionNormalizedDoubled\n);} else {environmentRadiance=mix(\nenvironmentMid,\nsampleReflection(reflectionSamplerLow,reflectionCoords),\nlodReflectionNormalizedDoubled-1.0\n);}\n#endif\n#ifdef RGBDREFLECTION\nenvironmentRadiance.rgb=fromRGBD(environmentRadiance);\n#endif\n#ifdef GAMMAREFLECTION\nenvironmentRadiance.rgb=toLinearSpace(environmentRadiance.rgb);\n#endif\nenvironmentRadiance.rgb*=vReflectionInfos.x;environmentRadiance.rgb*=vReflectionColor.rgb;}\n#define pbr_inline\n#define inline\nvoid reflectionBlock(\nin vec3 vPositionW,\nin vec3 normalW,\nin float alphaG,\nin vec3 vReflectionMicrosurfaceInfos,\nin vec2 vReflectionInfos,\nin vec3 vReflectionColor,\n#ifdef ANISOTROPIC\nin anisotropicOutParams anisotropicOut,\n#endif\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\nin float NdotVUnclamped,\n#endif\n#ifdef LINEARSPECULARREFLECTION\nin float roughness,\n#endif\n#ifdef REFLECTIONMAP_3D\nin samplerCube reflectionSampler,\n#else\nin sampler2D reflectionSampler,\n#endif\n#if defined(NORMAL) && defined(USESPHERICALINVERTEX)\nin vec3 vEnvironmentIrradiance,\n#endif\n#ifdef USESPHERICALFROMREFLECTIONMAP\n#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\nin mat4 reflectionMatrix,\n#endif\n#endif\n#ifdef USEIRRADIANCEMAP\n#ifdef REFLECTIONMAP_3D\nin samplerCube irradianceSampler,\n#else\nin sampler2D irradianceSampler,\n#endif\n#endif\n#ifndef LODBASEDMICROSFURACE\n#ifdef REFLECTIONMAP_3D\nin samplerCube reflectionSamplerLow,\nin samplerCube reflectionSamplerHigh,\n#else\nin sampler2D reflectionSamplerLow,\nin sampler2D reflectionSamplerHigh,\n#endif\n#endif\n#ifdef REALTIME_FILTERING\nin vec2 vReflectionFilteringInfo,\n#endif\nout reflectionOutParams outParams\n)\n{vec4 environmentRadiance=vec4(0.,0.,0.,0.);\n#ifdef REFLECTIONMAP_3D\nvec3 reflectionCoords=vec3(0.);\n#else\nvec2 reflectionCoords=vec2(0.);\n#endif\ncreateReflectionCoords(\nvPositionW,\nnormalW,\n#ifdef ANISOTROPIC\nanisotropicOut,\n#endif\nreflectionCoords\n);sampleReflectionTexture(\nalphaG,\nvReflectionMicrosurfaceInfos,\nvReflectionInfos,\nvReflectionColor,\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\nNdotVUnclamped,\n#endif\n#ifdef LINEARSPECULARREFLECTION\nroughness,\n#endif\n#ifdef REFLECTIONMAP_3D\nreflectionSampler,\nreflectionCoords,\n#else\nreflectionSampler,\nreflectionCoords,\n#endif\n#ifndef LODBASEDMICROSFURACE\nreflectionSamplerLow,\nreflectionSamplerHigh,\n#endif\n#ifdef REALTIME_FILTERING\nvReflectionFilteringInfo,\n#endif\nenvironmentRadiance\n);vec3 environmentIrradiance=vec3(0.,0.,0.);\n#ifdef USESPHERICALFROMREFLECTIONMAP\n#if defined(NORMAL) && defined(USESPHERICALINVERTEX)\nenvironmentIrradiance=vEnvironmentIrradiance;\n#else\n#ifdef ANISOTROPIC\nvec3 irradianceVector=vec3(reflectionMatrix*vec4(anisotropicOut.anisotropicNormal,0)).xyz;\n#else\nvec3 irradianceVector=vec3(reflectionMatrix*vec4(normalW,0)).xyz;\n#endif\n#ifdef REFLECTIONMAP_OPPOSITEZ\nirradianceVector.z*=-1.0;\n#endif\n#ifdef INVERTCUBICMAP\nirradianceVector.y*=-1.0;\n#endif\n#if defined(REALTIME_FILTERING)\nenvironmentIrradiance=irradiance(reflectionSampler,irradianceVector,vReflectionFilteringInfo);\n#else\nenvironmentIrradiance=computeEnvironmentIrradiance(irradianceVector);\n#endif\n#ifdef SS_TRANSLUCENCY\noutParams.irradianceVector=irradianceVector;\n#endif\n#endif\n#elif defined(USEIRRADIANCEMAP)\nvec4 environmentIrradiance4=sampleReflection(irradianceSampler,reflectionCoords);environmentIrradiance=environmentIrradiance4.rgb;\n#ifdef RGBDREFLECTION\nenvironmentIrradiance.rgb=fromRGBD(environmentIrradiance4);\n#endif\n#ifdef GAMMAREFLECTION\nenvironmentIrradiance.rgb=toLinearSpace(environmentIrradiance.rgb);\n#endif\n#endif\nenvironmentIrradiance*=vReflectionColor.rgb;outParams.environmentRadiance=environmentRadiance;outParams.environmentIrradiance=environmentIrradiance;outParams.reflectionCoords=reflectionCoords;}\n#endif\n`;\nz.IncludesShadersStore[M2] = D2;\nconst O2 = \"pbrBlockSheen\", w2 = `#ifdef SHEEN\nstruct sheenOutParams\n{float sheenIntensity;vec3 sheenColor;float sheenRoughness;\n#ifdef SHEEN_LINKWITHALBEDO\nvec3 surfaceAlbedo;\n#endif\n#if defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)\nfloat sheenAlbedoScaling;\n#endif\n#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\nvec3 finalSheenRadianceScaled;\n#endif\n#if DEBUGMODE>0\n#ifdef SHEEN_TEXTURE\nvec4 sheenMapData;\n#endif\n#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\nvec3 sheenEnvironmentReflectance;\n#endif\n#endif\n};\n#define pbr_inline\n#define inline\nvoid sheenBlock(\nin vec4 vSheenColor,\n#ifdef SHEEN_ROUGHNESS\nin float vSheenRoughness,\n#if defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\nin vec4 sheenMapRoughnessData,\n#endif\n#endif\nin float roughness,\n#ifdef SHEEN_TEXTURE\nin vec4 sheenMapData,\nin float sheenMapLevel,\n#endif\nin float reflectance,\n#ifdef SHEEN_LINKWITHALBEDO\nin vec3 baseColor,\nin vec3 surfaceAlbedo,\n#endif\n#ifdef ENVIRONMENTBRDF\nin float NdotV,\nin vec3 environmentBrdf,\n#endif\n#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\nin vec2 AARoughnessFactors,\nin vec3 vReflectionMicrosurfaceInfos,\nin vec2 vReflectionInfos,\nin vec3 vReflectionColor,\nin vec4 vLightingIntensity,\n#ifdef REFLECTIONMAP_3D\nin samplerCube reflectionSampler,\nin vec3 reflectionCoords,\n#else\nin sampler2D reflectionSampler,\nin vec2 reflectionCoords,\n#endif\nin float NdotVUnclamped,\n#ifndef LODBASEDMICROSFURACE\n#ifdef REFLECTIONMAP_3D\nin samplerCube reflectionSamplerLow,\nin samplerCube reflectionSamplerHigh,\n#else\nin sampler2D reflectionSamplerLow,\nin sampler2D reflectionSamplerHigh,\n#endif\n#endif\n#ifdef REALTIME_FILTERING\nin vec2 vReflectionFilteringInfo,\n#endif\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)\nin float seo,\n#endif\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)\nin float eho,\n#endif\n#endif\nout sheenOutParams outParams\n)\n{float sheenIntensity=vSheenColor.a;\n#ifdef SHEEN_TEXTURE\n#if DEBUGMODE>0\noutParams.sheenMapData=sheenMapData;\n#endif\n#endif\n#ifdef SHEEN_LINKWITHALBEDO\nfloat sheenFactor=pow5(1.0-sheenIntensity);vec3 sheenColor=baseColor.rgb*(1.0-sheenFactor);float sheenRoughness=sheenIntensity;outParams.surfaceAlbedo=surfaceAlbedo*sheenFactor;\n#ifdef SHEEN_TEXTURE\nsheenIntensity*=sheenMapData.a;\n#endif\n#else\nvec3 sheenColor=vSheenColor.rgb;\n#ifdef SHEEN_TEXTURE\n#ifdef SHEEN_GAMMATEXTURE\nsheenColor.rgb*=toLinearSpace(sheenMapData.rgb);\n#else\nsheenColor.rgb*=sheenMapData.rgb;\n#endif\nsheenColor.rgb*=sheenMapLevel;\n#endif\n#ifdef SHEEN_ROUGHNESS\nfloat sheenRoughness=vSheenRoughness;\n#ifdef SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE\n#if defined(SHEEN_TEXTURE)\nsheenRoughness*=sheenMapData.a;\n#endif\n#elif defined(SHEEN_TEXTURE_ROUGHNESS)\nsheenRoughness*=sheenMapRoughnessData.a;\n#endif\n#else\nfloat sheenRoughness=roughness;\n#ifdef SHEEN_TEXTURE\nsheenIntensity*=sheenMapData.a;\n#endif\n#endif\n#if !defined(SHEEN_ALBEDOSCALING)\nsheenIntensity*=(1.-reflectance);\n#endif\nsheenColor*=sheenIntensity;\n#endif\n#ifdef ENVIRONMENTBRDF\n/*#ifdef SHEEN_SOFTER\nvec3 environmentSheenBrdf=vec3(0.,0.,getBRDFLookupCharlieSheen(NdotV,sheenRoughness));\n#else*/\n#ifdef SHEEN_ROUGHNESS\nvec3 environmentSheenBrdf=getBRDFLookup(NdotV,sheenRoughness);\n#else\nvec3 environmentSheenBrdf=environmentBrdf;\n#endif\n/*#endif*/\n#endif\n#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\nfloat sheenAlphaG=convertRoughnessToAverageSlope(sheenRoughness);\n#ifdef SPECULARAA\nsheenAlphaG+=AARoughnessFactors.y;\n#endif\nvec4 environmentSheenRadiance=vec4(0.,0.,0.,0.);sampleReflectionTexture(\nsheenAlphaG,\nvReflectionMicrosurfaceInfos,\nvReflectionInfos,\nvReflectionColor,\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\nNdotVUnclamped,\n#endif\n#ifdef LINEARSPECULARREFLECTION\nsheenRoughness,\n#endif\nreflectionSampler,\nreflectionCoords,\n#ifndef LODBASEDMICROSFURACE\nreflectionSamplerLow,\nreflectionSamplerHigh,\n#endif\n#ifdef REALTIME_FILTERING\nvReflectionFilteringInfo,\n#endif\nenvironmentSheenRadiance\n);vec3 sheenEnvironmentReflectance=getSheenReflectanceFromBRDFLookup(sheenColor,environmentSheenBrdf);\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)\nsheenEnvironmentReflectance*=seo;\n#endif\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)\nsheenEnvironmentReflectance*=eho;\n#endif\n#if DEBUGMODE>0\noutParams.sheenEnvironmentReflectance=sheenEnvironmentReflectance;\n#endif\noutParams.finalSheenRadianceScaled=\nenvironmentSheenRadiance.rgb *\nsheenEnvironmentReflectance *\nvLightingIntensity.z;\n#endif\n#if defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)\noutParams.sheenAlbedoScaling=1.0-sheenIntensity*max(max(sheenColor.r,sheenColor.g),sheenColor.b)*environmentSheenBrdf.b;\n#endif\noutParams.sheenIntensity=sheenIntensity;outParams.sheenColor=sheenColor;outParams.sheenRoughness=sheenRoughness;}\n#endif\n`;\nz.IncludesShadersStore[O2] = w2;\nconst N2 = \"pbrBlockClearcoat\", F2 = `struct clearcoatOutParams\n{vec3 specularEnvironmentR0;float conservationFactor;vec3 clearCoatNormalW;vec2 clearCoatAARoughnessFactors;float clearCoatIntensity;float clearCoatRoughness;\n#ifdef REFLECTION\nvec3 finalClearCoatRadianceScaled;\n#endif\n#ifdef CLEARCOAT_TINT\nvec3 absorption;float clearCoatNdotVRefract;vec3 clearCoatColor;float clearCoatThickness;\n#endif\n#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)\nvec3 energyConservationFactorClearCoat;\n#endif\n#if DEBUGMODE>0\n#ifdef CLEARCOAT_BUMP\nmat3 TBNClearCoat;\n#endif\n#ifdef CLEARCOAT_TEXTURE\nvec2 clearCoatMapData;\n#endif\n#if defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)\nvec4 clearCoatTintMapData;\n#endif\n#ifdef REFLECTION\nvec4 environmentClearCoatRadiance;vec3 clearCoatEnvironmentReflectance;\n#endif\nfloat clearCoatNdotV;\n#endif\n};\n#ifdef CLEARCOAT\n#define pbr_inline\n#define inline\nvoid clearcoatBlock(\nin vec3 vPositionW,\nin vec3 geometricNormalW,\nin vec3 viewDirectionW,\nin vec2 vClearCoatParams,\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\nin vec4 clearCoatMapRoughnessData,\n#endif\nin vec3 specularEnvironmentR0,\n#ifdef CLEARCOAT_TEXTURE\nin vec2 clearCoatMapData,\n#endif\n#ifdef CLEARCOAT_TINT\nin vec4 vClearCoatTintParams,\nin float clearCoatColorAtDistance,\nin vec4 vClearCoatRefractionParams,\n#ifdef CLEARCOAT_TINT_TEXTURE\nin vec4 clearCoatTintMapData,\n#endif\n#endif\n#ifdef CLEARCOAT_BUMP\nin vec2 vClearCoatBumpInfos,\nin vec4 clearCoatBumpMapData,\nin vec2 vClearCoatBumpUV,\n#if defined(TANGENT) && defined(NORMAL)\nin mat3 vTBN,\n#else\nin vec2 vClearCoatTangentSpaceParams,\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\nin mat4 normalMatrix,\n#endif\n#endif\n#if defined(FORCENORMALFORWARD) && defined(NORMAL)\nin vec3 faceNormal,\n#endif\n#ifdef REFLECTION\nin vec3 vReflectionMicrosurfaceInfos,\nin vec2 vReflectionInfos,\nin vec3 vReflectionColor,\nin vec4 vLightingIntensity,\n#ifdef REFLECTIONMAP_3D\nin samplerCube reflectionSampler,\n#else\nin sampler2D reflectionSampler,\n#endif\n#ifndef LODBASEDMICROSFURACE\n#ifdef REFLECTIONMAP_3D\nin samplerCube reflectionSamplerLow,\nin samplerCube reflectionSamplerHigh,\n#else\nin sampler2D reflectionSamplerLow,\nin sampler2D reflectionSamplerHigh,\n#endif\n#endif\n#ifdef REALTIME_FILTERING\nin vec2 vReflectionFilteringInfo,\n#endif\n#endif\n#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\n#ifdef RADIANCEOCCLUSION\nin float ambientMonochrome,\n#endif\n#endif\n#if defined(CLEARCOAT_BUMP) || defined(TWOSIDEDLIGHTING)\nin float frontFacingMultiplier,\n#endif\nout clearcoatOutParams outParams\n)\n{float clearCoatIntensity=vClearCoatParams.x;float clearCoatRoughness=vClearCoatParams.y;\n#ifdef CLEARCOAT_TEXTURE\nclearCoatIntensity*=clearCoatMapData.x;\n#ifdef CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE\nclearCoatRoughness*=clearCoatMapData.y;\n#endif\n#if DEBUGMODE>0\noutParams.clearCoatMapData=clearCoatMapData;\n#endif\n#endif\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\nclearCoatRoughness*=clearCoatMapRoughnessData.y;\n#endif\noutParams.clearCoatIntensity=clearCoatIntensity;outParams.clearCoatRoughness=clearCoatRoughness;\n#ifdef CLEARCOAT_TINT\nvec3 clearCoatColor=vClearCoatTintParams.rgb;float clearCoatThickness=vClearCoatTintParams.a;\n#ifdef CLEARCOAT_TINT_TEXTURE\n#ifdef CLEARCOAT_TINT_GAMMATEXTURE\nclearCoatColor*=toLinearSpace(clearCoatTintMapData.rgb);\n#else\nclearCoatColor*=clearCoatTintMapData.rgb;\n#endif\nclearCoatThickness*=clearCoatTintMapData.a;\n#if DEBUGMODE>0\noutParams.clearCoatTintMapData=clearCoatTintMapData;\n#endif\n#endif\noutParams.clearCoatColor=computeColorAtDistanceInMedia(clearCoatColor,clearCoatColorAtDistance);outParams.clearCoatThickness=clearCoatThickness;\n#endif\n#ifdef CLEARCOAT_REMAP_F0\nvec3 specularEnvironmentR0Updated=getR0RemappedForClearCoat(specularEnvironmentR0);\n#else\nvec3 specularEnvironmentR0Updated=specularEnvironmentR0;\n#endif\noutParams.specularEnvironmentR0=mix(specularEnvironmentR0,specularEnvironmentR0Updated,clearCoatIntensity);vec3 clearCoatNormalW=geometricNormalW;\n#ifdef CLEARCOAT_BUMP\n#ifdef NORMALXYSCALE\nfloat clearCoatNormalScale=1.0;\n#else\nfloat clearCoatNormalScale=vClearCoatBumpInfos.y;\n#endif\n#if defined(TANGENT) && defined(NORMAL)\nmat3 TBNClearCoat=vTBN;\n#else\nvec2 TBNClearCoatUV=vClearCoatBumpUV*frontFacingMultiplier;mat3 TBNClearCoat=cotangent_frame(clearCoatNormalW*clearCoatNormalScale,vPositionW,TBNClearCoatUV,vClearCoatTangentSpaceParams);\n#endif\n#if DEBUGMODE>0\noutParams.TBNClearCoat=TBNClearCoat;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\nclearCoatNormalW=normalize(clearCoatBumpMapData.xyz *2.0-1.0);clearCoatNormalW=normalize(mat3(normalMatrix)*clearCoatNormalW);\n#else\nclearCoatNormalW=perturbNormal(TBNClearCoat,clearCoatBumpMapData.xyz,vClearCoatBumpInfos.y);\n#endif\n#endif\n#if defined(FORCENORMALFORWARD) && defined(NORMAL)\nclearCoatNormalW*=sign(dot(clearCoatNormalW,faceNormal));\n#endif\n#if defined(TWOSIDEDLIGHTING) && defined(NORMAL)\nclearCoatNormalW=clearCoatNormalW*frontFacingMultiplier;\n#endif\noutParams.clearCoatNormalW=clearCoatNormalW;outParams.clearCoatAARoughnessFactors=getAARoughnessFactors(clearCoatNormalW.xyz);float clearCoatNdotVUnclamped=dot(clearCoatNormalW,viewDirectionW);float clearCoatNdotV=absEps(clearCoatNdotVUnclamped);\n#if DEBUGMODE>0\noutParams.clearCoatNdotV=clearCoatNdotV;\n#endif\n#ifdef CLEARCOAT_TINT\nvec3 clearCoatVRefract=refract(-viewDirectionW,clearCoatNormalW,vClearCoatRefractionParams.y);outParams.clearCoatNdotVRefract=absEps(dot(clearCoatNormalW,clearCoatVRefract));\n#endif\n#if defined(ENVIRONMENTBRDF) && (!defined(REFLECTIONMAP_SKYBOX) || defined(MS_BRDF_ENERGY_CONSERVATION))\nvec3 environmentClearCoatBrdf=getBRDFLookup(clearCoatNdotV,clearCoatRoughness);\n#endif\n#if defined(REFLECTION)\nfloat clearCoatAlphaG=convertRoughnessToAverageSlope(clearCoatRoughness);\n#ifdef SPECULARAA\nclearCoatAlphaG+=outParams.clearCoatAARoughnessFactors.y;\n#endif\nvec4 environmentClearCoatRadiance=vec4(0.,0.,0.,0.);vec3 clearCoatReflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),clearCoatNormalW);\n#ifdef REFLECTIONMAP_OPPOSITEZ\nclearCoatReflectionVector.z*=-1.0;\n#endif\n#ifdef REFLECTIONMAP_3D\nvec3 clearCoatReflectionCoords=clearCoatReflectionVector;\n#else\nvec2 clearCoatReflectionCoords=clearCoatReflectionVector.xy;\n#ifdef REFLECTIONMAP_PROJECTION\nclearCoatReflectionCoords/=clearCoatReflectionVector.z;\n#endif\nclearCoatReflectionCoords.y=1.0-clearCoatReflectionCoords.y;\n#endif\nsampleReflectionTexture(\nclearCoatAlphaG,\nvReflectionMicrosurfaceInfos,\nvReflectionInfos,\nvReflectionColor,\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\nclearCoatNdotVUnclamped,\n#endif\n#ifdef LINEARSPECULARREFLECTION\nclearCoatRoughness,\n#endif\nreflectionSampler,\nclearCoatReflectionCoords,\n#ifndef LODBASEDMICROSFURACE\nreflectionSamplerLow,\nreflectionSamplerHigh,\n#endif\n#ifdef REALTIME_FILTERING\nvReflectionFilteringInfo,\n#endif\nenvironmentClearCoatRadiance\n);\n#if DEBUGMODE>0\noutParams.environmentClearCoatRadiance=environmentClearCoatRadiance;\n#endif\n#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\nvec3 clearCoatEnvironmentReflectance=getReflectanceFromBRDFLookup(vec3(vClearCoatRefractionParams.x),environmentClearCoatBrdf);\n#ifdef HORIZONOCCLUSION\n#ifdef BUMP\n#ifdef REFLECTIONMAP_3D\nfloat clearCoatEho=environmentHorizonOcclusion(-viewDirectionW,clearCoatNormalW,geometricNormalW);clearCoatEnvironmentReflectance*=clearCoatEho;\n#endif\n#endif\n#endif\n#else\nvec3 clearCoatEnvironmentReflectance=getReflectanceFromAnalyticalBRDFLookup_Jones(clearCoatNdotV,vec3(1.),vec3(1.),sqrt(1.-clearCoatRoughness));\n#endif\nclearCoatEnvironmentReflectance*=clearCoatIntensity;\n#if DEBUGMODE>0\noutParams.clearCoatEnvironmentReflectance=clearCoatEnvironmentReflectance;\n#endif\noutParams.finalClearCoatRadianceScaled=\nenvironmentClearCoatRadiance.rgb *\nclearCoatEnvironmentReflectance *\nvLightingIntensity.z;\n#endif\n#if defined(CLEARCOAT_TINT)\noutParams.absorption=computeClearCoatAbsorption(outParams.clearCoatNdotVRefract,outParams.clearCoatNdotVRefract,outParams.clearCoatColor,clearCoatThickness,clearCoatIntensity);\n#endif\nfloat fresnelIBLClearCoat=fresnelSchlickGGX(clearCoatNdotV,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);fresnelIBLClearCoat*=clearCoatIntensity;outParams.conservationFactor=(1.-fresnelIBLClearCoat);\n#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)\noutParams.energyConservationFactorClearCoat=getEnergyConservationFactor(outParams.specularEnvironmentR0,environmentClearCoatBrdf);\n#endif\n}\n#endif\n`;\nz.IncludesShadersStore[N2] = F2;\nconst L2 = \"pbrBlockIridescence\", B2 = `struct iridescenceOutParams\n{float iridescenceIntensity;float iridescenceIOR;float iridescenceThickness;vec3 specularEnvironmentR0;};\n#ifdef IRIDESCENCE\n#define pbr_inline\n#define inline\nvoid iridescenceBlock(\nin vec4 vIridescenceParams,\nin float viewAngle,\nin vec3 specularEnvironmentR0,\n#ifdef IRIDESCENCE_TEXTURE\nin vec2 iridescenceMapData,\n#endif\n#ifdef IRIDESCENCE_THICKNESS_TEXTURE\nin vec2 iridescenceThicknessMapData,\n#endif\n#ifdef CLEARCOAT\nin float NdotVUnclamped,\n#ifdef CLEARCOAT_TEXTURE\nin vec2 clearCoatMapData,\n#endif\n#endif\nout iridescenceOutParams outParams\n)\n{float iridescenceIntensity=vIridescenceParams.x;float iridescenceIOR=vIridescenceParams.y;float iridescenceThicknessMin=vIridescenceParams.z;float iridescenceThicknessMax=vIridescenceParams.w;float iridescenceThicknessWeight=1.;\n#ifdef IRIDESCENCE_TEXTURE\niridescenceIntensity*=iridescenceMapData.x;\n#endif\n#if defined(IRIDESCENCE_THICKNESS_TEXTURE)\niridescenceThicknessWeight=iridescenceThicknessMapData.g;\n#endif\nfloat iridescenceThickness=mix(iridescenceThicknessMin,iridescenceThicknessMax,iridescenceThicknessWeight);float topIor=1.; \n#ifdef CLEARCOAT\nfloat clearCoatIntensity=vClearCoatParams.x;\n#ifdef CLEARCOAT_TEXTURE\nclearCoatIntensity*=clearCoatMapData.x;\n#endif\ntopIor=mix(1.0,vClearCoatRefractionParams.w-1.,clearCoatIntensity);viewAngle=sqrt(1.0+square(1.0/topIor)*(square(NdotVUnclamped)-1.0));\n#endif\nvec3 iridescenceFresnel=evalIridescence(topIor,iridescenceIOR,viewAngle,iridescenceThickness,specularEnvironmentR0);outParams.specularEnvironmentR0=mix(specularEnvironmentR0,iridescenceFresnel,iridescenceIntensity);outParams.iridescenceIntensity=iridescenceIntensity;outParams.iridescenceThickness=iridescenceThickness;outParams.iridescenceIOR=iridescenceIOR;}\n#endif\n`;\nz.IncludesShadersStore[L2] = B2;\nconst V2 = \"pbrBlockSubSurface\", U2 = `struct subSurfaceOutParams\n{vec3 specularEnvironmentReflectance;\n#ifdef SS_REFRACTION\nvec3 finalRefraction;vec3 surfaceAlbedo;\n#ifdef SS_LINKREFRACTIONTOTRANSPARENCY\nfloat alpha;\n#endif\n#ifdef REFLECTION\nfloat refractionFactorForIrradiance;\n#endif\n#endif\n#ifdef SS_TRANSLUCENCY\nvec3 transmittance;float translucencyIntensity;\n#ifdef REFLECTION\nvec3 refractionIrradiance;\n#endif\n#endif\n#if DEBUGMODE>0\n#ifdef SS_THICKNESSANDMASK_TEXTURE\nvec4 thicknessMap;\n#endif\n#ifdef SS_REFRACTION\nvec4 environmentRefraction;vec3 refractionTransmittance;\n#endif\n#endif\n};\n#ifdef SUBSURFACE\n#ifdef SS_REFRACTION\n#define pbr_inline\n#define inline\nvec4 sampleEnvironmentRefraction(\nin float ior\n,in float thickness\n,in float refractionLOD\n,in vec3 normalW\n,in vec3 vPositionW\n,in vec3 viewDirectionW\n,in mat4 view\n,in vec4 vRefractionInfos\n,in mat4 refractionMatrix\n,in vec4 vRefractionMicrosurfaceInfos\n,in float alphaG\n#ifdef SS_REFRACTIONMAP_3D\n,in samplerCube refractionSampler\n#ifndef LODBASEDMICROSFURACE\n,in samplerCube refractionSamplerLow\n,in samplerCube refractionSamplerHigh\n#endif\n#else\n,in sampler2D refractionSampler\n#ifndef LODBASEDMICROSFURACE\n,in sampler2D refractionSamplerLow\n,in sampler2D refractionSamplerHigh\n#endif\n#endif\n#ifdef ANISOTROPIC\n,in anisotropicOutParams anisotropicOut\n#endif\n#ifdef REALTIME_FILTERING\n,in vec2 vRefractionFilteringInfo\n#endif\n#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC\n,in vec3 refractionPosition\n,in vec3 refractionSize\n#endif\n) {vec4 environmentRefraction=vec4(0.,0.,0.,0.);\n#ifdef ANISOTROPIC\nvec3 refractionVector=refract(-viewDirectionW,anisotropicOut.anisotropicNormal,ior);\n#else\nvec3 refractionVector=refract(-viewDirectionW,normalW,ior);\n#endif\n#ifdef SS_REFRACTIONMAP_OPPOSITEZ\nrefractionVector.z*=-1.0;\n#endif\n#ifdef SS_REFRACTIONMAP_3D\n#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC\nrefractionVector=parallaxCorrectNormal(vPositionW,refractionVector,refractionSize,refractionPosition);\n#endif\nrefractionVector.y=refractionVector.y*vRefractionInfos.w;vec3 refractionCoords=refractionVector;refractionCoords=vec3(refractionMatrix*vec4(refractionCoords,0));\n#else\n#ifdef SS_USE_THICKNESS_AS_DEPTH\nvec3 vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*thickness,1.0)));\n#else\nvec3 vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0)));\n#endif\nvec2 refractionCoords=vRefractionUVW.xy/vRefractionUVW.z;refractionCoords.y=1.0-refractionCoords.y;\n#endif\n#ifdef LODBASEDMICROSFURACE\nrefractionLOD=refractionLOD*vRefractionMicrosurfaceInfos.y+vRefractionMicrosurfaceInfos.z;\n#ifdef SS_LODINREFRACTIONALPHA\nfloat automaticRefractionLOD=UNPACK_LOD(sampleRefraction(refractionSampler,refractionCoords).a);float requestedRefractionLOD=max(automaticRefractionLOD,refractionLOD);\n#else\nfloat requestedRefractionLOD=refractionLOD;\n#endif\n#if defined(REALTIME_FILTERING) && defined(SS_REFRACTIONMAP_3D)\nenvironmentRefraction=vec4(radiance(alphaG,refractionSampler,refractionCoords,vRefractionFilteringInfo),1.0);\n#else\nenvironmentRefraction=sampleRefractionLod(refractionSampler,refractionCoords,requestedRefractionLOD);\n#endif\n#else\nfloat lodRefractionNormalized=saturate(refractionLOD/log2(vRefractionMicrosurfaceInfos.x));float lodRefractionNormalizedDoubled=lodRefractionNormalized*2.0;vec4 environmentRefractionMid=sampleRefraction(refractionSampler,refractionCoords);if (lodRefractionNormalizedDoubled<1.0){environmentRefraction=mix(\nsampleRefraction(refractionSamplerHigh,refractionCoords),\nenvironmentRefractionMid,\nlodRefractionNormalizedDoubled\n);} else {environmentRefraction=mix(\nenvironmentRefractionMid,\nsampleRefraction(refractionSamplerLow,refractionCoords),\nlodRefractionNormalizedDoubled-1.0\n);}\n#endif\n#ifdef SS_RGBDREFRACTION\nenvironmentRefraction.rgb=fromRGBD(environmentRefraction);\n#endif\n#ifdef SS_GAMMAREFRACTION\nenvironmentRefraction.rgb=toLinearSpace(environmentRefraction.rgb);\n#endif\nreturn environmentRefraction;}\n#endif\n#define pbr_inline\n#define inline\nvoid subSurfaceBlock(\nin vec3 vSubSurfaceIntensity,\nin vec2 vThicknessParam,\nin vec4 vTintColor,\nin vec3 normalW,\nin vec3 specularEnvironmentReflectance,\n#ifdef SS_THICKNESSANDMASK_TEXTURE\nin vec4 thicknessMap,\n#endif\n#ifdef SS_REFRACTIONINTENSITY_TEXTURE\nin vec4 refractionIntensityMap,\n#endif\n#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE\nin vec4 translucencyIntensityMap,\n#endif\n#ifdef REFLECTION\n#ifdef SS_TRANSLUCENCY\nin mat4 reflectionMatrix,\n#ifdef USESPHERICALFROMREFLECTIONMAP\n#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\nin vec3 irradianceVector_,\n#endif\n#if defined(REALTIME_FILTERING)\nin samplerCube reflectionSampler,\nin vec2 vReflectionFilteringInfo,\n#endif\n#endif\n#ifdef USEIRRADIANCEMAP\n#ifdef REFLECTIONMAP_3D\nin samplerCube irradianceSampler,\n#else\nin sampler2D irradianceSampler,\n#endif\n#endif\n#endif\n#endif\n#if defined(SS_REFRACTION) || defined(SS_TRANSLUCENCY)\nin vec3 surfaceAlbedo,\n#endif\n#ifdef SS_REFRACTION\nin vec3 vPositionW,\nin vec3 viewDirectionW,\nin mat4 view,\nin vec4 vRefractionInfos,\nin mat4 refractionMatrix,\nin vec4 vRefractionMicrosurfaceInfos,\nin vec4 vLightingIntensity,\n#ifdef SS_LINKREFRACTIONTOTRANSPARENCY\nin float alpha,\n#endif\n#ifdef SS_LODINREFRACTIONALPHA\nin float NdotVUnclamped,\n#endif\n#ifdef SS_LINEARSPECULARREFRACTION\nin float roughness,\n#endif\nin float alphaG,\n#ifdef SS_REFRACTIONMAP_3D\nin samplerCube refractionSampler,\n#ifndef LODBASEDMICROSFURACE\nin samplerCube refractionSamplerLow,\nin samplerCube refractionSamplerHigh,\n#endif\n#else\nin sampler2D refractionSampler,\n#ifndef LODBASEDMICROSFURACE\nin sampler2D refractionSamplerLow,\nin sampler2D refractionSamplerHigh,\n#endif\n#endif\n#ifdef ANISOTROPIC\nin anisotropicOutParams anisotropicOut,\n#endif\n#ifdef REALTIME_FILTERING\nin vec2 vRefractionFilteringInfo,\n#endif\n#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC\nin vec3 refractionPosition,\nin vec3 refractionSize,\n#endif\n#ifdef SS_DISPERSION\nin float dispersion,\n#endif\n#endif\n#ifdef SS_TRANSLUCENCY\nin vec3 vDiffusionDistance,\nin vec4 vTranslucencyColor,\n#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE\nin vec4 translucencyColorMap,\n#endif\n#endif\nout subSurfaceOutParams outParams\n)\n{outParams.specularEnvironmentReflectance=specularEnvironmentReflectance;\n#ifdef SS_REFRACTION\nfloat refractionIntensity=vSubSurfaceIntensity.x;\n#ifdef SS_LINKREFRACTIONTOTRANSPARENCY\nrefractionIntensity*=(1.0-alpha);outParams.alpha=1.0;\n#endif\n#endif\n#ifdef SS_TRANSLUCENCY\nfloat translucencyIntensity=vSubSurfaceIntensity.y;\n#endif\n#ifdef SS_THICKNESSANDMASK_TEXTURE\n#ifdef SS_USE_GLTF_TEXTURES\nfloat thickness=thicknessMap.g*vThicknessParam.y+vThicknessParam.x;\n#else\nfloat thickness=thicknessMap.r*vThicknessParam.y+vThicknessParam.x;\n#endif\n#if DEBUGMODE>0\noutParams.thicknessMap=thicknessMap;\n#endif\n#if defined(SS_REFRACTION) && defined(SS_REFRACTION_USE_INTENSITY_FROM_THICKNESS)\n#ifdef SS_USE_GLTF_TEXTURES\nrefractionIntensity*=thicknessMap.r;\n#else\nrefractionIntensity*=thicknessMap.g;\n#endif\n#endif\n#if defined(SS_TRANSLUCENCY) && defined(SS_TRANSLUCENCY_USE_INTENSITY_FROM_THICKNESS)\n#ifdef SS_USE_GLTF_TEXTURES\ntranslucencyIntensity*=thicknessMap.a;\n#else\ntranslucencyIntensity*=thicknessMap.b;\n#endif\n#endif\n#else\nfloat thickness=vThicknessParam.y;\n#endif\n#if defined(SS_REFRACTION) && defined(SS_REFRACTIONINTENSITY_TEXTURE)\n#ifdef SS_USE_GLTF_TEXTURES\nrefractionIntensity*=refractionIntensityMap.r;\n#else\nrefractionIntensity*=refractionIntensityMap.g;\n#endif\n#endif\n#if defined(SS_TRANSLUCENCY) && defined(SS_TRANSLUCENCYINTENSITY_TEXTURE)\n#ifdef SS_USE_GLTF_TEXTURES\ntranslucencyIntensity*=translucencyIntensityMap.a;\n#else\ntranslucencyIntensity*=translucencyIntensityMap.b;\n#endif\n#endif\n#ifdef SS_TRANSLUCENCY\nthickness=maxEps(thickness);vec4 translucencyColor=vTranslucencyColor;\n#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE\ntranslucencyColor*=translucencyColorMap;\n#endif\nvec3 transmittance=transmittanceBRDF_Burley(translucencyColor.rgb,vDiffusionDistance,thickness);transmittance*=translucencyIntensity;outParams.transmittance=transmittance;outParams.translucencyIntensity=translucencyIntensity;\n#endif\n#ifdef SS_REFRACTION\nvec4 environmentRefraction=vec4(0.,0.,0.,0.);\n#ifdef SS_HAS_THICKNESS\nfloat ior=vRefractionInfos.y;\n#else\nfloat ior=vRefractionMicrosurfaceInfos.w;\n#endif\n#ifdef SS_LODINREFRACTIONALPHA\nfloat refractionAlphaG=alphaG;refractionAlphaG=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));float refractionLOD=getLodFromAlphaG(vRefractionMicrosurfaceInfos.x,refractionAlphaG,NdotVUnclamped);\n#elif defined(SS_LINEARSPECULARREFRACTION)\nfloat refractionRoughness=alphaG;refractionRoughness=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));float refractionLOD=getLinearLodFromRoughness(vRefractionMicrosurfaceInfos.x,refractionRoughness);\n#else\nfloat refractionAlphaG=alphaG;refractionAlphaG=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));float refractionLOD=getLodFromAlphaG(vRefractionMicrosurfaceInfos.x,refractionAlphaG);\n#endif\nfloat refraction_ior=vRefractionInfos.y;\n#ifdef SS_DISPERSION\nfloat realIOR=1.0/refraction_ior;float iorDispersionSpread=0.04*dispersion*(realIOR-1.0);vec3 iors=vec3(1.0/(realIOR-iorDispersionSpread),refraction_ior,1.0/(realIOR+iorDispersionSpread));for (int i=0; i<3; i++) {refraction_ior=iors[i];\n#endif\nvec4 envSample=sampleEnvironmentRefraction(refraction_ior,thickness,refractionLOD,normalW,vPositionW,viewDirectionW,view,vRefractionInfos,refractionMatrix,vRefractionMicrosurfaceInfos,alphaG\n#ifdef SS_REFRACTIONMAP_3D\n,refractionSampler\n#ifndef LODBASEDMICROSFURACE\n,refractionSamplerLow\n,refractionSamplerHigh\n#endif\n#else\n,refractionSampler\n#ifndef LODBASEDMICROSFURACE\n,refractionSamplerLow\n,refractionSamplerHigh\n#endif\n#endif\n#ifdef ANISOTROPIC\n,anisotropicOut\n#endif\n#ifdef REALTIME_FILTERING\n,vRefractionFilteringInfo\n#endif\n#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC\n,refractionPosition\n,refractionSize\n#endif\n);\n#ifdef SS_DISPERSION\nenvironmentRefraction[i]=envSample[i];}\n#else\nenvironmentRefraction=envSample;\n#endif\nenvironmentRefraction.rgb*=vRefractionInfos.x;\n#endif\n#ifdef SS_REFRACTION\nvec3 refractionTransmittance=vec3(refractionIntensity);\n#ifdef SS_THICKNESSANDMASK_TEXTURE\nvec3 volumeAlbedo=computeColorAtDistanceInMedia(vTintColor.rgb,vTintColor.w);refractionTransmittance*=cocaLambert(volumeAlbedo,thickness);\n#elif defined(SS_LINKREFRACTIONTOTRANSPARENCY)\nfloat maxChannel=max(max(surfaceAlbedo.r,surfaceAlbedo.g),surfaceAlbedo.b);vec3 volumeAlbedo=saturate(maxChannel*surfaceAlbedo);environmentRefraction.rgb*=volumeAlbedo;\n#else\nvec3 volumeAlbedo=computeColorAtDistanceInMedia(vTintColor.rgb,vTintColor.w);refractionTransmittance*=cocaLambert(volumeAlbedo,vThicknessParam.y);\n#endif\n#ifdef SS_ALBEDOFORREFRACTIONTINT\nenvironmentRefraction.rgb*=surfaceAlbedo.rgb;\n#endif\noutParams.surfaceAlbedo=surfaceAlbedo*(1.-refractionIntensity);\n#ifdef REFLECTION\noutParams.refractionFactorForIrradiance=(1.-refractionIntensity);\n#endif\n#ifdef UNUSED_MULTIPLEBOUNCES\nvec3 bounceSpecularEnvironmentReflectance=(2.0*specularEnvironmentReflectance)/(1.0+specularEnvironmentReflectance);outParams.specularEnvironmentReflectance=mix(bounceSpecularEnvironmentReflectance,specularEnvironmentReflectance,refractionIntensity);\n#endif\nrefractionTransmittance*=1.0-outParams.specularEnvironmentReflectance;\n#if DEBUGMODE>0\noutParams.refractionTransmittance=refractionTransmittance;\n#endif\noutParams.finalRefraction=environmentRefraction.rgb*refractionTransmittance*vLightingIntensity.z;\n#if DEBUGMODE>0\noutParams.environmentRefraction=environmentRefraction;\n#endif\n#endif\n#if defined(REFLECTION) && defined(SS_TRANSLUCENCY)\n#if defined(NORMAL) && defined(USESPHERICALINVERTEX) || !defined(USESPHERICALFROMREFLECTIONMAP)\nvec3 irradianceVector=vec3(reflectionMatrix*vec4(normalW,0)).xyz;\n#ifdef REFLECTIONMAP_OPPOSITEZ\nirradianceVector.z*=-1.0;\n#endif\n#ifdef INVERTCUBICMAP\nirradianceVector.y*=-1.0;\n#endif\n#else\nvec3 irradianceVector=irradianceVector_;\n#endif\n#if defined(USESPHERICALFROMREFLECTIONMAP)\n#if defined(REALTIME_FILTERING)\nvec3 refractionIrradiance=irradiance(reflectionSampler,-irradianceVector,vReflectionFilteringInfo);\n#else\nvec3 refractionIrradiance=computeEnvironmentIrradiance(-irradianceVector);\n#endif\n#elif defined(USEIRRADIANCEMAP)\n#ifdef REFLECTIONMAP_3D\nvec3 irradianceCoords=irradianceVector;\n#else\nvec2 irradianceCoords=irradianceVector.xy;\n#ifdef REFLECTIONMAP_PROJECTION\nirradianceCoords/=irradianceVector.z;\n#endif\nirradianceCoords.y=1.0-irradianceCoords.y;\n#endif\nvec4 refractionIrradiance=sampleReflection(irradianceSampler,-irradianceCoords);\n#ifdef RGBDREFLECTION\nrefractionIrradiance.rgb=fromRGBD(refractionIrradiance);\n#endif\n#ifdef GAMMAREFLECTION\nrefractionIrradiance.rgb=toLinearSpace(refractionIrradiance.rgb);\n#endif\n#else\nvec4 refractionIrradiance=vec4(0.);\n#endif\nrefractionIrradiance.rgb*=transmittance;\n#ifdef SS_ALBEDOFORTRANSLUCENCYTINT\nrefractionIrradiance.rgb*=surfaceAlbedo.rgb;\n#endif\noutParams.refractionIrradiance=refractionIrradiance.rgb;\n#endif\n}\n#endif\n`;\nz.IncludesShadersStore[V2] = U2;\nconst k2 = \"pbrBlockNormalGeometric\", G2 = `vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=normalize(cross(dFdx(vPositionW),dFdy(vPositionW)))*vEyePosition.w;\n#endif\nvec3 geometricNormalW=normalW;\n#if defined(TWOSIDEDLIGHTING) && defined(NORMAL)\ngeometricNormalW=gl_FrontFacing ? geometricNormalW : -geometricNormalW;\n#endif\n`;\nz.IncludesShadersStore[k2] = G2;\nconst z2 = \"pbrBlockNormalFinal\", W2 = `#if defined(FORCENORMALFORWARD) && defined(NORMAL)\nvec3 faceNormal=normalize(cross(dFdx(vPositionW),dFdy(vPositionW)))*vEyePosition.w;\n#if defined(TWOSIDEDLIGHTING)\nfaceNormal=gl_FrontFacing ? faceNormal : -faceNormal;\n#endif\nnormalW*=sign(dot(normalW,faceNormal));\n#endif\n#if defined(TWOSIDEDLIGHTING) && defined(NORMAL)\nnormalW=gl_FrontFacing ? normalW : -normalW;\n#endif\n`;\nz.IncludesShadersStore[z2] = W2;\nconst H2 = \"pbrBlockLightmapInit\", X2 = `#ifdef LIGHTMAP\nvec4 lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset);\n#ifdef RGBDLIGHTMAP\nlightmapColor.rgb=fromRGBD(lightmapColor);\n#endif\n#ifdef GAMMALIGHTMAP\nlightmapColor.rgb=toLinearSpace(lightmapColor.rgb);\n#endif\nlightmapColor.rgb*=vLightmapInfos.y;\n#endif\n`;\nz.IncludesShadersStore[H2] = X2;\nconst $2 = \"pbrBlockGeometryInfo\", Y2 = `float NdotVUnclamped=dot(normalW,viewDirectionW);float NdotV=absEps(NdotVUnclamped);float alphaG=convertRoughnessToAverageSlope(roughness);vec2 AARoughnessFactors=getAARoughnessFactors(normalW.xyz);\n#ifdef SPECULARAA\nalphaG+=AARoughnessFactors.y;\n#endif\n#if defined(ENVIRONMENTBRDF)\nvec3 environmentBrdf=getBRDFLookup(NdotV,roughness);\n#endif\n#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\n#ifdef RADIANCEOCCLUSION\n#ifdef AMBIENTINGRAYSCALE\nfloat ambientMonochrome=aoOut.ambientOcclusionColor.r;\n#else\nfloat ambientMonochrome=getLuminance(aoOut.ambientOcclusionColor);\n#endif\nfloat seo=environmentRadianceOcclusion(ambientMonochrome,NdotVUnclamped);\n#endif\n#ifdef HORIZONOCCLUSION\n#ifdef BUMP\n#ifdef REFLECTIONMAP_3D\nfloat eho=environmentHorizonOcclusion(-viewDirectionW,normalW,geometricNormalW);\n#endif\n#endif\n#endif\n#endif\n`;\nz.IncludesShadersStore[$2] = Y2;\nconst j2 = \"pbrBlockReflectance0\", K2 = `float reflectance=max(max(reflectivityOut.surfaceReflectivityColor.r,reflectivityOut.surfaceReflectivityColor.g),reflectivityOut.surfaceReflectivityColor.b);vec3 specularEnvironmentR0=reflectivityOut.surfaceReflectivityColor.rgb;\n#ifdef METALLICWORKFLOW\nvec3 specularEnvironmentR90=vec3(metallicReflectanceFactors.a);\n#else \nvec3 specularEnvironmentR90=vec3(1.0,1.0,1.0);\n#endif\n#ifdef ALPHAFRESNEL\nfloat reflectance90=fresnelGrazingReflectance(reflectance);specularEnvironmentR90=specularEnvironmentR90*reflectance90;\n#endif\n`;\nz.IncludesShadersStore[j2] = K2;\nconst q2 = \"pbrBlockReflectance\", Q2 = `#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\nvec3 specularEnvironmentReflectance=getReflectanceFromBRDFLookup(clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,environmentBrdf);\n#ifdef RADIANCEOCCLUSION\nspecularEnvironmentReflectance*=seo;\n#endif\n#ifdef HORIZONOCCLUSION\n#ifdef BUMP\n#ifdef REFLECTIONMAP_3D\nspecularEnvironmentReflectance*=eho;\n#endif\n#endif\n#endif\n#else\nvec3 specularEnvironmentReflectance=getReflectanceFromAnalyticalBRDFLookup_Jones(NdotV,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,sqrt(microSurface));\n#endif\n#ifdef CLEARCOAT\nspecularEnvironmentReflectance*=clearcoatOut.conservationFactor;\n#if defined(CLEARCOAT_TINT)\nspecularEnvironmentReflectance*=clearcoatOut.absorption;\n#endif\n#endif\n`;\nz.IncludesShadersStore[q2] = Q2;\nconst Z2 = \"pbrBlockDirectLighting\", J2 = `vec3 diffuseBase=vec3(0.,0.,0.);\n#ifdef SPECULARTERM\nvec3 specularBase=vec3(0.,0.,0.);\n#endif\n#ifdef CLEARCOAT\nvec3 clearCoatBase=vec3(0.,0.,0.);\n#endif\n#ifdef SHEEN\nvec3 sheenBase=vec3(0.,0.,0.);\n#endif\npreLightingInfo preInfo;lightingInfo info;float shadow=1.; \nfloat aggShadow=0.;float numLights=0.;\n#if defined(CLEARCOAT) && defined(CLEARCOAT_TINT)\nvec3 absorption=vec3(0.);\n#endif\n`;\nz.IncludesShadersStore[Z2] = J2;\nconst eV = \"pbrBlockFinalLitComponents\", tV = `aggShadow=aggShadow/numLights;\n#if defined(ENVIRONMENTBRDF)\n#ifdef MS_BRDF_ENERGY_CONSERVATION\nvec3 energyConservationFactor=getEnergyConservationFactor(clearcoatOut.specularEnvironmentR0,environmentBrdf);\n#endif\n#endif\n#ifndef METALLICWORKFLOW\n#ifdef SPECULAR_GLOSSINESS_ENERGY_CONSERVATION\nsurfaceAlbedo.rgb=(1.-reflectance)*surfaceAlbedo.rgb;\n#endif\n#endif\n#if defined(SHEEN) && defined(SHEEN_ALBEDOSCALING) && defined(ENVIRONMENTBRDF)\nsurfaceAlbedo.rgb=sheenOut.sheenAlbedoScaling*surfaceAlbedo.rgb;\n#endif\n#ifdef REFLECTION\nvec3 finalIrradiance=reflectionOut.environmentIrradiance;\n#if defined(CLEARCOAT)\nfinalIrradiance*=clearcoatOut.conservationFactor;\n#if defined(CLEARCOAT_TINT)\nfinalIrradiance*=clearcoatOut.absorption;\n#endif\n#endif\n#if defined(SS_REFRACTION)\nfinalIrradiance*=subSurfaceOut.refractionFactorForIrradiance;\n#endif\n#if defined(SS_TRANSLUCENCY)\nfinalIrradiance*=(1.0-subSurfaceOut.translucencyIntensity);finalIrradiance+=subSurfaceOut.refractionIrradiance;\n#endif\nfinalIrradiance*=surfaceAlbedo.rgb;finalIrradiance*=vLightingIntensity.z;finalIrradiance*=aoOut.ambientOcclusionColor;\n#endif\n#ifdef SPECULARTERM\nvec3 finalSpecular=specularBase;finalSpecular=max(finalSpecular,0.0);vec3 finalSpecularScaled=finalSpecular*vLightingIntensity.x*vLightingIntensity.w;\n#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)\nfinalSpecularScaled*=energyConservationFactor;\n#endif\n#if defined(SHEEN) && defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)\nfinalSpecularScaled*=sheenOut.sheenAlbedoScaling;\n#endif\n#endif\n#ifdef REFLECTION\nvec3 finalRadiance=reflectionOut.environmentRadiance.rgb;finalRadiance*=subSurfaceOut.specularEnvironmentReflectance;vec3 finalRadianceScaled=finalRadiance*vLightingIntensity.z;\n#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)\nfinalRadianceScaled*=energyConservationFactor;\n#endif\n#if defined(SHEEN) && defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)\nfinalRadianceScaled*=sheenOut.sheenAlbedoScaling;\n#endif\n#endif\n#ifdef SHEEN\nvec3 finalSheen=sheenBase*sheenOut.sheenColor;finalSheen=max(finalSheen,0.0);vec3 finalSheenScaled=finalSheen*vLightingIntensity.x*vLightingIntensity.w;\n#if defined(CLEARCOAT) && defined(REFLECTION) && defined(ENVIRONMENTBRDF)\nsheenOut.finalSheenRadianceScaled*=clearcoatOut.conservationFactor;\n#if defined(CLEARCOAT_TINT)\nsheenOut.finalSheenRadianceScaled*=clearcoatOut.absorption;\n#endif\n#endif\n#endif\n#ifdef CLEARCOAT\nvec3 finalClearCoat=clearCoatBase;finalClearCoat=max(finalClearCoat,0.0);vec3 finalClearCoatScaled=finalClearCoat*vLightingIntensity.x*vLightingIntensity.w;\n#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)\nfinalClearCoatScaled*=clearcoatOut.energyConservationFactorClearCoat;\n#endif\n#ifdef SS_REFRACTION\nsubSurfaceOut.finalRefraction*=clearcoatOut.conservationFactor;\n#ifdef CLEARCOAT_TINT\nsubSurfaceOut.finalRefraction*=clearcoatOut.absorption;\n#endif\n#endif\n#endif\n#ifdef ALPHABLEND\nfloat luminanceOverAlpha=0.0;\n#if defined(REFLECTION) && defined(RADIANCEOVERALPHA)\nluminanceOverAlpha+=getLuminance(finalRadianceScaled);\n#if defined(CLEARCOAT)\nluminanceOverAlpha+=getLuminance(clearcoatOut.finalClearCoatRadianceScaled);\n#endif\n#endif\n#if defined(SPECULARTERM) && defined(SPECULAROVERALPHA)\nluminanceOverAlpha+=getLuminance(finalSpecularScaled);\n#endif\n#if defined(CLEARCOAT) && defined(CLEARCOATOVERALPHA)\nluminanceOverAlpha+=getLuminance(finalClearCoatScaled);\n#endif\n#if defined(RADIANCEOVERALPHA) || defined(SPECULAROVERALPHA) || defined(CLEARCOATOVERALPHA)\nalpha=saturate(alpha+luminanceOverAlpha*luminanceOverAlpha);\n#endif\n#endif\n`;\nz.IncludesShadersStore[eV] = tV;\nconst iV = \"pbrBlockFinalUnlitComponents\", sV = `vec3 finalDiffuse=diffuseBase;finalDiffuse*=surfaceAlbedo.rgb;finalDiffuse=max(finalDiffuse,0.0);finalDiffuse*=vLightingIntensity.x;vec3 finalAmbient=vAmbientColor;finalAmbient*=surfaceAlbedo.rgb;vec3 finalEmissive=vEmissiveColor;\n#ifdef EMISSIVE\nvec3 emissiveColorTex=texture2D(emissiveSampler,vEmissiveUV+uvOffset).rgb;\n#ifdef GAMMAEMISSIVE\nfinalEmissive*=toLinearSpace(emissiveColorTex.rgb);\n#else\nfinalEmissive*=emissiveColorTex.rgb;\n#endif\nfinalEmissive*= vEmissiveInfos.y;\n#endif\nfinalEmissive*=vLightingIntensity.y;\n#ifdef AMBIENT\nvec3 ambientOcclusionForDirectDiffuse=mix(vec3(1.),aoOut.ambientOcclusionColor,vAmbientInfos.w);\n#else\nvec3 ambientOcclusionForDirectDiffuse=aoOut.ambientOcclusionColor;\n#endif\nfinalAmbient*=aoOut.ambientOcclusionColor;finalDiffuse*=ambientOcclusionForDirectDiffuse;\n`;\nz.IncludesShadersStore[iV] = sV;\nconst rV = \"pbrBlockFinalColorComposition\", nV = `vec4 finalColor=vec4(\n#ifndef UNLIT\n#ifdef REFLECTION\nfinalIrradiance +\n#endif\n#ifdef SPECULARTERM\nfinalSpecularScaled +\n#endif\n#ifdef SHEEN\nfinalSheenScaled +\n#endif\n#ifdef CLEARCOAT\nfinalClearCoatScaled +\n#endif\n#ifdef REFLECTION\nfinalRadianceScaled +\n#if defined(SHEEN) && defined(ENVIRONMENTBRDF)\nsheenOut.finalSheenRadianceScaled +\n#endif\n#ifdef CLEARCOAT\nclearcoatOut.finalClearCoatRadianceScaled +\n#endif\n#endif\n#ifdef SS_REFRACTION\nsubSurfaceOut.finalRefraction +\n#endif\n#endif\nfinalAmbient +\nfinalDiffuse,\nalpha);\n#ifdef LIGHTMAP\n#ifndef LIGHTMAPEXCLUDED\n#ifdef USELIGHTMAPASSHADOWMAP\nfinalColor.rgb*=lightmapColor.rgb;\n#else\nfinalColor.rgb+=lightmapColor.rgb;\n#endif\n#endif\n#endif\nfinalColor.rgb+=finalEmissive;\n#define CUSTOM_FRAGMENT_BEFORE_FOG\nfinalColor=max(finalColor,0.0);\n`;\nz.IncludesShadersStore[rV] = nV;\nconst aV = \"pbrBlockImageProcessing\", oV = `#if defined(IMAGEPROCESSINGPOSTPROCESS) || defined(SS_SCATTERING)\n#if !defined(SKIPFINALCOLORCLAMP)\nfinalColor.rgb=clamp(finalColor.rgb,0.,30.0);\n#endif\n#else\nfinalColor=applyImageProcessing(finalColor);\n#endif\nfinalColor.a*=visibility;\n#ifdef PREMULTIPLYALPHA\nfinalColor.rgb*=finalColor.a;\n#endif\n`;\nz.IncludesShadersStore[aV] = oV;\nconst lV = \"pbrDebug\", hV = `#if DEBUGMODE>0\nif (vClipSpacePosition.x/vClipSpacePosition.w>=vDebugMode.x) {\n#if DEBUGMODE==1\ngl_FragColor.rgb=vPositionW.rgb;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==2 && defined(NORMAL)\ngl_FragColor.rgb=vNormalW.rgb;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==3 && defined(BUMP) || DEBUGMODE==3 && defined(PARALLAX) || DEBUGMODE==3 && defined(ANISOTROPIC)\ngl_FragColor.rgb=TBN[0];\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==4 && defined(BUMP) || DEBUGMODE==4 && defined(PARALLAX) || DEBUGMODE==4 && defined(ANISOTROPIC)\ngl_FragColor.rgb=TBN[1];\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==5\ngl_FragColor.rgb=normalW;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==6 && defined(MAINUV1)\ngl_FragColor.rgb=vec3(vMainUV1,0.0);\n#elif DEBUGMODE==7 && defined(MAINUV2)\ngl_FragColor.rgb=vec3(vMainUV2,0.0);\n#elif DEBUGMODE==8 && defined(CLEARCOAT) && defined(CLEARCOAT_BUMP)\ngl_FragColor.rgb=clearcoatOut.TBNClearCoat[0];\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==9 && defined(CLEARCOAT) && defined(CLEARCOAT_BUMP)\ngl_FragColor.rgb=clearcoatOut.TBNClearCoat[1];\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==10 && defined(CLEARCOAT)\ngl_FragColor.rgb=clearcoatOut.clearCoatNormalW;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==11 && defined(ANISOTROPIC)\ngl_FragColor.rgb=anisotropicOut.anisotropicNormal;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==12 && defined(ANISOTROPIC)\ngl_FragColor.rgb=anisotropicOut.anisotropicTangent;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==13 && defined(ANISOTROPIC)\ngl_FragColor.rgb=anisotropicOut.anisotropicBitangent;\n#define DEBUGMODE_NORMALIZE\n#elif DEBUGMODE==20 && defined(ALBEDO)\ngl_FragColor.rgb=albedoTexture.rgb;\n#ifndef GAMMAALBEDO\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==21 && defined(AMBIENT)\ngl_FragColor.rgb=aoOut.ambientOcclusionColorMap.rgb;\n#elif DEBUGMODE==22 && defined(OPACITY)\ngl_FragColor.rgb=opacityMap.rgb;\n#elif DEBUGMODE==23 && defined(EMISSIVE)\ngl_FragColor.rgb=emissiveColorTex.rgb;\n#ifndef GAMMAEMISSIVE\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==24 && defined(LIGHTMAP)\ngl_FragColor.rgb=lightmapColor.rgb;\n#ifndef GAMMALIGHTMAP\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==25 && defined(REFLECTIVITY) && defined(METALLICWORKFLOW)\ngl_FragColor.rgb=reflectivityOut.surfaceMetallicColorMap.rgb;\n#elif DEBUGMODE==26 && defined(REFLECTIVITY) && !defined(METALLICWORKFLOW)\ngl_FragColor.rgb=reflectivityOut.surfaceReflectivityColorMap.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==27 && defined(CLEARCOAT) && defined(CLEARCOAT_TEXTURE)\ngl_FragColor.rgb=vec3(clearcoatOut.clearCoatMapData.rg,0.0);\n#elif DEBUGMODE==28 && defined(CLEARCOAT) && defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)\ngl_FragColor.rgb=clearcoatOut.clearCoatTintMapData.rgb;\n#elif DEBUGMODE==29 && defined(SHEEN) && defined(SHEEN_TEXTURE)\ngl_FragColor.rgb=sheenOut.sheenMapData.rgb;\n#elif DEBUGMODE==30 && defined(ANISOTROPIC) && defined(ANISOTROPIC_TEXTURE)\ngl_FragColor.rgb=anisotropicOut.anisotropyMapData.rgb;\n#elif DEBUGMODE==31 && defined(SUBSURFACE) && defined(SS_THICKNESSANDMASK_TEXTURE)\ngl_FragColor.rgb=subSurfaceOut.thicknessMap.rgb;\n#elif DEBUGMODE==32 && defined(BUMP)\ngl_FragColor.rgb=texture2D(bumpSampler,vBumpUV).rgb;\n#elif DEBUGMODE==40 && defined(SS_REFRACTION)\ngl_FragColor.rgb=subSurfaceOut.environmentRefraction.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==41 && defined(REFLECTION)\ngl_FragColor.rgb=reflectionOut.environmentRadiance.rgb;\n#ifndef GAMMAREFLECTION\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==42 && defined(CLEARCOAT) && defined(REFLECTION)\ngl_FragColor.rgb=clearcoatOut.environmentClearCoatRadiance.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==50\ngl_FragColor.rgb=diffuseBase.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==51 && defined(SPECULARTERM)\ngl_FragColor.rgb=specularBase.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==52 && defined(CLEARCOAT)\ngl_FragColor.rgb=clearCoatBase.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==53 && defined(SHEEN)\ngl_FragColor.rgb=sheenBase.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==54 && defined(REFLECTION)\ngl_FragColor.rgb=reflectionOut.environmentIrradiance.rgb;\n#ifndef GAMMAREFLECTION\n#define DEBUGMODE_GAMMA\n#endif\n#elif DEBUGMODE==60\ngl_FragColor.rgb=surfaceAlbedo.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==61\ngl_FragColor.rgb=clearcoatOut.specularEnvironmentR0;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==62 && defined(METALLICWORKFLOW)\ngl_FragColor.rgb=vec3(reflectivityOut.metallicRoughness.r);\n#elif DEBUGMODE==71 && defined(METALLICWORKFLOW)\ngl_FragColor.rgb=reflectivityOut.metallicF0;\n#elif DEBUGMODE==63\ngl_FragColor.rgb=vec3(roughness);\n#elif DEBUGMODE==64\ngl_FragColor.rgb=vec3(alphaG);\n#elif DEBUGMODE==65\ngl_FragColor.rgb=vec3(NdotV);\n#elif DEBUGMODE==66 && defined(CLEARCOAT) && defined(CLEARCOAT_TINT)\ngl_FragColor.rgb=clearcoatOut.clearCoatColor.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==67 && defined(CLEARCOAT)\ngl_FragColor.rgb=vec3(clearcoatOut.clearCoatRoughness);\n#elif DEBUGMODE==68 && defined(CLEARCOAT)\ngl_FragColor.rgb=vec3(clearcoatOut.clearCoatNdotV);\n#elif DEBUGMODE==69 && defined(SUBSURFACE) && defined(SS_TRANSLUCENCY)\ngl_FragColor.rgb=subSurfaceOut.transmittance;\n#elif DEBUGMODE==70 && defined(SUBSURFACE) && defined(SS_REFRACTION)\ngl_FragColor.rgb=subSurfaceOut.refractionTransmittance;\n#elif DEBUGMODE==72\ngl_FragColor.rgb=vec3(microSurface);\n#elif DEBUGMODE==73\ngl_FragColor.rgb=vAlbedoColor.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==74 && !defined(METALLICWORKFLOW)\ngl_FragColor.rgb=vReflectivityColor.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==75\ngl_FragColor.rgb=vEmissiveColor.rgb;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==80 && defined(RADIANCEOCCLUSION)\ngl_FragColor.rgb=vec3(seo);\n#elif DEBUGMODE==81 && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)\ngl_FragColor.rgb=vec3(eho);\n#elif DEBUGMODE==82 && defined(MS_BRDF_ENERGY_CONSERVATION)\ngl_FragColor.rgb=vec3(energyConservationFactor);\n#elif DEBUGMODE==83 && defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\ngl_FragColor.rgb=specularEnvironmentReflectance;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==84 && defined(CLEARCOAT) && defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\ngl_FragColor.rgb=clearcoatOut.clearCoatEnvironmentReflectance;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==85 && defined(SHEEN) && defined(REFLECTION)\ngl_FragColor.rgb=sheenOut.sheenEnvironmentReflectance;\n#define DEBUGMODE_GAMMA\n#elif DEBUGMODE==86 && defined(ALPHABLEND)\ngl_FragColor.rgb=vec3(luminanceOverAlpha);\n#elif DEBUGMODE==87\ngl_FragColor.rgb=vec3(alpha);\n#elif DEBUGMODE==88 && defined(ALBEDO)\ngl_FragColor.rgb=vec3(albedoTexture.a);\n#elif DEBUGMODE==89\ngl_FragColor.rgb=aoOut.ambientOcclusionColor.rgb;\n#else\nfloat stripeWidth=30.;float stripePos=floor((gl_FragCoord.x+gl_FragCoord.y)/stripeWidth);float whichColor=mod(stripePos,2.);vec3 color1=vec3(.6,.2,.2);vec3 color2=vec3(.3,.1,.1);gl_FragColor.rgb=mix(color1,color2,whichColor);\n#endif\ngl_FragColor.rgb*=vDebugMode.y;\n#ifdef DEBUGMODE_NORMALIZE\ngl_FragColor.rgb=normalize(gl_FragColor.rgb)*0.5+0.5;\n#endif\n#ifdef DEBUGMODE_GAMMA\ngl_FragColor.rgb=toGammaSpace(gl_FragColor.rgb);\n#endif\ngl_FragColor.a=1.0;\n#ifdef PREPASS\ngl_FragData[0]=toLinearSpace(gl_FragColor); \ngl_FragData[1]=vec4(0.,0.,0.,0.); \n#endif\n#ifdef DEBUGMODE_FORCERETURN\nreturn;\n#endif\n}\n#endif\n`;\nz.IncludesShadersStore[lV] = hV;\nconst cV = \"pbrPixelShader\", uV = `#if defined(BUMP) || !defined(NORMAL) || defined(FORCENORMALFORWARD) || defined(SPECULARAA) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\n#extension GL_OES_standard_derivatives : enable\n#endif\n#ifdef LODBASEDMICROSFURACE\n#extension GL_EXT_shader_texture_lod : enable\n#endif\n#define CUSTOM_FRAGMENT_BEGIN\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n#include[SCENE_MRT_COUNT]\nprecision highp float;\n#include\n#ifndef FROMLINEARSPACE\n#define FROMLINEARSPACE\n#endif\n#include<__decl__pbrFragment>\n#include\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#ifdef REFLECTION\n#include\n#endif\n#define CUSTOM_FRAGMENT_DEFINITIONS\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\n#include\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include\n#include\n#include\n#include\nalbedoOpacityOutParams albedoOpacityOut;\n#ifdef ALBEDO\nvec4 albedoTexture=texture2D(albedoSampler,vAlbedoUV+uvOffset);\n#endif\n#ifdef OPACITY\nvec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);\n#endif\n#ifdef DECAL\nvec4 decalColor=texture2D(decalSampler,vDecalUV+uvOffset);\n#endif\nalbedoOpacityBlock(\nvAlbedoColor,\n#ifdef ALBEDO\nalbedoTexture,\nvAlbedoInfos,\n#endif\n#ifdef OPACITY\nopacityMap,\nvOpacityInfos,\n#endif\n#ifdef DETAIL\ndetailColor,\nvDetailInfos,\n#endif\n#ifdef DECAL\ndecalColor,\nvDecalInfos,\n#endif\nalbedoOpacityOut\n);vec3 surfaceAlbedo=albedoOpacityOut.surfaceAlbedo;float alpha=albedoOpacityOut.alpha;\n#define CUSTOM_FRAGMENT_UPDATE_ALPHA\n#include\n#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\nambientOcclusionOutParams aoOut;\n#ifdef AMBIENT\nvec3 ambientOcclusionColorMap=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb;\n#endif\nambientOcclusionBlock(\n#ifdef AMBIENT\nambientOcclusionColorMap,\nvAmbientInfos,\n#endif\naoOut\n);\n#include\n#ifdef UNLIT\nvec3 diffuseBase=vec3(1.,1.,1.);\n#else\nvec3 baseColor=surfaceAlbedo;reflectivityOutParams reflectivityOut;\n#if defined(REFLECTIVITY)\nvec4 surfaceMetallicOrReflectivityColorMap=texture2D(reflectivitySampler,vReflectivityUV+uvOffset);vec4 baseReflectivity=surfaceMetallicOrReflectivityColorMap;\n#ifndef METALLICWORKFLOW\n#ifdef REFLECTIVITY_GAMMA\nsurfaceMetallicOrReflectivityColorMap=toLinearSpace(surfaceMetallicOrReflectivityColorMap);\n#endif\nsurfaceMetallicOrReflectivityColorMap.rgb*=vReflectivityInfos.y;\n#endif\n#endif\n#if defined(MICROSURFACEMAP)\nvec4 microSurfaceTexel=texture2D(microSurfaceSampler,vMicroSurfaceSamplerUV+uvOffset)*vMicroSurfaceSamplerInfos.y;\n#endif\n#ifdef METALLICWORKFLOW\nvec4 metallicReflectanceFactors=vMetallicReflectanceFactors;\n#ifdef REFLECTANCE\nvec4 reflectanceFactorsMap=texture2D(reflectanceSampler,vReflectanceUV+uvOffset);\n#ifdef REFLECTANCE_GAMMA\nreflectanceFactorsMap=toLinearSpace(reflectanceFactorsMap);\n#endif\nmetallicReflectanceFactors.rgb*=reflectanceFactorsMap.rgb;\n#endif\n#ifdef METALLIC_REFLECTANCE\nvec4 metallicReflectanceFactorsMap=texture2D(metallicReflectanceSampler,vMetallicReflectanceUV+uvOffset);\n#ifdef METALLIC_REFLECTANCE_GAMMA\nmetallicReflectanceFactorsMap=toLinearSpace(metallicReflectanceFactorsMap);\n#endif\n#ifndef METALLIC_REFLECTANCE_USE_ALPHA_ONLY\nmetallicReflectanceFactors.rgb*=metallicReflectanceFactorsMap.rgb;\n#endif\nmetallicReflectanceFactors*=metallicReflectanceFactorsMap.a;\n#endif\n#endif\nreflectivityBlock(\nvReflectivityColor,\n#ifdef METALLICWORKFLOW\nsurfaceAlbedo,\nmetallicReflectanceFactors,\n#endif\n#ifdef REFLECTIVITY\nvReflectivityInfos,\nsurfaceMetallicOrReflectivityColorMap,\n#endif\n#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\naoOut.ambientOcclusionColor,\n#endif\n#ifdef MICROSURFACEMAP\nmicroSurfaceTexel,\n#endif\n#ifdef DETAIL\ndetailColor,\nvDetailInfos,\n#endif\nreflectivityOut\n);float microSurface=reflectivityOut.microSurface;float roughness=reflectivityOut.roughness;\n#ifdef METALLICWORKFLOW\nsurfaceAlbedo=reflectivityOut.surfaceAlbedo;\n#endif\n#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\naoOut.ambientOcclusionColor=reflectivityOut.ambientOcclusionColor;\n#endif\n#ifdef ALPHAFRESNEL\n#if defined(ALPHATEST) || defined(ALPHABLEND)\nalphaFresnelOutParams alphaFresnelOut;alphaFresnelBlock(\nnormalW,\nviewDirectionW,\nalpha,\nmicroSurface,\nalphaFresnelOut\n);alpha=alphaFresnelOut.alpha;\n#endif\n#endif\n#include\n#ifdef ANISOTROPIC\nanisotropicOutParams anisotropicOut;\n#ifdef ANISOTROPIC_TEXTURE\nvec3 anisotropyMapData=texture2D(anisotropySampler,vAnisotropyUV+uvOffset).rgb*vAnisotropyInfos.y;\n#endif\nanisotropicBlock(\nvAnisotropy,\nroughness,\n#ifdef ANISOTROPIC_TEXTURE\nanisotropyMapData,\n#endif\nTBN,\nnormalW,\nviewDirectionW,\nanisotropicOut\n);\n#endif\n#ifdef REFLECTION\nreflectionOutParams reflectionOut;\n#ifndef USE_CUSTOM_REFLECTION\nreflectionBlock(\nvPositionW,\nnormalW,\nalphaG,\nvReflectionMicrosurfaceInfos,\nvReflectionInfos,\nvReflectionColor,\n#ifdef ANISOTROPIC\nanisotropicOut,\n#endif\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\nNdotVUnclamped,\n#endif\n#ifdef LINEARSPECULARREFLECTION\nroughness,\n#endif\nreflectionSampler,\n#if defined(NORMAL) && defined(USESPHERICALINVERTEX)\nvEnvironmentIrradiance,\n#endif\n#ifdef USESPHERICALFROMREFLECTIONMAP\n#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\nreflectionMatrix,\n#endif\n#endif\n#ifdef USEIRRADIANCEMAP\nirradianceSampler,\n#endif\n#ifndef LODBASEDMICROSFURACE\nreflectionSamplerLow,\nreflectionSamplerHigh,\n#endif\n#ifdef REALTIME_FILTERING\nvReflectionFilteringInfo,\n#endif\nreflectionOut\n);\n#else\n#define CUSTOM_REFLECTION\n#endif\n#endif\n#include\n#ifdef SHEEN\nsheenOutParams sheenOut;\n#ifdef SHEEN_TEXTURE\nvec4 sheenMapData=texture2D(sheenSampler,vSheenUV+uvOffset);\n#endif\n#if defined(SHEEN_ROUGHNESS) && defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\nvec4 sheenMapRoughnessData=texture2D(sheenRoughnessSampler,vSheenRoughnessUV+uvOffset)*vSheenInfos.w;\n#endif\nsheenBlock(\nvSheenColor,\n#ifdef SHEEN_ROUGHNESS\nvSheenRoughness,\n#if defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\nsheenMapRoughnessData,\n#endif\n#endif\nroughness,\n#ifdef SHEEN_TEXTURE\nsheenMapData,\nvSheenInfos.y,\n#endif\nreflectance,\n#ifdef SHEEN_LINKWITHALBEDO\nbaseColor,\nsurfaceAlbedo,\n#endif\n#ifdef ENVIRONMENTBRDF\nNdotV,\nenvironmentBrdf,\n#endif\n#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\nAARoughnessFactors,\nvReflectionMicrosurfaceInfos,\nvReflectionInfos,\nvReflectionColor,\nvLightingIntensity,\nreflectionSampler,\nreflectionOut.reflectionCoords,\nNdotVUnclamped,\n#ifndef LODBASEDMICROSFURACE\nreflectionSamplerLow,\nreflectionSamplerHigh,\n#endif\n#ifdef REALTIME_FILTERING\nvReflectionFilteringInfo,\n#endif\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)\nseo,\n#endif\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)\neho,\n#endif\n#endif\nsheenOut\n);\n#ifdef SHEEN_LINKWITHALBEDO\nsurfaceAlbedo=sheenOut.surfaceAlbedo;\n#endif\n#endif\n#ifdef CLEARCOAT\n#ifdef CLEARCOAT_TEXTURE\nvec2 clearCoatMapData=texture2D(clearCoatSampler,vClearCoatUV+uvOffset).rg*vClearCoatInfos.y;\n#endif\n#endif\n#ifdef IRIDESCENCE\niridescenceOutParams iridescenceOut;\n#ifdef IRIDESCENCE_TEXTURE\nvec2 iridescenceMapData=texture2D(iridescenceSampler,vIridescenceUV+uvOffset).rg*vIridescenceInfos.y;\n#endif\n#ifdef IRIDESCENCE_THICKNESS_TEXTURE\nvec2 iridescenceThicknessMapData=texture2D(iridescenceThicknessSampler,vIridescenceThicknessUV+uvOffset).rg*vIridescenceInfos.w;\n#endif\niridescenceBlock(\nvIridescenceParams,\nNdotV,\nspecularEnvironmentR0,\n#ifdef IRIDESCENCE_TEXTURE\niridescenceMapData,\n#endif\n#ifdef IRIDESCENCE_THICKNESS_TEXTURE\niridescenceThicknessMapData,\n#endif\n#ifdef CLEARCOAT\nNdotVUnclamped,\n#ifdef CLEARCOAT_TEXTURE\nclearCoatMapData,\n#endif\n#endif\niridescenceOut\n);float iridescenceIntensity=iridescenceOut.iridescenceIntensity;specularEnvironmentR0=iridescenceOut.specularEnvironmentR0;\n#endif\nclearcoatOutParams clearcoatOut;\n#ifdef CLEARCOAT\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\nvec4 clearCoatMapRoughnessData=texture2D(clearCoatRoughnessSampler,vClearCoatRoughnessUV+uvOffset)*vClearCoatInfos.w;\n#endif\n#if defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)\nvec4 clearCoatTintMapData=texture2D(clearCoatTintSampler,vClearCoatTintUV+uvOffset);\n#endif\n#ifdef CLEARCOAT_BUMP\nvec4 clearCoatBumpMapData=texture2D(clearCoatBumpSampler,vClearCoatBumpUV+uvOffset);\n#endif\nclearcoatBlock(\nvPositionW,\ngeometricNormalW,\nviewDirectionW,\nvClearCoatParams,\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\nclearCoatMapRoughnessData,\n#endif\nspecularEnvironmentR0,\n#ifdef CLEARCOAT_TEXTURE\nclearCoatMapData,\n#endif\n#ifdef CLEARCOAT_TINT\nvClearCoatTintParams,\nclearCoatColorAtDistance,\nvClearCoatRefractionParams,\n#ifdef CLEARCOAT_TINT_TEXTURE\nclearCoatTintMapData,\n#endif\n#endif\n#ifdef CLEARCOAT_BUMP\nvClearCoatBumpInfos,\nclearCoatBumpMapData,\nvClearCoatBumpUV,\n#if defined(TANGENT) && defined(NORMAL)\nvTBN,\n#else\nvClearCoatTangentSpaceParams,\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\nnormalMatrix,\n#endif\n#endif\n#if defined(FORCENORMALFORWARD) && defined(NORMAL)\nfaceNormal,\n#endif\n#ifdef REFLECTION\nvReflectionMicrosurfaceInfos,\nvReflectionInfos,\nvReflectionColor,\nvLightingIntensity,\nreflectionSampler,\n#ifndef LODBASEDMICROSFURACE\nreflectionSamplerLow,\nreflectionSamplerHigh,\n#endif\n#ifdef REALTIME_FILTERING\nvReflectionFilteringInfo,\n#endif\n#endif\n#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\n#ifdef RADIANCEOCCLUSION\nambientMonochrome,\n#endif\n#endif\n#if defined(CLEARCOAT_BUMP) || defined(TWOSIDEDLIGHTING)\n(gl_FrontFacing ? 1. : -1.),\n#endif\nclearcoatOut\n);\n#else\nclearcoatOut.specularEnvironmentR0=specularEnvironmentR0;\n#endif\n#include\nsubSurfaceOutParams subSurfaceOut;\n#ifdef SUBSURFACE\n#ifdef SS_THICKNESSANDMASK_TEXTURE\nvec4 thicknessMap=texture2D(thicknessSampler,vThicknessUV+uvOffset);\n#endif\n#ifdef SS_REFRACTIONINTENSITY_TEXTURE\nvec4 refractionIntensityMap=texture2D(refractionIntensitySampler,vRefractionIntensityUV+uvOffset);\n#endif\n#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE\nvec4 translucencyIntensityMap=texture2D(translucencyIntensitySampler,vTranslucencyIntensityUV+uvOffset);\n#endif\n#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE\nvec4 translucencyColorMap=texture2D(translucencyColorSampler,vTranslucencyColorUV+uvOffset);\n#endif\nsubSurfaceBlock(\nvSubSurfaceIntensity,\nvThicknessParam,\nvTintColor,\nnormalW,\nspecularEnvironmentReflectance,\n#ifdef SS_THICKNESSANDMASK_TEXTURE\nthicknessMap,\n#endif\n#ifdef SS_REFRACTIONINTENSITY_TEXTURE\nrefractionIntensityMap,\n#endif\n#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE\ntranslucencyIntensityMap,\n#endif\n#ifdef REFLECTION\n#ifdef SS_TRANSLUCENCY\nreflectionMatrix,\n#ifdef USESPHERICALFROMREFLECTIONMAP\n#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\nreflectionOut.irradianceVector,\n#endif\n#if defined(REALTIME_FILTERING)\nreflectionSampler,\nvReflectionFilteringInfo,\n#endif\n#endif\n#ifdef USEIRRADIANCEMAP\nirradianceSampler,\n#endif\n#endif\n#endif\n#if defined(SS_REFRACTION) || defined(SS_TRANSLUCENCY)\nsurfaceAlbedo,\n#endif\n#ifdef SS_REFRACTION\nvPositionW,\nviewDirectionW,\nview,\nvRefractionInfos,\nrefractionMatrix,\nvRefractionMicrosurfaceInfos,\nvLightingIntensity,\n#ifdef SS_LINKREFRACTIONTOTRANSPARENCY\nalpha,\n#endif\n#ifdef SS_LODINREFRACTIONALPHA\nNdotVUnclamped,\n#endif\n#ifdef SS_LINEARSPECULARREFRACTION\nroughness,\n#endif\nalphaG,\nrefractionSampler,\n#ifndef LODBASEDMICROSFURACE\nrefractionSamplerLow,\nrefractionSamplerHigh,\n#endif\n#ifdef ANISOTROPIC\nanisotropicOut,\n#endif\n#ifdef REALTIME_FILTERING\nvRefractionFilteringInfo,\n#endif\n#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC\nvRefractionPosition,\nvRefractionSize,\n#endif\n#ifdef SS_DISPERSION\ndispersion,\n#endif\n#endif\n#ifdef SS_TRANSLUCENCY\nvDiffusionDistance,\nvTranslucencyColor,\n#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE\ntranslucencyColorMap,\n#endif\n#endif\nsubSurfaceOut\n);\n#ifdef SS_REFRACTION\nsurfaceAlbedo=subSurfaceOut.surfaceAlbedo;\n#ifdef SS_LINKREFRACTIONTOTRANSPARENCY\nalpha=subSurfaceOut.alpha;\n#endif\n#endif\n#else\nsubSurfaceOut.specularEnvironmentReflectance=specularEnvironmentReflectance;\n#endif\n#include\n#include[0..maxSimultaneousLights]\n#include\n#endif \n#include\n#define CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION\n#include\n#include\n#include(color,finalColor)\n#include\n#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\n#ifdef PREPASS\nfloat writeGeometryInfo=finalColor.a>0.4 ? 1.0 : 0.0;\n#ifdef PREPASS_POSITION\ngl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);\n#endif\n#ifdef PREPASS_VELOCITY\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;gl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);\n#endif\n#ifdef PREPASS_ALBEDO_SQRT\nvec3 sqAlbedo=sqrt(surfaceAlbedo); \n#endif\n#ifdef PREPASS_IRRADIANCE\nvec3 irradiance=finalDiffuse;\n#ifndef UNLIT\n#ifdef REFLECTION\nirradiance+=finalIrradiance;\n#endif\n#endif\n#ifdef SS_SCATTERING\ngl_FragData[0]=vec4(finalColor.rgb-irradiance,finalColor.a); \nirradiance/=sqAlbedo;\n#else\ngl_FragData[0]=finalColor; \nfloat scatteringDiffusionProfile=255.;\n#endif\ngl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(clamp(irradiance,vec3(0.),vec3(1.)),writeGeometryInfo*scatteringDiffusionProfile/255.); \n#else\ngl_FragData[0]=vec4(finalColor.rgb,finalColor.a);\n#endif\n#ifdef PREPASS_DEPTH\ngl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo); \n#endif\n#ifdef PREPASS_NORMAL\n#ifdef PREPASS_NORMAL_WORLDSPACE\ngl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalW,writeGeometryInfo); \n#else\ngl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo); \n#endif\n#endif\n#ifdef PREPASS_ALBEDO_SQRT\ngl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(sqAlbedo,writeGeometryInfo); \n#endif\n#ifdef PREPASS_REFLECTIVITY\n#ifndef UNLIT\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(specularEnvironmentR0,microSurface)*writeGeometryInfo;\n#else\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4( 0.0,0.0,0.0,1.0 )*writeGeometryInfo;\n#endif\n#endif\n#endif\n#if !defined(PREPASS) || defined(WEBGL2)\ngl_FragColor=finalColor;\n#endif\n#include\n#if ORDER_INDEPENDENT_TRANSPARENCY\nif (fragDepth==nearestDepth) {frontColor.rgb+=finalColor.rgb*finalColor.a*alphaMultiplier;frontColor.a=1.0-alphaMultiplier*(1.0-finalColor.a);} else {backColor+=finalColor;}\n#endif\n#include\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n`;\nz.ShadersStore[cV] = uV;\nconst dV = \"pbrVertexDeclaration\", fV = `uniform mat4 view;uniform mat4 viewProjection;\n#ifdef ALBEDO\nuniform mat4 albedoMatrix;uniform vec2 vAlbedoInfos;\n#endif\n#ifdef AMBIENT\nuniform mat4 ambientMatrix;uniform vec4 vAmbientInfos;\n#endif\n#ifdef OPACITY\nuniform mat4 opacityMatrix;uniform vec2 vOpacityInfos;\n#endif\n#ifdef EMISSIVE\nuniform vec2 vEmissiveInfos;uniform mat4 emissiveMatrix;\n#endif\n#ifdef LIGHTMAP\nuniform vec2 vLightmapInfos;uniform mat4 lightmapMatrix;\n#endif\n#ifdef REFLECTIVITY \nuniform vec3 vReflectivityInfos;uniform mat4 reflectivityMatrix;\n#endif\n#ifdef METALLIC_REFLECTANCE\nuniform vec2 vMetallicReflectanceInfos;uniform mat4 metallicReflectanceMatrix;\n#endif\n#ifdef REFLECTANCE\nuniform vec2 vReflectanceInfos;uniform mat4 reflectanceMatrix;\n#endif\n#ifdef MICROSURFACEMAP\nuniform vec2 vMicroSurfaceSamplerInfos;uniform mat4 microSurfaceSamplerMatrix;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;uniform mat4 bumpMatrix;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;uniform mat4 reflectionMatrix;\n#endif\n#ifdef CLEARCOAT\n#if defined(CLEARCOAT_TEXTURE) || defined(CLEARCOAT_TEXTURE_ROUGHNESS)\nuniform vec4 vClearCoatInfos;\n#endif\n#ifdef CLEARCOAT_TEXTURE\nuniform mat4 clearCoatMatrix;\n#endif\n#ifdef CLEARCOAT_TEXTURE_ROUGHNESS\nuniform mat4 clearCoatRoughnessMatrix;\n#endif\n#ifdef CLEARCOAT_BUMP\nuniform vec2 vClearCoatBumpInfos;uniform mat4 clearCoatBumpMatrix;\n#endif\n#ifdef CLEARCOAT_TINT_TEXTURE\nuniform vec2 vClearCoatTintInfos;uniform mat4 clearCoatTintMatrix;\n#endif\n#endif\n#ifdef IRIDESCENCE\n#if defined(IRIDESCENCE_TEXTURE) || defined(IRIDESCENCE_THICKNESS_TEXTURE)\nuniform vec4 vIridescenceInfos;\n#endif\n#ifdef IRIDESCENCE_TEXTURE\nuniform mat4 iridescenceMatrix;\n#endif\n#ifdef IRIDESCENCE_THICKNESS_TEXTURE\nuniform mat4 iridescenceThicknessMatrix;\n#endif\n#endif\n#ifdef ANISOTROPIC\n#ifdef ANISOTROPIC_TEXTURE\nuniform vec2 vAnisotropyInfos;uniform mat4 anisotropyMatrix;\n#endif\n#endif\n#ifdef SHEEN\n#if defined(SHEEN_TEXTURE) || defined(SHEEN_TEXTURE_ROUGHNESS)\nuniform vec4 vSheenInfos;\n#endif\n#ifdef SHEEN_TEXTURE\nuniform mat4 sheenMatrix;\n#endif\n#ifdef SHEEN_TEXTURE_ROUGHNESS\nuniform mat4 sheenRoughnessMatrix;\n#endif\n#endif\n#ifdef SUBSURFACE\n#ifdef SS_REFRACTION\nuniform vec4 vRefractionInfos;uniform mat4 refractionMatrix;\n#endif\n#ifdef SS_THICKNESSANDMASK_TEXTURE\nuniform vec2 vThicknessInfos;uniform mat4 thicknessMatrix;\n#endif\n#ifdef SS_REFRACTIONINTENSITY_TEXTURE\nuniform vec2 vRefractionIntensityInfos;uniform mat4 refractionIntensityMatrix;\n#endif\n#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE\nuniform vec2 vTranslucencyIntensityInfos;uniform mat4 translucencyIntensityMatrix;\n#endif\n#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE\nuniform vec2 vTranslucencyColorInfos;uniform mat4 translucencyColorMatrix;\n#endif\n#endif\n#ifdef NORMAL\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\n#ifdef USESPHERICALFROMREFLECTIONMAP\n#ifdef SPHERICAL_HARMONICS\nuniform vec3 vSphericalL00;uniform vec3 vSphericalL1_1;uniform vec3 vSphericalL10;uniform vec3 vSphericalL11;uniform vec3 vSphericalL2_2;uniform vec3 vSphericalL2_1;uniform vec3 vSphericalL20;uniform vec3 vSphericalL21;uniform vec3 vSphericalL22;\n#else\nuniform vec3 vSphericalX;uniform vec3 vSphericalY;uniform vec3 vSphericalZ;uniform vec3 vSphericalXX_ZZ;uniform vec3 vSphericalYY_ZZ;uniform vec3 vSphericalZZ;uniform vec3 vSphericalXY;uniform vec3 vSphericalYZ;uniform vec3 vSphericalZX;\n#endif\n#endif\n#endif\n#endif\n#ifdef DETAIL\nuniform vec4 vDetailInfos;uniform mat4 detailMatrix;\n#endif\n#include\n#define ADDITIONAL_VERTEX_DECLARATION\n`;\nz.IncludesShadersStore[dV] = fV;\nconst pV = \"pbrVertexShader\", _V = `precision highp float;\n#include<__decl__pbrVertex>\n#define CUSTOM_VERTEX_BEGIN\nattribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#ifdef TANGENT\nattribute vec4 tangent;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#include[2..7]\n#include[1..7]\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include\n#include\n#include\n#include\n#include\n#include(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo)\n#include(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)\n#include(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient)\n#include(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity)\n#include(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive)\n#include(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap)\n#include(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity)\n#include(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler)\n#include(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance)\n#include(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance)\n#include(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump)\n#include(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)\n#ifdef CLEARCOAT\n#include(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat)\n#include(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness)\n#include(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump)\n#include(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint)\n#endif\n#ifdef IRIDESCENCE\n#include(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence)\n#include(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness)\n#endif\n#ifdef SHEEN\n#include(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen)\n#include(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness)\n#endif\n#ifdef ANISOTROPIC\n#include(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy)\n#endif\n#ifdef SUBSURFACE\n#include(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness)\n#include(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity)\n#include(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity)\n#include(_DEFINENAME_,SS_TRANSLUCENCYCOLOR_TEXTURE,_VARYINGNAME_,TranslucencyColor)\n#endif\nvarying vec3 vPositionW;\n#if DEBUGMODE>0\nvarying vec4 vClipSpacePosition;\n#endif\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\nvarying vec3 vEnvironmentIrradiance;\n#include\n#endif\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvarying vec4 vColor;\n#endif\n#include\n#include\n#include\n#include<__decl__lightVxFragment>[0..maxSimultaneousLights]\n#include\n#include[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#include\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvec3 positionUpdated=position;\n#ifdef NORMAL\nvec3 normalUpdated=normal;\n#endif\n#ifdef TANGENT\nvec4 tangentUpdated=tangent;\n#endif\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include\n#include[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvPositionUVW=positionUpdated;\n#endif\n#define CUSTOM_VERTEX_UPDATE_POSITION\n#define CUSTOM_VERTEX_UPDATE_NORMAL\n#include\n#if defined(PREPASS) && defined(PREPASS_VELOCITY) && !defined(BONES_VELOCITY_ENABLED)\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\n#endif\n#include\n#include\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);vPositionW=vec3(worldPos);\n#include\n#ifdef NORMAL\nmat3 normalWorld=mat3(finalWorld);\n#if defined(INSTANCES) && defined(THIN_INSTANCES)\nvNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));vNormalW=normalize(normalWorld*vNormalW);\n#else\n#ifdef NONUNIFORMSCALING\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\n#endif\nvNormalW=normalize(normalWorld*normalUpdated);\n#endif\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\nvec3 reflectionVector=vec3(reflectionMatrix*vec4(vNormalW,0)).xyz;\n#ifdef REFLECTIONMAP_OPPOSITEZ\nreflectionVector.z*=-1.0;\n#endif\nvEnvironmentIrradiance=computeEnvironmentIrradiance(reflectionVector);\n#endif\n#endif\n#define CUSTOM_VERTEX_UPDATE_WORLDPOS\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR==0u) {gl_Position=viewProjection*worldPos;} else {gl_Position=viewProjectionR*worldPos;}\n#else\ngl_Position=viewProjection*worldPos;\n#endif\n#if DEBUGMODE>0\nvClipSpacePosition=gl_Position;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));\n#endif\n#ifndef UV1\nvec2 uvUpdated=vec2(0.,0.);\n#endif\n#ifdef MAINUV1\nvMainUV1=uvUpdated;\n#endif\n#include[2..7]\n#include(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo,_MATRIXNAME_,albedo,_INFONAME_,AlbedoInfos.x)\n#include(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)\n#include(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_MATRIXNAME_,ambient,_INFONAME_,AmbientInfos.x)\n#include(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_MATRIXNAME_,opacity,_INFONAME_,OpacityInfos.x)\n#include(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_MATRIXNAME_,emissive,_INFONAME_,EmissiveInfos.x)\n#include(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_MATRIXNAME_,lightmap,_INFONAME_,LightmapInfos.x)\n#include(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity,_MATRIXNAME_,reflectivity,_INFONAME_,ReflectivityInfos.x)\n#include(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler,_MATRIXNAME_,microSurfaceSampler,_INFONAME_,MicroSurfaceSamplerInfos.x)\n#include(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance,_MATRIXNAME_,metallicReflectance,_INFONAME_,MetallicReflectanceInfos.x)\n#include(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance,_MATRIXNAME_,reflectance,_INFONAME_,ReflectanceInfos.x)\n#include(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_MATRIXNAME_,bump,_INFONAME_,BumpInfos.x)\n#include(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)\n#ifdef CLEARCOAT\n#include(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat,_MATRIXNAME_,clearCoat,_INFONAME_,ClearCoatInfos.x)\n#include(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness,_MATRIXNAME_,clearCoatRoughness,_INFONAME_,ClearCoatInfos.z)\n#include(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump,_MATRIXNAME_,clearCoatBump,_INFONAME_,ClearCoatBumpInfos.x)\n#include(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint,_MATRIXNAME_,clearCoatTint,_INFONAME_,ClearCoatTintInfos.x)\n#endif\n#ifdef IRIDESCENCE\n#include(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence,_MATRIXNAME_,iridescence,_INFONAME_,IridescenceInfos.x)\n#include(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness,_MATRIXNAME_,iridescenceThickness,_INFONAME_,IridescenceInfos.z)\n#endif\n#ifdef SHEEN\n#include(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen,_MATRIXNAME_,sheen,_INFONAME_,SheenInfos.x)\n#include(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness,_MATRIXNAME_,sheenRoughness,_INFONAME_,SheenInfos.z)\n#endif\n#ifdef ANISOTROPIC\n#include(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy,_MATRIXNAME_,anisotropy,_INFONAME_,AnisotropyInfos.x)\n#endif\n#ifdef SUBSURFACE\n#include(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness,_MATRIXNAME_,thickness,_INFONAME_,ThicknessInfos.x)\n#include(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity,_MATRIXNAME_,refractionIntensity,_INFONAME_,RefractionIntensityInfos.x)\n#include(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity,_MATRIXNAME_,translucencyIntensity,_INFONAME_,TranslucencyIntensityInfos.x)\n#include(_DEFINENAME_,SS_TRANSLUCENCYCOLOR_TEXTURE,_VARYINGNAME_,TranslucencyColor,_MATRIXNAME_,translucencyColor,_INFONAME_,TranslucencyColorInfos.x)\n#endif\n#include\n#include\n#include\n#include[0..maxSimultaneousLights]\n#include\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\n#endif\n#include\n#define CUSTOM_VERTEX_MAIN_END\n}`;\nz.ShadersStore[pV] = _V;\nclass mV extends dr {\n constructor() {\n super(...arguments), this.CLEARCOAT = !1, this.CLEARCOAT_DEFAULTIOR = !1, this.CLEARCOAT_TEXTURE = !1, this.CLEARCOAT_TEXTURE_ROUGHNESS = !1, this.CLEARCOAT_TEXTUREDIRECTUV = 0, this.CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV = 0, this.CLEARCOAT_BUMP = !1, this.CLEARCOAT_BUMPDIRECTUV = 0, this.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE = !1, this.CLEARCOAT_REMAP_F0 = !1, this.CLEARCOAT_TINT = !1, this.CLEARCOAT_TINT_TEXTURE = !1, this.CLEARCOAT_TINT_TEXTUREDIRECTUV = 0, this.CLEARCOAT_TINT_GAMMATEXTURE = !1;\n }\n}\nclass ws extends br {\n /** @internal */\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled), this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n constructor(e, t = !0) {\n super(e, \"PBRClearCoat\", 100, new mV(), t), this._isEnabled = !1, this.isEnabled = !1, this.intensity = 1, this.roughness = 0, this._indexOfRefraction = ws._DefaultIndexOfRefraction, this.indexOfRefraction = ws._DefaultIndexOfRefraction, this._texture = null, this.texture = null, this._useRoughnessFromMainTexture = !0, this.useRoughnessFromMainTexture = !0, this._textureRoughness = null, this.textureRoughness = null, this._remapF0OnInterfaceChange = !0, this.remapF0OnInterfaceChange = !0, this._bumpTexture = null, this.bumpTexture = null, this._isTintEnabled = !1, this.isTintEnabled = !1, this.tintColor = re.White(), this.tintColorAtDistance = 1, this.tintThickness = 1, this._tintTexture = null, this.tintTexture = null, this._internalMarkAllSubMeshesAsTexturesDirty = e._dirtyCallbacks[1];\n }\n isReadyForSubMesh(e, t, i) {\n if (!this._isEnabled)\n return !0;\n const s = this._material._disableBumpMap;\n return !(e._areTexturesDirty && t.texturesEnabled && (this._texture && xe.ClearCoatTextureEnabled && !this._texture.isReadyOrNotBlocking() || this._textureRoughness && xe.ClearCoatTextureEnabled && !this._textureRoughness.isReadyOrNotBlocking() || i.getCaps().standardDerivatives && this._bumpTexture && xe.ClearCoatBumpTextureEnabled && !s && !this._bumpTexture.isReady() || this._isTintEnabled && this._tintTexture && xe.ClearCoatTintTextureEnabled && !this._tintTexture.isReadyOrNotBlocking()));\n }\n prepareDefinesBeforeAttributes(e, t) {\n this._isEnabled ? (e.CLEARCOAT = !0, e.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE = this._useRoughnessFromMainTexture, e.CLEARCOAT_REMAP_F0 = this._remapF0OnInterfaceChange, e._areTexturesDirty && t.texturesEnabled && (this._texture && xe.ClearCoatTextureEnabled ? ci(this._texture, e, \"CLEARCOAT_TEXTURE\") : e.CLEARCOAT_TEXTURE = !1, this._textureRoughness && xe.ClearCoatTextureEnabled ? ci(this._textureRoughness, e, \"CLEARCOAT_TEXTURE_ROUGHNESS\") : e.CLEARCOAT_TEXTURE_ROUGHNESS = !1, this._bumpTexture && xe.ClearCoatBumpTextureEnabled ? ci(this._bumpTexture, e, \"CLEARCOAT_BUMP\") : e.CLEARCOAT_BUMP = !1, e.CLEARCOAT_DEFAULTIOR = this._indexOfRefraction === ws._DefaultIndexOfRefraction, this._isTintEnabled ? (e.CLEARCOAT_TINT = !0, this._tintTexture && xe.ClearCoatTintTextureEnabled ? (ci(this._tintTexture, e, \"CLEARCOAT_TINT_TEXTURE\"), e.CLEARCOAT_TINT_GAMMATEXTURE = this._tintTexture.gammaSpace) : e.CLEARCOAT_TINT_TEXTURE = !1) : (e.CLEARCOAT_TINT = !1, e.CLEARCOAT_TINT_TEXTURE = !1))) : (e.CLEARCOAT = !1, e.CLEARCOAT_TEXTURE = !1, e.CLEARCOAT_TEXTURE_ROUGHNESS = !1, e.CLEARCOAT_BUMP = !1, e.CLEARCOAT_TINT = !1, e.CLEARCOAT_TINT_TEXTURE = !1, e.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE = !1, e.CLEARCOAT_DEFAULTIOR = !1, e.CLEARCOAT_TEXTUREDIRECTUV = 0, e.CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV = 0, e.CLEARCOAT_BUMPDIRECTUV = 0, e.CLEARCOAT_REMAP_F0 = !1, e.CLEARCOAT_TINT_TEXTUREDIRECTUV = 0, e.CLEARCOAT_TINT_GAMMATEXTURE = !1);\n }\n bindForSubMesh(e, t, i, s) {\n var c, u, d, f;\n if (!this._isEnabled)\n return;\n const r = s.materialDefines, n = this._material.isFrozen, o = this._material._disableBumpMap, l = this._material._invertNormalMapX, h = this._material._invertNormalMapY;\n if (!e.useUbo || !n || !e.isSync) {\n (this._texture || this._textureRoughness) && xe.ClearCoatTextureEnabled && (e.updateFloat4(\"vClearCoatInfos\", ((c = this._texture) == null ? void 0 : c.coordinatesIndex) ?? 0, ((u = this._texture) == null ? void 0 : u.level) ?? 0, ((d = this._textureRoughness) == null ? void 0 : d.coordinatesIndex) ?? 0, ((f = this._textureRoughness) == null ? void 0 : f.level) ?? 0), this._texture && pi(this._texture, e, \"clearCoat\"), this._textureRoughness && !r.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE && pi(this._textureRoughness, e, \"clearCoatRoughness\")), this._bumpTexture && i.getCaps().standardDerivatives && xe.ClearCoatTextureEnabled && !o && (e.updateFloat2(\"vClearCoatBumpInfos\", this._bumpTexture.coordinatesIndex, this._bumpTexture.level), pi(this._bumpTexture, e, \"clearCoatBump\"), t._mirroredCameraPosition ? e.updateFloat2(\"vClearCoatTangentSpaceParams\", l ? 1 : -1, h ? 1 : -1) : e.updateFloat2(\"vClearCoatTangentSpaceParams\", l ? -1 : 1, h ? -1 : 1)), this._tintTexture && xe.ClearCoatTintTextureEnabled && (e.updateFloat2(\"vClearCoatTintInfos\", this._tintTexture.coordinatesIndex, this._tintTexture.level), pi(this._tintTexture, e, \"clearCoatTint\")), e.updateFloat2(\"vClearCoatParams\", this.intensity, this.roughness);\n const p = 1 - this._indexOfRefraction, _ = 1 + this._indexOfRefraction, m = Math.pow(-p / _, 2), x = 1 / this._indexOfRefraction;\n e.updateFloat4(\"vClearCoatRefractionParams\", m, x, p, _), this._isTintEnabled && (e.updateFloat4(\"vClearCoatTintParams\", this.tintColor.r, this.tintColor.g, this.tintColor.b, Math.max(1e-5, this.tintThickness)), e.updateFloat(\"clearCoatColorAtDistance\", Math.max(1e-5, this.tintColorAtDistance)));\n }\n t.texturesEnabled && (this._texture && xe.ClearCoatTextureEnabled && e.setTexture(\"clearCoatSampler\", this._texture), this._textureRoughness && !r.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE && xe.ClearCoatTextureEnabled && e.setTexture(\"clearCoatRoughnessSampler\", this._textureRoughness), this._bumpTexture && i.getCaps().standardDerivatives && xe.ClearCoatBumpTextureEnabled && !o && e.setTexture(\"clearCoatBumpSampler\", this._bumpTexture), this._isTintEnabled && this._tintTexture && xe.ClearCoatTintTextureEnabled && e.setTexture(\"clearCoatTintSampler\", this._tintTexture));\n }\n hasTexture(e) {\n return this._texture === e || this._textureRoughness === e || this._bumpTexture === e || this._tintTexture === e;\n }\n getActiveTextures(e) {\n this._texture && e.push(this._texture), this._textureRoughness && e.push(this._textureRoughness), this._bumpTexture && e.push(this._bumpTexture), this._tintTexture && e.push(this._tintTexture);\n }\n getAnimatables(e) {\n this._texture && this._texture.animations && this._texture.animations.length > 0 && e.push(this._texture), this._textureRoughness && this._textureRoughness.animations && this._textureRoughness.animations.length > 0 && e.push(this._textureRoughness), this._bumpTexture && this._bumpTexture.animations && this._bumpTexture.animations.length > 0 && e.push(this._bumpTexture), this._tintTexture && this._tintTexture.animations && this._tintTexture.animations.length > 0 && e.push(this._tintTexture);\n }\n dispose(e) {\n var t, i, s, r;\n e && ((t = this._texture) == null || t.dispose(), (i = this._textureRoughness) == null || i.dispose(), (s = this._bumpTexture) == null || s.dispose(), (r = this._tintTexture) == null || r.dispose());\n }\n getClassName() {\n return \"PBRClearCoatConfiguration\";\n }\n addFallbacks(e, t, i) {\n return e.CLEARCOAT_BUMP && t.addFallback(i++, \"CLEARCOAT_BUMP\"), e.CLEARCOAT_TINT && t.addFallback(i++, \"CLEARCOAT_TINT\"), e.CLEARCOAT && t.addFallback(i++, \"CLEARCOAT\"), i;\n }\n getSamplers(e) {\n e.push(\"clearCoatSampler\", \"clearCoatRoughnessSampler\", \"clearCoatBumpSampler\", \"clearCoatTintSampler\");\n }\n getUniforms() {\n return {\n ubo: [\n { name: \"vClearCoatParams\", size: 2, type: \"vec2\" },\n { name: \"vClearCoatRefractionParams\", size: 4, type: \"vec4\" },\n { name: \"vClearCoatInfos\", size: 4, type: \"vec4\" },\n { name: \"clearCoatMatrix\", size: 16, type: \"mat4\" },\n { name: \"clearCoatRoughnessMatrix\", size: 16, type: \"mat4\" },\n { name: \"vClearCoatBumpInfos\", size: 2, type: \"vec2\" },\n { name: \"vClearCoatTangentSpaceParams\", size: 2, type: \"vec2\" },\n { name: \"clearCoatBumpMatrix\", size: 16, type: \"mat4\" },\n { name: \"vClearCoatTintParams\", size: 4, type: \"vec4\" },\n { name: \"clearCoatColorAtDistance\", size: 1, type: \"float\" },\n { name: \"vClearCoatTintInfos\", size: 2, type: \"vec2\" },\n { name: \"clearCoatTintMatrix\", size: 16, type: \"mat4\" }\n ]\n };\n }\n}\nws._DefaultIndexOfRefraction = 1.5;\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ws.prototype, \"isEnabled\", void 0);\ny([\n I()\n], ws.prototype, \"intensity\", void 0);\ny([\n I()\n], ws.prototype, \"roughness\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ws.prototype, \"indexOfRefraction\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ws.prototype, \"texture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ws.prototype, \"useRoughnessFromMainTexture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ws.prototype, \"textureRoughness\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ws.prototype, \"remapF0OnInterfaceChange\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ws.prototype, \"bumpTexture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ws.prototype, \"isTintEnabled\", void 0);\ny([\n bi()\n], ws.prototype, \"tintColor\", void 0);\ny([\n I()\n], ws.prototype, \"tintColorAtDistance\", void 0);\ny([\n I()\n], ws.prototype, \"tintThickness\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ws.prototype, \"tintTexture\", void 0);\nclass gV extends dr {\n constructor() {\n super(...arguments), this.IRIDESCENCE = !1, this.IRIDESCENCE_TEXTURE = !1, this.IRIDESCENCE_TEXTUREDIRECTUV = 0, this.IRIDESCENCE_THICKNESS_TEXTURE = !1, this.IRIDESCENCE_THICKNESS_TEXTUREDIRECTUV = 0;\n }\n}\nclass Sr extends br {\n /** @internal */\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled), this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n constructor(e, t = !0) {\n super(e, \"PBRIridescence\", 110, new gV(), t), this._isEnabled = !1, this.isEnabled = !1, this.intensity = 1, this.minimumThickness = Sr._DefaultMinimumThickness, this.maximumThickness = Sr._DefaultMaximumThickness, this.indexOfRefraction = Sr._DefaultIndexOfRefraction, this._texture = null, this.texture = null, this._thicknessTexture = null, this.thicknessTexture = null, this._internalMarkAllSubMeshesAsTexturesDirty = e._dirtyCallbacks[1];\n }\n isReadyForSubMesh(e, t) {\n return this._isEnabled ? !(e._areTexturesDirty && t.texturesEnabled && (this._texture && xe.IridescenceTextureEnabled && !this._texture.isReadyOrNotBlocking() || this._thicknessTexture && xe.IridescenceTextureEnabled && !this._thicknessTexture.isReadyOrNotBlocking())) : !0;\n }\n prepareDefinesBeforeAttributes(e, t) {\n this._isEnabled ? (e.IRIDESCENCE = !0, e._areTexturesDirty && t.texturesEnabled && (this._texture && xe.IridescenceTextureEnabled ? ci(this._texture, e, \"IRIDESCENCE_TEXTURE\") : e.IRIDESCENCE_TEXTURE = !1, this._thicknessTexture && xe.IridescenceTextureEnabled ? ci(this._thicknessTexture, e, \"IRIDESCENCE_THICKNESS_TEXTURE\") : e.IRIDESCENCE_THICKNESS_TEXTURE = !1)) : (e.IRIDESCENCE = !1, e.IRIDESCENCE_TEXTURE = !1, e.IRIDESCENCE_THICKNESS_TEXTURE = !1, e.IRIDESCENCE_TEXTUREDIRECTUV = 0, e.IRIDESCENCE_THICKNESS_TEXTUREDIRECTUV = 0);\n }\n bindForSubMesh(e, t) {\n var s, r, n, o;\n if (!this._isEnabled)\n return;\n const i = this._material.isFrozen;\n (!e.useUbo || !i || !e.isSync) && ((this._texture || this._thicknessTexture) && xe.IridescenceTextureEnabled && (e.updateFloat4(\"vIridescenceInfos\", ((s = this._texture) == null ? void 0 : s.coordinatesIndex) ?? 0, ((r = this._texture) == null ? void 0 : r.level) ?? 0, ((n = this._thicknessTexture) == null ? void 0 : n.coordinatesIndex) ?? 0, ((o = this._thicknessTexture) == null ? void 0 : o.level) ?? 0), this._texture && pi(this._texture, e, \"iridescence\"), this._thicknessTexture && pi(this._thicknessTexture, e, \"iridescenceThickness\")), e.updateFloat4(\"vIridescenceParams\", this.intensity, this.indexOfRefraction, this.minimumThickness, this.maximumThickness)), t.texturesEnabled && (this._texture && xe.IridescenceTextureEnabled && e.setTexture(\"iridescenceSampler\", this._texture), this._thicknessTexture && xe.IridescenceTextureEnabled && e.setTexture(\"iridescenceThicknessSampler\", this._thicknessTexture));\n }\n hasTexture(e) {\n return this._texture === e || this._thicknessTexture === e;\n }\n getActiveTextures(e) {\n this._texture && e.push(this._texture), this._thicknessTexture && e.push(this._thicknessTexture);\n }\n getAnimatables(e) {\n this._texture && this._texture.animations && this._texture.animations.length > 0 && e.push(this._texture), this._thicknessTexture && this._thicknessTexture.animations && this._thicknessTexture.animations.length > 0 && e.push(this._thicknessTexture);\n }\n dispose(e) {\n var t, i;\n e && ((t = this._texture) == null || t.dispose(), (i = this._thicknessTexture) == null || i.dispose());\n }\n getClassName() {\n return \"PBRIridescenceConfiguration\";\n }\n addFallbacks(e, t, i) {\n return e.IRIDESCENCE && t.addFallback(i++, \"IRIDESCENCE\"), i;\n }\n getSamplers(e) {\n e.push(\"iridescenceSampler\", \"iridescenceThicknessSampler\");\n }\n getUniforms() {\n return {\n ubo: [\n { name: \"vIridescenceParams\", size: 4, type: \"vec4\" },\n { name: \"vIridescenceInfos\", size: 4, type: \"vec4\" },\n { name: \"iridescenceMatrix\", size: 16, type: \"mat4\" },\n { name: \"iridescenceThicknessMatrix\", size: 16, type: \"mat4\" }\n ]\n };\n }\n}\nSr._DefaultMinimumThickness = 100;\nSr._DefaultMaximumThickness = 400;\nSr._DefaultIndexOfRefraction = 1.3;\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], Sr.prototype, \"isEnabled\", void 0);\ny([\n I()\n], Sr.prototype, \"intensity\", void 0);\ny([\n I()\n], Sr.prototype, \"minimumThickness\", void 0);\ny([\n I()\n], Sr.prototype, \"maximumThickness\", void 0);\ny([\n I()\n], Sr.prototype, \"indexOfRefraction\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], Sr.prototype, \"texture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], Sr.prototype, \"thicknessTexture\", void 0);\nclass xV extends dr {\n constructor() {\n super(...arguments), this.ANISOTROPIC = !1, this.ANISOTROPIC_TEXTURE = !1, this.ANISOTROPIC_TEXTUREDIRECTUV = 0, this.ANISOTROPIC_LEGACY = !1, this.MAINUV1 = !1;\n }\n}\nclass Cc extends br {\n /**\n * Sets the anisotropy direction as an angle.\n */\n set angle(e) {\n this.direction.x = Math.cos(e), this.direction.y = Math.sin(e);\n }\n /**\n * Gets the anisotropy angle value in radians.\n * @returns the anisotropy angle value in radians.\n */\n get angle() {\n return Math.atan2(this.direction.y, this.direction.x);\n }\n /** @internal */\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled), this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n /** @internal */\n _markAllSubMeshesAsMiscDirty() {\n this._enable(this._isEnabled), this._internalMarkAllSubMeshesAsMiscDirty();\n }\n constructor(e, t = !0) {\n super(e, \"PBRAnisotropic\", 110, new xV(), t), this._isEnabled = !1, this.isEnabled = !1, this.intensity = 1, this.direction = new Q(1, 0), this._texture = null, this.texture = null, this._legacy = !1, this.legacy = !1, this._internalMarkAllSubMeshesAsTexturesDirty = e._dirtyCallbacks[1], this._internalMarkAllSubMeshesAsMiscDirty = e._dirtyCallbacks[16];\n }\n isReadyForSubMesh(e, t) {\n return this._isEnabled ? !(e._areTexturesDirty && t.texturesEnabled && this._texture && xe.AnisotropicTextureEnabled && !this._texture.isReadyOrNotBlocking()) : !0;\n }\n prepareDefinesBeforeAttributes(e, t, i) {\n this._isEnabled ? (e.ANISOTROPIC = this._isEnabled, this._isEnabled && !i.isVerticesDataPresent(R.TangentKind) && (e._needUVs = !0, e.MAINUV1 = !0), e._areTexturesDirty && t.texturesEnabled && (this._texture && xe.AnisotropicTextureEnabled ? ci(this._texture, e, \"ANISOTROPIC_TEXTURE\") : e.ANISOTROPIC_TEXTURE = !1), e._areMiscDirty && (e.ANISOTROPIC_LEGACY = this._legacy)) : (e.ANISOTROPIC = !1, e.ANISOTROPIC_TEXTURE = !1, e.ANISOTROPIC_TEXTUREDIRECTUV = 0, e.ANISOTROPIC_LEGACY = !1);\n }\n bindForSubMesh(e, t) {\n if (!this._isEnabled)\n return;\n const i = this._material.isFrozen;\n (!e.useUbo || !i || !e.isSync) && (this._texture && xe.AnisotropicTextureEnabled && (e.updateFloat2(\"vAnisotropyInfos\", this._texture.coordinatesIndex, this._texture.level), pi(this._texture, e, \"anisotropy\")), e.updateFloat3(\"vAnisotropy\", this.direction.x, this.direction.y, this.intensity)), t.texturesEnabled && this._texture && xe.AnisotropicTextureEnabled && e.setTexture(\"anisotropySampler\", this._texture);\n }\n hasTexture(e) {\n return this._texture === e;\n }\n getActiveTextures(e) {\n this._texture && e.push(this._texture);\n }\n getAnimatables(e) {\n this._texture && this._texture.animations && this._texture.animations.length > 0 && e.push(this._texture);\n }\n dispose(e) {\n e && this._texture && this._texture.dispose();\n }\n getClassName() {\n return \"PBRAnisotropicConfiguration\";\n }\n addFallbacks(e, t, i) {\n return e.ANISOTROPIC && t.addFallback(i++, \"ANISOTROPIC\"), i;\n }\n getSamplers(e) {\n e.push(\"anisotropySampler\");\n }\n getUniforms() {\n return {\n ubo: [\n { name: \"vAnisotropy\", size: 3, type: \"vec3\" },\n { name: \"vAnisotropyInfos\", size: 2, type: \"vec2\" },\n { name: \"anisotropyMatrix\", size: 16, type: \"mat4\" }\n ]\n };\n }\n /**\n * Parses a anisotropy Configuration from a serialized object.\n * @param source - Serialized object.\n * @param scene Defines the scene we are parsing for\n * @param rootUrl Defines the rootUrl to load from\n */\n parse(e, t, i) {\n super.parse(e, t, i), e.legacy === void 0 && (this.legacy = !0);\n }\n}\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], Cc.prototype, \"isEnabled\", void 0);\ny([\n I()\n], Cc.prototype, \"intensity\", void 0);\ny([\n bx()\n], Cc.prototype, \"direction\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], Cc.prototype, \"texture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsMiscDirty\")\n], Cc.prototype, \"legacy\", void 0);\nclass vV extends dr {\n constructor() {\n super(...arguments), this.SHEEN = !1, this.SHEEN_TEXTURE = !1, this.SHEEN_GAMMATEXTURE = !1, this.SHEEN_TEXTURE_ROUGHNESS = !1, this.SHEEN_TEXTUREDIRECTUV = 0, this.SHEEN_TEXTURE_ROUGHNESSDIRECTUV = 0, this.SHEEN_LINKWITHALBEDO = !1, this.SHEEN_ROUGHNESS = !1, this.SHEEN_ALBEDOSCALING = !1, this.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE = !1;\n }\n}\nclass Na extends br {\n /** @internal */\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled), this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n constructor(e, t = !0) {\n super(e, \"Sheen\", 120, new vV(), t), this._isEnabled = !1, this.isEnabled = !1, this._linkSheenWithAlbedo = !1, this.linkSheenWithAlbedo = !1, this.intensity = 1, this.color = re.White(), this._texture = null, this.texture = null, this._useRoughnessFromMainTexture = !0, this.useRoughnessFromMainTexture = !0, this._roughness = null, this.roughness = null, this._textureRoughness = null, this.textureRoughness = null, this._albedoScaling = !1, this.albedoScaling = !1, this._internalMarkAllSubMeshesAsTexturesDirty = e._dirtyCallbacks[1];\n }\n isReadyForSubMesh(e, t) {\n return this._isEnabled ? !(e._areTexturesDirty && t.texturesEnabled && (this._texture && xe.SheenTextureEnabled && !this._texture.isReadyOrNotBlocking() || this._textureRoughness && xe.SheenTextureEnabled && !this._textureRoughness.isReadyOrNotBlocking())) : !0;\n }\n prepareDefinesBeforeAttributes(e, t) {\n this._isEnabled ? (e.SHEEN = !0, e.SHEEN_LINKWITHALBEDO = this._linkSheenWithAlbedo, e.SHEEN_ROUGHNESS = this._roughness !== null, e.SHEEN_ALBEDOSCALING = this._albedoScaling, e.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE = this._useRoughnessFromMainTexture, e._areTexturesDirty && t.texturesEnabled && (this._texture && xe.SheenTextureEnabled ? (ci(this._texture, e, \"SHEEN_TEXTURE\"), e.SHEEN_GAMMATEXTURE = this._texture.gammaSpace) : e.SHEEN_TEXTURE = !1, this._textureRoughness && xe.SheenTextureEnabled ? ci(this._textureRoughness, e, \"SHEEN_TEXTURE_ROUGHNESS\") : e.SHEEN_TEXTURE_ROUGHNESS = !1)) : (e.SHEEN = !1, e.SHEEN_TEXTURE = !1, e.SHEEN_TEXTURE_ROUGHNESS = !1, e.SHEEN_LINKWITHALBEDO = !1, e.SHEEN_ROUGHNESS = !1, e.SHEEN_ALBEDOSCALING = !1, e.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE = !1, e.SHEEN_GAMMATEXTURE = !1, e.SHEEN_TEXTUREDIRECTUV = 0, e.SHEEN_TEXTURE_ROUGHNESSDIRECTUV = 0);\n }\n bindForSubMesh(e, t, i, s) {\n var o, l, h, c;\n if (!this._isEnabled)\n return;\n const r = s.materialDefines, n = this._material.isFrozen;\n (!e.useUbo || !n || !e.isSync) && ((this._texture || this._textureRoughness) && xe.SheenTextureEnabled && (e.updateFloat4(\"vSheenInfos\", ((o = this._texture) == null ? void 0 : o.coordinatesIndex) ?? 0, ((l = this._texture) == null ? void 0 : l.level) ?? 0, ((h = this._textureRoughness) == null ? void 0 : h.coordinatesIndex) ?? 0, ((c = this._textureRoughness) == null ? void 0 : c.level) ?? 0), this._texture && pi(this._texture, e, \"sheen\"), this._textureRoughness && !r.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE && pi(this._textureRoughness, e, \"sheenRoughness\")), e.updateFloat4(\"vSheenColor\", this.color.r, this.color.g, this.color.b, this.intensity), this._roughness !== null && e.updateFloat(\"vSheenRoughness\", this._roughness)), t.texturesEnabled && (this._texture && xe.SheenTextureEnabled && e.setTexture(\"sheenSampler\", this._texture), this._textureRoughness && !r.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE && xe.SheenTextureEnabled && e.setTexture(\"sheenRoughnessSampler\", this._textureRoughness));\n }\n hasTexture(e) {\n return this._texture === e || this._textureRoughness === e;\n }\n getActiveTextures(e) {\n this._texture && e.push(this._texture), this._textureRoughness && e.push(this._textureRoughness);\n }\n getAnimatables(e) {\n this._texture && this._texture.animations && this._texture.animations.length > 0 && e.push(this._texture), this._textureRoughness && this._textureRoughness.animations && this._textureRoughness.animations.length > 0 && e.push(this._textureRoughness);\n }\n dispose(e) {\n var t, i;\n e && ((t = this._texture) == null || t.dispose(), (i = this._textureRoughness) == null || i.dispose());\n }\n getClassName() {\n return \"PBRSheenConfiguration\";\n }\n addFallbacks(e, t, i) {\n return e.SHEEN && t.addFallback(i++, \"SHEEN\"), i;\n }\n getSamplers(e) {\n e.push(\"sheenSampler\", \"sheenRoughnessSampler\");\n }\n getUniforms() {\n return {\n ubo: [\n { name: \"vSheenColor\", size: 4, type: \"vec4\" },\n { name: \"vSheenRoughness\", size: 1, type: \"float\" },\n { name: \"vSheenInfos\", size: 4, type: \"vec4\" },\n { name: \"sheenMatrix\", size: 16, type: \"mat4\" },\n { name: \"sheenRoughnessMatrix\", size: 16, type: \"mat4\" }\n ]\n };\n }\n}\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], Na.prototype, \"isEnabled\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], Na.prototype, \"linkSheenWithAlbedo\", void 0);\ny([\n I()\n], Na.prototype, \"intensity\", void 0);\ny([\n bi()\n], Na.prototype, \"color\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], Na.prototype, \"texture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], Na.prototype, \"useRoughnessFromMainTexture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], Na.prototype, \"roughness\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], Na.prototype, \"textureRoughness\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], Na.prototype, \"albedoScaling\", void 0);\nclass TV extends dr {\n constructor() {\n super(...arguments), this.SUBSURFACE = !1, this.SS_REFRACTION = !1, this.SS_REFRACTION_USE_INTENSITY_FROM_THICKNESS = !1, this.SS_TRANSLUCENCY = !1, this.SS_TRANSLUCENCY_USE_INTENSITY_FROM_THICKNESS = !1, this.SS_SCATTERING = !1, this.SS_DISPERSION = !1, this.SS_THICKNESSANDMASK_TEXTURE = !1, this.SS_THICKNESSANDMASK_TEXTUREDIRECTUV = 0, this.SS_HAS_THICKNESS = !1, this.SS_REFRACTIONINTENSITY_TEXTURE = !1, this.SS_REFRACTIONINTENSITY_TEXTUREDIRECTUV = 0, this.SS_TRANSLUCENCYINTENSITY_TEXTURE = !1, this.SS_TRANSLUCENCYINTENSITY_TEXTUREDIRECTUV = 0, this.SS_TRANSLUCENCYCOLOR_TEXTURE = !1, this.SS_TRANSLUCENCYCOLOR_TEXTUREDIRECTUV = 0, this.SS_REFRACTIONMAP_3D = !1, this.SS_REFRACTIONMAP_OPPOSITEZ = !1, this.SS_LODINREFRACTIONALPHA = !1, this.SS_GAMMAREFRACTION = !1, this.SS_RGBDREFRACTION = !1, this.SS_LINEARSPECULARREFRACTION = !1, this.SS_LINKREFRACTIONTOTRANSPARENCY = !1, this.SS_ALBEDOFORREFRACTIONTINT = !1, this.SS_ALBEDOFORTRANSLUCENCYTINT = !1, this.SS_USE_LOCAL_REFRACTIONMAP_CUBIC = !1, this.SS_USE_THICKNESS_AS_DEPTH = !1, this.SS_USE_GLTF_TEXTURES = !1;\n }\n}\nclass wi extends br {\n /**\n * Diffusion profile for subsurface scattering.\n * Useful for better scattering in the skins or foliages.\n */\n get scatteringDiffusionProfile() {\n return this._scene.subSurfaceConfiguration ? this._scene.subSurfaceConfiguration.ssDiffusionProfileColors[this._scatteringDiffusionProfileIndex] : null;\n }\n set scatteringDiffusionProfile(e) {\n this._scene.enableSubSurfaceForPrePass() && e && (this._scatteringDiffusionProfileIndex = this._scene.subSurfaceConfiguration.addDiffusionProfile(e));\n }\n /**\n * Index of refraction of the material's volume.\n * https://en.wikipedia.org/wiki/List_of_refractive_indices\n *\n * This ONLY impacts refraction. If not provided or given a non-valid value,\n * the volume will use the same IOR as the surface.\n */\n get volumeIndexOfRefraction() {\n return this._volumeIndexOfRefraction >= 1 ? this._volumeIndexOfRefraction : this._indexOfRefraction;\n }\n set volumeIndexOfRefraction(e) {\n e >= 1 ? this._volumeIndexOfRefraction = e : this._volumeIndexOfRefraction = -1;\n }\n /** @internal */\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isRefractionEnabled || this._isTranslucencyEnabled || this._isScatteringEnabled), this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n /** @internal */\n _markScenePrePassDirty() {\n this._internalMarkAllSubMeshesAsTexturesDirty(), this._internalMarkScenePrePassDirty();\n }\n constructor(e, t = !0) {\n super(e, \"PBRSubSurface\", 130, new TV(), t), this._isRefractionEnabled = !1, this.isRefractionEnabled = !1, this._isTranslucencyEnabled = !1, this.isTranslucencyEnabled = !1, this._isDispersionEnabled = !1, this.isDispersionEnabled = !1, this._isScatteringEnabled = !1, this.isScatteringEnabled = !1, this._scatteringDiffusionProfileIndex = 0, this.refractionIntensity = 1, this.translucencyIntensity = 1, this.useAlbedoToTintRefraction = !1, this.useAlbedoToTintTranslucency = !1, this._thicknessTexture = null, this.thicknessTexture = null, this._refractionTexture = null, this.refractionTexture = null, this._indexOfRefraction = 1.5, this.indexOfRefraction = 1.5, this._volumeIndexOfRefraction = -1, this._invertRefractionY = !1, this.invertRefractionY = !1, this._linkRefractionWithTransparency = !1, this.linkRefractionWithTransparency = !1, this.minimumThickness = 0, this.maximumThickness = 1, this.useThicknessAsDepth = !1, this.tintColor = re.White(), this.tintColorAtDistance = 1, this.dispersion = 0, this.diffusionDistance = re.White(), this._useMaskFromThicknessTexture = !1, this.useMaskFromThicknessTexture = !1, this._refractionIntensityTexture = null, this.refractionIntensityTexture = null, this._translucencyIntensityTexture = null, this.translucencyIntensityTexture = null, this.translucencyColor = null, this._translucencyColorTexture = null, this.translucencyColorTexture = null, this._useGltfStyleTextures = !0, this.useGltfStyleTextures = !0, this._scene = e.getScene(), this.registerForExtraEvents = !0, this._internalMarkAllSubMeshesAsTexturesDirty = e._dirtyCallbacks[1], this._internalMarkScenePrePassDirty = e._dirtyCallbacks[32];\n }\n isReadyForSubMesh(e, t) {\n if (!this._isRefractionEnabled && !this._isTranslucencyEnabled && !this._isScatteringEnabled)\n return !0;\n if (e._areTexturesDirty && t.texturesEnabled) {\n if (this._thicknessTexture && xe.ThicknessTextureEnabled && !this._thicknessTexture.isReadyOrNotBlocking() || this._translucencyColorTexture && xe.TranslucencyColorTextureEnabled && !this._translucencyColorTexture.isReadyOrNotBlocking())\n return !1;\n const i = this._getRefractionTexture(t);\n if (i && xe.RefractionTextureEnabled && !i.isReadyOrNotBlocking())\n return !1;\n }\n return !0;\n }\n prepareDefinesBeforeAttributes(e, t) {\n if (!this._isRefractionEnabled && !this._isTranslucencyEnabled && !this._isScatteringEnabled) {\n e.SUBSURFACE = !1, e.SS_DISPERSION = !1, e.SS_TRANSLUCENCY = !1, e.SS_SCATTERING = !1, e.SS_REFRACTION = !1, e.SS_REFRACTION_USE_INTENSITY_FROM_THICKNESS = !1, e.SS_TRANSLUCENCY_USE_INTENSITY_FROM_THICKNESS = !1, e.SS_THICKNESSANDMASK_TEXTURE = !1, e.SS_THICKNESSANDMASK_TEXTUREDIRECTUV = 0, e.SS_HAS_THICKNESS = !1, e.SS_REFRACTIONINTENSITY_TEXTURE = !1, e.SS_REFRACTIONINTENSITY_TEXTUREDIRECTUV = 0, e.SS_TRANSLUCENCYINTENSITY_TEXTURE = !1, e.SS_TRANSLUCENCYINTENSITY_TEXTUREDIRECTUV = 0, e.SS_REFRACTIONMAP_3D = !1, e.SS_REFRACTIONMAP_OPPOSITEZ = !1, e.SS_LODINREFRACTIONALPHA = !1, e.SS_GAMMAREFRACTION = !1, e.SS_RGBDREFRACTION = !1, e.SS_LINEARSPECULARREFRACTION = !1, e.SS_LINKREFRACTIONTOTRANSPARENCY = !1, e.SS_ALBEDOFORREFRACTIONTINT = !1, e.SS_ALBEDOFORTRANSLUCENCYTINT = !1, e.SS_USE_LOCAL_REFRACTIONMAP_CUBIC = !1, e.SS_USE_THICKNESS_AS_DEPTH = !1, e.SS_USE_GLTF_TEXTURES = !1, e.SS_TRANSLUCENCYCOLOR_TEXTURE = !1, e.SS_TRANSLUCENCYCOLOR_TEXTUREDIRECTUV = 0;\n return;\n }\n if (e._areTexturesDirty) {\n if (e.SUBSURFACE = !0, e.SS_DISPERSION = this._isDispersionEnabled, e.SS_TRANSLUCENCY = this._isTranslucencyEnabled, e.SS_TRANSLUCENCY_USE_INTENSITY_FROM_THICKNESS = !1, e.SS_SCATTERING = this._isScatteringEnabled, e.SS_THICKNESSANDMASK_TEXTURE = !1, e.SS_REFRACTIONINTENSITY_TEXTURE = !1, e.SS_TRANSLUCENCYINTENSITY_TEXTURE = !1, e.SS_HAS_THICKNESS = !1, e.SS_USE_GLTF_TEXTURES = !1, e.SS_REFRACTION = !1, e.SS_REFRACTION_USE_INTENSITY_FROM_THICKNESS = !1, e.SS_REFRACTIONMAP_3D = !1, e.SS_GAMMAREFRACTION = !1, e.SS_RGBDREFRACTION = !1, e.SS_LINEARSPECULARREFRACTION = !1, e.SS_REFRACTIONMAP_OPPOSITEZ = !1, e.SS_LODINREFRACTIONALPHA = !1, e.SS_LINKREFRACTIONTOTRANSPARENCY = !1, e.SS_ALBEDOFORREFRACTIONTINT = !1, e.SS_ALBEDOFORTRANSLUCENCYTINT = !1, e.SS_USE_LOCAL_REFRACTIONMAP_CUBIC = !1, e.SS_USE_THICKNESS_AS_DEPTH = !1, e.SS_TRANSLUCENCYCOLOR_TEXTURE = !1, e._areTexturesDirty && t.texturesEnabled && (this._thicknessTexture && xe.ThicknessTextureEnabled && ci(this._thicknessTexture, e, \"SS_THICKNESSANDMASK_TEXTURE\"), this._refractionIntensityTexture && xe.RefractionIntensityTextureEnabled && ci(this._refractionIntensityTexture, e, \"SS_REFRACTIONINTENSITY_TEXTURE\"), this._translucencyIntensityTexture && xe.TranslucencyIntensityTextureEnabled && ci(this._translucencyIntensityTexture, e, \"SS_TRANSLUCENCYINTENSITY_TEXTURE\"), this._translucencyColorTexture && xe.TranslucencyColorTextureEnabled && ci(this._translucencyColorTexture, e, \"SS_TRANSLUCENCYCOLOR_TEXTURE\")), e.SS_HAS_THICKNESS = this.maximumThickness - this.minimumThickness !== 0, e.SS_USE_GLTF_TEXTURES = this._useGltfStyleTextures, e.SS_REFRACTION_USE_INTENSITY_FROM_THICKNESS = this._useMaskFromThicknessTexture && !this._refractionIntensityTexture, e.SS_TRANSLUCENCY_USE_INTENSITY_FROM_THICKNESS = this._useMaskFromThicknessTexture && !this._translucencyIntensityTexture, this._isRefractionEnabled && t.texturesEnabled) {\n const i = this._getRefractionTexture(t);\n i && xe.RefractionTextureEnabled && (e.SS_REFRACTION = !0, e.SS_REFRACTIONMAP_3D = i.isCube, e.SS_GAMMAREFRACTION = i.gammaSpace, e.SS_RGBDREFRACTION = i.isRGBD, e.SS_LINEARSPECULARREFRACTION = i.linearSpecularLOD, e.SS_REFRACTIONMAP_OPPOSITEZ = this._scene.useRightHandedSystem && i.isCube ? !i.invertZ : i.invertZ, e.SS_LODINREFRACTIONALPHA = i.lodLevelInAlpha, e.SS_LINKREFRACTIONTOTRANSPARENCY = this._linkRefractionWithTransparency, e.SS_ALBEDOFORREFRACTIONTINT = this.useAlbedoToTintRefraction, e.SS_USE_LOCAL_REFRACTIONMAP_CUBIC = i.isCube && i.boundingBoxSize, e.SS_USE_THICKNESS_AS_DEPTH = this.useThicknessAsDepth);\n }\n this._isTranslucencyEnabled && (e.SS_ALBEDOFORTRANSLUCENCYTINT = this.useAlbedoToTintTranslucency);\n }\n }\n /**\n * Binds the material data (this function is called even if mustRebind() returns false)\n * @param uniformBuffer defines the Uniform buffer to fill in.\n * @param scene defines the scene the material belongs to.\n * @param engine defines the engine the material belongs to.\n * @param subMesh the submesh to bind data for\n */\n hardBindForSubMesh(e, t, i, s) {\n if (!this._isRefractionEnabled && !this._isTranslucencyEnabled && !this._isScatteringEnabled)\n return;\n s.getRenderingMesh().getWorldMatrix().decompose(w.Vector3[0]);\n const r = Math.max(Math.abs(w.Vector3[0].x), Math.abs(w.Vector3[0].y), Math.abs(w.Vector3[0].z));\n e.updateFloat2(\"vThicknessParam\", this.minimumThickness * r, (this.maximumThickness - this.minimumThickness) * r);\n }\n bindForSubMesh(e, t, i, s) {\n if (!this._isRefractionEnabled && !this._isTranslucencyEnabled && !this._isScatteringEnabled)\n return;\n const r = s.materialDefines, n = this._material.isFrozen, o = this._material.realTimeFiltering, l = r.LODBASEDMICROSFURACE, h = this._getRefractionTexture(t);\n if (!e.useUbo || !n || !e.isSync) {\n if (this._thicknessTexture && xe.ThicknessTextureEnabled && (e.updateFloat2(\"vThicknessInfos\", this._thicknessTexture.coordinatesIndex, this._thicknessTexture.level), pi(this._thicknessTexture, e, \"thickness\")), this._refractionIntensityTexture && xe.RefractionIntensityTextureEnabled && r.SS_REFRACTIONINTENSITY_TEXTURE && (e.updateFloat2(\"vRefractionIntensityInfos\", this._refractionIntensityTexture.coordinatesIndex, this._refractionIntensityTexture.level), pi(this._refractionIntensityTexture, e, \"refractionIntensity\")), this._translucencyColorTexture && xe.TranslucencyColorTextureEnabled && r.SS_TRANSLUCENCYCOLOR_TEXTURE && (e.updateFloat2(\"vTranslucencyColorInfos\", this._translucencyColorTexture.coordinatesIndex, this._translucencyColorTexture.level), pi(this._translucencyColorTexture, e, \"translucencyColor\")), h && xe.RefractionTextureEnabled) {\n e.updateMatrix(\"refractionMatrix\", h.getRefractionTextureMatrix());\n let c = 1;\n h.isCube || h.depth && (c = h.depth);\n const u = h.getSize().width, d = this.volumeIndexOfRefraction;\n if (e.updateFloat4(\"vRefractionInfos\", h.level, 1 / d, c, this._invertRefractionY ? -1 : 1), e.updateFloat4(\"vRefractionMicrosurfaceInfos\", u, h.lodGenerationScale, h.lodGenerationOffset, 1 / this.indexOfRefraction), o && e.updateFloat2(\"vRefractionFilteringInfo\", u, Re.Log2(u)), h.boundingBoxSize) {\n const f = h;\n e.updateVector3(\"vRefractionPosition\", f.boundingBoxPosition), e.updateVector3(\"vRefractionSize\", f.boundingBoxSize);\n }\n }\n this._isScatteringEnabled && e.updateFloat(\"scatteringDiffusionProfile\", this._scatteringDiffusionProfileIndex), e.updateColor3(\"vDiffusionDistance\", this.diffusionDistance), e.updateFloat4(\"vTintColor\", this.tintColor.r, this.tintColor.g, this.tintColor.b, Math.max(1e-5, this.tintColorAtDistance)), e.updateColor4(\"vTranslucencyColor\", this.translucencyColor ?? this.tintColor, 0), e.updateFloat3(\"vSubSurfaceIntensity\", this.refractionIntensity, this.translucencyIntensity, 0), e.updateFloat(\"dispersion\", this.dispersion);\n }\n t.texturesEnabled && (this._thicknessTexture && xe.ThicknessTextureEnabled && e.setTexture(\"thicknessSampler\", this._thicknessTexture), this._refractionIntensityTexture && xe.RefractionIntensityTextureEnabled && r.SS_REFRACTIONINTENSITY_TEXTURE && e.setTexture(\"refractionIntensitySampler\", this._refractionIntensityTexture), this._translucencyIntensityTexture && xe.TranslucencyIntensityTextureEnabled && r.SS_TRANSLUCENCYINTENSITY_TEXTURE && e.setTexture(\"translucencyIntensitySampler\", this._translucencyIntensityTexture), this._translucencyColorTexture && xe.TranslucencyColorTextureEnabled && r.SS_TRANSLUCENCYCOLOR_TEXTURE && e.setTexture(\"translucencyColorSampler\", this._translucencyColorTexture), h && xe.RefractionTextureEnabled && (l ? e.setTexture(\"refractionSampler\", h) : (e.setTexture(\"refractionSampler\", h._lodTextureMid || h), e.setTexture(\"refractionSamplerLow\", h._lodTextureLow || h), e.setTexture(\"refractionSamplerHigh\", h._lodTextureHigh || h))));\n }\n /**\n * Returns the texture used for refraction or null if none is used.\n * @param scene defines the scene the material belongs to.\n * @returns - Refraction texture if present. If no refraction texture and refraction\n * is linked with transparency, returns environment texture. Otherwise, returns null.\n */\n _getRefractionTexture(e) {\n return this._refractionTexture ? this._refractionTexture : this._isRefractionEnabled ? e.environmentTexture : null;\n }\n /**\n * Returns true if alpha blending should be disabled.\n */\n get disableAlphaBlending() {\n return this._isRefractionEnabled && this._linkRefractionWithTransparency;\n }\n /**\n * Fills the list of render target textures.\n * @param renderTargets the list of render targets to update\n */\n fillRenderTargetTextures(e) {\n xe.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget && e.push(this._refractionTexture);\n }\n hasTexture(e) {\n return this._thicknessTexture === e || this._refractionTexture === e || this._refractionIntensityTexture === e || this._translucencyIntensityTexture === e || this._translucencyColorTexture === e;\n }\n hasRenderTargetTextures() {\n return !!(xe.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget);\n }\n getActiveTextures(e) {\n this._thicknessTexture && e.push(this._thicknessTexture), this._refractionTexture && e.push(this._refractionTexture), this._translucencyColorTexture && e.push(this._translucencyColorTexture);\n }\n getAnimatables(e) {\n this._thicknessTexture && this._thicknessTexture.animations && this._thicknessTexture.animations.length > 0 && e.push(this._thicknessTexture), this._refractionTexture && this._refractionTexture.animations && this._refractionTexture.animations.length > 0 && e.push(this._refractionTexture), this._translucencyColorTexture && this._translucencyColorTexture.animations && this._translucencyColorTexture.animations.length > 0 && e.push(this._translucencyColorTexture);\n }\n dispose(e) {\n e && (this._thicknessTexture && this._thicknessTexture.dispose(), this._refractionTexture && this._refractionTexture.dispose(), this._translucencyColorTexture && this._translucencyColorTexture.dispose());\n }\n getClassName() {\n return \"PBRSubSurfaceConfiguration\";\n }\n addFallbacks(e, t, i) {\n return e.SS_SCATTERING && t.addFallback(i++, \"SS_SCATTERING\"), e.SS_TRANSLUCENCY && t.addFallback(i++, \"SS_TRANSLUCENCY\"), i;\n }\n getSamplers(e) {\n e.push(\"thicknessSampler\", \"refractionIntensitySampler\", \"translucencyIntensitySampler\", \"refractionSampler\", \"refractionSamplerLow\", \"refractionSamplerHigh\", \"translucencyColorSampler\");\n }\n getUniforms() {\n return {\n ubo: [\n { name: \"vRefractionMicrosurfaceInfos\", size: 4, type: \"vec4\" },\n { name: \"vRefractionFilteringInfo\", size: 2, type: \"vec2\" },\n { name: \"vTranslucencyIntensityInfos\", size: 2, type: \"vec2\" },\n { name: \"vRefractionInfos\", size: 4, type: \"vec4\" },\n { name: \"refractionMatrix\", size: 16, type: \"mat4\" },\n { name: \"vThicknessInfos\", size: 2, type: \"vec2\" },\n { name: \"vRefractionIntensityInfos\", size: 2, type: \"vec2\" },\n { name: \"thicknessMatrix\", size: 16, type: \"mat4\" },\n { name: \"refractionIntensityMatrix\", size: 16, type: \"mat4\" },\n { name: \"translucencyIntensityMatrix\", size: 16, type: \"mat4\" },\n { name: \"vThicknessParam\", size: 2, type: \"vec2\" },\n { name: \"vDiffusionDistance\", size: 3, type: \"vec3\" },\n { name: \"vTintColor\", size: 4, type: \"vec4\" },\n { name: \"vSubSurfaceIntensity\", size: 3, type: \"vec3\" },\n { name: \"vRefractionPosition\", size: 3, type: \"vec3\" },\n { name: \"vRefractionSize\", size: 3, type: \"vec3\" },\n { name: \"scatteringDiffusionProfile\", size: 1, type: \"float\" },\n { name: \"dispersion\", size: 1, type: \"float\" },\n { name: \"vTranslucencyColor\", size: 4, type: \"vec4\" },\n { name: \"vTranslucencyColorInfos\", size: 2, type: \"vec2\" },\n { name: \"translucencyColorMatrix\", size: 16, type: \"mat4\" }\n ]\n };\n }\n}\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wi.prototype, \"isRefractionEnabled\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wi.prototype, \"isTranslucencyEnabled\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wi.prototype, \"isDispersionEnabled\", void 0);\ny([\n I(),\n ce(\"_markScenePrePassDirty\")\n], wi.prototype, \"isScatteringEnabled\", void 0);\ny([\n I()\n], wi.prototype, \"_scatteringDiffusionProfileIndex\", void 0);\ny([\n I()\n], wi.prototype, \"refractionIntensity\", void 0);\ny([\n I()\n], wi.prototype, \"translucencyIntensity\", void 0);\ny([\n I()\n], wi.prototype, \"useAlbedoToTintRefraction\", void 0);\ny([\n I()\n], wi.prototype, \"useAlbedoToTintTranslucency\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wi.prototype, \"thicknessTexture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wi.prototype, \"refractionTexture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wi.prototype, \"indexOfRefraction\", void 0);\ny([\n I()\n], wi.prototype, \"_volumeIndexOfRefraction\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wi.prototype, \"volumeIndexOfRefraction\", null);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wi.prototype, \"invertRefractionY\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wi.prototype, \"linkRefractionWithTransparency\", void 0);\ny([\n I()\n], wi.prototype, \"minimumThickness\", void 0);\ny([\n I()\n], wi.prototype, \"maximumThickness\", void 0);\ny([\n I()\n], wi.prototype, \"useThicknessAsDepth\", void 0);\ny([\n bi()\n], wi.prototype, \"tintColor\", void 0);\ny([\n I()\n], wi.prototype, \"tintColorAtDistance\", void 0);\ny([\n I()\n], wi.prototype, \"dispersion\", void 0);\ny([\n bi()\n], wi.prototype, \"diffusionDistance\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wi.prototype, \"useMaskFromThicknessTexture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wi.prototype, \"refractionIntensityTexture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wi.prototype, \"translucencyIntensityTexture\", void 0);\ny([\n bi()\n], wi.prototype, \"translucencyColor\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wi.prototype, \"translucencyColorTexture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wi.prototype, \"useGltfStyleTextures\", void 0);\nconst oh = { effect: null, subMesh: null };\nclass mE extends dr {\n /**\n * Initializes the PBR Material defines.\n * @param externalProperties The external properties\n */\n constructor(e) {\n super(e), this.PBR = !0, this.NUM_SAMPLES = \"0\", this.REALTIME_FILTERING = !1, this.MAINUV1 = !1, this.MAINUV2 = !1, this.MAINUV3 = !1, this.MAINUV4 = !1, this.MAINUV5 = !1, this.MAINUV6 = !1, this.UV1 = !1, this.UV2 = !1, this.UV3 = !1, this.UV4 = !1, this.UV5 = !1, this.UV6 = !1, this.ALBEDO = !1, this.GAMMAALBEDO = !1, this.ALBEDODIRECTUV = 0, this.VERTEXCOLOR = !1, this.BAKED_VERTEX_ANIMATION_TEXTURE = !1, this.AMBIENT = !1, this.AMBIENTDIRECTUV = 0, this.AMBIENTINGRAYSCALE = !1, this.OPACITY = !1, this.VERTEXALPHA = !1, this.OPACITYDIRECTUV = 0, this.OPACITYRGB = !1, this.ALPHATEST = !1, this.DEPTHPREPASS = !1, this.ALPHABLEND = !1, this.ALPHAFROMALBEDO = !1, this.ALPHATESTVALUE = \"0.5\", this.SPECULAROVERALPHA = !1, this.RADIANCEOVERALPHA = !1, this.ALPHAFRESNEL = !1, this.LINEARALPHAFRESNEL = !1, this.PREMULTIPLYALPHA = !1, this.EMISSIVE = !1, this.EMISSIVEDIRECTUV = 0, this.GAMMAEMISSIVE = !1, this.REFLECTIVITY = !1, this.REFLECTIVITY_GAMMA = !1, this.REFLECTIVITYDIRECTUV = 0, this.SPECULARTERM = !1, this.MICROSURFACEFROMREFLECTIVITYMAP = !1, this.MICROSURFACEAUTOMATIC = !1, this.LODBASEDMICROSFURACE = !1, this.MICROSURFACEMAP = !1, this.MICROSURFACEMAPDIRECTUV = 0, this.METALLICWORKFLOW = !1, this.ROUGHNESSSTOREINMETALMAPALPHA = !1, this.ROUGHNESSSTOREINMETALMAPGREEN = !1, this.METALLNESSSTOREINMETALMAPBLUE = !1, this.AOSTOREINMETALMAPRED = !1, this.METALLIC_REFLECTANCE = !1, this.METALLIC_REFLECTANCE_GAMMA = !1, this.METALLIC_REFLECTANCEDIRECTUV = 0, this.METALLIC_REFLECTANCE_USE_ALPHA_ONLY = !1, this.REFLECTANCE = !1, this.REFLECTANCE_GAMMA = !1, this.REFLECTANCEDIRECTUV = 0, this.ENVIRONMENTBRDF = !1, this.ENVIRONMENTBRDF_RGBD = !1, this.NORMAL = !1, this.TANGENT = !1, this.BUMP = !1, this.BUMPDIRECTUV = 0, this.OBJECTSPACE_NORMALMAP = !1, this.PARALLAX = !1, this.PARALLAX_RHS = !1, this.PARALLAXOCCLUSION = !1, this.NORMALXYSCALE = !0, this.LIGHTMAP = !1, this.LIGHTMAPDIRECTUV = 0, this.USELIGHTMAPASSHADOWMAP = !1, this.GAMMALIGHTMAP = !1, this.RGBDLIGHTMAP = !1, this.REFLECTION = !1, this.REFLECTIONMAP_3D = !1, this.REFLECTIONMAP_SPHERICAL = !1, this.REFLECTIONMAP_PLANAR = !1, this.REFLECTIONMAP_CUBIC = !1, this.USE_LOCAL_REFLECTIONMAP_CUBIC = !1, this.REFLECTIONMAP_PROJECTION = !1, this.REFLECTIONMAP_SKYBOX = !1, this.REFLECTIONMAP_EXPLICIT = !1, this.REFLECTIONMAP_EQUIRECTANGULAR = !1, this.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1, this.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1, this.INVERTCUBICMAP = !1, this.USESPHERICALFROMREFLECTIONMAP = !1, this.USEIRRADIANCEMAP = !1, this.USESPHERICALINVERTEX = !1, this.REFLECTIONMAP_OPPOSITEZ = !1, this.LODINREFLECTIONALPHA = !1, this.GAMMAREFLECTION = !1, this.RGBDREFLECTION = !1, this.LINEARSPECULARREFLECTION = !1, this.RADIANCEOCCLUSION = !1, this.HORIZONOCCLUSION = !1, this.INSTANCES = !1, this.THIN_INSTANCES = !1, this.INSTANCESCOLOR = !1, this.PREPASS = !1, this.PREPASS_IRRADIANCE = !1, this.PREPASS_IRRADIANCE_INDEX = -1, this.PREPASS_ALBEDO_SQRT = !1, this.PREPASS_ALBEDO_SQRT_INDEX = -1, this.PREPASS_DEPTH = !1, this.PREPASS_DEPTH_INDEX = -1, this.PREPASS_NORMAL = !1, this.PREPASS_NORMAL_INDEX = -1, this.PREPASS_NORMAL_WORLDSPACE = !1, this.PREPASS_POSITION = !1, this.PREPASS_POSITION_INDEX = -1, this.PREPASS_VELOCITY = !1, this.PREPASS_VELOCITY_INDEX = -1, this.PREPASS_REFLECTIVITY = !1, this.PREPASS_REFLECTIVITY_INDEX = -1, this.SCENE_MRT_COUNT = 0, this.NUM_BONE_INFLUENCERS = 0, this.BonesPerMesh = 0, this.BONETEXTURE = !1, this.BONES_VELOCITY_ENABLED = !1, this.NONUNIFORMSCALING = !1, this.MORPHTARGETS = !1, this.MORPHTARGETS_NORMAL = !1, this.MORPHTARGETS_TANGENT = !1, this.MORPHTARGETS_UV = !1, this.NUM_MORPH_INFLUENCERS = 0, this.MORPHTARGETS_TEXTURE = !1, this.IMAGEPROCESSING = !1, this.VIGNETTE = !1, this.VIGNETTEBLENDMODEMULTIPLY = !1, this.VIGNETTEBLENDMODEOPAQUE = !1, this.TONEMAPPING = 0, this.CONTRAST = !1, this.COLORCURVES = !1, this.COLORGRADING = !1, this.COLORGRADING3D = !1, this.SAMPLER3DGREENDEPTH = !1, this.SAMPLER3DBGRMAP = !1, this.DITHER = !1, this.IMAGEPROCESSINGPOSTPROCESS = !1, this.SKIPFINALCOLORCLAMP = !1, this.EXPOSURE = !1, this.MULTIVIEW = !1, this.ORDER_INDEPENDENT_TRANSPARENCY = !1, this.ORDER_INDEPENDENT_TRANSPARENCY_16BITS = !1, this.USEPHYSICALLIGHTFALLOFF = !1, this.USEGLTFLIGHTFALLOFF = !1, this.TWOSIDEDLIGHTING = !1, this.SHADOWFLOAT = !1, this.CLIPPLANE = !1, this.CLIPPLANE2 = !1, this.CLIPPLANE3 = !1, this.CLIPPLANE4 = !1, this.CLIPPLANE5 = !1, this.CLIPPLANE6 = !1, this.POINTSIZE = !1, this.FOG = !1, this.LOGARITHMICDEPTH = !1, this.CAMERA_ORTHOGRAPHIC = !1, this.CAMERA_PERSPECTIVE = !1, this.FORCENORMALFORWARD = !1, this.SPECULARAA = !1, this.UNLIT = !1, this.DECAL_AFTER_DETAIL = !1, this.DEBUGMODE = 0, this.rebuild();\n }\n /**\n * Resets the PBR Material defines.\n */\n reset() {\n super.reset(), this.ALPHATESTVALUE = \"0.5\", this.PBR = !0, this.NORMALXYSCALE = !0;\n }\n}\nclass Ut extends Sc {\n /**\n * Enables realtime filtering on the texture.\n */\n get realTimeFiltering() {\n return this._realTimeFiltering;\n }\n set realTimeFiltering(e) {\n this._realTimeFiltering = e, this.markAsDirty(1);\n }\n /**\n * Quality switch for realtime filtering\n */\n get realTimeFilteringQuality() {\n return this._realTimeFilteringQuality;\n }\n set realTimeFilteringQuality(e) {\n this._realTimeFilteringQuality = e, this.markAsDirty(1);\n }\n /**\n * Can this material render to several textures at once\n */\n get canRenderToMRT() {\n return !0;\n }\n /**\n * Attaches a new image processing configuration to the PBR Material.\n * @param configuration\n */\n _attachImageProcessingConfiguration(e) {\n e !== this._imageProcessingConfiguration && (this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), e ? this._imageProcessingConfiguration = e : this._imageProcessingConfiguration = this.getScene().imageProcessingConfiguration, this._imageProcessingConfiguration && (this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(() => {\n this._markAllSubMeshesAsImageProcessingDirty();\n })));\n }\n /**\n * Instantiates a new PBRMaterial instance.\n *\n * @param name The material name\n * @param scene The scene the material will be use in.\n */\n constructor(e, t) {\n super(e, t), this._directIntensity = 1, this._emissiveIntensity = 1, this._environmentIntensity = 1, this._specularIntensity = 1, this._lightingInfos = new Ne(this._directIntensity, this._emissiveIntensity, this._environmentIntensity, this._specularIntensity), this._disableBumpMap = !1, this._albedoTexture = null, this._ambientTexture = null, this._ambientTextureStrength = 1, this._ambientTextureImpactOnAnalyticalLights = Ut.DEFAULT_AO_ON_ANALYTICAL_LIGHTS, this._opacityTexture = null, this._reflectionTexture = null, this._emissiveTexture = null, this._reflectivityTexture = null, this._metallicTexture = null, this._metallic = null, this._roughness = null, this._metallicF0Factor = 1, this._metallicReflectanceColor = re.White(), this._useOnlyMetallicFromMetallicReflectanceTexture = !1, this._metallicReflectanceTexture = null, this._reflectanceTexture = null, this._microSurfaceTexture = null, this._bumpTexture = null, this._lightmapTexture = null, this._ambientColor = new re(0, 0, 0), this._albedoColor = new re(1, 1, 1), this._reflectivityColor = new re(1, 1, 1), this._reflectionColor = new re(1, 1, 1), this._emissiveColor = new re(0, 0, 0), this._microSurface = 0.9, this._useLightmapAsShadowmap = !1, this._useHorizonOcclusion = !0, this._useRadianceOcclusion = !0, this._useAlphaFromAlbedoTexture = !1, this._useSpecularOverAlpha = !0, this._useMicroSurfaceFromReflectivityMapAlpha = !1, this._useRoughnessFromMetallicTextureAlpha = !0, this._useRoughnessFromMetallicTextureGreen = !1, this._useMetallnessFromMetallicTextureBlue = !1, this._useAmbientOcclusionFromMetallicTextureRed = !1, this._useAmbientInGrayScale = !1, this._useAutoMicroSurfaceFromReflectivityMap = !1, this._lightFalloff = Ut.LIGHTFALLOFF_PHYSICAL, this._useRadianceOverAlpha = !0, this._useObjectSpaceNormalMap = !1, this._useParallax = !1, this._useParallaxOcclusion = !1, this._parallaxScaleBias = 0.05, this._disableLighting = !1, this._maxSimultaneousLights = 4, this._invertNormalMapX = !1, this._invertNormalMapY = !1, this._twoSidedLighting = !1, this._alphaCutOff = 0.4, this._forceAlphaTest = !1, this._useAlphaFresnel = !1, this._useLinearAlphaFresnel = !1, this._environmentBRDFTexture = null, this._forceIrradianceInFragment = !1, this._realTimeFiltering = !1, this._realTimeFilteringQuality = 8, this._forceNormalForward = !1, this._enableSpecularAntiAliasing = !1, this._imageProcessingObserver = null, this._renderTargets = new fs(16), this._globalAmbientColor = new re(0, 0, 0), this._unlit = !1, this._applyDecalMapAfterDetailMap = !1, this._debugMode = 0, this.debugMode = 0, this.debugLimit = -1, this.debugFactor = 1, this._cacheHasRenderTargetTextures = !1, this.brdf = new ur(this), this.clearCoat = new ws(this), this.iridescence = new Sr(this), this.anisotropy = new Cc(this), this.sheen = new Na(this), this.subSurface = new wi(this), this.detailMap = new sl(this), this._attachImageProcessingConfiguration(null), this.getRenderTargetTextures = () => (this._renderTargets.reset(), xe.ReflectionTextureEnabled && this._reflectionTexture && this._reflectionTexture.isRenderTarget && this._renderTargets.push(this._reflectionTexture), this._eventInfo.renderTargets = this._renderTargets, this._callbackPluginEventFillRenderTargetTextures(this._eventInfo), this._renderTargets), this._environmentBRDFTexture = q_(this.getScene()), this.prePassConfiguration = new Up();\n }\n /**\n * Gets a boolean indicating that current material needs to register RTT\n */\n get hasRenderTargetTextures() {\n return xe.ReflectionTextureEnabled && this._reflectionTexture && this._reflectionTexture.isRenderTarget ? !0 : this._cacheHasRenderTargetTextures;\n }\n /**\n * Can this material render to prepass\n */\n get isPrePassCapable() {\n return !this.disableDepthWrite;\n }\n /**\n * @returns the name of the material class.\n */\n getClassName() {\n return \"PBRBaseMaterial\";\n }\n /**\n * Returns true if alpha blending should be disabled.\n */\n get _disableAlphaBlending() {\n var e;\n return this._transparencyMode === Ut.PBRMATERIAL_OPAQUE || this._transparencyMode === Ut.PBRMATERIAL_ALPHATEST || ((e = this.subSurface) == null ? void 0 : e.disableAlphaBlending);\n }\n /**\n * @returns whether or not this material should be rendered in alpha blend mode.\n */\n needAlphaBlending() {\n return this._disableAlphaBlending ? !1 : this.alpha < 1 || this._opacityTexture != null || this._shouldUseAlphaFromAlbedoTexture();\n }\n /**\n * @returns whether or not this material should be rendered in alpha test mode.\n */\n needAlphaTesting() {\n var e;\n return this._forceAlphaTest ? !0 : (e = this.subSurface) != null && e.disableAlphaBlending ? !1 : this._hasAlphaChannel() && (this._transparencyMode == null || this._transparencyMode === Ut.PBRMATERIAL_ALPHATEST);\n }\n /**\n * @returns whether or not the alpha value of the albedo texture should be used for alpha blending.\n */\n _shouldUseAlphaFromAlbedoTexture() {\n return this._albedoTexture != null && this._albedoTexture.hasAlpha && this._useAlphaFromAlbedoTexture && this._transparencyMode !== Ut.PBRMATERIAL_OPAQUE;\n }\n /**\n * @returns whether or not there is a usable alpha channel for transparency.\n */\n _hasAlphaChannel() {\n return this._albedoTexture != null && this._albedoTexture.hasAlpha || this._opacityTexture != null;\n }\n /**\n * @returns the texture used for the alpha test.\n */\n getAlphaTestTexture() {\n return this._albedoTexture;\n }\n /**\n * Specifies that the submesh is ready to be used.\n * @param mesh - BJS mesh.\n * @param subMesh - A submesh of the BJS mesh. Used to check if it is ready.\n * @param useInstances - Specifies that instances should be used.\n * @returns - boolean indicating that the submesh is ready or not.\n */\n isReadyForSubMesh(e, t, i) {\n var d;\n this._uniformBufferLayoutBuilt || this.buildUniformLayout();\n const s = t._drawWrapper;\n if (s.effect && this.isFrozen && s._wasPreviouslyReady && s._wasPreviouslyUsingInstances === i)\n return !0;\n t.materialDefines || (this._callbackPluginEventGeneric(4, this._eventInfo), t.materialDefines = new mE(this._eventInfo.defineNames));\n const r = t.materialDefines;\n if (this._isReadyForSubMesh(t))\n return !0;\n const n = this.getScene(), o = n.getEngine();\n if (r._areTexturesDirty && (this._eventInfo.hasRenderTargetTextures = !1, this._callbackPluginEventHasRenderTargetTextures(this._eventInfo), this._cacheHasRenderTargetTextures = this._eventInfo.hasRenderTargetTextures, n.texturesEnabled)) {\n if (this._albedoTexture && xe.DiffuseTextureEnabled && !this._albedoTexture.isReadyOrNotBlocking() || this._ambientTexture && xe.AmbientTextureEnabled && !this._ambientTexture.isReadyOrNotBlocking() || this._opacityTexture && xe.OpacityTextureEnabled && !this._opacityTexture.isReadyOrNotBlocking())\n return !1;\n const f = this._getReflectionTexture();\n if (f && xe.ReflectionTextureEnabled) {\n if (!f.isReadyOrNotBlocking())\n return !1;\n if (f.irradianceTexture) {\n if (!f.irradianceTexture.isReadyOrNotBlocking())\n return !1;\n } else if (!f.sphericalPolynomial && ((d = f.getInternalTexture()) != null && d._sphericalPolynomialPromise))\n return !1;\n }\n if (this._lightmapTexture && xe.LightmapTextureEnabled && !this._lightmapTexture.isReadyOrNotBlocking() || this._emissiveTexture && xe.EmissiveTextureEnabled && !this._emissiveTexture.isReadyOrNotBlocking())\n return !1;\n if (xe.SpecularTextureEnabled) {\n if (this._metallicTexture) {\n if (!this._metallicTexture.isReadyOrNotBlocking())\n return !1;\n } else if (this._reflectivityTexture && !this._reflectivityTexture.isReadyOrNotBlocking())\n return !1;\n if (this._metallicReflectanceTexture && !this._metallicReflectanceTexture.isReadyOrNotBlocking() || this._reflectanceTexture && !this._reflectanceTexture.isReadyOrNotBlocking() || this._microSurfaceTexture && !this._microSurfaceTexture.isReadyOrNotBlocking())\n return !1;\n }\n if (o.getCaps().standardDerivatives && this._bumpTexture && xe.BumpTextureEnabled && !this._disableBumpMap && !this._bumpTexture.isReady() || this._environmentBRDFTexture && xe.ReflectionTextureEnabled && !this._environmentBRDFTexture.isReady())\n return !1;\n }\n if (this._eventInfo.isReadyForSubMesh = !0, this._eventInfo.defines = r, this._eventInfo.subMesh = t, this._callbackPluginEventIsReadyForSubMesh(this._eventInfo), !this._eventInfo.isReadyForSubMesh || r._areImageProcessingDirty && this._imageProcessingConfiguration && !this._imageProcessingConfiguration.isReady())\n return !1;\n !o.getCaps().standardDerivatives && !e.isVerticesDataPresent(R.NormalKind) && (e.createNormals(!0), L.Warn(\"PBRMaterial: Normals have been created for the mesh: \" + e.name));\n const l = t.effect, h = r._areLightsDisposed;\n let c = this._prepareEffect(e, r, this.onCompiled, this.onError, i, null, t.getRenderingMesh().hasThinInstances), u = !1;\n if (c)\n if (this._onEffectCreatedObservable && (oh.effect = c, oh.subMesh = t, this._onEffectCreatedObservable.notifyObservers(oh)), this.allowShaderHotSwapping && l && !c.isReady()) {\n if (c = l, r.markAsUnprocessed(), u = this.isFrozen, h)\n return r._areLightsDisposed = !0, !1;\n } else\n n.resetCachedMaterial(), t.setEffect(c, r, this._materialContext);\n return !t.effect || !t.effect.isReady() ? !1 : (r._renderId = n.getRenderId(), s._wasPreviouslyReady = !u, s._wasPreviouslyUsingInstances = !!i, this._checkScenePerformancePriority(), !0);\n }\n /**\n * Specifies if the material uses metallic roughness workflow.\n * @returns boolean specifying if the material uses metallic roughness workflow.\n */\n isMetallicWorkflow() {\n return !!(this._metallic != null || this._roughness != null || this._metallicTexture);\n }\n _prepareEffect(e, t, i = null, s = null, r = null, n = null, o) {\n if (this._prepareDefines(e, t, r, n, o), !t.isDirty)\n return null;\n t.markAsProcessed();\n const h = this.getScene().getEngine(), c = new Vl();\n let u = 0;\n t.USESPHERICALINVERTEX && c.addFallback(u++, \"USESPHERICALINVERTEX\"), t.FOG && c.addFallback(u, \"FOG\"), t.SPECULARAA && c.addFallback(u, \"SPECULARAA\"), t.POINTSIZE && c.addFallback(u, \"POINTSIZE\"), t.LOGARITHMICDEPTH && c.addFallback(u, \"LOGARITHMICDEPTH\"), t.PARALLAX && c.addFallback(u, \"PARALLAX\"), t.PARALLAX_RHS && c.addFallback(u, \"PARALLAX_RHS\"), t.PARALLAXOCCLUSION && c.addFallback(u++, \"PARALLAXOCCLUSION\"), t.ENVIRONMENTBRDF && c.addFallback(u++, \"ENVIRONMENTBRDF\"), t.TANGENT && c.addFallback(u++, \"TANGENT\"), t.BUMP && c.addFallback(u++, \"BUMP\"), u = g_(t, c, this._maxSimultaneousLights, u++), t.SPECULARTERM && c.addFallback(u++, \"SPECULARTERM\"), t.USESPHERICALFROMREFLECTIONMAP && c.addFallback(u++, \"USESPHERICALFROMREFLECTIONMAP\"), t.USEIRRADIANCEMAP && c.addFallback(u++, \"USEIRRADIANCEMAP\"), t.LIGHTMAP && c.addFallback(u++, \"LIGHTMAP\"), t.NORMAL && c.addFallback(u++, \"NORMAL\"), t.AMBIENT && c.addFallback(u++, \"AMBIENT\"), t.EMISSIVE && c.addFallback(u++, \"EMISSIVE\"), t.VERTEXCOLOR && c.addFallback(u++, \"VERTEXCOLOR\"), t.MORPHTARGETS && c.addFallback(u++, \"MORPHTARGETS\"), t.MULTIVIEW && c.addFallback(0, \"MULTIVIEW\");\n const d = [R.PositionKind];\n t.NORMAL && d.push(R.NormalKind), t.TANGENT && d.push(R.TangentKind);\n for (let b = 1; b <= 6; ++b)\n t[\"UV\" + b] && d.push(`uv${b === 1 ? \"\" : b}`);\n t.VERTEXCOLOR && d.push(R.ColorKind), m_(d, e, t, c), uf(d, t), p_(d, e, t), cf(d, e, t);\n let f = \"pbr\";\n const p = [\n \"world\",\n \"view\",\n \"viewProjection\",\n \"vEyePosition\",\n \"vLightsType\",\n \"vAmbientColor\",\n \"vAlbedoColor\",\n \"vReflectivityColor\",\n \"vMetallicReflectanceFactors\",\n \"vEmissiveColor\",\n \"visibility\",\n \"vReflectionColor\",\n \"vFogInfos\",\n \"vFogColor\",\n \"pointSize\",\n \"vAlbedoInfos\",\n \"vAmbientInfos\",\n \"vOpacityInfos\",\n \"vReflectionInfos\",\n \"vReflectionPosition\",\n \"vReflectionSize\",\n \"vEmissiveInfos\",\n \"vReflectivityInfos\",\n \"vReflectionFilteringInfo\",\n \"vMetallicReflectanceInfos\",\n \"vReflectanceInfos\",\n \"vMicroSurfaceSamplerInfos\",\n \"vBumpInfos\",\n \"vLightmapInfos\",\n \"mBones\",\n \"albedoMatrix\",\n \"ambientMatrix\",\n \"opacityMatrix\",\n \"reflectionMatrix\",\n \"emissiveMatrix\",\n \"reflectivityMatrix\",\n \"normalMatrix\",\n \"microSurfaceSamplerMatrix\",\n \"bumpMatrix\",\n \"lightmapMatrix\",\n \"metallicReflectanceMatrix\",\n \"reflectanceMatrix\",\n \"vLightingIntensity\",\n \"logarithmicDepthConstant\",\n \"vSphericalX\",\n \"vSphericalY\",\n \"vSphericalZ\",\n \"vSphericalXX_ZZ\",\n \"vSphericalYY_ZZ\",\n \"vSphericalZZ\",\n \"vSphericalXY\",\n \"vSphericalYZ\",\n \"vSphericalZX\",\n \"vSphericalL00\",\n \"vSphericalL1_1\",\n \"vSphericalL10\",\n \"vSphericalL11\",\n \"vSphericalL2_2\",\n \"vSphericalL2_1\",\n \"vSphericalL20\",\n \"vSphericalL21\",\n \"vSphericalL22\",\n \"vReflectionMicrosurfaceInfos\",\n \"vTangentSpaceParams\",\n \"boneTextureWidth\",\n \"vDebugMode\",\n \"morphTargetTextureInfo\",\n \"morphTargetTextureIndices\"\n ], _ = [\n \"albedoSampler\",\n \"reflectivitySampler\",\n \"ambientSampler\",\n \"emissiveSampler\",\n \"bumpSampler\",\n \"lightmapSampler\",\n \"opacitySampler\",\n \"reflectionSampler\",\n \"reflectionSamplerLow\",\n \"reflectionSamplerHigh\",\n \"irradianceSampler\",\n \"microSurfaceSampler\",\n \"environmentBrdfSampler\",\n \"boneSampler\",\n \"metallicReflectanceSampler\",\n \"reflectanceSampler\",\n \"morphTargets\",\n \"oitDepthSampler\",\n \"oitFrontColorSampler\"\n ], m = [\"Material\", \"Scene\", \"Mesh\"], x = { maxSimultaneousLights: this._maxSimultaneousLights, maxSimultaneousMorphTargets: t.NUM_MORPH_INFLUENCERS };\n this._eventInfo.fallbacks = c, this._eventInfo.fallbackRank = u, this._eventInfo.defines = t, this._eventInfo.uniforms = p, this._eventInfo.attributes = d, this._eventInfo.samplers = _, this._eventInfo.uniformBuffersNames = m, this._eventInfo.customCode = void 0, this._eventInfo.mesh = e, this._eventInfo.indexParameters = x, this._callbackPluginEventGeneric(128, this._eventInfo), Up.AddUniforms(p), Ln(p), pt && (pt.PrepareUniforms(p, t), pt.PrepareSamplers(_, t)), mf({\n uniformsNames: p,\n uniformBuffersNames: m,\n samplers: _,\n defines: t,\n maxSimultaneousLights: this._maxSimultaneousLights\n });\n const v = {};\n this.customShaderNameResolve && (f = this.customShaderNameResolve(f, p, m, _, t, d, v));\n const T = t.toString(), E = h.createEffect(f, {\n attributes: d,\n uniformsNames: p,\n uniformBuffersNames: m,\n samplers: _,\n defines: T,\n fallbacks: c,\n onCompiled: i,\n onError: s,\n indexParameters: x,\n processFinalCode: v.processFinalCode,\n processCodeAfterIncludes: this._eventInfo.customCode,\n multiTarget: t.PREPASS\n }, h);\n return this._eventInfo.customCode = void 0, E;\n }\n _prepareDefines(e, t, i = null, s = null, r = !1) {\n const n = this.getScene(), o = n.getEngine();\n xc(n, e, t, !0, this._maxSimultaneousLights, this._disableLighting), t._needNormals = !0, _f(n, t);\n const l = this.needAlphaBlendingForMesh(e) && this.getScene().useOrderIndependentTransparency;\n if (v_(n, t, this.canRenderToMRT && !l), Gx(n, t, l), t.METALLICWORKFLOW = this.isMetallicWorkflow(), t._areTexturesDirty) {\n t._needUVs = !1;\n for (let h = 1; h <= 6; ++h)\n t[\"MAINUV\" + h] = !1;\n if (n.texturesEnabled) {\n t.ALBEDODIRECTUV = 0, t.AMBIENTDIRECTUV = 0, t.OPACITYDIRECTUV = 0, t.EMISSIVEDIRECTUV = 0, t.REFLECTIVITYDIRECTUV = 0, t.MICROSURFACEMAPDIRECTUV = 0, t.METALLIC_REFLECTANCEDIRECTUV = 0, t.REFLECTANCEDIRECTUV = 0, t.BUMPDIRECTUV = 0, t.LIGHTMAPDIRECTUV = 0, o.getCaps().textureLOD && (t.LODBASEDMICROSFURACE = !0), this._albedoTexture && xe.DiffuseTextureEnabled ? (ci(this._albedoTexture, t, \"ALBEDO\"), t.GAMMAALBEDO = this._albedoTexture.gammaSpace) : t.ALBEDO = !1, this._ambientTexture && xe.AmbientTextureEnabled ? (ci(this._ambientTexture, t, \"AMBIENT\"), t.AMBIENTINGRAYSCALE = this._useAmbientInGrayScale) : t.AMBIENT = !1, this._opacityTexture && xe.OpacityTextureEnabled ? (ci(this._opacityTexture, t, \"OPACITY\"), t.OPACITYRGB = this._opacityTexture.getAlphaFromRGB) : t.OPACITY = !1;\n const h = this._getReflectionTexture();\n if (h && xe.ReflectionTextureEnabled) {\n switch (t.REFLECTION = !0, t.GAMMAREFLECTION = h.gammaSpace, t.RGBDREFLECTION = h.isRGBD, t.LODINREFLECTIONALPHA = h.lodLevelInAlpha, t.LINEARSPECULARREFLECTION = h.linearSpecularLOD, this.realTimeFiltering && this.realTimeFilteringQuality > 0 ? (t.NUM_SAMPLES = \"\" + this.realTimeFilteringQuality, o._features.needTypeSuffixInShaderConstants && (t.NUM_SAMPLES = t.NUM_SAMPLES + \"u\"), t.REALTIME_FILTERING = !0) : t.REALTIME_FILTERING = !1, t.INVERTCUBICMAP = h.coordinatesMode === X.INVCUBIC_MODE, t.REFLECTIONMAP_3D = h.isCube, t.REFLECTIONMAP_OPPOSITEZ = t.REFLECTIONMAP_3D && this.getScene().useRightHandedSystem ? !h.invertZ : h.invertZ, t.REFLECTIONMAP_CUBIC = !1, t.REFLECTIONMAP_EXPLICIT = !1, t.REFLECTIONMAP_PLANAR = !1, t.REFLECTIONMAP_PROJECTION = !1, t.REFLECTIONMAP_SKYBOX = !1, t.REFLECTIONMAP_SPHERICAL = !1, t.REFLECTIONMAP_EQUIRECTANGULAR = !1, t.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1, t.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1, h.coordinatesMode) {\n case X.EXPLICIT_MODE:\n t.REFLECTIONMAP_EXPLICIT = !0;\n break;\n case X.PLANAR_MODE:\n t.REFLECTIONMAP_PLANAR = !0;\n break;\n case X.PROJECTION_MODE:\n t.REFLECTIONMAP_PROJECTION = !0;\n break;\n case X.SKYBOX_MODE:\n t.REFLECTIONMAP_SKYBOX = !0;\n break;\n case X.SPHERICAL_MODE:\n t.REFLECTIONMAP_SPHERICAL = !0;\n break;\n case X.EQUIRECTANGULAR_MODE:\n t.REFLECTIONMAP_EQUIRECTANGULAR = !0;\n break;\n case X.FIXED_EQUIRECTANGULAR_MODE:\n t.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !0;\n break;\n case X.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:\n t.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !0;\n break;\n case X.CUBIC_MODE:\n case X.INVCUBIC_MODE:\n default:\n t.REFLECTIONMAP_CUBIC = !0, t.USE_LOCAL_REFLECTIONMAP_CUBIC = !!h.boundingBoxSize;\n break;\n }\n h.coordinatesMode !== X.SKYBOX_MODE && (h.irradianceTexture ? (t.USEIRRADIANCEMAP = !0, t.USESPHERICALFROMREFLECTIONMAP = !1) : h.isCube && (t.USESPHERICALFROMREFLECTIONMAP = !0, t.USEIRRADIANCEMAP = !1, this._forceIrradianceInFragment || this.realTimeFiltering || this._twoSidedLighting || o.getCaps().maxVaryingVectors <= 8 ? t.USESPHERICALINVERTEX = !1 : t.USESPHERICALINVERTEX = !0));\n } else\n t.REFLECTION = !1, t.REFLECTIONMAP_3D = !1, t.REFLECTIONMAP_SPHERICAL = !1, t.REFLECTIONMAP_PLANAR = !1, t.REFLECTIONMAP_CUBIC = !1, t.USE_LOCAL_REFLECTIONMAP_CUBIC = !1, t.REFLECTIONMAP_PROJECTION = !1, t.REFLECTIONMAP_SKYBOX = !1, t.REFLECTIONMAP_EXPLICIT = !1, t.REFLECTIONMAP_EQUIRECTANGULAR = !1, t.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = !1, t.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = !1, t.INVERTCUBICMAP = !1, t.USESPHERICALFROMREFLECTIONMAP = !1, t.USEIRRADIANCEMAP = !1, t.USESPHERICALINVERTEX = !1, t.REFLECTIONMAP_OPPOSITEZ = !1, t.LODINREFLECTIONALPHA = !1, t.GAMMAREFLECTION = !1, t.RGBDREFLECTION = !1, t.LINEARSPECULARREFLECTION = !1;\n this._lightmapTexture && xe.LightmapTextureEnabled ? (ci(this._lightmapTexture, t, \"LIGHTMAP\"), t.USELIGHTMAPASSHADOWMAP = this._useLightmapAsShadowmap, t.GAMMALIGHTMAP = this._lightmapTexture.gammaSpace, t.RGBDLIGHTMAP = this._lightmapTexture.isRGBD) : t.LIGHTMAP = !1, this._emissiveTexture && xe.EmissiveTextureEnabled ? (ci(this._emissiveTexture, t, \"EMISSIVE\"), t.GAMMAEMISSIVE = this._emissiveTexture.gammaSpace) : t.EMISSIVE = !1, xe.SpecularTextureEnabled ? (this._metallicTexture ? (ci(this._metallicTexture, t, \"REFLECTIVITY\"), t.ROUGHNESSSTOREINMETALMAPALPHA = this._useRoughnessFromMetallicTextureAlpha, t.ROUGHNESSSTOREINMETALMAPGREEN = !this._useRoughnessFromMetallicTextureAlpha && this._useRoughnessFromMetallicTextureGreen, t.METALLNESSSTOREINMETALMAPBLUE = this._useMetallnessFromMetallicTextureBlue, t.AOSTOREINMETALMAPRED = this._useAmbientOcclusionFromMetallicTextureRed, t.REFLECTIVITY_GAMMA = !1) : this._reflectivityTexture ? (ci(this._reflectivityTexture, t, \"REFLECTIVITY\"), t.MICROSURFACEFROMREFLECTIVITYMAP = this._useMicroSurfaceFromReflectivityMapAlpha, t.MICROSURFACEAUTOMATIC = this._useAutoMicroSurfaceFromReflectivityMap, t.REFLECTIVITY_GAMMA = this._reflectivityTexture.gammaSpace) : t.REFLECTIVITY = !1, this._metallicReflectanceTexture || this._reflectanceTexture ? (t.METALLIC_REFLECTANCE_USE_ALPHA_ONLY = this._useOnlyMetallicFromMetallicReflectanceTexture, this._metallicReflectanceTexture ? (ci(this._metallicReflectanceTexture, t, \"METALLIC_REFLECTANCE\"), t.METALLIC_REFLECTANCE_GAMMA = this._metallicReflectanceTexture.gammaSpace) : t.METALLIC_REFLECTANCE = !1, this._reflectanceTexture && (!this._metallicReflectanceTexture || this._metallicReflectanceTexture && this._useOnlyMetallicFromMetallicReflectanceTexture) ? (ci(this._reflectanceTexture, t, \"REFLECTANCE\"), t.REFLECTANCE_GAMMA = this._reflectanceTexture.gammaSpace) : t.REFLECTANCE = !1) : (t.METALLIC_REFLECTANCE = !1, t.REFLECTANCE = !1), this._microSurfaceTexture ? ci(this._microSurfaceTexture, t, \"MICROSURFACEMAP\") : t.MICROSURFACEMAP = !1) : (t.REFLECTIVITY = !1, t.MICROSURFACEMAP = !1), o.getCaps().standardDerivatives && this._bumpTexture && xe.BumpTextureEnabled && !this._disableBumpMap ? (ci(this._bumpTexture, t, \"BUMP\"), this._useParallax && this._albedoTexture && xe.DiffuseTextureEnabled ? (t.PARALLAX = !0, t.PARALLAX_RHS = n.useRightHandedSystem, t.PARALLAXOCCLUSION = !!this._useParallaxOcclusion) : t.PARALLAX = !1, t.OBJECTSPACE_NORMALMAP = this._useObjectSpaceNormalMap) : (t.BUMP = !1, t.PARALLAX = !1, t.PARALLAX_RHS = !1, t.PARALLAXOCCLUSION = !1, t.OBJECTSPACE_NORMALMAP = !1), this._environmentBRDFTexture && xe.ReflectionTextureEnabled ? (t.ENVIRONMENTBRDF = !0, t.ENVIRONMENTBRDF_RGBD = this._environmentBRDFTexture.isRGBD) : (t.ENVIRONMENTBRDF = !1, t.ENVIRONMENTBRDF_RGBD = !1), this._shouldUseAlphaFromAlbedoTexture() ? t.ALPHAFROMALBEDO = !0 : t.ALPHAFROMALBEDO = !1;\n }\n t.SPECULAROVERALPHA = this._useSpecularOverAlpha, this._lightFalloff === Ut.LIGHTFALLOFF_STANDARD ? (t.USEPHYSICALLIGHTFALLOFF = !1, t.USEGLTFLIGHTFALLOFF = !1) : this._lightFalloff === Ut.LIGHTFALLOFF_GLTF ? (t.USEPHYSICALLIGHTFALLOFF = !1, t.USEGLTFLIGHTFALLOFF = !0) : (t.USEPHYSICALLIGHTFALLOFF = !0, t.USEGLTFLIGHTFALLOFF = !1), t.RADIANCEOVERALPHA = this._useRadianceOverAlpha, !this.backFaceCulling && this._twoSidedLighting ? t.TWOSIDEDLIGHTING = !0 : t.TWOSIDEDLIGHTING = !1, t.SPECULARAA = o.getCaps().standardDerivatives && this._enableSpecularAntiAliasing;\n }\n (t._areTexturesDirty || t._areMiscDirty) && (t.ALPHATESTVALUE = `${this._alphaCutOff}${this._alphaCutOff % 1 === 0 ? \".\" : \"\"}`, t.PREMULTIPLYALPHA = this.alphaMode === 7 || this.alphaMode === 8, t.ALPHABLEND = this.needAlphaBlendingForMesh(e), t.ALPHAFRESNEL = this._useAlphaFresnel || this._useLinearAlphaFresnel, t.LINEARALPHAFRESNEL = this._useLinearAlphaFresnel), t._areImageProcessingDirty && this._imageProcessingConfiguration && this._imageProcessingConfiguration.prepareDefines(t), t.FORCENORMALFORWARD = this._forceNormalForward, t.RADIANCEOCCLUSION = this._useRadianceOcclusion, t.HORIZONOCCLUSION = this._useHorizonOcclusion, t._areMiscDirty && (df(e, n, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(e) || this._forceAlphaTest, t, this._applyDecalMapAfterDetailMap), t.UNLIT = this._unlit || (this.pointsCloud || this.wireframe) && !e.isVerticesDataPresent(R.NormalKind), t.DEBUGMODE = this._debugMode), ff(n, o, this, t, !!i, s, r), this._eventInfo.defines = t, this._eventInfo.mesh = e, this._callbackPluginEventPrepareDefinesBeforeAttributes(this._eventInfo), pf(e, t, !0, !0, !0, this._transparencyMode !== Ut.PBRMATERIAL_OPAQUE), this._callbackPluginEventPrepareDefines(this._eventInfo);\n }\n /**\n * Force shader compilation\n * @param mesh - Define the mesh we want to force the compilation for\n * @param onCompiled - Define a callback triggered when the compilation completes\n * @param options - Define the options used to create the compilation\n */\n forceCompilation(e, t, i) {\n const s = {\n clipPlane: !1,\n useInstances: !1,\n ...i\n };\n this._uniformBufferLayoutBuilt || this.buildUniformLayout(), this._callbackPluginEventGeneric(4, this._eventInfo);\n const r = new mE(this._eventInfo.defineNames), n = this._prepareEffect(e, r, void 0, void 0, s.useInstances, s.clipPlane, e.hasThinInstances);\n this._onEffectCreatedObservable && (oh.effect = n, oh.subMesh = null, this._onEffectCreatedObservable.notifyObservers(oh)), n.isReady() ? t && t(this) : n.onCompileObservable.add(() => {\n t && t(this);\n });\n }\n /**\n * Initializes the uniform buffer layout for the shader.\n */\n buildUniformLayout() {\n const e = this._uniformBuffer;\n e.addUniform(\"vAlbedoInfos\", 2), e.addUniform(\"vAmbientInfos\", 4), e.addUniform(\"vOpacityInfos\", 2), e.addUniform(\"vEmissiveInfos\", 2), e.addUniform(\"vLightmapInfos\", 2), e.addUniform(\"vReflectivityInfos\", 3), e.addUniform(\"vMicroSurfaceSamplerInfos\", 2), e.addUniform(\"vReflectionInfos\", 2), e.addUniform(\"vReflectionFilteringInfo\", 2), e.addUniform(\"vReflectionPosition\", 3), e.addUniform(\"vReflectionSize\", 3), e.addUniform(\"vBumpInfos\", 3), e.addUniform(\"albedoMatrix\", 16), e.addUniform(\"ambientMatrix\", 16), e.addUniform(\"opacityMatrix\", 16), e.addUniform(\"emissiveMatrix\", 16), e.addUniform(\"lightmapMatrix\", 16), e.addUniform(\"reflectivityMatrix\", 16), e.addUniform(\"microSurfaceSamplerMatrix\", 16), e.addUniform(\"bumpMatrix\", 16), e.addUniform(\"vTangentSpaceParams\", 2), e.addUniform(\"reflectionMatrix\", 16), e.addUniform(\"vReflectionColor\", 3), e.addUniform(\"vAlbedoColor\", 4), e.addUniform(\"vLightingIntensity\", 4), e.addUniform(\"vReflectionMicrosurfaceInfos\", 3), e.addUniform(\"pointSize\", 1), e.addUniform(\"vReflectivityColor\", 4), e.addUniform(\"vEmissiveColor\", 3), e.addUniform(\"vAmbientColor\", 3), e.addUniform(\"vDebugMode\", 2), e.addUniform(\"vMetallicReflectanceFactors\", 4), e.addUniform(\"vMetallicReflectanceInfos\", 2), e.addUniform(\"metallicReflectanceMatrix\", 16), e.addUniform(\"vReflectanceInfos\", 2), e.addUniform(\"reflectanceMatrix\", 16), e.addUniform(\"vSphericalL00\", 3), e.addUniform(\"vSphericalL1_1\", 3), e.addUniform(\"vSphericalL10\", 3), e.addUniform(\"vSphericalL11\", 3), e.addUniform(\"vSphericalL2_2\", 3), e.addUniform(\"vSphericalL2_1\", 3), e.addUniform(\"vSphericalL20\", 3), e.addUniform(\"vSphericalL21\", 3), e.addUniform(\"vSphericalL22\", 3), e.addUniform(\"vSphericalX\", 3), e.addUniform(\"vSphericalY\", 3), e.addUniform(\"vSphericalZ\", 3), e.addUniform(\"vSphericalXX_ZZ\", 3), e.addUniform(\"vSphericalYY_ZZ\", 3), e.addUniform(\"vSphericalZZ\", 3), e.addUniform(\"vSphericalXY\", 3), e.addUniform(\"vSphericalYZ\", 3), e.addUniform(\"vSphericalZX\", 3), super.buildUniformLayout();\n }\n /**\n * Binds the submesh data.\n * @param world - The world matrix.\n * @param mesh - The BJS mesh.\n * @param subMesh - A submesh of the BJS mesh.\n */\n bindForSubMesh(e, t, i) {\n var u, d, f;\n const s = this.getScene(), r = i.materialDefines;\n if (!r)\n return;\n const n = i.effect;\n if (!n)\n return;\n this._activeEffect = n, t.getMeshUniformBuffer().bindToEffect(n, \"Mesh\"), t.transferToEffect(e);\n const o = s.getEngine();\n this._uniformBuffer.bindToEffect(n, \"Material\"), this.prePassConfiguration.bindForSubMesh(this._activeEffect, s, t, e, this.isFrozen), this._eventInfo.subMesh = i, this._callbackPluginEventHardBindForSubMesh(this._eventInfo), r.OBJECTSPACE_NORMALMAP && (e.toNormalMatrix(this._normalMatrix), this.bindOnlyNormalMatrix(this._normalMatrix));\n const l = this._mustRebind(s, n, i, t.visibility);\n Fl(t, this._activeEffect, this.prePassConfiguration);\n let h = null;\n const c = this._uniformBuffer;\n if (l) {\n if (this.bindViewProjection(n), h = this._getReflectionTexture(), !c.useUbo || !this.isFrozen || !c.isSync || i._drawWrapper._forceRebindOnNextCall) {\n if (s.texturesEnabled) {\n if (this._albedoTexture && xe.DiffuseTextureEnabled && (c.updateFloat2(\"vAlbedoInfos\", this._albedoTexture.coordinatesIndex, this._albedoTexture.level), pi(this._albedoTexture, c, \"albedo\")), this._ambientTexture && xe.AmbientTextureEnabled && (c.updateFloat4(\"vAmbientInfos\", this._ambientTexture.coordinatesIndex, this._ambientTexture.level, this._ambientTextureStrength, this._ambientTextureImpactOnAnalyticalLights), pi(this._ambientTexture, c, \"ambient\")), this._opacityTexture && xe.OpacityTextureEnabled && (c.updateFloat2(\"vOpacityInfos\", this._opacityTexture.coordinatesIndex, this._opacityTexture.level), pi(this._opacityTexture, c, \"opacity\")), h && xe.ReflectionTextureEnabled) {\n if (c.updateMatrix(\"reflectionMatrix\", h.getReflectionTextureMatrix()), c.updateFloat2(\"vReflectionInfos\", h.level, 0), h.boundingBoxSize) {\n const p = h;\n c.updateVector3(\"vReflectionPosition\", p.boundingBoxPosition), c.updateVector3(\"vReflectionSize\", p.boundingBoxSize);\n }\n if (this.realTimeFiltering) {\n const p = h.getSize().width;\n c.updateFloat2(\"vReflectionFilteringInfo\", p, Re.Log2(p));\n }\n if (!r.USEIRRADIANCEMAP) {\n const p = h.sphericalPolynomial;\n if (r.USESPHERICALFROMREFLECTIONMAP && p)\n if (r.SPHERICAL_HARMONICS) {\n const _ = p.preScaledHarmonics;\n c.updateVector3(\"vSphericalL00\", _.l00), c.updateVector3(\"vSphericalL1_1\", _.l1_1), c.updateVector3(\"vSphericalL10\", _.l10), c.updateVector3(\"vSphericalL11\", _.l11), c.updateVector3(\"vSphericalL2_2\", _.l2_2), c.updateVector3(\"vSphericalL2_1\", _.l2_1), c.updateVector3(\"vSphericalL20\", _.l20), c.updateVector3(\"vSphericalL21\", _.l21), c.updateVector3(\"vSphericalL22\", _.l22);\n } else\n c.updateFloat3(\"vSphericalX\", p.x.x, p.x.y, p.x.z), c.updateFloat3(\"vSphericalY\", p.y.x, p.y.y, p.y.z), c.updateFloat3(\"vSphericalZ\", p.z.x, p.z.y, p.z.z), c.updateFloat3(\"vSphericalXX_ZZ\", p.xx.x - p.zz.x, p.xx.y - p.zz.y, p.xx.z - p.zz.z), c.updateFloat3(\"vSphericalYY_ZZ\", p.yy.x - p.zz.x, p.yy.y - p.zz.y, p.yy.z - p.zz.z), c.updateFloat3(\"vSphericalZZ\", p.zz.x, p.zz.y, p.zz.z), c.updateFloat3(\"vSphericalXY\", p.xy.x, p.xy.y, p.xy.z), c.updateFloat3(\"vSphericalYZ\", p.yz.x, p.yz.y, p.yz.z), c.updateFloat3(\"vSphericalZX\", p.zx.x, p.zx.y, p.zx.z);\n }\n c.updateFloat3(\"vReflectionMicrosurfaceInfos\", h.getSize().width, h.lodGenerationScale, h.lodGenerationOffset);\n }\n this._emissiveTexture && xe.EmissiveTextureEnabled && (c.updateFloat2(\"vEmissiveInfos\", this._emissiveTexture.coordinatesIndex, this._emissiveTexture.level), pi(this._emissiveTexture, c, \"emissive\")), this._lightmapTexture && xe.LightmapTextureEnabled && (c.updateFloat2(\"vLightmapInfos\", this._lightmapTexture.coordinatesIndex, this._lightmapTexture.level), pi(this._lightmapTexture, c, \"lightmap\")), xe.SpecularTextureEnabled && (this._metallicTexture ? (c.updateFloat3(\"vReflectivityInfos\", this._metallicTexture.coordinatesIndex, this._metallicTexture.level, this._ambientTextureStrength), pi(this._metallicTexture, c, \"reflectivity\")) : this._reflectivityTexture && (c.updateFloat3(\"vReflectivityInfos\", this._reflectivityTexture.coordinatesIndex, this._reflectivityTexture.level, 1), pi(this._reflectivityTexture, c, \"reflectivity\")), this._metallicReflectanceTexture && (c.updateFloat2(\"vMetallicReflectanceInfos\", this._metallicReflectanceTexture.coordinatesIndex, this._metallicReflectanceTexture.level), pi(this._metallicReflectanceTexture, c, \"metallicReflectance\")), this._reflectanceTexture && r.REFLECTANCE && (c.updateFloat2(\"vReflectanceInfos\", this._reflectanceTexture.coordinatesIndex, this._reflectanceTexture.level), pi(this._reflectanceTexture, c, \"reflectance\")), this._microSurfaceTexture && (c.updateFloat2(\"vMicroSurfaceSamplerInfos\", this._microSurfaceTexture.coordinatesIndex, this._microSurfaceTexture.level), pi(this._microSurfaceTexture, c, \"microSurfaceSampler\"))), this._bumpTexture && o.getCaps().standardDerivatives && xe.BumpTextureEnabled && !this._disableBumpMap && (c.updateFloat3(\"vBumpInfos\", this._bumpTexture.coordinatesIndex, this._bumpTexture.level, this._parallaxScaleBias), pi(this._bumpTexture, c, \"bump\"), s._mirroredCameraPosition ? c.updateFloat2(\"vTangentSpaceParams\", this._invertNormalMapX ? 1 : -1, this._invertNormalMapY ? 1 : -1) : c.updateFloat2(\"vTangentSpaceParams\", this._invertNormalMapX ? -1 : 1, this._invertNormalMapY ? -1 : 1));\n }\n if (this.pointsCloud && c.updateFloat(\"pointSize\", this.pointSize), r.METALLICWORKFLOW) {\n wt.Color3[0].r = this._metallic === void 0 || this._metallic === null ? 1 : this._metallic, wt.Color3[0].g = this._roughness === void 0 || this._roughness === null ? 1 : this._roughness, c.updateColor4(\"vReflectivityColor\", wt.Color3[0], 1);\n const p = ((u = this.subSurface) == null ? void 0 : u._indexOfRefraction) ?? 1.5, _ = 1, m = Math.pow((p - _) / (p + _), 2);\n this._metallicReflectanceColor.scaleToRef(m * this._metallicF0Factor, wt.Color3[0]);\n const x = this._metallicF0Factor;\n c.updateColor4(\"vMetallicReflectanceFactors\", wt.Color3[0], x);\n } else\n c.updateColor4(\"vReflectivityColor\", this._reflectivityColor, this._microSurface);\n c.updateColor3(\"vEmissiveColor\", xe.EmissiveTextureEnabled ? this._emissiveColor : re.BlackReadOnly), c.updateColor3(\"vReflectionColor\", this._reflectionColor), !r.SS_REFRACTION && ((d = this.subSurface) != null && d._linkRefractionWithTransparency) ? c.updateColor4(\"vAlbedoColor\", this._albedoColor, 1) : c.updateColor4(\"vAlbedoColor\", this._albedoColor, this.alpha), this._lightingInfos.x = this._directIntensity, this._lightingInfos.y = this._emissiveIntensity, this._lightingInfos.z = this._environmentIntensity * s.environmentIntensity, this._lightingInfos.w = this._specularIntensity, c.updateVector4(\"vLightingIntensity\", this._lightingInfos), s.ambientColor.multiplyToRef(this._ambientColor, this._globalAmbientColor), c.updateColor3(\"vAmbientColor\", this._globalAmbientColor), c.updateFloat2(\"vDebugMode\", this.debugLimit, this.debugFactor);\n }\n s.texturesEnabled && (this._albedoTexture && xe.DiffuseTextureEnabled && c.setTexture(\"albedoSampler\", this._albedoTexture), this._ambientTexture && xe.AmbientTextureEnabled && c.setTexture(\"ambientSampler\", this._ambientTexture), this._opacityTexture && xe.OpacityTextureEnabled && c.setTexture(\"opacitySampler\", this._opacityTexture), h && xe.ReflectionTextureEnabled && (r.LODBASEDMICROSFURACE ? c.setTexture(\"reflectionSampler\", h) : (c.setTexture(\"reflectionSampler\", h._lodTextureMid || h), c.setTexture(\"reflectionSamplerLow\", h._lodTextureLow || h), c.setTexture(\"reflectionSamplerHigh\", h._lodTextureHigh || h)), r.USEIRRADIANCEMAP && c.setTexture(\"irradianceSampler\", h.irradianceTexture)), r.ENVIRONMENTBRDF && c.setTexture(\"environmentBrdfSampler\", this._environmentBRDFTexture), this._emissiveTexture && xe.EmissiveTextureEnabled && c.setTexture(\"emissiveSampler\", this._emissiveTexture), this._lightmapTexture && xe.LightmapTextureEnabled && c.setTexture(\"lightmapSampler\", this._lightmapTexture), xe.SpecularTextureEnabled && (this._metallicTexture ? c.setTexture(\"reflectivitySampler\", this._metallicTexture) : this._reflectivityTexture && c.setTexture(\"reflectivitySampler\", this._reflectivityTexture), this._metallicReflectanceTexture && c.setTexture(\"metallicReflectanceSampler\", this._metallicReflectanceTexture), this._reflectanceTexture && r.REFLECTANCE && c.setTexture(\"reflectanceSampler\", this._reflectanceTexture), this._microSurfaceTexture && c.setTexture(\"microSurfaceSampler\", this._microSurfaceTexture)), this._bumpTexture && o.getCaps().standardDerivatives && xe.BumpTextureEnabled && !this._disableBumpMap && c.setTexture(\"bumpSampler\", this._bumpTexture)), this.getScene().useOrderIndependentTransparency && this.needAlphaBlendingForMesh(t) && this.getScene().depthPeelingRenderer.bind(n), this._eventInfo.subMesh = i, this._callbackPluginEventBindForSubMesh(this._eventInfo), Tn(this._activeEffect, this, s), this.bindEyePosition(n);\n } else s.getEngine()._features.needToAlwaysBindUniformBuffers && (this._needToBindSceneUbo = !0);\n (l || !this.isFrozen) && (s.lightsEnabled && !this._disableLighting && gc(s, t, this._activeEffect, r, this._maxSimultaneousLights), (s.fogEnabled && t.applyFog && s.fogMode !== De.FOGMODE_NONE || h || this.subSurface.refractionTexture || t.receiveShadows || r.PREPASS) && this.bindView(n), il(s, t, this._activeEffect, !0), r.NUM_MORPH_INFLUENCERS && na(t, this._activeEffect), r.BAKED_VERTEX_ANIMATION_TEXTURE && ((f = t.bakedVertexAnimationManager) == null || f.bind(n, r.INSTANCES)), this._imageProcessingConfiguration.bind(this._activeEffect), Oa(r, this._activeEffect, s)), this._afterBind(t, this._activeEffect, i), c.update();\n }\n /**\n * Returns the animatable textures.\n * If material have animatable metallic texture, then reflectivity texture will not be returned, even if it has animations.\n * @returns - Array of animatable textures.\n */\n getAnimatables() {\n const e = super.getAnimatables();\n return this._albedoTexture && this._albedoTexture.animations && this._albedoTexture.animations.length > 0 && e.push(this._albedoTexture), this._ambientTexture && this._ambientTexture.animations && this._ambientTexture.animations.length > 0 && e.push(this._ambientTexture), this._opacityTexture && this._opacityTexture.animations && this._opacityTexture.animations.length > 0 && e.push(this._opacityTexture), this._reflectionTexture && this._reflectionTexture.animations && this._reflectionTexture.animations.length > 0 && e.push(this._reflectionTexture), this._emissiveTexture && this._emissiveTexture.animations && this._emissiveTexture.animations.length > 0 && e.push(this._emissiveTexture), this._metallicTexture && this._metallicTexture.animations && this._metallicTexture.animations.length > 0 ? e.push(this._metallicTexture) : this._reflectivityTexture && this._reflectivityTexture.animations && this._reflectivityTexture.animations.length > 0 && e.push(this._reflectivityTexture), this._bumpTexture && this._bumpTexture.animations && this._bumpTexture.animations.length > 0 && e.push(this._bumpTexture), this._lightmapTexture && this._lightmapTexture.animations && this._lightmapTexture.animations.length > 0 && e.push(this._lightmapTexture), this._metallicReflectanceTexture && this._metallicReflectanceTexture.animations && this._metallicReflectanceTexture.animations.length > 0 && e.push(this._metallicReflectanceTexture), this._reflectanceTexture && this._reflectanceTexture.animations && this._reflectanceTexture.animations.length > 0 && e.push(this._reflectanceTexture), this._microSurfaceTexture && this._microSurfaceTexture.animations && this._microSurfaceTexture.animations.length > 0 && e.push(this._microSurfaceTexture), e;\n }\n /**\n * Returns the texture used for reflections.\n * @returns - Reflection texture if present. Otherwise, returns the environment texture.\n */\n _getReflectionTexture() {\n return this._reflectionTexture ? this._reflectionTexture : this.getScene().environmentTexture;\n }\n /**\n * Returns an array of the actively used textures.\n * @returns - Array of BaseTextures\n */\n getActiveTextures() {\n const e = super.getActiveTextures();\n return this._albedoTexture && e.push(this._albedoTexture), this._ambientTexture && e.push(this._ambientTexture), this._opacityTexture && e.push(this._opacityTexture), this._reflectionTexture && e.push(this._reflectionTexture), this._emissiveTexture && e.push(this._emissiveTexture), this._reflectivityTexture && e.push(this._reflectivityTexture), this._metallicTexture && e.push(this._metallicTexture), this._metallicReflectanceTexture && e.push(this._metallicReflectanceTexture), this._reflectanceTexture && e.push(this._reflectanceTexture), this._microSurfaceTexture && e.push(this._microSurfaceTexture), this._bumpTexture && e.push(this._bumpTexture), this._lightmapTexture && e.push(this._lightmapTexture), e;\n }\n /**\n * Checks to see if a texture is used in the material.\n * @param texture - Base texture to use.\n * @returns - Boolean specifying if a texture is used in the material.\n */\n hasTexture(e) {\n return !!(super.hasTexture(e) || this._albedoTexture === e || this._ambientTexture === e || this._opacityTexture === e || this._reflectionTexture === e || this._emissiveTexture === e || this._reflectivityTexture === e || this._metallicTexture === e || this._metallicReflectanceTexture === e || this._reflectanceTexture === e || this._microSurfaceTexture === e || this._bumpTexture === e || this._lightmapTexture === e);\n }\n /**\n * Sets the required values to the prepass renderer.\n * It can't be sets when subsurface scattering of this material is disabled.\n * When scene have ability to enable subsurface prepass effect, it will enable.\n * @returns - If prepass is enabled or not.\n */\n setPrePassRenderer() {\n var t;\n if (!((t = this.subSurface) != null && t.isScatteringEnabled))\n return !1;\n const e = this.getScene().enableSubSurfaceForPrePass();\n return e && (e.enabled = !0), !0;\n }\n /**\n * Disposes the resources of the material.\n * @param forceDisposeEffect - Forces the disposal of effects.\n * @param forceDisposeTextures - Forces the disposal of all textures.\n */\n dispose(e, t) {\n var i, s, r, n, o, l, h, c, u, d, f, p;\n t && (this._environmentBRDFTexture && this.getScene().environmentBRDFTexture !== this._environmentBRDFTexture && this._environmentBRDFTexture.dispose(), (i = this._albedoTexture) == null || i.dispose(), (s = this._ambientTexture) == null || s.dispose(), (r = this._opacityTexture) == null || r.dispose(), (n = this._reflectionTexture) == null || n.dispose(), (o = this._emissiveTexture) == null || o.dispose(), (l = this._metallicTexture) == null || l.dispose(), (h = this._reflectivityTexture) == null || h.dispose(), (c = this._bumpTexture) == null || c.dispose(), (u = this._lightmapTexture) == null || u.dispose(), (d = this._metallicReflectanceTexture) == null || d.dispose(), (f = this._reflectanceTexture) == null || f.dispose(), (p = this._microSurfaceTexture) == null || p.dispose()), this._renderTargets.dispose(), this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), super.dispose(e, t);\n }\n}\nUt.PBRMATERIAL_OPAQUE = ue.MATERIAL_OPAQUE;\nUt.PBRMATERIAL_ALPHATEST = ue.MATERIAL_ALPHATEST;\nUt.PBRMATERIAL_ALPHABLEND = ue.MATERIAL_ALPHABLEND;\nUt.PBRMATERIAL_ALPHATESTANDBLEND = ue.MATERIAL_ALPHATESTANDBLEND;\nUt.DEFAULT_AO_ON_ANALYTICAL_LIGHTS = 0;\nUt.LIGHTFALLOFF_PHYSICAL = 0;\nUt.LIGHTFALLOFF_GLTF = 1;\nUt.LIGHTFALLOFF_STANDARD = 2;\ny([\n NC()\n], Ut.prototype, \"_imageProcessingConfiguration\", void 0);\ny([\n ce(\"_markAllSubMeshesAsMiscDirty\")\n], Ut.prototype, \"debugMode\", void 0);\nclass qe extends Ut {\n /**\n * Stores the refracted light information in a texture.\n */\n get refractionTexture() {\n return this.subSurface.refractionTexture;\n }\n set refractionTexture(e) {\n this.subSurface.refractionTexture = e, e ? this.subSurface.isRefractionEnabled = !0 : this.subSurface.linkRefractionWithTransparency || (this.subSurface.isRefractionEnabled = !1);\n }\n /**\n * Index of refraction of the material base layer.\n * https://en.wikipedia.org/wiki/List_of_refractive_indices\n *\n * This does not only impact refraction but also the Base F0 of Dielectric Materials.\n *\n * From dielectric fresnel rules: F0 = square((iorT - iorI) / (iorT + iorI))\n */\n get indexOfRefraction() {\n return this.subSurface.indexOfRefraction;\n }\n set indexOfRefraction(e) {\n this.subSurface.indexOfRefraction = e;\n }\n /**\n * Controls if refraction needs to be inverted on Y. This could be useful for procedural texture.\n */\n get invertRefractionY() {\n return this.subSurface.invertRefractionY;\n }\n set invertRefractionY(e) {\n this.subSurface.invertRefractionY = e;\n }\n /**\n * This parameters will make the material used its opacity to control how much it is refracting against not.\n * Materials half opaque for instance using refraction could benefit from this control.\n */\n get linkRefractionWithTransparency() {\n return this.subSurface.linkRefractionWithTransparency;\n }\n set linkRefractionWithTransparency(e) {\n this.subSurface.linkRefractionWithTransparency = e, e && (this.subSurface.isRefractionEnabled = !0);\n }\n /**\n * BJS is using an hardcoded light falloff based on a manually sets up range.\n * In PBR, one way to represents the falloff is to use the inverse squared root algorithm.\n * This parameter can help you switch back to the BJS mode in order to create scenes using both materials.\n */\n get usePhysicalLightFalloff() {\n return this._lightFalloff === Ut.LIGHTFALLOFF_PHYSICAL;\n }\n /**\n * BJS is using an hardcoded light falloff based on a manually sets up range.\n * In PBR, one way to represents the falloff is to use the inverse squared root algorithm.\n * This parameter can help you switch back to the BJS mode in order to create scenes using both materials.\n */\n set usePhysicalLightFalloff(e) {\n e !== this.usePhysicalLightFalloff && (this._markAllSubMeshesAsTexturesDirty(), e ? this._lightFalloff = Ut.LIGHTFALLOFF_PHYSICAL : this._lightFalloff = Ut.LIGHTFALLOFF_STANDARD);\n }\n /**\n * In order to support the falloff compatibility with gltf, a special mode has been added\n * to reproduce the gltf light falloff.\n */\n get useGLTFLightFalloff() {\n return this._lightFalloff === Ut.LIGHTFALLOFF_GLTF;\n }\n /**\n * In order to support the falloff compatibility with gltf, a special mode has been added\n * to reproduce the gltf light falloff.\n */\n set useGLTFLightFalloff(e) {\n e !== this.useGLTFLightFalloff && (this._markAllSubMeshesAsTexturesDirty(), e ? this._lightFalloff = Ut.LIGHTFALLOFF_GLTF : this._lightFalloff = Ut.LIGHTFALLOFF_STANDARD);\n }\n /**\n * Gets the image processing configuration used either in this material.\n */\n get imageProcessingConfiguration() {\n return this._imageProcessingConfiguration;\n }\n /**\n * Sets the Default image processing configuration used either in the this material.\n *\n * If sets to null, the scene one is in use.\n */\n set imageProcessingConfiguration(e) {\n this._attachImageProcessingConfiguration(e), this._markAllSubMeshesAsTexturesDirty();\n }\n /**\n * Gets whether the color curves effect is enabled.\n */\n get cameraColorCurvesEnabled() {\n return this.imageProcessingConfiguration.colorCurvesEnabled;\n }\n /**\n * Sets whether the color curves effect is enabled.\n */\n set cameraColorCurvesEnabled(e) {\n this.imageProcessingConfiguration.colorCurvesEnabled = e;\n }\n /**\n * Gets whether the color grading effect is enabled.\n */\n get cameraColorGradingEnabled() {\n return this.imageProcessingConfiguration.colorGradingEnabled;\n }\n /**\n * Gets whether the color grading effect is enabled.\n */\n set cameraColorGradingEnabled(e) {\n this.imageProcessingConfiguration.colorGradingEnabled = e;\n }\n /**\n * Gets whether tonemapping is enabled or not.\n */\n get cameraToneMappingEnabled() {\n return this._imageProcessingConfiguration.toneMappingEnabled;\n }\n /**\n * Sets whether tonemapping is enabled or not\n */\n set cameraToneMappingEnabled(e) {\n this._imageProcessingConfiguration.toneMappingEnabled = e;\n }\n /**\n * The camera exposure used on this material.\n * This property is here and not in the camera to allow controlling exposure without full screen post process.\n * This corresponds to a photographic exposure.\n */\n get cameraExposure() {\n return this._imageProcessingConfiguration.exposure;\n }\n /**\n * The camera exposure used on this material.\n * This property is here and not in the camera to allow controlling exposure without full screen post process.\n * This corresponds to a photographic exposure.\n */\n set cameraExposure(e) {\n this._imageProcessingConfiguration.exposure = e;\n }\n /**\n * Gets The camera contrast used on this material.\n */\n get cameraContrast() {\n return this._imageProcessingConfiguration.contrast;\n }\n /**\n * Sets The camera contrast used on this material.\n */\n set cameraContrast(e) {\n this._imageProcessingConfiguration.contrast = e;\n }\n /**\n * Gets the Color Grading 2D Lookup Texture.\n */\n get cameraColorGradingTexture() {\n return this._imageProcessingConfiguration.colorGradingTexture;\n }\n /**\n * Sets the Color Grading 2D Lookup Texture.\n */\n set cameraColorGradingTexture(e) {\n this._imageProcessingConfiguration.colorGradingTexture = e;\n }\n /**\n * The color grading curves provide additional color adjustment that is applied after any color grading transform (3D LUT).\n * They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects.\n * These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image;\n * corresponding to low luminance, medium luminance, and high luminance areas respectively.\n */\n get cameraColorCurves() {\n return this._imageProcessingConfiguration.colorCurves;\n }\n /**\n * The color grading curves provide additional color adjustment that is applied after any color grading transform (3D LUT).\n * They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects.\n * These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image;\n * corresponding to low luminance, medium luminance, and high luminance areas respectively.\n */\n set cameraColorCurves(e) {\n this._imageProcessingConfiguration.colorCurves = e;\n }\n /**\n * Instantiates a new PBRMaterial instance.\n *\n * @param name The material name\n * @param scene The scene the material will be use in.\n */\n constructor(e, t) {\n super(e, t), this.directIntensity = 1, this.emissiveIntensity = 1, this.environmentIntensity = 1, this.specularIntensity = 1, this.disableBumpMap = !1, this.ambientTextureStrength = 1, this.ambientTextureImpactOnAnalyticalLights = qe.DEFAULT_AO_ON_ANALYTICAL_LIGHTS, this.metallicF0Factor = 1, this.metallicReflectanceColor = re.White(), this.useOnlyMetallicFromMetallicReflectanceTexture = !1, this.ambientColor = new re(0, 0, 0), this.albedoColor = new re(1, 1, 1), this.reflectivityColor = new re(1, 1, 1), this.reflectionColor = new re(1, 1, 1), this.emissiveColor = new re(0, 0, 0), this.microSurface = 1, this.useLightmapAsShadowmap = !1, this.useAlphaFromAlbedoTexture = !1, this.forceAlphaTest = !1, this.alphaCutOff = 0.4, this.useSpecularOverAlpha = !0, this.useMicroSurfaceFromReflectivityMapAlpha = !1, this.useRoughnessFromMetallicTextureAlpha = !0, this.useRoughnessFromMetallicTextureGreen = !1, this.useMetallnessFromMetallicTextureBlue = !1, this.useAmbientOcclusionFromMetallicTextureRed = !1, this.useAmbientInGrayScale = !1, this.useAutoMicroSurfaceFromReflectivityMap = !1, this.useRadianceOverAlpha = !0, this.useObjectSpaceNormalMap = !1, this.useParallax = !1, this.useParallaxOcclusion = !1, this.parallaxScaleBias = 0.05, this.disableLighting = !1, this.forceIrradianceInFragment = !1, this.maxSimultaneousLights = 4, this.invertNormalMapX = !1, this.invertNormalMapY = !1, this.twoSidedLighting = !1, this.useAlphaFresnel = !1, this.useLinearAlphaFresnel = !1, this.environmentBRDFTexture = null, this.forceNormalForward = !1, this.enableSpecularAntiAliasing = !1, this.useHorizonOcclusion = !0, this.useRadianceOcclusion = !0, this.unlit = !1, this.applyDecalMapAfterDetailMap = !1, this._environmentBRDFTexture = q_(this.getScene());\n }\n /**\n * @returns the name of this material class.\n */\n getClassName() {\n return \"PBRMaterial\";\n }\n /**\n * Makes a duplicate of the current material.\n * @param name - name to use for the new material.\n * @param cloneTexturesOnlyOnce - if a texture is used in more than one channel (e.g diffuse and opacity), only clone it once and reuse it on the other channels. Default false.\n * @param rootUrl defines the root URL to use to load textures\n * @returns cloned material instance\n */\n clone(e, t = !0, i = \"\") {\n const s = Ae.Clone(() => new qe(e, this.getScene()), this, { cloneTexturesOnlyOnce: t });\n return s.id = e, s.name = e, this.stencil.copyTo(s.stencil), this._clonePlugins(s, i), s;\n }\n /**\n * Serializes this PBR Material.\n * @returns - An object with the serialized material.\n */\n serialize() {\n const e = super.serialize();\n return e.customType = \"BABYLON.PBRMaterial\", e;\n }\n // Statics\n /**\n * Parses a PBR Material from a serialized object.\n * @param source - Serialized object.\n * @param scene - BJS scene instance.\n * @param rootUrl - url for the scene object\n * @returns - PBRMaterial\n */\n static Parse(e, t, i) {\n const s = Ae.Parse(() => new qe(e.name, t), e, t, i);\n return e.stencil && s.stencil.parse(e.stencil, t, i), ue._ParsePlugins(e, s, t, i), e.clearCoat && s.clearCoat.parse(e.clearCoat, t, i), e.anisotropy && s.anisotropy.parse(e.anisotropy, t, i), e.brdf && s.brdf.parse(e.brdf, t, i), e.sheen && s.sheen.parse(e.sheen, t, i), e.subSurface && s.subSurface.parse(e.subSurface, t, i), e.iridescence && s.iridescence.parse(e.iridescence, t, i), s;\n }\n}\nqe.PBRMATERIAL_OPAQUE = Ut.PBRMATERIAL_OPAQUE;\nqe.PBRMATERIAL_ALPHATEST = Ut.PBRMATERIAL_ALPHATEST;\nqe.PBRMATERIAL_ALPHABLEND = Ut.PBRMATERIAL_ALPHABLEND;\nqe.PBRMATERIAL_ALPHATESTANDBLEND = Ut.PBRMATERIAL_ALPHATESTANDBLEND;\nqe.DEFAULT_AO_ON_ANALYTICAL_LIGHTS = Ut.DEFAULT_AO_ON_ANALYTICAL_LIGHTS;\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"directIntensity\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"emissiveIntensity\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"environmentIntensity\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"specularIntensity\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"disableBumpMap\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"albedoTexture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"ambientTexture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"ambientTextureStrength\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"ambientTextureImpactOnAnalyticalLights\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesAndMiscDirty\")\n], qe.prototype, \"opacityTexture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"reflectionTexture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"emissiveTexture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"reflectivityTexture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"metallicTexture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"metallic\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"roughness\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"metallicF0Factor\", void 0);\ny([\n bi(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"metallicReflectanceColor\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useOnlyMetallicFromMetallicReflectanceTexture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"metallicReflectanceTexture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"reflectanceTexture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"microSurfaceTexture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"bumpTexture\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\", null)\n], qe.prototype, \"lightmapTexture\", void 0);\ny([\n bi(\"ambient\"),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"ambientColor\", void 0);\ny([\n bi(\"albedo\"),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"albedoColor\", void 0);\ny([\n bi(\"reflectivity\"),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"reflectivityColor\", void 0);\ny([\n bi(\"reflection\"),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"reflectionColor\", void 0);\ny([\n bi(\"emissive\"),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"emissiveColor\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"microSurface\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useLightmapAsShadowmap\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesAndMiscDirty\")\n], qe.prototype, \"useAlphaFromAlbedoTexture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesAndMiscDirty\")\n], qe.prototype, \"forceAlphaTest\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesAndMiscDirty\")\n], qe.prototype, \"alphaCutOff\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useSpecularOverAlpha\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useMicroSurfaceFromReflectivityMapAlpha\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useRoughnessFromMetallicTextureAlpha\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useRoughnessFromMetallicTextureGreen\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useMetallnessFromMetallicTextureBlue\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useAmbientOcclusionFromMetallicTextureRed\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useAmbientInGrayScale\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useAutoMicroSurfaceFromReflectivityMap\", void 0);\ny([\n I()\n], qe.prototype, \"usePhysicalLightFalloff\", null);\ny([\n I()\n], qe.prototype, \"useGLTFLightFalloff\", null);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useRadianceOverAlpha\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useObjectSpaceNormalMap\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useParallax\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useParallaxOcclusion\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"parallaxScaleBias\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsLightsDirty\")\n], qe.prototype, \"disableLighting\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"forceIrradianceInFragment\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsLightsDirty\")\n], qe.prototype, \"maxSimultaneousLights\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"invertNormalMapX\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"invertNormalMapY\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"twoSidedLighting\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useAlphaFresnel\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useLinearAlphaFresnel\", void 0);\ny([\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"environmentBRDFTexture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"forceNormalForward\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"enableSpecularAntiAliasing\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useHorizonOcclusion\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], qe.prototype, \"useRadianceOcclusion\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsMiscDirty\")\n], qe.prototype, \"unlit\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsMiscDirty\")\n], qe.prototype, \"applyDecalMapAfterDetailMap\", void 0);\nU(\"BABYLON.PBRMaterial\", qe);\nclass SV {\n constructor() {\n this.supportCascades = !0;\n }\n /**\n * This returns if the loader support the current file information.\n * @param extension defines the file extension of the file being loaded\n * @returns true if the loader can load the specified file\n */\n canLoad(e) {\n return e.endsWith(\".dds\");\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n * @param imgs contains the cube maps\n * @param texture defines the BabylonJS internal texture\n * @param createPolynomials will be true if polynomials have been requested\n * @param onLoad defines the callback to trigger once the texture is ready\n */\n loadCubeData(e, t, i, s) {\n const r = t.getEngine();\n let n, o = !1, l = 1e3;\n if (Array.isArray(e))\n for (let h = 0; h < e.length; h++) {\n const c = e[h];\n n = ti.GetDDSInfo(c), t.width = n.width, t.height = n.height, o = (n.isRGB || n.isLuminance || n.mipmapCount > 1) && t.generateMipMaps, r._unpackFlipY(n.isCompressed), ti.UploadDDSLevels(r, t, c, n, o, 6, -1, h), !n.isFourCC && n.mipmapCount === 1 ? r.generateMipMapsForCubemap(t) : l = n.mipmapCount - 1;\n }\n else {\n const h = e;\n n = ti.GetDDSInfo(h), t.width = n.width, t.height = n.height, i && (n.sphericalPolynomial = new uo()), o = (n.isRGB || n.isLuminance || n.mipmapCount > 1) && t.generateMipMaps, r._unpackFlipY(n.isCompressed), ti.UploadDDSLevels(r, t, h, n, o, 6), !n.isFourCC && n.mipmapCount === 1 ? r.generateMipMapsForCubemap(t, !1) : l = n.mipmapCount - 1;\n }\n r._setCubeMapTextureParams(t, o, l), t.isReady = !0, t.onLoadedObservable.notifyObservers(t), t.onLoadedObservable.clear(), s && s({ isDDS: !0, width: t.width, info: n, data: e, texture: t });\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param callback defines the method to call once ready to upload\n */\n loadData(e, t, i) {\n const s = ti.GetDDSInfo(e), r = (s.isRGB || s.isLuminance || s.mipmapCount > 1) && t.generateMipMaps && Math.max(s.width, s.height) >> s.mipmapCount - 1 === 1;\n i(s.width, s.height, r, s.isFourCC, () => {\n ti.UploadDDSLevels(t.getEngine(), t, e, s, r, 1);\n });\n }\n}\nee._TextureLoaders.push(new SV());\nclass bV {\n constructor() {\n this.supportCascades = !1;\n }\n /**\n * This returns if the loader support the current file information.\n * @param extension defines the file extension of the file being loaded\n * @returns true if the loader can load the specified file\n */\n canLoad(e) {\n return e.endsWith(\".env\");\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param createPolynomials will be true if polynomials have been requested\n * @param onLoad defines the callback to trigger once the texture is ready\n * @param onError defines the callback to trigger in case of error\n */\n loadCubeData(e, t, i, s, r) {\n if (Array.isArray(e))\n return;\n const n = xv(e);\n if (n) {\n t.width = n.width, t.height = n.width;\n try {\n Tv(t, n), Y0(t, e, n).then(() => {\n t.isReady = !0, t.onLoadedObservable.notifyObservers(t), t.onLoadedObservable.clear(), s && s();\n }, (o) => {\n r == null || r(\"Can not upload environment levels\", o);\n });\n } catch (o) {\n r == null || r(\"Can not upload environment file\", o);\n }\n } else r && r(\"Can not parse the environment file\", null);\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n */\n loadData() {\n throw \".env not supported in 2d.\";\n }\n}\nee._TextureLoaders.push(new bV());\nclass Ir {\n /**\n * Creates a new KhronosTextureContainer\n * @param data contents of the KTX container file\n * @param facesExpected should be either 1 or 6, based whether a cube texture or or\n */\n constructor(e, t) {\n if (this.data = e, this.isInvalid = !1, !Ir.IsValid(e)) {\n this.isInvalid = !0, L.Error(\"texture missing KTX identifier\");\n return;\n }\n const i = Uint32Array.BYTES_PER_ELEMENT, s = new DataView(this.data.buffer, this.data.byteOffset + 12, 13 * i), n = s.getUint32(0, !0) === 67305985;\n if (this.glType = s.getUint32(1 * i, n), this.glTypeSize = s.getUint32(2 * i, n), this.glFormat = s.getUint32(3 * i, n), this.glInternalFormat = s.getUint32(4 * i, n), this.glBaseInternalFormat = s.getUint32(5 * i, n), this.pixelWidth = s.getUint32(6 * i, n), this.pixelHeight = s.getUint32(7 * i, n), this.pixelDepth = s.getUint32(8 * i, n), this.numberOfArrayElements = s.getUint32(9 * i, n), this.numberOfFaces = s.getUint32(10 * i, n), this.numberOfMipmapLevels = s.getUint32(11 * i, n), this.bytesOfKeyValueData = s.getUint32(12 * i, n), this.glType !== 0) {\n L.Error(\"only compressed formats currently supported\"), this.isInvalid = !0;\n return;\n } else\n this.numberOfMipmapLevels = Math.max(1, this.numberOfMipmapLevels);\n if (this.pixelHeight === 0 || this.pixelDepth !== 0) {\n L.Error(\"only 2D textures currently supported\"), this.isInvalid = !0;\n return;\n }\n if (this.numberOfArrayElements !== 0) {\n L.Error(\"texture arrays not currently supported\"), this.isInvalid = !0;\n return;\n }\n if (this.numberOfFaces !== t) {\n L.Error(\"number of faces expected\" + t + \", but found \" + this.numberOfFaces), this.isInvalid = !0;\n return;\n }\n this.loadType = Ir.COMPRESSED_2D;\n }\n /**\n * Uploads KTX content to a Babylon Texture.\n * It is assumed that the texture has already been created & is currently bound\n * @internal\n */\n uploadLevels(e, t) {\n switch (this.loadType) {\n case Ir.COMPRESSED_2D:\n this._upload2DCompressedLevels(e, t);\n break;\n case Ir.TEX_2D:\n case Ir.COMPRESSED_3D:\n case Ir.TEX_3D:\n }\n }\n _upload2DCompressedLevels(e, t) {\n let i = Ir.HEADER_LEN + this.bytesOfKeyValueData, s = this.pixelWidth, r = this.pixelHeight;\n const n = t ? this.numberOfMipmapLevels : 1;\n for (let o = 0; o < n; o++) {\n const l = new Int32Array(this.data.buffer, this.data.byteOffset + i, 1)[0];\n i += 4;\n for (let h = 0; h < this.numberOfFaces; h++) {\n const c = new Uint8Array(this.data.buffer, this.data.byteOffset + i, l);\n e.getEngine()._uploadCompressedDataToTextureDirectly(e, e.format, s, r, c, h, o), i += l, i += 3 - (l + 3) % 4;\n }\n s = Math.max(1, s * 0.5), r = Math.max(1, r * 0.5);\n }\n }\n /**\n * Checks if the given data starts with a KTX file identifier.\n * @param data the data to check\n * @returns true if the data is a KTX file or false otherwise\n */\n static IsValid(e) {\n if (e.byteLength >= 12) {\n const t = new Uint8Array(e.buffer, e.byteOffset, 12);\n if (t[0] === 171 && t[1] === 75 && t[2] === 84 && t[3] === 88 && t[4] === 32 && t[5] === 49 && t[6] === 49 && t[7] === 187 && t[8] === 13 && t[9] === 10 && t[10] === 26 && t[11] === 10)\n return !0;\n }\n return !1;\n }\n}\nIr.HEADER_LEN = 12 + 13 * 4;\nIr.COMPRESSED_2D = 0;\nIr.COMPRESSED_3D = 1;\nIr.TEX_2D = 2;\nIr.TEX_3D = 3;\nclass EV {\n /**\n * Constructor\n * @param workers Array of workers to use for actions\n */\n constructor(e) {\n this._pendingActions = new Array(), this._workerInfos = e.map((t) => ({\n workerPromise: Promise.resolve(t),\n idle: !0\n }));\n }\n /**\n * Terminates all workers and clears any pending actions.\n */\n dispose() {\n for (const e of this._workerInfos)\n e.workerPromise.then((t) => {\n t.terminate();\n });\n this._workerInfos.length = 0, this._pendingActions.length = 0;\n }\n /**\n * Pushes an action to the worker pool. If all the workers are active, the action will be\n * pended until a worker has completed its action.\n * @param action The action to perform. Call onComplete when the action is complete.\n */\n push(e) {\n this._executeOnIdleWorker(e) || this._pendingActions.push(e);\n }\n _executeOnIdleWorker(e) {\n for (const t of this._workerInfos)\n if (t.idle)\n return this._execute(t, e), !0;\n return !1;\n }\n _execute(e, t) {\n e.idle = !1, e.workerPromise.then((i) => {\n t(i, () => {\n const s = this._pendingActions.shift();\n s ? this._execute(e, s) : e.idle = !0;\n });\n });\n }\n}\nclass Cf extends EV {\n constructor(e, t, i = Cf.DefaultOptions) {\n super([]), this._maxWorkers = e, this._createWorkerAsync = t, this._options = i;\n }\n push(e) {\n if (!this._executeOnIdleWorker(e))\n if (this._workerInfos.length < this._maxWorkers) {\n const t = {\n workerPromise: this._createWorkerAsync(),\n idle: !1\n };\n this._workerInfos.push(t), this._execute(t, e);\n } else\n this._pendingActions.push(e);\n }\n _execute(e, t) {\n e.timeoutId && (clearTimeout(e.timeoutId), delete e.timeoutId), super._execute(e, (i, s) => {\n t(i, () => {\n s(), e.idle && (e.timeoutId = setTimeout(() => {\n e.workerPromise.then((n) => {\n n.terminate();\n });\n const r = this._workerInfos.indexOf(e);\n r !== -1 && this._workerInfos.splice(r, 1);\n }, this._options.idleTimeElapsedBeforeRelease));\n });\n });\n }\n}\nCf.DefaultOptions = {\n idleTimeElapsedBeforeRelease: 1e3\n};\nvar gE;\n(function(a) {\n a[a.ETC1S = 0] = \"ETC1S\", a[a.UASTC4x4 = 1] = \"UASTC4x4\";\n})(gE || (gE = {}));\nvar ru;\n(function(a) {\n a[a.ASTC_4X4_RGBA = 0] = \"ASTC_4X4_RGBA\", a[a.BC7_RGBA = 1] = \"BC7_RGBA\", a[a.BC3_RGBA = 2] = \"BC3_RGBA\", a[a.BC1_RGB = 3] = \"BC1_RGB\", a[a.PVRTC1_4_RGBA = 4] = \"PVRTC1_4_RGBA\", a[a.PVRTC1_4_RGB = 5] = \"PVRTC1_4_RGB\", a[a.ETC2_RGBA = 6] = \"ETC2_RGBA\", a[a.ETC1_RGB = 7] = \"ETC1_RGB\", a[a.RGBA32 = 8] = \"RGBA32\", a[a.R8 = 9] = \"R8\", a[a.RG8 = 10] = \"RG8\";\n})(ru || (ru = {}));\nvar xE;\n(function(a) {\n a[a.COMPRESSED_RGBA_BPTC_UNORM_EXT = 36492] = \"COMPRESSED_RGBA_BPTC_UNORM_EXT\", a[a.COMPRESSED_RGBA_ASTC_4X4_KHR = 37808] = \"COMPRESSED_RGBA_ASTC_4X4_KHR\", a[a.COMPRESSED_RGB_S3TC_DXT1_EXT = 33776] = \"COMPRESSED_RGB_S3TC_DXT1_EXT\", a[a.COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779] = \"COMPRESSED_RGBA_S3TC_DXT5_EXT\", a[a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842] = \"COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\", a[a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840] = \"COMPRESSED_RGB_PVRTC_4BPPV1_IMG\", a[a.COMPRESSED_RGBA8_ETC2_EAC = 37496] = \"COMPRESSED_RGBA8_ETC2_EAC\", a[a.COMPRESSED_RGB8_ETC2 = 37492] = \"COMPRESSED_RGB8_ETC2\", a[a.COMPRESSED_RGB_ETC1_WEBGL = 36196] = \"COMPRESSED_RGB_ETC1_WEBGL\", a[a.RGBA8Format = 32856] = \"RGBA8Format\", a[a.R8Format = 33321] = \"R8Format\", a[a.RG8Format = 33323] = \"RG8Format\";\n})(xE || (xE = {}));\nfunction Wp(a, e) {\n const t = (e == null ? void 0 : e.jsDecoderModule) || KTX2DECODER;\n a && (a.wasmUASTCToASTC && (t.LiteTranscoder_UASTC_ASTC.WasmModuleURL = a.wasmUASTCToASTC), a.wasmUASTCToBC7 && (t.LiteTranscoder_UASTC_BC7.WasmModuleURL = a.wasmUASTCToBC7), a.wasmUASTCToRGBA_UNORM && (t.LiteTranscoder_UASTC_RGBA_UNORM.WasmModuleURL = a.wasmUASTCToRGBA_UNORM), a.wasmUASTCToRGBA_SRGB && (t.LiteTranscoder_UASTC_RGBA_SRGB.WasmModuleURL = a.wasmUASTCToRGBA_SRGB), a.wasmUASTCToR8_UNORM && (t.LiteTranscoder_UASTC_R8_UNORM.WasmModuleURL = a.wasmUASTCToR8_UNORM), a.wasmUASTCToRG8_UNORM && (t.LiteTranscoder_UASTC_RG8_UNORM.WasmModuleURL = a.wasmUASTCToRG8_UNORM), a.jsMSCTranscoder && (t.MSCTranscoder.JSModuleURL = a.jsMSCTranscoder), a.wasmMSCTranscoder && (t.MSCTranscoder.WasmModuleURL = a.wasmMSCTranscoder), a.wasmZSTDDecoder && (t.ZSTDDecoder.WasmModuleURL = a.wasmZSTDDecoder)), e && (e.wasmUASTCToASTC && (t.LiteTranscoder_UASTC_ASTC.WasmBinary = e.wasmUASTCToASTC), e.wasmUASTCToBC7 && (t.LiteTranscoder_UASTC_BC7.WasmBinary = e.wasmUASTCToBC7), e.wasmUASTCToRGBA_UNORM && (t.LiteTranscoder_UASTC_RGBA_UNORM.WasmBinary = e.wasmUASTCToRGBA_UNORM), e.wasmUASTCToRGBA_SRGB && (t.LiteTranscoder_UASTC_RGBA_SRGB.WasmBinary = e.wasmUASTCToRGBA_SRGB), e.wasmUASTCToR8_UNORM && (t.LiteTranscoder_UASTC_R8_UNORM.WasmBinary = e.wasmUASTCToR8_UNORM), e.wasmUASTCToRG8_UNORM && (t.LiteTranscoder_UASTC_RG8_UNORM.WasmBinary = e.wasmUASTCToRG8_UNORM), e.jsMSCTranscoder && (t.MSCTranscoder.JSModule = e.jsMSCTranscoder), e.wasmMSCTranscoder && (t.MSCTranscoder.WasmBinary = e.wasmMSCTranscoder), e.wasmZSTDDecoder && (t.ZSTDDecoder.WasmBinary = e.wasmZSTDDecoder));\n}\nfunction yV(a) {\n typeof a > \"u\" && typeof KTX2DECODER < \"u\" && (a = KTX2DECODER);\n let e;\n onmessage = (t) => {\n if (t.data)\n switch (t.data.action) {\n case \"init\": {\n const i = t.data.urls;\n i && (i.jsDecoderModule && typeof a > \"u\" && (importScripts(i.jsDecoderModule), a = KTX2DECODER), Wp(i)), t.data.wasmBinaries && Wp(void 0, { ...t.data.wasmBinaries, jsDecoderModule: a }), e = new a.KTX2Decoder(), postMessage({ action: \"init\" });\n break;\n }\n case \"setDefaultDecoderOptions\": {\n a.KTX2Decoder.DefaultDecoderOptions = t.data.options;\n break;\n }\n case \"decode\":\n e.decode(t.data.data, t.data.caps, t.data.options).then((i) => {\n const s = [];\n for (let r = 0; r < i.mipmaps.length; ++r) {\n const n = i.mipmaps[r];\n n && n.data && s.push(n.data.buffer);\n }\n postMessage({ action: \"decoded\", success: !0, decodedData: i }, s);\n }).catch((i) => {\n postMessage({ action: \"decoded\", success: !1, msg: i });\n });\n break;\n }\n };\n}\nfunction CV(a, e, t) {\n return new Promise((i, s) => {\n const r = (o) => {\n a.removeEventListener(\"error\", r), a.removeEventListener(\"message\", n), s(o);\n }, n = (o) => {\n o.data.action === \"init\" && (a.removeEventListener(\"error\", r), a.removeEventListener(\"message\", n), i(a));\n };\n a.addEventListener(\"error\", r), a.addEventListener(\"message\", n), a.postMessage({\n action: \"init\",\n urls: t,\n wasmBinaries: e\n });\n });\n}\nclass AV {\n constructor() {\n this._isDirty = !0, this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC = !0, this._ktx2DecoderOptions = {};\n }\n /**\n * Gets the dirty flag\n */\n get isDirty() {\n return this._isDirty;\n }\n /**\n * force a (uncompressed) RGBA transcoded format if transcoding a UASTC source format and ASTC + BC7 are not available as a compressed transcoded format\n */\n get useRGBAIfASTCBC7NotAvailableWhenUASTC() {\n return this._useRGBAIfASTCBC7NotAvailableWhenUASTC;\n }\n set useRGBAIfASTCBC7NotAvailableWhenUASTC(e) {\n this._useRGBAIfASTCBC7NotAvailableWhenUASTC !== e && (this._useRGBAIfASTCBC7NotAvailableWhenUASTC = e, this._isDirty = !0);\n }\n /**\n * force a (uncompressed) RGBA transcoded format if transcoding a UASTC source format and only BC1 or BC3 are available as a compressed transcoded format.\n * This property is true by default to favor speed over memory, because currently transcoding from UASTC to BC1/3 is slow because the transcoder transcodes\n * to uncompressed and then recompresses the texture\n */\n get useRGBAIfOnlyBC1BC3AvailableWhenUASTC() {\n return this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC;\n }\n set useRGBAIfOnlyBC1BC3AvailableWhenUASTC(e) {\n this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC !== e && (this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC = e, this._isDirty = !0);\n }\n /**\n * force to always use (uncompressed) RGBA for transcoded format\n */\n get forceRGBA() {\n return this._forceRGBA;\n }\n set forceRGBA(e) {\n this._forceRGBA !== e && (this._forceRGBA = e, this._isDirty = !0);\n }\n /**\n * force to always use (uncompressed) R8 for transcoded format\n */\n get forceR8() {\n return this._forceR8;\n }\n set forceR8(e) {\n this._forceR8 !== e && (this._forceR8 = e, this._isDirty = !0);\n }\n /**\n * force to always use (uncompressed) RG8 for transcoded format\n */\n get forceRG8() {\n return this._forceRG8;\n }\n set forceRG8(e) {\n this._forceRG8 !== e && (this._forceRG8 = e, this._isDirty = !0);\n }\n /**\n * list of transcoders to bypass when looking for a suitable transcoder. The available transcoders are:\n * UniversalTranscoder_UASTC_ASTC\n * UniversalTranscoder_UASTC_BC7\n * UniversalTranscoder_UASTC_RGBA_UNORM\n * UniversalTranscoder_UASTC_RGBA_SRGB\n * UniversalTranscoder_UASTC_R8_UNORM\n * UniversalTranscoder_UASTC_RG8_UNORM\n * MSCTranscoder\n */\n get bypassTranscoders() {\n return this._bypassTranscoders;\n }\n set bypassTranscoders(e) {\n this._bypassTranscoders !== e && (this._bypassTranscoders = e, this._isDirty = !0);\n }\n /** @internal */\n _getKTX2DecoderOptions() {\n if (!this._isDirty)\n return this._ktx2DecoderOptions;\n this._isDirty = !1;\n const e = {\n useRGBAIfASTCBC7NotAvailableWhenUASTC: this._useRGBAIfASTCBC7NotAvailableWhenUASTC,\n forceRGBA: this._forceRGBA,\n forceR8: this._forceR8,\n forceRG8: this._forceRG8,\n bypassTranscoders: this._bypassTranscoders\n };\n return this.useRGBAIfOnlyBC1BC3AvailableWhenUASTC && (e.transcodeFormatDecisionTree = {\n UASTC: {\n transcodeFormat: [ru.BC1_RGB, ru.BC3_RGBA],\n yes: {\n transcodeFormat: ru.RGBA32,\n engineFormat: 32856,\n roundToMultiple4: !1\n }\n }\n }), this._ktx2DecoderOptions = e, e;\n }\n}\nclass ai {\n static GetDefaultNumWorkers() {\n return typeof navigator != \"object\" || !navigator.hardwareConcurrency ? 1 : Math.min(Math.floor(navigator.hardwareConcurrency * 0.5), 4);\n }\n static _Initialize(e) {\n if (ai._WorkerPoolPromise || ai._DecoderModulePromise)\n return;\n const t = {\n jsDecoderModule: J.GetBabylonScriptURL(this.URLConfig.jsDecoderModule, !0),\n wasmUASTCToASTC: J.GetBabylonScriptURL(this.URLConfig.wasmUASTCToASTC, !0),\n wasmUASTCToBC7: J.GetBabylonScriptURL(this.URLConfig.wasmUASTCToBC7, !0),\n wasmUASTCToRGBA_UNORM: J.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_UNORM, !0),\n wasmUASTCToRGBA_SRGB: J.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_SRGB, !0),\n wasmUASTCToR8_UNORM: J.GetBabylonScriptURL(this.URLConfig.wasmUASTCToR8_UNORM, !0),\n wasmUASTCToRG8_UNORM: J.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRG8_UNORM, !0),\n jsMSCTranscoder: J.GetBabylonScriptURL(this.URLConfig.jsMSCTranscoder, !0),\n wasmMSCTranscoder: J.GetBabylonScriptURL(this.URLConfig.wasmMSCTranscoder, !0),\n wasmZSTDDecoder: J.GetBabylonScriptURL(this.URLConfig.wasmZSTDDecoder, !0)\n };\n e && typeof Worker == \"function\" && typeof URL < \"u\" ? ai._WorkerPoolPromise = new Promise((i) => {\n const s = `${Wp}(${yV})()`, r = URL.createObjectURL(new Blob([s], { type: \"application/javascript\" }));\n i(new Cf(e, () => CV(new Worker(r), void 0, t)));\n }) : typeof ai._KTX2DecoderModule > \"u\" ? ai._DecoderModulePromise = J.LoadBabylonScriptAsync(t.jsDecoderModule).then(() => (ai._KTX2DecoderModule = KTX2DECODER, ai._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread = !1, ai._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread = !0, Wp(t, ai._KTX2DecoderModule), new ai._KTX2DecoderModule.KTX2Decoder())) : (ai._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread = !1, ai._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread = !0, ai._DecoderModulePromise = Promise.resolve(new ai._KTX2DecoderModule.KTX2Decoder()));\n }\n /**\n * Constructor\n * @param engine The engine to use\n * @param numWorkersOrOptions The number of workers for async operations. Specify `0` to disable web workers and run synchronously in the current context.\n */\n constructor(e, t = ai.DefaultNumWorkers) {\n var s;\n this._engine = e;\n const i = typeof t == \"object\" && t.workerPool || ai.WorkerPool;\n if (i)\n ai._WorkerPoolPromise = Promise.resolve(i);\n else {\n typeof t == \"object\" ? ai._KTX2DecoderModule = (s = t == null ? void 0 : t.binariesAndModulesContainer) == null ? void 0 : s.jsDecoderModule : typeof KTX2DECODER < \"u\" && (ai._KTX2DecoderModule = KTX2DECODER);\n const r = typeof t == \"number\" ? t : t.numWorkers ?? ai.DefaultNumWorkers;\n ai._Initialize(r);\n }\n }\n /**\n * @internal\n */\n _uploadAsync(e, t, i) {\n const s = this._engine.getCaps(), r = {\n astc: !!s.astc,\n bptc: !!s.bptc,\n s3tc: !!s.s3tc,\n pvrtc: !!s.pvrtc,\n etc2: !!s.etc2,\n etc1: !!s.etc1\n };\n if (ai._WorkerPoolPromise)\n return ai._WorkerPoolPromise.then((n) => new Promise((o, l) => {\n n.push((h, c) => {\n const u = (p) => {\n h.removeEventListener(\"error\", u), h.removeEventListener(\"message\", d), l(p), c();\n }, d = (p) => {\n if (p.data.action === \"decoded\") {\n if (h.removeEventListener(\"error\", u), h.removeEventListener(\"message\", d), !p.data.success)\n l({ message: p.data.msg });\n else\n try {\n this._createTexture(p.data.decodedData, t, i), o();\n } catch (_) {\n l({ message: _ });\n }\n c();\n }\n };\n h.addEventListener(\"error\", u), h.addEventListener(\"message\", d), h.postMessage({ action: \"setDefaultDecoderOptions\", options: ai.DefaultDecoderOptions._getKTX2DecoderOptions() });\n const f = new Uint8Array(e.byteLength);\n f.set(new Uint8Array(e.buffer, e.byteOffset, e.byteLength)), h.postMessage({ action: \"decode\", data: f, caps: r, options: i }, [f.buffer]);\n });\n }));\n if (ai._DecoderModulePromise)\n return ai._DecoderModulePromise.then((n) => (ai.DefaultDecoderOptions.isDirty && (ai._KTX2DecoderModule.KTX2Decoder.DefaultDecoderOptions = ai.DefaultDecoderOptions._getKTX2DecoderOptions()), new Promise((o, l) => {\n n.decode(e, s).then((h) => {\n this._createTexture(h, t), o();\n }).catch((h) => {\n l({ message: h });\n });\n })));\n throw new Error(\"KTX2 decoder module is not available\");\n }\n _createTexture(e, t, i) {\n this._engine._bindTextureDirectly(3553, t), i && (i.transcodedFormat = e.transcodedFormat, i.isInGammaSpace = e.isInGammaSpace, i.hasAlpha = e.hasAlpha, i.transcoderName = e.transcoderName);\n let r = !0;\n switch (e.transcodedFormat) {\n case 32856:\n t.type = 0, t.format = 5;\n break;\n case 33321:\n t.type = 0, t.format = 6;\n break;\n case 33323:\n t.type = 0, t.format = 7;\n break;\n default:\n t.format = e.transcodedFormat, r = !1;\n break;\n }\n if (t._gammaSpace = e.isInGammaSpace, t.generateMipMaps = e.mipmaps.length > 1, e.errors)\n throw new Error(\"KTX2 container - could not transcode the data. \" + e.errors);\n for (let n = 0; n < e.mipmaps.length; ++n) {\n const o = e.mipmaps[n];\n if (!o || !o.data)\n throw new Error(\"KTX2 container - could not transcode one of the image\");\n r ? (t.width = o.width, t.height = o.height, this._engine._uploadDataToTextureDirectly(t, o.data, 0, n, void 0, !0)) : this._engine._uploadCompressedDataToTextureDirectly(t, e.transcodedFormat, o.width, o.height, o.data, 0, n);\n }\n t._extension = \".ktx2\", t.width = e.mipmaps[0].width, t.height = e.mipmaps[0].height, t.isReady = !0, this._engine._bindTextureDirectly(3553, null);\n }\n /**\n * Checks if the given data starts with a KTX2 file identifier.\n * @param data the data to check\n * @returns true if the data is a KTX2 file or false otherwise\n */\n static IsValid(e) {\n if (e.byteLength >= 12) {\n const t = new Uint8Array(e.buffer, e.byteOffset, 12);\n if (t[0] === 171 && t[1] === 75 && t[2] === 84 && t[3] === 88 && t[4] === 32 && t[5] === 50 && t[6] === 48 && t[7] === 187 && t[8] === 13 && t[9] === 10 && t[10] === 26 && t[11] === 10)\n return !0;\n }\n return !1;\n }\n}\nai.URLConfig = {\n jsDecoderModule: \"https://cdn.babylonjs.com/babylon.ktx2Decoder.js\",\n wasmUASTCToASTC: null,\n wasmUASTCToBC7: null,\n wasmUASTCToRGBA_UNORM: null,\n wasmUASTCToRGBA_SRGB: null,\n wasmUASTCToR8_UNORM: null,\n wasmUASTCToRG8_UNORM: null,\n jsMSCTranscoder: null,\n wasmMSCTranscoder: null,\n wasmZSTDDecoder: null\n};\nai.DefaultNumWorkers = ai.GetDefaultNumWorkers();\nai.DefaultDecoderOptions = new AV();\nfunction RV(a) {\n switch (a) {\n case 35916:\n return 33776;\n case 35918:\n return 33778;\n case 35919:\n return 33779;\n case 37493:\n return 37492;\n case 37497:\n return 37496;\n case 37495:\n return 37494;\n case 37840:\n return 37808;\n case 36493:\n return 36492;\n }\n return null;\n}\nclass IV {\n constructor() {\n this.supportCascades = !1;\n }\n /**\n * This returns if the loader support the current file information.\n * @param extension defines the file extension of the file being loaded\n * @param mimeType defines the optional mime type of the file being loaded\n * @returns true if the loader can load the specified file\n */\n canLoad(e, t) {\n return e.endsWith(\".ktx\") || e.endsWith(\".ktx2\") || t === \"image/ktx\" || t === \"image/ktx2\";\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param createPolynomials will be true if polynomials have been requested\n * @param onLoad defines the callback to trigger once the texture is ready\n */\n loadCubeData(e, t, i, s) {\n if (Array.isArray(e))\n return;\n t._invertVScale = !t.invertY;\n const r = t.getEngine(), n = new Ir(e, 6), o = n.numberOfMipmapLevels > 1 && t.generateMipMaps;\n r._unpackFlipY(!0), n.uploadLevels(t, t.generateMipMaps), t.width = n.pixelWidth, t.height = n.pixelHeight, r._setCubeMapTextureParams(t, o, n.numberOfMipmapLevels - 1), t.isReady = !0, t.onLoadedObservable.notifyObservers(t), t.onLoadedObservable.clear(), s && s();\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param callback defines the method to call once ready to upload\n * @param options\n */\n loadData(e, t, i, s) {\n if (Ir.IsValid(e)) {\n t._invertVScale = !t.invertY;\n const r = new Ir(e, 1), n = RV(r.glInternalFormat);\n n ? (t.format = n, t._useSRGBBuffer = t.getEngine()._getUseSRGBBuffer(!0, t.generateMipMaps), t._gammaSpace = !0) : t.format = r.glInternalFormat, i(r.pixelWidth, r.pixelHeight, t.generateMipMaps, !0, () => {\n r.uploadLevels(t, t.generateMipMaps);\n }, r.isInvalid);\n } else ai.IsValid(e) ? new ai(t.getEngine())._uploadAsync(e, t, s).then(() => {\n i(t.width, t.height, t.generateMipMaps, !0, () => {\n }, !1);\n }, (n) => {\n L.Warn(`Failed to load KTX2 texture data: ${n.message}`), i(0, 0, !1, !1, () => {\n }, !0);\n }) : (L.Error(\"texture missing KTX identifier\"), i(0, 0, !1, !1, () => {\n }, !0));\n }\n}\nee._TextureLoaders.push(new IV());\nclass Wr {\n /**\n * Creates a new component for a motion controller.\n * It is created by the motion controller itself\n *\n * @param id the id of this component\n * @param type the type of the component\n * @param _buttonIndex index in the buttons array of the gamepad\n * @param _axesIndices indices of the values in the axes array of the gamepad\n */\n constructor(e, t, i = -1, s = []) {\n this.id = e, this.type = t, this._buttonIndex = i, this._axesIndices = s, this._axes = {\n x: 0,\n y: 0\n }, this._changes = {}, this._currentValue = 0, this._hasChanges = !1, this._pressed = !1, this._touched = !1, this.onAxisValueChangedObservable = new G(), this.onButtonStateChangedObservable = new G();\n }\n /**\n * The current axes data. If this component has no axes it will still return an object { x: 0, y: 0 }\n */\n get axes() {\n return this._axes;\n }\n /**\n * Get the changes. Elements will be populated only if they changed with their previous and current value\n */\n get changes() {\n return this._changes;\n }\n /**\n * Return whether or not the component changed the last frame\n */\n get hasChanges() {\n return this._hasChanges;\n }\n /**\n * is the button currently pressed\n */\n get pressed() {\n return this._pressed;\n }\n /**\n * is the button currently touched\n */\n get touched() {\n return this._touched;\n }\n /**\n * Get the current value of this component\n */\n get value() {\n return this._currentValue;\n }\n /**\n * Dispose this component\n */\n dispose() {\n this.onAxisValueChangedObservable.clear(), this.onButtonStateChangedObservable.clear();\n }\n /**\n * Are there axes correlating to this component\n * @returns true is axes data is available\n */\n isAxes() {\n return this._axesIndices.length !== 0;\n }\n /**\n * Is this component a button (hence - pressable)\n * @returns true if can be pressed\n */\n isButton() {\n return this._buttonIndex !== -1;\n }\n /**\n * update this component using the gamepad object it is in. Called on every frame\n * @param nativeController the native gamepad controller object\n */\n update(e) {\n let t = !1, i = !1;\n if (this._hasChanges = !1, this._changes = {}, this.isButton()) {\n const s = e.buttons[this._buttonIndex];\n if (!s)\n return;\n this._currentValue !== s.value && (this.changes.value = {\n current: s.value,\n previous: this._currentValue\n }, t = !0, this._currentValue = s.value), this._touched !== s.touched && (this.changes.touched = {\n current: s.touched,\n previous: this._touched\n }, t = !0, this._touched = s.touched), this._pressed !== s.pressed && (this.changes.pressed = {\n current: s.pressed,\n previous: this._pressed\n }, t = !0, this._pressed = s.pressed);\n }\n this.isAxes() && (this._axes.x !== e.axes[this._axesIndices[0]] && (this.changes.axes = {\n current: {\n x: e.axes[this._axesIndices[0]],\n y: this._axes.y\n },\n previous: {\n x: this._axes.x,\n y: this._axes.y\n }\n }, this._axes.x = e.axes[this._axesIndices[0]], i = !0), this._axes.y !== e.axes[this._axesIndices[1]] && (this.changes.axes ? this.changes.axes.current.y = e.axes[this._axesIndices[1]] : this.changes.axes = {\n current: {\n x: this._axes.x,\n y: e.axes[this._axesIndices[1]]\n },\n previous: {\n x: this._axes.x,\n y: this._axes.y\n }\n }, this._axes.y = e.axes[this._axesIndices[1]], i = !0)), t && (this._hasChanges = !0, this.onButtonStateChangedObservable.notifyObservers(this)), i && (this._hasChanges = !0, this.onAxisValueChangedObservable.notifyObservers(this._axes));\n }\n}\nWr.BUTTON_TYPE = \"button\";\nWr.SQUEEZE_TYPE = \"squeeze\";\nWr.THUMBSTICK_TYPE = \"thumbstick\";\nWr.TOUCHPAD_TYPE = \"touchpad\";\nWr.TRIGGER_TYPE = \"trigger\";\nvar vE;\n(function(a) {\n a[a.Clean = 0] = \"Clean\", a[a.Stop = 1] = \"Stop\", a[a.Sync = 2] = \"Sync\", a[a.NoSync = 3] = \"NoSync\";\n})(vE || (vE = {}));\nclass st {\n /**\n * Gets or sets a boolean indicating if entire scene must be loaded even if scene contains incremental data\n */\n static get ForceFullSceneLoadingForIncremental() {\n return Ts.ForceFullSceneLoadingForIncremental;\n }\n static set ForceFullSceneLoadingForIncremental(e) {\n Ts.ForceFullSceneLoadingForIncremental = e;\n }\n /**\n * Gets or sets a boolean indicating if loading screen must be displayed while loading a scene\n */\n static get ShowLoadingScreen() {\n return Ts.ShowLoadingScreen;\n }\n static set ShowLoadingScreen(e) {\n Ts.ShowLoadingScreen = e;\n }\n /**\n * Defines the current logging level (while loading the scene)\n * @ignorenaming\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static get loggingLevel() {\n return Ts.loggingLevel;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static set loggingLevel(e) {\n Ts.loggingLevel = e;\n }\n /**\n * Gets or set a boolean indicating if matrix weights must be cleaned upon loading\n */\n static get CleanBoneMatrixWeights() {\n return Ts.CleanBoneMatrixWeights;\n }\n static set CleanBoneMatrixWeights(e) {\n Ts.CleanBoneMatrixWeights = e;\n }\n /**\n * Gets the default plugin (used to load Babylon files)\n * @returns the .babylon plugin\n */\n static GetDefaultPlugin() {\n return st._RegisteredPlugins[\".babylon\"];\n }\n static _GetPluginForExtension(e) {\n const t = st._RegisteredPlugins[e];\n return t || (L.Warn(\"Unable to find a plugin to load \" + e + \" files. Trying to use .babylon default plugin. To load from a specific filetype (eg. gltf) see: https://doc.babylonjs.com/features/featuresDeepDive/importers/loadingFileTypes\"), st.GetDefaultPlugin());\n }\n static _GetPluginForDirectLoad(e) {\n for (const t in st._RegisteredPlugins) {\n const i = st._RegisteredPlugins[t].plugin;\n if (i.canDirectLoad && i.canDirectLoad(e))\n return st._RegisteredPlugins[t];\n }\n return st.GetDefaultPlugin();\n }\n static _GetPluginForFilename(e) {\n const t = e.indexOf(\"?\");\n t !== -1 && (e = e.substring(0, t));\n const i = e.lastIndexOf(\".\"), s = e.substring(i, e.length).toLowerCase();\n return st._GetPluginForExtension(s);\n }\n static _GetDirectLoad(e) {\n return e.substr(0, 5) === \"data:\" ? e.substr(5) : null;\n }\n static _FormatErrorMessage(e, t, i) {\n let r = \"Unable to load from \" + (e.rawData ? \"binary data\" : e.url);\n return t ? r += `: ${t}` : i && (r += `: ${i}`), r;\n }\n static _LoadData(e, t, i, s, r, n, o, l) {\n var T, E, b;\n const h = st._GetDirectLoad(e.url);\n if (e.rawData && !o)\n throw \"When using ArrayBufferView to load data the file extension must be provided.\";\n const c = o ? st._GetPluginForExtension(o) : h ? st._GetPluginForDirectLoad(e.url) : st._GetPluginForFilename(e.url);\n if (e.rawData && !c.isBinary)\n throw \"Loading from ArrayBufferView can not be used with plugins that don't support binary loading.\";\n const u = ((E = (T = c.plugin).createPlugin) == null ? void 0 : E.call(T)) ?? c.plugin;\n if (!u)\n throw \"The loader plugin corresponding to the file type you are trying to load has not been found. If using es6, please import the plugin you wish to use before.\";\n if (st.OnPluginActivatedObservable.notifyObservers(u), h && (u.canDirectLoad && u.canDirectLoad(e.url) || !Tx(e.url))) {\n if (u.directLoad) {\n const S = u.directLoad(t, h);\n S instanceof Promise ? S.then((C) => {\n i(u, C);\n }).catch((C) => {\n r(\"Error in directLoad of _loadData: \" + C, C);\n }) : i(u, S);\n } else\n i(u, h);\n return u;\n }\n const d = c.isBinary, f = (S, C) => {\n if (t.isDisposed) {\n r(\"Scene has been disposed\");\n return;\n }\n i(u, S, C);\n };\n let p = null, _ = !1;\n (b = u.onDisposeObservable) == null || b.add(() => {\n _ = !0, p && (p.abort(), p = null), n();\n });\n const m = () => {\n if (_)\n return;\n const S = (C, P) => {\n r(C == null ? void 0 : C.statusText, P);\n };\n if (!u.loadFile && e.rawData)\n throw \"Plugin does not support loading ArrayBufferView.\";\n p = u.loadFile ? u.loadFile(t, e.rawData || e.file || e.url, e.rootUrl, f, s, d, S, l) : t._loadFile(e.file || e.url, f, s, !0, d, S);\n }, x = t.getEngine();\n let v = x.enableOfflineSupport;\n if (v) {\n let S = !1;\n for (const C of t.disableOfflineSupportExceptionRules)\n if (C.test(e.url)) {\n S = !0;\n break;\n }\n v = !S;\n }\n return v && ee.OfflineProviderFactory ? t.offlineProvider = ee.OfflineProviderFactory(e.url, m, x.disableManifestCheck) : m(), u;\n }\n static _GetFileInfo(e, t) {\n let i, s, r = null, n = null;\n if (!t)\n i = e, s = J.GetFilename(e), e = J.GetFolderPath(e);\n else if (t.name) {\n const o = t;\n i = `file:${o.name}`, s = o.name, r = o;\n } else if (ArrayBuffer.isView(t))\n i = \"\", s = vo(), n = t;\n else if (typeof t == \"string\" && t.startsWith(\"data:\"))\n i = t, s = \"\";\n else {\n const o = t;\n if (o.substr(0, 1) === \"/\")\n return J.Error(\"Wrong sceneFilename parameter\"), null;\n i = e + o, s = o;\n }\n return {\n url: i,\n rootUrl: e,\n name: s,\n file: r,\n rawData: n\n };\n }\n // Public functions\n /**\n * Gets a plugin that can load the given extension\n * @param extension defines the extension to load\n * @returns a plugin or null if none works\n */\n static GetPluginForExtension(e) {\n return st._GetPluginForExtension(e).plugin;\n }\n /**\n * Gets a boolean indicating that the given extension can be loaded\n * @param extension defines the extension to load\n * @returns true if the extension is supported\n */\n static IsPluginForExtensionAvailable(e) {\n return !!st._RegisteredPlugins[e];\n }\n /**\n * Adds a new plugin to the list of registered plugins\n * @param plugin defines the plugin to add\n */\n static RegisterPlugin(e) {\n if (typeof e.extensions == \"string\") {\n const t = e.extensions;\n st._RegisteredPlugins[t.toLowerCase()] = {\n plugin: e,\n isBinary: !1\n };\n } else {\n const t = e.extensions;\n Object.keys(t).forEach((i) => {\n st._RegisteredPlugins[i.toLowerCase()] = {\n plugin: e,\n isBinary: t[i].isBinary\n };\n });\n }\n }\n /**\n * Import meshes into a scene\n * @param meshNames an array of mesh names, a single mesh name, or empty string for all meshes that filter what meshes are imported\n * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)\n * @param sceneFilename a string that defines the name of the scene file or starts with \"data:\" following by the stringified version of the scene or a File object (default: empty string)\n * @param scene the instance of BABYLON.Scene to append to\n * @param onSuccess a callback with a list of imported meshes, particleSystems, skeletons, and animationGroups when import succeeds\n * @param onProgress a callback with a progress event for each file being loaded\n * @param onError a callback with the scene, a message, and possibly an exception when import fails\n * @param pluginExtension the extension used to determine the plugin\n * @param name defines the name of the file, if the data is binary\n * @returns The loaded plugin\n */\n static ImportMesh(e, t, i = \"\", s = Me.LastCreatedScene, r = null, n = null, o = null, l = null, h = \"\") {\n if (!s)\n return L.Error(\"No scene available to import mesh to\"), null;\n const c = st._GetFileInfo(t, i);\n if (!c)\n return null;\n const u = {};\n s.addPendingData(u);\n const d = () => {\n s.removePendingData(u);\n }, f = (m, x) => {\n const v = st._FormatErrorMessage(c, m, x);\n o ? o(s, v, new Ia(v, Go.SceneLoaderError, x)) : L.Error(v), d();\n }, p = n ? (m) => {\n try {\n n(m);\n } catch (x) {\n f(\"Error in onProgress callback: \" + x, x);\n }\n } : void 0, _ = (m, x, v, T, E, b, S, C) => {\n if (s.importedMeshesFiles.push(c.url), r)\n try {\n r(m, x, v, T, E, b, S, C);\n } catch (P) {\n f(\"Error in onSuccess callback: \" + P, P);\n }\n s.removePendingData(u);\n };\n return st._LoadData(c, s, (m, x, v) => {\n if (m.rewriteRootURL && (c.rootUrl = m.rewriteRootURL(c.rootUrl, v)), m.importMesh) {\n const T = m, E = [], b = [], S = [];\n if (!T.importMesh(e, s, x, c.rootUrl, E, b, S, f))\n return;\n s.loadingPluginName = m.name, _(E, b, S, [], [], [], [], []);\n } else\n m.importMeshAsync(e, s, x, c.rootUrl, p, c.name).then((E) => {\n s.loadingPluginName = m.name, _(E.meshes, E.particleSystems, E.skeletons, E.animationGroups, E.transformNodes, E.geometries, E.lights, E.spriteManagers);\n }).catch((E) => {\n f(E.message, E);\n });\n }, p, f, d, l, h);\n }\n /**\n * Import meshes into a scene\n * @param meshNames an array of mesh names, a single mesh name, or empty string for all meshes that filter what meshes are imported\n * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)\n * @param sceneFilename a string that defines the name of the scene file or starts with \"data:\" following by the stringified version of the scene or a File object (default: empty string)\n * @param scene the instance of BABYLON.Scene to append to\n * @param onProgress a callback with a progress event for each file being loaded\n * @param pluginExtension the extension used to determine the plugin\n * @param name defines the name of the file\n * @returns The loaded list of imported meshes, particle systems, skeletons, and animation groups\n */\n static ImportMeshAsync(e, t, i = \"\", s = Me.LastCreatedScene, r = null, n = null, o = \"\") {\n return new Promise((l, h) => {\n st.ImportMesh(e, t, i, s, (c, u, d, f, p, _, m, x) => {\n l({\n meshes: c,\n particleSystems: u,\n skeletons: d,\n animationGroups: f,\n transformNodes: p,\n geometries: _,\n lights: m,\n spriteManagers: x\n });\n }, r, (c, u, d) => {\n h(d || new Error(u));\n }, n, o);\n });\n }\n /**\n * Load a scene\n * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)\n * @param sceneFilename a string that defines the name of the scene file or starts with \"data:\" following by the stringified version of the scene or a File object (default: empty string)\n * @param engine is the instance of BABYLON.Engine to use to create the scene\n * @param onSuccess a callback with the scene when import succeeds\n * @param onProgress a callback with a progress event for each file being loaded\n * @param onError a callback with the scene, a message, and possibly an exception when import fails\n * @param pluginExtension the extension used to determine the plugin\n * @param name defines the filename, if the data is binary\n * @returns The loaded plugin\n */\n static Load(e, t = \"\", i = Me.LastCreatedEngine, s = null, r = null, n = null, o = null, l = \"\") {\n return i ? st.Append(e, t, new De(i), s, r, n, o, l) : (J.Error(\"No engine available\"), null);\n }\n /**\n * Load a scene\n * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)\n * @param sceneFilename a string that defines the name of the scene file or starts with \"data:\" following by the stringified version of the scene or a File object (default: empty string)\n * @param engine is the instance of BABYLON.Engine to use to create the scene\n * @param onProgress a callback with a progress event for each file being loaded\n * @param pluginExtension the extension used to determine the plugin\n * @param name defines the filename, if the data is binary\n * @returns The loaded scene\n */\n static LoadAsync(e, t = \"\", i = Me.LastCreatedEngine, s = null, r = null, n = \"\") {\n return new Promise((o, l) => {\n st.Load(e, t, i, (h) => {\n o(h);\n }, s, (h, c, u) => {\n l(u || new Error(c));\n }, r, n);\n });\n }\n /**\n * Append a scene\n * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)\n * @param sceneFilename a string that defines the name of the scene file or starts with \"data:\" following by the stringified version of the scene or a File object (default: empty string)\n * @param scene is the instance of BABYLON.Scene to append to\n * @param onSuccess a callback with the scene when import succeeds\n * @param onProgress a callback with a progress event for each file being loaded\n * @param onError a callback with the scene, a message, and possibly an exception when import fails\n * @param pluginExtension the extension used to determine the plugin\n * @param name defines the name of the file, if the data is binary\n * @returns The loaded plugin\n */\n static Append(e, t = \"\", i = Me.LastCreatedScene, s = null, r = null, n = null, o = null, l = \"\") {\n if (!i)\n return L.Error(\"No scene available to append to\"), null;\n const h = st._GetFileInfo(e, t);\n if (!h)\n return null;\n const c = {};\n i.addPendingData(c);\n const u = () => {\n i.removePendingData(c);\n };\n st.ShowLoadingScreen && !this._ShowingLoadingScreen && (this._ShowingLoadingScreen = !0, i.getEngine().displayLoadingUI(), i.executeWhenReady(() => {\n i.getEngine().hideLoadingUI(), this._ShowingLoadingScreen = !1;\n }));\n const d = (_, m) => {\n const x = st._FormatErrorMessage(h, _, m);\n n ? n(i, x, new Ia(x, Go.SceneLoaderError, m)) : L.Error(x), u();\n }, f = r ? (_) => {\n try {\n r(_);\n } catch (m) {\n d(\"Error in onProgress callback\", m);\n }\n } : void 0, p = () => {\n if (s)\n try {\n s(i);\n } catch (_) {\n d(\"Error in onSuccess callback\", _);\n }\n i.removePendingData(c);\n };\n return st._LoadData(h, i, (_, m) => {\n if (_.load) {\n if (!_.load(i, m, h.rootUrl, d))\n return;\n i.loadingPluginName = _.name, p();\n } else\n _.loadAsync(i, m, h.rootUrl, f, h.name).then(() => {\n i.loadingPluginName = _.name, p();\n }).catch((v) => {\n d(v.message, v);\n });\n }, f, d, u, o, l);\n }\n /**\n * Append a scene\n * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)\n * @param sceneFilename a string that defines the name of the scene file or starts with \"data:\" following by the stringified version of the scene or a File object (default: empty string)\n * @param scene is the instance of BABYLON.Scene to append to\n * @param onProgress a callback with a progress event for each file being loaded\n * @param pluginExtension the extension used to determine the plugin\n * @param name defines the name of the file, if the data is binary\n * @returns The given scene\n */\n static AppendAsync(e, t = \"\", i = Me.LastCreatedScene, s = null, r = null, n = \"\") {\n return new Promise((o, l) => {\n st.Append(e, t, i, (h) => {\n o(h);\n }, s, (h, c, u) => {\n l(u || new Error(c));\n }, r, n);\n });\n }\n /**\n * Load a scene into an asset container\n * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)\n * @param sceneFilename a string that defines the name of the scene file or starts with \"data:\" following by the stringified version of the scene or a File object (default: empty string)\n * @param scene is the instance of BABYLON.Scene to append to (default: last created scene)\n * @param onSuccess a callback with the scene when import succeeds\n * @param onProgress a callback with a progress event for each file being loaded\n * @param onError a callback with the scene, a message, and possibly an exception when import fails\n * @param pluginExtension the extension used to determine the plugin\n * @param name defines the filename, if the data is binary\n * @returns The loaded plugin\n */\n static LoadAssetContainer(e, t = \"\", i = Me.LastCreatedScene, s = null, r = null, n = null, o = null, l = \"\") {\n if (!i)\n return L.Error(\"No scene available to load asset container to\"), null;\n const h = st._GetFileInfo(e, t);\n if (!h)\n return null;\n const c = {};\n i.addPendingData(c);\n const u = () => {\n i.removePendingData(c);\n }, d = (_, m) => {\n const x = st._FormatErrorMessage(h, _, m);\n n ? n(i, x, new Ia(x, Go.SceneLoaderError, m)) : L.Error(x), u();\n }, f = r ? (_) => {\n try {\n r(_);\n } catch (m) {\n d(\"Error in onProgress callback\", m);\n }\n } : void 0, p = (_) => {\n if (s)\n try {\n s(_);\n } catch (m) {\n d(\"Error in onSuccess callback\", m);\n }\n i.removePendingData(c);\n };\n return st._LoadData(h, i, (_, m) => {\n if (_.loadAssetContainer) {\n const v = _.loadAssetContainer(i, m, h.rootUrl, d);\n if (!v)\n return;\n v.populateRootNodes(), i.loadingPluginName = _.name, p(v);\n } else _.loadAssetContainerAsync ? _.loadAssetContainerAsync(i, m, h.rootUrl, f, h.name).then((v) => {\n v.populateRootNodes(), i.loadingPluginName = _.name, p(v);\n }).catch((v) => {\n d(v.message, v);\n }) : d(\"LoadAssetContainer is not supported by this plugin. Plugin did not provide a loadAssetContainer or loadAssetContainerAsync method.\");\n }, f, d, u, o, l);\n }\n /**\n * Load a scene into an asset container\n * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)\n * @param sceneFilename a string that defines the name of the scene file or starts with \"data:\" following by the stringified version of the scene (default: empty string)\n * @param scene is the instance of Scene to append to\n * @param onProgress a callback with a progress event for each file being loaded\n * @param pluginExtension the extension used to determine the plugin\n * @returns The loaded asset container\n */\n static LoadAssetContainerAsync(e, t = \"\", i = Me.LastCreatedScene, s = null, r = null) {\n return new Promise((n, o) => {\n st.LoadAssetContainer(e, t, i, (l) => {\n n(l);\n }, s, (l, h, c) => {\n o(c || new Error(h));\n }, r);\n });\n }\n /**\n * Import animations from a file into a scene\n * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)\n * @param sceneFilename a string that defines the name of the scene file or starts with \"data:\" following by the stringified version of the scene or a File object (default: empty string)\n * @param scene is the instance of BABYLON.Scene to append to (default: last created scene)\n * @param overwriteAnimations when true, animations are cleaned before importing new ones. Animations are appended otherwise\n * @param animationGroupLoadingMode defines how to handle old animations groups before importing new ones\n * @param targetConverter defines a function used to convert animation targets from loaded scene to current scene (default: search node by name)\n * @param onSuccess a callback with the scene when import succeeds\n * @param onProgress a callback with a progress event for each file being loaded\n * @param onError a callback with the scene, a message, and possibly an exception when import fails\n * @param pluginExtension the extension used to determine the plugin\n */\n static ImportAnimations(e, t = \"\", i = Me.LastCreatedScene, s = !0, r = 0, n = null, o = null, l = null, h = null, c = null) {\n if (!i) {\n L.Error(\"No scene available to load animations to\");\n return;\n }\n if (s) {\n for (const p of i.animatables)\n p.reset();\n i.stopAllAnimations(), i.animationGroups.slice().forEach((p) => {\n p.dispose();\n }), i.getNodes().forEach((p) => {\n p.animations && (p.animations = []);\n });\n } else\n switch (r) {\n case 0:\n i.animationGroups.slice().forEach((f) => {\n f.dispose();\n });\n break;\n case 1:\n i.animationGroups.forEach((f) => {\n f.stop();\n });\n break;\n case 2:\n i.animationGroups.forEach((f) => {\n f.reset(), f.restart();\n });\n break;\n case 3:\n break;\n default:\n L.Error(\"Unknown animation group loading mode value '\" + r + \"'\");\n return;\n }\n const u = i.animatables.length, d = (f) => {\n f.mergeAnimationsTo(i, i.animatables.slice(u), n), f.dispose(), i.onAnimationFileImportedObservable.notifyObservers(i), o && o(i);\n };\n this.LoadAssetContainer(e, t, i, d, l, h, c);\n }\n /**\n * Import animations from a file into a scene\n * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)\n * @param sceneFilename a string that defines the name of the scene file or starts with \"data:\" following by the stringified version of the scene or a File object (default: empty string)\n * @param scene is the instance of BABYLON.Scene to append to (default: last created scene)\n * @param overwriteAnimations when true, animations are cleaned before importing new ones. Animations are appended otherwise\n * @param animationGroupLoadingMode defines how to handle old animations groups before importing new ones\n * @param targetConverter defines a function used to convert animation targets from loaded scene to current scene (default: search node by name)\n * @param onSuccess a callback with the scene when import succeeds\n * @param onProgress a callback with a progress event for each file being loaded\n * @param onError a callback with the scene, a message, and possibly an exception when import fails\n * @param pluginExtension the extension used to determine the plugin\n * @returns the updated scene with imported animations\n */\n static ImportAnimationsAsync(e, t = \"\", i = Me.LastCreatedScene, s = !0, r = 0, n = null, o = null, l = null, h = null, c = null) {\n return new Promise((u, d) => {\n st.ImportAnimations(e, t, i, s, r, n, (f) => {\n u(f);\n }, l, (f, p, _) => {\n d(_ || new Error(p));\n }, c);\n });\n }\n}\nst.NO_LOGGING = 0;\nst.MINIMAL_LOGGING = 1;\nst.SUMMARY_LOGGING = 2;\nst.DETAILED_LOGGING = 3;\nst.OnPluginActivatedObservable = new G();\nst._RegisteredPlugins = {};\nst._ShowingLoadingScreen = !1;\nclass zl {\n /**\n * constructs a new abstract motion controller\n * @param scene the scene to which the model of the controller will be added\n * @param layout The profile layout to load\n * @param gamepadObject The gamepad object correlating to this controller\n * @param handedness handedness (left/right/none) of this controller\n * @param _doNotLoadControllerMesh set this flag to ignore the mesh loading\n * @param _controllerCache a cache holding controller models already loaded in this session\n */\n constructor(e, t, i, s, r = !1, n) {\n this.scene = e, this.layout = t, this.gamepadObject = i, this.handedness = s, this._doNotLoadControllerMesh = r, this._controllerCache = n, this._initComponent = (o) => {\n if (!o)\n return;\n const l = this.layout.components[o], h = l.type, c = l.gamepadIndices.button, u = [];\n l.gamepadIndices.xAxis !== void 0 && l.gamepadIndices.yAxis !== void 0 && u.push(l.gamepadIndices.xAxis, l.gamepadIndices.yAxis), this.components[o] = new Wr(o, h, c, u);\n }, this._modelReady = !1, this.components = {}, this.disableAnimation = !1, this.onModelLoadedObservable = new G(), t.components && Object.keys(t.components).forEach(this._initComponent);\n }\n /**\n * Dispose this controller, the model mesh and all its components\n */\n dispose() {\n this.getComponentIds().forEach((e) => this.getComponent(e).dispose()), this.rootMesh && (this.rootMesh.getChildren(void 0, !0).forEach((e) => {\n e.setEnabled(!1);\n }), this.rootMesh.dispose(!!this._controllerCache, !this._controllerCache));\n }\n /**\n * Returns all components of specific type\n * @param type the type to search for\n * @returns an array of components with this type\n */\n getAllComponentsOfType(e) {\n return this.getComponentIds().map((t) => this.components[t]).filter((t) => t.type === e);\n }\n /**\n * get a component based an its component id as defined in layout.components\n * @param id the id of the component\n * @returns the component correlates to the id or undefined if not found\n */\n getComponent(e) {\n return this.components[e];\n }\n /**\n * Get the list of components available in this motion controller\n * @returns an array of strings correlating to available components\n */\n getComponentIds() {\n return Object.keys(this.components);\n }\n /**\n * Get the first component of specific type\n * @param type type of component to find\n * @returns a controller component or null if not found\n */\n getComponentOfType(e) {\n return this.getAllComponentsOfType(e)[0] || null;\n }\n /**\n * Get the main (Select) component of this controller as defined in the layout\n * @returns the main component of this controller\n */\n getMainComponent() {\n return this.getComponent(this.layout.selectComponentId);\n }\n /**\n * Loads the model correlating to this controller\n * When the mesh is loaded, the onModelLoadedObservable will be triggered\n * @returns A promise fulfilled with the result of the model loading\n */\n async loadModel() {\n const e = !this._getModelLoadingConstraints();\n let t = this._getGenericFilenameAndPath();\n return e ? L.Warn(\"Falling back to generic models\") : t = this._getFilenameAndPath(), new Promise((i, s) => {\n const r = (n) => {\n e ? this._getGenericParentMesh(n) : this._setRootMesh(n), this._processLoadedModel(n), this._modelReady = !0, this.onModelLoadedObservable.notifyObservers(this), i(!0);\n };\n if (this._controllerCache) {\n const n = this._controllerCache.filter((o) => o.filename === t.filename && o.path === t.path);\n if (n[0]) {\n n[0].meshes.forEach((o) => o.setEnabled(!0)), r(n[0].meshes);\n return;\n }\n }\n st.ImportMesh(\"\", t.path, t.filename, this.scene, (n) => {\n this._controllerCache && this._controllerCache.push({\n ...t,\n meshes: n\n }), r(n);\n }, null, (n, o) => {\n L.Log(o), L.Warn(`Failed to retrieve controller model of type ${this.profileId} from the remote server: ${t.path}${t.filename}`), s(o);\n });\n });\n }\n /**\n * Update this model using the current XRFrame\n * @param xrFrame the current xr frame to use and update the model\n */\n updateFromXRFrame(e) {\n this.getComponentIds().forEach((t) => this.getComponent(t).update(this.gamepadObject)), this.updateModel(e);\n }\n /**\n * Backwards compatibility due to a deeply-integrated typo\n */\n get handness() {\n return this.handedness;\n }\n /**\n * Pulse (vibrate) this controller\n * If the controller does not support pulses, this function will fail silently and return Promise directly after called\n * Consecutive calls to this function will cancel the last pulse call\n *\n * @param value the strength of the pulse in 0.0...1.0 range\n * @param duration Duration of the pulse in milliseconds\n * @param hapticActuatorIndex optional index of actuator (will usually be 0)\n * @returns a promise that will send true when the pulse has ended and false if the device doesn't support pulse or an error accrued\n */\n pulse(e, t, i = 0) {\n return this.gamepadObject.hapticActuators && this.gamepadObject.hapticActuators[i] ? this.gamepadObject.hapticActuators[i].pulse(e, t) : Promise.resolve(!1);\n }\n // Look through all children recursively. This will return null if no mesh exists with the given name.\n _getChildByName(e, t) {\n return e.getChildren((i) => i.name === t, !1)[0];\n }\n // Look through only immediate children. This will return null if no mesh exists with the given name.\n _getImmediateChildByName(e, t) {\n return e.getChildren((i) => i.name == t, !0)[0];\n }\n /**\n * Moves the axis on the controller mesh based on its current state\n * @param axisMap\n * @param axisValue the value of the axis which determines the meshes new position\n * @internal\n */\n _lerpTransform(e, t, i) {\n if (!e.minMesh || !e.maxMesh || !e.valueMesh || !e.minMesh.rotationQuaternion || !e.maxMesh.rotationQuaternion || !e.valueMesh.rotationQuaternion)\n return;\n const s = i ? t * 0.5 + 0.5 : t;\n se.SlerpToRef(e.minMesh.rotationQuaternion, e.maxMesh.rotationQuaternion, s, e.valueMesh.rotationQuaternion), g.LerpToRef(e.minMesh.position, e.maxMesh.position, s, e.valueMesh.position);\n }\n /**\n * Update the model itself with the current frame data\n * @param xrFrame the frame to use for updating the model mesh\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n updateModel(e) {\n this._modelReady && this._updateModel(e);\n }\n _getGenericFilenameAndPath() {\n return {\n filename: \"generic.babylon\",\n path: \"https://controllers.babylonjs.com/generic/\"\n };\n }\n _getGenericParentMesh(e) {\n this.rootMesh = new H(this.profileId + \" \" + this.handedness, this.scene), e.forEach((t) => {\n t.parent || (t.isPickable = !1, t.setParent(this.rootMesh));\n }), this.rootMesh.rotationQuaternion = se.FromEulerAngles(0, Math.PI, 0);\n }\n}\nclass ec extends zl {\n constructor(e, t, i) {\n super(e, PV[i], t, i), this.profileId = ec.ProfileId;\n }\n _getFilenameAndPath() {\n return {\n filename: \"generic.babylon\",\n path: \"https://controllers.babylonjs.com/generic/\"\n };\n }\n _getModelLoadingConstraints() {\n return !0;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _processLoadedModel(e) {\n }\n _setRootMesh(e) {\n this.rootMesh = new H(this.profileId + \" \" + this.handedness, this.scene), e.forEach((t) => {\n t.isPickable = !1, t.parent || t.setParent(this.rootMesh);\n }), this.rootMesh.rotationQuaternion = se.FromEulerAngles(0, Math.PI, 0);\n }\n _updateModel() {\n }\n}\nec.ProfileId = \"generic-trigger\";\nconst PV = {\n left: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {}\n }\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"generic-trigger-left\",\n assetPath: \"left.glb\"\n },\n right: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {}\n }\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"generic-trigger-right\",\n assetPath: \"right.glb\"\n },\n none: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {}\n }\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"generic-trigger-none\",\n assetPath: \"none.glb\"\n }\n};\nclass K0 extends zl {\n constructor(e, t, i, s, r) {\n super(e, i.layouts[t.handedness || \"none\"], t.gamepad, t.handedness, void 0, r), this._repositoryUrl = s, this.controllerCache = r, this._buttonMeshMapping = {}, this._touchDots = {}, this.profileId = i.profileId;\n }\n dispose() {\n super.dispose(), this.controllerCache || Object.keys(this._touchDots).forEach((e) => {\n this._touchDots[e].dispose();\n });\n }\n _getFilenameAndPath() {\n return {\n filename: this.layout.assetPath,\n path: `${this._repositoryUrl}/profiles/${this.profileId}/`\n };\n }\n _getModelLoadingConstraints() {\n const e = st.IsPluginForExtensionAvailable(\".glb\");\n return e || L.Warn(\"glTF / glb loader was not registered, using generic controller instead\"), e;\n }\n _processLoadedModel(e) {\n this.getComponentIds().forEach((t) => {\n const i = this.layout.components[t];\n this._buttonMeshMapping[t] = {\n mainMesh: this._getChildByName(this.rootMesh, i.rootNodeName),\n states: {}\n }, Object.keys(i.visualResponses).forEach((s) => {\n const r = i.visualResponses[s];\n if (r.valueNodeProperty === \"transform\")\n this._buttonMeshMapping[t].states[s] = {\n valueMesh: this._getChildByName(this.rootMesh, r.valueNodeName),\n minMesh: this._getChildByName(this.rootMesh, r.minNodeName),\n maxMesh: this._getChildByName(this.rootMesh, r.maxNodeName)\n };\n else {\n const n = i.type === Wr.TOUCHPAD_TYPE && i.touchPointNodeName ? i.touchPointNodeName : r.valueNodeName;\n if (this._buttonMeshMapping[t].states[s] = {\n valueMesh: this._getChildByName(this.rootMesh, n)\n }, i.type === Wr.TOUCHPAD_TYPE && !this._touchDots[s]) {\n const o = Tr(s + \"dot\", {\n diameter: 15e-4,\n segments: 8\n }, this.scene);\n o.material = new ye(s + \"mat\", this.scene), o.material.diffuseColor = re.Red(), o.parent = this._buttonMeshMapping[t].states[s].valueMesh || null, o.isVisible = !1, this._touchDots[s] = o;\n }\n }\n });\n });\n }\n _setRootMesh(e) {\n this.rootMesh = new H(this.profileId + \"-\" + this.handedness, this.scene), this.rootMesh.isPickable = !1;\n let t;\n for (let i = 0; i < e.length; i++) {\n const s = e[i];\n s.isPickable = !1, s.parent || (t = s);\n }\n t && t.setParent(this.rootMesh), this.scene.useRightHandedSystem || this.rootMesh.rotate(\n zs.Y,\n Math.PI,\n 1\n /* Space.WORLD */\n );\n }\n _updateModel(e) {\n this.disableAnimation || this.getComponentIds().forEach((t) => {\n const i = this.getComponent(t);\n if (!i.hasChanges)\n return;\n const s = this._buttonMeshMapping[t], r = this.layout.components[t];\n Object.keys(r.visualResponses).forEach((n) => {\n const o = r.visualResponses[n];\n let l = i.value;\n if (o.componentProperty === \"xAxis\" ? l = i.axes.x : o.componentProperty === \"yAxis\" && (l = i.axes.y), o.valueNodeProperty === \"transform\")\n this._lerpTransform(s.states[n], l, o.componentProperty !== \"button\");\n else {\n const h = s.states[n].valueMesh;\n h && (h.isVisible = i.touched || i.pressed), this._touchDots[n] && (this._touchDots[n].isVisible = i.touched || i.pressed);\n }\n });\n });\n }\n}\nconst Qm = [];\nclass Ss {\n /**\n * Clear the cache used for profile loading and reload when requested again\n */\n static ClearProfilesCache() {\n this._ProfilesList = null, this._ProfileLoadingPromises = {};\n }\n /**\n * Register the default fallbacks.\n * This function is called automatically when this file is imported.\n */\n static DefaultFallbacks() {\n this.RegisterFallbacksForProfileId(\"google-daydream\", [\"generic-touchpad\"]), this.RegisterFallbacksForProfileId(\"htc-vive-focus\", [\"generic-trigger-touchpad\"]), this.RegisterFallbacksForProfileId(\"htc-vive\", [\"generic-trigger-squeeze-touchpad\"]), this.RegisterFallbacksForProfileId(\"magicleap-one\", [\"generic-trigger-squeeze-touchpad\"]), this.RegisterFallbacksForProfileId(\"windows-mixed-reality\", [\"generic-trigger-squeeze-touchpad-thumbstick\"]), this.RegisterFallbacksForProfileId(\"microsoft-mixed-reality\", [\"windows-mixed-reality\", \"generic-trigger-squeeze-touchpad-thumbstick\"]), this.RegisterFallbacksForProfileId(\"oculus-go\", [\"generic-trigger-touchpad\"]), this.RegisterFallbacksForProfileId(\"oculus-touch-v2\", [\"oculus-touch\", \"generic-trigger-squeeze-thumbstick\"]), this.RegisterFallbacksForProfileId(\"oculus-touch\", [\"generic-trigger-squeeze-thumbstick\"]), this.RegisterFallbacksForProfileId(\"samsung-gearvr\", [\"windows-mixed-reality\", \"generic-trigger-squeeze-touchpad-thumbstick\"]), this.RegisterFallbacksForProfileId(\"samsung-odyssey\", [\"generic-touchpad\"]), this.RegisterFallbacksForProfileId(\"valve-index\", [\"generic-trigger-squeeze-touchpad-thumbstick\"]), this.RegisterFallbacksForProfileId(\"generic-hand-select\", [\"generic-trigger\"]);\n }\n /**\n * Find a fallback profile if the profile was not found. There are a few predefined generic profiles.\n * @param profileId the profile to which a fallback needs to be found\n * @returns an array with corresponding fallback profiles\n */\n static FindFallbackWithProfileId(e) {\n const t = this._Fallbacks[e] || [];\n return t.unshift(e), t;\n }\n /**\n * When acquiring a new xrInput object (usually by the WebXRInput class), match it with the correct profile.\n * The order of search:\n *\n * 1) Iterate the profiles array of the xr input and try finding a corresponding motion controller\n * 2) (If not found) search in the gamepad id and try using it (legacy versions only)\n * 3) search for registered fallbacks (should be redundant, nonetheless it makes sense to check)\n * 4) return the generic trigger controller if none were found\n *\n * @param xrInput the xrInput to which a new controller is initialized\n * @param scene the scene to which the model will be added\n * @param forceProfile force a certain profile for this controller\n * @returns A promise that fulfils with the motion controller class for this profile id or the generic standard class if none was found\n */\n static GetMotionControllerWithXRInput(e, t, i) {\n const s = [];\n if (i && s.push(i), s.push(...e.profiles || []), s.length && !s[0] && s.pop(), e.gamepad && e.gamepad.id)\n switch (e.gamepad.id) {\n case (e.gamepad.id.match(/oculus touch/gi) ? e.gamepad.id : void 0):\n s.push(\"oculus-touch-v2\");\n break;\n }\n const r = s.indexOf(\"windows-mixed-reality\");\n if (r !== -1 && s.splice(r, 0, \"microsoft-mixed-reality\"), s.length || s.push(\"generic-trigger\"), this.UseOnlineRepository) {\n const n = this.PrioritizeOnlineRepository ? this._LoadProfileFromRepository : this._LoadProfilesFromAvailableControllers, o = this.PrioritizeOnlineRepository ? this._LoadProfilesFromAvailableControllers : this._LoadProfileFromRepository;\n return n.call(this, s, e, t).catch(() => o.call(this, s, e, t));\n } else\n return this._LoadProfilesFromAvailableControllers(s, e, t);\n }\n /**\n * Register a new controller based on its profile. This function will be called by the controller classes themselves.\n *\n * If you are missing a profile, make sure it is imported in your source, otherwise it will not register.\n *\n * @param type the profile type to register\n * @param constructFunction the function to be called when loading this profile\n */\n static RegisterController(e, t) {\n this._AvailableControllers[e] = t;\n }\n /**\n * Register a fallback to a specific profile.\n * @param profileId the profileId that will receive the fallbacks\n * @param fallbacks A list of fallback profiles\n */\n static RegisterFallbacksForProfileId(e, t) {\n this._Fallbacks[e] ? this._Fallbacks[e].push(...t) : this._Fallbacks[e] = t;\n }\n /**\n * Will update the list of profiles available in the repository\n * @returns a promise that resolves to a map of profiles available online\n */\n static UpdateProfilesList() {\n return this._ProfilesList = J.LoadFileAsync(this.BaseRepositoryUrl + \"/profiles/profilesList.json\", !1).then((e) => JSON.parse(e)), this._ProfilesList;\n }\n /**\n * Clear the controller's cache (usually happens at the end of a session)\n */\n static ClearControllerCache() {\n Qm.forEach((e) => {\n e.meshes.forEach((t) => {\n t.dispose(!1, !0);\n });\n }), Qm.length = 0;\n }\n static _LoadProfileFromRepository(e, t, i) {\n return Promise.resolve().then(() => this._ProfilesList ? this._ProfilesList : this.UpdateProfilesList()).then((s) => {\n for (let r = 0; r < e.length; ++r)\n if (e[r] && s[e[r]])\n return e[r];\n throw new Error(`neither controller ${e[0]} nor all fallbacks were found in the repository,`);\n }).then((s) => (this._ProfileLoadingPromises[s] || (this._ProfileLoadingPromises[s] = J.LoadFileAsync(`${this.BaseRepositoryUrl}/profiles/${s}/profile.json`, !1).then((r) => JSON.parse(r))), this._ProfileLoadingPromises[s])).then((s) => new K0(i, t, s, this.BaseRepositoryUrl, this.DisableControllerCache ? void 0 : Qm));\n }\n static _LoadProfilesFromAvailableControllers(e, t, i) {\n for (let s = 0; s < e.length; ++s) {\n if (!e[s])\n continue;\n const r = this.FindFallbackWithProfileId(e[s]);\n for (let n = 0; n < r.length; ++n) {\n const o = this._AvailableControllers[r[n]];\n if (o)\n return Promise.resolve(o(t, i));\n }\n }\n throw new Error(\"no controller requested was found in the available controllers list\");\n }\n}\nSs._AvailableControllers = {};\nSs._Fallbacks = {};\nSs._ProfileLoadingPromises = {};\nSs.BaseRepositoryUrl = \"https://immersive-web.github.io/webxr-input-profiles/packages/viewer/dist\";\nSs.PrioritizeOnlineRepository = !0;\nSs.UseOnlineRepository = !0;\nSs.DisableControllerCache = !0;\nSs.RegisterController(ec.ProfileId, (a, e) => new ec(e, a.gamepad, a.handedness));\nSs.DefaultFallbacks();\nlet MV = 0;\nclass q0 {\n /**\n * Creates the input source object\n * @see https://doc.babylonjs.com/features/featuresDeepDive/webXR/webXRInputControllerSupport\n * @param _scene the scene which the controller should be associated to\n * @param inputSource the underlying input source for the controller\n * @param _options options for this controller creation\n */\n constructor(e, t, i = {}) {\n this._scene = e, this.inputSource = t, this._options = i, this._tmpVector = new g(), this._disposed = !1, this.onDisposeObservable = new G(), this.onMeshLoadedObservable = new G(), this.onMotionControllerInitObservable = new G(), this._uniqueId = `controller-${MV++}-${t.targetRayMode}-${t.handedness}`, this.pointer = new H(`${this._uniqueId}-pointer`, e), this.pointer.rotationQuaternion = new se(), this.inputSource.gripSpace && (this.grip = new H(`${this._uniqueId}-grip`, this._scene), this.grip.rotationQuaternion = new se()), this._tmpVector.set(0, 0, this._scene.useRightHandedSystem ? -1 : 1), this.inputSource.gamepad && this.inputSource.targetRayMode === \"tracked-pointer\" && Ss.GetMotionControllerWithXRInput(t, e, this._options.forceControllerProfile).then((s) => {\n this.motionController = s, this.onMotionControllerInitObservable.notifyObservers(s), !this._options.doNotLoadControllerMesh && !this.motionController._doNotLoadControllerMesh && this.motionController.loadModel().then((r) => {\n var n;\n r && this.motionController && this.motionController.rootMesh && (this._options.renderingGroupId && (this.motionController.rootMesh.renderingGroupId = this._options.renderingGroupId, this.motionController.rootMesh.getChildMeshes(!1).forEach((o) => o.renderingGroupId = this._options.renderingGroupId)), this.onMeshLoadedObservable.notifyObservers(this.motionController.rootMesh), this.motionController.rootMesh.parent = this.grip || this.pointer, this.motionController.disableAnimation = !!this._options.disableMotionControllerAnimation), this._disposed && ((n = this.motionController) == null || n.dispose());\n });\n }, () => {\n J.Warn(\"Could not find a matching motion controller for the registered input source\");\n });\n }\n /**\n * Get this controllers unique id\n */\n get uniqueId() {\n return this._uniqueId;\n }\n /**\n * Disposes of the object\n */\n dispose() {\n this.grip && this.grip.dispose(!0), this.motionController && this.motionController.dispose(), this.pointer.dispose(!0), this.onMotionControllerInitObservable.clear(), this.onMeshLoadedObservable.clear(), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this._disposed = !0;\n }\n /**\n * Gets a world space ray coming from the pointer or grip\n * @param result the resulting ray\n * @param gripIfAvailable use the grip mesh instead of the pointer, if available\n */\n getWorldPointerRayToRef(e, t = !1) {\n const i = t && this.grip ? this.grip : this.pointer;\n g.TransformNormalToRef(this._tmpVector, i.getWorldMatrix(), e.direction), e.direction.normalize(), e.origin.copyFrom(i.absolutePosition), e.length = 1e3;\n }\n /**\n * Updates the controller pose based on the given XRFrame\n * @param xrFrame xr frame to update the pose with\n * @param referenceSpace reference space to use\n * @param xrCamera the xr camera, used for parenting\n * @param xrSessionManager the session manager used to get the world reference system\n */\n updateFromXRFrame(e, t, i, s) {\n const r = e.getPose(this.inputSource.targetRaySpace, t);\n if (this._lastXRPose = r, r) {\n const n = r.transform.position;\n this.pointer.position.set(n.x, n.y, n.z).scaleInPlace(s.worldScalingFactor);\n const o = r.transform.orientation;\n this.pointer.rotationQuaternion.set(o.x, o.y, o.z, o.w), this._scene.useRightHandedSystem || (this.pointer.position.z *= -1, this.pointer.rotationQuaternion.z *= -1, this.pointer.rotationQuaternion.w *= -1), this.pointer.parent = i.parent, this.pointer.scaling.setAll(s.worldScalingFactor);\n }\n if (this.inputSource.gripSpace && this.grip) {\n const n = e.getPose(this.inputSource.gripSpace, t);\n if (n) {\n const o = n.transform.position, l = n.transform.orientation;\n this.grip.position.set(o.x, o.y, o.z).scaleInPlace(s.worldScalingFactor), this.grip.rotationQuaternion.set(l.x, l.y, l.z, l.w), this._scene.useRightHandedSystem || (this.grip.position.z *= -1, this.grip.rotationQuaternion.z *= -1, this.grip.rotationQuaternion.w *= -1);\n }\n this.grip.parent = i.parent, this.grip.scaling.setAll(s.worldScalingFactor);\n }\n this.motionController && this.motionController.updateFromXRFrame(e);\n }\n}\nclass Q0 {\n /**\n * Initializes the WebXRInput\n * @param xrSessionManager the xr session manager for this session\n * @param xrCamera the WebXR camera for this session. Mainly used for teleportation\n * @param _options = initialization options for this xr input\n */\n constructor(e, t, i = {}) {\n if (this.xrSessionManager = e, this.xrCamera = t, this._options = i, this.controllers = [], this.onControllerAddedObservable = new G(), this.onControllerRemovedObservable = new G(), this._onInputSourcesChange = (s) => {\n this._addAndRemoveControllers(s.added, s.removed);\n }, this._sessionEndedObserver = this.xrSessionManager.onXRSessionEnded.add(() => {\n this._addAndRemoveControllers([], this.controllers.map((s) => s.inputSource));\n }), this._sessionInitObserver = this.xrSessionManager.onXRSessionInit.add((s) => {\n s.addEventListener(\"inputsourceschange\", this._onInputSourcesChange);\n }), this._frameObserver = this.xrSessionManager.onXRFrameObservable.add((s) => {\n this.controllers.forEach((r) => {\n r.updateFromXRFrame(s, this.xrSessionManager.referenceSpace, this.xrCamera, this.xrSessionManager);\n });\n }), this._options.customControllersRepositoryURL && (Ss.BaseRepositoryUrl = this._options.customControllersRepositoryURL), Ss.UseOnlineRepository = !this._options.disableOnlineControllerRepository, Ss.UseOnlineRepository)\n try {\n Ss.UpdateProfilesList().catch(() => {\n Ss.UseOnlineRepository = !1;\n });\n } catch {\n Ss.UseOnlineRepository = !1;\n }\n }\n _addAndRemoveControllers(e, t) {\n const i = this.controllers.map((n) => n.inputSource);\n for (const n of e)\n if (i.indexOf(n) === -1) {\n const o = new q0(this.xrSessionManager.scene, n, {\n ...this._options.controllerOptions || {},\n forceControllerProfile: this._options.forceInputProfile,\n doNotLoadControllerMesh: this._options.doNotLoadControllerMeshes,\n disableMotionControllerAnimation: this._options.disableControllerAnimation\n });\n this.controllers.push(o), this.onControllerAddedObservable.notifyObservers(o);\n }\n const s = [], r = [];\n this.controllers.forEach((n) => {\n t.indexOf(n.inputSource) === -1 ? s.push(n) : r.push(n);\n }), this.controllers = s, r.forEach((n) => {\n this.onControllerRemovedObservable.notifyObservers(n), n.dispose();\n });\n }\n /**\n * Disposes of the object\n */\n dispose() {\n this.controllers.forEach((e) => {\n e.dispose();\n }), this.xrSessionManager.onXRFrameObservable.remove(this._frameObserver), this.xrSessionManager.onXRSessionInit.remove(this._sessionInitObserver), this.xrSessionManager.onXRSessionEnded.remove(this._sessionEndedObserver), this.onControllerAddedObservable.clear(), this.onControllerRemovedObservable.clear(), Ss.ClearControllerCache();\n }\n}\nclass Is {\n /**\n * The name of the native xr feature name (like anchor, hit-test, or hand-tracking)\n */\n get xrNativeFeatureName() {\n return this._xrNativeFeatureName;\n }\n set xrNativeFeatureName(e) {\n var t;\n !this._xrSessionManager.isNative && e && this._xrSessionManager.inXRSession && ((t = this._xrSessionManager.enabledFeatures) == null ? void 0 : t.indexOf(e)) === -1 && L.Warn(`The feature ${e} needs to be enabled before starting the XR session. Note - It is still possible it is not supported.`), this._xrNativeFeatureName = e;\n }\n /**\n * Construct a new (abstract) WebXR feature\n * @param _xrSessionManager the xr session manager for this feature\n */\n constructor(e) {\n this._xrSessionManager = e, this._attached = !1, this._removeOnDetach = [], this.isDisposed = !1, this.disableAutoAttach = !1, this._xrNativeFeatureName = \"\", this.onFeatureAttachObservable = new G(), this.onFeatureDetachObservable = new G();\n }\n /**\n * Is this feature attached\n */\n get attached() {\n return this._attached;\n }\n /**\n * attach this feature\n *\n * @param force should attachment be forced (even when already attached)\n * @returns true if successful, false is failed or already attached\n */\n attach(e) {\n if (this.isDisposed)\n return !1;\n if (e)\n this.attached && this.detach();\n else if (this.attached)\n return !1;\n if (!this._xrSessionManager.enabledFeatures)\n L.Warn(\"session.enabledFeatures is not available on this device. It is possible that this feature is not supported.\");\n else if (!this._xrSessionManager.isNative && this.xrNativeFeatureName && this._xrSessionManager.enabledFeatures.indexOf(this.xrNativeFeatureName) === -1)\n return !1;\n return this._attached = !0, this._addNewAttachObserver(this._xrSessionManager.onXRFrameObservable, (t) => this._onXRFrame(t)), this.onFeatureAttachObservable.notifyObservers(this), !0;\n }\n /**\n * detach this feature.\n *\n * @returns true if successful, false if failed or already detached\n */\n detach() {\n return this._attached ? (this._attached = !1, this._removeOnDetach.forEach((e) => {\n e.observable.remove(e.observer);\n }), this.onFeatureDetachObservable.notifyObservers(this), !0) : (this.disableAutoAttach = !0, !1);\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n this.detach(), this.isDisposed = !0, this.onFeatureAttachObservable.clear(), this.onFeatureDetachObservable.clear();\n }\n /**\n * This function will be executed during before enabling the feature and can be used to not-allow enabling it.\n * Note that at this point the session has NOT started, so this is purely checking if the browser supports it\n *\n * @returns whether or not the feature is compatible in this environment\n */\n isCompatible() {\n return !0;\n }\n /**\n * This is used to register callbacks that will automatically be removed when detach is called.\n * @param observable the observable to which the observer will be attached\n * @param callback the callback to register\n * @param insertFirst should the callback be executed as soon as it is registered\n */\n _addNewAttachObserver(e, t, i) {\n this._removeOnDetach.push({\n observable: e,\n observer: e.add(t, void 0, i)\n });\n }\n}\nclass ta extends Is {\n /**\n * constructs a new background remover module\n * @param _xrSessionManager the session manager for this module\n * @param _options read-only options to be used in this module\n */\n constructor(e, t) {\n super(e), this._options = t, this._attachController = (i) => {\n if (this._controllers[i.uniqueId])\n return;\n const { laserPointer: s, selectionMesh: r } = this._generateNewMeshPair(this._options.forceGripIfAvailable && i.grip ? i.grip : i.pointer);\n switch (this._controllers[i.uniqueId] = {\n xrController: i,\n laserPointer: s,\n selectionMesh: r,\n meshUnderPointer: null,\n pick: null,\n tmpRay: new nt(new g(), new g()),\n disabledByNearInteraction: !1,\n id: ta._IdCounter++\n }, this._attachedController ? !this._options.enablePointerSelectionOnAllControllers && this._options.preferredHandedness && i.inputSource.handedness === this._options.preferredHandedness && (this._attachedController = i.uniqueId) : this._options.enablePointerSelectionOnAllControllers || (this._attachedController = i.uniqueId), i.inputSource.targetRayMode) {\n case \"tracked-pointer\":\n return this._attachTrackedPointerRayMode(i);\n case \"gaze\":\n return this._attachGazeMode(i);\n case \"screen\":\n case \"transient-pointer\":\n return this._attachScreenRayMode(i);\n }\n }, this._controllers = {}, this._tmpVectorForPickCompare = new g(), this.disablePointerLighting = !0, this.disableSelectionMeshLighting = !0, this.displayLaserPointer = !0, this.displaySelectionMesh = !0, this.laserPointerPickedColor = new re(0.9, 0.9, 0.9), this.laserPointerDefaultColor = new re(0.7, 0.7, 0.7), this.selectionMeshDefaultColor = new re(0.8, 0.8, 0.8), this.selectionMeshPickedColor = new re(0.3, 0.3, 1), this._identityMatrix = O.Identity(), this._screenCoordinatesRef = g.Zero(), this._viewportRef = new xr(0, 0, 0, 0), this._scene = this._xrSessionManager.scene, this._options.lookAndPickMode === void 0 && (this._scene.getEngine()._badDesktopOS || this._scene.getEngine()._badOS) && (this._options.lookAndPickMode = !0), this._options.lookAndPickMode && (this._options.enablePointerSelectionOnAllControllers = !0, this.displayLaserPointer = !1);\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach())\n return !1;\n if (this._options.xrInput.controllers.forEach(this._attachController), this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable, this._attachController, !0), this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable, (e) => {\n this._detachController(e.uniqueId);\n }, !0), this._scene.constantlyUpdateMeshUnderPointer = !0, this._options.gazeCamera) {\n const e = this._options.gazeCamera, { laserPointer: t, selectionMesh: i } = this._generateNewMeshPair(e);\n this._controllers.camera = {\n webXRCamera: e,\n laserPointer: t,\n selectionMesh: i,\n meshUnderPointer: null,\n pick: null,\n tmpRay: new nt(new g(), new g()),\n disabledByNearInteraction: !1,\n id: ta._IdCounter++\n }, this._attachGazeMode();\n }\n return !0;\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n return super.detach() ? (Object.keys(this._controllers).forEach((e) => {\n this._detachController(e);\n }), !0) : !1;\n }\n /**\n * Will get the mesh under a specific pointer.\n * `scene.meshUnderPointer` will only return one mesh - either left or right.\n * @param controllerId the controllerId to check\n * @returns The mesh under pointer or null if no mesh is under the pointer\n */\n getMeshUnderPointer(e) {\n return this._controllers[e] ? this._controllers[e].meshUnderPointer : null;\n }\n /**\n * Get the xr controller that correlates to the pointer id in the pointer event\n *\n * @param id the pointer id to search for\n * @returns the controller that correlates to this id or null if not found\n */\n getXRControllerByPointerId(e) {\n const t = Object.keys(this._controllers);\n for (let i = 0; i < t.length; ++i)\n if (this._controllers[t[i]].id === e)\n return this._controllers[t[i]].xrController || null;\n return null;\n }\n /**\n * @internal\n */\n _getPointerSelectionDisabledByPointerId(e) {\n const t = Object.keys(this._controllers);\n for (let i = 0; i < t.length; ++i)\n if (this._controllers[t[i]].id === e)\n return this._controllers[t[i]].disabledByNearInteraction;\n return !0;\n }\n /**\n * @internal\n */\n _setPointerSelectionDisabledByPointerId(e, t) {\n const i = Object.keys(this._controllers);\n for (let s = 0; s < i.length; ++s)\n if (this._controllers[i[s]].id === e) {\n this._controllers[i[s]].disabledByNearInteraction = t;\n return;\n }\n }\n _onXRFrame(e) {\n Object.keys(this._controllers).forEach((t) => {\n var l;\n const i = this._controllers[t];\n if (this._options.lookAndPickMode && ((l = i.xrController) == null ? void 0 : l.inputSource.targetRayMode) !== \"transient-pointer\")\n return;\n if (!this._options.enablePointerSelectionOnAllControllers && t !== this._attachedController || i.disabledByNearInteraction) {\n i.selectionMesh.isVisible = !1, i.laserPointer.isVisible = !1, i.pick = null;\n return;\n }\n i.laserPointer.isVisible = this.displayLaserPointer;\n let s;\n if (i.xrController)\n s = this._options.forceGripIfAvailable && i.xrController.grip ? i.xrController.grip.position : i.xrController.pointer.position, i.xrController.getWorldPointerRayToRef(i.tmpRay, this._options.forceGripIfAvailable);\n else if (i.webXRCamera)\n s = i.webXRCamera.position, i.webXRCamera.getForwardRayToRef(i.tmpRay);\n else\n return;\n if (this._options.maxPointerDistance && (i.tmpRay.length = this._options.maxPointerDistance), !this._options.disableScenePointerVectorUpdate && s) {\n const h = this._xrSessionManager.scene, c = this._options.xrInput.xrCamera;\n c && (c.viewport.toGlobalToRef(h.getEngine().getRenderWidth() / c.rigCameras.length, h.getEngine().getRenderHeight(), this._viewportRef), g.ProjectToRef(s, this._identityMatrix, c.getTransformationMatrix(), this._viewportRef, this._screenCoordinatesRef), typeof this._screenCoordinatesRef.x == \"number\" && typeof this._screenCoordinatesRef.y == \"number\" && !isNaN(this._screenCoordinatesRef.x) && !isNaN(this._screenCoordinatesRef.y) && this._screenCoordinatesRef.x !== 1 / 0 && this._screenCoordinatesRef.y !== 1 / 0 && (h.pointerX = this._screenCoordinatesRef.x, h.pointerY = this._screenCoordinatesRef.y, i.screenCoordinates = {\n x: this._screenCoordinatesRef.x,\n y: this._screenCoordinatesRef.y\n }));\n }\n let r = null;\n this._utilityLayerScene && (r = this._utilityLayerScene.pickWithRay(i.tmpRay, this._utilityLayerScene.pointerMovePredicate || this.raySelectionPredicate));\n const n = this._scene.pickWithRay(i.tmpRay, this._scene.pointerMovePredicate || this.raySelectionPredicate);\n !r || !r.hit ? i.pick = n : !n || !n.hit || r.distance < n.distance ? i.pick = r : i.pick = n, i.pick && i.xrController && (i.pick.aimTransform = i.xrController.pointer, i.pick.gripTransform = i.xrController.grip || null, i.pick.originMesh = i.xrController.pointer);\n const o = i.pick;\n if (o && o.pickedPoint && o.hit) {\n this._updatePointerDistance(i.laserPointer, o.distance), i.selectionMesh.position.copyFrom(o.pickedPoint), i.selectionMesh.scaling.x = Math.sqrt(o.distance), i.selectionMesh.scaling.y = Math.sqrt(o.distance), i.selectionMesh.scaling.z = Math.sqrt(o.distance);\n const h = this._convertNormalToDirectionOfRay(o.getNormal(!0), i.tmpRay), c = 1e-3;\n if (i.selectionMesh.position.copyFrom(o.pickedPoint), h) {\n const u = g.Cross(zs.Y, h), d = g.Cross(h, u);\n g.RotationFromAxisToRef(d, h, u, i.selectionMesh.rotation), i.selectionMesh.position.addInPlace(h.scale(c));\n }\n i.selectionMesh.isVisible = this.displaySelectionMesh, i.meshUnderPointer = o.pickedMesh;\n } else\n i.selectionMesh.isVisible = !1, this._updatePointerDistance(i.laserPointer, 1), i.meshUnderPointer = null;\n });\n }\n get _utilityLayerScene() {\n return this._options.customUtilityLayerScene || Ci.DefaultUtilityLayer.utilityLayerScene;\n }\n _attachGazeMode(e) {\n const t = this._controllers[e && e.uniqueId || \"camera\"], i = this._options.timeToSelect || 3e3, s = this._options.useUtilityLayer ? this._utilityLayerScene : this._scene;\n let r = new Cs();\n const n = Da(\"selection\", {\n diameter: 35e-4 * 15,\n thickness: 25e-4 * 6,\n tessellation: 20\n }, s);\n n.isVisible = !1, n.isPickable = !1, n.parent = t.selectionMesh;\n let o = 0, l = !1;\n const h = {\n pointerId: t.id,\n pointerType: \"xr\"\n };\n t.onFrameObserver = this._xrSessionManager.onXRFrameObservable.add(() => {\n if (t.pick) {\n if (this._augmentPointerInit(h, t.id, t.screenCoordinates), t.laserPointer.material.alpha = 0, n.isVisible = !1, t.pick.hit)\n if (this._pickingMoved(r, t.pick))\n l && (this._options.disablePointerUpOnTouchOut || this._scene.simulatePointerUp(t.pick, h)), l = !1, o = 0;\n else if (o > i / 10 && (n.isVisible = !0), o += this._scene.getEngine().getDeltaTime(), o >= i)\n this._scene.simulatePointerDown(t.pick, h), l = !0, this._options.disablePointerUpOnTouchOut && this._scene.simulatePointerUp(t.pick, h), n.isVisible = !1;\n else {\n const c = 1 - o / i;\n n.scaling.set(c, c, c);\n }\n else\n l = !1, o = 0;\n this._scene.simulatePointerMove(t.pick, h), r = t.pick;\n }\n }), this._options.renderingGroupId !== void 0 && (n.renderingGroupId = this._options.renderingGroupId), e && e.onDisposeObservable.addOnce(() => {\n t.pick && !this._options.disablePointerUpOnTouchOut && l && (this._scene.simulatePointerUp(t.pick, h), t.finalPointerUpTriggered = !0), n.dispose();\n });\n }\n _attachScreenRayMode(e) {\n const t = this._controllers[e.uniqueId];\n let i = !1;\n const s = {\n pointerId: t.id,\n pointerType: \"xr\"\n };\n t.onFrameObserver = this._xrSessionManager.onXRFrameObservable.add(() => {\n this._augmentPointerInit(s, t.id, t.screenCoordinates), !(!t.pick || this._options.disablePointerUpOnTouchOut && i) && (i ? this._scene.simulatePointerMove(t.pick, s) : (this._scene.simulatePointerDown(t.pick, s), t.pointerDownTriggered = !0, i = !0, this._options.disablePointerUpOnTouchOut && this._scene.simulatePointerUp(t.pick, s)));\n }), e.onDisposeObservable.addOnce(() => {\n this._augmentPointerInit(s, t.id, t.screenCoordinates), this._xrSessionManager.runInXRFrame(() => {\n t.pick && !t.finalPointerUpTriggered && i && !this._options.disablePointerUpOnTouchOut && (this._scene.simulatePointerUp(t.pick, s), t.finalPointerUpTriggered = !0);\n });\n });\n }\n _attachTrackedPointerRayMode(e) {\n const t = this._controllers[e.uniqueId];\n if (this._options.forceGazeMode)\n return this._attachGazeMode(e);\n const i = {\n pointerId: t.id,\n pointerType: \"xr\"\n };\n if (t.onFrameObserver = this._xrSessionManager.onXRFrameObservable.add(() => {\n t.laserPointer.material.disableLighting = this.disablePointerLighting, t.selectionMesh.material.disableLighting = this.disableSelectionMeshLighting, t.pick && (this._augmentPointerInit(i, t.id, t.screenCoordinates), this._scene.simulatePointerMove(t.pick, i));\n }), e.inputSource.gamepad) {\n const s = (r) => {\n this._options.overrideButtonId && (t.selectionComponent = r.getComponent(this._options.overrideButtonId)), t.selectionComponent || (t.selectionComponent = r.getMainComponent()), t.onButtonChangedObserver = t.selectionComponent.onButtonStateChangedObservable.add((n) => {\n if (n.changes.pressed) {\n const o = n.changes.pressed.current;\n if (t.pick)\n (this._options.enablePointerSelectionOnAllControllers || e.uniqueId === this._attachedController) && (this._augmentPointerInit(i, t.id, t.screenCoordinates), o ? (this._scene.simulatePointerDown(t.pick, i), t.pointerDownTriggered = !0, t.selectionMesh.material.emissiveColor = this.selectionMeshPickedColor, t.laserPointer.material.emissiveColor = this.laserPointerPickedColor) : (this._scene.simulatePointerUp(t.pick, i), t.selectionMesh.material.emissiveColor = this.selectionMeshDefaultColor, t.laserPointer.material.emissiveColor = this.laserPointerDefaultColor));\n else if (o && !this._options.enablePointerSelectionOnAllControllers && !this._options.disableSwitchOnClick) {\n const l = this._controllers[this._attachedController];\n l && l.pointerDownTriggered && !l.finalPointerUpTriggered && (this._augmentPointerInit(i, l.id, l.screenCoordinates), this._scene.simulatePointerUp(new Cs(), {\n pointerId: l.id,\n pointerType: \"xr\"\n }), l.finalPointerUpTriggered = !0), this._attachedController = e.uniqueId;\n }\n }\n });\n };\n e.motionController ? s(e.motionController) : e.onMotionControllerInitObservable.add(s);\n } else {\n const s = (n) => {\n this._xrSessionManager.onXRFrameObservable.addOnce(() => {\n this._augmentPointerInit(i, t.id, t.screenCoordinates), t.xrController && n.inputSource === t.xrController.inputSource && t.pick && (this._scene.simulatePointerDown(t.pick, i), t.pointerDownTriggered = !0, t.selectionMesh.material.emissiveColor = this.selectionMeshPickedColor, t.laserPointer.material.emissiveColor = this.laserPointerPickedColor);\n });\n }, r = (n) => {\n this._xrSessionManager.onXRFrameObservable.addOnce(() => {\n this._augmentPointerInit(i, t.id, t.screenCoordinates), t.xrController && n.inputSource === t.xrController.inputSource && t.pick && (this._scene.simulatePointerUp(t.pick, i), t.selectionMesh.material.emissiveColor = this.selectionMeshDefaultColor, t.laserPointer.material.emissiveColor = this.laserPointerDefaultColor);\n });\n };\n t.eventListeners = {\n selectend: r,\n selectstart: s\n }, this._xrSessionManager.session.addEventListener(\"selectstart\", s), this._xrSessionManager.session.addEventListener(\"selectend\", r);\n }\n }\n _convertNormalToDirectionOfRay(e, t) {\n return e && Math.acos(g.Dot(e, t.direction)) < Math.PI / 2 && e.scaleInPlace(-1), e;\n }\n _detachController(e) {\n const t = this._controllers[e];\n if (t) {\n if (t.selectionComponent && t.onButtonChangedObserver && t.selectionComponent.onButtonStateChangedObservable.remove(t.onButtonChangedObserver), t.onFrameObserver && this._xrSessionManager.onXRFrameObservable.remove(t.onFrameObserver), t.eventListeners && Object.keys(t.eventListeners).forEach((i) => {\n const s = t.eventListeners && t.eventListeners[i];\n s && this._xrSessionManager.session.removeEventListener(i, s);\n }), !t.finalPointerUpTriggered && t.pointerDownTriggered) {\n const i = {\n pointerId: t.id,\n pointerType: \"xr\"\n };\n this._xrSessionManager.runInXRFrame(() => {\n this._augmentPointerInit(i, t.id, t.screenCoordinates), this._scene.simulatePointerUp(t.pick || new Cs(), i), t.finalPointerUpTriggered = !0;\n });\n }\n this._xrSessionManager.scene.onBeforeRenderObservable.addOnce(() => {\n try {\n if (t.selectionMesh.dispose(), t.laserPointer.dispose(), delete this._controllers[e], this._attachedController === e) {\n const i = Object.keys(this._controllers);\n i.length ? this._attachedController = i[0] : this._attachedController = \"\";\n }\n } catch {\n J.Warn(\"controller already detached.\");\n }\n });\n }\n }\n _generateNewMeshPair(e) {\n const t = this._options.useUtilityLayer ? this._options.customUtilityLayerScene || Ci.DefaultUtilityLayer.utilityLayerScene : this._scene, i = this._options.customLasterPointerMeshGenerator ? this._options.customLasterPointerMeshGenerator() : hn(\"laserPointer\", {\n height: 1,\n diameterTop: 2e-4,\n diameterBottom: 4e-3,\n tessellation: 20,\n subdivisions: 1\n }, t);\n i.parent = e;\n const s = new ye(\"laserPointerMat\", t);\n s.emissiveColor = this.laserPointerDefaultColor, s.alpha = 0.7, i.material = s, i.rotation.x = Math.PI / 2, this._updatePointerDistance(i, 1), i.isPickable = !1, i.isVisible = !1;\n const r = this._options.customSelectionMeshGenerator ? this._options.customSelectionMeshGenerator() : Da(\"gazeTracker\", {\n diameter: 35e-4 * 3,\n thickness: 25e-4 * 3,\n tessellation: 20\n }, t);\n r.bakeCurrentTransformIntoVertices(), r.isPickable = !1, r.isVisible = !1;\n const n = new ye(\"targetMat\", t);\n return n.specularColor = re.Black(), n.emissiveColor = this.selectionMeshDefaultColor, n.backFaceCulling = !1, r.material = n, this._options.renderingGroupId !== void 0 && (i.renderingGroupId = this._options.renderingGroupId, r.renderingGroupId = this._options.renderingGroupId), {\n laserPointer: i,\n selectionMesh: r\n };\n }\n _pickingMoved(e, t) {\n var r;\n if (!e.hit || !t.hit || !e.pickedMesh || !e.pickedPoint || !t.pickedMesh || !t.pickedPoint || e.pickedMesh !== t.pickedMesh)\n return !0;\n (r = e.pickedPoint) == null || r.subtractToRef(t.pickedPoint, this._tmpVectorForPickCompare), this._tmpVectorForPickCompare.set(Math.abs(this._tmpVectorForPickCompare.x), Math.abs(this._tmpVectorForPickCompare.y), Math.abs(this._tmpVectorForPickCompare.z));\n const i = (this._options.gazeModePointerMovedFactor || 1) * 0.01 * t.distance;\n return this._tmpVectorForPickCompare.length() > i;\n }\n _updatePointerDistance(e, t = 100) {\n e.scaling.y = t, this._scene.useRightHandedSystem && (t *= -1), e.position.z = t / 2 + 0.05;\n }\n _augmentPointerInit(e, t, i) {\n e.pointerId = t, e.pointerType = \"xr\", i && (e.screenX = i.x, e.screenY = i.y);\n }\n /** @internal */\n get lasterPointerDefaultColor() {\n return this.laserPointerDefaultColor;\n }\n}\nta._IdCounter = 200;\nta.Name = Tt.POINTER_SELECTION;\nta.Version = 1;\nRi.AddWebXRFeature(ta.Name, (a, e) => () => new ta(a, e), ta.Version, !0);\nvar A;\n(function(a) {\n a[a.Float = 1] = \"Float\", a[a.Int = 2] = \"Int\", a[a.Vector2 = 4] = \"Vector2\", a[a.Vector3 = 8] = \"Vector3\", a[a.Vector4 = 16] = \"Vector4\", a[a.Color3 = 32] = \"Color3\", a[a.Color4 = 64] = \"Color4\", a[a.Matrix = 128] = \"Matrix\", a[a.Object = 256] = \"Object\", a[a.AutoDetect = 1024] = \"AutoDetect\", a[a.BasedOnInput = 2048] = \"BasedOnInput\", a[a.All = 4095] = \"All\";\n})(A || (A = {}));\nvar B;\n(function(a) {\n a[a.Vertex = 1] = \"Vertex\", a[a.Fragment = 2] = \"Fragment\", a[a.Neutral = 4] = \"Neutral\", a[a.VertexAndFragment = 3] = \"VertexAndFragment\";\n})(B || (B = {}));\nclass TE {\n constructor() {\n this.supportUniformBuffers = !1, this.attributes = [], this.uniforms = [], this.constants = [], this.samplers = [], this.functions = {}, this.extensions = {}, this.prePassOutput = {}, this.counters = {}, this._attributeDeclaration = \"\", this._uniformDeclaration = \"\", this._constantDeclaration = \"\", this._samplerDeclaration = \"\", this._varyingTransfer = \"\", this._injectAtEnd = \"\", this._repeatableContentAnchorIndex = 0, this._builtCompilationString = \"\", this.compilationString = \"\";\n }\n /**\n * Gets the current shader language to use\n */\n get shaderLanguage() {\n return this.sharedData.nodeMaterial.shaderLanguage;\n }\n /** Gets suffix to add behind type casting */\n get fSuffix() {\n return this.shaderLanguage === 1 ? \"f\" : \"\";\n }\n /**\n * Finalize the compilation strings\n * @param state defines the current compilation state\n */\n finalize(e) {\n const t = e.sharedData.emitComments, i = this.target === B.Fragment;\n this.shaderLanguage === 1 ? i ? this.compilationString = `\n${t ? `//Entry point\n` : \"\"}@fragment\nfn main(input: FragmentInputs) -> FragmentOutputs {\n${this.compilationString}` : this.compilationString = `\n${t ? `//Entry point\n` : \"\"}@vertex\nfn main(input: VertexInputs) -> FragmentInputs{\n${this.compilationString}` : this.compilationString = `\n${t ? `//Entry point\n` : \"\"}void main(void) {\n${this.compilationString}`, this._constantDeclaration && (this.compilationString = `\n${t ? `//Constants\n` : \"\"}${this._constantDeclaration}\n${this.compilationString}`);\n let s = \"\";\n for (const r in this.functions)\n s += this.functions[r] + `\n`;\n if (this.compilationString = `\n${s}\n${this.compilationString}`, !i && this._varyingTransfer && (this.compilationString = `${this.compilationString}\n${this._varyingTransfer}`), this._injectAtEnd && (this.compilationString = `${this.compilationString}\n${this._injectAtEnd}`), this.compilationString = `${this.compilationString}\n}`, this.sharedData.varyingDeclaration && (this.compilationString = `\n${t ? `//Varyings\n` : \"\"}${this.sharedData.varyingDeclaration}\n${this.compilationString}`), this._samplerDeclaration && (this.compilationString = `\n${t ? `//Samplers\n` : \"\"}${this._samplerDeclaration}\n${this.compilationString}`), this._uniformDeclaration && (this.compilationString = `\n${t ? `//Uniforms\n` : \"\"}${this._uniformDeclaration}\n${this.compilationString}`), this._attributeDeclaration && !i && (this.compilationString = `\n${t ? `//Attributes\n` : \"\"}${this._attributeDeclaration}\n${this.compilationString}`), this.shaderLanguage !== 1) {\n this.compilationString = `precision highp float;\n` + this.compilationString, this.compilationString = `#if defined(WEBGL2) || defines(WEBGPU)\nprecision highp sampler2DArray;\n#endif\n` + this.compilationString, i && (this.compilationString = `#if defined(PREPASS)\\r\n#extension GL_EXT_draw_buffers : require\\r\nlayout(location = 0) out highp vec4 glFragData[SCENE_MRT_COUNT];\\r\nhighp vec4 gl_FragColor;\\r\n#endif\\r\n` + this.compilationString);\n for (const r in this.extensions) {\n const n = this.extensions[r];\n this.compilationString = `\n${n}\n${this.compilationString}`;\n }\n }\n this._builtCompilationString = this.compilationString;\n }\n /** @internal */\n get _repeatableContentAnchor() {\n return `###___ANCHOR${this._repeatableContentAnchorIndex++}___###`;\n }\n /**\n * @internal\n */\n _getFreeVariableName(e) {\n return e = e.replace(/[^a-zA-Z_]+/g, \"\"), this.sharedData.variableNames[e] === void 0 ? (this.sharedData.variableNames[e] = 0, e === \"output\" || e === \"texture\" ? e + this.sharedData.variableNames[e] : e) : (this.sharedData.variableNames[e]++, e + this.sharedData.variableNames[e]);\n }\n /**\n * @internal\n */\n _getFreeDefineName(e) {\n return this.sharedData.defineNames[e] === void 0 ? this.sharedData.defineNames[e] = 0 : this.sharedData.defineNames[e]++, e + this.sharedData.defineNames[e];\n }\n /**\n * @internal\n */\n _excludeVariableName(e) {\n this.sharedData.variableNames[e] = 0;\n }\n /**\n * @internal\n */\n _emit2DSampler(e, t = \"\", i = !1) {\n (this.samplers.indexOf(e) < 0 || i) && (t && (this._samplerDeclaration += `#if ${t}\n`), this.shaderLanguage === 1 ? (this._samplerDeclaration += `var ${e + \"Sampler\"}: sampler;\n`, this._samplerDeclaration += `var ${e}: texture_2d;\n`) : this._samplerDeclaration += `uniform sampler2D ${e};\n`, t && (this._samplerDeclaration += `#endif\n`), i || this.samplers.push(e));\n }\n /**\n * @internal\n */\n _emitCubeSampler(e, t = \"\", i = !1) {\n (this.samplers.indexOf(e) < 0 || i) && (t && (this._samplerDeclaration += `#if ${t}\n`), this.shaderLanguage === 1 ? (this._samplerDeclaration += `var ${e + \"Sampler\"}: sampler;\n`, this._samplerDeclaration += `var ${e}: texture_cube;\n`) : this._samplerDeclaration += `uniform samplerCube ${e};\n`, t && (this._samplerDeclaration += `#endif\n`), i || this.samplers.push(e));\n }\n /**\n * @internal\n */\n _emit2DArraySampler(e) {\n this.samplers.indexOf(e) < 0 && (this._samplerDeclaration += `uniform sampler2DArray ${e};\n`, this.samplers.push(e));\n }\n /**\n * @internal\n */\n _getGLType(e) {\n switch (e) {\n case A.Float:\n return \"float\";\n case A.Int:\n return \"int\";\n case A.Vector2:\n return \"vec2\";\n case A.Color3:\n case A.Vector3:\n return \"vec3\";\n case A.Color4:\n case A.Vector4:\n return \"vec4\";\n case A.Matrix:\n return \"mat4\";\n }\n return \"\";\n }\n /**\n * @internal\n */\n _getShaderType(e) {\n const t = this.shaderLanguage === 1;\n switch (e) {\n case A.Float:\n return t ? \"f32\" : \"float\";\n case A.Int:\n return t ? \"i32\" : \"int\";\n case A.Vector2:\n return t ? \"vec2f\" : \"vec2\";\n case A.Color3:\n case A.Vector3:\n return t ? \"vec3f\" : \"vec3\";\n case A.Color4:\n case A.Vector4:\n return t ? \"vec4f\" : \"vec4\";\n case A.Matrix:\n return t ? \"mat4x4f\" : \"mat4\";\n }\n return \"\";\n }\n /**\n * @internal\n */\n _emitExtension(e, t, i = \"\") {\n this.extensions[e] || (i && (t = `#if ${i}\n${t}\n#endif`), this.extensions[e] = t);\n }\n /**\n * @internal\n */\n _emitFunction(e, t, i) {\n this.functions[e] || (this.sharedData.emitComments && (t = i + `\n` + t), this.functions[e] = t);\n }\n /**\n * @internal\n */\n _emitCodeFromInclude(e, t, i) {\n if (i && i.repeatKey)\n return `#include<${e}>${i.substitutionVars ? \"(\" + i.substitutionVars + \")\" : \"\"}[0..${i.repeatKey}]\n`;\n let r = z.GetIncludesShadersStore(this.shaderLanguage)[e] + `\n`;\n if (this.sharedData.emitComments && (r = t + `\n` + r), !i)\n return r;\n if (i.replaceStrings)\n for (let n = 0; n < i.replaceStrings.length; n++) {\n const o = i.replaceStrings[n];\n r = r.replace(o.search, o.replace);\n }\n return r;\n }\n /**\n * @internal\n */\n _emitFunctionFromInclude(e, t, i, s = \"\") {\n const r = e + s;\n if (this.functions[r])\n return;\n if (!i || !i.removeAttributes && !i.removeUniforms && !i.removeVaryings && !i.removeIfDef && !i.replaceStrings) {\n i && i.repeatKey ? this.functions[r] = `#include<${e}>${i.substitutionVars ? \"(\" + i.substitutionVars + \")\" : \"\"}[0..${i.repeatKey}]\n` : this.functions[r] = `#include<${e}>${i != null && i.substitutionVars ? \"(\" + (i == null ? void 0 : i.substitutionVars) + \")\" : \"\"}\n`, this.sharedData.emitComments && (this.functions[r] = t + `\n` + this.functions[r]);\n return;\n }\n const n = z.GetIncludesShadersStore(this.shaderLanguage);\n if (this.functions[r] = n[e], this.sharedData.emitComments && (this.functions[r] = t + `\n` + this.functions[r]), i.removeIfDef && (this.functions[r] = this.functions[r].replace(/^\\s*?#ifdef.+$/gm, \"\"), this.functions[r] = this.functions[r].replace(/^\\s*?#endif.*$/gm, \"\"), this.functions[r] = this.functions[r].replace(/^\\s*?#else.*$/gm, \"\"), this.functions[r] = this.functions[r].replace(/^\\s*?#elif.*$/gm, \"\")), i.removeAttributes && (this.functions[r] = this.functions[r].replace(/\\s*?attribute .+?;/g, `\n`)), i.removeUniforms && (this.functions[r] = this.functions[r].replace(/\\s*?uniform .*?;/g, `\n`)), i.removeVaryings && (this.functions[r] = this.functions[r].replace(/\\s*?(varying|in) .+?;/g, `\n`)), i.replaceStrings)\n for (let o = 0; o < i.replaceStrings.length; o++) {\n const l = i.replaceStrings[o];\n this.functions[r] = this.functions[r].replace(l.search, l.replace);\n }\n }\n /**\n * @internal\n */\n _registerTempVariable(e) {\n return this.sharedData.temps.indexOf(e) !== -1 ? !1 : (this.sharedData.temps.push(e), !0);\n }\n /**\n * @internal\n */\n _emitVaryingFromString(e, t, i = \"\", s = !1) {\n if (this.sharedData.varyings.indexOf(e) !== -1)\n return !1;\n this.sharedData.varyings.push(e), i && (i.startsWith(\"defined(\") ? this.sharedData.varyingDeclaration += `#if ${i}\n` : this.sharedData.varyingDeclaration += `${s ? \"#ifndef\" : \"#ifdef\"} ${i}\n`);\n const r = this._getShaderType(t);\n return this.shaderLanguage === 1 ? this.sharedData.varyingDeclaration += `varying ${e}: ${r};\n` : this.sharedData.varyingDeclaration += `varying ${r} ${e};\n`, i && (this.sharedData.varyingDeclaration += `#endif\n`), !0;\n }\n /**\n * @internal\n */\n _getVaryingName(e) {\n return this.shaderLanguage === 1 ? (this.target !== B.Fragment ? \"vertexOutputs.\" : \"fragmentInputs.\") + e : e;\n }\n /**\n * @internal\n */\n _emitUniformFromString(e, t, i = \"\", s = !1) {\n if (this.uniforms.indexOf(e) !== -1)\n return;\n this.uniforms.push(e), i && (i.startsWith(\"defined(\") ? this._uniformDeclaration += `#if ${i}\n` : this._uniformDeclaration += `${s ? \"#ifndef\" : \"#ifdef\"} ${i}\n`);\n const r = this._getShaderType(t);\n this.shaderLanguage === 1 ? this._uniformDeclaration += `uniform ${e}: ${r};\n` : this._uniformDeclaration += `uniform ${r} ${e};\n`, i && (this._uniformDeclaration += `#endif\n`);\n }\n /**\n * @internal\n */\n _generateTernary(e, t, i) {\n return this.shaderLanguage === 1 ? `select(${t}, ${e}, ${i})` : `${i} ? ${e} : ${t}`;\n }\n /**\n * @internal\n */\n _emitFloat(e) {\n return e.toString() === e.toFixed(0) ? `${e}.0` : e.toString();\n }\n /**\n * @internal\n */\n _declareOutput(e, t) {\n return this._declareLocalVar(e.associatedVariableName, e.type, t);\n }\n /**\n * @internal\n */\n _declareLocalVar(e, t, i) {\n return this.shaderLanguage === 1 ? `${i ? \"const\" : \"var\"} ${e}: ${this._getShaderType(t)}` : `${this._getShaderType(t)} ${e}`;\n }\n /**\n * @internal\n */\n _samplerCubeFunc() {\n return this.shaderLanguage === 1 ? \"textureSample\" : \"textureCube\";\n }\n /**\n * @internal\n */\n _samplerFunc() {\n return this.shaderLanguage === 1 ? \"textureSample\" : \"texture2D\";\n }\n /**\n * @internal\n */\n _samplerLODFunc() {\n return this.shaderLanguage === 1 ? \"textureSampleLevel\" : \"texture2DLodEXT\";\n }\n /**\n * @internal\n */\n _generateTextureSample(e, t) {\n return this.shaderLanguage === 1 ? `${this._samplerFunc()}(${t},${t + \"Sampler\"}, ${e})` : `${this._samplerFunc()}(${t}, ${e})`;\n }\n /**\n * @internal\n */\n _generateTextureSampleLOD(e, t, i) {\n return this.shaderLanguage === 1 ? `${this._samplerLODFunc()}(${t},${t + \"Sampler\"}, ${e}, ${i})` : `${this._samplerLODFunc()}(${t}, ${e}, ${i})`;\n }\n /**\n * @internal\n */\n _generateTextureSampleCube(e, t) {\n return this.shaderLanguage === 1 ? `${this._samplerCubeFunc()}(${t},${t + \"Sampler\"}, ${e})` : `${this._samplerCubeFunc()}(${t}, ${e})`;\n }\n /**\n * @internal\n */\n _generateTextureSampleCubeLOD(e, t, i) {\n return this.shaderLanguage === 1 ? `${this._samplerCubeFunc()}(${t},${t + \"Sampler\"}, ${e}, ${i})` : `${this._samplerCubeFunc()}(${t}, ${e}, ${i})`;\n }\n _convertVariableDeclarationToWGSL(e, t, i) {\n return i.replace(new RegExp(`(${e})\\\\s+(\\\\w+)`, \"g\"), `var $2: ${t}`);\n }\n _convertVariableConstructorsToWGSL(e, t, i) {\n return i.replace(new RegExp(`(${e})\\\\(`, \"g\"), ` ${t}(`);\n }\n _convertOutParametersToWGSL(e) {\n return e.replace(new RegExp(\"out\\\\s+var\\\\s+(\\\\w+)\\\\s*:\\\\s*(\\\\w+)\", \"g\"), \"$1: ptr\");\n }\n _convertTernaryOperandsToWGSL(e) {\n return e.replace(new RegExp(\"\\\\[(.*?)\\\\?(.*?):(.*)\\\\]\", \"g\"), (t, i, s, r) => `select(${r}, ${s}, ${i})`);\n }\n _convertModOperatorsToWGSL(e) {\n return e.replace(new RegExp(\"mod\\\\((.+?),\\\\s*(.+?)\\\\)\", \"g\"), (t, i, s) => `((${i})%(${s}))`);\n }\n _convertConstToWGSL(e) {\n return e.replace(new RegExp(\"const var\", \"g\"), \"const\");\n }\n _convertInnerFunctionsToWGSL(e) {\n return e.replace(new RegExp(\"inversesqrt\", \"g\"), \"inverseSqrt\");\n }\n _convertFunctionsToWGSL(e) {\n const t = /var\\s+(\\w+)\\s*:\\s*(\\w+)\\((.*)\\)/g;\n let i;\n for (; (i = t.exec(e)) !== null; ) {\n const s = i[1], r = i[2], o = i[3].replace(/var\\s/g, \"\");\n e = e.replace(i[0], `fn ${s}(${o}) -> ${r}`);\n }\n return e;\n }\n _babylonSLtoWGSL(e) {\n return e = this._convertVariableDeclarationToWGSL(\"void\", \"voidnull\", e), e = this._convertVariableDeclarationToWGSL(\"bool\", \"bool\", e), e = this._convertVariableDeclarationToWGSL(\"int\", \"i32\", e), e = this._convertVariableDeclarationToWGSL(\"uint\", \"u32\", e), e = this._convertVariableDeclarationToWGSL(\"float\", \"f32\", e), e = this._convertVariableDeclarationToWGSL(\"vec2\", \"vec2f\", e), e = this._convertVariableDeclarationToWGSL(\"vec3\", \"vec3f\", e), e = this._convertVariableDeclarationToWGSL(\"vec4\", \"vec4f\", e), e = this._convertVariableDeclarationToWGSL(\"mat2\", \"mat2x2f\", e), e = this._convertVariableDeclarationToWGSL(\"mat3\", \"mat3x3f\", e), e = this._convertVariableDeclarationToWGSL(\"mat4\", \"mat4x4f\", e), e = this._convertVariableConstructorsToWGSL(\"float\", \"f32\", e), e = this._convertVariableConstructorsToWGSL(\"vec2\", \"vec2f\", e), e = this._convertVariableConstructorsToWGSL(\"vec3\", \"vec3f\", e), e = this._convertVariableConstructorsToWGSL(\"vec4\", \"vec4f\", e), e = this._convertVariableConstructorsToWGSL(\"mat2\", \"mat2x2f\", e), e = this._convertVariableConstructorsToWGSL(\"mat3\", \"mat3x3f\", e), e = this._convertVariableConstructorsToWGSL(\"mat4\", \"mat4x4f\", e), e = this._convertTernaryOperandsToWGSL(e), e = this._convertModOperatorsToWGSL(e), e = this._convertConstToWGSL(e), e = this._convertInnerFunctionsToWGSL(e), e = this._convertOutParametersToWGSL(e), e = e.replace(/\\[\\*\\]/g, \"*\"), e = this._convertFunctionsToWGSL(e), e = e.replace(/\\s->\\svoidnull/g, \"\"), e = e.replace(/dFdx/g, \"dpdx\"), e = e.replace(/dFdy/g, \"dpdy\"), e;\n }\n _convertTernaryOperandsToGLSL(e) {\n return e.replace(new RegExp(\"\\\\[(.+?)\\\\?(.+?):(.+)\\\\]\", \"g\"), (t, i, s, r) => `${i} ? ${s} : ${r}`);\n }\n _babylonSLtoGLSL(e) {\n return e = e.replace(/\\[\\*\\]/g, \"\"), e = this._convertTernaryOperandsToGLSL(e), e;\n }\n}\nclass DV {\n /** Creates a new shared data */\n constructor() {\n this.temps = [], this.varyings = [], this.varyingDeclaration = \"\", this.inputBlocks = [], this.textureBlocks = [], this.bindableBlocks = [], this.forcedBindableBlocks = [], this.blocksWithFallbacks = [], this.blocksWithDefines = [], this.repeatableContentBlocks = [], this.dynamicUniformBlocks = [], this.blockingBlocks = [], this.animatedInputs = [], this.variableNames = {}, this.defineNames = {}, this.hints = {\n needWorldViewMatrix: !1,\n needWorldViewProjectionMatrix: !1,\n needAlphaBlending: !1,\n needAlphaTesting: !1\n }, this.checks = {\n emitVertex: !1,\n emitFragment: !1,\n notConnectedNonOptionalInputs: new Array()\n }, this.allowEmptyVertexProgram = !1, this.variableNames.position = 0, this.variableNames.normal = 0, this.variableNames.tangent = 0, this.variableNames.uv = 0, this.variableNames.uv2 = 0, this.variableNames.uv3 = 0, this.variableNames.uv4 = 0, this.variableNames.uv5 = 0, this.variableNames.uv6 = 0, this.variableNames.color = 0, this.variableNames.matricesIndices = 0, this.variableNames.matricesWeights = 0, this.variableNames.matricesIndicesExtra = 0, this.variableNames.matricesWeightsExtra = 0, this.variableNames.diffuseBase = 0, this.variableNames.specularBase = 0, this.variableNames.worldPos = 0, this.variableNames.shadow = 0, this.variableNames.view = 0, this.variableNames.vTBN = 0, this.defineNames.MAINUV0 = 0, this.defineNames.MAINUV1 = 0, this.defineNames.MAINUV2 = 0, this.defineNames.MAINUV3 = 0, this.defineNames.MAINUV4 = 0, this.defineNames.MAINUV5 = 0, this.defineNames.MAINUV6 = 0, this.defineNames.MAINUV7 = 0;\n }\n /**\n * Emits console errors and exceptions if there is a failing check\n */\n emitErrors() {\n let e = \"\";\n !this.checks.emitVertex && !this.allowEmptyVertexProgram && (e += `NodeMaterial does not have a vertex output. You need to at least add a block that generates a glPosition value.\n`), this.checks.emitFragment || (e += `NodeMaterial does not have a fragment output. You need to at least add a block that generates a glFragColor value.\n`);\n for (const t of this.checks.notConnectedNonOptionalInputs)\n e += `input ${t.name} from block ${t.ownerBlock.name}[${t.ownerBlock.getClassName()}] is not connected and is not optional.\n`;\n if (e)\n throw `Build of NodeMaterial failed:\n` + e;\n }\n}\nvar SE;\n(function(a) {\n a[a.Compatible = 0] = \"Compatible\", a[a.TypeIncompatible = 1] = \"TypeIncompatible\", a[a.TargetIncompatible = 2] = \"TargetIncompatible\", a[a.HierarchyIssue = 3] = \"HierarchyIssue\";\n})(SE || (SE = {}));\nvar bE;\n(function(a) {\n a[a.Input = 0] = \"Input\", a[a.Output = 1] = \"Output\";\n})(bE || (bE = {}));\nclass tc {\n /**\n * Checks if two types are equivalent\n * @param type1 type 1 to check\n * @param type2 type 2 to check\n * @returns true if both types are equivalent, else false\n */\n static AreEquivalentTypes(e, t) {\n switch (e) {\n case A.Vector3: {\n if (t === A.Color3)\n return !0;\n break;\n }\n case A.Vector4: {\n if (t === A.Color4)\n return !0;\n break;\n }\n case A.Color3: {\n if (t === A.Vector3)\n return !0;\n break;\n }\n case A.Color4: {\n if (t === A.Vector4)\n return !0;\n break;\n }\n }\n return !1;\n }\n get _connectedPoint() {\n return this._connectedPointBackingField;\n }\n set _connectedPoint(e) {\n var t;\n this._connectedPointBackingField !== e && ((t = this._connectedPointTypeChangedObserver) == null || t.remove(), this._updateTypeDependentState(() => this._connectedPointBackingField = e), this._connectedPointBackingField && (this._connectedPointTypeChangedObserver = this._connectedPointBackingField.onTypeChangedObservable.add(() => {\n this._notifyTypeChanged();\n })));\n }\n /** @internal */\n get _typeConnectionSource() {\n return this._typeConnectionSourceBackingField;\n }\n /** @internal */\n set _typeConnectionSource(e) {\n var t;\n this._typeConnectionSourceBackingField !== e && ((t = this._typeConnectionSourceTypeChangedObserver) == null || t.remove(), this._updateTypeDependentState(() => this._typeConnectionSourceBackingField = e), this._typeConnectionSourceBackingField && (this._typeConnectionSourceTypeChangedObserver = this._typeConnectionSourceBackingField.onTypeChangedObservable.add(() => {\n this._notifyTypeChanged();\n })));\n }\n /** @internal */\n get _defaultConnectionPointType() {\n return this._defaultConnectionPointTypeBackingField;\n }\n /** @internal */\n set _defaultConnectionPointType(e) {\n this._updateTypeDependentState(() => this._defaultConnectionPointTypeBackingField = e);\n }\n /** @internal */\n get _linkedConnectionSource() {\n return this._linkedConnectionSourceBackingField;\n }\n /** @internal */\n set _linkedConnectionSource(e) {\n var t;\n this._linkedConnectionSourceBackingField !== e && ((t = this._linkedConnectionSourceTypeChangedObserver) == null || t.remove(), this._updateTypeDependentState(() => this._linkedConnectionSourceBackingField = e), this._linkedConnectionSourceBackingField && (this._linkedConnectionSourceTypeChangedObserver = this._linkedConnectionSourceBackingField.onTypeChangedObservable.add(() => {\n this._notifyTypeChanged();\n })));\n }\n /** Gets the direction of the point */\n get direction() {\n return this._direction;\n }\n /**\n * Gets the declaration variable name in the shader\n */\n get declarationVariableName() {\n return this._ownerBlock.isInput ? this._ownerBlock.declarationVariableName : (!this._enforceAssociatedVariableName || !this._associatedVariableName) && this._connectedPoint ? this._connectedPoint.declarationVariableName : this._associatedVariableName;\n }\n /**\n * Gets or sets the associated variable name in the shader\n */\n get associatedVariableName() {\n return this._ownerBlock.isInput ? this._ownerBlock.associatedVariableName : (!this._enforceAssociatedVariableName || !this._associatedVariableName) && this._connectedPoint ? this._connectedPoint.associatedVariableName : this._associatedVariableName;\n }\n set associatedVariableName(e) {\n this._associatedVariableName = e;\n }\n /** Get the inner type (ie AutoDetect for instance instead of the inferred one) */\n get innerType() {\n return this._linkedConnectionSource && this._linkedConnectionSource.isConnected ? this.type : this._type;\n }\n /**\n * Gets or sets the connection point type (default is float)\n */\n get type() {\n if (this._type === A.AutoDetect) {\n if (this._ownerBlock.isInput)\n return this._ownerBlock.type;\n if (this._connectedPoint)\n return this._connectedPoint.type;\n if (this._linkedConnectionSource && this._linkedConnectionSource.isConnected)\n return this._linkedConnectionSource.type;\n }\n if (this._type === A.BasedOnInput) {\n if (this._typeConnectionSource)\n return !this._typeConnectionSource.isConnected && this._defaultConnectionPointType ? this._defaultConnectionPointType : this._typeConnectionSource.type;\n if (this._defaultConnectionPointType)\n return this._defaultConnectionPointType;\n }\n return this._type;\n }\n set type(e) {\n this._updateTypeDependentState(() => this._type = e);\n }\n /** Gets or sets the target of that connection point */\n get target() {\n return !this._prioritizeVertex || !this._ownerBlock ? this._target : this._target !== B.VertexAndFragment ? this._target : this._ownerBlock.target === B.Fragment ? B.Fragment : B.Vertex;\n }\n set target(e) {\n this._target = e;\n }\n /**\n * Gets a boolean indicating that the current point is connected to another NodeMaterialBlock\n */\n get isConnected() {\n return this.connectedPoint !== null || this.hasEndpoints;\n }\n /**\n * Gets a boolean indicating that the current point is connected to an input block\n */\n get isConnectedToInputBlock() {\n return this.connectedPoint !== null && this.connectedPoint.ownerBlock.isInput;\n }\n /**\n * Gets a the connected input block (if any)\n */\n get connectInputBlock() {\n return this.isConnectedToInputBlock ? this.connectedPoint.ownerBlock : null;\n }\n /** Get the other side of the connection (if any) */\n get connectedPoint() {\n return this._connectedPoint;\n }\n /** Get the block that owns this connection point */\n get ownerBlock() {\n return this._ownerBlock;\n }\n /** Get the block connected on the other side of this connection (if any) */\n get sourceBlock() {\n return this._connectedPoint ? this._connectedPoint.ownerBlock : null;\n }\n /** Get the block connected on the endpoints of this connection (if any) */\n get connectedBlocks() {\n return this._endpoints.length === 0 ? [] : this._endpoints.map((e) => e.ownerBlock);\n }\n /** Gets the list of connected endpoints */\n get endpoints() {\n return this._endpoints;\n }\n /** Gets a boolean indicating if that output point is connected to at least one input */\n get hasEndpoints() {\n return this._endpoints && this._endpoints.length > 0;\n }\n /** Gets a boolean indicating that this connection has a path to the vertex output*/\n get isDirectlyConnectedToVertexOutput() {\n if (!this.hasEndpoints)\n return !1;\n for (const e of this._endpoints)\n if (e.ownerBlock.target === B.Vertex || (e.ownerBlock.target === B.Neutral || e.ownerBlock.target === B.VertexAndFragment) && e.ownerBlock.outputs.some((t) => t.isDirectlyConnectedToVertexOutput))\n return !0;\n return !1;\n }\n /** Gets a boolean indicating that this connection will be used in the vertex shader */\n get isConnectedInVertexShader() {\n if (this.target === B.Vertex)\n return !0;\n if (!this.hasEndpoints)\n return !1;\n for (const e of this._endpoints)\n if (e.ownerBlock.target === B.Vertex || e.target === B.Vertex || (e.ownerBlock.target === B.Neutral || e.ownerBlock.target === B.VertexAndFragment) && e.ownerBlock.outputs.some((t) => t.isConnectedInVertexShader))\n return !0;\n return !1;\n }\n /** Gets a boolean indicating that this connection will be used in the fragment shader */\n get isConnectedInFragmentShader() {\n if (this.target === B.Fragment)\n return !0;\n if (!this.hasEndpoints)\n return !1;\n for (const e of this._endpoints)\n if (e.ownerBlock.target === B.Fragment || (e.ownerBlock.target === B.Neutral || e.ownerBlock.target === B.VertexAndFragment) && e.ownerBlock.isConnectedInFragmentShader())\n return !0;\n return !1;\n }\n /**\n * Creates a block suitable to be used as an input for this input point.\n * If null is returned, a block based on the point type will be created.\n * @returns The returned string parameter is the name of the output point of NodeMaterialBlock (first parameter of the returned array) that can be connected to the input\n */\n createCustomInputBlock() {\n return null;\n }\n /**\n * Creates a new connection point\n * @param name defines the connection point name\n * @param ownerBlock defines the block hosting this connection point\n * @param direction defines the direction of the connection point\n */\n constructor(e, t, i) {\n this._connectedPointBackingField = null, this._endpoints = new Array(), this._typeConnectionSourceBackingField = null, this._defaultConnectionPointTypeBackingField = null, this._linkedConnectionSourceBackingField = null, this._acceptedConnectionPointType = null, this._type = A.Float, this._enforceAssociatedVariableName = !1, this.needDualDirectionValidation = !1, this.acceptedConnectionPointTypes = [], this.excludedConnectionPointTypes = [], this.onConnectionObservable = new G(), this.onDisconnectionObservable = new G(), this.onTypeChangedObservable = new G(), this._isTypeChangeObservableNotifying = !1, this.isExposedOnFrame = !1, this.exposedPortPosition = -1, this._prioritizeVertex = !1, this._target = B.VertexAndFragment, this._ownerBlock = t, this.name = e, this._direction = i;\n }\n /**\n * Gets the current class name e.g. \"NodeMaterialConnectionPoint\"\n * @returns the class name\n */\n getClassName() {\n return \"NodeMaterialConnectionPoint\";\n }\n /**\n * Gets a boolean indicating if the current point can be connected to another point\n * @param connectionPoint defines the other connection point\n * @returns a boolean\n */\n canConnectTo(e) {\n return this.checkCompatibilityState(e) === 0;\n }\n /**\n * Gets a number indicating if the current point can be connected to another point\n * @param connectionPoint defines the other connection point\n * @returns a number defining the compatibility state\n */\n checkCompatibilityState(e) {\n const t = this._ownerBlock, i = e.ownerBlock;\n if (t.target === B.Fragment) {\n if (i.target === B.Vertex)\n return 2;\n for (const n of i.outputs)\n if (n.ownerBlock.target != B.Neutral && n.isConnectedInVertexShader)\n return 2;\n }\n if (this.type !== e.type && e.innerType !== A.AutoDetect)\n return tc.AreEquivalentTypes(this.type, e.type) || e.acceptedConnectionPointTypes && e.acceptedConnectionPointTypes.indexOf(this.type) !== -1 || e._acceptedConnectionPointType && tc.AreEquivalentTypes(e._acceptedConnectionPointType.type, this.type) ? 0 : 1;\n if (e.excludedConnectionPointTypes && e.excludedConnectionPointTypes.indexOf(this.type) !== -1)\n return 1;\n let s = i, r = t;\n return this.direction === 0 && (s = t, r = i), s.isAnAncestorOf(r) ? 3 : 0;\n }\n /**\n * Connect this point to another connection point\n * @param connectionPoint defines the other connection point\n * @param ignoreConstraints defines if the system will ignore connection type constraints (default is false)\n * @returns the current connection point\n */\n connectTo(e, t = !1) {\n if (!t && !this.canConnectTo(e))\n throw \"Cannot connect these two connectors.\";\n return this._endpoints.push(e), e._connectedPoint = this, this._enforceAssociatedVariableName = !1, this.onConnectionObservable.notifyObservers(e), e.onConnectionObservable.notifyObservers(this), this;\n }\n /**\n * Disconnect this point from one of his endpoint\n * @param endpoint defines the other connection point\n * @returns the current connection point\n */\n disconnectFrom(e) {\n const t = this._endpoints.indexOf(e);\n return t === -1 ? this : (this._endpoints.splice(t, 1), e._connectedPoint = null, this._enforceAssociatedVariableName = !1, e._enforceAssociatedVariableName = !1, this.onDisconnectionObservable.notifyObservers(e), e.onDisconnectionObservable.notifyObservers(this), this);\n }\n /**\n * Fill the list of excluded connection point types with all types other than those passed in the parameter\n * @param mask Types (ORed values of NodeMaterialBlockConnectionPointTypes) that are allowed, and thus will not be pushed to the excluded list\n */\n addExcludedConnectionPointFromAllowedTypes(e) {\n let t = 1;\n for (; t < A.All; )\n e & t || this.excludedConnectionPointTypes.push(t), t = t << 1;\n }\n /**\n * Serializes this point in a JSON representation\n * @param isInput defines if the connection point is an input (default is true)\n * @returns the serialized point object\n */\n serialize(e = !0) {\n const t = {};\n return t.name = this.name, t.displayName = this.displayName, e && this.connectedPoint && (t.inputName = this.name, t.targetBlockId = this.connectedPoint.ownerBlock.uniqueId, t.targetConnectionName = this.connectedPoint.name, t.isExposedOnFrame = !0, t.exposedPortPosition = this.exposedPortPosition), (this.isExposedOnFrame || this.exposedPortPosition >= 0) && (t.isExposedOnFrame = !0, t.exposedPortPosition = this.exposedPortPosition), t;\n }\n /**\n * Release resources\n */\n dispose() {\n this.onConnectionObservable.clear(), this.onDisconnectionObservable.clear(), this.onTypeChangedObservable.clear(), this._connectedPoint = null, this._typeConnectionSource = null, this._linkedConnectionSource = null;\n }\n _updateTypeDependentState(e) {\n const t = this.type;\n e(), this.type !== t && this._notifyTypeChanged();\n }\n _notifyTypeChanged() {\n this._isTypeChangeObservableNotifying || (this._isTypeChangeObservableNotifying = !0, this.onTypeChangedObservable.notifyObservers(this.type), this._isTypeChangeObservableNotifying = !1);\n }\n}\nclass Ge {\n /**\n * Gets the name of the block\n */\n get name() {\n return this._name;\n }\n /**\n * Sets the name of the block. Will check if the name is valid.\n */\n set name(e) {\n this.validateBlockName(e) && (this._name = e);\n }\n /**\n * Gets a boolean indicating that this block can only be used once per NodeMaterial\n */\n get isUnique() {\n return this._isUnique;\n }\n /**\n * Gets a boolean indicating that this block is an end block (e.g. it is generating a system value)\n */\n get isFinalMerger() {\n return this._isFinalMerger;\n }\n /**\n * Gets a boolean indicating that this block is an input (e.g. it sends data to the shader)\n */\n get isInput() {\n return this._isInput;\n }\n /**\n * Gets a boolean indicating if this block is a teleport out\n */\n get isTeleportOut() {\n return this._isTeleportOut;\n }\n /**\n * Gets a boolean indicating if this block is a teleport in\n */\n get isTeleportIn() {\n return this._isTeleportIn;\n }\n /**\n * Gets or sets the build Id\n */\n get buildId() {\n return this._buildId;\n }\n set buildId(e) {\n this._buildId = e;\n }\n /**\n * Gets or sets the target of the block\n */\n get target() {\n return this._target;\n }\n set target(e) {\n this._target & e || (this._target = e);\n }\n /**\n * Gets the list of input points\n */\n get inputs() {\n return this._inputs;\n }\n /** Gets the list of output points */\n get outputs() {\n return this._outputs;\n }\n /**\n * Find an input by its name\n * @param name defines the name of the input to look for\n * @returns the input or null if not found\n */\n getInputByName(e) {\n const t = this._inputs.filter((i) => i.name === e);\n return t.length ? t[0] : null;\n }\n /**\n * Find an output by its name\n * @param name defines the name of the output to look for\n * @returns the output or null if not found\n */\n getOutputByName(e) {\n const t = this._outputs.filter((i) => i.name === e);\n return t.length ? t[0] : null;\n }\n /**\n * Creates a new NodeMaterialBlock\n * @param name defines the block name\n * @param target defines the target of that block (Vertex by default)\n * @param isFinalMerger defines a boolean indicating that this block is an end block (e.g. it is generating a system value). Default is false\n */\n constructor(e, t = B.Vertex, i = !1) {\n this._isFinalMerger = !1, this._isInput = !1, this._isTeleportOut = !1, this._isTeleportIn = !1, this._name = \"\", this._isUnique = !1, this.inputsAreExclusive = !1, this._codeVariableName = \"\", this._inputs = new Array(), this._outputs = new Array(), this.comments = \"\", this.visibleInInspector = !1, this.visibleOnFrame = !1, this._target = t, this._originalTargetIsNeutral = t === B.Neutral, this._isFinalMerger = i, this._isInput = this.getClassName() === \"InputBlock\", this._isTeleportOut = this.getClassName() === \"NodeMaterialTeleportOutBlock\", this._isTeleportIn = this.getClassName() === \"NodeMaterialTeleportInBlock\", this._name = e, this.uniqueId = of.UniqueId;\n }\n /** @internal */\n _setInitialTarget(e) {\n this._target = e, this._originalTargetIsNeutral = e === B.Neutral;\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n initialize(e) {\n }\n /**\n * Bind data to effect. Will only be called for blocks with isBindable === true\n * @param effect defines the effect to bind data to\n * @param nodeMaterial defines the hosting NodeMaterial\n * @param mesh defines the mesh that will be rendered\n * @param subMesh defines the submesh that will be rendered\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n bind(e, t, i, s) {\n }\n _writeVariable(e) {\n return e.connectedPoint ? `${e.associatedVariableName}` : \"0.\";\n }\n _writeFloat(e) {\n let t = e.toString();\n return t.indexOf(\".\") === -1 && (t += \".0\"), `${t}`;\n }\n /**\n * Gets the current class name e.g. \"NodeMaterialBlock\"\n * @returns the class name\n */\n getClassName() {\n return \"NodeMaterialBlock\";\n }\n /** Gets a boolean indicating that this connection will be used in the fragment shader\n * @returns true if connected in fragment shader\n */\n isConnectedInFragmentShader() {\n return this.outputs.some((e) => e.isConnectedInFragmentShader);\n }\n /**\n * Register a new input. Must be called inside a block constructor\n * @param name defines the connection point name\n * @param type defines the connection point type\n * @param isOptional defines a boolean indicating that this input can be omitted\n * @param target defines the target to use to limit the connection point (will be VertexAndFragment by default)\n * @param point an already created connection point. If not provided, create a new one\n * @returns the current block\n */\n registerInput(e, t, i = !1, s, r) {\n return r = r ?? new tc(\n e,\n this,\n 0\n /* NodeMaterialConnectionPointDirection.Input */\n ), r.type = t, r.isOptional = i, s && (r.target = s), this._inputs.push(r), this;\n }\n /**\n * Register a new output. Must be called inside a block constructor\n * @param name defines the connection point name\n * @param type defines the connection point type\n * @param target defines the target to use to limit the connection point (will be VertexAndFragment by default)\n * @param point an already created connection point. If not provided, create a new one\n * @returns the current block\n */\n registerOutput(e, t, i, s) {\n return s = s ?? new tc(\n e,\n this,\n 1\n /* NodeMaterialConnectionPointDirection.Output */\n ), s.type = t, i && (s.target = i), this._outputs.push(s), this;\n }\n /**\n * Will return the first available input e.g. the first one which is not an uniform or an attribute\n * @param forOutput defines an optional connection point to check compatibility with\n * @returns the first available input or null\n */\n getFirstAvailableInput(e = null) {\n for (const t of this._inputs)\n if (!t.connectedPoint && (!e || e.type === t.type || t.type === A.AutoDetect))\n return t;\n return null;\n }\n /**\n * Will return the first available output e.g. the first one which is not yet connected and not a varying\n * @param forBlock defines an optional block to check compatibility with\n * @returns the first available input or null\n */\n getFirstAvailableOutput(e = null) {\n for (const t of this._outputs)\n if (!e || !e.target || e.target === B.Neutral || e.target & t.target)\n return t;\n return null;\n }\n /**\n * Gets the sibling of the given output\n * @param current defines the current output\n * @returns the next output in the list or null\n */\n getSiblingOutput(e) {\n const t = this._outputs.indexOf(e);\n return t === -1 || t >= this._outputs.length ? null : this._outputs[t + 1];\n }\n /**\n * Checks if the current block is an ancestor of a given block\n * @param block defines the potential descendant block to check\n * @returns true if block is a descendant\n */\n isAnAncestorOf(e) {\n for (const t of this._outputs)\n if (t.hasEndpoints) {\n for (const i of t.endpoints)\n if (i.ownerBlock === e || i.ownerBlock.isAnAncestorOf(e))\n return !0;\n }\n return !1;\n }\n /**\n * Connect current block with another block\n * @param other defines the block to connect with\n * @param options define the various options to help pick the right connections\n * @param options.input\n * @param options.output\n * @param options.outputSwizzle\n * @returns the current block\n */\n connectTo(e, t) {\n if (this._outputs.length === 0)\n return;\n let i = t && t.output ? this.getOutputByName(t.output) : this.getFirstAvailableOutput(e), s = !0;\n for (; s; ) {\n const r = t && t.input ? e.getInputByName(t.input) : e.getFirstAvailableInput(i);\n if (i && r && i.canConnectTo(r))\n i.connectTo(r), s = !1;\n else if (i)\n i = this.getSiblingOutput(i);\n else\n throw \"Unable to find a compatible match\";\n }\n return this;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _buildBlock(e) {\n }\n /**\n * Add uniforms, samplers and uniform buffers at compilation time\n * @param state defines the state to update\n * @param nodeMaterial defines the node material requesting the update\n * @param defines defines the material defines to update\n * @param uniformBuffers defines the list of uniform buffer names\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updateUniformsAndSamples(e, t, i, s) {\n }\n /**\n * Add potential fallbacks if shader compilation fails\n * @param mesh defines the mesh to be rendered\n * @param fallbacks defines the current prioritized list of fallbacks\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n provideFallbacks(e, t) {\n }\n /**\n * Initialize defines for shader compilation\n * @param mesh defines the mesh to be rendered\n * @param nodeMaterial defines the node material requesting the update\n * @param defines defines the material defines to update\n * @param useInstances specifies that instances should be used\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n initializeDefines(e, t, i, s = !1) {\n }\n /**\n * Update defines for shader compilation\n * @param mesh defines the mesh to be rendered\n * @param nodeMaterial defines the node material requesting the update\n * @param defines defines the material defines to update\n * @param useInstances specifies that instances should be used\n * @param subMesh defines which submesh to render\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n prepareDefines(e, t, i, s = !1, r) {\n }\n /**\n * Lets the block try to connect some inputs automatically\n * @param material defines the hosting NodeMaterial\n * @param additionalFilteringInfo optional additional filtering condition when looking for compatible blocks\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n autoConfigure(e, t = () => !0) {\n }\n /**\n * Function called when a block is declared as repeatable content generator\n * @param vertexShaderState defines the current compilation state for the vertex shader\n * @param fragmentShaderState defines the current compilation state for the fragment shader\n * @param mesh defines the mesh to be rendered\n * @param defines defines the material defines to update\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n replaceRepeatableContent(e, t, i, s) {\n }\n /** Gets a boolean indicating that the code of this block will be promoted to vertex shader even if connected to fragment output */\n get willBeGeneratedIntoVertexShaderFromFragmentShader() {\n return this.isInput || this.isFinalMerger || this._outputs.some((e) => e.isDirectlyConnectedToVertexOutput) || this.target === B.Vertex ? !1 : !!((this.target === B.VertexAndFragment || this.target === B.Neutral) && this._outputs.some((e) => e.isConnectedInVertexShader));\n }\n /**\n * Checks if the block is ready\n * @param mesh defines the mesh to be rendered\n * @param nodeMaterial defines the node material requesting the update\n * @param defines defines the material defines to update\n * @param useInstances specifies that instances should be used\n * @returns true if the block is ready\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isReady(e, t, i, s = !1) {\n return !0;\n }\n _linkConnectionTypes(e, t, i = !1) {\n i ? this._inputs[t]._acceptedConnectionPointType = this._inputs[e] : this._inputs[e]._linkedConnectionSource = this._inputs[t], this._inputs[t]._linkedConnectionSource = this._inputs[e];\n }\n _processBuild(e, t, i, s) {\n e.build(t, s);\n const r = t._vertexState != null, n = e._buildTarget === B.Vertex && e.target !== B.VertexAndFragment;\n if (r && (!(e.target & e._buildTarget) || !(e.target & i.target) || this.target !== B.VertexAndFragment && n) && (!e.isInput && t.target !== e._buildTarget || // block was already emitted by vertex shader\n e.isInput && e.isAttribute && !e._noContextSwitch)) {\n const o = i.connectedPoint;\n if (t._vertexState._emitVaryingFromString(\"v_\" + o.declarationVariableName, o.type)) {\n const h = t.shaderLanguage === 1 ? \"vertexOutputs.\" : \"\";\n t._vertexState.compilationString += `${h}${\"v_\" + o.declarationVariableName} = ${o.associatedVariableName};\n`;\n }\n const l = t.shaderLanguage === 1 ? \"fragmentInputs.\" : \"\";\n i.associatedVariableName = l + \"v_\" + o.declarationVariableName, i._enforceAssociatedVariableName = !0;\n }\n }\n /**\n * Validates the new name for the block node.\n * @param newName the new name to be given to the node.\n * @returns false if the name is a reserve word, else true.\n */\n validateBlockName(e) {\n const t = [\n \"position\",\n \"normal\",\n \"tangent\",\n \"particle_positionw\",\n \"uv\",\n \"uv2\",\n \"uv3\",\n \"uv4\",\n \"uv5\",\n \"uv6\",\n \"position2d\",\n \"particle_uv\",\n \"matricesIndices\",\n \"matricesWeights\",\n \"world0\",\n \"world1\",\n \"world2\",\n \"world3\",\n \"particle_color\",\n \"particle_texturemask\"\n ];\n for (const i of t)\n if (e === i)\n return !1;\n return !0;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _customBuildStep(e, t) {\n }\n /**\n * Compile the current node and generate the shader code\n * @param state defines the current compilation state (uniforms, samplers, current string)\n * @param activeBlocks defines the list of active blocks (i.e. blocks to compile)\n * @returns true if already built\n */\n build(e, t) {\n if (this._buildId === e.sharedData.buildId)\n return !0;\n if (!this.isInput)\n for (const i of this._outputs)\n i.associatedVariableName || (i.associatedVariableName = e._getFreeVariableName(i.name));\n for (const i of this._inputs) {\n if (!i.connectedPoint) {\n i.isOptional || e.sharedData.checks.notConnectedNonOptionalInputs.push(i);\n continue;\n }\n if (this.target !== B.Neutral && (!(i.target & this.target) || !(i.target & e.target)))\n continue;\n const s = i.connectedPoint.ownerBlock;\n s && s !== this && this._processBuild(s, e, i, t);\n }\n if (this._customBuildStep(e, t), this._buildId === e.sharedData.buildId)\n return !0;\n if (e.sharedData.verbose && L.Log(`${e.target === B.Vertex ? \"Vertex shader\" : \"Fragment shader\"}: Building ${this.name} [${this.getClassName()}]`), this.isFinalMerger)\n switch (e.target) {\n case B.Vertex:\n e.sharedData.checks.emitVertex = !0;\n break;\n case B.Fragment:\n e.sharedData.checks.emitFragment = !0;\n break;\n }\n !this.isInput && e.sharedData.emitComments && (e.compilationString += `\n//${this.name}\n`), this._buildBlock(e), this._buildId = e.sharedData.buildId, this._buildTarget = e.target;\n for (const i of this._outputs)\n if (i.target & e.target)\n for (const s of i.endpoints) {\n const r = s.ownerBlock;\n r && r.target & e.target && t.indexOf(r) !== -1 && this._processBuild(r, e, s, t);\n }\n return !1;\n }\n _inputRename(e) {\n return e;\n }\n _outputRename(e) {\n return e;\n }\n _dumpPropertiesCode() {\n const e = this._codeVariableName;\n return `${e}.visibleInInspector = ${this.visibleInInspector};\n${e}.visibleOnFrame = ${this.visibleOnFrame};\n${e}.target = ${this.target};\n`;\n }\n /**\n * @internal\n */\n _dumpCode(e, t) {\n t.push(this);\n const i = this.name.replace(/[^A-Za-z_]+/g, \"\");\n if (this._codeVariableName = i || `${this.getClassName()}_${this.uniqueId}`, e.indexOf(this._codeVariableName) !== -1) {\n let r = 0;\n do\n r++, this._codeVariableName = i + r;\n while (e.indexOf(this._codeVariableName) !== -1);\n }\n e.push(this._codeVariableName);\n let s = `\n// ${this.getClassName()}\n`;\n this.comments && (s += `// ${this.comments}\n`), s += `var ${this._codeVariableName} = new BABYLON.${this.getClassName()}(\"${this.name}\");\n`, s += this._dumpPropertiesCode();\n for (const r of this.inputs) {\n if (!r.isConnected)\n continue;\n const o = r.connectedPoint.ownerBlock;\n t.indexOf(o) === -1 && (s += o._dumpCode(e, t));\n }\n for (const r of this.outputs)\n if (r.hasEndpoints)\n for (const n of r.endpoints) {\n const o = n.ownerBlock;\n o && t.indexOf(o) === -1 && (s += o._dumpCode(e, t));\n }\n return s;\n }\n /**\n * @internal\n */\n _dumpCodeForOutputConnections(e) {\n let t = \"\";\n if (e.indexOf(this) !== -1)\n return t;\n e.push(this);\n for (const i of this.inputs) {\n if (!i.isConnected)\n continue;\n const s = i.connectedPoint, r = s.ownerBlock;\n t += r._dumpCodeForOutputConnections(e), t += `${r._codeVariableName}.${r._outputRename(s.name)}.connectTo(${this._codeVariableName}.${this._inputRename(i.name)});\n`;\n }\n return t;\n }\n /**\n * Clone the current block to a new identical block\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @returns a copy of the current block\n */\n clone(e, t = \"\") {\n const i = this.serialize(), s = Oi(i.customType);\n if (s) {\n const r = new s();\n return r._deserialize(i, e, t), r;\n }\n return null;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = {};\n e.customType = \"BABYLON.\" + this.getClassName(), e.id = this.uniqueId, e.name = this.name, e.comments = this.comments, e.visibleInInspector = this.visibleInInspector, e.visibleOnFrame = this.visibleOnFrame, e.target = this.target, e.inputs = [], e.outputs = [];\n for (const t of this.inputs)\n e.inputs.push(t.serialize());\n for (const t of this.outputs)\n e.outputs.push(t.serialize(!1));\n return e;\n }\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _deserialize(e, t, i, s) {\n this.name = e.name, this.comments = e.comments, this.visibleInInspector = !!e.visibleInInspector, this.visibleOnFrame = !!e.visibleOnFrame, this._target = e.target ?? this.target, this._deserializePortDisplayNamesAndExposedOnFrame(e);\n }\n _deserializePortDisplayNamesAndExposedOnFrame(e) {\n const t = e.inputs, i = e.outputs;\n t && t.forEach((s, r) => {\n s.displayName && (this.inputs[r].displayName = s.displayName), s.isExposedOnFrame && (this.inputs[r].isExposedOnFrame = s.isExposedOnFrame, this.inputs[r].exposedPortPosition = s.exposedPortPosition);\n }), i && i.forEach((s, r) => {\n s.displayName && (this.outputs[r].displayName = s.displayName), s.isExposedOnFrame && (this.outputs[r].isExposedOnFrame = s.isExposedOnFrame, this.outputs[r].exposedPortPosition = s.exposedPortPosition);\n });\n }\n /**\n * Release resources\n */\n dispose() {\n for (const e of this.inputs)\n e.dispose();\n for (const e of this.outputs)\n e.dispose();\n }\n}\nclass Hp extends Ge {\n /**\n * Creates a new TransformBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.complementW = 1, this.complementZ = 0, this.target = B.Vertex, this.registerInput(\"vector\", A.AutoDetect), this.registerInput(\"transform\", A.Matrix), this.registerOutput(\"output\", A.Vector4), this.registerOutput(\"xyz\", A.Vector3), this._inputs[0].onConnectionObservable.add((t) => {\n if (t.ownerBlock.isInput) {\n const i = t.ownerBlock;\n (i.name === \"normal\" || i.name === \"tangent\") && (this.complementW = 0);\n }\n });\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TransformBlock\";\n }\n /**\n * Gets the vector input\n */\n get vector() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the xyz output component\n */\n get xyz() {\n return this._outputs[1];\n }\n /**\n * Gets the matrix transform input\n */\n get transform() {\n return this._inputs[1];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this.vector, i = this.transform, s = e._getShaderType(A.Vector4), r = e._getShaderType(A.Vector3);\n if (t.connectedPoint) {\n if (this.complementW === 0) {\n const n = `//${this.name}`;\n e._emitFunctionFromInclude(\"helperFunctions\", n), e.sharedData.blocksWithDefines.push(this);\n const o = e._getFreeVariableName(`${i.associatedVariableName}_NUS`);\n switch (e.shaderLanguage === 1 ? e.compilationString += `var ${o}: mat3x3f = mat3x3f(${i.associatedVariableName}[0].xyz, ${i.associatedVariableName}[1].xyz, ${i.associatedVariableName}[2].xyz);\n` : e.compilationString += `mat3 ${o} = mat3(${i.associatedVariableName});\n`, e.compilationString += `#ifdef NONUNIFORMSCALING\n`, e.compilationString += `${o} = transposeMat3(inverseMat3(${o}));\n`, e.compilationString += `#endif\n`, t.connectedPoint.type) {\n case A.Vector2:\n e.compilationString += e._declareOutput(this.output) + ` = ${s}(${o} * ${r}(${t.associatedVariableName}, ${this._writeFloat(this.complementZ)}), ${this._writeFloat(this.complementW)});\n`;\n break;\n case A.Vector3:\n case A.Color3:\n e.compilationString += e._declareOutput(this.output) + ` = ${s}(${o} * ${t.associatedVariableName}, ${this._writeFloat(this.complementW)});\n`;\n break;\n default:\n e.compilationString += e._declareOutput(this.output) + ` = ${s}(${o} * ${t.associatedVariableName}.xyz, ${this._writeFloat(this.complementW)});\n`;\n break;\n }\n } else {\n const n = i.associatedVariableName;\n switch (t.connectedPoint.type) {\n case A.Vector2:\n e.compilationString += e._declareOutput(this.output) + ` = ${n} * ${s}(${t.associatedVariableName}, ${this._writeFloat(this.complementZ)}, ${this._writeFloat(this.complementW)});\n`;\n break;\n case A.Vector3:\n case A.Color3:\n e.compilationString += e._declareOutput(this.output) + ` = ${n} * ${s}(${t.associatedVariableName}, ${this._writeFloat(this.complementW)});\n`;\n break;\n default:\n e.compilationString += e._declareOutput(this.output) + ` = ${n} * ${t.associatedVariableName};\n`;\n break;\n }\n }\n this.xyz.hasEndpoints && (e.compilationString += e._declareOutput(this.xyz) + ` = ${this.output.associatedVariableName}.xyz;\n`);\n }\n return this;\n }\n /**\n * Update defines for shader compilation\n * @param mesh defines the mesh to be rendered\n * @param nodeMaterial defines the node material requesting the update\n * @param defines defines the material defines to update\n */\n prepareDefines(e, t, i) {\n e.nonUniformScaling && i.setValue(\"NONUNIFORMSCALING\", !0);\n }\n serialize() {\n const e = super.serialize();\n return e.complementZ = this.complementZ, e.complementW = this.complementW, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.complementZ = e.complementZ !== void 0 ? e.complementZ : 0, this.complementW = e.complementW !== void 0 ? e.complementW : 1;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode() + `${this._codeVariableName}.complementZ = ${this.complementZ};\n`;\n return e += `${this._codeVariableName}.complementW = ${this.complementW};\n`, e;\n }\n}\nU(\"BABYLON.TransformBlock\", Hp);\nclass nu extends Ge {\n /**\n * Creates a new VertexOutputBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Vertex, !0), this.registerInput(\"vector\", A.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"VertexOutputBlock\";\n }\n /**\n * Gets the vector input component\n */\n get vector() {\n return this._inputs[0];\n }\n _isLogarithmicDepthEnabled(e, t) {\n if (t)\n return !0;\n for (const i of e)\n if (i.useLogarithmicDepth)\n return !0;\n return !1;\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this.vector;\n return e.shaderLanguage === 1 ? e.compilationString += `vertexOutputs.position = ${t.associatedVariableName};\n` : e.compilationString += `gl_Position = ${t.associatedVariableName};\n`, this._isLogarithmicDepthEnabled(e.sharedData.fragmentOutputNodes, e.sharedData.nodeMaterial.useLogarithmicDepth) && (e._emitUniformFromString(\"logarithmicDepthConstant\", A.Float), e._emitVaryingFromString(\"vFragmentDepth\", A.Float), e.compilationString += `vFragmentDepth = 1.0 + gl_Position.w;\n`, e.compilationString += `gl_Position.z = log2(max(0.000001, vFragmentDepth)) * logarithmicDepthConstant;\n`), this;\n }\n}\nU(\"BABYLON.VertexOutputBlock\", nu);\nvar EE;\n(function(a) {\n a[a.Boolean = 0] = \"Boolean\", a[a.Float = 1] = \"Float\", a[a.Int = 2] = \"Int\", a[a.Vector2 = 3] = \"Vector2\", a[a.List = 4] = \"List\";\n})(EE || (EE = {}));\nfunction ze(a, e = 0, t = \"PROPERTIES\", i) {\n return (s, r) => {\n let n = s._propStore;\n n || (n = [], s._propStore = n), n.push({\n propertyName: r,\n displayName: a,\n type: e,\n groupName: t,\n options: i ?? {}\n });\n };\n}\nclass Qa extends Ge {\n /**\n * Create a new FragmentOutputBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment, !0), this.convertToGammaSpace = !1, this.convertToLinearSpace = !1, this.useLogarithmicDepth = !1, this.registerInput(\"rgba\", A.Color4, !0), this.registerInput(\"rgb\", A.AutoDetect, !0), this.registerInput(\"a\", A.Float, !0), this.rgb.addExcludedConnectionPointFromAllowedTypes(A.Color3 | A.Vector3 | A.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"FragmentOutputBlock\";\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"logarithmicDepthConstant\"), e._excludeVariableName(\"vFragmentDepth\");\n }\n /**\n * Gets the rgba input component\n */\n get rgba() {\n return this._inputs[0];\n }\n /**\n * Gets the rgb input component\n */\n get rgb() {\n return this._inputs[1];\n }\n /**\n * Gets the a input component\n */\n get a() {\n return this._inputs[2];\n }\n prepareDefines(e, t, i) {\n i.setValue(this._linearDefineName, this.convertToLinearSpace, !0), i.setValue(this._gammaDefineName, this.convertToGammaSpace, !0);\n }\n bind(e, t, i) {\n (this.useLogarithmicDepth || t.useLogarithmicDepth) && i && Oa(void 0, e, i.getScene());\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this.rgba, i = this.rgb, s = this.a;\n e.sharedData.hints.needAlphaBlending = t.isConnected || s.isConnected, e.sharedData.blocksWithDefines.push(this), (this.useLogarithmicDepth || e.sharedData.nodeMaterial.useLogarithmicDepth) && (e._emitUniformFromString(\"logarithmicDepthConstant\", A.Float), e._emitVaryingFromString(\"vFragmentDepth\", A.Float), e.sharedData.bindableBlocks.push(this)), this._linearDefineName = e._getFreeDefineName(\"CONVERTTOLINEAR\"), this._gammaDefineName = e._getFreeDefineName(\"CONVERTTOGAMMA\");\n const r = `//${this.name}`;\n e._emitFunctionFromInclude(\"helperFunctions\", r);\n let n = \"gl_FragColor\";\n e.shaderLanguage === 1 && (n = \"fragmentOutputs.color\");\n const o = e._getShaderType(A.Vector4);\n if (t.connectedPoint)\n s.isConnected ? e.compilationString += `${n} = ${o}(${t.associatedVariableName}.rgb, ${s.associatedVariableName});\n` : e.compilationString += `${n} = ${t.associatedVariableName};\n`;\n else if (i.connectedPoint) {\n let l = \"1.0\";\n s.connectedPoint && (l = s.associatedVariableName), i.connectedPoint.type === A.Float ? e.compilationString += `${n} = ${o}(${i.associatedVariableName}, ${i.associatedVariableName}, ${i.associatedVariableName}, ${l});\n` : e.compilationString += `${n} = ${o}(${i.associatedVariableName}, ${l});\n`;\n } else\n e.sharedData.checks.notConnectedNonOptionalInputs.push(t);\n return e.compilationString += `#ifdef ${this._linearDefineName}\n`, e.compilationString += `${n} = toLinearSpace(${n});\n`, e.compilationString += `#endif\n`, e.compilationString += `#ifdef ${this._gammaDefineName}\n`, e.compilationString += `${n} = toGammaSpace(${n});\n`, e.compilationString += `#endif\n`, (this.useLogarithmicDepth || e.sharedData.nodeMaterial.useLogarithmicDepth) && (e.compilationString += `gl_FragDepthEXT = log2(vFragmentDepth) * logarithmicDepthConstant * 0.5;\n`), e.compilationString += `#if defined(PREPASS)\\r\n`, e.compilationString += `gl_FragData[0] = gl_FragColor;\\r\n`, e.compilationString += `#endif\\r\n`, this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return e += `${this._codeVariableName}.convertToGammaSpace = ${this.convertToGammaSpace};\n`, e += `${this._codeVariableName}.convertToLinearSpace = ${this.convertToLinearSpace};\n`, e += `${this._codeVariableName}.useLogarithmicDepth = ${this.useLogarithmicDepth};\n`, e;\n }\n serialize() {\n const e = super.serialize();\n return e.convertToGammaSpace = this.convertToGammaSpace, e.convertToLinearSpace = this.convertToLinearSpace, e.useLogarithmicDepth = this.useLogarithmicDepth, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.convertToGammaSpace = !!e.convertToGammaSpace, this.convertToLinearSpace = !!e.convertToLinearSpace, this.useLogarithmicDepth = e.useLogarithmicDepth ?? !1;\n }\n}\ny([\n ze(\"Convert to gamma space\", 0, \"PROPERTIES\", { notifiers: { update: !0 } })\n], Qa.prototype, \"convertToGammaSpace\", void 0);\ny([\n ze(\"Convert to linear space\", 0, \"PROPERTIES\", { notifiers: { update: !0 } })\n], Qa.prototype, \"convertToLinearSpace\", void 0);\ny([\n ze(\"Use logarithmic depth\", 0, \"PROPERTIES\")\n], Qa.prototype, \"useLogarithmicDepth\", void 0);\nU(\"BABYLON.FragmentOutputBlock\", Qa);\nvar ct;\n(function(a) {\n a[a.World = 1] = \"World\", a[a.View = 2] = \"View\", a[a.Projection = 3] = \"Projection\", a[a.ViewProjection = 4] = \"ViewProjection\", a[a.WorldView = 5] = \"WorldView\", a[a.WorldViewProjection = 6] = \"WorldViewProjection\", a[a.CameraPosition = 7] = \"CameraPosition\", a[a.FogColor = 8] = \"FogColor\", a[a.DeltaTime = 9] = \"DeltaTime\", a[a.CameraParameters = 10] = \"CameraParameters\", a[a.MaterialAlpha = 11] = \"MaterialAlpha\";\n})(ct || (ct = {}));\nvar xa;\n(function(a) {\n a[a.None = 0] = \"None\", a[a.Time = 1] = \"Time\", a[a.RealTime = 2] = \"RealTime\", a[a.MouseInfo = 3] = \"MouseInfo\";\n})(xa || (xa = {}));\nconst OV = {\n position2d: \"position\",\n particle_uv: \"vUV\",\n particle_color: \"vColor\",\n particle_texturemask: \"textureMask\",\n particle_positionw: \"vPositionW\"\n}, Zm = {\n particle_uv: !0,\n particle_color: !0,\n particle_texturemask: !0,\n particle_positionw: !0\n}, yE = {\n particle_texturemask: !0\n};\nclass ot extends Ge {\n /**\n * Gets or sets the connection point type (default is float)\n */\n get type() {\n if (this._type === A.AutoDetect) {\n if (this.isUniform && this.value != null) {\n if (!isNaN(this.value))\n return this._type = A.Float, this._type;\n switch (this.value.getClassName()) {\n case \"Vector2\":\n return this._type = A.Vector2, this._type;\n case \"Vector3\":\n return this._type = A.Vector3, this._type;\n case \"Vector4\":\n return this._type = A.Vector4, this._type;\n case \"Color3\":\n return this._type = A.Color3, this._type;\n case \"Color4\":\n return this._type = A.Color4, this._type;\n case \"Matrix\":\n return this._type = A.Matrix, this._type;\n }\n }\n if (this.isAttribute)\n switch (this.name) {\n case \"position\":\n case \"normal\":\n case \"particle_positionw\":\n return this._type = A.Vector3, this._type;\n case \"uv\":\n case \"uv2\":\n case \"uv3\":\n case \"uv4\":\n case \"uv5\":\n case \"uv6\":\n case \"position2d\":\n case \"particle_uv\":\n return this._type = A.Vector2, this._type;\n case \"matricesIndices\":\n case \"matricesWeights\":\n case \"matricesIndicesExtra\":\n case \"matricesWeightsExtra\":\n case \"world0\":\n case \"world1\":\n case \"world2\":\n case \"world3\":\n case \"tangent\":\n return this._type = A.Vector4, this._type;\n case \"color\":\n case \"instanceColor\":\n case \"particle_color\":\n case \"particle_texturemask\":\n return this._type = A.Color4, this._type;\n }\n if (this.isSystemValue)\n switch (this._systemValue) {\n case ct.World:\n case ct.WorldView:\n case ct.WorldViewProjection:\n case ct.View:\n case ct.ViewProjection:\n case ct.Projection:\n return this._type = A.Matrix, this._type;\n case ct.CameraPosition:\n return this._type = A.Vector3, this._type;\n case ct.FogColor:\n return this._type = A.Color3, this._type;\n case ct.DeltaTime:\n case ct.MaterialAlpha:\n return this._type = A.Float, this._type;\n case ct.CameraParameters:\n return this._type = A.Vector4, this._type;\n }\n }\n return this._type;\n }\n /**\n * Creates a new InputBlock\n * @param name defines the block name\n * @param target defines the target of that block (Vertex by default)\n * @param type defines the type of the input (can be set to NodeMaterialBlockConnectionPointTypes.AutoDetect)\n */\n constructor(e, t = B.Vertex, i = A.AutoDetect) {\n super(e, t, !1), this._mode = 3, this._animationType = xa.None, this._prefix = \"\", this.min = 0, this.max = 0, this.isBoolean = !1, this.matrixMode = 0, this._systemValue = null, this.isConstant = !1, this.groupInInspector = \"\", this.onValueChangedObservable = new G(), this.convertToGammaSpace = !1, this.convertToLinearSpace = !1, this._type = i, this.setDefaultValue(), this.registerOutput(\"output\", i);\n }\n /**\n * Validates if a name is a reserve word.\n * @param newName the new name to be given to the node.\n * @returns false if the name is a reserve word, else true.\n */\n validateBlockName(e) {\n return this.isAttribute ? !0 : super.validateBlockName(e);\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Set the source of this connection point to a vertex attribute\n * @param attributeName defines the attribute name (position, uv, normal, etc...). If not specified it will take the connection point name\n * @returns the current connection point\n */\n setAsAttribute(e) {\n return this._mode = 1, e && (this.name = e), this;\n }\n /**\n * Set the source of this connection point to a system value\n * @param value define the system value to use (world, view, etc...) or null to switch to manual value\n * @returns the current connection point\n */\n setAsSystemValue(e) {\n return this.systemValue = e, this;\n }\n /**\n * Gets or sets the value of that point.\n * Please note that this value will be ignored if valueCallback is defined\n */\n get value() {\n return this._storedValue;\n }\n set value(e) {\n this.type === A.Float && (this.isBoolean ? e = e ? 1 : 0 : this.min !== this.max && (e = Math.max(this.min, e), e = Math.min(this.max, e))), this._storedValue = e, this._mode = 0, this.onValueChangedObservable.notifyObservers(this);\n }\n /**\n * Gets or sets a callback used to get the value of that point.\n * Please note that setting this value will force the connection point to ignore the value property\n */\n get valueCallback() {\n return this._valueCallback;\n }\n set valueCallback(e) {\n this._valueCallback = e, this._mode = 0;\n }\n /**\n * Gets the declaration variable name in the shader\n */\n get declarationVariableName() {\n return this._associatedVariableName;\n }\n /**\n * Gets or sets the associated variable name in the shader\n */\n get associatedVariableName() {\n return this._prefix + this._associatedVariableName;\n }\n set associatedVariableName(e) {\n this._associatedVariableName = e;\n }\n /** Gets or sets the type of animation applied to the input */\n get animationType() {\n return this._animationType;\n }\n set animationType(e) {\n this._animationType = e;\n }\n /**\n * Gets a boolean indicating that this connection point not defined yet\n */\n get isUndefined() {\n return this._mode === 3;\n }\n /**\n * Gets or sets a boolean indicating that this connection point is coming from an uniform.\n * In this case the connection point name must be the name of the uniform to use.\n * Can only be set on inputs\n */\n get isUniform() {\n return this._mode === 0;\n }\n set isUniform(e) {\n this._mode = e ? 0 : 3, this.associatedVariableName = \"\";\n }\n /**\n * Gets or sets a boolean indicating that this connection point is coming from an attribute.\n * In this case the connection point name must be the name of the attribute to use\n * Can only be set on inputs\n */\n get isAttribute() {\n return this._mode === 1;\n }\n set isAttribute(e) {\n this._mode = e ? 1 : 3, this.associatedVariableName = \"\";\n }\n /**\n * Gets or sets a boolean indicating that this connection point is generating a varying variable.\n * Can only be set on exit points\n */\n get isVarying() {\n return this._mode === 2;\n }\n set isVarying(e) {\n this._mode = e ? 2 : 3, this.associatedVariableName = \"\";\n }\n /**\n * Gets a boolean indicating that the current connection point is a system value\n */\n get isSystemValue() {\n return this._systemValue != null;\n }\n /**\n * Gets or sets the current well known value or null if not defined as a system value\n */\n get systemValue() {\n return this._systemValue;\n }\n set systemValue(e) {\n this._mode = 0, this.associatedVariableName = \"\", this._systemValue = e;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InputBlock\";\n }\n /**\n * Animate the input if animationType !== None\n * @param scene defines the rendering scene\n */\n animate(e) {\n switch (this._animationType) {\n case xa.Time: {\n this.type === A.Float && (this.value += e.getAnimationRatio() * 0.01);\n break;\n }\n case xa.RealTime: {\n this.type === A.Float && (this.value = (Es.Now - e.getEngine().startTime) / 1e3);\n break;\n }\n case xa.MouseInfo: {\n if (this.type === A.Vector4) {\n const t = e._inputManager._originMouseEvent;\n if (t) {\n const i = t.offsetX, s = t.offsetY, r = t.buttons & 1 ? 1 : 0, n = t.buttons & 2 ? 1 : 0;\n this.value = new Ne(i, s, r, n);\n } else\n this.value = new Ne(0, 0, 0, 0);\n }\n break;\n }\n }\n }\n _emitDefine(e) {\n return e[0] === \"!\" ? `#ifndef ${e.substring(1)}\n` : `#ifdef ${e}\n`;\n }\n initialize() {\n this.associatedVariableName = \"\";\n }\n /**\n * Set the input block to its default value (based on its type)\n */\n setDefaultValue() {\n switch (this.type) {\n case A.Float:\n this.value = 0;\n break;\n case A.Vector2:\n this.value = Q.Zero();\n break;\n case A.Vector3:\n this.value = g.Zero();\n break;\n case A.Vector4:\n this.value = Ne.Zero();\n break;\n case A.Color3:\n this.value = re.White();\n break;\n case A.Color4:\n this.value = new Ce(1, 1, 1, 1);\n break;\n case A.Matrix:\n this.value = O.Identity();\n break;\n }\n }\n _emitConstant(e) {\n switch (this.type) {\n case A.Float:\n return `${e._emitFloat(this.value)}`;\n case A.Vector2:\n return `vec2(${this.value.x}, ${this.value.y})`;\n case A.Vector3:\n return `vec3(${this.value.x}, ${this.value.y}, ${this.value.z})`;\n case A.Vector4:\n return `vec4(${this.value.x}, ${this.value.y}, ${this.value.z}, ${this.value.w})`;\n case A.Color3:\n return wt.Color3[0].set(this.value.r, this.value.g, this.value.b), this.convertToGammaSpace && wt.Color3[0].toGammaSpaceToRef(wt.Color3[0], e.sharedData.scene.getEngine().useExactSrgbConversions), this.convertToLinearSpace && wt.Color3[0].toLinearSpaceToRef(wt.Color3[0], e.sharedData.scene.getEngine().useExactSrgbConversions), `vec3(${wt.Color3[0].r}, ${wt.Color3[0].g}, ${wt.Color3[0].b})`;\n case A.Color4:\n return wt.Color4[0].set(this.value.r, this.value.g, this.value.b, this.value.a), this.convertToGammaSpace && wt.Color4[0].toGammaSpaceToRef(wt.Color4[0], e.sharedData.scene.getEngine().useExactSrgbConversions), this.convertToLinearSpace && wt.Color4[0].toLinearSpaceToRef(wt.Color4[0], e.sharedData.scene.getEngine().useExactSrgbConversions), `vec4(${wt.Color4[0].r}, ${wt.Color4[0].g}, ${wt.Color4[0].b}, ${wt.Color4[0].a})`;\n }\n return \"\";\n }\n /** @internal */\n get _noContextSwitch() {\n return Zm[this.name];\n }\n _emit(e, t) {\n if (this.isUniform) {\n if (this._associatedVariableName || (this._associatedVariableName = e._getFreeVariableName(\"u_\" + this.name)), this.isConstant) {\n if (e.constants.indexOf(this.associatedVariableName) !== -1)\n return;\n e.constants.push(this.associatedVariableName), e._constantDeclaration += e._declareOutput(this.output, !0) + ` = ${this._emitConstant(e)};\n`;\n return;\n }\n if (e.uniforms.indexOf(this.associatedVariableName) !== -1)\n return;\n e.uniforms.push(this.associatedVariableName), t && (e._uniformDeclaration += this._emitDefine(t));\n const i = e._getShaderType(this.type);\n e.shaderLanguage === 1 ? (e._uniformDeclaration += `uniform ${this._associatedVariableName}: ${i};\n`, this._prefix = \"uniforms.\") : e._uniformDeclaration += `uniform ${i} ${this.associatedVariableName};\n`, t && (e._uniformDeclaration += `#endif\n`);\n const s = e.sharedData.hints;\n if (this._systemValue !== null && this._systemValue !== void 0)\n switch (this._systemValue) {\n case ct.WorldView:\n s.needWorldViewMatrix = !0;\n break;\n case ct.WorldViewProjection:\n s.needWorldViewProjectionMatrix = !0;\n break;\n }\n else\n this._animationType !== xa.None && e.sharedData.animatedInputs.push(this);\n return;\n }\n if (this.isAttribute) {\n if (this.associatedVariableName = OV[this.name] ?? this.name, this.target === B.Vertex && e._vertexState) {\n Zm[this.name] ? yE[this.name] ? (e._emitUniformFromString(this.associatedVariableName, this.type, t), e.shaderLanguage === 1 && (this._prefix = \"vertexInputs.\")) : e._emitVaryingFromString(this.associatedVariableName, this.type, t) : this._emit(e._vertexState, t);\n return;\n }\n if (e.attributes.indexOf(this.associatedVariableName) !== -1)\n return;\n e.attributes.push(this.associatedVariableName), Zm[this.name] ? yE[this.name] ? (this._prefix = \"\", e._emitUniformFromString(this.associatedVariableName, this.type, t), e.shaderLanguage === 1 && (this._prefix = \"uniforms.\")) : (this._prefix = \"\", e._emitVaryingFromString(this.associatedVariableName, this.type, t), e.shaderLanguage === 1 && (this._prefix = \"fragmentInputs.\")) : (t && (e._attributeDeclaration += this._emitDefine(t)), e.shaderLanguage === 1 ? (this._prefix = \"\", e._attributeDeclaration += `attribute ${this.associatedVariableName}: ${e._getShaderType(this.type)};\n`, this._prefix = \"vertexInputs.\") : e._attributeDeclaration += `attribute ${e._getShaderType(this.type)} ${this.associatedVariableName};\n`, t && (e._attributeDeclaration += `#endif\n`));\n }\n }\n /**\n * @internal\n */\n _transmitWorld(e, t, i, s) {\n if (!this._systemValue)\n return;\n const r = this._associatedVariableName;\n switch (this._systemValue) {\n case ct.World:\n e.setMatrix(r, t);\n break;\n case ct.WorldView:\n e.setMatrix(r, i);\n break;\n case ct.WorldViewProjection:\n e.setMatrix(r, s);\n break;\n }\n }\n /**\n * @internal\n */\n _transmit(e, t, i) {\n if (this.isAttribute)\n return;\n const s = this._associatedVariableName;\n if (this._systemValue) {\n switch (this._systemValue) {\n case ct.World:\n case ct.WorldView:\n case ct.WorldViewProjection:\n return;\n case ct.View:\n e.setMatrix(s, t.getViewMatrix());\n break;\n case ct.Projection:\n e.setMatrix(s, t.getProjectionMatrix());\n break;\n case ct.ViewProjection:\n e.setMatrix(s, t.getTransformMatrix());\n break;\n case ct.CameraPosition:\n t.bindEyePosition(e, s, !0);\n break;\n case ct.FogColor:\n e.setColor3(s, t.fogColor);\n break;\n case ct.DeltaTime:\n e.setFloat(s, t.deltaTime / 1e3);\n break;\n case ct.CameraParameters:\n t.activeCamera && e.setFloat4(s, t.getEngine().hasOriginBottomLeft ? -1 : 1, t.activeCamera.minZ, t.activeCamera.maxZ, 1 / t.activeCamera.maxZ);\n break;\n case ct.MaterialAlpha:\n e.setFloat(s, i.alpha);\n break;\n }\n return;\n }\n const r = this._valueCallback ? this._valueCallback() : this._storedValue;\n if (r !== null)\n switch (this.type) {\n case A.Float:\n e.setFloat(s, r);\n break;\n case A.Int:\n e.setInt(s, r);\n break;\n case A.Color3:\n wt.Color3[0].set(this.value.r, this.value.g, this.value.b), this.convertToGammaSpace && wt.Color3[0].toGammaSpaceToRef(wt.Color3[0], t.getEngine().useExactSrgbConversions), this.convertToLinearSpace && wt.Color3[0].toLinearSpaceToRef(wt.Color3[0], t.getEngine().useExactSrgbConversions), e.setColor3(s, wt.Color3[0]);\n break;\n case A.Color4:\n wt.Color4[0].set(this.value.r, this.value.g, this.value.b, this.value.a), this.convertToGammaSpace && wt.Color4[0].toGammaSpaceToRef(wt.Color4[0], t.getEngine().useExactSrgbConversions), this.convertToLinearSpace && wt.Color4[0].toLinearSpaceToRef(wt.Color4[0], t.getEngine().useExactSrgbConversions), e.setDirectColor4(s, wt.Color4[0]);\n break;\n case A.Vector2:\n e.setVector2(s, r);\n break;\n case A.Vector3:\n e.setVector3(s, r);\n break;\n case A.Vector4:\n e.setVector4(s, r);\n break;\n case A.Matrix:\n e.setMatrix(s, r);\n break;\n }\n }\n _buildBlock(e) {\n super._buildBlock(e), (this.isUniform || this.isSystemValue) && e.sharedData.inputBlocks.push(this), this._emit(e);\n }\n _dumpPropertiesCode() {\n const e = this._codeVariableName;\n if (this.isAttribute)\n return super._dumpPropertiesCode() + `${e}.setAsAttribute(\"${this.name}\");\n`;\n if (this.isSystemValue)\n return super._dumpPropertiesCode() + `${e}.setAsSystemValue(BABYLON.NodeMaterialSystemValues.${ct[this._systemValue]});\n`;\n if (this.isUniform) {\n const t = [];\n let i = \"\";\n switch (this.type) {\n case A.Float:\n i = `${this.value}`;\n break;\n case A.Vector2:\n i = `new BABYLON.Vector2(${this.value.x}, ${this.value.y})`;\n break;\n case A.Vector3:\n i = `new BABYLON.Vector3(${this.value.x}, ${this.value.y}, ${this.value.z})`;\n break;\n case A.Vector4:\n i = `new BABYLON.Vector4(${this.value.x}, ${this.value.y}, ${this.value.z}, ${this.value.w})`;\n break;\n case A.Color3:\n i = `new BABYLON.Color3(${this.value.r}, ${this.value.g}, ${this.value.b})`, this.convertToGammaSpace && (i += \".toGammaSpace()\"), this.convertToLinearSpace && (i += \".toLinearSpace()\");\n break;\n case A.Color4:\n i = `new BABYLON.Color4(${this.value.r}, ${this.value.g}, ${this.value.b}, ${this.value.a})`, this.convertToGammaSpace && (i += \".toGammaSpace()\"), this.convertToLinearSpace && (i += \".toLinearSpace()\");\n break;\n case A.Matrix:\n i = `BABYLON.Matrix.FromArray([${this.value.m}])`;\n break;\n }\n return t.push(`${e}.value = ${i}`), this.type === A.Float && t.push(`${e}.min = ${this.min}`, `${e}.max = ${this.max}`, `${e}.isBoolean = ${this.isBoolean}`, `${e}.matrixMode = ${this.matrixMode}`, `${e}.animationType = BABYLON.AnimatedInputBlockTypes.${xa[this.animationType]}`), t.push(`${e}.isConstant = ${this.isConstant}`), t.push(\"\"), super._dumpPropertiesCode() + t.join(`;\n`);\n }\n return super._dumpPropertiesCode();\n }\n dispose() {\n this.onValueChangedObservable.clear(), super.dispose();\n }\n serialize() {\n const e = super.serialize();\n return e.type = this.type, e.mode = this._mode, e.systemValue = this._systemValue, e.animationType = this._animationType, e.min = this.min, e.max = this.max, e.isBoolean = this.isBoolean, e.matrixMode = this.matrixMode, e.isConstant = this.isConstant, e.groupInInspector = this.groupInInspector, e.convertToGammaSpace = this.convertToGammaSpace, e.convertToLinearSpace = this.convertToLinearSpace, this._storedValue != null && this._mode === 0 && (this._storedValue.asArray ? (e.valueType = \"BABYLON.\" + this._storedValue.getClassName(), e.value = this._storedValue.asArray()) : (e.valueType = \"number\", e.value = this._storedValue)), e;\n }\n _deserialize(e, t, i) {\n if (this._mode = e.mode, super._deserialize(e, t, i), this._type = e.type, this._systemValue = e.systemValue || e.wellKnownValue, this._animationType = e.animationType, this.min = e.min || 0, this.max = e.max || 0, this.isBoolean = !!e.isBoolean, this.matrixMode = e.matrixMode || 0, this.isConstant = !!e.isConstant, this.groupInInspector = e.groupInInspector || \"\", this.convertToGammaSpace = !!e.convertToGammaSpace, this.convertToLinearSpace = !!e.convertToLinearSpace, e.name === \"tangent\" && e.mode === 1 && e.type === A.Vector3 && (this._type = A.Vector4), !!e.valueType)\n if (e.valueType === \"number\")\n this._storedValue = e.value;\n else {\n const s = Oi(e.valueType);\n s && (this._storedValue = s.FromArray(e.value));\n }\n }\n}\nU(\"BABYLON.InputBlock\", ot);\nclass Sv extends Ge {\n /**\n * Create a new CurrentScreenBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.VertexAndFragment), this._samplerName = \"textureSampler\", this.convertToGammaSpace = !1, this.convertToLinearSpace = !1, this._isUnique = !1, this.registerInput(\"uv\", A.AutoDetect, !1, B.VertexAndFragment), this.registerOutput(\"rgba\", A.Color4, B.Neutral), this.registerOutput(\"rgb\", A.Color3, B.Neutral), this.registerOutput(\"r\", A.Float, B.Neutral), this.registerOutput(\"g\", A.Float, B.Neutral), this.registerOutput(\"b\", A.Float, B.Neutral), this.registerOutput(\"a\", A.Float, B.Neutral), this._inputs[0].addExcludedConnectionPointFromAllowedTypes(A.Vector2 | A.Vector3 | A.Vector4), this._inputs[0]._prioritizeVertex = !1;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CurrentScreenBlock\";\n }\n /**\n * Gets the uv input component\n */\n get uv() {\n return this._inputs[0];\n }\n /**\n * Gets the rgba output component\n */\n get rgba() {\n return this._outputs[0];\n }\n /**\n * Gets the rgb output component\n */\n get rgb() {\n return this._outputs[1];\n }\n /**\n * Gets the r output component\n */\n get r() {\n return this._outputs[2];\n }\n /**\n * Gets the g output component\n */\n get g() {\n return this._outputs[3];\n }\n /**\n * Gets the b output component\n */\n get b() {\n return this._outputs[4];\n }\n /**\n * Gets the a output component\n */\n get a() {\n return this._outputs[5];\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(this._samplerName);\n }\n get target() {\n return !this.uv.isConnected || this.uv.sourceBlock.isInput ? B.VertexAndFragment : B.Fragment;\n }\n prepareDefines(e, t, i) {\n i.setValue(this._linearDefineName, this.convertToGammaSpace, !0), i.setValue(this._gammaDefineName, this.convertToLinearSpace, !0);\n }\n isReady() {\n return !(this.texture && !this.texture.isReadyOrNotBlocking());\n }\n _injectVertexCode(e) {\n const t = this.uv;\n if (t.connectedPoint.ownerBlock.isInput && (t.connectedPoint.ownerBlock.isAttribute || e._emitUniformFromString(t.associatedVariableName, A.Vector2)), this._mainUVName = \"vMain\" + t.associatedVariableName, e._emitVaryingFromString(this._mainUVName, A.Vector2), e.compilationString += `${this._mainUVName} = ${t.associatedVariableName}.xy;\n`, !!this._outputs.some((i) => i.isConnectedInVertexShader)) {\n this._writeTextureRead(e, !0);\n for (const i of this._outputs)\n i.hasEndpoints && this._writeOutput(e, i, i.name, !0);\n }\n }\n _writeTextureRead(e, t = !1) {\n const i = this.uv;\n if (t) {\n if (e.target === B.Fragment)\n return;\n const r = e.shaderLanguage === 0 ? `texture2D(${this._samplerName},` : `textureSampleLevel(${this._samplerName}, ${this._samplerName + \"Sampler\"},`, n = e.shaderLanguage === 0 ? \"\" : \", 0\";\n e.compilationString += `${e._declareLocalVar(this._tempTextureRead, A.Vector4)} = ${r} ${i.associatedVariableName}${n});\n`;\n return;\n }\n const s = e.shaderLanguage === 0 ? `texture2D(${this._samplerName},` : `textureSample(${this._samplerName}, ${this._samplerName + \"Sampler\"},`;\n if (this.uv.ownerBlock.target === B.Fragment) {\n e.compilationString += `${e._declareLocalVar(this._tempTextureRead, A.Vector4)} = ${s} ${i.associatedVariableName});\n`;\n return;\n }\n e.compilationString += `${e._declareLocalVar(this._tempTextureRead, A.Vector4)} = ${s} ${this._mainUVName});\n`;\n }\n _writeOutput(e, t, i, s = !1) {\n if (s) {\n if (e.target === B.Fragment)\n return;\n e.compilationString += `${e._declareOutput(t)} = ${this._tempTextureRead}.${i};\n`;\n return;\n }\n if (this.uv.ownerBlock.target === B.Fragment) {\n e.compilationString += `${e._declareOutput(t)} = ${this._tempTextureRead}.${i};\n`;\n return;\n }\n e.compilationString += `${e._declareOutput(t)} = ${this._tempTextureRead}.${i};\n`, e.compilationString += `#ifdef ${this._linearDefineName}\n`, e.compilationString += `${t.associatedVariableName} = toGammaSpace(${t.associatedVariableName});\n`, e.compilationString += `#endif\n`, e.compilationString += `#ifdef ${this._gammaDefineName}\n`, e.compilationString += `${t.associatedVariableName} = toLinearSpace(${t.associatedVariableName});\n`, e.compilationString += `#endif\n`;\n }\n _buildBlock(e) {\n if (super._buildBlock(e), this._tempTextureRead = e._getFreeVariableName(\"tempTextureRead\"), e.sharedData.blockingBlocks.indexOf(this) < 0 && e.sharedData.blockingBlocks.push(this), e.sharedData.textureBlocks.indexOf(this) < 0 && e.sharedData.textureBlocks.push(this), e.sharedData.blocksWithDefines.indexOf(this) < 0 && e.sharedData.blocksWithDefines.push(this), e.target !== B.Fragment) {\n e._emit2DSampler(this._samplerName), this._injectVertexCode(e);\n return;\n }\n if (!this._outputs.some((i) => i.isConnectedInFragmentShader))\n return;\n e._emit2DSampler(this._samplerName), this._linearDefineName = e._getFreeDefineName(\"ISLINEAR\"), this._gammaDefineName = e._getFreeDefineName(\"ISGAMMA\");\n const t = `//${this.name}`;\n e._emitFunctionFromInclude(\"helperFunctions\", t), this._writeTextureRead(e);\n for (const i of this._outputs)\n i.hasEndpoints && this._writeOutput(e, i, i.name);\n return this;\n }\n serialize() {\n const e = super.serialize();\n return e.convertToGammaSpace = this.convertToGammaSpace, e.convertToLinearSpace = this.convertToLinearSpace, this.texture && !this.texture.isRenderTarget && (e.texture = this.texture.serialize()), e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.convertToGammaSpace = e.convertToGammaSpace, this.convertToLinearSpace = !!e.convertToLinearSpace, e.texture && (i = e.texture.url.indexOf(\"data:\") === 0 ? \"\" : i, this.texture = X.Parse(e.texture, t, i));\n }\n}\nU(\"BABYLON.CurrentScreenBlock\", Sv);\nclass bv extends Ge {\n /**\n * Create a new ParticleTextureBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this._samplerName = \"diffuseSampler\", this.convertToGammaSpace = !1, this.convertToLinearSpace = !1, this._isUnique = !1, this.registerInput(\"uv\", A.AutoDetect, !1, B.VertexAndFragment), this.registerOutput(\"rgba\", A.Color4, B.Neutral), this.registerOutput(\"rgb\", A.Color3, B.Neutral), this.registerOutput(\"r\", A.Float, B.Neutral), this.registerOutput(\"g\", A.Float, B.Neutral), this.registerOutput(\"b\", A.Float, B.Neutral), this.registerOutput(\"a\", A.Float, B.Neutral), this._inputs[0].addExcludedConnectionPointFromAllowedTypes(A.Vector2 | A.Vector3 | A.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ParticleTextureBlock\";\n }\n /**\n * Gets the uv input component\n */\n get uv() {\n return this._inputs[0];\n }\n /**\n * Gets the rgba output component\n */\n get rgba() {\n return this._outputs[0];\n }\n /**\n * Gets the rgb output component\n */\n get rgb() {\n return this._outputs[1];\n }\n /**\n * Gets the r output component\n */\n get r() {\n return this._outputs[2];\n }\n /**\n * Gets the g output component\n */\n get g() {\n return this._outputs[3];\n }\n /**\n * Gets the b output component\n */\n get b() {\n return this._outputs[4];\n }\n /**\n * Gets the a output component\n */\n get a() {\n return this._outputs[5];\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"diffuseSampler\");\n }\n autoConfigure(e, t = () => !0) {\n if (!this.uv.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"particle_uv\" && t(s));\n i || (i = new ot(\"uv\"), i.setAsAttribute(\"particle_uv\")), i.output.connectTo(this.uv);\n }\n }\n prepareDefines(e, t, i) {\n i.setValue(this._linearDefineName, this.convertToGammaSpace, !0), i.setValue(this._gammaDefineName, this.convertToLinearSpace, !0);\n }\n isReady() {\n return !(this.texture && !this.texture.isReadyOrNotBlocking());\n }\n _writeOutput(e, t, i) {\n e.compilationString += `${e._declareOutput(t)} = ${this._tempTextureRead}.${i};\n`, e.compilationString += `#ifdef ${this._linearDefineName}\n`, e.compilationString += `${t.associatedVariableName} = toGammaSpace(${t.associatedVariableName});\n`, e.compilationString += `#endif\n`, e.compilationString += `#ifdef ${this._gammaDefineName}\n`, e.compilationString += `${t.associatedVariableName} = toLinearSpace(${t.associatedVariableName});\n`, e.compilationString += `#endif\n`;\n }\n _buildBlock(e) {\n if (super._buildBlock(e), e.target === B.Vertex)\n return;\n this._tempTextureRead = e._getFreeVariableName(\"tempTextureRead\"), e._emit2DSampler(this._samplerName), e.sharedData.blockingBlocks.push(this), e.sharedData.textureBlocks.push(this), e.sharedData.blocksWithDefines.push(this), this._linearDefineName = e._getFreeDefineName(\"ISLINEAR\"), this._gammaDefineName = e._getFreeDefineName(\"ISGAMMA\");\n const t = `//${this.name}`;\n e._emitFunctionFromInclude(\"helperFunctions\", t), e.compilationString += `${e._declareLocalVar(this._tempTextureRead, A.Vector4)} = ${e._generateTextureSample(this.uv.associatedVariableName, this._samplerName)};\n`;\n for (const i of this._outputs)\n i.hasEndpoints && this._writeOutput(e, i, i.name);\n return this;\n }\n serialize() {\n const e = super.serialize();\n return e.convertToGammaSpace = this.convertToGammaSpace, e.convertToLinearSpace = this.convertToLinearSpace, this.texture && !this.texture.isRenderTarget && (e.texture = this.texture.serialize()), e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.convertToGammaSpace = e.convertToGammaSpace, this.convertToLinearSpace = !!e.convertToLinearSpace, e.texture && (i = e.texture.url.indexOf(\"data:\") === 0 ? \"\" : i, this.texture = X.Parse(e.texture, t, i));\n }\n}\nU(\"BABYLON.ParticleTextureBlock\", bv);\nclass Ev extends Ge {\n /**\n * Create a new ParticleRampGradientBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this._isUnique = !0, this.registerInput(\"color\", A.Color4, !1, B.Fragment), this.registerOutput(\"rampColor\", A.Color4, B.Fragment);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ParticleRampGradientBlock\";\n }\n /**\n * Gets the color input component\n */\n get color() {\n return this._inputs[0];\n }\n /**\n * Gets the rampColor output component\n */\n get rampColor() {\n return this._outputs[0];\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"remapRanges\"), e._excludeVariableName(\"rampSampler\"), e._excludeVariableName(\"baseColor\"), e._excludeVariableName(\"alpha\"), e._excludeVariableName(\"remappedColorIndex\"), e._excludeVariableName(\"rampColor\");\n }\n _buildBlock(e) {\n if (super._buildBlock(e), e.target !== B.Vertex)\n return e._emit2DSampler(\"rampSampler\", \"RAMPGRADIENT\"), e._emitVaryingFromString(\"remapRanges\", A.Vector4, \"RAMPGRADIENT\"), e.compilationString += `\n #ifdef RAMPGRADIENT\n ${e._declareLocalVar(\"baseColor\", A.Vector4)} = ${this.color.associatedVariableName};\n ${e._declareLocalVar(\"alpha\", A.Float)} = ${this.color.associatedVariableName}.a;\n\n ${e._declareLocalVar(\"remappedColorIndex\", A.Float)} = clamp((alpha - remapRanges.x) / remapRanges.y, 0.0, 1.0);\n\n ${e._declareLocalVar(\"rampColor\", A.Vector4)} = ${e._generateTextureSample(\"vec2(1.0 - remappedColorIndex, 0.)\", \"rampSampler\")};\n\n // Remapped alpha\n ${e._declareOutput(this.rampColor)} = vec4${e.fSuffix}(baseColor.rgb * rampColor.rgb, clamp((alpha * rampColor.a - remapRanges.z) / remapRanges.w, 0.0, 1.0));\n #else\n ${e._declareOutput(this.rampColor)} = ${this.color.associatedVariableName};\n #endif\n `, this;\n }\n}\nU(\"BABYLON.ParticleRampGradientBlock\", Ev);\nclass yv extends Ge {\n /**\n * Create a new ParticleBlendMultiplyBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this._isUnique = !0, this.registerInput(\"color\", A.Color4, !1, B.Fragment), this.registerInput(\"alphaTexture\", A.Float, !1, B.Fragment), this.registerInput(\"alphaColor\", A.Float, !1, B.Fragment), this.registerOutput(\"blendColor\", A.Color4, B.Fragment);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ParticleBlendMultiplyBlock\";\n }\n /**\n * Gets the color input component\n */\n get color() {\n return this._inputs[0];\n }\n /**\n * Gets the alphaTexture input component\n */\n get alphaTexture() {\n return this._inputs[1];\n }\n /**\n * Gets the alphaColor input component\n */\n get alphaColor() {\n return this._inputs[2];\n }\n /**\n * Gets the blendColor output component\n */\n get blendColor() {\n return this._outputs[0];\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"sourceAlpha\");\n }\n _buildBlock(e) {\n if (super._buildBlock(e), e.target !== B.Vertex)\n return e.compilationString += `\n #ifdef BLENDMULTIPLYMODE\n ${e._declareOutput(this.blendColor)};\n ${e._declareLocalVar(\"sourceAlpha\", A.Float)} = ${this.alphaColor.associatedVariableName} * ${this.alphaTexture.associatedVariableName};\n ${this.blendColor.associatedVariableName} = vec4${e.fSuffix}(${this.color.associatedVariableName}.rgb * sourceAlpha + vec3(1.0) * (1.0 - sourceAlpha), ${this.color.associatedVariableName}.a);\n #else\n ${e._declareOutput(this.blendColor)} = ${this.color.associatedVariableName};\n #endif\n `, this;\n }\n}\nU(\"BABYLON.ParticleBlendMultiplyBlock\", yv);\nclass au extends Ge {\n /**\n * Create a new VectorMergerBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.xSwizzle = \"x\", this.ySwizzle = \"y\", this.zSwizzle = \"z\", this.wSwizzle = \"w\", this.registerInput(\"xyzw \", A.Vector4, !0), this.registerInput(\"xyz \", A.Vector3, !0), this.registerInput(\"xy \", A.Vector2, !0), this.registerInput(\"zw \", A.Vector2, !0), this.registerInput(\"x\", A.Float, !0), this.registerInput(\"y\", A.Float, !0), this.registerInput(\"z\", A.Float, !0), this.registerInput(\"w\", A.Float, !0), this.registerOutput(\"xyzw\", A.Vector4), this.registerOutput(\"xyz\", A.Vector3), this.registerOutput(\"xy\", A.Vector2), this.registerOutput(\"zw\", A.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"VectorMergerBlock\";\n }\n /**\n * Gets the xyzw component (input)\n */\n get xyzwIn() {\n return this._inputs[0];\n }\n /**\n * Gets the xyz component (input)\n */\n get xyzIn() {\n return this._inputs[1];\n }\n /**\n * Gets the xy component (input)\n */\n get xyIn() {\n return this._inputs[2];\n }\n /**\n * Gets the zw component (input)\n */\n get zwIn() {\n return this._inputs[3];\n }\n /**\n * Gets the x component (input)\n */\n get x() {\n return this._inputs[4];\n }\n /**\n * Gets the y component (input)\n */\n get y() {\n return this._inputs[5];\n }\n /**\n * Gets the z component (input)\n */\n get z() {\n return this._inputs[6];\n }\n /**\n * Gets the w component (input)\n */\n get w() {\n return this._inputs[7];\n }\n /**\n * Gets the xyzw component (output)\n */\n get xyzw() {\n return this._outputs[0];\n }\n /**\n * Gets the xyz component (output)\n */\n get xyzOut() {\n return this._outputs[1];\n }\n /**\n * Gets the xy component (output)\n */\n get xyOut() {\n return this._outputs[2];\n }\n /**\n * Gets the zw component (output)\n */\n get zwOut() {\n return this._outputs[3];\n }\n /**\n * Gets the xy component (output)\n * @deprecated Please use xyOut instead.\n */\n get xy() {\n return this.xyOut;\n }\n /**\n * Gets the xyz component (output)\n * @deprecated Please use xyzOut instead.\n */\n get xyz() {\n return this.xyzOut;\n }\n _inputRename(e) {\n return e === \"xyzw \" ? \"xyzwIn\" : e === \"xyz \" ? \"xyzIn\" : e === \"xy \" ? \"xyIn\" : e === \"zw \" ? \"zwIn\" : e;\n }\n _buildSwizzle(e) {\n return \".\" + (this.xSwizzle + this.ySwizzle + this.zSwizzle + this.wSwizzle).substr(0, e);\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this.x, i = this.y, s = this.z, r = this.w, n = this.xyIn, o = this.zwIn, l = this.xyzIn, h = this.xyzwIn, c = this._outputs[0], u = this._outputs[1], d = this._outputs[2], f = this._outputs[3], p = e._getShaderType(A.Vector4), _ = e._getShaderType(A.Vector3), m = e._getShaderType(A.Vector2);\n return h.isConnected ? (c.hasEndpoints && (e.compilationString += e._declareOutput(c) + ` = ${h.associatedVariableName}${this._buildSwizzle(4)};\n`), u.hasEndpoints && (e.compilationString += e._declareOutput(u) + ` = ${h.associatedVariableName}${this._buildSwizzle(3)};\n`), d.hasEndpoints && (e.compilationString += e._declareOutput(d) + ` = ${h.associatedVariableName}${this._buildSwizzle(2)};\n`)) : l.isConnected ? (c.hasEndpoints && (e.compilationString += e._declareOutput(c) + ` = ${p}(${l.associatedVariableName}, ${r.isConnected ? this._writeVariable(r) : \"0.0\"})${this._buildSwizzle(4)};\n`), u.hasEndpoints && (e.compilationString += e._declareOutput(u) + ` = ${l.associatedVariableName}${this._buildSwizzle(3)};\n`), d.hasEndpoints && (e.compilationString += e._declareOutput(d) + ` = ${l.associatedVariableName}${this._buildSwizzle(2)};\n`)) : n.isConnected ? (c.hasEndpoints && (o.isConnected ? e.compilationString += e._declareOutput(c) + ` = ${p}(${n.associatedVariableName}, ${o.associatedVariableName})${this._buildSwizzle(4)};\n` : e.compilationString += e._declareOutput(c) + ` = ${p}(${n.associatedVariableName}, ${s.isConnected ? this._writeVariable(s) : \"0.0\"}, ${r.isConnected ? this._writeVariable(r) : \"0.0\"})${this._buildSwizzle(4)};\n`), u.hasEndpoints && (e.compilationString += e._declareOutput(u) + ` = ${_}(${n.associatedVariableName}, ${s.isConnected ? this._writeVariable(s) : \"0.0\"})${this._buildSwizzle(3)};\n`), d.hasEndpoints && (e.compilationString += e._declareOutput(d) + ` = ${n.associatedVariableName}${this._buildSwizzle(2)};\n`), f.hasEndpoints && (o.isConnected ? e.compilationString += e._declareOutput(f) + ` = ${o.associatedVariableName}${this._buildSwizzle(2)};\n` : e.compilationString += e._declareOutput(f) + ` = ${m}(${s.isConnected ? this._writeVariable(s) : \"0.0\"}, ${r.isConnected ? this._writeVariable(r) : \"0.0\"})${this._buildSwizzle(2)};\n`)) : (c.hasEndpoints && (o.isConnected ? e.compilationString += e._declareOutput(c) + ` = ${p}(${t.isConnected ? this._writeVariable(t) : \"0.0\"}, ${i.isConnected ? this._writeVariable(i) : \"0.0\"}, ${o.associatedVariableName})${this._buildSwizzle(4)};\n` : e.compilationString += e._declareOutput(c) + ` = ${p}(${t.isConnected ? this._writeVariable(t) : \"0.0\"}, ${i.isConnected ? this._writeVariable(i) : \"0.0\"}, ${s.isConnected ? this._writeVariable(s) : \"0.0\"}, ${r.isConnected ? this._writeVariable(r) : \"0.0\"})${this._buildSwizzle(4)};\n`), u.hasEndpoints && (e.compilationString += e._declareOutput(u) + ` = ${_}(${t.isConnected ? this._writeVariable(t) : \"0.0\"}, ${i.isConnected ? this._writeVariable(i) : \"0.0\"}, ${s.isConnected ? this._writeVariable(s) : \"0.0\"})${this._buildSwizzle(3)};\n`), d.hasEndpoints && (e.compilationString += e._declareOutput(d) + ` = ${m}(${t.isConnected ? this._writeVariable(t) : \"0.0\"}, ${i.isConnected ? this._writeVariable(i) : \"0.0\"})${this._buildSwizzle(2)};\n`), f.hasEndpoints && (o.isConnected ? e.compilationString += e._declareOutput(f) + ` = ${o.associatedVariableName}${this._buildSwizzle(2)};\n` : e.compilationString += e._declareOutput(f) + ` = ${m}(${s.isConnected ? this._writeVariable(s) : \"0.0\"}, ${r.isConnected ? this._writeVariable(r) : \"0.0\"})${this._buildSwizzle(2)};\n`)), this;\n }\n serialize() {\n const e = super.serialize();\n return e.xSwizzle = this.xSwizzle, e.ySwizzle = this.ySwizzle, e.zSwizzle = this.zSwizzle, e.wSwizzle = this.wSwizzle, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.xSwizzle = e.xSwizzle ?? \"x\", this.ySwizzle = e.ySwizzle ?? \"y\", this.zSwizzle = e.zSwizzle ?? \"z\", this.wSwizzle = e.wSwizzle ?? \"w\";\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return e += `${this._codeVariableName}.xSwizzle = \"${this.xSwizzle}\";\n`, e += `${this._codeVariableName}.ySwizzle = \"${this.ySwizzle}\";\n`, e += `${this._codeVariableName}.zSwizzle = \"${this.zSwizzle}\";\n`, e += `${this._codeVariableName}.wSwizzle = \"${this.wSwizzle}\";\n`, e;\n }\n}\nU(\"BABYLON.VectorMergerBlock\", au);\nclass Af extends Ge {\n /**\n * Creates a new RemapBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.sourceRange = new Q(-1, 1), this.targetRange = new Q(0, 1), this.registerInput(\"input\", A.AutoDetect), this.registerInput(\"sourceMin\", A.Float, !0), this.registerInput(\"sourceMax\", A.Float, !0), this.registerInput(\"targetMin\", A.Float, !0), this.registerInput(\"targetMax\", A.Float, !0), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RemapBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the source min input component\n */\n get sourceMin() {\n return this._inputs[1];\n }\n /**\n * Gets the source max input component\n */\n get sourceMax() {\n return this._inputs[2];\n }\n /**\n * Gets the target min input component\n */\n get targetMin() {\n return this._inputs[3];\n }\n /**\n * Gets the target max input component\n */\n get targetMax() {\n return this._inputs[4];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], i = this.sourceMin.isConnected ? this.sourceMin.associatedVariableName : this._writeFloat(this.sourceRange.x), s = this.sourceMax.isConnected ? this.sourceMax.associatedVariableName : this._writeFloat(this.sourceRange.y), r = this.targetMin.isConnected ? this.targetMin.associatedVariableName : this._writeFloat(this.targetRange.x), n = this.targetMax.isConnected ? this.targetMax.associatedVariableName : this._writeFloat(this.targetRange.y);\n return e.compilationString += e._declareOutput(t) + ` = ${r} + (${this._inputs[0].associatedVariableName} - ${i}) * (${n} - ${r}) / (${s} - ${i});\n`, this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode() + `${this._codeVariableName}.sourceRange = new BABYLON.Vector2(${this.sourceRange.x}, ${this.sourceRange.y});\n`;\n return e += `${this._codeVariableName}.targetRange = new BABYLON.Vector2(${this.targetRange.x}, ${this.targetRange.y});\n`, e;\n }\n serialize() {\n const e = super.serialize();\n return e.sourceRange = this.sourceRange.asArray(), e.targetRange = this.targetRange.asArray(), e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.sourceRange = Q.FromArray(e.sourceRange), this.targetRange = Q.FromArray(e.targetRange);\n }\n}\ny([\n ze(\n \"From\",\n 3\n /* PropertyTypeForEdition.Vector2 */\n )\n], Af.prototype, \"sourceRange\", void 0);\ny([\n ze(\n \"To\",\n 3\n /* PropertyTypeForEdition.Vector2 */\n )\n], Af.prototype, \"targetRange\", void 0);\nU(\"BABYLON.RemapBlock\", Af);\nclass Q_ extends Ge {\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"left\", A.AutoDetect), this.registerInput(\"right\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this.output._typeConnectionSource = this.left, this._linkConnectionTypes(0, 1, !0), this.left.acceptedConnectionPointTypes.push(A.Float), this.right.acceptedConnectionPointTypes.push(A.Float), this._connectionObservers = [\n this.left.onTypeChangedObservable.add(() => this._updateInputOutputTypes()),\n this.right.onTypeChangedObservable.add(() => this._updateInputOutputTypes())\n ];\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _updateInputOutputTypes() {\n if (this.output._typeConnectionSource = this.left, this.left.isConnected && this.right.isConnected ? (this.left.type === A.Int || this.left.type === A.Float && this.right.type !== A.Int) && (this.output._typeConnectionSource = this.right) : this.left.isConnected !== this.right.isConnected && (this.output._typeConnectionSource = this.left.isConnected ? this.left : this.right), this.left.isConnected || this.right.isConnected)\n for (const [e, t] of [\n [this.left, this.right],\n [this.right, this.left]\n ])\n e.acceptedConnectionPointTypes = [A.Int, A.Float], t.isConnected && (e.acceptedConnectionPointTypes.push(t.type), (t.type === A.Int || t.type === A.Float) && e.acceptedConnectionPointTypes.push(A.Vector2, A.Vector3, A.Vector4, A.Color3, A.Color4, A.Matrix));\n }\n /**\n * Release resources\n */\n dispose() {\n super.dispose(), this._connectionObservers.forEach((e) => e.remove()), this._connectionObservers.length = 0;\n }\n}\nclass Xp extends Q_ {\n /**\n * Creates a new MultiplyBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MultiplyBlock\";\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = ${this.left.associatedVariableName} * ${this.right.associatedVariableName};\n`, this;\n }\n}\nU(\"BABYLON.MultiplyBlock\", Xp);\nvar Cr;\n(function(a) {\n a[a.Material = 0] = \"Material\", a[a.PostProcess = 1] = \"PostProcess\", a[a.Particle = 2] = \"Particle\", a[a.ProceduralTexture = 3] = \"ProceduralTexture\";\n})(Cr || (Cr = {}));\nclass wV extends dr {\n constructor() {\n super(), this.IMAGEPROCESSING = !1, this.VIGNETTE = !1, this.VIGNETTEBLENDMODEMULTIPLY = !1, this.VIGNETTEBLENDMODEOPAQUE = !1, this.TONEMAPPING = 0, this.CONTRAST = !1, this.COLORCURVES = !1, this.COLORGRADING = !1, this.COLORGRADING3D = !1, this.SAMPLER3DGREENDEPTH = !1, this.SAMPLER3DBGRMAP = !1, this.DITHER = !1, this.IMAGEPROCESSINGPOSTPROCESS = !1, this.EXPOSURE = !1, this.SKIPFINALCOLORCLAMP = !1, this.rebuild();\n }\n}\nclass vs {\n /**\n * Gets or sets a texture used to add random noise to particle positions\n */\n get noiseTexture() {\n return this._noiseTexture;\n }\n set noiseTexture(e) {\n this._noiseTexture !== e && (this._noiseTexture = e, this._reset());\n }\n /**\n * Gets or sets whether an animation sprite sheet is enabled or not on the particle system\n */\n get isAnimationSheetEnabled() {\n return this._isAnimationSheetEnabled;\n }\n set isAnimationSheetEnabled(e) {\n this._isAnimationSheetEnabled != e && (this._isAnimationSheetEnabled = e, this._reset());\n }\n /**\n * Gets or sets a boolean enabling the use of logarithmic depth buffers, which is good for wide depth buffers.\n */\n get useLogarithmicDepth() {\n return this._useLogarithmicDepth;\n }\n set useLogarithmicDepth(e) {\n this._useLogarithmicDepth = e && this.getScene().getEngine().getCaps().fragmentDepthSupported;\n }\n /**\n * Get hosting scene\n * @returns the scene\n */\n getScene() {\n return this._scene;\n }\n _hasTargetStopDurationDependantGradient() {\n return this._startSizeGradients && this._startSizeGradients.length > 0 || this._emitRateGradients && this._emitRateGradients.length > 0 || this._lifeTimeGradients && this._lifeTimeGradients.length > 0;\n }\n /**\n * Gets the current list of drag gradients.\n * You must use addDragGradient and removeDragGradient to update this list\n * @returns the list of drag gradients\n */\n getDragGradients() {\n return this._dragGradients;\n }\n /**\n * Gets the current list of limit velocity gradients.\n * You must use addLimitVelocityGradient and removeLimitVelocityGradient to update this list\n * @returns the list of limit velocity gradients\n */\n getLimitVelocityGradients() {\n return this._limitVelocityGradients;\n }\n /**\n * Gets the current list of color gradients.\n * You must use addColorGradient and removeColorGradient to update this list\n * @returns the list of color gradients\n */\n getColorGradients() {\n return this._colorGradients;\n }\n /**\n * Gets the current list of size gradients.\n * You must use addSizeGradient and removeSizeGradient to update this list\n * @returns the list of size gradients\n */\n getSizeGradients() {\n return this._sizeGradients;\n }\n /**\n * Gets the current list of color remap gradients.\n * You must use addColorRemapGradient and removeColorRemapGradient to update this list\n * @returns the list of color remap gradients\n */\n getColorRemapGradients() {\n return this._colorRemapGradients;\n }\n /**\n * Gets the current list of alpha remap gradients.\n * You must use addAlphaRemapGradient and removeAlphaRemapGradient to update this list\n * @returns the list of alpha remap gradients\n */\n getAlphaRemapGradients() {\n return this._alphaRemapGradients;\n }\n /**\n * Gets the current list of life time gradients.\n * You must use addLifeTimeGradient and removeLifeTimeGradient to update this list\n * @returns the list of life time gradients\n */\n getLifeTimeGradients() {\n return this._lifeTimeGradients;\n }\n /**\n * Gets the current list of angular speed gradients.\n * You must use addAngularSpeedGradient and removeAngularSpeedGradient to update this list\n * @returns the list of angular speed gradients\n */\n getAngularSpeedGradients() {\n return this._angularSpeedGradients;\n }\n /**\n * Gets the current list of velocity gradients.\n * You must use addVelocityGradient and removeVelocityGradient to update this list\n * @returns the list of velocity gradients\n */\n getVelocityGradients() {\n return this._velocityGradients;\n }\n /**\n * Gets the current list of start size gradients.\n * You must use addStartSizeGradient and removeStartSizeGradient to update this list\n * @returns the list of start size gradients\n */\n getStartSizeGradients() {\n return this._startSizeGradients;\n }\n /**\n * Gets the current list of emit rate gradients.\n * You must use addEmitRateGradient and removeEmitRateGradient to update this list\n * @returns the list of emit rate gradients\n */\n getEmitRateGradients() {\n return this._emitRateGradients;\n }\n /**\n * Random direction of each particle after it has been emitted, between direction1 and direction2 vectors.\n * This only works when particleEmitterTyps is a BoxParticleEmitter\n */\n get direction1() {\n return this.particleEmitterType.direction1 ? this.particleEmitterType.direction1 : g.Zero();\n }\n set direction1(e) {\n this.particleEmitterType.direction1 && (this.particleEmitterType.direction1 = e);\n }\n /**\n * Random direction of each particle after it has been emitted, between direction1 and direction2 vectors.\n * This only works when particleEmitterTyps is a BoxParticleEmitter\n */\n get direction2() {\n return this.particleEmitterType.direction2 ? this.particleEmitterType.direction2 : g.Zero();\n }\n set direction2(e) {\n this.particleEmitterType.direction2 && (this.particleEmitterType.direction2 = e);\n }\n /**\n * Minimum box point around our emitter. Our emitter is the center of particles source, but if you want your particles to emit from more than one point, then you can tell it to do so.\n * This only works when particleEmitterTyps is a BoxParticleEmitter\n */\n get minEmitBox() {\n return this.particleEmitterType.minEmitBox ? this.particleEmitterType.minEmitBox : g.Zero();\n }\n set minEmitBox(e) {\n this.particleEmitterType.minEmitBox && (this.particleEmitterType.minEmitBox = e);\n }\n /**\n * Maximum box point around our emitter. Our emitter is the center of particles source, but if you want your particles to emit from more than one point, then you can tell it to do so.\n * This only works when particleEmitterTyps is a BoxParticleEmitter\n */\n get maxEmitBox() {\n return this.particleEmitterType.maxEmitBox ? this.particleEmitterType.maxEmitBox : g.Zero();\n }\n set maxEmitBox(e) {\n this.particleEmitterType.maxEmitBox && (this.particleEmitterType.maxEmitBox = e);\n }\n /**\n * Gets or sets the billboard mode to use when isBillboardBased = true.\n * Value can be: ParticleSystem.BILLBOARDMODE_ALL, ParticleSystem.BILLBOARDMODE_Y, ParticleSystem.BILLBOARDMODE_STRETCHED\n */\n get billboardMode() {\n return this._billboardMode;\n }\n set billboardMode(e) {\n this._billboardMode !== e && (this._billboardMode = e, this._reset());\n }\n /**\n * Gets or sets a boolean indicating if the particles must be rendered as billboard or aligned with the direction\n */\n get isBillboardBased() {\n return this._isBillboardBased;\n }\n set isBillboardBased(e) {\n this._isBillboardBased !== e && (this._isBillboardBased = e, this._reset());\n }\n /**\n * Gets the image processing configuration used either in this material.\n */\n get imageProcessingConfiguration() {\n return this._imageProcessingConfiguration;\n }\n /**\n * Sets the Default image processing configuration used either in the this material.\n *\n * If sets to null, the scene one is in use.\n */\n set imageProcessingConfiguration(e) {\n this._attachImageProcessingConfiguration(e);\n }\n /**\n * Attaches a new image processing configuration to the Standard Material.\n * @param configuration\n */\n _attachImageProcessingConfiguration(e) {\n e !== this._imageProcessingConfiguration && (!e && this._scene ? this._imageProcessingConfiguration = this._scene.imageProcessingConfiguration : this._imageProcessingConfiguration = e);\n }\n /** @internal */\n _reset() {\n }\n /**\n * @internal\n */\n _removeGradientAndTexture(e, t, i) {\n if (!t)\n return this;\n let s = 0;\n for (const r of t) {\n if (r.gradient === e) {\n t.splice(s, 1);\n break;\n }\n s++;\n }\n return i && i.dispose(), this;\n }\n /**\n * Instantiates a particle system.\n * Particles are often small sprites used to simulate hard-to-reproduce phenomena like fire, smoke, water, or abstract visual effects like magic glitter and faery dust.\n * @param name The name of the particle system\n */\n constructor(e) {\n this.animations = [], this.renderingGroupId = 0, this.emitter = g.Zero(), this.emitRate = 10, this.manualEmitCount = -1, this.updateSpeed = 0.01, this.targetStopDuration = 0, this.disposeOnStop = !1, this.minEmitPower = 1, this.maxEmitPower = 1, this.minLifeTime = 1, this.maxLifeTime = 1, this.minSize = 1, this.maxSize = 1, this.minScaleX = 1, this.maxScaleX = 1, this.minScaleY = 1, this.maxScaleY = 1, this.minInitialRotation = 0, this.maxInitialRotation = 0, this.minAngularSpeed = 0, this.maxAngularSpeed = 0, this.layerMask = 268435455, this.customShader = null, this.preventAutoStart = !1, this.applyFog = !1, this._wasDispatched = !1, this._rootUrl = \"\", this.noiseStrength = new g(10, 10, 10), this.onAnimationEnd = null, this.blendMode = vs.BLENDMODE_ONEONE, this.forceDepthWrite = !1, this.preWarmCycles = 0, this.preWarmStepOffset = 1, this.spriteCellChangeSpeed = 1, this.startSpriteCellID = 0, this.endSpriteCellID = 0, this.spriteCellWidth = 0, this.spriteCellHeight = 0, this.spriteCellLoop = !0, this.spriteRandomStartCell = !1, this.translationPivot = new Q(0, 0), this.beginAnimationOnStart = !1, this.beginAnimationFrom = 0, this.beginAnimationTo = 60, this.beginAnimationLoop = !1, this.worldOffset = new g(0, 0, 0), this._useLogarithmicDepth = !1, this.gravity = g.Zero(), this._colorGradients = null, this._sizeGradients = null, this._lifeTimeGradients = null, this._angularSpeedGradients = null, this._velocityGradients = null, this._limitVelocityGradients = null, this._dragGradients = null, this._emitRateGradients = null, this._startSizeGradients = null, this._rampGradients = null, this._colorRemapGradients = null, this._alphaRemapGradients = null, this.startDelay = 0, this.limitVelocityDamping = 0.4, this.color1 = new Ce(1, 1, 1, 1), this.color2 = new Ce(1, 1, 1, 1), this.colorDead = new Ce(0, 0, 0, 1), this.textureMask = new Ce(1, 1, 1, 1), this._isSubEmitter = !1, this._billboardMode = 7, this._isBillboardBased = !0, this._imageProcessingConfigurationDefines = new wV(), this.id = e, this.name = e;\n }\n /**\n * Creates a Point Emitter for the particle system (emits directly from the emitter position)\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the box\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the box\n */\n createPointEmitter(e, t) {\n throw new Error(\"Method not implemented.\");\n }\n /**\n * Creates a Hemisphere Emitter for the particle system (emits along the hemisphere radius)\n * @param radius The radius of the hemisphere to emit from\n * @param radiusRange The range of the hemisphere to emit from [0-1] 0 Surface Only, 1 Entire Radius\n */\n createHemisphericEmitter(e = 1, t = 1) {\n throw new Error(\"Method not implemented.\");\n }\n /**\n * Creates a Sphere Emitter for the particle system (emits along the sphere radius)\n * @param radius The radius of the sphere to emit from\n * @param radiusRange The range of the sphere to emit from [0-1] 0 Surface Only, 1 Entire Radius\n */\n createSphereEmitter(e = 1, t = 1) {\n throw new Error(\"Method not implemented.\");\n }\n /**\n * Creates a Directed Sphere Emitter for the particle system (emits between direction1 and direction2)\n * @param radius The radius of the sphere to emit from\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the sphere\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the sphere\n */\n createDirectedSphereEmitter(e = 1, t = new g(0, 1, 0), i = new g(0, 1, 0)) {\n throw new Error(\"Method not implemented.\");\n }\n /**\n * Creates a Cylinder Emitter for the particle system (emits from the cylinder to the particle position)\n * @param radius The radius of the emission cylinder\n * @param height The height of the emission cylinder\n * @param radiusRange The range of emission [0-1] 0 Surface only, 1 Entire Radius\n * @param directionRandomizer How much to randomize the particle direction [0-1]\n */\n createCylinderEmitter(e = 1, t = 1, i = 1, s = 0) {\n throw new Error(\"Method not implemented.\");\n }\n /**\n * Creates a Directed Cylinder Emitter for the particle system (emits between direction1 and direction2)\n * @param radius The radius of the cylinder to emit from\n * @param height The height of the emission cylinder\n * @param radiusRange the range of the emission cylinder [0-1] 0 Surface only, 1 Entire Radius (1 by default)\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the cylinder\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the cylinder\n */\n createDirectedCylinderEmitter(e = 1, t = 1, i = 1, s = new g(0, 1, 0), r = new g(0, 1, 0)) {\n throw new Error(\"Method not implemented.\");\n }\n /**\n * Creates a Cone Emitter for the particle system (emits from the cone to the particle position)\n * @param radius The radius of the cone to emit from\n * @param angle The base angle of the cone\n */\n createConeEmitter(e = 1, t = Math.PI / 4) {\n throw new Error(\"Method not implemented.\");\n }\n createDirectedConeEmitter(e = 1, t = Math.PI / 4, i = new g(0, 1, 0), s = new g(0, 1, 0)) {\n throw new Error(\"Method not implemented.\");\n }\n /**\n * Creates a Box Emitter for the particle system. (emits between direction1 and direction2 from withing the box defined by minEmitBox and maxEmitBox)\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the box\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the box\n * @param minEmitBox Particles are emitted from the box between minEmitBox and maxEmitBox\n * @param maxEmitBox Particles are emitted from the box between minEmitBox and maxEmitBox\n */\n createBoxEmitter(e, t, i, s) {\n throw new Error(\"Method not implemented.\");\n }\n}\nvs.BLENDMODE_ONEONE = 0;\nvs.BLENDMODE_STANDARD = 1;\nvs.BLENDMODE_ADD = 2;\nvs.BLENDMODE_MULTIPLY = 3;\nvs.BLENDMODE_MULTIPLYADD = 4;\nU(\"BABYLON.BaseParticleSystem\", vs);\nclass Cv extends Ge {\n /**\n * Create a new ColorSplitterBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"rgba\", A.Color4, !0), this.registerInput(\"rgb \", A.Color3, !0), this.registerOutput(\"rgb\", A.Color3), this.registerOutput(\"r\", A.Float), this.registerOutput(\"g\", A.Float), this.registerOutput(\"b\", A.Float), this.registerOutput(\"a\", A.Float), this.inputsAreExclusive = !0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ColorSplitterBlock\";\n }\n /**\n * Gets the rgba component (input)\n */\n get rgba() {\n return this._inputs[0];\n }\n /**\n * Gets the rgb component (input)\n */\n get rgbIn() {\n return this._inputs[1];\n }\n /**\n * Gets the rgb component (output)\n */\n get rgbOut() {\n return this._outputs[0];\n }\n /**\n * Gets the r component (output)\n */\n get r() {\n return this._outputs[1];\n }\n /**\n * Gets the g component (output)\n */\n get g() {\n return this._outputs[2];\n }\n /**\n * Gets the b component (output)\n */\n get b() {\n return this._outputs[3];\n }\n /**\n * Gets the a component (output)\n */\n get a() {\n return this._outputs[4];\n }\n _inputRename(e) {\n return e === \"rgb \" ? \"rgbIn\" : e;\n }\n _outputRename(e) {\n return e === \"rgb\" ? \"rgbOut\" : e;\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this.rgba.isConnected ? this.rgba : this.rgbIn;\n if (!t.isConnected)\n return;\n const i = this._outputs[0], s = this._outputs[1], r = this._outputs[2], n = this._outputs[3], o = this._outputs[4];\n return i.hasEndpoints && (e.compilationString += e._declareOutput(i) + ` = ${t.associatedVariableName}.rgb;\n`), s.hasEndpoints && (e.compilationString += e._declareOutput(s) + ` = ${t.associatedVariableName}.r;\n`), r.hasEndpoints && (e.compilationString += e._declareOutput(r) + ` = ${t.associatedVariableName}.g;\n`), n.hasEndpoints && (e.compilationString += e._declareOutput(n) + ` = ${t.associatedVariableName}.b;\n`), o.hasEndpoints && (e.compilationString += e._declareOutput(o) + ` = ${t.associatedVariableName}.a;\n`), this;\n }\n}\nU(\"BABYLON.ColorSplitterBlock\", Cv);\nclass NV {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_PROCEDURALTEXTURE, this.scene = e, this.scene.proceduralTextures = [];\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._beforeClearStage.registerStep(me.STEP_BEFORECLEAR_PROCEDURALTEXTURE, this, this._beforeClear);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n }\n /**\n * Disposes the component and the associated resources.\n */\n dispose() {\n }\n _beforeClear() {\n if (this.scene.proceduralTexturesEnabled) {\n J.StartPerformanceCounter(\"Procedural textures\", this.scene.proceduralTextures.length > 0);\n for (let e = 0; e < this.scene.proceduralTextures.length; e++) {\n const t = this.scene.proceduralTextures[e];\n t._shouldRender() && t.render();\n }\n J.EndPerformanceCounter(\"Procedural textures\", this.scene.proceduralTextures.length > 0);\n }\n }\n}\nconst FV = \"proceduralVertexShader\", LV = `attribute vec2 position;varying vec2 vPosition;varying vec2 vUV;const vec2 madd=vec2(0.5,0.5);\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvPosition=position;vUV=position*madd+madd;gl_Position=vec4(position,0.0,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}`;\nz.ShadersStore[FV] = LV;\nclass Fa extends X {\n /**\n * Instantiates a new procedural texture.\n * Procedural texturing is a way to programmatically create a texture. There are 2 types of procedural textures: code-only, and code that references some classic 2D images, sometimes called 'refMaps' or 'sampler' images.\n * This is the base class of any Procedural texture and contains most of the shareable code.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/proceduralTextures\n * @param name Define the name of the texture\n * @param size Define the size of the texture to create\n * @param fragment Define the fragment shader to use to generate the texture or null if it is defined later:\n * * object: \\{ fragmentElement: \"fragmentShaderCode\" \\}, used with shader code in script tags\n * * object: \\{ fragmentSource: \"fragment shader code string\" \\}, the string contains the shader code\n * * string: the string contains a name \"XXX\" to lookup in Effect.ShadersStore[\"XXXFragmentShader\"]\n * @param scene Define the scene the texture belongs to\n * @param fallbackTexture Define a fallback texture in case there were issues to create the custom texture\n * @param generateMipMaps Define if the texture should creates mip maps or not\n * @param isCube Define if the texture is a cube texture or not (this will render each faces of the cube)\n * @param textureType The FBO internal texture type\n */\n constructor(e, t, i, s, r = null, n = !0, o = !1, l = 0) {\n super(null, s, !n), this.isEnabled = !0, this.autoClear = !0, this.onGeneratedObservable = new G(), this.onBeforeGenerationObservable = new G(), this.nodeMaterialSource = null, this._textures = {}, this._currentRefreshId = -1, this._frameId = -1, this._refreshRate = 1, this._vertexBuffers = {}, this._uniforms = new Array(), this._samplers = new Array(), this._floats = {}, this._ints = {}, this._floatsArrays = {}, this._colors3 = {}, this._colors4 = {}, this._vectors2 = {}, this._vectors3 = {}, this._vectors4 = {}, this._matrices = {}, this._fallbackTextureUsed = !1, this._cachedDefines = null, this._contentUpdateId = -1, this._rtWrapper = null, r !== null && !(r instanceof X) ? (this._options = r, this._fallbackTexture = r.fallbackTexture ?? null) : (this._options = {}, this._fallbackTexture = r), s = this.getScene() || Me.LastCreatedScene;\n let h = s._getComponent(me.NAME_PROCEDURALTEXTURE);\n h || (h = new NV(s), s._addComponent(h)), s.proceduralTextures.push(this), this._fullEngine = s.getEngine(), this.name = e, this.isRenderTarget = !0, this._size = t, this._textureType = l, this._generateMipMaps = n, this._drawWrapper = new Ds(this._fullEngine), this.setFragment(i);\n const c = this._createRtWrapper(o, t, n, l);\n this._texture = c.texture;\n const u = [];\n u.push(1, 1), u.push(-1, 1), u.push(-1, -1), u.push(1, -1), this._vertexBuffers[R.PositionKind] = new R(this._fullEngine, u, R.PositionKind, !1, !1, 2), this._createIndexBuffer();\n }\n _createRtWrapper(e, t, i, s) {\n return e ? (this._rtWrapper = this._fullEngine.createRenderTargetCubeTexture(t, {\n generateMipMaps: i,\n generateDepthBuffer: !1,\n generateStencilBuffer: !1,\n type: s,\n ...this._options\n }), this.setFloat(\"face\", 0)) : this._rtWrapper = this._fullEngine.createRenderTargetTexture(t, {\n generateMipMaps: i,\n generateDepthBuffer: !1,\n generateStencilBuffer: !1,\n type: s,\n ...this._options\n }), this._rtWrapper;\n }\n /**\n * The effect that is created when initializing the post process.\n * @returns The created effect corresponding the postprocess.\n */\n getEffect() {\n return this._drawWrapper.effect;\n }\n /**\n * @internal\n */\n _setEffect(e) {\n this._drawWrapper.effect = e;\n }\n /**\n * Gets texture content (Use this function wisely as reading from a texture can be slow)\n * @returns an ArrayBufferView promise (Uint8Array or Float32Array)\n */\n getContent() {\n return this._contentData && this._frameId === this._contentUpdateId ? this._contentData : (this._contentData ? this._contentData.then((e) => {\n this._contentData = this.readPixels(0, 0, e), this._contentUpdateId = this._frameId;\n }) : (this._contentData = this.readPixels(0, 0), this._contentUpdateId = this._frameId), this._contentData);\n }\n _createIndexBuffer() {\n const e = this._fullEngine, t = [];\n t.push(0), t.push(1), t.push(2), t.push(0), t.push(2), t.push(3), this._indexBuffer = e.createIndexBuffer(t);\n }\n /** @internal */\n _rebuild() {\n const e = this._vertexBuffers[R.PositionKind];\n e && e._rebuild(), this._createIndexBuffer(), this.refreshRate === Ii.REFRESHRATE_RENDER_ONCE && (this.refreshRate = Ii.REFRESHRATE_RENDER_ONCE);\n }\n /**\n * Resets the texture in order to recreate its associated resources.\n * This can be called in case of context loss or if you change the shader code and need to regenerate the texture with the new code\n */\n reset() {\n var e;\n (e = this._drawWrapper.effect) == null || e.dispose(), this._drawWrapper.effect = null, this._cachedDefines = null;\n }\n _getDefines() {\n return \"\";\n }\n /**\n * Executes a function when the texture will be ready to be drawn.\n * @param func The callback to be used.\n */\n executeWhenReady(e) {\n if (this.isReady()) {\n e(this);\n return;\n }\n const t = this.getEffect();\n t && t.executeWhenCompiled(() => {\n e(this);\n });\n }\n /**\n * Is the texture ready to be used ? (rendered at least once)\n * @returns true if ready, otherwise, false.\n */\n isReady() {\n const e = this._fullEngine;\n if (this.nodeMaterialSource)\n return this._drawWrapper.effect.isReady();\n if (!this._fragment)\n return !1;\n if (this._fallbackTextureUsed)\n return !0;\n if (!this._texture)\n return !1;\n const t = this._getDefines();\n if (this._drawWrapper.effect && t === this._cachedDefines && this._drawWrapper.effect.isReady())\n return !0;\n const i = {\n vertex: \"procedural\",\n fragmentElement: this._fragment.fragmentElement,\n fragmentSource: this._fragment.fragmentSource,\n fragment: typeof this._fragment == \"string\" ? this._fragment : void 0\n };\n return this._cachedDefines !== t && (this._cachedDefines = t, this._drawWrapper.effect = e.createEffect(i, [R.PositionKind], this._uniforms, this._samplers, t, void 0, void 0, () => {\n var s;\n (s = this._rtWrapper) == null || s.dispose(), this._rtWrapper = this._texture = null, this._fallbackTexture && (this._texture = this._fallbackTexture._texture, this._texture && this._texture.incrementReferences()), this._fallbackTextureUsed = !0;\n })), this._drawWrapper.effect.isReady();\n }\n /**\n * Resets the refresh counter of the texture and start bak from scratch.\n * Could be useful to regenerate the texture if it is setup to render only once.\n */\n resetRefreshCounter() {\n this._currentRefreshId = -1;\n }\n /**\n * Set the fragment shader to use in order to render the texture.\n * @param fragment This can be set to a path (into the shader store) or to a json object containing a fragmentElement property.\n */\n setFragment(e) {\n this._fragment = e;\n }\n /**\n * Define the refresh rate of the texture or the rendering frequency.\n * Use 0 to render just once, 1 to render on every frame, 2 to render every two frames and so on...\n */\n get refreshRate() {\n return this._refreshRate;\n }\n set refreshRate(e) {\n this._refreshRate = e, this.resetRefreshCounter();\n }\n /** @internal */\n _shouldRender() {\n return !this.isEnabled || !this.isReady() || !this._texture ? (this._texture && (this._texture.isReady = !1), !1) : this._fallbackTextureUsed ? !1 : this._currentRefreshId === -1 ? (this._currentRefreshId = 1, this._frameId++, !0) : this.refreshRate === this._currentRefreshId ? (this._currentRefreshId = 1, this._frameId++, !0) : (this._currentRefreshId++, !1);\n }\n /**\n * Get the size the texture is rendering at.\n * @returns the size (on cube texture it is always squared)\n */\n getRenderSize() {\n return this._size;\n }\n /**\n * Resize the texture to new value.\n * @param size Define the new size the texture should have\n * @param generateMipMaps Define whether the new texture should create mip maps\n */\n resize(e, t) {\n if (this._fallbackTextureUsed || !this._rtWrapper || !this._texture)\n return;\n const i = this._texture.isCube;\n this._rtWrapper.dispose();\n const s = this._createRtWrapper(i, e, t, this._textureType);\n this._texture = s.texture, this._size = e, this._generateMipMaps = t;\n }\n _checkUniform(e) {\n this._uniforms.indexOf(e) === -1 && this._uniforms.push(e);\n }\n /**\n * Set a texture in the shader program used to render.\n * @param name Define the name of the uniform samplers as defined in the shader\n * @param texture Define the texture to bind to this sampler\n * @returns the texture itself allowing \"fluent\" like uniform updates\n */\n setTexture(e, t) {\n return this._samplers.indexOf(e) === -1 && this._samplers.push(e), this._textures[e] = t, this;\n }\n /**\n * Set a float in the shader.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the texture itself allowing \"fluent\" like uniform updates\n */\n setFloat(e, t) {\n return this._checkUniform(e), this._floats[e] = t, this;\n }\n /**\n * Set a int in the shader.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the texture itself allowing \"fluent\" like uniform updates\n */\n setInt(e, t) {\n return this._checkUniform(e), this._ints[e] = t, this;\n }\n /**\n * Set an array of floats in the shader.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the texture itself allowing \"fluent\" like uniform updates\n */\n setFloats(e, t) {\n return this._checkUniform(e), this._floatsArrays[e] = t, this;\n }\n /**\n * Set a vec3 in the shader from a Color3.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the texture itself allowing \"fluent\" like uniform updates\n */\n setColor3(e, t) {\n return this._checkUniform(e), this._colors3[e] = t, this;\n }\n /**\n * Set a vec4 in the shader from a Color4.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the texture itself allowing \"fluent\" like uniform updates\n */\n setColor4(e, t) {\n return this._checkUniform(e), this._colors4[e] = t, this;\n }\n /**\n * Set a vec2 in the shader from a Vector2.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the texture itself allowing \"fluent\" like uniform updates\n */\n setVector2(e, t) {\n return this._checkUniform(e), this._vectors2[e] = t, this;\n }\n /**\n * Set a vec3 in the shader from a Vector3.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the texture itself allowing \"fluent\" like uniform updates\n */\n setVector3(e, t) {\n return this._checkUniform(e), this._vectors3[e] = t, this;\n }\n /**\n * Set a vec4 in the shader from a Vector4.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the texture itself allowing \"fluent\" like uniform updates\n */\n setVector4(e, t) {\n return this._checkUniform(e), this._vectors4[e] = t, this;\n }\n /**\n * Set a mat4 in the shader from a MAtrix.\n * @param name Define the name of the uniform as defined in the shader\n * @param value Define the value to give to the uniform\n * @returns the texture itself allowing \"fluent\" like uniform updates\n */\n setMatrix(e, t) {\n return this._checkUniform(e), this._matrices[e] = t, this;\n }\n /**\n * Render the texture to its associated render target.\n * @param useCameraPostProcess Define if camera post process should be applied to the texture\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(e) {\n var r, n, o;\n const t = this.getScene();\n if (!t)\n return;\n const i = this._fullEngine;\n if (i.enableEffect(this._drawWrapper), this.onBeforeGenerationObservable.notifyObservers(this), i.setState(!1), !this.nodeMaterialSource) {\n for (const l in this._textures)\n this._drawWrapper.effect.setTexture(l, this._textures[l]);\n for (const l in this._ints)\n this._drawWrapper.effect.setInt(l, this._ints[l]);\n for (const l in this._floats)\n this._drawWrapper.effect.setFloat(l, this._floats[l]);\n for (const l in this._floatsArrays)\n this._drawWrapper.effect.setArray(l, this._floatsArrays[l]);\n for (const l in this._colors3)\n this._drawWrapper.effect.setColor3(l, this._colors3[l]);\n for (const l in this._colors4) {\n const h = this._colors4[l];\n this._drawWrapper.effect.setFloat4(l, h.r, h.g, h.b, h.a);\n }\n for (const l in this._vectors2)\n this._drawWrapper.effect.setVector2(l, this._vectors2[l]);\n for (const l in this._vectors3)\n this._drawWrapper.effect.setVector3(l, this._vectors3[l]);\n for (const l in this._vectors4)\n this._drawWrapper.effect.setVector4(l, this._vectors4[l]);\n for (const l in this._matrices)\n this._drawWrapper.effect.setMatrix(l, this._matrices[l]);\n }\n if (!this._texture || !this._rtWrapper)\n return;\n (r = i._debugPushGroup) == null || r.call(i, `procedural texture generation for ${this.name}`, 1);\n const s = i.currentViewport;\n if (this.isCube)\n for (let l = 0; l < 6; l++)\n i.bindFramebuffer(this._rtWrapper, l, void 0, void 0, !0), i.bindBuffers(this._vertexBuffers, this._indexBuffer, this._drawWrapper.effect), this._drawWrapper.effect.setFloat(\"face\", l), this.autoClear && i.clear(t.clearColor, !0, !1, !1), i.drawElementsType(ue.TriangleFillMode, 0, 6);\n else {\n let l = 1;\n this._rtWrapper.is3D ? l = this._rtWrapper.depth : this._rtWrapper.is2DArray && (l = this._rtWrapper.layers);\n for (let h = 0; h < l; h++)\n i.bindFramebuffer(this._rtWrapper, 0, void 0, void 0, !0, 0, h), (this._rtWrapper.is3D || this._rtWrapper.is2DArray) && ((n = this._drawWrapper.effect) == null || n.setFloat(\"layer\", l !== 1 ? h / (l - 1) : 0)), i.bindBuffers(this._vertexBuffers, this._indexBuffer, this._drawWrapper.effect), this.autoClear && i.clear(t.clearColor, !0, !1, !1), i.drawElementsType(ue.TriangleFillMode, 0, 6);\n }\n i.unBindFramebuffer(this._rtWrapper, this.isCube), s && i.setViewport(s), this.isCube && i.generateMipMapsForCubemap(this._texture, !0), (o = i._debugPopGroup) == null || o.call(i, 1), this.onGenerated && this.onGenerated(), this.onGeneratedObservable.notifyObservers(this);\n }\n /**\n * Clone the texture.\n * @returns the cloned texture\n */\n clone() {\n const e = this.getSize(), t = new Fa(this.name, e.width, this._fragment, this.getScene(), this._fallbackTexture, this._generateMipMaps);\n return t.hasAlpha = this.hasAlpha, t.level = this.level, t.coordinatesMode = this.coordinatesMode, t;\n }\n /**\n * Dispose the texture and release its associated resources.\n */\n dispose() {\n const e = this.getScene();\n if (!e)\n return;\n const t = e.proceduralTextures.indexOf(this);\n t >= 0 && e.proceduralTextures.splice(t, 1);\n const i = this._vertexBuffers[R.PositionKind];\n i && (i.dispose(), this._vertexBuffers[R.PositionKind] = null), this._indexBuffer && this._fullEngine._releaseBuffer(this._indexBuffer) && (this._indexBuffer = null), this.onGeneratedObservable.clear(), this.onBeforeGenerationObservable.clear(), super.dispose();\n }\n}\ny([\n I()\n], Fa.prototype, \"isEnabled\", void 0);\ny([\n I()\n], Fa.prototype, \"autoClear\", void 0);\ny([\n I()\n], Fa.prototype, \"_generateMipMaps\", void 0);\ny([\n I()\n], Fa.prototype, \"_size\", void 0);\ny([\n I()\n], Fa.prototype, \"refreshRate\", null);\nU(\"BABYLON.ProceduralTexture\", Fa);\nvar rs;\n(function(a) {\n a[a.Cos = 0] = \"Cos\", a[a.Sin = 1] = \"Sin\", a[a.Abs = 2] = \"Abs\", a[a.Exp = 3] = \"Exp\", a[a.Exp2 = 4] = \"Exp2\", a[a.Round = 5] = \"Round\", a[a.Floor = 6] = \"Floor\", a[a.Ceiling = 7] = \"Ceiling\", a[a.Sqrt = 8] = \"Sqrt\", a[a.Log = 9] = \"Log\", a[a.Tan = 10] = \"Tan\", a[a.ArcTan = 11] = \"ArcTan\", a[a.ArcCos = 12] = \"ArcCos\", a[a.ArcSin = 13] = \"ArcSin\", a[a.Fract = 14] = \"Fract\", a[a.Sign = 15] = \"Sign\", a[a.Radians = 16] = \"Radians\", a[a.Degrees = 17] = \"Degrees\", a[a.Set = 18] = \"Set\";\n})(rs || (rs = {}));\nclass Av extends Ge {\n /**\n * Creates a new TrigonometryBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.operation = rs.Cos, this.registerInput(\"input\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TrigonometryBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n let i = \"\";\n switch (this.operation) {\n case rs.Cos: {\n i = \"cos\";\n break;\n }\n case rs.Sin: {\n i = \"sin\";\n break;\n }\n case rs.Abs: {\n i = \"abs\";\n break;\n }\n case rs.Exp: {\n i = \"exp\";\n break;\n }\n case rs.Exp2: {\n i = \"exp2\";\n break;\n }\n case rs.Round: {\n i = \"round\";\n break;\n }\n case rs.Floor: {\n i = \"floor\";\n break;\n }\n case rs.Ceiling: {\n i = \"ceil\";\n break;\n }\n case rs.Sqrt: {\n i = \"sqrt\";\n break;\n }\n case rs.Log: {\n i = \"log\";\n break;\n }\n case rs.Tan: {\n i = \"tan\";\n break;\n }\n case rs.ArcTan: {\n i = \"atan\";\n break;\n }\n case rs.ArcCos: {\n i = \"acos\";\n break;\n }\n case rs.ArcSin: {\n i = \"asin\";\n break;\n }\n case rs.Fract: {\n i = \"fract\";\n break;\n }\n case rs.Sign: {\n i = \"sign\";\n break;\n }\n case rs.Radians: {\n i = \"radians\";\n break;\n }\n case rs.Degrees: {\n i = \"degrees\";\n break;\n }\n case rs.Set: {\n i = \"\";\n break;\n }\n }\n return e.compilationString += e._declareOutput(t) + ` = ${i}(${this.input.associatedVariableName});\n`, this;\n }\n serialize() {\n const e = super.serialize();\n return e.operation = this.operation, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.operation = e.operation;\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.operation = BABYLON.TrigonometryBlockOperations.${rs[this.operation]};\n`;\n }\n}\nU(\"BABYLON.TrigonometryBlock\", Av);\nconst Jm = { effect: null, subMesh: null };\nclass rp extends dr {\n /**\n * Creates a new NodeMaterialDefines\n */\n constructor() {\n super(), this.NORMAL = !1, this.TANGENT = !1, this.VERTEXCOLOR_NME = !1, this.UV1 = !1, this.UV2 = !1, this.UV3 = !1, this.UV4 = !1, this.UV5 = !1, this.UV6 = !1, this.PREPASS = !1, this.PREPASS_NORMAL = !1, this.PREPASS_NORMAL_INDEX = -1, this.PREPASS_POSITION = !1, this.PREPASS_POSITION_INDEX = -1, this.PREPASS_DEPTH = !1, this.PREPASS_DEPTH_INDEX = -1, this.SCENE_MRT_COUNT = 0, this.NUM_BONE_INFLUENCERS = 0, this.BonesPerMesh = 0, this.BONETEXTURE = !1, this.MORPHTARGETS = !1, this.MORPHTARGETS_NORMAL = !1, this.MORPHTARGETS_TANGENT = !1, this.MORPHTARGETS_UV = !1, this.NUM_MORPH_INFLUENCERS = 0, this.MORPHTARGETS_TEXTURE = !1, this.IMAGEPROCESSING = !1, this.VIGNETTE = !1, this.VIGNETTEBLENDMODEMULTIPLY = !1, this.VIGNETTEBLENDMODEOPAQUE = !1, this.TONEMAPPING = 0, this.CONTRAST = !1, this.EXPOSURE = !1, this.COLORCURVES = !1, this.COLORGRADING = !1, this.COLORGRADING3D = !1, this.SAMPLER3DGREENDEPTH = !1, this.SAMPLER3DBGRMAP = !1, this.DITHER = !1, this.IMAGEPROCESSINGPOSTPROCESS = !1, this.SKIPFINALCOLORCLAMP = !1, this.BUMPDIRECTUV = 0, this.CAMERA_ORTHOGRAPHIC = !1, this.CAMERA_PERSPECTIVE = !1, this.rebuild();\n }\n /**\n * Set the value of a specific key\n * @param name defines the name of the key to set\n * @param value defines the value to set\n * @param markAsUnprocessedIfDirty Flag to indicate to the cache that this value needs processing\n */\n setValue(e, t, i = !1) {\n this[e] === void 0 && this._keys.push(e), i && this[e] !== t && this.markAsUnprocessed(), this[e] = t;\n }\n}\nclass Ai extends Sc {\n /**\n * Checks if a block is a texture block\n * @param block The block to check\n * @returns True if the block is a texture block\n */\n static _BlockIsTextureBlock(e) {\n return e.getClassName() === \"TextureBlock\" || e.getClassName() === \"ReflectionTextureBaseBlock\" || e.getClassName() === \"ReflectionTextureBlock\" || e.getClassName() === \"ReflectionBlock\" || e.getClassName() === \"RefractionBlock\" || e.getClassName() === \"CurrentScreenBlock\" || e.getClassName() === \"ParticleTextureBlock\" || e.getClassName() === \"ImageSourceBlock\" || e.getClassName() === \"TriPlanarBlock\" || e.getClassName() === \"BiPlanarBlock\" || e.getClassName() === \"PrePassTextureBlock\";\n }\n /** Get the inspector from bundle or global\n * @returns the global NME\n */\n _getGlobalNodeMaterialEditor() {\n if (typeof NODEEDITOR < \"u\")\n return NODEEDITOR;\n if (typeof BABYLON < \"u\" && typeof BABYLON.NodeEditor < \"u\")\n return BABYLON;\n }\n /** Get the active shader language */\n get shaderLanguage() {\n return this._options.shaderLanguage;\n }\n /** Gets or sets options to control the node material overall behavior */\n get options() {\n return this._options;\n }\n set options(e) {\n this._options = e;\n }\n /**\n * Gets the image processing configuration used either in this material.\n */\n get imageProcessingConfiguration() {\n return this._imageProcessingConfiguration;\n }\n /**\n * Sets the Default image processing configuration used either in the this material.\n *\n * If sets to null, the scene one is in use.\n */\n set imageProcessingConfiguration(e) {\n this._attachImageProcessingConfiguration(e), this._markAllSubMeshesAsTexturesDirty();\n }\n /**\n * Gets or sets the mode property\n */\n get mode() {\n return this._mode;\n }\n set mode(e) {\n this._mode = e;\n }\n /** Gets or sets the unique identifier used to identified the effect associated with the material */\n get buildId() {\n return this._buildId;\n }\n set buildId(e) {\n this._buildId = e;\n }\n /**\n * Create a new node based material\n * @param name defines the material name\n * @param scene defines the hosting scene\n * @param options defines creation option\n */\n constructor(e, t, i = {}) {\n if (super(e, t || Me.LastCreatedScene), this._buildId = Ai._BuildIdGenerator++, this._buildWasSuccessful = !1, this._cachedWorldViewMatrix = new O(), this._cachedWorldViewProjectionMatrix = new O(), this._optimizers = new Array(), this._animationFrame = -1, this.BJSNODEMATERIALEDITOR = this._getGlobalNodeMaterialEditor(), this.editorData = null, this.ignoreAlpha = !1, this.maxSimultaneousLights = 4, this.onBuildObservable = new G(), this._vertexOutputNodes = new Array(), this._fragmentOutputNodes = new Array(), this.attachedBlocks = [], this._mode = Cr.Material, this.forceAlphaBlending = !1, i && i.shaderLanguage === 1 && !this.getScene().getEngine().isWebGPU)\n throw new Error(\"WebGPU shader language is only supported with WebGPU engine\");\n this._options = {\n emitComments: !1,\n shaderLanguage: Ai.DefaultShaderLanguage,\n ...i\n }, this._attachImageProcessingConfiguration(null);\n }\n /**\n * Gets the current class name of the material e.g. \"NodeMaterial\"\n * @returns the class name\n */\n getClassName() {\n return \"NodeMaterial\";\n }\n /**\n * Attaches a new image processing configuration to the Standard Material.\n * @param configuration\n */\n _attachImageProcessingConfiguration(e) {\n e !== this._imageProcessingConfiguration && (this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), e ? this._imageProcessingConfiguration = e : this._imageProcessingConfiguration = this.getScene().imageProcessingConfiguration, this._imageProcessingConfiguration && (this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(() => {\n this._markAllSubMeshesAsImageProcessingDirty();\n })));\n }\n /**\n * Get a block by its name\n * @param name defines the name of the block to retrieve\n * @returns the required block or null if not found\n */\n getBlockByName(e) {\n let t = null;\n for (const i of this.attachedBlocks)\n if (i.name === e)\n if (!t)\n t = i;\n else\n return J.Warn(\"More than one block was found with the name `\" + e + \"`\"), t;\n return t;\n }\n /**\n * Get a block using a predicate\n * @param predicate defines the predicate used to find the good candidate\n * @returns the required block or null if not found\n */\n getBlockByPredicate(e) {\n for (const t of this.attachedBlocks)\n if (e(t))\n return t;\n return null;\n }\n /**\n * Get an input block using a predicate\n * @param predicate defines the predicate used to find the good candidate\n * @returns the required input block or null if not found\n */\n getInputBlockByPredicate(e) {\n for (const t of this.attachedBlocks)\n if (t.isInput && e(t))\n return t;\n return null;\n }\n /**\n * Gets the list of input blocks attached to this material\n * @returns an array of InputBlocks\n */\n getInputBlocks() {\n const e = [];\n for (const t of this.attachedBlocks)\n t.isInput && e.push(t);\n return e;\n }\n /**\n * Adds a new optimizer to the list of optimizers\n * @param optimizer defines the optimizers to add\n * @returns the current material\n */\n registerOptimizer(e) {\n if (!(this._optimizers.indexOf(e) > -1))\n return this._optimizers.push(e), this;\n }\n /**\n * Remove an optimizer from the list of optimizers\n * @param optimizer defines the optimizers to remove\n * @returns the current material\n */\n unregisterOptimizer(e) {\n const t = this._optimizers.indexOf(e);\n if (t !== -1)\n return this._optimizers.splice(t, 1), this;\n }\n /**\n * Add a new block to the list of output nodes\n * @param node defines the node to add\n * @returns the current material\n */\n addOutputNode(e) {\n if (e.target === null)\n throw \"This node is not meant to be an output node. You may want to explicitly set its target value.\";\n return e.target & B.Vertex && this._addVertexOutputNode(e), e.target & B.Fragment && this._addFragmentOutputNode(e), this;\n }\n /**\n * Remove a block from the list of root nodes\n * @param node defines the node to remove\n * @returns the current material\n */\n removeOutputNode(e) {\n return e.target === null ? this : (e.target & B.Vertex && this._removeVertexOutputNode(e), e.target & B.Fragment && this._removeFragmentOutputNode(e), this);\n }\n _addVertexOutputNode(e) {\n if (this._vertexOutputNodes.indexOf(e) === -1)\n return e.target = B.Vertex, this._vertexOutputNodes.push(e), this;\n }\n _removeVertexOutputNode(e) {\n const t = this._vertexOutputNodes.indexOf(e);\n if (t !== -1)\n return this._vertexOutputNodes.splice(t, 1), this;\n }\n _addFragmentOutputNode(e) {\n if (this._fragmentOutputNodes.indexOf(e) === -1)\n return e.target = B.Fragment, this._fragmentOutputNodes.push(e), this;\n }\n _removeFragmentOutputNode(e) {\n const t = this._fragmentOutputNodes.indexOf(e);\n if (t !== -1)\n return this._fragmentOutputNodes.splice(t, 1), this;\n }\n /**\n * Specifies if the material will require alpha blending\n * @returns a boolean specifying if alpha blending is needed\n */\n needAlphaBlending() {\n return this.ignoreAlpha ? !1 : this.forceAlphaBlending || this.alpha < 1 || this._sharedData && this._sharedData.hints.needAlphaBlending;\n }\n /**\n * Specifies if this material should be rendered in alpha test mode\n * @returns a boolean specifying if an alpha test is needed.\n */\n needAlphaTesting() {\n return this._sharedData && this._sharedData.hints.needAlphaTesting;\n }\n _processInitializeOnLink(e, t, i, s = !0) {\n (e.target === B.VertexAndFragment || t.target === B.Fragment && e.target === B.Vertex && e._preparationId !== this._buildId) && i.push(e), this._initializeBlock(e, t, i, s);\n }\n _initializeBlock(e, t, i, s = !0) {\n if (e.initialize(t), s && e.autoConfigure(this), e._preparationId = this._buildId, this.attachedBlocks.indexOf(e) === -1) {\n if (e.isUnique) {\n const r = e.getClassName();\n for (const n of this.attachedBlocks)\n if (n.getClassName() === r)\n throw `Cannot have multiple blocks of type ${r} in the same NodeMaterial`;\n }\n this.attachedBlocks.push(e);\n }\n for (const r of e.inputs) {\n r.associatedVariableName = \"\";\n const n = r.connectedPoint;\n if (n) {\n const o = n.ownerBlock;\n o !== e && this._processInitializeOnLink(o, t, i, s);\n }\n }\n if (e.isTeleportOut) {\n const r = e;\n r.entryPoint && this._processInitializeOnLink(r.entryPoint, t, i, s);\n }\n for (const r of e.outputs)\n r.associatedVariableName = \"\";\n }\n _resetDualBlocks(e, t) {\n e.target === B.VertexAndFragment && (e.buildId = t);\n for (const i of e.inputs) {\n const s = i.connectedPoint;\n if (s) {\n const r = s.ownerBlock;\n r !== e && this._resetDualBlocks(r, t);\n }\n }\n if (e.isTeleportOut) {\n const i = e;\n i.entryPoint && this._resetDualBlocks(i.entryPoint, t);\n }\n }\n /**\n * Remove a block from the current node material\n * @param block defines the block to remove\n */\n removeBlock(e) {\n const t = this.attachedBlocks.indexOf(e);\n t > -1 && this.attachedBlocks.splice(t, 1), e.isFinalMerger && this.removeOutputNode(e);\n }\n /**\n * Build the material and generates the inner effect\n * @param verbose defines if the build should log activity\n * @param updateBuildId defines if the internal build Id should be updated (default is true)\n * @param autoConfigure defines if the autoConfigure method should be called when initializing blocks (default is false)\n */\n build(e = !1, t = !0, i = !1) {\n !this._vertexCompilationState && !i && (i = !0), this._buildWasSuccessful = !1;\n const s = this.getScene().getEngine(), r = this._mode === Cr.Particle;\n if (this._vertexOutputNodes.length === 0 && !r)\n throw \"You must define at least one vertexOutputNode\";\n if (this._fragmentOutputNodes.length === 0)\n throw \"You must define at least one fragmentOutputNode\";\n this._vertexCompilationState = new TE(), this._vertexCompilationState.supportUniformBuffers = s.supportsUniformBuffers, this._vertexCompilationState.target = B.Vertex, this._fragmentCompilationState = new TE(), this._fragmentCompilationState.supportUniformBuffers = s.supportsUniformBuffers, this._fragmentCompilationState.target = B.Fragment, this._sharedData = new DV(), this._sharedData.nodeMaterial = this, this._sharedData.fragmentOutputNodes = this._fragmentOutputNodes, this._vertexCompilationState.sharedData = this._sharedData, this._fragmentCompilationState.sharedData = this._sharedData, this._sharedData.buildId = this._buildId, this._sharedData.emitComments = this._options.emitComments, this._sharedData.verbose = e, this._sharedData.scene = this.getScene(), this._sharedData.allowEmptyVertexProgram = r;\n const n = [], o = [];\n for (const c of this._vertexOutputNodes)\n n.push(c), this._initializeBlock(c, this._vertexCompilationState, o, i);\n for (const c of this._fragmentOutputNodes)\n o.push(c), this._initializeBlock(c, this._fragmentCompilationState, n, i);\n this.optimize();\n for (const c of n)\n c.build(this._vertexCompilationState, n);\n this._fragmentCompilationState.uniforms = this._vertexCompilationState.uniforms.slice(0), this._fragmentCompilationState._uniformDeclaration = this._vertexCompilationState._uniformDeclaration, this._fragmentCompilationState._constantDeclaration = this._vertexCompilationState._constantDeclaration, this._fragmentCompilationState._vertexState = this._vertexCompilationState;\n for (const c of o)\n this._resetDualBlocks(c, this._buildId - 1);\n for (const c of o)\n c.build(this._fragmentCompilationState, o);\n this._vertexCompilationState.finalize(this._vertexCompilationState), this._fragmentCompilationState.finalize(this._fragmentCompilationState), t && (this._buildId = Ai._BuildIdGenerator++), this._sharedData.emitErrors(), e && (L.Log(\"Vertex shader:\"), L.Log(this._vertexCompilationState.compilationString), L.Log(\"Fragment shader:\"), L.Log(this._fragmentCompilationState.compilationString)), this._buildWasSuccessful = !0, this.onBuildObservable.notifyObservers(this);\n const l = this.getScene().meshes;\n for (const c of l)\n if (c.subMeshes)\n for (const u of c.subMeshes) {\n if (u.getMaterial() !== this || !u.materialDefines)\n continue;\n const d = u.materialDefines;\n d.markAllAsDirty(), d.reset();\n }\n this.prePassTextureInputs.length && this.getScene().enablePrePassRenderer();\n const h = this.getScene().prePassRenderer;\n h && h.markAsDirty();\n }\n /**\n * Runs an otpimization phase to try to improve the shader code\n */\n optimize() {\n for (const e of this._optimizers)\n e.optimize(this._vertexOutputNodes, this._fragmentOutputNodes);\n }\n _prepareDefinesForAttributes(e, t) {\n const i = t.NORMAL, s = t.TANGENT, r = t.VERTEXCOLOR_NME;\n t.NORMAL = e.isVerticesDataPresent(R.NormalKind), t.TANGENT = e.isVerticesDataPresent(R.TangentKind);\n const n = e.useVertexColors && e.isVerticesDataPresent(R.ColorKind);\n t.VERTEXCOLOR_NME = n;\n let o = !1;\n for (let h = 1; h <= 6; ++h) {\n const c = t[\"UV\" + h];\n t[\"UV\" + h] = e.isVerticesDataPresent(`uv${h === 1 ? \"\" : h}`), o = o || t[\"UV\" + h] !== c;\n }\n const l = this.needAlphaBlendingForMesh(e) && this.getScene().useOrderIndependentTransparency;\n v_(this.getScene(), t, !l), (i !== t.NORMAL || s !== t.TANGENT || r !== t.VERTEXCOLOR_NME || o) && t.markAsAttributesDirty();\n }\n /**\n * Can this material render to prepass\n */\n get isPrePassCapable() {\n return !0;\n }\n /**\n * Outputs written to the prepass\n */\n get prePassTextureOutputs() {\n const e = this.getBlockByPredicate((i) => i.getClassName() === \"PrePassOutputBlock\"), t = [4];\n return !e || this.prePassTextureInputs.length || (e.viewDepth.isConnected && t.push(5), e.viewNormal.isConnected && t.push(6), e.worldPosition.isConnected && t.push(1)), t;\n }\n /**\n * Gets the list of prepass texture required\n */\n get prePassTextureInputs() {\n const e = this.getAllTextureBlocks().filter((i) => i.getClassName() === \"PrePassTextureBlock\"), t = [];\n for (const i of e)\n i.position.isConnected && !t.includes(1) && t.push(1), i.depth.isConnected && !t.includes(5) && t.push(5), i.normal.isConnected && !t.includes(6) && t.push(6);\n return t;\n }\n /**\n * Sets the required values to the prepass renderer.\n * @param prePassRenderer defines the prepass renderer to set\n * @returns true if the pre pass is needed\n */\n setPrePassRenderer(e) {\n const t = this.prePassTextureInputs.concat(this.prePassTextureOutputs);\n if (e && t.length > 1) {\n let i = e.getEffectConfiguration(\"nodeMaterial\");\n i || (i = e.addEffectConfiguration({\n enabled: !0,\n needsImageProcessing: !1,\n name: \"nodeMaterial\",\n texturesRequired: []\n }));\n for (const s of t)\n i.texturesRequired.includes(s) || i.texturesRequired.push(s);\n i.enabled = !0;\n }\n return t.length > 1;\n }\n /**\n * Create a post process from the material\n * @param camera The camera to apply the render pass to.\n * @param options The required width/height ratio to downsize to before computing the render pass. (Use 1.0 for full size)\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n * @param textureFormat Format of textures used when performing the post process. (default: TEXTUREFORMAT_RGBA)\n * @returns the post process created\n */\n createPostProcess(e, t = 1, i = 1, s, r, n = 0, o = 5) {\n return this.mode !== Cr.PostProcess ? (L.Log(\"Incompatible material mode\"), null) : this._createEffectForPostProcess(null, e, t, i, s, r, n, o);\n }\n /**\n * Create the post process effect from the material\n * @param postProcess The post process to create the effect for\n */\n createEffectForPostProcess(e) {\n this._createEffectForPostProcess(e);\n }\n _createEffectForPostProcess(e, t, i = 1, s = 1, r, n, o = 0, l = 5) {\n let h = this.name + this._buildId;\n const c = new rp(), u = new H(h + \"PostProcess\", this.getScene());\n let d = this._buildId;\n return this._processDefines(u, c), si.RegisterShader(h, this._fragmentCompilationState._builtCompilationString, this._vertexCompilationState._builtCompilationString, this.shaderLanguage), e ? e.updateEffect(c.toString(), this._fragmentCompilationState.uniforms, this._fragmentCompilationState.samplers, { maxSimultaneousLights: this.maxSimultaneousLights }, void 0, void 0, h, h) : e = new Be(this.name + \"PostProcess\", h, this._fragmentCompilationState.uniforms, this._fragmentCompilationState.samplers, i, t, s, r, n, c.toString(), o, h, { maxSimultaneousLights: this.maxSimultaneousLights }, !1, l, this.shaderLanguage), e.nodeMaterialSource = this, e.onApplyObservable.add((f) => {\n d !== this._buildId && (delete si.ShadersStore[h + \"VertexShader\"], delete si.ShadersStore[h + \"PixelShader\"], h = this.name + this._buildId, c.markAllAsDirty(), d = this._buildId), this._processDefines(u, c) && (si.RegisterShader(h, this._fragmentCompilationState._builtCompilationString, this._vertexCompilationState._builtCompilationString), Hh.SetImmediate(() => e.updateEffect(c.toString(), this._fragmentCompilationState.uniforms, this._fragmentCompilationState.samplers, { maxSimultaneousLights: this.maxSimultaneousLights }, void 0, void 0, h, h))), this._checkInternals(f);\n }), e;\n }\n /**\n * Create a new procedural texture based on this node material\n * @param size defines the size of the texture\n * @param scene defines the hosting scene\n * @returns the new procedural texture attached to this node material\n */\n createProceduralTexture(e, t) {\n if (this.mode !== Cr.ProceduralTexture)\n return L.Log(\"Incompatible material mode\"), null;\n let i = this.name + this._buildId;\n const s = new Fa(i, e, null, t), r = new H(i + \"Procedural\", this.getScene());\n r.reservedDataStore = {\n hidden: !0\n };\n const n = new rp(), o = this._processDefines(r, n);\n si.RegisterShader(i, this._fragmentCompilationState._builtCompilationString, this._vertexCompilationState._builtCompilationString, this.shaderLanguage);\n let l = this.getScene().getEngine().createEffect({\n vertexElement: i,\n fragmentElement: i\n }, [R.PositionKind], this._fragmentCompilationState.uniforms, this._fragmentCompilationState.samplers, n.toString(), o == null ? void 0 : o.fallbacks, void 0, void 0, void 0, this.shaderLanguage);\n s.nodeMaterialSource = this, s._setEffect(l);\n let h = this._buildId;\n return s.onBeforeGenerationObservable.add(() => {\n h !== this._buildId && (delete si.ShadersStore[i + \"VertexShader\"], delete si.ShadersStore[i + \"PixelShader\"], i = this.name + this._buildId, n.markAllAsDirty(), h = this._buildId);\n const c = this._processDefines(r, n);\n c && (si.RegisterShader(i, this._fragmentCompilationState._builtCompilationString, this._vertexCompilationState._builtCompilationString, this.shaderLanguage), Hh.SetImmediate(() => {\n l = this.getScene().getEngine().createEffect({\n vertexElement: i,\n fragmentElement: i\n }, [R.PositionKind], this._fragmentCompilationState.uniforms, this._fragmentCompilationState.samplers, n.toString(), c == null ? void 0 : c.fallbacks, void 0), s._setEffect(l);\n })), this._checkInternals(l);\n }), s;\n }\n _createEffectForParticles(e, t, i, s, r, n, o, l = \"\") {\n let h = this.name + this._buildId + \"_\" + t;\n n || (n = new rp()), o || (o = this.getScene().getMeshByName(this.name + \"Particle\"), o || (o = new H(this.name + \"Particle\", this.getScene()), o.reservedDataStore = {\n hidden: !0\n }));\n let c = this._buildId;\n const u = [];\n let d = l;\n if (!r) {\n const f = this._processDefines(o, n);\n si.RegisterShader(h, this._fragmentCompilationState._builtCompilationString, void 0, this.shaderLanguage), e.fillDefines(u, t, !1), d = u.join(`\n`), r = this.getScene().getEngine().createEffectForParticles(h, this._fragmentCompilationState.uniforms, this._fragmentCompilationState.samplers, n.toString() + `\n` + d, f == null ? void 0 : f.fallbacks, i, s, e, this.shaderLanguage), e.setCustomEffect(r, t);\n }\n r.onBindObservable.add((f) => {\n c !== this._buildId && (delete si.ShadersStore[h + \"PixelShader\"], h = this.name + this._buildId + \"_\" + t, n.markAllAsDirty(), c = this._buildId), u.length = 0, e.fillDefines(u, t, !1);\n const p = u.join(`\n`);\n p !== d && (n.markAllAsDirty(), d = p);\n const _ = this._processDefines(o, n);\n if (_) {\n si.RegisterShader(h, this._fragmentCompilationState._builtCompilationString, void 0, this.shaderLanguage), f = this.getScene().getEngine().createEffectForParticles(h, this._fragmentCompilationState.uniforms, this._fragmentCompilationState.samplers, n.toString() + `\n` + d, _ == null ? void 0 : _.fallbacks, i, s, e), e.setCustomEffect(f, t), this._createEffectForParticles(e, t, i, s, f, n, o, l);\n return;\n }\n this._checkInternals(f);\n });\n }\n _checkInternals(e) {\n if (this._sharedData.animatedInputs) {\n const t = this.getScene(), i = t.getFrameId();\n if (this._animationFrame !== i) {\n for (const s of this._sharedData.animatedInputs)\n s.animate(t);\n this._animationFrame = i;\n }\n }\n for (const t of this._sharedData.bindableBlocks)\n t.bind(e, this);\n for (const t of this._sharedData.inputBlocks)\n t._transmit(e, this.getScene(), this);\n }\n /**\n * Create the effect to be used as the custom effect for a particle system\n * @param particleSystem Particle system to create the effect for\n * @param onCompiled defines a function to call when the effect creation is successful\n * @param onError defines a function to call when the effect creation has failed\n */\n createEffectForParticles(e, t, i) {\n if (this.mode !== Cr.Particle) {\n L.Log(\"Incompatible material mode\");\n return;\n }\n this._createEffectForParticles(e, vs.BLENDMODE_ONEONE, t, i), this._createEffectForParticles(e, vs.BLENDMODE_MULTIPLY, t, i);\n }\n /**\n * Use this material as the shadow depth wrapper of a target material\n * @param targetMaterial defines the target material\n */\n createAsShadowDepthWrapper(e) {\n if (this.mode !== Cr.Material) {\n L.Log(\"Incompatible material mode\");\n return;\n }\n e.shadowDepthWrapper = new BABYLON.ShadowDepthWrapper(this, this.getScene());\n }\n _processDefines(e, t, i = !1, s) {\n let r = null;\n const n = this.getScene();\n if (zx(n, t) && t.markAsMiscDirty(), this._sharedData.blocksWithDefines.forEach((o) => {\n o.initializeDefines(e, this, t, i);\n }), this._sharedData.blocksWithDefines.forEach((o) => {\n o.prepareDefines(e, this, t, i, s);\n }), t.isDirty) {\n const o = t._areLightsDisposed;\n t.markAsProcessed(), this._vertexCompilationState.compilationString = this._vertexCompilationState._builtCompilationString, this._fragmentCompilationState.compilationString = this._fragmentCompilationState._builtCompilationString, this._sharedData.repeatableContentBlocks.forEach((d) => {\n d.replaceRepeatableContent(this._vertexCompilationState, this._fragmentCompilationState, e, t);\n });\n const l = [];\n this._sharedData.dynamicUniformBlocks.forEach((d) => {\n d.updateUniformsAndSamples(this._vertexCompilationState, this, t, l);\n });\n const h = this._vertexCompilationState.uniforms;\n this._fragmentCompilationState.uniforms.forEach((d) => {\n h.indexOf(d) === -1 && h.push(d);\n });\n const c = this._vertexCompilationState.samplers;\n this._fragmentCompilationState.samplers.forEach((d) => {\n c.indexOf(d) === -1 && c.push(d);\n });\n const u = new Vl();\n this._sharedData.blocksWithFallbacks.forEach((d) => {\n d.provideFallbacks(e, u);\n }), r = {\n lightDisposed: o,\n uniformBuffers: l,\n mergedUniforms: h,\n mergedSamplers: c,\n fallbacks: u\n };\n }\n return r;\n }\n /**\n * Get if the submesh is ready to be used and all its information available.\n * Child classes can use it to update shaders\n * @param mesh defines the mesh to check\n * @param subMesh defines which submesh to check\n * @param useInstances specifies that instances should be used\n * @returns a boolean indicating that the submesh is ready or not\n */\n isReadyForSubMesh(e, t, i = !1) {\n if (!this._buildWasSuccessful)\n return !1;\n const s = this.getScene();\n if (this._sharedData.animatedInputs) {\n const h = s.getFrameId();\n if (this._animationFrame !== h) {\n for (const c of this._sharedData.animatedInputs)\n c.animate(s);\n this._animationFrame = h;\n }\n }\n const r = t._drawWrapper;\n if (r.effect && this.isFrozen && r._wasPreviouslyReady && r._wasPreviouslyUsingInstances === i)\n return !0;\n t.materialDefines || (t.materialDefines = new rp());\n const n = t.materialDefines;\n if (this._isReadyForSubMesh(t))\n return !0;\n const o = s.getEngine();\n if (this._prepareDefinesForAttributes(e, n), this._sharedData.blockingBlocks.some((h) => !h.isReady(e, this, n, i)))\n return !1;\n const l = this._processDefines(e, n, i, t);\n if (l) {\n const h = t.effect, c = n.toString();\n let u = o.createEffect({\n vertex: \"nodeMaterial\" + this._buildId,\n fragment: \"nodeMaterial\" + this._buildId,\n vertexSource: this._vertexCompilationState.compilationString,\n fragmentSource: this._fragmentCompilationState.compilationString\n }, {\n attributes: this._vertexCompilationState.attributes,\n uniformsNames: l.mergedUniforms,\n uniformBuffersNames: l.uniformBuffers,\n samplers: l.mergedSamplers,\n defines: c,\n fallbacks: l.fallbacks,\n onCompiled: this.onCompiled,\n onError: this.onError,\n multiTarget: n.PREPASS,\n indexParameters: { maxSimultaneousLights: this.maxSimultaneousLights, maxSimultaneousMorphTargets: n.NUM_MORPH_INFLUENCERS },\n shaderLanguage: this.shaderLanguage\n }, o);\n if (u)\n if (this._onEffectCreatedObservable && (Jm.effect = u, Jm.subMesh = t, this._onEffectCreatedObservable.notifyObservers(Jm)), this.allowShaderHotSwapping && h && !u.isReady()) {\n if (u = h, n.markAsUnprocessed(), l.lightDisposed)\n return n._areLightsDisposed = !0, !1;\n } else\n s.resetCachedMaterial(), t.setEffect(u, n, this._materialContext);\n }\n return !t.effect || !t.effect.isReady() ? !1 : (n._renderId = s.getRenderId(), r._wasPreviouslyReady = !0, r._wasPreviouslyUsingInstances = i, this._checkScenePerformancePriority(), !0);\n }\n /**\n * Get a string representing the shaders built by the current node graph\n */\n get compiledShaders() {\n return `// Vertex shader\n${this._vertexCompilationState.compilationString}\n\n// Fragment shader\n${this._fragmentCompilationState.compilationString}`;\n }\n /**\n * Binds the world matrix to the material\n * @param world defines the world transformation matrix\n */\n bindOnlyWorldMatrix(e) {\n const t = this.getScene();\n if (!this._activeEffect)\n return;\n const i = this._sharedData.hints;\n i.needWorldViewMatrix && e.multiplyToRef(t.getViewMatrix(), this._cachedWorldViewMatrix), i.needWorldViewProjectionMatrix && e.multiplyToRef(t.getTransformMatrix(), this._cachedWorldViewProjectionMatrix);\n for (const s of this._sharedData.inputBlocks)\n s._transmitWorld(this._activeEffect, e, this._cachedWorldViewMatrix, this._cachedWorldViewProjectionMatrix);\n }\n /**\n * Binds the submesh to this material by preparing the effect and shader to draw\n * @param world defines the world transformation matrix\n * @param mesh defines the mesh containing the submesh\n * @param subMesh defines the submesh to bind the material to\n */\n bindForSubMesh(e, t, i) {\n const s = this.getScene(), r = i.effect;\n if (!r)\n return;\n this._activeEffect = r, this.bindOnlyWorldMatrix(e);\n const n = this._mustRebind(s, r, i, t.visibility), o = this._sharedData;\n if (n) {\n for (const l of o.bindableBlocks)\n l.bind(r, this, t, i);\n for (const l of o.forcedBindableBlocks)\n l.bind(r, this, t, i);\n for (const l of o.inputBlocks)\n l._transmit(r, s, this);\n } else if (!this.isFrozen)\n for (const l of o.forcedBindableBlocks)\n l.bind(r, this, t, i);\n this._afterBind(t, this._activeEffect, i);\n }\n /**\n * Gets the active textures from the material\n * @returns an array of textures\n */\n getActiveTextures() {\n const e = super.getActiveTextures();\n return this._sharedData && e.push(...this._sharedData.textureBlocks.filter((t) => t.texture).map((t) => t.texture)), e;\n }\n /**\n * Gets the list of texture blocks\n * Note that this method will only return blocks that are reachable from the final block(s) and only after the material has been built!\n * @returns an array of texture blocks\n */\n getTextureBlocks() {\n return this._sharedData ? this._sharedData.textureBlocks : [];\n }\n /**\n * Gets the list of all texture blocks\n * Note that this method will scan all attachedBlocks and return blocks that are texture blocks\n * @returns\n */\n getAllTextureBlocks() {\n const e = [];\n for (const t of this.attachedBlocks)\n Ai._BlockIsTextureBlock(t) && e.push(t);\n return e;\n }\n /**\n * Specifies if the material uses a texture\n * @param texture defines the texture to check against the material\n * @returns a boolean specifying if the material uses the texture\n */\n hasTexture(e) {\n if (super.hasTexture(e))\n return !0;\n if (!this._sharedData)\n return !1;\n for (const t of this._sharedData.textureBlocks)\n if (t.texture === e)\n return !0;\n return !1;\n }\n /**\n * Disposes the material\n * @param forceDisposeEffect specifies if effects should be forcefully disposed\n * @param forceDisposeTextures specifies if textures should be forcefully disposed\n * @param notBoundToMesh specifies if the material that is being disposed is known to be not bound to any mesh\n */\n dispose(e, t, i) {\n if (t)\n for (const s of this.getTextureBlocks().filter((r) => r.texture).map((r) => r.texture))\n s.dispose();\n for (const s of this.attachedBlocks)\n s.dispose();\n this.attachedBlocks.length = 0, this._sharedData = null, this._vertexCompilationState = null, this._fragmentCompilationState = null, this.onBuildObservable.clear(), this._imageProcessingObserver && (this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), this._imageProcessingObserver = null), super.dispose(e, t, i);\n }\n /** Creates the node editor window.\n * @param additionalConfig Define the configuration of the editor\n */\n _createNodeEditor(e) {\n const t = {\n nodeMaterial: this,\n ...e\n };\n this.BJSNODEMATERIALEDITOR.NodeEditor.Show(t);\n }\n /**\n * Launch the node material editor\n * @param config Define the configuration of the editor\n * @returns a promise fulfilled when the node editor is visible\n */\n edit(e) {\n return new Promise((t) => {\n if (this.BJSNODEMATERIALEDITOR = this.BJSNODEMATERIALEDITOR || this._getGlobalNodeMaterialEditor(), typeof this.BJSNODEMATERIALEDITOR > \"u\") {\n const i = e && e.editorURL ? e.editorURL : Ai.EditorURL;\n J.LoadBabylonScript(i, () => {\n this.BJSNODEMATERIALEDITOR = this.BJSNODEMATERIALEDITOR || this._getGlobalNodeMaterialEditor(), this._createNodeEditor(e == null ? void 0 : e.nodeEditorConfig), t();\n });\n } else\n this._createNodeEditor(e == null ? void 0 : e.nodeEditorConfig), t();\n });\n }\n /**\n * Clear the current material\n */\n clear() {\n this._vertexOutputNodes.length = 0, this._fragmentOutputNodes.length = 0, this.attachedBlocks.length = 0;\n }\n /**\n * Clear the current material and set it to a default state\n */\n setToDefault() {\n this.clear(), this.editorData = null;\n const e = new ot(\"Position\");\n e.setAsAttribute(\"position\");\n const t = new ot(\"World\");\n t.setAsSystemValue(ct.World);\n const i = new Hp(\"WorldPos\");\n e.connectTo(i), t.connectTo(i);\n const s = new ot(\"ViewProjection\");\n s.setAsSystemValue(ct.ViewProjection);\n const r = new Hp(\"WorldPos * ViewProjectionTransform\");\n i.connectTo(r), s.connectTo(r);\n const n = new nu(\"VertexOutput\");\n r.connectTo(n);\n const o = new ot(\"color\");\n o.value = new Ce(0.8, 0.8, 0.8, 1);\n const l = new Qa(\"FragmentOutput\");\n o.connectTo(l), this.addOutputNode(n), this.addOutputNode(l), this._mode = Cr.Material;\n }\n /**\n * Clear the current material and set it to a default state for post process\n */\n setToDefaultPostProcess() {\n this.clear(), this.editorData = null;\n const e = new ot(\"Position\");\n e.setAsAttribute(\"position2d\");\n const t = new ot(\"Constant1\");\n t.isConstant = !0, t.value = 1;\n const i = new au(\"Position3D\");\n e.connectTo(i), t.connectTo(i, { input: \"w\" });\n const s = new nu(\"VertexOutput\");\n i.connectTo(s);\n const r = new ot(\"Scale\");\n r.visibleInInspector = !0, r.value = new Q(1, 1);\n const n = new Af(\"uv0\");\n e.connectTo(n);\n const o = new Xp(\"UV scale\");\n n.connectTo(o), r.connectTo(o);\n const l = new Sv(\"CurrentScreen\");\n o.connectTo(l), l.texture = new X(\"https://assets.babylonjs.com/nme/currentScreenPostProcess.png\", this.getScene());\n const h = new Qa(\"FragmentOutput\");\n l.connectTo(h, { output: \"rgba\" }), this.addOutputNode(s), this.addOutputNode(h), this._mode = Cr.PostProcess;\n }\n /**\n * Clear the current material and set it to a default state for procedural texture\n */\n setToDefaultProceduralTexture() {\n this.clear(), this.editorData = null;\n const e = new ot(\"Position\");\n e.setAsAttribute(\"position2d\");\n const t = new ot(\"Constant1\");\n t.isConstant = !0, t.value = 1;\n const i = new au(\"Position3D\");\n e.connectTo(i), t.connectTo(i, { input: \"w\" });\n const s = new nu(\"VertexOutput\");\n i.connectTo(s);\n const r = new ot(\"Time\");\n r.value = 0, r.min = 0, r.max = 0, r.isBoolean = !1, r.matrixMode = 0, r.animationType = xa.Time, r.isConstant = !1;\n const n = new ot(\"Color3\");\n n.value = new re(1, 1, 1), n.isConstant = !1;\n const o = new Qa(\"FragmentOutput\"), l = new au(\"VectorMerger\");\n l.visibleInInspector = !1;\n const h = new Av(\"Cos\");\n h.operation = rs.Cos, e.connectTo(l), r.output.connectTo(h.input), h.output.connectTo(l.z), l.xyzOut.connectTo(o.rgb), this.addOutputNode(s), this.addOutputNode(o), this._mode = Cr.ProceduralTexture;\n }\n /**\n * Clear the current material and set it to a default state for particle\n */\n setToDefaultParticle() {\n this.clear(), this.editorData = null;\n const e = new ot(\"uv\");\n e.setAsAttribute(\"particle_uv\");\n const t = new bv(\"ParticleTexture\");\n e.connectTo(t);\n const i = new ot(\"Color\");\n i.setAsAttribute(\"particle_color\");\n const s = new Xp(\"Texture * Color\");\n t.connectTo(s), i.connectTo(s);\n const r = new Ev(\"ParticleRampGradient\");\n s.connectTo(r);\n const n = new Cv(\"ColorSplitter\");\n i.connectTo(n);\n const o = new yv(\"ParticleBlendMultiply\");\n r.connectTo(o), t.connectTo(o, { output: \"a\" }), n.connectTo(o, { output: \"a\" });\n const l = new Qa(\"FragmentOutput\");\n o.connectTo(l), this.addOutputNode(l), this._mode = Cr.Particle;\n }\n /**\n * Loads the current Node Material from a url pointing to a file save by the Node Material Editor\n * @deprecated Please use NodeMaterial.ParseFromFileAsync instead\n * @param url defines the url to load from\n * @param rootUrl defines the root URL for nested url in the node material\n * @returns a promise that will fulfil when the material is fully loaded\n */\n async loadAsync(e, t = \"\") {\n return Ai.ParseFromFileAsync(\"\", e, this.getScene(), t, !0, this);\n }\n _gatherBlocks(e, t) {\n if (t.indexOf(e) === -1) {\n t.push(e);\n for (const i of e.inputs) {\n const s = i.connectedPoint;\n if (s) {\n const r = s.ownerBlock;\n r !== e && this._gatherBlocks(r, t);\n }\n }\n if (e.isTeleportOut) {\n const i = e;\n i.entryPoint && this._gatherBlocks(i.entryPoint, t);\n }\n }\n }\n /**\n * Generate a string containing the code declaration required to create an equivalent of this material\n * @returns a string\n */\n generateCode() {\n let e = [];\n const t = [], i = [\"const\", \"var\", \"let\"];\n for (const n of this._vertexOutputNodes)\n this._gatherBlocks(n, t);\n const s = [];\n for (const n of this._fragmentOutputNodes)\n this._gatherBlocks(n, s);\n let r = `var nodeMaterial = new BABYLON.NodeMaterial(\"${this.name || \"node material\"}\");\n`;\n r += `nodeMaterial.mode = BABYLON.NodeMaterialModes.${Cr[this.mode]};\n`;\n for (const n of t)\n n.isInput && e.indexOf(n) === -1 && (r += n._dumpCode(i, e));\n for (const n of s)\n n.isInput && e.indexOf(n) === -1 && (r += n._dumpCode(i, e));\n e = [], r += `\n// Connections\n`;\n for (const n of this._vertexOutputNodes)\n r += n._dumpCodeForOutputConnections(e);\n for (const n of this._fragmentOutputNodes)\n r += n._dumpCodeForOutputConnections(e);\n r += `\n// Output nodes\n`;\n for (const n of this._vertexOutputNodes)\n r += `nodeMaterial.addOutputNode(${n._codeVariableName});\n`;\n for (const n of this._fragmentOutputNodes)\n r += `nodeMaterial.addOutputNode(${n._codeVariableName});\n`;\n return r += `nodeMaterial.build();\n`, r;\n }\n /**\n * Serializes this material in a JSON representation\n * @param selectedBlocks defines an optional list of blocks to serialize\n * @returns the serialized material object\n */\n serialize(e) {\n const t = e ? {} : Ae.Serialize(this);\n t.editorData = JSON.parse(JSON.stringify(this.editorData));\n let i = [];\n if (e)\n i = e;\n else {\n t.customType = \"BABYLON.NodeMaterial\", t.outputNodes = [];\n for (const s of this._vertexOutputNodes)\n this._gatherBlocks(s, i), t.outputNodes.push(s.uniqueId);\n for (const s of this._fragmentOutputNodes)\n this._gatherBlocks(s, i), t.outputNodes.indexOf(s.uniqueId) === -1 && t.outputNodes.push(s.uniqueId);\n }\n t.blocks = [];\n for (const s of i)\n t.blocks.push(s.serialize());\n if (!e)\n for (const s of this.attachedBlocks)\n i.indexOf(s) === -1 && t.blocks.push(s.serialize());\n return t;\n }\n _restoreConnections(e, t, i) {\n for (const s of e.outputs)\n for (const r of t.blocks) {\n const n = i[r.id];\n if (n) {\n for (const o of r.inputs)\n if (i[o.targetBlockId] === e && o.targetConnectionName === s.name) {\n const l = n.getInputByName(o.inputName);\n if (!l || l.isConnected)\n continue;\n s.connectTo(l, !0), this._restoreConnections(n, t, i);\n continue;\n }\n }\n }\n }\n /**\n * Clear the current graph and load a new one from a serialization object\n * @param source defines the JSON representation of the material\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @param merge defines whether or not the source must be merged or replace the current content\n * @param urlRewriter defines a function used to rewrite urls\n */\n parseSerializedObject(e, t = \"\", i = !1, s) {\n i || this.clear();\n const r = {};\n for (const n of e.blocks) {\n const o = Oi(n.customType);\n if (o) {\n const l = new o();\n l._deserialize(n, this.getScene(), t, s), r[n.id] = l, this.attachedBlocks.push(l);\n }\n }\n for (const n of this.attachedBlocks)\n if (n.isTeleportOut) {\n const o = n, l = o._tempEntryPointUniqueId;\n l && r[l].attachToEndpoint(o);\n }\n for (let n = 0; n < e.blocks.length; n++) {\n const o = e.blocks[n], l = r[o.id];\n l && (l.inputs.length && !i || this._restoreConnections(l, e, r));\n }\n if (e.outputNodes)\n for (const n of e.outputNodes)\n this.addOutputNode(r[n]);\n if (e.locations || e.editorData && e.editorData.locations) {\n const n = e.locations || e.editorData.locations;\n for (const l of n)\n r[l.blockId] && (l.blockId = r[l.blockId].uniqueId);\n i && this.editorData && this.editorData.locations && n.concat(this.editorData.locations), e.locations ? this.editorData = {\n locations: n\n } : (this.editorData = e.editorData, this.editorData.locations = n);\n const o = [];\n for (const l in r)\n o[l] = r[l].uniqueId;\n this.editorData.map = o;\n }\n this.comment = e.comment, e.forceAlphaBlending !== void 0 && (this.forceAlphaBlending = e.forceAlphaBlending), e.alphaMode !== void 0 && (this.alphaMode = e.alphaMode), i || (this._mode = e.mode ?? Cr.Material);\n }\n /**\n * Clear the current graph and load a new one from a serialization object\n * @param source defines the JSON representation of the material\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @param merge defines whether or not the source must be merged or replace the current content\n * @deprecated Please use the parseSerializedObject method instead\n */\n loadFromSerialization(e, t = \"\", i = !1) {\n this.parseSerializedObject(e, t, i);\n }\n /**\n * Makes a duplicate of the current material.\n * @param name defines the name to use for the new material\n * @param shareEffect defines if the clone material should share the same effect (default is false)\n * @returns the cloned material\n */\n clone(e, t = !1) {\n const i = this.serialize(), s = Ae.Clone(() => new Ai(e, this.getScene(), this.options), this);\n return s.id = e, s.name = e, s.parseSerializedObject(i), s._buildId = this._buildId, s.build(!1, !t), s;\n }\n /**\n * Awaits for all the material textures to be ready before resolving the returned promise.\n * @returns A promise that resolves when the textures are ready.\n */\n whenTexturesReadyAsync() {\n const e = [];\n return this.getActiveTextures().forEach((t) => {\n const i = t.getInternalTexture();\n i && !i.isReady && e.push(new Promise((s, r) => {\n i.onLoadedObservable.addOnce(() => {\n s();\n }), i.onErrorObservable.addOnce((n) => {\n r(n);\n });\n }));\n }), Promise.all(e);\n }\n /**\n * Creates a node material from parsed material data\n * @param source defines the JSON representation of the material\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @param shaderLanguage defines the language to use (GLSL by default)\n * @returns a new node material\n */\n static Parse(e, t, i = \"\", s = 0) {\n const r = Ae.Parse(() => new Ai(e.name, t, { shaderLanguage: s }), e, t, i);\n return r.parseSerializedObject(e, i), r.build(), r;\n }\n /**\n * Creates a node material from a snippet saved in a remote file\n * @param name defines the name of the material to create\n * @param url defines the url to load from\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL for nested url in the node material\n * @param skipBuild defines whether to build the node material\n * @param targetMaterial defines a material to use instead of creating a new one\n * @param urlRewriter defines a function used to rewrite urls\n * @returns a promise that will resolve to the new node material\n */\n static async ParseFromFileAsync(e, t, i, s = \"\", r = !1, n, o) {\n const l = n ?? new Ai(e, i), h = await i._loadFileAsync(t), c = JSON.parse(h);\n return l.parseSerializedObject(c, s, void 0, o), r || l.build(), l;\n }\n /**\n * Creates a node material from a snippet saved by the node material editor\n * @param snippetId defines the snippet to load\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @param nodeMaterial defines a node material to update (instead of creating a new one)\n * @param skipBuild defines whether to build the node material\n * @param waitForTextureReadyness defines whether to wait for texture readiness resolving the promise (default: false)\n * @param urlRewriter defines a function used to rewrite urls\n * @returns a promise that will resolve to the new node material\n */\n static ParseFromSnippetAsync(e, t = Me.LastCreatedScene, i = \"\", s, r = !1, n = !1, o) {\n return e === \"_BLANK\" ? Promise.resolve(Ai.CreateDefault(\"blank\", t)) : new Promise((l, h) => {\n const c = new Di();\n c.addEventListener(\"readystatechange\", () => {\n if (c.readyState == 4)\n if (c.status == 200) {\n const u = JSON.parse(JSON.parse(c.responseText).jsonPayload), d = JSON.parse(u.nodeMaterial);\n s || (s = Ae.Parse(() => new Ai(e, t), d, t, i), s.uniqueId = t.getUniqueId()), s.parseSerializedObject(d, void 0, void 0, o), s.snippetId = e, s.sideOrientation = null;\n try {\n r || s.build();\n } catch (f) {\n h(f);\n }\n n ? s.whenTexturesReadyAsync().then(() => {\n l(s);\n }).catch((f) => {\n h(f);\n }) : l(s);\n } else\n h(\"Unable to load the snippet \" + e);\n }), c.open(\"GET\", this.SnippetUrl + \"/\" + e.replace(/#/g, \"/\")), c.send();\n });\n }\n /**\n * Creates a new node material set to default basic configuration\n * @param name defines the name of the material\n * @param scene defines the hosting scene\n * @returns a new NodeMaterial\n */\n static CreateDefault(e, t) {\n const i = new Ai(e, t);\n return i.setToDefault(), i.build(), i;\n }\n}\nAi._BuildIdGenerator = 0;\nAi.EditorURL = `${J._DefaultCdnUrl}/v${we.Version}/nodeEditor/babylon.nodeEditor.js`;\nAi.SnippetUrl = \"https://snippet.babylonjs.com\";\nAi.IgnoreTexturesAtLoadTime = !1;\nAi.DefaultShaderLanguage = 0;\ny([\n I()\n], Ai.prototype, \"ignoreAlpha\", void 0);\ny([\n I()\n], Ai.prototype, \"maxSimultaneousLights\", void 0);\ny([\n I(\"mode\")\n], Ai.prototype, \"_mode\", void 0);\ny([\n I(\"comment\")\n], Ai.prototype, \"comment\", void 0);\ny([\n I()\n], Ai.prototype, \"forceAlphaBlending\", void 0);\nU(\"BABYLON.NodeMaterial\", Ai);\nor.prototype._projectOnTrianglesToRef = function(a, e, t, i, s, r) {\n const n = w.Vector3[0], o = w.Vector3[1];\n let l = 1 / 0;\n for (let h = this.indexStart; h < this.indexStart + this.indexCount - (3 - i); h += i) {\n const c = t[h], u = t[h + 1], d = t[h + 2];\n if (s && d === 4294967295) {\n h += 2;\n continue;\n }\n const f = e[c], p = e[u], _ = e[d];\n if (!f || !p || !_)\n continue;\n const m = g.ProjectOnTriangleToRef(a, f, p, _, o);\n m < l && (n.copyFrom(o), l = m);\n }\n return r.copyFrom(n), l;\n};\nor.prototype._projectOnUnIndexedTrianglesToRef = function(a, e, t, i) {\n const s = w.Vector3[0], r = w.Vector3[1];\n let n = 1 / 0;\n for (let o = this.verticesStart; o < this.verticesStart + this.verticesCount; o += 3) {\n const l = e[o], h = e[o + 1], c = e[o + 2], u = g.ProjectOnTriangleToRef(a, l, h, c, r);\n u < n && (s.copyFrom(r), n = u);\n }\n return i.copyFrom(s), n;\n};\nor.prototype.projectToRef = function(a, e, t, i) {\n const s = this.getMaterial();\n if (!s)\n return -1;\n let r = 3, n = !1;\n switch (s.fillMode) {\n case 3:\n case 5:\n case 6:\n case 8:\n return -1;\n case 7:\n r = 1, n = !0;\n break;\n }\n return s.fillMode === 4 ? -1 : !t.length && this._mesh._unIndexed ? this._projectOnUnIndexedTrianglesToRef(a, e, t, i) : this._projectOnTrianglesToRef(a, e, t, r, n, i);\n};\nvar Qr;\n(function(a) {\n a[a.DEHYDRATED = 0] = \"DEHYDRATED\", a[a.HOVER = 1] = \"HOVER\", a[a.TOUCH = 2] = \"TOUCH\";\n})(Qr || (Qr = {}));\nvar Fg;\n(function(a) {\n a[a.DISABLED = 0] = \"DISABLED\", a[a.CENTERED_ON_CONTROLLER = 1] = \"CENTERED_ON_CONTROLLER\", a[a.CENTERED_IN_FRONT = 2] = \"CENTERED_IN_FRONT\";\n})(Fg || (Fg = {}));\nclass ia extends Is {\n /**\n * constructs a new background remover module\n * @param _xrSessionManager the session manager for this module\n * @param _options read-only options to be used in this module\n */\n constructor(e, t) {\n super(e), this._options = t, this._tmpRay = new nt(new g(), new g()), this._attachController = (i) => {\n if (this._controllers[i.uniqueId])\n return;\n const { touchCollisionMesh: s, touchCollisionMeshFunction: r, hydrateCollisionMeshFunction: n } = this._generateNewTouchPointMesh(), o = this._generateVisualCue();\n switch (this._controllers[i.uniqueId] = {\n xrController: i,\n meshUnderPointer: null,\n nearInteractionTargetMesh: null,\n pick: null,\n stalePick: null,\n touchCollisionMesh: s,\n touchCollisionMeshFunction: r,\n hydrateCollisionMeshFunction: n,\n currentAnimationState: Qr.DEHYDRATED,\n grabRay: new nt(new g(), new g()),\n hoverInteraction: !1,\n nearInteraction: !1,\n grabInteraction: !1,\n downTriggered: !1,\n id: ia._IdCounter++,\n pickedPointVisualCue: o\n }, this._controllers[i.uniqueId]._worldScaleObserver = this._controllers[i.uniqueId]._worldScaleObserver || this._xrSessionManager.onWorldScaleFactorChangedObservable.add((l) => {\n if (l.newScaleFactor !== l.previousScaleFactor) {\n this._controllers[i.uniqueId].touchCollisionMesh.dispose(), this._controllers[i.uniqueId].pickedPointVisualCue.dispose();\n const { touchCollisionMesh: h, touchCollisionMeshFunction: c, hydrateCollisionMeshFunction: u } = this._generateNewTouchPointMesh();\n this._controllers[i.uniqueId].touchCollisionMesh = h, this._controllers[i.uniqueId].touchCollisionMeshFunction = c, this._controllers[i.uniqueId].hydrateCollisionMeshFunction = u, this._controllers[i.uniqueId].pickedPointVisualCue = this._generateVisualCue();\n }\n }), this._attachedController ? !this._options.enableNearInteractionOnAllControllers && this._options.preferredHandedness && i.inputSource.handedness === this._options.preferredHandedness && (this._attachedController = i.uniqueId) : this._options.enableNearInteractionOnAllControllers || (this._attachedController = i.uniqueId), i.inputSource.targetRayMode) {\n case \"tracked-pointer\":\n return this._attachNearInteractionMode(i);\n case \"gaze\":\n return null;\n case \"screen\":\n return null;\n }\n }, this._controllers = {}, this._farInteractionFeature = null, this.selectionMeshDefaultColor = new re(0.8, 0.8, 0.8), this.selectionMeshPickedColor = new re(0.3, 0.3, 1), this._hoverRadius = 0.1, this._pickRadius = 0.02, this._controllerPickRadius = 0.03, this._nearGrabLengthScale = 5, this._scene = this._xrSessionManager.scene, this._options.nearInteractionControllerMode === void 0 && (this._options.nearInteractionControllerMode = 2), this._options.farInteractionFeature && (this._farInteractionFeature = this._options.farInteractionFeature);\n }\n /**\n * Attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n return super.attach() ? (this._options.xrInput.controllers.forEach(this._attachController), this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable, this._attachController), this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable, (e) => {\n this._detachController(e.uniqueId);\n }), this._scene.constantlyUpdateMeshUnderPointer = !0, !0) : !1;\n }\n /**\n * Detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n return super.detach() ? (Object.keys(this._controllers).forEach((e) => {\n this._detachController(e);\n }), !0) : !1;\n }\n /**\n * Will get the mesh under a specific pointer.\n * `scene.meshUnderPointer` will only return one mesh - either left or right.\n * @param controllerId the controllerId to check\n * @returns The mesh under pointer or null if no mesh is under the pointer\n */\n getMeshUnderPointer(e) {\n return this._controllers[e] ? this._controllers[e].meshUnderPointer : null;\n }\n /**\n * Get the xr controller that correlates to the pointer id in the pointer event\n *\n * @param id the pointer id to search for\n * @returns the controller that correlates to this id or null if not found\n */\n getXRControllerByPointerId(e) {\n const t = Object.keys(this._controllers);\n for (let i = 0; i < t.length; ++i)\n if (this._controllers[t[i]].id === e)\n return this._controllers[t[i]].xrController || null;\n return null;\n }\n /**\n * This function sets webXRControllerPointerSelection feature that will be disabled when\n * the hover range is reached for a mesh and will be reattached when not in hover range.\n * This is used to remove the selection rays when moving.\n * @param farInteractionFeature the feature to disable when finger is in hover range for a mesh\n */\n setFarInteractionFeature(e) {\n this._farInteractionFeature = e;\n }\n /**\n * Filter used for near interaction pick and hover\n * @param mesh the mesh candidate to be pick-filtered\n * @returns if the mesh should be included in the list of candidate meshes for near interaction\n */\n _nearPickPredicate(e) {\n return e.isEnabled() && e.isVisible && e.isPickable && e.isNearPickable;\n }\n /**\n * Filter used for near interaction grab\n * @param mesh the mesh candidate to be pick-filtered\n * @returns if the mesh should be included in the list of candidate meshes for near interaction\n */\n _nearGrabPredicate(e) {\n return e.isEnabled() && e.isVisible && e.isPickable && e.isNearGrabbable;\n }\n /**\n * Filter used for any near interaction\n * @param mesh the mesh candidate to be pick-filtered\n * @returns if the mesh should be included in the list of candidate meshes for near interaction\n */\n _nearInteractionPredicate(e) {\n return e.isEnabled() && e.isVisible && e.isPickable && (e.isNearPickable || e.isNearGrabbable);\n }\n _controllerAvailablePredicate(e, t) {\n let i = e;\n for (; i; ) {\n if (i.reservedDataStore && i.reservedDataStore.nearInteraction && i.reservedDataStore.nearInteraction.excludedControllerId === t)\n return !1;\n i = i.parent;\n }\n return !0;\n }\n _handleTransitionAnimation(e, t) {\n var i;\n if (!(e.currentAnimationState === t || this._options.nearInteractionControllerMode !== 2 || (i = e.xrController) != null && i.inputSource.hand)) {\n if (t > e.currentAnimationState)\n switch (e.currentAnimationState) {\n case Qr.DEHYDRATED:\n if (e.hydrateCollisionMeshFunction(!0), t === Qr.HOVER)\n break;\n case Qr.HOVER:\n if (e.touchCollisionMeshFunction(!0), t === Qr.TOUCH)\n break;\n }\n else\n switch (e.currentAnimationState) {\n case Qr.TOUCH:\n if (e.touchCollisionMeshFunction(!1), t === Qr.HOVER)\n break;\n case Qr.HOVER:\n if (e.hydrateCollisionMeshFunction(!1), t === Qr.DEHYDRATED)\n break;\n }\n e.currentAnimationState = t;\n }\n }\n _processTouchPoint(e, t, i) {\n var r;\n const s = this._controllers[e];\n s.grabRay.origin.copyFrom(t), i.toEulerAnglesToRef(w.Vector3[0]), s.grabRay.direction.copyFrom(w.Vector3[0]), this._options.nearInteractionControllerMode === 2 && !((r = s.xrController) != null && r.inputSource.hand) && (s.xrController.getWorldPointerRayToRef(this._tmpRay), s.grabRay.origin.addInPlace(this._tmpRay.direction.scale(0.05))), s.grabRay.length = this._nearGrabLengthScale * this._hoverRadius * this._xrSessionManager.worldScalingFactor, s.touchCollisionMesh.position.copyFrom(s.grabRay.origin).scaleInPlace(this._xrSessionManager.worldScalingFactor);\n }\n _onXRFrame(e) {\n Object.keys(this._controllers).forEach((t) => {\n var l;\n const i = this._controllers[t], s = (l = i.xrController) == null ? void 0 : l.inputSource.hand;\n if (!this._options.enableNearInteractionOnAllControllers && t !== this._attachedController || !i.xrController || !s && (!this._options.nearInteractionControllerMode || !i.xrController.inputSource.gamepad)) {\n i.pick = null;\n return;\n }\n if (i.hoverInteraction = !1, i.nearInteraction = !1, i.xrController) {\n if (s) {\n const h = s.get(\"index-finger-tip\");\n if (h) {\n const c = e.getJointPose(h, this._xrSessionManager.referenceSpace);\n if (c && c.transform) {\n const u = this._scene.useRightHandedSystem ? 1 : -1;\n w.Vector3[0].set(c.transform.position.x, c.transform.position.y, c.transform.position.z * u), w.Quaternion[0].set(c.transform.orientation.x, c.transform.orientation.y, c.transform.orientation.z * u, c.transform.orientation.w * u), this._processTouchPoint(t, w.Vector3[0], w.Quaternion[0]);\n }\n }\n } else if (i.xrController.inputSource.gamepad && this._options.nearInteractionControllerMode !== 0) {\n let h = i.xrController.pointer;\n i.xrController.grip && this._options.nearInteractionControllerMode === 1 && (h = i.xrController.grip), this._processTouchPoint(t, h.position, h.rotationQuaternion);\n }\n } else\n return;\n const r = (h, c) => {\n let u = null;\n return !c || !c.hit ? u = h : !h || !h.hit || c.distance < h.distance ? u = c : u = h, u;\n }, n = (h) => {\n let c = new Cs(), u = !1;\n const d = h && h.pickedPoint && h.hit;\n return h != null && h.pickedPoint && (u = h.pickedPoint.x === 0 && h.pickedPoint.y === 0 && h.pickedPoint.z === 0), d && !u && (c = h), c;\n };\n if (!i.grabInteraction) {\n let h = null, c = null;\n this._options.useUtilityLayer && this._utilityLayerScene && (c = this._pickWithSphere(i, this._hoverRadius * this._xrSessionManager.worldScalingFactor, this._utilityLayerScene, (f) => this._nearInteractionPredicate(f)));\n const u = this._pickWithSphere(i, this._hoverRadius * this._xrSessionManager.worldScalingFactor, this._scene, (f) => this._nearInteractionPredicate(f)), d = r(u, c);\n if (d && d.hit && (h = n(d), h.hit && (i.hoverInteraction = !0)), i.hoverInteraction) {\n let f = null;\n const p = (s ? this._pickRadius : this._controllerPickRadius) * this._xrSessionManager.worldScalingFactor;\n this._options.useUtilityLayer && this._utilityLayerScene && (f = this._pickWithSphere(i, p, this._utilityLayerScene, (v) => this._nearPickPredicate(v)));\n const _ = this._pickWithSphere(i, p, this._scene, (v) => this._nearPickPredicate(v)), m = r(_, f), x = n(m);\n x.hit && (h = x, i.nearInteraction = !0);\n }\n i.stalePick = i.pick, i.pick = h, i.pick && i.pick.pickedPoint && i.pick.hit ? (i.meshUnderPointer = i.pick.pickedMesh, i.pickedPointVisualCue.position.copyFrom(i.pick.pickedPoint), i.pickedPointVisualCue.isVisible = !0, this._farInteractionFeature && this._farInteractionFeature.attached && this._farInteractionFeature._setPointerSelectionDisabledByPointerId(i.id, !0)) : (i.meshUnderPointer = null, i.pickedPointVisualCue.isVisible = !1, this._farInteractionFeature && this._farInteractionFeature.attached && this._farInteractionFeature._setPointerSelectionDisabledByPointerId(i.id, !1));\n }\n let o = Qr.DEHYDRATED;\n i.grabInteraction || i.nearInteraction ? o = Qr.TOUCH : i.hoverInteraction && (o = Qr.HOVER), this._handleTransitionAnimation(i, o);\n });\n }\n get _utilityLayerScene() {\n return this._options.customUtilityLayerScene || Ci.DefaultUtilityLayer.utilityLayerScene;\n }\n _generateVisualCue() {\n const e = this._options.useUtilityLayer ? this._options.customUtilityLayerScene || Ci.DefaultUtilityLayer.utilityLayerScene : this._scene, t = Tr(\"nearInteraction\", {\n diameter: 35e-4 * 3 * this._xrSessionManager.worldScalingFactor\n }, e);\n t.bakeCurrentTransformIntoVertices(), t.isPickable = !1, t.isVisible = !1, t.rotationQuaternion = se.Identity();\n const i = new ye(\"targetMat\", e);\n return i.specularColor = re.Black(), i.emissiveColor = this.selectionMeshDefaultColor, i.backFaceCulling = !1, t.material = i, t;\n }\n _isControllerReadyForNearInteraction(e) {\n return this._farInteractionFeature ? this._farInteractionFeature._getPointerSelectionDisabledByPointerId(e) : !0;\n }\n _attachNearInteractionMode(e) {\n const t = this._controllers[e.uniqueId], i = {\n pointerId: t.id,\n pointerType: \"xr-near\"\n };\n t.onFrameObserver = this._xrSessionManager.onXRFrameObservable.add(() => {\n !this._options.enableNearInteractionOnAllControllers && e.uniqueId !== this._attachedController || !t.xrController || !t.xrController.inputSource.hand && (!this._options.nearInteractionControllerMode || !t.xrController.inputSource.gamepad) || (t.pick && (t.pick.ray = t.grabRay), t.pick && this._isControllerReadyForNearInteraction(t.id) && this._scene.simulatePointerMove(t.pick, i), t.nearInteraction && t.pick && t.pick.hit ? t.nearInteractionTargetMesh || (this._scene.simulatePointerDown(t.pick, i), t.nearInteractionTargetMesh = t.meshUnderPointer, t.downTriggered = !0) : t.nearInteractionTargetMesh && t.stalePick && (this._scene.simulatePointerUp(t.stalePick, i), t.downTriggered = !1, t.nearInteractionTargetMesh = null));\n });\n const s = (r) => {\n this._options.enableNearInteractionOnAllControllers || e.uniqueId === this._attachedController && this._isControllerReadyForNearInteraction(t.id) ? (t.pick && (t.pick.ray = t.grabRay), r && t.pick && t.meshUnderPointer && this._nearGrabPredicate(t.meshUnderPointer) ? (t.grabInteraction = !0, t.pickedPointVisualCue.isVisible = !1, this._scene.simulatePointerDown(t.pick, i), t.downTriggered = !0) : !r && t.pick && t.grabInteraction && (this._scene.simulatePointerUp(t.pick, i), t.downTriggered = !1, t.grabInteraction = !1, t.pickedPointVisualCue.isVisible = !0)) : r && !this._options.enableNearInteractionOnAllControllers && !this._options.disableSwitchOnClick && (this._attachedController = e.uniqueId);\n };\n if (e.inputSource.gamepad) {\n const r = (n) => {\n t.squeezeComponent = n.getComponent(\"grasp\"), t.squeezeComponent ? t.onSqueezeButtonChangedObserver = t.squeezeComponent.onButtonStateChangedObservable.add((o) => {\n if (o.changes.pressed) {\n const l = o.changes.pressed.current;\n s(l);\n }\n }) : (t.selectionComponent = n.getMainComponent(), t.onButtonChangedObserver = t.selectionComponent.onButtonStateChangedObservable.add((o) => {\n if (o.changes.pressed) {\n const l = o.changes.pressed.current;\n s(l);\n }\n }));\n };\n e.motionController ? r(e.motionController) : e.onMotionControllerInitObservable.add(r);\n } else {\n const r = (o) => {\n t.xrController && o.inputSource === t.xrController.inputSource && t.pick && this._isControllerReadyForNearInteraction(t.id) && t.meshUnderPointer && this._nearGrabPredicate(t.meshUnderPointer) && (t.grabInteraction = !0, t.pickedPointVisualCue.isVisible = !1, this._scene.simulatePointerDown(t.pick, i), t.downTriggered = !0);\n }, n = (o) => {\n t.xrController && o.inputSource === t.xrController.inputSource && t.pick && this._isControllerReadyForNearInteraction(t.id) && (this._scene.simulatePointerUp(t.pick, i), t.grabInteraction = !1, t.pickedPointVisualCue.isVisible = !0, t.downTriggered = !1);\n };\n t.eventListeners = {\n selectend: n,\n selectstart: r\n }, this._xrSessionManager.session.addEventListener(\"selectstart\", r), this._xrSessionManager.session.addEventListener(\"selectend\", n);\n }\n }\n _detachController(e) {\n const t = this._controllers[e];\n if (t && (t.squeezeComponent && t.onSqueezeButtonChangedObserver && t.squeezeComponent.onButtonStateChangedObservable.remove(t.onSqueezeButtonChangedObserver), t.selectionComponent && t.onButtonChangedObserver && t.selectionComponent.onButtonStateChangedObservable.remove(t.onButtonChangedObserver), t.onFrameObserver && this._xrSessionManager.onXRFrameObservable.remove(t.onFrameObserver), t.eventListeners && Object.keys(t.eventListeners).forEach((i) => {\n const s = t.eventListeners && t.eventListeners[i];\n s && this._xrSessionManager.session.removeEventListener(i, s);\n }), t.touchCollisionMesh.dispose(), t.pickedPointVisualCue.dispose(), this._xrSessionManager.runInXRFrame(() => {\n if (!t.downTriggered)\n return;\n const i = {\n pointerId: t.id,\n pointerType: \"xr-near\"\n };\n this._scene.simulatePointerUp(new Cs(), i);\n }), t._worldScaleObserver && this._xrSessionManager.onWorldScaleFactorChangedObservable.remove(t._worldScaleObserver), delete this._controllers[e], this._attachedController === e)) {\n const i = Object.keys(this._controllers);\n i.length ? this._attachedController = i[0] : this._attachedController = \"\";\n }\n }\n _generateNewTouchPointMesh() {\n const e = this._xrSessionManager.worldScalingFactor, t = this._options.useUtilityLayer ? this._options.customUtilityLayerScene || Ci.DefaultUtilityLayer.utilityLayerScene : this._scene, i = Tr(\"PickSphere\", { diameter: 1 * e }, t);\n if (i.isVisible = !1, this._options.motionControllerOrbMaterial)\n i.material = this._options.motionControllerOrbMaterial;\n else {\n let P;\n this._options.motionControllerTouchMaterialSnippetUrl ? P = Ai.ParseFromFileAsync(\"motionControllerTouchMaterial\", this._options.motionControllerTouchMaterialSnippetUrl, t) : P = Ai.ParseFromSnippetAsync(\"8RUNKL#3\", t), P.then((N) => {\n i.material = N;\n }).catch((N) => {\n L.Warn(`Error creating touch material in WebXRNearInteraction: ${N}`);\n });\n }\n const s = new pw();\n s.setEasingMode(Ti.EASINGMODE_EASEINOUT);\n const r = new g(this._controllerPickRadius, this._controllerPickRadius, this._controllerPickRadius).scaleInPlace(e), n = this._controllerPickRadius * (4 / 3), o = new g(n, n, n).scaleInPlace(e), l = this._controllerPickRadius * (7 / 6), h = new g(l, l, l).scaleInPlace(e), c = this._controllerPickRadius * (4 / 5), u = new g(c, c, c).scaleInPlace(e), d = this._controllerPickRadius * (3 / 2), f = new g(d, d, d).scaleInPlace(e), p = [\n { frame: 0, value: r },\n { frame: 10, value: f },\n { frame: 18, value: o }\n ], _ = [\n { frame: 0, value: o },\n { frame: 10, value: u },\n { frame: 18, value: r }\n ], m = [\n { frame: 0, value: g.ZeroReadOnly },\n { frame: 12, value: h },\n { frame: 15, value: r }\n ], x = [\n { frame: 0, value: r },\n { frame: 10, value: g.ZeroReadOnly },\n { frame: 15, value: g.ZeroReadOnly }\n ], v = new oe(\"touch\", \"scaling\", 60, oe.ANIMATIONTYPE_VECTOR3, oe.ANIMATIONLOOPMODE_CONSTANT), T = new oe(\"release\", \"scaling\", 60, oe.ANIMATIONTYPE_VECTOR3, oe.ANIMATIONLOOPMODE_CONSTANT), E = new oe(\"hydrate\", \"scaling\", 60, oe.ANIMATIONTYPE_VECTOR3, oe.ANIMATIONLOOPMODE_CONSTANT), b = new oe(\"dehydrate\", \"scaling\", 60, oe.ANIMATIONTYPE_VECTOR3, oe.ANIMATIONLOOPMODE_CONSTANT);\n return v.setEasingFunction(s), T.setEasingFunction(s), E.setEasingFunction(s), b.setEasingFunction(s), v.setKeys(p), T.setKeys(_), E.setKeys(m), b.setKeys(x), { touchCollisionMesh: i, touchCollisionMeshFunction: (P) => {\n const N = P ? v : T;\n t.beginDirectAnimation(i, [N], 0, 18, !1, 1);\n }, hydrateCollisionMeshFunction: (P) => {\n const N = P ? E : b;\n P && (i.isVisible = !0), t.beginDirectAnimation(i, [N], 0, 15, !1, 1, () => {\n P || (i.isVisible = !1);\n });\n } };\n }\n _pickWithSphere(e, t, i, s) {\n const r = new Cs();\n if (r.distance = 1 / 0, e.touchCollisionMesh && e.xrController) {\n const n = e.touchCollisionMesh.position, o = io.CreateFromCenterAndRadius(n, t);\n for (let l = 0; l < i.meshes.length; l++) {\n const h = i.meshes[l];\n if (!s(h) || !this._controllerAvailablePredicate(h, e.xrController.uniqueId))\n continue;\n const c = ia.PickMeshWithSphere(h, o);\n c && c.hit && c.distance < r.distance && (r.hit = c.hit, r.pickedMesh = h, r.pickedPoint = c.pickedPoint, r.aimTransform = e.xrController.pointer, r.gripTransform = e.xrController.grip || null, r.originMesh = e.touchCollisionMesh, r.distance = c.distance, r.bu = c.bu, r.bv = c.bv, r.faceId = c.faceId, r.subMeshId = c.subMeshId);\n }\n }\n return r;\n }\n /**\n * Picks a mesh with a sphere\n * @param mesh the mesh to pick\n * @param sphere picking sphere in world coordinates\n * @param skipBoundingInfo a boolean indicating if we should skip the bounding info check\n * @returns the picking info\n */\n static PickMeshWithSphere(e, t, i = !1) {\n const s = e.subMeshes, r = new Cs(), n = e.getBoundingInfo();\n if (!e._generatePointsArray() || !e.subMeshes || !n || !i && !io.Intersects(n.boundingSphere, t))\n return r;\n const o = w.Vector3[0], l = w.Vector3[1], h = new nt(g.Zero(), g.Zero(), 1);\n let c = 1 / 0, u, d, f, p;\n const _ = w.Vector3[2], m = w.Matrix[0];\n m.copyFrom(e.getWorldMatrix()), m.invert(), g.TransformCoordinatesToRef(t.center, m, _);\n for (let x = 0; x < s.length; x++)\n s[x].projectToRef(_, e._positions, e.getIndices(), l), g.TransformCoordinatesToRef(l, e.getWorldMatrix(), l), u = g.Distance(l, t.center), f = g.Distance(l, e.getAbsolutePosition()), d = g.Distance(t.center, e.getAbsolutePosition()), d !== -1 && f !== -1 && f > d && (u = 0, l.copyFrom(t.center)), u !== -1 && u < c && (c = u, nt.CreateFromToToRef(t.center, l, h), h.length = c * 2, p = h.intersectsMesh(e), o.copyFrom(l));\n return c < t.radius && (r.hit = !0, r.distance = c, r.pickedMesh = e, r.pickedPoint = o.clone(), p && p.bu !== null && p.bv !== null && (r.faceId = p.faceId, r.subMeshId = p.subMeshId, r.bu = p.bu, r.bv = p.bv)), r;\n }\n}\nia._IdCounter = 200;\nia.Name = Tt.NEAR_INTERACTION;\nia.Version = 1;\nRi.AddWebXRFeature(ia.Name, (a, e) => () => new ia(a, e), ia.Version, !0);\nclass Z0 {\n /**\n * Creates a WebXREnterExitUIButton\n * @param element button element\n * @param sessionMode XR initialization session mode\n * @param referenceSpaceType the type of reference space to be used\n */\n constructor(e, t, i) {\n this.element = e, this.sessionMode = t, this.referenceSpaceType = i;\n }\n /**\n * Extendable function which can be used to update the button's visuals when the state changes\n * @param activeButton the current active button in the UI\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n update(e) {\n }\n}\nclass BV {\n}\nclass Z_ {\n /**\n * Construct a new EnterExit UI class\n *\n * @param _scene babylon scene object to use\n * @param options (read-only) version of the options passed to this UI\n */\n constructor(e, t) {\n if (this._scene = e, this.options = t, this._activeButton = null, this._buttons = [], this.activeButtonChangedObservable = new G(), this._onSessionGranted = (s) => {\n this._helper && this._enterXRWithButtonIndex(0);\n }, this.overlay = document.createElement(\"div\"), this.overlay.classList.add(\"xr-button-overlay\"), !t.ignoreSessionGrantedEvent && navigator.xr && navigator.xr.addEventListener(\"sessiongranted\", this._onSessionGranted), typeof window < \"u\" && window.location && window.location.protocol === \"http:\" && window.location.hostname !== \"localhost\")\n throw J.Warn(\"WebXR can only be served over HTTPS\"), new Error(\"WebXR can only be served over HTTPS\");\n if (t.customButtons)\n this._buttons = t.customButtons;\n else {\n this.overlay.style.cssText = \"z-index:11;position: absolute; right: 20px;bottom: 50px;\";\n const s = t.sessionMode || \"immersive-vr\", r = t.referenceSpaceType || \"local-floor\";\n let o = \".babylonVRicon { color: #868686; border-color: #868686; border-style: solid; margin-left: 10px; height: 50px; width: 80px; background-color: rgba(51,51,51,0.7); background-image: url(\" + (typeof SVGSVGElement > \"u\" ? \"https://cdn.babylonjs.com/Assets/vrButton.png\" : \"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%222048%22%20height%3D%221152%22%20viewBox%3D%220%200%202048%201152%22%20version%3D%221.1%22%3E%3Cpath%20transform%3D%22rotate%28180%201024%2C576.0000000000001%29%22%20d%3D%22m1109%2C896q17%2C0%2030%2C-12t13%2C-30t-12.5%2C-30.5t-30.5%2C-12.5l-170%2C0q-18%2C0%20-30.5%2C12.5t-12.5%2C30.5t13%2C30t30%2C12l170%2C0zm-85%2C256q59%2C0%20132.5%2C-1.5t154.5%2C-5.5t164.5%2C-11.5t163%2C-20t150%2C-30t124.5%2C-41.5q23%2C-11%2042%2C-24t38%2C-30q27%2C-25%2041%2C-61.5t14%2C-72.5l0%2C-257q0%2C-123%20-47%2C-232t-128%2C-190t-190%2C-128t-232%2C-47l-81%2C0q-37%2C0%20-68.5%2C14t-60.5%2C34.5t-55.5%2C45t-53%2C45t-53%2C34.5t-55.5%2C14t-55.5%2C-14t-53%2C-34.5t-53%2C-45t-55.5%2C-45t-60.5%2C-34.5t-68.5%2C-14l-81%2C0q-123%2C0%20-232%2C47t-190%2C128t-128%2C190t-47%2C232l0%2C257q0%2C68%2038%2C115t97%2C73q54%2C24%20124.5%2C41.5t150%2C30t163%2C20t164.5%2C11.5t154.5%2C5.5t132.5%2C1.5zm939%2C-298q0%2C39%20-24.5%2C67t-58.5%2C42q-54%2C23%20-122%2C39.5t-143.5%2C28t-155.5%2C19t-157%2C11t-148.5%2C5t-129.5%2C1.5q-59%2C0%20-130%2C-1.5t-148%2C-5t-157%2C-11t-155.5%2C-19t-143.5%2C-28t-122%2C-39.5q-34%2C-14%20-58.5%2C-42t-24.5%2C-67l0%2C-257q0%2C-106%2040.5%2C-199t110%2C-162.5t162.5%2C-109.5t199%2C-40l81%2C0q27%2C0%2052%2C14t50%2C34.5t51%2C44.5t55.5%2C44.5t63.5%2C34.5t74%2C14t74%2C-14t63.5%2C-34.5t55.5%2C-44.5t51%2C-44.5t50%2C-34.5t52%2C-14l14%2C0q37%2C0%2070%2C0.5t64.5%2C4.5t63.5%2C12t68%2C23q71%2C30%20128.5%2C78.5t98.5%2C110t63.5%2C133.5t22.5%2C149l0%2C257z%22%20fill%3D%22white%22%20/%3E%3C/svg%3E%0A\") + \"); background-size: 80%; background-repeat:no-repeat; background-position: center; border: none; outline: none; transition: transform 0.125s ease-out } .babylonVRicon:hover { transform: scale(1.05) } .babylonVRicon:active {background-color: rgba(51,51,51,1) } .babylonVRicon:focus {background-color: rgba(51,51,51,1) }\";\n o += '.babylonVRicon.vrdisplaypresenting { background-image: none;} .vrdisplaypresenting::after { content: \"EXIT\"} .xr-error::after { content: \"ERROR\"}';\n const l = document.createElement(\"style\");\n l.appendChild(document.createTextNode(o)), document.getElementsByTagName(\"head\")[0].appendChild(l);\n const h = document.createElement(\"button\");\n h.className = \"babylonVRicon\", h.title = `${s} - ${r}`, this._buttons.push(new Z0(h, s, r)), this._buttons[this._buttons.length - 1].update = function(c) {\n this.element.style.display = c === null || c === this ? \"\" : \"none\", h.className = \"babylonVRicon\" + (c === this ? \" vrdisplaypresenting\" : \"\");\n }, this._updateButtons(null);\n }\n const i = e.getEngine().getInputElement();\n i && i.parentNode && (i.parentNode.appendChild(this.overlay), e.onDisposeObservable.addOnce(() => {\n this.dispose();\n }));\n }\n /**\n * Set the helper to be used with this UI component.\n * The UI is bound to an experience helper. If not provided the UI can still be used but the events should be registered by the developer.\n *\n * @param helper the experience helper to attach\n * @param renderTarget an optional render target (in case it is created outside of the helper scope)\n * @returns a promise that resolves when the ui is ready\n */\n async setHelperAsync(e, t) {\n this._helper = e, this._renderTarget = t;\n const i = this._buttons.map((r) => e.sessionManager.isSessionSupportedAsync(r.sessionMode));\n e.onStateChangedObservable.add((r) => {\n r == 3 && this._updateButtons(null);\n }), (await Promise.all(i)).forEach((r, n) => {\n r ? (this.overlay.appendChild(this._buttons[n].element), this._buttons[n].element.onclick = this._enterXRWithButtonIndex.bind(this, n)) : J.Warn(`Session mode \"${this._buttons[n].sessionMode}\" not supported in browser`);\n });\n }\n /**\n * Creates UI to allow the user to enter/exit XR mode\n * @param scene the scene to add the ui to\n * @param helper the xr experience helper to enter/exit xr with\n * @param options options to configure the UI\n * @returns the created ui\n */\n static async CreateAsync(e, t, i) {\n const s = new Z_(e, i);\n return await s.setHelperAsync(t, i.renderTarget || void 0), s;\n }\n async _enterXRWithButtonIndex(e = 0) {\n if (this._helper.state == 2)\n await this._helper.exitXRAsync(), this._updateButtons(null);\n else if (this._helper.state == 3)\n try {\n await this._helper.enterXRAsync(this._buttons[e].sessionMode, this._buttons[e].referenceSpaceType, this._renderTarget, {\n optionalFeatures: this.options.optionalFeatures,\n requiredFeatures: this.options.requiredFeatures\n }), this._updateButtons(this._buttons[e]);\n } catch (t) {\n this._updateButtons(null);\n const i = this._buttons[e].element, s = i.title;\n i.title = \"Error entering XR session : \" + s, i.classList.add(\"xr-error\"), this.options.onError && this.options.onError(t);\n }\n }\n /**\n * Disposes of the XR UI component\n */\n dispose() {\n const e = this._scene.getEngine().getInputElement();\n e && e.parentNode && e.parentNode.contains(this.overlay) && e.parentNode.removeChild(this.overlay), this.activeButtonChangedObservable.clear(), navigator.xr.removeEventListener(\"sessiongranted\", this._onSessionGranted);\n }\n _updateButtons(e) {\n this._activeButton = e, this._buttons.forEach((t) => {\n t.update(this._activeButton);\n }), this.activeButtonChangedObservable.notifyObservers(this._activeButton);\n }\n}\nvar Lg;\n(function(a) {\n a.WRIST = \"wrist\", a.THUMB = \"thumb\", a.INDEX = \"index\", a.MIDDLE = \"middle\", a.RING = \"ring\", a.LITTLE = \"little\";\n})(Lg || (Lg = {}));\nvar Bg;\n(function(a) {\n a.WRIST = \"wrist\", a.THUMB_METACARPAL = \"thumb-metacarpal\", a.THUMB_PHALANX_PROXIMAL = \"thumb-phalanx-proximal\", a.THUMB_PHALANX_DISTAL = \"thumb-phalanx-distal\", a.THUMB_TIP = \"thumb-tip\", a.INDEX_FINGER_METACARPAL = \"index-finger-metacarpal\", a.INDEX_FINGER_PHALANX_PROXIMAL = \"index-finger-phalanx-proximal\", a.INDEX_FINGER_PHALANX_INTERMEDIATE = \"index-finger-phalanx-intermediate\", a.INDEX_FINGER_PHALANX_DISTAL = \"index-finger-phalanx-distal\", a.INDEX_FINGER_TIP = \"index-finger-tip\", a.MIDDLE_FINGER_METACARPAL = \"middle-finger-metacarpal\", a.MIDDLE_FINGER_PHALANX_PROXIMAL = \"middle-finger-phalanx-proximal\", a.MIDDLE_FINGER_PHALANX_INTERMEDIATE = \"middle-finger-phalanx-intermediate\", a.MIDDLE_FINGER_PHALANX_DISTAL = \"middle-finger-phalanx-distal\", a.MIDDLE_FINGER_TIP = \"middle-finger-tip\", a.RING_FINGER_METACARPAL = \"ring-finger-metacarpal\", a.RING_FINGER_PHALANX_PROXIMAL = \"ring-finger-phalanx-proximal\", a.RING_FINGER_PHALANX_INTERMEDIATE = \"ring-finger-phalanx-intermediate\", a.RING_FINGER_PHALANX_DISTAL = \"ring-finger-phalanx-distal\", a.RING_FINGER_TIP = \"ring-finger-tip\", a.PINKY_FINGER_METACARPAL = \"pinky-finger-metacarpal\", a.PINKY_FINGER_PHALANX_PROXIMAL = \"pinky-finger-phalanx-proximal\", a.PINKY_FINGER_PHALANX_INTERMEDIATE = \"pinky-finger-phalanx-intermediate\", a.PINKY_FINGER_PHALANX_DISTAL = \"pinky-finger-phalanx-distal\", a.PINKY_FINGER_TIP = \"pinky-finger-tip\";\n})(Bg || (Bg = {}));\nconst zn = [\n \"wrist\",\n \"thumb-metacarpal\",\n \"thumb-phalanx-proximal\",\n \"thumb-phalanx-distal\",\n \"thumb-tip\",\n \"index-finger-metacarpal\",\n \"index-finger-phalanx-proximal\",\n \"index-finger-phalanx-intermediate\",\n \"index-finger-phalanx-distal\",\n \"index-finger-tip\",\n \"middle-finger-metacarpal\",\n \"middle-finger-phalanx-proximal\",\n \"middle-finger-phalanx-intermediate\",\n \"middle-finger-phalanx-distal\",\n \"middle-finger-tip\",\n \"ring-finger-metacarpal\",\n \"ring-finger-phalanx-proximal\",\n \"ring-finger-phalanx-intermediate\",\n \"ring-finger-phalanx-distal\",\n \"ring-finger-tip\",\n \"pinky-finger-metacarpal\",\n \"pinky-finger-phalanx-proximal\",\n \"pinky-finger-phalanx-intermediate\",\n \"pinky-finger-phalanx-distal\",\n \"pinky-finger-tip\"\n], VV = {\n wrist: [\n \"wrist\"\n /* WebXRHandJoint.WRIST */\n ],\n thumb: [\n \"thumb-metacarpal\",\n \"thumb-phalanx-proximal\",\n \"thumb-phalanx-distal\",\n \"thumb-tip\"\n /* WebXRHandJoint.THUMB_TIP */\n ],\n index: [\n \"index-finger-metacarpal\",\n \"index-finger-phalanx-proximal\",\n \"index-finger-phalanx-intermediate\",\n \"index-finger-phalanx-distal\",\n \"index-finger-tip\"\n ],\n middle: [\n \"middle-finger-metacarpal\",\n \"middle-finger-phalanx-proximal\",\n \"middle-finger-phalanx-intermediate\",\n \"middle-finger-phalanx-distal\",\n \"middle-finger-tip\"\n ],\n ring: [\n \"ring-finger-metacarpal\",\n \"ring-finger-phalanx-proximal\",\n \"ring-finger-phalanx-intermediate\",\n \"ring-finger-phalanx-distal\",\n \"ring-finger-tip\"\n ],\n little: [\n \"pinky-finger-metacarpal\",\n \"pinky-finger-phalanx-proximal\",\n \"pinky-finger-phalanx-intermediate\",\n \"pinky-finger-phalanx-distal\",\n \"pinky-finger-tip\"\n ]\n};\nclass J0 {\n /**\n * Get the hand mesh.\n */\n get handMesh() {\n return this._handMesh;\n }\n /**\n * Get meshes of part of the hand.\n * @param part The part of hand to get.\n * @returns An array of meshes that correlate to the hand part requested.\n */\n getHandPartMeshes(e) {\n return VV[e].map((t) => this._jointMeshes[zn.indexOf(t)]);\n }\n /**\n * Retrieves a mesh linked to a named joint in the hand.\n * @param jointName The name of the joint.\n * @returns An AbstractMesh whose position corresponds with the joint position.\n */\n getJointMesh(e) {\n return this._jointMeshes[zn.indexOf(e)];\n }\n /**\n * Construct a new hand object\n * @param xrController The controller to which the hand correlates.\n * @param _jointMeshes The meshes to be used to track the hand joints.\n * @param _handMesh An optional hand mesh.\n * @param rigMapping An optional rig mapping for the hand mesh.\n * If not provided (but a hand mesh is provided),\n * it will be assumed that the hand mesh's bones are named\n * directly after the WebXR bone names.\n * @param _leftHandedMeshes Are the hand meshes left-handed-system meshes\n * @param _jointsInvisible Are the tracked joint meshes visible\n * @param _jointScaleFactor Scale factor for all joint meshes\n */\n constructor(e, t, i, s, r = !1, n = !1, o = 1) {\n this.xrController = e, this._jointMeshes = t, this._handMesh = i, this.rigMapping = s, this._leftHandedMeshes = r, this._jointsInvisible = n, this._jointScaleFactor = o, this.onHandMeshSetObservable = new G(), this._jointTransforms = new Array(zn.length), this._jointTransformMatrices = new Float32Array(zn.length * 16), this._tempJointMatrix = new O(), this._jointRadii = new Float32Array(zn.length), this._scene = t[0].getScene();\n for (let l = 0; l < this._jointTransforms.length; l++) {\n const h = this._jointTransforms[l] = new Ye(zn[l], this._scene);\n h.rotationQuaternion = new se(), t[l].rotationQuaternion = new se();\n }\n i && this.setHandMesh(i, s), this.xrController.motionController && this.xrController.motionController.rootMesh && this.xrController.motionController.rootMesh.dispose(!1, !0), this.xrController.onMotionControllerInitObservable.add((l) => {\n l._doNotLoadControllerMesh = !0;\n });\n }\n /**\n * Sets the current hand mesh to render for the WebXRHand.\n * @param handMesh The rigged hand mesh that will be tracked to the user's hand.\n * @param rigMapping The mapping from XRHandJoint to bone names to use with the mesh.\n * @param _xrSessionManager The XRSessionManager used to initialize the hand mesh.\n */\n setHandMesh(e, t, i) {\n if (this._handMesh = e, e.alwaysSelectAsActiveMesh = !0, e.getChildMeshes().forEach((s) => {\n s.alwaysSelectAsActiveMesh = !0;\n }), this._handMesh.skeleton) {\n const s = this._handMesh.skeleton;\n zn.forEach((r, n) => {\n const o = s.getBoneIndexByName(t ? t[r] : r);\n o !== -1 && s.bones[o].linkTransformNode(this._jointTransforms[n]);\n });\n }\n this.onHandMeshSetObservable.notifyObservers(this);\n }\n /**\n * Update this hand from the latest xr frame.\n * @param xrFrame The latest frame received from WebXR.\n * @param referenceSpace The current viewer reference space.\n */\n updateFromXRFrame(e, t) {\n const i = this.xrController.inputSource.hand;\n if (!i)\n return;\n const s = i, r = zn.map((o) => s[o] || i.get(o));\n let n = !1;\n if (e.fillPoses && e.fillJointRadii)\n n = e.fillPoses(r, t, this._jointTransformMatrices) && e.fillJointRadii(r, this._jointRadii);\n else if (e.getJointPose) {\n n = !0;\n for (let o = 0; o < r.length; o++) {\n const l = e.getJointPose(r[o], t);\n if (l)\n this._jointTransformMatrices.set(l.transform.matrix, o * 16), this._jointRadii[o] = l.radius || 8e-3;\n else {\n n = !1;\n break;\n }\n }\n }\n n && (zn.forEach((o, l) => {\n const h = this._jointTransforms[l];\n O.FromArrayToRef(this._jointTransformMatrices, l * 16, this._tempJointMatrix), this._tempJointMatrix.decompose(void 0, h.rotationQuaternion, h.position);\n const c = this._jointRadii[l] * this._jointScaleFactor, u = this._jointMeshes[l];\n u.isVisible = !this._handMesh && !this._jointsInvisible, u.position.copyFrom(h.position), u.rotationQuaternion.copyFrom(h.rotationQuaternion), u.scaling.setAll(c), this._scene.useRightHandedSystem || (u.position.z *= -1, u.rotationQuaternion.z *= -1, u.rotationQuaternion.w *= -1, this._leftHandedMeshes && this._handMesh && (h.position.z *= -1, h.rotationQuaternion.z *= -1, h.rotationQuaternion.w *= -1));\n }), this._handMesh && (this._handMesh.isVisible = !0));\n }\n /**\n * Dispose this Hand object\n * @param disposeMeshes Should the meshes be disposed as well\n */\n dispose(e = !1) {\n var t;\n this._handMesh && (e ? ((t = this._handMesh.skeleton) == null || t.dispose(), this._handMesh.dispose(!1, !0)) : this._handMesh.isVisible = !1);\n }\n}\nclass jt extends Is {\n static _GenerateTrackedJointMeshes(e) {\n const t = {};\n return [\"left\", \"right\"].map((i) => {\n var n, o, l, h, c;\n const s = [], r = ((n = e.jointMeshes) == null ? void 0 : n.sourceMesh) || L_(\"jointParent\", jt._ICOSPHERE_PARAMS);\n r.isVisible = !!((o = e.jointMeshes) != null && o.keepOriginalVisible);\n for (let u = 0; u < zn.length; ++u) {\n let d = r.createInstance(`${i}-handJoint-${u}`);\n if ((l = e.jointMeshes) != null && l.onHandJointMeshGenerated) {\n const f = e.jointMeshes.onHandJointMeshGenerated(d, u, i);\n f && f !== d && (d.dispose(), d = f);\n }\n if (d.isPickable = !1, (h = e.jointMeshes) != null && h.enablePhysics) {\n const f = ((c = e.jointMeshes) == null ? void 0 : c.physicsProps) || {};\n d.scaling.setAll(0.02);\n const p = f.impostorType !== void 0 ? f.impostorType : Ke.SphereImpostor;\n d.physicsImpostor = new Ke(d, p, { mass: 0, ...f });\n }\n d.rotationQuaternion = new se(), d.isVisible = !1, s.push(d);\n }\n t[i] = s;\n }), { left: t.left, right: t.right };\n }\n static _GenerateDefaultHandMeshesAsync(e, t, i) {\n return new Promise(async (s) => {\n var d, f, p, _, m, x;\n const r = {};\n (f = (d = jt._RightHandGLB) == null ? void 0 : d.meshes[1]) != null && f.isDisposed() && (jt._RightHandGLB = null), (_ = (p = jt._LeftHandGLB) == null ? void 0 : p.meshes[1]) != null && _.isDisposed() && (jt._LeftHandGLB = null);\n const n = !!(jt._RightHandGLB && jt._LeftHandGLB), o = await Promise.all([\n jt._RightHandGLB || st.ImportMeshAsync(\"\", jt.DEFAULT_HAND_MODEL_BASE_URL, jt.DEFAULT_HAND_MODEL_RIGHT_FILENAME, e),\n jt._LeftHandGLB || st.ImportMeshAsync(\"\", jt.DEFAULT_HAND_MODEL_BASE_URL, jt.DEFAULT_HAND_MODEL_LEFT_FILENAME, e)\n ]);\n jt._RightHandGLB = o[0], jt._LeftHandGLB = o[1];\n const l = await Ai.ParseFromFileAsync(\"handShader\", jt.DEFAULT_HAND_MODEL_SHADER_URL, e);\n l.needDepthPrePass = !0, l.transparencyMode = ue.MATERIAL_ALPHABLEND, l.alphaMode = 2, l.build(!1);\n const h = {\n base: re.FromInts(116, 63, 203),\n fresnel: re.FromInts(149, 102, 229),\n fingerColor: re.FromInts(177, 130, 255),\n tipFresnel: re.FromInts(220, 200, 255),\n ...(m = i == null ? void 0 : i.handMeshes) == null ? void 0 : m.customColors\n }, c = {\n base: l.getBlockByName(\"baseColor\"),\n fresnel: l.getBlockByName(\"fresnelColor\"),\n fingerColor: l.getBlockByName(\"fingerColor\"),\n tipFresnel: l.getBlockByName(\"tipFresnelColor\")\n };\n c.base.value = h.base, c.fresnel.value = h.fresnel, c.fingerColor.value = h.fingerColor, c.tipFresnel.value = h.tipFresnel;\n const u = (x = t._getBaseLayerWrapper()) == null ? void 0 : x.isMultiview;\n [\"left\", \"right\"].forEach((v) => {\n const T = v == \"left\" ? jt._LeftHandGLB : jt._RightHandGLB;\n if (!T)\n throw new Error(\"Could not load hand model\");\n const E = T.meshes[1];\n E._internalAbstractMeshDataInfo._computeBonesUsingShaders = !0, u || (E.material = l.clone(`${v}HandShaderClone`, !0)), E.isVisible = !1, r[v] = E, !n && !e.useRightHandedSystem && T.meshes[1].rotate(zs.Y, Math.PI);\n }), l.dispose(), s({ left: r.left, right: r.right });\n });\n }\n /**\n * Generates a mapping from XRHandJoint to bone name for the default hand mesh.\n * @param handedness The handedness being mapped for.\n * @returns A mapping from XRHandJoint to bone name.\n */\n static _GenerateDefaultHandMeshRigMapping(e) {\n const t = e == \"right\" ? \"R\" : \"L\";\n return {\n wrist: `wrist_${t}`,\n \"thumb-metacarpal\": `thumb_metacarpal_${t}`,\n \"thumb-phalanx-proximal\": `thumb_proxPhalanx_${t}`,\n \"thumb-phalanx-distal\": `thumb_distPhalanx_${t}`,\n \"thumb-tip\": `thumb_tip_${t}`,\n \"index-finger-metacarpal\": `index_metacarpal_${t}`,\n \"index-finger-phalanx-proximal\": `index_proxPhalanx_${t}`,\n \"index-finger-phalanx-intermediate\": `index_intPhalanx_${t}`,\n \"index-finger-phalanx-distal\": `index_distPhalanx_${t}`,\n \"index-finger-tip\": `index_tip_${t}`,\n \"middle-finger-metacarpal\": `middle_metacarpal_${t}`,\n \"middle-finger-phalanx-proximal\": `middle_proxPhalanx_${t}`,\n \"middle-finger-phalanx-intermediate\": `middle_intPhalanx_${t}`,\n \"middle-finger-phalanx-distal\": `middle_distPhalanx_${t}`,\n \"middle-finger-tip\": `middle_tip_${t}`,\n \"ring-finger-metacarpal\": `ring_metacarpal_${t}`,\n \"ring-finger-phalanx-proximal\": `ring_proxPhalanx_${t}`,\n \"ring-finger-phalanx-intermediate\": `ring_intPhalanx_${t}`,\n \"ring-finger-phalanx-distal\": `ring_distPhalanx_${t}`,\n \"ring-finger-tip\": `ring_tip_${t}`,\n \"pinky-finger-metacarpal\": `little_metacarpal_${t}`,\n \"pinky-finger-phalanx-proximal\": `little_proxPhalanx_${t}`,\n \"pinky-finger-phalanx-intermediate\": `little_intPhalanx_${t}`,\n \"pinky-finger-phalanx-distal\": `little_distPhalanx_${t}`,\n \"pinky-finger-tip\": `little_tip_${t}`\n };\n }\n /**\n * Check if the needed objects are defined.\n * This does not mean that the feature is enabled, but that the objects needed are well defined.\n * @returns true if the needed objects for this feature are defined\n */\n isCompatible() {\n return typeof XRHand < \"u\";\n }\n /**\n * Get the hand object according to the controller id\n * @param controllerId the controller id to which we want to get the hand\n * @returns null if not found or the WebXRHand object if found\n */\n getHandByControllerId(e) {\n return this._attachedHands[e];\n }\n /**\n * Get a hand object according to the requested handedness\n * @param handedness the handedness to request\n * @returns null if not found or the WebXRHand object if found\n */\n getHandByHandedness(e) {\n return e == \"none\" ? null : this._trackingHands[e];\n }\n /**\n * Creates a new instance of the XR hand tracking feature.\n * @param _xrSessionManager An instance of WebXRSessionManager.\n * @param options Options to use when constructing this feature.\n */\n constructor(e, t) {\n super(e), this.options = t, this._attachedHands = {}, this._trackingHands = { left: null, right: null }, this._handResources = { jointMeshes: null, handMeshes: null, rigMappings: null }, this._worldScaleObserver = null, this.onHandAddedObservable = new G(), this.onHandRemovedObservable = new G(), this._attachHand = (r) => {\n var l, h, c;\n if (!r.inputSource.hand || r.inputSource.handedness == \"none\" || !this._handResources.jointMeshes)\n return;\n const n = r.inputSource.handedness, o = new J0(r, this._handResources.jointMeshes[n], this._handResources.handMeshes && this._handResources.handMeshes[n], this._handResources.rigMappings && this._handResources.rigMappings[n], (l = this.options.handMeshes) == null ? void 0 : l.meshesUseLeftHandedCoordinates, (h = this.options.jointMeshes) == null ? void 0 : h.invisible, (c = this.options.jointMeshes) == null ? void 0 : c.scaleFactor);\n this._attachedHands[r.uniqueId] = o, this._trackingHands[n] = o, this.onHandAddedObservable.notifyObservers(o);\n }, this._detachHand = (r) => {\n this._detachHandById(r.uniqueId);\n }, this.xrNativeFeatureName = \"hand-tracking\";\n const s = t.jointMeshes;\n if (s && (typeof s.disableDefaultHandMesh < \"u\" && (t.handMeshes = t.handMeshes || {}, t.handMeshes.disableDefaultMeshes = s.disableDefaultHandMesh), typeof s.handMeshes < \"u\" && (t.handMeshes = t.handMeshes || {}, t.handMeshes.customMeshes = s.handMeshes), typeof s.leftHandedSystemMeshes < \"u\" && (t.handMeshes = t.handMeshes || {}, t.handMeshes.meshesUseLeftHandedCoordinates = s.leftHandedSystemMeshes), typeof s.rigMapping < \"u\")) {\n t.handMeshes = t.handMeshes || {};\n const r = {}, n = {};\n [\n [s.rigMapping.left, r],\n [s.rigMapping.right, n]\n ].forEach((o) => {\n const l = o[0], h = o[1];\n l.forEach((c, u) => {\n h[zn[u]] = c;\n });\n }), t.handMeshes.customRigMappings = {\n left: r,\n right: n\n };\n }\n }\n /**\n * Attach this feature.\n * Will usually be called by the features manager.\n *\n * @returns true if successful.\n */\n attach() {\n var e, t, i, s;\n return super.attach() ? (this._handResources = {\n jointMeshes: jt._GenerateTrackedJointMeshes(this.options),\n handMeshes: ((e = this.options.handMeshes) == null ? void 0 : e.customMeshes) || null,\n rigMappings: ((t = this.options.handMeshes) == null ? void 0 : t.customRigMappings) || null\n }, !((i = this.options.handMeshes) != null && i.customMeshes) && !((s = this.options.handMeshes) != null && s.disableDefaultMeshes) && (jt._GenerateDefaultHandMeshesAsync(Me.LastCreatedScene, this._xrSessionManager, this.options).then((r) => {\n var n, o;\n this._handResources.handMeshes = r, this._handResources.rigMappings = {\n left: jt._GenerateDefaultHandMeshRigMapping(\"left\"),\n right: jt._GenerateDefaultHandMeshRigMapping(\"right\")\n }, (n = this._trackingHands.left) == null || n.setHandMesh(this._handResources.handMeshes.left, this._handResources.rigMappings.left, this._xrSessionManager), (o = this._trackingHands.right) == null || o.setHandMesh(this._handResources.handMeshes.right, this._handResources.rigMappings.right, this._xrSessionManager), this._handResources.handMeshes.left.scaling.setAll(this._xrSessionManager.worldScalingFactor), this._handResources.handMeshes.right.scaling.setAll(this._xrSessionManager.worldScalingFactor);\n }), this._worldScaleObserver = this._xrSessionManager.onWorldScaleFactorChangedObservable.add((r) => {\n this._handResources.handMeshes && (this._handResources.handMeshes.left.scaling.scaleInPlace(r.newScaleFactor / r.previousScaleFactor), this._handResources.handMeshes.right.scaling.scaleInPlace(r.newScaleFactor / r.previousScaleFactor));\n })), this.options.xrInput.controllers.forEach(this._attachHand), this._addNewAttachObserver(this.options.xrInput.onControllerAddedObservable, this._attachHand), this._addNewAttachObserver(this.options.xrInput.onControllerRemovedObservable, this._detachHand), !0) : !1;\n }\n _onXRFrame(e) {\n var t, i;\n (t = this._trackingHands.left) == null || t.updateFromXRFrame(e, this._xrSessionManager.referenceSpace), (i = this._trackingHands.right) == null || i.updateFromXRFrame(e, this._xrSessionManager.referenceSpace);\n }\n _detachHandById(e, t) {\n var s;\n const i = this.getHandByControllerId(e);\n if (i) {\n const r = i.xrController.inputSource.handedness == \"left\" ? \"left\" : \"right\";\n ((s = this._trackingHands[r]) == null ? void 0 : s.xrController.uniqueId) === e && (this._trackingHands[r] = null), this.onHandRemovedObservable.notifyObservers(i), i.dispose(t), delete this._attachedHands[e];\n }\n }\n /**\n * Detach this feature.\n * Will usually be called by the features manager.\n *\n * @returns true if successful.\n */\n detach() {\n var e;\n return super.detach() ? (Object.keys(this._attachedHands).forEach((t) => {\n var i;\n return this._detachHandById(t, (i = this.options.handMeshes) == null ? void 0 : i.disposeOnSessionEnd);\n }), (e = this.options.handMeshes) != null && e.disposeOnSessionEnd && this._handResources.jointMeshes && (this._handResources.jointMeshes.left.forEach((t) => t.dispose()), this._handResources.jointMeshes.right.forEach((t) => t.dispose())), this._worldScaleObserver && this._xrSessionManager.onWorldScaleFactorChangedObservable.remove(this._worldScaleObserver), !0) : !1;\n }\n /**\n * Dispose this feature and all of the resources attached.\n */\n dispose() {\n var e;\n super.dispose(), this.onHandAddedObservable.clear(), this.onHandRemovedObservable.clear(), this._handResources.handMeshes && !((e = this.options.handMeshes) != null && e.customMeshes) && (this._handResources.handMeshes.left.dispose(), this._handResources.handMeshes.right.dispose(), jt._RightHandGLB = null, jt._LeftHandGLB = null), this._handResources.jointMeshes && (this._handResources.jointMeshes.left.forEach((t) => t.dispose()), this._handResources.jointMeshes.right.forEach((t) => t.dispose()));\n }\n}\njt.Name = Tt.HAND_TRACKING;\njt.Version = 1;\njt.DEFAULT_HAND_MODEL_BASE_URL = \"https://assets.babylonjs.com/meshes/HandMeshes/\";\njt.DEFAULT_HAND_MODEL_RIGHT_FILENAME = \"r_hand_rhs.glb\";\njt.DEFAULT_HAND_MODEL_LEFT_FILENAME = \"l_hand_rhs.glb\";\njt.DEFAULT_HAND_MODEL_SHADER_URL = \"https://assets.babylonjs.com/meshes/HandMeshes/handsShader.json\";\njt._ICOSPHERE_PARAMS = { radius: 0.5, flat: !1, subdivisions: 2 };\njt._RightHandGLB = null;\njt._LeftHandGLB = null;\nRi.AddWebXRFeature(jt.Name, (a, e) => () => new jt(a, e), jt.Version, !1);\nvar CE;\n(function(a) {\n a[a.INIT = 0] = \"INIT\", a[a.STARTED = 1] = \"STARTED\", a[a.ENDED = 2] = \"ENDED\";\n})(CE || (CE = {}));\nfunction np(a) {\n let e = 0;\n const t = Date.now();\n a.observableParameters = a.observableParameters ?? {};\n const i = a.contextObservable.add((s) => {\n const r = Date.now();\n e = r - t;\n const n = {\n startTime: t,\n currentTime: r,\n deltaTime: e,\n completeRate: e / a.timeout,\n payload: s\n };\n a.onTick && a.onTick(n), a.breakCondition && a.breakCondition() && (a.contextObservable.remove(i), a.onAborted && a.onAborted(n)), e >= a.timeout && (a.contextObservable.remove(i), a.onEnded && a.onEnded(n));\n }, a.observableParameters.mask, a.observableParameters.insertFirst, a.observableParameters.scope);\n return i;\n}\nclass UV {\n /**\n * Will construct a new advanced timer based on the options provided. Timer will not start until start() is called.\n * @param options construction options for this advanced timer\n */\n constructor(e) {\n this.onEachCountObservable = new G(), this.onTimerAbortedObservable = new G(), this.onTimerEndedObservable = new G(), this.onStateChangedObservable = new G(), this._observer = null, this._breakOnNextTick = !1, this._tick = (t) => {\n const i = Date.now();\n this._timer = i - this._startTime;\n const s = {\n startTime: this._startTime,\n currentTime: i,\n deltaTime: this._timer,\n completeRate: this._timer / this._timeToEnd,\n payload: t\n }, r = this._breakOnNextTick || this._breakCondition(s);\n r || this._timer >= this._timeToEnd ? this._stop(s, r) : this.onEachCountObservable.notifyObservers(s);\n }, this._setState(\n 0\n /* TimerState.INIT */\n ), this._contextObservable = e.contextObservable, this._observableParameters = e.observableParameters ?? {}, this._breakCondition = e.breakCondition ?? (() => !1), this._timeToEnd = e.timeout, e.onEnded && this.onTimerEndedObservable.add(e.onEnded), e.onTick && this.onEachCountObservable.add(e.onTick), e.onAborted && this.onTimerAbortedObservable.add(e.onAborted);\n }\n /**\n * set a breaking condition for this timer. Default is to never break during count\n * @param predicate the new break condition. Returns true to break, false otherwise\n */\n set breakCondition(e) {\n this._breakCondition = e;\n }\n /**\n * Reset ALL associated observables in this advanced timer\n */\n clearObservables() {\n this.onEachCountObservable.clear(), this.onTimerAbortedObservable.clear(), this.onTimerEndedObservable.clear(), this.onStateChangedObservable.clear();\n }\n /**\n * Will start a new iteration of this timer. Only one instance of this timer can run at a time.\n *\n * @param timeToEnd how much time to measure until timer ended\n */\n start(e = this._timeToEnd) {\n if (this._state === 1)\n throw new Error(\"Timer already started. Please stop it before starting again\");\n this._timeToEnd = e, this._startTime = Date.now(), this._timer = 0, this._observer = this._contextObservable.add(this._tick, this._observableParameters.mask, this._observableParameters.insertFirst, this._observableParameters.scope), this._setState(\n 1\n /* TimerState.STARTED */\n );\n }\n /**\n * Will force a stop on the next tick.\n */\n stop() {\n this._state === 1 && (this._breakOnNextTick = !0);\n }\n /**\n * Dispose this timer, clearing all resources\n */\n dispose() {\n this._observer && this._contextObservable.remove(this._observer), this.clearObservables();\n }\n _setState(e) {\n this._state = e, this.onStateChangedObservable.notifyObservers(this._state);\n }\n _stop(e, t = !1) {\n this._contextObservable.remove(this._observer), this._setState(\n 2\n /* TimerState.ENDED */\n ), t ? this.onTimerAbortedObservable.notifyObservers(e) : this.onTimerEndedObservable.notifyObservers(e);\n }\n}\nclass Al extends Is {\n /**\n * Is rotation enabled when moving forward?\n * Disabling this feature will prevent the user from deciding the direction when teleporting\n */\n get rotationEnabled() {\n return this._rotationEnabled;\n }\n /**\n * Sets whether rotation is enabled or not\n * @param enabled is rotation enabled when teleportation is shown\n */\n set rotationEnabled(e) {\n if (this._rotationEnabled = e, this._options.teleportationTargetMesh) {\n const t = this._options.teleportationTargetMesh.getChildMeshes(!1, (i) => i.name === \"rotationCone\");\n t[0] && t[0].setEnabled(e);\n }\n }\n /**\n * Exposes the currently set teleportation target mesh.\n */\n get teleportationTargetMesh() {\n return this._options.teleportationTargetMesh || null;\n }\n /**\n * constructs a new teleportation system\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param _options configuration object for this feature\n */\n constructor(e, t) {\n super(e), this._options = t, this._controllers = {}, this._snappedToPoint = !1, this._cachedColor4White = new Ce(1, 1, 1, 1), this._tmpRay = new nt(new g(), new g()), this._tmpVector = new g(), this._tmpQuaternion = new se(), this._worldScaleObserver = null, this.skipNextTeleportation = !1, this.backwardsMovementEnabled = !0, this.backwardsTeleportationDistance = 0.7, this.parabolicCheckRadius = 5, this.parabolicRayEnabled = !0, this.straightRayEnabled = !0, this.rotationAngle = Math.PI / 8, this.onTargetMeshPositionUpdatedObservable = new G(), this.teleportationEnabled = !0, this._rotationEnabled = !0, this.onBeforeCameraTeleportRotation = new G(), this.onAfterCameraTeleportRotation = new G(), this._attachController = (i) => {\n if (this._controllers[i.uniqueId] || this._options.forceHandedness && i.inputSource.handedness !== this._options.forceHandedness)\n return;\n this._controllers[i.uniqueId] = {\n xrController: i,\n teleportationState: {\n forward: !1,\n backwards: !1,\n rotating: !1,\n currentRotation: 0,\n baseRotation: 0,\n blocked: !1,\n initialHit: !1,\n mainComponentUsed: !1\n }\n };\n const s = this._controllers[i.uniqueId];\n if (s.xrController.inputSource.targetRayMode === \"tracked-pointer\" && s.xrController.inputSource.gamepad) {\n const r = () => {\n if (i.motionController) {\n const n = i.motionController.getComponentOfType(Wr.THUMBSTICK_TYPE) || i.motionController.getComponentOfType(Wr.TOUCHPAD_TYPE);\n if (!n || this._options.useMainComponentOnly) {\n const o = i.motionController.getMainComponent();\n if (!o)\n return;\n s.teleportationState.mainComponentUsed = !0, s.teleportationComponent = o, s.onButtonChangedObserver = o.onButtonStateChangedObservable.add(() => {\n if (!this.teleportationEnabled)\n return;\n const l = () => {\n s.teleportationState.forward = !0, s.teleportationState.initialHit = !1, this._currentTeleportationControllerId = s.xrController.uniqueId, s.teleportationState.baseRotation = this._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y, s.teleportationState.currentRotation = 0;\n const h = this._options.timeToTeleport || 3e3;\n np({\n timeout: h,\n contextObservable: this._xrSessionManager.onXRFrameObservable,\n breakCondition: () => !o.pressed,\n onEnded: () => {\n this._currentTeleportationControllerId === s.xrController.uniqueId && s.teleportationState.forward && this._teleportForward(i.uniqueId);\n }\n });\n };\n o.changes.pressed && (o.changes.pressed.current ? this._options.timeToTeleportStart ? np({\n timeout: this._options.timeToTeleportStart,\n contextObservable: this._xrSessionManager.onXRFrameObservable,\n onEnded: () => {\n o.pressed && l();\n }\n }) : l() : (s.teleportationState.forward = !1, this._currentTeleportationControllerId = \"\"));\n });\n } else\n s.teleportationComponent = n, s.onAxisChangedObserver = n.onAxisValueChangedObservable.add((o) => {\n if (o.y <= 0.7 && s.teleportationState.backwards && (s.teleportationState.backwards = !1), o.y > 0.7 && !s.teleportationState.forward && this.backwardsMovementEnabled && !this.snapPointsOnly && !s.teleportationState.backwards) {\n s.teleportationState.backwards = !0, this._tmpQuaternion.copyFrom(this._options.xrInput.xrCamera.rotationQuaternion), this._tmpQuaternion.toEulerAnglesToRef(this._tmpVector), this._tmpVector.x = 0, this._tmpVector.z = 0, se.FromEulerVectorToRef(this._tmpVector, this._tmpQuaternion), this._tmpVector.set(0, 0, this.backwardsTeleportationDistance * (this._xrSessionManager.scene.useRightHandedSystem ? 1 : -1)), this._tmpVector.rotateByQuaternionToRef(this._tmpQuaternion, this._tmpVector), this._tmpVector.addInPlace(this._options.xrInput.xrCamera.position), this._tmpRay.origin.copyFrom(this._tmpVector), this._tmpRay.length = this._options.xrInput.xrCamera.realWorldHeight + 0.1, this._tmpRay.direction.set(0, -1, 0);\n const l = this._xrSessionManager.scene.pickWithRay(this._tmpRay, (h) => this._floorMeshes.indexOf(h) !== -1);\n l && l.pickedPoint && (this._options.xrInput.xrCamera.position.x = l.pickedPoint.x, this._options.xrInput.xrCamera.position.z = l.pickedPoint.z);\n }\n if (o.y < -0.7 && !this._currentTeleportationControllerId && !s.teleportationState.rotating && this.teleportationEnabled && (s.teleportationState.forward = !0, this._currentTeleportationControllerId = s.xrController.uniqueId, s.teleportationState.baseRotation = this._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y), o.x) {\n if (s.teleportationState.forward)\n this._currentTeleportationControllerId === s.xrController.uniqueId && (this.rotationEnabled ? setTimeout(() => {\n s.teleportationState.currentRotation = Math.atan2(o.x, o.y * (this._xrSessionManager.scene.useRightHandedSystem ? 1 : -1));\n }) : s.teleportationState.currentRotation = 0);\n else if (!s.teleportationState.rotating && Math.abs(o.x) > 0.7) {\n s.teleportationState.rotating = !0;\n const l = this.rotationAngle * (o.x > 0 ? 1 : -1) * (this._xrSessionManager.scene.useRightHandedSystem ? -1 : 1);\n this.onBeforeCameraTeleportRotation.notifyObservers(l), se.FromEulerAngles(0, l, 0).multiplyToRef(this._options.xrInput.xrCamera.rotationQuaternion, this._options.xrInput.xrCamera.rotationQuaternion), this.onAfterCameraTeleportRotation.notifyObservers(this._options.xrInput.xrCamera.rotationQuaternion);\n }\n } else\n s.teleportationState.rotating = !1;\n o.x === 0 && o.y === 0 && (s.teleportationState.blocked && (s.teleportationState.blocked = !1, this._setTargetMeshVisibility(!1)), s.teleportationState.forward && this._teleportForward(i.uniqueId));\n });\n }\n };\n i.motionController ? r() : i.onMotionControllerInitObservable.addOnce(() => {\n r();\n });\n } else {\n s.teleportationState.mainComponentUsed = !0;\n let r = !1;\n const n = () => {\n this._currentTeleportationControllerId = s.xrController.uniqueId, s.teleportationState.forward = !0, s.teleportationState.initialHit = !1, s.teleportationState.baseRotation = this._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y, s.teleportationState.currentRotation = 0;\n const o = this._options.timeToTeleport || 3e3;\n np({\n timeout: o,\n contextObservable: this._xrSessionManager.onXRFrameObservable,\n onEnded: () => {\n this._currentTeleportationControllerId === s.xrController.uniqueId && s.teleportationState.forward && this._teleportForward(i.uniqueId);\n }\n });\n };\n this._xrSessionManager.scene.onPointerObservable.add((o) => {\n o.type === Pe.POINTERDOWN ? (r = !1, this._options.timeToTeleportStart ? np({\n timeout: this._options.timeToTeleportStart,\n contextObservable: this._xrSessionManager.onXRFrameObservable,\n onEnded: () => {\n this._currentTeleportationControllerId === s.xrController.uniqueId && n();\n },\n breakCondition: () => r ? (r = !1, !0) : !1\n }) : n()) : o.type === Pe.POINTERUP && (r = !0, s.teleportationState.forward = !1, this._currentTeleportationControllerId = \"\");\n });\n }\n }, this._colorArray = Array(24).fill(this._cachedColor4White), this._options.teleportationTargetMesh || this._createDefaultTargetMesh(), this._floorMeshes = this._options.floorMeshes || [], this._snapToPositions = this._options.snapPositions || [], this._blockedRayColor = this._options.blockedRayColor || new Ce(1, 0, 0, 0.75), this._setTargetMeshVisibility(!1), this.onBeforeCameraTeleport = t.xrInput.xrCamera.onBeforeCameraTeleport, this.onAfterCameraTeleport = t.xrInput.xrCamera.onAfterCameraTeleport, this.parabolicCheckRadius *= this._xrSessionManager.worldScalingFactor, this._worldScaleObserver = e.onWorldScaleFactorChangedObservable.add((i) => {\n var s;\n this.parabolicCheckRadius = this.parabolicCheckRadius / i.previousScaleFactor * i.newScaleFactor, (s = this._options.teleportationTargetMesh) == null || s.scaling.scaleInPlace(i.newScaleFactor / i.previousScaleFactor);\n });\n }\n /**\n * Get the snapPointsOnly flag\n */\n get snapPointsOnly() {\n return !!this._options.snapPointsOnly;\n }\n /**\n * Sets the snapPointsOnly flag\n * @param snapToPoints should teleportation be exclusively to snap points\n */\n set snapPointsOnly(e) {\n this._options.snapPointsOnly = e;\n }\n /**\n * Add a new mesh to the floor meshes array\n * @param mesh the mesh to use as floor mesh\n */\n addFloorMesh(e) {\n this._floorMeshes.push(e);\n }\n /**\n * Add a mesh to the list of meshes blocking the teleportation ray\n * @param mesh The mesh to add to the teleportation-blocking meshes\n */\n addBlockerMesh(e) {\n this._options.pickBlockerMeshes = this._options.pickBlockerMeshes || [], this._options.pickBlockerMeshes.push(e);\n }\n /**\n * Add a new snap-to point to fix teleportation to this position\n * @param newSnapPoint The new Snap-To point\n */\n addSnapPoint(e) {\n this._snapToPositions.push(e);\n }\n attach() {\n return super.attach() ? (this._currentTeleportationControllerId = \"\", this._options.xrInput.controllers.forEach(this._attachController), this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable, this._attachController), this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable, (e) => {\n this._detachController(e.uniqueId);\n }), !0) : !1;\n }\n detach() {\n return super.detach() ? (Object.keys(this._controllers).forEach((e) => {\n this._detachController(e);\n }), this._setTargetMeshVisibility(!1), this._currentTeleportationControllerId = \"\", this._controllers = {}, !0) : !1;\n }\n dispose() {\n super.dispose(), this._options.teleportationTargetMesh && this._options.teleportationTargetMesh.dispose(!1, !0), this._worldScaleObserver && this._xrSessionManager.onWorldScaleFactorChangedObservable.remove(this._worldScaleObserver);\n }\n /**\n * Remove a mesh from the floor meshes array\n * @param mesh the mesh to remove\n */\n removeFloorMesh(e) {\n const t = this._floorMeshes.indexOf(e);\n t !== -1 && this._floorMeshes.splice(t, 1);\n }\n /**\n * Remove a mesh from the blocker meshes array\n * @param mesh the mesh to remove\n */\n removeBlockerMesh(e) {\n this._options.pickBlockerMeshes = this._options.pickBlockerMeshes || [];\n const t = this._options.pickBlockerMeshes.indexOf(e);\n t !== -1 && this._options.pickBlockerMeshes.splice(t, 1);\n }\n /**\n * Remove a mesh from the floor meshes array using its name\n * @param name the mesh name to remove\n */\n removeFloorMeshByName(e) {\n const t = this._xrSessionManager.scene.getMeshByName(e);\n t && this.removeFloorMesh(t);\n }\n /**\n * This function will iterate through the array, searching for this point or equal to it. It will then remove it from the snap-to array\n * @param snapPointToRemove the point (or a clone of it) to be removed from the array\n * @returns was the point found and removed or not\n */\n removeSnapPoint(e) {\n let t = this._snapToPositions.indexOf(e);\n if (t === -1) {\n for (let i = 0; i < this._snapToPositions.length; ++i)\n if (this._snapToPositions[i].equals(e)) {\n t = i;\n break;\n }\n }\n return t !== -1 ? (this._snapToPositions.splice(t, 1), !0) : !1;\n }\n /**\n * This function sets a selection feature that will be disabled when\n * the forward ray is shown and will be reattached when hidden.\n * This is used to remove the selection rays when moving.\n * @param selectionFeature the feature to disable when forward movement is enabled\n */\n setSelectionFeature(e) {\n this._selectionFeature = e;\n }\n _onXRFrame(e) {\n const t = this._xrSessionManager.currentFrame, i = this._xrSessionManager.scene;\n if (!this.attach || !t)\n return;\n const s = this._options.teleportationTargetMesh;\n if (this._currentTeleportationControllerId) {\n if (!s)\n return;\n s.rotationQuaternion = s.rotationQuaternion || new se();\n const r = this._controllers[this._currentTeleportationControllerId];\n if (r && r.teleportationState.forward) {\n se.RotationYawPitchRollToRef(r.teleportationState.currentRotation + r.teleportationState.baseRotation, 0, 0, s.rotationQuaternion);\n let n = !1;\n const o = r.xrController.inputSource.targetRayMode !== \"transient-pointer\";\n if (r.xrController.getWorldPointerRayToRef(this._tmpRay), this.straightRayEnabled) {\n const l = i.pickWithRay(this._tmpRay, (c) => {\n if (this._options.blockerMeshesPredicate && this._options.blockerMeshesPredicate(c) || this._options.blockAllPickableMeshes && c.isPickable || this._options.pickBlockerMeshes && this._options.pickBlockerMeshes.indexOf(c) !== -1)\n return !0;\n const u = this._floorMeshes.indexOf(c);\n return u === -1 ? !1 : this._floorMeshes[u].absolutePosition.y < this._options.xrInput.xrCamera.globalPosition.y;\n }), h = l && l.pickedMesh && this._floorMeshes.indexOf(l.pickedMesh) !== -1;\n if (l && l.pickedMesh && !h) {\n if (r.teleportationState.mainComponentUsed && !r.teleportationState.initialHit) {\n r.teleportationState.forward = !1;\n return;\n }\n r.teleportationState.blocked = !0, this._setTargetMeshVisibility(!1, !1, o), this._showParabolicPath(l);\n return;\n } else l && l.pickedPoint && (r.teleportationState.initialHit = !0, r.teleportationState.blocked = !1, n = !0, this._setTargetMeshPosition(l), this._setTargetMeshVisibility(!0, !1, o), this._showParabolicPath(l));\n }\n if (this.parabolicRayEnabled && !n) {\n const l = r.xrController.pointer.rotationQuaternion.toEulerAngles().x, h = 1 + (Math.PI / 2 - Math.abs(l)), c = this.parabolicCheckRadius * h;\n this._tmpRay.origin.addToRef(this._tmpRay.direction.scale(c * 2), this._tmpVector), this._tmpVector.y = this._tmpRay.origin.y, this._tmpRay.origin.addInPlace(this._tmpRay.direction.scale(c)), this._tmpVector.subtractToRef(this._tmpRay.origin, this._tmpRay.direction), this._tmpRay.direction.normalize();\n const u = i.pickWithRay(this._tmpRay, (f) => this._options.blockerMeshesPredicate && this._options.blockerMeshesPredicate(f) || this._options.blockAllPickableMeshes && f.isPickable || this._options.pickBlockerMeshes && this._options.pickBlockerMeshes.indexOf(f) !== -1 ? !0 : this._floorMeshes.indexOf(f) !== -1), d = u && u.pickedMesh && this._floorMeshes.indexOf(u.pickedMesh) !== -1;\n if (u && u.pickedMesh && !d) {\n if (r.teleportationState.mainComponentUsed && !r.teleportationState.initialHit) {\n r.teleportationState.forward = !1;\n return;\n }\n r.teleportationState.blocked = !0, this._setTargetMeshVisibility(!1, !1, o), this._showParabolicPath(u);\n return;\n } else u && u.pickedPoint && (r.teleportationState.initialHit = !0, r.teleportationState.blocked = !1, n = !0, this._setTargetMeshPosition(u), this._setTargetMeshVisibility(!0, !1, o), this._showParabolicPath(u));\n }\n this._setTargetMeshVisibility(n, !1, o);\n } else\n this._setTargetMeshVisibility(!1, !1, !0);\n } else\n this._disposeBezierCurve(), this._setTargetMeshVisibility(!1, !1, !0);\n }\n _createDefaultTargetMesh() {\n this._options.defaultTargetMeshOptions = this._options.defaultTargetMeshOptions || {};\n const e = this._options.useUtilityLayer ? this._options.customUtilityLayerScene || Ci.DefaultUtilityLayer.utilityLayerScene : this._xrSessionManager.scene, t = Sf(\"teleportationTarget\", { width: 2, height: 2, subdivisions: 2 }, e);\n if (t.isPickable = !1, this._options.defaultTargetMeshOptions.teleportationCircleMaterial)\n t.material = this._options.defaultTargetMeshOptions.teleportationCircleMaterial;\n else {\n const n = new ea(\"teleportationPlaneDynamicTexture\", 512, e, !0);\n n.hasAlpha = !0;\n const o = n.getContext(), l = 512 / 2, h = 512 / 2, c = 200;\n o.beginPath(), o.arc(l, h, c, 0, 2 * Math.PI, !1), o.fillStyle = this._options.defaultTargetMeshOptions.teleportationFillColor || \"#444444\", o.fill(), o.lineWidth = 10, o.strokeStyle = this._options.defaultTargetMeshOptions.teleportationBorderColor || \"#FFFFFF\", o.stroke(), o.closePath(), n.update();\n const u = new ye(\"teleportationPlaneMaterial\", e);\n u.diffuseTexture = n, t.material = u;\n }\n const i = Da(\"torusTeleportation\", {\n diameter: 0.75,\n thickness: 0.1,\n tessellation: 20\n }, e);\n if (i.isPickable = !1, i.parent = t, !this._options.defaultTargetMeshOptions.disableAnimation) {\n const r = new oe(\"animationInnerCircle\", \"position.y\", 30, oe.ANIMATIONTYPE_FLOAT, oe.ANIMATIONLOOPMODE_CYCLE), n = [];\n n.push({\n frame: 0,\n value: 0\n }), n.push({\n frame: 30,\n value: 0.4\n }), n.push({\n frame: 60,\n value: 0\n }), r.setKeys(n);\n const o = new QC();\n o.setEasingMode(Ti.EASINGMODE_EASEINOUT), r.setEasingFunction(o), i.animations = [], i.animations.push(r), e.beginAnimation(i, 0, 60, !0);\n }\n const s = hn(\"rotationCone\", { diameterTop: 0, tessellation: 4 }, e);\n if (s.isPickable = !1, s.scaling.set(0.5, 0.12, 0.2), s.rotate(zs.X, Math.PI / 2), s.position.z = 0.6, s.parent = i, this._options.defaultTargetMeshOptions.torusArrowMaterial)\n i.material = this._options.defaultTargetMeshOptions.torusArrowMaterial, s.material = this._options.defaultTargetMeshOptions.torusArrowMaterial;\n else {\n const r = new ye(\"torusConsMat\", e);\n r.disableLighting = !!this._options.defaultTargetMeshOptions.disableLighting, r.disableLighting ? r.emissiveColor = new re(0.3, 0.3, 1) : r.diffuseColor = new re(0.3, 0.3, 1), r.alpha = 0.9, i.material = r, s.material = r, this._teleportationRingMaterial = r;\n }\n this._options.renderingGroupId !== void 0 && (t.renderingGroupId = this._options.renderingGroupId, i.renderingGroupId = this._options.renderingGroupId, s.renderingGroupId = this._options.renderingGroupId), this._options.teleportationTargetMesh = t, this._options.teleportationTargetMesh.scaling.setAll(this._xrSessionManager.worldScalingFactor), this._setTargetMeshVisibility(!1);\n }\n _detachController(e) {\n const t = this._controllers[e];\n t && (t.teleportationComponent && (t.onAxisChangedObserver && t.teleportationComponent.onAxisValueChangedObservable.remove(t.onAxisChangedObserver), t.onButtonChangedObserver && t.teleportationComponent.onButtonStateChangedObservable.remove(t.onButtonChangedObserver)), delete this._controllers[e]);\n }\n _findClosestSnapPointWithRadius(e, t = this._options.snapToPositionRadius || 0.8) {\n let i = null, s = Number.MAX_VALUE;\n if (this._snapToPositions.length) {\n const r = t * t;\n this._snapToPositions.forEach((n) => {\n const o = g.DistanceSquared(n, e);\n o <= r && o < s && (s = o, i = n);\n });\n }\n return i;\n }\n _setTargetMeshPosition(e) {\n const t = e.pickedPoint;\n if (!this._options.teleportationTargetMesh || !t)\n return;\n const i = this._findClosestSnapPointWithRadius(t);\n this._snappedToPoint = !!i, this.snapPointsOnly && !this._snappedToPoint && this._teleportationRingMaterial ? this._teleportationRingMaterial.diffuseColor.set(1, 0.3, 0.3) : this.snapPointsOnly && this._snappedToPoint && this._teleportationRingMaterial && this._teleportationRingMaterial.diffuseColor.set(0.3, 0.3, 1), this._options.teleportationTargetMesh.position.copyFrom(i || t), this._options.teleportationTargetMesh.position.y += 0.01, this.onTargetMeshPositionUpdatedObservable.notifyObservers(e);\n }\n _setTargetMeshVisibility(e, t, i) {\n this._options.teleportationTargetMesh && (this._options.teleportationTargetMesh.isVisible === e && !t || (this._options.teleportationTargetMesh.isVisible = e, this._options.teleportationTargetMesh.getChildren(void 0, !1).forEach((s) => {\n s.isVisible = e;\n }), e ? this._selectionFeature && i && this._selectionFeature.detach() : (this._quadraticBezierCurve && (this._quadraticBezierCurve.dispose(), this._quadraticBezierCurve = null), this._selectionFeature && i && this._selectionFeature.attach())));\n }\n _disposeBezierCurve() {\n this._quadraticBezierCurve && (this._quadraticBezierCurve.dispose(), this._quadraticBezierCurve = null);\n }\n _showParabolicPath(e) {\n if (!e.pickedPoint || !this._currentTeleportationControllerId)\n return;\n const t = this._options.useUtilityLayer ? this._options.customUtilityLayerScene || Ci.DefaultUtilityLayer.utilityLayerScene : this._xrSessionManager.scene, i = this._controllers[this._currentTeleportationControllerId], s = _a.CreateQuadraticBezier(i.xrController.pointer.absolutePosition, e.ray.origin, e.pickedPoint, 25), r = i.teleportationState.blocked ? this._blockedRayColor : void 0, n = this._colorArray.fill(r || this._cachedColor4White), o = s.getPoints();\n o.shift(), o.shift(), this._options.generateRayPathMesh ? this._quadraticBezierCurve = this._options.generateRayPathMesh(s.getPoints(), e) : this._quadraticBezierCurve = Wo(\"teleportation path line\", { points: o, instance: this._quadraticBezierCurve, updatable: !0, colors: n }, t), this._quadraticBezierCurve.isPickable = !1, this._options.renderingGroupId !== void 0 && (this._quadraticBezierCurve.renderingGroupId = this._options.renderingGroupId);\n }\n _teleportForward(e) {\n const t = this._controllers[e];\n if (!(!t || !t.teleportationState.forward || !this.teleportationEnabled) && (t.teleportationState.forward = !1, this._currentTeleportationControllerId = \"\", !(this.snapPointsOnly && !this._snappedToPoint))) {\n if (this.skipNextTeleportation) {\n this.skipNextTeleportation = !1;\n return;\n }\n if (this._options.teleportationTargetMesh && this._options.teleportationTargetMesh.isVisible) {\n const i = this._options.xrInput.xrCamera.realWorldHeight;\n this.onBeforeCameraTeleport.notifyObservers(this._options.xrInput.xrCamera.position), this._options.xrInput.xrCamera.position.copyFrom(this._options.teleportationTargetMesh.position), this._options.xrInput.xrCamera.position.y += i, se.FromEulerAngles(0, t.teleportationState.currentRotation - (this._xrSessionManager.scene.useRightHandedSystem ? Math.PI : 0), 0).multiplyToRef(this._options.xrInput.xrCamera.rotationQuaternion, this._options.xrInput.xrCamera.rotationQuaternion), this.onAfterCameraTeleport.notifyObservers(this._options.xrInput.xrCamera.position);\n }\n }\n }\n}\nAl.Name = Tt.TELEPORTATION;\nAl.Version = 1;\nRi.AddWebXRFeature(Al.Name, (a, e) => () => new Al(a, e), Al.Version, !0);\nclass kV {\n}\nclass J_ {\n constructor() {\n }\n /**\n * Creates the default xr experience\n * @param scene scene\n * @param options options for basic configuration\n * @returns resulting WebXRDefaultExperience\n */\n static CreateAsync(e, t = {}) {\n const i = new J_();\n if (e.onDisposeObservable.addOnce(() => {\n i.dispose();\n }), !t.disableDefaultUI) {\n const s = {\n renderTarget: i.renderTarget,\n ...t.uiOptions || {}\n };\n t.optionalFeatures && (typeof t.optionalFeatures == \"boolean\" ? s.optionalFeatures = [\"hit-test\", \"anchors\", \"plane-detection\", \"hand-tracking\"] : s.optionalFeatures = t.optionalFeatures), i.enterExitUI = new Z_(e, s);\n }\n return vf.CreateAsync(e).then((s) => {\n if (i.baseExperience = s, t.ignoreNativeCameraTransformation && (i.baseExperience.camera.compensateOnFirstFrame = !1), i.input = new Q0(s.sessionManager, s.camera, {\n controllerOptions: {\n renderingGroupId: t.renderingGroupId\n },\n ...t.inputOptions || {}\n }), !t.disablePointerSelection) {\n const r = {\n ...t.pointerSelectionOptions,\n xrInput: i.input,\n renderingGroupId: t.renderingGroupId\n };\n i.pointerSelection = i.baseExperience.featuresManager.enableFeature(ta.Name, t.useStablePlugins ? \"stable\" : \"latest\", r), t.disableTeleportation || (i.teleportation = i.baseExperience.featuresManager.enableFeature(Al.Name, t.useStablePlugins ? \"stable\" : \"latest\", {\n floorMeshes: t.floorMeshes,\n xrInput: i.input,\n renderingGroupId: t.renderingGroupId,\n ...t.teleportationOptions\n }), i.teleportation.setSelectionFeature(i.pointerSelection));\n }\n if (t.disableNearInteraction || (i.nearInteraction = i.baseExperience.featuresManager.enableFeature(ia.Name, t.useStablePlugins ? \"stable\" : \"latest\", {\n xrInput: i.input,\n farInteractionFeature: i.pointerSelection,\n renderingGroupId: t.renderingGroupId,\n useUtilityLayer: !0,\n enableNearInteractionOnAllControllers: !0,\n ...t.nearInteractionOptions\n })), t.disableHandTracking || i.baseExperience.featuresManager.enableFeature(jt.Name, t.useStablePlugins ? \"stable\" : \"latest\", {\n xrInput: i.input,\n ...t.handSupportOptions\n }, void 0, !1), i.renderTarget = i.baseExperience.sessionManager.getWebXRRenderTarget(t.outputCanvasOptions), !t.disableDefaultUI)\n return i.enterExitUI.setHelperAsync(i.baseExperience, i.renderTarget);\n }).then(() => i).catch((s) => (L.Error(\"Error initializing XR\"), L.Error(s), i));\n }\n /**\n * Disposes of the experience helper\n */\n dispose() {\n this.baseExperience && this.baseExperience.dispose(), this.input && this.input.dispose(), this.enterExitUI && this.enterExitUI.dispose(), this.renderTarget && this.renderTarget.dispose();\n }\n}\nvar UK = !0;\nDe.prototype.createDefaultLight = function(a = !1) {\n if (a && this.lights)\n for (let e = 0; e < this.lights.length; e++)\n this.lights[e].dispose();\n this.lights.length === 0 && new Gl(\"default light\", g.Up(), this);\n};\nDe.prototype.createDefaultCamera = function(a = !1, e = !1, t = !1) {\n if (e && this.activeCamera && (this.activeCamera.dispose(), this.activeCamera = null), !this.activeCamera) {\n const i = this.getWorldExtends((l) => l.isVisible && l.isEnabled()), s = i.max.subtract(i.min), r = i.min.add(s.scale(0.5));\n let n, o = s.length() * 1.5;\n if (isFinite(o) || (o = 1, r.copyFromFloats(0, 0, 0)), a) {\n const l = new ri(\"default camera\", -(Math.PI / 2), Math.PI / 2, o, r, this);\n l.lowerRadiusLimit = o * 0.01, l.wheelPrecision = 100 / o, n = l;\n } else {\n const l = new cn(\"default camera\", new g(r.x, r.y, -o), this);\n l.setTarget(r), n = l;\n }\n n.minZ = o * 0.01, n.maxZ = o * 1e3, n.speed = o * 0.2, this.activeCamera = n, t && n.attachControl();\n }\n};\nDe.prototype.createDefaultCameraOrLight = function(a = !1, e = !1, t = !1) {\n this.createDefaultLight(e), this.createDefaultCamera(a, e, t);\n};\nDe.prototype.createDefaultSkybox = function(a, e = !1, t = 1e3, i = 0, s = !0) {\n if (!a)\n return L.Warn(\"Can not create default skybox without environment texture.\"), null;\n s && a && (this.environmentTexture = a);\n const r = Bl(\"hdrSkyBox\", { size: t }, this);\n if (e) {\n const n = new qe(\"skyBox\", this);\n n.backFaceCulling = !1, n.reflectionTexture = a.clone(), n.reflectionTexture && (n.reflectionTexture.coordinatesMode = X.SKYBOX_MODE), n.microSurface = 1 - i, n.disableLighting = !0, n.twoSidedLighting = !0, r.material = n;\n } else {\n const n = new ye(\"skyBox\", this);\n n.backFaceCulling = !1, n.reflectionTexture = a.clone(), n.reflectionTexture && (n.reflectionTexture.coordinatesMode = X.SKYBOX_MODE), n.disableLighting = !0, r.material = n;\n }\n return r.isPickable = !1, r.infiniteDistance = !0, r.ignoreCameraMaxZ = !0, r;\n};\nDe.prototype.createDefaultEnvironment = function(a) {\n return Ml ? new Ml(a, this) : null;\n};\nDe.prototype.createDefaultVRExperience = function(a = {}) {\n return new Kh(this, a);\n};\nDe.prototype.createDefaultXRExperienceAsync = function(a = {}) {\n return J_.CreateAsync(this, a).then((e) => e);\n};\nclass Rv extends Mr {\n /**\n * Get the video texture associated with this video dome\n */\n get videoTexture() {\n return this._texture;\n }\n /**\n * Get the video mode of this dome\n */\n get videoMode() {\n return this.textureMode;\n }\n /**\n * Set the video mode of this dome.\n * @see textureMode\n */\n set videoMode(e) {\n this.textureMode = e;\n }\n _initTexture(e, t, i) {\n const s = { loop: i.loop, autoPlay: i.autoPlay, autoUpdateTexture: !0, poster: i.poster }, r = new vr((this.name || \"videoDome\") + \"_texture\", e, t, i.generateMipMaps, this._useDirectMapping, X.TRILINEAR_SAMPLINGMODE, s);\n return i.clickToPlay && (this._pointerObserver = t.onPointerObservable.add((n) => {\n var o;\n ((o = n.pickInfo) == null ? void 0 : o.pickedMesh) === this.mesh && this._texture.video.play();\n }, Pe.POINTERDOWN)), this._textureObserver = r.onLoadObservable.add(() => {\n this.onLoadObservable.notifyObservers();\n }), r;\n }\n /**\n * Releases resources associated with this node.\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\n */\n dispose(e, t = !1) {\n this._texture.onLoadObservable.remove(this._textureObserver), this._scene.onPointerObservable.remove(this._pointerObserver), super.dispose(e, t);\n }\n}\nRv.MODE_MONOSCOPIC = Mr.MODE_MONOSCOPIC;\nRv.MODE_TOPBOTTOM = Mr.MODE_TOPBOTTOM;\nRv.MODE_SIDEBYSIDE = Mr.MODE_SIDEBYSIDE;\nconst GV = \"glowMapGenerationPixelShader\", zV = `#if defined(DIFFUSE_ISLINEAR) || defined(EMISSIVE_ISLINEAR)\n#include\n#endif\n#ifdef DIFFUSE\nvarying vec2 vUVDiffuse;uniform sampler2D diffuseSampler;\n#endif\n#ifdef OPACITY\nvarying vec2 vUVOpacity;uniform sampler2D opacitySampler;uniform float opacityIntensity;\n#endif\n#ifdef EMISSIVE\nvarying vec2 vUVEmissive;uniform sampler2D emissiveSampler;\n#endif\n#ifdef VERTEXALPHA\nvarying vec4 vColor;\n#endif\nuniform vec4 glowColor;uniform float glowIntensity;\n#include\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{\n#include\nvec4 finalColor=glowColor;\n#ifdef DIFFUSE\nvec4 albedoTexture=texture2D(diffuseSampler,vUVDiffuse);\n#ifdef DIFFUSE_ISLINEAR\nalbedoTexture=toGammaSpace(albedoTexture);\n#endif\n#ifdef GLOW\nfinalColor.a*=albedoTexture.a;\n#endif\n#ifdef HIGHLIGHT\nfinalColor.a=albedoTexture.a;\n#endif\n#endif\n#ifdef OPACITY\nvec4 opacityMap=texture2D(opacitySampler,vUVOpacity);\n#ifdef OPACITYRGB\nfinalColor.a*=getLuminance(opacityMap.rgb);\n#else\nfinalColor.a*=opacityMap.a;\n#endif\nfinalColor.a*=opacityIntensity;\n#endif\n#ifdef VERTEXALPHA\nfinalColor.a*=vColor.a;\n#endif\n#ifdef ALPHATEST\nif (finalColor.a\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include\nuniform mat4 viewProjection;varying vec4 vPosition;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#ifdef DIFFUSE\nvarying vec2 vUVDiffuse;uniform mat4 diffuseMatrix;\n#endif\n#ifdef OPACITY\nvarying vec2 vUVOpacity;uniform mat4 opacityMatrix;\n#endif\n#ifdef EMISSIVE\nvarying vec2 vUVEmissive;uniform mat4 emissiveMatrix;\n#endif\n#ifdef VERTEXALPHA\nattribute vec4 color;varying vec4 vColor;\n#endif\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void)\n{vec3 positionUpdated=position;\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include\n#include\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);\n#ifdef CUBEMAP\nvPosition=worldPos;gl_Position=viewProjection*finalWorld*vec4(position,1.0);\n#else\nvPosition=viewProjection*worldPos;gl_Position=vPosition;\n#endif\n#ifdef DIFFUSE\n#ifdef DIFFUSEUV1\nvUVDiffuse=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef DIFFUSEUV2\nvUVDiffuse=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n#ifdef OPACITY\n#ifdef OPACITYUV1\nvUVOpacity=vec2(opacityMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef OPACITYUV2\nvUVOpacity=vec2(opacityMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n#ifdef EMISSIVE\n#ifdef EMISSIVEUV1\nvUVEmissive=vec2(emissiveMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef EMISSIVEUV2\nvUVEmissive=vec2(emissiveMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n#ifdef VERTEXALPHA\nvColor=color;\n#endif\n#include\n}`;\nz.ShadersStore[WV] = HV;\nclass En {\n /**\n * Gets the camera attached to the layer.\n */\n get camera() {\n return this._effectLayerOptions.camera;\n }\n /**\n * Gets the rendering group id the layer should render in.\n */\n get renderingGroupId() {\n return this._effectLayerOptions.renderingGroupId;\n }\n set renderingGroupId(e) {\n this._effectLayerOptions.renderingGroupId = e;\n }\n /**\n * Gets the main texture where the effect is rendered\n */\n get mainTexture() {\n return this._mainTexture;\n }\n /**\n * Sets a specific material to be used to render a mesh/a list of meshes in the layer\n * @param mesh mesh or array of meshes\n * @param material material to use by the layer when rendering the mesh(es). If undefined is passed, the specific material created by the layer will be used.\n */\n setMaterialForRendering(e, t) {\n if (this._mainTexture.setMaterialForRendering(e, t), Array.isArray(e))\n for (let i = 0; i < e.length; ++i) {\n const s = e[i];\n t ? this._materialForRendering[s.uniqueId] = [s, t] : delete this._materialForRendering[s.uniqueId];\n }\n else\n t ? this._materialForRendering[e.uniqueId] = [e, t] : delete this._materialForRendering[e.uniqueId];\n }\n /**\n * Gets the intensity of the effect for a specific mesh.\n * @param mesh The mesh to get the effect intensity for\n * @returns The intensity of the effect for the mesh\n */\n getEffectIntensity(e) {\n return this._effectIntensity[e.uniqueId] ?? 1;\n }\n /**\n * Sets the intensity of the effect for a specific mesh.\n * @param mesh The mesh to set the effect intensity for\n * @param intensity The intensity of the effect for the mesh\n */\n setEffectIntensity(e, t) {\n this._effectIntensity[e.uniqueId] = t;\n }\n /**\n * Instantiates a new effect Layer and references it in the scene.\n * @param name The name of the layer\n * @param scene The scene to use the layer in\n */\n constructor(e, t) {\n this._vertexBuffers = {}, this._maxSize = 0, this._mainTextureDesiredSize = { width: 0, height: 0 }, this._shouldRender = !0, this._postProcesses = [], this._textures = [], this._emissiveTextureAndColor = { texture: null, color: new Ce() }, this._effectIntensity = {}, this.neutralColor = new Ce(), this.isEnabled = !0, this.disableBoundingBoxesFromEffectLayer = !1, this.onDisposeObservable = new G(), this.onBeforeRenderMainTextureObservable = new G(), this.onBeforeComposeObservable = new G(), this.onBeforeRenderMeshToEffect = new G(), this.onAfterRenderMeshToEffect = new G(), this.onAfterComposeObservable = new G(), this.onSizeChangedObservable = new G(), this._materialForRendering = {}, this.name = e, this._scene = t || Me.LastCreatedScene, En._SceneComponentInitialization(this._scene), this._engine = this._scene.getEngine(), this._maxSize = this._engine.getCaps().maxTextureSize, this._scene.effectLayers.push(this), this._mergeDrawWrapper = [], this._generateIndexBuffer(), this._generateVertexBuffer();\n }\n /**\n * Number of times _internalRender will be called. Some effect layers need to render the mesh several times, so they should override this method with the number of times the mesh should be rendered\n * @returns Number of times a mesh must be rendered in the layer\n */\n _numInternalDraws() {\n return 1;\n }\n /**\n * Initializes the effect layer with the required options.\n * @param options Sets of none mandatory options to use with the layer (see IEffectLayerOptions for more information)\n */\n _init(e) {\n this._effectLayerOptions = {\n mainTextureRatio: 0.5,\n alphaBlendingMode: 2,\n camera: null,\n renderingGroupId: -1,\n mainTextureType: 0,\n generateStencilBuffer: !1,\n ...e\n }, this._setMainTextureSize(), this._createMainTexture(), this._createTextureAndPostProcesses();\n }\n /**\n * Generates the index buffer of the full screen quad blending to the main canvas.\n */\n _generateIndexBuffer() {\n const e = [];\n e.push(0), e.push(1), e.push(2), e.push(0), e.push(2), e.push(3), this._indexBuffer = this._engine.createIndexBuffer(e);\n }\n /**\n * Generates the vertex buffer of the full screen quad blending to the main canvas.\n */\n _generateVertexBuffer() {\n const e = [];\n e.push(1, 1), e.push(-1, 1), e.push(-1, -1), e.push(1, -1);\n const t = new R(this._engine, e, R.PositionKind, !1, !1, 2);\n this._vertexBuffers[R.PositionKind] = t;\n }\n /**\n * Sets the main texture desired size which is the closest power of two\n * of the engine canvas size.\n */\n _setMainTextureSize() {\n this._effectLayerOptions.mainTextureFixedSize ? (this._mainTextureDesiredSize.width = this._effectLayerOptions.mainTextureFixedSize, this._mainTextureDesiredSize.height = this._effectLayerOptions.mainTextureFixedSize) : (this._mainTextureDesiredSize.width = this._engine.getRenderWidth() * this._effectLayerOptions.mainTextureRatio, this._mainTextureDesiredSize.height = this._engine.getRenderHeight() * this._effectLayerOptions.mainTextureRatio, this._mainTextureDesiredSize.width = this._engine.needPOTTextures ? Dr(this._mainTextureDesiredSize.width, this._maxSize) : this._mainTextureDesiredSize.width, this._mainTextureDesiredSize.height = this._engine.needPOTTextures ? Dr(this._mainTextureDesiredSize.height, this._maxSize) : this._mainTextureDesiredSize.height), this._mainTextureDesiredSize.width = Math.floor(this._mainTextureDesiredSize.width), this._mainTextureDesiredSize.height = Math.floor(this._mainTextureDesiredSize.height);\n }\n /**\n * Creates the main texture for the effect layer.\n */\n _createMainTexture() {\n this._mainTexture = new Ii(\"EffectLayerMainRTT\", {\n width: this._mainTextureDesiredSize.width,\n height: this._mainTextureDesiredSize.height\n }, this._scene, !1, !0, this._effectLayerOptions.mainTextureType, !1, X.TRILINEAR_SAMPLINGMODE, !0, this._effectLayerOptions.generateStencilBuffer), this._mainTexture.activeCamera = this._effectLayerOptions.camera, this._mainTexture.wrapU = X.CLAMP_ADDRESSMODE, this._mainTexture.wrapV = X.CLAMP_ADDRESSMODE, this._mainTexture.anisotropicFilteringLevel = 1, this._mainTexture.updateSamplingMode(X.BILINEAR_SAMPLINGMODE), this._mainTexture.renderParticles = !1, this._mainTexture.renderList = null, this._mainTexture.ignoreCameraViewport = !0;\n for (const e in this._materialForRendering) {\n const [t, i] = this._materialForRendering[e];\n this._mainTexture.setMaterialForRendering(t, i);\n }\n if (this._mainTexture.customIsReadyFunction = (e, t, i) => {\n if ((i || t === 0) && e.subMeshes)\n for (let s = 0; s < e.subMeshes.length; ++s) {\n const r = e.subMeshes[s], n = r.getMaterial(), o = r.getRenderingMesh();\n if (!n)\n continue;\n const h = o._getInstancesRenderList(r._id, !!r.getReplacementMesh()).hardwareInstancedRendering[r._id] || o.hasThinInstances;\n if (this._setEmissiveTextureAndColor(o, r, n), !this._isReady(r, h, this._emissiveTextureAndColor.texture))\n return !1;\n }\n return !0;\n }, this._mainTexture.customRenderFunction = (e, t, i, s) => {\n this.onBeforeRenderMainTextureObservable.notifyObservers(this);\n let r;\n const n = this._scene.getEngine();\n if (s.length) {\n for (n.setColorWrite(!1), r = 0; r < s.length; r++)\n this._renderSubMesh(s.data[r]);\n n.setColorWrite(!0);\n }\n for (r = 0; r < e.length; r++)\n this._renderSubMesh(e.data[r]);\n for (r = 0; r < t.length; r++)\n this._renderSubMesh(t.data[r]);\n const o = n.getAlphaMode();\n for (r = 0; r < i.length; r++)\n this._renderSubMesh(i.data[r], !0);\n n.setAlphaMode(o);\n }, this._mainTexture.onClearObservable.add((e) => {\n e.clear(this.neutralColor, !0, !0, !0);\n }), this._scene.getBoundingBoxRenderer) {\n const e = this._scene.getBoundingBoxRenderer().enabled;\n this._mainTexture.onBeforeBindObservable.add(() => {\n this._scene.getBoundingBoxRenderer().enabled = !this.disableBoundingBoxesFromEffectLayer && e;\n }), this._mainTexture.onAfterUnbindObservable.add(() => {\n this._scene.getBoundingBoxRenderer().enabled = e;\n });\n }\n }\n /**\n * Adds specific effects defines.\n * @param defines The defines to add specifics to.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _addCustomEffectDefines(e) {\n }\n /**\n * Checks for the readiness of the element composing the layer.\n * @param subMesh the mesh to check for\n * @param useInstances specify whether or not to use instances to render the mesh\n * @param emissiveTexture the associated emissive texture used to generate the glow\n * @returns true if ready otherwise, false\n */\n _isReady(e, t, i) {\n var v;\n const s = this._scene.getEngine(), r = e.getMesh(), n = (v = r._internalAbstractMeshDataInfo._materialForRenderPass) == null ? void 0 : v[s.currentRenderPassId];\n if (n)\n return n.isReadyForSubMesh(r, e, t);\n const o = e.getMaterial();\n if (!o)\n return !1;\n if (this._useMeshMaterial(e.getRenderingMesh()))\n return o.isReadyForSubMesh(e.getMesh(), e, t);\n const l = [], h = [R.PositionKind];\n let c = !1, u = !1;\n if (o) {\n const T = o.needAlphaTesting(), E = o.getAlphaTestTexture(), b = E && E.hasAlpha && (o.useAlphaFromDiffuseTexture || o._useAlphaFromAlbedoTexture);\n E && (T || b) && (l.push(\"#define DIFFUSE\"), r.isVerticesDataPresent(R.UV2Kind) && E.coordinatesIndex === 1 ? (l.push(\"#define DIFFUSEUV2\"), u = !0) : r.isVerticesDataPresent(R.UVKind) && (l.push(\"#define DIFFUSEUV1\"), c = !0), T && (l.push(\"#define ALPHATEST\"), l.push(\"#define ALPHATESTVALUE 0.4\")), E.gammaSpace || l.push(\"#define DIFFUSE_ISLINEAR\"));\n const S = o.opacityTexture;\n S && (l.push(\"#define OPACITY\"), r.isVerticesDataPresent(R.UV2Kind) && S.coordinatesIndex === 1 ? (l.push(\"#define OPACITYUV2\"), u = !0) : r.isVerticesDataPresent(R.UVKind) && (l.push(\"#define OPACITYUV1\"), c = !0));\n }\n i && (l.push(\"#define EMISSIVE\"), r.isVerticesDataPresent(R.UV2Kind) && i.coordinatesIndex === 1 ? (l.push(\"#define EMISSIVEUV2\"), u = !0) : r.isVerticesDataPresent(R.UVKind) && (l.push(\"#define EMISSIVEUV1\"), c = !0), i.gammaSpace || l.push(\"#define EMISSIVE_ISLINEAR\")), r.useVertexColors && r.isVerticesDataPresent(R.ColorKind) && r.hasVertexAlpha && o.transparencyMode !== ue.MATERIAL_OPAQUE && (h.push(R.ColorKind), l.push(\"#define VERTEXALPHA\")), c && (h.push(R.UVKind), l.push(\"#define UV1\")), u && (h.push(R.UV2Kind), l.push(\"#define UV2\"));\n const d = new Vl();\n if (r.useBones && r.computeBonesUsingShaders) {\n h.push(R.MatricesIndicesKind), h.push(R.MatricesWeightsKind), r.numBoneInfluencers > 4 && (h.push(R.MatricesIndicesExtraKind), h.push(R.MatricesWeightsExtraKind)), l.push(\"#define NUM_BONE_INFLUENCERS \" + r.numBoneInfluencers);\n const T = r.skeleton;\n T && T.isUsingTextureForMatrices ? l.push(\"#define BONETEXTURE\") : l.push(\"#define BonesPerMesh \" + (T ? T.bones.length + 1 : 0)), r.numBoneInfluencers > 0 && d.addCPUSkinningFallback(0, r);\n } else\n l.push(\"#define NUM_BONE_INFLUENCERS 0\");\n const f = r.morphTargetManager;\n let p = 0;\n f && (p = f.numMaxInfluencers || f.numInfluencers, p > 0 && (l.push(\"#define MORPHTARGETS\"), l.push(\"#define NUM_MORPH_INFLUENCERS \" + p), f.isUsingTextureForTargets && l.push(\"#define MORPHTARGETS_TEXTURE\"), mc(h, r, p))), t && (l.push(\"#define INSTANCES\"), So(h), e.getRenderingMesh().hasThinInstances && l.push(\"#define THIN_INSTANCES\")), tl(o, this._scene, l), this._addCustomEffectDefines(l);\n const _ = e._getDrawWrapper(void 0, !0), m = _.defines, x = l.join(`\n`);\n if (m !== x) {\n const T = [\n \"world\",\n \"mBones\",\n \"viewProjection\",\n \"glowColor\",\n \"morphTargetInfluences\",\n \"morphTargetCount\",\n \"boneTextureWidth\",\n \"diffuseMatrix\",\n \"emissiveMatrix\",\n \"opacityMatrix\",\n \"opacityIntensity\",\n \"morphTargetTextureInfo\",\n \"morphTargetTextureIndices\",\n \"glowIntensity\"\n ];\n Ln(T), _.setEffect(this._engine.createEffect(\"glowMapGeneration\", h, T, [\"diffuseSampler\", \"emissiveSampler\", \"opacitySampler\", \"boneSampler\", \"morphTargets\"], x, d, void 0, void 0, { maxSimultaneousMorphTargets: p }), x);\n }\n return _.effect.isReady();\n }\n /**\n * Renders the glowing part of the scene by blending the blurred glowing meshes on top of the rendered scene.\n */\n render() {\n for (let n = 0; n < this._postProcesses.length; n++)\n if (!this._postProcesses[n].isReady())\n return;\n const e = this._scene.getEngine(), t = this._numInternalDraws();\n let i = !0;\n for (let n = 0; n < t; ++n) {\n let o = this._mergeDrawWrapper[n];\n o || (o = this._mergeDrawWrapper[n] = new Ds(this._engine), o.setEffect(this._createMergeEffect())), i = i && o.effect.isReady();\n }\n if (!i)\n return;\n this.onBeforeComposeObservable.notifyObservers(this);\n const s = e.getAlphaMode();\n for (let n = 0; n < t; ++n) {\n const o = this._mergeDrawWrapper[n];\n e.enableEffect(o), e.setState(!1), e.bindBuffers(this._vertexBuffers, this._indexBuffer, o.effect), e.setAlphaMode(this._effectLayerOptions.alphaBlendingMode), this._internalRender(o.effect, n);\n }\n e.setAlphaMode(s), this.onAfterComposeObservable.notifyObservers(this);\n const r = this._mainTexture.getSize();\n this._setMainTextureSize(), (r.width !== this._mainTextureDesiredSize.width || r.height !== this._mainTextureDesiredSize.height) && this._mainTextureDesiredSize.width !== 0 && this._mainTextureDesiredSize.height !== 0 && (this.onSizeChangedObservable.notifyObservers(this), this._disposeTextureAndPostProcesses(), this._createMainTexture(), this._createTextureAndPostProcesses());\n }\n /**\n * Determine if a given mesh will be used in the current effect.\n * @param mesh mesh to test\n * @returns true if the mesh will be used\n */\n hasMesh(e) {\n return this.renderingGroupId === -1 || e.renderingGroupId === this.renderingGroupId;\n }\n /**\n * Returns true if the layer contains information to display, otherwise false.\n * @returns true if the glow layer should be rendered\n */\n shouldRender() {\n return this.isEnabled && this._shouldRender;\n }\n /**\n * Returns true if the mesh should render, otherwise false.\n * @param mesh The mesh to render\n * @returns true if it should render otherwise false\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _shouldRenderMesh(e) {\n return !0;\n }\n /**\n * Returns true if the mesh can be rendered, otherwise false.\n * @param mesh The mesh to render\n * @param material The material used on the mesh\n * @returns true if it can be rendered otherwise false\n */\n _canRenderMesh(e, t) {\n return !t.needAlphaBlendingForMesh(e);\n }\n /**\n * Returns true if the mesh should render, otherwise false.\n * @returns true if it should render otherwise false\n */\n _shouldRenderEmissiveTextureForMesh() {\n return !0;\n }\n /**\n * Renders the submesh passed in parameter to the generation map.\n * @param subMesh\n * @param enableAlphaMode\n */\n _renderSubMesh(e, t = !1) {\n var _;\n if (!this.shouldRender())\n return;\n const i = e.getMaterial(), s = e.getMesh(), r = e.getReplacementMesh(), n = e.getRenderingMesh(), o = e.getEffectiveMesh(), l = this._scene, h = l.getEngine();\n if (o._internalAbstractMeshDataInfo._isActiveIntermediate = !1, !i || !this._canRenderMesh(n, i))\n return;\n let c = i._getEffectiveOrientation(n);\n o._getWorldMatrixDeterminant() < 0 && (c = c === ue.ClockWiseSideOrientation ? ue.CounterClockWiseSideOrientation : ue.ClockWiseSideOrientation);\n const d = c === ue.ClockWiseSideOrientation;\n h.setState(i.backFaceCulling, i.zOffset, void 0, d, i.cullBackFaces, void 0, i.zOffsetUnits);\n const f = n._getInstancesRenderList(e._id, !!r);\n if (f.mustReturn || !this._shouldRenderMesh(n))\n return;\n const p = f.hardwareInstancedRendering[e._id] || n.hasThinInstances;\n if (this._setEmissiveTextureAndColor(n, e, i), this.onBeforeRenderMeshToEffect.notifyObservers(s), this._useMeshMaterial(n))\n n.render(e, t, r || void 0);\n else if (this._isReady(e, p, this._emissiveTextureAndColor.texture)) {\n const m = (_ = o._internalAbstractMeshDataInfo._materialForRenderPass) == null ? void 0 : _[h.currentRenderPassId];\n let x = e._getDrawWrapper();\n if (!x && m && (x = m._getDrawWrapper()), !x)\n return;\n const v = x.effect;\n if (h.enableEffect(x), p || n._bind(e, v, i.fillMode), m ? m.bindForSubMesh(o.getWorldMatrix(), o, e) : (v.setMatrix(\"viewProjection\", l.getTransformMatrix()), v.setMatrix(\"world\", o.getWorldMatrix()), v.setFloat4(\"glowColor\", this._emissiveTextureAndColor.color.r, this._emissiveTextureAndColor.color.g, this._emissiveTextureAndColor.color.b, this._emissiveTextureAndColor.color.a)), !m) {\n const T = i.needAlphaTesting(), E = i.getAlphaTestTexture(), b = E && E.hasAlpha && (i.useAlphaFromDiffuseTexture || i._useAlphaFromAlbedoTexture);\n if (E && (T || b)) {\n v.setTexture(\"diffuseSampler\", E);\n const C = E.getTextureMatrix();\n C && v.setMatrix(\"diffuseMatrix\", C);\n }\n const S = i.opacityTexture;\n if (S) {\n v.setTexture(\"opacitySampler\", S), v.setFloat(\"opacityIntensity\", S.level);\n const C = S.getTextureMatrix();\n C && v.setMatrix(\"opacityMatrix\", C);\n }\n if (this._emissiveTextureAndColor.texture && (v.setTexture(\"emissiveSampler\", this._emissiveTextureAndColor.texture), v.setMatrix(\"emissiveMatrix\", this._emissiveTextureAndColor.texture.getTextureMatrix())), n.useBones && n.computeBonesUsingShaders && n.skeleton) {\n const C = n.skeleton;\n if (C.isUsingTextureForMatrices) {\n const P = C.getTransformMatrixTexture(n);\n if (!P)\n return;\n v.setTexture(\"boneSampler\", P), v.setFloat(\"boneTextureWidth\", 4 * (C.bones.length + 1));\n } else\n v.setMatrices(\"mBones\", C.getTransformMatrices(n));\n }\n na(n, v), n.morphTargetManager && n.morphTargetManager.isUsingTextureForTargets && n.morphTargetManager._bind(v), t && h.setAlphaMode(i.alphaMode), v.setFloat(\"glowIntensity\", this.getEffectIntensity(n)), Tn(v, i, l);\n }\n n._processRendering(o, e, v, i.fillMode, f, p, (T, E) => v.setMatrix(\"world\", E));\n } else\n this._mainTexture.resetRefreshCounter();\n this.onAfterRenderMeshToEffect.notifyObservers(s);\n }\n /**\n * Defines whether the current material of the mesh should be use to render the effect.\n * @param mesh defines the current mesh to render\n * @returns true if the mesh material should be use\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _useMeshMaterial(e) {\n return !1;\n }\n /**\n * Rebuild the required buffers.\n * @internal Internal use only.\n */\n _rebuild() {\n const e = this._vertexBuffers[R.PositionKind];\n e && e._rebuild(), this._generateIndexBuffer();\n }\n /**\n * Dispose only the render target textures and post process.\n */\n _disposeTextureAndPostProcesses() {\n this._mainTexture.dispose();\n for (let e = 0; e < this._postProcesses.length; e++)\n this._postProcesses[e] && this._postProcesses[e].dispose();\n this._postProcesses = [];\n for (let e = 0; e < this._textures.length; e++)\n this._textures[e] && this._textures[e].dispose();\n this._textures = [];\n }\n /**\n * Dispose the highlight layer and free resources.\n */\n dispose() {\n const e = this._vertexBuffers[R.PositionKind];\n e && (e.dispose(), this._vertexBuffers[R.PositionKind] = null), this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), this._indexBuffer = null);\n for (const i of this._mergeDrawWrapper)\n i.dispose();\n this._mergeDrawWrapper = [], this._disposeTextureAndPostProcesses();\n const t = this._scene.effectLayers.indexOf(this, 0);\n t > -1 && this._scene.effectLayers.splice(t, 1), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this.onBeforeRenderMainTextureObservable.clear(), this.onBeforeComposeObservable.clear(), this.onBeforeRenderMeshToEffect.clear(), this.onAfterRenderMeshToEffect.clear(), this.onAfterComposeObservable.clear(), this.onSizeChangedObservable.clear();\n }\n /**\n * Gets the class name of the effect layer\n * @returns the string with the class name of the effect layer\n */\n getClassName() {\n return \"EffectLayer\";\n }\n /**\n * Creates an effect layer from parsed effect layer data\n * @param parsedEffectLayer defines effect layer data\n * @param scene defines the current scene\n * @param rootUrl defines the root URL containing the effect layer information\n * @returns a parsed effect Layer\n */\n static Parse(e, t, i) {\n return J.Instantiate(e.customType).Parse(e, t, i);\n }\n}\nEn._SceneComponentInitialization = (a) => {\n throw $e(\"EffectLayerSceneComponent\");\n};\ny([\n I()\n], En.prototype, \"name\", void 0);\ny([\n Ex()\n], En.prototype, \"neutralColor\", void 0);\ny([\n I()\n], En.prototype, \"isEnabled\", void 0);\ny([\n fM()\n], En.prototype, \"camera\", null);\ny([\n I()\n], En.prototype, \"renderingGroupId\", null);\ny([\n I()\n], En.prototype, \"disableBoundingBoxesFromEffectLayer\", void 0);\nqi.AddParser(me.NAME_EFFECTLAYER, (a, e, t, i) => {\n if (a.effectLayers) {\n t.effectLayers || (t.effectLayers = []);\n for (let s = 0; s < a.effectLayers.length; s++) {\n const r = En.Parse(a.effectLayers[s], e, i);\n t.effectLayers.push(r);\n }\n }\n});\nqi.prototype.removeEffectLayer = function(a) {\n const e = this.effectLayers.indexOf(a);\n return e !== -1 && this.effectLayers.splice(e, 1), e;\n};\nqi.prototype.addEffectLayer = function(a) {\n this.effectLayers.push(a);\n};\nclass XV {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_EFFECTLAYER, this._renderEffects = !1, this._needStencil = !1, this._previousStencilState = !1, this.scene = e || Me.LastCreatedScene, this.scene && (this._engine = this.scene.getEngine(), this.scene.effectLayers = []);\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._isReadyForMeshStage.registerStep(me.STEP_ISREADYFORMESH_EFFECTLAYER, this, this._isReadyForMesh), this.scene._cameraDrawRenderTargetStage.registerStep(me.STEP_CAMERADRAWRENDERTARGET_EFFECTLAYER, this, this._renderMainTexture), this.scene._beforeCameraDrawStage.registerStep(me.STEP_BEFORECAMERADRAW_EFFECTLAYER, this, this._setStencil), this.scene._afterRenderingGroupDrawStage.registerStep(me.STEP_AFTERRENDERINGGROUPDRAW_EFFECTLAYER_DRAW, this, this._drawRenderingGroup), this.scene._afterCameraDrawStage.registerStep(me.STEP_AFTERCAMERADRAW_EFFECTLAYER, this, this._setStencilBack), this.scene._afterCameraDrawStage.registerStep(me.STEP_AFTERCAMERADRAW_EFFECTLAYER_DRAW, this, this._drawCamera);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n const e = this.scene.effectLayers;\n for (const t of e)\n t._rebuild();\n }\n /**\n * Serializes the component data to the specified json object\n * @param serializationObject The object to serialize to\n */\n serialize(e) {\n e.effectLayers = [];\n const t = this.scene.effectLayers;\n for (const i of t)\n i.serialize && e.effectLayers.push(i.serialize());\n }\n /**\n * Adds all the elements from the container to the scene\n * @param container the container holding the elements\n */\n addFromContainer(e) {\n e.effectLayers && e.effectLayers.forEach((t) => {\n this.scene.addEffectLayer(t);\n });\n }\n /**\n * Removes all the elements in the container from the scene\n * @param container contains the elements to remove\n * @param dispose if the removed element should be disposed (default: false)\n */\n removeFromContainer(e, t) {\n e.effectLayers && e.effectLayers.forEach((i) => {\n this.scene.removeEffectLayer(i), t && i.dispose();\n });\n }\n /**\n * Disposes the component and the associated resources.\n */\n dispose() {\n const e = this.scene.effectLayers;\n for (; e.length; )\n e[0].dispose();\n }\n _isReadyForMesh(e, t) {\n const i = this._engine.currentRenderPassId, s = this.scene.effectLayers;\n for (const r of s) {\n if (!r.hasMesh(e))\n continue;\n const n = r._mainTexture;\n this._engine.currentRenderPassId = n.renderPassId;\n for (const o of e.subMeshes)\n if (!r.isReady(o, t))\n return this._engine.currentRenderPassId = i, !1;\n }\n return this._engine.currentRenderPassId = i, !0;\n }\n _renderMainTexture(e) {\n this._renderEffects = !1, this._needStencil = !1;\n let t = !1;\n const i = this.scene.effectLayers;\n if (i && i.length > 0) {\n this._previousStencilState = this._engine.getStencilBuffer();\n for (const s of i)\n if (s.shouldRender() && (!s.camera || s.camera.cameraRigMode === Fe.RIG_MODE_NONE && e === s.camera || s.camera.cameraRigMode !== Fe.RIG_MODE_NONE && s.camera._rigCameras.indexOf(e) > -1)) {\n this._renderEffects = !0, this._needStencil = this._needStencil || s.needStencil();\n const r = s._mainTexture;\n r._shouldRender() && (this.scene.incrementRenderId(), r.render(!1, !1), t = !0);\n }\n this.scene.incrementRenderId();\n }\n return t;\n }\n _setStencil() {\n this._needStencil && this._engine.setStencilBuffer(!0);\n }\n _setStencilBack() {\n this._needStencil && this._engine.setStencilBuffer(this._previousStencilState);\n }\n _draw(e) {\n if (this._renderEffects) {\n this._engine.setDepthBuffer(!1);\n const t = this.scene.effectLayers;\n for (let i = 0; i < t.length; i++) {\n const s = t[i];\n s.renderingGroupId === e && s.shouldRender() && s.render();\n }\n this._engine.setDepthBuffer(!0);\n }\n }\n _drawCamera() {\n this._renderEffects && this._draw(-1);\n }\n _drawRenderingGroup(e) {\n !this.scene._isInIntermediateRendering() && this._renderEffects && this._draw(e);\n }\n}\nEn._SceneComponentInitialization = (a) => {\n let e = a._getComponent(me.NAME_EFFECTLAYER);\n e || (e = new XV(a), a._addComponent(e));\n};\nconst $V = \"glowMapMergePixelShader\", YV = `varying vec2 vUV;uniform sampler2D textureSampler;\n#ifdef EMISSIVE\nuniform sampler2D textureSampler2;\n#endif\nuniform float offset;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nvec4 baseColor=texture2D(textureSampler,vUV);\n#ifdef EMISSIVE\nbaseColor+=texture2D(textureSampler2,vUV);baseColor*=offset;\n#else\nbaseColor.a=abs(offset-baseColor.a);\n#ifdef STROKE\nfloat alpha=smoothstep(.0,.1,baseColor.a);baseColor.a=alpha;baseColor.rgb=baseColor.rgb*alpha;\n#endif\n#endif\n#if LDR\nbaseColor=clamp(baseColor,0.,1.0);\n#endif\ngl_FragColor=baseColor;\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\nz.ShadersStore[$V] = YV;\nconst jV = \"glowMapMergeVertexShader\", KV = `attribute vec2 position;varying vec2 vUV;const vec2 madd=vec2(0.5,0.5);\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvUV=position*madd+madd;gl_Position=vec4(position,0.0,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}`;\nz.ShadersStore[jV] = KV;\nqi.prototype.getGlowLayerByName = function(a) {\n var e;\n for (let t = 0; t < ((e = this.effectLayers) == null ? void 0 : e.length); t++)\n if (this.effectLayers[t].name === a && this.effectLayers[t].getEffectName() === xn.EffectName)\n return this.effectLayers[t];\n return null;\n};\nclass xn extends En {\n /**\n * Sets the kernel size of the blur.\n */\n set blurKernelSize(e) {\n if (e === this._options.blurKernelSize)\n return;\n this._options.blurKernelSize = e;\n const t = this._getEffectiveBlurKernelSize();\n this._horizontalBlurPostprocess1.kernel = t, this._verticalBlurPostprocess1.kernel = t, this._horizontalBlurPostprocess2.kernel = t, this._verticalBlurPostprocess2.kernel = t;\n }\n /**\n * Gets the kernel size of the blur.\n */\n get blurKernelSize() {\n return this._options.blurKernelSize;\n }\n /**\n * Sets the glow intensity.\n */\n set intensity(e) {\n this._intensity = e;\n }\n /**\n * Gets the glow intensity.\n */\n get intensity() {\n return this._intensity;\n }\n /**\n * Instantiates a new glow Layer and references it to the scene.\n * @param name The name of the layer\n * @param scene The scene to use the layer in\n * @param options Sets of none mandatory options to use with the layer (see IGlowLayerOptions for more information)\n */\n constructor(e, t, i) {\n super(e, t), this._intensity = 1, this._includedOnlyMeshes = [], this._excludedMeshes = [], this._meshesUsingTheirOwnMaterials = [], this.neutralColor = new Ce(0, 0, 0, 1), this._options = {\n mainTextureRatio: xn.DefaultTextureRatio,\n blurKernelSize: 32,\n mainTextureFixedSize: void 0,\n camera: null,\n mainTextureSamples: 1,\n renderingGroupId: -1,\n ldrMerge: !1,\n alphaBlendingMode: 1,\n mainTextureType: 0,\n generateStencilBuffer: !1,\n ...i\n }, this._init({\n alphaBlendingMode: this._options.alphaBlendingMode,\n camera: this._options.camera,\n mainTextureFixedSize: this._options.mainTextureFixedSize,\n mainTextureRatio: this._options.mainTextureRatio,\n renderingGroupId: this._options.renderingGroupId,\n mainTextureType: this._options.mainTextureType,\n generateStencilBuffer: this._options.generateStencilBuffer\n });\n }\n /**\n * Get the effect name of the layer.\n * @returns The effect name\n */\n getEffectName() {\n return xn.EffectName;\n }\n /**\n * @internal\n * Create the merge effect. This is the shader use to blit the information back\n * to the main canvas at the end of the scene rendering.\n */\n _createMergeEffect() {\n let e = `#define EMISSIVE \n`;\n return this._options.ldrMerge && (e += `#define LDR \n`), this._engine.createEffect(\"glowMapMerge\", [R.PositionKind], [\"offset\"], [\"textureSampler\", \"textureSampler2\"], e);\n }\n /**\n * Creates the render target textures and post processes used in the glow layer.\n */\n _createTextureAndPostProcesses() {\n let e = this._mainTextureDesiredSize.width, t = this._mainTextureDesiredSize.height;\n e = this._engine.needPOTTextures ? Dr(e, this._maxSize) : e, t = this._engine.needPOTTextures ? Dr(t, this._maxSize) : t;\n let i = 0;\n this._engine.getCaps().textureHalfFloatRender ? i = 2 : i = 0, this._blurTexture1 = new Ii(\"GlowLayerBlurRTT\", {\n width: e,\n height: t\n }, this._scene, !1, !0, i), this._blurTexture1.wrapU = X.CLAMP_ADDRESSMODE, this._blurTexture1.wrapV = X.CLAMP_ADDRESSMODE, this._blurTexture1.updateSamplingMode(X.BILINEAR_SAMPLINGMODE), this._blurTexture1.renderParticles = !1, this._blurTexture1.ignoreCameraViewport = !0;\n const s = Math.floor(e / 2), r = Math.floor(t / 2);\n this._blurTexture2 = new Ii(\"GlowLayerBlurRTT2\", {\n width: s,\n height: r\n }, this._scene, !1, !0, i), this._blurTexture2.wrapU = X.CLAMP_ADDRESSMODE, this._blurTexture2.wrapV = X.CLAMP_ADDRESSMODE, this._blurTexture2.updateSamplingMode(X.BILINEAR_SAMPLINGMODE), this._blurTexture2.renderParticles = !1, this._blurTexture2.ignoreCameraViewport = !0, this._textures = [this._blurTexture1, this._blurTexture2];\n const n = this._getEffectiveBlurKernelSize();\n this._horizontalBlurPostprocess1 = new As(\"GlowLayerHBP1\", new Q(1, 0), n, {\n width: e,\n height: t\n }, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i), this._horizontalBlurPostprocess1.width = e, this._horizontalBlurPostprocess1.height = t, this._horizontalBlurPostprocess1.externalTextureSamplerBinding = !0, this._horizontalBlurPostprocess1.onApplyObservable.add((o) => {\n o.setTexture(\"textureSampler\", this._mainTexture);\n }), this._verticalBlurPostprocess1 = new As(\"GlowLayerVBP1\", new Q(0, 1), n, {\n width: e,\n height: t\n }, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i), this._horizontalBlurPostprocess2 = new As(\"GlowLayerHBP2\", new Q(1, 0), n, {\n width: s,\n height: r\n }, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i), this._horizontalBlurPostprocess2.width = s, this._horizontalBlurPostprocess2.height = r, this._horizontalBlurPostprocess2.externalTextureSamplerBinding = !0, this._horizontalBlurPostprocess2.onApplyObservable.add((o) => {\n o.setTexture(\"textureSampler\", this._blurTexture1);\n }), this._verticalBlurPostprocess2 = new As(\"GlowLayerVBP2\", new Q(0, 1), n, {\n width: s,\n height: r\n }, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i), this._postProcesses = [this._horizontalBlurPostprocess1, this._verticalBlurPostprocess1, this._horizontalBlurPostprocess2, this._verticalBlurPostprocess2], this._postProcesses1 = [this._horizontalBlurPostprocess1, this._verticalBlurPostprocess1], this._postProcesses2 = [this._horizontalBlurPostprocess2, this._verticalBlurPostprocess2], this._mainTexture.samples = this._options.mainTextureSamples, this._mainTexture.onAfterUnbindObservable.add(() => {\n const o = this._blurTexture1.renderTarget;\n if (o) {\n this._scene.postProcessManager.directRender(this._postProcesses1, o, !0);\n const l = this._blurTexture2.renderTarget;\n l && this._scene.postProcessManager.directRender(this._postProcesses2, l, !0), this._engine.unBindFramebuffer(l ?? o, !0);\n }\n }), this._postProcesses.map((o) => {\n o.autoClear = !1;\n });\n }\n /**\n * @returns The blur kernel size used by the glow.\n * Note: The value passed in the options is divided by 2 for back compatibility.\n */\n _getEffectiveBlurKernelSize() {\n return this._options.blurKernelSize / 2;\n }\n /**\n * Checks for the readiness of the element composing the layer.\n * @param subMesh the mesh to check for\n * @param useInstances specify whether or not to use instances to render the mesh\n * @returns true if ready otherwise, false\n */\n isReady(e, t) {\n const i = e.getMaterial(), s = e.getRenderingMesh();\n if (!i || !s)\n return !1;\n const r = i.emissiveTexture;\n return super._isReady(e, t, r);\n }\n /**\n * @returns whether or not the layer needs stencil enabled during the mesh rendering.\n */\n needStencil() {\n return !1;\n }\n /**\n * Returns true if the mesh can be rendered, otherwise false.\n * @param mesh The mesh to render\n * @param material The material used on the mesh\n * @returns true if it can be rendered otherwise false\n */\n _canRenderMesh(e, t) {\n return !0;\n }\n /**\n * Implementation specific of rendering the generating effect on the main canvas.\n * @param effect The effect used to render through\n */\n _internalRender(e) {\n e.setTexture(\"textureSampler\", this._blurTexture1), e.setTexture(\"textureSampler2\", this._blurTexture2), e.setFloat(\"offset\", this._intensity);\n const t = this._engine, i = t.getStencilBuffer();\n t.setStencilBuffer(!1), t.drawElementsType(ue.TriangleFillMode, 0, 6), t.setStencilBuffer(i);\n }\n /**\n * Sets the required values for both the emissive texture and and the main color.\n * @param mesh\n * @param subMesh\n * @param material\n */\n _setEmissiveTextureAndColor(e, t, i) {\n let s = 1;\n if (this.customEmissiveTextureSelector ? this._emissiveTextureAndColor.texture = this.customEmissiveTextureSelector(e, t, i) : i ? (this._emissiveTextureAndColor.texture = i.emissiveTexture, this._emissiveTextureAndColor.texture && (s = this._emissiveTextureAndColor.texture.level)) : this._emissiveTextureAndColor.texture = null, this.customEmissiveColorSelector)\n this.customEmissiveColorSelector(e, t, i, this._emissiveTextureAndColor.color);\n else if (i.emissiveColor) {\n const r = i.emissiveIntensity ?? 1;\n s *= r, this._emissiveTextureAndColor.color.set(i.emissiveColor.r * s, i.emissiveColor.g * s, i.emissiveColor.b * s, i.alpha);\n } else\n this._emissiveTextureAndColor.color.set(this.neutralColor.r, this.neutralColor.g, this.neutralColor.b, this.neutralColor.a);\n }\n /**\n * Returns true if the mesh should render, otherwise false.\n * @param mesh The mesh to render\n * @returns true if it should render otherwise false\n */\n _shouldRenderMesh(e) {\n return this.hasMesh(e);\n }\n /**\n * Adds specific effects defines.\n * @param defines The defines to add specifics to.\n */\n _addCustomEffectDefines(e) {\n e.push(\"#define GLOW\");\n }\n /**\n * Add a mesh in the exclusion list to prevent it to impact or being impacted by the glow layer.\n * @param mesh The mesh to exclude from the glow layer\n */\n addExcludedMesh(e) {\n this._excludedMeshes.indexOf(e.uniqueId) === -1 && this._excludedMeshes.push(e.uniqueId);\n }\n /**\n * Remove a mesh from the exclusion list to let it impact or being impacted by the glow layer.\n * @param mesh The mesh to remove\n */\n removeExcludedMesh(e) {\n const t = this._excludedMeshes.indexOf(e.uniqueId);\n t !== -1 && this._excludedMeshes.splice(t, 1);\n }\n /**\n * Add a mesh in the inclusion list to impact or being impacted by the glow layer.\n * @param mesh The mesh to include in the glow layer\n */\n addIncludedOnlyMesh(e) {\n this._includedOnlyMeshes.indexOf(e.uniqueId) === -1 && this._includedOnlyMeshes.push(e.uniqueId);\n }\n /**\n * Remove a mesh from the Inclusion list to prevent it to impact or being impacted by the glow layer.\n * @param mesh The mesh to remove\n */\n removeIncludedOnlyMesh(e) {\n const t = this._includedOnlyMeshes.indexOf(e.uniqueId);\n t !== -1 && this._includedOnlyMeshes.splice(t, 1);\n }\n /**\n * Determine if a given mesh will be used in the glow layer\n * @param mesh The mesh to test\n * @returns true if the mesh will be highlighted by the current glow layer\n */\n hasMesh(e) {\n return super.hasMesh(e) ? this._includedOnlyMeshes.length ? this._includedOnlyMeshes.indexOf(e.uniqueId) !== -1 : this._excludedMeshes.length ? this._excludedMeshes.indexOf(e.uniqueId) === -1 : !0 : !1;\n }\n /**\n * Defines whether the current material of the mesh should be use to render the effect.\n * @param mesh defines the current mesh to render\n * @returns true if the material of the mesh should be use to render the effect\n */\n _useMeshMaterial(e) {\n return this._meshesUsingTheirOwnMaterials.length == 0 ? !1 : this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId) > -1;\n }\n /**\n * Add a mesh to be rendered through its own material and not with emissive only.\n * @param mesh The mesh for which we need to use its material\n */\n referenceMeshToUseItsOwnMaterial(e) {\n e.resetDrawCache(this._mainTexture.renderPassId), this._meshesUsingTheirOwnMaterials.push(e.uniqueId), e.onDisposeObservable.add(() => {\n this._disposeMesh(e);\n });\n }\n /**\n * Remove a mesh from being rendered through its own material and not with emissive only.\n * @param mesh The mesh for which we need to not use its material\n */\n unReferenceMeshFromUsingItsOwnMaterial(e) {\n let t = this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId);\n for (; t >= 0; )\n this._meshesUsingTheirOwnMaterials.splice(t, 1), t = this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId);\n e.resetDrawCache(this._mainTexture.renderPassId);\n }\n /**\n * Free any resources and references associated to a mesh.\n * Internal use\n * @param mesh The mesh to free.\n * @internal\n */\n _disposeMesh(e) {\n this.removeIncludedOnlyMesh(e), this.removeExcludedMesh(e);\n }\n /**\n * Gets the class name of the effect layer\n * @returns the string with the class name of the effect layer\n */\n getClassName() {\n return \"GlowLayer\";\n }\n /**\n * Serializes this glow layer\n * @returns a serialized glow layer object\n */\n serialize() {\n const e = Ae.Serialize(this);\n e.customType = \"BABYLON.GlowLayer\";\n let t;\n if (e.includedMeshes = [], this._includedOnlyMeshes.length)\n for (t = 0; t < this._includedOnlyMeshes.length; t++) {\n const i = this._scene.getMeshByUniqueId(this._includedOnlyMeshes[t]);\n i && e.includedMeshes.push(i.id);\n }\n if (e.excludedMeshes = [], this._excludedMeshes.length)\n for (t = 0; t < this._excludedMeshes.length; t++) {\n const i = this._scene.getMeshByUniqueId(this._excludedMeshes[t]);\n i && e.excludedMeshes.push(i.id);\n }\n return e;\n }\n /**\n * Creates a Glow Layer from parsed glow layer data\n * @param parsedGlowLayer defines glow layer data\n * @param scene defines the current scene\n * @param rootUrl defines the root URL containing the glow layer information\n * @returns a parsed Glow Layer\n */\n static Parse(e, t, i) {\n const s = Ae.Parse(() => new xn(e.name, t, e.options), e, t, i);\n let r;\n for (r = 0; r < e.excludedMeshes.length; r++) {\n const n = t.getMeshById(e.excludedMeshes[r]);\n n && s.addExcludedMesh(n);\n }\n for (r = 0; r < e.includedMeshes.length; r++) {\n const n = t.getMeshById(e.includedMeshes[r]);\n n && s.addIncludedOnlyMesh(n);\n }\n return s;\n }\n}\nxn.EffectName = \"GlowLayer\";\nxn.DefaultBlurKernelSize = 32;\nxn.DefaultTextureRatio = 0.5;\ny([\n I()\n], xn.prototype, \"blurKernelSize\", null);\ny([\n I()\n], xn.prototype, \"intensity\", null);\ny([\n I(\"options\")\n], xn.prototype, \"_options\", void 0);\nU(\"BABYLON.GlowLayer\", xn);\nconst qV = \"glowBlurPostProcessPixelShader\", QV = `varying vec2 vUV;uniform sampler2D textureSampler;uniform vec2 screenSize;uniform vec2 direction;uniform float blurWidth;float getLuminance(vec3 color)\n{return dot(color,vec3(0.2126,0.7152,0.0722));}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{float weights[7];weights[0]=0.05;weights[1]=0.1;weights[2]=0.2;weights[3]=0.3;weights[4]=0.2;weights[5]=0.1;weights[6]=0.05;vec2 texelSize=vec2(1.0/screenSize.x,1.0/screenSize.y);vec2 texelStep=texelSize*direction*blurWidth;vec2 start=vUV-3.0*texelStep;vec4 baseColor=vec4(0.,0.,0.,0.);vec2 texelOffset=vec2(0.,0.);for (int i=0; i<7; i++)\n{vec4 texel=texture2D(textureSampler,start+texelOffset);baseColor.a+=texel.a*weights[i];float luminance=getLuminance(baseColor.rgb);float luminanceTexel=getLuminance(texel.rgb);float choice=step(luminanceTexel,luminance);baseColor.rgb=choice*baseColor.rgb+(1.0-choice)*texel.rgb;texelOffset+=texelStep;}\ngl_FragColor=baseColor;}`;\nz.ShadersStore[qV] = QV;\nqi.prototype.getHighlightLayerByName = function(a) {\n var e;\n for (let t = 0; t < ((e = this.effectLayers) == null ? void 0 : e.length); t++)\n if (this.effectLayers[t].name === a && this.effectLayers[t].getEffectName() === gr.EffectName)\n return this.effectLayers[t];\n return null;\n};\nclass AE extends Be {\n constructor(e, t, i, s, r, n = X.BILINEAR_SAMPLINGMODE, o, l) {\n super(e, \"glowBlurPostProcess\", [\"screenSize\", \"direction\", \"blurWidth\"], null, s, r, n, o, l), this.direction = t, this.kernel = i, this.onApplyObservable.add((h) => {\n h.setFloat2(\"screenSize\", this.width, this.height), h.setVector2(\"direction\", this.direction), h.setFloat(\"blurWidth\", this.kernel);\n });\n }\n}\nclass gr extends En {\n /**\n * Specifies the horizontal size of the blur.\n */\n set blurHorizontalSize(e) {\n this._horizontalBlurPostprocess.kernel = e, this._options.blurHorizontalSize = e;\n }\n /**\n * Specifies the vertical size of the blur.\n */\n set blurVerticalSize(e) {\n this._verticalBlurPostprocess.kernel = e, this._options.blurVerticalSize = e;\n }\n /**\n * Gets the horizontal size of the blur.\n */\n get blurHorizontalSize() {\n return this._horizontalBlurPostprocess.kernel;\n }\n /**\n * Gets the vertical size of the blur.\n */\n get blurVerticalSize() {\n return this._verticalBlurPostprocess.kernel;\n }\n /**\n * Instantiates a new highlight Layer and references it to the scene..\n * @param name The name of the layer\n * @param scene The scene to use the layer in\n * @param options Sets of none mandatory options to use with the layer (see IHighlightLayerOptions for more information)\n */\n constructor(e, t, i) {\n super(e, t), this.name = e, this.innerGlow = !0, this.outerGlow = !0, this.onBeforeBlurObservable = new G(), this.onAfterBlurObservable = new G(), this._instanceGlowingMeshStencilReference = gr.GlowingMeshStencilReference++, this._meshes = {}, this._excludedMeshes = {}, this.neutralColor = gr.NeutralColor, this._engine.isStencilEnable || L.Warn(\"Rendering the Highlight Layer requires the stencil to be active on the canvas. var engine = new Engine(canvas, antialias, { stencil: true }\"), this._options = {\n mainTextureRatio: 0.5,\n blurTextureSizeRatio: 0.5,\n blurHorizontalSize: 1,\n blurVerticalSize: 1,\n alphaBlendingMode: 2,\n camera: null,\n renderingGroupId: -1,\n mainTextureType: 0,\n ...i\n }, this._init({\n alphaBlendingMode: this._options.alphaBlendingMode,\n camera: this._options.camera,\n mainTextureFixedSize: this._options.mainTextureFixedSize,\n mainTextureRatio: this._options.mainTextureRatio,\n renderingGroupId: this._options.renderingGroupId,\n mainTextureType: this._options.mainTextureType\n }), this._shouldRender = !1;\n }\n /**\n * Get the effect name of the layer.\n * @returns The effect name\n */\n getEffectName() {\n return gr.EffectName;\n }\n _numInternalDraws() {\n return 2;\n }\n /**\n * Create the merge effect. This is the shader use to blit the information back\n * to the main canvas at the end of the scene rendering.\n * @returns The effect created\n */\n _createMergeEffect() {\n return this._engine.createEffect(\"glowMapMerge\", [R.PositionKind], [\"offset\"], [\"textureSampler\"], this._options.isStroke ? `#define STROKE \n` : void 0);\n }\n /**\n * Creates the render target textures and post processes used in the highlight layer.\n */\n _createTextureAndPostProcesses() {\n let e = this._mainTextureDesiredSize.width * this._options.blurTextureSizeRatio, t = this._mainTextureDesiredSize.height * this._options.blurTextureSizeRatio;\n e = this._engine.needPOTTextures ? Dr(e, this._maxSize) : e, t = this._engine.needPOTTextures ? Dr(t, this._maxSize) : t;\n let i = 0;\n this._engine.getCaps().textureHalfFloatRender ? i = 2 : i = 0, this._blurTexture = new Ii(\"HighlightLayerBlurRTT\", {\n width: e,\n height: t\n }, this._scene, !1, !0, i), this._blurTexture.wrapU = X.CLAMP_ADDRESSMODE, this._blurTexture.wrapV = X.CLAMP_ADDRESSMODE, this._blurTexture.anisotropicFilteringLevel = 16, this._blurTexture.updateSamplingMode(X.TRILINEAR_SAMPLINGMODE), this._blurTexture.renderParticles = !1, this._blurTexture.ignoreCameraViewport = !0, this._textures = [this._blurTexture], this._options.alphaBlendingMode === 2 ? (this._downSamplePostprocess = new ra(\"HighlightLayerPPP\", this._options.blurTextureSizeRatio, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine()), this._downSamplePostprocess.externalTextureSamplerBinding = !0, this._downSamplePostprocess.onApplyObservable.add((s) => {\n s.setTexture(\"textureSampler\", this._mainTexture);\n }), this._horizontalBlurPostprocess = new AE(\"HighlightLayerHBP\", new Q(1, 0), this._options.blurHorizontalSize, 1, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine()), this._horizontalBlurPostprocess.onApplyObservable.add((s) => {\n s.setFloat2(\"screenSize\", e, t);\n }), this._verticalBlurPostprocess = new AE(\"HighlightLayerVBP\", new Q(0, 1), this._options.blurVerticalSize, 1, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine()), this._verticalBlurPostprocess.onApplyObservable.add((s) => {\n s.setFloat2(\"screenSize\", e, t);\n }), this._postProcesses = [this._downSamplePostprocess, this._horizontalBlurPostprocess, this._verticalBlurPostprocess]) : (this._horizontalBlurPostprocess = new As(\"HighlightLayerHBP\", new Q(1, 0), this._options.blurHorizontalSize / 2, {\n width: e,\n height: t\n }, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i), this._horizontalBlurPostprocess.width = e, this._horizontalBlurPostprocess.height = t, this._horizontalBlurPostprocess.externalTextureSamplerBinding = !0, this._horizontalBlurPostprocess.onApplyObservable.add((s) => {\n s.setTexture(\"textureSampler\", this._mainTexture);\n }), this._verticalBlurPostprocess = new As(\"HighlightLayerVBP\", new Q(0, 1), this._options.blurVerticalSize / 2, {\n width: e,\n height: t\n }, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i), this._postProcesses = [this._horizontalBlurPostprocess, this._verticalBlurPostprocess]), this._mainTexture.onAfterUnbindObservable.add(() => {\n this.onBeforeBlurObservable.notifyObservers(this);\n const s = this._blurTexture.renderTarget;\n s && (this._scene.postProcessManager.directRender(this._postProcesses, s, !0), this._engine.unBindFramebuffer(s, !0)), this.onAfterBlurObservable.notifyObservers(this);\n }), this._postProcesses.map((s) => {\n s.autoClear = !1;\n });\n }\n /**\n * @returns whether or not the layer needs stencil enabled during the mesh rendering.\n */\n needStencil() {\n return !0;\n }\n /**\n * Checks for the readiness of the element composing the layer.\n * @param subMesh the mesh to check for\n * @param useInstances specify whether or not to use instances to render the mesh\n * @returns true if ready otherwise, false\n */\n isReady(e, t) {\n const i = e.getMaterial(), s = e.getRenderingMesh();\n if (!i || !s || !this._meshes)\n return !1;\n let r = null;\n const n = this._meshes[s.uniqueId];\n return n && n.glowEmissiveOnly && i && (r = i.emissiveTexture), super._isReady(e, t, r);\n }\n /**\n * Implementation specific of rendering the generating effect on the main canvas.\n * @param effect The effect used to render through\n * @param renderIndex\n */\n _internalRender(e, t) {\n e.setTexture(\"textureSampler\", this._blurTexture);\n const i = this._engine;\n i.cacheStencilState(), i.setStencilOperationPass(7681), i.setStencilOperationFail(7680), i.setStencilOperationDepthFail(7680), i.setStencilMask(0), i.setStencilBuffer(!0), i.setStencilFunctionReference(this._instanceGlowingMeshStencilReference), this.outerGlow && t === 0 && (e.setFloat(\"offset\", 0), i.setStencilFunction(517), i.drawElementsType(ue.TriangleFillMode, 0, 6)), this.innerGlow && t === 1 && (e.setFloat(\"offset\", 1), i.setStencilFunction(514), i.drawElementsType(ue.TriangleFillMode, 0, 6)), i.restoreStencilState();\n }\n /**\n * @returns true if the layer contains information to display, otherwise false.\n */\n shouldRender() {\n return super.shouldRender() ? !!this._meshes : !1;\n }\n /**\n * Returns true if the mesh should render, otherwise false.\n * @param mesh The mesh to render\n * @returns true if it should render otherwise false\n */\n _shouldRenderMesh(e) {\n return !(this._excludedMeshes && this._excludedMeshes[e.uniqueId] || !super.hasMesh(e));\n }\n /**\n * Returns true if the mesh can be rendered, otherwise false.\n * @param mesh The mesh to render\n * @param material The material used on the mesh\n * @returns true if it can be rendered otherwise false\n */\n _canRenderMesh(e, t) {\n return !0;\n }\n /**\n * Adds specific effects defines.\n * @param defines The defines to add specifics to.\n */\n _addCustomEffectDefines(e) {\n e.push(\"#define HIGHLIGHT\");\n }\n /**\n * Sets the required values for both the emissive texture and and the main color.\n * @param mesh\n * @param subMesh\n * @param material\n */\n _setEmissiveTextureAndColor(e, t, i) {\n const s = this._meshes[e.uniqueId];\n s ? this._emissiveTextureAndColor.color.set(s.color.r, s.color.g, s.color.b, 1) : this._emissiveTextureAndColor.color.set(this.neutralColor.r, this.neutralColor.g, this.neutralColor.b, this.neutralColor.a), s && s.glowEmissiveOnly && i ? (this._emissiveTextureAndColor.texture = i.emissiveTexture, this._emissiveTextureAndColor.color.set(1, 1, 1, 1)) : this._emissiveTextureAndColor.texture = null;\n }\n /**\n * Add a mesh in the exclusion list to prevent it to impact or being impacted by the highlight layer.\n * @param mesh The mesh to exclude from the highlight layer\n */\n addExcludedMesh(e) {\n if (!this._excludedMeshes)\n return;\n if (!this._excludedMeshes[e.uniqueId]) {\n const i = {\n mesh: e,\n beforeBind: null,\n afterRender: null,\n stencilState: !1\n };\n i.beforeBind = e.onBeforeBindObservable.add((s) => {\n i.stencilState = s.getEngine().getStencilBuffer(), s.getEngine().setStencilBuffer(!1);\n }), i.afterRender = e.onAfterRenderObservable.add((s) => {\n s.getEngine().setStencilBuffer(i.stencilState);\n }), this._excludedMeshes[e.uniqueId] = i;\n }\n }\n /**\n * Remove a mesh from the exclusion list to let it impact or being impacted by the highlight layer.\n * @param mesh The mesh to highlight\n */\n removeExcludedMesh(e) {\n if (!this._excludedMeshes)\n return;\n const t = this._excludedMeshes[e.uniqueId];\n t && (t.beforeBind && e.onBeforeBindObservable.remove(t.beforeBind), t.afterRender && e.onAfterRenderObservable.remove(t.afterRender)), this._excludedMeshes[e.uniqueId] = null;\n }\n /**\n * Determine if a given mesh will be highlighted by the current HighlightLayer\n * @param mesh mesh to test\n * @returns true if the mesh will be highlighted by the current HighlightLayer\n */\n hasMesh(e) {\n return !this._meshes || !super.hasMesh(e) ? !1 : this._meshes[e.uniqueId] !== void 0 && this._meshes[e.uniqueId] !== null;\n }\n /**\n * Add a mesh in the highlight layer in order to make it glow with the chosen color.\n * @param mesh The mesh to highlight\n * @param color The color of the highlight\n * @param glowEmissiveOnly Extract the glow from the emissive texture\n */\n addMesh(e, t, i = !1) {\n if (!this._meshes)\n return;\n const s = this._meshes[e.uniqueId];\n s ? s.color = t : (this._meshes[e.uniqueId] = {\n mesh: e,\n color: t,\n // Lambda required for capture due to Observable this context\n observerHighlight: e.onBeforeBindObservable.add((r) => {\n this.isEnabled && (this._excludedMeshes && this._excludedMeshes[r.uniqueId] ? this._defaultStencilReference(r) : r.getScene().getEngine().setStencilFunctionReference(this._instanceGlowingMeshStencilReference));\n }),\n observerDefault: e.onAfterRenderObservable.add((r) => {\n this.isEnabled && this._defaultStencilReference(r);\n }),\n glowEmissiveOnly: i\n }, e.onDisposeObservable.add(() => {\n this._disposeMesh(e);\n })), this._shouldRender = !0;\n }\n /**\n * Remove a mesh from the highlight layer in order to make it stop glowing.\n * @param mesh The mesh to highlight\n */\n removeMesh(e) {\n if (!this._meshes)\n return;\n const t = this._meshes[e.uniqueId];\n t && (t.observerHighlight && e.onBeforeBindObservable.remove(t.observerHighlight), t.observerDefault && e.onAfterRenderObservable.remove(t.observerDefault), delete this._meshes[e.uniqueId]), this._shouldRender = !1;\n for (const i in this._meshes)\n if (this._meshes[i]) {\n this._shouldRender = !0;\n break;\n }\n }\n /**\n * Remove all the meshes currently referenced in the highlight layer\n */\n removeAllMeshes() {\n if (this._meshes) {\n for (const e in this._meshes)\n if (Object.prototype.hasOwnProperty.call(this._meshes, e)) {\n const t = this._meshes[e];\n t && this.removeMesh(t.mesh);\n }\n }\n }\n /**\n * Force the stencil to the normal expected value for none glowing parts\n * @param mesh\n */\n _defaultStencilReference(e) {\n e.getScene().getEngine().setStencilFunctionReference(gr.NormalMeshStencilReference);\n }\n /**\n * Free any resources and references associated to a mesh.\n * Internal use\n * @param mesh The mesh to free.\n * @internal\n */\n _disposeMesh(e) {\n this.removeMesh(e), this.removeExcludedMesh(e);\n }\n /**\n * Dispose the highlight layer and free resources.\n */\n dispose() {\n if (this._meshes) {\n for (const e in this._meshes) {\n const t = this._meshes[e];\n t && t.mesh && (t.observerHighlight && t.mesh.onBeforeBindObservable.remove(t.observerHighlight), t.observerDefault && t.mesh.onAfterRenderObservable.remove(t.observerDefault));\n }\n this._meshes = null;\n }\n if (this._excludedMeshes) {\n for (const e in this._excludedMeshes) {\n const t = this._excludedMeshes[e];\n t && (t.beforeBind && t.mesh.onBeforeBindObservable.remove(t.beforeBind), t.afterRender && t.mesh.onAfterRenderObservable.remove(t.afterRender));\n }\n this._excludedMeshes = null;\n }\n super.dispose();\n }\n /**\n * Gets the class name of the effect layer\n * @returns the string with the class name of the effect layer\n */\n getClassName() {\n return \"HighlightLayer\";\n }\n /**\n * Serializes this Highlight layer\n * @returns a serialized Highlight layer object\n */\n serialize() {\n const e = Ae.Serialize(this);\n if (e.customType = \"BABYLON.HighlightLayer\", e.meshes = [], this._meshes)\n for (const t in this._meshes) {\n const i = this._meshes[t];\n i && e.meshes.push({\n glowEmissiveOnly: i.glowEmissiveOnly,\n color: i.color.asArray(),\n meshId: i.mesh.id\n });\n }\n if (e.excludedMeshes = [], this._excludedMeshes)\n for (const t in this._excludedMeshes) {\n const i = this._excludedMeshes[t];\n i && e.excludedMeshes.push(i.mesh.id);\n }\n return e;\n }\n /**\n * Creates a Highlight layer from parsed Highlight layer data\n * @param parsedHightlightLayer defines the Highlight layer data\n * @param scene defines the current scene\n * @param rootUrl defines the root URL containing the Highlight layer information\n * @returns a parsed Highlight layer\n */\n static Parse(e, t, i) {\n const s = Ae.Parse(() => new gr(e.name, t, e.options), e, t, i);\n let r;\n for (r = 0; r < e.excludedMeshes.length; r++) {\n const n = t.getMeshById(e.excludedMeshes[r]);\n n && s.addExcludedMesh(n);\n }\n for (r = 0; r < e.meshes.length; r++) {\n const n = e.meshes[r], o = t.getMeshById(n.meshId);\n o && s.addMesh(o, re.FromArray(n.color), n.glowEmissiveOnly);\n }\n return s;\n }\n}\ngr.EffectName = \"HighlightLayer\";\ngr.NeutralColor = new Ce(0, 0, 0, 0);\ngr.GlowingMeshStencilReference = 2;\ngr.NormalMeshStencilReference = 1;\ny([\n I()\n], gr.prototype, \"innerGlow\", void 0);\ny([\n I()\n], gr.prototype, \"outerGlow\", void 0);\ny([\n I()\n], gr.prototype, \"blurHorizontalSize\", null);\ny([\n I()\n], gr.prototype, \"blurVerticalSize\", null);\ny([\n I(\"options\")\n], gr.prototype, \"_options\", void 0);\nU(\"BABYLON.HighlightLayer\", gr);\nclass Iv {\n /**\n * Creates a new Lens Flare.\n * This represents one of the lens effect in a `lensFlareSystem`.\n * It controls one of the individual texture used in the effect.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/lenseFlare\n * @param size Define the size of the lens flare (a floating value between 0 and 1)\n * @param position Define the position of the lens flare in the system. (a floating value between -1 and 1). A value of 0 is located on the emitter. A value greater than 0 is beyond the emitter and a value lesser than 0 is behind.\n * @param color Define the lens color\n * @param imgUrl Define the lens texture url\n * @param system Define the `lensFlareSystem` this flare is part of\n * @returns The newly created Lens Flare\n */\n static AddFlare(e, t, i, s, r) {\n return new Iv(e, t, i, s, r);\n }\n /**\n * Instantiates a new Lens Flare.\n * This represents one of the lens effect in a `lensFlareSystem`.\n * It controls one of the individual texture used in the effect.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/lenseFlare\n * @param size Define the size of the lens flare in the system (a floating value between 0 and 1)\n * @param position Define the position of the lens flare in the system. (a floating value between -1 and 1). A value of 0 is located on the emitter. A value greater than 0 is beyond the emitter and a value lesser than 0 is behind.\n * @param color Define the lens color\n * @param imgUrl Define the lens texture url\n * @param system Define the `lensFlareSystem` this flare is part of\n */\n constructor(e, t, i, s, r) {\n this.size = e, this.position = t, this.alphaMode = 6, this.color = i || new re(1, 1, 1), this.texture = s ? new X(s, r.getScene(), !0) : null, this._system = r;\n const n = r.scene.getEngine();\n this._drawWrapper = new Ds(n), this._drawWrapper.effect = n.createEffect(\"lensFlare\", [R.PositionKind], [\"color\", \"viewportMatrix\"], [\"textureSampler\"], \"\"), r.lensFlares.push(this);\n }\n /**\n * Dispose and release the lens flare with its associated resources.\n */\n dispose() {\n this.texture && this.texture.dispose();\n const e = this._system.lensFlares.indexOf(this);\n this._system.lensFlares.splice(e, 1);\n }\n}\nconst ZV = \"lensFlarePixelShader\", JV = `varying vec2 vUV;uniform sampler2D textureSampler;uniform vec4 color;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nvec4 baseColor=texture2D(textureSampler,vUV);gl_FragColor=baseColor*color;\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\nz.ShadersStore[ZV] = JV;\nconst e3 = \"lensFlareVertexShader\", t3 = `attribute vec2 position;uniform mat4 viewportMatrix;varying vec2 vUV;const vec2 madd=vec2(0.5,0.5);\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvUV=position*madd+madd;gl_Position=viewportMatrix*vec4(position,0.0,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}`;\nz.ShadersStore[e3] = t3;\nclass ic {\n /** Gets the scene */\n get scene() {\n return this._scene;\n }\n /**\n * Instantiates a lens flare system.\n * This represents a Lens Flare System or the shiny effect created by the light reflection on the camera lenses.\n * It is usually composed of several `lensFlare`.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/lenseFlare\n * @param name Define the name of the lens flare system in the scene\n * @param emitter Define the source (the emitter) of the lens flares (it can be a camera, a light or a mesh).\n * @param scene Define the scene the lens flare system belongs to\n */\n constructor(e, t, i) {\n this.name = e, this.lensFlares = [], this.borderLimit = 300, this.viewportBorder = 0, this.layerMask = 268435455, this._vertexBuffers = {}, this._isEnabled = !0, this._scene = i || Me.LastCreatedScene, ic._SceneComponentInitialization(this._scene), this._emitter = t, this.id = e, i.lensFlareSystems.push(this), this.meshesSelectionPredicate = (n) => i.activeCamera && n.material && n.isVisible && n.isEnabled() && n.isBlocker && (n.layerMask & i.activeCamera.layerMask) != 0;\n const s = i.getEngine(), r = [];\n r.push(1, 1), r.push(-1, 1), r.push(-1, -1), r.push(1, -1), this._vertexBuffers[R.PositionKind] = new R(s, r, R.PositionKind, !1, !1, 2), this._createIndexBuffer();\n }\n _createIndexBuffer() {\n const e = [];\n e.push(0), e.push(1), e.push(2), e.push(0), e.push(2), e.push(3), this._indexBuffer = this._scene.getEngine().createIndexBuffer(e);\n }\n /**\n * Define if the lens flare system is enabled.\n */\n get isEnabled() {\n return this._isEnabled;\n }\n set isEnabled(e) {\n this._isEnabled = e;\n }\n /**\n * Get the scene the effects belongs to.\n * @returns the scene holding the lens flare system\n */\n getScene() {\n return this._scene;\n }\n /**\n * Get the emitter of the lens flare system.\n * It defines the source of the lens flares (it can be a camera, a light or a mesh).\n * @returns the emitter of the lens flare system\n */\n getEmitter() {\n return this._emitter;\n }\n /**\n * Set the emitter of the lens flare system.\n * It defines the source of the lens flares (it can be a camera, a light or a mesh).\n * @param newEmitter Define the new emitter of the system\n */\n setEmitter(e) {\n this._emitter = e;\n }\n /**\n * Get the lens flare system emitter position.\n * The emitter defines the source of the lens flares (it can be a camera, a light or a mesh).\n * @returns the position\n */\n getEmitterPosition() {\n return this._emitter.getAbsolutePosition ? this._emitter.getAbsolutePosition() : this._emitter.position;\n }\n /**\n * @internal\n */\n computeEffectivePosition(e) {\n let t = this.getEmitterPosition();\n t = g.Project(t, O.Identity(), this._scene.getTransformMatrix(), e), this._positionX = t.x, this._positionY = t.y, t = g.TransformCoordinates(this.getEmitterPosition(), this._scene.getViewMatrix()), this.viewportBorder > 0 && (e.x -= this.viewportBorder, e.y -= this.viewportBorder, e.width += this.viewportBorder * 2, e.height += this.viewportBorder * 2, t.x += this.viewportBorder, t.y += this.viewportBorder, this._positionX += this.viewportBorder, this._positionY += this.viewportBorder);\n const i = this._scene.useRightHandedSystem;\n return t.z > 0 && !i || t.z < 0 && i ? (this._positionX > e.x && this._positionX < e.x + e.width && this._positionY > e.y && this._positionY < e.y + e.height, !0) : !1;\n }\n /** @internal */\n _isVisible() {\n if (!this._isEnabled || !this._scene.activeCamera)\n return !1;\n const t = this.getEmitterPosition().subtract(this._scene.activeCamera.globalPosition), i = t.length();\n t.normalize();\n const s = new nt(this._scene.activeCamera.globalPosition, t), r = this._scene.pickWithRay(s, this.meshesSelectionPredicate, !0);\n return !r || !r.hit || r.distance > i;\n }\n /**\n * @internal\n */\n render() {\n if (!this._scene.activeCamera)\n return !1;\n const e = this._scene.getEngine(), i = this._scene.activeCamera.viewport.toGlobal(e.getRenderWidth(!0), e.getRenderHeight(!0));\n if (!this.computeEffectivePosition(i) || !this._isVisible())\n return !1;\n let s, r;\n this._positionX < this.borderLimit + i.x ? s = this.borderLimit + i.x - this._positionX : this._positionX > i.x + i.width - this.borderLimit ? s = this._positionX - i.x - i.width + this.borderLimit : s = 0, this._positionY < this.borderLimit + i.y ? r = this.borderLimit + i.y - this._positionY : this._positionY > i.y + i.height - this.borderLimit ? r = this._positionY - i.y - i.height + this.borderLimit : r = 0;\n let n = s > r ? s : r;\n n -= this.viewportBorder, n > this.borderLimit && (n = this.borderLimit);\n let o = 1 - Re.Clamp(n / this.borderLimit, 0, 1);\n if (o < 0)\n return !1;\n o > 1 && (o = 1), this.viewportBorder > 0 && (i.x += this.viewportBorder, i.y += this.viewportBorder, i.width -= this.viewportBorder * 2, i.height -= this.viewportBorder * 2, this._positionX -= this.viewportBorder, this._positionY -= this.viewportBorder);\n const l = i.x + i.width / 2, h = i.y + i.height / 2, c = l - this._positionX, u = h - this._positionY;\n e.setState(!1), e.setDepthBuffer(!1);\n for (let d = 0; d < this.lensFlares.length; d++) {\n const f = this.lensFlares[d];\n if (!f._drawWrapper.effect.isReady() || f.texture && !f.texture.isReady())\n continue;\n e.enableEffect(f._drawWrapper), e.bindBuffers(this._vertexBuffers, this._indexBuffer, f._drawWrapper.effect), e.setAlphaMode(f.alphaMode);\n const p = l - c * f.position, _ = h - u * f.position, m = f.size, x = f.size * e.getAspectRatio(this._scene.activeCamera, !0), v = 2 * ((p - i.x) / i.width) - 1, T = 1 - 2 * ((_ - i.y) / i.height), E = O.FromValues(m / 2, 0, 0, 0, 0, x / 2, 0, 0, 0, 0, 1, 0, v, T, 0, 1);\n f._drawWrapper.effect.setMatrix(\"viewportMatrix\", E), f._drawWrapper.effect.setTexture(\"textureSampler\", f.texture), f._drawWrapper.effect.setFloat4(\"color\", f.color.r * o, f.color.g * o, f.color.b * o, 1), e.drawElementsType(ue.TriangleFillMode, 0, 6);\n }\n return e.setDepthBuffer(!0), e.setAlphaMode(0), !0;\n }\n /**\n * Rebuilds the lens flare system\n */\n rebuild() {\n var e;\n this._createIndexBuffer();\n for (const t in this._vertexBuffers)\n (e = this._vertexBuffers[t]) == null || e._rebuild();\n }\n /**\n * Dispose and release the lens flare with its associated resources.\n */\n dispose() {\n const e = this._vertexBuffers[R.PositionKind];\n for (e && (e.dispose(), this._vertexBuffers[R.PositionKind] = null), this._indexBuffer && (this._scene.getEngine()._releaseBuffer(this._indexBuffer), this._indexBuffer = null); this.lensFlares.length; )\n this.lensFlares[0].dispose();\n const t = this._scene.lensFlareSystems.indexOf(this);\n this._scene.lensFlareSystems.splice(t, 1);\n }\n /**\n * Parse a lens flare system from a JSON representation\n * @param parsedLensFlareSystem Define the JSON to parse\n * @param scene Define the scene the parsed system should be instantiated in\n * @param rootUrl Define the rootUrl of the load sequence to easily find a load relative dependencies such as textures\n * @returns the parsed system\n */\n static Parse(e, t, i) {\n const s = t.getLastEntryById(e.emitterId), r = e.name || \"lensFlareSystem#\" + e.emitterId, n = new ic(r, s, t);\n n.id = e.id || r, n.borderLimit = e.borderLimit;\n for (let o = 0; o < e.flares.length; o++) {\n const l = e.flares[o];\n Iv.AddFlare(l.size, l.position, re.FromArray(l.color), l.textureName ? i + l.textureName : \"\", n);\n }\n return n;\n }\n /**\n * Serialize the current Lens Flare System into a JSON representation.\n * @returns the serialized JSON\n */\n serialize() {\n const e = {};\n e.id = this.id, e.name = this.name, e.emitterId = this.getEmitter().id, e.borderLimit = this.borderLimit, e.flares = [];\n for (let t = 0; t < this.lensFlares.length; t++) {\n const i = this.lensFlares[t];\n e.flares.push({\n size: i.size,\n position: i.position,\n color: i.color.asArray(),\n textureName: J.GetFilename(i.texture ? i.texture.name : \"\")\n });\n }\n return e;\n }\n}\nic._SceneComponentInitialization = (a) => {\n throw $e(\"LensFlareSystemSceneComponent\");\n};\nqi.AddParser(me.NAME_LENSFLARESYSTEM, (a, e, t, i) => {\n if (a.lensFlareSystems !== void 0 && a.lensFlareSystems !== null) {\n t.lensFlareSystems || (t.lensFlareSystems = []);\n for (let s = 0, r = a.lensFlareSystems.length; s < r; s++) {\n const n = a.lensFlareSystems[s], o = ic.Parse(n, e, i);\n t.lensFlareSystems.push(o);\n }\n }\n});\nqi.prototype.getLensFlareSystemByName = function(a) {\n for (let e = 0; e < this.lensFlareSystems.length; e++)\n if (this.lensFlareSystems[e].name === a)\n return this.lensFlareSystems[e];\n return null;\n};\nqi.prototype.getLensFlareSystemById = function(a) {\n for (let e = 0; e < this.lensFlareSystems.length; e++)\n if (this.lensFlareSystems[e].id === a)\n return this.lensFlareSystems[e];\n return null;\n};\nqi.prototype.getLensFlareSystemByID = function(a) {\n return this.getLensFlareSystemById(a);\n};\nqi.prototype.removeLensFlareSystem = function(a) {\n const e = this.lensFlareSystems.indexOf(a);\n return e !== -1 && this.lensFlareSystems.splice(e, 1), e;\n};\nqi.prototype.addLensFlareSystem = function(a) {\n this.lensFlareSystems.push(a);\n};\nclass i3 {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_LENSFLARESYSTEM, this.scene = e, e.lensFlareSystems = [];\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._afterCameraDrawStage.registerStep(me.STEP_AFTERCAMERADRAW_LENSFLARESYSTEM, this, this._draw);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n for (let e = 0; e < this.scene.lensFlareSystems.length; e++)\n this.scene.lensFlareSystems[e].rebuild();\n }\n /**\n * Adds all the elements from the container to the scene\n * @param container the container holding the elements\n */\n addFromContainer(e) {\n e.lensFlareSystems && e.lensFlareSystems.forEach((t) => {\n this.scene.addLensFlareSystem(t);\n });\n }\n /**\n * Removes all the elements in the container from the scene\n * @param container contains the elements to remove\n * @param dispose if the removed element should be disposed (default: false)\n */\n removeFromContainer(e, t) {\n e.lensFlareSystems && e.lensFlareSystems.forEach((i) => {\n this.scene.removeLensFlareSystem(i), t && i.dispose();\n });\n }\n /**\n * Serializes the component data to the specified json object\n * @param serializationObject The object to serialize to\n */\n serialize(e) {\n e.lensFlareSystems = [];\n const t = this.scene.lensFlareSystems;\n for (const i of t)\n e.lensFlareSystems.push(i.serialize());\n }\n /**\n * Disposes the component and the associated resources.\n */\n dispose() {\n const e = this.scene.lensFlareSystems;\n for (; e.length; )\n e[0].dispose();\n }\n _draw(e) {\n if (this.scene.lensFlaresEnabled) {\n const t = this.scene.lensFlareSystems;\n J.StartPerformanceCounter(\"Lens flares\", t.length > 0);\n for (const i of t)\n e.layerMask & i.layerMask && i.render();\n J.EndPerformanceCounter(\"Lens flares\", t.length > 0);\n }\n }\n}\nic._SceneComponentInitialization = (a) => {\n let e = a._getComponent(me.NAME_LENSFLARESYSTEM);\n e || (e = new i3(a), a._addComponent(e));\n};\nconst s3 = \"bayerDitherFunctions\", r3 = `float bayerDither2(vec2 _P) {return mod(2.0*_P.y+_P.x+1.0,4.0);}\nfloat bayerDither4(vec2 _P) {vec2 P1=mod(_P,2.0); \nvec2 P2=floor(0.5*mod(_P,4.0)); \nreturn 4.0*bayerDither2(P1)+bayerDither2(P2);}\nfloat bayerDither8(vec2 _P) {vec2 P1=mod(_P,2.0); \nvec2 P2=floor(0.5 *mod(_P,4.0)); \nvec2 P4=floor(0.25*mod(_P,8.0)); \nreturn 4.0*(4.0*bayerDither2(P1)+bayerDither2(P2))+bayerDither2(P4);}\n`;\nz.IncludesShadersStore[s3] = r3;\nconst n3 = \"shadowMapFragmentExtraDeclaration\", a3 = `#if SM_FLOAT==0\n#include\n#endif\n#if SM_SOFTTRANSPARENTSHADOW==1\n#include\nuniform float softTransparentShadowSM;\n#endif\nvarying float vDepthMetricSM;\n#if SM_USEDISTANCE==1\nuniform vec3 lightDataSM;varying vec3 vPositionWSM;\n#endif\nuniform vec3 biasAndScaleSM;uniform vec2 depthValuesSM;\n#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP==1\nvarying float zSM;\n#endif\n`;\nz.IncludesShadersStore[n3] = a3;\nconst o3 = \"shadowMapFragment\", l3 = `float depthSM=vDepthMetricSM;\n#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP==1\n#if SM_USEDISTANCE==1\ndepthSM=(length(vPositionWSM-lightDataSM)+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\n#else\n#ifdef USE_REVERSE_DEPTHBUFFER\ndepthSM=(-zSM+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\n#else\ndepthSM=(zSM+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\n#endif\n#endif\n#ifdef USE_REVERSE_DEPTHBUFFER\ngl_FragDepth=clamp(1.0-depthSM,0.0,1.0);\n#else\ngl_FragDepth=clamp(depthSM,0.0,1.0); \n#endif\n#elif SM_USEDISTANCE==1\ndepthSM=(length(vPositionWSM-lightDataSM)+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\n#endif\n#if SM_ESM==1\ndepthSM=clamp(exp(-min(87.,biasAndScaleSM.z*depthSM)),0.,1.);\n#endif\n#if SM_FLOAT==1\ngl_FragColor=vec4(depthSM,1.0,1.0,1.0);\n#else\ngl_FragColor=pack(depthSM);\n#endif\nreturn;`;\nz.IncludesShadersStore[o3] = l3;\nconst h3 = \"shadowMapPixelShader\", c3 = `#include\n#ifdef ALPHATEXTURE\nvarying vec2 vUV;uniform sampler2D diffuseSampler;\n#endif\n#include\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{\n#include\n#ifdef ALPHATEXTURE\nfloat alphaFromAlphaTexture=texture2D(diffuseSampler,vUV).a;\n#ifdef ALPHATESTVALUE\nif (alphaFromAlphaTexture=softTransparentShadowSM*alphaFromAlphaTexture) discard;\n#else\nif ((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM) discard;\n#endif\n#endif\n#include\n}`;\nz.ShadersStore[h3] = c3;\nconst u3 = \"sceneVertexDeclaration\", d3 = `uniform mat4 viewProjection;\n#ifdef MULTIVIEW\nuniform mat4 viewProjectionR;\n#endif\nuniform mat4 view;uniform mat4 projection;uniform vec4 vEyePosition;\n`;\nz.IncludesShadersStore[u3] = d3;\nconst f3 = \"meshVertexDeclaration\", p3 = `uniform mat4 world;uniform float visibility;\n`;\nz.IncludesShadersStore[f3] = p3;\nconst _3 = \"shadowMapVertexDeclaration\", m3 = `#include\n#include\n`;\nz.IncludesShadersStore[_3] = m3;\nconst g3 = \"shadowMapUboDeclaration\", x3 = `layout(std140,column_major) uniform;\n#include\n#include\n`;\nz.IncludesShadersStore[g3] = x3;\nconst v3 = \"shadowMapVertexExtraDeclaration\", T3 = `#if SM_NORMALBIAS==1\nuniform vec3 lightDataSM;\n#endif\nuniform vec3 biasAndScaleSM;uniform vec2 depthValuesSM;varying float vDepthMetricSM;\n#if SM_USEDISTANCE==1\nvarying vec3 vPositionWSM;\n#endif\n#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP==1\nvarying float zSM;\n#endif\n`;\nz.IncludesShadersStore[v3] = T3;\nconst S3 = \"shadowMapVertexNormalBias\", b3 = `#if SM_NORMALBIAS==1\n#if SM_DIRECTIONINLIGHTDATA==1\nvec3 worldLightDirSM=normalize(-lightDataSM.xyz);\n#else\nvec3 directionToLightSM=lightDataSM.xyz-worldPos.xyz;vec3 worldLightDirSM=normalize(directionToLightSM);\n#endif\nfloat ndlSM=dot(vNormalW,worldLightDirSM);float sinNLSM=sqrt(1.0-ndlSM*ndlSM);float normalBiasSM=biasAndScaleSM.y*sinNLSM;worldPos.xyz-=vNormalW*normalBiasSM;\n#endif\n`;\nz.IncludesShadersStore[S3] = b3;\nconst E3 = \"shadowMapVertexMetric\", y3 = `#if SM_USEDISTANCE==1\nvPositionWSM=worldPos.xyz;\n#endif\n#if SM_DEPTHTEXTURE==1\n#ifdef IS_NDC_HALF_ZRANGE\n#define BIASFACTOR 0.5\n#else\n#define BIASFACTOR 1.0\n#endif\n#ifdef USE_REVERSE_DEPTHBUFFER\ngl_Position.z-=biasAndScaleSM.x*gl_Position.w*BIASFACTOR;\n#else\ngl_Position.z+=biasAndScaleSM.x*gl_Position.w*BIASFACTOR;\n#endif\n#endif\n#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP==1\nzSM=gl_Position.z;gl_Position.z=0.0;\n#elif SM_USEDISTANCE==0\n#ifdef USE_REVERSE_DEPTHBUFFER\nvDepthMetricSM=(-gl_Position.z+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\n#else\nvDepthMetricSM=(gl_Position.z+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\n#endif\n#endif\n`;\nz.IncludesShadersStore[E3] = y3;\nconst C3 = \"shadowMapVertexShader\", A3 = `attribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#include\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n#ifdef INSTANCES\nattribute vec4 world0;attribute vec4 world1;attribute vec4 world2;attribute vec4 world3;\n#endif\n#include\n#include<__decl__shadowMapVertex>\n#ifdef ALPHATEXTURE\nvarying vec2 vUV;uniform mat4 diffuseMatrix;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\n#include\n#include\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void)\n{vec3 positionUpdated=position;\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#ifdef NORMAL\nvec3 normalUpdated=normal;\n#endif\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include\n#include\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);\n#ifdef NORMAL\nmat3 normWorldSM=mat3(finalWorld);\n#if defined(INSTANCES) && defined(THIN_INSTANCES)\nvec3 vNormalW=normalUpdated/vec3(dot(normWorldSM[0],normWorldSM[0]),dot(normWorldSM[1],normWorldSM[1]),dot(normWorldSM[2],normWorldSM[2]));vNormalW=normalize(normWorldSM*vNormalW);\n#else\n#ifdef NONUNIFORMSCALING\nnormWorldSM=transposeMat3(inverseMat3(normWorldSM));\n#endif\nvec3 vNormalW=normalize(normWorldSM*normalUpdated);\n#endif\n#endif\n#include\ngl_Position=viewProjection*worldPos;\n#include\n#ifdef ALPHATEXTURE\n#ifdef UV1\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef UV2\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n#include\n}`;\nz.ShadersStore[C3] = A3;\nconst R3 = \"depthBoxBlurPixelShader\", I3 = `varying vec2 vUV;uniform sampler2D textureSampler;uniform vec2 screenSize;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{vec4 colorDepth=vec4(0.0);for (int x=-OFFSET; x<=OFFSET; x++)\nfor (int y=-OFFSET; y<=OFFSET; y++)\ncolorDepth+=texture2D(textureSampler,vUV+vec2(x,y)/screenSize);gl_FragColor=(colorDepth/float((OFFSET*2+1)*(OFFSET*2+1)));}`;\nz.ShadersStore[R3] = I3;\nconst P3 = \"shadowMapFragmentSoftTransparentShadow\", M3 = `#if SM_SOFTTRANSPARENTSHADOW==1\nif ((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM*alpha) discard;\n#endif\n`;\nz.IncludesShadersStore[P3] = M3;\nclass je {\n /**\n * Gets the bias: offset applied on the depth preventing acnea (in light direction).\n */\n get bias() {\n return this._bias;\n }\n /**\n * Sets the bias: offset applied on the depth preventing acnea (in light direction).\n */\n set bias(e) {\n this._bias = e;\n }\n /**\n * Gets the normalBias: offset applied on the depth preventing acnea (along side the normal direction and proportional to the light/normal angle).\n */\n get normalBias() {\n return this._normalBias;\n }\n /**\n * Sets the normalBias: offset applied on the depth preventing acnea (along side the normal direction and proportional to the light/normal angle).\n */\n set normalBias(e) {\n this._normalBias = e;\n }\n /**\n * Gets the blur box offset: offset applied during the blur pass.\n * Only useful if useKernelBlur = false\n */\n get blurBoxOffset() {\n return this._blurBoxOffset;\n }\n /**\n * Sets the blur box offset: offset applied during the blur pass.\n * Only useful if useKernelBlur = false\n */\n set blurBoxOffset(e) {\n this._blurBoxOffset !== e && (this._blurBoxOffset = e, this._disposeBlurPostProcesses());\n }\n /**\n * Gets the blur scale: scale of the blurred texture compared to the main shadow map.\n * 2 means half of the size.\n */\n get blurScale() {\n return this._blurScale;\n }\n /**\n * Sets the blur scale: scale of the blurred texture compared to the main shadow map.\n * 2 means half of the size.\n */\n set blurScale(e) {\n this._blurScale !== e && (this._blurScale = e, this._disposeBlurPostProcesses());\n }\n /**\n * Gets the blur kernel: kernel size of the blur pass.\n * Only useful if useKernelBlur = true\n */\n get blurKernel() {\n return this._blurKernel;\n }\n /**\n * Sets the blur kernel: kernel size of the blur pass.\n * Only useful if useKernelBlur = true\n */\n set blurKernel(e) {\n this._blurKernel !== e && (this._blurKernel = e, this._disposeBlurPostProcesses());\n }\n /**\n * Gets whether the blur pass is a kernel blur (if true) or box blur.\n * Only useful in filtered mode (useBlurExponentialShadowMap...)\n */\n get useKernelBlur() {\n return this._useKernelBlur;\n }\n /**\n * Sets whether the blur pass is a kernel blur (if true) or box blur.\n * Only useful in filtered mode (useBlurExponentialShadowMap...)\n */\n set useKernelBlur(e) {\n this._useKernelBlur !== e && (this._useKernelBlur = e, this._disposeBlurPostProcesses());\n }\n /**\n * Gets the depth scale used in ESM mode.\n */\n get depthScale() {\n return this._depthScale !== void 0 ? this._depthScale : this._light.getDepthScale();\n }\n /**\n * Sets the depth scale used in ESM mode.\n * This can override the scale stored on the light.\n */\n set depthScale(e) {\n this._depthScale = e;\n }\n _validateFilter(e) {\n return e;\n }\n /**\n * Gets the current mode of the shadow generator (normal, PCF, ESM...).\n * The returned value is a number equal to one of the available mode defined in ShadowMap.FILTER_x like _FILTER_NONE\n */\n get filter() {\n return this._filter;\n }\n /**\n * Sets the current mode of the shadow generator (normal, PCF, ESM...).\n * The returned value is a number equal to one of the available mode defined in ShadowMap.FILTER_x like _FILTER_NONE\n */\n set filter(e) {\n if (e = this._validateFilter(e), this._light.needCube()) {\n if (e === je.FILTER_BLUREXPONENTIALSHADOWMAP) {\n this.useExponentialShadowMap = !0;\n return;\n } else if (e === je.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP) {\n this.useCloseExponentialShadowMap = !0;\n return;\n } else if (e === je.FILTER_PCF || e === je.FILTER_PCSS) {\n this.usePoissonSampling = !0;\n return;\n }\n }\n if ((e === je.FILTER_PCF || e === je.FILTER_PCSS) && !this._scene.getEngine()._features.supportShadowSamplers) {\n this.usePoissonSampling = !0;\n return;\n }\n this._filter !== e && (this._filter = e, this._disposeBlurPostProcesses(), this._applyFilterValues(), this._light._markMeshesAsLightDirty());\n }\n /**\n * Gets if the current filter is set to Poisson Sampling.\n */\n get usePoissonSampling() {\n return this.filter === je.FILTER_POISSONSAMPLING;\n }\n /**\n * Sets the current filter to Poisson Sampling.\n */\n set usePoissonSampling(e) {\n const t = this._validateFilter(je.FILTER_POISSONSAMPLING);\n !e && this.filter !== je.FILTER_POISSONSAMPLING || (this.filter = e ? t : je.FILTER_NONE);\n }\n /**\n * Gets if the current filter is set to ESM.\n */\n get useExponentialShadowMap() {\n return this.filter === je.FILTER_EXPONENTIALSHADOWMAP;\n }\n /**\n * Sets the current filter is to ESM.\n */\n set useExponentialShadowMap(e) {\n const t = this._validateFilter(je.FILTER_EXPONENTIALSHADOWMAP);\n !e && this.filter !== je.FILTER_EXPONENTIALSHADOWMAP || (this.filter = e ? t : je.FILTER_NONE);\n }\n /**\n * Gets if the current filter is set to filtered ESM.\n */\n get useBlurExponentialShadowMap() {\n return this.filter === je.FILTER_BLUREXPONENTIALSHADOWMAP;\n }\n /**\n * Gets if the current filter is set to filtered ESM.\n */\n set useBlurExponentialShadowMap(e) {\n const t = this._validateFilter(je.FILTER_BLUREXPONENTIALSHADOWMAP);\n !e && this.filter !== je.FILTER_BLUREXPONENTIALSHADOWMAP || (this.filter = e ? t : je.FILTER_NONE);\n }\n /**\n * Gets if the current filter is set to \"close ESM\" (using the inverse of the\n * exponential to prevent steep falloff artifacts).\n */\n get useCloseExponentialShadowMap() {\n return this.filter === je.FILTER_CLOSEEXPONENTIALSHADOWMAP;\n }\n /**\n * Sets the current filter to \"close ESM\" (using the inverse of the\n * exponential to prevent steep falloff artifacts).\n */\n set useCloseExponentialShadowMap(e) {\n const t = this._validateFilter(je.FILTER_CLOSEEXPONENTIALSHADOWMAP);\n !e && this.filter !== je.FILTER_CLOSEEXPONENTIALSHADOWMAP || (this.filter = e ? t : je.FILTER_NONE);\n }\n /**\n * Gets if the current filter is set to filtered \"close ESM\" (using the inverse of the\n * exponential to prevent steep falloff artifacts).\n */\n get useBlurCloseExponentialShadowMap() {\n return this.filter === je.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP;\n }\n /**\n * Sets the current filter to filtered \"close ESM\" (using the inverse of the\n * exponential to prevent steep falloff artifacts).\n */\n set useBlurCloseExponentialShadowMap(e) {\n const t = this._validateFilter(je.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP);\n !e && this.filter !== je.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP || (this.filter = e ? t : je.FILTER_NONE);\n }\n /**\n * Gets if the current filter is set to \"PCF\" (percentage closer filtering).\n */\n get usePercentageCloserFiltering() {\n return this.filter === je.FILTER_PCF;\n }\n /**\n * Sets the current filter to \"PCF\" (percentage closer filtering).\n */\n set usePercentageCloserFiltering(e) {\n const t = this._validateFilter(je.FILTER_PCF);\n !e && this.filter !== je.FILTER_PCF || (this.filter = e ? t : je.FILTER_NONE);\n }\n /**\n * Gets the PCF or PCSS Quality.\n * Only valid if usePercentageCloserFiltering or usePercentageCloserFiltering is true.\n */\n get filteringQuality() {\n return this._filteringQuality;\n }\n /**\n * Sets the PCF or PCSS Quality.\n * Only valid if usePercentageCloserFiltering or usePercentageCloserFiltering is true.\n */\n set filteringQuality(e) {\n this._filteringQuality !== e && (this._filteringQuality = e, this._disposeBlurPostProcesses(), this._applyFilterValues(), this._light._markMeshesAsLightDirty());\n }\n /**\n * Gets if the current filter is set to \"PCSS\" (contact hardening).\n */\n get useContactHardeningShadow() {\n return this.filter === je.FILTER_PCSS;\n }\n /**\n * Sets the current filter to \"PCSS\" (contact hardening).\n */\n set useContactHardeningShadow(e) {\n const t = this._validateFilter(je.FILTER_PCSS);\n !e && this.filter !== je.FILTER_PCSS || (this.filter = e ? t : je.FILTER_NONE);\n }\n /**\n * Gets the Light Size (in shadow map uv unit) used in PCSS to determine the blocker search area and the penumbra size.\n * Using a ratio helps keeping shape stability independently of the map size.\n *\n * It does not account for the light projection as it was having too much\n * instability during the light setup or during light position changes.\n *\n * Only valid if useContactHardeningShadow is true.\n */\n get contactHardeningLightSizeUVRatio() {\n return this._contactHardeningLightSizeUVRatio;\n }\n /**\n * Sets the Light Size (in shadow map uv unit) used in PCSS to determine the blocker search area and the penumbra size.\n * Using a ratio helps keeping shape stability independently of the map size.\n *\n * It does not account for the light projection as it was having too much\n * instability during the light setup or during light position changes.\n *\n * Only valid if useContactHardeningShadow is true.\n */\n set contactHardeningLightSizeUVRatio(e) {\n this._contactHardeningLightSizeUVRatio = e;\n }\n /** Gets or sets the actual darkness of a shadow */\n get darkness() {\n return this._darkness;\n }\n set darkness(e) {\n this.setDarkness(e);\n }\n /**\n * Returns the darkness value (float). This can only decrease the actual darkness of a shadow.\n * 0 means strongest and 1 would means no shadow.\n * @returns the darkness.\n */\n getDarkness() {\n return this._darkness;\n }\n /**\n * Sets the darkness value (float). This can only decrease the actual darkness of a shadow.\n * @param darkness The darkness value 0 means strongest and 1 would means no shadow.\n * @returns the shadow generator allowing fluent coding.\n */\n setDarkness(e) {\n return e >= 1 ? this._darkness = 1 : e <= 0 ? this._darkness = 0 : this._darkness = e, this;\n }\n /** Gets or sets the ability to have transparent shadow */\n get transparencyShadow() {\n return this._transparencyShadow;\n }\n set transparencyShadow(e) {\n this.setTransparencyShadow(e);\n }\n /**\n * Sets the ability to have transparent shadow (boolean).\n * @param transparent True if transparent else False\n * @returns the shadow generator allowing fluent coding\n */\n setTransparencyShadow(e) {\n return this._transparencyShadow = e, this;\n }\n /**\n * Gets the main RTT containing the shadow map (usually storing depth from the light point of view).\n * @returns The render target texture if present otherwise, null\n */\n getShadowMap() {\n return this._shadowMap;\n }\n /**\n * Gets the RTT used during rendering (can be a blurred version of the shadow map or the shadow map itself).\n * @returns The render target texture if the shadow map is present otherwise, null\n */\n getShadowMapForRendering() {\n return this._shadowMap2 ? this._shadowMap2 : this._shadowMap;\n }\n /**\n * Gets the class name of that object\n * @returns \"ShadowGenerator\"\n */\n getClassName() {\n return je.CLASSNAME;\n }\n /**\n * Helper function to add a mesh and its descendants to the list of shadow casters.\n * @param mesh Mesh to add\n * @param includeDescendants boolean indicating if the descendants should be added. Default to true\n * @returns the Shadow Generator itself\n */\n addShadowCaster(e, t = !0) {\n if (!this._shadowMap)\n return this;\n if (this._shadowMap.renderList || (this._shadowMap.renderList = []), this._shadowMap.renderList.indexOf(e) === -1 && this._shadowMap.renderList.push(e), t)\n for (const i of e.getChildMeshes())\n this._shadowMap.renderList.indexOf(i) === -1 && this._shadowMap.renderList.push(i);\n return this;\n }\n /**\n * Helper function to remove a mesh and its descendants from the list of shadow casters\n * @param mesh Mesh to remove\n * @param includeDescendants boolean indicating if the descendants should be removed. Default to true\n * @returns the Shadow Generator itself\n */\n removeShadowCaster(e, t = !0) {\n if (!this._shadowMap || !this._shadowMap.renderList)\n return this;\n const i = this._shadowMap.renderList.indexOf(e);\n if (i !== -1 && this._shadowMap.renderList.splice(i, 1), t)\n for (const s of e.getChildren())\n this.removeShadowCaster(s);\n return this;\n }\n /**\n * Returns the associated light object.\n * @returns the light generating the shadow\n */\n getLight() {\n return this._light;\n }\n _getCamera() {\n return this._camera ?? this._scene.activeCamera;\n }\n /**\n * Gets or sets the size of the texture what stores the shadows\n */\n get mapSize() {\n return this._mapSize;\n }\n set mapSize(e) {\n this._mapSize = e, this._light._markMeshesAsLightDirty(), this.recreateShadowMap();\n }\n /**\n * Creates a ShadowGenerator object.\n * A ShadowGenerator is the required tool to use the shadows.\n * Each light casting shadows needs to use its own ShadowGenerator.\n * Documentation : https://doc.babylonjs.com/features/featuresDeepDive/lights/shadows\n * @param mapSize The size of the texture what stores the shadows. Example : 1024.\n * @param light The light object generating the shadows.\n * @param usefullFloatFirst By default the generator will try to use half float textures but if you need precision (for self shadowing for instance), you can use this option to enforce full float texture.\n * @param camera Camera associated with this shadow generator (default: null). If null, takes the scene active camera at the time we need to access it\n * @param useRedTextureType Forces the generator to use a Red instead of a RGBA type for the shadow map texture format (default: false)\n */\n constructor(e, t, i, s, r) {\n this.onBeforeShadowMapRenderObservable = new G(), this.onAfterShadowMapRenderObservable = new G(), this.onBeforeShadowMapRenderMeshObservable = new G(), this.onAfterShadowMapRenderMeshObservable = new G(), this._bias = 5e-5, this._normalBias = 0, this._blurBoxOffset = 1, this._blurScale = 2, this._blurKernel = 1, this._useKernelBlur = !1, this._filter = je.FILTER_NONE, this._filteringQuality = je.QUALITY_HIGH, this._contactHardeningLightSizeUVRatio = 0.1, this._darkness = 0, this._transparencyShadow = !1, this.enableSoftTransparentShadow = !1, this.useOpacityTextureForTransparentShadow = !1, this.frustumEdgeFalloff = 0, this.forceBackFacesOnly = !1, this._lightDirection = g.Zero(), this._viewMatrix = O.Zero(), this._projectionMatrix = O.Zero(), this._transformMatrix = O.Zero(), this._cachedPosition = new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), this._cachedDirection = new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), this._currentFaceIndex = 0, this._currentFaceIndexCache = 0, this._defaultTextureMatrix = O.Identity(), this._mapSize = e, this._light = t, this._scene = t.getScene(), this._camera = s ?? null, this._useRedTextureType = !!r;\n let n = t._shadowGenerators;\n n || (n = t._shadowGenerators = /* @__PURE__ */ new Map()), n.set(this._camera, this), this.id = t.id, this._useUBO = this._scene.getEngine().supportsUniformBuffers, this._useUBO && (this._sceneUBOs = [], this._sceneUBOs.push(this._scene.createSceneUniformBuffer(`Scene for Shadow Generator (light \"${this._light.name}\")`))), je._SceneComponentInitialization(this._scene);\n const o = this._scene.getEngine().getCaps();\n i ? o.textureFloatRender && o.textureFloatLinearFiltering ? this._textureType = 1 : o.textureHalfFloatRender && o.textureHalfFloatLinearFiltering ? this._textureType = 2 : this._textureType = 0 : o.textureHalfFloatRender && o.textureHalfFloatLinearFiltering ? this._textureType = 2 : o.textureFloatRender && o.textureFloatLinearFiltering ? this._textureType = 1 : this._textureType = 0, this._initializeGenerator(), this._applyFilterValues();\n }\n _initializeGenerator() {\n this._light._markMeshesAsLightDirty(), this._initializeShadowMap();\n }\n _createTargetRenderTexture() {\n const e = this._scene.getEngine();\n e._features.supportDepthStencilTexture ? (this._shadowMap = new Ii(this._light.name + \"_shadowMap\", this._mapSize, this._scene, !1, !0, this._textureType, this._light.needCube(), void 0, !1, !1, void 0, this._useRedTextureType ? 6 : 5), this._shadowMap.createDepthStencilTexture(e.useReverseDepthBuffer ? 516 : 513, !0, void 0, void 0, void 0, `DepthStencilForShadowGenerator-${this._light.name}`)) : this._shadowMap = new Ii(this._light.name + \"_shadowMap\", this._mapSize, this._scene, !1, !0, this._textureType, this._light.needCube()), this._shadowMap.noPrePassRenderer = !0;\n }\n _initializeShadowMap() {\n if (this._createTargetRenderTexture(), this._shadowMap === null)\n return;\n this._shadowMap.wrapU = X.CLAMP_ADDRESSMODE, this._shadowMap.wrapV = X.CLAMP_ADDRESSMODE, this._shadowMap.anisotropicFilteringLevel = 1, this._shadowMap.updateSamplingMode(X.BILINEAR_SAMPLINGMODE), this._shadowMap.renderParticles = !1, this._shadowMap.ignoreCameraViewport = !0, this._storedUniqueId && (this._shadowMap.uniqueId = this._storedUniqueId), this._shadowMap.customRenderFunction = (s, r, n, o) => this._renderForShadowMap(s, r, n, o), this._shadowMap.customIsReadyFunction = () => !0;\n const e = this._scene.getEngine();\n this._shadowMap.onBeforeBindObservable.add(() => {\n var s;\n this._currentSceneUBO = this._scene.getSceneUniformBuffer(), (s = e._debugPushGroup) == null || s.call(e, `shadow map generation for pass id ${e.currentRenderPassId}`, 1);\n }), this._shadowMap.onBeforeRenderObservable.add((s) => {\n this._sceneUBOs && this._scene.setSceneUniformBuffer(this._sceneUBOs[0]), this._currentFaceIndex = s, this._filter === je.FILTER_PCF && e.setColorWrite(!1), this.getTransformMatrix(), this._scene.setTransformMatrix(this._viewMatrix, this._projectionMatrix), this._useUBO && (this._scene.getSceneUniformBuffer().unbindEffect(), this._scene.finalizeSceneUbo());\n }), this._shadowMap.onAfterUnbindObservable.add(() => {\n var r, n;\n if (this._sceneUBOs && this._scene.setSceneUniformBuffer(this._currentSceneUBO), this._scene.updateTransformMatrix(), this._filter === je.FILTER_PCF && e.setColorWrite(!0), !this.useBlurExponentialShadowMap && !this.useBlurCloseExponentialShadowMap) {\n (r = e._debugPopGroup) == null || r.call(e, 1);\n return;\n }\n const s = this.getShadowMapForRendering();\n s && (this._scene.postProcessManager.directRender(this._blurPostProcesses, s.renderTarget, !0), e.unBindFramebuffer(s.renderTarget, !0), (n = e._debugPopGroup) == null || n.call(e, 1));\n });\n const t = new Ce(0, 0, 0, 0), i = new Ce(1, 1, 1, 1);\n this._shadowMap.onClearObservable.add((s) => {\n this._filter === je.FILTER_PCF ? s.clear(i, !1, !0, !1) : this.useExponentialShadowMap || this.useBlurExponentialShadowMap ? s.clear(t, !0, !0, !1) : s.clear(i, !0, !0, !1);\n }), this._shadowMap.onResizeObservable.add((s) => {\n this._storedUniqueId = this._shadowMap.uniqueId, this._mapSize = s.getRenderSize(), this._light._markMeshesAsLightDirty(), this.recreateShadowMap();\n });\n for (let s = Ys.MIN_RENDERINGGROUPS; s < Ys.MAX_RENDERINGGROUPS; s++)\n this._shadowMap.setRenderingAutoClearDepthStencil(s, !1);\n }\n _initializeBlurRTTAndPostProcesses() {\n const e = this._scene.getEngine(), t = this._mapSize / this.blurScale;\n (!this.useKernelBlur || this.blurScale !== 1) && (this._shadowMap2 = new Ii(this._light.name + \"_shadowMap2\", t, this._scene, !1, !0, this._textureType, void 0, void 0, !1), this._shadowMap2.wrapU = X.CLAMP_ADDRESSMODE, this._shadowMap2.wrapV = X.CLAMP_ADDRESSMODE, this._shadowMap2.updateSamplingMode(X.BILINEAR_SAMPLINGMODE)), this.useKernelBlur ? (this._kernelBlurXPostprocess = new As(this._light.name + \"KernelBlurX\", new Q(1, 0), this.blurKernel, 1, null, X.BILINEAR_SAMPLINGMODE, e, !1, this._textureType), this._kernelBlurXPostprocess.width = t, this._kernelBlurXPostprocess.height = t, this._kernelBlurXPostprocess.externalTextureSamplerBinding = !0, this._kernelBlurXPostprocess.onApplyObservable.add((i) => {\n i.setTexture(\"textureSampler\", this._shadowMap);\n }), this._kernelBlurYPostprocess = new As(this._light.name + \"KernelBlurY\", new Q(0, 1), this.blurKernel, 1, null, X.BILINEAR_SAMPLINGMODE, e, !1, this._textureType), this._kernelBlurXPostprocess.autoClear = !1, this._kernelBlurYPostprocess.autoClear = !1, this._textureType === 0 && (this._kernelBlurXPostprocess.packedFloat = !0, this._kernelBlurYPostprocess.packedFloat = !0), this._blurPostProcesses = [this._kernelBlurXPostprocess, this._kernelBlurYPostprocess]) : (this._boxBlurPostprocess = new Be(this._light.name + \"DepthBoxBlur\", \"depthBoxBlur\", [\"screenSize\", \"boxOffset\"], [], 1, null, X.BILINEAR_SAMPLINGMODE, e, !1, \"#define OFFSET \" + this._blurBoxOffset, this._textureType), this._boxBlurPostprocess.externalTextureSamplerBinding = !0, this._boxBlurPostprocess.onApplyObservable.add((i) => {\n i.setFloat2(\"screenSize\", t, t), i.setTexture(\"textureSampler\", this._shadowMap);\n }), this._boxBlurPostprocess.autoClear = !1, this._blurPostProcesses = [this._boxBlurPostprocess]);\n }\n _renderForShadowMap(e, t, i, s) {\n let r;\n if (s.length)\n for (r = 0; r < s.length; r++)\n this._renderSubMeshForShadowMap(s.data[r]);\n for (r = 0; r < e.length; r++)\n this._renderSubMeshForShadowMap(e.data[r]);\n for (r = 0; r < t.length; r++)\n this._renderSubMeshForShadowMap(t.data[r]);\n if (this._transparencyShadow)\n for (r = 0; r < i.length; r++)\n this._renderSubMeshForShadowMap(i.data[r], !0);\n else\n for (r = 0; r < i.length; r++)\n i.data[r].getEffectiveMesh()._internalAbstractMeshDataInfo._isActiveIntermediate = !1;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _bindCustomEffectForRenderSubMeshForShadowMap(e, t, i) {\n t.setMatrix(\"viewProjection\", this.getTransformMatrix());\n }\n _renderSubMeshForShadowMap(e, t = !1) {\n const i = e.getRenderingMesh(), s = e.getEffectiveMesh(), r = this._scene, n = r.getEngine(), o = e.getMaterial();\n if (s._internalAbstractMeshDataInfo._isActiveIntermediate = !1, !o || e.verticesCount === 0 || e._renderId === r.getRenderId())\n return;\n const l = r.useRightHandedSystem, h = s._getWorldMatrixDeterminant() < 0;\n let c = o._getEffectiveOrientation(i);\n (h && !l || !h && l) && (c = c === 0 ? 1 : 0);\n const u = c === 0;\n n.setState(o.backFaceCulling, void 0, void 0, u, o.cullBackFaces);\n const d = i._getInstancesRenderList(e._id, !!e.getReplacementMesh());\n if (d.mustReturn)\n return;\n const f = n.getCaps().instancedArrays && (d.visibleInstances[e._id] !== null && d.visibleInstances[e._id] !== void 0 || i.hasThinInstances);\n if (!(this.customAllowRendering && !this.customAllowRendering(e)))\n if (this.isReady(e, f, t)) {\n e._renderId = r.getRenderId();\n const p = o.shadowDepthWrapper, _ = (p == null ? void 0 : p.getEffect(e, this, n.currentRenderPassId)) ?? e._getDrawWrapper(), m = Ds.GetEffect(_);\n n.enableEffect(_), f || i._bind(e, m, o.fillMode), this.getTransformMatrix(), m.setFloat3(\"biasAndScaleSM\", this.bias, this.normalBias, this.depthScale), this.getLight().getTypeID() === at.LIGHTTYPEID_DIRECTIONALLIGHT ? m.setVector3(\"lightDataSM\", this._cachedDirection) : m.setVector3(\"lightDataSM\", this._cachedPosition);\n const x = this._getCamera();\n if (x && m.setFloat2(\"depthValuesSM\", this.getLight().getDepthMinZ(x), this.getLight().getDepthMinZ(x) + this.getLight().getDepthMaxZ(x)), t && this.enableSoftTransparentShadow && m.setFloat(\"softTransparentShadowSM\", s.visibility * o.alpha), p)\n e._setMainDrawWrapperOverride(_), p.standalone ? p.baseMaterial.bindForSubMesh(s.getWorldMatrix(), i, e) : o.bindForSubMesh(s.getWorldMatrix(), i, e), e._setMainDrawWrapperOverride(null);\n else {\n if (this._opacityTexture && (m.setTexture(\"diffuseSampler\", this._opacityTexture), m.setMatrix(\"diffuseMatrix\", this._opacityTexture.getTextureMatrix() || this._defaultTextureMatrix)), i.useBones && i.computeBonesUsingShaders && i.skeleton) {\n const E = i.skeleton;\n if (E.isUsingTextureForMatrices) {\n const b = E.getTransformMatrixTexture(i);\n if (!b)\n return;\n m.setTexture(\"boneSampler\", b), m.setFloat(\"boneTextureWidth\", 4 * (E.bones.length + 1));\n } else\n m.setMatrices(\"mBones\", E.getTransformMatrices(i));\n }\n na(i, m), i.morphTargetManager && i.morphTargetManager.isUsingTextureForTargets && i.morphTargetManager._bind(m);\n const T = e.getMesh().bakedVertexAnimationManager;\n f && T && T.isEnabled && T.bind(m, !0), Tn(m, o, r);\n }\n !this._useUBO && !p && this._bindCustomEffectForRenderSubMeshForShadowMap(e, m, s), hf(m, this._scene.getSceneUniformBuffer()), this._scene.getSceneUniformBuffer().bindUniformBuffer();\n const v = s.getWorldMatrix();\n f && (s.getMeshUniformBuffer().bindToEffect(m, \"Mesh\"), s.transferToEffect(v)), this.forceBackFacesOnly && n.setState(!0, 0, !1, !0, o.cullBackFaces), this.onBeforeShadowMapRenderMeshObservable.notifyObservers(i), this.onBeforeShadowMapRenderObservable.notifyObservers(m), i._processRendering(s, e, m, o.fillMode, d, f, (T, E) => {\n s !== i && !T ? (i.getMeshUniformBuffer().bindToEffect(m, \"Mesh\"), i.transferToEffect(E)) : (s.getMeshUniformBuffer().bindToEffect(m, \"Mesh\"), s.transferToEffect(T ? E : v));\n }), this.forceBackFacesOnly && n.setState(!0, 0, !1, !1, o.cullBackFaces), this.onAfterShadowMapRenderObservable.notifyObservers(m), this.onAfterShadowMapRenderMeshObservable.notifyObservers(i);\n } else\n this._shadowMap && this._shadowMap.resetRefreshCounter();\n }\n _applyFilterValues() {\n this._shadowMap && (this.filter === je.FILTER_NONE || this.filter === je.FILTER_PCSS ? this._shadowMap.updateSamplingMode(X.NEAREST_SAMPLINGMODE) : this._shadowMap.updateSamplingMode(X.BILINEAR_SAMPLINGMODE));\n }\n /**\n * Forces all the attached effect to compile to enable rendering only once ready vs. lazily compiling effects.\n * @param onCompiled Callback triggered at the and of the effects compilation\n * @param options Sets of optional options forcing the compilation with different modes\n */\n forceCompilation(e, t) {\n const i = {\n useInstances: !1,\n ...t\n }, s = this.getShadowMap();\n if (!s) {\n e && e(this);\n return;\n }\n const r = s.renderList;\n if (!r) {\n e && e(this);\n return;\n }\n const n = [];\n for (const h of r)\n n.push(...h.subMeshes);\n if (n.length === 0) {\n e && e(this);\n return;\n }\n let o = 0;\n const l = () => {\n var h;\n if (!(!this._scene || !this._scene.getEngine())) {\n for (; this.isReady(n[o], i.useInstances, ((h = n[o].getMaterial()) == null ? void 0 : h.needAlphaBlendingForMesh(n[o].getMesh())) ?? !1); )\n if (o++, o >= n.length) {\n e && e(this);\n return;\n }\n setTimeout(l, 16);\n }\n };\n l();\n }\n /**\n * Forces all the attached effect to compile to enable rendering only once ready vs. lazily compiling effects.\n * @param options Sets of optional options forcing the compilation with different modes\n * @returns A promise that resolves when the compilation completes\n */\n forceCompilationAsync(e) {\n return new Promise((t) => {\n this.forceCompilation(() => {\n t();\n }, e);\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _isReadyCustomDefines(e, t, i) {\n }\n _prepareShadowDefines(e, t, i, s) {\n i.push(\"#define SM_LIGHTTYPE_\" + this._light.getClassName().toUpperCase()), i.push(\"#define SM_FLOAT \" + (this._textureType !== 0 ? \"1\" : \"0\")), i.push(\"#define SM_ESM \" + (this.useExponentialShadowMap || this.useBlurExponentialShadowMap ? \"1\" : \"0\")), i.push(\"#define SM_DEPTHTEXTURE \" + (this.usePercentageCloserFiltering || this.useContactHardeningShadow ? \"1\" : \"0\"));\n const r = e.getMesh();\n return i.push(\"#define SM_NORMALBIAS \" + (this.normalBias && r.isVerticesDataPresent(R.NormalKind) ? \"1\" : \"0\")), i.push(\"#define SM_DIRECTIONINLIGHTDATA \" + (this.getLight().getTypeID() === at.LIGHTTYPEID_DIRECTIONALLIGHT ? \"1\" : \"0\")), i.push(\"#define SM_USEDISTANCE \" + (this._light.needCube() ? \"1\" : \"0\")), i.push(\"#define SM_SOFTTRANSPARENTSHADOW \" + (this.enableSoftTransparentShadow && s ? \"1\" : \"0\")), this._isReadyCustomDefines(i, e, t), i;\n }\n /**\n * Determine whether the shadow generator is ready or not (mainly all effects and related post processes needs to be ready).\n * @param subMesh The submesh we want to render in the shadow map\n * @param useInstances Defines whether will draw in the map using instances\n * @param isTransparent Indicates that isReady is called for a transparent subMesh\n * @returns true if ready otherwise, false\n */\n isReady(e, t, i) {\n const s = e.getMaterial(), r = s == null ? void 0 : s.shadowDepthWrapper;\n if (this._opacityTexture = null, !s)\n return !1;\n const n = [];\n if (this._prepareShadowDefines(e, t, n, i), r) {\n if (!r.isReadyForSubMesh(e, n, this, t, this._scene.getEngine().currentRenderPassId))\n return !1;\n } else {\n const o = e._getDrawWrapper(void 0, !0);\n let l = o.effect, h = o.defines;\n const c = [R.PositionKind], u = e.getMesh();\n this.normalBias && u.isVerticesDataPresent(R.NormalKind) && (c.push(R.NormalKind), n.push(\"#define NORMAL\"), u.nonUniformScaling && n.push(\"#define NONUNIFORMSCALING\"));\n const d = s.needAlphaTesting();\n if ((d || s.needAlphaBlending()) && (this.useOpacityTextureForTransparentShadow ? this._opacityTexture = s.opacityTexture : this._opacityTexture = s.getAlphaTestTexture(), this._opacityTexture)) {\n if (!this._opacityTexture.isReady())\n return !1;\n const v = s.alphaCutOff ?? je.DEFAULT_ALPHA_CUTOFF;\n n.push(\"#define ALPHATEXTURE\"), d && n.push(`#define ALPHATESTVALUE ${v}${v % 1 === 0 ? \".\" : \"\"}`), u.isVerticesDataPresent(R.UVKind) && (c.push(R.UVKind), n.push(\"#define UV1\")), u.isVerticesDataPresent(R.UV2Kind) && this._opacityTexture.coordinatesIndex === 1 && (c.push(R.UV2Kind), n.push(\"#define UV2\"));\n }\n const f = new Vl();\n if (u.useBones && u.computeBonesUsingShaders && u.skeleton) {\n c.push(R.MatricesIndicesKind), c.push(R.MatricesWeightsKind), u.numBoneInfluencers > 4 && (c.push(R.MatricesIndicesExtraKind), c.push(R.MatricesWeightsExtraKind));\n const v = u.skeleton;\n n.push(\"#define NUM_BONE_INFLUENCERS \" + u.numBoneInfluencers), u.numBoneInfluencers > 0 && f.addCPUSkinningFallback(0, u), v.isUsingTextureForMatrices ? n.push(\"#define BONETEXTURE\") : n.push(\"#define BonesPerMesh \" + (v.bones.length + 1));\n } else\n n.push(\"#define NUM_BONE_INFLUENCERS 0\");\n const p = u.morphTargetManager;\n let _ = 0;\n if (p && (_ = p.numMaxInfluencers || p.numInfluencers, _ > 0 && (n.push(\"#define MORPHTARGETS\"), n.push(\"#define NUM_MORPH_INFLUENCERS \" + _), p.isUsingTextureForTargets && n.push(\"#define MORPHTARGETS_TEXTURE\"), mc(c, u, _))), tl(s, this._scene, n), t && (n.push(\"#define INSTANCES\"), So(c), e.getRenderingMesh().hasThinInstances && n.push(\"#define THIN_INSTANCES\")), this.customShaderOptions && this.customShaderOptions.defines)\n for (const v of this.customShaderOptions.defines)\n n.indexOf(v) === -1 && n.push(v);\n const m = u.bakedVertexAnimationManager;\n t && m && m.isEnabled && (n.push(\"#define BAKED_VERTEX_ANIMATION_TEXTURE\"), c.push(\"bakedVertexAnimationSettingsInstanced\"));\n const x = n.join(`\n`);\n if (h !== x) {\n h = x;\n let v = \"shadowMap\";\n const T = [\n \"world\",\n \"mBones\",\n \"viewProjection\",\n \"diffuseMatrix\",\n \"lightDataSM\",\n \"depthValuesSM\",\n \"biasAndScaleSM\",\n \"morphTargetInfluences\",\n \"morphTargetCount\",\n \"boneTextureWidth\",\n \"softTransparentShadowSM\",\n \"morphTargetTextureInfo\",\n \"morphTargetTextureIndices\",\n \"bakedVertexAnimationSettings\",\n \"bakedVertexAnimationTextureSizeInverted\",\n \"bakedVertexAnimationTime\",\n \"bakedVertexAnimationTexture\"\n ], E = [\"diffuseSampler\", \"boneSampler\", \"morphTargets\", \"bakedVertexAnimationTexture\"], b = [\"Scene\", \"Mesh\"];\n if (Ln(T), this.customShaderOptions) {\n if (v = this.customShaderOptions.shaderName, this.customShaderOptions.attributes)\n for (const C of this.customShaderOptions.attributes)\n c.indexOf(C) === -1 && c.push(C);\n if (this.customShaderOptions.uniforms)\n for (const C of this.customShaderOptions.uniforms)\n T.indexOf(C) === -1 && T.push(C);\n if (this.customShaderOptions.samplers)\n for (const C of this.customShaderOptions.samplers)\n E.indexOf(C) === -1 && E.push(C);\n }\n const S = this._scene.getEngine();\n l = S.createEffect(v, {\n attributes: c,\n uniformsNames: T,\n uniformBuffersNames: b,\n samplers: E,\n defines: x,\n fallbacks: f,\n onCompiled: null,\n onError: null,\n indexParameters: { maxSimultaneousMorphTargets: _ }\n }, S), o.setEffect(l, h);\n }\n if (!l.isReady())\n return !1;\n }\n return (this.useBlurExponentialShadowMap || this.useBlurCloseExponentialShadowMap) && (!this._blurPostProcesses || !this._blurPostProcesses.length) && this._initializeBlurRTTAndPostProcesses(), !(this._kernelBlurXPostprocess && !this._kernelBlurXPostprocess.isReady() || this._kernelBlurYPostprocess && !this._kernelBlurYPostprocess.isReady() || this._boxBlurPostprocess && !this._boxBlurPostprocess.isReady());\n }\n /**\n * Prepare all the defines in a material relying on a shadow map at the specified light index.\n * @param defines Defines of the material we want to update\n * @param lightIndex Index of the light in the enabled light list of the material\n */\n prepareDefines(e, t) {\n const i = this._scene, s = this._light;\n !i.shadowsEnabled || !s.shadowEnabled || (e[\"SHADOW\" + t] = !0, this.useContactHardeningShadow ? (e[\"SHADOWPCSS\" + t] = !0, this._filteringQuality === je.QUALITY_LOW ? e[\"SHADOWLOWQUALITY\" + t] = !0 : this._filteringQuality === je.QUALITY_MEDIUM && (e[\"SHADOWMEDIUMQUALITY\" + t] = !0)) : this.usePercentageCloserFiltering ? (e[\"SHADOWPCF\" + t] = !0, this._filteringQuality === je.QUALITY_LOW ? e[\"SHADOWLOWQUALITY\" + t] = !0 : this._filteringQuality === je.QUALITY_MEDIUM && (e[\"SHADOWMEDIUMQUALITY\" + t] = !0)) : this.usePoissonSampling ? e[\"SHADOWPOISSON\" + t] = !0 : this.useExponentialShadowMap || this.useBlurExponentialShadowMap ? e[\"SHADOWESM\" + t] = !0 : (this.useCloseExponentialShadowMap || this.useBlurCloseExponentialShadowMap) && (e[\"SHADOWCLOSEESM\" + t] = !0), s.needCube() && (e[\"SHADOWCUBE\" + t] = !0));\n }\n /**\n * Binds the shadow related information inside of an effect (information like near, far, darkness...\n * defined in the generator but impacting the effect).\n * @param lightIndex Index of the light in the enabled light list of the material owning the effect\n * @param effect The effect we are binding the information for\n */\n bindShadowLight(e, t) {\n const i = this._light;\n if (!this._scene.shadowsEnabled || !i.shadowEnabled)\n return;\n const r = this._getCamera();\n if (!r)\n return;\n const n = this.getShadowMap();\n if (!n)\n return;\n i.needCube() || t.setMatrix(\"lightMatrix\" + e, this.getTransformMatrix());\n const o = this.getShadowMapForRendering();\n this._filter === je.FILTER_PCF ? (t.setDepthStencilTexture(\"shadowTexture\" + e, o), i._uniformBuffer.updateFloat4(\"shadowsInfo\", this.getDarkness(), n.getSize().width, 1 / n.getSize().width, this.frustumEdgeFalloff, e)) : this._filter === je.FILTER_PCSS ? (t.setDepthStencilTexture(\"shadowTexture\" + e, o), t.setTexture(\"depthTexture\" + e, o), i._uniformBuffer.updateFloat4(\"shadowsInfo\", this.getDarkness(), 1 / n.getSize().width, this._contactHardeningLightSizeUVRatio * n.getSize().width, this.frustumEdgeFalloff, e)) : (t.setTexture(\"shadowTexture\" + e, o), i._uniformBuffer.updateFloat4(\"shadowsInfo\", this.getDarkness(), this.blurScale / n.getSize().width, this.depthScale, this.frustumEdgeFalloff, e)), i._uniformBuffer.updateFloat2(\"depthValues\", this.getLight().getDepthMinZ(r), this.getLight().getDepthMinZ(r) + this.getLight().getDepthMaxZ(r), e);\n }\n /**\n * Gets the view matrix used to render the shadow map.\n */\n get viewMatrix() {\n return this._viewMatrix;\n }\n /**\n * Gets the projection matrix used to render the shadow map.\n */\n get projectionMatrix() {\n return this._projectionMatrix;\n }\n /**\n * Gets the transformation matrix used to project the meshes into the map from the light point of view.\n * (eq to shadow projection matrix * light transform matrix)\n * @returns The transform matrix used to create the shadow map\n */\n getTransformMatrix() {\n const e = this._scene;\n if (this._currentRenderId === e.getRenderId() && this._currentFaceIndexCache === this._currentFaceIndex)\n return this._transformMatrix;\n this._currentRenderId = e.getRenderId(), this._currentFaceIndexCache = this._currentFaceIndex;\n let t = this._light.position;\n if (this._light.computeTransformedInformation() && (t = this._light.transformedPosition), g.NormalizeToRef(this._light.getShadowDirection(this._currentFaceIndex), this._lightDirection), Math.abs(g.Dot(this._lightDirection, g.Up())) === 1 && (this._lightDirection.z = 1e-13), this._light.needProjectionMatrixCompute() || !this._cachedPosition || !this._cachedDirection || !t.equals(this._cachedPosition) || !this._lightDirection.equals(this._cachedDirection)) {\n this._cachedPosition.copyFrom(t), this._cachedDirection.copyFrom(this._lightDirection), O.LookAtLHToRef(t, t.add(this._lightDirection), g.Up(), this._viewMatrix);\n const i = this.getShadowMap();\n if (i) {\n const s = i.renderList;\n s && this._light.setShadowProjectionMatrix(this._projectionMatrix, this._viewMatrix, s);\n }\n this._viewMatrix.multiplyToRef(this._projectionMatrix, this._transformMatrix);\n }\n return this._transformMatrix;\n }\n /**\n * Recreates the shadow map dependencies like RTT and post processes. This can be used during the switch between\n * Cube and 2D textures for instance.\n */\n recreateShadowMap() {\n const e = this._shadowMap;\n if (!e)\n return;\n const t = e.renderList;\n if (this._disposeRTTandPostProcesses(), this._initializeGenerator(), this.filter = this._filter, this._applyFilterValues(), t) {\n this._shadowMap.renderList || (this._shadowMap.renderList = []);\n for (const i of t)\n this._shadowMap.renderList.push(i);\n } else\n this._shadowMap.renderList = null;\n }\n _disposeBlurPostProcesses() {\n this._shadowMap2 && (this._shadowMap2.dispose(), this._shadowMap2 = null), this._boxBlurPostprocess && (this._boxBlurPostprocess.dispose(), this._boxBlurPostprocess = null), this._kernelBlurXPostprocess && (this._kernelBlurXPostprocess.dispose(), this._kernelBlurXPostprocess = null), this._kernelBlurYPostprocess && (this._kernelBlurYPostprocess.dispose(), this._kernelBlurYPostprocess = null), this._blurPostProcesses = [];\n }\n _disposeRTTandPostProcesses() {\n this._shadowMap && (this._shadowMap.dispose(), this._shadowMap = null), this._disposeBlurPostProcesses();\n }\n _disposeSceneUBOs() {\n if (this._sceneUBOs) {\n for (const e of this._sceneUBOs)\n e.dispose();\n this._sceneUBOs = [];\n }\n }\n /**\n * Disposes the ShadowGenerator.\n * Returns nothing.\n */\n dispose() {\n if (this._disposeRTTandPostProcesses(), this._disposeSceneUBOs(), this._light) {\n if (this._light._shadowGenerators) {\n const e = this._light._shadowGenerators.entries();\n for (let t = e.next(); t.done !== !0; t = e.next()) {\n const [i, s] = t.value;\n s === this && this._light._shadowGenerators.delete(i);\n }\n this._light._shadowGenerators.size === 0 && (this._light._shadowGenerators = null);\n }\n this._light._markMeshesAsLightDirty();\n }\n this.onBeforeShadowMapRenderMeshObservable.clear(), this.onBeforeShadowMapRenderObservable.clear(), this.onAfterShadowMapRenderMeshObservable.clear(), this.onAfterShadowMapRenderObservable.clear();\n }\n /**\n * Serializes the shadow generator setup to a json object.\n * @returns The serialized JSON object\n */\n serialize() {\n var i;\n const e = {}, t = this.getShadowMap();\n if (!t)\n return e;\n if (e.className = this.getClassName(), e.lightId = this._light.id, e.cameraId = (i = this._camera) == null ? void 0 : i.id, e.id = this.id, e.mapSize = t.getRenderSize(), e.forceBackFacesOnly = this.forceBackFacesOnly, e.darkness = this.getDarkness(), e.transparencyShadow = this._transparencyShadow, e.frustumEdgeFalloff = this.frustumEdgeFalloff, e.bias = this.bias, e.normalBias = this.normalBias, e.usePercentageCloserFiltering = this.usePercentageCloserFiltering, e.useContactHardeningShadow = this.useContactHardeningShadow, e.contactHardeningLightSizeUVRatio = this.contactHardeningLightSizeUVRatio, e.filteringQuality = this.filteringQuality, e.useExponentialShadowMap = this.useExponentialShadowMap, e.useBlurExponentialShadowMap = this.useBlurExponentialShadowMap, e.useCloseExponentialShadowMap = this.useBlurExponentialShadowMap, e.useBlurCloseExponentialShadowMap = this.useBlurExponentialShadowMap, e.usePoissonSampling = this.usePoissonSampling, e.depthScale = this.depthScale, e.blurBoxOffset = this.blurBoxOffset, e.blurKernel = this.blurKernel, e.blurScale = this.blurScale, e.useKernelBlur = this.useKernelBlur, e.renderList = [], t.renderList)\n for (let s = 0; s < t.renderList.length; s++) {\n const r = t.renderList[s];\n e.renderList.push(r.id);\n }\n return e;\n }\n /**\n * Parses a serialized ShadowGenerator and returns a new ShadowGenerator.\n * @param parsedShadowGenerator The JSON object to parse\n * @param scene The scene to create the shadow map for\n * @param constr A function that builds a shadow generator or undefined to create an instance of the default shadow generator\n * @returns The parsed shadow generator\n */\n static Parse(e, t, i) {\n const s = t.getLightById(e.lightId), r = e.cameraId !== void 0 ? t.getCameraById(e.cameraId) : null, n = i ? i(e.mapSize, s, r) : new je(e.mapSize, s, void 0, r), o = n.getShadowMap();\n for (let l = 0; l < e.renderList.length; l++)\n t.getMeshesById(e.renderList[l]).forEach(function(c) {\n o && (o.renderList || (o.renderList = []), o.renderList.push(c));\n });\n return e.id !== void 0 && (n.id = e.id), n.forceBackFacesOnly = !!e.forceBackFacesOnly, e.darkness !== void 0 && n.setDarkness(e.darkness), e.transparencyShadow && n.setTransparencyShadow(!0), e.frustumEdgeFalloff !== void 0 && (n.frustumEdgeFalloff = e.frustumEdgeFalloff), e.bias !== void 0 && (n.bias = e.bias), e.normalBias !== void 0 && (n.normalBias = e.normalBias), e.usePercentageCloserFiltering ? n.usePercentageCloserFiltering = !0 : e.useContactHardeningShadow ? n.useContactHardeningShadow = !0 : e.usePoissonSampling ? n.usePoissonSampling = !0 : e.useExponentialShadowMap ? n.useExponentialShadowMap = !0 : e.useBlurExponentialShadowMap ? n.useBlurExponentialShadowMap = !0 : e.useCloseExponentialShadowMap ? n.useCloseExponentialShadowMap = !0 : e.useBlurCloseExponentialShadowMap ? n.useBlurCloseExponentialShadowMap = !0 : e.useVarianceShadowMap ? n.useExponentialShadowMap = !0 : e.useBlurVarianceShadowMap && (n.useBlurExponentialShadowMap = !0), e.contactHardeningLightSizeUVRatio !== void 0 && (n.contactHardeningLightSizeUVRatio = e.contactHardeningLightSizeUVRatio), e.filteringQuality !== void 0 && (n.filteringQuality = e.filteringQuality), e.depthScale && (n.depthScale = e.depthScale), e.blurScale && (n.blurScale = e.blurScale), e.blurBoxOffset && (n.blurBoxOffset = e.blurBoxOffset), e.useKernelBlur && (n.useKernelBlur = e.useKernelBlur), e.blurKernel && (n.blurKernel = e.blurKernel), n;\n }\n}\nje.CLASSNAME = \"ShadowGenerator\";\nje.FILTER_NONE = 0;\nje.FILTER_EXPONENTIALSHADOWMAP = 1;\nje.FILTER_POISSONSAMPLING = 2;\nje.FILTER_BLUREXPONENTIALSHADOWMAP = 3;\nje.FILTER_CLOSEEXPONENTIALSHADOWMAP = 4;\nje.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP = 5;\nje.FILTER_PCF = 6;\nje.FILTER_PCSS = 7;\nje.QUALITY_HIGH = 0;\nje.QUALITY_MEDIUM = 1;\nje.QUALITY_LOW = 2;\nje.DEFAULT_ALPHA_CUTOFF = 0.5;\nje._SceneComponentInitialization = (a) => {\n throw $e(\"ShadowGeneratorSceneComponent\");\n};\nconst D3 = \"depthPixelShader\", O3 = `#ifdef ALPHATEST\nvarying vec2 vUV;uniform sampler2D diffuseSampler;\n#endif\n#include\nvarying float vDepthMetric;\n#ifdef PACKED\n#include\n#endif\n#ifdef STORE_CAMERASPACE_Z\nvarying vec4 vViewPos;\n#endif\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{\n#include\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\ndiscard;\n#endif\n#ifdef STORE_CAMERASPACE_Z\n#ifdef PACKED\ngl_FragColor=pack(vViewPos.z);\n#else\ngl_FragColor=vec4(vViewPos.z,0.0,0.0,1.0);\n#endif\n#else\n#ifdef NONLINEARDEPTH\n#ifdef PACKED\ngl_FragColor=pack(gl_FragCoord.z);\n#else\ngl_FragColor=vec4(gl_FragCoord.z,0.0,0.0,0.0);\n#endif\n#else\n#ifdef PACKED\ngl_FragColor=pack(vDepthMetric);\n#else\ngl_FragColor=vec4(vDepthMetric,0.0,0.0,1.0);\n#endif\n#endif\n#endif\n}`;\nz.ShadersStore[D3] = O3;\nconst w3 = \"pointCloudVertexDeclaration\", N3 = `#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n`;\nz.IncludesShadersStore[w3] = N3;\nconst F3 = \"depthVertexShader\", L3 = `attribute vec3 position;\n#include\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include\nuniform mat4 viewProjection;uniform vec2 depthValues;\n#if defined(ALPHATEST) || defined(NEED_UV)\nvarying vec2 vUV;uniform mat4 diffuseMatrix;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\n#ifdef STORE_CAMERASPACE_Z\nuniform mat4 view;varying vec4 vViewPos;\n#endif\n#include\nvarying float vDepthMetric;\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void)\n{vec3 positionUpdated=position;\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include\n#include\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);\n#include\ngl_Position=viewProjection*worldPos;\n#ifdef STORE_CAMERASPACE_Z\nvViewPos=view*worldPos;\n#else\n#ifdef USE_REVERSE_DEPTHBUFFER\nvDepthMetric=((-gl_Position.z+depthValues.x)/(depthValues.y));\n#else\nvDepthMetric=((gl_Position.z+depthValues.x)/(depthValues.y));\n#endif\n#endif\n#if defined(ALPHATEST) || defined(BASIC_RENDER)\n#ifdef UV1\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef UV2\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n#include\n}\n`;\nz.ShadersStore[F3] = L3;\nclass Wl {\n /**\n * Sets a specific material to be used to render a mesh/a list of meshes by the depth renderer\n * @param mesh mesh or array of meshes\n * @param material material to use by the depth render when rendering the mesh(es). If undefined is passed, the specific material created by the depth renderer will be used.\n */\n setMaterialForRendering(e, t) {\n this._depthMap.setMaterialForRendering(e, t);\n }\n /**\n * Instantiates a depth renderer\n * @param scene The scene the renderer belongs to\n * @param type The texture type of the depth map (default: Engine.TEXTURETYPE_FLOAT)\n * @param camera The camera to be used to render the depth map (default: scene's active camera)\n * @param storeNonLinearDepth Defines whether the depth is stored linearly like in Babylon Shadows or directly like glFragCoord.z\n * @param samplingMode The sampling mode to be used with the render target (Linear, Nearest...) (default: TRILINEAR_SAMPLINGMODE)\n * @param storeCameraSpaceZ Defines whether the depth stored is the Z coordinate in camera space. If true, storeNonLinearDepth has no effect. (Default: false)\n * @param name Name of the render target (default: DepthRenderer)\n */\n constructor(e, t = 1, i = null, s = !1, r = X.TRILINEAR_SAMPLINGMODE, n = !1, o) {\n this.enabled = !0, this.forceDepthWriteTransparentMeshes = !1, this.useOnlyInActiveCamera = !1, this.reverseCulling = !1, this._scene = e, this._storeNonLinearDepth = s, this._storeCameraSpaceZ = n, this.isPacked = t === 0, this.isPacked ? this.clearColor = new Ce(1, 1, 1, 1) : this.clearColor = new Ce(n ? 1e8 : 1, 0, 0, 1), Wl._SceneComponentInitialization(this._scene);\n const l = e.getEngine();\n this._camera = i, r !== X.NEAREST_SAMPLINGMODE && (t === 1 && !l._caps.textureFloatLinearFiltering && (r = X.NEAREST_SAMPLINGMODE), t === 2 && !l._caps.textureHalfFloatLinearFiltering && (r = X.NEAREST_SAMPLINGMODE));\n const h = this.isPacked || !l._features.supportExtendedTextureFormats ? 5 : 6;\n this._depthMap = new Ii(o ?? \"DepthRenderer\", { width: l.getRenderWidth(), height: l.getRenderHeight() }, this._scene, !1, !0, t, !1, r, void 0, void 0, void 0, h), this._depthMap.wrapU = X.CLAMP_ADDRESSMODE, this._depthMap.wrapV = X.CLAMP_ADDRESSMODE, this._depthMap.refreshRate = 1, this._depthMap.renderParticles = !1, this._depthMap.renderList = null, this._depthMap.noPrePassRenderer = !0, this._depthMap.activeCamera = this._camera, this._depthMap.ignoreCameraViewport = !0, this._depthMap.useCameraPostProcesses = !1, this._depthMap.onClearObservable.add((u) => {\n u.clear(this.clearColor, !0, !0, !0);\n }), this._depthMap.onBeforeBindObservable.add(() => {\n var u;\n (u = l._debugPushGroup) == null || u.call(l, \"depth renderer\", 1);\n }), this._depthMap.onAfterUnbindObservable.add(() => {\n var u;\n (u = l._debugPopGroup) == null || u.call(l, 1);\n }), this._depthMap.customIsReadyFunction = (u, d, f) => {\n if ((f || d === 0) && u.subMeshes)\n for (let p = 0; p < u.subMeshes.length; ++p) {\n const _ = u.subMeshes[p], m = _.getRenderingMesh(), x = m._getInstancesRenderList(_._id, !!_.getReplacementMesh()), v = l.getCaps().instancedArrays && (x.visibleInstances[_._id] !== null && x.visibleInstances[_._id] !== void 0 || m.hasThinInstances);\n if (!this.isReady(_, v))\n return !1;\n }\n return !0;\n };\n const c = (u) => {\n var C;\n const d = u.getRenderingMesh(), f = u.getEffectiveMesh(), p = this._scene, _ = p.getEngine(), m = u.getMaterial();\n if (f._internalAbstractMeshDataInfo._isActiveIntermediate = !1, !m || f.infiniteDistance || m.disableDepthWrite || u.verticesCount === 0 || u._renderId === p.getRenderId())\n return;\n const x = f._getWorldMatrixDeterminant() < 0;\n let v = m._getEffectiveOrientation(d);\n x && (v = v === 0 ? 1 : 0);\n const T = v === 0;\n _.setState(m.backFaceCulling, 0, !1, T, this.reverseCulling ? !m.cullBackFaces : m.cullBackFaces);\n const E = d._getInstancesRenderList(u._id, !!u.getReplacementMesh());\n if (E.mustReturn)\n return;\n const b = _.getCaps().instancedArrays && (E.visibleInstances[u._id] !== null && E.visibleInstances[u._id] !== void 0 || d.hasThinInstances), S = this._camera || p.activeCamera;\n if (this.isReady(u, b) && S) {\n u._renderId = p.getRenderId();\n const P = (C = f._internalAbstractMeshDataInfo._materialForRenderPass) == null ? void 0 : C[_.currentRenderPassId];\n let N = u._getDrawWrapper();\n !N && P && (N = P._getDrawWrapper());\n const F = S.mode === Fe.ORTHOGRAPHIC_CAMERA;\n if (!N)\n return;\n const $ = N.effect;\n _.enableEffect(N), b || d._bind(u, $, m.fillMode), P ? P.bindForSubMesh(f.getWorldMatrix(), f, u) : ($.setMatrix(\"viewProjection\", p.getTransformMatrix()), $.setMatrix(\"world\", f.getWorldMatrix()), this._storeCameraSpaceZ && $.setMatrix(\"view\", p.getViewMatrix()));\n let j, ne;\n if (F ? (j = !_.useReverseDepthBuffer && _.isNDCHalfZRange ? 0 : 1, ne = _.useReverseDepthBuffer && _.isNDCHalfZRange ? 0 : 1) : (j = _.useReverseDepthBuffer && _.isNDCHalfZRange ? S.minZ : _.isNDCHalfZRange ? 0 : S.minZ, ne = _.useReverseDepthBuffer && _.isNDCHalfZRange ? 0 : S.maxZ), $.setFloat2(\"depthValues\", j, j + ne), !P) {\n if (m.needAlphaTesting()) {\n const te = m.getAlphaTestTexture();\n te && ($.setTexture(\"diffuseSampler\", te), $.setMatrix(\"diffuseMatrix\", te.getTextureMatrix()));\n }\n if (d.useBones && d.computeBonesUsingShaders && d.skeleton) {\n const te = d.skeleton;\n if (te.isUsingTextureForMatrices) {\n const le = te.getTransformMatrixTexture(d);\n if (!le)\n return;\n $.setTexture(\"boneSampler\", le), $.setFloat(\"boneTextureWidth\", 4 * (te.bones.length + 1));\n } else\n $.setMatrices(\"mBones\", te.getTransformMatrices(d));\n }\n Tn($, m, p), na(d, $), d.morphTargetManager && d.morphTargetManager.isUsingTextureForTargets && d.morphTargetManager._bind($), m.pointsCloud && $.setFloat(\"pointSize\", m.pointSize);\n }\n d._processRendering(f, u, $, m.fillMode, E, b, (te, le) => $.setMatrix(\"world\", le));\n }\n };\n this._depthMap.customRenderFunction = (u, d, f, p) => {\n let _;\n if (p.length)\n for (_ = 0; _ < p.length; _++)\n c(p.data[_]);\n for (_ = 0; _ < u.length; _++)\n c(u.data[_]);\n for (_ = 0; _ < d.length; _++)\n c(d.data[_]);\n if (this.forceDepthWriteTransparentMeshes)\n for (_ = 0; _ < f.length; _++)\n c(f.data[_]);\n else\n for (_ = 0; _ < f.length; _++)\n f.data[_].getEffectiveMesh()._internalAbstractMeshDataInfo._isActiveIntermediate = !1;\n };\n }\n /**\n * Creates the depth rendering effect and checks if the effect is ready.\n * @param subMesh The submesh to be used to render the depth map of\n * @param useInstances If multiple world instances should be used\n * @returns if the depth renderer is ready to render the depth map\n */\n isReady(e, t) {\n var _;\n const i = this._scene.getEngine(), s = e.getMesh(), r = s.getScene(), n = (_ = s._internalAbstractMeshDataInfo._materialForRenderPass) == null ? void 0 : _[i.currentRenderPassId];\n if (n)\n return n.isReadyForSubMesh(s, e, t);\n const o = e.getMaterial();\n if (!o || o.disableDepthWrite)\n return !1;\n const l = [], h = [R.PositionKind];\n if (o && o.needAlphaTesting() && o.getAlphaTestTexture() && (l.push(\"#define ALPHATEST\"), s.isVerticesDataPresent(R.UVKind) && (h.push(R.UVKind), l.push(\"#define UV1\")), s.isVerticesDataPresent(R.UV2Kind) && (h.push(R.UV2Kind), l.push(\"#define UV2\"))), s.useBones && s.computeBonesUsingShaders) {\n h.push(R.MatricesIndicesKind), h.push(R.MatricesWeightsKind), s.numBoneInfluencers > 4 && (h.push(R.MatricesIndicesExtraKind), h.push(R.MatricesWeightsExtraKind)), l.push(\"#define NUM_BONE_INFLUENCERS \" + s.numBoneInfluencers), l.push(\"#define BonesPerMesh \" + (s.skeleton ? s.skeleton.bones.length + 1 : 0));\n const m = e.getRenderingMesh().skeleton;\n m != null && m.isUsingTextureForMatrices && l.push(\"#define BONETEXTURE\");\n } else\n l.push(\"#define NUM_BONE_INFLUENCERS 0\");\n const c = s.morphTargetManager;\n let u = 0;\n c && (u = c.numMaxInfluencers || c.numInfluencers, u > 0 && (l.push(\"#define MORPHTARGETS\"), l.push(\"#define NUM_MORPH_INFLUENCERS \" + u), c.isUsingTextureForTargets && l.push(\"#define MORPHTARGETS_TEXTURE\"), mc(h, s, u))), o.pointsCloud && l.push(\"#define POINTSIZE\"), t && (l.push(\"#define INSTANCES\"), So(h), e.getRenderingMesh().hasThinInstances && l.push(\"#define THIN_INSTANCES\")), this._storeNonLinearDepth && l.push(\"#define NONLINEARDEPTH\"), this._storeCameraSpaceZ && l.push(\"#define STORE_CAMERASPACE_Z\"), this.isPacked && l.push(\"#define PACKED\"), tl(o, r, l);\n const d = e._getDrawWrapper(void 0, !0), f = d.defines, p = l.join(`\n`);\n if (f !== p) {\n const m = [\n \"world\",\n \"mBones\",\n \"boneTextureWidth\",\n \"pointSize\",\n \"viewProjection\",\n \"view\",\n \"diffuseMatrix\",\n \"depthValues\",\n \"morphTargetInfluences\",\n \"morphTargetCount\",\n \"morphTargetTextureInfo\",\n \"morphTargetTextureIndices\"\n ];\n Ln(m), d.setEffect(i.createEffect(\"depth\", h, m, [\"diffuseSampler\", \"morphTargets\", \"boneSampler\"], p, void 0, void 0, void 0, {\n maxSimultaneousMorphTargets: u\n }), p);\n }\n return d.effect.isReady();\n }\n /**\n * Gets the texture which the depth map will be written to.\n * @returns The depth map texture\n */\n getDepthMap() {\n return this._depthMap;\n }\n /**\n * Disposes of the depth renderer.\n */\n dispose() {\n const e = [];\n for (const t in this._scene._depthRenderer)\n this._scene._depthRenderer[t] === this && e.push(t);\n if (e.length > 0) {\n this._depthMap.dispose();\n for (const t of e)\n delete this._scene._depthRenderer[t];\n }\n }\n}\nWl._SceneComponentInitialization = (a) => {\n throw $e(\"DepthRendererSceneComponent\");\n};\nconst B3 = \"minmaxReduxPixelShader\", V3 = `varying vec2 vUV;uniform sampler2D textureSampler;\n#if defined(INITIAL)\nuniform sampler2D sourceTexture;uniform vec2 texSize;void main(void)\n{ivec2 coord=ivec2(vUV*(texSize-1.0));float f1=texelFetch(sourceTexture,coord,0).r;float f2=texelFetch(sourceTexture,coord+ivec2(1,0),0).r;float f3=texelFetch(sourceTexture,coord+ivec2(1,1),0).r;float f4=texelFetch(sourceTexture,coord+ivec2(0,1),0).r;float minz=min(min(min(f1,f2),f3),f4);\n#ifdef DEPTH_REDUX\nfloat maxz=max(max(max(sign(1.0-f1)*f1,sign(1.0-f2)*f2),sign(1.0-f3)*f3),sign(1.0-f4)*f4);\n#else\nfloat maxz=max(max(max(f1,f2),f3),f4);\n#endif\nglFragColor=vec4(minz,maxz,0.,0.);}\n#elif defined(MAIN)\nuniform vec2 texSize;void main(void)\n{ivec2 coord=ivec2(vUV*(texSize-1.0));vec2 f1=texelFetch(textureSampler,coord,0).rg;vec2 f2=texelFetch(textureSampler,coord+ivec2(1,0),0).rg;vec2 f3=texelFetch(textureSampler,coord+ivec2(1,1),0).rg;vec2 f4=texelFetch(textureSampler,coord+ivec2(0,1),0).rg;float minz=min(min(min(f1.x,f2.x),f3.x),f4.x);float maxz=max(max(max(f1.y,f2.y),f3.y),f4.y);glFragColor=vec4(minz,maxz,0.,0.);}\n#elif defined(ONEBEFORELAST)\nuniform ivec2 texSize;void main(void)\n{ivec2 coord=ivec2(vUV*vec2(texSize-1));vec2 f1=texelFetch(textureSampler,coord % texSize,0).rg;vec2 f2=texelFetch(textureSampler,(coord+ivec2(1,0)) % texSize,0).rg;vec2 f3=texelFetch(textureSampler,(coord+ivec2(1,1)) % texSize,0).rg;vec2 f4=texelFetch(textureSampler,(coord+ivec2(0,1)) % texSize,0).rg;float minz=min(f1.x,f2.x);float maxz=max(f1.y,f2.y);glFragColor=vec4(minz,maxz,0.,0.);}\n#elif defined(LAST)\nvoid main(void)\n{glFragColor=vec4(0.);if (true) { \ndiscard;}}\n#endif\n`;\nz.ShadersStore[B3] = V3;\nclass U3 {\n /**\n * Creates a min/max reducer\n * @param camera The camera to use for the post processes\n */\n constructor(e) {\n this.onAfterReductionPerformed = new G(), this._forceFullscreenViewport = !0, this._activated = !1, this._camera = e, this._postProcessManager = new wp(e.getScene()), this._onContextRestoredObserver = e.getEngine().onContextRestoredObservable.add(() => {\n this._postProcessManager._rebuild();\n });\n }\n /**\n * Gets the texture used to read the values from.\n */\n get sourceTexture() {\n return this._sourceTexture;\n }\n /**\n * Sets the source texture to read the values from.\n * One must indicate if the texture is a depth texture or not through the depthRedux parameter\n * because in such textures '1' value must not be taken into account to compute the maximum\n * as this value is used to clear the texture.\n * Note that the computation is not activated by calling this function, you must call activate() for that!\n * @param sourceTexture The texture to read the values from. The values should be in the red channel.\n * @param depthRedux Indicates if the texture is a depth texture or not\n * @param type The type of the textures created for the reduction (defaults to TEXTURETYPE_HALF_FLOAT)\n * @param forceFullscreenViewport Forces the post processes used for the reduction to be applied without taking into account viewport (defaults to true)\n */\n setSourceTexture(e, t, i = 2, s = !0) {\n if (e === this._sourceTexture)\n return;\n this.dispose(!1), this._sourceTexture = e, this._reductionSteps = [], this._forceFullscreenViewport = s;\n const r = this._camera.getScene(), n = new Be(\n \"Initial reduction phase\",\n \"minmaxRedux\",\n // shader\n [\"texSize\"],\n [\"sourceTexture\"],\n // textures\n 1,\n // options\n null,\n // camera\n 1,\n // sampling\n r.getEngine(),\n // engine\n !1,\n // reusable\n \"#define INITIAL\" + (t ? `\n#define DEPTH_REDUX` : \"\"),\n // defines\n i,\n void 0,\n void 0,\n void 0,\n 7\n );\n n.autoClear = !1, n.forceFullscreenViewport = s;\n let o = this._sourceTexture.getRenderWidth(), l = this._sourceTexture.getRenderHeight();\n n.onApply = /* @__PURE__ */ ((c, u) => (d) => {\n d.setTexture(\"sourceTexture\", this._sourceTexture), d.setFloat2(\"texSize\", c, u);\n })(o, l), this._reductionSteps.push(n);\n let h = 1;\n for (; o > 1 || l > 1; ) {\n o = Math.max(Math.round(o / 2), 1), l = Math.max(Math.round(l / 2), 1);\n const c = new Be(\n \"Reduction phase \" + h,\n \"minmaxRedux\",\n // shader\n [\"texSize\"],\n null,\n { width: o, height: l },\n // options\n null,\n // camera\n 1,\n // sampling\n r.getEngine(),\n // engine\n !1,\n // reusable\n \"#define \" + (o == 1 && l == 1 ? \"LAST\" : o == 1 || l == 1 ? \"ONEBEFORELAST\" : \"MAIN\"),\n // defines\n i,\n void 0,\n void 0,\n void 0,\n 7\n );\n if (c.autoClear = !1, c.forceFullscreenViewport = s, c.onApply = /* @__PURE__ */ ((u, d) => (f) => {\n u == 1 || d == 1 ? f.setInt2(\"texSize\", u, d) : f.setFloat2(\"texSize\", u, d);\n })(o, l), this._reductionSteps.push(c), h++, o == 1 && l == 1) {\n const u = (d, f, p) => {\n const _ = new Float32Array(4 * d * f), m = { min: 0, max: 0 };\n return () => {\n r.getEngine()._readTexturePixels(p.inputTexture.texture, d, f, -1, 0, _, !1), m.min = _[0], m.max = _[1], this.onAfterReductionPerformed.notifyObservers(m);\n };\n };\n c.onAfterRenderObservable.add(u(o, l, c));\n }\n }\n }\n /**\n * Defines the refresh rate of the computation.\n * Use 0 to compute just once, 1 to compute on every frame, 2 to compute every two frames and so on...\n */\n get refreshRate() {\n return this._sourceTexture ? this._sourceTexture.refreshRate : -1;\n }\n set refreshRate(e) {\n this._sourceTexture && (this._sourceTexture.refreshRate = e);\n }\n /**\n * Gets the activation status of the reducer\n */\n get activated() {\n return this._activated;\n }\n /**\n * Activates the reduction computation.\n * When activated, the observers registered in onAfterReductionPerformed are\n * called after the computation is performed\n */\n activate() {\n this._onAfterUnbindObserver || !this._sourceTexture || (this._onAfterUnbindObserver = this._sourceTexture.onAfterUnbindObservable.add(() => {\n var t, i;\n const e = this._camera.getScene().getEngine();\n (t = e._debugPushGroup) == null || t.call(e, \"min max reduction\", 1), this._reductionSteps[0].activate(this._camera), this._postProcessManager.directRender(this._reductionSteps, this._reductionSteps[0].inputTexture, this._forceFullscreenViewport), e.unBindFramebuffer(this._reductionSteps[0].inputTexture, !1), (i = e._debugPopGroup) == null || i.call(e, 1);\n }), this._activated = !0);\n }\n /**\n * Deactivates the reduction computation.\n */\n deactivate() {\n !this._onAfterUnbindObserver || !this._sourceTexture || (this._sourceTexture.onAfterUnbindObservable.remove(this._onAfterUnbindObserver), this._onAfterUnbindObserver = null, this._activated = !1);\n }\n /**\n * Disposes the min/max reducer\n * @param disposeAll true to dispose all the resources. You should always call this function with true as the parameter (or without any parameter as it is the default one). This flag is meant to be used internally.\n */\n dispose(e = !0) {\n if (e && (this.onAfterReductionPerformed.clear(), this._onContextRestoredObserver && (this._camera.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver), this._onContextRestoredObserver = null)), this.deactivate(), this._reductionSteps) {\n for (let t = 0; t < this._reductionSteps.length; ++t)\n this._reductionSteps[t].dispose();\n this._reductionSteps = null;\n }\n this._postProcessManager && e && this._postProcessManager.dispose(), this._sourceTexture = null;\n }\n}\nclass k3 extends U3 {\n /**\n * Gets the depth renderer used for the computation.\n * Note that the result is null if you provide your own renderer when calling setDepthRenderer.\n */\n get depthRenderer() {\n return this._depthRenderer;\n }\n /**\n * Creates a depth reducer\n * @param camera The camera used to render the depth texture\n */\n constructor(e) {\n super(e);\n }\n /**\n * Sets the depth renderer to use to generate the depth map\n * @param depthRenderer The depth renderer to use. If not provided, a new one will be created automatically\n * @param type The texture type of the depth map (default: TEXTURETYPE_HALF_FLOAT)\n * @param forceFullscreenViewport Forces the post processes used for the reduction to be applied without taking into account viewport (defaults to true)\n */\n setDepthRenderer(e = null, t = 2, i = !0) {\n const s = this._camera.getScene();\n this._depthRenderer && (delete s._depthRenderer[this._depthRendererId], this._depthRenderer.dispose(), this._depthRenderer = null), e === null && (s._depthRenderer || (s._depthRenderer = {}), e = this._depthRenderer = new Wl(s, t, this._camera, !1, 1), e.enabled = !1, this._depthRendererId = \"minmax\" + this._camera.id, s._depthRenderer[this._depthRendererId] = e), super.setSourceTexture(e.getDepthMap(), !0, t, i);\n }\n /**\n * @internal\n */\n setSourceTexture(e, t, i = 2, s = !0) {\n super.setSourceTexture(e, t, i, s);\n }\n /**\n * Activates the reduction computation.\n * When activated, the observers registered in onAfterReductionPerformed are\n * called after the computation is performed\n */\n activate() {\n this._depthRenderer && (this._depthRenderer.enabled = !0), super.activate();\n }\n /**\n * Deactivates the reduction computation.\n */\n deactivate() {\n super.deactivate(), this._depthRenderer && (this._depthRenderer.enabled = !1);\n }\n /**\n * Disposes the depth reducer\n * @param disposeAll true to dispose all the resources. You should always call this function with true as the parameter (or without any parameter as it is the default one). This flag is meant to be used internally.\n */\n dispose(e = !0) {\n if (super.dispose(e), this._depthRenderer && e) {\n const t = this._depthRenderer.getDepthMap().getScene();\n t && delete t._depthRenderer[this._depthRendererId], this._depthRenderer.dispose(), this._depthRenderer = null;\n }\n }\n}\nconst RE = g.Up(), G3 = g.Zero(), xs = new g(), lh = new g(), ap = new O();\nclass Us extends je {\n _validateFilter(e) {\n return e === je.FILTER_NONE || e === je.FILTER_PCF || e === je.FILTER_PCSS ? e : (L.Error('Unsupported filter \"' + e + '\"!'), je.FILTER_NONE);\n }\n /**\n * Gets or set the number of cascades used by the CSM.\n */\n get numCascades() {\n return this._numCascades;\n }\n set numCascades(e) {\n e = Math.min(Math.max(e, Us.MIN_CASCADES_COUNT), Us.MAX_CASCADES_COUNT), e !== this._numCascades && (this._numCascades = e, this.recreateShadowMap(), this._recreateSceneUBOs());\n }\n /**\n * Enables or disables the shadow casters bounding info computation.\n * If your shadow casters don't move, you can disable this feature.\n * If it is enabled, the bounding box computation is done every frame.\n */\n get freezeShadowCastersBoundingInfo() {\n return this._freezeShadowCastersBoundingInfo;\n }\n set freezeShadowCastersBoundingInfo(e) {\n this._freezeShadowCastersBoundingInfoObservable && e && (this._scene.onBeforeRenderObservable.remove(this._freezeShadowCastersBoundingInfoObservable), this._freezeShadowCastersBoundingInfoObservable = null), !this._freezeShadowCastersBoundingInfoObservable && !e && (this._freezeShadowCastersBoundingInfoObservable = this._scene.onBeforeRenderObservable.add(() => this._computeShadowCastersBoundingInfo())), this._freezeShadowCastersBoundingInfo = e, e && this._computeShadowCastersBoundingInfo();\n }\n _computeShadowCastersBoundingInfo() {\n if (this._scbiMin.copyFromFloats(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), this._scbiMax.copyFromFloats(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE), this._shadowMap && this._shadowMap.renderList) {\n const e = this._shadowMap.renderList;\n for (let i = 0; i < e.length; i++) {\n const s = e[i];\n if (!s)\n continue;\n const r = s.getBoundingInfo(), n = r.boundingBox;\n this._scbiMin.minimizeInPlace(n.minimumWorld), this._scbiMax.maximizeInPlace(n.maximumWorld);\n }\n const t = this._scene.meshes;\n for (let i = 0; i < t.length; i++) {\n const s = t[i];\n if (!s || !s.isVisible || !s.isEnabled || !s.receiveShadows)\n continue;\n const r = s.getBoundingInfo(), n = r.boundingBox;\n this._scbiMin.minimizeInPlace(n.minimumWorld), this._scbiMax.maximizeInPlace(n.maximumWorld);\n }\n }\n this._shadowCastersBoundingInfo.reConstruct(this._scbiMin, this._scbiMax);\n }\n /**\n * Gets or sets the shadow casters bounding info.\n * If you provide your own shadow casters bounding info, first enable freezeShadowCastersBoundingInfo\n * so that the system won't overwrite the bounds you provide\n */\n get shadowCastersBoundingInfo() {\n return this._shadowCastersBoundingInfo;\n }\n set shadowCastersBoundingInfo(e) {\n this._shadowCastersBoundingInfo = e;\n }\n /**\n * Sets the minimal and maximal distances to use when computing the cascade breaks.\n *\n * The values of min / max are typically the depth zmin and zmax values of your scene, for a given frame.\n * If you don't know these values, simply leave them to their defaults and don't call this function.\n * @param min minimal distance for the breaks (default to 0.)\n * @param max maximal distance for the breaks (default to 1.)\n */\n setMinMaxDistance(e, t) {\n this._minDistance === e && this._maxDistance === t || (e > t && (e = 0, t = 1), e < 0 && (e = 0), t > 1 && (t = 1), this._minDistance = e, this._maxDistance = t, this._breaksAreDirty = !0);\n }\n /** Gets the minimal distance used in the cascade break computation */\n get minDistance() {\n return this._minDistance;\n }\n /** Gets the maximal distance used in the cascade break computation */\n get maxDistance() {\n return this._maxDistance;\n }\n /**\n * Gets the class name of that object\n * @returns \"CascadedShadowGenerator\"\n */\n getClassName() {\n return Us.CLASSNAME;\n }\n /**\n * Gets a cascade minimum extents\n * @param cascadeIndex index of the cascade\n * @returns the minimum cascade extents\n */\n getCascadeMinExtents(e) {\n return e >= 0 && e < this._numCascades ? this._cascadeMinExtents[e] : null;\n }\n /**\n * Gets a cascade maximum extents\n * @param cascadeIndex index of the cascade\n * @returns the maximum cascade extents\n */\n getCascadeMaxExtents(e) {\n return e >= 0 && e < this._numCascades ? this._cascadeMaxExtents[e] : null;\n }\n /**\n * Gets the shadow max z distance. It's the limit beyond which shadows are not displayed.\n * It defaults to camera.maxZ\n */\n get shadowMaxZ() {\n return this._getCamera() ? this._shadowMaxZ : 0;\n }\n /**\n * Sets the shadow max z distance.\n */\n set shadowMaxZ(e) {\n const t = this._getCamera();\n if (!t) {\n this._shadowMaxZ = e;\n return;\n }\n this._shadowMaxZ === e || e < t.minZ || e > t.maxZ && t.maxZ !== 0 || (this._shadowMaxZ = e, this._light._markMeshesAsLightDirty(), this._breaksAreDirty = !0);\n }\n /**\n * Gets or sets the debug flag.\n * When enabled, the cascades are materialized by different colors on the screen.\n */\n get debug() {\n return this._debug;\n }\n set debug(e) {\n this._debug = e, this._light._markMeshesAsLightDirty();\n }\n /**\n * Gets or sets the depth clamping value.\n *\n * When enabled, it improves the shadow quality because the near z plane of the light frustum don't need to be adjusted\n * to account for the shadow casters far away.\n *\n * Note that this property is incompatible with PCSS filtering, so it won't be used in that case.\n */\n get depthClamp() {\n return this._depthClamp;\n }\n set depthClamp(e) {\n this._depthClamp = e;\n }\n /**\n * Gets or sets the percentage of blending between two cascades (value between 0. and 1.).\n * It defaults to 0.1 (10% blending).\n */\n get cascadeBlendPercentage() {\n return this._cascadeBlendPercentage;\n }\n set cascadeBlendPercentage(e) {\n this._cascadeBlendPercentage = e, this._light._markMeshesAsLightDirty();\n }\n /**\n * Gets or set the lambda parameter.\n * This parameter is used to split the camera frustum and create the cascades.\n * It's a value between 0. and 1.: If 0, the split is a uniform split of the frustum, if 1 it is a logarithmic split.\n * For all values in-between, it's a linear combination of the uniform and logarithm split algorithm.\n */\n get lambda() {\n return this._lambda;\n }\n set lambda(e) {\n const t = Math.min(Math.max(e, 0), 1);\n this._lambda != t && (this._lambda = t, this._breaksAreDirty = !0);\n }\n /**\n * Gets the view matrix corresponding to a given cascade\n * @param cascadeNum cascade to retrieve the view matrix from\n * @returns the cascade view matrix\n */\n getCascadeViewMatrix(e) {\n return e >= 0 && e < this._numCascades ? this._viewMatrices[e] : null;\n }\n /**\n * Gets the projection matrix corresponding to a given cascade\n * @param cascadeNum cascade to retrieve the projection matrix from\n * @returns the cascade projection matrix\n */\n getCascadeProjectionMatrix(e) {\n return e >= 0 && e < this._numCascades ? this._projectionMatrices[e] : null;\n }\n /**\n * Gets the transformation matrix corresponding to a given cascade\n * @param cascadeNum cascade to retrieve the transformation matrix from\n * @returns the cascade transformation matrix\n */\n getCascadeTransformMatrix(e) {\n return e >= 0 && e < this._numCascades ? this._transformMatrices[e] : null;\n }\n /**\n * Sets the depth renderer to use when autoCalcDepthBounds is enabled.\n *\n * Note that if no depth renderer is set, a new one will be automatically created internally when necessary.\n *\n * You should call this function if you already have a depth renderer enabled in your scene, to avoid\n * doing multiple depth rendering each frame. If you provide your own depth renderer, make sure it stores linear depth!\n * @param depthRenderer The depth renderer to use when autoCalcDepthBounds is enabled. If you pass null or don't call this function at all, a depth renderer will be automatically created\n */\n setDepthRenderer(e) {\n this._depthRenderer = e, this._depthReducer && this._depthReducer.setDepthRenderer(this._depthRenderer);\n }\n /**\n * Gets or sets the autoCalcDepthBounds property.\n *\n * When enabled, a depth rendering pass is first performed (with an internally created depth renderer or with the one\n * you provide by calling setDepthRenderer). Then, a min/max reducing is applied on the depth map to compute the\n * minimal and maximal depth of the map and those values are used as inputs for the setMinMaxDistance() function.\n * It can greatly enhance the shadow quality, at the expense of more GPU works.\n * When using this option, you should increase the value of the lambda parameter, and even set it to 1 for best results.\n */\n get autoCalcDepthBounds() {\n return this._autoCalcDepthBounds;\n }\n set autoCalcDepthBounds(e) {\n const t = this._getCamera();\n if (t) {\n if (this._autoCalcDepthBounds = e, !e) {\n this._depthReducer && this._depthReducer.deactivate(), this.setMinMaxDistance(0, 1);\n return;\n }\n this._depthReducer || (this._depthReducer = new k3(t), this._depthReducer.onAfterReductionPerformed.add((i) => {\n let s = i.min, r = i.max;\n s >= r && (s = 0, r = 1), (s != this._minDistance || r != this._maxDistance) && this.setMinMaxDistance(s, r);\n }), this._depthReducer.setDepthRenderer(this._depthRenderer)), this._depthReducer.activate();\n }\n }\n /**\n * Defines the refresh rate of the min/max computation used when autoCalcDepthBounds is set to true\n * Use 0 to compute just once, 1 to compute on every frame, 2 to compute every two frames and so on...\n * Note that if you provided your own depth renderer through a call to setDepthRenderer, you are responsible\n * for setting the refresh rate on the renderer yourself!\n */\n get autoCalcDepthBoundsRefreshRate() {\n var e, t;\n return ((t = (e = this._depthReducer) == null ? void 0 : e.depthRenderer) == null ? void 0 : t.getDepthMap().refreshRate) ?? -1;\n }\n set autoCalcDepthBoundsRefreshRate(e) {\n var t;\n (t = this._depthReducer) != null && t.depthRenderer && (this._depthReducer.depthRenderer.getDepthMap().refreshRate = e);\n }\n /**\n * Create the cascade breaks according to the lambda, shadowMaxZ and min/max distance properties, as well as the camera near and far planes.\n * This function is automatically called when updating lambda, shadowMaxZ and min/max distances, however you should call it yourself if\n * you change the camera near/far planes!\n */\n splitFrustum() {\n this._breaksAreDirty = !0;\n }\n _splitFrustum() {\n const e = this._getCamera();\n if (!e)\n return;\n const t = e.minZ, i = e.maxZ || this._shadowMaxZ, s = i - t, r = this._minDistance, n = this._shadowMaxZ < i && this._shadowMaxZ >= t ? Math.min((this._shadowMaxZ - t) / (i - t), this._maxDistance) : this._maxDistance, o = t + r * s, l = t + n * s, h = l - o, c = l / o;\n for (let u = 0; u < this._cascades.length; ++u) {\n const d = (u + 1) / this._numCascades, f = o * c ** d, p = o + h * d, _ = this._lambda * (f - p) + p;\n this._cascades[u].prevBreakDistance = u === 0 ? r : this._cascades[u - 1].breakDistance, this._cascades[u].breakDistance = (_ - t) / s, this._viewSpaceFrustumsZ[u] = _, this._frustumLengths[u] = (this._cascades[u].breakDistance - this._cascades[u].prevBreakDistance) * s;\n }\n this._breaksAreDirty = !1;\n }\n _computeMatrices() {\n const e = this._scene;\n if (!this._getCamera())\n return;\n g.NormalizeToRef(this._light.getShadowDirection(0), this._lightDirection), Math.abs(g.Dot(this._lightDirection, g.Up())) === 1 && (this._lightDirection.z = 1e-13), this._cachedDirection.copyFrom(this._lightDirection);\n const i = e.getEngine().useReverseDepthBuffer;\n for (let s = 0; s < this._numCascades; ++s) {\n this._computeFrustumInWorldSpace(s), this._computeCascadeFrustum(s), this._cascadeMaxExtents[s].subtractToRef(this._cascadeMinExtents[s], xs), this._frustumCenter[s].addToRef(this._lightDirection.scale(this._cascadeMinExtents[s].z), this._shadowCameraPos[s]), O.LookAtLHToRef(this._shadowCameraPos[s], this._frustumCenter[s], RE, this._viewMatrices[s]);\n let r = 0, n = xs.z;\n const o = this._shadowCastersBoundingInfo;\n o.update(this._viewMatrices[s]), n = Math.min(n, o.boundingBox.maximumWorld.z), !this._depthClamp || this.filter === je.FILTER_PCSS ? r = Math.min(r, o.boundingBox.minimumWorld.z) : r = Math.max(r, o.boundingBox.minimumWorld.z), O.OrthoOffCenterLHToRef(this._cascadeMinExtents[s].x, this._cascadeMaxExtents[s].x, this._cascadeMinExtents[s].y, this._cascadeMaxExtents[s].y, i ? n : r, i ? r : n, this._projectionMatrices[s], e.getEngine().isNDCHalfZRange), this._cascadeMinExtents[s].z = r, this._cascadeMaxExtents[s].z = n, this._viewMatrices[s].multiplyToRef(this._projectionMatrices[s], this._transformMatrices[s]), g.TransformCoordinatesToRef(G3, this._transformMatrices[s], xs), xs.scaleInPlace(this._mapSize / 2), lh.copyFromFloats(Math.round(xs.x), Math.round(xs.y), Math.round(xs.z)), lh.subtractInPlace(xs).scaleInPlace(2 / this._mapSize), O.TranslationToRef(lh.x, lh.y, 0, ap), this._projectionMatrices[s].multiplyToRef(ap, this._projectionMatrices[s]), this._viewMatrices[s].multiplyToRef(this._projectionMatrices[s], this._transformMatrices[s]), this._transformMatrices[s].copyToArray(this._transformMatricesAsArray, s * 16);\n }\n }\n // Get the 8 points of the view frustum in world space\n _computeFrustumInWorldSpace(e) {\n const t = this._getCamera();\n if (!t)\n return;\n const i = this._cascades[e].prevBreakDistance, s = this._cascades[e].breakDistance, r = this._scene.getEngine().isNDCHalfZRange;\n t.getViewMatrix();\n const n = t.maxZ === 0, o = t.maxZ;\n n && (t.maxZ = this._shadowMaxZ, t.getProjectionMatrix(!0));\n const l = O.Invert(t.getTransformationMatrix());\n n && (t.maxZ = o, t.getProjectionMatrix(!0));\n const h = this._scene.getEngine().useReverseDepthBuffer ? 4 : 0;\n for (let c = 0; c < Us._FrustumCornersNDCSpace.length; ++c)\n xs.copyFrom(Us._FrustumCornersNDCSpace[(c + h) % Us._FrustumCornersNDCSpace.length]), r && xs.z === -1 && (xs.z = 0), g.TransformCoordinatesToRef(xs, l, this._frustumCornersWorldSpace[e][c]);\n for (let c = 0; c < Us._FrustumCornersNDCSpace.length / 2; ++c)\n xs.copyFrom(this._frustumCornersWorldSpace[e][c + 4]).subtractInPlace(this._frustumCornersWorldSpace[e][c]), lh.copyFrom(xs).scaleInPlace(i), xs.scaleInPlace(s), xs.addInPlace(this._frustumCornersWorldSpace[e][c]), this._frustumCornersWorldSpace[e][c + 4].copyFrom(xs), this._frustumCornersWorldSpace[e][c].addInPlace(lh);\n }\n _computeCascadeFrustum(e) {\n if (this._cascadeMinExtents[e].copyFromFloats(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), this._cascadeMaxExtents[e].copyFromFloats(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE), this._frustumCenter[e].copyFromFloats(0, 0, 0), !!this._getCamera()) {\n for (let i = 0; i < this._frustumCornersWorldSpace[e].length; ++i)\n this._frustumCenter[e].addInPlace(this._frustumCornersWorldSpace[e][i]);\n if (this._frustumCenter[e].scaleInPlace(1 / this._frustumCornersWorldSpace[e].length), this.stabilizeCascades) {\n let i = 0;\n for (let s = 0; s < this._frustumCornersWorldSpace[e].length; ++s) {\n const r = this._frustumCornersWorldSpace[e][s].subtractToRef(this._frustumCenter[e], xs).length();\n i = Math.max(i, r);\n }\n i = Math.ceil(i * 16) / 16, this._cascadeMaxExtents[e].copyFromFloats(i, i, i), this._cascadeMinExtents[e].copyFromFloats(-i, -i, -i);\n } else {\n const i = this._frustumCenter[e];\n this._frustumCenter[e].addToRef(this._lightDirection, xs), O.LookAtLHToRef(i, xs, RE, ap);\n for (let s = 0; s < this._frustumCornersWorldSpace[e].length; ++s)\n g.TransformCoordinatesToRef(this._frustumCornersWorldSpace[e][s], ap, xs), this._cascadeMinExtents[e].minimizeInPlace(xs), this._cascadeMaxExtents[e].maximizeInPlace(xs);\n }\n }\n }\n _recreateSceneUBOs() {\n if (this._disposeSceneUBOs(), this._sceneUBOs)\n for (let e = 0; e < this._numCascades; ++e)\n this._sceneUBOs.push(this._scene.createSceneUniformBuffer(`Scene for CSM Shadow Generator (light \"${this._light.name}\" cascade #${e})`));\n }\n /**\n * Support test.\n */\n static get IsSupported() {\n const e = Me.LastCreatedEngine;\n return e ? e._features.supportCSM : !1;\n }\n /**\n * Creates a Cascaded Shadow Generator object.\n * A ShadowGenerator is the required tool to use the shadows.\n * Each directional light casting shadows needs to use its own ShadowGenerator.\n * Documentation : https://doc.babylonjs.com/babylon101/cascadedShadows\n * @param mapSize The size of the texture what stores the shadows. Example : 1024.\n * @param light The directional light object generating the shadows.\n * @param usefulFloatFirst By default the generator will try to use half float textures but if you need precision (for self shadowing for instance), you can use this option to enforce full float texture.\n * @param camera Camera associated with this shadow generator (default: null). If null, takes the scene active camera at the time we need to access it\n * @param useRedTextureType Forces the generator to use a Red instead of a RGBA type for the shadow map texture format (default: true)\n */\n constructor(e, t, i, s, r = !0) {\n if (!Us.IsSupported) {\n L.Error(\"CascadedShadowMap is not supported by the current engine.\");\n return;\n }\n super(e, t, i, s, r), this.usePercentageCloserFiltering = !0;\n }\n _initializeGenerator() {\n var e;\n this.penumbraDarkness = this.penumbraDarkness ?? 1, this._numCascades = this._numCascades ?? Us.DEFAULT_CASCADES_COUNT, this.stabilizeCascades = this.stabilizeCascades ?? !1, this._freezeShadowCastersBoundingInfoObservable = this._freezeShadowCastersBoundingInfoObservable ?? null, this.freezeShadowCastersBoundingInfo = this.freezeShadowCastersBoundingInfo ?? !1, this._scbiMin = this._scbiMin ?? new g(0, 0, 0), this._scbiMax = this._scbiMax ?? new g(0, 0, 0), this._shadowCastersBoundingInfo = this._shadowCastersBoundingInfo ?? new zr(new g(0, 0, 0), new g(0, 0, 0)), this._breaksAreDirty = this._breaksAreDirty ?? !0, this._minDistance = this._minDistance ?? 0, this._maxDistance = this._maxDistance ?? 1, this._currentLayer = this._currentLayer ?? 0, this._shadowMaxZ = this._shadowMaxZ ?? ((e = this._getCamera()) == null ? void 0 : e.maxZ) ?? 1e4, this._debug = this._debug ?? !1, this._depthClamp = this._depthClamp ?? !0, this._cascadeBlendPercentage = this._cascadeBlendPercentage ?? 0.1, this._lambda = this._lambda ?? 0.5, this._autoCalcDepthBounds = this._autoCalcDepthBounds ?? !1, this._recreateSceneUBOs(), super._initializeGenerator();\n }\n _createTargetRenderTexture() {\n const e = this._scene.getEngine(), t = { width: this._mapSize, height: this._mapSize, layers: this.numCascades };\n this._shadowMap = new Ii(this._light.name + \"_CSMShadowMap\", t, this._scene, !1, !0, this._textureType, !1, void 0, !1, !1, void 0, this._useRedTextureType ? 6 : 5), this._shadowMap.createDepthStencilTexture(e.useReverseDepthBuffer ? 516 : 513, !0, void 0, void 0, void 0, `DepthStencilForCSMShadowGenerator-${this._light.name}`), this._shadowMap.noPrePassRenderer = !0;\n }\n _initializeShadowMap() {\n if (super._initializeShadowMap(), this._shadowMap === null)\n return;\n this._transformMatricesAsArray = new Float32Array(this._numCascades * 16), this._viewSpaceFrustumsZ = new Array(this._numCascades), this._frustumLengths = new Array(this._numCascades), this._lightSizeUVCorrection = new Array(this._numCascades * 2), this._depthCorrection = new Array(this._numCascades), this._cascades = [], this._viewMatrices = [], this._projectionMatrices = [], this._transformMatrices = [], this._cascadeMinExtents = [], this._cascadeMaxExtents = [], this._frustumCenter = [], this._shadowCameraPos = [], this._frustumCornersWorldSpace = [];\n for (let t = 0; t < this._numCascades; ++t) {\n this._cascades[t] = {\n prevBreakDistance: 0,\n breakDistance: 0\n }, this._viewMatrices[t] = O.Zero(), this._projectionMatrices[t] = O.Zero(), this._transformMatrices[t] = O.Zero(), this._cascadeMinExtents[t] = new g(), this._cascadeMaxExtents[t] = new g(), this._frustumCenter[t] = new g(), this._shadowCameraPos[t] = new g(), this._frustumCornersWorldSpace[t] = new Array(Us._FrustumCornersNDCSpace.length);\n for (let i = 0; i < Us._FrustumCornersNDCSpace.length; ++i)\n this._frustumCornersWorldSpace[t][i] = new g();\n }\n const e = this._scene.getEngine();\n this._shadowMap.onBeforeBindObservable.clear(), this._shadowMap.onBeforeRenderObservable.clear(), this._shadowMap.onBeforeRenderObservable.add((t) => {\n this._sceneUBOs && this._scene.setSceneUniformBuffer(this._sceneUBOs[t]), this._currentLayer = t, this._filter === je.FILTER_PCF && e.setColorWrite(!1), this._scene.setTransformMatrix(this.getCascadeViewMatrix(t), this.getCascadeProjectionMatrix(t)), this._useUBO && (this._scene.getSceneUniformBuffer().unbindEffect(), this._scene.finalizeSceneUbo());\n }), this._shadowMap.onBeforeBindObservable.add(() => {\n var t;\n this._currentSceneUBO = this._scene.getSceneUniformBuffer(), (t = e._debugPushGroup) == null || t.call(e, `cascaded shadow map generation for pass id ${e.currentRenderPassId}`, 1), this._breaksAreDirty && this._splitFrustum(), this._computeMatrices();\n }), this._splitFrustum();\n }\n _bindCustomEffectForRenderSubMeshForShadowMap(e, t) {\n t.setMatrix(\"viewProjection\", this.getCascadeTransformMatrix(this._currentLayer));\n }\n _isReadyCustomDefines(e) {\n e.push(\"#define SM_DEPTHCLAMP \" + (this._depthClamp && this._filter !== je.FILTER_PCSS ? \"1\" : \"0\"));\n }\n /**\n * Prepare all the defines in a material relying on a shadow map at the specified light index.\n * @param defines Defines of the material we want to update\n * @param lightIndex Index of the light in the enabled light list of the material\n */\n prepareDefines(e, t) {\n super.prepareDefines(e, t);\n const i = this._scene, s = this._light;\n if (!i.shadowsEnabled || !s.shadowEnabled)\n return;\n e[\"SHADOWCSM\" + t] = !0, e[\"SHADOWCSMDEBUG\" + t] = this.debug, e[\"SHADOWCSMNUM_CASCADES\" + t] = this.numCascades, e[\"SHADOWCSM_RIGHTHANDED\" + t] = i.useRightHandedSystem;\n const r = this._getCamera();\n r && this._shadowMaxZ <= (r.maxZ || this._shadowMaxZ) && (e[\"SHADOWCSMUSESHADOWMAXZ\" + t] = !0), this.cascadeBlendPercentage === 0 && (e[\"SHADOWCSMNOBLEND\" + t] = !0);\n }\n /**\n * Binds the shadow related information inside of an effect (information like near, far, darkness...\n * defined in the generator but impacting the effect).\n * @param lightIndex Index of the light in the enabled light list of the material owning the effect\n * @param effect The effect we are binfing the information for\n */\n bindShadowLight(e, t) {\n const i = this._light;\n if (!this._scene.shadowsEnabled || !i.shadowEnabled)\n return;\n const r = this._getCamera();\n if (!r)\n return;\n const n = this.getShadowMap();\n if (!n)\n return;\n const o = n.getSize().width;\n if (t.setMatrices(\"lightMatrix\" + e, this._transformMatricesAsArray), t.setArray(\"viewFrustumZ\" + e, this._viewSpaceFrustumsZ), t.setFloat(\"cascadeBlendFactor\" + e, this.cascadeBlendPercentage === 0 ? 1e4 : 1 / this.cascadeBlendPercentage), t.setArray(\"frustumLengths\" + e, this._frustumLengths), this._filter === je.FILTER_PCF)\n t.setDepthStencilTexture(\"shadowTexture\" + e, n), i._uniformBuffer.updateFloat4(\"shadowsInfo\", this.getDarkness(), o, 1 / o, this.frustumEdgeFalloff, e);\n else if (this._filter === je.FILTER_PCSS) {\n for (let l = 0; l < this._numCascades; ++l)\n this._lightSizeUVCorrection[l * 2 + 0] = l === 0 ? 1 : (this._cascadeMaxExtents[0].x - this._cascadeMinExtents[0].x) / (this._cascadeMaxExtents[l].x - this._cascadeMinExtents[l].x), this._lightSizeUVCorrection[l * 2 + 1] = l === 0 ? 1 : (this._cascadeMaxExtents[0].y - this._cascadeMinExtents[0].y) / (this._cascadeMaxExtents[l].y - this._cascadeMinExtents[l].y), this._depthCorrection[l] = l === 0 ? 1 : (this._cascadeMaxExtents[l].z - this._cascadeMinExtents[l].z) / (this._cascadeMaxExtents[0].z - this._cascadeMinExtents[0].z);\n t.setDepthStencilTexture(\"shadowTexture\" + e, n), t.setTexture(\"depthTexture\" + e, n), t.setArray2(\"lightSizeUVCorrection\" + e, this._lightSizeUVCorrection), t.setArray(\"depthCorrection\" + e, this._depthCorrection), t.setFloat(\"penumbraDarkness\" + e, this.penumbraDarkness), i._uniformBuffer.updateFloat4(\"shadowsInfo\", this.getDarkness(), 1 / o, this._contactHardeningLightSizeUVRatio * o, this.frustumEdgeFalloff, e);\n } else\n t.setTexture(\"shadowTexture\" + e, n), i._uniformBuffer.updateFloat4(\"shadowsInfo\", this.getDarkness(), o, 1 / o, this.frustumEdgeFalloff, e);\n i._uniformBuffer.updateFloat2(\"depthValues\", this.getLight().getDepthMinZ(r), this.getLight().getDepthMinZ(r) + this.getLight().getDepthMaxZ(r), e);\n }\n /**\n * Gets the transformation matrix of the first cascade used to project the meshes into the map from the light point of view.\n * (eq to view projection * shadow projection matrices)\n * @returns The transform matrix used to create the shadow map\n */\n getTransformMatrix() {\n return this.getCascadeTransformMatrix(0);\n }\n /**\n * Disposes the ShadowGenerator.\n * Returns nothing.\n */\n dispose() {\n super.dispose(), this._freezeShadowCastersBoundingInfoObservable && (this._scene.onBeforeRenderObservable.remove(this._freezeShadowCastersBoundingInfoObservable), this._freezeShadowCastersBoundingInfoObservable = null), this._depthReducer && (this._depthReducer.dispose(), this._depthReducer = null);\n }\n /**\n * Serializes the shadow generator setup to a json object.\n * @returns The serialized JSON object\n */\n serialize() {\n const e = super.serialize(), t = this.getShadowMap();\n if (!t)\n return e;\n if (e.numCascades = this._numCascades, e.debug = this._debug, e.stabilizeCascades = this.stabilizeCascades, e.lambda = this._lambda, e.cascadeBlendPercentage = this.cascadeBlendPercentage, e.depthClamp = this._depthClamp, e.autoCalcDepthBounds = this.autoCalcDepthBounds, e.shadowMaxZ = this._shadowMaxZ, e.penumbraDarkness = this.penumbraDarkness, e.freezeShadowCastersBoundingInfo = this._freezeShadowCastersBoundingInfo, e.minDistance = this.minDistance, e.maxDistance = this.maxDistance, e.renderList = [], t.renderList)\n for (let i = 0; i < t.renderList.length; i++) {\n const s = t.renderList[i];\n e.renderList.push(s.id);\n }\n return e;\n }\n /**\n * Parses a serialized ShadowGenerator and returns a new ShadowGenerator.\n * @param parsedShadowGenerator The JSON object to parse\n * @param scene The scene to create the shadow map for\n * @returns The parsed shadow generator\n */\n static Parse(e, t) {\n const i = je.Parse(e, t, (s, r, n) => new Us(s, r, void 0, n));\n return e.numCascades !== void 0 && (i.numCascades = e.numCascades), e.debug !== void 0 && (i.debug = e.debug), e.stabilizeCascades !== void 0 && (i.stabilizeCascades = e.stabilizeCascades), e.lambda !== void 0 && (i.lambda = e.lambda), e.cascadeBlendPercentage !== void 0 && (i.cascadeBlendPercentage = e.cascadeBlendPercentage), e.depthClamp !== void 0 && (i.depthClamp = e.depthClamp), e.autoCalcDepthBounds !== void 0 && (i.autoCalcDepthBounds = e.autoCalcDepthBounds), e.shadowMaxZ !== void 0 && (i.shadowMaxZ = e.shadowMaxZ), e.penumbraDarkness !== void 0 && (i.penumbraDarkness = e.penumbraDarkness), e.freezeShadowCastersBoundingInfo !== void 0 && (i.freezeShadowCastersBoundingInfo = e.freezeShadowCastersBoundingInfo), e.minDistance !== void 0 && e.maxDistance !== void 0 && i.setMinMaxDistance(e.minDistance, e.maxDistance), i;\n }\n}\nUs._FrustumCornersNDCSpace = [\n new g(-1, 1, -1),\n new g(1, 1, -1),\n new g(1, -1, -1),\n new g(-1, -1, -1),\n new g(-1, 1, 1),\n new g(1, 1, 1),\n new g(1, -1, 1),\n new g(-1, -1, 1)\n];\nUs.CLASSNAME = \"CascadedShadowGenerator\";\nUs.DEFAULT_CASCADES_COUNT = 4;\nUs.MIN_CASCADES_COUNT = 2;\nUs.MAX_CASCADES_COUNT = 4;\nUs._SceneComponentInitialization = (a) => {\n throw $e(\"ShadowGeneratorSceneComponent\");\n};\nqi.AddParser(me.NAME_SHADOWGENERATOR, (a, e) => {\n if (a.shadowGenerators !== void 0 && a.shadowGenerators !== null)\n for (let t = 0, i = a.shadowGenerators.length; t < i; t++) {\n const s = a.shadowGenerators[t];\n s.className === Us.CLASSNAME ? Us.Parse(s, e) : je.Parse(s, e);\n }\n});\nclass z3 {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_SHADOWGENERATOR, this.scene = e;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._gatherRenderTargetsStage.registerStep(me.STEP_GATHERRENDERTARGETS_SHADOWGENERATOR, this, this._gatherRenderTargets);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n }\n /**\n * Serializes the component data to the specified json object\n * @param serializationObject The object to serialize to\n */\n serialize(e) {\n e.shadowGenerators = [];\n const t = this.scene.lights;\n for (const i of t) {\n const s = i.getShadowGenerators();\n if (s) {\n const r = s.values();\n for (let n = r.next(); n.done !== !0; n = r.next()) {\n const o = n.value;\n e.shadowGenerators.push(o.serialize());\n }\n }\n }\n }\n /**\n * Adds all the elements from the container to the scene\n * @param container the container holding the elements\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n addFromContainer(e) {\n }\n /**\n * Removes all the elements in the container from the scene\n * @param container contains the elements to remove\n * @param dispose if the removed element should be disposed (default: false)\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n removeFromContainer(e, t) {\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n dispose() {\n }\n _gatherRenderTargets(e) {\n const t = this.scene;\n if (this.scene.shadowsEnabled)\n for (let i = 0; i < t.lights.length; i++) {\n const s = t.lights[i], r = s.getShadowGenerators();\n if (s.isEnabled() && s.shadowEnabled && r) {\n const n = r.values();\n for (let o = n.next(); o.done !== !0; o = n.next()) {\n const h = o.value.getShadowMap();\n t.textures.indexOf(h) !== -1 && e.push(h);\n }\n }\n }\n }\n}\nje._SceneComponentInitialization = (a) => {\n let e = a._getComponent(me.NAME_SHADOWGENERATOR);\n e || (e = new z3(a), a._addComponent(e));\n};\nLt.AddNodeConstructor(\"Light_Type_0\", (a, e) => () => new em(a, g.Zero(), e));\nclass em extends Ll {\n /**\n * Getter: In case of direction provided, the shadow will not use a cube texture but simulate a spot shadow as a fallback\n * This specifies what angle the shadow will use to be created.\n *\n * It default to 90 degrees to work nicely with the cube texture generation for point lights shadow maps.\n */\n get shadowAngle() {\n return this._shadowAngle;\n }\n /**\n * Setter: In case of direction provided, the shadow will not use a cube texture but simulate a spot shadow as a fallback\n * This specifies what angle the shadow will use to be created.\n *\n * It default to 90 degrees to work nicely with the cube texture generation for point lights shadow maps.\n */\n set shadowAngle(e) {\n this._shadowAngle = e, this.forceProjectionMatrixCompute();\n }\n /**\n * Gets the direction if it has been set.\n * In case of direction provided, the shadow will not use a cube texture but simulate a spot shadow as a fallback\n */\n get direction() {\n return this._direction;\n }\n /**\n * In case of direction provided, the shadow will not use a cube texture but simulate a spot shadow as a fallback\n */\n set direction(e) {\n const t = this.needCube();\n if (this._direction = e, this.needCube() !== t && this._shadowGenerators) {\n const i = this._shadowGenerators.values();\n for (let s = i.next(); s.done !== !0; s = i.next())\n s.value.recreateShadowMap();\n }\n }\n /**\n * Creates a PointLight object from the passed name and position (Vector3) and adds it in the scene.\n * A PointLight emits the light in every direction.\n * It can cast shadows.\n * If the scene camera is already defined and you want to set your PointLight at the camera position, just set it :\n * ```javascript\n * var pointLight = new PointLight(\"pl\", camera.position, scene);\n * ```\n * Documentation : https://doc.babylonjs.com/features/featuresDeepDive/lights/lights_introduction\n * @param name The light friendly name\n * @param position The position of the point light in the scene\n * @param scene The scene the lights belongs to\n */\n constructor(e, t, i) {\n super(e, i), this._shadowAngle = Math.PI / 2, this.position = t;\n }\n /**\n * Returns the string \"PointLight\"\n * @returns the class name\n */\n getClassName() {\n return \"PointLight\";\n }\n /**\n * Returns the integer 0.\n * @returns The light Type id as a constant defines in Light.LIGHTTYPEID_x\n */\n getTypeID() {\n return at.LIGHTTYPEID_POINTLIGHT;\n }\n /**\n * Specifies whether or not the shadowmap should be a cube texture.\n * @returns true if the shadowmap needs to be a cube texture.\n */\n needCube() {\n return !this.direction;\n }\n /**\n * Returns a new Vector3 aligned with the PointLight cube system according to the passed cube face index (integer).\n * @param faceIndex The index of the face we are computed the direction to generate shadow\n * @returns The set direction in 2d mode otherwise the direction to the cubemap face if needCube() is true\n */\n getShadowDirection(e) {\n if (this.direction)\n return super.getShadowDirection(e);\n switch (e) {\n case 0:\n return new g(1, 0, 0);\n case 1:\n return new g(-1, 0, 0);\n case 2:\n return new g(0, -1, 0);\n case 3:\n return new g(0, 1, 0);\n case 4:\n return new g(0, 0, 1);\n case 5:\n return new g(0, 0, -1);\n }\n return g.Zero();\n }\n /**\n * Sets the passed matrix \"matrix\" as a left-handed perspective projection matrix with the following settings :\n * - fov = PI / 2\n * - aspect ratio : 1.0\n * - z-near and far equal to the active camera minZ and maxZ.\n * Returns the PointLight.\n * @param matrix\n * @param viewMatrix\n * @param renderList\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _setDefaultShadowProjectionMatrix(e, t, i) {\n const s = this.getScene().activeCamera;\n if (!s)\n return;\n const r = this.shadowMinZ !== void 0 ? this.shadowMinZ : s.minZ, n = this.shadowMaxZ !== void 0 ? this.shadowMaxZ : s.maxZ, o = this.getScene().getEngine().useReverseDepthBuffer;\n O.PerspectiveFovLHToRef(this.shadowAngle, 1, o ? n : r, o ? r : n, e, !0, this._scene.getEngine().isNDCHalfZRange, void 0, o);\n }\n _buildUniformLayout() {\n this._uniformBuffer.addUniform(\"vLightData\", 4), this._uniformBuffer.addUniform(\"vLightDiffuse\", 4), this._uniformBuffer.addUniform(\"vLightSpecular\", 4), this._uniformBuffer.addUniform(\"vLightFalloff\", 4), this._uniformBuffer.addUniform(\"shadowsInfo\", 3), this._uniformBuffer.addUniform(\"depthValues\", 2), this._uniformBuffer.create();\n }\n /**\n * Sets the passed Effect \"effect\" with the PointLight transformed position (or position, if none) and passed name (string).\n * @param effect The effect to update\n * @param lightIndex The index of the light in the effect to update\n * @returns The point light\n */\n transferToEffect(e, t) {\n return this.computeTransformedInformation() ? this._uniformBuffer.updateFloat4(\"vLightData\", this.transformedPosition.x, this.transformedPosition.y, this.transformedPosition.z, 0, t) : this._uniformBuffer.updateFloat4(\"vLightData\", this.position.x, this.position.y, this.position.z, 0, t), this._uniformBuffer.updateFloat4(\"vLightFalloff\", this.range, this._inverseSquaredRange, 0, 0, t), this;\n }\n transferToNodeMaterialEffect(e, t) {\n return this.computeTransformedInformation() ? e.setFloat3(t, this.transformedPosition.x, this.transformedPosition.y, this.transformedPosition.z) : e.setFloat3(t, this.position.x, this.position.y, this.position.z), this;\n }\n /**\n * Prepares the list of defines specific to the light type.\n * @param defines the list of defines\n * @param lightIndex defines the index of the light for the effect\n */\n prepareLightSpecificDefines(e, t) {\n e[\"POINTLIGHT\" + t] = !0;\n }\n}\ny([\n I()\n], em.prototype, \"shadowAngle\", null);\nU(\"BABYLON.PointLight\", em);\nclass nl {\n /**\n * Converts a panorama stored in RGB right to left up to down format into a cubemap (6 faces).\n *\n * @param float32Array The source data.\n * @param inputWidth The width of the input panorama.\n * @param inputHeight The height of the input panorama.\n * @param size The willing size of the generated cubemap (each faces will be size * size pixels)\n * @param supersample enable supersampling the cubemap\n * @returns The cubemap data\n */\n static ConvertPanoramaToCubemap(e, t, i, s, r = !1) {\n if (!e)\n throw \"ConvertPanoramaToCubemap: input cannot be null\";\n if (e.length != t * i * 3)\n throw \"ConvertPanoramaToCubemap: input size is wrong\";\n const n = this.CreateCubemapTexture(s, this.FACE_FRONT, e, t, i, r), o = this.CreateCubemapTexture(s, this.FACE_BACK, e, t, i, r), l = this.CreateCubemapTexture(s, this.FACE_LEFT, e, t, i, r), h = this.CreateCubemapTexture(s, this.FACE_RIGHT, e, t, i, r), c = this.CreateCubemapTexture(s, this.FACE_UP, e, t, i, r), u = this.CreateCubemapTexture(s, this.FACE_DOWN, e, t, i, r);\n return {\n front: n,\n back: o,\n left: l,\n right: h,\n up: c,\n down: u,\n size: s,\n type: 1,\n format: 4,\n gammaSpace: !1\n };\n }\n static CreateCubemapTexture(e, t, i, s, r, n = !1) {\n const o = new ArrayBuffer(e * e * 4 * 3), l = new Float32Array(o), h = n ? Math.max(1, Math.round(s / 4 / e)) : 1, c = 1 / h, u = c * c, d = t[1].subtract(t[0]).scale(c / e), f = t[3].subtract(t[2]).scale(c / e), p = 1 / e;\n let _ = 0;\n for (let m = 0; m < e; m++)\n for (let x = 0; x < h; x++) {\n let v = t[0], T = t[2];\n for (let E = 0; E < e; E++)\n for (let b = 0; b < h; b++) {\n const S = T.subtract(v).scale(_).add(v);\n S.normalize();\n const C = this.CalcProjectionSpherical(S, i, s, r);\n l[m * e * 3 + E * 3 + 0] += C.r * u, l[m * e * 3 + E * 3 + 1] += C.g * u, l[m * e * 3 + E * 3 + 2] += C.b * u, v = v.add(d), T = T.add(f);\n }\n _ += p * c;\n }\n return l;\n }\n static CalcProjectionSpherical(e, t, i, s) {\n let r = Math.atan2(e.z, e.x);\n const n = Math.acos(e.y);\n for (; r < -Math.PI; )\n r += 2 * Math.PI;\n for (; r > Math.PI; )\n r -= 2 * Math.PI;\n let o = r / Math.PI;\n const l = n / Math.PI;\n o = o * 0.5 + 0.5;\n let h = Math.round(o * i);\n h < 0 ? h = 0 : h >= i && (h = i - 1);\n let c = Math.round(l * s);\n c < 0 ? c = 0 : c >= s && (c = s - 1);\n const u = s - c - 1, d = t[u * i * 3 + h * 3 + 0], f = t[u * i * 3 + h * 3 + 1], p = t[u * i * 3 + h * 3 + 2];\n return {\n r: d,\n g: f,\n b: p\n };\n }\n}\nnl.FACE_LEFT = [new g(-1, -1, -1), new g(1, -1, -1), new g(-1, 1, -1), new g(1, 1, -1)];\nnl.FACE_RIGHT = [new g(1, -1, 1), new g(-1, -1, 1), new g(1, 1, 1), new g(-1, 1, 1)];\nnl.FACE_FRONT = [new g(1, -1, -1), new g(1, -1, 1), new g(1, 1, -1), new g(1, 1, 1)];\nnl.FACE_BACK = [new g(-1, -1, 1), new g(-1, -1, -1), new g(-1, 1, 1), new g(-1, 1, -1)];\nnl.FACE_DOWN = [new g(1, 1, -1), new g(1, 1, 1), new g(-1, 1, -1), new g(-1, 1, 1)];\nnl.FACE_UP = [new g(-1, -1, -1), new g(-1, -1, 1), new g(1, -1, -1), new g(1, -1, 1)];\nclass Vg {\n static _Ldexp(e, t) {\n return t > 1023 ? e * Math.pow(2, 1023) * Math.pow(2, t - 1023) : t < -1074 ? e * Math.pow(2, -1074) * Math.pow(2, t + 1074) : e * Math.pow(2, t);\n }\n static _Rgbe2float(e, t, i, s, r, n) {\n r > 0 ? (r = this._Ldexp(1, r - 136), e[n + 0] = t * r, e[n + 1] = i * r, e[n + 2] = s * r) : (e[n + 0] = 0, e[n + 1] = 0, e[n + 2] = 0);\n }\n static _ReadStringLine(e, t) {\n let i = \"\", s = \"\";\n for (let r = t; r < e.length - t && (s = String.fromCharCode(e[r]), s != `\n`); r++)\n i += s;\n return i;\n }\n /**\n * Reads header information from an RGBE texture stored in a native array.\n * More information on this format are available here:\n * https://en.wikipedia.org/wiki/RGBE_image_format\n *\n * @param uint8array The binary file stored in native array.\n * @returns The header information.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static RGBE_ReadHeader(e) {\n let t = 0, i = 0, s = this._ReadStringLine(e, 0);\n if (s[0] != \"#\" || s[1] != \"?\")\n throw \"Bad HDR Format.\";\n let r = !1, n = !1, o = 0;\n do\n o += s.length + 1, s = this._ReadStringLine(e, o), s == \"FORMAT=32-bit_rle_rgbe\" ? n = !0 : s.length == 0 && (r = !0);\n while (!r);\n if (!n)\n throw \"HDR Bad header format, unsupported FORMAT\";\n o += s.length + 1, s = this._ReadStringLine(e, o);\n const h = /^-Y (.*) \\+X (.*)$/g.exec(s);\n if (!h || h.length < 3)\n throw \"HDR Bad header format, no size\";\n if (i = parseInt(h[2]), t = parseInt(h[1]), i < 8 || i > 32767)\n throw \"HDR Bad header format, unsupported size\";\n return o += s.length + 1, {\n height: t,\n width: i,\n dataPosition: o\n };\n }\n /**\n * Returns the cubemap information (each faces texture data) extracted from an RGBE texture.\n * This RGBE texture needs to store the information as a panorama.\n *\n * More information on this format are available here:\n * https://en.wikipedia.org/wiki/RGBE_image_format\n *\n * @param buffer The binary file stored in an array buffer.\n * @param size The expected size of the extracted cubemap.\n * @param supersample enable supersampling the cubemap (default: false)\n * @returns The Cube Map information.\n */\n static GetCubeMapTextureData(e, t, i = !1) {\n const s = new Uint8Array(e), r = this.RGBE_ReadHeader(s), n = this.RGBE_ReadPixels(s, r);\n return nl.ConvertPanoramaToCubemap(n, r.width, r.height, t, i);\n }\n /**\n * Returns the pixels data extracted from an RGBE texture.\n * This pixels will be stored left to right up to down in the R G B order in one array.\n *\n * More information on this format are available here:\n * https://en.wikipedia.org/wiki/RGBE_image_format\n *\n * @param uint8array The binary file stored in an array buffer.\n * @param hdrInfo The header information of the file.\n * @returns The pixels data in RGB right to left up to down order.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static RGBE_ReadPixels(e, t) {\n return this._RGBEReadPixelsRLE(e, t);\n }\n static _RGBEReadPixelsRLE(e, t) {\n let i = t.height;\n const s = t.width;\n let r, n, o, l, h, c = t.dataPosition, u = 0, d = 0, f = 0;\n const p = new ArrayBuffer(s * 4), _ = new Uint8Array(p), m = new ArrayBuffer(t.width * t.height * 4 * 3), x = new Float32Array(m);\n for (; i > 0; ) {\n if (r = e[c++], n = e[c++], o = e[c++], l = e[c++], r != 2 || n != 2 || o & 128 || t.width < 8 || t.width > 32767)\n return this._RGBEReadPixelsNOTRLE(e, t);\n if ((o << 8 | l) != s)\n throw \"HDR Bad header format, wrong scan line width\";\n for (u = 0, f = 0; f < 4; f++)\n for (d = (f + 1) * s; u < d; )\n if (r = e[c++], n = e[c++], r > 128) {\n if (h = r - 128, h == 0 || h > d - u)\n throw \"HDR Bad Format, bad scanline data (run)\";\n for (; h-- > 0; )\n _[u++] = n;\n } else {\n if (h = r, h == 0 || h > d - u)\n throw \"HDR Bad Format, bad scanline data (non-run)\";\n if (_[u++] = n, --h > 0)\n for (let v = 0; v < h; v++)\n _[u++] = e[c++];\n }\n for (f = 0; f < s; f++)\n r = _[f], n = _[f + s], o = _[f + 2 * s], l = _[f + 3 * s], this._Rgbe2float(x, r, n, o, l, (t.height - i) * s * 3 + f * 3);\n i--;\n }\n return x;\n }\n static _RGBEReadPixelsNOTRLE(e, t) {\n let i = t.height;\n const s = t.width;\n let r, n, o, l, h, c = t.dataPosition;\n const u = new ArrayBuffer(t.width * t.height * 4 * 3), d = new Float32Array(u);\n for (; i > 0; ) {\n for (h = 0; h < t.width; h++)\n r = e[c++], n = e[c++], o = e[c++], l = e[c++], this._Rgbe2float(d, r, n, o, l, (t.height - i) * s * 3 + h * 3);\n i--;\n }\n return d;\n }\n}\nconst W3 = \"hdrFilteringVertexShader\", H3 = `attribute vec2 position;varying vec3 direction;uniform vec3 up;uniform vec3 right;uniform vec3 front;\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nmat3 view=mat3(up,right,front);direction=view*vec3(position,1.0);gl_Position=vec4(position,0.0,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}`;\nz.ShadersStore[W3] = H3;\nconst X3 = \"hdrFilteringPixelShader\", $3 = `#include\n#include\n#include\n#include\nuniform float alphaG;uniform samplerCube inputTexture;uniform vec2 vFilteringInfo;uniform float hdrScale;varying vec3 direction;void main() {vec3 color=radiance(alphaG,inputTexture,direction,vFilteringInfo);gl_FragColor=vec4(color*hdrScale,1.0);}`;\nz.ShadersStore[X3] = $3;\nclass eA {\n /**\n * Instantiates HDR filter for reflection maps\n *\n * @param engine Thin engine\n * @param options Options\n */\n constructor(e, t = {}) {\n this._lodGenerationOffset = 0, this._lodGenerationScale = 0.8, this.quality = 4096, this.hdrScale = 1, this._engine = e, this.hdrScale = t.hdrScale || this.hdrScale, this.quality = t.quality || this.quality;\n }\n _createRenderTarget(e) {\n let t = 0;\n this._engine.getCaps().textureHalfFloatRender ? t = 2 : this._engine.getCaps().textureFloatRender && (t = 1);\n const i = this._engine.createRenderTargetCubeTexture(e, {\n format: 5,\n type: t,\n createMipMaps: !0,\n generateMipMaps: !1,\n generateDepthBuffer: !1,\n generateStencilBuffer: !1,\n samplingMode: 1\n });\n return this._engine.updateTextureWrappingMode(i.texture, 0, 0, 0), this._engine.updateTextureSamplingMode(3, i.texture, !0), i;\n }\n _prefilterInternal(e) {\n const t = e.getSize().width, i = Re.ILog2(t) + 1, s = this._effectWrapper.effect, r = this._createRenderTarget(t);\n this._effectRenderer.saveStates(), this._effectRenderer.setViewport();\n const n = e.getInternalTexture();\n n && this._engine.updateTextureSamplingMode(3, n, !0), this._effectRenderer.applyEffectWrapper(this._effectWrapper);\n const o = [\n [new g(0, 0, -1), new g(0, -1, 0), new g(1, 0, 0)],\n [new g(0, 0, 1), new g(0, -1, 0), new g(-1, 0, 0)],\n [new g(1, 0, 0), new g(0, 0, 1), new g(0, 1, 0)],\n [new g(1, 0, 0), new g(0, 0, -1), new g(0, -1, 0)],\n [new g(1, 0, 0), new g(0, -1, 0), new g(0, 0, 1)],\n [new g(-1, 0, 0), new g(0, -1, 0), new g(0, 0, -1)]\n // NegativeZ\n ];\n s.setFloat(\"hdrScale\", this.hdrScale), s.setFloat2(\"vFilteringInfo\", e.getSize().width, i), s.setTexture(\"inputTexture\", e);\n for (let c = 0; c < 6; c++) {\n s.setVector3(\"up\", o[c][0]), s.setVector3(\"right\", o[c][1]), s.setVector3(\"front\", o[c][2]);\n for (let u = 0; u < i; u++) {\n this._engine.bindFramebuffer(r, c, void 0, void 0, !0, u), this._effectRenderer.applyEffectWrapper(this._effectWrapper);\n let d = Math.pow(2, (u - this._lodGenerationOffset) / this._lodGenerationScale) / t;\n u === 0 && (d = 0), s.setFloat(\"alphaG\", d), this._effectRenderer.draw();\n }\n }\n this._effectRenderer.restoreStates(), this._engine.restoreDefaultFramebuffer(), this._engine._releaseTexture(e._texture);\n const l = r.texture.type, h = r.texture.format;\n return r._swapAndDie(e._texture), e._texture.type = l, e._texture.format = h, e.gammaSpace = !1, e.lodGenerationOffset = this._lodGenerationOffset, e.lodGenerationScale = this._lodGenerationScale, e._prefiltered = !0, e;\n }\n _createEffect(e, t) {\n const i = [];\n return e.gammaSpace && i.push(\"#define GAMMA_INPUT\"), i.push(\"#define NUM_SAMPLES \" + this.quality + \"u\"), new to({\n engine: this._engine,\n name: \"hdrFiltering\",\n vertexShader: \"hdrFiltering\",\n fragmentShader: \"hdrFiltering\",\n samplerNames: [\"inputTexture\"],\n uniformNames: [\"vSampleDirections\", \"vWeights\", \"up\", \"right\", \"front\", \"vFilteringInfo\", \"hdrScale\", \"alphaG\"],\n useShaderStore: !0,\n defines: i,\n onCompiled: t\n });\n }\n /**\n * Get a value indicating if the filter is ready to be used\n * @param texture Texture to filter\n * @returns true if the filter is ready\n */\n isReady(e) {\n return e.isReady() && this._effectWrapper.effect.isReady();\n }\n /**\n * Prefilters a cube texture to have mipmap levels representing roughness values.\n * Prefiltering will be invoked at the end of next rendering pass.\n * This has to be done once the map is loaded, and has not been prefiltered by a third party software.\n * See http://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_notes_v2.pdf for more information\n * @param texture Texture to filter\n * @param onFinished Callback when filtering is done\n * @returns Promise called when prefiltering is done\n */\n prefilter(e, t = null) {\n return this._engine._features.allowTexturePrefiltering ? new Promise((i) => {\n this._effectRenderer = new c_(this._engine), this._effectWrapper = this._createEffect(e), this._effectWrapper.effect.executeWhenCompiled(() => {\n this._prefilterInternal(e), this._effectRenderer.dispose(), this._effectWrapper.dispose(), i(), t && t();\n });\n }) : (L.Warn(\"HDR prefiltering is not available in WebGL 1., you can use real time filtering instead.\"), Promise.reject(\"HDR prefiltering is not available in WebGL 1., you can use real time filtering instead.\"));\n }\n}\nclass Ho extends Mt {\n /**\n * Sets whether or not the texture is blocking during loading.\n */\n set isBlocking(e) {\n this._isBlocking = e;\n }\n /**\n * Gets whether or not the texture is blocking during loading.\n */\n get isBlocking() {\n return this._isBlocking;\n }\n /**\n * Sets texture matrix rotation angle around Y axis in radians.\n */\n set rotationY(e) {\n this._rotationY = e, this.setReflectionTextureMatrix(O.RotationY(this._rotationY));\n }\n /**\n * Gets texture matrix rotation angle around Y axis radians.\n */\n get rotationY() {\n return this._rotationY;\n }\n /**\n * Gets or sets the size of the bounding box associated with the cube texture\n * When defined, the cubemap will switch to local mode\n * @see https://community.arm.com/graphics/b/blog/posts/reflections-based-on-local-cubemaps-in-unity\n * @example https://www.babylonjs-playground.com/#RNASML\n */\n set boundingBoxSize(e) {\n if (this._boundingBoxSize && this._boundingBoxSize.equals(e))\n return;\n this._boundingBoxSize = e;\n const t = this.getScene();\n t && t.markAllMaterialsAsDirty(1);\n }\n get boundingBoxSize() {\n return this._boundingBoxSize;\n }\n /**\n * Instantiates an HDRTexture from the following parameters.\n *\n * @param url The location of the HDR raw data (Panorama stored in RGBE format)\n * @param sceneOrEngine The scene or engine the texture will be used in\n * @param size The cubemap desired size (the more it increases the longer the generation will be)\n * @param noMipmap Forces to not generate the mipmap if true\n * @param generateHarmonics Specifies whether you want to extract the polynomial harmonics during the generation process\n * @param gammaSpace Specifies if the texture will be use in gamma or linear space (the PBR material requires those texture in linear space, but the standard material would require them in Gamma space)\n * @param prefilterOnLoad Prefilters HDR texture to allow use of this texture as a PBR reflection texture.\n * @param onLoad on success callback function\n * @param onError on error callback function\n * @param supersample Defines if texture must be supersampled (default: false)\n */\n constructor(e, t, i, s = !1, r = !0, n = !1, o = !1, l = null, h = null, c = !1) {\n var u;\n super(t), this._generateHarmonics = !0, this._onError = null, this._isBlocking = !0, this._rotationY = 0, this.boundingBoxPosition = g.Zero(), this.onLoadObservable = new G(), e && (this._coordinatesMode = X.CUBIC_MODE, this.name = e, this.url = e, this.hasAlpha = !1, this.isCube = !0, this._textureMatrix = O.Identity(), this._prefilterOnLoad = o, this._onLoad = () => {\n this.onLoadObservable.notifyObservers(this), l && l();\n }, this._onError = h, this.gammaSpace = n, this._noMipmap = s, this._size = i, this._supersample = c, this._generateHarmonics = r, this._texture = this._getFromCache(e, this._noMipmap, void 0, void 0, void 0, this.isCube), this._texture ? this._texture.isReady ? J.SetImmediate(() => this._onLoad()) : this._texture.onLoadedObservable.add(this._onLoad) : (u = this.getScene()) != null && u.useDelayedTextureLoading ? this.delayLoadState = 4 : this._loadTexture());\n }\n /**\n * Get the current class name of the texture useful for serialization or dynamic coding.\n * @returns \"HDRCubeTexture\"\n */\n getClassName() {\n return \"HDRCubeTexture\";\n }\n /**\n * Occurs when the file is raw .hdr file.\n */\n _loadTexture() {\n const e = this._getEngine(), t = e.getCaps();\n let i = 0;\n t.textureFloat && t.textureFloatLinearFiltering ? i = 1 : t.textureHalfFloat && t.textureHalfFloatLinearFiltering && (i = 2);\n const s = (r) => {\n this.lodGenerationOffset = 0, this.lodGenerationScale = 0.8;\n const n = Vg.GetCubeMapTextureData(r, this._size, this._supersample);\n if (this._generateHarmonics) {\n const c = yc.ConvertCubeMapToSphericalPolynomial(n);\n this.sphericalPolynomial = c;\n }\n const o = [];\n let l = null, h = null;\n for (let c = 0; c < 6; c++) {\n i === 2 ? h = new Uint16Array(this._size * this._size * 3) : i === 0 && (l = new Uint8Array(this._size * this._size * 3));\n const u = n[Ho._FacesMapping[c]];\n if (this.gammaSpace || h || l) {\n for (let d = 0; d < this._size * this._size; d++)\n if (this.gammaSpace && (u[d * 3 + 0] = Math.pow(u[d * 3 + 0], eu), u[d * 3 + 1] = Math.pow(u[d * 3 + 1], eu), u[d * 3 + 2] = Math.pow(u[d * 3 + 2], eu)), h && (h[d * 3 + 0] = ga(u[d * 3 + 0]), h[d * 3 + 1] = ga(u[d * 3 + 1]), h[d * 3 + 2] = ga(u[d * 3 + 2])), l) {\n let f = Math.max(u[d * 3 + 0] * 255, 0), p = Math.max(u[d * 3 + 1] * 255, 0), _ = Math.max(u[d * 3 + 2] * 255, 0);\n const m = Math.max(Math.max(f, p), _);\n if (m > 255) {\n const x = 255 / m;\n f *= x, p *= x, _ *= x;\n }\n l[d * 3 + 0] = f, l[d * 3 + 1] = p, l[d * 3 + 2] = _;\n }\n }\n h ? o.push(h) : l ? o.push(l) : o.push(u);\n }\n return o;\n };\n if (e._features.allowTexturePrefiltering && this._prefilterOnLoad) {\n const r = this._onLoad, n = new eA(e);\n this._onLoad = () => {\n n.prefilter(this, r);\n };\n }\n this._texture = e.createRawCubeTextureFromUrl(this.url, this.getScene(), this._size, 4, i, this._noMipmap, s, null, this._onLoad, this._onError);\n }\n clone() {\n const e = new Ho(this.url, this.getScene() || this._getEngine(), this._size, this._noMipmap, this._generateHarmonics, this.gammaSpace);\n return e.level = this.level, e.wrapU = this.wrapU, e.wrapV = this.wrapV, e.coordinatesIndex = this.coordinatesIndex, e.coordinatesMode = this.coordinatesMode, e;\n }\n // Methods\n delayLoad() {\n this.delayLoadState === 4 && (this.delayLoadState = 1, this._texture = this._getFromCache(this.url, this._noMipmap), this._texture || this._loadTexture());\n }\n /**\n * Get the texture reflection matrix used to rotate/transform the reflection.\n * @returns the reflection matrix\n */\n getReflectionTextureMatrix() {\n return this._textureMatrix;\n }\n /**\n * Set the texture reflection matrix used to rotate/transform the reflection.\n * @param value Define the reflection matrix to set\n */\n setReflectionTextureMatrix(e) {\n var t;\n this._textureMatrix = e, e.updateFlag !== this._textureMatrix.updateFlag && e.isIdentity() !== this._textureMatrix.isIdentity() && ((t = this.getScene()) == null || t.markAllMaterialsAsDirty(1, (i) => i.getActiveTextures().indexOf(this) !== -1));\n }\n /**\n * Dispose the texture and release its associated resources.\n */\n dispose() {\n this.onLoadObservable.clear(), super.dispose();\n }\n /**\n * Parses a JSON representation of an HDR Texture in order to create the texture\n * @param parsedTexture Define the JSON representation\n * @param scene Define the scene the texture should be created in\n * @param rootUrl Define the root url in case we need to load relative dependencies\n * @returns the newly created texture after parsing\n */\n static Parse(e, t, i) {\n let s = null;\n return e.name && !e.isRenderTarget && (s = new Ho(i + e.name, t, e.size, e.noMipmap, e.generateHarmonics, e.useInGammaSpace), s.name = e.name, s.hasAlpha = e.hasAlpha, s.level = e.level, s.coordinatesMode = e.coordinatesMode, s.isBlocking = e.isBlocking), s && (e.boundingBoxPosition && (s.boundingBoxPosition = g.FromArray(e.boundingBoxPosition)), e.boundingBoxSize && (s.boundingBoxSize = g.FromArray(e.boundingBoxSize)), e.rotationY && (s.rotationY = e.rotationY)), s;\n }\n serialize() {\n if (!this.name)\n return null;\n const e = {};\n return e.name = this.name, e.hasAlpha = this.hasAlpha, e.isCube = !0, e.level = this.level, e.size = this._size, e.coordinatesMode = this.coordinatesMode, e.useInGammaSpace = this.gammaSpace, e.generateHarmonics = this._generateHarmonics, e.customType = \"BABYLON.HDRCubeTexture\", e.noMipmap = this._noMipmap, e.isBlocking = this._isBlocking, e.rotationY = this._rotationY, e;\n }\n}\nHo._FacesMapping = [\"right\", \"left\", \"up\", \"down\", \"front\", \"back\"];\nU(\"BABYLON.HDRCubeTexture\", Ho);\nclass bh {\n /**\n * Gets or sets the influence of this target (ie. its weight in the overall morphing)\n */\n get influence() {\n return this._influence;\n }\n set influence(e) {\n if (this._influence === e)\n return;\n const t = this._influence;\n this._influence = e, this.onInfluenceChanged.hasObservers() && this.onInfluenceChanged.notifyObservers(t === 0 || e === 0);\n }\n /**\n * Gets or sets the animation properties override\n */\n get animationPropertiesOverride() {\n return !this._animationPropertiesOverride && this._scene ? this._scene.animationPropertiesOverride : this._animationPropertiesOverride;\n }\n set animationPropertiesOverride(e) {\n this._animationPropertiesOverride = e;\n }\n /**\n * Creates a new MorphTarget\n * @param name defines the name of the target\n * @param influence defines the influence to use\n * @param scene defines the scene the morphtarget belongs to\n */\n constructor(e, t = 0, i = null) {\n this.name = e, this.animations = [], this._positions = null, this._normals = null, this._tangents = null, this._uvs = null, this._uniqueId = 0, this.onInfluenceChanged = new G(), this._onDataLayoutChanged = new G(), this._animationPropertiesOverride = null, this._scene = i || Me.LastCreatedScene, this.influence = t, this._scene && (this._uniqueId = this._scene.getUniqueId());\n }\n /**\n * Gets the unique ID of this manager\n */\n get uniqueId() {\n return this._uniqueId;\n }\n /**\n * Gets a boolean defining if the target contains position data\n */\n get hasPositions() {\n return !!this._positions;\n }\n /**\n * Gets a boolean defining if the target contains normal data\n */\n get hasNormals() {\n return !!this._normals;\n }\n /**\n * Gets a boolean defining if the target contains tangent data\n */\n get hasTangents() {\n return !!this._tangents;\n }\n /**\n * Gets a boolean defining if the target contains texture coordinates data\n */\n get hasUVs() {\n return !!this._uvs;\n }\n /**\n * Affects position data to this target\n * @param data defines the position data to use\n */\n setPositions(e) {\n const t = this.hasPositions;\n this._positions = e, t !== this.hasPositions && this._onDataLayoutChanged.notifyObservers(void 0);\n }\n /**\n * Gets the position data stored in this target\n * @returns a FloatArray containing the position data (or null if not present)\n */\n getPositions() {\n return this._positions;\n }\n /**\n * Affects normal data to this target\n * @param data defines the normal data to use\n */\n setNormals(e) {\n const t = this.hasNormals;\n this._normals = e, t !== this.hasNormals && this._onDataLayoutChanged.notifyObservers(void 0);\n }\n /**\n * Gets the normal data stored in this target\n * @returns a FloatArray containing the normal data (or null if not present)\n */\n getNormals() {\n return this._normals;\n }\n /**\n * Affects tangent data to this target\n * @param data defines the tangent data to use\n */\n setTangents(e) {\n const t = this.hasTangents;\n this._tangents = e, t !== this.hasTangents && this._onDataLayoutChanged.notifyObservers(void 0);\n }\n /**\n * Gets the tangent data stored in this target\n * @returns a FloatArray containing the tangent data (or null if not present)\n */\n getTangents() {\n return this._tangents;\n }\n /**\n * Affects texture coordinates data to this target\n * @param data defines the texture coordinates data to use\n */\n setUVs(e) {\n const t = this.hasUVs;\n this._uvs = e, t !== this.hasUVs && this._onDataLayoutChanged.notifyObservers(void 0);\n }\n /**\n * Gets the texture coordinates data stored in this target\n * @returns a FloatArray containing the texture coordinates data (or null if not present)\n */\n getUVs() {\n return this._uvs;\n }\n /**\n * Clone the current target\n * @returns a new MorphTarget\n */\n clone() {\n const e = Ae.Clone(() => new bh(this.name, this.influence, this._scene), this);\n return e._positions = this._positions, e._normals = this._normals, e._tangents = this._tangents, e._uvs = this._uvs, e;\n }\n /**\n * Serializes the current target into a Serialization object\n * @returns the serialized object\n */\n serialize() {\n const e = {};\n return e.name = this.name, e.influence = this.influence, e.positions = Array.prototype.slice.call(this.getPositions()), this.id != null && (e.id = this.id), this.hasNormals && (e.normals = Array.prototype.slice.call(this.getNormals())), this.hasTangents && (e.tangents = Array.prototype.slice.call(this.getTangents())), this.hasUVs && (e.uvs = Array.prototype.slice.call(this.getUVs())), Ae.AppendSerializedAnimations(this, e), e;\n }\n /**\n * Returns the string \"MorphTarget\"\n * @returns \"MorphTarget\"\n */\n getClassName() {\n return \"MorphTarget\";\n }\n // Statics\n /**\n * Creates a new target from serialized data\n * @param serializationObject defines the serialized data to use\n * @param scene defines the hosting scene\n * @returns a new MorphTarget\n */\n static Parse(e, t) {\n const i = new bh(e.name, e.influence);\n if (i.setPositions(e.positions), e.id != null && (i.id = e.id), e.normals && i.setNormals(e.normals), e.tangents && i.setTangents(e.tangents), e.uvs && i.setUVs(e.uvs), e.animations) {\n for (let s = 0; s < e.animations.length; s++) {\n const r = e.animations[s], n = Oi(\"BABYLON.Animation\");\n n && i.animations.push(n.Parse(r));\n }\n e.autoAnimate && t && t.beginAnimation(i, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1);\n }\n return i;\n }\n /**\n * Creates a MorphTarget from mesh data\n * @param mesh defines the source mesh\n * @param name defines the name to use for the new target\n * @param influence defines the influence to attach to the target\n * @returns a new MorphTarget\n */\n static FromMesh(e, t, i) {\n t || (t = e.name);\n const s = new bh(t, i, e.getScene());\n return s.setPositions(e.getVerticesData(R.PositionKind)), e.isVerticesDataPresent(R.NormalKind) && s.setNormals(e.getVerticesData(R.NormalKind)), e.isVerticesDataPresent(R.TangentKind) && s.setTangents(e.getVerticesData(R.TangentKind)), e.isVerticesDataPresent(R.UVKind) && s.setUVs(e.getVerticesData(R.UVKind)), s;\n }\n}\ny([\n I()\n], bh.prototype, \"id\", void 0);\nclass Pv extends X {\n /**\n * Gets the number of layers of the texture\n */\n get depth() {\n return this._depth;\n }\n /**\n * Create a new RawTexture2DArray\n * @param data defines the data of the texture\n * @param width defines the width of the texture\n * @param height defines the height of the texture\n * @param depth defines the number of layers of the texture\n * @param format defines the texture format to use\n * @param scene defines the hosting scene\n * @param generateMipMaps defines a boolean indicating if mip levels should be generated (true by default)\n * @param invertY defines if texture must be stored with Y axis inverted\n * @param samplingMode defines the sampling mode to use (Texture.TRILINEAR_SAMPLINGMODE by default)\n * @param textureType defines the texture Type (Engine.TEXTURETYPE_UNSIGNED_INT, Engine.TEXTURETYPE_FLOAT...)\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n */\n constructor(e, t, i, s, r, n, o = !0, l = !1, h = X.TRILINEAR_SAMPLINGMODE, c = 0, u) {\n super(null, n, !o, l), this.format = r, this._texture = n.getEngine().createRawTexture2DArray(e, t, i, s, r, o, l, h, null, c, u), this._depth = s, this.is2DArray = !0;\n }\n /**\n * Update the texture with new data\n * @param data defines the data to store in the texture\n */\n update(e) {\n this._texture && this._getEngine().updateRawTexture2DArray(this._texture, e, this._texture.format, this._texture.invertY, null, this._texture.type);\n }\n /**\n * Creates a RGBA texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param depth defines the number of layers of the texture\n * @param scene defines the scene the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @returns the RGBA texture\n */\n static CreateRGBATexture(e, t, i, s, r, n = !0, o = !1, l = 3, h = 0) {\n return new Pv(e, t, i, s, 5, r, n, o, l, h);\n }\n}\nclass Za {\n /**\n * Sets a boolean indicating that adding new target or updating an existing target will not update the underlying data buffers\n */\n set areUpdatesFrozen(e) {\n e ? this._blockCounter++ : (this._blockCounter--, this._blockCounter <= 0 && (this._blockCounter = 0, this._syncActiveTargets(!0)));\n }\n get areUpdatesFrozen() {\n return this._blockCounter > 0;\n }\n /**\n * Creates a new MorphTargetManager\n * @param scene defines the current scene\n */\n constructor(e = null) {\n if (this._targets = new Array(), this._targetInfluenceChangedObservers = new Array(), this._targetDataLayoutChangedObservers = new Array(), this._activeTargets = new fs(16), this._supportsNormals = !1, this._supportsTangents = !1, this._supportsUVs = !1, this._vertexCount = 0, this._uniqueId = 0, this._tempInfluences = new Array(), this._canUseTextureForTargets = !1, this._blockCounter = 0, this._textureVertexStride = 0, this._textureWidth = 0, this._textureHeight = 1, this._parentContainer = null, this.optimizeInfluencers = !0, this.enableNormalMorphing = !0, this.enableTangentMorphing = !0, this.enableUVMorphing = !0, this._numMaxInfluencers = 0, this._useTextureToStoreTargets = !0, e || (e = Me.LastCreatedScene), this._scene = e, this._scene) {\n this._scene.addMorphTargetManager(this), this._uniqueId = this._scene.getUniqueId();\n const t = this._scene.getEngine().getCaps();\n this._canUseTextureForTargets = t.canUseGLVertexID && t.textureFloat && t.maxVertexTextureImageUnits > 0 && t.texture2DArrayMaxLayerCount > 1;\n }\n }\n /**\n * Gets or sets the maximum number of influencers (targets) (default value: 0).\n * Setting a value for this property can lead to a smoother experience, as only one shader will be compiled, which will use this value as the maximum number of influencers.\n * If you leave the value at 0 (default), a new shader will be compiled every time the number of active influencers changes. This can cause problems, as compiling a shader takes time.\n * If you assign a non-zero value to this property, you need to ensure that this value is greater than the maximum number of (active) influencers you'll need for this morph manager.\n * Otherwise, the number of active influencers will be truncated at the value you set for this property, which can lead to unexpected results.\n * Note that this property has no effect if \"useTextureToStoreTargets\" is false.\n */\n get numMaxInfluencers() {\n return this._numMaxInfluencers;\n }\n set numMaxInfluencers(e) {\n this._numMaxInfluencers !== e && (this._numMaxInfluencers = e, this._syncActiveTargets(!0));\n }\n /**\n * Gets the unique ID of this manager\n */\n get uniqueId() {\n return this._uniqueId;\n }\n /**\n * Gets the number of vertices handled by this manager\n */\n get vertexCount() {\n return this._vertexCount;\n }\n /**\n * Gets a boolean indicating if this manager supports morphing of normals\n */\n get supportsNormals() {\n return this._supportsNormals && this.enableNormalMorphing;\n }\n /**\n * Gets a boolean indicating if this manager supports morphing of tangents\n */\n get supportsTangents() {\n return this._supportsTangents && this.enableTangentMorphing;\n }\n /**\n * Gets a boolean indicating if this manager supports morphing of texture coordinates\n */\n get supportsUVs() {\n return this._supportsUVs && this.enableUVMorphing;\n }\n /**\n * Gets the number of targets stored in this manager\n */\n get numTargets() {\n return this._targets.length;\n }\n /**\n * Gets the number of influencers (ie. the number of targets with influences > 0)\n */\n get numInfluencers() {\n return this._activeTargets.length;\n }\n /**\n * Gets the list of influences (one per target)\n */\n get influences() {\n return this._influences;\n }\n /**\n * Gets or sets a boolean indicating that targets should be stored as a texture instead of using vertex attributes (default is true).\n * Please note that this option is not available if the hardware does not support it\n */\n get useTextureToStoreTargets() {\n return this._useTextureToStoreTargets;\n }\n set useTextureToStoreTargets(e) {\n this._useTextureToStoreTargets = e;\n }\n /**\n * Gets a boolean indicating that the targets are stored into a texture (instead of as attributes)\n */\n get isUsingTextureForTargets() {\n var e;\n return Za.EnableTextureStorage && this.useTextureToStoreTargets && this._canUseTextureForTargets && !((e = this._scene) != null && e.getEngine().getCaps().disableMorphTargetTexture);\n }\n /**\n * Gets the active target at specified index. An active target is a target with an influence > 0\n * @param index defines the index to check\n * @returns the requested target\n */\n getActiveTarget(e) {\n return this._activeTargets.data[e];\n }\n /**\n * Gets the target at specified index\n * @param index defines the index to check\n * @returns the requested target\n */\n getTarget(e) {\n return this._targets[e];\n }\n /**\n * Gets the first target with the specified name\n * @param name defines the name to check\n * @returns the requested target\n */\n getTargetByName(e) {\n for (const t of this._targets)\n if (t.name === e)\n return t;\n return null;\n }\n /**\n * Add a new target to this manager\n * @param target defines the target to add\n */\n addTarget(e) {\n this._targets.push(e), this._targetInfluenceChangedObservers.push(e.onInfluenceChanged.add((t) => {\n this._syncActiveTargets(t);\n })), this._targetDataLayoutChangedObservers.push(e._onDataLayoutChanged.add(() => {\n this._syncActiveTargets(!0);\n })), this._syncActiveTargets(!0);\n }\n /**\n * Removes a target from the manager\n * @param target defines the target to remove\n */\n removeTarget(e) {\n const t = this._targets.indexOf(e);\n t >= 0 && (this._targets.splice(t, 1), e.onInfluenceChanged.remove(this._targetInfluenceChangedObservers.splice(t, 1)[0]), e._onDataLayoutChanged.remove(this._targetDataLayoutChangedObservers.splice(t, 1)[0]), this._syncActiveTargets(!0)), this._scene && this._scene.stopAnimation(e);\n }\n /**\n * @internal\n */\n _bind(e) {\n e.setFloat3(\"morphTargetTextureInfo\", this._textureVertexStride, this._textureWidth, this._textureHeight), e.setFloatArray(\"morphTargetTextureIndices\", this._morphTargetTextureIndices), e.setTexture(\"morphTargets\", this._targetStoreTexture), e.setInt(\"morphTargetCount\", this.numInfluencers);\n }\n /**\n * Clone the current manager\n * @returns a new MorphTargetManager\n */\n clone() {\n const e = new Za(this._scene);\n for (const t of this._targets)\n e.addTarget(t.clone());\n return e.enableNormalMorphing = this.enableNormalMorphing, e.enableTangentMorphing = this.enableTangentMorphing, e.enableUVMorphing = this.enableUVMorphing, e;\n }\n /**\n * Serializes the current manager into a Serialization object\n * @returns the serialized object\n */\n serialize() {\n const e = {};\n e.id = this.uniqueId, e.targets = [];\n for (const t of this._targets)\n e.targets.push(t.serialize());\n return e;\n }\n _syncActiveTargets(e) {\n if (this.areUpdatesFrozen)\n return;\n let t = 0;\n this._activeTargets.reset(), this._supportsNormals = !0, this._supportsTangents = !0, this._supportsUVs = !0, this._vertexCount = 0, this._scene && this._targets.length > this._scene.getEngine().getCaps().texture2DArrayMaxLayerCount && (this.useTextureToStoreTargets = !1), (!this._morphTargetTextureIndices || this._morphTargetTextureIndices.length !== this._targets.length) && (this._morphTargetTextureIndices = new Float32Array(this._targets.length));\n let i = -1;\n for (const s of this._targets) {\n if (i++, s.influence === 0 && this.optimizeInfluencers)\n continue;\n if (this._activeTargets.length >= Za.MaxActiveMorphTargetsInVertexAttributeMode && !this.isUsingTextureForTargets)\n break;\n this._activeTargets.push(s), this._morphTargetTextureIndices[t] = i, this._tempInfluences[t++] = s.influence, this._supportsNormals = this._supportsNormals && s.hasNormals, this._supportsTangents = this._supportsTangents && s.hasTangents, this._supportsUVs = this._supportsUVs && s.hasUVs;\n const r = s.getPositions();\n if (r) {\n const n = r.length / 3;\n if (this._vertexCount === 0)\n this._vertexCount = n;\n else if (this._vertexCount !== n) {\n L.Error(\"Incompatible target. Targets must all have the same vertices count.\");\n return;\n }\n }\n }\n this._morphTargetTextureIndices.length !== t && (this._morphTargetTextureIndices = this._morphTargetTextureIndices.slice(0, t)), (!this._influences || this._influences.length !== t) && (this._influences = new Float32Array(t));\n for (let s = 0; s < t; s++)\n this._influences[s] = this._tempInfluences[s];\n e && this.synchronize();\n }\n /**\n * Synchronize the targets with all the meshes using this morph target manager\n */\n synchronize() {\n if (!(!this._scene || this.areUpdatesFrozen)) {\n if (this.isUsingTextureForTargets && (this._vertexCount || this.numMaxInfluencers > 0)) {\n this._textureVertexStride = 1, this._supportsNormals && this._textureVertexStride++, this._supportsTangents && this._textureVertexStride++, this._supportsUVs && this._textureVertexStride++, this._textureWidth = this._vertexCount * this._textureVertexStride || 1, this._textureHeight = 1;\n const e = this._scene.getEngine().getCaps().maxTextureSize;\n this._textureWidth > e && (this._textureHeight = Math.ceil(this._textureWidth / e), this._textureWidth = e);\n let t = !0;\n if (this._targetStoreTexture) {\n const i = this._targetStoreTexture.getSize();\n i.width === this._textureWidth && i.height === this._textureHeight && this._targetStoreTexture.depth === this._targets.length && (t = !1);\n }\n if (t) {\n this._targetStoreTexture && this._targetStoreTexture.dispose();\n const i = this._targets.length, s = new Float32Array(i * this._textureWidth * this._textureHeight * 4);\n let r = 0;\n for (let n = 0; n < i; n++) {\n const o = this._targets[n], l = o.getPositions(), h = o.getNormals(), c = o.getUVs(), u = o.getTangents();\n if (!l) {\n n === 0 && L.Error(\"Invalid morph target. Target must have positions.\");\n return;\n }\n r = n * this._textureWidth * this._textureHeight * 4;\n for (let d = 0; d < this._vertexCount; d++)\n s[r] = l[d * 3], s[r + 1] = l[d * 3 + 1], s[r + 2] = l[d * 3 + 2], r += 4, this._supportsNormals && h && (s[r] = h[d * 3], s[r + 1] = h[d * 3 + 1], s[r + 2] = h[d * 3 + 2], r += 4), this._supportsUVs && c && (s[r] = c[d * 2], s[r + 1] = c[d * 2 + 1], r += 4), this._supportsTangents && u && (s[r] = u[d * 3], s[r + 1] = u[d * 3 + 1], s[r + 2] = u[d * 3 + 2], r += 4);\n }\n this._targetStoreTexture = Pv.CreateRGBATexture(s, this._textureWidth, this._textureHeight, i, this._scene, !1, !1, 1, 1);\n }\n }\n for (const e of this._scene.meshes)\n e.morphTargetManager === this && e._syncGeometryWithMorphTargetManager();\n }\n }\n /**\n * Release all resources\n */\n dispose() {\n if (this._targetStoreTexture && this._targetStoreTexture.dispose(), this._targetStoreTexture = null, this._scene) {\n if (this._scene.removeMorphTargetManager(this), this._parentContainer) {\n const e = this._parentContainer.morphTargetManagers.indexOf(this);\n e > -1 && this._parentContainer.morphTargetManagers.splice(e, 1), this._parentContainer = null;\n }\n for (const e of this._targets)\n this._scene.stopAnimation(e);\n }\n }\n // Statics\n /**\n * Creates a new MorphTargetManager from serialized data\n * @param serializationObject defines the serialized data\n * @param scene defines the hosting scene\n * @returns the new MorphTargetManager\n */\n static Parse(e, t) {\n const i = new Za(t);\n i._uniqueId = e.id;\n for (const s of e.targets)\n i.addTarget(bh.Parse(s, t));\n return i;\n }\n}\nZa.EnableTextureStorage = !0;\nZa.MaxActiveMorphTargetsInVertexAttributeMode = 8;\nclass Y3 {\n constructor() {\n this._hasHit = !1, this._hitNormal = g.Zero(), this._hitPoint = g.Zero(), this._triangleIndex = -1;\n }\n /**\n * Gets the hit point.\n */\n get hitPoint() {\n return this._hitPoint;\n }\n /**\n * Gets the hit normal.\n */\n get hitNormal() {\n return this._hitNormal;\n }\n /**\n * Gets if there was a hit\n */\n get hasHit() {\n return this._hasHit;\n }\n /*\n * The index of the original triangle which was hit. Will be -1 if contact point is not on a mesh shape\n */\n get triangleIndex() {\n return this._triangleIndex;\n }\n /**\n * Sets the hit data\n * @param hitNormal defines the normal in world space\n * @param hitPoint defines the point in world space\n * @param triangleIndex defines the index of the triangle in case of mesh shape\n */\n setHitData(e, t, i) {\n this._hasHit = !0, this._hitNormal.set(e.x, e.y, e.z), this._hitPoint.set(t.x, t.y, t.z), this._triangleIndex = i ?? -1;\n }\n /**\n * Resets all the values to default\n */\n reset() {\n this._hasHit = !1, this._hitNormal.setAll(0), this._hitPoint.setAll(0), this._triangleIndex = -1, this.body = void 0, this.bodyIndex = void 0, this.shape = void 0;\n }\n}\nclass tm extends Y3 {\n constructor() {\n super(...arguments), this._hitDistance = 0, this._rayFromWorld = g.Zero(), this._rayToWorld = g.Zero();\n }\n /**\n * Gets the distance from the hit\n */\n get hitDistance() {\n return this._hitDistance;\n }\n /**\n * Gets the hit normal/direction in the world\n */\n get hitNormalWorld() {\n return this._hitNormal;\n }\n /**\n * Gets the hit point in the world\n */\n get hitPointWorld() {\n return this._hitPoint;\n }\n /**\n * Gets the ray \"start point\" of the ray in the world\n */\n get rayFromWorld() {\n return this._rayFromWorld;\n }\n /**\n * Gets the ray \"end point\" of the ray in the world\n */\n get rayToWorld() {\n return this._rayToWorld;\n }\n /**\n * Sets the distance from the start point to the hit point\n * @param distance defines the distance to set\n */\n setHitDistance(e) {\n this._hitDistance = e;\n }\n /**\n * Calculates the distance manually\n */\n calculateHitDistance() {\n this._hitDistance = g.Distance(this._rayFromWorld, this._hitPoint);\n }\n /**\n * Resets all the values to default\n * @param from The from point on world space\n * @param to The to point on world space\n */\n reset(e = g.Zero(), t = g.Zero()) {\n super.reset(), this._rayFromWorld.copyFrom(e), this._rayToWorld.copyFrom(t), this._hitDistance = 0;\n }\n}\nlet tA = class iA {\n /**\n *\n * @returns version\n */\n getPluginVersion() {\n return this._physicsPlugin.getPluginVersion();\n }\n /**\n * @virtual\n * Factory used to create the default physics plugin.\n * @returns The default physics plugin\n */\n static DefaultPluginFactory() {\n throw $e(\"CannonJSPlugin\");\n }\n /**\n * Creates a new Physics Engine\n * @param gravity defines the gravity vector used by the simulation\n * @param _physicsPlugin defines the plugin to use (CannonJS by default)\n */\n constructor(e, t = iA.DefaultPluginFactory()) {\n if (this._physicsPlugin = t, this._impostors = [], this._joints = [], this._subTimeStep = 0, this._uniqueIdCounter = 0, !this._physicsPlugin.isSupported())\n throw new Error(\"Physics Engine \" + this._physicsPlugin.name + \" cannot be found. Please make sure it is included.\");\n e = e || new g(0, -9.807, 0), this.setGravity(e), this.setTimeStep();\n }\n /**\n * Sets the gravity vector used by the simulation\n * @param gravity defines the gravity vector to use\n */\n setGravity(e) {\n this.gravity = e, this._physicsPlugin.setGravity(this.gravity);\n }\n /**\n * Set the time step of the physics engine.\n * Default is 1/60.\n * To slow it down, enter 1/600 for example.\n * To speed it up, 1/30\n * @param newTimeStep defines the new timestep to apply to this world.\n */\n setTimeStep(e = 1 / 60) {\n this._physicsPlugin.setTimeStep(e);\n }\n /**\n * Get the time step of the physics engine.\n * @returns the current time step\n */\n getTimeStep() {\n return this._physicsPlugin.getTimeStep();\n }\n /**\n * Set the sub time step of the physics engine.\n * Default is 0 meaning there is no sub steps\n * To increase physics resolution precision, set a small value (like 1 ms)\n * @param subTimeStep defines the new sub timestep used for physics resolution.\n */\n setSubTimeStep(e = 0) {\n this._subTimeStep = e;\n }\n /**\n * Get the sub time step of the physics engine.\n * @returns the current sub time step\n */\n getSubTimeStep() {\n return this._subTimeStep;\n }\n /**\n * Release all resources\n */\n dispose() {\n this._impostors.forEach(function(e) {\n e.dispose();\n }), this._physicsPlugin.dispose();\n }\n /**\n * Gets the name of the current physics plugin\n * @returns the name of the plugin\n */\n getPhysicsPluginName() {\n return this._physicsPlugin.name;\n }\n /**\n * Adding a new impostor for the impostor tracking.\n * This will be done by the impostor itself.\n * @param impostor the impostor to add\n */\n addImpostor(e) {\n this._impostors.push(e), e.uniqueId = this._uniqueIdCounter++, e.parent || this._physicsPlugin.generatePhysicsBody(e);\n }\n /**\n * Remove an impostor from the engine.\n * This impostor and its mesh will not longer be updated by the physics engine.\n * @param impostor the impostor to remove\n */\n removeImpostor(e) {\n const t = this._impostors.indexOf(e);\n t > -1 && this._impostors.splice(t, 1).length && this.getPhysicsPlugin().removePhysicsBody(e);\n }\n /**\n * Add a joint to the physics engine\n * @param mainImpostor defines the main impostor to which the joint is added.\n * @param connectedImpostor defines the impostor that is connected to the main impostor using this joint\n * @param joint defines the joint that will connect both impostors.\n */\n addJoint(e, t, i) {\n const s = {\n mainImpostor: e,\n connectedImpostor: t,\n joint: i\n };\n i.physicsPlugin = this._physicsPlugin, this._joints.push(s), this._physicsPlugin.generateJoint(s);\n }\n /**\n * Removes a joint from the simulation\n * @param mainImpostor defines the impostor used with the joint\n * @param connectedImpostor defines the other impostor connected to the main one by the joint\n * @param joint defines the joint to remove\n */\n removeJoint(e, t, i) {\n const s = this._joints.filter(function(r) {\n return r.connectedImpostor === t && r.joint === i && r.mainImpostor === e;\n });\n s.length && this._physicsPlugin.removeJoint(s[0]);\n }\n /**\n * Called by the scene. No need to call it.\n * @param delta defines the timespan between frames\n */\n _step(e) {\n this._impostors.forEach((t) => {\n t.isBodyInitRequired() && this._physicsPlugin.generatePhysicsBody(t);\n }), e > 0.1 ? e = 0.1 : e <= 0 && (e = 1 / 60), this._physicsPlugin.executeStep(e, this._impostors);\n }\n /**\n * Gets the current plugin used to run the simulation\n * @returns current plugin\n */\n getPhysicsPlugin() {\n return this._physicsPlugin;\n }\n /**\n * Gets the list of physic impostors\n * @returns an array of PhysicsImpostor\n */\n getImpostors() {\n return this._impostors;\n }\n /**\n * Gets the impostor for a physics enabled object\n * @param object defines the object impersonated by the impostor\n * @returns the PhysicsImpostor or null if not found\n */\n getImpostorForPhysicsObject(e) {\n for (let t = 0; t < this._impostors.length; ++t)\n if (this._impostors[t].object === e)\n return this._impostors[t];\n return null;\n }\n /**\n * Gets the impostor for a physics body object\n * @param body defines physics body used by the impostor\n * @returns the PhysicsImpostor or null if not found\n */\n getImpostorWithPhysicsBody(e) {\n for (let t = 0; t < this._impostors.length; ++t)\n if (this._impostors[t].physicsBody === e)\n return this._impostors[t];\n return null;\n }\n /**\n * Does a raycast in the physics world\n * @param from when should the ray start?\n * @param to when should the ray end?\n * @returns PhysicsRaycastResult\n */\n raycast(e, t) {\n return this._physicsPlugin.raycast(e, t);\n }\n /**\n * Does a raycast in the physics world\n * @param from when should the ray start?\n * @param to when should the ray end?\n * @param result resulting PhysicsRaycastResult\n * @returns true if the ray hits an impostor, else false\n */\n raycastToRef(e, t, i) {\n return this._physicsPlugin.raycastToRef(e, t, i);\n }\n};\nclass Ug {\n constructor(e = !0, t = 10, i = CANNON) {\n if (this._useDeltaForWorldStep = e, this.name = \"CannonJSPlugin\", this._physicsMaterials = new Array(), this._fixedTimeStep = 1 / 60, this._physicsBodiesToRemoveAfterStep = new Array(), this._firstFrame = !0, this._tmpQuaternion = new se(), this._minus90X = new se(-0.7071067811865475, 0, 0, 0.7071067811865475), this._plus90X = new se(0.7071067811865475, 0, 0, 0.7071067811865475), this._tmpPosition = g.Zero(), this._tmpDeltaPosition = g.Zero(), this._tmpUnityRotation = new se(), this.BJSCANNON = i, !this.isSupported()) {\n L.Error(\"CannonJS is not available. Please make sure you included the js file.\");\n return;\n }\n this._extendNamespace(), this.world = new this.BJSCANNON.World(), this.world.broadphase = new this.BJSCANNON.NaiveBroadphase(), this.world.solver.iterations = t, this._cannonRaycastResult = new this.BJSCANNON.RaycastResult(), this._raycastResult = new tm();\n }\n /**\n *\n * @returns plugin version\n */\n getPluginVersion() {\n return 1;\n }\n setGravity(e) {\n const t = e;\n this.world.gravity.set(t.x, t.y, t.z);\n }\n setTimeStep(e) {\n this._fixedTimeStep = e;\n }\n getTimeStep() {\n return this._fixedTimeStep;\n }\n executeStep(e, t) {\n if (this._firstFrame) {\n this._firstFrame = !1;\n for (const i of t)\n i.type == Ke.HeightmapImpostor || i.type === Ke.PlaneImpostor || i.beforeStep();\n }\n this.world.step(this._useDeltaForWorldStep ? e : this._fixedTimeStep), this._removeMarkedPhysicsBodiesFromWorld();\n }\n _removeMarkedPhysicsBodiesFromWorld() {\n this._physicsBodiesToRemoveAfterStep.length > 0 && (this._physicsBodiesToRemoveAfterStep.forEach((e) => {\n typeof this.world.removeBody == \"function\" ? this.world.removeBody(e) : this.world.remove(e);\n }), this._physicsBodiesToRemoveAfterStep.length = 0);\n }\n applyImpulse(e, t, i) {\n const s = new this.BJSCANNON.Vec3(i.x, i.y, i.z), r = new this.BJSCANNON.Vec3(t.x, t.y, t.z);\n e.physicsBody.applyImpulse(r, s);\n }\n applyForce(e, t, i) {\n const s = new this.BJSCANNON.Vec3(i.x, i.y, i.z), r = new this.BJSCANNON.Vec3(t.x, t.y, t.z);\n e.physicsBody.applyForce(r, s);\n }\n generatePhysicsBody(e) {\n if (this._removeMarkedPhysicsBodiesFromWorld(), e.parent) {\n e.physicsBody && (this.removePhysicsBody(e), e.forceUpdate());\n return;\n }\n if (e.isBodyInitRequired()) {\n const t = this._createShape(e);\n if (!t) {\n L.Warn(\"It was not possible to create a physics body for this object.\");\n return;\n }\n const i = e.physicsBody;\n i && this.removePhysicsBody(e);\n const s = this._addMaterial(\"mat-\" + e.uniqueId, e.getParam(\"friction\"), e.getParam(\"restitution\")), r = {\n mass: e.getParam(\"mass\"),\n material: s\n }, n = e.getParam(\"nativeOptions\");\n for (const o in n)\n Object.prototype.hasOwnProperty.call(n, o) && (r[o] = n[o]);\n e.physicsBody = new this.BJSCANNON.Body(r), e.physicsBody.addEventListener(\"collide\", e.onCollide), this.world.addEventListener(\"preStep\", e.beforeStep), this.world.addEventListener(\"postStep\", e.afterStep), e.physicsBody.addShape(t), typeof this.world.addBody == \"function\" ? this.world.addBody(e.physicsBody) : this.world.add(e.physicsBody), i && [\"force\", \"torque\", \"velocity\", \"angularVelocity\"].forEach(function(o) {\n const l = i[o];\n e.physicsBody[o].set(l.x, l.y, l.z);\n }), this._processChildMeshes(e);\n }\n this._updatePhysicsBodyTransformation(e);\n }\n _processChildMeshes(e) {\n const t = e.object.getChildMeshes ? e.object.getChildMeshes(!0) : [], i = e.object.rotationQuaternion;\n if (i ? i.conjugateToRef(this._tmpQuaternion) : this._tmpQuaternion.set(0, 0, 0, 1), t.length) {\n const s = (r) => {\n if (!r.rotationQuaternion)\n return;\n const n = r.getPhysicsImpostor();\n if (n && n.parent !== e && r.parent) {\n const l = r.getAbsolutePosition().subtract(r.parent.getAbsolutePosition()), h = r.rotationQuaternion.multiply(this._tmpQuaternion);\n n.physicsBody && (this.removePhysicsBody(n), n.physicsBody = null), n.parent = e, n.resetUpdateFlags(), e.physicsBody.addShape(this._createShape(n), new this.BJSCANNON.Vec3(l.x, l.y, l.z), new this.BJSCANNON.Quaternion(h.x, h.y, h.z, h.w)), e.physicsBody.mass += n.getParam(\"mass\");\n }\n r.getChildMeshes(!0).filter((o) => !!o.physicsImpostor).forEach(s);\n };\n t.filter((r) => !!r.physicsImpostor).forEach(s);\n }\n }\n removePhysicsBody(e) {\n e.physicsBody.removeEventListener(\"collide\", e.onCollide), this.world.removeEventListener(\"preStep\", e.beforeStep), this.world.removeEventListener(\"postStep\", e.afterStep), this._physicsBodiesToRemoveAfterStep.indexOf(e.physicsBody) === -1 && this._physicsBodiesToRemoveAfterStep.push(e.physicsBody);\n }\n generateJoint(e) {\n const t = e.mainImpostor.physicsBody, i = e.connectedImpostor.physicsBody;\n if (!t || !i)\n return;\n let s;\n const r = e.joint.jointData, n = {\n pivotA: r.mainPivot ? new this.BJSCANNON.Vec3().set(r.mainPivot.x, r.mainPivot.y, r.mainPivot.z) : null,\n pivotB: r.connectedPivot ? new this.BJSCANNON.Vec3().set(r.connectedPivot.x, r.connectedPivot.y, r.connectedPivot.z) : null,\n axisA: r.mainAxis ? new this.BJSCANNON.Vec3().set(r.mainAxis.x, r.mainAxis.y, r.mainAxis.z) : null,\n axisB: r.connectedAxis ? new this.BJSCANNON.Vec3().set(r.connectedAxis.x, r.connectedAxis.y, r.connectedAxis.z) : null,\n maxForce: r.nativeParams.maxForce,\n collideConnected: !!r.collision\n };\n switch (e.joint.type) {\n case Jt.HingeJoint:\n case Jt.Hinge2Joint:\n s = new this.BJSCANNON.HingeConstraint(t, i, n);\n break;\n case Jt.DistanceJoint:\n s = new this.BJSCANNON.DistanceConstraint(t, i, r.maxDistance || 2);\n break;\n case Jt.SpringJoint: {\n const o = r;\n s = new this.BJSCANNON.Spring(t, i, {\n restLength: o.length,\n stiffness: o.stiffness,\n damping: o.damping,\n localAnchorA: n.pivotA,\n localAnchorB: n.pivotB\n });\n break;\n }\n case Jt.LockJoint:\n s = new this.BJSCANNON.LockConstraint(t, i, n);\n break;\n case Jt.PointToPointJoint:\n case Jt.BallAndSocketJoint:\n default:\n s = new this.BJSCANNON.PointToPointConstraint(t, n.pivotA, i, n.pivotB, n.maxForce);\n break;\n }\n s.collideConnected = !!r.collision, e.joint.physicsJoint = s, e.joint.type !== Jt.SpringJoint ? this.world.addConstraint(s) : (e.joint.jointData.forceApplicationCallback = e.joint.jointData.forceApplicationCallback || function() {\n s.applyForce();\n }, e.mainImpostor.registerAfterPhysicsStep(e.joint.jointData.forceApplicationCallback));\n }\n removeJoint(e) {\n e.joint.type !== Jt.SpringJoint ? this.world.removeConstraint(e.joint.physicsJoint) : e.mainImpostor.unregisterAfterPhysicsStep(e.joint.jointData.forceApplicationCallback);\n }\n _addMaterial(e, t, i) {\n let s, r;\n for (s = 0; s < this._physicsMaterials.length; s++)\n if (r = this._physicsMaterials[s], r.friction === t && r.restitution === i)\n return r;\n const n = new this.BJSCANNON.Material(e);\n return n.friction = t, n.restitution = i, this._physicsMaterials.push(n), n;\n }\n _checkWithEpsilon(e) {\n return e < tt ? tt : e;\n }\n _createShape(e) {\n const t = e.object;\n let i;\n const s = e.getObjectExtents();\n switch (e.type) {\n case Ke.SphereImpostor: {\n const r = s.x, n = s.y, o = s.z;\n i = new this.BJSCANNON.Sphere(Math.max(this._checkWithEpsilon(r), this._checkWithEpsilon(n), this._checkWithEpsilon(o)) / 2);\n break;\n }\n case Ke.CylinderImpostor: {\n let r = e.getParam(\"nativeOptions\");\n r || (r = {});\n const n = r.radiusTop !== void 0 ? r.radiusTop : this._checkWithEpsilon(s.x) / 2, o = r.radiusBottom !== void 0 ? r.radiusBottom : this._checkWithEpsilon(s.x) / 2, l = r.height !== void 0 ? r.height : this._checkWithEpsilon(s.y), h = r.numSegments !== void 0 ? r.numSegments : 16;\n i = new this.BJSCANNON.Cylinder(n, o, l, h);\n const c = new this.BJSCANNON.Quaternion();\n c.setFromAxisAngle(new this.BJSCANNON.Vec3(1, 0, 0), -Math.PI / 2);\n const u = new this.BJSCANNON.Vec3(0, 0, 0);\n i.transformAllPoints(u, c);\n break;\n }\n case Ke.BoxImpostor: {\n const r = s.scale(0.5);\n i = new this.BJSCANNON.Box(new this.BJSCANNON.Vec3(this._checkWithEpsilon(r.x), this._checkWithEpsilon(r.y), this._checkWithEpsilon(r.z)));\n break;\n }\n case Ke.PlaneImpostor:\n L.Warn(\"Attention, PlaneImposter might not behave as you expect. Consider using BoxImposter instead\"), i = new this.BJSCANNON.Plane();\n break;\n case Ke.MeshImpostor: {\n const r = t.getVerticesData ? t.getVerticesData(R.PositionKind) : [], n = t.getIndices ? t.getIndices() : [];\n if (!r) {\n L.Warn(\"Tried to create a MeshImpostor for an object without vertices. This will fail.\");\n return;\n }\n const o = t.position.clone(), l = t.rotation && t.rotation.clone(), h = t.rotationQuaternion && t.rotationQuaternion.clone();\n t.position.copyFromFloats(0, 0, 0), t.rotation && t.rotation.copyFromFloats(0, 0, 0), t.rotationQuaternion && t.rotationQuaternion.copyFrom(e.getParentsRotation()), t.rotationQuaternion && t.parent && t.rotationQuaternion.conjugateInPlace();\n const c = t.computeWorldMatrix(!0), u = [];\n let d;\n for (d = 0; d < r.length; d += 3)\n g.TransformCoordinates(g.FromArray(r, d), c).toArray(u, d);\n L.Warn(\"MeshImpostor only collides against spheres.\"), i = new this.BJSCANNON.Trimesh(u, n), t.position.copyFrom(o), l && t.rotation && t.rotation.copyFrom(l), h && t.rotationQuaternion && t.rotationQuaternion.copyFrom(h);\n break;\n }\n case Ke.HeightmapImpostor: {\n const r = t.position.clone(), n = t.rotation && t.rotation.clone(), o = t.rotationQuaternion && t.rotationQuaternion.clone();\n t.position.copyFromFloats(0, 0, 0), t.rotation && t.rotation.copyFromFloats(0, 0, 0), t.rotationQuaternion && t.rotationQuaternion.copyFrom(e.getParentsRotation()), t.rotationQuaternion && t.parent && t.rotationQuaternion.conjugateInPlace(), t.rotationQuaternion && t.rotationQuaternion.multiplyInPlace(this._minus90X), i = this._createHeightmap(t), t.position.copyFrom(r), n && t.rotation && t.rotation.copyFrom(n), o && t.rotationQuaternion && t.rotationQuaternion.copyFrom(o), t.computeWorldMatrix(!0);\n break;\n }\n case Ke.ParticleImpostor:\n i = new this.BJSCANNON.Particle();\n break;\n case Ke.NoImpostor:\n i = new this.BJSCANNON.Box(new this.BJSCANNON.Vec3(0, 0, 0));\n break;\n }\n return i;\n }\n _createHeightmap(e, t) {\n let i = e.getVerticesData(R.PositionKind);\n const s = e.computeWorldMatrix(!0), r = [];\n let n;\n for (n = 0; n < i.length; n += 3)\n g.TransformCoordinates(g.FromArray(i, n), s).toArray(r, n);\n i = r;\n const o = new Array(), l = t || ~~(Math.sqrt(i.length / 3) - 1), h = e.getBoundingInfo(), c = Math.min(h.boundingBox.extendSizeWorld.x, h.boundingBox.extendSizeWorld.y), u = h.boundingBox.extendSizeWorld.z, d = c * 2 / l;\n for (let p = 0; p < i.length; p = p + 3) {\n const _ = Math.round(i[p + 0] / d + l / 2), m = Math.round((i[p + 1] / d - l / 2) * -1), x = -i[p + 2] + u;\n o[_] || (o[_] = []), o[_][m] || (o[_][m] = x), o[_][m] = Math.max(x, o[_][m]);\n }\n for (let p = 0; p <= l; ++p) {\n if (!o[p]) {\n let _ = 1;\n for (; !o[(p + _) % l]; )\n _++;\n o[p] = o[(p + _) % l].slice();\n }\n for (let _ = 0; _ <= l; ++_)\n if (!o[p][_]) {\n let m = 1, x;\n for (; x === void 0; )\n x = o[p][(_ + m++) % l];\n o[p][_] = x;\n }\n }\n const f = new this.BJSCANNON.Heightfield(o, {\n elementSize: d\n });\n return f.minY = u, f;\n }\n _updatePhysicsBodyTransformation(e) {\n const t = e.object;\n if (t.computeWorldMatrix && t.computeWorldMatrix(!0), !t.getBoundingInfo())\n return;\n const i = e.getObjectCenter();\n this._tmpDeltaPosition.copyFrom(t.getAbsolutePivotPoint().subtract(i)), this._tmpDeltaPosition.divideInPlace(e.object.scaling), this._tmpPosition.copyFrom(i);\n let s = t.rotationQuaternion;\n if (s) {\n if ((e.type === Ke.PlaneImpostor || e.type === Ke.HeightmapImpostor) && (s = s.multiply(this._minus90X), e.setDeltaRotation(this._plus90X)), e.type === Ke.HeightmapImpostor) {\n const r = t;\n let n = r.getBoundingInfo();\n const o = r.rotationQuaternion;\n r.rotationQuaternion = this._tmpUnityRotation, r.computeWorldMatrix(!0);\n const l = i.clone();\n let h = r.getPivotMatrix();\n h ? h = h.clone() : h = O.Identity();\n const c = O.Translation(n.boundingBox.extendSizeWorld.x, 0, -n.boundingBox.extendSizeWorld.z);\n r.setPreTransformMatrix(c), r.computeWorldMatrix(!0), n = r.getBoundingInfo();\n const u = n.boundingBox.centerWorld.subtract(i).subtract(r.position).negate();\n this._tmpPosition.copyFromFloats(u.x, u.y - n.boundingBox.extendSizeWorld.y, u.z), this._tmpDeltaPosition.copyFrom(n.boundingBox.centerWorld.subtract(l)), this._tmpDeltaPosition.y += n.boundingBox.extendSizeWorld.y, r.rotationQuaternion = o, r.setPreTransformMatrix(h), r.computeWorldMatrix(!0);\n } else e.type === Ke.MeshImpostor && this._tmpDeltaPosition.copyFromFloats(0, 0, 0);\n e.setDeltaPosition(this._tmpDeltaPosition), e.physicsBody.position.set(this._tmpPosition.x, this._tmpPosition.y, this._tmpPosition.z), e.physicsBody.quaternion.set(s.x, s.y, s.z, s.w);\n }\n }\n setTransformationFromPhysicsBody(e) {\n if (e.object.position.set(e.physicsBody.position.x, e.physicsBody.position.y, e.physicsBody.position.z), e.object.rotationQuaternion) {\n const t = e.physicsBody.quaternion;\n e.object.rotationQuaternion.set(t.x, t.y, t.z, t.w);\n }\n }\n setPhysicsBodyTransformation(e, t, i) {\n e.physicsBody.position.set(t.x, t.y, t.z), e.physicsBody.quaternion.set(i.x, i.y, i.z, i.w);\n }\n isSupported() {\n return this.BJSCANNON !== void 0;\n }\n setLinearVelocity(e, t) {\n e.physicsBody.velocity.set(t.x, t.y, t.z);\n }\n setAngularVelocity(e, t) {\n e.physicsBody.angularVelocity.set(t.x, t.y, t.z);\n }\n getLinearVelocity(e) {\n const t = e.physicsBody.velocity;\n return t ? new g(t.x, t.y, t.z) : null;\n }\n getAngularVelocity(e) {\n const t = e.physicsBody.angularVelocity;\n return t ? new g(t.x, t.y, t.z) : null;\n }\n setBodyMass(e, t) {\n e.physicsBody.mass = t, e.physicsBody.updateMassProperties();\n }\n getBodyMass(e) {\n return e.physicsBody.mass;\n }\n getBodyFriction(e) {\n return e.physicsBody.material.friction;\n }\n setBodyFriction(e, t) {\n e.physicsBody.material.friction = t;\n }\n getBodyRestitution(e) {\n return e.physicsBody.material.restitution;\n }\n setBodyRestitution(e, t) {\n e.physicsBody.material.restitution = t;\n }\n sleepBody(e) {\n e.physicsBody.sleep();\n }\n wakeUpBody(e) {\n e.physicsBody.wakeUp();\n }\n updateDistanceJoint(e, t) {\n e.physicsJoint.distance = t;\n }\n setMotor(e, t, i, s) {\n s || (e.physicsJoint.enableMotor(), e.physicsJoint.setMotorSpeed(t), i && this.setLimit(e, i));\n }\n setLimit(e, t, i) {\n e.physicsJoint.motorEquation.maxForce = i, e.physicsJoint.motorEquation.minForce = t === void 0 ? -t : t;\n }\n syncMeshWithImpostor(e, t) {\n const i = t.physicsBody;\n e.position.x = i.position.x, e.position.y = i.position.y, e.position.z = i.position.z, e.rotationQuaternion && (e.rotationQuaternion.x = i.quaternion.x, e.rotationQuaternion.y = i.quaternion.y, e.rotationQuaternion.z = i.quaternion.z, e.rotationQuaternion.w = i.quaternion.w);\n }\n getRadius(e) {\n return e.physicsBody.shapes[0].boundingSphereRadius;\n }\n getBoxSizeToRef(e, t) {\n const i = e.physicsBody.shapes[0];\n t.x = i.halfExtents.x * 2, t.y = i.halfExtents.y * 2, t.z = i.halfExtents.z * 2;\n }\n dispose() {\n }\n _extendNamespace() {\n const e = new this.BJSCANNON.Vec3(), t = this.BJSCANNON;\n this.BJSCANNON.World.prototype.step = function(i, s, r) {\n if (r = r || 10, s = s || 0, s === 0)\n this.internalStep(i), this.time += i;\n else {\n let n = Math.floor((this.time + s) / i) - Math.floor(this.time / i);\n n = Math.min(n, r) || 1;\n const o = performance.now();\n for (let d = 0; d !== n && (this.internalStep(i), !(performance.now() - o > i * 1e3)); d++)\n ;\n this.time += s;\n const h = this.time % i / i, c = e, u = this.bodies;\n for (let d = 0; d !== u.length; d++) {\n const f = u[d];\n f.type !== t.Body.STATIC && f.sleepState !== t.Body.SLEEPING ? (f.position.vsub(f.previousPosition, c), c.scale(h, c), f.position.vadd(c, f.interpolatedPosition)) : (f.interpolatedPosition.set(f.position.x, f.position.y, f.position.z), f.interpolatedQuaternion.set(f.quaternion.x, f.quaternion.y, f.quaternion.z, f.quaternion.w));\n }\n }\n };\n }\n /**\n * Does a raycast in the physics world\n * @param from when should the ray start?\n * @param to when should the ray end?\n * @returns PhysicsRaycastResult\n */\n raycast(e, t) {\n return this._raycastResult.reset(e, t), this.raycastToRef(e, t, this._raycastResult), this._raycastResult;\n }\n /**\n * Does a raycast in the physics world\n * @param from when should the ray start?\n * @param to when should the ray end?\n * @param result resulting PhysicsRaycastResult\n */\n raycastToRef(e, t, i) {\n this._cannonRaycastResult.reset(), this.world.raycastClosest(e, t, {}, this._cannonRaycastResult), i.reset(e, t), this._cannonRaycastResult.hasHit && (i.setHitData({\n x: this._cannonRaycastResult.hitNormalWorld.x,\n y: this._cannonRaycastResult.hitNormalWorld.y,\n z: this._cannonRaycastResult.hitNormalWorld.z\n }, {\n x: this._cannonRaycastResult.hitPointWorld.x,\n y: this._cannonRaycastResult.hitPointWorld.y,\n z: this._cannonRaycastResult.hitPointWorld.z\n }), i.setHitDistance(this._cannonRaycastResult.distance));\n }\n}\ntA.DefaultPluginFactory = () => new Ug();\nclass IE {\n constructor(e = !0, t, i = OIMO) {\n this._useDeltaForWorldStep = e, this.name = \"OimoJSPlugin\", this._fixedTimeStep = 1 / 60, this._tmpImpostorsArray = [], this._tmpPositionVector = g.Zero(), this.BJSOIMO = i, this.world = new this.BJSOIMO.World({\n iterations: t\n }), this.world.clear(), this._raycastResult = new tm();\n }\n /**\n *\n * @returns plugin version\n */\n getPluginVersion() {\n return 1;\n }\n setGravity(e) {\n this.world.gravity.set(e.x, e.y, e.z);\n }\n setTimeStep(e) {\n this.world.timeStep = e;\n }\n getTimeStep() {\n return this.world.timeStep;\n }\n executeStep(e, t) {\n t.forEach(function(s) {\n s.beforeStep();\n }), this.world.timeStep = this._useDeltaForWorldStep ? e : this._fixedTimeStep, this.world.step(), t.forEach((s) => {\n s.afterStep(), this._tmpImpostorsArray[s.uniqueId] = s;\n });\n let i = this.world.contacts;\n for (; i !== null; ) {\n if (i.touching && !i.body1.sleeping && !i.body2.sleeping) {\n i = i.next;\n continue;\n }\n const s = this._tmpImpostorsArray[+i.body1.name], r = this._tmpImpostorsArray[+i.body2.name];\n if (!s || !r) {\n i = i.next;\n continue;\n }\n s.onCollide({ body: r.physicsBody, point: null, distance: 0, impulse: 0, normal: null }), r.onCollide({ body: s.physicsBody, point: null, distance: 0, impulse: 0, normal: null }), i = i.next;\n }\n }\n applyImpulse(e, t, i) {\n const s = e.physicsBody.mass;\n e.physicsBody.applyImpulse(i.scale(this.world.invScale), t.scale(this.world.invScale * s));\n }\n applyForce(e, t, i) {\n L.Warn(\"Oimo doesn't support applying force. Using impulse instead.\"), this.applyImpulse(e, t, i);\n }\n generatePhysicsBody(e) {\n if (e.parent) {\n e.physicsBody && (this.removePhysicsBody(e), e.forceUpdate());\n return;\n }\n if (e.isBodyInitRequired()) {\n const t = {\n name: e.uniqueId,\n //Oimo must have mass, also for static objects.\n config: [e.getParam(\"mass\") || 1e-3, e.getParam(\"friction\"), e.getParam(\"restitution\")],\n size: [],\n type: [],\n pos: [],\n posShape: [],\n rot: [],\n rotShape: [],\n move: e.getParam(\"mass\") !== 0,\n density: e.getParam(\"mass\"),\n friction: e.getParam(\"friction\"),\n restitution: e.getParam(\"restitution\"),\n //Supporting older versions of Oimo\n world: this.world\n }, i = [e];\n ((o) => {\n o.getChildMeshes && o.getChildMeshes().forEach(function(l) {\n l.physicsImpostor && i.push(l.physicsImpostor);\n });\n })(e.object);\n const r = (o) => Math.max(o, tt), n = new se();\n i.forEach((o) => {\n if (!o.object.rotationQuaternion)\n return;\n const l = o.object.rotationQuaternion;\n n.copyFrom(l), o.object.rotationQuaternion.set(0, 0, 0, 1), o.object.computeWorldMatrix(!0);\n const h = n.toEulerAngles(), c = o.getObjectExtents(), u = 57.29577951308232;\n if (o === e) {\n const d = e.getObjectCenter();\n e.object.getAbsolutePivotPoint().subtractToRef(d, this._tmpPositionVector), this._tmpPositionVector.divideInPlace(e.object.scaling), t.pos.push(d.x), t.pos.push(d.y), t.pos.push(d.z), t.posShape.push(0, 0, 0), t.rotShape.push(0, 0, 0);\n } else {\n const d = o.object.position.clone();\n t.posShape.push(d.x), t.posShape.push(d.y), t.posShape.push(d.z), t.rotShape.push(h.x * u, h.y * u, h.z * u);\n }\n switch (o.object.rotationQuaternion.copyFrom(n), o.type) {\n case Ke.ParticleImpostor:\n L.Warn(\"No Particle support in OIMO.js. using SphereImpostor instead\");\n case Ke.SphereImpostor: {\n const d = c.x, f = c.y, p = c.z, _ = Math.max(r(d), r(f), r(p)) / 2;\n t.type.push(\"sphere\"), t.size.push(_), t.size.push(_), t.size.push(_);\n break;\n }\n case Ke.CylinderImpostor: {\n const d = r(c.x) / 2, f = r(c.y);\n t.type.push(\"cylinder\"), t.size.push(d), t.size.push(f), t.size.push(f);\n break;\n }\n case Ke.PlaneImpostor:\n case Ke.BoxImpostor:\n default: {\n const d = r(c.x), f = r(c.y), p = r(c.z);\n t.type.push(\"box\"), t.size.push(d), t.size.push(f), t.size.push(p);\n break;\n }\n }\n o.object.rotationQuaternion = l;\n }), e.physicsBody = this.world.add(t), e.physicsBody.resetQuaternion(n), e.physicsBody.updatePosition(0);\n } else\n this._tmpPositionVector.copyFromFloats(0, 0, 0);\n e.setDeltaPosition(this._tmpPositionVector);\n }\n removePhysicsBody(e) {\n this.world.removeRigidBody(e.physicsBody);\n }\n generateJoint(e) {\n const t = e.mainImpostor.physicsBody, i = e.connectedImpostor.physicsBody;\n if (!t || !i)\n return;\n const s = e.joint.jointData, r = s.nativeParams || {};\n let n;\n const o = {\n body1: t,\n body2: i,\n axe1: r.axe1 || (s.mainAxis ? s.mainAxis.asArray() : null),\n axe2: r.axe2 || (s.connectedAxis ? s.connectedAxis.asArray() : null),\n pos1: r.pos1 || (s.mainPivot ? s.mainPivot.asArray() : null),\n pos2: r.pos2 || (s.connectedPivot ? s.connectedPivot.asArray() : null),\n min: r.min,\n max: r.max,\n collision: r.collision || s.collision,\n spring: r.spring,\n //supporting older version of Oimo\n world: this.world\n };\n switch (e.joint.type) {\n case Jt.BallAndSocketJoint:\n n = \"jointBall\";\n break;\n case Jt.SpringJoint: {\n L.Warn(\"OIMO.js doesn't support Spring Constraint. Simulating using DistanceJoint instead\");\n const l = s;\n o.min = l.length || o.min, o.max = Math.max(o.min, o.max);\n }\n case Jt.DistanceJoint:\n n = \"jointDistance\", o.max = s.maxDistance;\n break;\n case Jt.PrismaticJoint:\n n = \"jointPrisme\";\n break;\n case Jt.SliderJoint:\n n = \"jointSlide\";\n break;\n case Jt.WheelJoint:\n n = \"jointWheel\";\n break;\n case Jt.HingeJoint:\n default:\n n = \"jointHinge\";\n break;\n }\n o.type = n, e.joint.physicsJoint = this.world.add(o);\n }\n removeJoint(e) {\n try {\n this.world.removeJoint(e.joint.physicsJoint);\n } catch (t) {\n L.Warn(t);\n }\n }\n isSupported() {\n return this.BJSOIMO !== void 0;\n }\n setTransformationFromPhysicsBody(e) {\n if (!e.physicsBody.sleeping) {\n if (e.physicsBody.shapes.next) {\n let t = e.physicsBody.shapes;\n for (; t.next; )\n t = t.next;\n e.object.position.set(t.position.x, t.position.y, t.position.z);\n } else {\n const t = e.physicsBody.getPosition();\n e.object.position.set(t.x, t.y, t.z);\n }\n if (e.object.rotationQuaternion) {\n const t = e.physicsBody.getQuaternion();\n e.object.rotationQuaternion.set(t.x, t.y, t.z, t.w);\n }\n }\n }\n setPhysicsBodyTransformation(e, t, i) {\n const s = e.physicsBody;\n e.physicsBody.shapes.next || (s.position.set(t.x, t.y, t.z), s.orientation.set(i.x, i.y, i.z, i.w), s.syncShapes(), s.awake());\n }\n /*private _getLastShape(body: any): any {\n var lastShape = body.shapes;\n while (lastShape.next) {\n lastShape = lastShape.next;\n }\n return lastShape;\n }*/\n setLinearVelocity(e, t) {\n e.physicsBody.linearVelocity.set(t.x, t.y, t.z);\n }\n setAngularVelocity(e, t) {\n e.physicsBody.angularVelocity.set(t.x, t.y, t.z);\n }\n getLinearVelocity(e) {\n const t = e.physicsBody.linearVelocity;\n return t ? new g(t.x, t.y, t.z) : null;\n }\n getAngularVelocity(e) {\n const t = e.physicsBody.angularVelocity;\n return t ? new g(t.x, t.y, t.z) : null;\n }\n setBodyMass(e, t) {\n const i = t === 0;\n e.physicsBody.shapes.density = i ? 1 : t, e.physicsBody.setupMass(i ? 2 : 1);\n }\n getBodyMass(e) {\n return e.physicsBody.shapes.density;\n }\n getBodyFriction(e) {\n return e.physicsBody.shapes.friction;\n }\n setBodyFriction(e, t) {\n e.physicsBody.shapes.friction = t;\n }\n getBodyRestitution(e) {\n return e.physicsBody.shapes.restitution;\n }\n setBodyRestitution(e, t) {\n e.physicsBody.shapes.restitution = t;\n }\n sleepBody(e) {\n e.physicsBody.sleep();\n }\n wakeUpBody(e) {\n e.physicsBody.awake();\n }\n updateDistanceJoint(e, t, i) {\n e.physicsJoint.limitMotor.upperLimit = t, i !== void 0 && (e.physicsJoint.limitMotor.lowerLimit = i);\n }\n setMotor(e, t, i, s) {\n i !== void 0 ? L.Warn(\"OimoJS plugin currently has unexpected behavior when using setMotor with force parameter\") : i = 1e6, t *= -1;\n const r = s ? e.physicsJoint.rotationalLimitMotor2 : e.physicsJoint.rotationalLimitMotor1 || e.physicsJoint.rotationalLimitMotor || e.physicsJoint.limitMotor;\n r && r.setMotor(t, i);\n }\n setLimit(e, t, i, s) {\n const r = s ? e.physicsJoint.rotationalLimitMotor2 : e.physicsJoint.rotationalLimitMotor1 || e.physicsJoint.rotationalLimitMotor || e.physicsJoint.limitMotor;\n r && r.setLimit(t, i === void 0 ? -t : i);\n }\n syncMeshWithImpostor(e, t) {\n const i = t.physicsBody;\n e.position.x = i.position.x, e.position.y = i.position.y, e.position.z = i.position.z, e.rotationQuaternion && (e.rotationQuaternion.x = i.orientation.x, e.rotationQuaternion.y = i.orientation.y, e.rotationQuaternion.z = i.orientation.z, e.rotationQuaternion.w = i.orientation.w);\n }\n getRadius(e) {\n return e.physicsBody.shapes.radius;\n }\n getBoxSizeToRef(e, t) {\n const i = e.physicsBody.shapes;\n t.x = i.halfWidth * 2, t.y = i.halfHeight * 2, t.z = i.halfDepth * 2;\n }\n dispose() {\n this.world.clear();\n }\n /**\n * Does a raycast in the physics world\n * @param from when should the ray start?\n * @param to when should the ray end?\n * @returns PhysicsRaycastResult\n */\n raycast(e, t) {\n return L.Warn(\"raycast is not currently supported by the Oimo physics plugin\"), this._raycastResult.reset(e, t), this._raycastResult;\n }\n /**\n * Does a raycast in the physics world\n * @param from when should the ray start?\n * @param to when should the ray end?\n * @param result resulting PhysicsRaycastResult\n */\n raycastToRef(e, t, i) {\n L.Warn(\"raycast is not currently supported by the Oimo physics plugin\"), i.reset(e, t);\n }\n}\nclass Aa {\n /**\n * Initializes the ammoJS plugin\n * @param _useDeltaForWorldStep if the time between frames should be used when calculating physics steps (Default: true)\n * @param ammoInjection can be used to inject your own ammo reference\n * @param overlappingPairCache can be used to specify your own overlapping pair cache\n */\n constructor(e = !0, t = Ammo, i = null) {\n if (this._useDeltaForWorldStep = e, this.bjsAMMO = {}, this.name = \"AmmoJSPlugin\", this._timeStep = 1 / 60, this._fixedTimeStep = 1 / 60, this._maxSteps = 5, this._tmpQuaternion = new se(), this._tmpContactCallbackResult = !1, this._tmpContactPoint = new g(), this._tmpContactNormal = new g(), this._tmpVec3 = new g(), this._tmpMatrix = new O(), typeof t == \"function\") {\n L.Error(\"AmmoJS is not ready. Please make sure you await Ammo() before using the plugin.\");\n return;\n } else\n this.bjsAMMO = t;\n if (!this.isSupported()) {\n L.Error(\"AmmoJS is not available. Please make sure you included the js file.\");\n return;\n }\n this._collisionConfiguration = new this.bjsAMMO.btSoftBodyRigidBodyCollisionConfiguration(), this._dispatcher = new this.bjsAMMO.btCollisionDispatcher(this._collisionConfiguration), this._overlappingPairCache = i || new this.bjsAMMO.btDbvtBroadphase(), this._solver = new this.bjsAMMO.btSequentialImpulseConstraintSolver(), this._softBodySolver = new this.bjsAMMO.btDefaultSoftBodySolver(), this.world = new this.bjsAMMO.btSoftRigidDynamicsWorld(this._dispatcher, this._overlappingPairCache, this._solver, this._collisionConfiguration, this._softBodySolver), this._tmpAmmoConcreteContactResultCallback = new this.bjsAMMO.ConcreteContactResultCallback(), this._tmpAmmoConcreteContactResultCallback.addSingleResult = (s) => {\n s = this.bjsAMMO.wrapPointer(s, this.bjsAMMO.btManifoldPoint);\n const r = s.getPositionWorldOnA(), n = s.m_normalWorldOnB;\n this._tmpContactPoint.x = r.x(), this._tmpContactPoint.y = r.y(), this._tmpContactPoint.z = r.z(), this._tmpContactNormal.x = n.x(), this._tmpContactNormal.y = n.y(), this._tmpContactNormal.z = n.z(), this._tmpContactImpulse = s.getAppliedImpulse(), this._tmpContactDistance = s.getDistance(), this._tmpContactCallbackResult = !0;\n }, this._raycastResult = new tm(), this._tmpAmmoTransform = new this.bjsAMMO.btTransform(), this._tmpAmmoTransform.setIdentity(), this._tmpAmmoQuaternion = new this.bjsAMMO.btQuaternion(0, 0, 0, 1), this._tmpAmmoVectorA = new this.bjsAMMO.btVector3(0, 0, 0), this._tmpAmmoVectorB = new this.bjsAMMO.btVector3(0, 0, 0), this._tmpAmmoVectorC = new this.bjsAMMO.btVector3(0, 0, 0), this._tmpAmmoVectorD = new this.bjsAMMO.btVector3(0, 0, 0);\n }\n /**\n *\n * @returns plugin version\n */\n getPluginVersion() {\n return 1;\n }\n /**\n * Sets the gravity of the physics world (m/(s^2))\n * @param gravity Gravity to set\n */\n setGravity(e) {\n this._tmpAmmoVectorA.setValue(e.x, e.y, e.z), this.world.setGravity(this._tmpAmmoVectorA), this.world.getWorldInfo().set_m_gravity(this._tmpAmmoVectorA);\n }\n /**\n * Amount of time to step forward on each frame (only used if useDeltaForWorldStep is false in the constructor)\n * @param timeStep timestep to use in seconds\n */\n setTimeStep(e) {\n this._timeStep = e;\n }\n /**\n * Increment to step forward in the physics engine (If timeStep is set to 1/60 and fixedTimeStep is set to 1/120 the physics engine should run 2 steps per frame) (Default: 1/60)\n * @param fixedTimeStep fixedTimeStep to use in seconds\n */\n setFixedTimeStep(e) {\n this._fixedTimeStep = e;\n }\n /**\n * Sets the maximum number of steps by the physics engine per frame (Default: 5)\n * @param maxSteps the maximum number of steps by the physics engine per frame\n */\n setMaxSteps(e) {\n this._maxSteps = e;\n }\n /**\n * Gets the current timestep (only used if useDeltaForWorldStep is false in the constructor)\n * @returns the current timestep in seconds\n */\n getTimeStep() {\n return this._timeStep;\n }\n // Ammo's contactTest and contactPairTest take a callback that runs synchronously, wrap them so that they are easier to consume\n _isImpostorInContact(e) {\n return this._tmpContactCallbackResult = !1, this.world.contactTest(e.physicsBody, this._tmpAmmoConcreteContactResultCallback), this._tmpContactCallbackResult;\n }\n // Ammo's collision events have some weird quirks\n // contactPairTest fires too many events as it fires events even when objects are close together but contactTest does not\n // so only fire event if both contactTest and contactPairTest have a hit\n _isImpostorPairInContact(e, t) {\n return this._tmpContactCallbackResult = !1, this.world.contactPairTest(e.physicsBody, t.physicsBody, this._tmpAmmoConcreteContactResultCallback), this._tmpContactCallbackResult;\n }\n // Ammo's behavior when maxSteps > 0 does not behave as described in docs\n // @see http://www.bulletphysics.org/mediawiki-1.5.8/index.php/Stepping_The_World\n //\n // When maxSteps is 0 do the entire simulation in one step\n // When maxSteps is > 0, run up to maxStep times, if on the last step the (remaining step - fixedTimeStep) is < fixedTimeStep, the remainder will be used for the step. (eg. if remainder is 1.001 and fixedTimeStep is 1 the last step will be 1.001, if instead it did 2 steps (1, 0.001) issues occuered when having a tiny step in ammo)\n // Note: To get deterministic physics, timeStep would always need to be divisible by fixedTimeStep\n _stepSimulation(e = 1 / 60, t = 10, i = 1 / 60) {\n if (t == 0)\n this.world.stepSimulation(e, 0);\n else\n for (; t > 0 && e > 0; )\n e - i < i ? (this.world.stepSimulation(e, 0), e = 0) : (e -= i, this.world.stepSimulation(i, 0)), t--;\n }\n /**\n * Moves the physics simulation forward delta seconds and updates the given physics imposters\n * Prior to the step the imposters physics location is set to the position of the babylon meshes\n * After the step the babylon meshes are set to the position of the physics imposters\n * @param delta amount of time to step forward\n * @param impostors array of imposters to update before/after the step\n */\n executeStep(e, t) {\n for (const i of t)\n i.soft || i.beforeStep();\n this._stepSimulation(this._useDeltaForWorldStep ? e : this._timeStep, this._maxSteps, this._fixedTimeStep);\n for (const i of t)\n if (i.soft ? this._afterSoftStep(i) : i.afterStep(), i._onPhysicsCollideCallbacks.length > 0 && this._isImpostorInContact(i))\n for (const s of i._onPhysicsCollideCallbacks)\n for (const r of s.otherImpostors)\n (i.physicsBody.isActive() || r.physicsBody.isActive()) && this._isImpostorPairInContact(i, r) && (i.onCollide({\n body: r.physicsBody,\n point: this._tmpContactPoint,\n distance: this._tmpContactDistance,\n impulse: this._tmpContactImpulse,\n normal: this._tmpContactNormal\n }), r.onCollide({\n body: i.physicsBody,\n point: this._tmpContactPoint,\n distance: this._tmpContactDistance,\n impulse: this._tmpContactImpulse,\n normal: this._tmpContactNormal\n }));\n }\n /**\n * Update babylon mesh to match physics world object\n * @param impostor imposter to match\n */\n _afterSoftStep(e) {\n e.type === Ke.RopeImpostor ? this._ropeStep(e) : this._softbodyOrClothStep(e);\n }\n /**\n * Update babylon mesh vertices vertices to match physics world softbody or cloth\n * @param impostor imposter to match\n */\n _ropeStep(e) {\n const t = e.physicsBody.get_m_nodes(), i = t.size();\n let s, r, n, o, l;\n const h = new Array();\n for (let d = 0; d < i; d++)\n s = t.at(d), r = s.get_m_x(), n = r.x(), o = r.y(), l = r.z(), h.push(new g(n, o, l));\n const c = e.object, u = e.getParam(\"shape\");\n e._isFromLine ? e.object = Wo(\"lines\", { points: h, instance: c }) : e.object = w_(\"ext\", { shape: u, path: h, instance: c });\n }\n /**\n * Update babylon mesh vertices vertices to match physics world softbody or cloth\n * @param impostor imposter to match\n */\n _softbodyOrClothStep(e) {\n const t = e.type === Ke.ClothImpostor ? 1 : -1, i = e.object;\n let s = i.getVerticesData(R.PositionKind);\n s || (s = []);\n let r = i.getVerticesData(R.NormalKind);\n r || (r = []);\n const n = s.length / 3, o = e.physicsBody.get_m_nodes();\n let l, h, c, u, d, f, p, _;\n for (let x = 0; x < n; x++) {\n l = o.at(x), h = l.get_m_x(), c = h.x(), u = h.y(), d = h.z() * t;\n const v = l.get_m_n();\n f = v.x(), p = v.y(), _ = v.z() * t, s[3 * x] = c, s[3 * x + 1] = u, s[3 * x + 2] = d, r[3 * x] = f, r[3 * x + 1] = p, r[3 * x + 2] = _;\n }\n const m = new ge();\n m.positions = s, m.normals = r, m.uvs = i.getVerticesData(R.UVKind), m.colors = i.getVerticesData(R.ColorKind), i && i.getIndices && (m.indices = i.getIndices()), m.applyToMesh(i);\n }\n /**\n * Applies an impulse on the imposter\n * @param impostor imposter to apply impulse to\n * @param force amount of force to be applied to the imposter\n * @param contactPoint the location to apply the impulse on the imposter\n */\n applyImpulse(e, t, i) {\n if (e.soft)\n L.Warn(\"Cannot be applied to a soft body\");\n else {\n e.physicsBody.activate();\n const s = this._tmpAmmoVectorA, r = this._tmpAmmoVectorB;\n e.object && e.object.getWorldMatrix && i.subtractInPlace(e.object.getWorldMatrix().getTranslation()), s.setValue(i.x, i.y, i.z), r.setValue(t.x, t.y, t.z), e.physicsBody.applyImpulse(r, s);\n }\n }\n /**\n * Applies a force on the imposter\n * @param impostor imposter to apply force\n * @param force amount of force to be applied to the imposter\n * @param contactPoint the location to apply the force on the imposter\n */\n applyForce(e, t, i) {\n if (e.soft)\n L.Warn(\"Cannot be applied to a soft body\");\n else {\n e.physicsBody.activate();\n const s = this._tmpAmmoVectorA, r = this._tmpAmmoVectorB;\n if (e.object && e.object.getWorldMatrix) {\n const n = e.object.getWorldMatrix().getTranslation();\n s.setValue(i.x - n.x, i.y - n.y, i.z - n.z);\n } else\n s.setValue(i.x, i.y, i.z);\n r.setValue(t.x, t.y, t.z), e.physicsBody.applyForce(r, s);\n }\n }\n /**\n * Creates a physics body using the plugin\n * @param impostor the imposter to create the physics body on\n */\n generatePhysicsBody(e) {\n if (e._pluginData.toDispose = [], e.parent) {\n e.physicsBody && (this.removePhysicsBody(e), e.forceUpdate());\n return;\n }\n if (e.isBodyInitRequired()) {\n const t = this._createShape(e), i = e.getParam(\"mass\");\n if (e._pluginData.mass = i, e.soft)\n t.get_m_cfg().set_collisions(17), t.get_m_cfg().set_kDP(e.getParam(\"damping\")), this.bjsAMMO.castObject(t, this.bjsAMMO.btCollisionObject).getCollisionShape().setMargin(e.getParam(\"margin\")), t.setActivationState(Aa._DISABLE_DEACTIVATION_FLAG), this.world.addSoftBody(t, 1, -1), e.physicsBody = t, e._pluginData.toDispose.push(t), this.setBodyPressure(e, 0), e.type === Ke.SoftbodyImpostor && this.setBodyPressure(e, e.getParam(\"pressure\")), this.setBodyStiffness(e, e.getParam(\"stiffness\")), this.setBodyVelocityIterations(e, e.getParam(\"velocityIterations\")), this.setBodyPositionIterations(e, e.getParam(\"positionIterations\"));\n else {\n const s = new this.bjsAMMO.btVector3(0, 0, 0), r = new this.bjsAMMO.btTransform();\n e.object.computeWorldMatrix(!0), r.setIdentity(), i !== 0 && t.calculateLocalInertia(i, s), this._tmpAmmoVectorA.setValue(e.object.position.x, e.object.position.y, e.object.position.z), this._tmpAmmoQuaternion.setValue(e.object.rotationQuaternion.x, e.object.rotationQuaternion.y, e.object.rotationQuaternion.z, e.object.rotationQuaternion.w), r.setOrigin(this._tmpAmmoVectorA), r.setRotation(this._tmpAmmoQuaternion);\n const n = new this.bjsAMMO.btDefaultMotionState(r), o = new this.bjsAMMO.btRigidBodyConstructionInfo(i, n, t, s), l = new this.bjsAMMO.btRigidBody(o);\n if (i === 0 && (l.setCollisionFlags(l.getCollisionFlags() | Aa._KINEMATIC_FLAG), l.setActivationState(Aa._DISABLE_DEACTIVATION_FLAG)), e.type == Ke.NoImpostor && !t.getChildShape && l.setCollisionFlags(l.getCollisionFlags() | Aa._DISABLE_COLLISION_FLAG), e.type !== Ke.MeshImpostor && e.type !== Ke.NoImpostor) {\n const u = e.object.getBoundingInfo();\n this._tmpVec3.copyFrom(e.object.getAbsolutePosition()), this._tmpVec3.subtractInPlace(u.boundingBox.centerWorld), this._tmpVec3.x /= e.object.scaling.x, this._tmpVec3.y /= e.object.scaling.y, this._tmpVec3.z /= e.object.scaling.z, e.setDeltaPosition(this._tmpVec3);\n }\n const h = e.getParam(\"group\"), c = e.getParam(\"mask\");\n h && c ? this.world.addRigidBody(l, h, c) : this.world.addRigidBody(l), e.physicsBody = l, e._pluginData.toDispose = e._pluginData.toDispose.concat([l, o, n, r, s, t]);\n }\n this.setBodyRestitution(e, e.getParam(\"restitution\")), this.setBodyFriction(e, e.getParam(\"friction\"));\n }\n }\n /**\n * Removes the physics body from the imposter and disposes of the body's memory\n * @param impostor imposter to remove the physics body from\n */\n removePhysicsBody(e) {\n this.world && (e.soft ? this.world.removeSoftBody(e.physicsBody) : this.world.removeRigidBody(e.physicsBody), e._pluginData && (e._pluginData.toDispose.forEach((t) => {\n this.bjsAMMO.destroy(t);\n }), e._pluginData.toDispose = []));\n }\n /**\n * Generates a joint\n * @param impostorJoint the imposter joint to create the joint with\n */\n generateJoint(e) {\n const t = e.mainImpostor.physicsBody, i = e.connectedImpostor.physicsBody;\n if (!t || !i || e.joint.physicsJoint)\n return;\n const s = e.joint.jointData;\n s.mainPivot || (s.mainPivot = new g(0, 0, 0)), s.connectedPivot || (s.connectedPivot = new g(0, 0, 0));\n let r;\n switch (e.joint.type) {\n case Jt.DistanceJoint: {\n const n = s.maxDistance;\n n && (s.mainPivot = new g(0, -n / 2, 0), s.connectedPivot = new g(0, n / 2, 0));\n const o = this._tmpAmmoVectorA;\n o.setValue(s.mainPivot.x, s.mainPivot.y, s.mainPivot.z);\n const l = this._tmpAmmoVectorB;\n l.setValue(s.connectedPivot.x, s.connectedPivot.y, s.connectedPivot.z), r = new this.bjsAMMO.btPoint2PointConstraint(t, i, o, l);\n break;\n }\n case Jt.HingeJoint: {\n s.mainAxis || (s.mainAxis = new g(0, 0, 0)), s.connectedAxis || (s.connectedAxis = new g(0, 0, 0));\n const n = this._tmpAmmoVectorA;\n n.setValue(s.mainPivot.x, s.mainPivot.y, s.mainPivot.z);\n const o = this._tmpAmmoVectorB;\n o.setValue(s.connectedPivot.x, s.connectedPivot.y, s.connectedPivot.z);\n const l = this._tmpAmmoVectorC;\n l.setValue(s.mainAxis.x, s.mainAxis.y, s.mainAxis.z);\n const h = this._tmpAmmoVectorD;\n h.setValue(s.connectedAxis.x, s.connectedAxis.y, s.connectedAxis.z), r = new this.bjsAMMO.btHingeConstraint(t, i, n, o, l, h);\n break;\n }\n case Jt.BallAndSocketJoint: {\n const n = this._tmpAmmoVectorA;\n n.setValue(s.mainPivot.x, s.mainPivot.y, s.mainPivot.z);\n const o = this._tmpAmmoVectorB;\n o.setValue(s.connectedPivot.x, s.connectedPivot.y, s.connectedPivot.z), r = new this.bjsAMMO.btPoint2PointConstraint(t, i, n, o);\n break;\n }\n default: {\n L.Warn(\"JointType not currently supported by the Ammo plugin, falling back to PhysicsJoint.BallAndSocketJoint\");\n const n = this._tmpAmmoVectorA;\n n.setValue(s.mainPivot.x, s.mainPivot.y, s.mainPivot.z);\n const o = this._tmpAmmoVectorB;\n o.setValue(s.connectedPivot.x, s.connectedPivot.y, s.connectedPivot.z), r = new this.bjsAMMO.btPoint2PointConstraint(t, i, n, o);\n break;\n }\n }\n this.world.addConstraint(r, !e.joint.jointData.collision), e.joint.physicsJoint = r;\n }\n /**\n * Removes a joint\n * @param impostorJoint the imposter joint to remove the joint from\n */\n removeJoint(e) {\n this.world && this.world.removeConstraint(e.joint.physicsJoint), this.bjsAMMO.destroy(e.joint.physicsJoint);\n }\n // adds all verticies (including child verticies) to the triangle mesh\n _addMeshVerts(e, t, i) {\n let s = 0;\n if (i && i.getIndices && i.getWorldMatrix && i.getChildMeshes) {\n let r = i.getIndices();\n r || (r = []);\n let n = i.getVerticesData(R.PositionKind);\n n || (n = []);\n let o;\n if (t && t !== i) {\n let h;\n t.rotationQuaternion ? h = t.rotationQuaternion : t.rotation ? h = se.FromEulerAngles(t.rotation.x, t.rotation.y, t.rotation.z) : h = se.Identity(), O.Compose(g.One(), h, t.position).invertToRef(this._tmpMatrix), o = i.computeWorldMatrix(!1).multiply(this._tmpMatrix);\n } else\n O.ScalingToRef(i.scaling.x, i.scaling.y, i.scaling.z, this._tmpMatrix), o = this._tmpMatrix;\n const l = r.length / 3;\n for (let h = 0; h < l; h++) {\n const c = [];\n for (let u = 0; u < 3; u++) {\n let d = new g(n[r[h * 3 + u] * 3 + 0], n[r[h * 3 + u] * 3 + 1], n[r[h * 3 + u] * 3 + 2]);\n d = g.TransformCoordinates(d, o);\n let f;\n u == 0 ? f = this._tmpAmmoVectorA : u == 1 ? f = this._tmpAmmoVectorB : f = this._tmpAmmoVectorC, f.setValue(d.x, d.y, d.z), c.push(f);\n }\n e.addTriangle(c[0], c[1], c[2]), s++;\n }\n i.getChildMeshes().forEach((h) => {\n s += this._addMeshVerts(e, t, h);\n });\n }\n return s;\n }\n /**\n * Initialise the soft body vertices to match its object's (mesh) vertices\n * Softbody vertices (nodes) are in world space and to match this\n * The object's position and rotation is set to zero and so its vertices are also then set in world space\n * @param impostor to create the softbody for\n * @returns the number of vertices added to the softbody\n */\n _softVertexData(e) {\n const t = e.object;\n if (t && t.getIndices && t.getWorldMatrix && t.getChildMeshes) {\n t.getIndices();\n let i = t.getVerticesData(R.PositionKind);\n i || (i = []);\n let s = t.getVerticesData(R.NormalKind);\n s || (s = []), t.computeWorldMatrix(!1);\n const r = [], n = [];\n for (let l = 0; l < i.length; l += 3) {\n let h = new g(i[l], i[l + 1], i[l + 2]), c = new g(s[l], s[l + 1], s[l + 2]);\n h = g.TransformCoordinates(h, t.getWorldMatrix()), c = g.TransformNormal(c, t.getWorldMatrix()), r.push(h.x, h.y, h.z), n.push(c.x, c.y, c.z);\n }\n const o = new ge();\n return o.positions = r, o.normals = n, o.uvs = t.getVerticesData(R.UVKind), o.colors = t.getVerticesData(R.ColorKind), t && t.getIndices && (o.indices = t.getIndices()), o.applyToMesh(t), t.position = g.Zero(), t.rotationQuaternion = null, t.rotation = g.Zero(), t.computeWorldMatrix(!0), o;\n }\n return ge.ExtractFromMesh(t);\n }\n /**\n * Create an impostor's soft body\n * @param impostor to create the softbody for\n * @returns the softbody\n */\n _createSoftbody(e) {\n const t = e.object;\n if (t && t.getIndices) {\n let i = t.getIndices();\n i || (i = []);\n const s = this._softVertexData(e), r = s.positions, n = s.normals;\n if (r === null || n === null)\n return new this.bjsAMMO.btCompoundShape();\n {\n const o = [], l = [];\n for (let p = 0; p < r.length; p += 3) {\n const _ = new g(r[p], r[p + 1], r[p + 2]), m = new g(n[p], n[p + 1], n[p + 2]);\n o.push(_.x, _.y, -_.z), l.push(m.x, m.y, -m.z);\n }\n const h = new this.bjsAMMO.btSoftBodyHelpers().CreateFromTriMesh(this.world.getWorldInfo(), o, t.getIndices(), i.length / 3, !0), c = r.length / 3, u = h.get_m_nodes();\n let d, f;\n for (let p = 0; p < c; p++)\n d = u.at(p), f = d.get_m_n(), f.setX(l[3 * p]), f.setY(l[3 * p + 1]), f.setZ(l[3 * p + 2]);\n return h;\n }\n }\n }\n /**\n * Create cloth for an impostor\n * @param impostor to create the softbody for\n * @returns the cloth\n */\n _createCloth(e) {\n const t = e.object;\n if (t && t.getIndices) {\n t.getIndices();\n const i = this._softVertexData(e), s = i.positions, r = i.normals;\n if (s === null || r === null)\n return new this.bjsAMMO.btCompoundShape();\n {\n const n = s.length, o = Math.sqrt(n / 3);\n e.segments = o;\n const l = o - 1;\n return this._tmpAmmoVectorA.setValue(s[0], s[1], s[2]), this._tmpAmmoVectorB.setValue(s[3 * l], s[3 * l + 1], s[3 * l + 2]), this._tmpAmmoVectorD.setValue(s[n - 3], s[n - 2], s[n - 1]), this._tmpAmmoVectorC.setValue(s[n - 3 - 3 * l], s[n - 2 - 3 * l], s[n - 1 - 3 * l]), new this.bjsAMMO.btSoftBodyHelpers().CreatePatch(this.world.getWorldInfo(), this._tmpAmmoVectorA, this._tmpAmmoVectorB, this._tmpAmmoVectorC, this._tmpAmmoVectorD, o, o, e.getParam(\"fixedPoints\"), !0);\n }\n }\n }\n /**\n * Create rope for an impostor\n * @param impostor to create the softbody for\n * @returns the rope\n */\n _createRope(e) {\n let t, i;\n const s = this._softVertexData(e), r = s.positions, n = s.normals;\n if (r === null || n === null)\n return new this.bjsAMMO.btCompoundShape();\n s.applyToMesh(e.object, !0), e._isFromLine = !0;\n const o = n.map((d) => d * d), l = (d, f) => d + f;\n if (o.reduce(l) === 0)\n t = r.length, i = t / 3 - 1, this._tmpAmmoVectorA.setValue(r[0], r[1], r[2]), this._tmpAmmoVectorB.setValue(r[t - 3], r[t - 2], r[t - 1]);\n else {\n e._isFromLine = !1;\n const d = e.getParam(\"path\");\n if (e.getParam(\"shape\") === null)\n return L.Warn(\"No shape available for extruded mesh\"), new this.bjsAMMO.btCompoundShape();\n t = d.length, i = t - 1, this._tmpAmmoVectorA.setValue(d[0].x, d[0].y, d[0].z), this._tmpAmmoVectorB.setValue(d[t - 1].x, d[t - 1].y, d[t - 1].z);\n }\n e.segments = i;\n let c = e.getParam(\"fixedPoints\");\n c = c > 3 ? 3 : c;\n const u = new this.bjsAMMO.btSoftBodyHelpers().CreateRope(this.world.getWorldInfo(), this._tmpAmmoVectorA, this._tmpAmmoVectorB, i - 1, c);\n return u.get_m_cfg().set_collisions(17), u;\n }\n /**\n * Create a custom physics impostor shape using the plugin's onCreateCustomShape handler\n * @param impostor to create the custom physics shape for\n * @returns the custom physics shape\n */\n _createCustom(e) {\n let t = null;\n return this.onCreateCustomShape && (t = this.onCreateCustomShape(e)), t == null && (t = new this.bjsAMMO.btCompoundShape()), t;\n }\n // adds all verticies (including child verticies) to the convex hull shape\n _addHullVerts(e, t, i) {\n let s = 0;\n if (i && i.getIndices && i.getWorldMatrix && i.getChildMeshes) {\n let r = i.getIndices();\n r || (r = []);\n let n = i.getVerticesData(R.PositionKind);\n n || (n = []), i.computeWorldMatrix(!1);\n const o = r.length / 3;\n for (let l = 0; l < o; l++) {\n const h = [];\n for (let c = 0; c < 3; c++) {\n let u = new g(n[r[l * 3 + c] * 3 + 0], n[r[l * 3 + c] * 3 + 1], n[r[l * 3 + c] * 3 + 2]);\n O.ScalingToRef(i.scaling.x, i.scaling.y, i.scaling.z, this._tmpMatrix), u = g.TransformCoordinates(u, this._tmpMatrix);\n let d;\n c == 0 ? d = this._tmpAmmoVectorA : c == 1 ? d = this._tmpAmmoVectorB : d = this._tmpAmmoVectorC, d.setValue(u.x, u.y, u.z), h.push(d);\n }\n e.addPoint(h[0], !0), e.addPoint(h[1], !0), e.addPoint(h[2], !0), s++;\n }\n i.getChildMeshes().forEach((l) => {\n s += this._addHullVerts(e, t, l);\n });\n }\n return s;\n }\n _createShape(e, t = !1) {\n const i = e.object;\n let s;\n const r = e.getObjectExtents();\n if (!t) {\n const n = e.object.getChildMeshes ? e.object.getChildMeshes(!0) : [];\n s = new this.bjsAMMO.btCompoundShape();\n let o = 0;\n if (n.forEach((l) => {\n const h = l.getPhysicsImpostor();\n if (h) {\n if (h.type == Ke.MeshImpostor)\n throw \"A child MeshImpostor is not supported. Only primitive impostors are supported as children (eg. box or sphere)\";\n const c = this._createShape(h), u = l.parent.getWorldMatrix().clone(), d = new g();\n u.decompose(d), this._tmpAmmoTransform.getOrigin().setValue(l.position.x * d.x, l.position.y * d.y, l.position.z * d.z), this._tmpAmmoQuaternion.setValue(l.rotationQuaternion.x, l.rotationQuaternion.y, l.rotationQuaternion.z, l.rotationQuaternion.w), this._tmpAmmoTransform.setRotation(this._tmpAmmoQuaternion), s.addChildShape(this._tmpAmmoTransform, c), h.dispose(), o++;\n }\n }), o > 0) {\n if (e.type != Ke.NoImpostor) {\n const l = this._createShape(e, !0);\n l && (this._tmpAmmoTransform.getOrigin().setValue(0, 0, 0), this._tmpAmmoQuaternion.setValue(0, 0, 0, 1), this._tmpAmmoTransform.setRotation(this._tmpAmmoQuaternion), s.addChildShape(this._tmpAmmoTransform, l));\n }\n return s;\n } else\n this.bjsAMMO.destroy(s), s = null;\n }\n switch (e.type) {\n case Ke.SphereImpostor:\n if (Re.WithinEpsilon(r.x, r.y, 1e-4) && Re.WithinEpsilon(r.x, r.z, 1e-4))\n s = new this.bjsAMMO.btSphereShape(r.x / 2);\n else {\n this._tmpAmmoVectorA.setValue(0, 0, 0);\n const n = [this._tmpAmmoVectorA], o = [1];\n s = new this.bjsAMMO.btMultiSphereShape(n, o, 1), this._tmpAmmoVectorA.setValue(r.x / 2, r.y / 2, r.z / 2), s.setLocalScaling(this._tmpAmmoVectorA);\n }\n break;\n case Ke.CapsuleImpostor:\n {\n const n = r.x / 2;\n s = new this.bjsAMMO.btCapsuleShape(n, r.y - n * 2);\n }\n break;\n case Ke.CylinderImpostor:\n this._tmpAmmoVectorA.setValue(r.x / 2, r.y / 2, r.z / 2), s = new this.bjsAMMO.btCylinderShape(this._tmpAmmoVectorA);\n break;\n case Ke.PlaneImpostor:\n case Ke.BoxImpostor:\n this._tmpAmmoVectorA.setValue(r.x / 2, r.y / 2, r.z / 2), s = new this.bjsAMMO.btBoxShape(this._tmpAmmoVectorA);\n break;\n case Ke.MeshImpostor:\n if (e.getParam(\"mass\") == 0) {\n if (this.onCreateCustomMeshImpostor)\n s = this.onCreateCustomMeshImpostor(e);\n else {\n const n = new this.bjsAMMO.btTriangleMesh();\n e._pluginData.toDispose.push(n), this._addMeshVerts(n, i, i) == 0 ? s = new this.bjsAMMO.btCompoundShape() : s = new this.bjsAMMO.btBvhTriangleMeshShape(n);\n }\n break;\n }\n case Ke.ConvexHullImpostor: {\n if (this.onCreateCustomConvexHullImpostor)\n s = this.onCreateCustomConvexHullImpostor(e);\n else {\n const n = new this.bjsAMMO.btConvexHullShape();\n this._addHullVerts(n, i, i) == 0 ? (e._pluginData.toDispose.push(n), s = new this.bjsAMMO.btCompoundShape()) : s = n;\n }\n break;\n }\n case Ke.NoImpostor:\n s = new this.bjsAMMO.btSphereShape(r.x / 2);\n break;\n case Ke.CustomImpostor:\n s = this._createCustom(e);\n break;\n case Ke.SoftbodyImpostor:\n s = this._createSoftbody(e);\n break;\n case Ke.ClothImpostor:\n s = this._createCloth(e);\n break;\n case Ke.RopeImpostor:\n s = this._createRope(e);\n break;\n default:\n L.Warn(\"The impostor type is not currently supported by the ammo plugin.\");\n break;\n }\n return s;\n }\n /**\n * Sets the mesh body position/rotation from the babylon impostor\n * @param impostor imposter containing the physics body and babylon object\n */\n setTransformationFromPhysicsBody(e) {\n e.physicsBody.getMotionState().getWorldTransform(this._tmpAmmoTransform), e.object.position.set(this._tmpAmmoTransform.getOrigin().x(), this._tmpAmmoTransform.getOrigin().y(), this._tmpAmmoTransform.getOrigin().z()), e.object.rotationQuaternion ? e.object.rotationQuaternion.set(this._tmpAmmoTransform.getRotation().x(), this._tmpAmmoTransform.getRotation().y(), this._tmpAmmoTransform.getRotation().z(), this._tmpAmmoTransform.getRotation().w()) : e.object.rotation && (this._tmpQuaternion.set(this._tmpAmmoTransform.getRotation().x(), this._tmpAmmoTransform.getRotation().y(), this._tmpAmmoTransform.getRotation().z(), this._tmpAmmoTransform.getRotation().w()), this._tmpQuaternion.toEulerAnglesToRef(e.object.rotation));\n }\n /**\n * Sets the babylon object's position/rotation from the physics body's position/rotation\n * @param impostor imposter containing the physics body and babylon object\n * @param newPosition new position\n * @param newRotation new rotation\n */\n setPhysicsBodyTransformation(e, t, i) {\n const s = e.physicsBody.getWorldTransform();\n if (Math.abs(s.getOrigin().x() - t.x) > tt || Math.abs(s.getOrigin().y() - t.y) > tt || Math.abs(s.getOrigin().z() - t.z) > tt || Math.abs(s.getRotation().x() - i.x) > tt || Math.abs(s.getRotation().y() - i.y) > tt || Math.abs(s.getRotation().z() - i.z) > tt || Math.abs(s.getRotation().w() - i.w) > tt)\n if (this._tmpAmmoVectorA.setValue(t.x, t.y, t.z), s.setOrigin(this._tmpAmmoVectorA), this._tmpAmmoQuaternion.setValue(i.x, i.y, i.z, i.w), s.setRotation(this._tmpAmmoQuaternion), e.physicsBody.setWorldTransform(s), e.mass == 0) {\n const r = e.physicsBody.getMotionState();\n r && r.setWorldTransform(s);\n } else\n e.physicsBody.activate();\n }\n /**\n * If this plugin is supported\n * @returns true if its supported\n */\n isSupported() {\n return this.bjsAMMO !== void 0;\n }\n /**\n * Sets the linear velocity of the physics body\n * @param impostor imposter to set the velocity on\n * @param velocity velocity to set\n */\n setLinearVelocity(e, t) {\n this._tmpAmmoVectorA.setValue(t.x, t.y, t.z), e.soft ? e.physicsBody.linearVelocity(this._tmpAmmoVectorA) : e.physicsBody.setLinearVelocity(this._tmpAmmoVectorA);\n }\n /**\n * Sets the angular velocity of the physics body\n * @param impostor imposter to set the velocity on\n * @param velocity velocity to set\n */\n setAngularVelocity(e, t) {\n this._tmpAmmoVectorA.setValue(t.x, t.y, t.z), e.soft ? e.physicsBody.angularVelocity(this._tmpAmmoVectorA) : e.physicsBody.setAngularVelocity(this._tmpAmmoVectorA);\n }\n /**\n * gets the linear velocity\n * @param impostor imposter to get linear velocity from\n * @returns linear velocity\n */\n getLinearVelocity(e) {\n let t;\n if (e.soft ? t = e.physicsBody.linearVelocity() : t = e.physicsBody.getLinearVelocity(), !t)\n return null;\n const i = new g(t.x(), t.y(), t.z());\n return this.bjsAMMO.destroy(t), i;\n }\n /**\n * gets the angular velocity\n * @param impostor imposter to get angular velocity from\n * @returns angular velocity\n */\n getAngularVelocity(e) {\n let t;\n if (e.soft ? t = e.physicsBody.angularVelocity() : t = e.physicsBody.getAngularVelocity(), !t)\n return null;\n const i = new g(t.x(), t.y(), t.z());\n return this.bjsAMMO.destroy(t), i;\n }\n /**\n * Sets the mass of physics body\n * @param impostor imposter to set the mass on\n * @param mass mass to set\n */\n setBodyMass(e, t) {\n e.soft ? e.physicsBody.setTotalMass(t, !1) : e.physicsBody.setMassProps(t), e._pluginData.mass = t;\n }\n /**\n * Gets the mass of the physics body\n * @param impostor imposter to get the mass from\n * @returns mass\n */\n getBodyMass(e) {\n return e._pluginData.mass || 0;\n }\n /**\n * Gets friction of the impostor\n * @param impostor impostor to get friction from\n * @returns friction value\n */\n getBodyFriction(e) {\n return e._pluginData.friction || 0;\n }\n /**\n * Sets friction of the impostor\n * @param impostor impostor to set friction on\n * @param friction friction value\n */\n setBodyFriction(e, t) {\n e.soft ? e.physicsBody.get_m_cfg().set_kDF(t) : e.physicsBody.setFriction(t), e._pluginData.friction = t;\n }\n /**\n * Gets restitution of the impostor\n * @param impostor impostor to get restitution from\n * @returns restitution value\n */\n getBodyRestitution(e) {\n return e._pluginData.restitution || 0;\n }\n /**\n * Sets restitution of the impostor\n * @param impostor impostor to set resitution on\n * @param restitution resitution value\n */\n setBodyRestitution(e, t) {\n e.physicsBody.setRestitution(t), e._pluginData.restitution = t;\n }\n /**\n * Gets pressure inside the impostor\n * @param impostor impostor to get pressure from\n * @returns pressure value\n */\n getBodyPressure(e) {\n return e.soft ? e._pluginData.pressure || 0 : (L.Warn(\"Pressure is not a property of a rigid body\"), 0);\n }\n /**\n * Sets pressure inside a soft body impostor\n * Cloth and rope must remain 0 pressure\n * @param impostor impostor to set pressure on\n * @param pressure pressure value\n */\n setBodyPressure(e, t) {\n e.soft ? e.type === Ke.SoftbodyImpostor ? (e.physicsBody.get_m_cfg().set_kPR(t), e._pluginData.pressure = t) : (e.physicsBody.get_m_cfg().set_kPR(0), e._pluginData.pressure = 0) : L.Warn(\"Pressure can only be applied to a softbody\");\n }\n /**\n * Gets stiffness of the impostor\n * @param impostor impostor to get stiffness from\n * @returns pressure value\n */\n getBodyStiffness(e) {\n return e.soft ? e._pluginData.stiffness || 0 : (L.Warn(\"Stiffness is not a property of a rigid body\"), 0);\n }\n /**\n * Sets stiffness of the impostor\n * @param impostor impostor to set stiffness on\n * @param stiffness stiffness value from 0 to 1\n */\n setBodyStiffness(e, t) {\n e.soft ? (t = t < 0 ? 0 : t, t = t > 1 ? 1 : t, e.physicsBody.get_m_materials().at(0).set_m_kLST(t), e._pluginData.stiffness = t) : L.Warn(\"Stiffness cannot be applied to a rigid body\");\n }\n /**\n * Gets velocityIterations of the impostor\n * @param impostor impostor to get velocity iterations from\n * @returns velocityIterations value\n */\n getBodyVelocityIterations(e) {\n return e.soft ? e._pluginData.velocityIterations || 0 : (L.Warn(\"Velocity iterations is not a property of a rigid body\"), 0);\n }\n /**\n * Sets velocityIterations of the impostor\n * @param impostor impostor to set velocity iterations on\n * @param velocityIterations velocityIterations value\n */\n setBodyVelocityIterations(e, t) {\n e.soft ? (t = t < 0 ? 0 : t, e.physicsBody.get_m_cfg().set_viterations(t), e._pluginData.velocityIterations = t) : L.Warn(\"Velocity iterations cannot be applied to a rigid body\");\n }\n /**\n * Gets positionIterations of the impostor\n * @param impostor impostor to get position iterations from\n * @returns positionIterations value\n */\n getBodyPositionIterations(e) {\n return e.soft ? e._pluginData.positionIterations || 0 : (L.Warn(\"Position iterations is not a property of a rigid body\"), 0);\n }\n /**\n * Sets positionIterations of the impostor\n * @param impostor impostor to set position on\n * @param positionIterations positionIterations value\n */\n setBodyPositionIterations(e, t) {\n e.soft ? (t = t < 0 ? 0 : t, e.physicsBody.get_m_cfg().set_piterations(t), e._pluginData.positionIterations = t) : L.Warn(\"Position iterations cannot be applied to a rigid body\");\n }\n /**\n * Append an anchor to a cloth object\n * @param impostor is the cloth impostor to add anchor to\n * @param otherImpostor is the rigid impostor to anchor to\n * @param width ratio across width from 0 to 1\n * @param height ratio up height from 0 to 1\n * @param influence the elasticity between cloth impostor and anchor from 0, very stretchy to 1, little stretch\n * @param noCollisionBetweenLinkedBodies when true collisions between soft impostor and anchor are ignored; default false\n */\n appendAnchor(e, t, i, s, r = 1, n = !1) {\n const o = e.segments, l = Math.round((o - 1) * i), h = Math.round((o - 1) * s), c = o - 1 - h, u = l + o * c;\n e.physicsBody.appendAnchor(u, t.physicsBody, n, r);\n }\n /**\n * Append an hook to a rope object\n * @param impostor is the rope impostor to add hook to\n * @param otherImpostor is the rigid impostor to hook to\n * @param length ratio along the rope from 0 to 1\n * @param influence the elasticity between soft impostor and anchor from 0, very stretchy to 1, little stretch\n * @param noCollisionBetweenLinkedBodies when true collisions between soft impostor and anchor are ignored; default false\n */\n appendHook(e, t, i, s = 1, r = !1) {\n const n = Math.round(e.segments * i);\n e.physicsBody.appendAnchor(n, t.physicsBody, r, s);\n }\n /**\n * Sleeps the physics body and stops it from being active\n * @param impostor impostor to sleep\n */\n sleepBody(e) {\n e.physicsBody.forceActivationState(0);\n }\n /**\n * Activates the physics body\n * @param impostor impostor to activate\n */\n wakeUpBody(e) {\n e.physicsBody.activate();\n }\n /**\n * Updates the distance parameters of the joint\n */\n updateDistanceJoint() {\n L.Warn(\"updateDistanceJoint is not currently supported by the Ammo physics plugin\");\n }\n /**\n * Sets a motor on the joint\n * @param joint joint to set motor on\n * @param speed speed of the motor\n * @param maxForce maximum force of the motor\n */\n setMotor(e, t, i) {\n e.physicsJoint.enableAngularMotor(!0, t, i);\n }\n /**\n * Sets the motors limit\n */\n setLimit() {\n L.Warn(\"setLimit is not currently supported by the Ammo physics plugin\");\n }\n /**\n * Syncs the position and rotation of a mesh with the impostor\n * @param mesh mesh to sync\n * @param impostor impostor to update the mesh with\n */\n syncMeshWithImpostor(e, t) {\n t.physicsBody.getMotionState().getWorldTransform(this._tmpAmmoTransform), e.position.x = this._tmpAmmoTransform.getOrigin().x(), e.position.y = this._tmpAmmoTransform.getOrigin().y(), e.position.z = this._tmpAmmoTransform.getOrigin().z(), e.rotationQuaternion && (e.rotationQuaternion.x = this._tmpAmmoTransform.getRotation().x(), e.rotationQuaternion.y = this._tmpAmmoTransform.getRotation().y(), e.rotationQuaternion.z = this._tmpAmmoTransform.getRotation().z(), e.rotationQuaternion.w = this._tmpAmmoTransform.getRotation().w());\n }\n /**\n * Gets the radius of the impostor\n * @param impostor impostor to get radius from\n * @returns the radius\n */\n getRadius(e) {\n return e.getObjectExtents().x / 2;\n }\n /**\n * Gets the box size of the impostor\n * @param impostor impostor to get box size from\n * @param result the resulting box size\n */\n getBoxSizeToRef(e, t) {\n const i = e.getObjectExtents();\n t.x = i.x, t.y = i.y, t.z = i.z;\n }\n /**\n * Disposes of the impostor\n */\n dispose() {\n this.bjsAMMO.destroy(this.world), this.bjsAMMO.destroy(this._softBodySolver), this.bjsAMMO.destroy(this._solver), this.bjsAMMO.destroy(this._overlappingPairCache), this.bjsAMMO.destroy(this._dispatcher), this.bjsAMMO.destroy(this._collisionConfiguration), this.bjsAMMO.destroy(this._tmpAmmoVectorA), this.bjsAMMO.destroy(this._tmpAmmoVectorB), this.bjsAMMO.destroy(this._tmpAmmoVectorC), this.bjsAMMO.destroy(this._tmpAmmoVectorD), this.bjsAMMO.destroy(this._tmpAmmoTransform), this.bjsAMMO.destroy(this._tmpAmmoQuaternion), this.bjsAMMO.destroy(this._tmpAmmoConcreteContactResultCallback), this.world = null;\n }\n /**\n * Does a raycast in the physics world\n * @param from where should the ray start?\n * @param to where should the ray end?\n * @returns PhysicsRaycastResult\n */\n raycast(e, t) {\n return this.raycastToRef(e, t, this._raycastResult), this._raycastResult;\n }\n /**\n * Does a raycast in the physics world\n * @param from when should the ray start?\n * @param to when should the ray end?\n * @param result resulting PhysicsRaycastResult\n */\n raycastToRef(e, t, i) {\n this._tmpAmmoVectorRCA = new this.bjsAMMO.btVector3(e.x, e.y, e.z), this._tmpAmmoVectorRCB = new this.bjsAMMO.btVector3(t.x, t.y, t.z);\n const s = new this.bjsAMMO.ClosestRayResultCallback(this._tmpAmmoVectorRCA, this._tmpAmmoVectorRCB);\n this.world.rayTest(this._tmpAmmoVectorRCA, this._tmpAmmoVectorRCB, s), i.reset(e, t), s.hasHit() && (i.setHitData({\n x: s.get_m_hitNormalWorld().x(),\n y: s.get_m_hitNormalWorld().y(),\n z: s.get_m_hitNormalWorld().z()\n }, {\n x: s.get_m_hitPointWorld().x(),\n y: s.get_m_hitPointWorld().y(),\n z: s.get_m_hitPointWorld().z()\n }), i.calculateHitDistance()), this.bjsAMMO.destroy(s), this.bjsAMMO.destroy(this._tmpAmmoVectorRCA), this.bjsAMMO.destroy(this._tmpAmmoVectorRCB);\n }\n}\nAa._DISABLE_COLLISION_FLAG = 4;\nAa._KINEMATIC_FLAG = 2;\nAa._DISABLE_DEACTIVATION_FLAG = 4;\nqi.prototype.removeReflectionProbe = function(a) {\n if (!this.reflectionProbes)\n return -1;\n const e = this.reflectionProbes.indexOf(a);\n return e !== -1 && this.reflectionProbes.splice(e, 1), e;\n};\nqi.prototype.addReflectionProbe = function(a) {\n this.reflectionProbes || (this.reflectionProbes = []), this.reflectionProbes.push(a);\n};\nclass Rf {\n /**\n * Creates a new reflection probe\n * @param name defines the name of the probe\n * @param size defines the texture resolution (for each face)\n * @param scene defines the hosting scene\n * @param generateMipMaps defines if mip maps should be generated automatically (true by default)\n * @param useFloat defines if HDR data (float data) should be used to store colors (false by default)\n * @param linearSpace defines if the probe should be generated in linear space or not (false by default)\n */\n constructor(e, t, i, s = !0, r = !1, n = !1) {\n if (this.name = e, this._viewMatrix = O.Identity(), this._target = g.Zero(), this._add = g.Zero(), this._invertYAxis = !1, this.position = g.Zero(), this.metadata = null, this._parentContainer = null, this._scene = i, i.getEngine().supportsUniformBuffers) {\n this._sceneUBOs = [];\n for (let c = 0; c < 6; ++c)\n this._sceneUBOs.push(i.createSceneUniformBuffer(`Scene for Reflection Probe (name \"${e}\") face #${c}`));\n }\n this._scene.reflectionProbes || (this._scene.reflectionProbes = []), this._scene.reflectionProbes.push(this);\n let o = 0;\n if (r) {\n const c = this._scene.getEngine().getCaps();\n c.textureHalfFloatRender ? o = 2 : c.textureFloatRender && (o = 1);\n }\n this._renderTargetTexture = new Ii(e, t, i, s, !0, o, !0), this._renderTargetTexture.gammaSpace = !n, this._renderTargetTexture.invertZ = i.useRightHandedSystem;\n const l = i.getEngine().useReverseDepthBuffer;\n this._renderTargetTexture.onBeforeRenderObservable.add((c) => {\n switch (this._sceneUBOs && (i.setSceneUniformBuffer(this._sceneUBOs[c]), i.getSceneUniformBuffer().unbindEffect()), c) {\n case 0:\n this._add.copyFromFloats(1, 0, 0);\n break;\n case 1:\n this._add.copyFromFloats(-1, 0, 0);\n break;\n case 2:\n this._add.copyFromFloats(0, this._invertYAxis ? 1 : -1, 0);\n break;\n case 3:\n this._add.copyFromFloats(0, this._invertYAxis ? -1 : 1, 0);\n break;\n case 4:\n this._add.copyFromFloats(0, 0, i.useRightHandedSystem ? -1 : 1);\n break;\n case 5:\n this._add.copyFromFloats(0, 0, i.useRightHandedSystem ? 1 : -1);\n break;\n }\n this._attachedMesh && this.position.copyFrom(this._attachedMesh.getAbsolutePosition()), this.position.addToRef(this._add, this._target);\n const u = i.useRightHandedSystem ? O.LookAtRHToRef : O.LookAtLHToRef, d = i.useRightHandedSystem ? O.PerspectiveFovRH : O.PerspectiveFovLH;\n u(this.position, this._target, g.Up(), this._viewMatrix), i.activeCamera && (this._projectionMatrix = d(Math.PI / 2, 1, l ? i.activeCamera.maxZ : i.activeCamera.minZ, l ? i.activeCamera.minZ : i.activeCamera.maxZ, this._scene.getEngine().isNDCHalfZRange), i.setTransformMatrix(this._viewMatrix, this._projectionMatrix), i.activeCamera.isRigCamera && !this._renderTargetTexture.activeCamera && (this._renderTargetTexture.activeCamera = i.activeCamera.rigParent || null)), i._forcedViewPosition = this.position;\n });\n let h;\n this._renderTargetTexture.onBeforeBindObservable.add(() => {\n var c, u;\n this._currentSceneUBO = i.getSceneUniformBuffer(), (u = (c = i.getEngine())._debugPushGroup) == null || u.call(c, `reflection probe generation for ${e}`, 1), h = this._scene.imageProcessingConfiguration.applyByPostProcess, n && (i.imageProcessingConfiguration.applyByPostProcess = !0);\n }), this._renderTargetTexture.onAfterUnbindObservable.add(() => {\n var c, u;\n i.imageProcessingConfiguration.applyByPostProcess = h, i._forcedViewPosition = null, this._sceneUBOs && i.setSceneUniformBuffer(this._currentSceneUBO), i.updateTransformMatrix(!0), (u = (c = i.getEngine())._debugPopGroup) == null || u.call(c, 1);\n });\n }\n /** Gets or sets the number of samples to use for multi-sampling (0 by default). Required WebGL2 */\n get samples() {\n return this._renderTargetTexture.samples;\n }\n set samples(e) {\n this._renderTargetTexture.samples = e;\n }\n /** Gets or sets the refresh rate to use (on every frame by default) */\n get refreshRate() {\n return this._renderTargetTexture.refreshRate;\n }\n set refreshRate(e) {\n this._renderTargetTexture.refreshRate = e;\n }\n /**\n * Gets the hosting scene\n * @returns a Scene\n */\n getScene() {\n return this._scene;\n }\n /** Gets the internal CubeTexture used to render to */\n get cubeTexture() {\n return this._renderTargetTexture;\n }\n /** Gets or sets the list of meshes to render */\n get renderList() {\n return this._renderTargetTexture.renderList;\n }\n set renderList(e) {\n this._renderTargetTexture.renderList = e;\n }\n /**\n * Attach the probe to a specific mesh (Rendering will be done from attached mesh's position)\n * @param mesh defines the mesh to attach to\n */\n attachToMesh(e) {\n this._attachedMesh = e;\n }\n /**\n * Specifies whether or not the stencil and depth buffer are cleared between two rendering groups\n * @param renderingGroupId The rendering group id corresponding to its index\n * @param autoClearDepthStencil Automatically clears depth and stencil between groups if true.\n */\n setRenderingAutoClearDepthStencil(e, t) {\n this._renderTargetTexture.setRenderingAutoClearDepthStencil(e, t);\n }\n /**\n * Clean all associated resources\n */\n dispose() {\n const e = this._scene.reflectionProbes.indexOf(this);\n if (e !== -1 && this._scene.reflectionProbes.splice(e, 1), this._parentContainer) {\n const t = this._parentContainer.reflectionProbes.indexOf(this);\n t > -1 && this._parentContainer.reflectionProbes.splice(t, 1), this._parentContainer = null;\n }\n if (this._renderTargetTexture && (this._renderTargetTexture.dispose(), this._renderTargetTexture = null), this._sceneUBOs) {\n for (const t of this._sceneUBOs)\n t.dispose();\n this._sceneUBOs = [];\n }\n }\n /**\n * Converts the reflection probe information to a readable string for debug purpose.\n * @param fullDetails Supports for multiple levels of logging within scene loading\n * @returns the human readable reflection probe info\n */\n toString(e) {\n let t = \"Name: \" + this.name;\n return e && (t += \", position: \" + this.position.toString(), this._attachedMesh && (t += \", attached mesh: \" + this._attachedMesh.name)), t;\n }\n /**\n * Get the class name of the refection probe.\n * @returns \"ReflectionProbe\"\n */\n getClassName() {\n return \"ReflectionProbe\";\n }\n /**\n * Serialize the reflection probe to a JSON representation we can easily use in the respective Parse function.\n * @returns The JSON representation of the texture\n */\n serialize() {\n const e = Ae.Serialize(this, this._renderTargetTexture.serialize());\n return e.isReflectionProbe = !0, e.metadata = this.metadata, e;\n }\n /**\n * Parse the JSON representation of a reflection probe in order to recreate the reflection probe in the given scene.\n * @param parsedReflectionProbe Define the JSON representation of the reflection probe\n * @param scene Define the scene the parsed reflection probe should be instantiated in\n * @param rootUrl Define the root url of the parsing sequence in the case of relative dependencies\n * @returns The parsed reflection probe if successful\n */\n static Parse(e, t, i) {\n let s = null;\n if (t.reflectionProbes)\n for (let r = 0; r < t.reflectionProbes.length; r++) {\n const n = t.reflectionProbes[r];\n if (n.name === e.name) {\n s = n;\n break;\n }\n }\n return s = Ae.Parse(() => s || new Rf(e.name, e.renderTargetSize, t, e._generateMipMaps), e, t, i), s.cubeTexture._waitingRenderList = e.renderList, e._attachedMesh && s.attachToMesh(t.getMeshById(e._attachedMesh)), e.metadata && (s.metadata = e.metadata), s;\n }\n}\ny([\n af()\n], Rf.prototype, \"_attachedMesh\", void 0);\ny([\n Zs()\n], Rf.prototype, \"position\", void 0);\nclass j3 {\n /**\n * Returns a boolean indicating if the animation is started\n */\n get animationStarted() {\n return this._animationStarted;\n }\n /** Gets the initial key for the animation (setting it will restart the animation) */\n get fromIndex() {\n return this._fromIndex;\n }\n /** Gets or sets the end key for the animation (setting it will restart the animation) */\n get toIndex() {\n return this._toIndex;\n }\n /** Gets or sets a boolean indicating if the animation is looping (setting it will restart the animation) */\n get loopAnimation() {\n return this._loopAnimation;\n }\n /** Gets or sets the delay between cell changes (setting it will restart the animation) */\n get delay() {\n return Math.max(this._delay, 1);\n }\n /**\n * Creates a new Thin Sprite\n */\n constructor() {\n this.width = 1, this.height = 1, this.angle = 0, this.invertU = !1, this.invertV = !1, this.isVisible = !0, this._animationStarted = !1, this._loopAnimation = !1, this._fromIndex = 0, this._toIndex = 0, this._delay = 0, this._direction = 1, this._time = 0, this._onBaseAnimationEnd = null, this.position = { x: 1, y: 1, z: 1 }, this.color = { r: 1, g: 1, b: 1, a: 1 };\n }\n /**\n * Starts an animation\n * @param from defines the initial key\n * @param to defines the end key\n * @param loop defines if the animation must loop\n * @param delay defines the start delay (in ms)\n * @param onAnimationEnd defines a callback for when the animation ends\n */\n playAnimation(e, t, i, s, r) {\n this._fromIndex = e, this._toIndex = t, this._loopAnimation = i, this._delay = s || 1, this._animationStarted = !0, this._onBaseAnimationEnd = r, e < t ? this._direction = 1 : (this._direction = -1, this._toIndex = e, this._fromIndex = t), this.cellIndex = e, this._time = 0;\n }\n /** Stops current animation (if any) */\n stopAnimation() {\n this._animationStarted = !1;\n }\n /**\n * @internal\n */\n _animate(e) {\n this._animationStarted && (this._time += e, this._time > this._delay && (this._time = this._time % this._delay, this.cellIndex += this._direction, (this._direction > 0 && this.cellIndex > this._toIndex || this._direction < 0 && this.cellIndex < this._fromIndex) && (this._loopAnimation ? this.cellIndex = this._direction > 0 ? this._fromIndex : this._toIndex : (this.cellIndex = this._toIndex, this._animationStarted = !1, this._onBaseAnimationEnd && this._onBaseAnimationEnd()))));\n }\n}\nclass Mv extends j3 {\n /**\n * Gets or sets the sprite size\n */\n get size() {\n return this.width;\n }\n set size(e) {\n this.width = e, this.height = e;\n }\n /**\n * Gets the manager of this sprite\n */\n get manager() {\n return this._manager;\n }\n /**\n * Creates a new Sprite\n * @param name defines the name\n * @param manager defines the manager\n */\n constructor(e, t) {\n super(), this.name = e, this.animations = new Array(), this.isPickable = !1, this.useAlphaForPicking = !1, this.onDisposeObservable = new G(), this._onAnimationEnd = null, this._endAnimation = () => {\n this._onAnimationEnd && this._onAnimationEnd(), this.disposeWhenFinishedAnimating && this.dispose();\n }, this.color = new Ce(1, 1, 1, 1), this.position = g.Zero(), this._manager = t, this._manager.sprites.push(this), this.uniqueId = this._manager.scene.getUniqueId();\n }\n /**\n * Returns the string \"Sprite\"\n * @returns \"Sprite\"\n */\n getClassName() {\n return \"Sprite\";\n }\n /** Gets or sets the initial key for the animation (setting it will restart the animation) */\n get fromIndex() {\n return this._fromIndex;\n }\n set fromIndex(e) {\n this.playAnimation(e, this._toIndex, this._loopAnimation, this._delay, this._onAnimationEnd);\n }\n /** Gets or sets the end key for the animation (setting it will restart the animation) */\n get toIndex() {\n return this._toIndex;\n }\n set toIndex(e) {\n this.playAnimation(this._fromIndex, e, this._loopAnimation, this._delay, this._onAnimationEnd);\n }\n /** Gets or sets a boolean indicating if the animation is looping (setting it will restart the animation) */\n get loopAnimation() {\n return this._loopAnimation;\n }\n set loopAnimation(e) {\n this.playAnimation(this._fromIndex, this._toIndex, e, this._delay, this._onAnimationEnd);\n }\n /** Gets or sets the delay between cell changes (setting it will restart the animation) */\n get delay() {\n return Math.max(this._delay, 1);\n }\n set delay(e) {\n this.playAnimation(this._fromIndex, this._toIndex, this._loopAnimation, e, this._onAnimationEnd);\n }\n /**\n * Starts an animation\n * @param from defines the initial key\n * @param to defines the end key\n * @param loop defines if the animation must loop\n * @param delay defines the start delay (in ms)\n * @param onAnimationEnd defines a callback to call when animation ends\n */\n playAnimation(e, t, i, s, r = null) {\n this._onAnimationEnd = r, super.playAnimation(e, t, i, s, this._endAnimation);\n }\n /** Release associated resources */\n dispose() {\n for (let e = 0; e < this._manager.sprites.length; e++)\n this._manager.sprites[e] == this && this._manager.sprites.splice(e, 1);\n this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear();\n }\n /**\n * Serializes the sprite to a JSON object\n * @returns the JSON object\n */\n serialize() {\n const e = {};\n return e.name = this.name, e.position = this.position.asArray(), e.color = this.color.asArray(), e.width = this.width, e.height = this.height, e.angle = this.angle, e.cellIndex = this.cellIndex, e.cellRef = this.cellRef, e.invertU = this.invertU, e.invertV = this.invertV, e.disposeWhenFinishedAnimating = this.disposeWhenFinishedAnimating, e.isPickable = this.isPickable, e.isVisible = this.isVisible, e.useAlphaForPicking = this.useAlphaForPicking, e.animationStarted = this.animationStarted, e.fromIndex = this.fromIndex, e.toIndex = this.toIndex, e.loopAnimation = this.loopAnimation, e.delay = this.delay, e;\n }\n /**\n * Parses a JSON object to create a new sprite\n * @param parsedSprite The JSON object to parse\n * @param manager defines the hosting manager\n * @returns the new sprite\n */\n static Parse(e, t) {\n const i = new Mv(e.name, t);\n return i.position = g.FromArray(e.position), i.color = Ce.FromArray(e.color), i.width = e.width, i.height = e.height, i.angle = e.angle, i.cellIndex = e.cellIndex, i.cellRef = e.cellRef, i.invertU = e.invertU, i.invertV = e.invertV, i.disposeWhenFinishedAnimating = e.disposeWhenFinishedAnimating, i.isPickable = e.isPickable, i.isVisible = e.isVisible, i.useAlphaForPicking = e.useAlphaForPicking, i._fromIndex = e.fromIndex, i._toIndex = e.toIndex, i._loopAnimation = e.loopAnimation, i._delay = e.delay, e.animationStarted && i.playAnimation(i.fromIndex, i.toIndex, i.loopAnimation, i.delay), i;\n }\n}\nDe.prototype._internalPickSprites = function(a, e, t, i) {\n if (!Cs)\n return null;\n let s = null;\n if (!i) {\n if (!this.activeCamera)\n return null;\n i = this.activeCamera;\n }\n if (this.spriteManagers && this.spriteManagers.length > 0)\n for (let r = 0; r < this.spriteManagers.length; r++) {\n const n = this.spriteManagers[r];\n if (!n.isPickable)\n continue;\n const o = n.intersects(a, i, e, t);\n if (!(!o || !o.hit) && !(!t && s != null && o.distance >= s.distance) && (s = o, t))\n break;\n }\n return s || new Cs();\n};\nDe.prototype._internalMultiPickSprites = function(a, e, t) {\n if (!Cs)\n return null;\n let i = [];\n if (!t) {\n if (!this.activeCamera)\n return null;\n t = this.activeCamera;\n }\n if (this.spriteManagers && this.spriteManagers.length > 0)\n for (let s = 0; s < this.spriteManagers.length; s++) {\n const r = this.spriteManagers[s];\n if (!r.isPickable)\n continue;\n const n = r.multiIntersects(a, t, e);\n n !== null && (i = i.concat(n));\n }\n return i;\n};\nDe.prototype.pickSprite = function(a, e, t, i, s) {\n if (!this._tempSpritePickingRay)\n return null;\n this.createPickingRayInCameraSpaceToRef(a, e, this._tempSpritePickingRay, s);\n const r = this._internalPickSprites(this._tempSpritePickingRay, t, i, s);\n return r && (r.ray = this.createPickingRayInCameraSpace(a, e, s)), r;\n};\nDe.prototype.pickSpriteWithRay = function(a, e, t, i) {\n if (!this._tempSpritePickingRay)\n return null;\n if (!i) {\n if (!this.activeCamera)\n return null;\n i = this.activeCamera;\n }\n nt.TransformToRef(a, i.getViewMatrix(), this._tempSpritePickingRay);\n const s = this._internalPickSprites(this._tempSpritePickingRay, e, t, i);\n return s && (s.ray = a), s;\n};\nDe.prototype.multiPickSprite = function(a, e, t, i) {\n return this.createPickingRayInCameraSpaceToRef(a, e, this._tempSpritePickingRay, i), this._internalMultiPickSprites(this._tempSpritePickingRay, t, i);\n};\nDe.prototype.multiPickSpriteWithRay = function(a, e, t) {\n if (!this._tempSpritePickingRay)\n return null;\n if (!t) {\n if (!this.activeCamera)\n return null;\n t = this.activeCamera;\n }\n return nt.TransformToRef(a, t.getViewMatrix(), this._tempSpritePickingRay), this._internalMultiPickSprites(this._tempSpritePickingRay, e, t);\n};\nDe.prototype.setPointerOverSprite = function(a) {\n this._pointerOverSprite !== a && (this._pointerOverSprite && this._pointerOverSprite.actionManager && this._pointerOverSprite.actionManager.processTrigger(10, Mi.CreateNewFromSprite(this._pointerOverSprite, this)), this._pointerOverSprite = a, this._pointerOverSprite && this._pointerOverSprite.actionManager && this._pointerOverSprite.actionManager.processTrigger(9, Mi.CreateNewFromSprite(this._pointerOverSprite, this)));\n};\nDe.prototype.getPointerOverSprite = function() {\n return this._pointerOverSprite;\n};\nclass K3 {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_SPRITE, this.scene = e, this.scene.spriteManagers = [], this.scene._tempSpritePickingRay = nt ? nt.Zero() : null, this.scene.onBeforeSpritesRenderingObservable = new G(), this.scene.onAfterSpritesRenderingObservable = new G(), this._spritePredicate = (t) => t.actionManager ? t.isPickable && t.actionManager.hasPointerTriggers : !1;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._pointerMoveStage.registerStep(me.STEP_POINTERMOVE_SPRITE, this, this._pointerMove), this.scene._pointerDownStage.registerStep(me.STEP_POINTERDOWN_SPRITE, this, this._pointerDown), this.scene._pointerUpStage.registerStep(me.STEP_POINTERUP_SPRITE, this, this._pointerUp);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n }\n /**\n * Disposes the component and the associated resources.\n */\n dispose() {\n this.scene.onBeforeSpritesRenderingObservable.clear(), this.scene.onAfterSpritesRenderingObservable.clear();\n const e = this.scene.spriteManagers;\n if (e)\n for (; e.length; )\n e[0].dispose();\n }\n _pickSpriteButKeepRay(e, t, i, s, r) {\n const n = this.scene.pickSprite(t, i, this._spritePredicate, s, r);\n return n && (n.ray = e ? e.ray : null), n;\n }\n _pointerMove(e, t, i, s, r) {\n const n = this.scene;\n return s ? n.setPointerOverSprite(null) : (i = this._pickSpriteButKeepRay(i, e, t, !1, n.cameraToUseForPointers || void 0), i && i.hit && i.pickedSprite ? (n.setPointerOverSprite(i.pickedSprite), !n.doNotHandleCursors && r && (n._pointerOverSprite && n._pointerOverSprite.actionManager && n._pointerOverSprite.actionManager.hoverCursor ? r.style.cursor = n._pointerOverSprite.actionManager.hoverCursor : r.style.cursor = n.hoverCursor)) : n.setPointerOverSprite(null)), i;\n }\n _pointerDown(e, t, i, s) {\n const r = this.scene;\n if (r._pickedDownSprite = null, r.spriteManagers && r.spriteManagers.length > 0 && (i = r.pickSprite(e, t, this._spritePredicate, !1, r.cameraToUseForPointers || void 0), i && i.hit && i.pickedSprite && i.pickedSprite.actionManager)) {\n switch (r._pickedDownSprite = i.pickedSprite, s.button) {\n case 0:\n i.pickedSprite.actionManager.processTrigger(2, Mi.CreateNewFromSprite(i.pickedSprite, r, s));\n break;\n case 1:\n i.pickedSprite.actionManager.processTrigger(4, Mi.CreateNewFromSprite(i.pickedSprite, r, s));\n break;\n case 2:\n i.pickedSprite.actionManager.processTrigger(3, Mi.CreateNewFromSprite(i.pickedSprite, r, s));\n break;\n }\n i.pickedSprite.actionManager && i.pickedSprite.actionManager.processTrigger(5, Mi.CreateNewFromSprite(i.pickedSprite, r, s));\n }\n return i;\n }\n _pointerUp(e, t, i, s, r) {\n const n = this.scene;\n if (n.spriteManagers && n.spriteManagers.length > 0) {\n const o = n.pickSprite(e, t, this._spritePredicate, !1, n.cameraToUseForPointers || void 0);\n o && (o.hit && o.pickedSprite && o.pickedSprite.actionManager && (o.pickedSprite.actionManager.processTrigger(7, Mi.CreateNewFromSprite(o.pickedSprite, n, s)), o.pickedSprite.actionManager && (this.scene._inputManager._isPointerSwiping() || o.pickedSprite.actionManager.processTrigger(1, Mi.CreateNewFromSprite(o.pickedSprite, n, s)), r && o.pickedSprite.actionManager.processTrigger(6, Mi.CreateNewFromSprite(o.pickedSprite, n, s)))), n._pickedDownSprite && n._pickedDownSprite.actionManager && n._pickedDownSprite !== o.pickedSprite && n._pickedDownSprite.actionManager.processTrigger(16, Mi.CreateNewFromSprite(n._pickedDownSprite, n, s)));\n }\n return i;\n }\n}\nconst q3 = \"imageProcessingCompatibility\", Q3 = `#ifdef IMAGEPROCESSINGPOSTPROCESS\ngl_FragColor.rgb=pow(gl_FragColor.rgb,vec3(2.2));\n#endif\n`;\nz.IncludesShadersStore[q3] = Q3;\nconst Z3 = \"spritesPixelShader\", J3 = `#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\nuniform bool alphaTest;varying vec4 vColor;varying vec2 vUV;uniform sampler2D diffuseSampler;\n#include\n#include\n#define CUSTOM_FRAGMENT_DEFINITIONS\n#ifdef PIXEL_PERFECT\nvec2 uvPixelPerfect(vec2 uv) {vec2 res=vec2(textureSize(diffuseSampler,0));uv=uv*res;vec2 seam=floor(uv+0.5);uv=seam+clamp((uv-seam)/fwidth(uv),-0.5,0.5);return uv/res;}\n#endif\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#ifdef PIXEL_PERFECT\nvec2 uv=uvPixelPerfect(vUV);\n#else\nvec2 uv=vUV;\n#endif\nvec4 color=texture2D(diffuseSampler,uv);float fAlphaTest=float(alphaTest);if (fAlphaTest != 0.)\n{if (color.a<0.95)\ndiscard;}\ncolor*=vColor;\n#include\n#include\ngl_FragColor=color;\n#include\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\nz.ShadersStore[Z3] = J3;\nconst eU = \"spritesVertexShader\", tU = `attribute vec4 position;attribute vec2 options;attribute vec2 offsets;attribute vec2 inverts;attribute vec4 cellInfo;attribute vec4 color;uniform mat4 view;uniform mat4 projection;varying vec2 vUV;varying vec4 vColor;\n#include\n#include\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvec3 viewPos=(view*vec4(position.xyz,1.0)).xyz; \nvec2 cornerPos;float angle=position.w;vec2 size=vec2(options.x,options.y);vec2 offset=offsets.xy;cornerPos=vec2(offset.x-0.5,offset.y -0.5)*size;vec3 rotatedCorner;rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.z=0.;viewPos+=rotatedCorner;gl_Position=projection*vec4(viewPos,1.0); \nvColor=color;vec2 uvOffset=vec2(abs(offset.x-inverts.x),abs(1.0-offset.y-inverts.y));vec2 uvPlace=cellInfo.xy;vec2 uvSize=cellInfo.zw;vUV.x=uvPlace.x+uvSize.x*uvOffset.x;vUV.y=uvPlace.y+uvSize.y*uvOffset.y;\n#ifdef FOG\nvFogDistance=viewPos;\n#endif\n#include\n#define CUSTOM_VERTEX_MAIN_END\n}`;\nz.ShadersStore[eU] = tU;\nclass iU {\n /**\n * Gets or sets a boolean indicating if the manager must consider scene fog when rendering\n */\n get fogEnabled() {\n return this._fogEnabled;\n }\n set fogEnabled(e) {\n this._fogEnabled !== e && (this._fogEnabled = e, this._createEffects());\n }\n /**\n * In case the depth buffer does not allow enough depth precision for your scene (might be the case in large scenes)\n * You can try switching to logarithmic depth.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/advanced/logarithmicDepthBuffer\n */\n get useLogarithmicDepth() {\n return this._useLogarithmicDepth;\n }\n set useLogarithmicDepth(e) {\n var i;\n const t = !!((i = this._scene) != null && i.getEngine().getCaps().fragmentDepthSupported);\n e && !t && L.Warn(\"Logarithmic depth has been requested for a sprite renderer on a device that doesn't support it.\"), this._useLogarithmicDepth = e && t, this._createEffects();\n }\n /**\n * Gets the capacity of the manager\n */\n get capacity() {\n return this._capacity;\n }\n /**\n * Gets or sets a boolean indicating if the renderer must render sprites with pixel perfect rendering\n * Note that pixel perfect mode is not supported in WebGL 1\n */\n get pixelPerfect() {\n return this._pixelPerfect;\n }\n set pixelPerfect(e) {\n this._pixelPerfect !== e && (this._pixelPerfect = e, this._createEffects());\n }\n /**\n * Creates a new sprite Renderer\n * @param engine defines the engine the renderer works with\n * @param capacity defines the maximum allowed number of sprites\n * @param epsilon defines the epsilon value to align texture (0.01 by default)\n * @param scene defines the hosting scene\n */\n constructor(e, t, i = 0.01, s = null) {\n this.blendMode = 2, this.autoResetAlpha = !0, this.disableDepthWrite = !1, this._fogEnabled = !0, this._pixelPerfect = !1, this._useVAO = !1, this._useInstancing = !1, this._vertexBuffers = {}, this._capacity = t, this._epsilon = i, this._engine = e, this._useInstancing = e.getCaps().instancedArrays && e._features.supportSpriteInstancing, this._useVAO = e.getCaps().vertexArrayObject && !e.disableVertexArrayObjects, this._scene = s, this._useInstancing || this._buildIndexBuffer(), this._vertexBufferSize = this._useInstancing ? 16 : 18, this._vertexData = new Float32Array(t * this._vertexBufferSize * (this._useInstancing ? 1 : 4)), this._buffer = new ys(e, this._vertexData, !0, this._vertexBufferSize);\n const r = this._buffer.createVertexBuffer(R.PositionKind, 0, 4, this._vertexBufferSize, this._useInstancing), n = this._buffer.createVertexBuffer(\"options\", 4, 2, this._vertexBufferSize, this._useInstancing);\n let o = 6, l;\n if (this._useInstancing) {\n const d = new Float32Array([0, 0, 1, 0, 0, 1, 1, 1]);\n this._spriteBuffer = new ys(e, d, !1, 2), l = this._spriteBuffer.createVertexBuffer(\"offsets\", 0, 2);\n } else\n l = this._buffer.createVertexBuffer(\"offsets\", o, 2, this._vertexBufferSize, this._useInstancing), o += 2;\n const h = this._buffer.createVertexBuffer(\"inverts\", o, 2, this._vertexBufferSize, this._useInstancing), c = this._buffer.createVertexBuffer(\"cellInfo\", o + 2, 4, this._vertexBufferSize, this._useInstancing), u = this._buffer.createVertexBuffer(R.ColorKind, o + 6, 4, this._vertexBufferSize, this._useInstancing);\n this._vertexBuffers[R.PositionKind] = r, this._vertexBuffers.options = n, this._vertexBuffers.offsets = l, this._vertexBuffers.inverts = h, this._vertexBuffers.cellInfo = c, this._vertexBuffers[R.ColorKind] = u, this._createEffects();\n }\n _createEffects() {\n var t, i;\n (t = this._drawWrapperBase) == null || t.dispose(), (i = this._drawWrapperDepth) == null || i.dispose(), this._drawWrapperBase = new Ds(this._engine), this._drawWrapperDepth = new Ds(this._engine, !1), this._drawWrapperBase.drawContext && (this._drawWrapperBase.drawContext.useInstancing = this._useInstancing), this._drawWrapperDepth.drawContext && (this._drawWrapperDepth.drawContext.useInstancing = this._useInstancing);\n let e = \"\";\n this._pixelPerfect && (e += `#define PIXEL_PERFECT\n`), this._scene && this._scene.fogEnabled && this._scene.fogMode !== 0 && this._fogEnabled && (e += `#define FOG\n`), this._useLogarithmicDepth && (e += `#define LOGARITHMICDEPTH\n`), this._drawWrapperBase.effect = this._engine.createEffect(\"sprites\", [R.PositionKind, \"options\", \"offsets\", \"inverts\", \"cellInfo\", R.ColorKind], [\"view\", \"projection\", \"textureInfos\", \"alphaTest\", \"vFogInfos\", \"vFogColor\", \"logarithmicDepthConstant\"], [\"diffuseSampler\"], e), this._drawWrapperDepth.effect = this._drawWrapperBase.effect, this._drawWrapperDepth.materialContext = this._drawWrapperBase.materialContext;\n }\n /**\n * Render all child sprites\n * @param sprites defines the list of sprites to render\n * @param deltaTime defines the time since last frame\n * @param viewMatrix defines the viewMatrix to use to render the sprites\n * @param projectionMatrix defines the projectionMatrix to use to render the sprites\n * @param customSpriteUpdate defines a custom function to update the sprites data before they render\n */\n render(e, t, i, s, r = null) {\n if (!this.texture || !this.texture.isReady() || !e.length)\n return;\n const n = this._drawWrapperBase, o = this._drawWrapperDepth, l = this.fogEnabled && this._scene && this._scene.fogEnabled && this._scene.fogMode !== 0, h = n.effect;\n if (!h.isReady())\n return;\n const c = this._engine, u = !!(this._scene && this._scene.useRightHandedSystem), d = this.texture.getBaseSize(), f = Math.min(this._capacity, e.length);\n let p = 0, _ = !0;\n for (let T = 0; T < f; T++) {\n const E = e[T];\n !E || !E.isVisible || (_ = !1, E._animate(t), this._appendSpriteVertex(p++, E, 0, 0, d, u, r), this._useInstancing || (this._appendSpriteVertex(p++, E, 1, 0, d, u, r), this._appendSpriteVertex(p++, E, 1, 1, d, u, r), this._appendSpriteVertex(p++, E, 0, 1, d, u, r)));\n }\n if (_)\n return;\n this._buffer.update(this._vertexData);\n const m = !!c.depthCullingState.cull, x = c.depthCullingState.zOffset, v = c.depthCullingState.zOffsetUnits;\n if (c.setState(m, x, !1, !1, void 0, void 0, v), c.enableEffect(n), h.setTexture(\"diffuseSampler\", this.texture), h.setMatrix(\"view\", i), h.setMatrix(\"projection\", s), l) {\n const T = this._scene;\n h.setFloat4(\"vFogInfos\", T.fogMode, T.fogStart, T.fogEnd, T.fogDensity), h.setColor3(\"vFogColor\", T.fogColor);\n }\n this.useLogarithmicDepth && this._scene && Oa(n.defines, h, this._scene), this._useVAO ? (this._vertexArrayObject || (this._vertexArrayObject = c.recordVertexArrayObject(this._vertexBuffers, this._indexBuffer, h)), c.bindVertexArrayObject(this._vertexArrayObject, this._indexBuffer)) : c.bindBuffers(this._vertexBuffers, this._indexBuffer, h), c.depthCullingState.depthFunc = c.useReverseDepthBuffer ? 518 : 515, this.disableDepthWrite || (h.setBool(\"alphaTest\", !0), c.setColorWrite(!1), c.enableEffect(o), this._useInstancing ? c.drawArraysType(7, 0, 4, p) : c.drawElementsType(0, 0, p / 4 * 6), c.enableEffect(n), c.setColorWrite(!0), h.setBool(\"alphaTest\", !1)), c.setAlphaMode(this.blendMode), this._useInstancing ? c.drawArraysType(7, 0, 4, p) : c.drawElementsType(0, 0, p / 4 * 6), this.autoResetAlpha && c.setAlphaMode(0), u && this._scene.getEngine().setState(m, x, !1, !0, void 0, void 0, v), c.unbindInstanceAttributes();\n }\n _appendSpriteVertex(e, t, i, s, r, n, o) {\n let l = e * this._vertexBufferSize;\n if (i === 0 ? i = this._epsilon : i === 1 && (i = 1 - this._epsilon), s === 0 ? s = this._epsilon : s === 1 && (s = 1 - this._epsilon), o)\n o(t, r);\n else {\n t.cellIndex || (t.cellIndex = 0);\n const h = r.width / this.cellWidth, c = t.cellIndex / h >> 0;\n t._xOffset = (t.cellIndex - c * h) * this.cellWidth / r.width, t._yOffset = c * this.cellHeight / r.height, t._xSize = this.cellWidth, t._ySize = this.cellHeight;\n }\n this._vertexData[l] = t.position.x, this._vertexData[l + 1] = t.position.y, this._vertexData[l + 2] = t.position.z, this._vertexData[l + 3] = t.angle, this._vertexData[l + 4] = t.width, this._vertexData[l + 5] = t.height, this._useInstancing ? l -= 2 : (this._vertexData[l + 6] = i, this._vertexData[l + 7] = s), n ? this._vertexData[l + 8] = t.invertU ? 0 : 1 : this._vertexData[l + 8] = t.invertU ? 1 : 0, this._vertexData[l + 9] = t.invertV ? 1 : 0, this._vertexData[l + 10] = t._xOffset, this._vertexData[l + 11] = t._yOffset, this._vertexData[l + 12] = t._xSize / r.width, this._vertexData[l + 13] = t._ySize / r.height, this._vertexData[l + 14] = t.color.r, this._vertexData[l + 15] = t.color.g, this._vertexData[l + 16] = t.color.b, this._vertexData[l + 17] = t.color.a;\n }\n _buildIndexBuffer() {\n const e = [];\n let t = 0;\n for (let i = 0; i < this._capacity; i++)\n e.push(t), e.push(t + 1), e.push(t + 2), e.push(t), e.push(t + 2), e.push(t + 3), t += 4;\n this._indexBuffer = this._engine.createIndexBuffer(e);\n }\n /**\n * Rebuilds the renderer (after a context lost, for eg)\n */\n rebuild() {\n var e;\n this._indexBuffer && this._buildIndexBuffer(), this._useVAO && (this._vertexArrayObject = void 0), this._buffer._rebuild();\n for (const t in this._vertexBuffers)\n this._vertexBuffers[t]._rebuild();\n (e = this._spriteBuffer) == null || e._rebuild();\n }\n /**\n * Release associated resources\n */\n dispose() {\n this._buffer && (this._buffer.dispose(), this._buffer = null), this._spriteBuffer && (this._spriteBuffer.dispose(), this._spriteBuffer = null), this._indexBuffer && (this._engine._releaseBuffer(this._indexBuffer), this._indexBuffer = null), this._vertexArrayObject && (this._engine.releaseVertexArrayObject(this._vertexArrayObject), this._vertexArrayObject = null), this.texture && (this.texture.dispose(), this.texture = null), this._drawWrapperBase.dispose(), this._drawWrapperDepth.dispose();\n }\n}\nclass Ja {\n /**\n * Callback called when the manager is disposed\n */\n set onDispose(e) {\n this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), this._onDisposeObserver = this.onDisposeObservable.add(e);\n }\n /**\n * Gets the array of sprites\n */\n get children() {\n return this.sprites;\n }\n /**\n * Gets the hosting scene\n */\n get scene() {\n return this._scene;\n }\n /**\n * Gets the capacity of the manager\n */\n get capacity() {\n return this._spriteRenderer.capacity;\n }\n /**\n * Gets or sets the spritesheet texture\n */\n get texture() {\n return this._spriteRenderer.texture;\n }\n set texture(e) {\n e.wrapU = X.CLAMP_ADDRESSMODE, e.wrapV = X.CLAMP_ADDRESSMODE, this._spriteRenderer.texture = e, this._textureContent = null;\n }\n /** Defines the default width of a cell in the spritesheet */\n get cellWidth() {\n return this._spriteRenderer.cellWidth;\n }\n set cellWidth(e) {\n this._spriteRenderer.cellWidth = e;\n }\n /** Defines the default height of a cell in the spritesheet */\n get cellHeight() {\n return this._spriteRenderer.cellHeight;\n }\n set cellHeight(e) {\n this._spriteRenderer.cellHeight = e;\n }\n /** Gets or sets a boolean indicating if the manager must consider scene fog when rendering */\n get fogEnabled() {\n return this._spriteRenderer.fogEnabled;\n }\n set fogEnabled(e) {\n this._spriteRenderer.fogEnabled = e;\n }\n /** Gets or sets a boolean indicating if the manager must use logarithmic depth when rendering */\n get useLogarithmicDepth() {\n return this._spriteRenderer.useLogarithmicDepth;\n }\n set useLogarithmicDepth(e) {\n this._spriteRenderer.useLogarithmicDepth = e;\n }\n /**\n * Blend mode use to render the particle, it can be any of\n * the static undefined properties provided in this class.\n * Default value is 2\n */\n get blendMode() {\n return this._spriteRenderer.blendMode;\n }\n set blendMode(e) {\n this._spriteRenderer.blendMode = e;\n }\n /** Disables writing to the depth buffer when rendering the sprites.\n * It can be handy to disable depth writing when using textures without alpha channel\n * and setting some specific blend modes.\n */\n get disableDepthWrite() {\n return this._disableDepthWrite;\n }\n set disableDepthWrite(e) {\n this._disableDepthWrite = e, this._spriteRenderer.disableDepthWrite = e;\n }\n /**\n * Gets or sets a boolean indicating if the renderer must render sprites with pixel perfect rendering\n * In this mode, sprites are rendered as \"pixel art\", which means that they appear as pixelated but remain stable when moving or when rotated or scaled.\n * Note that for this mode to work as expected, the sprite texture must use the BILINEAR sampling mode, not NEAREST!\n */\n get pixelPerfect() {\n return this._spriteRenderer.pixelPerfect;\n }\n set pixelPerfect(e) {\n this._spriteRenderer.pixelPerfect = e, e && this.texture.samplingMode !== 3 && this.texture.updateSamplingMode(3);\n }\n /**\n * Creates a new sprite manager\n * @param name defines the manager's name\n * @param imgUrl defines the sprite sheet url\n * @param capacity defines the maximum allowed number of sprites\n * @param cellSize defines the size of a sprite cell\n * @param scene defines the hosting scene\n * @param epsilon defines the epsilon value to align texture (0.01 by default)\n * @param samplingMode defines the sampling mode to use with spritesheet\n * @param fromPacked set to false; do not alter\n * @param spriteJSON null otherwise a JSON object defining sprite sheet data; do not alter\n */\n constructor(e, t, i, s, r, n = 0.01, o = X.TRILINEAR_SAMPLINGMODE, l = !1, h = null) {\n this.name = e, this.sprites = [], this.renderingGroupId = 0, this.layerMask = 268435455, this.isPickable = !1, this.metadata = null, this._wasDispatched = !1, this.onDisposeObservable = new G(), this._disableDepthWrite = !1, this._packedAndReady = !1, this._customUpdate = (u, d) => {\n u.cellRef || (u.cellIndex = 0);\n const f = u.cellIndex;\n typeof f == \"number\" && isFinite(f) && Math.floor(f) === f && (u.cellRef = this._spriteMap[u.cellIndex]), u._xOffset = this._cellData[u.cellRef].frame.x / d.width, u._yOffset = this._cellData[u.cellRef].frame.y / d.height, u._xSize = this._cellData[u.cellRef].frame.w, u._ySize = this._cellData[u.cellRef].frame.h;\n }, r || (r = Me.LastCreatedScene), r._getComponent(me.NAME_SPRITE) || r._addComponent(new K3(r)), this._fromPacked = l, this._scene = r;\n const c = this._scene.getEngine();\n if (this._spriteRenderer = new iU(c, i, n, r), s.width && s.height)\n this.cellWidth = s.width, this.cellHeight = s.height;\n else if (s !== void 0)\n this.cellWidth = s, this.cellHeight = s;\n else {\n this._spriteRenderer = null;\n return;\n }\n this._scene.spriteManagers && this._scene.spriteManagers.push(this), this.uniqueId = this.scene.getUniqueId(), t && (this.texture = new X(t, r, !0, !1, o)), this._fromPacked && this._makePacked(t, h);\n }\n /**\n * Returns the string \"SpriteManager\"\n * @returns \"SpriteManager\"\n */\n getClassName() {\n return \"SpriteManager\";\n }\n _makePacked(e, t) {\n if (t !== null)\n try {\n let i;\n if (typeof t == \"string\" ? i = JSON.parse(t) : i = t, i.frames.length) {\n const r = {};\n for (let n = 0; n < i.frames.length; n++) {\n const o = i.frames[n];\n if (typeof Object.keys(o)[0] != \"string\")\n throw new Error(\"Invalid JSON Format. Check the frame values and make sure the name is the first parameter.\");\n const l = o[Object.keys(o)[0]];\n r[l] = o;\n }\n i.frames = r;\n }\n const s = Reflect.ownKeys(i.frames);\n this._spriteMap = s, this._packedAndReady = !0, this._cellData = i.frames;\n } catch {\n throw this._fromPacked = !1, this._packedAndReady = !1, new Error(\"Invalid JSON from string. Spritesheet managed with constant cell size.\");\n }\n else {\n const i = /\\./g;\n let s;\n do\n s = i.lastIndex, i.test(e);\n while (i.lastIndex > 0);\n const r = e.substring(0, s - 1) + \".json\", n = () => {\n L.Error(\"JSON ERROR: Unable to load JSON file.\"), this._fromPacked = !1, this._packedAndReady = !1;\n }, o = (l) => {\n try {\n const h = JSON.parse(l), c = Reflect.ownKeys(h.frames);\n this._spriteMap = c, this._packedAndReady = !0, this._cellData = h.frames;\n } catch {\n throw this._fromPacked = !1, this._packedAndReady = !1, new Error(\"Invalid JSON format. Please check documentation for format specifications.\");\n }\n };\n J.LoadFile(r, o, void 0, void 0, !1, n);\n }\n }\n _checkTextureAlpha(e, t, i, s, r) {\n if (!e.useAlphaForPicking || !this.texture)\n return !0;\n const n = this.texture.getSize();\n this._textureContent || (this._textureContent = new Uint8Array(n.width * n.height * 4), this.texture.readPixels(0, 0, this._textureContent));\n const o = w.Vector3[0];\n o.copyFrom(t.direction), o.normalize(), o.scaleInPlace(i), o.addInPlace(t.origin);\n const l = (o.x - s.x) / (r.x - s.x), h = 1 - (o.y - s.y) / (r.y - s.y), c = e._xOffset * n.width + l * e._xSize | 0, u = e._yOffset * n.height + h * e._ySize | 0;\n return this._textureContent[(c + u * n.width) * 4 + 3] > 0.5;\n }\n /**\n * Intersects the sprites with a ray\n * @param ray defines the ray to intersect with\n * @param camera defines the current active camera\n * @param predicate defines a predicate used to select candidate sprites\n * @param fastCheck defines if a fast check only must be done (the first potential sprite is will be used and not the closer)\n * @returns null if no hit or a PickingInfo\n */\n intersects(e, t, i, s) {\n const r = Math.min(this.capacity, this.sprites.length), n = g.Zero(), o = g.Zero();\n let l = Number.MAX_VALUE, h = null;\n const c = w.Vector3[0], u = w.Vector3[1], d = t.getViewMatrix();\n let f = e, p = e;\n for (let _ = 0; _ < r; _++) {\n const m = this.sprites[_];\n if (m) {\n if (i) {\n if (!i(m))\n continue;\n } else if (!m.isPickable)\n continue;\n if (g.TransformCoordinatesToRef(m.position, d, u), m.angle ? (O.TranslationToRef(-u.x, -u.y, 0, w.Matrix[1]), O.TranslationToRef(u.x, u.y, 0, w.Matrix[2]), O.RotationZToRef(-m.angle, w.Matrix[3]), w.Matrix[1].multiplyToRef(w.Matrix[3], w.Matrix[4]), w.Matrix[4].multiplyToRef(w.Matrix[2], w.Matrix[0]), f = e.clone(), g.TransformCoordinatesToRef(e.origin, w.Matrix[0], f.origin), g.TransformNormalToRef(e.direction, w.Matrix[0], f.direction)) : f = e, n.copyFromFloats(u.x - m.width / 2, u.y - m.height / 2, u.z), o.copyFromFloats(u.x + m.width / 2, u.y + m.height / 2, u.z), f.intersectsBoxMinMax(n, o)) {\n const x = g.Distance(u, f.origin);\n if (l > x) {\n if (!this._checkTextureAlpha(m, f, x, n, o))\n continue;\n if (p = f, l = x, h = m, s)\n break;\n }\n }\n }\n }\n if (h) {\n const _ = new Cs();\n d.invertToRef(w.Matrix[0]), _.hit = !0, _.pickedSprite = h, _.distance = l;\n const m = w.Vector3[2];\n return m.copyFrom(p.direction), m.normalize(), m.scaleInPlace(l), p.origin.addToRef(m, c), _.pickedPoint = g.TransformCoordinates(c, w.Matrix[0]), _;\n }\n return null;\n }\n /**\n * Intersects the sprites with a ray\n * @param ray defines the ray to intersect with\n * @param camera defines the current active camera\n * @param predicate defines a predicate used to select candidate sprites\n * @returns null if no hit or a PickingInfo array\n */\n multiIntersects(e, t, i) {\n const s = Math.min(this.capacity, this.sprites.length), r = g.Zero(), n = g.Zero();\n let o;\n const l = [], h = w.Vector3[0].copyFromFloats(0, 0, 0), c = w.Vector3[1].copyFromFloats(0, 0, 0), u = t.getViewMatrix();\n for (let d = 0; d < s; d++) {\n const f = this.sprites[d];\n if (f) {\n if (i) {\n if (!i(f))\n continue;\n } else if (!f.isPickable)\n continue;\n if (g.TransformCoordinatesToRef(f.position, u, c), r.copyFromFloats(c.x - f.width / 2, c.y - f.height / 2, c.z), n.copyFromFloats(c.x + f.width / 2, c.y + f.height / 2, c.z), e.intersectsBoxMinMax(r, n)) {\n if (o = g.Distance(c, e.origin), !this._checkTextureAlpha(f, e, o, r, n))\n continue;\n const p = new Cs();\n l.push(p), u.invertToRef(w.Matrix[0]), p.hit = !0, p.pickedSprite = f, p.distance = o;\n const _ = w.Vector3[2];\n _.copyFrom(e.direction), _.normalize(), _.scaleInPlace(o), e.origin.addToRef(_, h), p.pickedPoint = g.TransformCoordinates(h, w.Matrix[0]);\n }\n }\n }\n return l;\n }\n /**\n * Render all child sprites\n */\n render() {\n if (this._fromPacked && (!this._packedAndReady || !this._spriteMap || !this._cellData))\n return;\n const t = this._scene.getEngine().getDeltaTime();\n this._packedAndReady ? this._spriteRenderer.render(this.sprites, t, this._scene.getViewMatrix(), this._scene.getProjectionMatrix(), this._customUpdate) : this._spriteRenderer.render(this.sprites, t, this._scene.getViewMatrix(), this._scene.getProjectionMatrix());\n }\n /**\n * Rebuilds the manager (after a context lost, for eg)\n */\n rebuild() {\n var e;\n (e = this._spriteRenderer) == null || e.rebuild();\n }\n /**\n * Release associated resources\n */\n dispose() {\n if (this._spriteRenderer && (this._spriteRenderer.dispose(), this._spriteRenderer = null), this._textureContent = null, this._scene.spriteManagers) {\n const e = this._scene.spriteManagers.indexOf(this);\n this._scene.spriteManagers.splice(e, 1);\n }\n this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this.metadata = null;\n }\n /**\n * Serializes the sprite manager to a JSON object\n * @param serializeTexture defines if the texture must be serialized as well\n * @returns the JSON object\n */\n serialize(e = !1) {\n const t = {};\n t.name = this.name, t.capacity = this.capacity, t.cellWidth = this.cellWidth, t.cellHeight = this.cellHeight, t.fogEnabled = this.fogEnabled, t.blendMode = this.blendMode, t.disableDepthWrite = this.disableDepthWrite, t.pixelPerfect = this.pixelPerfect, t.useLogarithmicDepth = this.useLogarithmicDepth, this.texture && (e ? t.texture = this.texture.serialize() : (t.textureUrl = this.texture.name, t.invertY = this.texture._invertY)), t.sprites = [];\n for (const i of this.sprites)\n t.sprites.push(i.serialize());\n return t.metadata = this.metadata, t;\n }\n /**\n * Parses a JSON object to create a new sprite manager.\n * @param parsedManager The JSON object to parse\n * @param scene The scene to create the sprite manager\n * @param rootUrl The root url to use to load external dependencies like texture\n * @returns the new sprite manager\n */\n static Parse(e, t, i) {\n const s = new Ja(e.name, \"\", e.capacity, {\n width: e.cellWidth,\n height: e.cellHeight\n }, t);\n e.fogEnabled !== void 0 && (s.fogEnabled = e.fogEnabled), e.blendMode !== void 0 && (s.blendMode = e.blendMode), e.disableDepthWrite !== void 0 && (s.disableDepthWrite = e.disableDepthWrite), e.pixelPerfect !== void 0 && (s.pixelPerfect = e.pixelPerfect), e.useLogarithmicDepth !== void 0 && (s.useLogarithmicDepth = e.useLogarithmicDepth), e.metadata !== void 0 && (s.metadata = e.metadata), e.texture ? s.texture = X.Parse(e.texture, t, i) : e.textureName && (s.texture = new X(i + e.textureUrl, t, !1, e.invertY !== void 0 ? e.invertY : !0));\n for (const r of e.sprites)\n Mv.Parse(r, s);\n return s;\n }\n /**\n * Creates a sprite manager from a snippet saved in a remote file\n * @param name defines the name of the sprite manager to create (can be null or empty to use the one from the json data)\n * @param url defines the url to load from\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @returns a promise that will resolve to the new sprite manager\n */\n static ParseFromFileAsync(e, t, i, s = \"\") {\n return new Promise((r, n) => {\n const o = new Di();\n o.addEventListener(\"readystatechange\", () => {\n if (o.readyState == 4)\n if (o.status == 200) {\n const l = JSON.parse(o.responseText), h = Ja.Parse(l, i || Me.LastCreatedScene, s);\n e && (h.name = e), r(h);\n } else\n n(\"Unable to load the sprite manager\");\n }), o.open(\"GET\", t), o.send();\n });\n }\n /**\n * Creates a sprite manager from a snippet saved by the sprite editor\n * @param snippetId defines the snippet to load (can be set to _BLANK to create a default one)\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @returns a promise that will resolve to the new sprite manager\n */\n static ParseFromSnippetAsync(e, t, i = \"\") {\n return e === \"_BLANK\" ? Promise.resolve(new Ja(\"Default sprite manager\", \"//playground.babylonjs.com/textures/player.png\", 500, 64, t)) : new Promise((s, r) => {\n const n = new Di();\n n.addEventListener(\"readystatechange\", () => {\n if (n.readyState == 4)\n if (n.status == 200) {\n const o = JSON.parse(JSON.parse(n.responseText).jsonPayload), l = JSON.parse(o.spriteManager), h = Ja.Parse(l, t || Me.LastCreatedScene, i);\n h.snippetId = e, s(h);\n } else\n r(\"Unable to load the snippet \" + e);\n }), n.open(\"GET\", this.SnippetUrl + \"/\" + e.replace(/#/g, \"/\")), n.send();\n });\n }\n}\nJa.SnippetUrl = \"https://snippet.babylonjs.com\";\nJa.CreateFromSnippetAsync = Ja.ParseFromSnippetAsync;\nvar kK = !0;\nclass Tp {\n}\nTp.LoaderInjectedPhysicsEngine = void 0;\nlet uh = {}, Vo = {};\nconst PE = (a, e, t, i) => {\n if (!e.materials)\n return null;\n for (let s = 0, r = e.materials.length; s < r; s++) {\n const n = e.materials[s];\n if (a(n))\n return { parsedMaterial: n, material: ue.Parse(n, t, i) };\n }\n return null;\n}, sU = (a, e, t) => {\n for (const i in e)\n if (a.name === e[i])\n return t.push(a.id), !0;\n return a.parentId !== void 0 && t.indexOf(a.parentId) !== -1 ? (t.push(a.id), !0) : !1;\n}, ph = (a, e) => a + \" of \" + (e ? e.file + \" from \" + e.name + \" version: \" + e.version + \", exporter version: \" + e.exporter_version : \"unknown\"), sA = (a, e) => {\n const t = e;\n if (e._waitingData.lods) {\n if (e._waitingData.lods.ids && e._waitingData.lods.ids.length > 0) {\n const i = e._waitingData.lods.ids, s = t.isEnabled(!1);\n if (e._waitingData.lods.distances) {\n const r = e._waitingData.lods.distances;\n if (r.length >= i.length) {\n const n = r.length > i.length ? r[r.length - 1] : 0;\n t.setEnabled(!1);\n for (let o = 0; o < i.length; o++) {\n const l = i[o], h = a.getMeshById(l);\n h != null && t.addLODLevel(r[o], h);\n }\n n > 0 && t.addLODLevel(n, null), s === !0 && t.setEnabled(!0);\n } else\n J.Warn(\"Invalid level of detail distances for \" + e.name);\n }\n }\n e._waitingData.lods = null;\n }\n}, op = (a, e, t) => {\n if (typeof a != \"number\") {\n const s = t.getLastEntryById(a);\n return s && e !== void 0 && e !== null ? s.instances[parseInt(e)] : s;\n }\n const i = uh[a];\n return i && e !== void 0 && e !== null ? i.instances[parseInt(e)] : i;\n}, $p = (a, e) => typeof a != \"number\" ? e.getLastMaterialById(a, !0) : Vo[a], ME = (a, e, t, i, s = !1) => {\n const r = new sL(a);\n let n = \"importScene has failed JSON parse\";\n try {\n var o = JSON.parse(e);\n n = \"\";\n const l = st.loggingLevel === st.DETAILED_LOGGING;\n let h, c;\n if (o.environmentTexture !== void 0 && o.environmentTexture !== null) {\n const d = o.isPBR !== void 0 ? o.isPBR : !0;\n if (o.environmentTextureType && o.environmentTextureType === \"BABYLON.HDRCubeTexture\") {\n const f = o.environmentTextureSize ? o.environmentTextureSize : 128, p = new Ho((o.environmentTexture.match(/https?:\\/\\//g) ? \"\" : t) + o.environmentTexture, a, f, !0, !d, void 0, o.environmentTexturePrefilterOnLoad);\n o.environmentTextureRotationY && (p.rotationY = o.environmentTextureRotationY), a.environmentTexture = p;\n } else if (typeof o.environmentTexture == \"object\") {\n const f = ps.Parse(o.environmentTexture, a, t);\n a.environmentTexture = f;\n } else if (o.environmentTexture.endsWith(\".env\")) {\n const f = new ps((o.environmentTexture.match(/https?:\\/\\//g) ? \"\" : t) + o.environmentTexture, a, o.environmentTextureForcedExtension);\n o.environmentTextureRotationY && (f.rotationY = o.environmentTextureRotationY), a.environmentTexture = f;\n } else {\n const f = ps.CreateFromPrefilteredData((o.environmentTexture.match(/https?:\\/\\//g) ? \"\" : t) + o.environmentTexture, a, o.environmentTextureForcedExtension);\n o.environmentTextureRotationY && (f.rotationY = o.environmentTextureRotationY), a.environmentTexture = f;\n }\n if (o.createDefaultSkybox === !0) {\n const f = a.activeCamera !== void 0 && a.activeCamera !== null ? (a.activeCamera.maxZ - a.activeCamera.minZ) / 2 : 1e3, p = o.skyboxBlurLevel || 0;\n a.createDefaultSkybox(a.environmentTexture, d, f, p);\n }\n r.environmentTexture = a.environmentTexture;\n }\n if (o.environmentIntensity !== void 0 && o.environmentIntensity !== null && (a.environmentIntensity = o.environmentIntensity), o.lights !== void 0 && o.lights !== null)\n for (h = 0, c = o.lights.length; h < c; h++) {\n const d = o.lights[h], f = at.Parse(d, a);\n f && (uh[d.uniqueId] = f, r.lights.push(f), f._parentContainer = r, n += h === 0 ? `\n\tLights:` : \"\", n += `\n\t\t` + f.toString(l));\n }\n if (o.reflectionProbes !== void 0 && o.reflectionProbes !== null)\n for (h = 0, c = o.reflectionProbes.length; h < c; h++) {\n const d = o.reflectionProbes[h], f = Rf.Parse(d, a, t);\n f && (r.reflectionProbes.push(f), f._parentContainer = r, n += h === 0 ? `\n\tReflection Probes:` : \"\", n += `\n\t\t` + f.toString(l));\n }\n if (o.animations !== void 0 && o.animations !== null)\n for (h = 0, c = o.animations.length; h < c; h++) {\n const d = o.animations[h], f = Oi(\"BABYLON.Animation\");\n if (f) {\n const p = f.Parse(d);\n a.animations.push(p), r.animations.push(p), n += h === 0 ? `\n\tAnimations:` : \"\", n += `\n\t\t` + p.toString(l);\n }\n }\n if (o.materials !== void 0 && o.materials !== null)\n for (h = 0, c = o.materials.length; h < c; h++) {\n const d = o.materials[h], f = ue.Parse(d, a, t);\n f && (Vo[d.uniqueId || d.id] = f, r.materials.push(f), f._parentContainer = r, n += h === 0 ? `\n\tMaterials:` : \"\", n += `\n\t\t` + f.toString(l), f.getActiveTextures().forEach((_) => {\n r.textures.indexOf(_) == -1 && (r.textures.push(_), _._parentContainer = r);\n }));\n }\n if (o.multiMaterials !== void 0 && o.multiMaterials !== null)\n for (h = 0, c = o.multiMaterials.length; h < c; h++) {\n const d = o.multiMaterials[h], f = fo.ParseMultiMaterial(d, a);\n Vo[d.uniqueId || d.id] = f, r.multiMaterials.push(f), f._parentContainer = r, n += h === 0 ? `\n\tMultiMaterials:` : \"\", n += `\n\t\t` + f.toString(l), f.getActiveTextures().forEach((_) => {\n r.textures.indexOf(_) == -1 && (r.textures.push(_), _._parentContainer = r);\n });\n }\n if (o.morphTargetManagers !== void 0 && o.morphTargetManagers !== null)\n for (const d of o.morphTargetManagers) {\n const f = Za.Parse(d, a);\n r.morphTargetManagers.push(f), f._parentContainer = r;\n }\n if (o.skeletons !== void 0 && o.skeletons !== null)\n for (h = 0, c = o.skeletons.length; h < c; h++) {\n const d = o.skeletons[h], f = Su.Parse(d, a);\n r.skeletons.push(f), f._parentContainer = r, n += h === 0 ? `\n\tSkeletons:` : \"\", n += `\n\t\t` + f.toString(l);\n }\n const u = o.geometries;\n if (u != null) {\n const d = new Array(), f = u.vertexData;\n if (f != null)\n for (h = 0, c = f.length; h < c; h++) {\n const p = f[h];\n d.push(Ks.Parse(p, a, t));\n }\n d.forEach((p) => {\n p && (r.geometries.push(p), p._parentContainer = r);\n });\n }\n if (o.transformNodes !== void 0 && o.transformNodes !== null)\n for (h = 0, c = o.transformNodes.length; h < c; h++) {\n const d = o.transformNodes[h], f = Ye.Parse(d, a, t);\n uh[d.uniqueId] = f, r.transformNodes.push(f), f._parentContainer = r;\n }\n if (o.meshes !== void 0 && o.meshes !== null)\n for (h = 0, c = o.meshes.length; h < c; h++) {\n const d = o.meshes[h], f = H.Parse(d, a, t);\n if (uh[d.uniqueId] = f, r.meshes.push(f), f._parentContainer = r, f.hasInstances)\n for (const p of f.instances)\n r.meshes.push(p), p._parentContainer = r;\n n += h === 0 ? `\n\tMeshes:` : \"\", n += `\n\t\t` + f.toString(l);\n }\n if (o.cameras !== void 0 && o.cameras !== null)\n for (h = 0, c = o.cameras.length; h < c; h++) {\n const d = o.cameras[h], f = Fe.Parse(d, a);\n uh[d.uniqueId] = f, r.cameras.push(f), f._parentContainer = r, n += h === 0 ? `\n\tCameras:` : \"\", n += `\n\t\t` + f.toString(l);\n }\n if (o.postProcesses !== void 0 && o.postProcesses !== null)\n for (h = 0, c = o.postProcesses.length; h < c; h++) {\n const d = o.postProcesses[h], f = Be.Parse(d, a, t);\n f && (r.postProcesses.push(f), f._parentContainer = r, n += h === 0 ? `\nPostprocesses:` : \"\", n += `\n\t\t` + f.toString());\n }\n if (o.animationGroups !== void 0 && o.animationGroups !== null)\n for (h = 0, c = o.animationGroups.length; h < c; h++) {\n const d = o.animationGroups[h], f = $a.Parse(d, a);\n r.animationGroups.push(f), f._parentContainer = r, n += h === 0 ? `\n\tAnimationGroups:` : \"\", n += `\n\t\t` + f.toString(l);\n }\n if (o.spriteManagers)\n for (let d = 0, f = o.spriteManagers.length; d < f; d++) {\n const p = o.spriteManagers[d], _ = Ja.Parse(p, a, t);\n n += `\n\t\tSpriteManager ` + _.name;\n }\n for (h = 0, c = a.cameras.length; h < c; h++) {\n const d = a.cameras[h];\n d._waitingParentId !== null && (d.parent = op(d._waitingParentId, d._waitingParentInstanceIndex, a), d._waitingParentId = null, d._waitingParentInstanceIndex = null);\n }\n for (h = 0, c = a.lights.length; h < c; h++) {\n const d = a.lights[h];\n d && d._waitingParentId !== null && (d.parent = op(d._waitingParentId, d._waitingParentInstanceIndex, a), d._waitingParentId = null, d._waitingParentInstanceIndex = null);\n }\n for (h = 0, c = a.transformNodes.length; h < c; h++) {\n const d = a.transformNodes[h];\n d._waitingParentId !== null && (d.parent = op(d._waitingParentId, d._waitingParentInstanceIndex, a), d._waitingParentId = null, d._waitingParentInstanceIndex = null);\n }\n for (h = 0, c = a.meshes.length; h < c; h++) {\n const d = a.meshes[h];\n d._waitingParentId !== null && (d.parent = op(d._waitingParentId, d._waitingParentInstanceIndex, a), d._waitingParentId = null, d._waitingParentInstanceIndex = null), d._waitingData.lods && sA(a, d);\n }\n for (a.multiMaterials.forEach((d) => {\n d._waitingSubMaterialsUniqueIds.forEach((f) => {\n d.subMaterials.push($p(f, a));\n }), d._waitingSubMaterialsUniqueIds = [];\n }), a.meshes.forEach((d) => {\n d._waitingMaterialId !== null && (d.material = $p(d._waitingMaterialId, a), d._waitingMaterialId = null);\n }), h = 0, c = a.skeletons.length; h < c; h++) {\n const d = a.skeletons[h];\n d._hasWaitingData && (d.bones != null && d.bones.forEach((f) => {\n if (f._waitingTransformNodeId) {\n const p = a.getLastEntryById(f._waitingTransformNodeId);\n p && f.linkTransformNode(p), f._waitingTransformNodeId = null;\n }\n }), d._hasWaitingData = null);\n }\n for (h = 0, c = a.meshes.length; h < c; h++) {\n const d = a.meshes[h];\n d._waitingData.freezeWorldMatrix ? (d.freezeWorldMatrix(), d._waitingData.freezeWorldMatrix = null) : d.computeWorldMatrix(!0);\n }\n for (h = 0, c = a.lights.length; h < c; h++) {\n const d = a.lights[h];\n if (d._excludedMeshesIds.length > 0) {\n for (let f = 0; f < d._excludedMeshesIds.length; f++) {\n const p = a.getMeshById(d._excludedMeshesIds[f]);\n p && d.excludedMeshes.push(p);\n }\n d._excludedMeshesIds = [];\n }\n if (d._includedOnlyMeshesIds.length > 0) {\n for (let f = 0; f < d._includedOnlyMeshesIds.length; f++) {\n const p = a.getMeshById(d._includedOnlyMeshesIds[f]);\n p && d.includedOnlyMeshes.push(p);\n }\n d._includedOnlyMeshesIds = [];\n }\n }\n for (a.geometries.forEach((d) => {\n d._loadedUniqueId = \"\";\n }), qi.Parse(o, a, r, t), h = 0, c = a.meshes.length; h < c; h++) {\n const d = a.meshes[h];\n d._waitingData.actions && (dt.Parse(d._waitingData.actions, d, a), d._waitingData.actions = null);\n }\n o.actions !== void 0 && o.actions !== null && dt.Parse(o.actions, null, a);\n } catch (l) {\n const h = ph(\"loadAssets\", o ? o.producer : \"Unknown\") + n;\n if (i)\n i(h, l);\n else\n throw L.Log(h), l;\n } finally {\n uh = {}, Vo = {}, s || r.removeAllFromScene(), n !== null && st.loggingLevel !== st.NO_LOGGING && L.Log(ph(\"loadAssets\", o ? o.producer : \"Unknown\") + (st.loggingLevel !== st.MINIMAL_LOGGING ? n : \"\"));\n }\n return r;\n};\nst.RegisterPlugin({\n name: \"babylon.js\",\n extensions: \".babylon\",\n canDirectLoad: (a) => a.indexOf(\"babylon\") !== -1,\n importMesh: (a, e, t, i, s, r, n, o) => {\n var c;\n let l = \"importMesh has failed JSON parse\";\n try {\n var h = JSON.parse(t);\n l = \"\";\n const u = st.loggingLevel === st.DETAILED_LOGGING;\n a ? Array.isArray(a) || (a = [a]) : a = null;\n const d = [], f = /* @__PURE__ */ new Map(), p = [];\n if (h.transformNodes !== void 0 && h.transformNodes !== null)\n for (let _ = 0, m = h.transformNodes.length; _ < m; _++) {\n const x = h.transformNodes[_], v = Ye.Parse(x, e, i);\n p.push(v), f.set(v._waitingParsedUniqueId, v), v._waitingParsedUniqueId = null;\n }\n if (h.meshes !== void 0 && h.meshes !== null) {\n const _ = [], m = [], x = [], v = [];\n for (let E = 0, b = h.meshes.length; E < b; E++) {\n const S = h.meshes[E];\n if (a === null || sU(S, a, d)) {\n if (a !== null && delete a[a.indexOf(S.name)], S.geometryId !== void 0 && S.geometryId !== null && h.geometries !== void 0 && h.geometries !== null) {\n let P = !1;\n [\"boxes\", \"spheres\", \"cylinders\", \"toruses\", \"grounds\", \"planes\", \"torusKnots\", \"vertexData\"].forEach((N) => {\n P === !0 || !h.geometries[N] || !Array.isArray(h.geometries[N]) || h.geometries[N].forEach((F) => {\n if (F.id === S.geometryId) {\n switch (N) {\n case \"vertexData\":\n Ks.Parse(F, e, i);\n break;\n }\n P = !0;\n }\n });\n }), P === !1 && L.Warn(\"Geometry not found for mesh \" + S.id);\n }\n if (S.materialUniqueId || S.materialId) {\n const P = S.materialUniqueId ? x : m;\n let N = P.indexOf(S.materialUniqueId || S.materialId) !== -1;\n if (N === !1 && h.multiMaterials !== void 0 && h.multiMaterials !== null) {\n const F = ($, j) => {\n P.push($);\n const ne = PE(j, h, e, i);\n ne && ne.material && (Vo[ne.parsedMaterial.uniqueId || ne.parsedMaterial.id] = ne.material, l += `\n\tMaterial ` + ne.material.toString(u));\n };\n for (let $ = 0, j = h.multiMaterials.length; $ < j; $++) {\n const ne = h.multiMaterials[$];\n if (S.materialUniqueId && ne.uniqueId === S.materialUniqueId || ne.id === S.materialId) {\n ne.materialsUniqueIds ? ne.materialsUniqueIds.forEach((le) => F(le, (_e) => _e.uniqueId === le)) : ne.materials.forEach((le) => F(le, (_e) => _e.id === le)), P.push(ne.uniqueId || ne.id);\n const te = fo.ParseMultiMaterial(ne, e);\n Vo[ne.uniqueId || ne.id] = te, te && (N = !0, l += `\n\tMulti-Material ` + te.toString(u));\n break;\n }\n }\n }\n if (N === !1) {\n P.push(S.materialUniqueId || S.materialId);\n const F = PE(($) => S.materialUniqueId && $.uniqueId === S.materialUniqueId || $.id === S.materialId, h, e, i);\n !F || !F.material ? L.Warn(\"Material not found for mesh \" + S.id) : (Vo[F.parsedMaterial.uniqueId || F.parsedMaterial.id] = F.material, l += `\n\tMaterial ` + F.material.toString(u));\n }\n }\n if (S.skeletonId !== null && S.skeletonId !== void 0 && h.skeletonId !== -1 && h.skeletons !== void 0 && h.skeletons !== null && !(_.indexOf(S.skeletonId) > -1))\n for (let N = 0, F = h.skeletons.length; N < F; N++) {\n const $ = h.skeletons[N];\n if ($.id === S.skeletonId) {\n const j = Su.Parse($, e);\n n.push(j), _.push($.id), l += `\n\tSkeleton ` + j.toString(u);\n }\n }\n if (S.morphTargetManagerId > -1 && h.morphTargetManagers !== void 0 && h.morphTargetManagers !== null && !(v.indexOf(S.morphTargetManagerId) > -1))\n for (let N = 0, F = h.morphTargetManagers.length; N < F; N++) {\n const $ = h.morphTargetManagers[N];\n if ($.id === S.morphTargetManagerId) {\n const j = Za.Parse($, e);\n v.push(j.uniqueId), l += `\nMorph target ` + j.toString();\n }\n }\n const C = H.Parse(S, e, i);\n s.push(C), f.set(C._waitingParsedUniqueId, C), C._waitingParsedUniqueId = null, l += `\n\tMesh ` + C.toString(u);\n }\n }\n e.multiMaterials.forEach((E) => {\n E._waitingSubMaterialsUniqueIds.forEach((b) => {\n E.subMaterials.push($p(b, e));\n }), E._waitingSubMaterialsUniqueIds = [];\n }), e.meshes.forEach((E) => {\n E._waitingMaterialId !== null && (E.material = $p(E._waitingMaterialId, e), E._waitingMaterialId = null);\n });\n for (let E = 0, b = e.transformNodes.length; E < b; E++) {\n const S = e.transformNodes[E];\n if (S._waitingParentId !== null) {\n let C = f.get(parseInt(S._waitingParentId)) || null;\n C === null && (C = e.getLastEntryById(S._waitingParentId));\n let P = C;\n S._waitingParentInstanceIndex && (P = C.instances[parseInt(S._waitingParentInstanceIndex)], S._waitingParentInstanceIndex = null), S.parent = P, S._waitingParentId = null;\n }\n }\n let T;\n for (let E = 0, b = e.meshes.length; E < b; E++) {\n if (T = e.meshes[E], T._waitingParentId) {\n let S = f.get(parseInt(T._waitingParentId)) || null;\n S === null && (S = e.getLastEntryById(T._waitingParentId));\n let C = S;\n if (T._waitingParentInstanceIndex && (C = S.instances[parseInt(T._waitingParentInstanceIndex)], T._waitingParentInstanceIndex = null), T.parent = C, ((c = T.parent) == null ? void 0 : c.getClassName()) === \"TransformNode\") {\n const P = p.indexOf(T.parent);\n P > -1 && p.splice(P, 1);\n }\n T._waitingParentId = null;\n }\n T._waitingData.lods && sA(e, T);\n }\n for (const E of p)\n E.dispose();\n for (let E = 0, b = e.skeletons.length; E < b; E++) {\n const S = e.skeletons[E];\n S._hasWaitingData && (S.bones != null && S.bones.forEach((C) => {\n if (C._waitingTransformNodeId) {\n const P = e.getLastEntryById(C._waitingTransformNodeId);\n P && C.linkTransformNode(P), C._waitingTransformNodeId = null;\n }\n }), S._hasWaitingData = null);\n }\n for (let E = 0, b = e.meshes.length; E < b; E++)\n T = e.meshes[E], T._waitingData.freezeWorldMatrix ? (T.freezeWorldMatrix(), T._waitingData.freezeWorldMatrix = null) : T.computeWorldMatrix(!0);\n }\n if (h.particleSystems !== void 0 && h.particleSystems !== null) {\n const _ = qi.GetIndividualParser(me.NAME_PARTICLESYSTEM);\n if (_)\n for (let m = 0, x = h.particleSystems.length; m < x; m++) {\n const v = h.particleSystems[m];\n d.indexOf(v.emitterId) !== -1 && r.push(_(v, e, i));\n }\n }\n return e.geometries.forEach((_) => {\n _._loadedUniqueId = \"\";\n }), !0;\n } catch (u) {\n const d = ph(\"importMesh\", h ? h.producer : \"Unknown\") + l;\n if (o)\n o(d, u);\n else\n throw L.Log(d), u;\n } finally {\n l !== null && st.loggingLevel !== st.NO_LOGGING && L.Log(ph(\"importMesh\", h ? h.producer : \"Unknown\") + (st.loggingLevel !== st.MINIMAL_LOGGING ? l : \"\")), Vo = {};\n }\n return !1;\n },\n load: (a, e, t, i) => {\n let s = \"importScene has failed JSON parse\";\n try {\n var r = JSON.parse(e);\n switch (s = \"\", r.useDelayedTextureLoading !== void 0 && r.useDelayedTextureLoading !== null && (a.useDelayedTextureLoading = r.useDelayedTextureLoading && !st.ForceFullSceneLoadingForIncremental), r.autoClear !== void 0 && r.autoClear !== null && (a.autoClear = r.autoClear), r.clearColor !== void 0 && r.clearColor !== null && (a.clearColor = Ce.FromArray(r.clearColor)), r.ambientColor !== void 0 && r.ambientColor !== null && (a.ambientColor = re.FromArray(r.ambientColor)), r.gravity !== void 0 && r.gravity !== null && (a.gravity = g.FromArray(r.gravity)), r.useRightHandedSystem !== void 0 && (a.useRightHandedSystem = !!r.useRightHandedSystem), r.fogMode !== void 0 && r.fogMode !== null && (a.fogMode = r.fogMode), r.fogColor !== void 0 && r.fogColor !== null && (a.fogColor = re.FromArray(r.fogColor)), r.fogStart !== void 0 && r.fogStart !== null && (a.fogStart = r.fogStart), r.fogEnd !== void 0 && r.fogEnd !== null && (a.fogEnd = r.fogEnd), r.fogDensity !== void 0 && r.fogDensity !== null && (a.fogDensity = r.fogDensity), s += \"\tFog mode for scene: \", a.fogMode) {\n case 0:\n s += `none\n`;\n break;\n case 1:\n s += `exp\n`;\n break;\n case 2:\n s += `exp2\n`;\n break;\n case 3:\n s += `linear\n`;\n break;\n }\n if (r.physicsEnabled) {\n let o;\n r.physicsEngine === \"cannon\" || r.physicsEngine === Ug.name ? o = new Ug(void 0, void 0, Tp.LoaderInjectedPhysicsEngine) : r.physicsEngine === \"oimo\" || r.physicsEngine === IE.name ? o = new IE(void 0, Tp.LoaderInjectedPhysicsEngine) : (r.physicsEngine === \"ammo\" || r.physicsEngine === Aa.name) && (o = new Aa(void 0, Tp.LoaderInjectedPhysicsEngine, void 0)), s = \"\tPhysics engine \" + (r.physicsEngine ? r.physicsEngine : \"oimo\") + ` enabled\n`;\n const l = r.gravity ? g.FromArray(r.gravity) : r.physicsGravity ? g.FromArray(r.physicsGravity) : null;\n a.enablePhysics(l, o);\n }\n return r.metadata !== void 0 && r.metadata !== null && (a.metadata = r.metadata), r.collisionsEnabled !== void 0 && r.collisionsEnabled !== null && (a.collisionsEnabled = r.collisionsEnabled), ME(a, e, t, i, !0) ? (r.autoAnimate && a.beginAnimation(a, r.autoAnimateFrom, r.autoAnimateTo, r.autoAnimateLoop, r.autoAnimateSpeed || 1), r.activeCameraID !== void 0 && r.activeCameraID !== null && a.setActiveCameraById(r.activeCameraID), !0) : !1;\n } catch (n) {\n const o = ph(\"importScene\", r ? r.producer : \"Unknown\") + s;\n if (i)\n i(o, n);\n else\n throw L.Log(o), n;\n } finally {\n s !== null && st.loggingLevel !== st.NO_LOGGING && L.Log(ph(\"importScene\", r ? r.producer : \"Unknown\") + (st.loggingLevel !== st.MINIMAL_LOGGING ? s : \"\"));\n }\n return !1;\n },\n loadAssetContainer: (a, e, t, i) => ME(a, e, t, i)\n});\nclass Yp {\n /**\n * Define if the fresnel effect is enable or not.\n */\n get isEnabled() {\n return this._isEnabled;\n }\n set isEnabled(e) {\n this._isEnabled !== e && (this._isEnabled = e, ee.MarkAllMaterialsAsDirty(20));\n }\n /**\n * Creates a new FresnelParameters object.\n *\n * @param options provide your own settings to optionally to override defaults\n */\n constructor(e = {}) {\n this._isEnabled = !0, this.bias = e.bias === void 0 ? 0 : e.bias, this.power = e.power === void 0 ? 1 : e.power, this.leftColor = e.leftColor || re.White(), this.rightColor = e.rightColor || re.Black(), e.isEnabled === !1 && (this.isEnabled = !1);\n }\n /**\n * Clones the current fresnel and its values\n * @returns a clone fresnel configuration\n */\n clone() {\n const e = new Yp();\n return Hs.DeepCopy(this, e), e;\n }\n /**\n * Determines equality between FresnelParameters objects\n * @param otherFresnelParameters defines the second operand\n * @returns true if the power, bias, leftColor, rightColor and isEnabled values are equal to the given ones\n */\n equals(e) {\n return e && this.bias === e.bias && this.power === e.power && this.leftColor.equals(e.leftColor) && this.rightColor.equals(e.rightColor) && this.isEnabled === e.isEnabled;\n }\n /**\n * Serializes the current fresnel parameters to a JSON representation.\n * @returns the JSON serialization\n */\n serialize() {\n return {\n isEnabled: this.isEnabled,\n leftColor: this.leftColor.asArray(),\n rightColor: this.rightColor.asArray(),\n bias: this.bias,\n power: this.power\n };\n }\n /**\n * Parse a JSON object and deserialize it to a new Fresnel parameter object.\n * @param parsedFresnelParameters Define the JSON representation\n * @returns the parsed parameters\n */\n static Parse(e) {\n return new Yp({\n isEnabled: e.isEnabled,\n leftColor: re.FromArray(e.leftColor),\n rightColor: re.FromArray(e.rightColor),\n bias: e.bias,\n power: e.power || 1\n });\n }\n}\nAe._FresnelParametersParser = Yp.Parse;\nclass Ei {\n}\nEi.BindSceneUniformBuffer = hf;\nEi.PrepareDefinesForMergedUV = ci;\nEi.BindTextureMatrix = pi;\nEi.GetFogState = Vx;\nEi.PrepareDefinesForMisc = df;\nEi.PrepareDefinesForCamera = zx;\nEi.PrepareDefinesForFrameBoundValues = ff;\nEi.PrepareDefinesForBones = Ux;\nEi.PrepareDefinesForMorphTargets = kx;\nEi.PrepareDefinesForBakedVertexAnimation = KC;\nEi.PrepareDefinesForAttributes = pf;\nEi.PrepareDefinesForMultiview = _f;\nEi.PrepareDefinesForOIT = Gx;\nEi.PrepareDefinesForPrePass = v_;\nEi.PrepareDefinesForLight = x_;\nEi.PrepareDefinesForLights = xc;\nEi.PrepareUniformsAndSamplersForLight = T_;\nEi.PrepareUniformsAndSamplersList = mf;\nEi.HandleFallbacksForShadows = g_;\nEi.PrepareAttributesForMorphTargetsInfluencers = mc;\nEi.PrepareAttributesForMorphTargets = p_;\nEi.PrepareAttributesForBakedVertexAnimation = cf;\nEi.PrepareAttributesForBones = m_;\nEi.PrepareAttributesForInstances = uf;\nEi.PushAttributesForInstances = So;\nEi.BindLightProperties = nw;\nEi.BindLight = __;\nEi.BindLights = gc;\nEi.BindFogParameters = il;\nEi.BindBonesParameters = Fl;\nEi.BindMorphTargetParameters = na;\nEi.BindLogDepth = Oa;\nclass wr extends Ut {\n /**\n * Gets the current double sided mode.\n */\n get doubleSided() {\n return this._twoSidedLighting;\n }\n /**\n * If sets to true and backfaceCulling is false, normals will be flipped on the backside.\n */\n set doubleSided(e) {\n this._twoSidedLighting !== e && (this._twoSidedLighting = e, this.backFaceCulling = !e, this._markAllSubMeshesAsTexturesDirty());\n }\n /**\n * Instantiates a new PBRMaterial instance.\n *\n * @param name The material name\n * @param scene The scene the material will be use in.\n */\n constructor(e, t) {\n super(e, t), this.maxSimultaneousLights = 4, this.disableLighting = !1, this.invertNormalMapX = !1, this.invertNormalMapY = !1, this.emissiveColor = new re(0, 0, 0), this.occlusionStrength = 1, this.useLightmapAsShadowmap = !1, this._useAlphaFromAlbedoTexture = !0, this._useAmbientInGrayScale = !0;\n }\n getClassName() {\n return \"PBRBaseSimpleMaterial\";\n }\n}\ny([\n I(),\n ce(\"_markAllSubMeshesAsLightsDirty\")\n], wr.prototype, \"maxSimultaneousLights\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsLightsDirty\")\n], wr.prototype, \"disableLighting\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\", \"_reflectionTexture\")\n], wr.prototype, \"environmentTexture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wr.prototype, \"invertNormalMapX\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wr.prototype, \"invertNormalMapY\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\", \"_bumpTexture\")\n], wr.prototype, \"normalTexture\", void 0);\ny([\n bi(\"emissive\"),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wr.prototype, \"emissiveColor\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wr.prototype, \"emissiveTexture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\", \"_ambientTextureStrength\")\n], wr.prototype, \"occlusionStrength\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\", \"_ambientTexture\")\n], wr.prototype, \"occlusionTexture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\", \"_alphaCutOff\")\n], wr.prototype, \"alphaCutOff\", void 0);\ny([\n I()\n], wr.prototype, \"doubleSided\", null);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\", null)\n], wr.prototype, \"lightmapTexture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wr.prototype, \"useLightmapAsShadowmap\", void 0);\nclass _o extends wr {\n /**\n * Instantiates a new PBRMetalRoughnessMaterial instance.\n *\n * @param name The material name\n * @param scene The scene the material will be use in.\n */\n constructor(e, t) {\n super(e, t), this._useRoughnessFromMetallicTextureAlpha = !1, this._useRoughnessFromMetallicTextureGreen = !0, this._useMetallnessFromMetallicTextureBlue = !0, this.metallic = 1, this.roughness = 1;\n }\n /**\n * @returns the current class name of the material.\n */\n getClassName() {\n return \"PBRMetallicRoughnessMaterial\";\n }\n /**\n * Makes a duplicate of the current material.\n * @param name - name to use for the new material.\n * @returns cloned material instance\n */\n clone(e) {\n const t = Ae.Clone(() => new _o(e, this.getScene()), this);\n return t.id = e, t.name = e, this.clearCoat.copyTo(t.clearCoat), this.anisotropy.copyTo(t.anisotropy), this.brdf.copyTo(t.brdf), this.sheen.copyTo(t.sheen), this.subSurface.copyTo(t.subSurface), t;\n }\n /**\n * Serialize the material to a parsable JSON object.\n * @returns the JSON object\n */\n serialize() {\n const e = Ae.Serialize(this);\n return e.customType = \"BABYLON.PBRMetallicRoughnessMaterial\", e.clearCoat = this.clearCoat.serialize(), e.anisotropy = this.anisotropy.serialize(), e.brdf = this.brdf.serialize(), e.sheen = this.sheen.serialize(), e.subSurface = this.subSurface.serialize(), e.iridescence = this.iridescence.serialize(), e;\n }\n /**\n * Parses a JSON object corresponding to the serialize function.\n * @param source - JSON source object.\n * @param scene - Defines the scene we are parsing for\n * @param rootUrl - Defines the rootUrl of this parsed object\n * @returns a new PBRMetalRoughnessMaterial\n */\n static Parse(e, t, i) {\n const s = Ae.Parse(() => new _o(e.name, t), e, t, i);\n return e.clearCoat && s.clearCoat.parse(e.clearCoat, t, i), e.anisotropy && s.anisotropy.parse(e.anisotropy, t, i), e.brdf && s.brdf.parse(e.brdf, t, i), e.sheen && s.sheen.parse(e.sheen, t, i), e.subSurface && s.subSurface.parse(e.subSurface, t, i), e.iridescence && s.iridescence.parse(e.iridescence, t, i), s;\n }\n}\ny([\n bi(),\n ce(\"_markAllSubMeshesAsTexturesDirty\", \"_albedoColor\")\n], _o.prototype, \"baseColor\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\", \"_albedoTexture\")\n], _o.prototype, \"baseTexture\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], _o.prototype, \"metallic\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], _o.prototype, \"roughness\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\", \"_metallicTexture\")\n], _o.prototype, \"metallicRoughnessTexture\", void 0);\nU(\"BABYLON.PBRMetallicRoughnessMaterial\", _o);\nclass mo extends wr {\n /**\n * Specifies if the reflectivity texture contains the glossiness information in its alpha channel.\n */\n get useMicroSurfaceFromReflectivityMapAlpha() {\n return this._useMicroSurfaceFromReflectivityMapAlpha;\n }\n /**\n * Instantiates a new PBRSpecularGlossinessMaterial instance.\n *\n * @param name The material name\n * @param scene The scene the material will be use in.\n */\n constructor(e, t) {\n super(e, t), this._useMicroSurfaceFromReflectivityMapAlpha = !0;\n }\n /**\n * @returns the current class name of the material.\n */\n getClassName() {\n return \"PBRSpecularGlossinessMaterial\";\n }\n /**\n * Makes a duplicate of the current material.\n * @param name - name to use for the new material.\n * @returns cloned material instance\n */\n clone(e) {\n const t = Ae.Clone(() => new mo(e, this.getScene()), this);\n return t.id = e, t.name = e, this.clearCoat.copyTo(t.clearCoat), this.anisotropy.copyTo(t.anisotropy), this.brdf.copyTo(t.brdf), this.sheen.copyTo(t.sheen), this.subSurface.copyTo(t.subSurface), t;\n }\n /**\n * Serialize the material to a parsable JSON object.\n * @returns the JSON object\n */\n serialize() {\n const e = Ae.Serialize(this);\n return e.customType = \"BABYLON.PBRSpecularGlossinessMaterial\", e.clearCoat = this.clearCoat.serialize(), e.anisotropy = this.anisotropy.serialize(), e.brdf = this.brdf.serialize(), e.sheen = this.sheen.serialize(), e.subSurface = this.subSurface.serialize(), e.iridescence = this.iridescence.serialize(), e;\n }\n /**\n * Parses a JSON object corresponding to the serialize function.\n * @param source - JSON source object.\n * @param scene - the scene to parse to.\n * @param rootUrl - root url of the assets.\n * @returns a new PBRSpecularGlossinessMaterial.\n */\n static Parse(e, t, i) {\n const s = Ae.Parse(() => new mo(e.name, t), e, t, i);\n return e.clearCoat && s.clearCoat.parse(e.clearCoat, t, i), e.anisotropy && s.anisotropy.parse(e.anisotropy, t, i), e.brdf && s.brdf.parse(e.brdf, t, i), e.sheen && s.sheen.parse(e.sheen, t, i), e.subSurface && s.subSurface.parse(e.subSurface, t, i), e.iridescence && s.iridescence.parse(e.iridescence, t, i), s;\n }\n}\ny([\n bi(\"diffuse\"),\n ce(\"_markAllSubMeshesAsTexturesDirty\", \"_albedoColor\")\n], mo.prototype, \"diffuseColor\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\", \"_albedoTexture\")\n], mo.prototype, \"diffuseTexture\", void 0);\ny([\n bi(\"specular\"),\n ce(\"_markAllSubMeshesAsTexturesDirty\", \"_reflectivityColor\")\n], mo.prototype, \"specularColor\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\", \"_microSurface\")\n], mo.prototype, \"glossiness\", void 0);\ny([\n xt(),\n ce(\"_markAllSubMeshesAsTexturesDirty\", \"_reflectivityTexture\")\n], mo.prototype, \"specularGlossinessTexture\", void 0);\nU(\"BABYLON.PBRSpecularGlossinessMaterial\", mo);\nvar DE;\n(function(a) {\n a[a.GLSL = 0] = \"GLSL\", a[a.WGSL = 1] = \"WGSL\";\n})(DE || (DE = {}));\nclass Eh extends Mt {\n /**\n * Instantiates a ColorGradingTexture from the following parameters.\n *\n * @param url The location of the color grading data (currently only supporting 3dl)\n * @param sceneOrEngine The scene or engine the texture will be used in\n * @param onLoad defines a callback triggered when the texture has been loaded\n */\n constructor(e, t, i = null) {\n if (super(t), !!e)\n if (this._textureMatrix = O.Identity(), this.name = e, this.url = e, this._onLoad = i, this._texture = this._getFromCache(e, !0), this._texture)\n this._triggerOnLoad();\n else {\n const s = this.getScene();\n s ? s.useDelayedTextureLoading ? this.delayLoadState = 4 : this._loadTexture() : this._loadTexture();\n }\n }\n /**\n * Fires the onload event from the constructor if requested.\n */\n _triggerOnLoad() {\n this._onLoad && this._onLoad();\n }\n /**\n * @returns the texture matrix used in most of the material.\n * This is not used in color grading but keep for troubleshooting purpose (easily swap diffuse by colorgrading to look in).\n */\n getTextureMatrix() {\n return this._textureMatrix;\n }\n /**\n * Occurs when the file being loaded is a .3dl LUT file.\n * @returns the 3D LUT texture\n */\n _load3dlTexture() {\n const e = this._getEngine();\n let t;\n e._features.support3DTextures ? t = e.createRawTexture3D(null, 1, 1, 1, 5, !1, !1, 2, null, 0) : t = e.createRawTexture(null, 1, 1, 5, !1, !1, 2, null, 0), this._texture = t, this._texture.isReady = !1, this.isCube = !1, this.is3D = e._features.support3DTextures, this.wrapU = 0, this.wrapV = 0, this.wrapR = 0, this.anisotropicFilteringLevel = 1;\n const i = (r) => {\n if (typeof r != \"string\")\n return;\n let n = null, o = null, l;\n const h = r.split(`\n`);\n let c = 0, u = 0, d = 0, f = 0, p = 0;\n for (let _ = 0; _ < h.length; _++) {\n if (l = h[_], !Eh._NoneEmptyLineRegex.test(l) || l.indexOf(\"#\") === 0)\n continue;\n const m = l.split(\" \");\n if (c === 0) {\n c = m.length, n = new Uint8Array(c * c * c * 4), o = new Float32Array(c * c * c * 4);\n continue;\n }\n if (c != 0) {\n const x = Math.max(parseInt(m[0]), 0), v = Math.max(parseInt(m[1]), 0), T = Math.max(parseInt(m[2]), 0);\n p = Math.max(x, p), p = Math.max(v, p), p = Math.max(T, p);\n const E = (u + f * c + d * c * c) * 4;\n o && (o[E + 0] = x, o[E + 1] = v, o[E + 2] = T), d++, d % c == 0 && (f++, d = 0, f % c == 0 && (u++, f = 0));\n }\n }\n if (o && n)\n for (let _ = 0; _ < o.length; _++)\n if (_ > 0 && (_ + 1) % 4 === 0)\n n[_] = 255;\n else {\n const m = o[_];\n n[_] = m / p * 255;\n }\n t.is3D ? (t.updateSize(c, c, c), e.updateRawTexture3D(t, n, 5, !1)) : (t.updateSize(c * c, c), e.updateRawTexture(t, n, 5, !1)), t.isReady = !0, this._triggerOnLoad();\n }, s = this.getScene();\n return s ? s._loadFile(this.url, i) : e._loadFile(this.url, i), this._texture;\n }\n /**\n * Starts the loading process of the texture.\n */\n _loadTexture() {\n this.url && this.url.toLocaleLowerCase().indexOf(\".3dl\") == this.url.length - 4 && this._load3dlTexture();\n }\n /**\n * Clones the color grading texture.\n * @returns the cloned texture\n */\n clone() {\n const e = new Eh(this.url, this.getScene() || this._getEngine());\n return e.level = this.level, e;\n }\n /**\n * Called during delayed load for textures.\n */\n delayLoad() {\n this.delayLoadState === 4 && (this.delayLoadState = 1, this._texture = this._getFromCache(this.url, !0), this._texture || this._loadTexture());\n }\n /**\n * Parses a color grading texture serialized by Babylon.\n * @param parsedTexture The texture information being parsedTexture\n * @param scene The scene to load the texture in\n * @returns A color grading texture\n */\n static Parse(e, t) {\n let i = null;\n return e.name && !e.isRenderTarget && (i = new Eh(e.name, t), i.name = e.name, i.level = e.level), i;\n }\n /**\n * Serializes the LUT texture to json format.\n * @returns The JSON representation of the texture\n */\n serialize() {\n if (!this.name)\n return null;\n const e = {};\n return e.name = this.name, e.level = this.level, e.customType = \"BABYLON.ColorGradingTexture\", e;\n }\n}\nEh._NoneEmptyLineRegex = /\\S+/;\nU(\"BABYLON.ColorGradingTexture\", Eh);\nclass bu extends Mt {\n /**\n * Instantiates an EquiRectangularCubeTexture from the following parameters.\n * @param url The location of the image\n * @param scene The scene the texture will be used in\n * @param size The cubemap desired size (the more it increases the longer the generation will be)\n * @param noMipmap Forces to not generate the mipmap if true\n * @param gammaSpace Specifies if the texture will be used in gamma or linear space\n * (the PBR material requires those textures in linear space, but the standard material would require them in Gamma space)\n * @param onLoad — defines a callback called when texture is loaded\n * @param onError — defines a callback called if there is an error\n * @param supersample — defines if texture must be supersampled (default: false)\n */\n constructor(e, t, i, s = !1, r = !0, n = null, o = null, l = !1) {\n if (super(t), this._onLoad = null, this._onError = null, !e)\n throw new Error(\"Image url is not set\");\n this._coordinatesMode = X.CUBIC_MODE, this.name = e, this.url = e, this._size = i, this._supersample = l, this._noMipmap = s, this.gammaSpace = r, this._onLoad = n, this._onError = o, this.hasAlpha = !1, this.isCube = !0, this._texture = this._getFromCache(e, this._noMipmap, void 0, void 0, void 0, this.isCube), this._texture ? n && (this._texture.isReady ? J.SetImmediate(() => n()) : this._texture.onLoadedObservable.add(n)) : t.useDelayedTextureLoading ? this.delayLoadState = 4 : this._loadImage(() => this._loadTexture(), this._onError);\n }\n /**\n * Load the image data, by putting the image on a canvas and extracting its buffer.\n * @param loadTextureCallback\n * @param onError\n */\n _loadImage(e, t) {\n const i = this.getScene();\n if (!i)\n return;\n const s = i.getEngine().createRawCubeTexture(null, this._size, 4, i.getEngine().getCaps().textureFloat ? 1 : 7, !this._noMipmap, !1, 3);\n s.generateMipMaps = !this._noMipmap, i.addPendingData(s), s.url = this.url, s.isReady = !1, i.getEngine()._internalTexturesCache.push(s), this._texture = s;\n const r = document.createElement(\"canvas\");\n rf(this.url, (n) => {\n this._width = n.width, this._height = n.height, r.width = this._width, r.height = this._height;\n const o = r.getContext(\"2d\");\n o.drawImage(n, 0, 0);\n const l = o.getImageData(0, 0, n.width, n.height);\n this._buffer = l.data.buffer, r.remove(), e();\n }, (n, o) => {\n i.removePendingData(s), t && t(`${this.getClassName()} could not be loaded`, o);\n }, i ? i.offlineProvider : null);\n }\n /**\n * Convert the image buffer into a cubemap and create a CubeTexture.\n */\n _loadTexture() {\n const e = this.getScene(), t = () => {\n const r = this._getFloat32ArrayFromArrayBuffer(this._buffer), n = nl.ConvertPanoramaToCubemap(r, this._width, this._height, this._size, this._supersample), o = [];\n for (let l = 0; l < 6; l++) {\n const h = n[bu._FacesMapping[l]];\n o.push(h);\n }\n return o;\n };\n if (!e)\n return;\n const i = t(), s = this._texture;\n e.getEngine().updateRawCubeTexture(s, i, s.format, s.type, s.invertY), s.isReady = !0, e.removePendingData(s), s.onLoadedObservable.notifyObservers(s), s.onLoadedObservable.clear(), this._onLoad && this._onLoad();\n }\n /**\n * Convert the ArrayBuffer into a Float32Array and drop the transparency channel.\n * @param buffer The ArrayBuffer that should be converted.\n * @returns The buffer as Float32Array.\n */\n _getFloat32ArrayFromArrayBuffer(e) {\n const t = new DataView(e), i = new Float32Array(e.byteLength * 3 / 4);\n let s = 0;\n for (let r = 0; r < e.byteLength; r++)\n (r + 1) % 4 !== 0 && (i[s++] = t.getUint8(r) / 255);\n return i;\n }\n /**\n * Get the current class name of the texture useful for serialization or dynamic coding.\n * @returns \"EquiRectangularCubeTexture\"\n */\n getClassName() {\n return \"EquiRectangularCubeTexture\";\n }\n /**\n * Create a clone of the current EquiRectangularCubeTexture and return it.\n * @returns A clone of the current EquiRectangularCubeTexture.\n */\n clone() {\n const e = this.getScene();\n if (!e)\n return this;\n const t = new bu(this.url, e, this._size, this._noMipmap, this.gammaSpace);\n return t.level = this.level, t.wrapU = this.wrapU, t.wrapV = this.wrapV, t.coordinatesIndex = this.coordinatesIndex, t.coordinatesMode = this.coordinatesMode, t;\n }\n}\nbu._FacesMapping = [\"right\", \"left\", \"up\", \"down\", \"front\", \"back\"];\nclass Dv extends Mt {\n /**\n * Instantiates a HtmlElementTexture from the following parameters.\n *\n * @param name Defines the name of the texture\n * @param element Defines the video or canvas the texture is filled with\n * @param options Defines the other none mandatory texture creation options\n */\n constructor(e, t, i) {\n if (super(i.scene || i.engine), this.onLoadObservable = new G(), !(!t || !i.engine && !i.scene)) {\n if (i = {\n ...Dv._DefaultOptions,\n ...i\n }, this._generateMipMaps = i.generateMipMaps, this._samplingMode = i.samplingMode, this._textureMatrix = O.Identity(), this._format = i.format, this.name = e, this.element = t, this._isVideo = !!t.getVideoPlaybackQuality, this._isVideo) {\n const s = this._engine, r = s == null ? void 0 : s.createExternalTexture;\n r && (this._externalTexture = r.call(s, t));\n }\n this.anisotropicFilteringLevel = 1, this._createInternalTexture();\n }\n }\n _createInternalTexture() {\n let e = 0, t = 0;\n this._isVideo ? (e = this.element.videoWidth, t = this.element.videoHeight) : (e = this.element.width, t = this.element.height);\n const i = this._getEngine();\n i && (this._texture = i.createDynamicTexture(e, t, this._generateMipMaps, this._samplingMode), this._texture.format = this._format), this.update();\n }\n /**\n * @returns the texture matrix used in most of the material.\n */\n getTextureMatrix() {\n return this._textureMatrix;\n }\n /**\n * Updates the content of the texture.\n * @param invertY Defines whether the texture should be inverted on Y (false by default on video and true on canvas)\n */\n update(e = null) {\n const t = this._getEngine();\n if (this._texture == null || t == null)\n return;\n const i = this.isReady();\n if (this._isVideo) {\n const s = this.element;\n if (s.readyState < s.HAVE_CURRENT_DATA)\n return;\n t.updateVideoTexture(this._texture, this._externalTexture ? this._externalTexture : s, e === null ? !0 : e);\n } else {\n const s = this.element;\n t.updateDynamicTexture(this._texture, s, e === null ? !0 : e, !1, this._format);\n }\n !i && this.isReady() && this.onLoadObservable.notifyObservers(this);\n }\n /**\n * Dispose the texture and release its associated resources.\n */\n dispose() {\n this.onLoadObservable.clear(), super.dispose();\n }\n}\nDv._DefaultOptions = {\n generateMipMaps: !1,\n samplingMode: 2,\n format: 5,\n engine: null,\n scene: null\n};\nconst rU = 1, nU = 2, aU = 3, oU = 9, lU = 10, hU = 11, cU = 48, uU = 4, dU = 0, fU = 1, pU = 2, _U = 3;\nfunction im(a) {\n let e = 0;\n return {\n id_length: a[e++],\n colormap_type: a[e++],\n image_type: a[e++],\n colormap_index: a[e++] | a[e++] << 8,\n colormap_length: a[e++] | a[e++] << 8,\n colormap_size: a[e++],\n origin: [a[e++] | a[e++] << 8, a[e++] | a[e++] << 8],\n width: a[e++] | a[e++] << 8,\n height: a[e++] | a[e++] << 8,\n pixel_size: a[e++],\n flags: a[e++]\n };\n}\nfunction rA(a, e) {\n if (e.length < 19) {\n L.Error(\"Unable to load TGA file - Not enough data to contain header\");\n return;\n }\n let t = 18;\n const i = im(e);\n if (i.id_length + t > e.length) {\n L.Error(\"Unable to load TGA file - Not enough data\");\n return;\n }\n t += i.id_length;\n let s = !1, r = !1, n = !1;\n switch (i.image_type) {\n case oU:\n s = !0;\n case rU:\n r = !0;\n break;\n case lU:\n s = !0;\n case nU:\n break;\n case hU:\n s = !0;\n case aU:\n n = !0;\n break;\n }\n let o;\n const l = i.pixel_size >> 3, h = i.width * i.height * l;\n let c;\n if (r && (c = e.subarray(t, t += i.colormap_length * (i.colormap_size >> 3))), s) {\n o = new Uint8Array(h);\n let E, b, S, C = 0;\n const P = new Uint8Array(l);\n for (; t < h && C < h; )\n if (E = e[t++], b = (E & 127) + 1, E & 128) {\n for (S = 0; S < l; ++S)\n P[S] = e[t++];\n for (S = 0; S < b; ++S)\n o.set(P, C + S * l);\n C += l * b;\n } else {\n for (b *= l, S = 0; S < b; ++S)\n o[C + S] = e[t++];\n C += b;\n }\n } else\n o = e.subarray(t, t += r ? i.width * i.height : h);\n let u, d, f, p, _, m;\n switch ((i.flags & cU) >> uU) {\n default:\n case pU:\n u = 0, f = 1, m = i.width, d = 0, p = 1, _ = i.height;\n break;\n case dU:\n u = 0, f = 1, m = i.width, d = i.height - 1, p = -1, _ = -1;\n break;\n case _U:\n u = i.width - 1, f = -1, m = -1, d = 0, p = 1, _ = i.height;\n break;\n case fU:\n u = i.width - 1, f = -1, m = -1, d = i.height - 1, p = -1, _ = -1;\n break;\n }\n const x = \"_getImageData\" + (n ? \"Grey\" : \"\") + i.pixel_size + \"bits\", v = bU[x](i, c, o, d, p, _, u, f, m);\n a.getEngine()._uploadDataToTextureDirectly(a, v);\n}\nfunction mU(a, e, t, i, s, r, n, o, l) {\n const h = t, c = e, u = a.width, d = a.height;\n let f, p = 0, _, m;\n const x = new Uint8Array(u * d * 4);\n for (m = i; m !== r; m += s)\n for (_ = n; _ !== l; _ += o, p++)\n f = h[p], x[(_ + u * m) * 4 + 3] = 255, x[(_ + u * m) * 4 + 2] = c[f * 3 + 0], x[(_ + u * m) * 4 + 1] = c[f * 3 + 1], x[(_ + u * m) * 4 + 0] = c[f * 3 + 2];\n return x;\n}\nfunction gU(a, e, t, i, s, r, n, o, l) {\n const h = t, c = a.width, u = a.height;\n let d, f = 0, p, _;\n const m = new Uint8Array(c * u * 4);\n for (_ = i; _ !== r; _ += s)\n for (p = n; p !== l; p += o, f += 2) {\n d = h[f + 0] + (h[f + 1] << 8);\n const x = ((d & 31744) >> 10) * 255 / 31 | 0, v = ((d & 992) >> 5) * 255 / 31 | 0, T = (d & 31) * 255 / 31 | 0;\n m[(p + c * _) * 4 + 0] = x, m[(p + c * _) * 4 + 1] = v, m[(p + c * _) * 4 + 2] = T, m[(p + c * _) * 4 + 3] = d & 32768 ? 0 : 255;\n }\n return m;\n}\nfunction xU(a, e, t, i, s, r, n, o, l) {\n const h = t, c = a.width, u = a.height;\n let d = 0, f, p;\n const _ = new Uint8Array(c * u * 4);\n for (p = i; p !== r; p += s)\n for (f = n; f !== l; f += o, d += 3)\n _[(f + c * p) * 4 + 3] = 255, _[(f + c * p) * 4 + 2] = h[d + 0], _[(f + c * p) * 4 + 1] = h[d + 1], _[(f + c * p) * 4 + 0] = h[d + 2];\n return _;\n}\nfunction vU(a, e, t, i, s, r, n, o, l) {\n const h = t, c = a.width, u = a.height;\n let d = 0, f, p;\n const _ = new Uint8Array(c * u * 4);\n for (p = i; p !== r; p += s)\n for (f = n; f !== l; f += o, d += 4)\n _[(f + c * p) * 4 + 2] = h[d + 0], _[(f + c * p) * 4 + 1] = h[d + 1], _[(f + c * p) * 4 + 0] = h[d + 2], _[(f + c * p) * 4 + 3] = h[d + 3];\n return _;\n}\nfunction TU(a, e, t, i, s, r, n, o, l) {\n const h = t, c = a.width, u = a.height;\n let d, f = 0, p, _;\n const m = new Uint8Array(c * u * 4);\n for (_ = i; _ !== r; _ += s)\n for (p = n; p !== l; p += o, f++)\n d = h[f], m[(p + c * _) * 4 + 0] = d, m[(p + c * _) * 4 + 1] = d, m[(p + c * _) * 4 + 2] = d, m[(p + c * _) * 4 + 3] = 255;\n return m;\n}\nfunction SU(a, e, t, i, s, r, n, o, l) {\n const h = t, c = a.width, u = a.height;\n let d = 0, f, p;\n const _ = new Uint8Array(c * u * 4);\n for (p = i; p !== r; p += s)\n for (f = n; f !== l; f += o, d += 2)\n _[(f + c * p) * 4 + 0] = h[d + 0], _[(f + c * p) * 4 + 1] = h[d + 0], _[(f + c * p) * 4 + 2] = h[d + 0], _[(f + c * p) * 4 + 3] = h[d + 1];\n return _;\n}\nconst bU = {\n /**\n * Gets the header of a TGA file\n * @param data defines the TGA data\n * @returns the header\n */\n GetTGAHeader: im,\n /**\n * Uploads TGA content to a Babylon Texture\n * @internal\n */\n UploadContent: rA,\n /** @internal */\n _getImageData8bits: mU,\n /** @internal */\n _getImageData16bits: gU,\n /** @internal */\n _getImageData24bits: xU,\n /** @internal */\n _getImageData32bits: vU,\n /** @internal */\n _getImageDataGrey8bits: TU,\n /** @internal */\n _getImageDataGrey16bits: SU\n};\nclass EU {\n constructor() {\n this.supportCascades = !1;\n }\n /**\n * This returns if the loader support the current file information.\n * @param extension defines the file extension of the file being loaded\n * @returns true if the loader can load the specified file\n */\n canLoad(e) {\n return e.endsWith(\".tga\");\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n */\n loadCubeData() {\n throw \".env not supported in Cube.\";\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param callback defines the method to call once ready to upload\n */\n loadData(e, t, i) {\n const s = new Uint8Array(e.buffer, e.byteOffset, e.byteLength), r = im(s);\n i(r.width, r.height, t.generateMipMaps, !1, () => {\n rA(t, s);\n });\n }\n}\nee._TextureLoaders.push(new EU());\nclass yU {\n constructor() {\n this.supportCascades = !1;\n }\n /**\n * This returns if the loader support the current file information.\n * @param extension defines the file extension of the file being loaded\n * @returns true if the loader can load the specified file\n */\n canLoad(e) {\n return e.endsWith(\".hdr\");\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n */\n loadCubeData() {\n throw \".env not supported in Cube.\";\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param callback defines the method to call once ready to upload\n */\n loadData(e, t, i) {\n const s = new Uint8Array(e.buffer, e.byteOffset, e.byteLength), r = Vg.RGBE_ReadHeader(s), n = Vg.RGBE_ReadPixels(s, r), o = r.width * r.height, l = new Float32Array(o * 4);\n for (let h = 0; h < o; h += 1)\n l[h * 4] = n[h * 3], l[h * 4 + 1] = n[h * 3 + 1], l[h * 4 + 2] = n[h * 3 + 2], l[h * 4 + 3] = 1;\n i(r.width, r.height, t.generateMipMaps, !1, () => {\n const h = t.getEngine();\n t.type = 1, t.format = 5, t._gammaSpace = !1, h._uploadDataToTextureDirectly(t, l);\n });\n }\n}\nee._TextureLoaders.push(new yU());\nfunction CU() {\n const a = {\n cTFETC1: 0,\n cTFETC2: 1,\n cTFBC1: 2,\n cTFBC3: 3,\n cTFBC4: 4,\n cTFBC5: 5,\n cTFBC7: 6,\n cTFPVRTC1_4_RGB: 8,\n cTFPVRTC1_4_RGBA: 9,\n cTFASTC_4x4: 10,\n cTFATC_RGB: 11,\n cTFATC_RGBA_INTERPOLATED_ALPHA: 12,\n cTFRGBA32: 13,\n cTFRGB565: 14,\n cTFBGR565: 15,\n cTFRGBA4444: 16,\n cTFFXT1_RGB: 17,\n cTFPVRTC2_4_RGB: 18,\n cTFPVRTC2_4_RGBA: 19,\n cTFETC2_EAC_R11: 20,\n cTFETC2_EAC_RG11: 21\n };\n let e = null;\n onmessage = (n) => {\n if (n.data.action === \"init\") {\n if (n.data.url)\n try {\n importScripts(n.data.url);\n } catch (o) {\n postMessage({ action: \"error\", error: o });\n }\n e || (e = BASIS({\n // Override wasm binary\n wasmBinary: n.data.wasmBinary\n })), e !== null && e.then((o) => {\n BASIS = o, o.initializeBasis(), postMessage({ action: \"init\" });\n });\n } else if (n.data.action === \"transcode\") {\n const o = n.data.config, l = n.data.imageData, h = new BASIS.BasisFile(l), c = i(h);\n let u = n.data.ignoreSupportedFormats ? null : t(n.data.config, c), d = !1;\n u === null && (d = !0, u = c.hasAlpha ? a.cTFBC3 : a.cTFBC1);\n let f = !0;\n h.startTranscoding() || (f = !1);\n const p = [];\n for (let _ = 0; _ < c.images.length && f; _++) {\n const m = c.images[_];\n if (o.loadSingleImage === void 0 || o.loadSingleImage === _) {\n let x = m.levels.length;\n o.loadMipmapLevels === !1 && (x = 1);\n for (let v = 0; v < x; v++) {\n const T = m.levels[v], E = s(h, _, v, u, d);\n if (!E) {\n f = !1;\n break;\n }\n T.transcodedPixels = E, p.push(T.transcodedPixels.buffer);\n }\n }\n }\n h.close(), h.delete(), d && (u = -1), f ? postMessage({ action: \"transcode\", success: f, id: n.data.id, fileInfo: c, format: u }, p) : postMessage({ action: \"transcode\", success: f, id: n.data.id });\n }\n };\n function t(n, o) {\n let l = null;\n return n.supportedCompressionFormats && (n.supportedCompressionFormats.astc ? l = a.cTFASTC_4x4 : n.supportedCompressionFormats.bc7 ? l = a.cTFBC7 : n.supportedCompressionFormats.s3tc ? l = o.hasAlpha ? a.cTFBC3 : a.cTFBC1 : n.supportedCompressionFormats.pvrtc ? l = o.hasAlpha ? a.cTFPVRTC1_4_RGBA : a.cTFPVRTC1_4_RGB : n.supportedCompressionFormats.etc2 ? l = a.cTFETC2 : n.supportedCompressionFormats.etc1 ? l = a.cTFETC1 : l = a.cTFRGB565), l;\n }\n function i(n) {\n const o = n.getHasAlpha(), l = n.getNumImages(), h = [];\n for (let u = 0; u < l; u++) {\n const d = {\n levels: []\n }, f = n.getNumLevels(u);\n for (let p = 0; p < f; p++) {\n const _ = {\n width: n.getImageWidth(u, p),\n height: n.getImageHeight(u, p)\n };\n d.levels.push(_);\n }\n h.push(d);\n }\n return { hasAlpha: o, images: h };\n }\n function s(n, o, l, h, c) {\n const u = n.getImageTranscodedSizeInBytes(o, l, h);\n let d = new Uint8Array(u);\n if (!n.transcodeImage(d, o, l, h, 1, 0))\n return null;\n if (c) {\n const f = n.getImageWidth(o, l) + 3 & -4, p = n.getImageHeight(o, l) + 3 & -4;\n d = r(d, 0, f, p);\n }\n return d;\n }\n function r(n, o, l, h) {\n const c = new Uint16Array(4), u = new Uint16Array(l * h), d = l / 4, f = h / 4;\n for (let p = 0; p < f; p++)\n for (let _ = 0; _ < d; _++) {\n const m = o + 8 * (p * d + _);\n c[0] = n[m] | n[m + 1] << 8, c[1] = n[m + 2] | n[m + 3] << 8, c[2] = (2 * (c[0] & 31) + 1 * (c[1] & 31)) / 3 | (2 * (c[0] & 2016) + 1 * (c[1] & 2016)) / 3 & 2016 | (2 * (c[0] & 63488) + 1 * (c[1] & 63488)) / 3 & 63488, c[3] = (2 * (c[1] & 31) + 1 * (c[0] & 31)) / 3 | (2 * (c[1] & 2016) + 1 * (c[0] & 2016)) / 3 & 2016 | (2 * (c[1] & 63488) + 1 * (c[0] & 63488)) / 3 & 63488;\n for (let x = 0; x < 4; x++) {\n const v = n[m + 4 + x];\n let T = (p * 4 + x) * l + _ * 4;\n u[T++] = c[v & 3], u[T++] = c[v >> 2 & 3], u[T++] = c[v >> 4 & 3], u[T++] = c[v >> 6 & 3];\n }\n }\n return u;\n }\n}\nfunction AU(a, e, t) {\n return new Promise((i, s) => {\n const r = (n) => {\n n.data.action === \"init\" ? (a.removeEventListener(\"message\", r), i(a)) : n.data.action === \"error\" && s(n.data.error || \"error initializing worker\");\n };\n a.addEventListener(\"message\", r), a.postMessage({ action: \"init\", url: t ? J.GetBabylonScriptURL(t) : void 0, wasmBinary: e }, [e]);\n });\n}\nclass GK {\n}\nclass zK {\n}\nvar ja;\n(function(a) {\n a[a.cTFETC1 = 0] = \"cTFETC1\", a[a.cTFETC2 = 1] = \"cTFETC2\", a[a.cTFBC1 = 2] = \"cTFBC1\", a[a.cTFBC3 = 3] = \"cTFBC3\", a[a.cTFBC4 = 4] = \"cTFBC4\", a[a.cTFBC5 = 5] = \"cTFBC5\", a[a.cTFBC7 = 6] = \"cTFBC7\", a[a.cTFPVRTC1_4_RGB = 8] = \"cTFPVRTC1_4_RGB\", a[a.cTFPVRTC1_4_RGBA = 9] = \"cTFPVRTC1_4_RGBA\", a[a.cTFASTC_4x4 = 10] = \"cTFASTC_4x4\", a[a.cTFATC_RGB = 11] = \"cTFATC_RGB\", a[a.cTFATC_RGBA_INTERPOLATED_ALPHA = 12] = \"cTFATC_RGBA_INTERPOLATED_ALPHA\", a[a.cTFRGBA32 = 13] = \"cTFRGBA32\", a[a.cTFRGB565 = 14] = \"cTFRGB565\", a[a.cTFBGR565 = 15] = \"cTFBGR565\", a[a.cTFRGBA4444 = 16] = \"cTFRGBA4444\", a[a.cTFFXT1_RGB = 17] = \"cTFFXT1_RGB\", a[a.cTFPVRTC2_4_RGB = 18] = \"cTFPVRTC2_4_RGB\", a[a.cTFPVRTC2_4_RGBA = 19] = \"cTFPVRTC2_4_RGBA\", a[a.cTFETC2_EAC_R11 = 20] = \"cTFETC2_EAC_R11\", a[a.cTFETC2_EAC_RG11 = 21] = \"cTFETC2_EAC_RG11\";\n})(ja || (ja = {}));\nconst el = {\n /**\n * URL to use when loading the basis transcoder\n */\n JSModuleURL: `${J._DefaultCdnUrl}/basisTranscoder/1/basis_transcoder.js`,\n /**\n * URL to use when loading the wasm module for the transcoder\n */\n WasmModuleURL: `${J._DefaultCdnUrl}/basisTranscoder/1/basis_transcoder.wasm`\n}, RU = (a, e) => {\n let t;\n switch (a) {\n case ja.cTFETC1:\n t = 36196;\n break;\n case ja.cTFBC1:\n t = 33776;\n break;\n case ja.cTFBC4:\n t = 33779;\n break;\n case ja.cTFASTC_4x4:\n t = 37808;\n break;\n case ja.cTFETC2:\n t = 37496;\n break;\n case ja.cTFBC7:\n t = 36492;\n break;\n }\n if (t === void 0)\n throw \"The chosen Basis transcoder format is not currently supported\";\n return t;\n};\nlet eg = null, Uo = null, IU = 0;\nconst PU = !1, MU = () => (eg || (eg = new Promise((a, e) => {\n Uo ? a(Uo) : J.LoadFileAsync(J.GetBabylonScriptURL(el.WasmModuleURL)).then((t) => {\n if (typeof URL != \"function\")\n return e(\"Basis transcoder requires an environment with a URL constructor\");\n const i = URL.createObjectURL(new Blob([`(${CU})()`], { type: \"application/javascript\" }));\n Uo = new Worker(i), AU(Uo, t, el.JSModuleURL).then(a, e);\n }).catch(e);\n})), eg), WK = (a) => {\n Uo = a;\n}, kg = (a, e) => {\n const t = a instanceof ArrayBuffer ? new Uint8Array(a) : a;\n return new Promise((i, s) => {\n MU().then(() => {\n const r = IU++, n = (l) => {\n l.data.action === \"transcode\" && l.data.id === r && (Uo.removeEventListener(\"message\", n), l.data.success ? i(l.data) : s(\"Transcode is not supported on this device\"));\n };\n Uo.addEventListener(\"message\", n);\n const o = new Uint8Array(t.byteLength);\n o.set(new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), Uo.postMessage({ action: \"transcode\", id: r, imageData: o, config: e, ignoreSupportedFormats: PU }, [\n o.buffer\n ]);\n }, (r) => {\n s(r);\n });\n });\n}, lp = (a, e) => {\n var i, s;\n let t = (i = e._gl) == null ? void 0 : i.TEXTURE_2D;\n a.isCube && (t = (s = e._gl) == null ? void 0 : s.TEXTURE_CUBE_MAP), e._bindTextureDirectly(t, a, !0);\n}, Gg = (a, e) => {\n const t = a.getEngine();\n for (let i = 0; i < e.fileInfo.images.length; i++) {\n const s = e.fileInfo.images[i].levels[0];\n if (a._invertVScale = a.invertY, e.format === -1 || e.format === ja.cTFRGB565)\n if (a.type = 10, a.format = 4, t._features.basisNeedsPOT && (Re.Log2(s.width) % 1 !== 0 || Re.Log2(s.height) % 1 !== 0)) {\n const r = new Nt(\n t,\n 2\n /* InternalTextureSource.Temp */\n );\n a._invertVScale = a.invertY, r.type = 10, r.format = 4, r.width = s.width + 3 & -4, r.height = s.height + 3 & -4, lp(r, t), t._uploadDataToTextureDirectly(r, new Uint16Array(s.transcodedPixels.buffer), i, 0, 4, !0), t._rescaleTexture(r, a, t.scenes[0], t._getInternalFormat(4), () => {\n t._releaseTexture(r), lp(a, t);\n });\n } else\n a._invertVScale = !a.invertY, a.width = s.width + 3 & -4, a.height = s.height + 3 & -4, a.samplingMode = 2, lp(a, t), t._uploadDataToTextureDirectly(a, new Uint16Array(s.transcodedPixels.buffer), i, 0, 4, !0);\n else {\n a.width = s.width, a.height = s.height, a.generateMipMaps = e.fileInfo.images[i].levels.length > 1;\n const r = Ov.GetInternalFormatFromBasisFormat(e.format, t);\n a.format = r, lp(a, t), e.fileInfo.images[i].levels.forEach((n, o) => {\n t._uploadCompressedDataToTextureDirectly(a, r, n.width, n.height, n.transcodedPixels, i, o);\n }), t._features.basisNeedsPOT && (Re.Log2(a.width) % 1 !== 0 || Re.Log2(a.height) % 1 !== 0) && (J.Warn(\"Loaded .basis texture width and height are not a power of two. Texture wrapping will be set to Texture.CLAMP_ADDRESSMODE as other modes are not supported with non power of two dimensions in webGL 1.\"), a._cachedWrapU = X.CLAMP_ADDRESSMODE, a._cachedWrapV = X.CLAMP_ADDRESSMODE);\n }\n }\n}, Ov = {\n /**\n * URL to use when loading the basis transcoder\n */\n JSModuleURL: el.JSModuleURL,\n /**\n * URL to use when loading the wasm module for the transcoder\n */\n WasmModuleURL: el.WasmModuleURL,\n /**\n * Get the internal format to be passed to texImage2D corresponding to the .basis format value\n * @param basisFormat format chosen from GetSupportedTranscodeFormat\n * @returns internal format corresponding to the Basis format\n */\n GetInternalFormatFromBasisFormat: RU,\n /**\n * Transcodes a loaded image file to compressed pixel data\n * @param data image data to transcode\n * @param config configuration options for the transcoding\n * @returns a promise resulting in the transcoded image\n */\n TranscodeAsync: kg,\n /**\n * Loads a texture from the transcode result\n * @param texture texture load to\n * @param transcodeResult the result of transcoding the basis file to load from\n */\n LoadTextureFromTranscodeResult: Gg\n};\nObject.defineProperty(Ov, \"JSModuleURL\", {\n get: function() {\n return el.JSModuleURL;\n },\n set: function(a) {\n el.JSModuleURL = a;\n }\n});\nObject.defineProperty(Ov, \"WasmModuleURL\", {\n get: function() {\n return el.WasmModuleURL;\n },\n set: function(a) {\n el.WasmModuleURL = a;\n }\n});\nclass DU {\n constructor() {\n this.supportCascades = !1;\n }\n /**\n * This returns if the loader support the current file information.\n * @param extension defines the file extension of the file being loaded\n * @returns true if the loader can load the specified file\n */\n canLoad(e) {\n return e.endsWith(\".basis\");\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param createPolynomials will be true if polynomials have been requested\n * @param onLoad defines the callback to trigger once the texture is ready\n * @param onError defines the callback to trigger in case of error\n */\n loadCubeData(e, t, i, s, r) {\n if (Array.isArray(e))\n return;\n const n = t.getEngine().getCaps(), o = {\n supportedCompressionFormats: {\n etc1: !!n.etc1,\n s3tc: !!n.s3tc,\n pvrtc: !!n.pvrtc,\n etc2: !!n.etc2,\n astc: !!n.astc,\n bc7: !!n.bptc\n }\n };\n kg(e, o).then((l) => {\n const h = l.fileInfo.images[0].levels.length > 1 && t.generateMipMaps;\n Gg(t, l), t.getEngine()._setCubeMapTextureParams(t, h), t.isReady = !0, t.onLoadedObservable.notifyObservers(t), t.onLoadedObservable.clear(), s && s();\n }).catch((l) => {\n J.Warn(\"Failed to transcode Basis file, transcoding may not be supported on this device\"), t.isReady = !0, r && r(l);\n });\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param callback defines the method to call once ready to upload\n */\n loadData(e, t, i) {\n const s = t.getEngine().getCaps(), r = {\n supportedCompressionFormats: {\n etc1: !!s.etc1,\n s3tc: !!s.s3tc,\n pvrtc: !!s.pvrtc,\n etc2: !!s.etc2,\n astc: !!s.astc,\n bc7: !!s.bptc\n }\n };\n kg(e, r).then((n) => {\n const o = n.fileInfo.images[0].levels[0], l = n.fileInfo.images[0].levels.length > 1 && t.generateMipMaps;\n i(o.width, o.height, l, n.format !== -1, () => {\n Gg(t, n);\n });\n }).catch((n) => {\n J.Warn(\"Failed to transcode Basis file, transcoding may not be supported on this device\"), J.Warn(`Failed to transcode Basis file: ${n}`), i(0, 0, !1, !1, () => {\n }, !0);\n });\n }\n}\nwe._TextureLoaders.push(new DU());\nclass Oo extends Ii {\n /**\n * Get if draw buffers (render textures) are currently supported by the used hardware and browser.\n */\n get isSupported() {\n var e;\n return ((e = this._engine) == null ? void 0 : e.getCaps().drawBuffersExtension) ?? !1;\n }\n /**\n * Get the list of textures generated by the multi render target.\n */\n get textures() {\n return this._textures;\n }\n /**\n * Gets the number of textures in this MRT. This number can be different from `_textures.length` in case a depth texture is generated.\n */\n get count() {\n return this._count;\n }\n /**\n * Get the depth texture generated by the multi render target if options.generateDepthTexture has been set\n */\n get depthTexture() {\n return this._textures[this._textures.length - 1];\n }\n /**\n * Set the wrapping mode on U of all the textures we are rendering to.\n * Can be any of the Texture. (CLAMP_ADDRESSMODE, MIRROR_ADDRESSMODE or WRAP_ADDRESSMODE)\n */\n set wrapU(e) {\n if (this._textures)\n for (let t = 0; t < this._textures.length; t++)\n this._textures[t].wrapU = e;\n }\n /**\n * Set the wrapping mode on V of all the textures we are rendering to.\n * Can be any of the Texture. (CLAMP_ADDRESSMODE, MIRROR_ADDRESSMODE or WRAP_ADDRESSMODE)\n */\n set wrapV(e) {\n if (this._textures)\n for (let t = 0; t < this._textures.length; t++)\n this._textures[t].wrapV = e;\n }\n /**\n * Instantiate a new multi render target texture.\n * A multi render target, like a render target provides the ability to render to a texture.\n * Unlike the render target, it can render to several draw buffers (render textures) in one draw.\n * This is specially interesting in deferred rendering or for any effects requiring more than\n * just one color from a single pass.\n * @param name Define the name of the texture\n * @param size Define the size of the buffers to render to\n * @param count Define the number of target we are rendering into\n * @param scene Define the scene the texture belongs to\n * @param options Define the options used to create the multi render target\n * @param textureNames Define the names to set to the textures (if count \\> 0 - optional)\n */\n constructor(e, t, i, s, r, n) {\n const o = r && r.generateMipMaps ? r.generateMipMaps : !1, l = r && r.generateDepthTexture ? r.generateDepthTexture : !1, h = r && r.depthTextureFormat ? r.depthTextureFormat : 15, c = !r || r.doNotChangeAspectRatio === void 0 ? !0 : r.doNotChangeAspectRatio, u = r && r.drawOnlyOnFirstAttachmentByDefault ? r.drawOnlyOnFirstAttachmentByDefault : !1;\n if (super(e, t, s, o, c, void 0, void 0, void 0, void 0, void 0, void 0, void 0, !0), !this.isSupported) {\n this.dispose();\n return;\n }\n this._textureNames = n;\n const d = [], f = [], p = [], _ = [], m = [], x = [], v = [], T = [];\n this._initTypes(i, d, f, p, _, m, x, v, T, r);\n const E = !r || r.generateDepthBuffer === void 0 ? !0 : r.generateDepthBuffer, b = !r || r.generateStencilBuffer === void 0 ? !1 : r.generateStencilBuffer;\n this._multiRenderTargetOptions = {\n samplingModes: f,\n generateMipMaps: o,\n generateDepthBuffer: E,\n generateStencilBuffer: b,\n generateDepthTexture: l,\n depthTextureFormat: h,\n types: d,\n textureCount: i,\n useSRGBBuffers: p,\n formats: _,\n targetTypes: m,\n faceIndex: x,\n layerIndex: v,\n layerCounts: T,\n labels: n,\n label: e\n }, this._count = i, this._drawOnlyOnFirstAttachmentByDefault = u, i > 0 && (this._createInternalTextures(), this._createTextures(n));\n }\n _initTypes(e, t, i, s, r, n, o, l, h, c) {\n for (let u = 0; u < e; u++)\n c && c.types && c.types[u] !== void 0 ? t.push(c.types[u]) : t.push(c && c.defaultType ? c.defaultType : 0), c && c.samplingModes && c.samplingModes[u] !== void 0 ? i.push(c.samplingModes[u]) : i.push(X.BILINEAR_SAMPLINGMODE), c && c.useSRGBBuffers && c.useSRGBBuffers[u] !== void 0 ? s.push(c.useSRGBBuffers[u]) : s.push(!1), c && c.formats && c.formats[u] !== void 0 ? r.push(c.formats[u]) : r.push(5), c && c.targetTypes && c.targetTypes[u] !== void 0 ? n.push(c.targetTypes[u]) : n.push(3553), c && c.faceIndex && c.faceIndex[u] !== void 0 ? o.push(c.faceIndex[u]) : o.push(0), c && c.layerIndex && c.layerIndex[u] !== void 0 ? l.push(c.layerIndex[u]) : l.push(0), c && c.layerCounts && c.layerCounts[u] !== void 0 ? h.push(c.layerCounts[u]) : h.push(1);\n }\n _createInternaTextureIndexMapping() {\n const e = {}, t = [];\n if (!this._renderTarget)\n return t;\n const i = this._renderTarget.textures;\n for (let s = 0; s < i.length; s++) {\n const r = i[s];\n if (!r)\n continue;\n const n = e[r.uniqueId];\n n !== void 0 ? t[s] = n : e[r.uniqueId] = s;\n }\n return t;\n }\n /**\n * @internal\n */\n _rebuild(e = !1, t = !1, i) {\n if (this._count < 1 || e)\n return;\n const s = this._createInternaTextureIndexMapping();\n this.releaseInternalTextures(), this._createInternalTextures(), t && (this._releaseTextures(), this._createTextures(i));\n const r = this._renderTarget.textures;\n for (let n = 0; n < r.length; n++) {\n const o = this._textures[n];\n s[n] !== void 0 && this._renderTarget.setTexture(r[s[n]], n), o._texture = r[n], o._texture && (o._noMipmap = !o._texture.useMipMaps, o._useSRGBBuffer = o._texture._useSRGBBuffer);\n }\n this.samples !== 1 && this._renderTarget.setSamples(this.samples, !this._drawOnlyOnFirstAttachmentByDefault, !0);\n }\n _createInternalTextures() {\n this._renderTarget = this._getEngine().createMultipleRenderTarget(this._size, this._multiRenderTargetOptions, !this._drawOnlyOnFirstAttachmentByDefault), this._texture = this._renderTarget.texture;\n }\n _releaseTextures() {\n if (this._textures)\n for (let e = 0; e < this._textures.length; e++)\n this._textures[e]._texture = null, this._textures[e].dispose();\n }\n _createTextures(e) {\n const t = this._renderTarget.textures;\n this._textures = [];\n for (let i = 0; i < t.length; i++) {\n const s = new X(null, this.getScene());\n e != null && e[i] && (s.name = e[i]), s._texture = t[i], s._texture && (s._noMipmap = !s._texture.useMipMaps, s._useSRGBBuffer = s._texture._useSRGBBuffer), this._textures.push(s);\n }\n }\n /**\n * Replaces an internal texture within the MRT. Useful to share textures between MultiRenderTarget.\n * @param texture The new texture to set in the MRT\n * @param index The index of the texture to replace\n * @param disposePrevious Set to true if the previous internal texture should be disposed\n */\n setInternalTexture(e, t, i = !0) {\n var s;\n if (this.renderTarget && (t === 0 && (this._texture = e), this.renderTarget.setTexture(e, t, i), this.textures[t] || (this.textures[t] = new X(null, this.getScene()), this.textures[t].name = ((s = this._textureNames) == null ? void 0 : s[t]) ?? this.textures[t].name), this.textures[t]._texture = e, this.textures[t]._noMipmap = !e.useMipMaps, this.textures[t]._useSRGBBuffer = e._useSRGBBuffer, this._count = this.renderTarget.textures ? this.renderTarget.textures.length : 0, this._multiRenderTargetOptions.types && (this._multiRenderTargetOptions.types[t] = e.type), this._multiRenderTargetOptions.samplingModes && (this._multiRenderTargetOptions.samplingModes[t] = e.samplingMode), this._multiRenderTargetOptions.useSRGBBuffers && (this._multiRenderTargetOptions.useSRGBBuffers[t] = e._useSRGBBuffer), this._multiRenderTargetOptions.targetTypes && this._multiRenderTargetOptions.targetTypes[t] !== -1)) {\n let r = 0;\n e.is2DArray ? r = 35866 : e.isCube ? r = 34067 : e.is3D ? r = 32879 : r = 3553, this._multiRenderTargetOptions.targetTypes[t] = r;\n }\n }\n /**\n * Changes an attached texture's face index or layer.\n * @param index The index of the texture to modify the attachment of\n * @param layerIndex The layer index of the texture to be attached to the framebuffer\n * @param faceIndex The face index of the texture to be attached to the framebuffer\n */\n setLayerAndFaceIndex(e, t = -1, i = -1) {\n !this.textures[e] || !this.renderTarget || (this._multiRenderTargetOptions.layerIndex && (this._multiRenderTargetOptions.layerIndex[e] = t), this._multiRenderTargetOptions.faceIndex && (this._multiRenderTargetOptions.faceIndex[e] = i), this.renderTarget.setLayerAndFaceIndex(e, t, i));\n }\n /**\n * Changes every attached texture's face index or layer.\n * @param layerIndices The layer indices of the texture to be attached to the framebuffer\n * @param faceIndices The face indices of the texture to be attached to the framebuffer\n */\n setLayerAndFaceIndices(e, t) {\n this.renderTarget && (this._multiRenderTargetOptions.layerIndex = e, this._multiRenderTargetOptions.faceIndex = t, this.renderTarget.setLayerAndFaceIndices(e, t));\n }\n /**\n * Define the number of samples used if MSAA is enabled.\n */\n get samples() {\n return this._samples;\n }\n set samples(e) {\n this._renderTarget ? this._samples = this._renderTarget.setSamples(e) : this._samples = e;\n }\n /**\n * Resize all the textures in the multi render target.\n * Be careful as it will recreate all the data in the new texture.\n * @param size Define the new size\n */\n resize(e) {\n this._processSizeParameter(e, !1), this._rebuild(!1, void 0, this._textureNames);\n }\n /**\n * Changes the number of render targets in this MRT\n * Be careful as it will recreate all the data in the new texture.\n * @param count new texture count\n * @param options Specifies texture types and sampling modes for new textures\n * @param textureNames Specifies the names of the textures (optional)\n */\n updateCount(e, t, i) {\n this._multiRenderTargetOptions.textureCount = e, this._count = e;\n const s = [], r = [], n = [], o = [], l = [], h = [], c = [], u = [];\n this._textureNames = i, this._initTypes(e, s, r, n, o, l, h, c, u, t), this._multiRenderTargetOptions.types = s, this._multiRenderTargetOptions.samplingModes = r, this._multiRenderTargetOptions.useSRGBBuffers = n, this._multiRenderTargetOptions.formats = o, this._multiRenderTargetOptions.targetTypes = l, this._multiRenderTargetOptions.faceIndex = h, this._multiRenderTargetOptions.layerIndex = c, this._multiRenderTargetOptions.layerCounts = u, this._multiRenderTargetOptions.labels = i, this._rebuild(!1, !0, i);\n }\n _unbindFrameBuffer(e, t) {\n this._renderTarget && e.unBindMultiColorAttachmentFramebuffer(this._renderTarget, this.isCube, () => {\n this.onAfterRenderObservable.notifyObservers(t);\n });\n }\n /**\n * Dispose the render targets and their associated resources\n * @param doNotDisposeInternalTextures if set to true, internal textures won't be disposed (default: false).\n */\n dispose(e = !1) {\n this._releaseTextures(), e ? this._texture = null : this.releaseInternalTextures(), super.dispose();\n }\n /**\n * Release all the underlying texture used as draw buffers (render textures).\n */\n releaseInternalTextures() {\n var t, i;\n const e = (t = this._renderTarget) == null ? void 0 : t.textures;\n if (e) {\n for (let s = e.length - 1; s >= 0; s--)\n this._textures[s]._texture = null;\n (i = this._renderTarget) == null || i.dispose(), this._renderTarget = null;\n }\n }\n}\nclass OE {\n /**\n * Initializes a texture package frame.\n * @param id The numerical frame identifier\n * @param scale Scalar Vector2 for UV frame\n * @param offset Vector2 for the frame position in UV units.\n * @returns TexturePackerFrame\n */\n constructor(e, t, i) {\n this.id = e, this.scale = t, this.offset = i;\n }\n}\nclass Zn {\n /**\n * Initializes a texture package series from an array of meshes or a single mesh.\n * @param name The name of the package\n * @param meshes The target meshes to compose the package from\n * @param options The arguments that texture packer should follow while building.\n * @param scene The scene which the textures are scoped to.\n * @returns TexturePacker\n */\n constructor(e, t, i, s) {\n return this.name = e, this.meshes = t, this.scene = s, this.options = i, this.options.map = this.options.map ?? [\n \"ambientTexture\",\n \"bumpTexture\",\n \"diffuseTexture\",\n \"emissiveTexture\",\n \"lightmapTexture\",\n \"opacityTexture\",\n \"reflectionTexture\",\n \"refractionTexture\",\n \"specularTexture\"\n ], this.options.uvsIn = this.options.uvsIn ?? R.UVKind, this.options.uvsOut = this.options.uvsOut ?? R.UVKind, this.options.layout = this.options.layout ?? Zn.LAYOUT_STRIP, this.options.layout === Zn.LAYOUT_COLNUM && (this.options.colnum = this.options.colnum ?? 8), this.options.updateInputMeshes = this.options.updateInputMeshes ?? !0, this.options.disposeSources = this.options.disposeSources ?? !0, this._expecting = 0, this.options.fillBlanks = this.options.fillBlanks ?? !0, this.options.fillBlanks === !0 && (this.options.customFillColor = this.options.customFillColor ?? \"black\"), this.options.frameSize = this.options.frameSize ?? 256, this.options.paddingRatio = this.options.paddingRatio ?? 0.0115, this._paddingValue = Math.ceil(this.options.frameSize * this.options.paddingRatio), this._paddingValue % 2 !== 0 && this._paddingValue++, this.options.paddingMode = this.options.paddingMode ?? Zn.SUBUV_WRAP, this.options.paddingMode === Zn.SUBUV_COLOR && (this.options.paddingColor = this.options.paddingColor ?? new Ce(0, 0, 0, 1)), this.sets = {}, this.frames = [], this;\n }\n /**\n * Starts the package process\n * @param resolve The promises resolution function\n */\n _createFrames(e) {\n const t = this._calculateSize(), i = new Q(1, 1).divide(t);\n let s = 0;\n const r = this._expecting, n = this.meshes.length, o = Object.keys(this.sets);\n for (let d = 0; d < o.length; d++) {\n const f = o[d], p = new ea(\n this.name + \".TexturePack.\" + f + \"Set\",\n { width: t.x, height: t.y },\n this.scene,\n !0,\n //Generate Mips\n X.TRILINEAR_SAMPLINGMODE,\n ee.TEXTUREFORMAT_RGBA\n ), _ = p.getContext();\n _.fillStyle = \"rgba(0,0,0,0)\", _.fillRect(0, 0, t.x, t.y), p.update(!1), this.sets[f] = p;\n }\n const l = this.options.frameSize || 256, h = this._paddingValue, c = l + 2 * h, u = () => {\n this._calculateMeshUVFrames(l, h, t, i, this.options.updateInputMeshes || !1);\n };\n for (let d = 0; d < n; d++) {\n const p = this.meshes[d].material;\n for (let _ = 0; _ < o.length; _++) {\n const m = new ea(\"temp\", c, this.scene, !0), x = m.getContext(), v = this._getFrameOffset(d), T = () => {\n s++, m.update(!1);\n const b = x.getImageData(0, 0, c, c), S = this.sets[E];\n if (S.getContext().putImageData(b, t.x * v.x, t.y * v.y), m.dispose(), S.update(!1), s == r) {\n u(), e();\n return;\n }\n }, E = o[_] || \"_blank\";\n if (!p || p[E] === null)\n x.fillStyle = \"rgba(0,0,0,0)\", this.options.fillBlanks && (x.fillStyle = this.options.customFillColor), x.fillRect(0, 0, c, c), T();\n else {\n const b = p[E], S = new Image();\n b instanceof ea ? S.src = b.getContext().canvas.toDataURL(\"image/png\") : S.src = b.url, J.SetCorsBehavior(S.src, S), S.onload = () => {\n x.fillStyle = \"rgba(0,0,0,0)\", x.fillRect(0, 0, c, c), m.update(!1), x.setTransform(1, 0, 0, -1, 0, 0);\n const C = [0, 0, 1, 0, 1, 1, 0, 1, -1, 1, -1, 0, -2, 0, -1, 1, -1];\n switch (this.options.paddingMode) {\n case 0:\n for (let P = 0; P < 9; P++)\n x.drawImage(S, 0, 0, S.width, S.height, h + l * C[P], h + l * C[P + 1] - c, l, l);\n break;\n case 1:\n for (let P = 0; P < h; P++)\n x.drawImage(S, 0, 0, S.width, S.height, P + l * C[0], h - c, l, l), x.drawImage(S, 0, 0, S.width, S.height, h * 2 - P, h - c, l, l), x.drawImage(S, 0, 0, S.width, S.height, h, P - c, l, l), x.drawImage(S, 0, 0, S.width, S.height, h, h * 2 - P - c, l, l);\n x.drawImage(S, 0, 0, S.width, S.height, h + l * C[0], h + l * C[1] - c, l, l);\n break;\n case 2:\n x.fillStyle = (this.options.paddingColor || re.Black()).toHexString(), x.fillRect(0, 0, c, -c), x.clearRect(h, h, l, l), x.drawImage(S, 0, 0, S.width, S.height, h + l * C[0], h + l * C[1] - c, l, l);\n break;\n }\n x.setTransform(1, 0, 0, 1, 0, 0), T();\n };\n }\n }\n }\n }\n /**\n * Calculates the Size of the Channel Sets\n * @returns Vector2\n */\n _calculateSize() {\n const e = this.meshes.length || 0, t = this.options.frameSize || 0, i = this._paddingValue || 0;\n switch (this.options.layout) {\n case 0:\n return new Q(t * e + 2 * i * e, t + 2 * i);\n case 1: {\n const s = Math.max(2, Math.ceil(Math.sqrt(e))), r = t * s + 2 * i * s;\n return new Q(r, r);\n }\n case 2: {\n const s = this.options.colnum || 1, r = Math.max(1, Math.ceil(e / s));\n return new Q(t * s + 2 * i * s, t * r + 2 * i * r);\n }\n }\n return Q.Zero();\n }\n /**\n * Calculates the UV data for the frames.\n * @param baseSize the base frameSize\n * @param padding the base frame padding\n * @param dtSize size of the Dynamic Texture for that channel\n * @param dtUnits is 1/dtSize\n * @param update flag to update the input meshes\n */\n _calculateMeshUVFrames(e, t, i, s, r) {\n const n = this.meshes.length;\n for (let o = 0; o < n; o++) {\n const l = this.meshes[o], h = new Q(e / i.x, e / i.y), c = s.clone().scale(t), d = this._getFrameOffset(o).add(c), f = new OE(o, h, d);\n this.frames.push(f), r && (this._updateMeshUV(l, o), this._updateTextureReferences(l));\n }\n }\n /**\n * Calculates the frames Offset.\n * @param index of the frame\n * @returns Vector2\n */\n _getFrameOffset(e) {\n const t = this.meshes.length;\n let i, s, r;\n switch (this.options.layout) {\n case 0:\n return i = 1 / t, new Q(e * i, 0);\n case 1: {\n const n = Math.max(2, Math.ceil(Math.sqrt(t)));\n return s = Math.floor(e / n), r = e - s * n, i = 1 / n, new Q(r * i, s * i);\n }\n case 2: {\n const n = this.options.colnum || 1, o = Math.max(1, Math.ceil(t / n));\n return r = Math.floor(e / o), s = e - r * o, i = new Q(1 / n, 1 / o), new Q(r * i.x, s * i.y);\n }\n }\n return Q.Zero();\n }\n /**\n * Updates a Mesh to the frame data\n * @param mesh that is the target\n * @param frameID or the frame index\n */\n _updateMeshUV(e, t) {\n const i = this.frames[t], s = e.getVerticesData(this.options.uvsIn || R.UVKind), r = [];\n let n = 0;\n s.length && (n = s.length || 0);\n for (let o = 0; o < n; o += 2)\n r.push(s[o] * i.scale.x + i.offset.x, s[o + 1] * i.scale.y + i.offset.y);\n e.setVerticesData(this.options.uvsOut || R.UVKind, r);\n }\n /**\n * Updates a Meshes materials to use the texture packer channels\n * @param m is the mesh to target\n * @param force all channels on the packer to be set.\n */\n _updateTextureReferences(e, t = !1) {\n const i = e.material, s = Object.keys(this.sets), r = (n) => {\n n.dispose && n.dispose();\n };\n for (let n = 0; n < s.length; n++) {\n const o = s[n];\n if (t)\n i[o] !== null && r(i[o]), i[o] = this.sets[o];\n else {\n if (!i)\n return;\n i[o] !== null && (r(i[o]), i[o] = this.sets[o]);\n }\n }\n }\n /**\n * Public method to set a Mesh to a frame\n * @param m that is the target\n * @param frameID or the frame index\n * @param updateMaterial trigger for if the Meshes attached Material be updated?\n */\n setMeshToFrame(e, t, i = !1) {\n this._updateMeshUV(e, t), i && this._updateTextureReferences(e, !0);\n }\n /**\n * Starts the async promise to compile the texture packer.\n * @returns Promise\n */\n processAsync() {\n return new Promise((e, t) => {\n try {\n if (this.meshes.length === 0) {\n e();\n return;\n }\n let i = 0;\n const s = (r) => {\n if (i++, this.options.map) {\n for (let n = 0; n < this.options.map.length; n++) {\n const o = this.options.map[n];\n r[o] !== null && (this.sets[this.options.map[n]] || (this.sets[this.options.map[n]] = !0), this._expecting++);\n }\n i === this.meshes.length && this._createFrames(e);\n }\n };\n for (let r = 0; r < this.meshes.length; r++) {\n const n = this.meshes[r], o = n.material;\n if (!o) {\n if (i++, i === this.meshes.length)\n return this._createFrames(e);\n continue;\n }\n o.forceCompilationAsync(n).then(() => {\n s(o);\n });\n }\n } catch (i) {\n return t(i);\n }\n });\n }\n /**\n * Disposes all textures associated with this packer\n */\n dispose() {\n const e = Object.keys(this.sets);\n for (let t = 0; t < e.length; t++) {\n const i = e[t];\n this.sets[i].dispose();\n }\n }\n /**\n * Starts the download process for all the channels converting them to base64 data and embedding it all in a JSON file.\n * @param imageType is the image type to use.\n * @param quality of the image if downloading as jpeg, Ranges from >0 to 1.\n */\n download(e = \"png\", t = 1) {\n setTimeout(() => {\n const i = {\n name: this.name,\n sets: {},\n options: {},\n frames: []\n }, s = Object.keys(this.sets), r = Object.keys(this.options);\n try {\n for (let l = 0; l < s.length; l++) {\n const h = s[l], c = this.sets[h];\n i.sets[h] = c.getContext().canvas.toDataURL(\"image/\" + e, t);\n }\n for (let l = 0; l < r.length; l++) {\n const h = r[l];\n i.options[h] = this.options[h];\n }\n for (let l = 0; l < this.frames.length; l++) {\n const h = this.frames[l];\n i.frames.push(h.scale.x, h.scale.y, h.offset.x, h.offset.y);\n }\n } catch (l) {\n L.Warn(\"Unable to download: \" + l);\n return;\n }\n const n = \"data:text/json;charset=utf-8,\" + encodeURIComponent(JSON.stringify(i, null, 4)), o = document.createElement(\"a\");\n o.setAttribute(\"href\", n), o.setAttribute(\"download\", this.name + \"_texurePackage.json\"), document.body.appendChild(o), o.click(), o.remove();\n }, 0);\n }\n /**\n * Public method to load a texturePacker JSON file.\n * @param data of the JSON file in string format.\n */\n updateFromJSON(e) {\n try {\n const t = JSON.parse(e);\n this.name = t.name;\n const i = Object.keys(t.options);\n for (let r = 0; r < i.length; r++)\n this.options[i[r]] = t.options[i[r]];\n for (let r = 0; r < t.frames.length; r += 4) {\n const n = new OE(r / 4, new Q(t.frames[r], t.frames[r + 1]), new Q(t.frames[r + 2], t.frames[r + 3]));\n this.frames.push(n);\n }\n const s = Object.keys(t.sets);\n for (let r = 0; r < s.length; r++) {\n const n = new X(t.sets[s[r]], this.scene, !1, !1);\n this.sets[s[r]] = n;\n }\n } catch (t) {\n L.Warn(\"Unable to update from JSON: \" + t);\n }\n }\n}\nZn.LAYOUT_STRIP = 0;\nZn.LAYOUT_POWER2 = 1;\nZn.LAYOUT_COLNUM = 2;\nZn.SUBUV_WRAP = 0;\nZn.SUBUV_EXTEND = 1;\nZn.SUBUV_COLOR = 2;\nconst OU = \"noisePixelShader\", wU = `uniform float brightness;uniform float persistence;uniform float timeScale;varying vec2 vUV;vec2 hash22(vec2 p)\n{p=p*mat2(127.1,311.7,269.5,183.3);p=-1.0+2.0*fract(sin(p)*43758.5453123);return sin(p*6.283+timeScale);}\nfloat interpolationNoise(vec2 p)\n{vec2 pi=floor(p);vec2 pf=p-pi;vec2 w=pf*pf*(3.-2.*pf);float f00=dot(hash22(pi+vec2(.0,.0)),pf-vec2(.0,.0));float f01=dot(hash22(pi+vec2(.0,1.)),pf-vec2(.0,1.));float f10=dot(hash22(pi+vec2(1.0,0.)),pf-vec2(1.0,0.));float f11=dot(hash22(pi+vec2(1.0,1.)),pf-vec2(1.0,1.));float xm1=mix(f00,f10,w.x);float xm2=mix(f01,f11,w.x);float ym=mix(xm1,xm2,w.y); \nreturn ym;}\nfloat perlinNoise2D(float x,float y)\n{float sum=0.0;float frequency=0.0;float amplitude=0.0;for(int i=0; i !0) {\n if (!this.matricesIndices.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"matricesIndices\" && t(s));\n i || (i = new ot(\"matricesIndices\"), i.setAsAttribute(\"matricesIndices\")), i.output.connectTo(this.matricesIndices);\n }\n if (!this.matricesWeights.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"matricesWeights\" && t(s));\n i || (i = new ot(\"matricesWeights\"), i.setAsAttribute(\"matricesWeights\")), i.output.connectTo(this.matricesWeights);\n }\n if (!this.world.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.systemValue === ct.World && t(s));\n i || (i = new ot(\"world\"), i.setAsSystemValue(ct.World)), i.output.connectTo(this.world);\n }\n }\n provideFallbacks(e, t) {\n e && e.useBones && e.computeBonesUsingShaders && e.skeleton && t.addCPUSkinningFallback(0, e);\n }\n bind(e, t, i) {\n Fl(i, e);\n }\n prepareDefines(e, t, i) {\n i._areAttributesDirty && Ux(e, i);\n }\n _buildBlock(e) {\n super._buildBlock(e), e.sharedData.blocksWithFallbacks.push(this), e.sharedData.forcedBindableBlocks.push(this), e.sharedData.blocksWithDefines.push(this), e.uniforms.push(\"boneTextureWidth\"), e.uniforms.push(\"mBones\"), e.samplers.push(\"boneSampler\");\n const t = `//${this.name}`;\n e._emitFunctionFromInclude(\"bonesDeclaration\", t, {\n removeAttributes: !0,\n removeUniforms: !1,\n removeVaryings: !0,\n removeIfDef: !1\n });\n const i = e._getFreeVariableName(\"influence\");\n e.compilationString += e._emitCodeFromInclude(\"bonesVertex\", t, {\n replaceStrings: [\n {\n search: /finalWorld=finalWorld\\*influence;/,\n replace: \"\"\n },\n {\n search: /influence/gm,\n replace: i\n }\n ]\n });\n const s = this._outputs[0], r = this.world;\n return e.compilationString += `#if NUM_BONE_INFLUENCERS>0\n`, e.compilationString += e._declareOutput(s) + ` = ${r.associatedVariableName} * ${i};\n`, e.compilationString += `#else\n`, e.compilationString += e._declareOutput(s) + ` = ${r.associatedVariableName};\n`, e.compilationString += `#endif\n`, this;\n }\n}\nU(\"BABYLON.BonesBlock\", nA);\nclass aA extends Ge {\n /**\n * Creates a new InstancesBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Vertex), this.registerInput(\"world0\", A.Vector4), this.registerInput(\"world1\", A.Vector4), this.registerInput(\"world2\", A.Vector4), this.registerInput(\"world3\", A.Vector4), this.registerInput(\"world\", A.Matrix, !0), this.registerOutput(\"output\", A.Matrix), this.registerOutput(\"instanceID\", A.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstancesBlock\";\n }\n /**\n * Gets the first world row input component\n */\n get world0() {\n return this._inputs[0];\n }\n /**\n * Gets the second world row input component\n */\n get world1() {\n return this._inputs[1];\n }\n /**\n * Gets the third world row input component\n */\n get world2() {\n return this._inputs[2];\n }\n /**\n * Gets the forth world row input component\n */\n get world3() {\n return this._inputs[3];\n }\n /**\n * Gets the world input component\n */\n get world() {\n return this._inputs[4];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the instanceID component\n */\n get instanceID() {\n return this._outputs[1];\n }\n autoConfigure(e, t = () => !0) {\n if (!this.world0.connectedPoint) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"world0\" && t(s));\n i || (i = new ot(\"world0\"), i.setAsAttribute(\"world0\")), i.output.connectTo(this.world0);\n }\n if (!this.world1.connectedPoint) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"world1\" && t(s));\n i || (i = new ot(\"world1\"), i.setAsAttribute(\"world1\")), i.output.connectTo(this.world1);\n }\n if (!this.world2.connectedPoint) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"world2\" && t(s));\n i || (i = new ot(\"world2\"), i.setAsAttribute(\"world2\")), i.output.connectTo(this.world2);\n }\n if (!this.world3.connectedPoint) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"world3\" && t(s));\n i || (i = new ot(\"world3\"), i.setAsAttribute(\"world3\")), i.output.connectTo(this.world3);\n }\n if (!this.world.connectedPoint) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"world\" && t(s));\n i || (i = new ot(\"world\"), i.setAsSystemValue(ct.World)), i.output.connectTo(this.world);\n }\n this.world.define = \"!INSTANCES || THIN_INSTANCES\";\n }\n prepareDefines(e, t, i, s = !1, r) {\n let n = !1;\n i.INSTANCES !== s && (i.setValue(\"INSTANCES\", s), n = !0), r && i.THIN_INSTANCES !== !!(r != null && r.getRenderingMesh().hasThinInstances) && (i.setValue(\"THIN_INSTANCES\", !!(r != null && r.getRenderingMesh().hasThinInstances)), n = !0), n && i.markAsUnprocessed();\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = e.sharedData.scene.getEngine();\n e.sharedData.blocksWithDefines.push(this);\n const i = this._outputs[0], s = this._outputs[1], r = this.world0, n = this.world1, o = this.world2, l = this.world3;\n let h = \"mat4\", c = \"gl_InstanceID\", u = \"float\";\n return e.shaderLanguage === 1 && (h = \"mat4x4f\", c = \"vertexInputs.instanceIndex\", u = \"f32\"), e.compilationString += `#ifdef INSTANCES\n`, e.compilationString += e._declareOutput(i) + ` = ${h}(${r.associatedVariableName}, ${n.associatedVariableName}, ${o.associatedVariableName}, ${l.associatedVariableName});\n`, e.compilationString += `#ifdef THIN_INSTANCES\n`, e.compilationString += `${i.associatedVariableName} = ${this.world.associatedVariableName} * ${i.associatedVariableName};\n`, e.compilationString += `#endif\n`, t._caps.canUseGLInstanceID ? e.compilationString += e._declareOutput(s) + ` = ${u}(${c});\n` : e.compilationString += e._declareOutput(s) + ` = 0.0;\n`, e.compilationString += `#else\n`, e.compilationString += e._declareOutput(i) + ` = ${this.world.associatedVariableName};\n`, e.compilationString += e._declareOutput(s) + ` = 0.0;\n`, e.compilationString += `#endif\n`, this;\n }\n}\nU(\"BABYLON.InstancesBlock\", aA);\nclass wv extends Ge {\n /**\n * Create a new MorphTargetsBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Vertex), this.registerInput(\"position\", A.Vector3), this.registerInput(\"normal\", A.Vector3), this.registerInput(\"tangent\", A.AutoDetect), this.tangent.addExcludedConnectionPointFromAllowedTypes(A.Color4 | A.Vector4 | A.Vector3), this.registerInput(\"uv\", A.Vector2), this.registerOutput(\"positionOutput\", A.Vector3), this.registerOutput(\"normalOutput\", A.Vector3), this.registerOutput(\"tangentOutput\", A.Vector4), this.registerOutput(\"uvOutput\", A.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MorphTargetsBlock\";\n }\n /**\n * Gets the position input component\n */\n get position() {\n return this._inputs[0];\n }\n /**\n * Gets the normal input component\n */\n get normal() {\n return this._inputs[1];\n }\n /**\n * Gets the tangent input component\n */\n get tangent() {\n return this._inputs[2];\n }\n /**\n * Gets the tangent input component\n */\n get uv() {\n return this._inputs[3];\n }\n /**\n * Gets the position output component\n */\n get positionOutput() {\n return this._outputs[0];\n }\n /**\n * Gets the normal output component\n */\n get normalOutput() {\n return this._outputs[1];\n }\n /**\n * Gets the tangent output component\n */\n get tangentOutput() {\n return this._outputs[2];\n }\n /**\n * Gets the tangent output component\n */\n get uvOutput() {\n return this._outputs[3];\n }\n initialize(e) {\n e._excludeVariableName(\"morphTargetInfluences\");\n }\n autoConfigure(e, t = () => !0) {\n if (!this.position.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"position\" && t(s));\n i || (i = new ot(\"position\"), i.setAsAttribute()), i.output.connectTo(this.position);\n }\n if (!this.normal.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"normal\" && t(s));\n i || (i = new ot(\"normal\"), i.setAsAttribute(\"normal\")), i.output.connectTo(this.normal);\n }\n if (!this.tangent.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"tangent\" && t(s));\n i || (i = new ot(\"tangent\"), i.setAsAttribute(\"tangent\")), i.output.connectTo(this.tangent);\n }\n if (!this.uv.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"uv\" && t(s));\n i || (i = new ot(\"uv\"), i.setAsAttribute(\"uv\")), i.output.connectTo(this.uv);\n }\n }\n prepareDefines(e, t, i) {\n if (e.morphTargetManager) {\n const s = e.morphTargetManager;\n s != null && s.isUsingTextureForTargets && (s.numMaxInfluencers || s.numInfluencers) !== i.NUM_MORPH_INFLUENCERS && i.markAsAttributesDirty();\n }\n i._areAttributesDirty && kx(e, i);\n }\n bind(e, t, i) {\n i && i.morphTargetManager && i.morphTargetManager.numInfluencers > 0 && (na(i, e), i.morphTargetManager.isUsingTextureForTargets && i.morphTargetManager._bind(e));\n }\n replaceRepeatableContent(e, t, i, s) {\n const r = this.position, n = this.normal, o = this.tangent, l = this.uv, h = this.positionOutput, c = this.normalOutput, u = this.tangentOutput, d = this.uvOutput, f = e, p = s.NUM_MORPH_INFLUENCERS, _ = i.morphTargetManager, m = _ && _.supportsNormals && s.NORMAL, x = _ && _.supportsTangents && s.TANGENT, v = _ && _.supportsUVs && s.UV1;\n let T = \"\";\n _ != null && _.isUsingTextureForTargets && p > 0 && (T += `${f._declareLocalVar(\"vertexID\", A.Float)};\n`), T += `#ifdef MORPHTARGETS\n`;\n const E = f.shaderLanguage === 1, b = E ? \"uniforms.\" : \"\";\n if (_ != null && _.isUsingTextureForTargets)\n T += `for (${E ? \"var\" : \"int\"} i = 0; i < NUM_MORPH_INFLUENCERS; i++) {\n`, T += `if (i >= ${b}morphTargetCount) { break; }\n`, T += `vertexID = ${E ? \"f32(vertexInputs.vertexIndex\" : \"float(gl_VertexID\"}) * ${b}morphTargetTextureInfo.x;\n`, T += `${h.associatedVariableName} += (readVector3FromRawSampler(i, vertexID) - ${r.associatedVariableName}) * ${b}morphTargetInfluences[i];\n`, T += `vertexID += 1.0;\n`, m && (T += `#ifdef MORPHTARGETS_NORMAL\n`, T += `${c.associatedVariableName} += (readVector3FromRawSampler(i, vertexID) - ${n.associatedVariableName}) * ${b}morphTargetInfluences[i];\n`, T += `vertexID += 1.0;\n`, T += `#endif\n`), v && (T += `#ifdef MORPHTARGETS_UV\n`, T += `${d.associatedVariableName} += (readVector3FromRawSampler(i, vertexID).xy - ${l.associatedVariableName}) * ${b}morphTargetInfluences[i];\n`, T += `vertexID += 1.0;\n`, T += `#endif\n`), x && (T += `#ifdef MORPHTARGETS_TANGENT\n`, T += `${u.associatedVariableName}.xyz += (readVector3FromRawSampler(i, vertexID) - ${o.associatedVariableName}.xyz) * ${b}morphTargetInfluences[i];\n`, o.type === A.Vector4 ? T += `${u.associatedVariableName}.w = ${o.associatedVariableName}.w;\n` : T += `${u.associatedVariableName}.w = 1.;\n`, T += `#endif\n`), T += `}\n`;\n else\n for (let S = 0; S < p; S++)\n T += `${h.associatedVariableName} += (position${S} - ${r.associatedVariableName}) * ${b}morphTargetInfluences[${S}];\n`, m && (T += `#ifdef MORPHTARGETS_NORMAL\n`, T += `${c.associatedVariableName} += (normal${S} - ${n.associatedVariableName}) * ${b}morphTargetInfluences[${S}];\n`, T += `#endif\n`), v && (T += `#ifdef MORPHTARGETS_UV\n`, T += `${d.associatedVariableName}.xy += (uv_${S} - ${l.associatedVariableName}.xy) * ${b}morphTargetInfluences[${S}];\n`, T += `#endif\n`), x && (T += `#ifdef MORPHTARGETS_TANGENT\n`, T += `${u.associatedVariableName}.xyz += (tangent${S} - ${o.associatedVariableName}.xyz) * ${b}morphTargetInfluences[${S}];\n`, o.type === A.Vector4 ? T += `${u.associatedVariableName}.w = ${o.associatedVariableName}.w;\n` : T += `${u.associatedVariableName}.w = 1.;\n`, T += `#endif\n`);\n if (T += `#endif\n`, f.compilationString = f.compilationString.replace(this._repeatableContentAnchor, T), p > 0)\n for (let S = 0; S < p; S++)\n f.attributes.push(R.PositionKind + S), m && f.attributes.push(R.NormalKind + S), x && f.attributes.push(R.TangentKind + S), v && f.attributes.push(R.UVKind + \"_\" + S);\n }\n _buildBlock(e) {\n super._buildBlock(e), e.sharedData.blocksWithDefines.push(this), e.sharedData.bindableBlocks.push(this), e.sharedData.repeatableContentBlocks.push(this);\n const t = this.position, i = this.normal, s = this.tangent, r = this.uv, n = this.positionOutput, o = this.normalOutput, l = this.tangentOutput, h = this.uvOutput, c = `//${this.name}`;\n return e.uniforms.push(\"morphTargetInfluences\"), e.uniforms.push(\"morphTargetCount\"), e.uniforms.push(\"morphTargetTextureInfo\"), e.uniforms.push(\"morphTargetTextureIndices\"), e.samplers.push(\"morphTargets\"), e._emitFunctionFromInclude(\"morphTargetsVertexGlobalDeclaration\", c), e._emitFunctionFromInclude(\"morphTargetsVertexDeclaration\", c, {\n repeatKey: \"maxSimultaneousMorphTargets\"\n }), e.compilationString += `${e._declareOutput(n)} = ${t.associatedVariableName};\n`, e.compilationString += `#ifdef NORMAL\n`, e.compilationString += `${e._declareOutput(o)} = ${i.associatedVariableName};\n`, e.compilationString += `#else\n`, e.compilationString += `${e._declareOutput(o)} = vec3(0., 0., 0.);\n`, e.compilationString += `#endif\n`, e.compilationString += `#ifdef TANGENT\n`, e.compilationString += `${e._declareOutput(l)} = ${s.associatedVariableName};\n`, e.compilationString += `#else\n`, e.compilationString += `${e._declareOutput(l)} = vec4(0., 0., 0., 0.);\n`, e.compilationString += `#endif\n`, e.compilationString += `#ifdef UV1\n`, e.compilationString += `${e._declareOutput(h)} = ${r.associatedVariableName};\n`, e.compilationString += `#else\n`, e.compilationString += `${e._declareOutput(h)} = vec2(0., 0.);\n`, e.compilationString += `#endif\n`, this._repeatableContentAnchor = e._repeatableContentAnchor, e.compilationString += this._repeatableContentAnchor, this;\n }\n}\nU(\"BABYLON.MorphTargetsBlock\", wv);\nclass oA extends Ge {\n /**\n * Creates a new LightInformationBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Vertex), this.registerInput(\"worldPosition\", A.Vector4, !1, B.Vertex), this.registerOutput(\"direction\", A.Vector3), this.registerOutput(\"color\", A.Color3), this.registerOutput(\"intensity\", A.Float), this.registerOutput(\"shadowBias\", A.Float), this.registerOutput(\"shadowNormalBias\", A.Float), this.registerOutput(\"shadowDepthScale\", A.Float), this.registerOutput(\"shadowDepthRange\", A.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"LightInformationBlock\";\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the direction output component\n */\n get direction() {\n return this._outputs[0];\n }\n /**\n * Gets the direction output component\n */\n get color() {\n return this._outputs[1];\n }\n /**\n * Gets the direction output component\n */\n get intensity() {\n return this._outputs[2];\n }\n /**\n * Gets the shadow bias output component\n */\n get shadowBias() {\n return this._outputs[3];\n }\n /**\n * Gets the shadow normal bias output component\n */\n get shadowNormalBias() {\n return this._outputs[4];\n }\n /**\n * Gets the shadow depth scale component\n */\n get shadowDepthScale() {\n return this._outputs[5];\n }\n /**\n * Gets the shadow depth range component\n */\n get shadowDepthRange() {\n return this._outputs[6];\n }\n bind(e, t, i) {\n if (!i)\n return;\n this.light && this.light.isDisposed() && (this.light = null);\n let s = this.light;\n const r = t.getScene();\n if (!s && r.lights.length && (s = this.light = r.lights[0], this._forcePrepareDefines = !0), !s || !s.isEnabled) {\n e.setFloat3(this._lightDataUniformName, 0, 0, 0), e.setFloat4(this._lightColorUniformName, 0, 0, 0, 0);\n return;\n }\n s.transferToNodeMaterialEffect(e, this._lightDataUniformName), e.setColor4(this._lightColorUniformName, s.diffuse, s.intensity);\n const n = s.getShadowGenerator();\n if ((this.shadowBias.hasEndpoints || this.shadowNormalBias.hasEndpoints || this.shadowDepthScale.hasEndpoints) && (n ? e.setFloat3(this._lightShadowUniformName, n.bias, n.normalBias, n.depthScale) : e.setFloat3(this._lightShadowUniformName, 0, 0, 0)), this.shadowDepthRange)\n if (n && r.activeCamera) {\n const o = s;\n e.setFloat2(this._lightShadowExtraUniformName, o.getDepthMinZ(r.activeCamera), o.getDepthMinZ(r.activeCamera) + o.getDepthMaxZ(r.activeCamera));\n } else\n e.setFloat2(this._lightShadowExtraUniformName, 0, 0);\n }\n prepareDefines(e, t, i) {\n if (!i._areLightsDirty && !this._forcePrepareDefines)\n return;\n this._forcePrepareDefines = !1;\n const s = this.light;\n i.setValue(this._lightTypeDefineName, !!(s && s instanceof em), !0);\n }\n _buildBlock(e) {\n super._buildBlock(e), e.sharedData.bindableBlocks.push(this), e.sharedData.blocksWithDefines.push(this);\n const t = this.direction, i = this.color, s = this.intensity, r = this.shadowBias, n = this.shadowNormalBias, o = this.shadowDepthScale, l = this.shadowDepthRange;\n this._lightDataUniformName = e._getFreeVariableName(\"lightData\"), this._lightColorUniformName = e._getFreeVariableName(\"lightColor\"), this._lightShadowUniformName = e._getFreeVariableName(\"shadowData\"), this._lightShadowExtraUniformName = e._getFreeVariableName(\"shadowExtraData\"), this._lightTypeDefineName = e._getFreeDefineName(\"LIGHTPOINTTYPE\");\n const h = e.shaderLanguage === 1 ? \"uniforms.\" : \"\";\n return e._emitUniformFromString(this._lightDataUniformName, A.Vector3), e._emitUniformFromString(this._lightColorUniformName, A.Vector4), e.compilationString += `#ifdef ${this._lightTypeDefineName}\n`, e.compilationString += e._declareOutput(t) + ` = normalize(${this.worldPosition.associatedVariableName}.xyz - ${this._lightDataUniformName});\n`, e.compilationString += `#else\n`, e.compilationString += e._declareOutput(t) + ` = ${h}${this._lightDataUniformName};\n`, e.compilationString += `#endif\n`, e.compilationString += e._declareOutput(i) + ` = ${h}${this._lightColorUniformName}.rgb;\n`, e.compilationString += e._declareOutput(s) + ` = ${h}${this._lightColorUniformName}.a;\n`, (r.hasEndpoints || n.hasEndpoints || o.hasEndpoints) && (e._emitUniformFromString(this._lightShadowUniformName, A.Vector3), r.hasEndpoints && (e.compilationString += e._declareOutput(r) + ` = ${h}${this._lightShadowUniformName}.x;\n`), n.hasEndpoints && (e.compilationString += e._declareOutput(n) + ` = ${h}${this._lightShadowUniformName}.y;\n`), o.hasEndpoints && (e.compilationString += e._declareOutput(o) + ` = ${h}${this._lightShadowUniformName}.z;\n`)), l.hasEndpoints && (e._emitUniformFromString(this._lightShadowExtraUniformName, A.Vector2), e.compilationString += e._declareOutput(l) + ` = ${this._lightShadowUniformName};\n`), this;\n }\n serialize() {\n const e = super.serialize();\n return this.light && (e.lightId = this.light.id), e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), e.lightId && (this.light = t.getLightById(e.lightId));\n }\n}\nU(\"BABYLON.LightInformationBlock\", oA);\nclass Nv extends Ge {\n /**\n * Create a new ImageProcessingBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this.convertInputToLinearSpace = !0, this.registerInput(\"color\", A.AutoDetect), this.registerOutput(\"output\", A.Color4), this.registerOutput(\"rgb\", A.Color3), this._inputs[0].addExcludedConnectionPointFromAllowedTypes(A.Color3 | A.Color4 | A.Vector3 | A.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ImageProcessingBlock\";\n }\n /**\n * Gets the color input component\n */\n get color() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the rgb component\n */\n get rgb() {\n return this._outputs[1];\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"exposureLinear\"), e._excludeVariableName(\"contrast\"), e._excludeVariableName(\"vInverseScreenSize\"), e._excludeVariableName(\"vignetteSettings1\"), e._excludeVariableName(\"vignetteSettings2\"), e._excludeVariableName(\"vCameraColorCurveNegative\"), e._excludeVariableName(\"vCameraColorCurveNeutral\"), e._excludeVariableName(\"vCameraColorCurvePositive\"), e._excludeVariableName(\"txColorTransform\"), e._excludeVariableName(\"colorTransformSettings\"), e._excludeVariableName(\"ditherIntensity\");\n }\n isReady(e, t, i) {\n return !(i._areImageProcessingDirty && t.imageProcessingConfiguration && !t.imageProcessingConfiguration.isReady());\n }\n prepareDefines(e, t, i) {\n i._areImageProcessingDirty && t.imageProcessingConfiguration && t.imageProcessingConfiguration.prepareDefines(i);\n }\n bind(e, t, i) {\n i && t.imageProcessingConfiguration && t.imageProcessingConfiguration.bind(e);\n }\n _buildBlock(e) {\n var n;\n super._buildBlock(e), e.sharedData.blocksWithDefines.push(this), e.sharedData.blockingBlocks.push(this), e.sharedData.bindableBlocks.push(this), e.uniforms.push(\"exposureLinear\"), e.uniforms.push(\"contrast\"), e.uniforms.push(\"vInverseScreenSize\"), e.uniforms.push(\"vignetteSettings1\"), e.uniforms.push(\"vignetteSettings2\"), e.uniforms.push(\"vCameraColorCurveNegative\"), e.uniforms.push(\"vCameraColorCurveNeutral\"), e.uniforms.push(\"vCameraColorCurvePositive\"), e.uniforms.push(\"txColorTransform\"), e.uniforms.push(\"colorTransformSettings\"), e.uniforms.push(\"ditherIntensity\");\n const t = this.color, i = this._outputs[0], s = `//${this.name}`, r = e.shaderLanguage === 1 ? \"Vec3\" : \"\";\n return e._emitFunctionFromInclude(\"helperFunctions\", s), e._emitFunctionFromInclude(\"imageProcessingDeclaration\", s), e._emitFunctionFromInclude(\"imageProcessingFunctions\", s), (n = t.connectedPoint) != null && n.isConnected && (t.connectedPoint.type === A.Color4 || t.connectedPoint.type === A.Vector4 ? e.compilationString += `${e._declareOutput(i)} = ${t.associatedVariableName};\n` : e.compilationString += `${e._declareOutput(i)} = vec4${e.fSuffix}(${t.associatedVariableName}, 1.0);\n`, e.compilationString += `#ifdef IMAGEPROCESSINGPOSTPROCESS\n`, this.convertInputToLinearSpace && (e.compilationString += `${i.associatedVariableName} = vec4${e.fSuffix}(toLinearSpace${r}(${t.associatedVariableName}.rgb), ${t.associatedVariableName}.a);\n`), e.compilationString += `#else\n`, e.compilationString += `#ifdef IMAGEPROCESSING\n`, this.convertInputToLinearSpace && (e.compilationString += `${i.associatedVariableName} = vec4${e.fSuffix}(toLinearSpace${r}(${t.associatedVariableName}.rgb), ${t.associatedVariableName}.a);\n`), e.compilationString += `${i.associatedVariableName} = applyImageProcessing(${i.associatedVariableName});\n`, e.compilationString += `#endif\n`, e.compilationString += `#endif\n`, this.rgb.hasEndpoints && (e.compilationString += e._declareOutput(this.rgb) + ` = ${this.output.associatedVariableName}.xyz;\n`)), this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return e += `${this._codeVariableName}.convertInputToLinearSpace = ${this.convertInputToLinearSpace};\n`, e;\n }\n serialize() {\n const e = super.serialize();\n return e.convertInputToLinearSpace = this.convertInputToLinearSpace, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.convertInputToLinearSpace = e.convertInputToLinearSpace ?? !0;\n }\n}\ny([\n ze(\"Convert input to linear space\", 0, \"ADVANCED\")\n], Nv.prototype, \"convertInputToLinearSpace\", void 0);\nU(\"BABYLON.ImageProcessingBlock\", Nv);\nclass Hl extends Ge {\n /**\n * Create a new TBNBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment, !0), this.registerInput(\"normal\", A.AutoDetect, !1), this.normal.addExcludedConnectionPointFromAllowedTypes(A.Color4 | A.Vector4 | A.Vector3), this.registerInput(\"tangent\", A.Vector4, !1), this.registerInput(\"world\", A.Matrix, !1), this.registerOutput(\"TBN\", A.Object, B.Fragment, new Bi(\"TBN\", this, 1, Hl, \"TBNBlock\")), this.registerOutput(\"row0\", A.Vector3, B.Fragment), this.registerOutput(\"row1\", A.Vector3, B.Fragment), this.registerOutput(\"row2\", A.Vector3, B.Fragment);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TBNBlock\";\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"tbnNormal\"), e._excludeVariableName(\"tbnTangent\"), e._excludeVariableName(\"tbnBitangent\"), e._excludeVariableName(\"TBN\");\n }\n /**\n * Gets the normal input component\n */\n get normal() {\n return this._inputs[0];\n }\n /**\n * Gets the tangent input component\n */\n get tangent() {\n return this._inputs[1];\n }\n /**\n * Gets the world matrix input component\n */\n get world() {\n return this._inputs[2];\n }\n /**\n * Gets the TBN output component\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n get TBN() {\n return this._outputs[0];\n }\n /**\n * Gets the row0 of the output matrix\n */\n get row0() {\n return this._outputs[1];\n }\n /**\n * Gets the row1 of the output matrix\n */\n get row1() {\n return this._outputs[2];\n }\n /**\n * Gets the row2 of the output matrix\n */\n get row2() {\n return this._outputs[3];\n }\n get target() {\n return B.Fragment;\n }\n set target(e) {\n }\n autoConfigure(e, t = () => !0) {\n if (!this.world.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.isSystemValue && s.systemValue === ct.World && t(s));\n i || (i = new ot(\"world\"), i.setAsSystemValue(ct.World)), i.output.connectTo(this.world);\n }\n if (!this.normal.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"normal\" && t(s));\n i || (i = new ot(\"normal\"), i.setAsAttribute(\"normal\")), i.output.connectTo(this.normal);\n }\n if (!this.tangent.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"tangent\" && s.type === A.Vector4 && t(s));\n i || (i = new ot(\"tangent\"), i.setAsAttribute(\"tangent\")), i.output.connectTo(this.tangent);\n }\n }\n prepareDefines(e, t, i) {\n var h, c, u, d;\n const s = this.normal, r = this.tangent;\n let n = s.isConnected;\n (h = s.connectInputBlock) != null && h.isAttribute && !e.isVerticesDataPresent((c = s.connectInputBlock) == null ? void 0 : c.name) && (n = !1);\n let o = r.isConnected;\n (u = r.connectInputBlock) != null && u.isAttribute && !e.isVerticesDataPresent((d = r.connectInputBlock) == null ? void 0 : d.name) && (o = !1);\n const l = n && o;\n i.setValue(\"TBNBLOCK\", l, !0);\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this.normal, i = this.tangent, s = this.world, r = this.TBN, n = this.row0, o = this.row1, l = this.row2, h = e.shaderLanguage === 1, c = h ? \"mat3x3f\" : \"mat3\", u = h ? \"f\" : \"\";\n return e.target === B.Fragment && (e.compilationString += `\n // ${this.name}\n ${e._declareLocalVar(\"tbnNormal\", A.Vector3)} = normalize(${t.associatedVariableName}).xyz;\n ${e._declareLocalVar(\"tbnTangent\", A.Vector3)} = normalize(${i.associatedVariableName}.xyz);\n ${e._declareLocalVar(\"tbnBitangent\", A.Vector3)} = cross(tbnNormal, tbnTangent) * ${i.associatedVariableName}.w;\n ${h ? \"var\" : \"mat3\"} ${r.associatedVariableName} = ${c}(${s.associatedVariableName}[0].xyz, ${s.associatedVariableName}[1].xyz, ${s.associatedVariableName}[2].xyz) * ${c}(tbnTangent, tbnBitangent, tbnNormal);\n `, n.hasEndpoints && (e.compilationString += e._declareOutput(n) + ` = vec3${u}(${r.associatedVariableName}[0][0], ${r.associatedVariableName}[0][1], ${r.associatedVariableName}[0][2]);\n`), o.hasEndpoints && (e.compilationString += e._declareOutput(o) + ` = vec3${u}(${r.associatedVariableName}[1[0], ${r.associatedVariableName}[1][1], ${r.associatedVariableName}[1][2]);\n`), l.hasEndpoints && (e.compilationString += e._declareOutput(l) + ` = vec3${u}(${r.associatedVariableName}[2][0], ${r.associatedVariableName}[2][1], ${r.associatedVariableName}[2][2]);\n`), e.sharedData.blocksWithDefines.push(this)), this;\n }\n}\nU(\"BABYLON.TBNBlock\", Hl);\nclass Ac extends Ge {\n /**\n * Create a new PerturbNormalBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this._tangentSpaceParameterName = \"\", this._tangentCorrectionFactorName = \"\", this._worldMatrixName = \"\", this.invertX = !1, this.invertY = !1, this.useParallaxOcclusion = !1, this.useObjectSpaceNormalMap = !1, this._isUnique = !0, this.registerInput(\"worldPosition\", A.Vector4, !1), this.registerInput(\"worldNormal\", A.Vector4, !1), this.registerInput(\"worldTangent\", A.Vector4, !0), this.registerInput(\"uv\", A.Vector2, !1), this.registerInput(\"normalMapColor\", A.Color3, !1), this.registerInput(\"strength\", A.Float, !1), this.registerInput(\"viewDirection\", A.Vector3, !0), this.registerInput(\"parallaxScale\", A.Float, !0), this.registerInput(\"parallaxHeight\", A.Float, !0), this.registerInput(\"TBN\", A.Object, !0, B.VertexAndFragment, new Bi(\"TBN\", this, 0, Hl, \"TBNBlock\")), this.registerInput(\"world\", A.Matrix, !0), this.registerOutput(\"output\", A.Vector4), this.registerOutput(\"uvOffset\", A.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"PerturbNormalBlock\";\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this._inputs[1];\n }\n /**\n * Gets the world tangent input component\n */\n get worldTangent() {\n return this._inputs[2];\n }\n /**\n * Gets the uv input component\n */\n get uv() {\n return this._inputs[3];\n }\n /**\n * Gets the normal map color input component\n */\n get normalMapColor() {\n return this._inputs[4];\n }\n /**\n * Gets the strength input component\n */\n get strength() {\n return this._inputs[5];\n }\n /**\n * Gets the view direction input component\n */\n get viewDirection() {\n return this._inputs[6];\n }\n /**\n * Gets the parallax scale input component\n */\n get parallaxScale() {\n return this._inputs[7];\n }\n /**\n * Gets the parallax height input component\n */\n get parallaxHeight() {\n return this._inputs[8];\n }\n /**\n * Gets the TBN input component\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n get TBN() {\n return this._inputs[9];\n }\n /**\n * Gets the World input component\n */\n get world() {\n return this._inputs[10];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the uv offset output component\n */\n get uvOffset() {\n return this._outputs[1];\n }\n prepareDefines(e, t, i) {\n const s = this.normalMapColor.connectedPoint._ownerBlock.samplerName, r = this.viewDirection.isConnected && (this.useParallaxOcclusion && s || !this.useParallaxOcclusion && this.parallaxHeight.isConnected);\n i.setValue(\"BUMP\", !0), i.setValue(\"PARALLAX\", r, !0), i.setValue(\"PARALLAX_RHS\", t.getScene().useRightHandedSystem, !0), i.setValue(\"PARALLAXOCCLUSION\", this.useParallaxOcclusion, !0), i.setValue(\"OBJECTSPACE_NORMALMAP\", this.useObjectSpaceNormalMap, !0);\n }\n bind(e, t, i) {\n t.getScene()._mirroredCameraPosition ? e.setFloat2(this._tangentSpaceParameterName, this.invertX ? 1 : -1, this.invertY ? 1 : -1) : e.setFloat2(this._tangentSpaceParameterName, this.invertX ? -1 : 1, this.invertY ? -1 : 1), i && (e.setFloat(this._tangentCorrectionFactorName, i.getWorldMatrix().determinant() < 0 ? -1 : 1), this.useObjectSpaceNormalMap && !this.world.isConnected && e.setMatrix(this._worldMatrixName, i.getWorldMatrix()));\n }\n autoConfigure(e, t = () => !0) {\n if (!this.uv.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"uv\" && t(s));\n i || (i = new ot(\"uv\"), i.setAsAttribute()), i.output.connectTo(this.uv);\n }\n if (!this.strength.isConnected) {\n const i = new ot(\"strength\");\n i.value = 1, i.output.connectTo(this.strength);\n }\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = `//${this.name}`, i = this.uv, s = this.worldPosition, r = this.worldNormal, n = this.worldTangent, o = e.shaderLanguage === 1, l = o ? \"mat3x3f\" : \"mat3\", h = o ? \"f\" : \"\", c = o ? \"uniforms.\" : \"\";\n e.sharedData.blocksWithDefines.push(this), e.sharedData.bindableBlocks.push(this), this._tangentSpaceParameterName = e._getFreeDefineName(\"tangentSpaceParameter\"), e._emitUniformFromString(this._tangentSpaceParameterName, A.Vector2), this._tangentCorrectionFactorName = e._getFreeDefineName(\"tangentCorrectionFactor\"), e._emitUniformFromString(this._tangentCorrectionFactorName, A.Float), this._worldMatrixName = e._getFreeDefineName(\"perturbNormalWorldMatrix\"), e._emitUniformFromString(this._worldMatrixName, A.Matrix);\n let u = null;\n this.normalMapColor.connectedPoint && (u = this.normalMapColor.connectedPoint._ownerBlock.samplerName);\n const d = this.viewDirection.isConnected && (this.useParallaxOcclusion && u || !this.useParallaxOcclusion && this.parallaxHeight.isConnected), f = this.parallaxScale.isConnectedToInputBlock ? this.parallaxScale.connectInputBlock.isConstant ? e._emitFloat(this.parallaxScale.connectInputBlock.value) : this.parallaxScale.associatedVariableName : \"0.05\", p = this.strength.isConnectedToInputBlock && this.strength.connectInputBlock.isConstant ? `\n#if !defined(NORMALXYSCALE)\n1.0/\n#endif\n${e._emitFloat(this.strength.connectInputBlock.value)}` : `\n#if !defined(NORMALXYSCALE)\n1.0/\n#endif\n${this.strength.associatedVariableName}`;\n o || e._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\");\n const _ = { search: /defined\\(TANGENT\\)/g, replace: n.isConnected ? \"defined(TANGENT)\" : \"defined(IGNORE)\" }, m = { search: /varying mat3 vTBN;/g, replace: \"\" }, x = { search: /uniform mat4 normalMatrix;/g, replace: \"\" }, v = this.TBN;\n v.isConnected ? e.compilationString += `\n #ifdef TBNBLOCK\n ${o ? \"var\" : \"mat3\"} vTBN = ${v.associatedVariableName};\n #endif\n ` : n.isConnected && (e.compilationString += `${e._declareLocalVar(\"tbnNormal\", A.Vector3)} = normalize(${r.associatedVariableName}.xyz);\n`, e.compilationString += `${e._declareLocalVar(\"tbnTangent\", A.Vector3)} = normalize(${n.associatedVariableName}.xyz);\n`, e.compilationString += `${e._declareLocalVar(\"tbnBitangent\", A.Vector3)} = cross(tbnNormal, tbnTangent) * ${this._tangentCorrectionFactorName};\n`, e.compilationString += `${o ? \"var\" : \"mat3\"} vTBN = ${l}(tbnTangent, tbnBitangent, tbnNormal);\n`), e._emitFunctionFromInclude(\"bumpFragmentMainFunctions\", t, {\n replaceStrings: [_, m, x]\n });\n const T = o ? \"fn parallaxOcclusion(vViewDirCoT: vec3f, vNormalCoT: vec3f, texCoord: vec2f, parallaxScale:f32, bump: texture_2d, bumpSampler: sampler)\" : `#define inline\nvec2 parallaxOcclusion(vec3 vViewDirCoT, vec3 vNormalCoT, vec2 texCoord, float parallaxScale, sampler2D bumpSampler)`, E = o ? /fn parallaxOcclusion\\(vViewDirCoT: vec3f,vNormalCoT: vec3f,texCoord: vec2f,parallaxScale: f32\\)/g : /vec2 parallaxOcclusion\\(vec3 vViewDirCoT,vec3 vNormalCoT,vec2 texCoord,float parallaxScale\\)/g, b = o ? \"fn parallaxOffset(viewDir: vec3f, heightScale: f32, height_: f32)\" : \"vec2 parallaxOffset(vec3 viewDir, float heightScale, float height_)\", S = o ? /fn parallaxOffset\\(viewDir: vec3f,heightScale: f32\\)/g : /vec2 parallaxOffset\\(vec3 viewDir,float heightScale\\)/g;\n e._emitFunctionFromInclude(\"bumpFragmentFunctions\", t, {\n replaceStrings: [\n { search: /#include\\(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump\\)/g, replace: \"\" },\n { search: /uniform sampler2D bumpSampler;/g, replace: \"\" },\n {\n search: E,\n replace: T\n },\n { search: S, replace: b },\n { search: /texture.+?bumpSampler,vBumpUV\\)\\.w/g, replace: \"height_\" }\n ]\n });\n const C = o ? `textureSample(${u}, ${u + \"Sampler\"}` : `texture2D(${u}`, P = !d || !u ? this.normalMapColor.associatedVariableName : `${C}, ${i.associatedVariableName} + uvOffset).xyz`, N = e._getFreeVariableName(\"tempOutput\");\n return e.compilationString += e._declareLocalVar(N, A.Vector3) + ` = vec3${h}(0.);\n`, e.compilationString += e._emitCodeFromInclude(\"bumpFragment\", t, {\n replaceStrings: [\n { search: /texture.+?bumpSampler,vBumpUV\\)/g, replace: `${P}` },\n {\n search: /#define CUSTOM_FRAGMENT_BUMP_FRAGMENT/g,\n replace: `${e._declareLocalVar(\"normalMatrix\", A.Matrix)} = toNormalMatrix(${this.world.isConnected ? this.world.associatedVariableName : this._worldMatrixName});`\n },\n { search: /perturbNormal\\(TBN,texture.+?bumpSampler,vBumpUV\\+uvOffset\\).xyz,vBumpInfos.y\\)/g, replace: `perturbNormal(TBN, ${P}, vBumpInfos.y)` },\n {\n search: /parallaxOcclusion\\(invTBN\\*-viewDirectionW,invTBN\\*normalW,vBumpUV,vBumpInfos.z\\)/g,\n replace: `parallaxOcclusion((invTBN * -viewDirectionW), (invTBN * normalW), vBumpUV, vBumpInfos.z, ${o ? d && this.useParallaxOcclusion ? `${u}, ${u + \"Sampler\"}` : \"bump, bumpSampler\" : d && this.useParallaxOcclusion ? u : \"bumpSampler\"})`\n },\n {\n search: /parallaxOffset\\(invTBN\\*viewDirectionW,vBumpInfos\\.z\\)/g,\n replace: `parallaxOffset(invTBN * viewDirectionW, vBumpInfos.z, ${d ? this.parallaxHeight.associatedVariableName : \"0.\"})`\n },\n { search: /vTangentSpaceParams/g, replace: c + this._tangentSpaceParameterName },\n { search: /vBumpInfos.y/g, replace: p },\n { search: /vBumpInfos.z/g, replace: f },\n { search: /vBumpUV/g, replace: i.associatedVariableName },\n { search: /vPositionW/g, replace: s.associatedVariableName + \".xyz\" },\n { search: /normalW=/g, replace: N + \" = \" },\n { search: /mat3\\(normalMatrix\\)\\*normalW/g, replace: `${l}(normalMatrix) * ` + N },\n { search: /normalW/g, replace: r.associatedVariableName + \".xyz\" },\n { search: /viewDirectionW/g, replace: d ? this.viewDirection.associatedVariableName : `vec3${h}(0.)` },\n _\n ]\n }), e.compilationString += e._declareOutput(this.output) + ` = vec4${h}(${N}, 0.);\n`, this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode() + `${this._codeVariableName}.invertX = ${this.invertX};\n`;\n return e += `${this._codeVariableName}.invertY = ${this.invertY};\n`, e += `${this._codeVariableName}.useParallaxOcclusion = ${this.useParallaxOcclusion};\n`, e += `${this._codeVariableName}.useObjectSpaceNormalMap = ${this.useObjectSpaceNormalMap};\n`, e;\n }\n serialize() {\n const e = super.serialize();\n return e.invertX = this.invertX, e.invertY = this.invertY, e.useParallaxOcclusion = this.useParallaxOcclusion, e.useObjectSpaceNormalMap = this.useObjectSpaceNormalMap, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.invertX = e.invertX, this.invertY = e.invertY, this.useParallaxOcclusion = !!e.useParallaxOcclusion, this.useObjectSpaceNormalMap = !!e.useObjectSpaceNormalMap;\n }\n}\ny([\n ze(\"Invert X axis\", 0, \"PROPERTIES\", { notifiers: { update: !1 } })\n], Ac.prototype, \"invertX\", void 0);\ny([\n ze(\"Invert Y axis\", 0, \"PROPERTIES\", { notifiers: { update: !1 } })\n], Ac.prototype, \"invertY\", void 0);\ny([\n ze(\n \"Use parallax occlusion\",\n 0\n /* PropertyTypeForEdition.Boolean */\n )\n], Ac.prototype, \"useParallaxOcclusion\", void 0);\ny([\n ze(\"Object Space Mode\", 0, \"PROPERTIES\", { notifiers: { update: !1 } })\n], Ac.prototype, \"useObjectSpaceNormalMap\", void 0);\nU(\"BABYLON.PerturbNormalBlock\", Ac);\nclass lA extends Ge {\n /**\n * Create a new DiscardBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment, !0), this.registerInput(\"value\", A.Float, !0), this.registerInput(\"cutoff\", A.Float, !0);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DiscardBlock\";\n }\n /**\n * Gets the color input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the cutoff input component\n */\n get cutoff() {\n return this._inputs[1];\n }\n _buildBlock(e) {\n if (super._buildBlock(e), e.sharedData.hints.needAlphaTesting = !0, !(!this.cutoff.isConnected || !this.value.isConnected))\n return e.compilationString += `if (${this.value.associatedVariableName} < ${this.cutoff.associatedVariableName}) { discard; }\n`, this;\n }\n}\nU(\"BABYLON.DiscardBlock\", lA);\nclass hA extends Ge {\n /**\n * Creates a new FrontFacingBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this.registerOutput(\"output\", A.Float, B.Fragment);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"FrontFacingBlock\";\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n if (super._buildBlock(e), e.target === B.Vertex)\n throw \"FrontFacingBlock must only be used in a fragment shader\";\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = ${e._generateTernary(\"1.0\", \"0.0\", e.shaderLanguage === 0 ? \"gl_FrontFacing\" : \"fragmentInputs.frontFacing\")};\n`, this;\n }\n}\nU(\"BABYLON.FrontFacingBlock\", hA);\nclass cA extends Ge {\n /**\n * Create a new DerivativeBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this.registerInput(\"input\", A.AutoDetect, !1), this.registerOutput(\"dx\", A.BasedOnInput), this.registerOutput(\"dy\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._outputs[1]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DerivativeBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the derivative output on x\n */\n get dx() {\n return this._outputs[0];\n }\n /**\n * Gets the derivative output on y\n */\n get dy() {\n return this._outputs[1];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], i = this._outputs[1];\n e._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\");\n let s = \"dFdx\", r = \"dFdy\";\n return e.shaderLanguage === 1 && (s = \"dpdx\", r = \"dpdy\"), t.hasEndpoints && (e.compilationString += e._declareOutput(t) + ` = ${s}(${this.input.associatedVariableName});\n`), i.hasEndpoints && (e.compilationString += e._declareOutput(i) + ` = ${r}(${this.input.associatedVariableName});\n`), this;\n }\n}\nU(\"BABYLON.DerivativeBlock\", cA);\nclass uA extends Ge {\n /**\n * Creates a new FragCoordBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this.registerOutput(\"xy\", A.Vector2, B.Fragment), this.registerOutput(\"xyz\", A.Vector3, B.Fragment), this.registerOutput(\"xyzw\", A.Vector4, B.Fragment), this.registerOutput(\"x\", A.Float, B.Fragment), this.registerOutput(\"y\", A.Float, B.Fragment), this.registerOutput(\"z\", A.Float, B.Fragment), this.registerOutput(\"w\", A.Float, B.Fragment);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"FragCoordBlock\";\n }\n /**\n * Gets the xy component\n */\n get xy() {\n return this._outputs[0];\n }\n /**\n * Gets the xyz component\n */\n get xyz() {\n return this._outputs[1];\n }\n /**\n * Gets the xyzw component\n */\n get xyzw() {\n return this._outputs[2];\n }\n /**\n * Gets the x component\n */\n get x() {\n return this._outputs[3];\n }\n /**\n * Gets the y component\n */\n get y() {\n return this._outputs[4];\n }\n /**\n * Gets the z component\n */\n get z() {\n return this._outputs[5];\n }\n /**\n * Gets the w component\n */\n get output() {\n return this._outputs[6];\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n writeOutputs(e) {\n let t = \"\";\n const i = e.shaderLanguage === 1 ? \"fragmentInputs.position\" : \"gl_FragCoord\";\n for (const s of this._outputs)\n s.hasEndpoints && (t += `${e._declareOutput(s)} = ${i}.${s.name};\n`);\n return t;\n }\n _buildBlock(e) {\n if (super._buildBlock(e), e.target === B.Vertex)\n throw \"FragCoordBlock must only be used in a fragment shader\";\n return e.compilationString += this.writeOutputs(e), this;\n }\n}\nU(\"BABYLON.FragCoordBlock\", uA);\nclass dA extends Ge {\n /**\n * Creates a new ScreenSizeBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this.registerOutput(\"xy\", A.Vector2, B.Fragment), this.registerOutput(\"x\", A.Float, B.Fragment), this.registerOutput(\"y\", A.Float, B.Fragment);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ScreenSizeBlock\";\n }\n /**\n * Gets the xy component\n */\n get xy() {\n return this._outputs[0];\n }\n /**\n * Gets the x component\n */\n get x() {\n return this._outputs[1];\n }\n /**\n * Gets the y component\n */\n get y() {\n return this._outputs[2];\n }\n bind(e) {\n const t = this._scene.getEngine();\n e.setFloat2(this._varName, t.getRenderWidth(), t.getRenderHeight());\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n writeOutputs(e, t) {\n let i = \"\";\n for (const s of this._outputs)\n s.hasEndpoints && (i += `${e._declareOutput(s)} = ${t}.${s.name};\n`);\n return i;\n }\n _buildBlock(e) {\n if (super._buildBlock(e), this._scene = e.sharedData.scene, e.target === B.Vertex)\n throw \"ScreenSizeBlock must only be used in a fragment shader\";\n e.sharedData.bindableBlocks.push(this), this._varName = e._getFreeVariableName(\"screenSize\"), e._emitUniformFromString(this._varName, A.Vector2);\n const t = e.shaderLanguage === 1 ? \"uniforms.\" : \"\";\n return e.compilationString += this.writeOutputs(e, t + this._varName), this;\n }\n}\nU(\"BABYLON.ScreenSizeBlock\", dA);\nclass fA extends Ge {\n /**\n * Creates a new ScreenSpaceBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this.registerInput(\"vector\", A.AutoDetect), this.registerInput(\"worldViewProjection\", A.Matrix), this.registerOutput(\"output\", A.Vector2), this.registerOutput(\"x\", A.Float), this.registerOutput(\"y\", A.Float), this.inputs[0].addExcludedConnectionPointFromAllowedTypes(A.Color3 | A.Vector3 | A.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ScreenSpaceBlock\";\n }\n /**\n * Gets the vector input\n */\n get vector() {\n return this._inputs[0];\n }\n /**\n * Gets the worldViewProjection transform input\n */\n get worldViewProjection() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the x output component\n */\n get x() {\n return this._outputs[1];\n }\n /**\n * Gets the y output component\n */\n get y() {\n return this._outputs[2];\n }\n autoConfigure(e, t = () => !0) {\n if (!this.worldViewProjection.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.systemValue === ct.WorldViewProjection && t(s));\n i || (i = new ot(\"worldViewProjection\"), i.setAsSystemValue(ct.WorldViewProjection)), i.output.connectTo(this.worldViewProjection);\n }\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this.vector, i = this.worldViewProjection;\n if (!t.connectedPoint)\n return;\n const s = i.associatedVariableName, r = e._getFreeVariableName(\"screenSpaceTemp\");\n switch (t.connectedPoint.type) {\n case A.Vector3:\n e.compilationString += `${e._declareLocalVar(r, A.Vector4)} = ${s} * vec4${e.fSuffix}(${t.associatedVariableName}, 1.0);\n`;\n break;\n case A.Vector4:\n e.compilationString += `${e._declareLocalVar(r, A.Vector4)} = ${s} * ${t.associatedVariableName};\n`;\n break;\n }\n return e.compilationString += `${r} = vec4${e.fSuffix}(${r}.xy / ${r}.w, ${r}.zw);`, e.compilationString += `${r} = vec4${e.fSuffix}(${r}.xy * 0.5 + vec2${e.fSuffix}(0.5, 0.5), ${r}.zw);`, this.output.hasEndpoints && (e.compilationString += e._declareOutput(this.output) + ` = ${r}.xy;\n`), this.x.hasEndpoints && (e.compilationString += e._declareOutput(this.x) + ` = ${r}.x;\n`), this.y.hasEndpoints && (e.compilationString += e._declareOutput(this.y) + ` = ${r}.y;\n`), this;\n }\n}\nU(\"BABYLON.ScreenSpaceBlock\", fA);\nclass pA extends Ge {\n /**\n * Creates a new TwirlBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this.registerInput(\"input\", A.Vector2), this.registerInput(\"strength\", A.Float), this.registerInput(\"center\", A.Vector2), this.registerInput(\"offset\", A.Vector2), this.registerOutput(\"output\", A.Vector2), this.registerOutput(\"x\", A.Float), this.registerOutput(\"y\", A.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TwirlBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the strength component\n */\n get strength() {\n return this._inputs[1];\n }\n /**\n * Gets the center component\n */\n get center() {\n return this._inputs[2];\n }\n /**\n * Gets the offset component\n */\n get offset() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the x output component\n */\n get x() {\n return this._outputs[1];\n }\n /**\n * Gets the y output component\n */\n get y() {\n return this._outputs[2];\n }\n autoConfigure() {\n if (!this.center.isConnected) {\n const e = new ot(\"center\");\n e.value = new Q(0.5, 0.5), e.output.connectTo(this.center);\n }\n if (!this.strength.isConnected) {\n const e = new ot(\"strength\");\n e.value = 1, e.output.connectTo(this.strength);\n }\n if (!this.offset.isConnected) {\n const e = new ot(\"offset\");\n e.value = new Q(0, 0), e.output.connectTo(this.offset);\n }\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = e._getFreeVariableName(\"delta\"), i = e._getFreeVariableName(\"angle\"), s = e._getFreeVariableName(\"x\"), r = e._getFreeVariableName(\"y\"), n = e._getFreeVariableName(\"result\");\n return e.compilationString += ` \n ${e._declareLocalVar(t, A.Vector2)} = ${this.input.associatedVariableName} - ${this.center.associatedVariableName};\n ${e._declareLocalVar(i, A.Float)} = ${this.strength.associatedVariableName} * length(${t});\n ${e._declareLocalVar(s, A.Float)} = cos(${i}) * ${t}.x - sin(${i}) * ${t}.y;\n ${e._declareLocalVar(r, A.Float)} = sin(${i}) * ${t}.x + cos(${i}) * ${t}.y;\n ${e._declareLocalVar(n, A.Vector2)} = vec2(${s} + ${this.center.associatedVariableName}.x + ${this.offset.associatedVariableName}.x, ${r} + ${this.center.associatedVariableName}.y + ${this.offset.associatedVariableName}.y);\n `, this.output.hasEndpoints && (e.compilationString += e._declareOutput(this.output) + ` = ${n};\n`), this.x.hasEndpoints && (e.compilationString += e._declareOutput(this.x) + ` = ${n}.x;\n`), this.y.hasEndpoints && (e.compilationString += e._declareOutput(this.y) + ` = ${n}.y;\n`), this;\n }\n}\nU(\"BABYLON.TwirlBlock\", pA);\nclass If extends Ge {\n /**\n * Creates a new HeightToNormalBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this.generateInWorldSpace = !1, this.automaticNormalizationNormal = !0, this.automaticNormalizationTangent = !0, this.registerInput(\"input\", A.Float), this.registerInput(\"worldPosition\", A.Vector3), this.registerInput(\"worldNormal\", A.Vector3), this.registerInput(\"worldTangent\", A.AutoDetect, !0), this.registerOutput(\"output\", A.Vector4), this.registerOutput(\"xyz\", A.Vector3), this._inputs[3].addExcludedConnectionPointFromAllowedTypes(A.Color3 | A.Vector3 | A.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"HeightToNormalBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the position component\n */\n get worldPosition() {\n return this._inputs[1];\n }\n /**\n * Gets the normal component\n */\n get worldNormal() {\n return this._inputs[2];\n }\n /**\n * Gets the tangent component\n */\n get worldTangent() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the xyz component\n */\n get xyz() {\n return this._outputs[1];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], i = e.shaderLanguage === 1, s = e.fSuffix;\n !this.generateInWorldSpace && !this.worldTangent.isConnected && L.Error(`You must connect the 'worldTangent' input of the ${this.name} block!`);\n const r = this.generateInWorldSpace ? \"\" : `\n vec3 biTangent = cross(norm, tgt);\n mat3 TBN = mat3(tgt, biTangent, norm);\n `, n = this.generateInWorldSpace ? \"\" : `\n result = TBN * result;\n result = result * vec3(0.5) + vec3(0.5);\n `;\n let o = `\n vec4 heightToNormal(float height, vec3 position, vec3 tangent, vec3 normal) {\n vec3 tgt = ${this.automaticNormalizationTangent ? \"normalize(tangent);\" : \"tangent;\"}\n vec3 norm = ${this.automaticNormalizationNormal ? \"normalize(normal);\" : \"normal;\"}\n ${r}\n vec3 worlddX = dFdx(position);\n vec3 worlddY = dFdy(position);\n vec3 crossX = cross(norm, worlddX);\n vec3 crossY = cross(norm, worlddY);\n float d = abs(dot(crossY, worlddX));\n vec3 inToNormal = vec3(((((height + dFdx(height)) - height) * crossY) + (((height + dFdy(height)) - height) * crossX)) * sign(d));\n inToNormal.y *= -1.0;\n vec3 result = normalize((d * norm) - inToNormal);\n ${n}\n return vec4(result, 0.);\n }`;\n return i ? o = e._babylonSLtoWGSL(o) : e._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\"), e._emitFunction(\"heightToNormal\", o, \"// heightToNormal\"), e.compilationString += e._declareOutput(t) + ` = heightToNormal(${this.input.associatedVariableName}, ${this.worldPosition.associatedVariableName}, ${this.worldTangent.isConnected ? this.worldTangent.associatedVariableName : `vec3${s}(0.)`}.xyz, ${this.worldNormal.associatedVariableName});\n`, this.xyz.hasEndpoints && (e.compilationString += e._declareOutput(this.xyz) + ` = ${this.output.associatedVariableName}.xyz;\n`), this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return e += `${this._codeVariableName}.generateInWorldSpace = ${this.generateInWorldSpace};\n`, e += `${this._codeVariableName}.automaticNormalizationNormal = ${this.automaticNormalizationNormal};\n`, e += `${this._codeVariableName}.automaticNormalizationTangent = ${this.automaticNormalizationTangent};\n`, e;\n }\n serialize() {\n const e = super.serialize();\n return e.generateInWorldSpace = this.generateInWorldSpace, e.automaticNormalizationNormal = this.automaticNormalizationNormal, e.automaticNormalizationTangent = this.automaticNormalizationTangent, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.generateInWorldSpace = e.generateInWorldSpace, this.automaticNormalizationNormal = e.automaticNormalizationNormal, this.automaticNormalizationTangent = e.automaticNormalizationTangent;\n }\n}\ny([\n ze(\"Generate in world space instead of tangent space\", 0, \"PROPERTIES\", { notifiers: { update: !0 } })\n], If.prototype, \"generateInWorldSpace\", void 0);\ny([\n ze(\"Force normalization for the worldNormal input\", 0, \"PROPERTIES\", { notifiers: { update: !0 } })\n], If.prototype, \"automaticNormalizationNormal\", void 0);\ny([\n ze(\"Force normalization for the worldTangent input\", 0, \"PROPERTIES\", { notifiers: { update: !0 } })\n], If.prototype, \"automaticNormalizationTangent\", void 0);\nU(\"BABYLON.HeightToNormalBlock\", If);\nclass _A extends Ge {\n /**\n * Create a new FragDepthBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment, !0), this.registerInput(\"depth\", A.Float, !0), this.registerInput(\"worldPos\", A.Vector4, !0), this.registerInput(\"viewProjection\", A.Matrix, !0);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"FragDepthBlock\";\n }\n /**\n * Gets the depth input component\n */\n get depth() {\n return this._inputs[0];\n }\n /**\n * Gets the worldPos input component\n */\n get worldPos() {\n return this._inputs[1];\n }\n /**\n * Gets the viewProjection input component\n */\n get viewProjection() {\n return this._inputs[2];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = e.shaderLanguage === 0 ? \"gl_FragDepth\" : \"fragmentOutputs.fragDepth\";\n return this.depth.isConnected ? e.compilationString += `${t} = ${this.depth.associatedVariableName};\n` : this.worldPos.isConnected && this.viewProjection.isConnected ? e.compilationString += `\n ${e._declareLocalVar(\"p\", A.Vector4)} = ${this.viewProjection.associatedVariableName} * ${this.worldPos.associatedVariableName};\n ${e._declareLocalVar(\"v\", A.Float)} = p.z / p.w;\n #ifndef IS_NDC_HALF_ZRANGE\n v = v * 0.5 + 0.5;\n #endif\n ${t} = v;\n \n ` : L.Warn(\"FragDepthBlock: either the depth input or both the worldPos and viewProjection inputs must be connected!\"), this;\n }\n}\nU(\"BABYLON.FragDepthBlock\", _A);\nclass mA extends Ge {\n /**\n * Create a new ShadowMapBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this.registerInput(\"worldPosition\", A.Vector4, !1), this.registerInput(\"viewProjection\", A.Matrix, !1), this.registerInput(\"worldNormal\", A.AutoDetect, !0), this.registerOutput(\"depth\", A.Vector3), this.worldNormal.addExcludedConnectionPointFromAllowedTypes(A.Color3 | A.Vector3 | A.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ShadowMapBlock\";\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"vPositionWSM\"), e._excludeVariableName(\"lightDataSM\"), e._excludeVariableName(\"biasAndScaleSM\"), e._excludeVariableName(\"depthValuesSM\"), e._excludeVariableName(\"clipPos\"), e._excludeVariableName(\"worldPos\"), e._excludeVariableName(\"zSM\");\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the view x projection input component\n */\n get viewProjection() {\n return this._inputs[1];\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this._inputs[2];\n }\n /**\n * Gets the depth output component\n */\n get depth() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = `//${this.name}`;\n return e._emitUniformFromString(\"biasAndScaleSM\", A.Vector3), e._emitUniformFromString(\"lightDataSM\", A.Vector3), e._emitUniformFromString(\"depthValuesSM\", A.Vector2), e._emitFunctionFromInclude(\"packingFunctions\", t), e.compilationString += `vec4 worldPos = ${this.worldPosition.associatedVariableName};\n`, e.compilationString += `vec3 vPositionWSM;\n`, e.compilationString += `float vDepthMetricSM = 0.0;\n`, e.compilationString += `float zSM;\n`, this.worldNormal.isConnected && (e.compilationString += `vec3 vNormalW = ${this.worldNormal.associatedVariableName}.xyz;\n`, e.compilationString += e._emitCodeFromInclude(\"shadowMapVertexNormalBias\", t)), e.compilationString += `vec4 clipPos = ${this.viewProjection.associatedVariableName} * worldPos;\n`, e.compilationString += e._emitCodeFromInclude(\"shadowMapVertexMetric\", t, {\n replaceStrings: [\n {\n search: /gl_Position/g,\n replace: \"clipPos\"\n }\n ]\n }), e.compilationString += e._emitCodeFromInclude(\"shadowMapFragment\", t, {\n replaceStrings: [\n {\n search: /return;/g,\n replace: \"\"\n }\n ]\n }), e.compilationString += `\n #if SM_DEPTHTEXTURE == 1\n #ifdef IS_NDC_HALF_ZRANGE\n gl_FragDepth = (clipPos.z / clipPos.w);\n #else\n gl_FragDepth = (clipPos.z / clipPos.w) * 0.5 + 0.5;\n #endif\n #endif\n `, e.compilationString += `${e._declareOutput(this.depth)} = vec3(depthSM, 1., 1.);\n`, this;\n }\n}\nU(\"BABYLON.ShadowMapBlock\", mA);\nclass gA extends Ge {\n /**\n * Create a new PrePassOutputBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment, !0), this.registerInput(\"viewDepth\", A.Float, !0), this.registerInput(\"worldPosition\", A.AutoDetect, !0), this.registerInput(\"viewNormal\", A.AutoDetect, !0), this.registerInput(\"reflectivity\", A.AutoDetect, !0), this.inputs[1].addExcludedConnectionPointFromAllowedTypes(A.Vector3 | A.Vector4), this.inputs[2].addExcludedConnectionPointFromAllowedTypes(A.Vector3 | A.Vector4), this.inputs[3].addExcludedConnectionPointFromAllowedTypes(A.Vector3 | A.Vector4 | A.Color3 | A.Color4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"PrePassOutputBlock\";\n }\n /**\n * Gets the view depth component\n */\n get viewDepth() {\n return this._inputs[0];\n }\n /**\n * Gets the world position component\n */\n get worldPosition() {\n return this._inputs[1];\n }\n /**\n * Gets the view normal component\n */\n get viewNormal() {\n return this._inputs[2];\n }\n /**\n * Gets the reflectivity component\n */\n get reflectivity() {\n return this._inputs[3];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this.worldPosition, i = this.viewNormal, s = this.viewDepth, r = this.reflectivity;\n e.sharedData.blocksWithDefines.push(this);\n const n = `//${this.name}`;\n return e._emitFunctionFromInclude(\"helperFunctions\", n), e.compilationString += `#if defined(PREPASS)\\r\n`, e.compilationString += `#ifdef PREPASS_DEPTH\\r\n`, s.connectedPoint ? e.compilationString += ` gl_FragData[PREPASS_DEPTH_INDEX] = vec4(${s.associatedVariableName}, 0.0, 0.0, 1.0);\\r\n` : e.compilationString += ` gl_FragData[PREPASS_DEPTH_INDEX] = vec4(0.0, 0.0, 0.0, 0.0);\\r\n`, e.compilationString += `#endif\\r\n`, e.compilationString += `#ifdef PREPASS_POSITION\\r\n`, t.connectedPoint ? e.compilationString += ` gl_FragData[PREPASS_POSITION_INDEX] = vec4(${t.associatedVariableName}.rgb, ${t.connectedPoint.type === A.Vector4 ? t.associatedVariableName + \".a\" : \"1.0\"});\\r\n` : e.compilationString += ` gl_FragData[PREPASS_POSITION_INDEX] = vec4(0.0, 0.0, 0.0, 0.0);\\r\n`, e.compilationString += `#endif\\r\n`, e.compilationString += `#ifdef PREPASS_NORMAL\\r\n`, i.connectedPoint ? e.compilationString += ` gl_FragData[PREPASS_NORMAL_INDEX] = vec4(${i.associatedVariableName}.rgb, ${i.connectedPoint.type === A.Vector4 ? i.associatedVariableName + \".a\" : \"1.0\"});\\r\n` : e.compilationString += ` gl_FragData[PREPASS_NORMAL_INDEX] = vec4(0.0, 0.0, 0.0, 0.0);\\r\n`, e.compilationString += `#endif\\r\n`, e.compilationString += `#ifdef PREPASS_REFLECTIVITY\\r\n`, r.connectedPoint ? e.compilationString += ` gl_FragData[PREPASS_REFLECTIVITY_INDEX] = vec4(${r.associatedVariableName}.rgb, ${r.connectedPoint.type === A.Vector4 ? r.associatedVariableName + \".a\" : \"1.0\"});\\r\n` : e.compilationString += ` gl_FragData[PREPASS_REFLECTIVITY_INDEX] = vec4(0.0, 0.0, 0.0, 1.0);\\r\n`, e.compilationString += `#endif\\r\n`, e.compilationString += `#endif\\r\n`, this;\n }\n}\nU(\"BABYLON.PrePassOutputBlock\", gA);\nclass xA extends Ge {\n /**\n * Create a new FogBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.VertexAndFragment, !1), this.registerInput(\"worldPosition\", A.Vector4, !1, B.Vertex), this.registerInput(\"view\", A.Matrix, !1, B.Vertex), this.registerInput(\"input\", A.AutoDetect, !1, B.Fragment), this.registerInput(\"fogColor\", A.AutoDetect, !1, B.Fragment), this.registerOutput(\"output\", A.Color3, B.Fragment), this.input.addExcludedConnectionPointFromAllowedTypes(A.Color3 | A.Vector3 | A.Color4), this.fogColor.addExcludedConnectionPointFromAllowedTypes(A.Color3 | A.Vector3 | A.Color4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"FogBlock\";\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the view input component\n */\n get view() {\n return this._inputs[1];\n }\n /**\n * Gets the color input component\n */\n get input() {\n return this._inputs[2];\n }\n /**\n * Gets the fog color input component\n */\n get fogColor() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n autoConfigure(e, t = () => !0) {\n if (!this.view.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.systemValue === ct.View && t(s));\n i || (i = new ot(\"view\"), i.setAsSystemValue(ct.View)), i.output.connectTo(this.view);\n }\n if (!this.fogColor.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.systemValue === ct.FogColor && t(s));\n i || (i = new ot(\"fogColor\", void 0, A.Color3), i.setAsSystemValue(ct.FogColor)), i.output.connectTo(this.fogColor);\n }\n }\n prepareDefines(e, t, i) {\n const s = e.getScene();\n i.setValue(\"FOG\", t.fogEnabled && Vx(e, s));\n }\n bind(e, t, i) {\n if (!i)\n return;\n const s = i.getScene();\n e.setFloat4(this._fogParameters, s.fogMode, s.fogStart, s.fogEnd, s.fogDensity);\n }\n _buildBlock(e) {\n if (super._buildBlock(e), e.target === B.Fragment) {\n e.sharedData.blocksWithDefines.push(this), e.sharedData.bindableBlocks.push(this);\n let t = [], i = \"\", s = \"\";\n e.shaderLanguage === 1 ? (t = [\n { search: /fn CalcFogFactor\\(\\)/, replace: \"fn CalcFogFactor(vFogDistance: vec3f, vFogInfos: vec4f)\" },\n { search: /uniforms.vFogInfos/g, replace: \"vFogInfos\" },\n { search: /fragmentInputs.vFogDistance/g, replace: \"vFogDistance\" }\n ], i = \"fragmentInputs.\", s = \"uniforms.\") : t = [{ search: /float CalcFogFactor\\(\\)/, replace: \"float CalcFogFactor(vec3 vFogDistance, vec4 vFogInfos)\" }], e._emitFunctionFromInclude(\"fogFragmentDeclaration\", `//${this.name}`, {\n removeUniforms: !0,\n removeVaryings: !0,\n removeIfDef: !1,\n replaceStrings: t\n });\n const r = e._getFreeVariableName(\"fog\"), n = this.input, o = this.fogColor;\n this._fogParameters = e._getFreeVariableName(\"fogParameters\");\n const l = this._outputs[0];\n e._emitUniformFromString(this._fogParameters, A.Vector4), e.compilationString += `#ifdef FOG\n`, e.compilationString += `${e._declareLocalVar(r, A.Float)} = CalcFogFactor(${i}${this._fogDistanceName}, ${s}${this._fogParameters});\n`, e.compilationString += e._declareOutput(l) + ` = ${r} * ${n.associatedVariableName}.rgb + (1.0 - ${r}) * ${o.associatedVariableName}.rgb;\n`, e.compilationString += `#else\n${e._declareOutput(l)} = ${n.associatedVariableName}.rgb;\n`, e.compilationString += `#endif\n`;\n } else {\n const t = this.worldPosition, i = this.view;\n this._fogDistanceName = e._getFreeVariableName(\"vFogDistance\"), e._emitVaryingFromString(this._fogDistanceName, A.Vector3);\n const s = e.shaderLanguage === 1 ? \"vertexOutputs.\" : \"\";\n e.compilationString += `${s}${this._fogDistanceName} = (${i.associatedVariableName} * ${t.associatedVariableName}).xyz;\n`;\n }\n return this;\n }\n}\nU(\"BABYLON.FogBlock\", xA);\nclass Kp extends Ge {\n static _OnGenerateOnlyFragmentCodeChanged(e, t) {\n const i = e;\n return i.worldPosition.isConnected ? (i.generateOnlyFragmentCode = !i.generateOnlyFragmentCode, L.Error(\"The worldPosition input must not be connected to be able to switch!\"), !1) : (i._setTarget(), !0);\n }\n _setTarget() {\n this._setInitialTarget(this.generateOnlyFragmentCode ? B.Fragment : B.VertexAndFragment), this.getInputByName(\"worldPosition\").target = this.generateOnlyFragmentCode ? B.Fragment : B.Vertex;\n }\n /**\n * Create a new LightBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.VertexAndFragment), this._lightId = 0, this.generateOnlyFragmentCode = !1, this._isUnique = !0, this.registerInput(\"worldPosition\", A.Vector4, !1, B.Vertex), this.registerInput(\"worldNormal\", A.Vector4, !1, B.Fragment), this.registerInput(\"cameraPosition\", A.Vector3, !1, B.Fragment), this.registerInput(\"glossiness\", A.Float, !0, B.Fragment), this.registerInput(\"glossPower\", A.Float, !0, B.Fragment), this.registerInput(\"diffuseColor\", A.Color3, !0, B.Fragment), this.registerInput(\"specularColor\", A.Color3, !0, B.Fragment), this.registerInput(\"view\", A.Matrix, !0), this.registerOutput(\"diffuseOutput\", A.Color3, B.Fragment), this.registerOutput(\"specularOutput\", A.Color3, B.Fragment), this.registerOutput(\"shadow\", A.Float, B.Fragment);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"LightBlock\";\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this._inputs[1];\n }\n /**\n * Gets the camera (or eye) position component\n */\n get cameraPosition() {\n return this._inputs[2];\n }\n /**\n * Gets the glossiness component\n */\n get glossiness() {\n return this._inputs[3];\n }\n /**\n * Gets the glossiness power component\n */\n get glossPower() {\n return this._inputs[4];\n }\n /**\n * Gets the diffuse color component\n */\n get diffuseColor() {\n return this._inputs[5];\n }\n /**\n * Gets the specular color component\n */\n get specularColor() {\n return this._inputs[6];\n }\n /**\n * Gets the view matrix component\n */\n get view() {\n return this._inputs[7];\n }\n /**\n * Gets the diffuse output component\n */\n get diffuseOutput() {\n return this._outputs[0];\n }\n /**\n * Gets the specular output component\n */\n get specularOutput() {\n return this._outputs[1];\n }\n /**\n * Gets the shadow output component\n */\n get shadow() {\n return this._outputs[2];\n }\n autoConfigure(e, t = () => !0) {\n if (!this.cameraPosition.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.systemValue === ct.CameraPosition && t(s));\n i || (i = new ot(\"cameraPosition\"), i.setAsSystemValue(ct.CameraPosition)), i.output.connectTo(this.cameraPosition);\n }\n }\n prepareDefines(e, t, i) {\n if (!i._areLightsDirty)\n return;\n const s = e.getScene();\n if (!this.light)\n xc(s, e, i, !0, t.maxSimultaneousLights);\n else {\n const r = {\n needNormals: !1,\n needRebuild: !1,\n lightmapMode: !1,\n shadowEnabled: !1,\n specularEnabled: !1\n };\n x_(s, e, this.light, this._lightId, i, !0, r), r.needRebuild && i.rebuild();\n }\n }\n updateUniformsAndSamples(e, t, i, s) {\n for (let r = 0; r < t.maxSimultaneousLights && i[\"LIGHT\" + r]; r++) {\n const n = e.uniforms.indexOf(\"vLightData\" + r) >= 0;\n T_(r, e.uniforms, e.samplers, i[\"PROJECTEDLIGHTTEXTURE\" + r], s, n);\n }\n }\n bind(e, t, i) {\n if (!i)\n return;\n const s = i.getScene();\n this.light ? __(this.light, this._lightId, s, e, !0) : gc(s, i, e, !0, t.maxSimultaneousLights);\n }\n _injectVertexCode(e) {\n const t = this.worldPosition, i = `//${this.name}`;\n this.light ? (this._lightId = (e.counters.lightCounter !== void 0 ? e.counters.lightCounter : -1) + 1, e.counters.lightCounter = this._lightId, e._emitFunctionFromInclude(e.supportUniformBuffers ? \"lightVxUboDeclaration\" : \"lightVxFragmentDeclaration\", i, {\n replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }]\n }, this._lightId.toString())) : (e._emitFunctionFromInclude(e.supportUniformBuffers ? \"lightVxUboDeclaration\" : \"lightVxFragmentDeclaration\", i, {\n repeatKey: \"maxSimultaneousLights\"\n }), this._lightId = 0, e.sharedData.dynamicUniformBlocks.push(this));\n const s = \"v_\" + t.associatedVariableName;\n e._emitVaryingFromString(s, A.Vector4) && (e.compilationString += (e.shaderLanguage === 1 ? \"vertexOutputs.\" : \"\") + `${s} = ${t.associatedVariableName};\n`), this.light ? e.compilationString += e._emitCodeFromInclude(\"shadowsVertex\", i, {\n replaceStrings: [\n { search: /{X}/g, replace: this._lightId.toString() },\n { search: /worldPos/g, replace: t.associatedVariableName }\n ]\n }) : (e.compilationString += `${e._declareLocalVar(\"worldPos\", A.Vector4)} = ${t.associatedVariableName};\n`, this.view.isConnected && (e.compilationString += `${e._declareLocalVar(\"view\", A.Matrix)} = ${this.view.associatedVariableName};\n`), e.compilationString += e._emitCodeFromInclude(\"shadowsVertex\", i, {\n repeatKey: \"maxSimultaneousLights\"\n }));\n }\n _injectUBODeclaration(e) {\n const t = `//${this.name}`;\n this.light ? e._emitFunctionFromInclude(e.supportUniformBuffers ? \"lightUboDeclaration\" : \"lightFragmentDeclaration\", t, {\n replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }]\n }, this._lightId.toString()) : e._emitFunctionFromInclude(e.supportUniformBuffers ? \"lightUboDeclaration\" : \"lightFragmentDeclaration\", t, {\n repeatKey: \"maxSimultaneousLights\",\n substitutionVars: this.generateOnlyFragmentCode ? \"varying,\" : void 0\n });\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = e.shaderLanguage === 1, i = t ? \"f\" : \"\", s = `//${this.name}`;\n if (e.target !== B.Fragment) {\n this._injectVertexCode(e);\n return;\n }\n this.generateOnlyFragmentCode && e.sharedData.dynamicUniformBlocks.push(this);\n const r = e.shaderLanguage === 1 ? \"fragmentInputs.\" : \"\";\n e.sharedData.forcedBindableBlocks.push(this), e.sharedData.blocksWithDefines.push(this);\n const n = this.worldPosition;\n let o = n.associatedVariableName;\n this.generateOnlyFragmentCode ? (o = e._getFreeVariableName(\"globalWorldPos\"), e._emitFunction(\"light_globalworldpos\", `${e._declareLocalVar(o, A.Vector3)};\n`, s), e.compilationString += `${o} = ${n.associatedVariableName}.xyz;\n`, e.compilationString += e._emitCodeFromInclude(\"shadowsVertex\", s, {\n repeatKey: \"maxSimultaneousLights\",\n substitutionVars: this.generateOnlyFragmentCode ? `worldPos,${n.associatedVariableName}` : void 0\n })) : o = r + \"v_\" + o + \".xyz\", e._emitFunctionFromInclude(\"helperFunctions\", s), e._emitFunctionFromInclude(\"lightsFragmentFunctions\", s, {\n replaceStrings: [{ search: /vPositionW/g, replace: o }]\n }), e._emitFunctionFromInclude(\"shadowsFragmentFunctions\", s, {\n replaceStrings: [{ search: /vPositionW/g, replace: o }]\n }), this._injectUBODeclaration(e), this._lightId === 0 && (e._registerTempVariable(\"viewDirectionW\") && (e.compilationString += `${e._declareLocalVar(\"viewDirectionW\", A.Vector3)} = normalize(${this.cameraPosition.associatedVariableName} - ${o});\n`), e.compilationString += t ? `var info: lightingInfo;\n` : `lightingInfo info;\n`, e.compilationString += `${e._declareLocalVar(\"shadow\", A.Float)} = 1.;\n`, e.compilationString += `${e._declareLocalVar(\"aggShadow\", A.Float)} = 0.;\n`, e.compilationString += `${e._declareLocalVar(\"numLights\", A.Float)} = 0.;\n`, e.compilationString += `${e._declareLocalVar(\"glossiness\", A.Float)} = ${this.glossiness.isConnected ? this.glossiness.associatedVariableName : \"1.0\"} * ${this.glossPower.isConnected ? this.glossPower.associatedVariableName : \"1024.0\"};\n`, e.compilationString += `${e._declareLocalVar(\"diffuseBase\", A.Vector3)} = vec3${i}(0., 0., 0.);\n`, e.compilationString += `${e._declareLocalVar(\"specularBase\", A.Vector3)} = vec3${i}(0., 0., 0.);\n`, e.compilationString += `${e._declareLocalVar(\"normalW\", A.Vector3)} = ${this.worldNormal.associatedVariableName}.xyz;\n`), this.light ? e.compilationString += e._emitCodeFromInclude(\"lightFragment\", s, {\n replaceStrings: [\n { search: /{X}/g, replace: this._lightId.toString() },\n { search: /vPositionW/g, replace: o + \".xyz\" }\n ]\n }) : e.compilationString += e._emitCodeFromInclude(\"lightFragment\", s, {\n repeatKey: \"maxSimultaneousLights\",\n substitutionVars: `vPositionW,${o}.xyz`\n }), this._lightId === 0 && (e.compilationString += `aggShadow = aggShadow / numLights;\n`);\n const l = this.diffuseOutput, h = this.specularOutput;\n return e.compilationString += e._declareOutput(l) + ` = diffuseBase${this.diffuseColor.isConnected ? \" * \" + this.diffuseColor.associatedVariableName : \"\"};\n`, h.hasEndpoints && (e.compilationString += e._declareOutput(h) + ` = specularBase${this.specularColor.isConnected ? \" * \" + this.specularColor.associatedVariableName : \"\"};\n`), this.shadow.hasEndpoints && (e.compilationString += e._declareOutput(this.shadow) + ` = aggShadow;\n`), this;\n }\n serialize() {\n const e = super.serialize();\n return e.generateOnlyFragmentCode = this.generateOnlyFragmentCode, this.light && (e.lightId = this.light.id), e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), e.lightId && (this.light = t.getLightById(e.lightId)), this.generateOnlyFragmentCode = e.generateOnlyFragmentCode, this._setTarget();\n }\n}\ny([\n ze(\"Generate only fragment code\", 0, \"ADVANCED\", {\n notifiers: { rebuild: !0, update: !0, onValidation: Kp._OnGenerateOnlyFragmentCodeChanged }\n })\n], Kp.prototype, \"generateOnlyFragmentCode\", void 0);\nU(\"BABYLON.LightBlock\", Kp);\nclass Fn extends Ge {\n /**\n * Gets or sets the texture associated with the node\n */\n get texture() {\n return this._texture;\n }\n set texture(e) {\n if (this._texture === e)\n return;\n const t = (e == null ? void 0 : e.getScene()) ?? Me.LastCreatedScene;\n !e && t && t.markAllMaterialsAsDirty(1, (i) => i.hasTexture(this._texture)), this._texture = e, e && t && t.markAllMaterialsAsDirty(1, (i) => i.hasTexture(e));\n }\n /**\n * Gets the sampler name associated with this image source\n */\n get samplerName() {\n return this._samplerName;\n }\n /**\n * Creates a new ImageSourceBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.VertexAndFragment), this.registerOutput(\"source\", A.Object, B.VertexAndFragment, new Bi(\"source\", this, 1, Fn, \"ImageSourceBlock\"));\n }\n bind(e) {\n this.texture && e.setTexture(this._samplerName, this.texture);\n }\n isReady() {\n return !(this.texture && !this.texture.isReadyOrNotBlocking());\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ImageSourceBlock\";\n }\n /**\n * Gets the output component\n */\n get source() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n return super._buildBlock(e), e.target === B.Vertex && (this._samplerName = e._getFreeVariableName(this.name + \"Texture\"), e.sharedData.blockingBlocks.push(this), e.sharedData.textureBlocks.push(this), e.sharedData.bindableBlocks.push(this)), e._emit2DSampler(this._samplerName), this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return this.texture && (e += `${this._codeVariableName}.texture = new BABYLON.Texture(\"${this.texture.name}\", null, ${this.texture.noMipmap}, ${this.texture.invertY}, ${this.texture.samplingMode});\n`, e += `${this._codeVariableName}.texture.wrapU = ${this.texture.wrapU};\n`, e += `${this._codeVariableName}.texture.wrapV = ${this.texture.wrapV};\n`, e += `${this._codeVariableName}.texture.uAng = ${this.texture.uAng};\n`, e += `${this._codeVariableName}.texture.vAng = ${this.texture.vAng};\n`, e += `${this._codeVariableName}.texture.wAng = ${this.texture.wAng};\n`, e += `${this._codeVariableName}.texture.uOffset = ${this.texture.uOffset};\n`, e += `${this._codeVariableName}.texture.vOffset = ${this.texture.vOffset};\n`, e += `${this._codeVariableName}.texture.uScale = ${this.texture.uScale};\n`, e += `${this._codeVariableName}.texture.vScale = ${this.texture.vScale};\n`, e += `${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};\n`), e;\n }\n serialize() {\n const e = super.serialize();\n return this.texture && !this.texture.isRenderTarget && this.texture.getClassName() !== \"VideoTexture\" && (e.texture = this.texture.serialize()), e;\n }\n _deserialize(e, t, i, s) {\n super._deserialize(e, t, i, s), e.texture && !Ai.IgnoreTexturesAtLoadTime && e.texture.url !== void 0 && (e.texture.url.indexOf(\"data:\") === 0 ? i = \"\" : s && (e.texture.url = s(e.texture.url), e.texture.name = e.texture.url), this.texture = X.Parse(e.texture, t, i));\n }\n}\nU(\"BABYLON.ImageSourceBlock\", Fn);\nclass Eu extends Ge {\n /**\n * Gets or sets the texture associated with the node\n */\n get texture() {\n var e;\n return this.source.isConnected ? ((e = this.source.connectedPoint) == null ? void 0 : e.ownerBlock).texture : this._texture;\n }\n set texture(e) {\n if (this._texture === e)\n return;\n const t = (e == null ? void 0 : e.getScene()) ?? Me.LastCreatedScene;\n !e && t && t.markAllMaterialsAsDirty(1, (i) => i.hasTexture(this._texture)), this._texture = e, e && t && t.markAllMaterialsAsDirty(1, (i) => i.hasTexture(e));\n }\n static _IsPrePassTextureBlock(e) {\n return (e == null ? void 0 : e.getClassName()) === \"PrePassTextureBlock\";\n }\n get _isSourcePrePass() {\n return Eu._IsPrePassTextureBlock(this._imageSource);\n }\n /**\n * Gets the sampler name associated with this texture\n */\n get samplerName() {\n if (this._imageSource) {\n if (!Eu._IsPrePassTextureBlock(this._imageSource))\n return this._imageSource.samplerName;\n if (this.source.connectedPoint)\n return this._imageSource.getSamplerName(this.source.connectedPoint);\n }\n return this._samplerName;\n }\n /**\n * Gets a boolean indicating that this block is linked to an ImageSourceBlock\n */\n get hasImageSource() {\n return this.source.isConnected;\n }\n /**\n * Gets or sets a boolean indicating if content needs to be converted to gamma space\n */\n set convertToGammaSpace(e) {\n if (e !== this._convertToGammaSpace && (this._convertToGammaSpace = e, this.texture)) {\n const t = this.texture.getScene() ?? Me.LastCreatedScene;\n t == null || t.markAllMaterialsAsDirty(1, (i) => i.hasTexture(this.texture));\n }\n }\n get convertToGammaSpace() {\n return this._convertToGammaSpace;\n }\n /**\n * Gets or sets a boolean indicating if content needs to be converted to linear space\n */\n set convertToLinearSpace(e) {\n if (e !== this._convertToLinearSpace && (this._convertToLinearSpace = e, this.texture)) {\n const t = this.texture.getScene() ?? Me.LastCreatedScene;\n t == null || t.markAllMaterialsAsDirty(1, (i) => i.hasTexture(this.texture));\n }\n }\n get convertToLinearSpace() {\n return this._convertToLinearSpace;\n }\n /**\n * Create a new TextureBlock\n * @param name defines the block name\n * @param fragmentOnly\n */\n constructor(e, t = !1) {\n super(e, t ? B.Fragment : B.VertexAndFragment), this._convertToGammaSpace = !1, this._convertToLinearSpace = !1, this.disableLevelMultiplication = !1, this._fragmentOnly = t, this.registerInput(\"uv\", A.AutoDetect, !1, B.VertexAndFragment), this.registerInput(\"source\", A.Object, !0, B.VertexAndFragment, new Bi(\"source\", this, 0, Fn, \"ImageSourceBlock\")), this.registerInput(\"layer\", A.Float, !0), this.registerInput(\"lod\", A.Float, !0), this.registerOutput(\"rgba\", A.Color4, B.Neutral), this.registerOutput(\"rgb\", A.Color3, B.Neutral), this.registerOutput(\"r\", A.Float, B.Neutral), this.registerOutput(\"g\", A.Float, B.Neutral), this.registerOutput(\"b\", A.Float, B.Neutral), this.registerOutput(\"a\", A.Float, B.Neutral), this.registerOutput(\"level\", A.Float, B.Neutral), this._inputs[0].addExcludedConnectionPointFromAllowedTypes(A.Vector2 | A.Vector3 | A.Vector4), this._inputs[0]._prioritizeVertex = !t;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TextureBlock\";\n }\n /**\n * Gets the uv input component\n */\n get uv() {\n return this._inputs[0];\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[1];\n }\n /**\n * Gets the layer input component\n */\n get layer() {\n return this._inputs[2];\n }\n /**\n * Gets the LOD input component\n */\n get lod() {\n return this._inputs[3];\n }\n /**\n * Gets the rgba output component\n */\n get rgba() {\n return this._outputs[0];\n }\n /**\n * Gets the rgb output component\n */\n get rgb() {\n return this._outputs[1];\n }\n /**\n * Gets the r output component\n */\n get r() {\n return this._outputs[2];\n }\n /**\n * Gets the g output component\n */\n get g() {\n return this._outputs[3];\n }\n /**\n * Gets the b output component\n */\n get b() {\n return this._outputs[4];\n }\n /**\n * Gets the a output component\n */\n get a() {\n return this._outputs[5];\n }\n /**\n * Gets the level output component\n */\n get level() {\n return this._outputs[6];\n }\n get target() {\n if (this._fragmentOnly)\n return B.Fragment;\n if (!this.uv.isConnected || this.uv.sourceBlock.isInput)\n return B.VertexAndFragment;\n let e = this.uv.connectedPoint;\n for (; e; ) {\n if (e.target === B.Fragment)\n return B.Fragment;\n if (e.target === B.Vertex)\n return B.VertexAndFragment;\n if (e.target === B.Neutral || e.target === B.VertexAndFragment) {\n const t = e.ownerBlock;\n if (t.target === B.Fragment)\n return B.Fragment;\n e = null;\n for (const i of t.inputs)\n if (i.connectedPoint) {\n e = i.connectedPoint;\n break;\n }\n }\n }\n return B.VertexAndFragment;\n }\n set target(e) {\n }\n autoConfigure(e, t = () => !0) {\n if (!this.uv.isConnected)\n if (e.mode === Cr.PostProcess) {\n const i = e.getBlockByPredicate((s) => s.name === \"uv\" && t(s));\n i && i.connectTo(this);\n } else {\n const i = e.mode === Cr.Particle ? \"particle_uv\" : \"uv\";\n let s = e.getInputBlockByPredicate((r) => r.isAttribute && r.name === i && t(r));\n s || (s = new ot(\"uv\"), s.setAsAttribute(i)), s.output.connectTo(this.uv);\n }\n }\n initializeDefines(e, t, i) {\n i._areTexturesDirty && this._mainUVDefineName !== void 0 && i.setValue(this._mainUVDefineName, !1, !0);\n }\n prepareDefines(e, t, i) {\n if (!i._areTexturesDirty)\n return;\n if (!this.texture || !this.texture.getTextureMatrix) {\n this._isMixed && (i.setValue(this._defineName, !1, !0), i.setValue(this._mainUVDefineName, !0, !0));\n return;\n }\n const s = this.convertToGammaSpace && this.texture && !this.texture.gammaSpace, r = this.convertToLinearSpace && this.texture && this.texture.gammaSpace;\n i.setValue(this._linearDefineName, s, !0), i.setValue(this._gammaDefineName, r, !0), this._isMixed && (this.texture.getTextureMatrix().isIdentityAs3x2() ? (i.setValue(this._defineName, !1, !0), i.setValue(this._mainUVDefineName, !0, !0)) : (i.setValue(this._defineName, !0), i[this._mainUVDefineName] == null && i.setValue(this._mainUVDefineName, !1, !0)));\n }\n isReady() {\n return this._isSourcePrePass ? !0 : !(this.texture && !this.texture.isReadyOrNotBlocking());\n }\n bind(e) {\n this._isSourcePrePass && e.setFloat(this._textureInfoName, 1), this.texture && (this._isMixed && (e.setFloat(this._textureInfoName, this.texture.level), e.setMatrix(this._textureTransformName, this.texture.getTextureMatrix())), this._imageSource || e.setTexture(this._samplerName, this.texture));\n }\n get _isMixed() {\n return this.target !== B.Fragment;\n }\n _injectVertexCode(e) {\n const t = this.uv;\n this._defineName = e._getFreeDefineName(\"UVTRANSFORM\"), this._mainUVDefineName = \"VMAIN\" + t.declarationVariableName.toUpperCase(), this._mainUVName = \"vMain\" + t.declarationVariableName, this._transformedUVName = e._getFreeVariableName(\"transformedUV\"), this._textureTransformName = e._getFreeVariableName(\"textureTransform\"), this._textureInfoName = e._getFreeVariableName(\"textureInfoName\"), this.level.associatedVariableName = this._textureInfoName, e._emitVaryingFromString(this._transformedUVName, A.Vector2, this._defineName), e._emitVaryingFromString(this._mainUVName, A.Vector2, this._mainUVDefineName), e._emitUniformFromString(this._textureTransformName, A.Matrix, this._defineName);\n const i = e._getShaderType(A.Vector4), s = e._getShaderType(A.Vector2);\n if (e.compilationString += `#ifdef ${this._defineName}\n`, e.compilationString += `${e._getVaryingName(this._transformedUVName)} = ${s}(${this._textureTransformName} * ${i}(${t.associatedVariableName}.xy, 1.0, 0.0));\n`, e.compilationString += `#elif defined(${this._mainUVDefineName})\n`, e.compilationString += `${e._getVaryingName(this._mainUVName)} = ${t.associatedVariableName}.xy;\n`, e.compilationString += `#endif\n`, !!this._outputs.some((r) => r.isConnectedInVertexShader)) {\n this._writeTextureRead(e, !0);\n for (const r of this._outputs)\n r.hasEndpoints && r.name !== \"level\" && this._writeOutput(e, r, r.name, !0);\n }\n }\n _getUVW(e) {\n var r, n, o, l;\n let t = e;\n const i = ((n = (r = this._texture) == null ? void 0 : r._texture) == null ? void 0 : n.is2DArray) ?? !1, s = ((l = (o = this._texture) == null ? void 0 : o._texture) == null ? void 0 : l.is3D) ?? !1;\n if (i) {\n const h = this.layer.isConnected ? this.layer.associatedVariableName : \"0\";\n t = `vec3(${e}, ${h})`;\n } else if (s) {\n const h = this.layer.isConnected ? this.layer.associatedVariableName : \"0\";\n t = `vec3(${e}, ${h})`;\n }\n return t;\n }\n _samplerFunc(e) {\n return e.shaderLanguage === 1 ? e.target === B.Vertex ? \"textureSampleLevel\" : \"textureSample\" : this.lod.isConnected ? \"texture2DLodEXT\" : \"texture2D\";\n }\n get _samplerLodSuffix() {\n return this.lod.isConnected ? `, ${this.lod.associatedVariableName}` : \"\";\n }\n _generateTextureSample(e, t) {\n if (t.shaderLanguage === 1) {\n const i = t.target === B.Vertex;\n return `${this._samplerFunc(t)}(${this.samplerName},${this.samplerName + \"Sampler\"}, ${this._getUVW(e)}${this._samplerLodSuffix}${i ? \", 0\" : \"\"})`;\n }\n return `${this._samplerFunc(t)}(${this.samplerName}, ${this._getUVW(e)}${this._samplerLodSuffix})`;\n }\n _generateTextureLookup(e) {\n e.compilationString += `#ifdef ${this._defineName}\n`, e.compilationString += `${e._declareLocalVar(this._tempTextureRead, A.Vector4)} = ${this._generateTextureSample(e._getVaryingName(this._transformedUVName), e)};\n`, e.compilationString += `#elif defined(${this._mainUVDefineName})\n`, e.compilationString += `${e._declareLocalVar(this._tempTextureRead, A.Vector4)} = ${this._generateTextureSample(this._mainUVName ? e._getVaryingName(this._mainUVName) : this.uv.associatedVariableName, e)}${this._samplerLodSuffix};\n`, e.compilationString += `#endif\n`;\n }\n _writeTextureRead(e, t = !1) {\n const i = this.uv;\n if (t) {\n if (e.target === B.Fragment)\n return;\n this._generateTextureLookup(e);\n return;\n }\n if (this.uv.ownerBlock.target === B.Fragment) {\n e.compilationString += `${e._declareLocalVar(this._tempTextureRead, A.Vector4)} = ${this._generateTextureSample(i.associatedVariableName, e)}${this._samplerLodSuffix};\n`;\n return;\n }\n this._generateTextureLookup(e);\n }\n _generateConversionCode(e, t, i) {\n i !== \"a\" && ((!this.texture || !this.texture.gammaSpace) && (e.compilationString += `#ifdef ${this._linearDefineName}\n ${t.associatedVariableName} = toGammaSpace(${t.associatedVariableName});\n #endif\n `), e.compilationString += `#ifdef ${this._gammaDefineName}\n ${t.associatedVariableName} = toLinearSpace(${t.associatedVariableName});\n #endif\n `);\n }\n _writeOutput(e, t, i, s = !1) {\n if (s) {\n if (e.target === B.Fragment)\n return;\n e.compilationString += `${e._declareOutput(t)} = ${this._tempTextureRead}.${i};\n`, this._generateConversionCode(e, t, i);\n return;\n }\n if (this.uv.ownerBlock.target === B.Fragment) {\n e.compilationString += `${e._declareOutput(t)} = ${this._tempTextureRead}.${i};\n`, this._generateConversionCode(e, t, i);\n return;\n }\n let r = \"\";\n this.disableLevelMultiplication || (r = ` * ${(e.shaderLanguage === 1 ? \"uniforms.\" : \"\") + this._textureInfoName}`), e.compilationString += `${e._declareOutput(t)} = ${this._tempTextureRead}.${i}${r};\n`, this._generateConversionCode(e, t, i);\n }\n _buildBlock(e) {\n var i, s, r, n;\n if (super._buildBlock(e), this.source.isConnected ? this._imageSource = this.source.connectedPoint.ownerBlock : this._imageSource = null, (e.target === B.Vertex || this._fragmentOnly || e.target === B.Fragment) && (this._tempTextureRead = e._getFreeVariableName(\"tempTextureRead\"), this._linearDefineName = e._getFreeDefineName(\"ISLINEAR\"), this._gammaDefineName = e._getFreeDefineName(\"ISGAMMA\")), !this._isMixed && e.target === B.Fragment || this._isMixed && e.target === B.Vertex) {\n if (!this._imageSource) {\n const o = e._getFreeVariableName(this.name);\n this._samplerName = o + \"Texture\", (s = (i = this._texture) == null ? void 0 : i._texture) != null && s.is2DArray ? e._emit2DArraySampler(this._samplerName) : e._emit2DSampler(this._samplerName);\n }\n e.sharedData.blockingBlocks.push(this), e.sharedData.textureBlocks.push(this), e.sharedData.blocksWithDefines.push(this), e.sharedData.bindableBlocks.push(this);\n }\n if (e.target !== B.Fragment) {\n this._injectVertexCode(e);\n return;\n }\n if (!this._outputs.some((o) => o.isConnectedInFragmentShader))\n return;\n this._isMixed && !this._imageSource && ((n = (r = this._texture) == null ? void 0 : r._texture) != null && n.is2DArray ? e._emit2DArraySampler(this._samplerName) : e._emit2DSampler(this._samplerName));\n const t = `//${this.name}`;\n e._emitFunctionFromInclude(\"helperFunctions\", t), this._isMixed && e._emitUniformFromString(this._textureInfoName, A.Float), this._writeTextureRead(e);\n for (const o of this._outputs)\n o.hasEndpoints && o.name !== \"level\" && this._writeOutput(e, o, o.name);\n return this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return e += `${this._codeVariableName}.convertToGammaSpace = ${this.convertToGammaSpace};\n`, e += `${this._codeVariableName}.convertToLinearSpace = ${this.convertToLinearSpace};\n`, e += `${this._codeVariableName}.disableLevelMultiplication = ${this.disableLevelMultiplication};\n`, this.texture && (e += `${this._codeVariableName}.texture = new BABYLON.Texture(\"${this.texture.name}\", null, ${this.texture.noMipmap}, ${this.texture.invertY}, ${this.texture.samplingMode});\n`, e += `${this._codeVariableName}.texture.wrapU = ${this.texture.wrapU};\n`, e += `${this._codeVariableName}.texture.wrapV = ${this.texture.wrapV};\n`, e += `${this._codeVariableName}.texture.uAng = ${this.texture.uAng};\n`, e += `${this._codeVariableName}.texture.vAng = ${this.texture.vAng};\n`, e += `${this._codeVariableName}.texture.wAng = ${this.texture.wAng};\n`, e += `${this._codeVariableName}.texture.uOffset = ${this.texture.uOffset};\n`, e += `${this._codeVariableName}.texture.vOffset = ${this.texture.vOffset};\n`, e += `${this._codeVariableName}.texture.uScale = ${this.texture.uScale};\n`, e += `${this._codeVariableName}.texture.vScale = ${this.texture.vScale};\n`, e += `${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};\n`), e;\n }\n serialize() {\n const e = super.serialize();\n return e.convertToGammaSpace = this.convertToGammaSpace, e.convertToLinearSpace = this.convertToLinearSpace, e.fragmentOnly = this._fragmentOnly, e.disableLevelMultiplication = this.disableLevelMultiplication, !this.hasImageSource && this.texture && !this.texture.isRenderTarget && this.texture.getClassName() !== \"VideoTexture\" && (e.texture = this.texture.serialize()), e;\n }\n _deserialize(e, t, i, s) {\n super._deserialize(e, t, i), this.convertToGammaSpace = e.convertToGammaSpace, this.convertToLinearSpace = !!e.convertToLinearSpace, this._fragmentOnly = !!e.fragmentOnly, this.disableLevelMultiplication = !!e.disableLevelMultiplication, e.texture && !Ai.IgnoreTexturesAtLoadTime && e.texture.url !== void 0 && (e.texture.url.indexOf(\"data:\") === 0 ? i = \"\" : s && (e.texture.url = s(e.texture.url), e.texture.name = e.texture.url), this.texture = X.Parse(e.texture, t, i));\n }\n}\nU(\"BABYLON.TextureBlock\", Eu);\nclass sc extends Ge {\n /**\n * Gets or sets the texture associated with the node\n */\n get texture() {\n return this._texture;\n }\n set texture(e) {\n if (this._texture === e)\n return;\n const t = (e == null ? void 0 : e.getScene()) ?? Me.LastCreatedScene;\n !e && t && t.markAllMaterialsAsDirty(1, (i) => i.hasTexture(this._texture)), this._texture = e, e && t && t.markAllMaterialsAsDirty(1, (i) => i.hasTexture(e));\n }\n static _OnGenerateOnlyFragmentCodeChanged(e, t) {\n return e._onGenerateOnlyFragmentCodeChanged();\n }\n _onGenerateOnlyFragmentCodeChanged() {\n return this._setTarget(), !0;\n }\n _setTarget() {\n this._setInitialTarget(this.generateOnlyFragmentCode ? B.Fragment : B.VertexAndFragment);\n }\n /**\n * Create a new ReflectionTextureBaseBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.VertexAndFragment), this.generateOnlyFragmentCode = !1;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ReflectionTextureBaseBlock\";\n }\n _getTexture() {\n return this.texture;\n }\n /**\n * Auto configure the node based on the existing material\n * @param material defines the material to configure\n * @param additionalFilteringInfo defines additional info to be used when filtering inputs (we might want to skip some non relevant blocks)\n */\n autoConfigure(e, t = () => !0) {\n if (!this.position.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.isAttribute && s.name === \"position\" && t(s));\n i || (i = new ot(\"position\"), i.setAsAttribute()), i.output.connectTo(this.position);\n }\n if (!this.world.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.systemValue === ct.World && t(s));\n i || (i = new ot(\"world\"), i.setAsSystemValue(ct.World)), i.output.connectTo(this.world);\n }\n if (this.view && !this.view.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.systemValue === ct.View && t(s));\n i || (i = new ot(\"view\"), i.setAsSystemValue(ct.View)), i.output.connectTo(this.view);\n }\n }\n prepareDefines(e, t, i) {\n if (!i._areTexturesDirty)\n return;\n const s = this._getTexture();\n !s || !s.getTextureMatrix || (i.setValue(this._define3DName, s.isCube, !0), i.setValue(this._defineLocalCubicName, !!s.boundingBoxSize, !0), i.setValue(this._defineExplicitName, s.coordinatesMode === 0, !0), i.setValue(this._defineSkyboxName, s.coordinatesMode === 5, !0), i.setValue(this._defineCubicName, s.coordinatesMode === 3 || s.coordinatesMode === 6, !0), i.setValue(\"INVERTCUBICMAP\", s.coordinatesMode === 6, !0), i.setValue(this._defineSphericalName, s.coordinatesMode === 1, !0), i.setValue(this._definePlanarName, s.coordinatesMode === 2, !0), i.setValue(this._defineProjectionName, s.coordinatesMode === 4, !0), i.setValue(this._defineEquirectangularName, s.coordinatesMode === 7, !0), i.setValue(this._defineEquirectangularFixedName, s.coordinatesMode === 8, !0), i.setValue(this._defineMirroredEquirectangularFixedName, s.coordinatesMode === 9, !0));\n }\n isReady() {\n const e = this._getTexture();\n return !(e && !e.isReadyOrNotBlocking());\n }\n bind(e, t, i, s) {\n const r = this._getTexture();\n if (!(!i || !r) && (e.setMatrix(this._reflectionMatrixName, r.getReflectionTextureMatrix()), r.isCube ? e.setTexture(this._cubeSamplerName, r) : e.setTexture(this._2DSamplerName, r), r.boundingBoxSize)) {\n const n = r;\n e.setVector3(this._reflectionPositionName, n.boundingBoxPosition), e.setVector3(this._reflectionSizeName, n.boundingBoxSize);\n }\n }\n /**\n * Gets the code to inject in the vertex shader\n * @param state current state of the node material building\n * @returns the shader code\n */\n handleVertexSide(e) {\n if (this.generateOnlyFragmentCode && e.target === B.Vertex)\n return \"\";\n this._define3DName = e._getFreeDefineName(\"REFLECTIONMAP_3D\"), this._defineCubicName = e._getFreeDefineName(\"REFLECTIONMAP_CUBIC\"), this._defineSphericalName = e._getFreeDefineName(\"REFLECTIONMAP_SPHERICAL\"), this._definePlanarName = e._getFreeDefineName(\"REFLECTIONMAP_PLANAR\"), this._defineProjectionName = e._getFreeDefineName(\"REFLECTIONMAP_PROJECTION\"), this._defineExplicitName = e._getFreeDefineName(\"REFLECTIONMAP_EXPLICIT\"), this._defineEquirectangularName = e._getFreeDefineName(\"REFLECTIONMAP_EQUIRECTANGULAR\"), this._defineLocalCubicName = e._getFreeDefineName(\"USE_LOCAL_REFLECTIONMAP_CUBIC\"), this._defineMirroredEquirectangularFixedName = e._getFreeDefineName(\"REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\"), this._defineEquirectangularFixedName = e._getFreeDefineName(\"REFLECTIONMAP_EQUIRECTANGULAR_FIXED\"), this._defineSkyboxName = e._getFreeDefineName(\"REFLECTIONMAP_SKYBOX\"), this._defineOppositeZ = e._getFreeDefineName(\"REFLECTIONMAP_OPPOSITEZ\"), this._reflectionMatrixName = e._getFreeVariableName(\"reflectionMatrix\"), e._emitUniformFromString(this._reflectionMatrixName, A.Matrix);\n let t = \"\";\n const i = e.shaderLanguage === 1;\n this._worldPositionNameInFragmentOnlyMode = e._getFreeVariableName(\"worldPosition\");\n const s = this.generateOnlyFragmentCode ? this._worldPositionNameInFragmentOnlyMode : \"v_\" + this.worldPosition.associatedVariableName;\n return (this.generateOnlyFragmentCode || e._emitVaryingFromString(s, A.Vector4)) && (this.generateOnlyFragmentCode ? t += `${e._declareLocalVar(s, A.Vector4)} = ${this.worldPosition.associatedVariableName};\n` : t += `${i ? \"vertexOutputs.\" : \"\"}${s} = ${this.worldPosition.associatedVariableName};\n`), this._positionUVWName = e._getFreeVariableName(\"positionUVW\"), this._directionWName = e._getFreeVariableName(\"directionW\"), (this.generateOnlyFragmentCode || e._emitVaryingFromString(this._positionUVWName, A.Vector3, this._defineSkyboxName)) && (t += `#ifdef ${this._defineSkyboxName}\n`, this.generateOnlyFragmentCode ? t += `${e._declareLocalVar(this._positionUVWName, A.Vector3)} = ${this.position.associatedVariableName}.xyz;\n` : t += `${i ? \"vertexOutputs.\" : \"\"}${this._positionUVWName} = ${this.position.associatedVariableName}.xyz;\n`, t += `#endif\n`), (this.generateOnlyFragmentCode || e._emitVaryingFromString(this._directionWName, A.Vector3, `defined(${this._defineEquirectangularFixedName}) || defined(${this._defineMirroredEquirectangularFixedName})`)) && (t += `#if defined(${this._defineEquirectangularFixedName}) || defined(${this._defineMirroredEquirectangularFixedName})\n`, this.generateOnlyFragmentCode ? t += `${e._declareLocalVar(this._directionWName, A.Vector3)} = normalize(vec3${e.fSuffix}(${this.world.associatedVariableName} * vec4${e.fSuffix}(${this.position.associatedVariableName}.xyz, 0.0)));\n` : t += `${i ? \"vertexOutputs.\" : \"\"}${this._directionWName} = normalize(vec3${e.fSuffix}(${this.world.associatedVariableName} * vec4${e.fSuffix}(${this.position.associatedVariableName}.xyz, 0.0)));\n`, t += `#endif\n`), t;\n }\n /**\n * Handles the inits for the fragment code path\n * @param state node material build state\n */\n handleFragmentSideInits(e) {\n e.sharedData.blockingBlocks.push(this), e.sharedData.textureBlocks.push(this), this._cubeSamplerName = e._getFreeVariableName(this.name + \"CubeSampler\"), e.samplers.push(this._cubeSamplerName), this._2DSamplerName = e._getFreeVariableName(this.name + \"2DSampler\"), e.samplers.push(this._2DSamplerName), e._samplerDeclaration += `#ifdef ${this._define3DName}\n`, e._emitCubeSampler(this._cubeSamplerName, \"\", !0), e._samplerDeclaration += `#else\n`, e._emit2DSampler(this._2DSamplerName, \"\", !0), e._samplerDeclaration += `#endif\n`, e.sharedData.blocksWithDefines.push(this), e.sharedData.bindableBlocks.push(this);\n const t = `//${this.name}`;\n e._emitFunctionFromInclude(\"helperFunctions\", t), e._emitFunctionFromInclude(\"reflectionFunction\", t, {\n replaceStrings: [\n { search: /vec3 computeReflectionCoords/g, replace: \"void DUMMYFUNC\" },\n { search: /fn computeReflectionCoords/g, replace: \"void DUMMYFUNC\" }\n ]\n }), this._reflectionColorName = e._getFreeVariableName(\"reflectionColor\"), this._reflectionVectorName = e._getFreeVariableName(\"reflectionUVW\"), this._reflectionCoordsName = e._getFreeVariableName(\"reflectionCoords\"), this._reflectionPositionName = e._getFreeVariableName(\"vReflectionPosition\"), e._emitUniformFromString(this._reflectionPositionName, A.Vector3), this._reflectionSizeName = e._getFreeVariableName(\"vReflectionPosition\"), e._emitUniformFromString(this._reflectionSizeName, A.Vector3);\n }\n /**\n * Generates the reflection coords code for the fragment code path\n * @param state defines the build state\n * @param worldNormalVarName name of the world normal variable\n * @param worldPos name of the world position variable. If not provided, will use the world position connected to this block\n * @param onlyReflectionVector if true, generates code only for the reflection vector computation, not for the reflection coordinates\n * @param doNotEmitInvertZ if true, does not emit the invertZ code\n * @returns the shader code\n */\n handleFragmentSideCodeReflectionCoords(e, t, i, s = !1, r = !1) {\n i || (i = this.generateOnlyFragmentCode ? this._worldPositionNameInFragmentOnlyMode : `v_${this.worldPosition.associatedVariableName}`);\n let n = this._reflectionMatrixName;\n const o = `normalize(${this._directionWName})`, l = `${this._positionUVWName}`, h = `${this.cameraPosition.associatedVariableName}`, c = `${this.view.associatedVariableName}`;\n t += \".xyz\", e.shaderLanguage === 1 && !this.generateOnlyFragmentCode && (i = \"fragmentInputs.\" + i, n = \"uniforms.\" + n);\n let u = `\n #ifdef ${this._defineMirroredEquirectangularFixedName}\n ${e._declareLocalVar(this._reflectionVectorName, A.Vector3)} = computeMirroredFixedEquirectangularCoords(${i}, ${t}, ${o});\n #endif\n\n #ifdef ${this._defineEquirectangularFixedName}\n ${e._declareLocalVar(this._reflectionVectorName, A.Vector3)} = computeFixedEquirectangularCoords(${i}, ${t}, ${o});\n #endif\n\n #ifdef ${this._defineEquirectangularName}\n ${e._declareLocalVar(this._reflectionVectorName, A.Vector3)} = computeEquirectangularCoords(${i}, ${t}, ${h}.xyz, ${n});\n #endif\n\n #ifdef ${this._defineSphericalName}\n ${e._declareLocalVar(this._reflectionVectorName, A.Vector3)} = computeSphericalCoords(${i}, ${t}, ${c}, ${n});\n #endif\n\n #ifdef ${this._definePlanarName}\n ${e._declareLocalVar(this._reflectionVectorName, A.Vector3)} = computePlanarCoords(${i}, ${t}, ${h}.xyz, ${n});\n #endif\n\n #ifdef ${this._defineCubicName}\n #ifdef ${this._defineLocalCubicName}\n ${e._declareLocalVar(this._reflectionVectorName, A.Vector3)} = computeCubicLocalCoords(${i}, ${t}, ${h}.xyz, ${n}, ${this._reflectionSizeName}, ${this._reflectionPositionName});\n #else\n ${e._declareLocalVar(this._reflectionVectorName, A.Vector3)} = computeCubicCoords(${i}, ${t}, ${h}.xyz, ${n});\n #endif\n #endif\n\n #ifdef ${this._defineProjectionName}\n ${e._declareLocalVar(this._reflectionVectorName, A.Vector3)} = computeProjectionCoords(${i}, ${c}, ${n});\n #endif\n\n #ifdef ${this._defineSkyboxName}\n ${e._declareLocalVar(this._reflectionVectorName, A.Vector3)} = computeSkyBoxCoords(${l}, ${n});\n #endif\n\n #ifdef ${this._defineExplicitName}\n ${e._declareLocalVar(this._reflectionVectorName, A.Vector3)} = vec3(0, 0, 0);\n #endif\n`;\n return r || (u += `#ifdef ${this._defineOppositeZ}\n ${this._reflectionVectorName}.z *= -1.0;\n #endif\n`), s || (u += `\n #ifdef ${this._define3DName}\n ${e._declareLocalVar(this._reflectionCoordsName, A.Vector3)} = ${this._reflectionVectorName};\n #else\n ${e._declareLocalVar(this._reflectionCoordsName, A.Vector2)} = ${this._reflectionVectorName}.xy;\n #ifdef ${this._defineProjectionName}\n ${this._reflectionCoordsName} /= ${this._reflectionVectorName}.z;\n #endif\n ${this._reflectionCoordsName}.y = 1.0 - ${this._reflectionCoordsName}.y;\n #endif\n`), u;\n }\n /**\n * Generates the reflection color code for the fragment code path\n * @param state defines the build state\n * @param lodVarName name of the lod variable\n * @param swizzleLookupTexture swizzle to use for the final color variable\n * @returns the shader code\n */\n handleFragmentSideCodeReflectionColor(e, t, i = \".rgb\") {\n let s = A.Vector4;\n i.length === 3 && (s = A.Vector3);\n let r = `${e._declareLocalVar(this._reflectionColorName, s)};\n #ifdef ${this._define3DName}\n`;\n return t ? r += `${this._reflectionColorName} = ${e._generateTextureSampleCubeLOD(this._reflectionVectorName, this._cubeSamplerName, t)}${i};\n` : r += `${this._reflectionColorName} = ${e._generateTextureSampleCube(this._reflectionVectorName, this._cubeSamplerName)}${i};\n`, r += `\n #else\n`, t ? r += `${this._reflectionColorName} =${e._generateTextureSampleLOD(this._reflectionCoordsName, this._2DSamplerName, t)}${i};\n` : r += `${this._reflectionColorName} = ${e._generateTextureSample(this._reflectionCoordsName, this._2DSamplerName)}${i};\n`, r += `#endif\n`, r;\n }\n /**\n * Generates the code corresponding to the connected output points\n * @param state node material build state\n * @param varName name of the variable to output\n * @returns the shader code\n */\n writeOutputs(e, t) {\n let i = \"\";\n if (e.target === B.Fragment)\n for (const s of this._outputs)\n s.hasEndpoints && (i += `${e._declareOutput(s)} = ${t}.${s.name};\n`);\n return i;\n }\n _buildBlock(e) {\n return super._buildBlock(e), this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n if (!this.texture)\n return e;\n if (this.texture.isCube) {\n const t = this.texture.forcedExtension;\n e += `${this._codeVariableName}.texture = new BABYLON.CubeTexture(\"${this.texture.name}\", undefined, undefined, ${this.texture.noMipmap}, null, undefined, undefined, undefined, ${this.texture._prefiltered}, ${t ? '\"' + t + '\"' : \"null\"});\n`;\n } else\n e += `${this._codeVariableName}.texture = new BABYLON.Texture(\"${this.texture.name}\", null);\n`;\n return e += `${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};\n`, e;\n }\n serialize() {\n const e = super.serialize();\n return this.texture && !this.texture.isRenderTarget && (e.texture = this.texture.serialize()), e.generateOnlyFragmentCode = this.generateOnlyFragmentCode, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), e.texture && !Ai.IgnoreTexturesAtLoadTime && (i = e.texture.url.indexOf(\"data:\") === 0 ? \"\" : i, e.texture.isCube ? this.texture = ps.Parse(e.texture, t, i) : this.texture = X.Parse(e.texture, t, i)), this.generateOnlyFragmentCode = e.generateOnlyFragmentCode, this._setTarget();\n }\n}\ny([\n ze(\"Generate only fragment code\", 0, \"ADVANCED\", {\n notifiers: { rebuild: !0, update: !0, onValidation: sc._OnGenerateOnlyFragmentCodeChanged }\n })\n], sc.prototype, \"generateOnlyFragmentCode\", void 0);\nU(\"BABYLON.ReflectionTextureBaseBlock\", sc);\nclass vA extends sc {\n _onGenerateOnlyFragmentCodeChanged() {\n return this.position.isConnected ? (this.generateOnlyFragmentCode = !this.generateOnlyFragmentCode, L.Error(\"The position input must not be connected to be able to switch!\"), !1) : this.worldPosition.isConnected ? (this.generateOnlyFragmentCode = !this.generateOnlyFragmentCode, L.Error(\"The worldPosition input must not be connected to be able to switch!\"), !1) : (this._setTarget(), !0);\n }\n _setTarget() {\n super._setTarget(), this.getInputByName(\"position\").target = this.generateOnlyFragmentCode ? B.Fragment : B.Vertex, this.getInputByName(\"worldPosition\").target = this.generateOnlyFragmentCode ? B.Fragment : B.Vertex;\n }\n /**\n * Create a new ReflectionTextureBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"position\", A.AutoDetect, !1, B.Vertex), this.registerInput(\"worldPosition\", A.Vector4, !1, B.Vertex), this.registerInput(\"worldNormal\", A.Vector4, !1, B.Fragment), this.registerInput(\"world\", A.Matrix, !1, B.Vertex), this.registerInput(\"cameraPosition\", A.Vector3, !1, B.Fragment), this.registerInput(\"view\", A.Matrix, !1, B.Fragment), this.registerOutput(\"rgb\", A.Color3, B.Fragment), this.registerOutput(\"rgba\", A.Color4, B.Fragment), this.registerOutput(\"r\", A.Float, B.Fragment), this.registerOutput(\"g\", A.Float, B.Fragment), this.registerOutput(\"b\", A.Float, B.Fragment), this.registerOutput(\"a\", A.Float, B.Fragment), this._inputs[0].addExcludedConnectionPointFromAllowedTypes(A.Color3 | A.Vector3 | A.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ReflectionTextureBlock\";\n }\n /**\n * Gets the world position input component\n */\n get position() {\n return this._inputs[0];\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[1];\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this._inputs[2];\n }\n /**\n * Gets the world input component\n */\n get world() {\n return this._inputs[3];\n }\n /**\n * Gets the camera (or eye) position component\n */\n get cameraPosition() {\n return this._inputs[4];\n }\n /**\n * Gets the view input component\n */\n get view() {\n return this._inputs[5];\n }\n /**\n * Gets the rgb output component\n */\n get rgb() {\n return this._outputs[0];\n }\n /**\n * Gets the rgba output component\n */\n get rgba() {\n return this._outputs[1];\n }\n /**\n * Gets the r output component\n */\n get r() {\n return this._outputs[2];\n }\n /**\n * Gets the g output component\n */\n get g() {\n return this._outputs[3];\n }\n /**\n * Gets the b output component\n */\n get b() {\n return this._outputs[4];\n }\n /**\n * Gets the a output component\n */\n get a() {\n return this._outputs[5];\n }\n autoConfigure(e, t = () => !0) {\n if (super.autoConfigure(e), !this.cameraPosition.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.systemValue === ct.CameraPosition && t(s));\n i || (i = new ot(\"cameraPosition\"), i.setAsSystemValue(ct.CameraPosition)), i.output.connectTo(this.cameraPosition);\n }\n }\n _buildBlock(e) {\n if (super._buildBlock(e), !this.texture)\n return e.compilationString += this.writeOutputs(e, `vec4${e.fSuffix}(0.)`), this;\n if (e.target !== B.Fragment)\n return e.compilationString += this.handleVertexSide(e), this;\n this.generateOnlyFragmentCode && (e.compilationString += this.handleVertexSide(e)), this.handleFragmentSideInits(e);\n const t = e._getFreeVariableName(\"normalWUnit\");\n return e.compilationString += `${e._declareLocalVar(t, A.Vector4)} = normalize(${this.worldNormal.associatedVariableName});\n`, e.compilationString += this.handleFragmentSideCodeReflectionCoords(e, t), e.compilationString += this.handleFragmentSideCodeReflectionColor(e, void 0, \"\"), e.compilationString += this.writeOutputs(e, this._reflectionColorName), this;\n }\n}\nU(\"BABYLON.ReflectionTextureBlock\", vA);\nclass Pf extends Ge {\n /**\n * Create a new SceneDepthBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.VertexAndFragment), this.useNonLinearDepth = !1, this.storeCameraSpaceZ = !1, this.force32itsFloat = !1, this._isUnique = !0, this.registerInput(\"uv\", A.AutoDetect, !1, B.VertexAndFragment), this.registerOutput(\"depth\", A.Float, B.Neutral), this._inputs[0].addExcludedConnectionPointFromAllowedTypes(A.Vector2 | A.Vector3 | A.Vector4), this._inputs[0]._prioritizeVertex = !1;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SceneDepthBlock\";\n }\n /**\n * Gets the uv input component\n */\n get uv() {\n return this._inputs[0];\n }\n /**\n * Gets the depth output component\n */\n get depth() {\n return this._outputs[0];\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"textureSampler\");\n }\n get target() {\n return !this.uv.isConnected || this.uv.sourceBlock.isInput ? B.VertexAndFragment : B.Fragment;\n }\n _getTexture(e) {\n return e.enableDepthRenderer(void 0, this.useNonLinearDepth, this.force32itsFloat, void 0, this.storeCameraSpaceZ).getDepthMap();\n }\n bind(e, t) {\n const i = this._getTexture(t.getScene());\n e.setTexture(this._samplerName, i);\n }\n _injectVertexCode(e) {\n const t = this.uv;\n if (t.connectedPoint.ownerBlock.isInput && (t.connectedPoint.ownerBlock.isAttribute || e._emitUniformFromString(t.associatedVariableName, t.type === A.Vector3 ? A.Vector3 : t.type === A.Vector4 ? A.Vector4 : A.Vector2)), this._mainUVName = \"vMain\" + t.associatedVariableName, e._emitVaryingFromString(this._mainUVName, A.Vector2), e.compilationString += `${this._mainUVName} = ${t.associatedVariableName}.xy;\n`, !!this._outputs.some((i) => i.isConnectedInVertexShader)) {\n this._writeTextureRead(e, !0);\n for (const i of this._outputs)\n i.hasEndpoints && this._writeOutput(e, i, \"r\", !0);\n }\n }\n _writeTextureRead(e, t = !1) {\n const i = this.uv;\n if (t) {\n if (e.target === B.Fragment)\n return;\n const r = e.shaderLanguage === 0 ? `texture2D(${this._samplerName},` : `textureSampleLevel(${this._samplerName}, ${this._samplerName + \"Sampler\"},`, n = e.shaderLanguage === 0 ? \"\" : \", 0\";\n e.compilationString += `${e._declareLocalVar(this._tempTextureRead, A.Vector4)}= ${r} ${i.associatedVariableName}.xy${n});\n`;\n return;\n }\n const s = e.shaderLanguage === 0 ? `texture2D(${this._samplerName},` : `textureSample(${this._samplerName}, ${this._samplerName + \"Sampler\"},`;\n if (this.uv.ownerBlock.target === B.Fragment) {\n e.compilationString += `${e._declareLocalVar(this._tempTextureRead, A.Vector4)} = ${s} ${i.associatedVariableName}.xy);\n`;\n return;\n }\n e.compilationString += `${e._declareLocalVar(this._tempTextureRead, A.Vector4)} = ${s} ${this._mainUVName});\n`;\n }\n _writeOutput(e, t, i, s = !1) {\n if (s) {\n if (e.target === B.Fragment)\n return;\n e.compilationString += `${e._declareOutput(t)} = ${this._tempTextureRead}.${i};\n`;\n return;\n }\n if (this.uv.ownerBlock.target === B.Fragment) {\n e.compilationString += `${e._declareOutput(t)} = ${this._tempTextureRead}.${i};\n`;\n return;\n }\n e.compilationString += `${e._declareOutput(t)} = ${this._tempTextureRead}.${i};\n`;\n }\n _buildBlock(e) {\n if (super._buildBlock(e), this._samplerName = e._getFreeVariableName(this.name + \"Sampler\"), this._tempTextureRead = e._getFreeVariableName(\"tempTextureRead\"), e.sharedData.bindableBlocks.indexOf(this) < 0 && e.sharedData.bindableBlocks.push(this), e.target !== B.Fragment) {\n e._emit2DSampler(this._samplerName), this._injectVertexCode(e);\n return;\n }\n if (this._outputs.some((t) => t.isConnectedInFragmentShader)) {\n e._emit2DSampler(this._samplerName), this._writeTextureRead(e);\n for (const t of this._outputs)\n t.hasEndpoints && this._writeOutput(e, t, \"r\");\n return this;\n }\n }\n serialize() {\n const e = super.serialize();\n return e.useNonLinearDepth = this.useNonLinearDepth, e.storeCameraSpaceZ = this.storeCameraSpaceZ, e.force32itsFloat = this.force32itsFloat, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.useNonLinearDepth = e.useNonLinearDepth, this.storeCameraSpaceZ = !!e.storeCameraSpaceZ, this.force32itsFloat = e.force32itsFloat;\n }\n}\ny([\n ze(\"Use non linear depth\", 0, \"ADVANCED\", {\n notifiers: {\n activatePreviewCommand: !0,\n callback: (a, e) => {\n const t = e;\n let i = !1;\n return t.useNonLinearDepth && (t.storeCameraSpaceZ = !1, i = !0), a && a.disableDepthRenderer(), i;\n }\n }\n })\n], Pf.prototype, \"useNonLinearDepth\", void 0);\ny([\n ze(\"Store Camera space Z\", 0, \"ADVANCED\", {\n notifiers: {\n activatePreviewCommand: !0,\n callback: (a, e) => {\n const t = e;\n let i = !1;\n return t.storeCameraSpaceZ && (t.useNonLinearDepth = !1, i = !0), a && a.disableDepthRenderer(), i;\n }\n }\n })\n], Pf.prototype, \"storeCameraSpaceZ\", void 0);\ny([\n ze(\"Force 32 bits float\", 0, \"ADVANCED\", {\n notifiers: { activatePreviewCommand: !0, callback: (a) => a == null ? void 0 : a.disableDepthRenderer() }\n })\n], Pf.prototype, \"force32itsFloat\", void 0);\nU(\"BABYLON.SceneDepthBlock\", Pf);\nclass TA extends Ge {\n /**\n * Create a new ClipPlanesBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.VertexAndFragment, !0), this.registerInput(\"worldPosition\", A.Vector4, !1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ClipPlanesBlock\";\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"vClipPlane\"), e._excludeVariableName(\"fClipDistance\"), e._excludeVariableName(\"vClipPlane2\"), e._excludeVariableName(\"fClipDistance2\"), e._excludeVariableName(\"vClipPlane3\"), e._excludeVariableName(\"fClipDistance3\"), e._excludeVariableName(\"vClipPlane4\"), e._excludeVariableName(\"fClipDistance4\"), e._excludeVariableName(\"vClipPlane5\"), e._excludeVariableName(\"fClipDistance5\"), e._excludeVariableName(\"vClipPlane6\"), e._excludeVariableName(\"fClipDistance6\");\n }\n /**\n * Gets the worldPosition input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n get target() {\n return B.VertexAndFragment;\n }\n set target(e) {\n }\n prepareDefines(e, t, i) {\n const s = e.getScene(), r = !!(t.clipPlane ?? s.clipPlane), n = !!(t.clipPlane2 ?? s.clipPlane2), o = !!(t.clipPlane3 ?? s.clipPlane3), l = !!(t.clipPlane4 ?? s.clipPlane4), h = !!(t.clipPlane5 ?? s.clipPlane5), c = !!(t.clipPlane6 ?? s.clipPlane6);\n i.setValue(\"CLIPPLANE\", r, !0), i.setValue(\"CLIPPLANE2\", n, !0), i.setValue(\"CLIPPLANE3\", o, !0), i.setValue(\"CLIPPLANE4\", l, !0), i.setValue(\"CLIPPLANE5\", h, !0), i.setValue(\"CLIPPLANE6\", c, !0);\n }\n bind(e, t, i) {\n if (!i)\n return;\n const s = i.getScene();\n Tn(e, t, s);\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = `//${this.name}`;\n if (e.target !== B.Fragment) {\n const i = this.worldPosition;\n e._emitFunctionFromInclude(\"clipPlaneVertexDeclaration\", t, {\n replaceStrings: [{ search: /uniform vec4 vClipPlane\\d*;/g, replace: \"\" }]\n }), e.compilationString += e._emitCodeFromInclude(\"clipPlaneVertex\", t, {\n replaceStrings: [{ search: /worldPos/g, replace: i.associatedVariableName }]\n }), e._emitUniformFromString(\"vClipPlane\", A.Vector4), e._emitUniformFromString(\"vClipPlane2\", A.Vector4), e._emitUniformFromString(\"vClipPlane3\", A.Vector4), e._emitUniformFromString(\"vClipPlane4\", A.Vector4), e._emitUniformFromString(\"vClipPlane5\", A.Vector4), e._emitUniformFromString(\"vClipPlane6\", A.Vector4);\n return;\n }\n return e.sharedData.bindableBlocks.push(this), e.sharedData.blocksWithDefines.push(this), e._emitFunctionFromInclude(\"clipPlaneFragmentDeclaration\", t), e.compilationString += e._emitCodeFromInclude(\"clipPlaneFragment\", t), this;\n }\n}\nU(\"BABYLON.ClipPlanesBlock\", TA);\nclass SA extends Ge {\n /**\n * The texture associated with the node is the prepass texture\n */\n get texture() {\n return null;\n }\n set texture(e) {\n }\n /**\n * Creates a new PrePassTextureBlock\n * @param name defines the block name\n * @param target defines the target of that block (VertexAndFragment by default)\n */\n constructor(e, t = B.VertexAndFragment) {\n super(e, t, !1), this.registerOutput(\"position\", A.Object, B.VertexAndFragment, new Bi(\"position\", this, 1, Fn, \"ImageSourceBlock\")), this.registerOutput(\"depth\", A.Object, B.VertexAndFragment, new Bi(\"depth\", this, 1, Fn, \"ImageSourceBlock\")), this.registerOutput(\"normal\", A.Object, B.VertexAndFragment, new Bi(\"normal\", this, 1, Fn, \"ImageSourceBlock\"));\n }\n /**\n * Returns the sampler name associated with the node connection point\n * @param output defines the connection point to get the associated sampler name\n * @returns\n */\n getSamplerName(e) {\n return e === this._outputs[0] ? this._positionSamplerName : e === this._outputs[1] ? this._depthSamplerName : e === this._outputs[2] ? this._normalSamplerName : \"\";\n }\n /**\n * Gets the position texture\n */\n get position() {\n return this._outputs[0];\n }\n /**\n * Gets the depth texture\n */\n get depth() {\n return this._outputs[1];\n }\n /**\n * Gets the normal texture\n */\n get normal() {\n return this._outputs[2];\n }\n /**\n * Gets the sampler name associated with this image source\n */\n get positionSamplerName() {\n return this._positionSamplerName;\n }\n /**\n * Gets the sampler name associated with this image source\n */\n get normalSamplerName() {\n return this._normalSamplerName;\n }\n /**\n * Gets the sampler name associated with this image source\n */\n get depthSamplerName() {\n return this._depthSamplerName;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"PrePassTextureBlock\";\n }\n _buildBlock(e) {\n if (super._buildBlock(e), e.target !== B.Vertex)\n return this._positionSamplerName = \"prepassPositionSampler\", this._depthSamplerName = \"prepassDepthSampler\", this._normalSamplerName = \"prepassNormalSampler\", e.sharedData.variableNames.prepassPositionSampler = 0, e.sharedData.variableNames.prepassDepthSampler = 0, e.sharedData.variableNames.prepassNormalSampler = 0, e.sharedData.textureBlocks.push(this), e.sharedData.bindableBlocks.push(this), e._emit2DSampler(this._positionSamplerName), e._emit2DSampler(this._depthSamplerName), e._emit2DSampler(this._normalSamplerName), this;\n }\n bind(e, t) {\n const s = t.getScene().enablePrePassRenderer();\n if (!s)\n return;\n const r = s.defaultRT;\n r.textures && (this.position.isConnected && e.setTexture(this._positionSamplerName, r.textures[s.getIndex(1)]), this.depth.isConnected && e.setTexture(this._depthSamplerName, r.textures[s.getIndex(5)]), this.normal.isConnected && e.setTexture(this._normalSamplerName, r.textures[s.getIndex(6)]));\n }\n}\nU(\"BABYLON.PrePassTextureBlock\", SA);\nclass bA extends Ge {\n /** Gets the list of attached endpoints */\n get endpoints() {\n return this._endpoints;\n }\n /**\n * Gets or sets the target of the block\n */\n get target() {\n const e = this._inputs[0];\n if (e.isConnected) {\n const t = e.connectedPoint.ownerBlock;\n if (t.target !== B.VertexAndFragment)\n return t.target;\n if (e.connectedPoint.target !== B.VertexAndFragment)\n return e.connectedPoint.target;\n }\n return this._target;\n }\n set target(e) {\n this._target & e || (this._target = e);\n }\n /**\n * Create a new NodeMaterialTeleportInBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this._endpoints = [], this.registerInput(\"input\", A.AutoDetect);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeMaterialTeleportInBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * @returns a boolean indicating that this connection will be used in the fragment shader\n */\n isConnectedInFragmentShader() {\n return this.endpoints.some((e) => e.output.isConnectedInFragmentShader);\n }\n _dumpCode(e, t) {\n let i = super._dumpCode(e, t);\n for (const s of this.endpoints)\n t.indexOf(s) === -1 && (i += s._dumpCode(e, t));\n return i;\n }\n /**\n * Checks if the current block is an ancestor of a given block\n * @param block defines the potential descendant block to check\n * @returns true if block is a descendant\n */\n isAnAncestorOf(e) {\n for (const t of this.endpoints)\n if (t === e || t.isAnAncestorOf(e))\n return !0;\n return !1;\n }\n /**\n * Add an enpoint to this block\n * @param endpoint define the endpoint to attach to\n */\n attachToEndpoint(e) {\n e.detach(), this._endpoints.push(e), e._entryPoint = this, e._outputs[0]._typeConnectionSource = this._inputs[0], e._tempEntryPointUniqueId = null, e.name = \"> \" + this.name;\n }\n /**\n * Remove enpoint from this block\n * @param endpoint define the endpoint to remove\n */\n detachFromEndpoint(e) {\n const t = this._endpoints.indexOf(e);\n t !== -1 && (this._endpoints.splice(t, 1), e._outputs[0]._typeConnectionSource = null, e._entryPoint = null);\n }\n /**\n * Release resources\n */\n dispose() {\n super.dispose();\n for (const e of this._endpoints)\n this.detachFromEndpoint(e);\n this._endpoints = [];\n }\n}\nU(\"BABYLON.NodeMaterialTeleportInBlock\", bA);\nclass EA extends Ge {\n /**\n * Create a new TeleportOutBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this._entryPoint = null, this._tempEntryPointUniqueId = null, this.registerOutput(\"output\", A.BasedOnInput);\n }\n /**\n * Gets the entry point\n */\n get entryPoint() {\n return this._entryPoint;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeMaterialTeleportOutBlock\";\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets or sets the target of the block\n */\n get target() {\n return this._entryPoint ? this._entryPoint.target : this._target;\n }\n set target(e) {\n this._target & e || (this._target = e);\n }\n /** Detach from entry point */\n detach() {\n this._entryPoint && this._entryPoint.detachFromEndpoint(this);\n }\n _buildBlock(e) {\n super._buildBlock(e), this.entryPoint && (e.compilationString += e._declareOutput(this.output) + ` = ${this.entryPoint.input.associatedVariableName};\n`);\n }\n /**\n * Clone the current block to a new identical block\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @returns a copy of the current block\n */\n clone(e, t = \"\") {\n const i = super.clone(e, t);\n return this.entryPoint && this.entryPoint.attachToEndpoint(i), i;\n }\n _customBuildStep(e, t) {\n this.entryPoint && this.entryPoint.build(e, t);\n }\n _dumpCode(e, t) {\n let i = \"\";\n return this.entryPoint && t.indexOf(this.entryPoint) === -1 && (i += this.entryPoint._dumpCode(e, t)), i + super._dumpCode(e, t);\n }\n _dumpCodeForOutputConnections(e) {\n let t = super._dumpCodeForOutputConnections(e);\n return this.entryPoint && (t += this.entryPoint._dumpCodeForOutputConnections(e)), t;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return this.entryPoint && (e += `${this.entryPoint._codeVariableName}.attachToEndpoint(${this._codeVariableName});\n`), e;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n var t;\n const e = super.serialize();\n return e.entryPoint = ((t = this.entryPoint) == null ? void 0 : t.uniqueId) ?? \"\", e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this._tempEntryPointUniqueId = e.entryPoint;\n }\n}\nU(\"BABYLON.NodeMaterialTeleportOutBlock\", EA);\nclass yA extends Q_ {\n /**\n * Creates a new AddBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"AddBlock\";\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = ${this.left.associatedVariableName} + ${this.right.associatedVariableName};\n`, this;\n }\n}\nU(\"BABYLON.AddBlock\", yA);\nclass CA extends Ge {\n /**\n * Creates a new ScaleBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"input\", A.AutoDetect), this.registerInput(\"factor\", A.Float), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ScaleBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the factor input component\n */\n get factor() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = ${this.input.associatedVariableName} * ${this.factor.associatedVariableName};\n`, this;\n }\n}\nU(\"BABYLON.ScaleBlock\", CA);\nclass sm extends Ge {\n /**\n * Creates a new ClampBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.minimum = 0, this.maximum = 1, this.registerInput(\"value\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ClampBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], i = e.shaderLanguage === 1 ? e._getShaderType(this.value.type) : \"\";\n return e.compilationString += e._declareOutput(t) + ` = clamp(${this.value.associatedVariableName}, ${i}(${this._writeFloat(this.minimum)}), ${i}(${this._writeFloat(this.maximum)}));\n`, this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode() + `${this._codeVariableName}.minimum = ${this.minimum};\n`;\n return e += `${this._codeVariableName}.maximum = ${this.maximum};\n`, e;\n }\n serialize() {\n const e = super.serialize();\n return e.minimum = this.minimum, e.maximum = this.maximum, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.minimum = e.minimum, this.maximum = e.maximum;\n }\n}\ny([\n ze(\n \"Minimum\",\n 1\n /* PropertyTypeForEdition.Float */\n )\n], sm.prototype, \"minimum\", void 0);\ny([\n ze(\n \"Maximum\",\n 1\n /* PropertyTypeForEdition.Float */\n )\n], sm.prototype, \"maximum\", void 0);\nU(\"BABYLON.ClampBlock\", sm);\nclass AA extends Ge {\n /**\n * Creates a new CrossBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"left\", A.AutoDetect), this.registerInput(\"right\", A.AutoDetect), this.registerOutput(\"output\", A.Vector3), this._linkConnectionTypes(0, 1), this._inputs[0].excludedConnectionPointTypes.push(A.Float), this._inputs[0].excludedConnectionPointTypes.push(A.Matrix), this._inputs[0].excludedConnectionPointTypes.push(A.Vector2), this._inputs[1].excludedConnectionPointTypes.push(A.Float), this._inputs[1].excludedConnectionPointTypes.push(A.Matrix), this._inputs[1].excludedConnectionPointTypes.push(A.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CrossBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = cross(${this.left.associatedVariableName}.xyz, ${this.right.associatedVariableName}.xyz);\n`, this;\n }\n}\nU(\"BABYLON.CrossBlock\", AA);\nclass RA extends Ge {\n /**\n * Gets or sets the options for this custom block\n */\n get options() {\n return this._options;\n }\n set options(e) {\n this._deserializeOptions(e);\n }\n /**\n * Creates a new CustomBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CustomBlock\";\n }\n _buildBlock(e) {\n super._buildBlock(e);\n let t = this._code, i = this._options.functionName;\n this._inputs.forEach((r) => {\n const n = new RegExp(\"\\\\{TYPE_\" + r.name + \"\\\\}\", \"gm\"), o = e._getGLType(r.type);\n t = t.replace(n, o), i = i.replace(n, o);\n }), this._outputs.forEach((r) => {\n const n = new RegExp(\"\\\\{TYPE_\" + r.name + \"\\\\}\", \"gm\"), o = e._getGLType(r.type);\n t = t.replace(n, o), i = i.replace(n, o);\n }), e._emitFunction(i, t, \"\"), this._outputs.forEach((r) => {\n e.compilationString += e._declareOutput(r) + `;\n`;\n }), e.compilationString += i + \"(\";\n let s = !1;\n return this._inputs.forEach((r, n) => {\n var o, l;\n n > 0 && (e.compilationString += \", \"), this._inputSamplers && this._inputSamplers.indexOf(r.name) !== -1 ? e.compilationString += ((l = (o = r.connectedPoint) == null ? void 0 : o.ownerBlock) == null ? void 0 : l.samplerName) ?? r.associatedVariableName : e.compilationString += r.associatedVariableName, s = !0;\n }), this._outputs.forEach((r, n) => {\n (n > 0 || s) && (e.compilationString += \", \"), e.compilationString += r.associatedVariableName;\n }), e.compilationString += `);\n`, this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return e += `${this._codeVariableName}.options = ${JSON.stringify(this._options)};\n`, e;\n }\n serialize() {\n const e = super.serialize();\n return e.options = this._options, e;\n }\n _deserialize(e, t, i) {\n this._deserializeOptions(e.options), super._deserialize(e, t, i);\n }\n _deserializeOptions(e) {\n var t, i, s;\n this._options = e, this._code = e.code.join(`\n`) + `\n`, this.name = this.name || e.name, this.target = B[e.target], (t = e.inParameters) == null || t.forEach((r, n) => {\n const o = A[r.type];\n r.type === \"sampler2D\" || r.type === \"samplerCube\" ? (this._inputSamplers = this._inputSamplers || [], this._inputSamplers.push(r.name), this.registerInput(r.name, A.Object, !0, B.VertexAndFragment, new Bi(r.name, this, 0, Fn, \"ImageSourceBlock\"))) : this.registerInput(r.name, o), Object.defineProperty(this, r.name, {\n get: function() {\n return this._inputs[n];\n },\n enumerable: !0,\n configurable: !0\n });\n }), (i = e.outParameters) == null || i.forEach((r, n) => {\n this.registerOutput(r.name, A[r.type]), Object.defineProperty(this, r.name, {\n get: function() {\n return this._outputs[n];\n },\n enumerable: !0,\n configurable: !0\n }), r.type === \"BasedOnInput\" && (this._outputs[n]._typeConnectionSource = this._findInputByName(r.typeFromInput)[0]);\n }), (s = e.inLinkedConnectionTypes) == null || s.forEach((r) => {\n this._linkConnectionTypes(this._findInputByName(r.input1)[1], this._findInputByName(r.input2)[1]);\n });\n }\n _findInputByName(e) {\n if (!e)\n return null;\n for (let t = 0; t < this._inputs.length; t++)\n if (this._inputs[t].name === e)\n return [this._inputs[t], t];\n return null;\n }\n}\nU(\"BABYLON.CustomBlock\", RA);\nclass IA extends Ge {\n /**\n * Creates a new DotBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"left\", A.AutoDetect), this.registerInput(\"right\", A.AutoDetect), this.registerOutput(\"output\", A.Float), this._linkConnectionTypes(0, 1), this._inputs[0].excludedConnectionPointTypes.push(A.Float), this._inputs[0].excludedConnectionPointTypes.push(A.Matrix), this._inputs[1].excludedConnectionPointTypes.push(A.Float), this._inputs[1].excludedConnectionPointTypes.push(A.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DotBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = dot(${this.left.associatedVariableName}, ${this.right.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.DotBlock\", IA);\nclass PA extends Ge {\n /**\n * Creates a new NormalizeBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"input\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._inputs[0].excludedConnectionPointTypes.push(A.Float), this._inputs[0].excludedConnectionPointTypes.push(A.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NormalizeBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], i = this._inputs[0];\n return e.compilationString += e._declareOutput(t) + ` = normalize(${i.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.NormalizeBlock\", PA);\nclass MA extends Ge {\n /**\n * Create a new ColorMergerBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.rSwizzle = \"r\", this.gSwizzle = \"g\", this.bSwizzle = \"b\", this.aSwizzle = \"a\", this.registerInput(\"rgb \", A.Color3, !0), this.registerInput(\"r\", A.Float, !0), this.registerInput(\"g\", A.Float, !0), this.registerInput(\"b\", A.Float, !0), this.registerInput(\"a\", A.Float, !0), this.registerOutput(\"rgba\", A.Color4), this.registerOutput(\"rgb\", A.Color3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ColorMergerBlock\";\n }\n /**\n * Gets the rgb component (input)\n */\n get rgbIn() {\n return this._inputs[0];\n }\n /**\n * Gets the r component (input)\n */\n get r() {\n return this._inputs[1];\n }\n /**\n * Gets the g component (input)\n */\n get g() {\n return this._inputs[2];\n }\n /**\n * Gets the b component (input)\n */\n get b() {\n return this._inputs[3];\n }\n /**\n * Gets the a component (input)\n */\n get a() {\n return this._inputs[4];\n }\n /**\n * Gets the rgba component (output)\n */\n get rgba() {\n return this._outputs[0];\n }\n /**\n * Gets the rgb component (output)\n */\n get rgbOut() {\n return this._outputs[1];\n }\n /**\n * Gets the rgb component (output)\n * @deprecated Please use rgbOut instead.\n */\n get rgb() {\n return this.rgbOut;\n }\n _inputRename(e) {\n return e === \"rgb \" ? \"rgbIn\" : e;\n }\n _buildSwizzle(e) {\n return \".\" + (this.rSwizzle + this.gSwizzle + this.bSwizzle + this.aSwizzle).substr(0, e);\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this.r, i = this.g, s = this.b, r = this.a, n = this.rgbIn, o = this._outputs[0], l = this._outputs[1], h = e._getShaderType(A.Vector4), c = e._getShaderType(A.Vector3);\n return n.isConnected ? (o.hasEndpoints && (e.compilationString += e._declareOutput(o) + ` = ${h}(${n.associatedVariableName}, ${r.isConnected ? this._writeVariable(r) : \"0.0\"})${this._buildSwizzle(4)};\n`), l.hasEndpoints && (e.compilationString += e._declareOutput(l) + ` = ${n.associatedVariableName}${this._buildSwizzle(3)};\n`)) : (o.hasEndpoints && (e.compilationString += e._declareOutput(o) + ` = ${h}(${t.isConnected ? this._writeVariable(t) : \"0.0\"}, ${i.isConnected ? this._writeVariable(i) : \"0.0\"}, ${s.isConnected ? this._writeVariable(s) : \"0.0\"}, ${r.isConnected ? this._writeVariable(r) : \"0.0\"})${this._buildSwizzle(4)};\n`), l.hasEndpoints && (e.compilationString += e._declareOutput(l) + ` = ${c}(${t.isConnected ? this._writeVariable(t) : \"0.0\"}, ${i.isConnected ? this._writeVariable(i) : \"0.0\"}, ${s.isConnected ? this._writeVariable(s) : \"0.0\"})${this._buildSwizzle(3)};\n`)), this;\n }\n serialize() {\n const e = super.serialize();\n return e.rSwizzle = this.rSwizzle, e.gSwizzle = this.gSwizzle, e.bSwizzle = this.bSwizzle, e.aSwizzle = this.aSwizzle, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.rSwizzle = e.rSwizzle ?? \"r\", this.gSwizzle = e.gSwizzle ?? \"g\", this.bSwizzle = e.bSwizzle ?? \"b\", this.aSwizzle = e.aSwizzle ?? \"a\";\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return e += `${this._codeVariableName}.rSwizzle = \"${this.rSwizzle}\";\n`, e += `${this._codeVariableName}.gSwizzle = \"${this.gSwizzle}\";\n`, e += `${this._codeVariableName}.bSwizzle = \"${this.bSwizzle}\";\n`, e += `${this._codeVariableName}.aSwizzle = \"${this.aSwizzle}\";\n`, e;\n }\n}\nU(\"BABYLON.ColorMergerBlock\", MA);\nclass DA extends Ge {\n /**\n * Create a new VectorSplitterBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"xyzw\", A.Vector4, !0), this.registerInput(\"xyz \", A.Vector3, !0), this.registerInput(\"xy \", A.Vector2, !0), this.registerOutput(\"xyz\", A.Vector3), this.registerOutput(\"xy\", A.Vector2), this.registerOutput(\"zw\", A.Vector2), this.registerOutput(\"x\", A.Float), this.registerOutput(\"y\", A.Float), this.registerOutput(\"z\", A.Float), this.registerOutput(\"w\", A.Float), this.inputsAreExclusive = !0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"VectorSplitterBlock\";\n }\n /**\n * Gets the xyzw component (input)\n */\n get xyzw() {\n return this._inputs[0];\n }\n /**\n * Gets the xyz component (input)\n */\n get xyzIn() {\n return this._inputs[1];\n }\n /**\n * Gets the xy component (input)\n */\n get xyIn() {\n return this._inputs[2];\n }\n /**\n * Gets the xyz component (output)\n */\n get xyzOut() {\n return this._outputs[0];\n }\n /**\n * Gets the xy component (output)\n */\n get xyOut() {\n return this._outputs[1];\n }\n /**\n * Gets the zw component (output)\n */\n get zw() {\n return this._outputs[2];\n }\n /**\n * Gets the x component (output)\n */\n get x() {\n return this._outputs[3];\n }\n /**\n * Gets the y component (output)\n */\n get y() {\n return this._outputs[4];\n }\n /**\n * Gets the z component (output)\n */\n get z() {\n return this._outputs[5];\n }\n /**\n * Gets the w component (output)\n */\n get w() {\n return this._outputs[6];\n }\n _inputRename(e) {\n switch (e) {\n case \"xy \":\n return \"xyIn\";\n case \"xyz \":\n return \"xyzIn\";\n default:\n return e;\n }\n }\n _outputRename(e) {\n switch (e) {\n case \"xy\":\n return \"xyOut\";\n case \"xyz\":\n return \"xyzOut\";\n default:\n return e;\n }\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this.xyzw.isConnected ? this.xyzw : this.xyzIn.isConnected ? this.xyzIn : this.xyIn, i = this._outputs[0], s = this._outputs[1], r = this._outputs[2], n = this._outputs[3], o = this._outputs[4], l = this._outputs[5], h = this._outputs[6], c = e._getShaderType(A.Vector3);\n return i.hasEndpoints && (t === this.xyIn ? e.compilationString += e._declareOutput(i) + ` = ${c}(${t.associatedVariableName}, 0.0);\n` : e.compilationString += e._declareOutput(i) + ` = ${t.associatedVariableName}.xyz;\n`), r.hasEndpoints && this.xyzw.isConnected && (e.compilationString += e._declareOutput(r) + ` = ${this.xyzw.associatedVariableName}.zw;\n`), s.hasEndpoints && (e.compilationString += e._declareOutput(s) + ` = ${t.associatedVariableName}.xy;\n`), n.hasEndpoints && (e.compilationString += e._declareOutput(n) + ` = ${t.associatedVariableName}.x;\n`), o.hasEndpoints && (e.compilationString += e._declareOutput(o) + ` = ${t.associatedVariableName}.y;\n`), l.hasEndpoints && (e.compilationString += e._declareOutput(l) + ` = ${t.associatedVariableName}.z;\n`), h.hasEndpoints && (e.compilationString += e._declareOutput(h) + ` = ${t.associatedVariableName}.w;\n`), this;\n }\n}\nU(\"BABYLON.VectorSplitterBlock\", DA);\nclass OA extends Ge {\n /**\n * Creates a new LerpBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"left\", A.AutoDetect), this.registerInput(\"right\", A.AutoDetect), this.registerInput(\"gradient\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1), this._linkConnectionTypes(1, 2, !0), this._inputs[2].acceptedConnectionPointTypes.push(A.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"LerpBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the gradient operand input component\n */\n get gradient() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = mix(${this.left.associatedVariableName} , ${this.right.associatedVariableName}, ${this.gradient.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.LerpBlock\", OA);\nclass wA extends Q_ {\n /**\n * Creates a new DivideBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DivideBlock\";\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = ${this.left.associatedVariableName} / ${this.right.associatedVariableName};\n`, this;\n }\n}\nU(\"BABYLON.DivideBlock\", wA);\nclass NA extends Q_ {\n /**\n * Creates a new SubtractBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SubtractBlock\";\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = ${this.left.associatedVariableName} - ${this.right.associatedVariableName};\n`, this;\n }\n}\nU(\"BABYLON.SubtractBlock\", NA);\nclass FA extends Ge {\n /**\n * Creates a new StepBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"value\", A.Float), this.registerInput(\"edge\", A.Float), this.registerOutput(\"output\", A.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"StepBlock\";\n }\n /**\n * Gets the value operand input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the edge operand input component\n */\n get edge() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = step(${this.edge.associatedVariableName}, ${this.value.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.StepBlock\", FA);\nclass Fv extends Ge {\n /**\n * Creates a new OneMinusBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"input\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._outputs[0].excludedConnectionPointTypes.push(A.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"OneMinusBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = 1. - ${this.input.associatedVariableName};\n`, this;\n }\n}\nU(\"BABYLON.OneMinusBlock\", Fv);\nU(\"BABYLON.OppositeBlock\", Fv);\nclass Lv extends Ge {\n /**\n * Creates a new ViewDirectionBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"worldPosition\", A.Vector4), this.registerInput(\"cameraPosition\", A.Vector3), this.registerOutput(\"output\", A.Vector3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ViewDirectionBlock\";\n }\n /**\n * Gets the world position component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the camera position component\n */\n get cameraPosition() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n autoConfigure(e, t = () => !0) {\n if (!this.cameraPosition.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.systemValue === ct.CameraPosition && t(s));\n i || (i = new ot(\"cameraPosition\"), i.setAsSystemValue(ct.CameraPosition)), i.output.connectTo(this.cameraPosition);\n }\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = normalize(${this.cameraPosition.associatedVariableName} - ${this.worldPosition.associatedVariableName}.xyz);\n`, this;\n }\n}\nU(\"BABYLON.ViewDirectionBlock\", Lv);\nclass LA extends Ge {\n /**\n * Create a new FresnelBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"worldNormal\", A.Vector4), this.registerInput(\"viewDirection\", A.Vector3), this.registerInput(\"bias\", A.Float), this.registerInput(\"power\", A.Float), this.registerOutput(\"fresnel\", A.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"FresnelBlock\";\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this._inputs[0];\n }\n /**\n * Gets the view direction input component\n */\n get viewDirection() {\n return this._inputs[1];\n }\n /**\n * Gets the bias input component\n */\n get bias() {\n return this._inputs[2];\n }\n /**\n * Gets the camera (or eye) position component\n */\n get power() {\n return this._inputs[3];\n }\n /**\n * Gets the fresnel output component\n */\n get fresnel() {\n return this._outputs[0];\n }\n autoConfigure(e) {\n if (!this.viewDirection.isConnected) {\n const t = new Lv(\"View direction\");\n t.output.connectTo(this.viewDirection), t.autoConfigure(e);\n }\n if (!this.bias.isConnected) {\n const t = new ot(\"bias\");\n t.value = 0, t.output.connectTo(this.bias);\n }\n if (!this.power.isConnected) {\n const t = new ot(\"power\");\n t.value = 1, t.output.connectTo(this.power);\n }\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = `//${this.name}`;\n return e._emitFunctionFromInclude(\"fresnelFunction\", t, { removeIfDef: !0 }), e.compilationString += e._declareOutput(this.fresnel) + ` = computeFresnelTerm(${this.viewDirection.associatedVariableName}.xyz, ${this.worldNormal.associatedVariableName}.xyz, ${this.bias.associatedVariableName}, ${this.power.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.FresnelBlock\", LA);\nclass BA extends Ge {\n /**\n * Creates a new MaxBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"left\", A.AutoDetect), this.registerInput(\"right\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MaxBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = max(${this.left.associatedVariableName}, ${this.right.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.MaxBlock\", BA);\nclass VA extends Ge {\n /**\n * Creates a new MinBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"left\", A.AutoDetect), this.registerInput(\"right\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MinBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = min(${this.left.associatedVariableName}, ${this.right.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.MinBlock\", VA);\nclass UA extends Ge {\n /**\n * Creates a new DistanceBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"left\", A.AutoDetect), this.registerInput(\"right\", A.AutoDetect), this.registerOutput(\"output\", A.Float), this._linkConnectionTypes(0, 1), this._inputs[0].excludedConnectionPointTypes.push(A.Float), this._inputs[0].excludedConnectionPointTypes.push(A.Matrix), this._inputs[1].excludedConnectionPointTypes.push(A.Float), this._inputs[1].excludedConnectionPointTypes.push(A.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DistanceBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = length(${this.left.associatedVariableName} - ${this.right.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.DistanceBlock\", UA);\nclass kA extends Ge {\n /**\n * Creates a new LengthBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"value\", A.AutoDetect), this.registerOutput(\"output\", A.Float), this._inputs[0].excludedConnectionPointTypes.push(A.Float), this._inputs[0].excludedConnectionPointTypes.push(A.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"LengthBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = length(${this.value.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.LengthBlock\", kA);\nclass GA extends Ge {\n /**\n * Creates a new NegateBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"value\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NegateBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = -1.0 * ${this.value.associatedVariableName};\n`, this;\n }\n}\nU(\"BABYLON.NegateBlock\", GA);\nclass zA extends Ge {\n /**\n * Creates a new PowBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"value\", A.AutoDetect), this.registerInput(\"power\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"PowBlock\";\n }\n /**\n * Gets the value operand input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the power operand input component\n */\n get power() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = pow(${this.value.associatedVariableName}, ${this.power.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.PowBlock\", zA);\nclass WA extends Ge {\n /**\n * Creates a new RandomNumberBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"seed\", A.AutoDetect), this.registerOutput(\"output\", A.Float), this._inputs[0].addExcludedConnectionPointFromAllowedTypes(A.Vector2 | A.Vector3 | A.Vector4 | A.Color3 | A.Color4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RandomNumberBlock\";\n }\n /**\n * Gets the seed input component\n */\n get seed() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], i = `//${this.name}`;\n return e._emitFunctionFromInclude(\"helperFunctions\", i), e.compilationString += e._declareOutput(t) + ` = getRand(${this.seed.associatedVariableName}.xy);\n`, this;\n }\n}\nU(\"BABYLON.RandomNumberBlock\", WA);\nclass HA extends Ge {\n /**\n * Creates a new ArcTan2Block\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"x\", A.Float), this.registerInput(\"y\", A.Float), this.registerOutput(\"output\", A.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ArcTan2Block\";\n }\n /**\n * Gets the x operand input component\n */\n get x() {\n return this._inputs[0];\n }\n /**\n * Gets the y operand input component\n */\n get y() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], i = e.shaderLanguage === 1 ? \"atan2\" : \"atan\";\n return e.compilationString += e._declareOutput(t) + ` = ${i}(${this.x.associatedVariableName}, ${this.y.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.ArcTan2Block\", HA);\nclass XA extends Ge {\n /**\n * Creates a new SmoothStepBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"value\", A.AutoDetect), this.registerInput(\"edge0\", A.Float), this.registerInput(\"edge1\", A.Float), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SmoothStepBlock\";\n }\n /**\n * Gets the value operand input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the first edge operand input component\n */\n get edge0() {\n return this._inputs[1];\n }\n /**\n * Gets the second edge operand input component\n */\n get edge1() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], i = e._getShaderType(this.value.type);\n return e.compilationString += e._declareOutput(t) + ` = smoothstep(${i}(${this.edge0.associatedVariableName}), ${i}(${this.edge1.associatedVariableName}), ${this.value.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.SmoothStepBlock\", XA);\nclass $A extends Ge {\n /**\n * Creates a new ReciprocalBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"input\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ReciprocalBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return this.input.type === A.Matrix ? e.compilationString += e._declareOutput(t) + ` = inverse(${this.input.associatedVariableName});\n` : e.compilationString += e._declareOutput(t) + ` = 1. / ${this.input.associatedVariableName};\n`, this;\n }\n}\nU(\"BABYLON.ReciprocalBlock\", $A);\nclass YA extends Ge {\n /**\n * Creates a new ReplaceColorBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"value\", A.AutoDetect), this.registerInput(\"reference\", A.AutoDetect), this.registerInput(\"distance\", A.Float), this.registerInput(\"replacement\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1), this._linkConnectionTypes(0, 3), this._inputs[0].excludedConnectionPointTypes.push(A.Float), this._inputs[0].excludedConnectionPointTypes.push(A.Matrix), this._inputs[1].excludedConnectionPointTypes.push(A.Float), this._inputs[1].excludedConnectionPointTypes.push(A.Matrix), this._inputs[3].excludedConnectionPointTypes.push(A.Float), this._inputs[3].excludedConnectionPointTypes.push(A.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ReplaceColorBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the reference input component\n */\n get reference() {\n return this._inputs[1];\n }\n /**\n * Gets the distance input component\n */\n get distance() {\n return this._inputs[2];\n }\n /**\n * Gets the replacement input component\n */\n get replacement() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + `;\n`, e.compilationString += `if (length(${this.value.associatedVariableName} - ${this.reference.associatedVariableName}) < ${this.distance.associatedVariableName}) {\n`, e.compilationString += `${t.associatedVariableName} = ${this.replacement.associatedVariableName};\n`, e.compilationString += `} else {\n`, e.compilationString += `${t.associatedVariableName} = ${this.value.associatedVariableName};\n`, e.compilationString += `}\n`, this;\n }\n}\nU(\"BABYLON.ReplaceColorBlock\", YA);\nclass jA extends Ge {\n /**\n * Creates a new PosterizeBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"value\", A.AutoDetect), this.registerInput(\"steps\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1), this._inputs[0].excludedConnectionPointTypes.push(A.Matrix), this._inputs[1].excludedConnectionPointTypes.push(A.Matrix), this._inputs[1].acceptedConnectionPointTypes.push(A.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"PosterizeBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the steps input component\n */\n get steps() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = floor(${this.value.associatedVariableName} / (1.0 / ${this.steps.associatedVariableName})) * (1.0 / ${this.steps.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.PosterizeBlock\", jA);\nvar zg;\n(function(a) {\n a[a.SawTooth = 0] = \"SawTooth\", a[a.Square = 1] = \"Square\", a[a.Triangle = 2] = \"Triangle\";\n})(zg || (zg = {}));\nclass KA extends Ge {\n /**\n * Creates a new WaveBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.kind = 0, this.registerInput(\"input\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._inputs[0].excludedConnectionPointTypes.push(A.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"WaveBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n switch (this.kind) {\n case 0: {\n e.compilationString += e._declareOutput(t) + ` = ${this.input.associatedVariableName} - floor(0.5 + ${this.input.associatedVariableName});\n`;\n break;\n }\n case 1: {\n e.compilationString += e._declareOutput(t) + ` = 1.0 - 2.0 * round(fract(${this.input.associatedVariableName}));\n`;\n break;\n }\n case 2: {\n e.compilationString += e._declareOutput(t) + ` = 2.0 * abs(2.0 * (${this.input.associatedVariableName} - floor(0.5 + ${this.input.associatedVariableName}))) - 1.0;\n`;\n break;\n }\n }\n return this;\n }\n serialize() {\n const e = super.serialize();\n return e.kind = this.kind, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.kind = e.kind;\n }\n}\nU(\"BABYLON.WaveBlock\", KA);\nclass Sp {\n /**\n * Gets value indicating which step this color is associated with (between 0 and 1)\n */\n get step() {\n return this._step;\n }\n /**\n * Sets a value indicating which step this color is associated with (between 0 and 1)\n */\n set step(e) {\n this._step = e;\n }\n /**\n * Gets the color associated with this step\n */\n get color() {\n return this._color;\n }\n /**\n * Sets the color associated with this step\n */\n set color(e) {\n this._color = e;\n }\n /**\n * Creates a new GradientBlockColorStep\n * @param step defines a value indicating which step this color is associated with (between 0 and 1)\n * @param color defines the color associated with this step\n */\n constructor(e, t) {\n this.step = e, this.color = t;\n }\n}\nclass qA extends Ge {\n /** calls observable when the value is changed*/\n colorStepsUpdated() {\n this.onValueChangedObservable.notifyObservers(this);\n }\n /**\n * Creates a new GradientBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.colorSteps = [new Sp(0, re.Black()), new Sp(1, re.White())], this.onValueChangedObservable = new G(), this.registerInput(\"gradient\", A.AutoDetect), this.registerOutput(\"output\", A.Color3), this._inputs[0].addExcludedConnectionPointFromAllowedTypes(A.Float | A.Vector2 | A.Vector3 | A.Vector4 | A.Color3 | A.Color4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GradientBlock\";\n }\n /**\n * Gets the gradient input component\n */\n get gradient() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _writeColorConstant(e, t) {\n const i = this.colorSteps[e];\n return `${t}(${i.color.r}, ${i.color.g}, ${i.color.b})`;\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], i = e._getShaderType(A.Vector3);\n if (!this.colorSteps.length || !this.gradient.connectedPoint) {\n e.compilationString += e._declareOutput(t) + ` = ${i}(0., 0., 0.);\n`;\n return;\n }\n const s = e._getFreeVariableName(\"gradientTempColor\"), r = e._getFreeVariableName(\"gradientTempPosition\");\n e.compilationString += `${e._declareLocalVar(s, A.Vector3)} = ${this._writeColorConstant(0, i)};\n`, e.compilationString += `${e._declareLocalVar(r, A.Float)};\n`;\n let n = this.gradient.associatedVariableName;\n this.gradient.connectedPoint.type !== A.Float && (n += \".x\");\n for (let o = 1; o < this.colorSteps.length; o++) {\n const l = this.colorSteps[o], h = this.colorSteps[o - 1];\n e.compilationString += `${r} = clamp((${n} - ${e._emitFloat(h.step)}) / (${e._emitFloat(l.step)} - ${e._emitFloat(h.step)}), 0.0, 1.0) * step(${e._emitFloat(o)}, ${e._emitFloat(this.colorSteps.length - 1)});\n`, e.compilationString += `${s} = mix(${s}, ${this._writeColorConstant(o, i)}, ${r});\n`;\n }\n return e.compilationString += e._declareOutput(t) + ` = ${s};\n`, this;\n }\n serialize() {\n const e = super.serialize();\n e.colorSteps = [];\n for (const t of this.colorSteps)\n e.colorSteps.push({\n step: t.step,\n color: {\n r: t.color.r,\n g: t.color.g,\n b: t.color.b\n }\n });\n return e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.colorSteps.length = 0;\n for (const s of e.colorSteps)\n this.colorSteps.push(new Sp(s.step, new re(s.color.r, s.color.g, s.color.b)));\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n e += `${this._codeVariableName}.colorSteps = [];\n`;\n for (const t of this.colorSteps)\n e += `${this._codeVariableName}.colorSteps.push(new BABYLON.GradientBlockColorStep(${t.step}, new BABYLON.Color3(${t.color.r}, ${t.color.g}, ${t.color.b})));\n`;\n return e;\n }\n}\nU(\"BABYLON.GradientBlock\", qA);\nclass QA extends Ge {\n /**\n * Creates a new NLerpBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"left\", A.AutoDetect), this.registerInput(\"right\", A.AutoDetect), this.registerInput(\"gradient\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1), this._linkConnectionTypes(1, 2, !0), this._inputs[2].acceptedConnectionPointTypes.push(A.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NLerpBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the gradient operand input component\n */\n get gradient() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = normalize(mix(${this.left.associatedVariableName} , ${this.right.associatedVariableName}, ${this.gradient.associatedVariableName}));\n`, this;\n }\n}\nU(\"BABYLON.NLerpBlock\", QA);\nclass Bv extends Ge {\n /**\n * Creates a new WorleyNoise3DBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.manhattanDistance = !1, this.registerInput(\"seed\", A.Vector3), this.registerInput(\"jitter\", A.Float), this.registerOutput(\"output\", A.Vector2), this.registerOutput(\"x\", A.Float), this.registerOutput(\"y\", A.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"WorleyNoise3DBlock\";\n }\n /**\n * Gets the seed input component\n */\n get seed() {\n return this._inputs[0];\n }\n /**\n * Gets the jitter input component\n */\n get jitter() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the x component\n */\n get x() {\n return this._outputs[1];\n }\n /**\n * Gets the y component\n */\n get y() {\n return this._outputs[2];\n }\n _buildBlock(e) {\n if (super._buildBlock(e), !this.seed.isConnected || !this.output.hasEndpoints && !this.x.hasEndpoints && !this.y.hasEndpoints)\n return;\n let t = `vec3 permute(vec3 x){\n`;\n t += ` return mod((34.0 * x + 1.0) * x, 289.0);\n`, t += `}\n\n`, t += `vec3 dist(vec3 x, vec3 y, vec3 z, bool manhattanDistance){\n`, t += ` return [manhattanDistance ? abs(x) + abs(y) + abs(z) : (x * x + y * y + z * z)];\n`, t += `}\n\n`, t += `vec2 worley(vec3 P, float jitter, bool manhattanDistance){\n`, t += ` float K = 0.142857142857; // 1/7\n`, t += ` float Ko = 0.428571428571; // 1/2-K/2\n`, t += ` float K2 = 0.020408163265306; // 1/(7*7)\n`, t += ` float Kz = 0.166666666667; // 1/6\n`, t += ` float Kzo = 0.416666666667; // 1/2-1/6*2\n`, t += `\n`, t += ` vec3 Pi = mod(floor(P), 289.0);\n`, t += ` vec3 Pf = fract(P) - 0.5;\n`, t += `\n`, t += ` vec3 Pfx = Pf.x + vec3(1.0, 0.0, -1.0);\n`, t += ` vec3 Pfy = Pf.y + vec3(1.0, 0.0, -1.0);\n`, t += ` vec3 Pfz = Pf.z + vec3(1.0, 0.0, -1.0);\n`, t += `\n`, t += ` vec3 p = permute(Pi.x + vec3(-1.0, 0.0, 1.0));\n`, t += ` vec3 p1 = permute(p + Pi.y - 1.0);\n`, t += ` vec3 p2 = permute(p + Pi.y);\n`, t += ` vec3 p3 = permute(p + Pi.y + 1.0);\n`, t += `\n`, t += ` vec3 p11 = permute(p1 + Pi.z - 1.0);\n`, t += ` vec3 p12 = permute(p1 + Pi.z);\n`, t += ` vec3 p13 = permute(p1 + Pi.z + 1.0);\n`, t += `\n`, t += ` vec3 p21 = permute(p2 + Pi.z - 1.0);\n`, t += ` vec3 p22 = permute(p2 + Pi.z);\n`, t += ` vec3 p23 = permute(p2 + Pi.z + 1.0);\n`, t += `\n`, t += ` vec3 p31 = permute(p3 + Pi.z - 1.0);\n`, t += ` vec3 p32 = permute(p3 + Pi.z);\n`, t += ` vec3 p33 = permute(p3 + Pi.z + 1.0);\n`, t += `\n`, t += ` vec3 ox11 = fract(p11*K) - Ko;\n`, t += ` vec3 oy11 = mod(floor(p11*K), 7.0)*K - Ko;\n`, t += ` vec3 oz11 = floor(p11*K2)*Kz - Kzo; // p11 < 289 guaranteed\n`, t += `\n`, t += ` vec3 ox12 = fract(p12*K) - Ko;\n`, t += ` vec3 oy12 = mod(floor(p12*K), 7.0)*K - Ko;\n`, t += ` vec3 oz12 = floor(p12*K2)*Kz - Kzo;\n`, t += `\n`, t += ` vec3 ox13 = fract(p13*K) - Ko;\n`, t += ` vec3 oy13 = mod(floor(p13*K), 7.0)*K - Ko;\n`, t += ` vec3 oz13 = floor(p13*K2)*Kz - Kzo;\n`, t += `\n`, t += ` vec3 ox21 = fract(p21*K) - Ko;\n`, t += ` vec3 oy21 = mod(floor(p21*K), 7.0)*K - Ko;\n`, t += ` vec3 oz21 = floor(p21*K2)*Kz - Kzo;\n`, t += `\n`, t += ` vec3 ox22 = fract(p22*K) - Ko;\n`, t += ` vec3 oy22 = mod(floor(p22*K), 7.0)*K - Ko;\n`, t += ` vec3 oz22 = floor(p22*K2)*Kz - Kzo;\n`, t += `\n`, t += ` vec3 ox23 = fract(p23*K) - Ko;\n`, t += ` vec3 oy23 = mod(floor(p23*K), 7.0)*K - Ko;\n`, t += ` vec3 oz23 = floor(p23*K2)*Kz - Kzo;\n`, t += `\n`, t += ` vec3 ox31 = fract(p31*K) - Ko;\n`, t += ` vec3 oy31 = mod(floor(p31*K), 7.0)*K - Ko;\n`, t += ` vec3 oz31 = floor(p31*K2)*Kz - Kzo;\n`, t += `\n`, t += ` vec3 ox32 = fract(p32*K) - Ko;\n`, t += ` vec3 oy32 = mod(floor(p32*K), 7.0)*K - Ko;\n`, t += ` vec3 oz32 = floor(p32*K2)*Kz - Kzo;\n`, t += `\n`, t += ` vec3 ox33 = fract(p33*K) - Ko;\n`, t += ` vec3 oy33 = mod(floor(p33*K), 7.0)*K - Ko;\n`, t += ` vec3 oz33 = floor(p33*K2)*Kz - Kzo;\n`, t += `\n`, t += ` vec3 dx11 = Pfx + jitter*ox11;\n`, t += ` vec3 dy11 = Pfy.x + jitter*oy11;\n`, t += ` vec3 dz11 = Pfz.x + jitter*oz11;\n`, t += `\n`, t += ` vec3 dx12 = Pfx + jitter*ox12;\n`, t += ` vec3 dy12 = Pfy.x + jitter*oy12;\n`, t += ` vec3 dz12 = Pfz.y + jitter*oz12;\n`, t += `\n`, t += ` vec3 dx13 = Pfx + jitter*ox13;\n`, t += ` vec3 dy13 = Pfy.x + jitter*oy13;\n`, t += ` vec3 dz13 = Pfz.z + jitter*oz13;\n`, t += `\n`, t += ` vec3 dx21 = Pfx + jitter*ox21;\n`, t += ` vec3 dy21 = Pfy.y + jitter*oy21;\n`, t += ` vec3 dz21 = Pfz.x + jitter*oz21;\n`, t += `\n`, t += ` vec3 dx22 = Pfx + jitter*ox22;\n`, t += ` vec3 dy22 = Pfy.y + jitter*oy22;\n`, t += ` vec3 dz22 = Pfz.y + jitter*oz22;\n`, t += `\n`, t += ` vec3 dx23 = Pfx + jitter*ox23;\n`, t += ` vec3 dy23 = Pfy.y + jitter*oy23;\n`, t += ` vec3 dz23 = Pfz.z + jitter*oz23;\n`, t += `\n`, t += ` vec3 dx31 = Pfx + jitter*ox31;\n`, t += ` vec3 dy31 = Pfy.z + jitter*oy31;\n`, t += ` vec3 dz31 = Pfz.x + jitter*oz31;\n`, t += `\n`, t += ` vec3 dx32 = Pfx + jitter*ox32;\n`, t += ` vec3 dy32 = Pfy.z + jitter*oy32;\n`, t += ` vec3 dz32 = Pfz.y + jitter*oz32;\n`, t += `\n`, t += ` vec3 dx33 = Pfx + jitter*ox33;\n`, t += ` vec3 dy33 = Pfy.z + jitter*oy33;\n`, t += ` vec3 dz33 = Pfz.z + jitter*oz33;\n`, t += `\n`, t += ` vec3 d11 = dist(dx11, dy11, dz11, manhattanDistance);\n`, t += ` vec3 d12 = dist(dx12, dy12, dz12, manhattanDistance);\n`, t += ` vec3 d13 = dist(dx13, dy13, dz13, manhattanDistance);\n`, t += ` vec3 d21 = dist(dx21, dy21, dz21, manhattanDistance);\n`, t += ` vec3 d22 = dist(dx22, dy22, dz22, manhattanDistance);\n`, t += ` vec3 d23 = dist(dx23, dy23, dz23, manhattanDistance);\n`, t += ` vec3 d31 = dist(dx31, dy31, dz31, manhattanDistance);\n`, t += ` vec3 d32 = dist(dx32, dy32, dz32, manhattanDistance);\n`, t += ` vec3 d33 = dist(dx33, dy33, dz33, manhattanDistance);\n`, t += `\n`, t += ` vec3 d1a = min(d11, d12);\n`, t += ` d12 = max(d11, d12);\n`, t += ` d11 = min(d1a, d13); // Smallest now not in d12 or d13\n`, t += ` d13 = max(d1a, d13);\n`, t += ` d12 = min(d12, d13); // 2nd smallest now not in d13\n`, t += ` vec3 d2a = min(d21, d22);\n`, t += ` d22 = max(d21, d22);\n`, t += ` d21 = min(d2a, d23); // Smallest now not in d22 or d23\n`, t += ` d23 = max(d2a, d23);\n`, t += ` d22 = min(d22, d23); // 2nd smallest now not in d23\n`, t += ` vec3 d3a = min(d31, d32);\n`, t += ` d32 = max(d31, d32);\n`, t += ` d31 = min(d3a, d33); // Smallest now not in d32 or d33\n`, t += ` d33 = max(d3a, d33);\n`, t += ` d32 = min(d32, d33); // 2nd smallest now not in d33\n`, t += ` vec3 da = min(d11, d21);\n`, t += ` d21 = max(d11, d21);\n`, t += ` d11 = min(da, d31); // Smallest now in d11\n`, t += ` d31 = max(da, d31); // 2nd smallest now not in d31\n`, t += ` if (d11.x >= d11.y) { vec2 temp = d11.yx; d11.x = temp.x; d11.y = temp.y; }\n`, t += ` if (d11.x >= d11.z) { vec2 temp = d11.zx; d11.x = temp.x; d11.z = temp.y; }\n`, t += ` d12 = min(d12, d21); // 2nd smallest now not in d21\n`, t += ` d12 = min(d12, d22); // nor in d22\n`, t += ` d12 = min(d12, d31); // nor in d31\n`, t += ` d12 = min(d12, d32); // nor in d32\n`, t += ` vec2 temp2 = min(d11.yz, d12.xy); // nor in d12.yz\n`, t += ` d11.y = temp2.x;\n`, t += ` d11.z = temp2.y;\n`, t += ` d11.y = min(d11.y, d12.z); // Only two more to go\n`, t += ` d11.y = min(d11.y, d11.z); // Done! (Phew!)\n`, t += ` return sqrt(d11.xy); // F1, F2\n`, t += `}\n\n`, e.shaderLanguage === 1 ? t = e._babylonSLtoWGSL(t) : t = e._babylonSLtoGLSL(t), e._emitFunction(\"worley3D\", t, \"// Worley3D\");\n const i = e._getFreeVariableName(\"worleyTemp\");\n return e.compilationString += `${e._declareLocalVar(i, A.Vector2)} = worley(${this.seed.associatedVariableName}, ${this.jitter.associatedVariableName}, ${this.manhattanDistance});\n`, this.output.hasEndpoints && (e.compilationString += e._declareOutput(this.output) + ` = ${i};\n`), this.x.hasEndpoints && (e.compilationString += e._declareOutput(this.x) + ` = ${i}.x;\n`), this.y.hasEndpoints && (e.compilationString += e._declareOutput(this.y) + ` = ${i}.y;\n`), this;\n }\n /**\n * Exposes the properties to the UI?\n * @returns - boolean indicating if the block has properties or not\n */\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.manhattanDistance = ${this.manhattanDistance};\n`;\n }\n /**\n * Exposes the properties to the Serialize?\n * @returns - a serialized object\n */\n serialize() {\n const e = super.serialize();\n return e.manhattanDistance = this.manhattanDistance, e;\n }\n /**\n * Exposes the properties to the deserialize?\n * @param serializationObject\n * @param scene\n * @param rootUrl\n */\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.manhattanDistance = e.manhattanDistance;\n }\n}\ny([\n ze(\"Use Manhattan Distance\", 0, \"PROPERTIES\", { notifiers: { update: !1 } })\n], Bv.prototype, \"manhattanDistance\", void 0);\nU(\"BABYLON.WorleyNoise3DBlock\", Bv);\nclass ZA extends Ge {\n /**\n * Creates a new SimplexPerlin3DBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"seed\", A.Vector3), this.registerOutput(\"output\", A.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SimplexPerlin3DBlock\";\n }\n /**\n * Gets the seed operand input component\n */\n get seed() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n if (super._buildBlock(e), !this.seed.isConnected || !this._outputs[0].hasEndpoints)\n return;\n let t = `const float SKEWFACTOR = 1.0/3.0;\n`;\n return t += `const float UNSKEWFACTOR = 1.0/6.0;\n`, t += `const float SIMPLEX_CORNER_POS = 0.5;\n`, t += `const float SIMPLEX_TETRAHADRON_HEIGHT = 0.70710678118654752440084436210485;\n`, t += `float SimplexPerlin3D( vec3 source ){\n`, t += ` vec3 P = source;\n`, t += ` P.x = [P.x == 0. && P.y == 0. && P.z == 0. ? 0.00001 : P.x];\n`, t += ` P *= SIMPLEX_TETRAHADRON_HEIGHT;\n`, t += \" vec3 Pi = floor( P + dot( P, vec3( SKEWFACTOR) ) );\", t += ` vec3 x0 = P - Pi + dot(Pi, vec3( UNSKEWFACTOR ) );\n`, t += ` vec3 g = step(x0.yzx, x0.xyz);\n`, t += ` vec3 l = 1.0 - g;\n`, t += ` vec3 Pi_1 = min( g.xyz, l.zxy );\n`, t += ` vec3 Pi_2 = max( g.xyz, l.zxy );\n`, t += ` vec3 x1 = x0 - Pi_1 + UNSKEWFACTOR;\n`, t += ` vec3 x2 = x0 - Pi_2 + SKEWFACTOR;\n`, t += ` vec3 x3 = x0 - SIMPLEX_CORNER_POS;\n`, t += ` vec4 v1234_x = vec4( x0.x, x1.x, x2.x, x3.x );\n`, t += ` vec4 v1234_y = vec4( x0.y, x1.y, x2.y, x3.y );\n`, t += ` vec4 v1234_z = vec4( x0.z, x1.z, x2.z, x3.z );\n`, t += ` Pi = Pi.xyz - floor(Pi.xyz * ( 1.0 / 69.0 )) * 69.0;\n`, t += ` vec3 Pi_inc1 = step( Pi, vec3( 69.0 - 1.5 ) ) * ( Pi + 1.0 );\n`, t += ` vec4 Pt = vec4( Pi.xy, Pi_inc1.xy ) + vec2( 50.0, 161.0 ).xyxy;\n`, t += ` Pt *= Pt;\n`, t += ` vec4 V1xy_V2xy = mix( Pt.xyxy, Pt.zwzw, vec4( Pi_1.xy, Pi_2.xy ) );\n`, t += ` Pt = vec4( Pt.x, V1xy_V2xy.xz, Pt.z ) * vec4( Pt.y, V1xy_V2xy.yw, Pt.w );\n`, t += ` const vec3 SOMELARGEFLOATS = vec3( 635.298681, 682.357502, 668.926525 );\n`, t += ` const vec3 ZINC = vec3( 48.500388, 65.294118, 63.934599 );\n`, t += ` vec3 lowz_mods = vec3( 1.0 / ( SOMELARGEFLOATS.xyz + Pi.zzz * ZINC.xyz ) );\n`, t += ` vec3 highz_mods = vec3( 1.0 / ( SOMELARGEFLOATS.xyz + Pi_inc1.zzz * ZINC.xyz ) );\n`, t += ` Pi_1 = [( Pi_1.z < 0.5 ) ? lowz_mods : highz_mods];\n`, t += ` Pi_2 = [( Pi_2.z < 0.5 ) ? lowz_mods : highz_mods];\n`, t += ` vec4 hash_0 = fract( Pt * vec4( lowz_mods.x, Pi_1.x, Pi_2.x, highz_mods.x ) ) - 0.49999;\n`, t += ` vec4 hash_1 = fract( Pt * vec4( lowz_mods.y, Pi_1.y, Pi_2.y, highz_mods.y ) ) - 0.49999;\n`, t += ` vec4 hash_2 = fract( Pt * vec4( lowz_mods.z, Pi_1.z, Pi_2.z, highz_mods.z ) ) - 0.49999;\n`, t += ` vec4 grad_results = inversesqrt( hash_0 * hash_0 + hash_1 * hash_1 + hash_2 * hash_2 ) * ( hash_0 * v1234_x + hash_1 * v1234_y + hash_2 * v1234_z );\n`, t += ` const float FINAL_NORMALIZATION = 37.837227241611314102871574478976;\n`, t += ` vec4 kernel_weights = v1234_x * v1234_x + v1234_y * v1234_y + v1234_z * v1234_z;\n`, t += ` kernel_weights = max(0.5 - kernel_weights, vec4(0.));\n`, t += ` kernel_weights = kernel_weights*kernel_weights*kernel_weights;\n`, t += ` return dot( kernel_weights, grad_results ) * FINAL_NORMALIZATION;\n`, t += `}\n`, e.shaderLanguage === 1 ? t = e._babylonSLtoWGSL(t) : t = e._babylonSLtoGLSL(t), e._emitFunction(\"SimplexPerlin3D\", t, \"// SimplexPerlin3D\"), e.compilationString += e._declareOutput(this._outputs[0]) + ` = SimplexPerlin3D(${this.seed.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.SimplexPerlin3DBlock\", ZA);\nclass JA extends Ge {\n /**\n * Creates a new NormalBlendBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"normalMap0\", A.AutoDetect), this.registerInput(\"normalMap1\", A.AutoDetect), this.registerOutput(\"output\", A.Vector3), this._inputs[0].addExcludedConnectionPointFromAllowedTypes(A.Color3 | A.Color4 | A.Vector3 | A.Vector4), this._inputs[1].addExcludedConnectionPointFromAllowedTypes(A.Color3 | A.Color4 | A.Vector3 | A.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NormalBlendBlock\";\n }\n /**\n * Gets the first input component\n */\n get normalMap0() {\n return this._inputs[0];\n }\n /**\n * Gets the second input component\n */\n get normalMap1() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], i = this._inputs[0], s = this._inputs[1], r = e._getFreeVariableName(\"stepR\"), n = e._getFreeVariableName(\"stepG\");\n return e.compilationString += `${e._declareLocalVar(r, A.Float)} = step(0.5, ${i.associatedVariableName}.r);\n`, e.compilationString += `${e._declareLocalVar(n, A.Float)} = step(0.5, ${i.associatedVariableName}.g);\n`, e.compilationString += e._declareOutput(t) + `;\n`, e.compilationString += `${t.associatedVariableName}.r = (1.0 - ${r}) * ${i.associatedVariableName}.r * ${s.associatedVariableName}.r * 2.0 + ${r} * (1.0 - (1.0 - ${i.associatedVariableName}.r) * (1.0 - ${s.associatedVariableName}.r) * 2.0);\n`, e.compilationString += `${t.associatedVariableName}.g = (1.0 - ${n}) * ${i.associatedVariableName}.g * ${s.associatedVariableName}.g * 2.0 + ${n} * (1.0 - (1.0 - ${i.associatedVariableName}.g) * (1.0 - ${s.associatedVariableName}.g) * 2.0);\n`, e.compilationString += `${t.associatedVariableName}.b = ${i.associatedVariableName}.b * ${s.associatedVariableName}.b;\n`, this;\n }\n}\nU(\"BABYLON.NormalBlendBlock\", JA);\nclass eR extends Ge {\n /**\n * Creates a new Rotate2dBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"input\", A.Vector2), this.registerInput(\"angle\", A.Float), this.registerOutput(\"output\", A.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"Rotate2dBlock\";\n }\n /**\n * Gets the input vector\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the input angle\n */\n get angle() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.angle.isConnected) {\n const e = new ot(\"angle\");\n e.value = 0, e.output.connectTo(this.angle);\n }\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], i = this.angle, s = this.input;\n return e.compilationString += e._declareOutput(t) + ` = vec2(cos(${i.associatedVariableName}) * ${s.associatedVariableName}.x - sin(${i.associatedVariableName}) * ${s.associatedVariableName}.y, sin(${i.associatedVariableName}) * ${s.associatedVariableName}.x + cos(${i.associatedVariableName}) * ${s.associatedVariableName}.y);\n`, this;\n }\n}\nU(\"BABYLON.Rotate2dBlock\", eR);\nclass tR extends Ge {\n /**\n * Creates a new ReflectBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"incident\", A.AutoDetect), this.registerInput(\"normal\", A.AutoDetect), this.registerOutput(\"output\", A.Vector3), this._inputs[0].addExcludedConnectionPointFromAllowedTypes(A.Vector3 | A.Vector4 | A.Color3 | A.Color4), this._inputs[1].addExcludedConnectionPointFromAllowedTypes(A.Vector3 | A.Vector4 | A.Color3 | A.Color4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ReflectBlock\";\n }\n /**\n * Gets the incident component\n */\n get incident() {\n return this._inputs[0];\n }\n /**\n * Gets the normal component\n */\n get normal() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = reflect(${this.incident.associatedVariableName}.xyz, ${this.normal.associatedVariableName}.xyz);\n`, this;\n }\n}\nU(\"BABYLON.ReflectBlock\", tR);\nclass iR extends Ge {\n /**\n * Creates a new RefractBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"incident\", A.AutoDetect), this.registerInput(\"normal\", A.AutoDetect), this.registerInput(\"ior\", A.Float), this.registerOutput(\"output\", A.Vector3), this._inputs[0].addExcludedConnectionPointFromAllowedTypes(A.Vector3 | A.Vector4 | A.Color3 | A.Color4), this._inputs[1].addExcludedConnectionPointFromAllowedTypes(A.Vector3 | A.Vector4 | A.Color3 | A.Color4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RefractBlock\";\n }\n /**\n * Gets the incident component\n */\n get incident() {\n return this._inputs[0];\n }\n /**\n * Gets the normal component\n */\n get normal() {\n return this._inputs[1];\n }\n /**\n * Gets the index of refraction component\n */\n get ior() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.compilationString += e._declareOutput(t) + ` = refract(${this.incident.associatedVariableName}.xyz, ${this.normal.associatedVariableName}.xyz, ${this.ior.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.RefractBlock\", iR);\nclass sR extends Ge {\n /**\n * Creates a new DesaturateBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"color\", A.Color3), this.registerInput(\"level\", A.Float), this.registerOutput(\"output\", A.Color3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DesaturateBlock\";\n }\n /**\n * Gets the color operand input component\n */\n get color() {\n return this._inputs[0];\n }\n /**\n * Gets the level operand input component\n */\n get level() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], s = this.color.associatedVariableName, r = e._getFreeVariableName(\"colorMin\"), n = e._getFreeVariableName(\"colorMax\"), o = e._getFreeVariableName(\"colorMerge\");\n return e.compilationString += `${e._declareLocalVar(r, A.Float)} = min(min(${s}.x, ${s}.y), ${s}.z);\n`, e.compilationString += `${e._declareLocalVar(n, A.Float)} = max(max(${s}.x, ${s}.y), ${s}.z);\n`, e.compilationString += `${e._declareLocalVar(o, A.Float)} = 0.5 * (${r} + ${n});\n`, e.compilationString += e._declareOutput(t) + ` = mix(${s}, ${e._getShaderType(A.Vector3)}(${o}, ${o}, ${o}), ${this.level.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.DesaturateBlock\", sR);\nclass Xl extends Ge {\n /**\n * Create a new SheenBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this.albedoScaling = !1, this.linkSheenWithAlbedo = !1, this._isUnique = !0, this.registerInput(\"intensity\", A.Float, !0, B.Fragment), this.registerInput(\"color\", A.Color3, !0, B.Fragment), this.registerInput(\"roughness\", A.Float, !0, B.Fragment), this.registerOutput(\"sheen\", A.Object, B.Fragment, new Bi(\"sheen\", this, 1, Xl, \"SheenBlock\"));\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"sheenOut\"), e._excludeVariableName(\"sheenMapData\"), e._excludeVariableName(\"vSheenColor\"), e._excludeVariableName(\"vSheenRoughness\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SheenBlock\";\n }\n /**\n * Gets the intensity input component\n */\n get intensity() {\n return this._inputs[0];\n }\n /**\n * Gets the color input component\n */\n get color() {\n return this._inputs[1];\n }\n /**\n * Gets the roughness input component\n */\n get roughness() {\n return this._inputs[2];\n }\n /**\n * Gets the sheen object output component\n */\n get sheen() {\n return this._outputs[0];\n }\n prepareDefines(e, t, i) {\n super.prepareDefines(e, t, i), i.setValue(\"SHEEN\", !0), i.setValue(\"SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE\", !0, !0), i.setValue(\"SHEEN_LINKWITHALBEDO\", this.linkSheenWithAlbedo, !0), i.setValue(\"SHEEN_ROUGHNESS\", this.roughness.isConnected, !0), i.setValue(\"SHEEN_ALBEDOSCALING\", this.albedoScaling, !0);\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param reflectionBlock instance of a ReflectionBlock null if the code must be generated without an active reflection module\n * @returns the shader code\n */\n getCode(e) {\n let t = \"\";\n const i = this.color.isConnected ? this.color.associatedVariableName : \"vec3(1.)\", s = this.intensity.isConnected ? this.intensity.associatedVariableName : \"1.\", r = this.roughness.isConnected ? this.roughness.associatedVariableName : \"0.\";\n return t = `#ifdef SHEEN\n sheenOutParams sheenOut;\n\n vec4 vSheenColor = vec4(${i}, ${s});\n\n sheenBlock(\n vSheenColor,\n #ifdef SHEEN_ROUGHNESS\n ${r},\n #endif\n roughness,\n #ifdef SHEEN_TEXTURE\n vec4(0.),\n 1.0,\n #endif\n reflectance,\n #ifdef SHEEN_LINKWITHALBEDO\n baseColor,\n surfaceAlbedo,\n #endif\n #ifdef ENVIRONMENTBRDF\n NdotV,\n environmentBrdf,\n #endif\n #if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\n AARoughnessFactors,\n ${e == null ? void 0 : e._vReflectionMicrosurfaceInfosName},\n ${e == null ? void 0 : e._vReflectionInfosName},\n ${e == null ? void 0 : e.reflectionColor},\n vLightingIntensity,\n #ifdef ${e == null ? void 0 : e._define3DName}\n ${e == null ? void 0 : e._cubeSamplerName},\n #else\n ${e == null ? void 0 : e._2DSamplerName},\n #endif\n reflectionOut.reflectionCoords,\n NdotVUnclamped,\n #ifndef LODBASEDMICROSFURACE\n #ifdef ${e == null ? void 0 : e._define3DName}\n ${e == null ? void 0 : e._cubeSamplerName},\n ${e == null ? void 0 : e._cubeSamplerName},\n #else\n ${e == null ? void 0 : e._2DSamplerName},\n ${e == null ? void 0 : e._2DSamplerName},\n #endif\n #endif\n #if !defined(${e == null ? void 0 : e._defineSkyboxName}) && defined(RADIANCEOCCLUSION)\n seo,\n #endif\n #if !defined(${e == null ? void 0 : e._defineSkyboxName}) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(${e == null ? void 0 : e._define3DName})\n eho,\n #endif\n #endif\n sheenOut\n );\n\n #ifdef SHEEN_LINKWITHALBEDO\n surfaceAlbedo = sheenOut.surfaceAlbedo;\n #endif\n #endif\n`, t;\n }\n _buildBlock(e) {\n return e.target === B.Fragment && e.sharedData.blocksWithDefines.push(this), this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return e += `${this._codeVariableName}.albedoScaling = ${this.albedoScaling};\n`, e += `${this._codeVariableName}.linkSheenWithAlbedo = ${this.linkSheenWithAlbedo};\n`, e;\n }\n serialize() {\n const e = super.serialize();\n return e.albedoScaling = this.albedoScaling, e.linkSheenWithAlbedo = this.linkSheenWithAlbedo, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.albedoScaling = e.albedoScaling, this.linkSheenWithAlbedo = e.linkSheenWithAlbedo;\n }\n}\ny([\n ze(\"Albedo scaling\", 0, \"PROPERTIES\", { notifiers: { update: !0 } })\n], Xl.prototype, \"albedoScaling\", void 0);\ny([\n ze(\"Link sheen with albedo\", 0, \"PROPERTIES\", { notifiers: { update: !0 } })\n], Xl.prototype, \"linkSheenWithAlbedo\", void 0);\nU(\"BABYLON.SheenBlock\", Xl);\nclass Mf extends Ge {\n /**\n * Create a new AnisotropyBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this._tangentCorrectionFactorName = \"\", this._isUnique = !0, this.registerInput(\"intensity\", A.Float, !0, B.Fragment), this.registerInput(\"direction\", A.Vector2, !0, B.Fragment), this.registerInput(\"uv\", A.Vector2, !0), this.registerInput(\"worldTangent\", A.Vector4, !0), this.registerInput(\"TBN\", A.Object, !0, B.VertexAndFragment, new Bi(\"TBN\", this, 0, Hl, \"TBNBlock\")), this.registerInput(\"roughness\", A.Float, !0, B.Fragment), this.registerOutput(\"anisotropy\", A.Object, B.Fragment, new Bi(\"anisotropy\", this, 1, Mf, \"AnisotropyBlock\"));\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"anisotropicOut\"), e._excludeVariableName(\"TBN\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"AnisotropyBlock\";\n }\n /**\n * Gets the intensity input component\n */\n get intensity() {\n return this._inputs[0];\n }\n /**\n * Gets the direction input component\n */\n get direction() {\n return this._inputs[1];\n }\n /**\n * Gets the uv input component\n */\n get uv() {\n return this._inputs[2];\n }\n /**\n * Gets the worldTangent input component\n */\n get worldTangent() {\n return this._inputs[3];\n }\n /**\n * Gets the TBN input component\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n get TBN() {\n return this._inputs[4];\n }\n /**\n * Gets the roughness input component\n */\n get roughness() {\n return this._inputs[5];\n }\n /**\n * Gets the anisotropy object output component\n */\n get anisotropy() {\n return this._outputs[0];\n }\n _generateTBNSpace(e) {\n let t = \"\";\n const i = `//${this.name}`, s = this.uv, r = this.worldPositionConnectionPoint, n = this.worldNormalConnectionPoint, o = this.worldTangent;\n s.isConnected || L.Error(\"You must connect the 'uv' input of the Anisotropy block!\"), e._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\");\n const l = { search: /defined\\(TANGENT\\)/g, replace: o.isConnected ? \"defined(TANGENT)\" : \"defined(IGNORE)\" }, h = this.TBN;\n return h.isConnected ? e.compilationString += `\n #ifdef TBNBLOCK\n mat3 vTBN = ${h.associatedVariableName};\n #endif\n ` : o.isConnected && (t += `vec3 tbnNormal = normalize(${n.associatedVariableName}.xyz);\n`, t += `vec3 tbnTangent = normalize(${o.associatedVariableName}.xyz);\n`, t += `vec3 tbnBitangent = cross(tbnNormal, tbnTangent) * ${this._tangentCorrectionFactorName};\n`, t += `mat3 vTBN = mat3(tbnTangent, tbnBitangent, tbnNormal);\n`), t += `\n #if defined(${o.isConnected ? \"TANGENT\" : \"IGNORE\"}) && defined(NORMAL)\n mat3 TBN = vTBN;\n #else\n mat3 TBN = cotangent_frame(${n.associatedVariableName + \".xyz\"}, ${\"v_\" + r.associatedVariableName + \".xyz\"}, ${s.isConnected ? s.associatedVariableName : \"vec2(0.)\"}, vec2(1., 1.));\n #endif\n`, e._emitFunctionFromInclude(\"bumpFragmentMainFunctions\", i, {\n replaceStrings: [l]\n }), t;\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param state current state of the node material building\n * @param generateTBNSpace if true, the code needed to create the TBN coordinate space is generated\n * @returns the shader code\n */\n getCode(e, t = !1) {\n let i = \"\";\n t && (i += this._generateTBNSpace(e));\n const s = this.intensity.isConnected ? this.intensity.associatedVariableName : \"1.0\", r = this.direction.isConnected ? this.direction.associatedVariableName : \"vec2(1., 0.)\", n = this.roughness.isConnected ? this.roughness.associatedVariableName : \"0.\";\n return i += `anisotropicOutParams anisotropicOut;\n anisotropicBlock(\n vec3(${r}, ${s}),\n ${n},\n #ifdef ANISOTROPIC_TEXTURE\n vec3(0.),\n #endif\n TBN,\n normalW,\n viewDirectionW,\n anisotropicOut\n );\n`, i;\n }\n prepareDefines(e, t, i) {\n super.prepareDefines(e, t, i), i.setValue(\"ANISOTROPIC\", !0), i.setValue(\"ANISOTROPIC_TEXTURE\", !1, !0), i.setValue(\"ANISOTROPIC_LEGACY\", !this.roughness.isConnected);\n }\n bind(e, t, i) {\n super.bind(e, t, i), i && e.setFloat(this._tangentCorrectionFactorName, i.getWorldMatrix().determinant() < 0 ? -1 : 1);\n }\n _buildBlock(e) {\n return e.target === B.Fragment && (e.sharedData.blocksWithDefines.push(this), e.sharedData.bindableBlocks.push(this), this._tangentCorrectionFactorName = e._getFreeDefineName(\"tangentCorrectionFactor\"), e._emitUniformFromString(this._tangentCorrectionFactorName, A.Float)), this;\n }\n}\nU(\"BABYLON.AnisotropyBlock\", Mf);\nclass $l extends sc {\n _onGenerateOnlyFragmentCodeChanged() {\n return this.position.isConnected ? (this.generateOnlyFragmentCode = !this.generateOnlyFragmentCode, L.Error(\"The position input must not be connected to be able to switch!\"), !1) : (this._setTarget(), !0);\n }\n _setTarget() {\n super._setTarget(), this.getInputByName(\"position\").target = this.generateOnlyFragmentCode ? B.Fragment : B.Vertex, this.generateOnlyFragmentCode && (this.forceIrradianceInFragment = !0);\n }\n /**\n * Create a new ReflectionBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.useSphericalHarmonics = !0, this.forceIrradianceInFragment = !1, this._isUnique = !0, this.registerInput(\"position\", A.AutoDetect, !1, B.Vertex), this.registerInput(\"world\", A.Matrix, !1, B.Vertex), this.registerInput(\"color\", A.Color3, !0, B.Fragment), this.registerOutput(\"reflection\", A.Object, B.Fragment, new Bi(\"reflection\", this, 1, $l, \"ReflectionBlock\")), this.position.addExcludedConnectionPointFromAllowedTypes(A.Color3 | A.Vector3 | A.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ReflectionBlock\";\n }\n /**\n * Gets the position input component\n */\n get position() {\n return this._inputs[0];\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this.worldPositionConnectionPoint;\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this.worldNormalConnectionPoint;\n }\n /**\n * Gets the world input component\n */\n get world() {\n return this._inputs[1];\n }\n /**\n * Gets the camera (or eye) position component\n */\n get cameraPosition() {\n return this.cameraPositionConnectionPoint;\n }\n /**\n * Gets the view input component\n */\n get view() {\n return this.viewConnectionPoint;\n }\n /**\n * Gets the color input component\n */\n get color() {\n return this._inputs[2];\n }\n /**\n * Gets the reflection object output component\n */\n get reflection() {\n return this._outputs[0];\n }\n /**\n * Returns true if the block has a texture (either its own texture or the environment texture from the scene, if set)\n */\n get hasTexture() {\n return !!this._getTexture();\n }\n /**\n * Gets the reflection color (either the name of the variable if the color input is connected, else a default value)\n */\n get reflectionColor() {\n return this.color.isConnected ? this.color.associatedVariableName : \"vec3(1., 1., 1.)\";\n }\n _getTexture() {\n return this.texture ? this.texture : this._scene.environmentTexture;\n }\n prepareDefines(e, t, i) {\n super.prepareDefines(e, t, i);\n const s = this._getTexture(), r = s && s.getTextureMatrix;\n i.setValue(\"REFLECTION\", r, !0), r && (i.setValue(this._defineLODReflectionAlpha, s.lodLevelInAlpha, !0), i.setValue(this._defineLinearSpecularReflection, s.linearSpecularLOD, !0), i.setValue(this._defineOppositeZ, this._scene.useRightHandedSystem ? !s.invertZ : s.invertZ, !0), i.setValue(\"SPHERICAL_HARMONICS\", this.useSphericalHarmonics, !0), i.setValue(\"GAMMAREFLECTION\", s.gammaSpace, !0), i.setValue(\"RGBDREFLECTION\", s.isRGBD, !0), s && s.coordinatesMode !== X.SKYBOX_MODE && s.isCube && (i.setValue(\"USESPHERICALFROMREFLECTIONMAP\", !0), i.setValue(\"USEIRRADIANCEMAP\", !1), this.forceIrradianceInFragment || this._scene.getEngine().getCaps().maxVaryingVectors <= 8 ? i.setValue(\"USESPHERICALINVERTEX\", !1) : i.setValue(\"USESPHERICALINVERTEX\", !0)));\n }\n bind(e, t, i, s) {\n super.bind(e, t, i);\n const r = this._getTexture();\n if (!r || !s)\n return;\n r.isCube ? e.setTexture(this._cubeSamplerName, r) : e.setTexture(this._2DSamplerName, r);\n const n = r.getSize().width;\n e.setFloat3(this._vReflectionMicrosurfaceInfosName, n, r.lodGenerationScale, r.lodGenerationOffset), e.setFloat2(this._vReflectionFilteringInfoName, n, Re.Log2(n));\n const o = s.materialDefines, l = r.sphericalPolynomial;\n if (o.USESPHERICALFROMREFLECTIONMAP && l)\n if (o.SPHERICAL_HARMONICS) {\n const h = l.preScaledHarmonics;\n e.setVector3(\"vSphericalL00\", h.l00), e.setVector3(\"vSphericalL1_1\", h.l1_1), e.setVector3(\"vSphericalL10\", h.l10), e.setVector3(\"vSphericalL11\", h.l11), e.setVector3(\"vSphericalL2_2\", h.l2_2), e.setVector3(\"vSphericalL2_1\", h.l2_1), e.setVector3(\"vSphericalL20\", h.l20), e.setVector3(\"vSphericalL21\", h.l21), e.setVector3(\"vSphericalL22\", h.l22);\n } else\n e.setFloat3(\"vSphericalX\", l.x.x, l.x.y, l.x.z), e.setFloat3(\"vSphericalY\", l.y.x, l.y.y, l.y.z), e.setFloat3(\"vSphericalZ\", l.z.x, l.z.y, l.z.z), e.setFloat3(\"vSphericalXX_ZZ\", l.xx.x - l.zz.x, l.xx.y - l.zz.y, l.xx.z - l.zz.z), e.setFloat3(\"vSphericalYY_ZZ\", l.yy.x - l.zz.x, l.yy.y - l.zz.y, l.yy.z - l.zz.z), e.setFloat3(\"vSphericalZZ\", l.zz.x, l.zz.y, l.zz.z), e.setFloat3(\"vSphericalXY\", l.xy.x, l.xy.y, l.xy.z), e.setFloat3(\"vSphericalYZ\", l.yz.x, l.yz.y, l.yz.z), e.setFloat3(\"vSphericalZX\", l.zx.x, l.zx.y, l.zx.z);\n }\n /**\n * Gets the code to inject in the vertex shader\n * @param state current state of the node material building\n * @returns the shader code\n */\n handleVertexSide(e) {\n let t = super.handleVertexSide(e);\n e._emitFunctionFromInclude(\"harmonicsFunctions\", `//${this.name}`, {\n replaceStrings: [\n { search: /uniform vec3 vSphericalL00;[\\s\\S]*?uniform vec3 vSphericalL22;/g, replace: \"\" },\n { search: /uniform vec3 vSphericalX;[\\s\\S]*?uniform vec3 vSphericalZX;/g, replace: \"\" }\n ]\n });\n const i = e._getFreeVariableName(\"reflectionVector\");\n return this._vEnvironmentIrradianceName = e._getFreeVariableName(\"vEnvironmentIrradiance\"), e._emitVaryingFromString(this._vEnvironmentIrradianceName, A.Vector3, \"defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\"), e._emitUniformFromString(\"vSphericalL00\", A.Vector3, \"SPHERICAL_HARMONICS\"), e._emitUniformFromString(\"vSphericalL1_1\", A.Vector3, \"SPHERICAL_HARMONICS\"), e._emitUniformFromString(\"vSphericalL10\", A.Vector3, \"SPHERICAL_HARMONICS\"), e._emitUniformFromString(\"vSphericalL11\", A.Vector3, \"SPHERICAL_HARMONICS\"), e._emitUniformFromString(\"vSphericalL2_2\", A.Vector3, \"SPHERICAL_HARMONICS\"), e._emitUniformFromString(\"vSphericalL2_1\", A.Vector3, \"SPHERICAL_HARMONICS\"), e._emitUniformFromString(\"vSphericalL20\", A.Vector3, \"SPHERICAL_HARMONICS\"), e._emitUniformFromString(\"vSphericalL21\", A.Vector3, \"SPHERICAL_HARMONICS\"), e._emitUniformFromString(\"vSphericalL22\", A.Vector3, \"SPHERICAL_HARMONICS\"), e._emitUniformFromString(\"vSphericalX\", A.Vector3, \"SPHERICAL_HARMONICS\", !0), e._emitUniformFromString(\"vSphericalY\", A.Vector3, \"SPHERICAL_HARMONICS\", !0), e._emitUniformFromString(\"vSphericalZ\", A.Vector3, \"SPHERICAL_HARMONICS\", !0), e._emitUniformFromString(\"vSphericalXX_ZZ\", A.Vector3, \"SPHERICAL_HARMONICS\", !0), e._emitUniformFromString(\"vSphericalYY_ZZ\", A.Vector3, \"SPHERICAL_HARMONICS\", !0), e._emitUniformFromString(\"vSphericalZZ\", A.Vector3, \"SPHERICAL_HARMONICS\", !0), e._emitUniformFromString(\"vSphericalXY\", A.Vector3, \"SPHERICAL_HARMONICS\", !0), e._emitUniformFromString(\"vSphericalYZ\", A.Vector3, \"SPHERICAL_HARMONICS\", !0), e._emitUniformFromString(\"vSphericalZX\", A.Vector3, \"SPHERICAL_HARMONICS\", !0), t += `#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\n vec3 ${i} = vec3(${this._reflectionMatrixName} * vec4(normalize(${this.worldNormal.associatedVariableName}).xyz, 0)).xyz;\n #ifdef ${this._defineOppositeZ}\n ${i}.z *= -1.0;\n #endif\n ${this._vEnvironmentIrradianceName} = computeEnvironmentIrradiance(${i});\n #endif\n`, t;\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param state current state of the node material building\n * @param normalVarName name of the existing variable corresponding to the normal\n * @returns the shader code\n */\n getCode(e, t) {\n let i = \"\";\n this.handleFragmentSideInits(e), e._emitFunctionFromInclude(\"harmonicsFunctions\", `//${this.name}`, {\n replaceStrings: [\n { search: /uniform vec3 vSphericalL00;[\\s\\S]*?uniform vec3 vSphericalL22;/g, replace: \"\" },\n { search: /uniform vec3 vSphericalX;[\\s\\S]*?uniform vec3 vSphericalZX;/g, replace: \"\" }\n ]\n }), e._emitFunction(\"sampleReflection\", `\n #ifdef ${this._define3DName}\n #define sampleReflection(s, c) textureCube(s, c)\n #else\n #define sampleReflection(s, c) texture2D(s, c)\n #endif\n`, `//${this.name}`), e._emitFunction(\"sampleReflectionLod\", `\n #ifdef ${this._define3DName}\n #define sampleReflectionLod(s, c, l) textureCubeLodEXT(s, c, l)\n #else\n #define sampleReflectionLod(s, c, l) texture2DLodEXT(s, c, l)\n #endif\n`, `//${this.name}`);\n const s = `\n vec3 computeReflectionCoordsPBR(vec4 worldPos, vec3 worldNormal) {\n ${this.handleFragmentSideCodeReflectionCoords(e, \"worldNormal\", \"worldPos\", !0, !0)}\n return ${this._reflectionVectorName};\n }\n`;\n return e._emitFunction(\"computeReflectionCoordsPBR\", s, `//${this.name}`), this._vReflectionMicrosurfaceInfosName = e._getFreeVariableName(\"vReflectionMicrosurfaceInfos\"), e._emitUniformFromString(this._vReflectionMicrosurfaceInfosName, A.Vector3), this._vReflectionInfosName = e._getFreeVariableName(\"vReflectionInfos\"), this._vReflectionFilteringInfoName = e._getFreeVariableName(\"vReflectionFilteringInfo\"), e._emitUniformFromString(this._vReflectionFilteringInfoName, A.Vector2), i += `#ifdef REFLECTION\n vec2 ${this._vReflectionInfosName} = vec2(1., 0.);\n\n reflectionOutParams reflectionOut;\n\n reflectionBlock(\n ${this.generateOnlyFragmentCode ? this._worldPositionNameInFragmentOnlyMode : \"v_\" + this.worldPosition.associatedVariableName}.xyz,\n ${t},\n alphaG,\n ${this._vReflectionMicrosurfaceInfosName},\n ${this._vReflectionInfosName},\n ${this.reflectionColor},\n #ifdef ANISOTROPIC\n anisotropicOut,\n #endif\n #if defined(${this._defineLODReflectionAlpha}) && !defined(${this._defineSkyboxName})\n NdotVUnclamped,\n #endif\n #ifdef ${this._defineLinearSpecularReflection}\n roughness,\n #endif\n #ifdef ${this._define3DName}\n ${this._cubeSamplerName},\n #else\n ${this._2DSamplerName},\n #endif\n #if defined(NORMAL) && defined(USESPHERICALINVERTEX)\n ${this._vEnvironmentIrradianceName},\n #endif\n #ifdef USESPHERICALFROMREFLECTIONMAP\n #if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\n ${this._reflectionMatrixName},\n #endif\n #endif\n #ifdef USEIRRADIANCEMAP\n irradianceSampler, // ** not handled **\n #endif\n #ifndef LODBASEDMICROSFURACE\n #ifdef ${this._define3DName}\n ${this._cubeSamplerName},\n ${this._cubeSamplerName},\n #else\n ${this._2DSamplerName},\n ${this._2DSamplerName},\n #endif\n #endif\n #ifdef REALTIME_FILTERING\n ${this._vReflectionFilteringInfoName},\n #endif\n reflectionOut\n );\n #endif\n`, i;\n }\n _buildBlock(e) {\n return this._scene = e.sharedData.scene, e.target !== B.Fragment && (this._defineLODReflectionAlpha = e._getFreeDefineName(\"LODINREFLECTIONALPHA\"), this._defineLinearSpecularReflection = e._getFreeDefineName(\"LINEARSPECULARREFLECTION\")), this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return this.texture && (e += `${this._codeVariableName}.texture.gammaSpace = ${this.texture.gammaSpace};\n`), e += `${this._codeVariableName}.useSphericalHarmonics = ${this.useSphericalHarmonics};\n`, e += `${this._codeVariableName}.forceIrradianceInFragment = ${this.forceIrradianceInFragment};\n`, e;\n }\n serialize() {\n var t;\n const e = super.serialize();\n return e.useSphericalHarmonics = this.useSphericalHarmonics, e.forceIrradianceInFragment = this.forceIrradianceInFragment, e.gammaSpace = ((t = this.texture) == null ? void 0 : t.gammaSpace) ?? !0, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.useSphericalHarmonics = e.useSphericalHarmonics, this.forceIrradianceInFragment = e.forceIrradianceInFragment, this.texture && (this.texture.gammaSpace = e.gammaSpace);\n }\n}\ny([\n ze(\"Spherical Harmonics\", 0, \"ADVANCED\", { notifiers: { update: !0 } })\n], $l.prototype, \"useSphericalHarmonics\", void 0);\ny([\n ze(\"Force irradiance in fragment\", 0, \"ADVANCED\", { notifiers: { update: !0 } })\n], $l.prototype, \"forceIrradianceInFragment\", void 0);\nU(\"BABYLON.ReflectionBlock\", $l);\nclass Dl extends Ge {\n /**\n * Create a new ClearCoatBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this._tangentCorrectionFactorName = \"\", this.remapF0OnInterfaceChange = !0, this._isUnique = !0, this.registerInput(\"intensity\", A.Float, !1, B.Fragment), this.registerInput(\"roughness\", A.Float, !0, B.Fragment), this.registerInput(\"indexOfRefraction\", A.Float, !0, B.Fragment), this.registerInput(\"normalMapColor\", A.Color3, !0, B.Fragment), this.registerInput(\"uv\", A.Vector2, !0, B.Fragment), this.registerInput(\"tintColor\", A.Color3, !0, B.Fragment), this.registerInput(\"tintAtDistance\", A.Float, !0, B.Fragment), this.registerInput(\"tintThickness\", A.Float, !0, B.Fragment), this.registerInput(\"worldTangent\", A.Vector4, !0), this.registerInput(\"worldNormal\", A.AutoDetect, !0), this.worldNormal.addExcludedConnectionPointFromAllowedTypes(A.Color4 | A.Vector4 | A.Vector3), this.registerInput(\"TBN\", A.Object, !0, B.VertexAndFragment, new Bi(\"TBN\", this, 0, Hl, \"TBNBlock\")), this.registerOutput(\"clearcoat\", A.Object, B.Fragment, new Bi(\"clearcoat\", this, 1, Dl, \"ClearCoatBlock\"));\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"clearcoatOut\"), e._excludeVariableName(\"vClearCoatParams\"), e._excludeVariableName(\"vClearCoatTintParams\"), e._excludeVariableName(\"vClearCoatRefractionParams\"), e._excludeVariableName(\"vClearCoatTangentSpaceParams\"), e._excludeVariableName(\"vGeometricNormaClearCoatW\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ClearCoatBlock\";\n }\n /**\n * Gets the intensity input component\n */\n get intensity() {\n return this._inputs[0];\n }\n /**\n * Gets the roughness input component\n */\n get roughness() {\n return this._inputs[1];\n }\n /**\n * Gets the ior input component\n */\n get indexOfRefraction() {\n return this._inputs[2];\n }\n /**\n * Gets the bump texture input component\n */\n get normalMapColor() {\n return this._inputs[3];\n }\n /**\n * Gets the uv input component\n */\n get uv() {\n return this._inputs[4];\n }\n /**\n * Gets the tint color input component\n */\n get tintColor() {\n return this._inputs[5];\n }\n /**\n * Gets the tint \"at distance\" input component\n */\n get tintAtDistance() {\n return this._inputs[6];\n }\n /**\n * Gets the tint thickness input component\n */\n get tintThickness() {\n return this._inputs[7];\n }\n /**\n * Gets the world tangent input component\n */\n get worldTangent() {\n return this._inputs[8];\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this._inputs[9];\n }\n /**\n * Gets the TBN input component\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n get TBN() {\n return this._inputs[10];\n }\n /**\n * Gets the clear coat object output component\n */\n get clearcoat() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.intensity.isConnected) {\n const e = new ot(\"ClearCoat intensity\", B.Fragment, A.Float);\n e.value = 1, e.output.connectTo(this.intensity);\n }\n }\n prepareDefines(e, t, i) {\n super.prepareDefines(e, t, i), i.setValue(\"CLEARCOAT\", !0), i.setValue(\"CLEARCOAT_TEXTURE\", !1, !0), i.setValue(\"CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE\", !0, !0), i.setValue(\"CLEARCOAT_TINT\", this.tintColor.isConnected || this.tintThickness.isConnected || this.tintAtDistance.isConnected, !0), i.setValue(\"CLEARCOAT_BUMP\", this.normalMapColor.isConnected, !0), i.setValue(\"CLEARCOAT_DEFAULTIOR\", this.indexOfRefraction.isConnected ? this.indexOfRefraction.connectInputBlock.value === ws._DefaultIndexOfRefraction : !0, !0), i.setValue(\"CLEARCOAT_REMAP_F0\", this.remapF0OnInterfaceChange, !0);\n }\n bind(e, t, i) {\n var u;\n super.bind(e, t, i);\n const s = ((u = this.indexOfRefraction.connectInputBlock) == null ? void 0 : u.value) ?? ws._DefaultIndexOfRefraction, r = 1 - s, n = 1 + s, o = Math.pow(-r / n, 2), l = 1 / s;\n e.setFloat4(\"vClearCoatRefractionParams\", o, l, r, n);\n const h = this.clearcoat.hasEndpoints ? this.clearcoat.endpoints[0].ownerBlock : null, c = h != null && h.perturbedNormal.isConnected ? h.perturbedNormal.connectedPoint.ownerBlock : null;\n this._scene._mirroredCameraPosition ? e.setFloat2(\"vClearCoatTangentSpaceParams\", c != null && c.invertX ? 1 : -1, c != null && c.invertY ? 1 : -1) : e.setFloat2(\"vClearCoatTangentSpaceParams\", c != null && c.invertX ? -1 : 1, c != null && c.invertY ? -1 : 1), i && e.setFloat(this._tangentCorrectionFactorName, i.getWorldMatrix().determinant() < 0 ? -1 : 1);\n }\n _generateTBNSpace(e, t, i) {\n let s = \"\";\n const r = `//${this.name}`, n = this.worldTangent;\n e._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\");\n const o = { search: /defined\\(TANGENT\\)/g, replace: n.isConnected ? \"defined(TANGENT)\" : \"defined(IGNORE)\" }, l = this.TBN;\n return l.isConnected ? e.compilationString += `\n #ifdef TBNBLOCK\n mat3 vTBN = ${l.associatedVariableName};\n #endif\n ` : n.isConnected && (s += `vec3 tbnNormal = normalize(${i}.xyz);\n`, s += `vec3 tbnTangent = normalize(${n.associatedVariableName}.xyz);\n`, s += `vec3 tbnBitangent = cross(tbnNormal, tbnTangent) * ${this._tangentCorrectionFactorName};\n`, s += `mat3 vTBN = mat3(tbnTangent, tbnBitangent, tbnNormal);\n`), e._emitFunctionFromInclude(\"bumpFragmentMainFunctions\", r, {\n replaceStrings: [o]\n }), s;\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param state current state of the node material building\n * @param ccBlock instance of a ClearCoatBlock or null if the code must be generated without an active clear coat module\n * @param reflectionBlock instance of a ReflectionBlock null if the code must be generated without an active reflection module\n * @param worldPosVarName name of the variable holding the world position\n * @param generateTBNSpace if true, the code needed to create the TBN coordinate space is generated\n * @param vTBNAvailable indicate that the vTBN variable is already existing because it has already been generated by another block (PerturbNormal or Anisotropy)\n * @param worldNormalVarName name of the variable holding the world normal\n * @returns the shader code\n */\n static GetCode(e, t, i, s, r, n, o) {\n let l = \"\";\n const h = t != null && t.intensity.isConnected ? t.intensity.associatedVariableName : \"1.\", c = t != null && t.roughness.isConnected ? t.roughness.associatedVariableName : \"0.\", u = t != null && t.normalMapColor.isConnected ? t.normalMapColor.associatedVariableName : \"vec3(0.)\", d = t != null && t.uv.isConnected ? t.uv.associatedVariableName : \"vec2(0.)\", f = t != null && t.tintColor.isConnected ? t.tintColor.associatedVariableName : \"vec3(1.)\", p = t != null && t.tintThickness.isConnected ? t.tintThickness.associatedVariableName : \"1.\", _ = t != null && t.tintAtDistance.isConnected ? t.tintAtDistance.associatedVariableName : \"1.\", m = \"vec4(0.)\";\n if (t) {\n e._emitUniformFromString(\"vClearCoatRefractionParams\", A.Vector4), e._emitUniformFromString(\"vClearCoatTangentSpaceParams\", A.Vector2);\n const x = t.worldNormal;\n l += `vec3 vGeometricNormaClearCoatW = ${x.isConnected ? \"normalize(\" + x.associatedVariableName + \".xyz)\" : \"geometricNormalW\"};\n`;\n } else\n l += `vec3 vGeometricNormaClearCoatW = geometricNormalW;\n`;\n return r && t && (l += t._generateTBNSpace(e, s, o), n = t.worldTangent.isConnected), l += `clearcoatOutParams clearcoatOut;\n\n #ifdef CLEARCOAT\n vec2 vClearCoatParams = vec2(${h}, ${c});\n vec4 vClearCoatTintParams = vec4(${f}, ${p});\n\n clearcoatBlock(\n ${s}.xyz,\n vGeometricNormaClearCoatW,\n viewDirectionW,\n vClearCoatParams,\n specularEnvironmentR0,\n #ifdef CLEARCOAT_TEXTURE\n vec2(0.),\n #endif\n #ifdef CLEARCOAT_TINT\n vClearCoatTintParams,\n ${_},\n vClearCoatRefractionParams,\n #ifdef CLEARCOAT_TINT_TEXTURE\n ${m},\n #endif\n #endif\n #ifdef CLEARCOAT_BUMP\n vec2(0., 1.),\n vec4(${u}, 0.),\n ${d},\n #if defined(${n ? \"TANGENT\" : \"IGNORE\"}) && defined(NORMAL)\n vTBN,\n #else\n vClearCoatTangentSpaceParams,\n #endif\n #ifdef OBJECTSPACE_NORMALMAP\n normalMatrix,\n #endif\n #endif\n #if defined(FORCENORMALFORWARD) && defined(NORMAL)\n faceNormal,\n #endif\n #ifdef REFLECTION\n ${i == null ? void 0 : i._vReflectionMicrosurfaceInfosName},\n ${i == null ? void 0 : i._vReflectionInfosName},\n ${i == null ? void 0 : i.reflectionColor},\n vLightingIntensity,\n #ifdef ${i == null ? void 0 : i._define3DName}\n ${i == null ? void 0 : i._cubeSamplerName},\n #else\n ${i == null ? void 0 : i._2DSamplerName},\n #endif\n #ifndef LODBASEDMICROSFURACE\n #ifdef ${i == null ? void 0 : i._define3DName}\n ${i == null ? void 0 : i._cubeSamplerName},\n ${i == null ? void 0 : i._cubeSamplerName},\n #else\n ${i == null ? void 0 : i._2DSamplerName},\n ${i == null ? void 0 : i._2DSamplerName},\n #endif\n #endif\n #endif\n #if defined(ENVIRONMENTBRDF) && !defined(${i == null ? void 0 : i._defineSkyboxName})\n #ifdef RADIANCEOCCLUSION\n ambientMonochrome,\n #endif\n #endif\n #if defined(CLEARCOAT_BUMP) || defined(TWOSIDEDLIGHTING)\n (gl_FrontFacing ? 1. : -1.),\n #endif\n clearcoatOut\n );\n #else\n clearcoatOut.specularEnvironmentR0 = specularEnvironmentR0;\n #endif\n`, l;\n }\n _buildBlock(e) {\n return this._scene = e.sharedData.scene, e.target === B.Fragment && (e.sharedData.bindableBlocks.push(this), e.sharedData.blocksWithDefines.push(this), this._tangentCorrectionFactorName = e._getFreeDefineName(\"tangentCorrectionFactor\"), e._emitUniformFromString(this._tangentCorrectionFactorName, A.Float)), this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return e += `${this._codeVariableName}.remapF0OnInterfaceChange = ${this.remapF0OnInterfaceChange};\n`, e;\n }\n serialize() {\n const e = super.serialize();\n return e.remapF0OnInterfaceChange = this.remapF0OnInterfaceChange, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.remapF0OnInterfaceChange = e.remapF0OnInterfaceChange ?? !0;\n }\n}\ny([\n ze(\"Remap F0 on interface change\", 0, \"ADVANCED\")\n], Dl.prototype, \"remapF0OnInterfaceChange\", void 0);\nU(\"BABYLON.ClearCoatBlock\", Dl);\nclass yu extends Ge {\n /**\n * Create a new IridescenceBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this._isUnique = !0, this.registerInput(\"intensity\", A.Float, !0, B.Fragment), this.registerInput(\"indexOfRefraction\", A.Float, !0, B.Fragment), this.registerInput(\"thickness\", A.Float, !0, B.Fragment), this.registerOutput(\"iridescence\", A.Object, B.Fragment, new Bi(\"iridescence\", this, 1, yu, \"IridescenceBlock\"));\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"iridescenceOut\"), e._excludeVariableName(\"vIridescenceParams\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"IridescenceBlock\";\n }\n /**\n * Gets the intensity input component\n */\n get intensity() {\n return this._inputs[0];\n }\n /**\n * Gets the indexOfRefraction input component\n */\n get indexOfRefraction() {\n return this._inputs[1];\n }\n /**\n * Gets the thickness input component\n */\n get thickness() {\n return this._inputs[2];\n }\n /**\n * Gets the iridescence object output component\n */\n get iridescence() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.intensity.isConnected) {\n const e = new ot(\"Iridescence intensity\", B.Fragment, A.Float);\n e.value = 1, e.output.connectTo(this.intensity);\n const t = new ot(\"Iridescence ior\", B.Fragment, A.Float);\n t.value = 1.3, t.output.connectTo(this.indexOfRefraction);\n const i = new ot(\"Iridescence thickness\", B.Fragment, A.Float);\n i.value = 400, i.output.connectTo(this.thickness);\n }\n }\n prepareDefines(e, t, i) {\n super.prepareDefines(e, t, i), i.setValue(\"IRIDESCENCE\", !0, !0), i.setValue(\"IRIDESCENCE_TEXTURE\", !1, !0), i.setValue(\"IRIDESCENCE_THICKNESS_TEXTURE\", !1, !0);\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param iridescenceBlock instance of a IridescenceBlock or null if the code must be generated without an active iridescence module\n * @returns the shader code\n */\n static GetCode(e) {\n let t = \"\";\n const i = e != null && e.intensity.isConnected ? e.intensity.associatedVariableName : \"1.\", s = e != null && e.indexOfRefraction.isConnected ? e.indexOfRefraction.associatedVariableName : Sr._DefaultIndexOfRefraction, r = e != null && e.thickness.isConnected ? e.thickness.associatedVariableName : Sr._DefaultMaximumThickness;\n return t += `iridescenceOutParams iridescenceOut;\n\n #ifdef IRIDESCENCE\n iridescenceBlock(\n vec4(${i}, ${s}, 1., ${r}),\n NdotV,\n specularEnvironmentR0,\n #ifdef CLEARCOAT\n NdotVUnclamped,\n #endif\n iridescenceOut\n );\n\n float iridescenceIntensity = iridescenceOut.iridescenceIntensity;\n specularEnvironmentR0 = iridescenceOut.specularEnvironmentR0;\n #endif\n`, t;\n }\n _buildBlock(e) {\n return e.target === B.Fragment && (e.sharedData.bindableBlocks.push(this), e.sharedData.blocksWithDefines.push(this)), this;\n }\n serialize() {\n return super.serialize();\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i);\n }\n}\nU(\"BABYLON.IridescenceBlock\", yu);\nclass al extends Ge {\n /**\n * Create a new RefractionBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this.linkRefractionWithTransparency = !1, this.invertRefractionY = !1, this.useThicknessAsDepth = !1, this._isUnique = !0, this.registerInput(\"intensity\", A.Float, !1, B.Fragment), this.registerInput(\"tintAtDistance\", A.Float, !0, B.Fragment), this.registerInput(\"volumeIndexOfRefraction\", A.Float, !0, B.Fragment), this.registerOutput(\"refraction\", A.Object, B.Fragment, new Bi(\"refraction\", this, 1, al, \"RefractionBlock\"));\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"vRefractionPosition\"), e._excludeVariableName(\"vRefractionSize\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RefractionBlock\";\n }\n /**\n * Gets the intensity input component\n */\n get intensity() {\n return this._inputs[0];\n }\n /**\n * Gets the tint at distance input component\n */\n get tintAtDistance() {\n return this._inputs[1];\n }\n /**\n * Gets the volume index of refraction input component\n */\n get volumeIndexOfRefraction() {\n return this._inputs[2];\n }\n /**\n * Gets the view input component\n */\n get view() {\n return this.viewConnectionPoint;\n }\n /**\n * Gets the refraction object output component\n */\n get refraction() {\n return this._outputs[0];\n }\n /**\n * Returns true if the block has a texture\n */\n get hasTexture() {\n return !!this._getTexture();\n }\n _getTexture() {\n return this.texture ? this.texture : this._scene.environmentTexture;\n }\n autoConfigure(e, t = () => !0) {\n if (!this.intensity.isConnected) {\n const i = new ot(\"Refraction intensity\", B.Fragment, A.Float);\n i.value = 1, i.output.connectTo(this.intensity);\n }\n if (this.view && !this.view.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.systemValue === ct.View && t(s));\n i || (i = new ot(\"view\"), i.setAsSystemValue(ct.View)), i.output.connectTo(this.view);\n }\n }\n prepareDefines(e, t, i) {\n super.prepareDefines(e, t, i);\n const s = this._getTexture(), r = s && s.getTextureMatrix;\n i.setValue(\"SS_REFRACTION\", r, !0), r && (i.setValue(this._define3DName, s.isCube, !0), i.setValue(this._defineLODRefractionAlpha, s.lodLevelInAlpha, !0), i.setValue(this._defineLinearSpecularRefraction, s.linearSpecularLOD, !0), i.setValue(this._defineOppositeZ, this._scene.useRightHandedSystem && s.isCube ? !s.invertZ : s.invertZ, !0), i.setValue(\"SS_LINKREFRACTIONTOTRANSPARENCY\", this.linkRefractionWithTransparency, !0), i.setValue(\"SS_GAMMAREFRACTION\", s.gammaSpace, !0), i.setValue(\"SS_RGBDREFRACTION\", s.isRGBD, !0), i.setValue(\"SS_USE_LOCAL_REFRACTIONMAP_CUBIC\", !!s.boundingBoxSize, !0), i.setValue(\"SS_USE_THICKNESS_AS_DEPTH\", this.useThicknessAsDepth, !0));\n }\n isReady() {\n const e = this._getTexture();\n return !(e && !e.isReadyOrNotBlocking());\n }\n bind(e, t, i) {\n var l, h;\n super.bind(e, t, i);\n const s = this._getTexture();\n if (!s)\n return;\n s.isCube ? e.setTexture(this._cubeSamplerName, s) : e.setTexture(this._2DSamplerName, s), e.setMatrix(this._refractionMatrixName, s.getRefractionTextureMatrix());\n let r = 1;\n s.isCube || s.depth && (r = s.depth);\n const n = ((l = this.volumeIndexOfRefraction.connectInputBlock) == null ? void 0 : l.value) ?? ((h = this.indexOfRefractionConnectionPoint.connectInputBlock) == null ? void 0 : h.value) ?? 1.5;\n e.setFloat4(this._vRefractionInfosName, s.level, 1 / n, r, this.invertRefractionY ? -1 : 1), e.setFloat4(this._vRefractionMicrosurfaceInfosName, s.getSize().width, s.lodGenerationScale, s.lodGenerationOffset, 1 / n);\n const o = s.getSize().width;\n if (e.setFloat2(this._vRefractionFilteringInfoName, o, Re.Log2(o)), s.boundingBoxSize) {\n const c = s;\n e.setVector3(\"vRefractionPosition\", c.boundingBoxPosition), e.setVector3(\"vRefractionSize\", c.boundingBoxSize);\n }\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param state current state of the node material building\n * @returns the shader code\n */\n getCode(e) {\n const t = \"\";\n return e.sharedData.blockingBlocks.push(this), e.sharedData.textureBlocks.push(this), this._cubeSamplerName = e._getFreeVariableName(this.name + \"CubeSampler\"), e.samplers.push(this._cubeSamplerName), this._2DSamplerName = e._getFreeVariableName(this.name + \"2DSampler\"), e.samplers.push(this._2DSamplerName), this._define3DName = e._getFreeDefineName(\"SS_REFRACTIONMAP_3D\"), e._samplerDeclaration += `#ifdef ${this._define3DName}\n`, e._samplerDeclaration += `uniform samplerCube ${this._cubeSamplerName};\n`, e._samplerDeclaration += `#else\n`, e._samplerDeclaration += `uniform sampler2D ${this._2DSamplerName};\n`, e._samplerDeclaration += `#endif\n`, e.sharedData.blocksWithDefines.push(this), e.sharedData.bindableBlocks.push(this), this._defineLODRefractionAlpha = e._getFreeDefineName(\"SS_LODINREFRACTIONALPHA\"), this._defineLinearSpecularRefraction = e._getFreeDefineName(\"SS_LINEARSPECULARREFRACTION\"), this._defineOppositeZ = e._getFreeDefineName(\"SS_REFRACTIONMAP_OPPOSITEZ\"), this._refractionMatrixName = e._getFreeVariableName(\"refractionMatrix\"), e._emitUniformFromString(this._refractionMatrixName, A.Matrix), e._emitFunction(\"sampleRefraction\", `\n #ifdef ${this._define3DName}\n #define sampleRefraction(s, c) textureCube(s, c)\n #else\n #define sampleRefraction(s, c) texture2D(s, c)\n #endif\n`, `//${this.name}`), e._emitFunction(\"sampleRefractionLod\", `\n #ifdef ${this._define3DName}\n #define sampleRefractionLod(s, c, l) textureCubeLodEXT(s, c, l)\n #else\n #define sampleRefractionLod(s, c, l) texture2DLodEXT(s, c, l)\n #endif\n`, `//${this.name}`), this._vRefractionMicrosurfaceInfosName = e._getFreeVariableName(\"vRefractionMicrosurfaceInfos\"), e._emitUniformFromString(this._vRefractionMicrosurfaceInfosName, A.Vector4), this._vRefractionInfosName = e._getFreeVariableName(\"vRefractionInfos\"), e._emitUniformFromString(this._vRefractionInfosName, A.Vector4), this._vRefractionFilteringInfoName = e._getFreeVariableName(\"vRefractionFilteringInfo\"), e._emitUniformFromString(this._vRefractionFilteringInfoName, A.Vector2), e._emitUniformFromString(\"vRefractionPosition\", A.Vector3), e._emitUniformFromString(\"vRefractionSize\", A.Vector3), t;\n }\n _buildBlock(e) {\n return this._scene = e.sharedData.scene, this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return this.texture && (this.texture.isCube ? e = `${this._codeVariableName}.texture = new BABYLON.CubeTexture(\"${this.texture.name}\");\n` : e = `${this._codeVariableName}.texture = new BABYLON.Texture(\"${this.texture.name}\");\n`, e += `${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};\n`), e += `${this._codeVariableName}.linkRefractionWithTransparency = ${this.linkRefractionWithTransparency};\n`, e += `${this._codeVariableName}.invertRefractionY = ${this.invertRefractionY};\n`, e += `${this._codeVariableName}.useThicknessAsDepth = ${this.useThicknessAsDepth};\n`, e;\n }\n serialize() {\n const e = super.serialize();\n return this.texture && !this.texture.isRenderTarget && (e.texture = this.texture.serialize()), e.linkRefractionWithTransparency = this.linkRefractionWithTransparency, e.invertRefractionY = this.invertRefractionY, e.useThicknessAsDepth = this.useThicknessAsDepth, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), e.texture && (i = e.texture.url.indexOf(\"data:\") === 0 ? \"\" : i, e.texture.isCube ? this.texture = ps.Parse(e.texture, t, i) : this.texture = X.Parse(e.texture, t, i)), this.linkRefractionWithTransparency = e.linkRefractionWithTransparency, this.invertRefractionY = e.invertRefractionY, this.useThicknessAsDepth = !!e.useThicknessAsDepth;\n }\n}\ny([\n ze(\"Link refraction to transparency\", 0, \"ADVANCED\", { notifiers: { update: !0 } })\n], al.prototype, \"linkRefractionWithTransparency\", void 0);\ny([\n ze(\"Invert refraction Y\", 0, \"ADVANCED\", { notifiers: { update: !0 } })\n], al.prototype, \"invertRefractionY\", void 0);\ny([\n ze(\"Use thickness as depth\", 0, \"ADVANCED\", { notifiers: { update: !0 } })\n], al.prototype, \"useThicknessAsDepth\", void 0);\nU(\"BABYLON.RefractionBlock\", al);\nclass rc extends Ge {\n /**\n * Create a new SubSurfaceBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Fragment), this._isUnique = !0, this.registerInput(\"thickness\", A.Float, !1, B.Fragment), this.registerInput(\"tintColor\", A.Color3, !0, B.Fragment), this.registerInput(\"translucencyIntensity\", A.Float, !0, B.Fragment), this.registerInput(\"translucencyDiffusionDist\", A.Color3, !0, B.Fragment), this.registerInput(\"refraction\", A.Object, !0, B.Fragment, new Bi(\"refraction\", this, 0, al, \"RefractionBlock\")), this.registerInput(\"dispersion\", A.Float, !0, B.Fragment), this.registerOutput(\"subsurface\", A.Object, B.Fragment, new Bi(\"subsurface\", this, 1, rc, \"SubSurfaceBlock\"));\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"subSurfaceOut\"), e._excludeVariableName(\"vThicknessParam\"), e._excludeVariableName(\"vTintColor\"), e._excludeVariableName(\"vTranslucencyColor\"), e._excludeVariableName(\"vSubSurfaceIntensity\"), e._excludeVariableName(\"dispersion\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SubSurfaceBlock\";\n }\n /**\n * Gets the thickness component\n */\n get thickness() {\n return this._inputs[0];\n }\n /**\n * Gets the tint color input component\n */\n get tintColor() {\n return this._inputs[1];\n }\n /**\n * Gets the translucency intensity input component\n */\n get translucencyIntensity() {\n return this._inputs[2];\n }\n /**\n * Gets the translucency diffusion distance input component\n */\n get translucencyDiffusionDist() {\n return this._inputs[3];\n }\n /**\n * Gets the refraction object parameters\n */\n get refraction() {\n return this._inputs[4];\n }\n /**\n * Gets the dispersion input component\n */\n get dispersion() {\n return this._inputs[5];\n }\n /**\n * Gets the sub surface object output component\n */\n get subsurface() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.thickness.isConnected) {\n const e = new ot(\"SubSurface thickness\", B.Fragment, A.Float);\n e.value = 0, e.output.connectTo(this.thickness);\n }\n }\n prepareDefines(e, t, i) {\n super.prepareDefines(e, t, i);\n const s = this.translucencyDiffusionDist.isConnected || this.translucencyIntensity.isConnected;\n i.setValue(\"SUBSURFACE\", s || this.refraction.isConnected, !0), i.setValue(\"SS_TRANSLUCENCY\", s, !0), i.setValue(\"SS_THICKNESSANDMASK_TEXTURE\", !1, !0), i.setValue(\"SS_REFRACTIONINTENSITY_TEXTURE\", !1, !0), i.setValue(\"SS_TRANSLUCENCYINTENSITY_TEXTURE\", !1, !0), i.setValue(\"SS_USE_GLTF_TEXTURES\", !1, !0), i.setValue(\"SS_DISPERSION\", this.dispersion.isConnected, !0);\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param state current state of the node material building\n * @param ssBlock instance of a SubSurfaceBlock or null if the code must be generated without an active sub surface module\n * @param reflectionBlock instance of a ReflectionBlock null if the code must be generated without an active reflection module\n * @param worldPosVarName name of the variable holding the world position\n * @returns the shader code\n */\n static GetCode(e, t, i, s) {\n var _;\n let r = \"\";\n const n = t != null && t.thickness.isConnected ? t.thickness.associatedVariableName : \"0.\", o = t != null && t.tintColor.isConnected ? t.tintColor.associatedVariableName : \"vec3(1.)\", l = t != null && t.translucencyIntensity.isConnected ? t == null ? void 0 : t.translucencyIntensity.associatedVariableName : \"1.\", h = t != null && t.translucencyDiffusionDist.isConnected ? t == null ? void 0 : t.translucencyDiffusionDist.associatedVariableName : \"vec3(1.)\", c = t != null && t.refraction.isConnected ? (_ = t == null ? void 0 : t.refraction.connectedPoint) == null ? void 0 : _.ownerBlock : null, u = c != null && c.tintAtDistance.isConnected ? c.tintAtDistance.associatedVariableName : \"1.\", d = c != null && c.intensity.isConnected ? c.intensity.associatedVariableName : \"1.\", f = c != null && c.view.isConnected ? c.view.associatedVariableName : \"\", p = t != null && t.dispersion.isConnected ? t == null ? void 0 : t.dispersion.associatedVariableName : \"0.0\";\n return r += (c == null ? void 0 : c.getCode(e)) ?? \"\", r += `subSurfaceOutParams subSurfaceOut;\n\n #ifdef SUBSURFACE\n vec2 vThicknessParam = vec2(0., ${n});\n vec4 vTintColor = vec4(${o}, ${u});\n vec3 vSubSurfaceIntensity = vec3(${d}, ${l}, 0.);\n float dispersion = ${p};\n subSurfaceBlock(\n vSubSurfaceIntensity,\n vThicknessParam,\n vTintColor,\n normalW,\n specularEnvironmentReflectance,\n #ifdef SS_THICKNESSANDMASK_TEXTURE\n vec4(0.),\n #endif\n #ifdef REFLECTION\n #ifdef SS_TRANSLUCENCY\n ${i == null ? void 0 : i._reflectionMatrixName},\n #ifdef USESPHERICALFROMREFLECTIONMAP\n #if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\n reflectionOut.irradianceVector,\n #endif\n #if defined(REALTIME_FILTERING)\n ${i == null ? void 0 : i._cubeSamplerName},\n ${i == null ? void 0 : i._vReflectionFilteringInfoName},\n #endif\n #endif\n #ifdef USEIRRADIANCEMAP\n irradianceSampler,\n #endif\n #endif\n #endif\n #if defined(SS_REFRACTION) || defined(SS_TRANSLUCENCY)\n surfaceAlbedo,\n #endif\n #ifdef SS_REFRACTION\n ${s}.xyz,\n viewDirectionW,\n ${f},\n ${(c == null ? void 0 : c._vRefractionInfosName) ?? \"\"},\n ${(c == null ? void 0 : c._refractionMatrixName) ?? \"\"},\n ${(c == null ? void 0 : c._vRefractionMicrosurfaceInfosName) ?? \"\"},\n vLightingIntensity,\n #ifdef SS_LINKREFRACTIONTOTRANSPARENCY\n alpha,\n #endif\n #ifdef ${(c == null ? void 0 : c._defineLODRefractionAlpha) ?? \"IGNORE\"}\n NdotVUnclamped,\n #endif\n #ifdef ${(c == null ? void 0 : c._defineLinearSpecularRefraction) ?? \"IGNORE\"}\n roughness,\n #endif\n alphaG,\n #ifdef ${(c == null ? void 0 : c._define3DName) ?? \"IGNORE\"}\n ${(c == null ? void 0 : c._cubeSamplerName) ?? \"\"},\n #else\n ${(c == null ? void 0 : c._2DSamplerName) ?? \"\"},\n #endif\n #ifndef LODBASEDMICROSFURACE\n #ifdef ${(c == null ? void 0 : c._define3DName) ?? \"IGNORE\"}\n ${(c == null ? void 0 : c._cubeSamplerName) ?? \"\"},\n ${(c == null ? void 0 : c._cubeSamplerName) ?? \"\"},\n #else\n ${(c == null ? void 0 : c._2DSamplerName) ?? \"\"},\n ${(c == null ? void 0 : c._2DSamplerName) ?? \"\"},\n #endif\n #endif\n #ifdef ANISOTROPIC\n anisotropicOut,\n #endif\n #ifdef REALTIME_FILTERING\n ${(c == null ? void 0 : c._vRefractionFilteringInfoName) ?? \"\"},\n #endif\n #ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC\n vRefractionPosition,\n vRefractionSize,\n #endif\n #ifdef SS_DISPERSION\n dispersion,\n #endif\n #endif\n #ifdef SS_TRANSLUCENCY\n ${h},\n vTintColor,\n #ifdef SS_TRANSLUCENCYCOLOR_TEXTURE\n vec4(0.),\n #endif\n #endif\n subSurfaceOut\n );\n\n #ifdef SS_REFRACTION\n surfaceAlbedo = subSurfaceOut.surfaceAlbedo;\n #ifdef SS_LINKREFRACTIONTOTRANSPARENCY\n alpha = subSurfaceOut.alpha;\n #endif\n #endif\n #else\n subSurfaceOut.specularEnvironmentReflectance = specularEnvironmentReflectance;\n #endif\n`, r;\n }\n _buildBlock(e) {\n return e.target === B.Fragment && e.sharedData.blocksWithDefines.push(this), this;\n }\n}\nU(\"BABYLON.SubSurfaceBlock\", rc);\nconst NU = {\n ambientClr: [\"finalAmbient\", \"\"],\n diffuseDir: [\"finalDiffuse\", \"\"],\n specularDir: [\"finalSpecularScaled\", \"!defined(UNLIT) && defined(SPECULARTERM)\"],\n clearcoatDir: [\"finalClearCoatScaled\", \"!defined(UNLIT) && defined(CLEARCOAT)\"],\n sheenDir: [\"finalSheenScaled\", \"!defined(UNLIT) && defined(SHEEN)\"],\n diffuseInd: [\"finalIrradiance\", \"!defined(UNLIT) && defined(REFLECTION)\"],\n specularInd: [\"finalRadianceScaled\", \"!defined(UNLIT) && defined(REFLECTION)\"],\n clearcoatInd: [\"clearcoatOut.finalClearCoatRadianceScaled\", \"!defined(UNLIT) && defined(REFLECTION) && defined(CLEARCOAT)\"],\n sheenInd: [\"sheenOut.finalSheenRadianceScaled\", \"!defined(UNLIT) && defined(REFLECTION) && defined(SHEEN) && defined(ENVIRONMENTBRDF)\"],\n refraction: [\"subSurfaceOut.finalRefraction\", \"!defined(UNLIT) && defined(SS_REFRACTION)\"],\n lighting: [\"finalColor.rgb\", \"\"],\n shadow: [\"aggShadow\", \"\"],\n alpha: [\"alpha\", \"\"]\n};\nclass ms extends Ge {\n static _OnGenerateOnlyFragmentCodeChanged(e, t) {\n const i = e;\n return i.worldPosition.isConnected ? (i.generateOnlyFragmentCode = !i.generateOnlyFragmentCode, L.Error(\"The worldPosition input must not be connected to be able to switch!\"), !1) : (i._setTarget(), !0);\n }\n _setTarget() {\n this._setInitialTarget(this.generateOnlyFragmentCode ? B.Fragment : B.VertexAndFragment), this.getInputByName(\"worldPosition\").target = this.generateOnlyFragmentCode ? B.Fragment : B.Vertex;\n }\n /**\n * Create a new ReflectionBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.VertexAndFragment), this._environmentBRDFTexture = null, this._metallicReflectanceColor = re.White(), this._metallicF0Factor = 1, this.directIntensity = 1, this.environmentIntensity = 1, this.specularIntensity = 1, this.lightFalloff = 0, this.useAlphaTest = !1, this.alphaTestCutoff = 0.5, this.useAlphaBlending = !1, this.useRadianceOverAlpha = !0, this.useSpecularOverAlpha = !0, this.enableSpecularAntiAliasing = !1, this.realTimeFiltering = !1, this.realTimeFilteringQuality = 8, this.useEnergyConservation = !0, this.useRadianceOcclusion = !0, this.useHorizonOcclusion = !0, this.unlit = !1, this.forceNormalForward = !1, this.generateOnlyFragmentCode = !1, this.debugMode = 0, this.debugLimit = 0, this.debugFactor = 1, this._isUnique = !0, this.registerInput(\"worldPosition\", A.Vector4, !1, B.Vertex), this.registerInput(\"worldNormal\", A.Vector4, !1, B.Fragment), this.registerInput(\"view\", A.Matrix, !1), this.registerInput(\"cameraPosition\", A.Vector3, !1, B.Fragment), this.registerInput(\"perturbedNormal\", A.Vector4, !0, B.Fragment), this.registerInput(\"baseColor\", A.Color3, !0, B.Fragment), this.registerInput(\"metallic\", A.Float, !1, B.Fragment), this.registerInput(\"roughness\", A.Float, !1, B.Fragment), this.registerInput(\"ambientOcc\", A.Float, !0, B.Fragment), this.registerInput(\"opacity\", A.Float, !0, B.Fragment), this.registerInput(\"indexOfRefraction\", A.Float, !0, B.Fragment), this.registerInput(\"ambientColor\", A.Color3, !0, B.Fragment), this.registerInput(\"reflection\", A.Object, !0, B.Fragment, new Bi(\"reflection\", this, 0, $l, \"ReflectionBlock\")), this.registerInput(\"clearcoat\", A.Object, !0, B.Fragment, new Bi(\"clearcoat\", this, 0, Dl, \"ClearCoatBlock\")), this.registerInput(\"sheen\", A.Object, !0, B.Fragment, new Bi(\"sheen\", this, 0, Xl, \"SheenBlock\")), this.registerInput(\"subsurface\", A.Object, !0, B.Fragment, new Bi(\"subsurface\", this, 0, rc, \"SubSurfaceBlock\")), this.registerInput(\"anisotropy\", A.Object, !0, B.Fragment, new Bi(\"anisotropy\", this, 0, Mf, \"AnisotropyBlock\")), this.registerInput(\"iridescence\", A.Object, !0, B.Fragment, new Bi(\"iridescence\", this, 0, yu, \"IridescenceBlock\")), this.registerOutput(\"ambientClr\", A.Color3, B.Fragment), this.registerOutput(\"diffuseDir\", A.Color3, B.Fragment), this.registerOutput(\"specularDir\", A.Color3, B.Fragment), this.registerOutput(\"clearcoatDir\", A.Color3, B.Fragment), this.registerOutput(\"sheenDir\", A.Color3, B.Fragment), this.registerOutput(\"diffuseInd\", A.Color3, B.Fragment), this.registerOutput(\"specularInd\", A.Color3, B.Fragment), this.registerOutput(\"clearcoatInd\", A.Color3, B.Fragment), this.registerOutput(\"sheenInd\", A.Color3, B.Fragment), this.registerOutput(\"refraction\", A.Color3, B.Fragment), this.registerOutput(\"lighting\", A.Color3, B.Fragment), this.registerOutput(\"shadow\", A.Float, B.Fragment), this.registerOutput(\"alpha\", A.Float, B.Fragment);\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(e) {\n e._excludeVariableName(\"vLightingIntensity\"), e._excludeVariableName(\"geometricNormalW\"), e._excludeVariableName(\"normalW\"), e._excludeVariableName(\"faceNormal\"), e._excludeVariableName(\"albedoOpacityOut\"), e._excludeVariableName(\"surfaceAlbedo\"), e._excludeVariableName(\"alpha\"), e._excludeVariableName(\"aoOut\"), e._excludeVariableName(\"baseColor\"), e._excludeVariableName(\"reflectivityOut\"), e._excludeVariableName(\"microSurface\"), e._excludeVariableName(\"roughness\"), e._excludeVariableName(\"NdotVUnclamped\"), e._excludeVariableName(\"NdotV\"), e._excludeVariableName(\"alphaG\"), e._excludeVariableName(\"AARoughnessFactors\"), e._excludeVariableName(\"environmentBrdf\"), e._excludeVariableName(\"ambientMonochrome\"), e._excludeVariableName(\"seo\"), e._excludeVariableName(\"eho\"), e._excludeVariableName(\"environmentRadiance\"), e._excludeVariableName(\"irradianceVector\"), e._excludeVariableName(\"environmentIrradiance\"), e._excludeVariableName(\"diffuseBase\"), e._excludeVariableName(\"specularBase\"), e._excludeVariableName(\"preInfo\"), e._excludeVariableName(\"info\"), e._excludeVariableName(\"shadow\"), e._excludeVariableName(\"finalDiffuse\"), e._excludeVariableName(\"finalAmbient\"), e._excludeVariableName(\"ambientOcclusionForDirectDiffuse\"), e._excludeVariableName(\"finalColor\"), e._excludeVariableName(\"vClipSpacePosition\"), e._excludeVariableName(\"vDebugMode\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"PBRMetallicRoughnessBlock\";\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this._inputs[1];\n }\n /**\n * Gets the view matrix parameter\n */\n get view() {\n return this._inputs[2];\n }\n /**\n * Gets the camera position input component\n */\n get cameraPosition() {\n return this._inputs[3];\n }\n /**\n * Gets the perturbed normal input component\n */\n get perturbedNormal() {\n return this._inputs[4];\n }\n /**\n * Gets the base color input component\n */\n get baseColor() {\n return this._inputs[5];\n }\n /**\n * Gets the metallic input component\n */\n get metallic() {\n return this._inputs[6];\n }\n /**\n * Gets the roughness input component\n */\n get roughness() {\n return this._inputs[7];\n }\n /**\n * Gets the ambient occlusion input component\n */\n get ambientOcc() {\n return this._inputs[8];\n }\n /**\n * Gets the opacity input component\n */\n get opacity() {\n return this._inputs[9];\n }\n /**\n * Gets the index of refraction input component\n */\n get indexOfRefraction() {\n return this._inputs[10];\n }\n /**\n * Gets the ambient color input component\n */\n get ambientColor() {\n return this._inputs[11];\n }\n /**\n * Gets the reflection object parameters\n */\n get reflection() {\n return this._inputs[12];\n }\n /**\n * Gets the clear coat object parameters\n */\n get clearcoat() {\n return this._inputs[13];\n }\n /**\n * Gets the sheen object parameters\n */\n get sheen() {\n return this._inputs[14];\n }\n /**\n * Gets the sub surface object parameters\n */\n get subsurface() {\n return this._inputs[15];\n }\n /**\n * Gets the anisotropy object parameters\n */\n get anisotropy() {\n return this._inputs[16];\n }\n /**\n * Gets the iridescence object parameters\n */\n get iridescence() {\n return this._inputs[17];\n }\n /**\n * Gets the ambient output component\n */\n get ambientClr() {\n return this._outputs[0];\n }\n /**\n * Gets the diffuse output component\n */\n get diffuseDir() {\n return this._outputs[1];\n }\n /**\n * Gets the specular output component\n */\n get specularDir() {\n return this._outputs[2];\n }\n /**\n * Gets the clear coat output component\n */\n get clearcoatDir() {\n return this._outputs[3];\n }\n /**\n * Gets the sheen output component\n */\n get sheenDir() {\n return this._outputs[4];\n }\n /**\n * Gets the indirect diffuse output component\n */\n get diffuseInd() {\n return this._outputs[5];\n }\n /**\n * Gets the indirect specular output component\n */\n get specularInd() {\n return this._outputs[6];\n }\n /**\n * Gets the indirect clear coat output component\n */\n get clearcoatInd() {\n return this._outputs[7];\n }\n /**\n * Gets the indirect sheen output component\n */\n get sheenInd() {\n return this._outputs[8];\n }\n /**\n * Gets the refraction output component\n */\n get refraction() {\n return this._outputs[9];\n }\n /**\n * Gets the global lighting output component\n */\n get lighting() {\n return this._outputs[10];\n }\n /**\n * Gets the shadow output component\n */\n get shadow() {\n return this._outputs[11];\n }\n /**\n * Gets the alpha output component\n */\n get alpha() {\n return this._outputs[12];\n }\n autoConfigure(e, t = () => !0) {\n if (!this.cameraPosition.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.systemValue === ct.CameraPosition && t(s));\n i || (i = new ot(\"cameraPosition\"), i.setAsSystemValue(ct.CameraPosition)), i.output.connectTo(this.cameraPosition);\n }\n if (!this.view.isConnected) {\n let i = e.getInputBlockByPredicate((s) => s.systemValue === ct.View && t(s));\n i || (i = new ot(\"view\"), i.setAsSystemValue(ct.View)), i.output.connectTo(this.view);\n }\n }\n prepareDefines(e, t, i) {\n i.setValue(\"PBR\", !0), i.setValue(\"METALLICWORKFLOW\", !0), i.setValue(\"DEBUGMODE\", this.debugMode, !0), i.setValue(\"DEBUGMODE_FORCERETURN\", !0), i.setValue(\"NORMALXYSCALE\", !0), i.setValue(\"BUMP\", this.perturbedNormal.isConnected, !0), i.setValue(\"LODBASEDMICROSFURACE\", this._scene.getEngine().getCaps().textureLOD), i.setValue(\"ALBEDO\", !1, !0), i.setValue(\"OPACITY\", this.opacity.isConnected, !0), i.setValue(\"AMBIENT\", !0, !0), i.setValue(\"AMBIENTINGRAYSCALE\", !1, !0), i.setValue(\"REFLECTIVITY\", !1, !0), i.setValue(\"AOSTOREINMETALMAPRED\", !1, !0), i.setValue(\"METALLNESSSTOREINMETALMAPBLUE\", !1, !0), i.setValue(\"ROUGHNESSSTOREINMETALMAPALPHA\", !1, !0), i.setValue(\"ROUGHNESSSTOREINMETALMAPGREEN\", !1, !0), this.lightFalloff === Ut.LIGHTFALLOFF_STANDARD ? (i.setValue(\"USEPHYSICALLIGHTFALLOFF\", !1), i.setValue(\"USEGLTFLIGHTFALLOFF\", !1)) : this.lightFalloff === Ut.LIGHTFALLOFF_GLTF ? (i.setValue(\"USEPHYSICALLIGHTFALLOFF\", !1), i.setValue(\"USEGLTFLIGHTFALLOFF\", !0)) : (i.setValue(\"USEPHYSICALLIGHTFALLOFF\", !0), i.setValue(\"USEGLTFLIGHTFALLOFF\", !1));\n const s = this.alphaTestCutoff.toString();\n i.setValue(\"ALPHABLEND\", this.useAlphaBlending, !0), i.setValue(\"ALPHAFROMALBEDO\", !1, !0), i.setValue(\"ALPHATEST\", this.useAlphaTest, !0), i.setValue(\"ALPHATESTVALUE\", s.indexOf(\".\") < 0 ? s + \".\" : s, !0), i.setValue(\"OPACITYRGB\", !1, !0), i.setValue(\"RADIANCEOVERALPHA\", this.useRadianceOverAlpha, !0), i.setValue(\"SPECULAROVERALPHA\", this.useSpecularOverAlpha, !0), i.setValue(\"SPECULARAA\", this._scene.getEngine().getCaps().standardDerivatives && this.enableSpecularAntiAliasing, !0), i.setValue(\"REALTIME_FILTERING\", this.realTimeFiltering, !0);\n const r = e.getScene();\n if (r.getEngine()._features.needTypeSuffixInShaderConstants ? i.setValue(\"NUM_SAMPLES\", this.realTimeFilteringQuality + \"u\", !0) : i.setValue(\"NUM_SAMPLES\", \"\" + this.realTimeFilteringQuality, !0), i.setValue(\"BRDF_V_HEIGHT_CORRELATED\", !0), i.setValue(\"MS_BRDF_ENERGY_CONSERVATION\", this.useEnergyConservation, !0), i.setValue(\"RADIANCEOCCLUSION\", this.useRadianceOcclusion, !0), i.setValue(\"HORIZONOCCLUSION\", this.useHorizonOcclusion, !0), i.setValue(\"UNLIT\", this.unlit, !0), i.setValue(\"FORCENORMALFORWARD\", this.forceNormalForward, !0), this._environmentBRDFTexture && xe.ReflectionTextureEnabled ? (i.setValue(\"ENVIRONMENTBRDF\", !0), i.setValue(\"ENVIRONMENTBRDF_RGBD\", this._environmentBRDFTexture.isRGBD, !0)) : (i.setValue(\"ENVIRONMENTBRDF\", !1), i.setValue(\"ENVIRONMENTBRDF_RGBD\", !1)), i._areImageProcessingDirty && t.imageProcessingConfiguration && t.imageProcessingConfiguration.prepareDefines(i), !!i._areLightsDirty)\n if (!this.light)\n xc(r, e, i, !0, t.maxSimultaneousLights), i._needNormals = !0, _f(r, i);\n else {\n const o = {\n needNormals: !1,\n needRebuild: !1,\n lightmapMode: !1,\n shadowEnabled: !1,\n specularEnabled: !1\n };\n x_(r, e, this.light, this._lightId, i, !0, o), o.needRebuild && i.rebuild();\n }\n }\n updateUniformsAndSamples(e, t, i, s) {\n for (let r = 0; r < t.maxSimultaneousLights && i[\"LIGHT\" + r]; r++) {\n const n = e.uniforms.indexOf(\"vLightData\" + r) >= 0;\n T_(r, e.uniforms, e.samplers, i[\"PROJECTEDLIGHTTEXTURE\" + r], s, n);\n }\n }\n isReady(e, t, i) {\n return !(this._environmentBRDFTexture && !this._environmentBRDFTexture.isReady() || i._areImageProcessingDirty && t.imageProcessingConfiguration && !t.imageProcessingConfiguration.isReady());\n }\n bind(e, t, i) {\n var u;\n if (!i)\n return;\n const s = i.getScene();\n this.light ? __(this.light, this._lightId, s, e, !0) : gc(s, i, e, !0, t.maxSimultaneousLights), e.setTexture(this._environmentBrdfSamplerName, this._environmentBRDFTexture), e.setFloat2(\"vDebugMode\", this.debugLimit, this.debugFactor);\n const r = this._scene.ambientColor;\n r && e.setColor3(\"ambientFromScene\", r);\n const n = s.useRightHandedSystem === (s._mirroredCameraPosition != null);\n e.setFloat(this._invertNormalName, n ? -1 : 1), e.setFloat4(\"vLightingIntensity\", this.directIntensity, 1, this.environmentIntensity * this._scene.environmentIntensity, this.specularIntensity);\n const o = 1, l = ((u = this.indexOfRefraction.connectInputBlock) == null ? void 0 : u.value) ?? 1.5, h = Math.pow((l - o) / (l + o), 2);\n this._metallicReflectanceColor.scaleToRef(h * this._metallicF0Factor, wt.Color3[0]);\n const c = this._metallicF0Factor;\n e.setColor4(this._vMetallicReflectanceFactorsName, wt.Color3[0], c), t.imageProcessingConfiguration && t.imageProcessingConfiguration.bind(e);\n }\n _injectVertexCode(e) {\n var n;\n const t = this.worldPosition, i = `//${this.name}`;\n this.light ? (this._lightId = (e.counters.lightCounter !== void 0 ? e.counters.lightCounter : -1) + 1, e.counters.lightCounter = this._lightId, e._emitFunctionFromInclude(e.supportUniformBuffers ? \"lightVxUboDeclaration\" : \"lightVxFragmentDeclaration\", i, {\n replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }]\n }, this._lightId.toString())) : (e._emitFunctionFromInclude(e.supportUniformBuffers ? \"lightVxUboDeclaration\" : \"lightVxFragmentDeclaration\", i, {\n repeatKey: \"maxSimultaneousLights\"\n }), this._lightId = 0, e.sharedData.dynamicUniformBlocks.push(this));\n const s = \"v_\" + t.associatedVariableName;\n e._emitVaryingFromString(s, A.Vector4) && (e.compilationString += `${s} = ${t.associatedVariableName};\n`);\n const r = this.reflection.isConnected ? (n = this.reflection.connectedPoint) == null ? void 0 : n.ownerBlock : null;\n r && (r.viewConnectionPoint = this.view), e.compilationString += (r == null ? void 0 : r.handleVertexSide(e)) ?? \"\", e._emitVaryingFromString(\"vClipSpacePosition\", A.Vector4, \"defined(IGNORE) || DEBUGMODE > 0\") && (e._injectAtEnd += `#if DEBUGMODE > 0\n`, e._injectAtEnd += `vClipSpacePosition = gl_Position;\n`, e._injectAtEnd += `#endif\n`), this.light ? e.compilationString += e._emitCodeFromInclude(\"shadowsVertex\", i, {\n replaceStrings: [\n { search: /{X}/g, replace: this._lightId.toString() },\n { search: /worldPos/g, replace: t.associatedVariableName }\n ]\n }) : (e.compilationString += `vec4 worldPos = ${t.associatedVariableName};\n`, this.view.isConnected && (e.compilationString += `mat4 view = ${this.view.associatedVariableName};\n`), e.compilationString += e._emitCodeFromInclude(\"shadowsVertex\", i, {\n repeatKey: \"maxSimultaneousLights\"\n }));\n }\n _getAlbedoOpacityCode() {\n let e = `albedoOpacityOutParams albedoOpacityOut;\n`;\n const t = this.baseColor.isConnected ? this.baseColor.associatedVariableName : \"vec3(1.)\", i = this.opacity.isConnected ? this.opacity.associatedVariableName : \"1.\";\n return e += `albedoOpacityBlock(\n vec4(${t}, 1.),\n #ifdef ALBEDO\n vec4(1.),\n vec2(1., 1.),\n #endif\n #ifdef OPACITY\n vec4(${i}),\n vec2(1., 1.),\n #endif\n albedoOpacityOut\n );\n\n vec3 surfaceAlbedo = albedoOpacityOut.surfaceAlbedo;\n float alpha = albedoOpacityOut.alpha;\n`, e;\n }\n _getAmbientOcclusionCode() {\n let e = `ambientOcclusionOutParams aoOut;\n`;\n const t = this.ambientOcc.isConnected ? this.ambientOcc.associatedVariableName : \"1.\";\n return e += `ambientOcclusionBlock(\n #ifdef AMBIENT\n vec3(${t}),\n vec4(0., 1.0, 1.0, 0.),\n #endif\n aoOut\n );\n`, e;\n }\n _getReflectivityCode(e) {\n let t = `reflectivityOutParams reflectivityOut;\n`;\n const i = \"1.\";\n return this._vMetallicReflectanceFactorsName = e._getFreeVariableName(\"vMetallicReflectanceFactors\"), e._emitUniformFromString(this._vMetallicReflectanceFactorsName, A.Vector4), t += `vec3 baseColor = surfaceAlbedo;\n\n reflectivityBlock(\n vec4(${this.metallic.associatedVariableName}, ${this.roughness.associatedVariableName}, 0., 0.),\n #ifdef METALLICWORKFLOW\n surfaceAlbedo,\n ${this._vMetallicReflectanceFactorsName},\n #endif\n #ifdef REFLECTIVITY\n vec3(0., 0., ${i}),\n vec4(1.),\n #endif\n #if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\n aoOut.ambientOcclusionColor,\n #endif\n #ifdef MICROSURFACEMAP\n microSurfaceTexel, <== not handled!\n #endif\n reflectivityOut\n );\n\n float microSurface = reflectivityOut.microSurface;\n float roughness = reflectivityOut.roughness;\n\n #ifdef METALLICWORKFLOW\n surfaceAlbedo = reflectivityOut.surfaceAlbedo;\n #endif\n #if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\n aoOut.ambientOcclusionColor = reflectivityOut.ambientOcclusionColor;\n #endif\n`, t;\n }\n _buildBlock(e) {\n var v, T, E, b, S, C, P, N, F, $, j;\n super._buildBlock(e), this._scene = e.sharedData.scene, this._environmentBRDFTexture || (this._environmentBRDFTexture = q_(this._scene));\n const t = this.reflection.isConnected ? (v = this.reflection.connectedPoint) == null ? void 0 : v.ownerBlock : null;\n if (t && (t.worldPositionConnectionPoint = this.worldPosition, t.cameraPositionConnectionPoint = this.cameraPosition, t.worldNormalConnectionPoint = this.worldNormal, t.viewConnectionPoint = this.view), e.target !== B.Fragment)\n return this._injectVertexCode(e), this;\n e.sharedData.forcedBindableBlocks.push(this), e.sharedData.blocksWithDefines.push(this), e.sharedData.blockingBlocks.push(this), this.generateOnlyFragmentCode && e.sharedData.dynamicUniformBlocks.push(this);\n const i = `//${this.name}`, s = this.perturbedNormal;\n let r = this.worldPosition.associatedVariableName;\n this.generateOnlyFragmentCode ? (r = e._getFreeVariableName(\"globalWorldPos\"), e._emitFunction(\"pbr_globalworldpos\", `vec3 ${r};\n`, i), e.compilationString += `${r} = ${this.worldPosition.associatedVariableName}.xyz;\n`, e.compilationString += e._emitCodeFromInclude(\"shadowsVertex\", i, {\n repeatKey: \"maxSimultaneousLights\",\n substitutionVars: this.generateOnlyFragmentCode ? `worldPos,${this.worldPosition.associatedVariableName}` : void 0\n }), e.compilationString += `#if DEBUGMODE > 0\n`, e.compilationString += `vec4 vClipSpacePosition = vec4((vec2(gl_FragCoord.xy) / vec2(1.0)) * 2.0 - 1.0, 0.0, 1.0);\n`, e.compilationString += `#endif\n`) : r = \"v_\" + r, this._environmentBrdfSamplerName = e._getFreeVariableName(\"environmentBrdfSampler\"), e._emit2DSampler(this._environmentBrdfSamplerName), e.sharedData.hints.needAlphaBlending = e.sharedData.hints.needAlphaBlending || this.useAlphaBlending, e.sharedData.hints.needAlphaTesting = e.sharedData.hints.needAlphaTesting || this.useAlphaTest, e._emitExtension(\"lod\", \"#extension GL_EXT_shader_texture_lod : enable\", \"defined(LODBASEDMICROSFURACE)\"), e._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\"), e._emitUniformFromString(\"vDebugMode\", A.Vector2, \"defined(IGNORE) || DEBUGMODE > 0\"), e._emitUniformFromString(\"ambientFromScene\", A.Vector3), e.uniforms.push(\"exposureLinear\"), e.uniforms.push(\"contrast\"), e.uniforms.push(\"vInverseScreenSize\"), e.uniforms.push(\"vignetteSettings1\"), e.uniforms.push(\"vignetteSettings2\"), e.uniforms.push(\"vCameraColorCurveNegative\"), e.uniforms.push(\"vCameraColorCurveNeutral\"), e.uniforms.push(\"vCameraColorCurvePositive\"), e.uniforms.push(\"txColorTransform\"), e.uniforms.push(\"colorTransformSettings\"), e.uniforms.push(\"ditherIntensity\"), this.light ? e._emitFunctionFromInclude(e.supportUniformBuffers ? \"lightUboDeclaration\" : \"lightFragmentDeclaration\", i, {\n replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }]\n }, this._lightId.toString()) : e._emitFunctionFromInclude(e.supportUniformBuffers ? \"lightUboDeclaration\" : \"lightFragmentDeclaration\", i, {\n repeatKey: \"maxSimultaneousLights\",\n substitutionVars: this.generateOnlyFragmentCode ? \"varying,\" : void 0\n }), e._emitFunctionFromInclude(\"helperFunctions\", i), e._emitFunctionFromInclude(\"importanceSampling\", i), e._emitFunctionFromInclude(\"pbrHelperFunctions\", i), e._emitFunctionFromInclude(\"imageProcessingDeclaration\", i), e._emitFunctionFromInclude(\"imageProcessingFunctions\", i), e._emitFunctionFromInclude(\"shadowsFragmentFunctions\", i), e._emitFunctionFromInclude(\"pbrDirectLightingSetupFunctions\", i, {\n replaceStrings: [{ search: /vPositionW/g, replace: r + \".xyz\" }]\n }), e._emitFunctionFromInclude(\"pbrDirectLightingFalloffFunctions\", i), e._emitFunctionFromInclude(\"pbrBRDFFunctions\", i, {\n replaceStrings: [{ search: /REFLECTIONMAP_SKYBOX/g, replace: (t == null ? void 0 : t._defineSkyboxName) ?? \"REFLECTIONMAP_SKYBOX\" }]\n }), e._emitFunctionFromInclude(\"hdrFilteringFunctions\", i), e._emitFunctionFromInclude(\"pbrDirectLightingFunctions\", i, {\n replaceStrings: [{ search: /vPositionW/g, replace: r + \".xyz\" }]\n }), e._emitFunctionFromInclude(\"pbrIBLFunctions\", i), e._emitFunctionFromInclude(\"pbrBlockAlbedoOpacity\", i), e._emitFunctionFromInclude(\"pbrBlockReflectivity\", i), e._emitFunctionFromInclude(\"pbrBlockAmbientOcclusion\", i), e._emitFunctionFromInclude(\"pbrBlockAlphaFresnel\", i), e._emitFunctionFromInclude(\"pbrBlockAnisotropic\", i), e._emitUniformFromString(\"vLightingIntensity\", A.Vector4), t != null && t.generateOnlyFragmentCode && (e.compilationString += t.handleVertexSide(e)), this._vNormalWName = e._getFreeVariableName(\"vNormalW\"), e.compilationString += `vec4 ${this._vNormalWName} = normalize(${this.worldNormal.associatedVariableName});\n`, e._registerTempVariable(\"viewDirectionW\") && (e.compilationString += `vec3 viewDirectionW = normalize(${this.cameraPosition.associatedVariableName} - ${r}.xyz);\n`), e.compilationString += `vec3 geometricNormalW = ${this._vNormalWName}.xyz;\n`, e.compilationString += `vec3 normalW = ${s.isConnected ? \"normalize(\" + s.associatedVariableName + \".xyz)\" : \"geometricNormalW\"};\n`, this._invertNormalName = e._getFreeVariableName(\"invertNormal\"), e._emitUniformFromString(this._invertNormalName, A.Float), e.compilationString += e._emitCodeFromInclude(\"pbrBlockNormalFinal\", i, {\n replaceStrings: [\n { search: /vPositionW/g, replace: r + \".xyz\" },\n { search: /vEyePosition.w/g, replace: this._invertNormalName }\n ]\n }), e.compilationString += this._getAlbedoOpacityCode(), e.compilationString += e._emitCodeFromInclude(\"depthPrePass\", i), e.compilationString += this._getAmbientOcclusionCode(), e.compilationString += e._emitCodeFromInclude(\"pbrBlockLightmapInit\", i), e.compilationString += `#ifdef UNLIT\n vec3 diffuseBase = vec3(1., 1., 1.);\n #else\n`, e.compilationString += this._getReflectivityCode(e), e.compilationString += e._emitCodeFromInclude(\"pbrBlockGeometryInfo\", i, {\n replaceStrings: [\n { search: /REFLECTIONMAP_SKYBOX/g, replace: (t == null ? void 0 : t._defineSkyboxName) ?? \"REFLECTIONMAP_SKYBOX\" },\n { search: /REFLECTIONMAP_3D/g, replace: (t == null ? void 0 : t._define3DName) ?? \"REFLECTIONMAP_3D\" }\n ]\n });\n const n = this.anisotropy.isConnected ? (T = this.anisotropy.connectedPoint) == null ? void 0 : T.ownerBlock : null;\n n && (n.worldPositionConnectionPoint = this.worldPosition, n.worldNormalConnectionPoint = this.worldNormal, e.compilationString += n.getCode(e, !this.perturbedNormal.isConnected)), t && t.hasTexture && (e.compilationString += t.getCode(e, n ? \"anisotropicOut.anisotropicNormal\" : \"normalW\")), e._emitFunctionFromInclude(\"pbrBlockReflection\", i, {\n replaceStrings: [\n { search: /computeReflectionCoords/g, replace: \"computeReflectionCoordsPBR\" },\n { search: /REFLECTIONMAP_3D/g, replace: (t == null ? void 0 : t._define3DName) ?? \"REFLECTIONMAP_3D\" },\n { search: /REFLECTIONMAP_OPPOSITEZ/g, replace: (t == null ? void 0 : t._defineOppositeZ) ?? \"REFLECTIONMAP_OPPOSITEZ\" },\n { search: /REFLECTIONMAP_PROJECTION/g, replace: (t == null ? void 0 : t._defineProjectionName) ?? \"REFLECTIONMAP_PROJECTION\" },\n { search: /REFLECTIONMAP_SKYBOX/g, replace: (t == null ? void 0 : t._defineSkyboxName) ?? \"REFLECTIONMAP_SKYBOX\" },\n { search: /LODINREFLECTIONALPHA/g, replace: (t == null ? void 0 : t._defineLODReflectionAlpha) ?? \"LODINREFLECTIONALPHA\" },\n { search: /LINEARSPECULARREFLECTION/g, replace: (t == null ? void 0 : t._defineLinearSpecularReflection) ?? \"LINEARSPECULARREFLECTION\" },\n { search: /vReflectionFilteringInfo/g, replace: (t == null ? void 0 : t._vReflectionFilteringInfoName) ?? \"vReflectionFilteringInfo\" }\n ]\n }), e.compilationString += e._emitCodeFromInclude(\"pbrBlockReflectance0\", i, {\n replaceStrings: [{ search: /metallicReflectanceFactors/g, replace: this._vMetallicReflectanceFactorsName }]\n });\n const o = this.sheen.isConnected ? (E = this.sheen.connectedPoint) == null ? void 0 : E.ownerBlock : null;\n o && (e.compilationString += o.getCode(t)), e._emitFunctionFromInclude(\"pbrBlockSheen\", i, {\n replaceStrings: [\n { search: /REFLECTIONMAP_3D/g, replace: (t == null ? void 0 : t._define3DName) ?? \"REFLECTIONMAP_3D\" },\n { search: /REFLECTIONMAP_SKYBOX/g, replace: (t == null ? void 0 : t._defineSkyboxName) ?? \"REFLECTIONMAP_SKYBOX\" },\n { search: /LODINREFLECTIONALPHA/g, replace: (t == null ? void 0 : t._defineLODReflectionAlpha) ?? \"LODINREFLECTIONALPHA\" },\n { search: /LINEARSPECULARREFLECTION/g, replace: (t == null ? void 0 : t._defineLinearSpecularReflection) ?? \"LINEARSPECULARREFLECTION\" }\n ]\n });\n const l = this.iridescence.isConnected ? (b = this.iridescence.connectedPoint) == null ? void 0 : b.ownerBlock : null;\n e.compilationString += yu.GetCode(l), e._emitFunctionFromInclude(\"pbrBlockIridescence\", i, {\n replaceStrings: []\n });\n const h = this.clearcoat.isConnected ? (S = this.clearcoat.connectedPoint) == null ? void 0 : S.ownerBlock : null, c = !this.perturbedNormal.isConnected && !this.anisotropy.isConnected, u = this.perturbedNormal.isConnected && ((P = ((C = this.perturbedNormal.connectedPoint) == null ? void 0 : C.ownerBlock).worldTangent) == null ? void 0 : P.isConnected), d = this.anisotropy.isConnected && ((N = this.anisotropy.connectedPoint) == null ? void 0 : N.ownerBlock).worldTangent.isConnected;\n let f = u || !this.perturbedNormal.isConnected && d;\n e.compilationString += Dl.GetCode(e, h, t, r, c, f, this.worldNormal.associatedVariableName), c && (f = (h == null ? void 0 : h.worldTangent.isConnected) ?? !1), e._emitFunctionFromInclude(\"pbrBlockClearcoat\", i, {\n replaceStrings: [\n { search: /computeReflectionCoords/g, replace: \"computeReflectionCoordsPBR\" },\n { search: /REFLECTIONMAP_3D/g, replace: (t == null ? void 0 : t._define3DName) ?? \"REFLECTIONMAP_3D\" },\n { search: /REFLECTIONMAP_OPPOSITEZ/g, replace: (t == null ? void 0 : t._defineOppositeZ) ?? \"REFLECTIONMAP_OPPOSITEZ\" },\n { search: /REFLECTIONMAP_PROJECTION/g, replace: (t == null ? void 0 : t._defineProjectionName) ?? \"REFLECTIONMAP_PROJECTION\" },\n { search: /REFLECTIONMAP_SKYBOX/g, replace: (t == null ? void 0 : t._defineSkyboxName) ?? \"REFLECTIONMAP_SKYBOX\" },\n { search: /LODINREFLECTIONALPHA/g, replace: (t == null ? void 0 : t._defineLODReflectionAlpha) ?? \"LODINREFLECTIONALPHA\" },\n { search: /LINEARSPECULARREFLECTION/g, replace: (t == null ? void 0 : t._defineLinearSpecularReflection) ?? \"LINEARSPECULARREFLECTION\" },\n { search: /defined\\(TANGENT\\)/g, replace: f ? \"defined(TANGENT)\" : \"defined(IGNORE)\" }\n ]\n }), e.compilationString += e._emitCodeFromInclude(\"pbrBlockReflectance\", i, {\n replaceStrings: [\n { search: /REFLECTIONMAP_SKYBOX/g, replace: (t == null ? void 0 : t._defineSkyboxName) ?? \"REFLECTIONMAP_SKYBOX\" },\n { search: /REFLECTIONMAP_3D/g, replace: (t == null ? void 0 : t._define3DName) ?? \"REFLECTIONMAP_3D\" }\n ]\n });\n const p = this.subsurface.isConnected ? (F = this.subsurface.connectedPoint) == null ? void 0 : F.ownerBlock : null, _ = this.subsurface.isConnected ? (j = (($ = this.subsurface.connectedPoint) == null ? void 0 : $.ownerBlock).refraction.connectedPoint) == null ? void 0 : j.ownerBlock : null;\n _ && (_.viewConnectionPoint = this.view, _.indexOfRefractionConnectionPoint = this.indexOfRefraction), e.compilationString += rc.GetCode(e, p, t, r), e._emitFunctionFromInclude(\"pbrBlockSubSurface\", i, {\n replaceStrings: [\n { search: /REFLECTIONMAP_3D/g, replace: (t == null ? void 0 : t._define3DName) ?? \"REFLECTIONMAP_3D\" },\n { search: /REFLECTIONMAP_OPPOSITEZ/g, replace: (t == null ? void 0 : t._defineOppositeZ) ?? \"REFLECTIONMAP_OPPOSITEZ\" },\n { search: /REFLECTIONMAP_PROJECTION/g, replace: (t == null ? void 0 : t._defineProjectionName) ?? \"REFLECTIONMAP_PROJECTION\" },\n { search: /SS_REFRACTIONMAP_3D/g, replace: (_ == null ? void 0 : _._define3DName) ?? \"SS_REFRACTIONMAP_3D\" },\n { search: /SS_LODINREFRACTIONALPHA/g, replace: (_ == null ? void 0 : _._defineLODRefractionAlpha) ?? \"SS_LODINREFRACTIONALPHA\" },\n { search: /SS_LINEARSPECULARREFRACTION/g, replace: (_ == null ? void 0 : _._defineLinearSpecularRefraction) ?? \"SS_LINEARSPECULARREFRACTION\" },\n { search: /SS_REFRACTIONMAP_OPPOSITEZ/g, replace: (_ == null ? void 0 : _._defineOppositeZ) ?? \"SS_REFRACTIONMAP_OPPOSITEZ\" }\n ]\n }), e.compilationString += e._emitCodeFromInclude(\"pbrBlockDirectLighting\", i), this.light ? e.compilationString += e._emitCodeFromInclude(\"lightFragment\", i, {\n replaceStrings: [\n { search: /{X}/g, replace: this._lightId.toString() },\n { search: /vPositionW/g, replace: r + \".xyz\" }\n ]\n }) : e.compilationString += e._emitCodeFromInclude(\"lightFragment\", i, {\n repeatKey: \"maxSimultaneousLights\",\n substitutionVars: `vPositionW,${r}.xyz`\n }), e.compilationString += e._emitCodeFromInclude(\"pbrBlockFinalLitComponents\", i), e.compilationString += `#endif\n`;\n const m = this.ambientColor.isConnected ? this.ambientColor.associatedVariableName : \"vec3(0., 0., 0.)\";\n let x = Ut.DEFAULT_AO_ON_ANALYTICAL_LIGHTS.toString();\n x.indexOf(\".\") === -1 && (x += \".\"), e.compilationString += e._emitCodeFromInclude(\"pbrBlockFinalUnlitComponents\", i, {\n replaceStrings: [\n { search: /vec3 finalEmissive[\\s\\S]*?finalEmissive\\*=vLightingIntensity\\.y;/g, replace: \"\" },\n { search: /vAmbientColor/g, replace: m + \" * ambientFromScene\" },\n { search: /vAmbientInfos\\.w/g, replace: x }\n ]\n }), e.compilationString += e._emitCodeFromInclude(\"pbrBlockFinalColorComposition\", i, {\n replaceStrings: [{ search: /finalEmissive/g, replace: \"vec3(0.)\" }]\n }), e.compilationString += e._emitCodeFromInclude(\"pbrBlockImageProcessing\", i, {\n replaceStrings: [{ search: /visibility/g, replace: \"1.\" }]\n }), e.compilationString += e._emitCodeFromInclude(\"pbrDebug\", i, {\n replaceStrings: [\n { search: /vNormalW/g, replace: this._vNormalWName },\n { search: /vPositionW/g, replace: r },\n { search: /albedoTexture\\.rgb;/g, replace: `vec3(1.);\ngl_FragColor.rgb = toGammaSpace(gl_FragColor.rgb);\n` }\n ]\n });\n for (const ne of this._outputs)\n if (ne.hasEndpoints) {\n const te = NU[ne.name];\n if (te) {\n const [le, _e] = te;\n _e && (e.compilationString += `#if ${_e}\n`), e.compilationString += `${e._declareOutput(ne)} = ${le};\n`, _e && (e.compilationString += `#else\n`, e.compilationString += `${e._declareOutput(ne)} = vec3(0.);\n`, e.compilationString += `#endif\n`);\n } else\n L.Error(`There's no remapping for the ${ne.name} end point! No code generated`);\n }\n return this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return e += `${this._codeVariableName}.lightFalloff = ${this.lightFalloff};\n`, e += `${this._codeVariableName}.useAlphaTest = ${this.useAlphaTest};\n`, e += `${this._codeVariableName}.alphaTestCutoff = ${this.alphaTestCutoff};\n`, e += `${this._codeVariableName}.useAlphaBlending = ${this.useAlphaBlending};\n`, e += `${this._codeVariableName}.useRadianceOverAlpha = ${this.useRadianceOverAlpha};\n`, e += `${this._codeVariableName}.useSpecularOverAlpha = ${this.useSpecularOverAlpha};\n`, e += `${this._codeVariableName}.enableSpecularAntiAliasing = ${this.enableSpecularAntiAliasing};\n`, e += `${this._codeVariableName}.realTimeFiltering = ${this.realTimeFiltering};\n`, e += `${this._codeVariableName}.realTimeFilteringQuality = ${this.realTimeFilteringQuality};\n`, e += `${this._codeVariableName}.useEnergyConservation = ${this.useEnergyConservation};\n`, e += `${this._codeVariableName}.useRadianceOcclusion = ${this.useRadianceOcclusion};\n`, e += `${this._codeVariableName}.useHorizonOcclusion = ${this.useHorizonOcclusion};\n`, e += `${this._codeVariableName}.unlit = ${this.unlit};\n`, e += `${this._codeVariableName}.forceNormalForward = ${this.forceNormalForward};\n`, e += `${this._codeVariableName}.debugMode = ${this.debugMode};\n`, e += `${this._codeVariableName}.debugLimit = ${this.debugLimit};\n`, e += `${this._codeVariableName}.debugFactor = ${this.debugFactor};\n`, e;\n }\n serialize() {\n const e = super.serialize();\n return this.light && (e.lightId = this.light.id), e.lightFalloff = this.lightFalloff, e.useAlphaTest = this.useAlphaTest, e.alphaTestCutoff = this.alphaTestCutoff, e.useAlphaBlending = this.useAlphaBlending, e.useRadianceOverAlpha = this.useRadianceOverAlpha, e.useSpecularOverAlpha = this.useSpecularOverAlpha, e.enableSpecularAntiAliasing = this.enableSpecularAntiAliasing, e.realTimeFiltering = this.realTimeFiltering, e.realTimeFilteringQuality = this.realTimeFilteringQuality, e.useEnergyConservation = this.useEnergyConservation, e.useRadianceOcclusion = this.useRadianceOcclusion, e.useHorizonOcclusion = this.useHorizonOcclusion, e.unlit = this.unlit, e.forceNormalForward = this.forceNormalForward, e.debugMode = this.debugMode, e.debugLimit = this.debugLimit, e.debugFactor = this.debugFactor, e.generateOnlyFragmentCode = this.generateOnlyFragmentCode, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), e.lightId && (this.light = t.getLightById(e.lightId)), this.lightFalloff = e.lightFalloff ?? 0, this.useAlphaTest = e.useAlphaTest, this.alphaTestCutoff = e.alphaTestCutoff, this.useAlphaBlending = e.useAlphaBlending, this.useRadianceOverAlpha = e.useRadianceOverAlpha, this.useSpecularOverAlpha = e.useSpecularOverAlpha, this.enableSpecularAntiAliasing = e.enableSpecularAntiAliasing, this.realTimeFiltering = !!e.realTimeFiltering, this.realTimeFilteringQuality = e.realTimeFilteringQuality ?? 8, this.useEnergyConservation = e.useEnergyConservation, this.useRadianceOcclusion = e.useRadianceOcclusion, this.useHorizonOcclusion = e.useHorizonOcclusion, this.unlit = e.unlit, this.forceNormalForward = !!e.forceNormalForward, this.debugMode = e.debugMode, this.debugLimit = e.debugLimit, this.debugFactor = e.debugFactor, this.generateOnlyFragmentCode = !!e.generateOnlyFragmentCode, this._setTarget();\n }\n}\ny([\n ze(\"Direct lights\", 1, \"INTENSITY\", { min: 0, max: 1, notifiers: { update: !0 } })\n], ms.prototype, \"directIntensity\", void 0);\ny([\n ze(\"Environment lights\", 1, \"INTENSITY\", { min: 0, max: 1, notifiers: { update: !0 } })\n], ms.prototype, \"environmentIntensity\", void 0);\ny([\n ze(\"Specular highlights\", 1, \"INTENSITY\", { min: 0, max: 1, notifiers: { update: !0 } })\n], ms.prototype, \"specularIntensity\", void 0);\ny([\n ze(\"Light falloff\", 4, \"LIGHTING & COLORS\", {\n notifiers: { update: !0 },\n options: [\n { label: \"Physical\", value: Ut.LIGHTFALLOFF_PHYSICAL },\n { label: \"GLTF\", value: Ut.LIGHTFALLOFF_GLTF },\n { label: \"Standard\", value: Ut.LIGHTFALLOFF_STANDARD }\n ]\n })\n], ms.prototype, \"lightFalloff\", void 0);\ny([\n ze(\"Alpha Testing\", 0, \"OPACITY\")\n], ms.prototype, \"useAlphaTest\", void 0);\ny([\n ze(\"Alpha CutOff\", 1, \"OPACITY\", { min: 0, max: 1, notifiers: { update: !0 } })\n], ms.prototype, \"alphaTestCutoff\", void 0);\ny([\n ze(\"Alpha blending\", 0, \"OPACITY\")\n], ms.prototype, \"useAlphaBlending\", void 0);\ny([\n ze(\"Radiance over alpha\", 0, \"RENDERING\", { notifiers: { update: !0 } })\n], ms.prototype, \"useRadianceOverAlpha\", void 0);\ny([\n ze(\"Specular over alpha\", 0, \"RENDERING\", { notifiers: { update: !0 } })\n], ms.prototype, \"useSpecularOverAlpha\", void 0);\ny([\n ze(\"Specular anti-aliasing\", 0, \"RENDERING\", { notifiers: { update: !0 } })\n], ms.prototype, \"enableSpecularAntiAliasing\", void 0);\ny([\n ze(\"Realtime filtering\", 0, \"RENDERING\", { notifiers: { update: !0 } })\n], ms.prototype, \"realTimeFiltering\", void 0);\ny([\n ze(\"Realtime filtering quality\", 4, \"RENDERING\", {\n notifiers: { update: !0 },\n options: [\n { label: \"Low\", value: 8 },\n { label: \"Medium\", value: 16 },\n { label: \"High\", value: 64 }\n ]\n })\n], ms.prototype, \"realTimeFilteringQuality\", void 0);\ny([\n ze(\"Energy Conservation\", 0, \"ADVANCED\", { notifiers: { update: !0 } })\n], ms.prototype, \"useEnergyConservation\", void 0);\ny([\n ze(\"Radiance occlusion\", 0, \"ADVANCED\", { notifiers: { update: !0 } })\n], ms.prototype, \"useRadianceOcclusion\", void 0);\ny([\n ze(\"Horizon occlusion\", 0, \"ADVANCED\", { notifiers: { update: !0 } })\n], ms.prototype, \"useHorizonOcclusion\", void 0);\ny([\n ze(\"Unlit\", 0, \"ADVANCED\", { notifiers: { update: !0 } })\n], ms.prototype, \"unlit\", void 0);\ny([\n ze(\"Force normal forward\", 0, \"ADVANCED\", { notifiers: { update: !0 } })\n], ms.prototype, \"forceNormalForward\", void 0);\ny([\n ze(\"Generate only fragment code\", 0, \"ADVANCED\", {\n notifiers: { rebuild: !0, update: !0, onValidation: ms._OnGenerateOnlyFragmentCodeChanged }\n })\n], ms.prototype, \"generateOnlyFragmentCode\", void 0);\ny([\n ze(\"Debug mode\", 4, \"DEBUG\", {\n notifiers: { update: !0 },\n options: [\n { label: \"None\", value: 0 },\n // Geometry\n { label: \"Normalized position\", value: 1 },\n { label: \"Normals\", value: 2 },\n { label: \"Tangents\", value: 3 },\n { label: \"Bitangents\", value: 4 },\n { label: \"Bump Normals\", value: 5 },\n //{ label: \"UV1\", value: 6 },\n //{ label: \"UV2\", value: 7 },\n { label: \"ClearCoat Normals\", value: 8 },\n { label: \"ClearCoat Tangents\", value: 9 },\n { label: \"ClearCoat Bitangents\", value: 10 },\n { label: \"Anisotropic Normals\", value: 11 },\n { label: \"Anisotropic Tangents\", value: 12 },\n { label: \"Anisotropic Bitangents\", value: 13 },\n // Maps\n //{ label: \"Emissive Map\", value: 23 },\n //{ label: \"Light Map\", value: 24 },\n // Env\n { label: \"Env Refraction\", value: 40 },\n { label: \"Env Reflection\", value: 41 },\n { label: \"Env Clear Coat\", value: 42 },\n // Lighting\n { label: \"Direct Diffuse\", value: 50 },\n { label: \"Direct Specular\", value: 51 },\n { label: \"Direct Clear Coat\", value: 52 },\n { label: \"Direct Sheen\", value: 53 },\n { label: \"Env Irradiance\", value: 54 },\n // Lighting Params\n { label: \"Surface Albedo\", value: 60 },\n { label: \"Reflectance 0\", value: 61 },\n { label: \"Metallic\", value: 62 },\n { label: \"Metallic F0\", value: 71 },\n { label: \"Roughness\", value: 63 },\n { label: \"AlphaG\", value: 64 },\n { label: \"NdotV\", value: 65 },\n { label: \"ClearCoat Color\", value: 66 },\n { label: \"ClearCoat Roughness\", value: 67 },\n { label: \"ClearCoat NdotV\", value: 68 },\n { label: \"Transmittance\", value: 69 },\n { label: \"Refraction Transmittance\", value: 70 },\n // Misc\n { label: \"SEO\", value: 80 },\n { label: \"EHO\", value: 81 },\n { label: \"Energy Factor\", value: 82 },\n { label: \"Specular Reflectance\", value: 83 },\n { label: \"Clear Coat Reflectance\", value: 84 },\n { label: \"Sheen Reflectance\", value: 85 },\n { label: \"Luminance Over Alpha\", value: 86 },\n { label: \"Alpha\", value: 87 },\n { label: \"Albedo color\", value: 88 },\n { label: \"Ambient occlusion color\", value: 89 }\n ]\n })\n], ms.prototype, \"debugMode\", void 0);\ny([\n ze(\"Split position\", 1, \"DEBUG\", { min: -1, max: 1, notifiers: { update: !0 } })\n], ms.prototype, \"debugLimit\", void 0);\ny([\n ze(\"Output factor\", 1, \"DEBUG\", { min: 0, max: 5, notifiers: { update: !0 } })\n], ms.prototype, \"debugFactor\", void 0);\nU(\"BABYLON.PBRMetallicRoughnessBlock\", ms);\nclass rR extends Ge {\n /**\n * Creates a new ModBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"left\", A.AutoDetect), this.registerInput(\"right\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1), this._inputs[1].acceptedConnectionPointTypes.push(A.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ModBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n return e.shaderLanguage === 0 ? e.compilationString += e._declareOutput(t) + ` = mod(${this.left.associatedVariableName}, ${this.right.associatedVariableName});\n` : e.compilationString += e._declareOutput(t) + ` = (${this.left.associatedVariableName} % ${this.right.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.ModBlock\", rR);\nclass nR extends Ge {\n /**\n * Creates a new MatrixBuilder\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"row0\", A.Vector4), this.registerInput(\"row1\", A.Vector4), this.registerInput(\"row2\", A.Vector4), this.registerInput(\"row3\", A.Vector4), this.registerOutput(\"output\", A.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MatrixBuilder\";\n }\n /**\n * Gets the row0 vector\n */\n get row0() {\n return this._inputs[0];\n }\n /**\n * Gets the row1 vector\n */\n get row1() {\n return this._inputs[1];\n }\n /**\n * Gets the row2 vector\n */\n get row2() {\n return this._inputs[2];\n }\n /**\n * Gets the row3 vector\n */\n get row3() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.row0.isConnected) {\n const e = new ot(\"row0\");\n e.value = new Ne(1, 0, 0, 0), e.output.connectTo(this.row0);\n }\n if (!this.row1.isConnected) {\n const e = new ot(\"row1\");\n e.value = new Ne(0, 1, 0, 0), e.output.connectTo(this.row1);\n }\n if (!this.row2.isConnected) {\n const e = new ot(\"row2\");\n e.value = new Ne(0, 0, 1, 0), e.output.connectTo(this.row2);\n }\n if (!this.row3.isConnected) {\n const e = new ot(\"row3\");\n e.value = new Ne(0, 0, 0, 1), e.output.connectTo(this.row3);\n }\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], i = this.row0, s = this.row1, r = this.row2, n = this.row3, o = e.shaderLanguage === 1 ? \"mat4x4f\" : \"mat4\";\n return e.compilationString += e._declareOutput(t) + ` = ${o}(${i.associatedVariableName}, ${s.associatedVariableName}, ${r.associatedVariableName}, ${n.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.MatrixBuilder\", nR);\nvar Jr;\n(function(a) {\n a[a.Equal = 0] = \"Equal\", a[a.NotEqual = 1] = \"NotEqual\", a[a.LessThan = 2] = \"LessThan\", a[a.GreaterThan = 3] = \"GreaterThan\", a[a.LessOrEqual = 4] = \"LessOrEqual\", a[a.GreaterOrEqual = 5] = \"GreaterOrEqual\", a[a.Xor = 6] = \"Xor\", a[a.Or = 7] = \"Or\", a[a.And = 8] = \"And\";\n})(Jr || (Jr = {}));\nclass aR extends Ge {\n /**\n * Creates a new ConditionalBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.condition = Jr.LessThan, this.registerInput(\"a\", A.Float), this.registerInput(\"b\", A.Float), this.registerInput(\"true\", A.AutoDetect, !0), this.registerInput(\"false\", A.AutoDetect, !0), this.registerOutput(\"output\", A.BasedOnInput), this._linkConnectionTypes(2, 3), this._outputs[0]._typeConnectionSource = this._inputs[2], this._outputs[0]._defaultConnectionPointType = A.Float;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ConditionalBlock\";\n }\n /**\n * Gets the first operand component\n */\n get a() {\n return this._inputs[0];\n }\n /**\n * Gets the second operand component\n */\n get b() {\n return this._inputs[1];\n }\n /**\n * Gets the value to return if condition is true\n */\n get true() {\n return this._inputs[2];\n }\n /**\n * Gets the value to return if condition is false\n */\n get false() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], i = this.true.isConnected ? this.true.associatedVariableName : \"1.0\", s = this.false.isConnected ? this.false.associatedVariableName : \"0.0\";\n switch (this.condition) {\n case Jr.Equal: {\n e.compilationString += e._declareOutput(t) + ` = ${e._generateTernary(i, s, `${this.a.associatedVariableName} == ${this.b.associatedVariableName}`)};\n`;\n break;\n }\n case Jr.NotEqual: {\n e.compilationString += e._declareOutput(t) + ` = ${e._generateTernary(i, s, `${this.a.associatedVariableName} != ${this.b.associatedVariableName}`)};\n`;\n break;\n }\n case Jr.LessThan: {\n e.compilationString += e._declareOutput(t) + ` = ${e._generateTernary(i, s, `${this.a.associatedVariableName} < ${this.b.associatedVariableName}`)};\n`;\n break;\n }\n case Jr.LessOrEqual: {\n e.compilationString += e._declareOutput(t) + ` = ${e._generateTernary(i, s, `${this.a.associatedVariableName} <= ${this.b.associatedVariableName}`)};\n`;\n break;\n }\n case Jr.GreaterThan: {\n e.compilationString += e._declareOutput(t) + ` = ${e._generateTernary(i, s, `${this.a.associatedVariableName} > ${this.b.associatedVariableName}`)};\n`;\n break;\n }\n case Jr.GreaterOrEqual: {\n e.compilationString += e._declareOutput(t) + ` = ${e._generateTernary(i, s, `${this.a.associatedVariableName} >= ${this.b.associatedVariableName}`)};\n`;\n break;\n }\n case Jr.Xor: {\n e.compilationString += e._declareOutput(t) + ` = ${e._generateTernary(i, s, `(((${this.a.associatedVariableName} + ${this.b.associatedVariableName}) % 2.0) > 0.0)`)};\n`;\n break;\n }\n case Jr.Or: {\n e.compilationString += e._declareOutput(t) + ` = ${e._generateTernary(i, s, `(min(${this.a.associatedVariableName} + ${this.b.associatedVariableName}, 1.0) > 0.0)`)};\n`;\n break;\n }\n case Jr.And: {\n e.compilationString += e._declareOutput(t) + ` = ${e._generateTernary(i, s, `(${this.a.associatedVariableName} * ${this.b.associatedVariableName} > 0.0)`)};\n`;\n break;\n }\n }\n return this;\n }\n serialize() {\n const e = super.serialize();\n return e.condition = this.condition, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.condition = e.condition;\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.condition = BABYLON.ConditionalBlockConditions.${Jr[this.condition]};\n`;\n }\n}\nU(\"BABYLON.ConditionalBlock\", aR);\nclass Vv extends Ge {\n /**\n * Creates a new CloudBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.octaves = 6, this.registerInput(\"seed\", A.AutoDetect), this.registerInput(\"chaos\", A.AutoDetect, !0), this.registerInput(\"offsetX\", A.Float, !0), this.registerInput(\"offsetY\", A.Float, !0), this.registerInput(\"offsetZ\", A.Float, !0), this.registerOutput(\"output\", A.Float), this._inputs[0].acceptedConnectionPointTypes.push(A.Vector2), this._inputs[0].acceptedConnectionPointTypes.push(A.Vector3), this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CloudBlock\";\n }\n /**\n * Gets the seed input component\n */\n get seed() {\n return this._inputs[0];\n }\n /**\n * Gets the chaos input component\n */\n get chaos() {\n return this._inputs[1];\n }\n /**\n * Gets the offset X input component\n */\n get offsetX() {\n return this._inputs[2];\n }\n /**\n * Gets the offset Y input component\n */\n get offsetY() {\n return this._inputs[3];\n }\n /**\n * Gets the offset Z input component\n */\n get offsetZ() {\n return this._inputs[4];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n var l, h, c;\n if (super._buildBlock(e), !this.seed.isConnected || !this._outputs[0].hasEndpoints)\n return;\n let t = `\n\n float cloudRandom(float p) { \n float temp = fract(p * 0.011); \n temp *= temp + 7.5; \n temp *= temp + temp; \n return fract(temp); \n }\n\n // Based on Morgan McGuire @morgan3d\n // https://www.shadertoy.com/view/4dS3Wd\n float cloudNoise2(vec2 x, vec2 chaos) {\n vec2 step = chaos * vec2(75., 120.) + vec2(75., 120.);\n\n vec2 i = floor(x);\n vec2 f = fract(x);\n\n float n = dot(i, step);\n\n vec2 u = f * f * (3.0 - 2.0 * f);\n return mix(\n mix(cloudRandom(n + dot(step, vec2(0, 0))), cloudRandom(n + dot(step, vec2(1, 0))), u.x),\n mix(cloudRandom(n + dot(step, vec2(0, 1))), cloudRandom(n + dot(step, vec2(1, 1))), u.x),\n u.y\n );\n }\n\n float cloudNoise3(vec3 x, vec3 chaos) {\n vec3 step = chaos * vec3(60., 120., 75.) + vec3(60., 120., 75.);\n\n vec3 i = floor(x);\n vec3 f = fract(x);\n\n float n = dot(i, step);\n\n vec3 u = f * f * (3.0 - 2.0 * f);\n return mix(mix(mix( cloudRandom(n + dot(step, vec3(0, 0, 0))), cloudRandom(n + dot(step, vec3(1, 0, 0))), u.x),\n mix( cloudRandom(n + dot(step, vec3(0, 1, 0))), cloudRandom(n + dot(step, vec3(1, 1, 0))), u.x), u.y),\n mix(mix( cloudRandom(n + dot(step, vec3(0, 0, 1))), cloudRandom(n + dot(step, vec3(1, 0, 1))), u.x),\n mix( cloudRandom(n + dot(step, vec3(0, 1, 1))), cloudRandom(n + dot(step, vec3(1, 1, 1))), u.x), u.y), u.z);\n }`, i = `\n float fbm2(vec2 st, vec2 chaos) {\n // Initial values\n float value = 0.0;\n float amplitude = .5;\n float frequency = 0.;\n\n // Loop of octaves\n vec2 tempST = st;\n for (int i = 0; i < OCTAVES; i++) {\n value += amplitude * cloudNoise2(tempST, chaos);\n tempST *= 2.0;\n amplitude *= 0.5;\n }\n return value;\n }\n\n float fbm3(vec3 x, vec3 chaos) {\n // Initial values\n float value = 0.0;\n float amplitude = 0.5;\n vec3 tempX = x;\n for (int i = 0; i < OCTAVES; i++) {\n value += amplitude * cloudNoise3(tempX, chaos);\n tempX = tempX * 2.0;\n amplitude *= 0.5;\n }\n return value;\n }`;\n e.shaderLanguage === 1 && (t = e._babylonSLtoWGSL(t), i = e._babylonSLtoWGSL(i));\n const s = `fbm${this.octaves}`;\n e._emitFunction(\"CloudBlockCode\", t, \"// CloudBlockCode\"), e._emitFunction(\"CloudBlockCodeFBM\" + this.octaves, i.replace(/fbm/gi, s).replace(/OCTAVES/gi, (this.octaves | 0).toString()), \"// CloudBlockCode FBM\");\n const r = e._getFreeVariableName(\"st\"), n = ((l = this.seed.connectedPoint) == null ? void 0 : l.type) || A.Vector3;\n e.compilationString += `${e._declareLocalVar(r, n)} = ${this.seed.associatedVariableName};\n`, this.offsetX.isConnected && (e.compilationString += `${r}.x += 0.1 * ${this.offsetX.associatedVariableName};\n`), this.offsetY.isConnected && (e.compilationString += `${r}.y += 0.1 * ${this.offsetY.associatedVariableName};\n`), this.offsetZ.isConnected && n === A.Vector3 && (e.compilationString += `${r}.z += 0.1 * ${this.offsetZ.associatedVariableName};\n`);\n let o = \"\";\n if (this.chaos.isConnected)\n o = this.chaos.associatedVariableName;\n else {\n const u = e.fSuffix;\n o = ((h = this.seed.connectedPoint) == null ? void 0 : h.type) === A.Vector2 ? `vec2${u}(0., 0.)` : `vec3${u}(0., 0., 0.)`;\n }\n return e.compilationString += e._declareOutput(this._outputs[0]) + ` = ${s}${((c = this.seed.connectedPoint) == null ? void 0 : c.type) === A.Vector2 ? \"2\" : \"3\"}(${r}, ${o});\n`, this;\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.octaves = ${this.octaves};\n`;\n }\n serialize() {\n const e = super.serialize();\n return e.octaves = this.octaves, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.octaves = e.octaves;\n }\n}\ny([\n ze(\n \"Octaves\",\n 2\n /* PropertyTypeForEdition.Int */\n )\n], Vv.prototype, \"octaves\", void 0);\nU(\"BABYLON.CloudBlock\", Vv);\nclass oR extends Ge {\n /**\n * Creates a new VoronoiNoiseBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"seed\", A.Vector2), this.registerInput(\"offset\", A.Float), this.registerInput(\"density\", A.Float), this.registerOutput(\"output\", A.Float), this.registerOutput(\"cells\", A.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"VoronoiNoiseBlock\";\n }\n /**\n * Gets the seed input component\n */\n get seed() {\n return this._inputs[0];\n }\n /**\n * Gets the offset input component\n */\n get offset() {\n return this._inputs[1];\n }\n /**\n * Gets the density input component\n */\n get density() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the output component\n */\n get cells() {\n return this._outputs[1];\n }\n _buildBlock(e) {\n if (super._buildBlock(e), !this.seed.isConnected)\n return;\n let t = `vec2 voronoiRandom(vec2 p){\n p = vec2(dot(p,vec2(127.1,311.7)),dot(p,vec2(269.5,183.3)));\n return fract(sin(p)*18.5453);\n }\n `;\n e.shaderLanguage === 1 && (t = e._babylonSLtoWGSL(t)), e._emitFunction(\"voronoiRandom\", t, \"// Voronoi random generator\"), t = `void voronoi(vec2 seed, float offset, float density, out float outValue, out float cells){\n vec2 n = floor(seed * density);\n vec2 f = fract(seed * density);\n vec3 m = vec3( 8.0 );\n for( int j=-1; j<=1; j++ ){\n for( int i=-1; i<=1; i++ ){\n vec2 g = vec2( float(i), float(j) );\n vec2 o = voronoiRandom( n + g);\n vec2 r = g - f + (0.5+0.5*sin(offset+6.2831*o));\n float d = dot( r, r );\n if( d i.hasTexture(this._texture)), this._texture = e, e && t && t.markAllMaterialsAsDirty(1, (i) => i.hasTexture(e));\n }\n /**\n * Gets the textureY associated with the node\n */\n get textureY() {\n var e;\n return this.sourceY.isConnected ? ((e = this.sourceY.connectedPoint) == null ? void 0 : e.ownerBlock).texture : null;\n }\n /**\n * Gets the textureZ associated with the node\n */\n get textureZ() {\n var e, t;\n return (e = this.sourceZ) != null && e.isConnected ? ((t = this.sourceY.connectedPoint) == null ? void 0 : t.ownerBlock).texture : null;\n }\n _getImageSourceBlock(e) {\n return e != null && e.isConnected ? e.connectedPoint.ownerBlock : null;\n }\n /**\n * Gets the sampler name associated with this texture\n */\n get samplerName() {\n const e = this._getImageSourceBlock(this.source);\n return e ? e.samplerName : this._samplerName;\n }\n /**\n * Gets the samplerY name associated with this texture\n */\n get samplerYName() {\n var e;\n return ((e = this._getImageSourceBlock(this.sourceY)) == null ? void 0 : e.samplerName) ?? null;\n }\n /**\n * Gets the samplerZ name associated with this texture\n */\n get samplerZName() {\n var e;\n return ((e = this._getImageSourceBlock(this.sourceZ)) == null ? void 0 : e.samplerName) ?? null;\n }\n /**\n * Gets a boolean indicating that this block is linked to an ImageSourceBlock\n */\n get hasImageSource() {\n return this.source.isConnected;\n }\n /**\n * Gets or sets a boolean indicating if content needs to be converted to gamma space\n */\n set convertToGammaSpace(e) {\n if (e !== this._convertToGammaSpace && (this._convertToGammaSpace = e, this.texture)) {\n const t = this.texture.getScene() ?? Me.LastCreatedScene;\n t == null || t.markAllMaterialsAsDirty(1, (i) => i.hasTexture(this.texture));\n }\n }\n get convertToGammaSpace() {\n return this._convertToGammaSpace;\n }\n /**\n * Gets or sets a boolean indicating if content needs to be converted to linear space\n */\n set convertToLinearSpace(e) {\n if (e !== this._convertToLinearSpace && (this._convertToLinearSpace = e, this.texture)) {\n const t = this.texture.getScene() ?? Me.LastCreatedScene;\n t == null || t.markAllMaterialsAsDirty(1, (i) => i.hasTexture(this.texture));\n }\n }\n get convertToLinearSpace() {\n return this._convertToLinearSpace;\n }\n /**\n * Create a new TriPlanarBlock\n * @param name defines the block name\n * @param hideSourceZ defines a boolean indicating that normal Z should not be used (false by default)\n */\n constructor(e, t = !1) {\n super(e, B.Neutral), this.projectAsCube = !1, this._convertToGammaSpace = !1, this._convertToLinearSpace = !1, this.disableLevelMultiplication = !1, this.registerInput(\"position\", A.AutoDetect, !1), this.registerInput(\"normal\", A.AutoDetect, !1), this.registerInput(\"sharpness\", A.Float, !0), this.registerInput(\"source\", A.Object, !0, B.VertexAndFragment, new Bi(\"source\", this, 0, Fn, \"ImageSourceBlock\")), this.registerInput(\"sourceY\", A.Object, !0, B.VertexAndFragment, new Bi(\"sourceY\", this, 0, Fn, \"ImageSourceBlock\")), t || this.registerInput(\"sourceZ\", A.Object, !0, B.VertexAndFragment, new Bi(\"sourceZ\", this, 0, Fn, \"ImageSourceBlock\")), this.registerOutput(\"rgba\", A.Color4, B.Neutral), this.registerOutput(\"rgb\", A.Color3, B.Neutral), this.registerOutput(\"r\", A.Float, B.Neutral), this.registerOutput(\"g\", A.Float, B.Neutral), this.registerOutput(\"b\", A.Float, B.Neutral), this.registerOutput(\"a\", A.Float, B.Neutral), this.registerOutput(\"level\", A.Float, B.Neutral), this._inputs[0].addExcludedConnectionPointFromAllowedTypes(A.Color3 | A.Vector3 | A.Vector4), this._inputs[1].addExcludedConnectionPointFromAllowedTypes(A.Color3 | A.Vector3 | A.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TriPlanarBlock\";\n }\n /**\n * Gets the position input component\n */\n get position() {\n return this._inputs[0];\n }\n /**\n * Gets the normal input component\n */\n get normal() {\n return this._inputs[1];\n }\n /**\n * Gets the sharpness input component\n */\n get sharpness() {\n return this._inputs[2];\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[3];\n }\n /**\n * Gets the sourceY input component\n */\n get sourceY() {\n return this._inputs[4];\n }\n /**\n * Gets the sourceZ input component\n */\n get sourceZ() {\n return this._inputs[5];\n }\n /**\n * Gets the rgba output component\n */\n get rgba() {\n return this._outputs[0];\n }\n /**\n * Gets the rgb output component\n */\n get rgb() {\n return this._outputs[1];\n }\n /**\n * Gets the r output component\n */\n get r() {\n return this._outputs[2];\n }\n /**\n * Gets the g output component\n */\n get g() {\n return this._outputs[3];\n }\n /**\n * Gets the b output component\n */\n get b() {\n return this._outputs[4];\n }\n /**\n * Gets the a output component\n */\n get a() {\n return this._outputs[5];\n }\n /**\n * Gets the level output component\n */\n get level() {\n return this._outputs[6];\n }\n prepareDefines(e, t, i) {\n if (!i._areTexturesDirty)\n return;\n const s = this.convertToGammaSpace && this.texture && !this.texture.gammaSpace, r = this.convertToLinearSpace && this.texture && this.texture.gammaSpace;\n i.setValue(this._linearDefineName, s, !0), i.setValue(this._gammaDefineName, r, !0);\n }\n isReady() {\n return !(this.texture && !this.texture.isReadyOrNotBlocking());\n }\n bind(e) {\n this.texture && (e.setFloat(this._textureInfoName, this.texture.level), this._imageSource || e.setTexture(this._samplerName, this.texture));\n }\n _samplerFunc(e) {\n return e.shaderLanguage === 1 ? \"textureSample\" : \"texture2D\";\n }\n _generateTextureSample(e, t, i) {\n return i.shaderLanguage === 1 ? `${this._samplerFunc(i)}(${e},${e + \"Sampler\"}, ${t})` : `${this._samplerFunc(i)}(${e}, ${t})`;\n }\n _generateTextureLookup(e) {\n const t = this.samplerName, i = this.samplerYName ?? t, s = this.samplerZName ?? t, r = this.sharpness.isConnected ? this.sharpness.associatedVariableName : \"1.0\", n = e._getFreeVariableName(\"x\"), o = e._getFreeVariableName(\"y\"), l = e._getFreeVariableName(\"z\"), h = e._getFreeVariableName(\"w\"), c = e._getFreeVariableName(\"n\"), u = e._getFreeVariableName(\"uvx\"), d = e._getFreeVariableName(\"uvy\"), f = e._getFreeVariableName(\"uvz\");\n e.compilationString += `\n ${e._declareLocalVar(c, A.Vector3)} = ${this.normal.associatedVariableName}.xyz;\n\n ${e._declareLocalVar(u, A.Vector2)} = ${this.position.associatedVariableName}.yz;\n ${e._declareLocalVar(d, A.Vector2)} = ${this.position.associatedVariableName}.zx;\n ${e._declareLocalVar(f, A.Vector2)} = ${this.position.associatedVariableName}.xy;\n `, this.projectAsCube && (e.compilationString += `\n ${u}.xy = ${u}.yx;\n\n if (${c}.x >= 0.0) {\n ${u}.x = -${u}.x;\n }\n if (${c}.y < 0.0) {\n ${d}.y = -${d}.y;\n }\n if (${c}.z < 0.0) {\n ${f}.x = -${f}.x;\n }\n `);\n const p = e.fSuffix;\n e.compilationString += `\n ${e._declareLocalVar(n, A.Vector4)} = ${this._generateTextureSample(t, u, e)};\n ${e._declareLocalVar(o, A.Vector4)} = ${this._generateTextureSample(i, d, e)};\n ${e._declareLocalVar(l, A.Vector4)} = ${this._generateTextureSample(s, f, e)};\n \n // blend weights\n ${e._declareLocalVar(h, A.Vector3)} = pow(abs(${c}), vec3${p}(${r}));\n\n // blend and return\n ${e._declareLocalVar(this._tempTextureRead, A.Vector4)} = (${n}*${h}.x + ${o}*${h}.y + ${l}*${h}.z) / (${h}.x + ${h}.y + ${h}.z); \n `;\n }\n _generateConversionCode(e, t, i) {\n let s = \"\";\n e.shaderLanguage === 1 && (t.type === A.Vector3 || t.type === A.Color3) && (s = \"Vec3\"), i !== \"a\" && ((!this.texture || !this.texture.gammaSpace) && (e.compilationString += `#ifdef ${this._linearDefineName}\n ${t.associatedVariableName} = toGammaSpace${s}(${t.associatedVariableName});\n #endif\n `), e.compilationString += `#ifdef ${this._gammaDefineName}\n ${t.associatedVariableName} = toLinearSpace${s}(${t.associatedVariableName});\n #endif\n `);\n }\n _writeOutput(e, t, i) {\n let s = \"\";\n this.disableLevelMultiplication || (s = ` * ${e.shaderLanguage === 1 ? \"uniforms.\" : \"\"}${this._textureInfoName}`), e.compilationString += `${e._declareOutput(t)} = ${this._tempTextureRead}.${i}${s};\n`, this._generateConversionCode(e, t, i);\n }\n _buildBlock(e) {\n super._buildBlock(e), this.source.isConnected ? this._imageSource = this.source.connectedPoint.ownerBlock : this._imageSource = null, this._textureInfoName = e._getFreeVariableName(\"textureInfoName\"), this.level.associatedVariableName = (e.shaderLanguage === 1 ? \"uniforms.\" : \"\") + this._textureInfoName, this._tempTextureRead = e._getFreeVariableName(\"tempTextureRead\"), this._linearDefineName = e._getFreeDefineName(\"ISLINEAR\"), this._gammaDefineName = e._getFreeDefineName(\"ISGAMMA\"), this._imageSource || (this._samplerName = e._getFreeVariableName(this.name + \"Texture\"), e._emit2DSampler(this._samplerName)), e.sharedData.blockingBlocks.push(this), e.sharedData.textureBlocks.push(this), e.sharedData.blocksWithDefines.push(this), e.sharedData.bindableBlocks.push(this);\n const t = `//${this.name}`;\n e._emitFunctionFromInclude(\"helperFunctions\", t), e._emitUniformFromString(this._textureInfoName, A.Float), this._generateTextureLookup(e);\n for (const i of this._outputs)\n i.hasEndpoints && i.name !== \"level\" && this._writeOutput(e, i, i.name);\n return this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return e += `${this._codeVariableName}.convertToGammaSpace = ${this.convertToGammaSpace};\n`, e += `${this._codeVariableName}.convertToLinearSpace = ${this.convertToLinearSpace};\n`, e += `${this._codeVariableName}.disableLevelMultiplication = ${this.disableLevelMultiplication};\n`, e += `${this._codeVariableName}.projectAsCube = ${this.projectAsCube};\n`, this.texture && (e += `${this._codeVariableName}.texture = new BABYLON.Texture(\"${this.texture.name}\", null, ${this.texture.noMipmap}, ${this.texture.invertY}, ${this.texture.samplingMode});\n`, e += `${this._codeVariableName}.texture.wrapU = ${this.texture.wrapU};\n`, e += `${this._codeVariableName}.texture.wrapV = ${this.texture.wrapV};\n`, e += `${this._codeVariableName}.texture.uAng = ${this.texture.uAng};\n`, e += `${this._codeVariableName}.texture.vAng = ${this.texture.vAng};\n`, e += `${this._codeVariableName}.texture.wAng = ${this.texture.wAng};\n`, e += `${this._codeVariableName}.texture.uOffset = ${this.texture.uOffset};\n`, e += `${this._codeVariableName}.texture.vOffset = ${this.texture.vOffset};\n`, e += `${this._codeVariableName}.texture.uScale = ${this.texture.uScale};\n`, e += `${this._codeVariableName}.texture.vScale = ${this.texture.vScale};\n`, e += `${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};\n`), e;\n }\n serialize() {\n const e = super.serialize();\n return e.convertToGammaSpace = this.convertToGammaSpace, e.convertToLinearSpace = this.convertToLinearSpace, e.disableLevelMultiplication = this.disableLevelMultiplication, e.projectAsCube = this.projectAsCube, !this.hasImageSource && this.texture && !this.texture.isRenderTarget && this.texture.getClassName() !== \"VideoTexture\" && (e.texture = this.texture.serialize()), e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.convertToGammaSpace = e.convertToGammaSpace, this.convertToLinearSpace = !!e.convertToLinearSpace, this.disableLevelMultiplication = !!e.disableLevelMultiplication, this.projectAsCube = !!e.projectAsCube, e.texture && !Ai.IgnoreTexturesAtLoadTime && e.texture.url !== void 0 && (i = e.texture.url.indexOf(\"data:\") === 0 ? \"\" : i, this.texture = X.Parse(e.texture, t, i));\n }\n}\ny([\n ze(\"Project as cube\", 0, \"ADVANCED\", { notifiers: { update: !0 } })\n], rm.prototype, \"projectAsCube\", void 0);\nU(\"BABYLON.TriPlanarBlock\", rm);\nclass hR extends rm {\n /**\n * Create a new BiPlanarBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, !0);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"BiPlanarBlock\";\n }\n _declareLocalVarAsVec3I(e, t) {\n return t.shaderLanguage === 1 ? `var ${e}: vec3` : `ivec3 ${e}`;\n }\n _getTextureGrad(e, t) {\n return e.shaderLanguage === 1 ? `textureSampleGrad(${t},${t + \"Sampler\"}` : `textureGrad(${t}`;\n }\n _generateTextureLookup(e) {\n const t = this.samplerName, i = this.samplerYName ?? this.samplerName, s = this.sharpness.isConnected ? this.sharpness.associatedVariableName : \"1.0\", r = e._getFreeVariableName(\"dxValue\"), n = e._getFreeVariableName(\"dyValue\"), o = e._getFreeVariableName(\"n\"), l = e._getFreeVariableName(\"ma\"), h = e._getFreeVariableName(\"mi\"), c = e._getFreeVariableName(\"me\"), u = e._getFreeVariableName(\"x\"), d = e._getFreeVariableName(\"y\"), f = e._getFreeVariableName(\"w\");\n let p = \"ivec3\", _ = \"dFdx\", m = \"dFdy\";\n const x = e.fSuffix;\n e.shaderLanguage === 1 && (p = \"vec3\", _ = \"dpdx\", m = \"dpdy\"), e.compilationString += `\n // grab coord derivatives for texturing\n ${e._declareLocalVar(r, A.Vector3)} = ${_}(${this.position.associatedVariableName}.xyz);\n ${e._declareLocalVar(n, A.Vector3)} = ${m}(${this.position.associatedVariableName}.xyz);\n ${e._declareLocalVar(o, A.Vector3)} = abs(${this.normal.associatedVariableName}.xyz);\n \n // determine major axis (in x; yz are following axis)\n ${this._declareLocalVarAsVec3I(l, e)} = ${e._generateTernary(`${p}(0,1,2)`, `${e._generateTernary(`${p}(1,2,0)`, `${p}(2,0,1)`, `(${o}.y>${o}.z)`)}`, `(${o}.x>${o}.y && ${o}.x>${o}.z)`)}; \n\n // determine minor axis (in x; yz are following axis)\n ${this._declareLocalVarAsVec3I(h, e)} = ${e._generateTernary(`${p}(0,1,2)`, `${e._generateTernary(`${p}(1,2,0)`, `${p}(2,0,1)`, `(${o}.y<${o}.z)`)}`, `(${o}.x<${o}.y && ${o}.x<${o}.z)`)}; \n \n // determine median axis (in x; yz are following axis)\n ${this._declareLocalVarAsVec3I(c, e)} = ${p}(3) - ${h} - ${l};\n \n // project+fetch\n ${e._declareLocalVar(u, A.Vector4)} = ${this._getTextureGrad(e, t)}, vec2${x}(${this.position.associatedVariableName}[${l}.y], ${this.position.associatedVariableName}[${l}.z]), \n vec2${x}(${r}[${l}.y],${r}[${l}.z]), \n vec2${x}(${n}[${l}.y],${n}[${l}.z]));\n ${e._declareLocalVar(d, A.Vector4)} = ${this._getTextureGrad(e, i)}, vec2${x}(${this.position.associatedVariableName}[${c}.y], ${this.position.associatedVariableName}[${c}.z]), \n vec2${x}(${r}[${c}.y],${r}[${c}.z]),\n vec2${x}(${n}[${c}.y],${n}[${c}.z]));\n \n // blend factors\n ${e._declareLocalVar(f, A.Vector2)} = vec2${x}(${o}[${l}.x],${o}[${c}.x]);\n // make local support\n ${f} = clamp( (${f}-0.5773)/(1.0-0.5773), vec2${x}(0.0), vec2${x}(1.0) );\n // shape transition\n ${f} = pow( ${f}, vec2${x}(${s}/8.0) );\n // blend and return\n ${e._declareLocalVar(this._tempTextureRead, A.Vector4)} = (${u}*${f}.x + ${d}*${f}.y) / (${f}.x + ${f}.y);\n `;\n }\n}\nU(\"BABYLON.BiPlanarBlock\", hR);\nclass cR extends Ge {\n /**\n * Creates a new MatrixDeterminantBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"input\", A.Matrix), this.registerOutput(\"output\", A.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MatrixDeterminantBlock\";\n }\n /**\n * Gets the input matrix\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this.output, i = this.input;\n return e.compilationString += e._declareOutput(t) + ` = determinant(${i.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.MatrixDeterminantBlock\", cR);\nclass uR extends Ge {\n /**\n * Creates a new MatrixTransposeBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.registerInput(\"input\", A.Matrix), this.registerOutput(\"output\", A.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MatrixTransposeBlock\";\n }\n /**\n * Gets the input matrix\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this.output, i = this.input;\n return e.compilationString += e._declareOutput(t) + ` = transpose(${i.associatedVariableName});\n`, this;\n }\n}\nU(\"BABYLON.MatrixTransposeBlock\", uR);\nvar Wg;\n(function(a) {\n a[a.None = 0] = \"None\", a[a.Normal = 1] = \"Normal\", a[a.Tangent = 2] = \"Tangent\", a[a.VertexColor = 3] = \"VertexColor\", a[a.UV1 = 4] = \"UV1\", a[a.UV2 = 5] = \"UV2\", a[a.UV3 = 6] = \"UV3\", a[a.UV4 = 7] = \"UV4\", a[a.UV5 = 8] = \"UV5\", a[a.UV6 = 9] = \"UV6\";\n})(Wg || (Wg = {}));\nclass Uv extends Ge {\n /**\n * Creates a new MeshAttributeExistsBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.attributeType = 0, this.registerInput(\"input\", A.AutoDetect), this.registerInput(\"fallback\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1), this._inputs[0].onConnectionObservable.add((t) => {\n var s;\n if (this.attributeType)\n return;\n const i = t.ownerBlock;\n if (i instanceof ot && i.isAttribute)\n switch (i.name) {\n case \"color\":\n this.attributeType = 3;\n break;\n case \"normal\":\n this.attributeType = 1;\n break;\n case \"tangent\":\n this.attributeType = 2;\n break;\n case \"uv\":\n this.attributeType = 4;\n break;\n case \"uv2\":\n this.attributeType = 5;\n break;\n case \"uv3\":\n this.attributeType = 6;\n break;\n case \"uv4\":\n this.attributeType = 7;\n break;\n case \"uv5\":\n this.attributeType = 8;\n break;\n case \"uv6\":\n this.attributeType = 9;\n break;\n }\n else if (i instanceof wv)\n switch ((s = this.input.connectedPoint) == null ? void 0 : s.name) {\n case \"normalOutput\":\n this.attributeType = 1;\n break;\n case \"tangentOutput\":\n this.attributeType = 2;\n break;\n case \"uvOutput\":\n this.attributeType = 4;\n break;\n }\n });\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MeshAttributeExistsBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the fallback component when speciefied attribute doesn't exist\n */\n get fallback() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n let t = null;\n switch (this.attributeType) {\n case 3:\n t = \"VERTEXCOLOR_NME\";\n break;\n case 1:\n t = \"NORMAL\";\n break;\n case 2:\n t = \"TANGENT\";\n break;\n case 4:\n t = \"UV1\";\n break;\n case 5:\n t = \"UV2\";\n break;\n case 6:\n t = \"UV3\";\n break;\n case 7:\n t = \"UV4\";\n break;\n case 8:\n t = \"UV5\";\n break;\n case 9:\n t = \"UV6\";\n break;\n }\n const i = e._declareOutput(this.output);\n return t && (e.compilationString += `#ifdef ${t}\n`), e.compilationString += `${i} = ${this.input.associatedVariableName};\n`, t && (e.compilationString += `#else\n`, e.compilationString += `${i} = ${this.fallback.associatedVariableName};\n`, e.compilationString += `#endif\n`), this;\n }\n serialize() {\n const e = super.serialize();\n return e.attributeType = this.attributeType, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.attributeType = e.attributeType ?? 0;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return e += `${this._codeVariableName}.attributeType = ${this.attributeType};\n`, e;\n }\n}\ny([\n ze(\"Attribute lookup\", 4, void 0, {\n notifiers: { update: !0 },\n options: [\n {\n label: \"(None)\",\n value: 0\n /* MeshAttributeExistsBlockTypes.None */\n },\n {\n label: \"Normal\",\n value: 1\n /* MeshAttributeExistsBlockTypes.Normal */\n },\n {\n label: \"Tangent\",\n value: 2\n /* MeshAttributeExistsBlockTypes.Tangent */\n },\n {\n label: \"Vertex Color\",\n value: 3\n /* MeshAttributeExistsBlockTypes.VertexColor */\n },\n {\n label: \"UV1\",\n value: 4\n /* MeshAttributeExistsBlockTypes.UV1 */\n },\n {\n label: \"UV2\",\n value: 5\n /* MeshAttributeExistsBlockTypes.UV2 */\n },\n {\n label: \"UV3\",\n value: 6\n /* MeshAttributeExistsBlockTypes.UV3 */\n },\n {\n label: \"UV4\",\n value: 7\n /* MeshAttributeExistsBlockTypes.UV4 */\n },\n {\n label: \"UV5\",\n value: 8\n /* MeshAttributeExistsBlockTypes.UV5 */\n },\n {\n label: \"UV6\",\n value: 9\n /* MeshAttributeExistsBlockTypes.UV6 */\n }\n ]\n })\n], Uv.prototype, \"attributeType\", void 0);\nU(\"BABYLON.MeshAttributeExistsBlock\", Uv);\nvar xi;\n(function(a) {\n a[a.EaseInSine = 0] = \"EaseInSine\", a[a.EaseOutSine = 1] = \"EaseOutSine\", a[a.EaseInOutSine = 2] = \"EaseInOutSine\", a[a.EaseInQuad = 3] = \"EaseInQuad\", a[a.EaseOutQuad = 4] = \"EaseOutQuad\", a[a.EaseInOutQuad = 5] = \"EaseInOutQuad\", a[a.EaseInCubic = 6] = \"EaseInCubic\", a[a.EaseOutCubic = 7] = \"EaseOutCubic\", a[a.EaseInOutCubic = 8] = \"EaseInOutCubic\", a[a.EaseInQuart = 9] = \"EaseInQuart\", a[a.EaseOutQuart = 10] = \"EaseOutQuart\", a[a.EaseInOutQuart = 11] = \"EaseInOutQuart\", a[a.EaseInQuint = 12] = \"EaseInQuint\", a[a.EaseOutQuint = 13] = \"EaseOutQuint\", a[a.EaseInOutQuint = 14] = \"EaseInOutQuint\", a[a.EaseInExpo = 15] = \"EaseInExpo\", a[a.EaseOutExpo = 16] = \"EaseOutExpo\", a[a.EaseInOutExpo = 17] = \"EaseInOutExpo\", a[a.EaseInCirc = 18] = \"EaseInCirc\", a[a.EaseOutCirc = 19] = \"EaseOutCirc\", a[a.EaseInOutCirc = 20] = \"EaseInOutCirc\", a[a.EaseInBack = 21] = \"EaseInBack\", a[a.EaseOutBack = 22] = \"EaseOutBack\", a[a.EaseInOutBack = 23] = \"EaseInOutBack\", a[a.EaseInElastic = 24] = \"EaseInElastic\", a[a.EaseOutElastic = 25] = \"EaseOutElastic\", a[a.EaseInOutElastic = 26] = \"EaseInOutElastic\";\n})(xi || (xi = {}));\nclass dR extends Ge {\n /**\n * Creates a new CurveBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e, B.Neutral), this.type = xi.EaseInOutSine, this.registerInput(\"input\", A.AutoDetect), this.registerOutput(\"output\", A.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._inputs[0].excludedConnectionPointTypes.push(A.Matrix), this._inputs[0].excludedConnectionPointTypes.push(A.Object), this._inputs[0].excludedConnectionPointTypes.push(A.Int);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CurveBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _duplicateEntry(e, t) {\n return `ret.${t} = ${e.replace(/VAL/g, \"v.\" + t)}`;\n }\n _duplicateEntryDirect(e) {\n return `return ${e.replace(/VAL/g, \"v\")}`;\n }\n _duplicateVector(e, t, i) {\n if (t === \"float\" || t === \"f32\")\n return this._duplicateEntryDirect(e);\n const s = parseInt(t.replace(\"vec\", \"\"));\n let r = i ? `\n var ret: vec${s}f = vec${s}f(0.0);\n ` : `\n vec${s} ret = vec${s}(0.0);\n `;\n for (let n = 1; n <= s; n++)\n r += this._duplicateEntry(e, n === 1 ? \"x\" : n === 2 ? \"y\" : n === 3 ? \"z\" : \"w\") + `;\n`;\n return r += `return ret;\n`, r;\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0];\n let i = \"\", s = \"\";\n const r = e._getShaderType(this.input.type), n = e.shaderLanguage === 1;\n switch (s = xi[this.type] + \"_\" + r.replace(\"<\", \"\").replace(\">\", \"\"), this.type) {\n case xi.EaseInSine:\n i = \"return 1.0 - cos((v * 3.1415) / 2.0)\";\n break;\n case xi.EaseOutSine:\n i = \"return sin((v * 3.1415) / 2.0)\";\n break;\n case xi.EaseInOutSine:\n i = \"return -(cos(v * 3.1415) - 1.0) / 2.0\";\n break;\n case xi.EaseInQuad:\n i = \"return v * v\";\n break;\n case xi.EaseOutQuad:\n i = \"return (1.0 - v) * (1.0 - v)\";\n break;\n case xi.EaseInOutQuad: {\n const o = e._generateTernary(\"2.0 * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 2.0) / 2.0\", \"VAL < 0.5\");\n i = this._duplicateVector(o, r, n);\n break;\n }\n case xi.EaseInCubic:\n i = \"return v * v * v\";\n break;\n case xi.EaseOutCubic: {\n i = this._duplicateVector(\"1.0 - pow(1.0 - VAL, 3.0)\", r, n);\n break;\n }\n case xi.EaseInOutCubic: {\n const o = e._generateTernary(\"4.0 * VAL * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 3.0) / 2.0\", \"VAL < 0.5\");\n i = this._duplicateVector(o, r, n);\n break;\n }\n case xi.EaseInQuart:\n i = \"return v * v * v * v\";\n break;\n case xi.EaseOutQuart: {\n i = this._duplicateVector(\"1.0 - pow(1.0 - VAL, 4.0)\", r, n);\n break;\n }\n case xi.EaseInOutQuart: {\n const o = e._generateTernary(\"8.0 * VAL * VAL * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 4.0) / 2.0\", \"VAL < 0.5\");\n i = this._duplicateVector(o, r, n);\n break;\n }\n case xi.EaseInQuint:\n i = \"return v * v * v * v * v\";\n break;\n case xi.EaseOutQuint: {\n i = this._duplicateVector(\"1.0 - pow(1.0 - VAL, 5.0)\", r, n);\n break;\n }\n case xi.EaseInOutQuint: {\n const o = e._generateTernary(\"16.0 * VAL * VAL * VAL * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 5.0) / 2.0\", \"VAL < 0.5\");\n i = this._duplicateVector(o, r, n);\n break;\n }\n case xi.EaseInExpo: {\n const o = e._generateTernary(\"0.0\", \"pow(2.0, 10.0 * VAL - 10.0)\", \"VAL == 0.0\");\n i = this._duplicateVector(o, r, n);\n break;\n }\n case xi.EaseOutExpo: {\n const o = e._generateTernary(\"1.0\", \"1.0 - pow(2.0, -10.0 * VAL)\", \"VAL == 1.0\");\n i = this._duplicateVector(o, r, n);\n break;\n }\n case xi.EaseInOutExpo: {\n const o = e._generateTernary(\"0.0\", e._generateTernary(\"1.0\", e._generateTernary(\"pow(2.0, 20.0 * VAL - 10.0) / 2.0\", \"(2.0 - pow(2.0, -20.0 * VAL + 10.0)) / 2.0\", \"VAL < 0.5\"), \"VAL == 1.0\"), \"VAL == 0.0\");\n i = this._duplicateVector(o, r, n);\n break;\n }\n case xi.EaseInCirc: {\n i = this._duplicateVector(\"1.0 - sqrt(1.0 - pow(VAL, 2.0))\", r, n);\n break;\n }\n case xi.EaseOutCirc: {\n i = this._duplicateVector(\"sqrt(1.0 - pow(VAL - 1.0, 2.0))\", r, n);\n break;\n }\n case xi.EaseInOutCirc: {\n const o = e._generateTernary(\"(1.0 - sqrt(1.0 - pow(2.0 * VAL, 2.0))) / 2.0\", \"(sqrt(1.0 - pow(-2.0 * VAL + 2.0, 2.0)) + 1.0) / 2.0\", \"VAL < 0.5\");\n i = this._duplicateVector(o, r, n);\n break;\n }\n case xi.EaseInBack: {\n i = \"return 2.70158 * v * v * v - 1.70158 * v * v\";\n break;\n }\n case xi.EaseOutBack: {\n i = this._duplicateVector(\"2.70158 * pow(VAL - 1.0, 3.0) + 1.70158 * pow(VAL - 1.0, 2.0)\", r, n);\n break;\n }\n case xi.EaseInOutBack: {\n const o = e._generateTernary(\"(pow(2.0 * VAL, 2.0) * ((3.5949095) * 2.0 * VAL - 2.5949095)) / 2.0\", \"(pow(2.0 * VAL - 2.0, 2.0) * (3.5949095 * (VAL * 2.0 - 2.0) + 3.5949095) + 2.0) / 2.0\", \"VAL < 0.5\");\n i = this._duplicateVector(o, r, n);\n break;\n }\n case xi.EaseInElastic: {\n const o = e._generateTernary(\"0.0\", e._generateTernary(\"1.0\", \"-pow(2.0, 10.0 * VAL - 10.0) * sin((VAL * 10.0 - 10.75) * ((2.0 * 3.1415) / 3.0))\", \"VAL == 1.0\"), \"VAL == 0.0\");\n i = this._duplicateVector(o, r, n);\n break;\n }\n case xi.EaseOutElastic: {\n const o = e._generateTernary(\"0.0\", e._generateTernary(\"1.0\", \"pow(2.0, -10.0 * VAL) * sin((VAL * 10.0 - 0.75) * ((2.0 * 3.1415) / 3.0)) + 1.0\", \"VAL == 1.0\"), \"VAL == 0.0\");\n i = this._duplicateVector(o, r, n);\n break;\n }\n case xi.EaseInOutElastic: {\n const o = e._generateTernary(\"0.0\", e._generateTernary(\"1.0\", e._generateTernary(\"-(pow(2.0, 20.0 * VAL - 10.0) * sin((20.0 * VAL - 11.125) * ((2.0 * 3.1415) / 4.5))) / 2.0\", \"(pow(2.0, -20.0 * VAL + 10.0) * sin((20.0 * VAL - 11.125) * ((2.0 * 3.1415) / 4.5))) / 2.0 + 1.0\", \"VAL < 0.5\"), \"VAL == 1.0\"), \"VAL == 0.0\");\n i = this._duplicateVector(o, r, n);\n break;\n }\n }\n return n ? e._emitFunction(s, `fn ${s}(v: ${r}) -> ${r} {${i};}\n`, \"\") : e._emitFunction(s, `${r} ${s}(${r} v) {${i};}\n`, \"\"), e.compilationString += e._declareOutput(t) + ` = ${s}(${this.input.associatedVariableName});\n`, this;\n }\n serialize() {\n const e = super.serialize();\n return e.curveType = this.type, e;\n }\n _deserialize(e, t, i) {\n super._deserialize(e, t, i), this.type = e.curveType;\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.type = BABYLON.CurveBlockTypes.${xi[this.type]};\n`;\n }\n}\nU(\"BABYLON.CurveBlock\", dR);\nconst FU = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n AddBlock: yA,\n get AnimatedInputBlockTypes() {\n return xa;\n },\n AnisotropyBlock: Mf,\n ArcTan2Block: HA,\n BiPlanarBlock: hR,\n BonesBlock: nA,\n ClampBlock: sm,\n ClearCoatBlock: Dl,\n ClipPlanesBlock: TA,\n CloudBlock: Vv,\n ColorMergerBlock: MA,\n ColorSplitterBlock: Cv,\n ConditionalBlock: aR,\n get ConditionalBlockConditions() {\n return Jr;\n },\n CrossBlock: AA,\n CurrentScreenBlock: Sv,\n CurveBlock: dR,\n get CurveBlockTypes() {\n return xi;\n },\n CustomBlock: RA,\n DerivativeBlock: cA,\n DesaturateBlock: sR,\n DiscardBlock: lA,\n DistanceBlock: UA,\n DivideBlock: wA,\n DotBlock: IA,\n ElbowBlock: lR,\n FogBlock: xA,\n FragCoordBlock: uA,\n FragDepthBlock: _A,\n FragmentOutputBlock: Qa,\n FresnelBlock: LA,\n FrontFacingBlock: hA,\n GradientBlock: qA,\n GradientBlockColorStep: Sp,\n HeightToNormalBlock: If,\n ImageProcessingBlock: Nv,\n ImageSourceBlock: Fn,\n InputBlock: ot,\n InstancesBlock: aA,\n LengthBlock: kA,\n LerpBlock: OA,\n LightBlock: Kp,\n LightInformationBlock: oA,\n MatrixBuilderBlock: nR,\n MatrixDeterminantBlock: cR,\n MatrixTransposeBlock: uR,\n MaxBlock: BA,\n MeshAttributeExistsBlock: Uv,\n get MeshAttributeExistsBlockTypes() {\n return Wg;\n },\n MinBlock: VA,\n ModBlock: rR,\n MorphTargetsBlock: wv,\n MultiplyBlock: Xp,\n NLerpBlock: QA,\n NegateBlock: GA,\n NodeMaterialTeleportInBlock: bA,\n NodeMaterialTeleportOutBlock: EA,\n NormalBlendBlock: JA,\n NormalizeBlock: PA,\n OneMinusBlock: Fv,\n PBRMetallicRoughnessBlock: ms,\n ParticleBlendMultiplyBlock: yv,\n ParticleRampGradientBlock: Ev,\n ParticleTextureBlock: bv,\n PerturbNormalBlock: Ac,\n PosterizeBlock: jA,\n PowBlock: zA,\n PrePassOutputBlock: gA,\n PrePassTextureBlock: SA,\n RandomNumberBlock: WA,\n ReciprocalBlock: $A,\n ReflectBlock: tR,\n ReflectionBlock: $l,\n ReflectionTextureBaseBlock: sc,\n ReflectionTextureBlock: vA,\n RefractBlock: iR,\n RefractionBlock: al,\n RemapBlock: Af,\n ReplaceColorBlock: YA,\n Rotate2dBlock: eR,\n ScaleBlock: CA,\n SceneDepthBlock: Pf,\n ScreenSizeBlock: dA,\n ScreenSpaceBlock: fA,\n ShadowMapBlock: mA,\n SheenBlock: Xl,\n SimplexPerlin3DBlock: ZA,\n SmoothStepBlock: XA,\n StepBlock: FA,\n SubSurfaceBlock: rc,\n SubtractBlock: NA,\n TBNBlock: Hl,\n TextureBlock: Eu,\n TransformBlock: Hp,\n TriPlanarBlock: rm,\n TrigonometryBlock: Av,\n get TrigonometryBlockOperations() {\n return rs;\n },\n TwirlBlock: pA,\n VectorMergerBlock: au,\n VectorSplitterBlock: DA,\n VertexOutputBlock: nu,\n ViewDirectionBlock: Lv,\n VoronoiNoiseBlock: oR,\n WaveBlock: KA,\n get WaveBlockKind() {\n return zg;\n },\n WorleyNoise3DBlock: Bv\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar NE;\n(function(a) {\n a[a.Created = 1] = \"Created\", a[a.Disposed = 2] = \"Disposed\", a[a.GetDefineNames = 4] = \"GetDefineNames\", a[a.PrepareUniformBuffer = 8] = \"PrepareUniformBuffer\", a[a.IsReadyForSubMesh = 16] = \"IsReadyForSubMesh\", a[a.PrepareDefines = 32] = \"PrepareDefines\", a[a.BindForSubMesh = 64] = \"BindForSubMesh\", a[a.PrepareEffect = 128] = \"PrepareEffect\", a[a.GetAnimatables = 256] = \"GetAnimatables\", a[a.GetActiveTextures = 512] = \"GetActiveTextures\", a[a.HasTexture = 1024] = \"HasTexture\", a[a.FillRenderTargetTextures = 2048] = \"FillRenderTargetTextures\", a[a.HasRenderTargetTextures = 4096] = \"HasRenderTargetTextures\", a[a.HardBindForSubMesh = 8192] = \"HardBindForSubMesh\";\n})(NE || (NE = {}));\nclass LU extends dr {\n constructor() {\n super(...arguments), this.DECAL = !1, this.DECALDIRECTUV = 0, this.DECAL_SMOOTHALPHA = !1, this.GAMMADECAL = !1;\n }\n}\nclass Df extends br {\n /** @internal */\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled), this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n /**\n * Creates a new DecalMapConfiguration\n * @param material The material to attach the decal map plugin to\n * @param addToPluginList If the plugin should be added to the material plugin list\n */\n constructor(e, t = !0) {\n super(e, \"DecalMap\", 150, new LU(), t), this._isEnabled = !1, this.isEnabled = !1, this._smoothAlpha = !1, this.smoothAlpha = !1, this.registerForExtraEvents = !0, this._internalMarkAllSubMeshesAsTexturesDirty = e._dirtyCallbacks[1];\n }\n isReadyForSubMesh(e, t, i, s) {\n const r = s.getMesh().decalMap;\n return !this._isEnabled || !(r != null && r.texture) || !xe.DecalMapEnabled || !t.texturesEnabled ? !0 : r.isReady();\n }\n prepareDefines(e, t, i) {\n const s = i.decalMap;\n !this._isEnabled || !(s != null && s.texture) || !xe.DecalMapEnabled || !t.texturesEnabled ? (e.DECAL && e.markAsTexturesDirty(), e.DECAL = !1) : ((!e.DECAL || e.GAMMADECAL !== s.texture.gammaSpace) && e.markAsTexturesDirty(), e.DECAL = !0, e.GAMMADECAL = s.texture.gammaSpace, e.DECAL_SMOOTHALPHA = this._smoothAlpha, ci(s.texture, e, \"DECAL\"));\n }\n hardBindForSubMesh(e, t, i, s) {\n const r = s.getMesh().decalMap;\n if (!this._isEnabled || !(r != null && r.texture) || !xe.DecalMapEnabled || !t.texturesEnabled)\n return;\n const n = this._material.isFrozen, o = r.texture;\n (!e.useUbo || !n || !e.isSync) && (e.updateFloat4(\"vDecalInfos\", o.coordinatesIndex, 0, 0, 0), pi(o, e, \"decal\")), e.setTexture(\"decalSampler\", o);\n }\n getClassName() {\n return \"DecalMapConfiguration\";\n }\n getSamplers(e) {\n e.push(\"decalSampler\");\n }\n getUniforms() {\n return {\n ubo: [\n { name: \"vDecalInfos\", size: 4, type: \"vec4\" },\n { name: \"decalMatrix\", size: 16, type: \"mat4\" }\n ]\n };\n }\n}\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], Df.prototype, \"isEnabled\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], Df.prototype, \"smoothAlpha\", void 0);\nU(\"BABYLON.DecalMapConfiguration\", Df);\nclass Gs {\n}\nGs.DEFAULT_COLOR = re.White();\nGs.DEFAULT_WIDTH_ATTENUATED = 1;\nGs.DEFAULT_WIDTH = 0.1;\nclass qt {\n /**\n * Converts GreasedLinePoints to number[][]\n * @param points GreasedLinePoints\n * @returns number[][] with x, y, z coordinates of the points, like [[x, y, z, x, y, z, ...], [x, y, z, ...]]\n */\n static ConvertPoints(e) {\n if (e.length && Array.isArray(e) && typeof e[0] == \"number\")\n return [e];\n if (e.length && Array.isArray(e[0]) && typeof e[0][0] == \"number\")\n return e;\n if (e.length && !Array.isArray(e[0]) && e[0] instanceof g) {\n const t = [];\n for (let i = 0; i < e.length; i++) {\n const s = e[i];\n t.push(s.x, s.y, s.z);\n }\n return [t];\n } else if (e.length > 0 && Array.isArray(e[0]) && e[0].length > 0 && e[0][0] instanceof g) {\n const t = [];\n return e.forEach((s) => {\n t.push(s.flatMap((r) => [r.x, r.y, r.z]));\n }), t;\n } else {\n if (e instanceof Float32Array)\n return [Array.from(e)];\n if (e.length && e[0] instanceof Float32Array) {\n const t = [];\n return e.forEach((i) => {\n t.push(Array.from(i));\n }), t;\n }\n }\n return [];\n }\n /**\n * Omit zero length lines predicate for the MeshesToLines function\n * @param p1 point1 position of the face\n * @param p2 point2 position of the face\n * @param p3 point3 position of the face\n * @returns original points or null if any edge length is zero\n */\n static OmitZeroLengthPredicate(e, t, i) {\n const s = [];\n return t.subtract(e).lengthSquared() > 0 && s.push([e, t]), i.subtract(t).lengthSquared() > 0 && s.push([t, i]), e.subtract(i).lengthSquared() > 0 && s.push([i, e]), s.length === 0 ? null : s;\n }\n /**\n * Omit duplicate lines predicate for the MeshesToLines function\n * @param p1 point1 position of the face\n * @param p2 point2 position of the face\n * @param p3 point3 position of the face\n * @param points array of points to search in\n * @returns original points or null if any edge length is zero\n */\n static OmitDuplicatesPredicate(e, t, i, s) {\n const r = [];\n return qt._SearchInPoints(e, t, s) || r.push([e, t]), qt._SearchInPoints(t, i, s) || r.push([t, i]), qt._SearchInPoints(i, e, s) || r.push([i, e]), r.length === 0 ? null : r;\n }\n static _SearchInPoints(e, t, i) {\n var s, r, n;\n for (const o of i)\n for (let l = 0; l < o.length; l++)\n if ((s = o[l]) != null && s.equals(e) && ((r = o[l + 1]) != null && r.equals(t) || (n = o[l - 1]) != null && n.equals(t)))\n return !0;\n return !1;\n }\n /**\n * Gets mesh triangles as line positions\n * @param meshes array of meshes\n * @param predicate predicate function which decides whether to include the mesh triangle/face in the ouput\n * @returns array of arrays of points\n */\n static MeshesToLines(e, t) {\n const i = [];\n return e.forEach((s, r) => {\n const n = s.getVerticesData(R.PositionKind), o = s.getIndices();\n if (n && o)\n for (let l = 0, h = 0; l < o.length; l++) {\n const c = o[h++] * 3, u = o[h++] * 3, d = o[h++] * 3, f = new g(n[c], n[c + 1], n[c + 2]), p = new g(n[u], n[u + 1], n[u + 2]), _ = new g(n[d], n[d + 1], n[d + 2]);\n if (t) {\n const m = t(f, p, _, i, l, c, s, r, n, o);\n if (m)\n for (const x of m)\n i.push(x);\n } else\n i.push([f, p], [p, _], [_, f]);\n }\n }), i;\n }\n /**\n * Converts number coordinates to Vector3s\n * @param points number array of x, y, z, x, y z, ... coordinates\n * @returns Vector3 array\n */\n static ToVector3Array(e) {\n if (Array.isArray(e[0])) {\n const s = [], r = e;\n for (const n of r) {\n const o = [];\n for (let l = 0; l < n.length; l += 3)\n o.push(new g(n[l], n[l + 1], n[l + 2]));\n s.push(o);\n }\n return s;\n }\n const t = e, i = [];\n for (let s = 0; s < t.length; s += 3)\n i.push(new g(t[s], t[s + 1], t[s + 2]));\n return i;\n }\n /**\n * Gets a number array from a Vector3 array.\n * You can you for example to convert your Vector3[] offsets to the required number[] for the offsets option.\n * @param points Vector3 array\n * @returns an array of x, y, z coordinates as numbers [x, y, z, x, y, z, x, y, z, ....]\n */\n static ToNumberArray(e) {\n return e.flatMap((t) => [t.x, t.y, t.z]);\n }\n /**\n * Calculates the sum of points of every line and the number of points in each line.\n * This function is useful when you are drawing multiple lines in one mesh and you want\n * to know the counts. For example for creating an offsets table.\n * @param points point array\n * @returns points count info\n */\n static GetPointsCountInfo(e) {\n const t = new Array(e.length);\n let i = 0;\n for (let s = e.length; s--; )\n t[s] = e[s].length / 3, i += t[s];\n return { total: i, counts: t };\n }\n /**\n * Gets the length of the line counting all it's segments length\n * @param data array of line points\n * @returns length of the line\n */\n static GetLineLength(e) {\n if (e.length === 0)\n return 0;\n let t;\n typeof e[0] == \"number\" ? t = qt.ToVector3Array(e) : t = e;\n const i = w.Vector3[0];\n let s = 0;\n for (let r = 0; r < t.length - 1; r++) {\n const n = t[r], o = t[r + 1];\n s += o.subtractToRef(n, i).length();\n }\n return s;\n }\n /**\n * Gets the the length from the beginning to each point of the line as array.\n * @param data array of line points\n * @returns length array of the line\n */\n static GetLineLengthArray(e) {\n const t = new Float32Array(e.length / 3);\n let i = 0;\n for (let s = 0, r = e.length / 3 - 1; s < r; s++) {\n let n = e[s * 3 + 0], o = e[s * 3 + 1], l = e[s * 3 + 2];\n n -= e[s * 3 + 3], o -= e[s * 3 + 4], l -= e[s * 3 + 5];\n const h = Math.sqrt(n * n + o * o + l * l);\n i += h, t[s + 1] = i;\n }\n return t;\n }\n /**\n * Divides a segment into smaller segments.\n * A segment is a part of the line between it's two points.\n * @param point1 first point of the line\n * @param point2 second point of the line\n * @param segmentCount number of segments we want to have in the divided line\n * @returns\n */\n static SegmentizeSegmentByCount(e, t, i) {\n const s = [], r = t.subtract(e), n = w.Vector3[0];\n n.setAll(i);\n const o = w.Vector3[1];\n r.divideToRef(n, o);\n let l = e.clone();\n s.push(l);\n for (let h = 0; h < i; h++)\n l = l.clone(), s.push(l.addInPlace(o));\n return s;\n }\n /**\n * Divides a line into segments.\n * A segment is a part of the line between it's two points.\n * @param what line points\n * @param segmentLength length of each segment of the resulting line (distance between two line points)\n * @returns line point\n */\n static SegmentizeLineBySegmentLength(e, t) {\n const i = e[0] instanceof g ? qt.GetLineSegments(e) : typeof e[0] == \"number\" ? qt.GetLineSegments(qt.ToVector3Array(e)) : e, s = [];\n return i.forEach((r) => {\n r.length > t ? qt.SegmentizeSegmentByCount(r.point1, r.point2, Math.ceil(r.length / t)).forEach((o) => {\n s.push(o);\n }) : (s.push(r.point1), s.push(r.point2));\n }), s;\n }\n /**\n * Divides a line into segments.\n * A segment is a part of the line between it's two points.\n * @param what line points\n * @param segmentCount number of segments\n * @returns line point\n */\n static SegmentizeLineBySegmentCount(e, t) {\n const i = typeof e[0] == \"number\" ? qt.ToVector3Array(e) : e, s = qt.GetLineLength(i) / t;\n return qt.SegmentizeLineBySegmentLength(i, s);\n }\n /**\n * Gets line segments.\n * A segment is a part of the line between it's two points.\n * @param points line points\n * @returns segments information of the line segment including starting point, ending point and the distance between them\n */\n static GetLineSegments(e) {\n const t = [];\n for (let i = 0; i < e.length - 1; i++) {\n const s = e[i], r = e[i + 1], n = r.subtract(s).length();\n t.push({ point1: s, point2: r, length: n });\n }\n return t;\n }\n /**\n * Gets the minimum and the maximum length of a line segment in the line.\n * A segment is a part of the line between it's two points.\n * @param points line points\n * @returns\n */\n static GetMinMaxSegmentLength(e) {\n const i = qt.GetLineSegments(e).sort((s) => s.length);\n return {\n min: i[0].length,\n max: i[i.length - 1].length\n };\n }\n /**\n * Finds the last visible position in world space of the line according to the visibility parameter\n * @param lineSegments segments of the line\n * @param lineLength total length of the line\n * @param visbility normalized value of visibility\n * @param localSpace if true the result will be in local space (default is false)\n * @returns world space coordinate of the last visible piece of the line\n */\n static GetPositionOnLineByVisibility(e, t, i, s = !1) {\n const r = t * i;\n let n = 0, o = 0;\n const l = e.length;\n for (let c = 0; c < l; c++) {\n if (r <= n + e[c].length) {\n o = c;\n break;\n }\n n += e[c].length;\n }\n const h = (r - n) / e[o].length;\n return e[o].point2.subtractToRef(e[o].point1, w.Vector3[0]), w.Vector3[1] = w.Vector3[0].multiplyByFloats(h, h, h), s || w.Vector3[1].addInPlace(e[o].point1), w.Vector3[1].clone();\n }\n /**\n * Creates lines in a shape of circle/arc.\n * A segment is a part of the line between it's two points.\n * @param radiusX radiusX of the circle\n * @param segments number of segments in the circle\n * @param z z coordinate of the points. Defaults to 0.\n * @param radiusY radiusY of the circle - you can draw an oval if using different values\n * @param segmentAngle angle offset of the segments. Defaults to Math.PI * 2 / segments. Change this value to draw a part of the circle.\n * @returns line points\n */\n static GetCircleLinePoints(e, t, i = 0, s = e, r = Math.PI * 2 / t) {\n const n = [];\n for (let o = 0; o <= t; o++)\n n.push(new g(Math.cos(o * r) * e, Math.sin(o * r) * s, i));\n return n;\n }\n /**\n * Gets line points in a shape of a bezier curve\n * @param p0 bezier point0\n * @param p1 bezier point1\n * @param p2 bezier point2\n * @param segments number of segments in the curve\n * @returns\n */\n static GetBezierLinePoints(e, t, i, s) {\n return _a.CreateQuadraticBezier(e, t, i, s).getPoints().flatMap((r) => [r.x, r.y, r.z]);\n }\n /**\n *\n * @param position position of the arrow cap (mainly you want to create a triangle, set widthUp and widthDown to the same value and omit widthStartUp and widthStartDown)\n * @param direction direction which the arrow points to\n * @param length length (size) of the arrow cap itself\n * @param widthUp the arrow width above the line\n * @param widthDown the arrow width belove the line\n * @param widthStartUp the arrow width at the start of the arrow above the line. In most scenarios this is 0.\n * @param widthStartDown the arrow width at the start of the arrow below the line. In most scenarios this is 0.\n * @returns\n */\n static GetArrowCap(e, t, i, s, r, n = 0, o = 0) {\n return {\n points: [e.clone(), e.add(t.multiplyByFloats(i, i, i))],\n widths: [s, r, n, o]\n };\n }\n /**\n * Gets 3D positions of points from a text and font\n * @param text Text\n * @param size Size of the font\n * @param resolution Resolution of the font\n * @param fontData defines the font data (can be generated with http://gero3.github.io/facetype.js/)\n * @param z z coordinate\n * @param includeInner include the inner parts of the font in the result. Default true. If false, only the outlines will be returned.\n * @returns number[][] of 3D positions\n */\n static GetPointsFromText(e, t, i, s, r = 0, n = !0) {\n const o = [], l = I0(e, t, i, s);\n for (const h of l) {\n for (const c of h.paths) {\n const u = [], d = c.getPoints();\n for (const f of d)\n u.push(f.x, f.y, r);\n o.push(u);\n }\n if (n)\n for (const c of h.holes) {\n const u = [], d = c.getPoints();\n for (const f of d)\n u.push(f.x, f.y, r);\n o.push(u);\n }\n }\n return o;\n }\n /**\n * Converts an array of Color3 to Uint8Array\n * @param colors Arrray of Color3\n * @returns Uin8Array of colors [r, g, b, a, r, g, b, a, ...]\n */\n static Color3toRGBAUint8(e) {\n const t = new Uint8Array(e.length * 4);\n for (let i = 0, s = 0; i < e.length; i++)\n t[s++] = e[i].r * 255, t[s++] = e[i].g * 255, t[s++] = e[i].b * 255, t[s++] = 255;\n return t;\n }\n /**\n * Creates a RawTexture from an RGBA color array and sets it on the plugin material instance.\n * @param name name of the texture\n * @param colors Uint8Array of colors\n * @param colorsSampling sampling mode of the created texture\n * @param scene Scene\n * @returns the colors texture\n */\n static CreateColorsTexture(e, t, i, s) {\n const r = s.getEngine().getCaps().maxTextureSize ?? 1, n = t.length > r ? r : t.length, o = Math.ceil(t.length / r);\n o > 1 && (t = [...t, ...Array(n * o - t.length).fill(t[0])]);\n const l = qt.Color3toRGBAUint8(t), h = new _i(l, n, o, ee.TEXTUREFORMAT_RGBA, s, !1, !0, i);\n return h.name = e, h;\n }\n /**\n * A minimum size texture for the colors sampler2D when there is no colors texture defined yet.\n * For fast switching using the useColors property without the need to use defines.\n * @param scene Scene\n * @returns empty colors texture\n */\n static PrepareEmptyColorsTexture(e) {\n if (!Gs.EmptyColorsTexture) {\n const t = new Uint8Array(4);\n Gs.EmptyColorsTexture = new _i(t, 1, 1, ee.TEXTUREFORMAT_RGBA, e, !1, !1, _i.NEAREST_NEAREST), Gs.EmptyColorsTexture.name = \"grlEmptyColorsTexture\";\n }\n return Gs.EmptyColorsTexture;\n }\n /**\n * Diposes the shared empty colors texture\n */\n static DisposeEmptyColorsTexture() {\n var e;\n (e = Gs.EmptyColorsTexture) == null || e.dispose(), Gs.EmptyColorsTexture = null;\n }\n /**\n * Converts boolean to number.\n * @param bool the bool value\n * @returns 1 if true, 0 if false.\n */\n static BooleanToNumber(e) {\n return e ? 1 : 0;\n }\n}\nclass BU extends dr {\n constructor() {\n super(...arguments), this.GREASED_LINE_HAS_COLOR = !1, this.GREASED_LINE_SIZE_ATTENUATION = !1, this.GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE = !1, this.GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM = !1, this.GREASED_LINE_CAMERA_FACING = !0;\n }\n}\nclass go extends br {\n /**\n * Creates a new instance of the GreasedLinePluginMaterial\n * @param material base material for the plugin\n * @param scene the scene\n * @param options plugin options\n */\n constructor(e, t, i) {\n i = i || {\n color: Gs.DEFAULT_COLOR\n };\n const s = new BU();\n s.GREASED_LINE_HAS_COLOR = !!i.color && !i.useColors, s.GREASED_LINE_SIZE_ATTENUATION = i.sizeAttenuation ?? !1, s.GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE = i.colorDistributionType === 1, s.GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM = (t ?? e.getScene()).useRightHandedSystem, s.GREASED_LINE_CAMERA_FACING = i.cameraFacing ?? !0, super(e, go.GREASED_LINE_MATERIAL_NAME, 200, s), this.colorsTexture = null, this._scene = t ?? e.getScene(), this._engine = this._scene.getEngine(), this._cameraFacing = i.cameraFacing ?? !0, this.visibility = i.visibility ?? 1, this.useDash = i.useDash ?? !1, this.dashRatio = i.dashRatio ?? 0.5, this.dashOffset = i.dashOffset ?? 0, this.width = i.width ? i.width : i.sizeAttenuation ? Gs.DEFAULT_WIDTH_ATTENUATED : Gs.DEFAULT_WIDTH, this._sizeAttenuation = i.sizeAttenuation ?? !1, this.colorMode = i.colorMode ?? 0, this._color = i.color ?? null, this.useColors = i.useColors ?? !1, this._colorsDistributionType = i.colorDistributionType ?? 0, this.colorsSampling = i.colorsSampling ?? _i.NEAREST_NEAREST, this._colors = i.colors ?? null, this.dashCount = i.dashCount ?? 1, this.resolution = i.resolution ?? new Q(this._engine.getRenderWidth(), this._engine.getRenderHeight()), i.colorsTexture ? this.colorsTexture = i.colorsTexture : this._colors ? this.colorsTexture = qt.CreateColorsTexture(`${e.name}-colors-texture`, this._colors, this.colorsSampling, this._scene) : (this._color = this._color ?? Gs.DEFAULT_COLOR, qt.PrepareEmptyColorsTexture(this._scene)), this._engine.onDisposeObservable.add(() => {\n qt.DisposeEmptyColorsTexture();\n }), this._enable(!0);\n }\n /**\n * Get the shader attributes\n * @param attributes array which will be filled with the attributes\n */\n getAttributes(e) {\n e.push(\"grl_offsets\"), e.push(\"grl_widths\"), e.push(\"grl_colorPointers\"), e.push(\"grl_counters\"), this._cameraFacing ? (e.push(\"grl_previousAndSide\"), e.push(\"grl_nextAndCounters\")) : e.push(\"grl_slopes\");\n }\n /**\n * Get the shader samplers\n * @param samplers\n */\n getSamplers(e) {\n e.push(\"grl_colors\");\n }\n /**\n * Get the shader textures\n * @param activeTextures array which will be filled with the textures\n */\n getActiveTextures(e) {\n this.colorsTexture && e.push(this.colorsTexture);\n }\n /**\n * Get the shader uniforms\n * @returns uniforms\n */\n getUniforms() {\n const e = [\n { name: \"grl_singleColor\", size: 3, type: \"vec3\" },\n { name: \"grl_textureSize\", size: 2, type: \"vec2\" },\n { name: \"grl_dashOptions\", size: 4, type: \"vec4\" },\n { name: \"grl_colorMode_visibility_colorsWidth_useColors\", size: 4, type: \"vec4\" }\n ];\n return this._cameraFacing && e.push({ name: \"grl_projection\", size: 16, type: \"mat4\" }, { name: \"grl_aspect_resolution_lineWidth\", size: 4, type: \"vec4\" }), {\n ubo: e,\n vertex: this._cameraFacing ? `\n uniform vec4 grl_aspect_resolution_lineWidth;\n uniform mat4 grl_projection;\n ` : \"\",\n fragment: `\n uniform vec4 grl_dashOptions;\n uniform vec2 grl_textureSize;\n uniform vec4 grl_colorMode_visibility_colorsWidth_useColors;\n uniform vec3 grl_singleColor;\n `\n };\n }\n // only getter, it doesn't make sense to use this plugin on a mesh other than GreasedLineMesh\n // and it doesn't make sense to disable it on the mesh\n get isEnabled() {\n return !0;\n }\n /**\n * Bind the uniform buffer\n * @param uniformBuffer\n */\n bindForSubMesh(e) {\n if (this._cameraFacing) {\n const r = this._scene.activeCamera;\n if (r) {\n const o = r.getProjectionMatrix();\n e.updateMatrix(\"grl_projection\", o);\n } else\n throw Error(\"GreasedLinePluginMaterial requires an active camera.\");\n const n = w.Vector4[0];\n n.x = this._aspect, n.y = this._resolution.x, n.z = this._resolution.y, n.w = this.width, e.updateVector4(\"grl_aspect_resolution_lineWidth\", n);\n }\n const t = w.Vector4[0];\n t.x = qt.BooleanToNumber(this.useDash), t.y = this._dashArray, t.z = this.dashOffset, t.w = this.dashRatio, e.updateVector4(\"grl_dashOptions\", t);\n const i = w.Vector4[1];\n i.x = this.colorMode, i.y = this.visibility, i.z = this.colorsTexture ? this.colorsTexture.getSize().width : 0, i.w = qt.BooleanToNumber(this.useColors), e.updateVector4(\"grl_colorMode_visibility_colorsWidth_useColors\", i), this._color && e.updateColor3(\"grl_singleColor\", this._color);\n const s = this.colorsTexture ?? Gs.EmptyColorsTexture;\n e.setTexture(\"grl_colors\", s), e.updateFloat2(\"grl_textureSize\", (s == null ? void 0 : s.getSize().width) ?? 1, (s == null ? void 0 : s.getSize().height) ?? 1);\n }\n /**\n * Prepare the defines\n * @param defines\n * @param _scene\n * @param _mesh\n */\n prepareDefines(e, t, i) {\n e.GREASED_LINE_HAS_COLOR = !!this.color && !this.useColors, e.GREASED_LINE_SIZE_ATTENUATION = this._sizeAttenuation, e.GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE = this._colorsDistributionType === 1, e.GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM = t.useRightHandedSystem, e.GREASED_LINE_CAMERA_FACING = this._cameraFacing;\n }\n /**\n * Get the class name\n * @returns class name\n */\n getClassName() {\n return go.GREASED_LINE_MATERIAL_NAME;\n }\n /**\n * Get shader code\n * @param shaderType vertex/fragment\n * @returns shader code\n */\n getCustomCode(e) {\n if (e === \"vertex\") {\n const t = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_VERTEX_DEFINITIONS: `\n attribute float grl_widths;\n attribute vec3 grl_offsets;\n attribute float grl_colorPointers;\n varying float grlCounters;\n varying float grlColorPointer;\n\n #ifdef GREASED_LINE_CAMERA_FACING\n attribute vec4 grl_previousAndSide;\n attribute vec4 grl_nextAndCounters;\n\n vec2 grlFix( vec4 i, float aspect ) {\n vec2 res = i.xy / i.w;\n res.x *= aspect;\n return res;\n }\n #else\n attribute vec3 grl_slopes;\n attribute float grl_counters;\n #endif\n `,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_VERTEX_UPDATE_POSITION: `\n #ifdef GREASED_LINE_CAMERA_FACING\n vec3 grlPositionOffset = grl_offsets;\n positionUpdated += grlPositionOffset;\n #else\n positionUpdated = (positionUpdated + grl_offsets) + (grl_slopes * grl_widths);\n #endif\n `,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_VERTEX_MAIN_END: `\n grlColorPointer = grl_colorPointers;\n\n #ifdef GREASED_LINE_CAMERA_FACING\n\n float grlAspect = grl_aspect_resolution_lineWidth.x;\n float grlBaseWidth = grl_aspect_resolution_lineWidth.w;\n\n\n vec3 grlPrevious = grl_previousAndSide.xyz;\n float grlSide = grl_previousAndSide.w;\n\n vec3 grlNext = grl_nextAndCounters.xyz;\n grlCounters = grl_nextAndCounters.w;\n\n mat4 grlMatrix = viewProjection * finalWorld;\n vec4 grlFinalPosition = grlMatrix * vec4( positionUpdated , 1.0 );\n vec4 grlPrevPos = grlMatrix * vec4( grlPrevious + grlPositionOffset, 1.0 );\n vec4 grlNextPos = grlMatrix * vec4( grlNext + grlPositionOffset, 1.0 );\n\n vec2 grlCurrentP = grlFix( grlFinalPosition, grlAspect );\n vec2 grlPrevP = grlFix( grlPrevPos, grlAspect );\n vec2 grlNextP = grlFix( grlNextPos, grlAspect );\n\n float grlWidth = grlBaseWidth * grl_widths;\n\n vec2 grlDir;\n if( grlNextP == grlCurrentP ) grlDir = normalize( grlCurrentP - grlPrevP );\n else if( grlPrevP == grlCurrentP ) grlDir = normalize( grlNextP - grlCurrentP );\n else {\n vec2 grlDir1 = normalize( grlCurrentP - grlPrevP );\n vec2 grlDir2 = normalize( grlNextP - grlCurrentP );\n grlDir = normalize( grlDir1 + grlDir2 );\n }\n vec4 grlNormal = vec4( -grlDir.y, grlDir.x, 0., 1. );\n #ifdef GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM\n grlNormal.xy *= -.5 * grlWidth;\n #else\n grlNormal.xy *= .5 * grlWidth;\n #endif\n\n grlNormal *= grl_projection;\n\n #ifdef GREASED_LINE_SIZE_ATTENUATION\n grlNormal.xy *= grlFinalPosition.w;\n grlNormal.xy /= ( vec4( grl_aspect_resolution_lineWidth.yz, 0., 1. ) * grl_projection ).xy;\n #endif\n\n grlFinalPosition.xy += grlNormal.xy * grlSide;\n gl_Position = grlFinalPosition;\n\n vPositionW = vec3(grlFinalPosition);\n #else\n grlCounters = grl_counters;\n #endif\n `\n };\n return this._cameraFacing && (t[\"!gl_Position\\\\=viewProjection\\\\*worldPos;\"] = \"//\"), t;\n }\n return e === \"fragment\" ? {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_DEFINITIONS: `\n varying float grlCounters;\n varying float grlColorPointer;\n uniform sampler2D grl_colors;\n `,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_MAIN_END: `\n float grlColorMode = grl_colorMode_visibility_colorsWidth_useColors.x;\n float grlVisibility = grl_colorMode_visibility_colorsWidth_useColors.y;\n float grlColorsWidth = grl_colorMode_visibility_colorsWidth_useColors.z;\n float grlUseColors = grl_colorMode_visibility_colorsWidth_useColors.w;\n\n float grlUseDash = grl_dashOptions.x;\n float grlDashArray = grl_dashOptions.y;\n float grlDashOffset = grl_dashOptions.z;\n float grlDashRatio = grl_dashOptions.w;\n\n gl_FragColor.a *= step(grlCounters, grlVisibility);\n if( gl_FragColor.a == 0. ) discard;\n\n if(grlUseDash == 1.){\n gl_FragColor.a *= ceil(mod(grlCounters + grlDashOffset, grlDashArray) - (grlDashArray * grlDashRatio));\n if (gl_FragColor.a == 0.) discard;\n }\n\n #ifdef GREASED_LINE_HAS_COLOR\n if (grlColorMode == 0.) {\n gl_FragColor.rgb = grl_singleColor;\n } else if (grlColorMode == 1.) {\n gl_FragColor.rgb += grl_singleColor;\n } else if (grlColorMode == 2.) {\n gl_FragColor.rgb *= grl_singleColor;\n }\n #else\n if (grlUseColors == 1.) {\n #ifdef GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE\n vec4 grlColor = texture2D(grl_colors, vec2(grlCounters, 0.), 0.);\n #else\n vec2 lookup = vec2(fract(grlColorPointer / grl_textureSize.x), 1.0 - floor(grlColorPointer / grl_textureSize.x) / max(grl_textureSize.y - 1.0, 1.0));\n vec4 grlColor = texture2D(grl_colors, lookup, 0.0);\n #endif\n if (grlColorMode == 0.) {\n gl_FragColor = grlColor;\n } else if (grlColorMode == 1.) {\n gl_FragColor += grlColor;\n } else if (grlColorMode == 2.) {\n gl_FragColor *= grlColor;\n }\n }\n #endif\n\n `\n } : null;\n }\n /**\n * Disposes the plugin material.\n */\n dispose() {\n var e;\n (e = this.colorsTexture) == null || e.dispose(), super.dispose();\n }\n /**\n * Returns the colors used to colorize the line\n */\n get colors() {\n return this._colors;\n }\n /**\n * Sets the colors used to colorize the line\n */\n set colors(e) {\n this.setColors(e);\n }\n /**\n * Creates or updates the colors texture\n * @param colors color table RGBA\n * @param lazy if lazy, the colors are not updated\n * @param forceNewTexture force creation of a new texture\n */\n setColors(e, t = !1, i = !1) {\n var r, n, o;\n const s = ((r = this._colors) == null ? void 0 : r.length) ?? 0;\n if (this._colors = e, e === null || e.length === 0) {\n (n = this.colorsTexture) == null || n.dispose();\n return;\n }\n if (!(t && !i))\n if (this.colorsTexture && s === e.length && !i) {\n const l = qt.Color3toRGBAUint8(e);\n this.colorsTexture.update(l);\n } else\n (o = this.colorsTexture) == null || o.dispose(), this.colorsTexture = qt.CreateColorsTexture(`${this._material.name}-colors-texture`, e, this.colorsSampling, this._scene);\n }\n /**\n * Updates the material. Use when material created in lazy mode.\n */\n updateLazy() {\n this._colors && this.setColors(this._colors, !1, !0);\n }\n /**\n * Gets the number of dashes in the line\n */\n get dashCount() {\n return this._dashCount;\n }\n /**\n * Sets the number of dashes in the line\n * @param value dash\n */\n set dashCount(e) {\n this._dashCount = e, this._dashArray = 1 / e;\n }\n /**\n * If set to true the line will be rendered always with the same width regardless how far it is located from the camera.\n * Not supported for non camera facing lines.\n */\n get sizeAttenuation() {\n return this._sizeAttenuation;\n }\n /**\n * Turn on/off size attenuation of the width option and widths array.\n * Not supported for non camera facing lines.\n * @param value If set to true the line will be rendered always with the same width regardless how far it is located from the camera.\n */\n set sizeAttenuation(e) {\n this._sizeAttenuation = e, this.markAllDefinesAsDirty();\n }\n /**\n * Gets the color of the line\n */\n get color() {\n return this._color;\n }\n /**\n * Sets the color of the line\n * @param value Color3 or null to clear the color. You need to clear the color if you use colors and useColors = true\n */\n set color(e) {\n this.setColor(e);\n }\n /**\n * Sets the color of the line. If set the whole line will be mixed with this color according to the colorMode option.\n * @param value color\n * @param doNotMarkDirty if true, the material will not be marked as dirty\n */\n setColor(e, t = !1) {\n this._color === null && e !== null || this._color !== null && e === null ? (this._color = e, !t && this.markAllDefinesAsDirty()) : this._color = e;\n }\n /**\n * Gets the color distributiopn type\n */\n get colorsDistributionType() {\n return this._colorsDistributionType;\n }\n /**\n * Sets the color distribution type\n * @see GreasedLineMeshColorDistributionType\n * @param value color distribution type\n */\n set colorsDistributionType(e) {\n this._colorsDistributionType = e, this.markAllDefinesAsDirty();\n }\n /**\n * Gets the resolution\n */\n get resolution() {\n return this._resolution;\n }\n /**\n * Sets the resolution\n * @param value resolution of the screen for GreasedLine\n */\n set resolution(e) {\n this._aspect = e.x / e.y, this._resolution = e;\n }\n /**\n * Serializes this plugin material\n * @returns serializationObjec\n */\n serialize() {\n const e = super.serialize(), t = {\n colorDistributionType: this._colorsDistributionType,\n colorsSampling: this.colorsSampling,\n colorMode: this.colorMode,\n dashCount: this._dashCount,\n dashOffset: this.dashOffset,\n dashRatio: this.dashRatio,\n resolution: this._resolution,\n sizeAttenuation: this._sizeAttenuation,\n useColors: this.useColors,\n useDash: this.useDash,\n visibility: this.visibility,\n width: this.width\n };\n return this._colors && (t.colors = this._colors), this._color && (t.color = this._color), e.greasedLineMaterialOptions = t, e;\n }\n /**\n * Parses a serialized objects\n * @param source serialized object\n * @param scene scene\n * @param rootUrl root url for textures\n */\n parse(e, t, i) {\n var r;\n super.parse(e, t, i);\n const s = e.greasedLineMaterialOptions;\n (r = this.colorsTexture) == null || r.dispose(), s.color && this.setColor(s.color, !0), s.colorDistributionType && (this.colorsDistributionType = s.colorDistributionType), s.colors && (this.colors = s.colors), s.colorsSampling && (this.colorsSampling = s.colorsSampling), s.colorMode && (this.colorMode = s.colorMode), s.useColors && (this.useColors = s.useColors), s.visibility && (this.visibility = s.visibility), s.useDash && (this.useDash = s.useDash), s.dashCount && (this.dashCount = s.dashCount), s.dashRatio && (this.dashRatio = s.dashRatio), s.dashOffset && (this.dashOffset = s.dashOffset), s.width && (this.width = s.width), s.sizeAttenuation && (this.sizeAttenuation = s.sizeAttenuation), s.resolution && (this.resolution = s.resolution), this.colors ? this.colorsTexture = qt.CreateColorsTexture(`${this._material.name}-colors-texture`, this.colors, this.colorsSampling, t) : qt.PrepareEmptyColorsTexture(t), this.markAllDefinesAsDirty();\n }\n /**\n * Makes a duplicate of the current configuration into another one.\n * @param plugin define the config where to copy the info\n */\n copyTo(e) {\n var i;\n const t = e;\n (i = t.colorsTexture) == null || i.dispose(), this._colors && (t.colorsTexture = qt.CreateColorsTexture(`${t._material.name}-colors-texture`, this._colors, t.colorsSampling, this._scene)), t.setColor(this.color, !0), t.colorsDistributionType = this.colorsDistributionType, t.colorsSampling = this.colorsSampling, t.colorMode = this.colorMode, t.useColors = this.useColors, t.visibility = this.visibility, t.useDash = this.useDash, t.dashCount = this.dashCount, t.dashRatio = this.dashRatio, t.dashOffset = this.dashOffset, t.width = this.width, t.sizeAttenuation = this.sizeAttenuation, t.resolution = this.resolution, t.markAllDefinesAsDirty();\n }\n}\ngo.GREASED_LINE_MATERIAL_NAME = \"GreasedLinePluginMaterial\";\nU(`BABYLON.${go.GREASED_LINE_MATERIAL_NAME}`, go);\nconst VU = \"greasedLinePixelShader\", UU = `precision highp float;uniform sampler2D grlColors;uniform float grlUseColors;uniform float grlUseDash;uniform float grlDashArray;uniform float grlDashOffset;uniform float grlDashRatio;uniform float grlVisibility;uniform float grlColorsWidth;uniform vec2 grl_colorModeAndColorDistributionType;uniform vec3 grlColor;varying float grlCounters;varying float grlColorPointer;void main() {float grlColorMode=grl_colorModeAndColorDistributionType.x;float grlColorDistributionType=grl_colorModeAndColorDistributionType.y;gl_FragColor=vec4(grlColor,1.);gl_FragColor.a=step(grlCounters,grlVisibility);if (gl_FragColor.a==0.) discard;if( grlUseDash==1. ){gl_FragColor.a=ceil(mod(grlCounters+grlDashOffset,grlDashArray)-(grlDashArray*grlDashRatio));if (gl_FragColor.a==0.) discard;}\nif (grlUseColors==1.) {vec4 textureColor;if (grlColorDistributionType==COLOR_DISTRIBUTION_TYPE_LINE) { \ntextureColor=texture2D(grlColors,vec2(grlCounters,0.),0.);} else {textureColor=texture2D(grlColors,vec2(grlColorPointer/grlColorsWidth,0.),0.);}\nif (grlColorMode==COLOR_MODE_SET) {gl_FragColor=textureColor;} else if (grlColorMode==COLOR_MODE_ADD) {gl_FragColor+=textureColor;} else if (grlColorMode==COLOR_MODE_MULTIPLY) {gl_FragColor*=textureColor;}}}\n`;\nz.ShadersStore[VU] = UU;\nconst kU = \"greasedLineVertexShader\", GU = `precision highp float;\n#include\nattribute float grl_widths;attribute vec3 grl_offsets;attribute float grl_colorPointers;attribute vec3 position;uniform mat4 viewProjection;uniform mat4 projection;varying float grlCounters;varying float grlColorPointer;\n#ifdef GREASED_LINE_CAMERA_FACING\nattribute vec4 grl_nextAndCounters;attribute vec4 grl_previousAndSide;uniform vec2 grlResolution;uniform float grlAspect;uniform float grlWidth;uniform float grlSizeAttenuation;vec2 grlFix( vec4 i,float aspect ) {vec2 res=i.xy/i.w;res.x*=aspect;return res;}\n#else\nattribute vec3 grl_slopes;attribute float grl_counters;\n#endif\nvoid main() {\n#include\ngrlColorPointer=grl_colorPointers;mat4 grlMatrix=viewProjection*finalWorld ;\n#ifdef GREASED_LINE_CAMERA_FACING\nfloat grlBaseWidth=grlWidth;vec3 grlPrevious=grl_previousAndSide.xyz;float grlSide=grl_previousAndSide.w;vec3 grlNext=grl_nextAndCounters.xyz;grlCounters=grl_nextAndCounters.w;vec3 grlPositionOffset=grl_offsets;vec4 grlFinalPosition=grlMatrix*vec4( position+grlPositionOffset ,1.0 );vec4 grlPrevPos=grlMatrix*vec4( grlPrevious+grlPositionOffset,1.0 );vec4 grlNextPos=grlMatrix*vec4( grlNext+grlPositionOffset,1.0 );vec2 grlCurrentP=grlFix( grlFinalPosition,grlAspect );vec2 grlPrevP=grlFix( grlPrevPos,grlAspect );vec2 grlNextP=grlFix( grlNextPos,grlAspect );float grlWidth=grlBaseWidth*grl_widths;vec2 grlDir;if( grlNextP==grlCurrentP ) grlDir=normalize( grlCurrentP-grlPrevP );else if( grlPrevP==grlCurrentP ) grlDir=normalize( grlNextP-grlCurrentP );else {vec2 grlDir1=normalize( grlCurrentP-grlPrevP );vec2 grlDir2=normalize( grlNextP-grlCurrentP );grlDir=normalize( grlDir1+grlDir2 );}\nvec4 grlNormal=vec4( -grlDir.y,grlDir.x,0.,1. );\n#ifdef GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM\ngrlNormal.xy*=-.5*grlWidth;\n#else\ngrlNormal.xy*=.5*grlWidth;\n#endif\ngrlNormal*=projection;if (grlSizeAttenuation==1.) {grlNormal.xy*=grlFinalPosition.w;grlNormal.xy/=( vec4( grlResolution,0.,1. )*projection ).xy;}\ngrlFinalPosition.xy+=grlNormal.xy*grlSide;gl_Position=grlFinalPosition;\n#else\ngrlCounters=grl_counters;vec4 grlFinalPosition=grlMatrix*vec4( (position+grl_offsets)+grl_slopes*grl_widths ,1.0 ) ;gl_Position=grlFinalPosition;\n#endif\n}\n`;\nz.ShadersStore[kU] = GU;\nclass fR extends Or {\n /**\n * GreasedLineSimple material constructor\n * @param name material name\n * @param scene the scene\n * @param options material options\n */\n constructor(e, t, i) {\n const s = [\n \"COLOR_DISTRIBUTION_TYPE_LINE 1.\",\n \"COLOR_DISTRIBUTION_TYPE_SEGMENT 0.\",\n \"COLOR_MODE_SET 0.\",\n \"COLOR_MODE_ADD 1.\",\n \"COLOR_MODE_MULTIPLY 2.\"\n ], r = [\"position\", \"grl_widths\", \"grl_offsets\", \"grl_colorPointers\"];\n t.useRightHandedSystem && s.push(\"GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM\"), i.cameraFacing ? (s.push(\"GREASED_LINE_CAMERA_FACING\"), r.push(\"grl_previousAndSide\", \"grl_nextAndCounters\")) : (r.push(\"grl_slopes\"), r.push(\"grl_counters\")), super(e, t, {\n vertex: \"greasedLine\",\n fragment: \"greasedLine\"\n }, {\n attributes: r,\n uniforms: [\n \"world\",\n \"viewProjection\",\n \"view\",\n \"projection\",\n \"grlColorsWidth\",\n \"grlUseColors\",\n \"grlWidth\",\n \"grlColor\",\n \"grl_colorModeAndColorDistributionType\",\n \"grlResolution\",\n \"grlAspect\",\n \"grlAizeAttenuation\",\n \"grlDashArray\",\n \"grlDashOffset\",\n \"grlDashRatio\",\n \"grlUseDash\",\n \"grlVisibility\"\n ],\n samplers: [\"grlColors\"],\n defines: s\n }), this._color = re.White(), this._colorsDistributionType = 0, this._colorsTexture = null, i = i || {\n color: Gs.DEFAULT_COLOR\n };\n const n = t.getEngine();\n this.visibility = i.visibility ?? 1, this.useDash = i.useDash ?? !1, this.dashRatio = i.dashRatio ?? 0.5, this.dashOffset = i.dashOffset ?? 0, this.dashCount = i.dashCount ?? 1, this.width = i.width ? i.width : i.sizeAttenuation && i.cameraFacing ? Gs.DEFAULT_WIDTH_ATTENUATED : Gs.DEFAULT_WIDTH, this.sizeAttenuation = i.sizeAttenuation ?? !1, this.color = i.color ?? re.White(), this.useColors = i.useColors ?? !1, this.colorsDistributionType = i.colorDistributionType ?? 0, this.colorsSampling = i.colorsSampling ?? _i.NEAREST_NEAREST, this.colorMode = i.colorMode ?? 0, this._colors = i.colors ?? null, this._cameraFacing = i.cameraFacing ?? !0, this.resolution = i.resolution ?? new Q(n.getRenderWidth(), n.getRenderHeight()), i.colorsTexture ? this.colorsTexture = i.colorsTexture : this.colorsTexture = qt.PrepareEmptyColorsTexture(t), this._colors && this.setColors(this._colors), n.onDisposeObservable.add(() => {\n qt.DisposeEmptyColorsTexture();\n });\n }\n /**\n * Disposes the plugin material.\n */\n dispose() {\n var e;\n (e = this._colorsTexture) == null || e.dispose(), super.dispose();\n }\n _setColorModeAndColorDistributionType() {\n this.setVector2(\"grl_colorModeAndColorDistributionType\", new Q(this._colorMode, this._colorsDistributionType));\n }\n /**\n * Updates the material. Use when material created in lazy mode.\n */\n updateLazy() {\n this._colors && this.setColors(this._colors, !1, !0);\n }\n /**\n * Returns the colors used to colorize the line\n */\n get colors() {\n return this._colors;\n }\n /**\n * Sets the colors used to colorize the line\n */\n set colors(e) {\n this.setColors(e);\n }\n /**\n * Creates or updates the colors texture\n * @param colors color table RGBA\n * @param lazy if lazy, the colors are not updated\n * @param forceNewTexture force creation of a new texture\n */\n setColors(e, t = !1, i = !1) {\n var r, n, o;\n const s = ((r = this._colors) == null ? void 0 : r.length) ?? 0;\n if (this._colors = e, e === null || e.length === 0) {\n (n = this._colorsTexture) == null || n.dispose();\n return;\n }\n if (!(t && !i))\n if (this._colorsTexture && s === e.length && !i) {\n const l = qt.Color3toRGBAUint8(e);\n this._colorsTexture.update(l);\n } else\n (o = this._colorsTexture) == null || o.dispose(), this.colorsTexture = qt.CreateColorsTexture(`${this.name}-colors-texture`, e, this.colorsSampling, this.getScene());\n }\n /**\n * Gets the colors texture\n */\n get colorsTexture() {\n return this._colorsTexture ?? null;\n }\n /**\n * Sets the colorsTexture\n */\n set colorsTexture(e) {\n this._colorsTexture = e, this.setFloat(\"grlColorsWidth\", this._colorsTexture.getSize().width), this.setTexture(\"grlColors\", this._colorsTexture);\n }\n /**\n * Line base width. At each point the line width is calculated by widths[pointIndex] * width\n */\n get width() {\n return this._width;\n }\n /**\n * Line base width. At each point the line width is calculated by widths[pointIndex] * width\n */\n set width(e) {\n this._width = e, this.setFloat(\"grlWidth\", e);\n }\n /**\n * Whether to use the colors option to colorize the line\n */\n get useColors() {\n return this._useColors;\n }\n set useColors(e) {\n this._useColors = e, this.setFloat(\"grlUseColors\", qt.BooleanToNumber(e));\n }\n /**\n * The type of sampling of the colors texture. The values are the same when using with textures.\n */\n get colorsSampling() {\n return this._colorsSampling;\n }\n /**\n * The type of sampling of the colors texture. The values are the same when using with textures.\n */\n set colorsSampling(e) {\n this._colorsSampling = e;\n }\n /**\n * Normalized value of how much of the line will be visible\n * 0 - 0% of the line will be visible\n * 1 - 100% of the line will be visible\n */\n get visibility() {\n return this._visibility;\n }\n set visibility(e) {\n this._visibility = e, this.setFloat(\"grlVisibility\", e);\n }\n /**\n * Turns on/off dash mode\n */\n get useDash() {\n return this._useDash;\n }\n /**\n * Turns on/off dash mode\n */\n set useDash(e) {\n this._useDash = e, this.setFloat(\"grlUseDash\", qt.BooleanToNumber(e));\n }\n /**\n * Gets the dash offset\n */\n get dashOffset() {\n return this._dashOffset;\n }\n /**\n * Sets the dash offset\n */\n set dashOffset(e) {\n this._dashOffset = e, this.setFloat(\"grlDashOffset\", e);\n }\n /**\n * Length of the dash. 0 to 1. 0.5 means half empty, half drawn.\n */\n get dashRatio() {\n return this._dashRatio;\n }\n /**\n * Length of the dash. 0 to 1. 0.5 means half empty, half drawn.\n */\n set dashRatio(e) {\n this._dashRatio = e, this.setFloat(\"grlDashRatio\", e);\n }\n /**\n * Gets the number of dashes in the line\n */\n get dashCount() {\n return this._dashCount;\n }\n /**\n * Sets the number of dashes in the line\n * @param value dash\n */\n set dashCount(e) {\n this._dashCount = e, this._dashArray = 1 / e, this.setFloat(\"grlDashArray\", this._dashArray);\n }\n /**\n * False means 1 unit in width = 1 unit on scene, true means 1 unit in width is reduced on the screen to make better looking lines\n */\n get sizeAttenuation() {\n return this._sizeAttenuation;\n }\n /**\n * Turn on/off attenuation of the width option and widths array.\n * @param value false means 1 unit in width = 1 unit on scene, true means 1 unit in width is reduced on the screen to make better looking lines\n */\n set sizeAttenuation(e) {\n this._sizeAttenuation = e, this.setFloat(\"grlSizeAttenuation\", qt.BooleanToNumber(e));\n }\n /**\n * Gets the color of the line\n */\n get color() {\n return this.color;\n }\n /**\n * Sets the color of the line\n * @param value Color3\n */\n set color(e) {\n this.setColor(e);\n }\n /**\n * Sets the color of the line. If set the whole line will be mixed with this color according to the colorMode option.\n * The simple material always needs a color to be set. If you set it to null it will set the color to the default color (GreasedLineSimpleMaterial.DEFAULT_COLOR).\n * @param value color\n */\n setColor(e) {\n e = e ?? Gs.DEFAULT_COLOR, this._color = e, this.setColor3(\"grlColor\", e);\n }\n /**\n * Gets the color distributiopn type\n */\n get colorsDistributionType() {\n return this._colorsDistributionType;\n }\n /**\n * Sets the color distribution type\n * @see GreasedLineMeshColorDistributionType\n * @param value color distribution type\n */\n set colorsDistributionType(e) {\n this._colorsDistributionType = e, this._setColorModeAndColorDistributionType();\n }\n /**\n * Gets the mixing mode of the color and colors paramaters. Default value is GreasedLineMeshColorMode.SET.\n * MATERIAL_TYPE_SIMPLE mixes the color and colors of the greased line material.\n * @see GreasedLineMeshColorMode\n */\n get colorMode() {\n return this._colorMode;\n }\n /**\n * Sets the mixing mode of the color and colors paramaters. Default value is GreasedLineMeshColorMode.SET.\n * MATERIAL_TYPE_SIMPLE mixes the color and colors of the greased line material.\n * @see GreasedLineMeshColorMode\n */\n set colorMode(e) {\n this._colorMode = e, this._setColorModeAndColorDistributionType();\n }\n /**\n * Gets the resolution\n */\n get resolution() {\n return this._resolution;\n }\n /**\n * Sets the resolution\n * @param value resolution of the screen for GreasedLine\n */\n set resolution(e) {\n this._resolution = e, this.setVector2(\"grlResolution\", e), this.setFloat(\"grlAspect\", e.x / e.y);\n }\n /**\n * Serializes this plugin material\n * @returns serializationObjec\n */\n serialize() {\n const e = super.serialize(), t = {\n colorDistributionType: this._colorsDistributionType,\n colorsSampling: this._colorsSampling,\n colorMode: this._colorMode,\n color: this._color,\n dashCount: this._dashCount,\n dashOffset: this._dashOffset,\n dashRatio: this._dashRatio,\n resolution: this._resolution,\n sizeAttenuation: this._sizeAttenuation,\n useColors: this._useColors,\n useDash: this._useDash,\n visibility: this._visibility,\n width: this._width,\n cameraFacing: this._cameraFacing\n };\n return this._colors && (t.colors = this._colors), e.greasedLineMaterialOptions = t, e;\n }\n /**\n * Parses a serialized objects\n * @param source serialized object\n * @param scene scene\n * @param _rootUrl root url for textures\n */\n parse(e, t, i) {\n var r;\n const s = e.greasedLineMaterialOptions;\n (r = this._colorsTexture) == null || r.dispose(), s.color && (this.color = s.color), s.colorDistributionType && (this.colorsDistributionType = s.colorDistributionType), s.colorsSampling && (this.colorsSampling = s.colorsSampling), s.colorMode && (this.colorMode = s.colorMode), s.useColors && (this.useColors = s.useColors), s.visibility && (this.visibility = s.visibility), s.useDash && (this.useDash = s.useDash), s.dashCount && (this.dashCount = s.dashCount), s.dashRatio && (this.dashRatio = s.dashRatio), s.dashOffset && (this.dashOffset = s.dashOffset), s.width && (this.width = s.width), s.sizeAttenuation && (this.sizeAttenuation = s.sizeAttenuation), s.resolution && (this.resolution = s.resolution), s.colors ? this.colorsTexture = qt.CreateColorsTexture(`${this.name}-colors-texture`, s.colors, this.colorsSampling, this.getScene()) : this.colorsTexture = qt.PrepareEmptyColorsTexture(t), this._cameraFacing = s.cameraFacing ?? !0, this.setDefine(\"GREASED_LINE_CAMERA_FACING\", this._cameraFacing);\n }\n}\nvar FE;\n(function(a) {\n a[a.MATERIAL_TYPE_STANDARD = 0] = \"MATERIAL_TYPE_STANDARD\", a[a.MATERIAL_TYPE_PBR = 1] = \"MATERIAL_TYPE_PBR\", a[a.MATERIAL_TYPE_SIMPLE = 2] = \"MATERIAL_TYPE_SIMPLE\";\n})(FE || (FE = {}));\nvar LE;\n(function(a) {\n a[a.COLOR_MODE_SET = 0] = \"COLOR_MODE_SET\", a[a.COLOR_MODE_ADD = 1] = \"COLOR_MODE_ADD\", a[a.COLOR_MODE_MULTIPLY = 2] = \"COLOR_MODE_MULTIPLY\";\n})(LE || (LE = {}));\nvar BE;\n(function(a) {\n a[a.COLOR_DISTRIBUTION_TYPE_SEGMENT = 0] = \"COLOR_DISTRIBUTION_TYPE_SEGMENT\", a[a.COLOR_DISTRIBUTION_TYPE_LINE = 1] = \"COLOR_DISTRIBUTION_TYPE_LINE\";\n})(BE || (BE = {}));\nconst zU = `#if defined(DBG_ENABLED)\nattribute float dbg_initialPass;\nvarying vec3 dbg_vBarycentric;\nflat varying vec3 dbg_vVertexWorldPos;\nflat varying float dbg_vPass;\n#endif`, WU = `#if defined(DBG_ENABLED)\nfloat dbg_vertexIndex = mod(float(gl_VertexID), 3.);\nif (dbg_vertexIndex == 0.0) { \n dbg_vBarycentric = vec3(1.,0.,0.); \n}\nelse if (dbg_vertexIndex == 1.0) { \n dbg_vBarycentric = vec3(0.,1.,0.); \n}\nelse { \n dbg_vBarycentric = vec3(0.,0.,1.); \n}\n\ndbg_vVertexWorldPos = vPositionW;\ndbg_vPass = dbg_initialPass;\n#endif`, HU = `#if defined(DBG_ENABLED)\nuniform vec3 dbg_shadedDiffuseColor;\nuniform vec4 dbg_shadedSpecularColorPower;\nuniform vec3 dbg_thicknessRadiusScale;\n\n#if DBG_MODE == 2 || DBG_MODE == 3\n uniform vec3 dbg_vertexColor;\n#endif\n\n#if DBG_MODE == 1\n uniform vec3 dbg_wireframeTrianglesColor;\n#elif DBG_MODE == 3\n uniform vec3 dbg_wireframeVerticesColor;\n#elif DBG_MODE == 4 || DBG_MODE == 5\n uniform vec3 dbg_uvPrimaryColor;\n uniform vec3 dbg_uvSecondaryColor;\n#elif DBG_MODE == 7\n uniform vec3 dbg_materialColor;\n#endif\n#endif`, XU = `#if defined(DBG_ENABLED)\nvarying vec3 dbg_vBarycentric;\nflat varying vec3 dbg_vVertexWorldPos;\nflat varying float dbg_vPass;\n\n#if !defined(DBG_MULTIPLY)\n vec3 dbg_applyShading(vec3 color) {\n vec3 N = vNormalW.xyz;\n vec3 L = normalize(vEyePosition.xyz - vPositionW.xyz);\n vec3 H = normalize(L + L);\n float LdotN = clamp(dot(L,N), 0., 1.);\n float HdotN = clamp(dot(H,N), 0., 1.);\n float specTerm = pow(HdotN, dbg_shadedSpecularColorPower.w);\n color *= (LdotN / PI);\n color += dbg_shadedSpecularColorPower.rgb * (specTerm / PI);\n return color;\n }\n#endif\n\n#if DBG_MODE == 1 || DBG_MODE == 3\n float dbg_edgeFactor() {\n vec3 d = fwidth(dbg_vBarycentric);\n vec3 a3 = smoothstep(vec3(0.), d * dbg_thicknessRadiusScale.x, dbg_vBarycentric);\n return min(min(a3.x, a3.y), a3.z);\n }\n#endif\n\n#if DBG_MODE == 2 || DBG_MODE == 3\n float dbg_cornerFactor() {\n vec3 worldPos = vPositionW;\n float dist = length(worldPos - dbg_vVertexWorldPos);\n float camDist = length(worldPos - vEyePosition.xyz);\n float d = sqrt(camDist) * .001;\n return smoothstep((dbg_thicknessRadiusScale.y * d), ((dbg_thicknessRadiusScale.y * 1.01) * d), dist);\n }\n#endif\n\n#if (DBG_MODE == 4 && defined(UV1)) || (DBG_MODE == 5 && defined(UV2))\n float dbg_checkerboardFactor(vec2 uv) {\n vec2 f = fract(uv * dbg_thicknessRadiusScale.z);\n f -= .5;\n return (f.x * f.y) > 0. ? 1. : 0.;\n }\n#endif\n#endif`, $U = `#if defined(DBG_ENABLED)\nvec3 dbg_color = vec3(1.);\n#if DBG_MODE == 1\n dbg_color = mix(dbg_wireframeTrianglesColor, vec3(1.), dbg_edgeFactor());\n#elif DBG_MODE == 2 || DBG_MODE == 3\n float dbg_cornerFactor = dbg_cornerFactor();\n if (dbg_vPass == 0. && dbg_cornerFactor == 1.) discard;\n dbg_color = mix(dbg_vertexColor, vec3(1.), dbg_cornerFactor);\n #if DBG_MODE == 3\n dbg_color *= mix(dbg_wireframeVerticesColor, vec3(1.), dbg_edgeFactor());\n #endif\n#elif DBG_MODE == 4 && defined(MAINUV1)\n dbg_color = mix(dbg_uvPrimaryColor, dbg_uvSecondaryColor, dbg_checkerboardFactor(vMainUV1));\n#elif DBG_MODE == 5 && defined(MAINUV2)\n dbg_color = mix(dbg_uvPrimaryColor, dbg_uvSecondaryColor, dbg_checkerboardFactor(vMainUV2));\n#elif DBG_MODE == 6 && defined(VERTEXCOLOR)\n dbg_color = vColor.rgb;\n#elif DBG_MODE == 7\n dbg_color = dbg_materialColor;\n#endif\n\n#if defined(DBG_MULTIPLY)\n gl_FragColor *= vec4(dbg_color, 1.);\n#else\n #if DBG_MODE != 6\n gl_FragColor = vec4(dbg_applyShading(dbg_shadedDiffuseColor) * dbg_color, 1.);\n #else\n gl_FragColor = vec4(dbg_color, 1.);\n #endif\n#endif\n#endif`, pR = [\n new re(0.98, 0.26, 0.38),\n new re(0.47, 0.75, 0.3),\n new re(0, 0.26, 0.77),\n new re(0.97, 0.6, 0.76),\n new re(0.19, 0.63, 0.78),\n new re(0.98, 0.8, 0.6),\n new re(0.65, 0.43, 0.15),\n new re(0.15, 0.47, 0.22),\n new re(0.67, 0.71, 0.86),\n new re(0.09, 0.46, 0.56),\n new re(0.8, 0.98, 0.02),\n new re(0.39, 0.29, 0.13),\n new re(0.53, 0.63, 0.06),\n new re(0.95, 0.96, 0.41),\n new re(1, 0.72, 0.94),\n new re(0.63, 0.08, 0.31),\n new re(0.66, 0.96, 0.95),\n new re(0.22, 0.14, 0.19),\n new re(0.14, 0.65, 0.59),\n new re(0.93, 1, 0.68),\n new re(0.93, 0.14, 0.44),\n new re(0.47, 0.86, 0.67),\n new re(0.85, 0.07, 0.78),\n new re(0.53, 0.64, 0.98),\n new re(0.43, 0.37, 0.56),\n new re(0.71, 0.65, 0.25),\n new re(0.66, 0.19, 0.01),\n new re(0.94, 0.53, 0.12),\n new re(0.41, 0.44, 0.44),\n new re(0.24, 0.71, 0.96),\n new re(0.57, 0.28, 0.56),\n new re(0.44, 0.98, 0.42)\n];\nvar VE;\n(function(a) {\n a[a.NONE = 0] = \"NONE\", a[a.TRIANGLES = 1] = \"TRIANGLES\", a[a.VERTICES = 2] = \"VERTICES\", a[a.TRIANGLES_VERTICES = 3] = \"TRIANGLES_VERTICES\", a[a.UV0 = 4] = \"UV0\", a[a.UV1 = 5] = \"UV1\", a[a.VERTEXCOLORS = 6] = \"VERTEXCOLORS\", a[a.MATERIALIDS = 7] = \"MATERIALIDS\";\n})(VE || (VE = {}));\nclass YU extends dr {\n constructor() {\n super(...arguments), this.DBG_MODE = 0, this.DBG_MULTIPLY = !0, this.DBG_ENABLED = !0;\n }\n}\nclass Ns extends br {\n /** @internal */\n _markAllDefinesAsDirty() {\n this._enable(this._isEnabled), this.markAllDefinesAsDirty();\n }\n /**\n * Creates a new MeshDebugPluginMaterial\n * @param material Material to attach the mesh debug plugin to\n * @param options Options for the mesh debug plugin\n */\n constructor(e, t = {}) {\n const i = new YU();\n i.DBG_MODE = t.mode ?? i.DBG_MODE, i.DBG_MULTIPLY = t.multiply ?? i.DBG_MULTIPLY, super(e, \"MeshDebug\", 200, i, !0, !0), this._mode = i.DBG_MODE, this._multiply = i.DBG_MULTIPLY, this.shadedDiffuseColor = t.shadedDiffuseColor ?? new re(1, 1, 1), this.shadedSpecularColor = t.shadedSpecularColor ?? new re(0.8, 0.8, 0.8), this.shadedSpecularPower = t.shadedSpecularPower ?? 10, this.wireframeThickness = t.wireframeThickness ?? 0.7, this.wireframeTrianglesColor = t.wireframeTrianglesColor ?? new re(0, 0, 0), this.wireframeVerticesColor = t.wireframeVerticesColor ?? new re(0.8, 0.8, 0.8), this.vertexColor = t.vertexColor ?? new re(0, 0, 0), this.vertexRadius = t.vertexRadius ?? 1.2, this.uvScale = t.uvScale ?? 20, this.uvPrimaryColor = t.uvPrimaryColor ?? new re(1, 1, 1), this.uvSecondaryColor = t.uvSecondaryColor ?? new re(0.5, 0.5, 0.5), this._materialColor = Ns.MaterialColors[Ns._PluginCount++ % Ns.MaterialColors.length], this.isEnabled = !0;\n }\n /**\n * Get the class name\n * @returns Class name\n */\n getClassName() {\n return \"MeshDebugPluginMaterial\";\n }\n /**\n * Gets whether the mesh debug plugin is enabled in the material.\n */\n get isEnabled() {\n return this._isEnabled;\n }\n /**\n * Sets whether the mesh debug plugin is enabled in the material.\n * @param value enabled\n */\n set isEnabled(e) {\n if (this._isEnabled !== e) {\n if (!this._material.getScene().getEngine().isWebGPU && this._material.getScene().getEngine().version == 1) {\n L.Error(\"MeshDebugPluginMaterial is not supported on WebGL 1.0.\"), this._isEnabled = !1;\n return;\n }\n this._isEnabled = e, this._markAllDefinesAsDirty();\n }\n }\n /**\n * Prepare the defines\n * @param defines Mesh debug defines\n * @param scene Scene\n * @param mesh Mesh associated with material\n */\n prepareDefines(e, t, i) {\n (this._mode == 2 || this._mode == 1 || this._mode == 3) && !i.isVerticesDataPresent(\"dbg_initialPass\") && L.Warn(\"For best results with TRIANGLES, TRIANGLES_VERTICES, or VERTICES modes, please use MeshDebugPluginMaterial.PrepareMeshForTrianglesAndVerticesMode() on mesh.\", 1), e.DBG_MODE = this._mode, e.DBG_MULTIPLY = this._multiply, e.DBG_ENABLED = this._isEnabled;\n }\n /**\n * Get the shader attributes\n * @param attributes Array of attributes\n */\n getAttributes(e) {\n e.push(\"dbg_initialPass\");\n }\n /**\n * Get the shader uniforms\n * @returns Uniforms\n */\n getUniforms() {\n return {\n ubo: [\n { name: \"dbg_shadedDiffuseColor\", size: 3, type: \"vec3\" },\n { name: \"dbg_shadedSpecularColorPower\", size: 4, type: \"vec4\" },\n { name: \"dbg_thicknessRadiusScale\", size: 3, type: \"vec3\" },\n { name: \"dbg_wireframeTrianglesColor\", size: 3, type: \"vec3\" },\n { name: \"dbg_wireframeVerticesColor\", size: 3, type: \"vec3\" },\n { name: \"dbg_vertexColor\", size: 3, type: \"vec3\" },\n { name: \"dbg_uvPrimaryColor\", size: 3, type: \"vec3\" },\n { name: \"dbg_uvSecondaryColor\", size: 3, type: \"vec3\" },\n { name: \"dbg_materialColor\", size: 3, type: \"vec3\" }\n ],\n fragment: HU\n };\n }\n /**\n * Bind the uniform buffer\n * @param uniformBuffer Uniform buffer\n */\n bindForSubMesh(e) {\n this._isEnabled && (e.updateFloat3(\"dbg_shadedDiffuseColor\", this.shadedDiffuseColor.r, this.shadedDiffuseColor.g, this.shadedDiffuseColor.b), e.updateFloat4(\"dbg_shadedSpecularColorPower\", this.shadedSpecularColor.r, this.shadedSpecularColor.g, this.shadedSpecularColor.b, this.shadedSpecularPower), e.updateFloat3(\"dbg_thicknessRadiusScale\", this.wireframeThickness, this.vertexRadius, this.uvScale), e.updateColor3(\"dbg_wireframeTrianglesColor\", this.wireframeTrianglesColor), e.updateColor3(\"dbg_wireframeVerticesColor\", this.wireframeVerticesColor), e.updateColor3(\"dbg_vertexColor\", this.vertexColor), e.updateColor3(\"dbg_uvPrimaryColor\", this.uvPrimaryColor), e.updateColor3(\"dbg_uvSecondaryColor\", this.uvSecondaryColor), e.updateColor3(\"dbg_materialColor\", this._materialColor));\n }\n /**\n * Get shader code\n * @param shaderType \"vertex\" or \"fragment\"\n * @returns Shader code\n */\n getCustomCode(e) {\n return e === \"vertex\" ? {\n CUSTOM_VERTEX_DEFINITIONS: zU,\n CUSTOM_VERTEX_MAIN_END: WU\n } : {\n CUSTOM_FRAGMENT_DEFINITIONS: XU,\n CUSTOM_FRAGMENT_MAIN_END: $U\n };\n }\n /**\n * Resets static variables of the plugin to their original state\n */\n static Reset() {\n this._PluginCount = 0, this.MaterialColors = pR;\n }\n /**\n * Renders triangles in a mesh 3 times by tripling the indices in the index buffer.\n * Used to prepare a mesh to be rendered in `TRIANGLES`, `VERTICES`, or `TRIANGLES_VERTICES` modes.\n * NOTE: This is a destructive operation. The mesh's index buffer and vertex buffers are modified, and a new vertex buffer is allocated.\n * If you'd like the ability to revert these changes, toggle the optional `returnRollback` flag.\n * @param mesh the mesh to target\n * @param returnRollback whether or not to return a function that reverts mesh to its initial state. Default: false.\n * @returns a rollback function if `returnRollback` is true, otherwise an empty function.\n */\n static PrepareMeshForTrianglesAndVerticesMode(e, t = !1) {\n let i = () => {\n };\n if (e.getTotalIndices() == 0)\n return i;\n if (t) {\n const c = e.getVerticesDataKinds(), u = e.getIndices(), d = {};\n for (const f of c)\n d[f] = e.getVerticesData(f);\n i = function() {\n e.setIndices(u);\n for (const f of c) {\n const p = e.getVertexBuffer(f).getStrideSize();\n e.setVerticesData(f, d[f], void 0, p);\n }\n e.removeVerticesData(\"dbg_initialPass\");\n };\n }\n let s = Array.from(e.getIndices());\n const r = [];\n for (let c = 0; c < s.length; c += 3)\n r.push(s[c + 1], s[c + 2], s[c + 0]);\n e.setIndices(s.concat(r)), e.convertToUnIndexedMesh(), e.isUnIndexed = !1, s = Array.from(e.getIndices());\n const n = [];\n for (let c = s.length / 2; c < s.length; c += 3)\n n.push(s[c + 1], s[c + 2], s[c + 0]);\n e.setIndices(s.concat(n));\n const o = e.getTotalVertices(), l = o / 2, h = new Array(o).fill(1, 0, l).fill(0, l, o);\n return e.setVerticesData(\"dbg_initialPass\", h, !1, 1), i;\n }\n}\nNs._PluginCount = 0;\nNs.MaterialColors = pR;\ny([\n bi()\n], Ns.prototype, \"_materialColor\", void 0);\ny([\n I()\n], Ns.prototype, \"_isEnabled\", void 0);\ny([\n I(),\n ce(\"_markAllDefinesAsDirty\")\n], Ns.prototype, \"mode\", void 0);\ny([\n I(),\n ce(\"_markAllDefinesAsDirty\")\n], Ns.prototype, \"multiply\", void 0);\ny([\n bi()\n], Ns.prototype, \"shadedDiffuseColor\", void 0);\ny([\n bi()\n], Ns.prototype, \"shadedSpecularColor\", void 0);\ny([\n I()\n], Ns.prototype, \"shadedSpecularPower\", void 0);\ny([\n I()\n], Ns.prototype, \"wireframeThickness\", void 0);\ny([\n bi()\n], Ns.prototype, \"wireframeTrianglesColor\", void 0);\ny([\n bi()\n], Ns.prototype, \"wireframeVerticesColor\", void 0);\ny([\n bi()\n], Ns.prototype, \"vertexColor\", void 0);\ny([\n I()\n], Ns.prototype, \"vertexRadius\", void 0);\ny([\n I()\n], Ns.prototype, \"uvScale\", void 0);\ny([\n bi()\n], Ns.prototype, \"uvPrimaryColor\", void 0);\ny([\n bi()\n], Ns.prototype, \"uvSecondaryColor\", void 0);\nU(\"BABYLON.MeshDebugPluginMaterial\", Ns);\nconst jU = \"gaussianSplattingPixelShader\", KU = `#include\n#include\n#include\nvarying vec4 vColor;varying vec2 vPosition;void main () { \n#include\nfloat A=-dot(vPosition,vPosition);if (A<-4.0) discard;float B=exp(A)*vColor.a;\n#include\nvec3 color=vColor.rgb;\n#ifdef FOG\n#include\n#endif\ngl_FragColor=vec4(color,B);}\n`;\nz.ShadersStore[jU] = KU;\nconst qU = \"gaussianSplattingVertexDeclaration\", QU = `uniform mat4 world;uniform mat4 view;uniform mat4 projection;\n`;\nz.IncludesShadersStore[qU] = QU;\nconst ZU = \"gaussianSplattingUboDeclaration\", JU = `#include\n#include\n`;\nz.IncludesShadersStore[ZU] = JU;\nconst ek = \"gaussianSplattingVertexShader\", tk = `#include<__decl__gaussianSplattingVertex>\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n#include\n#include\n#include\nattribute vec2 position;attribute float splatIndex;uniform vec2 invViewport;uniform vec2 dataTextureSize;uniform vec2 focal;uniform sampler2D covariancesATexture;uniform sampler2D covariancesBTexture;uniform sampler2D centersTexture;uniform sampler2D colorsTexture;varying vec4 vColor;varying vec2 vPosition;\n#if !defined(WEBGL2) && !defined(WEBGPU) && !defined(NATIVE)\nmat3 transpose(mat3 matrix) {return mat3(matrix[0][0],matrix[1][0],matrix[2][0],\nmatrix[0][1],matrix[1][1],matrix[2][1],\nmatrix[0][2],matrix[1][2],matrix[2][2]);}\n#endif\nvec2 getDataUV(float index,vec2 textureSize) {float y=floor(index/textureSize.x);float x=index-y*textureSize.x;return vec2((x+0.5)/textureSize.x,(y+0.5)/textureSize.y);}\nvoid main () {vec2 splatUV=getDataUV(splatIndex,dataTextureSize);vec3 center=texture2D(centersTexture,splatUV).xyz;vec4 color=texture2D(colorsTexture,splatUV);vec3 covA=texture2D(covariancesATexture,splatUV).xyz;vec3 covB=texture2D(covariancesBTexture,splatUV).xyz;vec4 worldPos=world*vec4(center,1.0);mat4 modelView=view*world;vec4 camspace=view*worldPos;vec4 pos2d=projection*camspace;float bounds=1.2*pos2d.w;if (pos2d.z<-pos2d.w || pos2d.x<-bounds || pos2d.x>bounds\n|| pos2d.y<-bounds || pos2d.y>bounds) {gl_Position=vec4(0.0,0.0,2.0,1.0);return;}\nmat3 Vrk=mat3(\ncovA.x,covA.y,covA.z,\ncovA.y,covB.x,covB.y,\ncovA.z,covB.y,covB.z\n);mat3 J=mat3(\nfocal.x/camspace.z,0.,-(focal.x*camspace.x)/(camspace.z*camspace.z),\n0.,focal.y/camspace.z,-(focal.y*camspace.y)/(camspace.z*camspace.z),\n0.,0.,0.\n);mat3 invy=mat3(1,0,0,0,-1,0,0,0,1);mat3 T=invy*transpose(mat3(modelView))*J;mat3 cov2d=transpose(T)*Vrk*T;float mid=(cov2d[0][0]+cov2d[1][1])/2.0;float radius=length(vec2((cov2d[0][0]-cov2d[1][1])/2.0,cov2d[0][1]));float lambda1=mid+radius,lambda2=mid-radius;if (lambda2<0.0) return;vec2 diagonalVector=normalize(vec2(cov2d[0][1],lambda1-cov2d[0][0]));vec2 majorAxis=min(sqrt(2.0*lambda1),1024.0)*diagonalVector;vec2 minorAxis=min(sqrt(2.0*lambda2),1024.0)*vec2(diagonalVector.y,-diagonalVector.x);vColor=color;vPosition=position;vec2 vCenter=vec2(pos2d);gl_Position=vec4(\nvCenter \n+ (position.x*majorAxis\n+ position.y*minorAxis)*invViewport*pos2d.w,pos2d.zw);\n#include\n#include\n#include\n}\n`;\nz.ShadersStore[ek] = tk;\nclass ik extends dr {\n /**\n * Constructor of the defines.\n */\n constructor() {\n super(), this.FOG = !1, this.THIN_INSTANCES = !0, this.LOGARITHMICDEPTH = !1, this.CLIPPLANE = !1, this.CLIPPLANE2 = !1, this.CLIPPLANE3 = !1, this.CLIPPLANE4 = !1, this.CLIPPLANE5 = !1, this.CLIPPLANE6 = !1, this.rebuild();\n }\n}\nclass Cu extends Sc {\n /**\n * Instantiates a Gaussian Splatting Material in the given scene\n * @param name The friendly name of the material\n * @param scene The scene to add the material to\n */\n constructor(e, t) {\n super(e, t), this.backFaceCulling = !1;\n }\n /**\n * Gets a boolean indicating that current material needs to register RTT\n */\n get hasRenderTargetTextures() {\n return !1;\n }\n /**\n * Specifies whether or not this material should be rendered in alpha test mode.\n * @returns false\n */\n needAlphaTesting() {\n return !1;\n }\n /**\n * Specifies whether or not this material should be rendered in alpha blend mode.\n * @returns true\n */\n needAlphaBlending() {\n return !0;\n }\n /**\n * Checks whether the material is ready to be rendered for a given mesh.\n * @param mesh The mesh to render\n * @param subMesh The submesh to check against\n * @returns true if all the dependencies are ready (Textures, Effects...)\n */\n isReadyForSubMesh(e, t) {\n const s = t._drawWrapper;\n if (s.effect && this.isFrozen && s._wasPreviouslyReady && s._wasPreviouslyUsingInstances === !0)\n return !0;\n t.materialDefines || (t.materialDefines = new ik());\n const r = this.getScene(), n = t.materialDefines;\n if (this._isReadyForSubMesh(t))\n return !0;\n const o = r.getEngine();\n if (df(e, r, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, !1, n), ff(r, o, this, n, !0, null, !0), pf(e, n, !1, !1), n.isDirty) {\n n.markAsProcessed(), r.resetCachedMaterial();\n const l = [R.PositionKind, \"splatIndex\"];\n uf(l, n);\n const h = [\"world\", \"view\", \"projection\", \"vFogInfos\", \"vFogColor\", \"logarithmicDepthConstant\", \"invViewport\", \"dataTextureSize\", \"focal\"], c = [\"covariancesATexture\", \"covariancesBTexture\", \"centersTexture\", \"colorsTexture\"], u = [\"Scene\", \"Mesh\"];\n mf({\n uniformsNames: h,\n uniformBuffersNames: u,\n samplers: c,\n defines: n\n }), Ln(h);\n const d = n.toString(), f = r.getEngine().createEffect(\"gaussianSplatting\", {\n attributes: l,\n uniformsNames: h,\n uniformBuffersNames: u,\n samplers: c,\n defines: d,\n onCompiled: this.onCompiled,\n onError: this.onError\n }, o);\n t.setEffect(f, n, this._materialContext);\n }\n return !t.effect || !t.effect.isReady() ? !1 : (n._renderId = r.getRenderId(), s._wasPreviouslyReady = !0, s._wasPreviouslyUsingInstances = !0, !0);\n }\n /**\n * Binds the submesh to this material by preparing the effect and shader to draw\n * @param world defines the world transformation matrix\n * @param mesh defines the mesh containing the submesh\n * @param subMesh defines the submesh to bind the material to\n */\n bindForSubMesh(e, t, i) {\n var l;\n const s = this.getScene(), r = i.materialDefines;\n if (!r)\n return;\n const n = i.effect;\n if (!n)\n return;\n if (this._activeEffect = n, t.getMeshUniformBuffer().bindToEffect(n, \"Mesh\"), t.transferToEffect(e), this._mustRebind(s, n, i, t.visibility)) {\n this.bindView(n), this.bindViewProjection(n);\n const h = s.getEngine(), c = this.getScene().activeCamera, u = h.getRenderWidth(), d = h.getRenderHeight(), f = ((l = c == null ? void 0 : c.rigParent) == null ? void 0 : l.rigCameras.length) || 1;\n this._activeEffect.setFloat2(\"invViewport\", 1 / (u / f), 1 / d);\n let p = 1e3;\n if (c) {\n const m = c.getProjectionMatrix().m[5];\n c.fovMode == Fe.FOVMODE_VERTICAL_FIXED ? p = d * m / 2 : p = u * m / 2;\n }\n this._activeEffect.setFloat2(\"focal\", p, p);\n const _ = t;\n if (_.covariancesATexture) {\n const m = _.covariancesATexture.getSize();\n n.setFloat2(\"dataTextureSize\", m.width, m.height), n.setTexture(\"covariancesATexture\", _.covariancesATexture), n.setTexture(\"covariancesBTexture\", _.covariancesBTexture), n.setTexture(\"centersTexture\", _.centersTexture), n.setTexture(\"colorsTexture\", _.colorsTexture);\n }\n Tn(n, this, s);\n } else s.getEngine()._features.needToAlwaysBindUniformBuffers && (this._needToBindSceneUbo = !0);\n il(s, t, n), this.useLogarithmicDepth && Oa(r, n, s), this._afterBind(t, this._activeEffect, i);\n }\n /**\n * Clones the material.\n * @param name The cloned name.\n * @returns The cloned material.\n */\n clone(e) {\n return Ae.Clone(() => new Cu(e, this.getScene()), this);\n }\n /**\n * Serializes the current material to its JSON representation.\n * @returns The JSON representation.\n */\n serialize() {\n const e = super.serialize();\n return e.customType = \"BABYLON.GaussianSplattingMaterial\", e;\n }\n /**\n * Gets the class name of the material\n * @returns \"GaussianSplattingMaterial\"\n */\n getClassName() {\n return \"GaussianSplattingMaterial\";\n }\n /**\n * Parse a JSON input to create back a Gaussian Splatting material.\n * @param source The JSON data to parse\n * @param scene The scene to create the parsed material in\n * @param rootUrl The root url of the assets the material depends upon\n * @returns the instantiated GaussianSplattingMaterial.\n */\n static Parse(e, t, i) {\n return Ae.Parse(() => new Cu(e.name, t), e, t, i);\n }\n}\nU(\"BABYLON.GaussianSplattingMaterial\", Cu);\nObject.defineProperty(ye.prototype, \"decalMap\", {\n get: function() {\n if (!this._decalMap) {\n if (this._uniformBufferLayoutBuilt)\n return null;\n this._decalMap = new Df(this);\n }\n return this._decalMap;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(Ut.prototype, \"decalMap\", {\n get: function() {\n if (!this._decalMap) {\n if (this._uniformBufferLayoutBuilt)\n return null;\n this._decalMap = new Df(this);\n }\n return this._decalMap;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(Pt.prototype, \"decalMap\", {\n get: function() {\n return this._decalMap;\n },\n set: function(a) {\n this._decalMap = a;\n },\n enumerable: !0,\n configurable: !0\n});\nclass sk {\n /**\n * Creates a new Halton2DSequence.\n * @param numSamples Number of samples in the sequence.\n * @param baseX The base for the x coordinate (default: 2).\n * @param baseY The base for the y coordinate (default: 3).\n * @param width Factor to scale the x coordinate by (default: 1). The scaling factor is 1/width.\n * @param height Factor to scale the y coordinate by (default: 1). The scaling factor is 1/height.\n */\n constructor(e, t = 2, i = 3, s = 1, r = 1) {\n this._curIndex = 0, this._sequence = [], this._numSamples = 0, this.x = 0, this.y = 0, this._width = s, this._height = r, this._baseX = t, this._baseY = i, this._generateSequence(e), this.next();\n }\n /**\n * Regenerates the sequence with a new number of samples.\n * @param numSamples Number of samples in the sequence.\n */\n regenerate(e) {\n this._generateSequence(e), this.next();\n }\n /**\n * Sets the dimensions of the sequence.\n * @param width Factor to scale the x coordinate by. The scaling factor is 1/width.\n * @param height Factor to scale the y coordinate by. The scaling factor is 1/height.\n */\n setDimensions(e, t) {\n this._width = e, this._height = t;\n }\n /**\n * Advances to the next sample in the sequence.\n */\n next() {\n this.x = this._sequence[this._curIndex] / this._width, this.y = this._sequence[this._curIndex + 1] / this._height, this._curIndex += 2, this._curIndex >= this._numSamples * 2 && (this._curIndex = 0);\n }\n _generateSequence(e) {\n this._sequence = [], this._curIndex = 0, this._numSamples = e;\n for (let t = 1; t <= e; ++t)\n this._sequence.push(this._halton(t, this._baseX) - 0.5, this._halton(t, this._baseY) - 0.5);\n }\n _halton(e, t) {\n let i = 1, s = 0;\n for (; e > 0; )\n i /= t, s += i * (e % t), e = ~~(e / t);\n return s;\n }\n}\nfunction rk(a, e) {\n return `{X: ${a.x.toFixed(e)} Y: ${a.y.toFixed(e)}}`;\n}\nfunction nk(a, e) {\n return `{X: ${a._x.toFixed(e)} Y: ${a._y.toFixed(e)} Z: ${a._z.toFixed(e)}}`;\n}\nfunction ak(a, e) {\n return `{X: ${a.x.toFixed(e)} Y: ${a.y.toFixed(e)} Z: ${a.z.toFixed(e)} W: ${a.w.toFixed(e)}}`;\n}\nfunction Hg(a, e, t, i, s) {\n let r = null, n = null, o = null;\n try {\n r = new a.Decoder(), n = new a.DecoderBuffer(), n.Init(e, e.byteLength);\n let l;\n const h = r.GetEncodedGeometryType(n);\n switch (h) {\n case a.TRIANGULAR_MESH: {\n const d = new a.Mesh();\n if (l = r.DecodeBufferToMesh(n, d), !l.ok() || d.ptr === 0)\n throw new Error(l.error_msg());\n const p = d.num_faces() * 3, _ = p * 4, m = a._malloc(_);\n try {\n r.GetTrianglesUInt32Array(d, _, m);\n const x = new Uint32Array(p);\n x.set(new Uint32Array(a.HEAPF32.buffer, m, p)), i(x);\n } finally {\n a._free(m);\n }\n o = d;\n break;\n }\n case a.POINT_CLOUD: {\n const d = new a.PointCloud();\n if (l = r.DecodeBufferToPointCloud(n, d), !l.ok() || !d.ptr)\n throw new Error(l.error_msg());\n o = d;\n break;\n }\n default:\n throw new Error(`Invalid geometry type ${h}`);\n }\n const c = o.num_points(), u = (d, f, p, _) => {\n const m = _.data_type(), x = _.num_components(), v = _.normalized(), T = _.byte_stride(), E = _.byte_offset(), S = {\n [a.DT_FLOAT32]: { typedArrayConstructor: Float32Array, heap: a.HEAPF32 },\n [a.DT_INT8]: { typedArrayConstructor: Int8Array, heap: a.HEAP8 },\n [a.DT_INT16]: { typedArrayConstructor: Int16Array, heap: a.HEAP16 },\n [a.DT_INT32]: { typedArrayConstructor: Int32Array, heap: a.HEAP32 },\n [a.DT_UINT8]: { typedArrayConstructor: Uint8Array, heap: a.HEAPU8 },\n [a.DT_UINT16]: { typedArrayConstructor: Uint16Array, heap: a.HEAPU16 },\n [a.DT_UINT32]: { typedArrayConstructor: Uint32Array, heap: a.HEAPU32 }\n }[m];\n if (!S)\n throw new Error(`Invalid data type ${m}`);\n const C = c * x, P = C * S.typedArrayConstructor.BYTES_PER_ELEMENT, N = a._malloc(P);\n try {\n d.GetAttributeDataArrayForAllPoints(f, _, m, P, N);\n const F = new S.typedArrayConstructor(S.heap.buffer, N, C);\n s(p, F.slice(), x, E, T, v);\n } finally {\n a._free(N);\n }\n };\n if (t)\n for (const d in t) {\n const f = t[d], p = r.GetAttributeByUniqueId(o, f);\n u(r, o, d, p);\n }\n else {\n const d = {\n position: a.POSITION,\n normal: a.NORMAL,\n color: a.COLOR,\n uv: a.TEX_COORD\n };\n for (const f in d) {\n const p = r.GetAttributeId(o, d[f]);\n if (p !== -1) {\n const _ = r.GetAttribute(o, p);\n u(r, o, f, _);\n }\n }\n }\n return c;\n } finally {\n o && a.destroy(o), n && a.destroy(n), r && a.destroy(r);\n }\n}\nfunction ok() {\n let a;\n onmessage = (e) => {\n const t = e.data;\n switch (t.id) {\n case \"init\": {\n const i = t.decoder;\n i.url && importScripts(i.url);\n const s = i.wasmBinary ? { wasmBinary: i.wasmBinary } : {};\n a = DracoDecoderModule(s), postMessage({ id: \"initDone\" });\n break;\n }\n case \"decodeMesh\": {\n if (!a)\n throw new Error(\"Draco decoder module is not available\");\n a.then((i) => {\n const s = Hg(i, t.dataView, t.attributes, (r) => {\n postMessage({ id: \"indices\", data: r }, [r.buffer]);\n }, (r, n, o, l, h, c) => {\n postMessage({ id: \"attribute\", kind: r, data: n, size: o, byteOffset: l, byteStride: h, normalized: c }, [n.buffer]);\n });\n postMessage({ id: \"decodeMeshDone\", totalVertices: s });\n });\n break;\n }\n }\n };\n}\nfunction lk(a, e, t) {\n return new Promise((i, s) => {\n const r = (o) => {\n a.removeEventListener(\"error\", r), a.removeEventListener(\"message\", n), s(o);\n }, n = (o) => {\n o.data.id === \"initDone\" && (a.removeEventListener(\"error\", r), a.removeEventListener(\"message\", n), i(a));\n };\n if (a.addEventListener(\"error\", r), a.addEventListener(\"message\", n), !e)\n a.postMessage({\n id: \"init\",\n decoder: {\n url: t\n }\n });\n else {\n const o = e.slice(0);\n a.postMessage({\n id: \"init\",\n decoder: {\n url: t,\n wasmBinary: o\n }\n }, [o]);\n }\n });\n}\nfunction hk(a, e) {\n return new Promise((t) => {\n (e || DracoDecoderModule)({ wasmBinary: a }).then((i) => {\n t({ module: i });\n });\n });\n}\nclass Br {\n /**\n * Returns true if the decoder configuration is available.\n */\n static get DecoderAvailable() {\n const e = Br.Configuration.decoder;\n return !!(e.wasmUrl && e.wasmBinaryUrl && typeof WebAssembly == \"object\" || e.fallbackUrl);\n }\n static GetDefaultNumWorkers() {\n return typeof navigator != \"object\" || !navigator.hardwareConcurrency ? 1 : Math.min(Math.floor(navigator.hardwareConcurrency * 0.5), 4);\n }\n /**\n * Default instance for the draco compression object.\n */\n static get Default() {\n return Br._Default || (Br._Default = new Br()), Br._Default;\n }\n /**\n * Reset the default draco compression object to null and disposing the removed default instance.\n * Note that if the workerPool is a member of the static Configuration object it is recommended not to run dispose,\n * unless the static worker pool is no longer needed.\n * @param skipDispose set to true to not dispose the removed default instance\n */\n static ResetDefault(e) {\n Br._Default && (e || Br._Default.dispose(), Br._Default = null);\n }\n /**\n * Constructor\n * @param numWorkers The number of workers for async operations Or an options object. Specify `0` to disable web workers and run synchronously in the current context.\n */\n constructor(e = Br.DefaultNumWorkers) {\n const t = Br.Configuration.decoder;\n if (t.workerPool || typeof e == \"object\" && e.workerPool)\n this._workerPoolPromise = Promise.resolve(t.workerPool || e.workerPool);\n else {\n const i = t.wasmBinary || typeof e == \"object\" && e.wasmBinary, s = typeof e == \"number\" ? e : e.numWorkers, r = s && typeof Worker == \"function\" && typeof URL == \"function\", n = r || !r && !t.jsModule, o = t.wasmUrl && t.wasmBinaryUrl && typeof WebAssembly == \"object\" ? {\n url: n ? J.GetBabylonScriptURL(t.wasmUrl, !0) : \"\",\n wasmBinaryPromise: i ? Promise.resolve(i) : J.LoadFileAsync(J.GetBabylonScriptURL(t.wasmBinaryUrl, !0))\n } : {\n url: n ? J.GetBabylonScriptURL(t.fallbackUrl) : \"\",\n wasmBinaryPromise: Promise.resolve(void 0)\n };\n r ? this._workerPoolPromise = o.wasmBinaryPromise.then((l) => {\n const h = `${Hg}(${ok})()`, c = URL.createObjectURL(new Blob([h], { type: \"application/javascript\" }));\n return new Cf(s, () => {\n const u = new Worker(c);\n return lk(u, l, o.url);\n });\n }) : this._decoderModulePromise = o.wasmBinaryPromise.then(async (l) => {\n if (typeof DracoDecoderModule > \"u\" && !t.jsModule) {\n if (!o.url)\n throw new Error(\"Draco decoder module is not available\");\n await J.LoadBabylonScriptAsync(o.url);\n }\n return await hk(l, t.jsModule);\n });\n }\n }\n /**\n * Stop all async operations and release resources.\n */\n dispose() {\n this._workerPoolPromise && this._workerPoolPromise.then((e) => {\n e.dispose();\n }), delete this._workerPoolPromise, delete this._decoderModulePromise;\n }\n /**\n * Returns a promise that resolves when ready. Call this manually to ensure draco compression is ready before use.\n * @returns a promise that resolves when ready\n */\n async whenReadyAsync() {\n if (this._workerPoolPromise) {\n await this._workerPoolPromise;\n return;\n }\n if (this._decoderModulePromise) {\n await this._decoderModulePromise;\n return;\n }\n }\n /**\n * Decode Draco compressed mesh data to mesh data.\n * @param data The ArrayBuffer or ArrayBufferView for the Draco compression data\n * @param attributes A map of attributes from vertex buffer kinds to Draco unique ids\n * @param gltfNormalizedOverride A map of attributes from vertex buffer kinds to normalized flags to override the Draco normalization\n * @returns A promise that resolves with the decoded mesh data\n */\n decodeMeshToMeshDataAsync(e, t, i) {\n const s = e instanceof ArrayBuffer ? new Int8Array(e) : new Int8Array(e.buffer, e.byteOffset, e.byteLength), r = (n, o) => i && i[n] !== void 0 ? (o !== i[n] && L.Warn(`Normalized flag from Draco data (${o}) does not match normalized flag from glTF accessor (${i[n]}). Using flag from glTF accessor.`), i[n]) : o;\n if (this._workerPoolPromise)\n return this._workerPoolPromise.then((n) => new Promise((o, l) => {\n n.push((h, c) => {\n let u = null;\n const d = [], f = (m) => {\n h.removeEventListener(\"error\", f), h.removeEventListener(\"message\", p), l(m), c();\n }, p = (m) => {\n const x = m.data;\n switch (x.id) {\n case \"decodeMeshDone\": {\n h.removeEventListener(\"error\", f), h.removeEventListener(\"message\", p), o({ indices: u, attributes: d, totalVertices: x.totalVertices }), c();\n break;\n }\n case \"indices\": {\n u = x.data;\n break;\n }\n case \"attribute\": {\n d.push({\n kind: x.kind,\n data: x.data,\n size: x.size,\n byteOffset: x.byteOffset,\n byteStride: x.byteStride,\n normalized: r(x.kind, x.normalized)\n });\n break;\n }\n }\n };\n h.addEventListener(\"error\", f), h.addEventListener(\"message\", p);\n const _ = s.slice();\n h.postMessage({ id: \"decodeMesh\", dataView: _, attributes: t }, [_.buffer]);\n });\n }));\n if (this._decoderModulePromise)\n return this._decoderModulePromise.then((n) => {\n let o = null;\n const l = [], h = Hg(n.module, s, t, (c) => {\n o = c;\n }, (c, u, d, f, p, _) => {\n l.push({\n kind: c,\n data: u,\n size: d,\n byteOffset: f,\n byteStride: p,\n normalized: _\n });\n });\n return { indices: o, attributes: l, totalVertices: h };\n });\n throw new Error(\"Draco decoder module is not available\");\n }\n /**\n * Decode Draco compressed mesh data to Babylon geometry.\n * @param name The name to use when creating the geometry\n * @param scene The scene to use when creating the geometry\n * @param data The ArrayBuffer or ArrayBufferView for the Draco compression data\n * @param attributes A map of attributes from vertex buffer kinds to Draco unique ids\n * @returns A promise that resolves with the decoded geometry\n */\n async decodeMeshToGeometryAsync(e, t, i, s) {\n const r = await this.decodeMeshToMeshDataAsync(i, s), n = new Ks(e, t);\n r.indices && n.setIndices(r.indices);\n for (const o of r.attributes)\n n.setVerticesBuffer(new R(t.getEngine(), o.data, o.kind, !1, void 0, o.byteStride, void 0, o.byteOffset, o.size, void 0, o.normalized, !0), r.totalVertices);\n return n;\n }\n /** @internal */\n async _decodeMeshToGeometryForGltfAsync(e, t, i, s, r) {\n const n = await this.decodeMeshToMeshDataAsync(i, s, r), o = new Ks(e, t);\n n.indices && o.setIndices(n.indices);\n for (const l of n.attributes)\n o.setVerticesBuffer(new R(t.getEngine(), l.data, l.kind, !1, void 0, l.byteStride, void 0, l.byteOffset, l.size, void 0, l.normalized, !0), n.totalVertices);\n return o;\n }\n /**\n * Decode Draco compressed mesh data to Babylon vertex data.\n * @param data The ArrayBuffer or ArrayBufferView for the Draco compression data\n * @param attributes A map of attributes from vertex buffer kinds to Draco unique ids\n * @returns A promise that resolves with the decoded vertex data\n * @deprecated Use {@link decodeMeshToGeometryAsync} for better performance in some cases\n */\n async decodeMeshAsync(e, t) {\n const i = await this.decodeMeshToMeshDataAsync(e, t), s = new ge();\n i.indices && (s.indices = i.indices);\n for (const r of i.attributes) {\n const n = R.GetFloatData(r.data, r.size, R.GetDataType(r.data), r.byteOffset, r.byteStride, r.normalized, i.totalVertices);\n s.set(n, r.kind);\n }\n return s;\n }\n}\nBr.Configuration = {\n decoder: {\n wasmUrl: `${J._DefaultCdnUrl}/draco_wasm_wrapper_gltf.js`,\n wasmBinaryUrl: `${J._DefaultCdnUrl}/draco_decoder_gltf.wasm`,\n fallbackUrl: `${J._DefaultCdnUrl}/draco_decoder_gltf.js`\n }\n};\nBr.DefaultNumWorkers = Br.GetDefaultNumWorkers();\nBr._Default = null;\nclass wo {\n /**\n * Default instance for the meshoptimizer object.\n */\n static get Default() {\n return wo._Default || (wo._Default = new wo()), wo._Default;\n }\n /**\n * Constructor\n */\n constructor() {\n const e = wo.Configuration.decoder;\n this._decoderModulePromise = J.LoadBabylonScriptAsync(e.url).then(() => MeshoptDecoder.ready);\n }\n /**\n * Stop all async operations and release resources.\n */\n dispose() {\n delete this._decoderModulePromise;\n }\n /**\n * Decode meshopt data.\n * @see https://github.com/zeux/meshoptimizer/tree/master/js#decoder\n * @param source The input data.\n * @param count The number of elements.\n * @param stride The stride in bytes.\n * @param mode The compression mode.\n * @param filter The compression filter.\n * @returns a Promise that resolves to the decoded data\n */\n decodeGltfBufferAsync(e, t, i, s, r) {\n return this._decoderModulePromise.then(async () => {\n MeshoptDecoder.useWorkers(1);\n const n = await MeshoptDecoder.decodeGltfBufferAsync(t, i, e, s, r);\n return MeshoptDecoder.useWorkers(0), n;\n });\n }\n}\nwo.Configuration = {\n decoder: {\n url: `${J._DefaultCdnUrl}/meshopt_decoder.js`\n }\n};\nwo._Default = null;\nlet hp = 0;\nclass Au {\n /**\n * Initializes the vertex\n * @param pos The position of the vertex\n * @param normal The normal of the vertex\n * @param uv The texture coordinate of the vertex\n * @param vertColor The RGBA color of the vertex\n */\n constructor(e, t, i, s) {\n this.pos = e, this.normal = t, this.uv = i, this.vertColor = s;\n }\n /**\n * Make a clone, or deep copy, of the vertex\n * @returns A new Vertex\n */\n clone() {\n var e, t;\n return new Au(this.pos.clone(), this.normal.clone(), (e = this.uv) == null ? void 0 : e.clone(), (t = this.vertColor) == null ? void 0 : t.clone());\n }\n /**\n * Invert all orientation-specific data (e.g. vertex normal). Called when the\n * orientation of a polygon is flipped.\n */\n flip() {\n this.normal = this.normal.scale(-1);\n }\n /**\n * Create a new vertex between this vertex and `other` by linearly\n * interpolating all properties using a parameter of `t`. Subclasses should\n * override this to interpolate additional properties.\n * @param other the vertex to interpolate against\n * @param t The factor used to linearly interpolate between the vertices\n * @returns The new interpolated vertex\n */\n interpolate(e, t) {\n return new Au(g.Lerp(this.pos, e.pos, t), g.Lerp(this.normal, e.normal, t), this.uv && e.uv ? Q.Lerp(this.uv, e.uv, t) : void 0, this.vertColor && e.vertColor ? Ce.Lerp(this.vertColor, e.vertColor, t) : void 0);\n }\n}\nclass El {\n /**\n * Initializes the plane\n * @param normal The normal for the plane\n * @param w\n */\n constructor(e, t) {\n this.normal = e, this.w = t;\n }\n /**\n * Construct a plane from three points\n * @param a Point a\n * @param b Point b\n * @param c Point c\n * @returns A new plane\n */\n static FromPoints(e, t, i) {\n const s = i.subtract(e), r = t.subtract(e);\n if (s.lengthSquared() === 0 || r.lengthSquared() === 0)\n return null;\n const n = g.Normalize(g.Cross(s, r));\n return new El(n, g.Dot(n, e));\n }\n /**\n * Clone, or make a deep copy of the plane\n * @returns a new Plane\n */\n clone() {\n return new El(this.normal.clone(), this.w);\n }\n /**\n * Flip the face of the plane\n */\n flip() {\n this.normal.scaleInPlace(-1), this.w = -this.w;\n }\n /**\n * Split `polygon` by this plane if needed, then put the polygon or polygon\n * fragments in the appropriate lists. Coplanar polygons go into either\n `* coplanarFront` or `coplanarBack` depending on their orientation with\n * respect to this plane. Polygons in front or in back of this plane go into\n * either `front` or `back`\n * @param polygon The polygon to be split\n * @param coplanarFront Will contain polygons coplanar with the plane that are oriented to the front of the plane\n * @param coplanarBack Will contain polygons coplanar with the plane that are oriented to the back of the plane\n * @param front Will contain the polygons in front of the plane\n * @param back Will contain the polygons begind the plane\n */\n splitPolygon(e, t, i, s, r) {\n let c = 0;\n const u = [];\n let d, f;\n for (d = 0; d < e.vertices.length; d++) {\n f = g.Dot(this.normal, e.vertices[d].pos) - this.w;\n const p = f < -El.EPSILON ? 2 : f > El.EPSILON ? 1 : 0;\n c |= p, u.push(p);\n }\n switch (c) {\n case 0:\n (g.Dot(this.normal, e.plane.normal) > 0 ? t : i).push(e);\n break;\n case 1:\n s.push(e);\n break;\n case 2:\n r.push(e);\n break;\n case 3: {\n const p = [], _ = [];\n for (d = 0; d < e.vertices.length; d++) {\n const x = (d + 1) % e.vertices.length, v = u[d], T = u[x], E = e.vertices[d], b = e.vertices[x];\n if (v !== 2 && p.push(E), v !== 1 && _.push(v !== 2 ? E.clone() : E), (v | T) === 3) {\n f = (this.w - g.Dot(this.normal, E.pos)) / g.Dot(this.normal, b.pos.subtract(E.pos));\n const S = E.interpolate(b, f);\n p.push(S), _.push(S.clone());\n }\n }\n let m;\n p.length >= 3 && (m = new nc(p, e.shared), m.plane && s.push(m)), _.length >= 3 && (m = new nc(_, e.shared), m.plane && r.push(m));\n break;\n }\n }\n }\n}\nEl.EPSILON = 1e-5;\nclass nc {\n /**\n * Initializes the polygon\n * @param vertices The vertices of the polygon\n * @param shared The properties shared across all polygons\n */\n constructor(e, t) {\n this.vertices = e, this.shared = t, this.plane = El.FromPoints(e[0].pos, e[1].pos, e[2].pos);\n }\n /**\n * Clones, or makes a deep copy, or the polygon\n * @returns A new CSGPolygon\n */\n clone() {\n const e = this.vertices.map((t) => t.clone());\n return new nc(e, this.shared);\n }\n /**\n * Flips the faces of the polygon\n */\n flip() {\n this.vertices.reverse().map((e) => {\n e.flip();\n }), this.plane.flip();\n }\n}\nlet In = class bp {\n /**\n * Initializes the node\n * @param polygons A collection of polygons held in the node\n */\n constructor(e) {\n this._plane = null, this._front = null, this._back = null, this._polygons = new Array(), e && this.build(e);\n }\n /**\n * Clones, or makes a deep copy, of the node\n * @returns The cloned node\n */\n clone() {\n const e = new bp();\n return e._plane = this._plane && this._plane.clone(), e._front = this._front && this._front.clone(), e._back = this._back && this._back.clone(), e._polygons = this._polygons.map((t) => t.clone()), e;\n }\n /**\n * Convert solid space to empty space and empty space to solid space\n */\n invert() {\n for (let t = 0; t < this._polygons.length; t++)\n this._polygons[t].flip();\n this._plane && this._plane.flip(), this._front && this._front.invert(), this._back && this._back.invert();\n const e = this._front;\n this._front = this._back, this._back = e;\n }\n /**\n * Recursively remove all polygons in `polygons` that are inside this BSP\n * tree.\n * @param polygons Polygons to remove from the BSP\n * @returns Polygons clipped from the BSP\n */\n clipPolygons(e) {\n if (!this._plane)\n return e.slice();\n let t = [], i = [];\n for (let s = 0; s < e.length; s++)\n this._plane.splitPolygon(e[s], t, i, t, i);\n return this._front && (t = this._front.clipPolygons(t)), this._back ? i = this._back.clipPolygons(i) : i = [], t.concat(i);\n }\n /**\n * Remove all polygons in this BSP tree that are inside the other BSP tree\n * `bsp`.\n * @param bsp BSP containing polygons to remove from this BSP\n */\n clipTo(e) {\n this._polygons = e.clipPolygons(this._polygons), this._front && this._front.clipTo(e), this._back && this._back.clipTo(e);\n }\n /**\n * Return a list of all polygons in this BSP tree\n * @returns List of all polygons in this BSP tree\n */\n allPolygons() {\n let e = this._polygons.slice();\n return this._front && (e = e.concat(this._front.allPolygons())), this._back && (e = e.concat(this._back.allPolygons())), e;\n }\n /**\n * Build a BSP tree out of `polygons`. When called on an existing tree, the\n * new polygons are filtered down to the bottom of the tree and become new\n * nodes there. Each set of polygons is partitioned using the first polygon\n * (no heuristic is used to pick a good split)\n * @param polygons Polygons used to construct the BSP tree\n */\n build(e) {\n if (!e.length)\n return;\n this._plane || (this._plane = e[0].plane.clone());\n const t = [], i = [];\n for (let s = 0; s < e.length; s++)\n this._plane.splitPolygon(e[s], this._polygons, this._polygons, t, i);\n t.length && (this._front || (this._front = new bp()), this._front.build(t)), i.length && (this._back || (this._back = new bp()), this._back.build(i));\n }\n};\nclass ma {\n constructor() {\n this._polygons = new Array();\n }\n /**\n * Convert a VertexData to CSG\n * @param data defines the VertexData to convert to CSG\n * @returns the new CSG\n */\n static FromVertexData(e) {\n let t, i, s;\n const r = [], n = e.indices, o = e.positions, l = e.normals, h = e.uvs, c = e.colors;\n if (!n || !o)\n throw \"BABYLON.CSG: VertexData must at least contain positions and indices\";\n for (let d = 0; d < n.length; d += 3) {\n s = [];\n for (let f = 0; f < 3; f++) {\n const p = d + f, _ = n[p], m = l ? g.FromArray(l, _ * 3) : g.Zero(), x = h ? Q.FromArray(h, _ * 2) : void 0, v = c ? Ce.FromArray(c, _ * 4) : void 0, T = g.FromArray(o, _ * 3);\n t = new Au(T, m, x, v), s.push(t);\n }\n i = new nc(s, { subMeshId: 0, meshId: hp, materialIndex: 0 }), i.plane && r.push(i);\n }\n const u = ma._FromPolygons(r);\n return u.matrix = O.Identity(), u.position = g.Zero(), u.rotation = g.Zero(), u.scaling = g.One(), u.rotationQuaternion = se.Identity(), hp++, u;\n }\n /**\n * Convert the Mesh to CSG\n * @param mesh The Mesh to convert to CSG\n * @param absolute If true, the final (local) matrix transformation is set to the identity and not to that of `mesh`. It can help when dealing with right-handed meshes (default: false)\n * @returns A new CSG from the Mesh\n */\n static FromMesh(e, t = !1) {\n let i, s, r, n, o, l, h;\n const c = [];\n let u, d, f, p = null, _, m = !1;\n if (e instanceof H)\n e.computeWorldMatrix(!0), u = e.getWorldMatrix(), d = e.position.clone(), f = e.rotation.clone(), e.rotationQuaternion && (p = e.rotationQuaternion.clone()), _ = e.scaling.clone(), e.material && t && (m = e.material.sideOrientation === 0);\n else\n throw \"BABYLON.CSG: Wrong Mesh type, must be BABYLON.Mesh\";\n const x = e.getIndices(), v = e.getVerticesData(R.PositionKind), T = e.getVerticesData(R.NormalKind), E = e.getVerticesData(R.UVKind), b = e.getVerticesData(R.ColorKind);\n if (x === null)\n throw \"BABYLON.CSG: Mesh has no indices\";\n if (v === null)\n throw \"BABYLON.CSG: Mesh has no positions\";\n if (T === null)\n throw \"BABYLON.CSG: Mesh has no normals\";\n const S = e.subMeshes;\n for (let P = 0, N = S.length; P < N; P++)\n for (let F = S[P].indexStart, $ = S[P].indexCount + S[P].indexStart; F < $; F += 3) {\n h = [];\n for (let j = 0; j < 3; j++) {\n const ne = j === 0 ? F + j : m ? F + 3 - j : F + j, te = new g(T[x[ne] * 3], T[x[ne] * 3 + 1], T[x[ne] * 3 + 2]);\n E && (r = new Q(E[x[ne] * 2], E[x[ne] * 2 + 1])), b && (o = new Ce(b[x[ne] * 4], b[x[ne] * 4 + 1], b[x[ne] * 4 + 2], b[x[ne] * 4 + 3]));\n const le = new g(v[x[ne] * 3], v[x[ne] * 3 + 1], v[x[ne] * 3 + 2]);\n n = g.TransformCoordinates(le, u), s = g.TransformNormal(te, u), i = new Au(n, s, r, o), h.push(i);\n }\n l = new nc(h, { subMeshId: P, meshId: hp, materialIndex: S[P].materialIndex }), l.plane && c.push(l);\n }\n const C = ma._FromPolygons(c);\n return C.matrix = t ? O.Identity() : u, C.position = t ? g.Zero() : d, C.rotation = t ? g.Zero() : f, C.scaling = t ? g.One() : _, C.rotationQuaternion = t && p ? se.Identity() : p, hp++, C;\n }\n /**\n * Construct a CSG solid from a list of `CSG.Polygon` instances.\n * @param polygons Polygons used to construct a CSG solid\n * @returns A new CSG solid\n */\n static _FromPolygons(e) {\n const t = new ma();\n return t._polygons = e, t;\n }\n /**\n * Clones, or makes a deep copy, of the CSG\n * @returns A new CSG\n */\n clone() {\n const e = new ma();\n return e._polygons = this._polygons.map((t) => t.clone()), e.copyTransformAttributes(this), e;\n }\n /**\n * Unions this CSG with another CSG\n * @param csg The CSG to union against this CSG\n * @returns The unioned CSG\n */\n union(e) {\n const t = new In(this.clone()._polygons), i = new In(e.clone()._polygons);\n return t.clipTo(i), i.clipTo(t), i.invert(), i.clipTo(t), i.invert(), t.build(i.allPolygons()), ma._FromPolygons(t.allPolygons()).copyTransformAttributes(this);\n }\n /**\n * Unions this CSG with another CSG in place\n * @param csg The CSG to union against this CSG\n */\n unionInPlace(e) {\n const t = new In(this._polygons), i = new In(e._polygons);\n t.clipTo(i), i.clipTo(t), i.invert(), i.clipTo(t), i.invert(), t.build(i.allPolygons()), this._polygons = t.allPolygons();\n }\n /**\n * Subtracts this CSG with another CSG\n * @param csg The CSG to subtract against this CSG\n * @returns A new CSG\n */\n subtract(e) {\n const t = new In(this.clone()._polygons), i = new In(e.clone()._polygons);\n return t.invert(), t.clipTo(i), i.clipTo(t), i.invert(), i.clipTo(t), i.invert(), t.build(i.allPolygons()), t.invert(), ma._FromPolygons(t.allPolygons()).copyTransformAttributes(this);\n }\n /**\n * Subtracts this CSG with another CSG in place\n * @param csg The CSG to subtract against this CSG\n */\n subtractInPlace(e) {\n const t = new In(this._polygons), i = new In(e._polygons);\n t.invert(), t.clipTo(i), i.clipTo(t), i.invert(), i.clipTo(t), i.invert(), t.build(i.allPolygons()), t.invert(), this._polygons = t.allPolygons();\n }\n /**\n * Intersect this CSG with another CSG\n * @param csg The CSG to intersect against this CSG\n * @returns A new CSG\n */\n intersect(e) {\n const t = new In(this.clone()._polygons), i = new In(e.clone()._polygons);\n return t.invert(), i.clipTo(t), i.invert(), t.clipTo(i), i.clipTo(t), t.build(i.allPolygons()), t.invert(), ma._FromPolygons(t.allPolygons()).copyTransformAttributes(this);\n }\n /**\n * Intersects this CSG with another CSG in place\n * @param csg The CSG to intersect against this CSG\n */\n intersectInPlace(e) {\n const t = new In(this._polygons), i = new In(e._polygons);\n t.invert(), i.clipTo(t), i.invert(), t.clipTo(i), i.clipTo(t), t.build(i.allPolygons()), t.invert(), this._polygons = t.allPolygons();\n }\n /**\n * Return a new CSG solid with solid and empty space switched. This solid is\n * not modified.\n * @returns A new CSG solid with solid and empty space switched\n */\n inverse() {\n const e = this.clone();\n return e.inverseInPlace(), e;\n }\n /**\n * Inverses the CSG in place\n */\n inverseInPlace() {\n this._polygons.map((e) => {\n e.flip();\n });\n }\n /**\n * This is used to keep meshes transformations so they can be restored\n * when we build back a Babylon Mesh\n * NB : All CSG operations are performed in world coordinates\n * @param csg The CSG to copy the transform attributes from\n * @returns This CSG\n */\n copyTransformAttributes(e) {\n return this.matrix = e.matrix, this.position = e.position, this.rotation = e.rotation, this.scaling = e.scaling, this.rotationQuaternion = e.rotationQuaternion, this;\n }\n /**\n * Build vertex data from CSG\n * Coordinates here are in world space\n * @param onBeforePolygonProcessing called before each polygon is being processed\n * @param onAfterPolygonProcessing called after each polygon has been processed\n * @returns the final vertex data\n */\n toVertexData(e = null, t = null) {\n const i = this.matrix.clone();\n i.invert();\n const s = this._polygons, r = [], n = [], o = [];\n let l = null, h = null;\n const c = g.Zero(), u = g.Zero(), d = Q.Zero(), f = new Ce(0, 0, 0, 0), p = [0, 0, 0], _ = {};\n let m;\n for (let v = 0, T = s.length; v < T; v++) {\n const E = s[v];\n e && e(E);\n for (let b = 2, S = E.vertices.length; b < S; b++) {\n p[0] = 0, p[1] = b - 1, p[2] = b;\n for (let C = 0; C < 3; C++) {\n c.copyFrom(E.vertices[p[C]].pos), u.copyFrom(E.vertices[p[C]].normal), E.vertices[p[C]].uv && (l || (l = []), d.copyFrom(E.vertices[p[C]].uv)), E.vertices[p[C]].vertColor && (h || (h = []), f.copyFrom(E.vertices[p[C]].vertColor));\n const P = g.TransformCoordinates(c, i), N = g.TransformNormal(u, i);\n m = _[P.x + \",\" + P.y + \",\" + P.z];\n let F = !1;\n l && !(l[m * 2] === d.x || l[m * 2 + 1] === d.y) && (F = !0);\n let $ = !1;\n h && !(h[m * 4] === f.r || h[m * 4 + 1] === f.g || h[m * 4 + 2] === f.b || h[m * 4 + 3] === f.a) && ($ = !0), (!(typeof m < \"u\" && o[m * 3] === N.x && o[m * 3 + 1] === N.y && o[m * 3 + 2] === N.z) || F || $) && (r.push(P.x, P.y, P.z), l && l.push(d.x, d.y), o.push(u.x, u.y, u.z), h && h.push(f.r, f.g, f.b, f.a), m = _[P.x + \",\" + P.y + \",\" + P.z] = r.length / 3 - 1), n.push(m), t && t();\n }\n }\n }\n const x = new ge();\n return x.positions = r, x.normals = o, l && (x.uvs = l), h && (x.colors = h), x.indices = n, x;\n }\n /**\n * Build Raw mesh from CSG\n * Coordinates here are in world space\n * @param name The name of the mesh geometry\n * @param scene The Scene\n * @param keepSubMeshes Specifies if the submeshes should be kept\n * @returns A new Mesh\n */\n buildMeshGeometry(e, t, i) {\n const s = new H(e, t), r = this._polygons;\n let n = 0;\n const o = {};\n let l;\n if (i && r.sort((c, u) => c.shared.meshId === u.shared.meshId ? c.shared.subMeshId - u.shared.subMeshId : c.shared.meshId - u.shared.meshId), this.toVertexData((c) => {\n o[c.shared.meshId] || (o[c.shared.meshId] = {}), o[c.shared.meshId][c.shared.subMeshId] || (o[c.shared.meshId][c.shared.subMeshId] = {\n indexStart: 1 / 0,\n indexEnd: -1 / 0,\n materialIndex: c.shared.materialIndex\n }), l = o[c.shared.meshId][c.shared.subMeshId];\n }, () => {\n l.indexStart = Math.min(n, l.indexStart), l.indexEnd = Math.max(n, l.indexEnd), n++;\n }).applyToMesh(s), i) {\n let c = 0, u;\n s.subMeshes = [];\n for (const d in o) {\n u = -1;\n for (const f in o[d])\n l = o[d][f], or.CreateFromIndices(l.materialIndex + c, l.indexStart, l.indexEnd - l.indexStart + 1, s), u = Math.max(l.materialIndex, u);\n c += ++u;\n }\n }\n return s;\n }\n /**\n * Build Mesh from CSG taking material and transforms into account\n * @param name The name of the Mesh\n * @param material The material of the Mesh\n * @param scene The Scene\n * @param keepSubMeshes Specifies if submeshes should be kept\n * @returns The new Mesh\n */\n toMesh(e, t = null, i, s) {\n const r = this.buildMeshGeometry(e, i, s);\n return r.material = t, r.position.copyFrom(this.position), r.rotation.copyFrom(this.rotation), this.rotationQuaternion && (r.rotationQuaternion = this.rotationQuaternion.clone()), r.scaling.copyFrom(this.scaling), r.computeWorldMatrix(!0), r;\n }\n}\nconst ck = \"meshUVSpaceRendererVertexShader\", uk = `precision highp float;attribute vec3 position;attribute vec3 normal;attribute vec2 uv;uniform mat4 projMatrix;varying vec2 vDecalTC;\n#include\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\nvoid main(void) {vec3 positionUpdated=position;vec3 normalUpdated=normal;\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include\n#include\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);mat3 normWorldSM=mat3(finalWorld);vec3 vNormalW;\n#if defined(INSTANCES) && defined(THIN_INSTANCES)\nvNormalW=normalUpdated/vec3(dot(normWorldSM[0],normWorldSM[0]),dot(normWorldSM[1],normWorldSM[1]),dot(normWorldSM[2],normWorldSM[2]));vNormalW=normalize(normWorldSM*vNormalW);\n#else\n#ifdef NONUNIFORMSCALING\nnormWorldSM=transposeMat3(inverseMat3(normWorldSM));\n#endif\nvNormalW=normalize(normWorldSM*normalUpdated);\n#endif\nvec3 normalView=normalize((projMatrix*vec4(vNormalW,0.0)).xyz);vec3 decalTC=(projMatrix*worldPos).xyz;vDecalTC=decalTC.xy;gl_Position=vec4(uv*2.0-1.0,normalView.z>0.0 ? 2. : decalTC.z,1.0);}`;\nz.ShadersStore[ck] = uk;\nconst dk = \"meshUVSpaceRendererPixelShader\", fk = `precision highp float;varying vec2 vDecalTC;uniform sampler2D textureSampler;void main(void) {if (vDecalTC.x<0. || vDecalTC.x>1. || vDecalTC.y<0. || vDecalTC.y>1.) {discard;}\ngl_FragColor=texture2D(textureSampler,vDecalTC);}\n`;\nz.ShadersStore[dk] = fk;\nconst pk = \"meshUVSpaceRendererMaskerVertexShader\", _k = \"attribute vec2 uv;varying vec2 vUV;void main(void) {gl_Position=vec4(vec2(uv.x,uv.y)*2.0-1.0,0.,1.0);vUV=uv;}\";\nz.ShadersStore[pk] = _k;\nconst mk = \"meshUVSpaceRendererMaskerPixelShader\", gk = `varying vec2 vUV;void main(void) {gl_FragColor=vec4(1.0,1.0,1.0,1.0);}\n`;\nz.ShadersStore[mk] = gk;\nconst xk = \"meshUVSpaceRendererFinaliserPixelShader\", vk = `precision highp float;varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D maskTextureSampler;uniform vec2 textureSize;void main() {vec4 mask=texture2D(maskTextureSampler,vUV).rgba;if (mask.r>0.5) {gl_FragColor=texture2D(textureSampler,vUV);} else {vec2 texelSize=4.0/textureSize;vec2 uv_p01=vUV+vec2(-1.0,0.0)*texelSize;vec2 uv_p21=vUV+vec2(1.0,0.0)*texelSize;vec2 uv_p10=vUV+vec2(0.0,-1.0)*texelSize;vec2 uv_p12=vUV+vec2(0.0,1.0)*texelSize;float mask_p01=texture2D(maskTextureSampler,uv_p01).r;float mask_p21=texture2D(maskTextureSampler,uv_p21).r;float mask_p10=texture2D(maskTextureSampler,uv_p10).r;float mask_p12=texture2D(maskTextureSampler,uv_p12).r;vec4 col=vec4(0.0,0.0,0.0,0.0);float total_weight=0.0;if (mask_p01>0.5) {col+=texture2D(textureSampler,uv_p01);total_weight+=1.0;}\nif (mask_p21>0.5) {col+=texture2D(textureSampler,uv_p21);total_weight+=1.0;}\nif (mask_p10>0.5) {col+=texture2D(textureSampler,uv_p10);total_weight+=1.0;}\nif (mask_p12>0.5) {col+=texture2D(textureSampler,uv_p12);total_weight+=1.0;}\nif (total_weight>0.0) {gl_FragColor=col/total_weight;} else {gl_FragColor=col;}}}\n`;\nz.ShadersStore[xk] = vk;\nconst Tk = \"meshUVSpaceRendererFinaliserVertexShader\", Sk = `precision highp float;attribute vec3 position;attribute vec2 uv;uniform mat4 worldViewProjection;varying vec2 vUV;void main() {gl_Position=worldViewProjection*vec4(position,1.0);vUV=uv;}\n`;\nz.ShadersStore[Tk] = Sk;\nH._TrailMeshParser = (a, e) => qp.Parse(a, e);\nclass qp extends H {\n /** @internal */\n constructor(e, t, i, s, r = 60, n = !0) {\n super(e, i), this._sectionPolygonPointsCount = 4, this._running = !1, this._generator = t, typeof s == \"object\" && s !== null ? (this.diameter = s.diameter || 1, this._length = s.length || 60, this._segments = s.segments ? s.segments > this._length ? this._length : s.segments : this._length, this._sectionPolygonPointsCount = s.sections || 4, this._doNotTaper = s.doNotTaper || !1, this._autoStart = s.autoStart || !0) : (this.diameter = s || 1, this._length = r, this._segments = this._length, this._doNotTaper = !1, this._autoStart = n), this._sectionVectors = [], this._sectionNormalVectors = [];\n for (let o = 0; o <= this._sectionPolygonPointsCount; o++)\n this._sectionVectors[o] = g.Zero(), this._sectionNormalVectors[o] = g.Zero();\n this._createMesh();\n }\n /**\n * \"TrailMesh\"\n * @returns \"TrailMesh\"\n */\n getClassName() {\n return \"TrailMesh\";\n }\n _createMesh() {\n const e = new ge(), t = [], i = [], s = [], r = [];\n let n = g.Zero();\n this._generator instanceof Pt && this._generator.hasBoundingInfo ? n = this._generator.getBoundingInfo().boundingBox.centerWorld : n = this._generator.absolutePosition;\n const o = 2 * Math.PI / this._sectionPolygonPointsCount;\n for (let l = 0; l <= this._sectionPolygonPointsCount; l++) {\n const h = l !== this._sectionPolygonPointsCount ? l * o : 0;\n t.push(n.x + Math.cos(h) * this.diameter, n.y + Math.sin(h) * this.diameter, n.z), r.push(l / this._sectionPolygonPointsCount, 0);\n }\n for (let l = 1; l <= this._segments; l++) {\n for (let c = 0; c <= this._sectionPolygonPointsCount; c++) {\n const u = c !== this._sectionPolygonPointsCount ? c * o : 0;\n t.push(n.x + Math.cos(u) * this.diameter, n.y + Math.sin(u) * this.diameter, n.z), r.push(c / this._sectionPolygonPointsCount, l / this._segments);\n }\n const h = t.length / 3 - 2 * (this._sectionPolygonPointsCount + 1);\n for (let c = 0; c <= this._sectionPolygonPointsCount; c++)\n s.push(h + c, h + c + this._sectionPolygonPointsCount, h + c + this._sectionPolygonPointsCount + 1), s.push(h + c, h + c + this._sectionPolygonPointsCount + 1, h + c + 1);\n }\n ge.ComputeNormals(t, s, i), e.positions = t, e.normals = i, e.indices = s, e.uvs = r, e.applyToMesh(this, !0), this._autoStart && this.start();\n }\n /**\n * Start trailing mesh.\n */\n start() {\n this._running || (this._running = !0, this._beforeRenderObserver = this.getScene().onBeforeRenderObservable.add(() => {\n this.update();\n }));\n }\n /**\n * Stop trailing mesh.\n */\n stop() {\n this._beforeRenderObserver && this._running && (this._running = !1, this.getScene().onBeforeRenderObservable.remove(this._beforeRenderObserver));\n }\n /**\n * Update trailing mesh geometry.\n */\n update() {\n const e = this.getVerticesData(R.PositionKind), t = this.getVerticesData(R.NormalKind), i = this._generator.getWorldMatrix(), s = 3 * (this._sectionPolygonPointsCount + 1);\n if (e && t) {\n if (this._doNotTaper)\n for (let o = s; o < e.length; o++)\n e[o - s] = Re.Lerp(e[o - s], e[o], this._segments / this._length);\n else\n for (let o = s; o < e.length; o++)\n e[o - s] = Re.Lerp(e[o - s], e[o], this._segments / this._length) - t[o] / this._length * this.diameter;\n for (let o = s; o < t.length; o++)\n t[o - s] = Re.Lerp(t[o - s], t[o], this._segments / this._length);\n const r = e.length - 3 * (this._sectionPolygonPointsCount + 1), n = 2 * Math.PI / this._sectionPolygonPointsCount;\n for (let o = 0; o <= this._sectionPolygonPointsCount; o++) {\n const l = o !== this._sectionPolygonPointsCount ? o * n : 0;\n this._sectionVectors[o].copyFromFloats(Math.cos(l) * this.diameter, Math.sin(l) * this.diameter, 0), this._sectionNormalVectors[o].copyFromFloats(Math.cos(l), Math.sin(l), 0), g.TransformCoordinatesToRef(this._sectionVectors[o], i, this._sectionVectors[o]), g.TransformNormalToRef(this._sectionNormalVectors[o], i, this._sectionNormalVectors[o]);\n }\n for (let o = 0; o <= this._sectionPolygonPointsCount; o++)\n e[r + 3 * o] = this._sectionVectors[o].x, e[r + 3 * o + 1] = this._sectionVectors[o].y, e[r + 3 * o + 2] = this._sectionVectors[o].z, t[r + 3 * o] = this._sectionNormalVectors[o].x, t[r + 3 * o + 1] = this._sectionNormalVectors[o].y, t[r + 3 * o + 2] = this._sectionNormalVectors[o].z;\n this.updateVerticesData(R.PositionKind, e, !0, !1), this.updateVerticesData(R.NormalKind, t, !0, !1);\n }\n }\n /**\n * Returns a new TrailMesh object.\n * @param name is a string, the name given to the new mesh\n * @param newGenerator use new generator object for cloned trail mesh\n * @returns a new mesh\n */\n clone(e = \"\", t) {\n const i = {\n diameter: this.diameter,\n length: this._length,\n segments: this._segments,\n sections: this._sectionPolygonPointsCount,\n doNotTaper: this._doNotTaper,\n autoStart: this._autoStart\n };\n return new qp(e, t ?? this._generator, this.getScene(), i);\n }\n /**\n * Serializes this trail mesh\n * @param serializationObject object to write serialization to\n */\n serialize(e) {\n super.serialize(e), e.generatorId = this._generator.id;\n }\n /**\n * Parses a serialized trail mesh\n * @param parsedMesh the serialized mesh\n * @param scene the scene to create the trail mesh in\n * @returns the created trail mesh\n */\n static Parse(e, t) {\n const i = t.getLastMeshById(e.generatorId) ?? t.getLastTransformNodeById(e.generatorId);\n if (!i)\n throw new Error(\"TrailMesh: generator not found with ID \" + e.generatorId);\n const s = {\n diameter: e.diameter ?? e._diameter,\n length: e._length,\n segments: e._segments,\n sections: e._sectionPolygonPointsCount,\n doNotTaper: e._doNotTaper,\n autoStart: e._autoStart\n };\n return new qp(e.name, i, t, s);\n }\n}\nclass HK {\n /**\n * Creates a SimplificationSettings\n * @param quality expected quality\n * @param distance distance when this optimized version should be used\n * @param optimizeMesh already optimized mesh\n */\n constructor(e, t, i) {\n this.quality = e, this.distance = t, this.optimizeMesh = i;\n }\n}\nclass bk {\n /**\n * Creates a new queue\n */\n constructor() {\n this.running = !1, this._simplificationArray = [];\n }\n /**\n * Adds a new simplification task\n * @param task defines a task to add\n */\n addTask(e) {\n this._simplificationArray.push(e);\n }\n /**\n * Execute next task\n */\n executeNext() {\n const e = this._simplificationArray.pop();\n e ? (this.running = !0, this.runSimplification(e)) : this.running = !1;\n }\n /**\n * Execute a simplification task\n * @param task defines the task to run\n */\n runSimplification(e) {\n if (e.parallelProcessing)\n e.settings.forEach((t) => {\n this._getSimplifier(e).simplify(t, (s) => {\n t.distance !== void 0 && e.mesh.addLODLevel(t.distance, s), s.isVisible = !0, t.quality === e.settings[e.settings.length - 1].quality && e.successCallback && e.successCallback(), this.executeNext();\n });\n });\n else {\n const t = this._getSimplifier(e), i = (s, r) => {\n t.simplify(s, (n) => {\n s.distance !== void 0 && e.mesh.addLODLevel(s.distance, n), n.isVisible = !0, r();\n });\n };\n On.Run(e.settings.length, (s) => {\n i(e.settings[s.index], () => {\n s.executeNext();\n });\n }, () => {\n e.successCallback && e.successCallback(), this.executeNext();\n });\n }\n }\n _getSimplifier(e) {\n switch (e.simplificationType) {\n case 0:\n default:\n return new Ak(e.mesh);\n }\n }\n}\nvar UE;\n(function(a) {\n a[a.QUADRATIC = 0] = \"QUADRATIC\";\n})(UE || (UE = {}));\nclass Ek {\n constructor(e) {\n this._vertices = e, this.error = new Array(4), this.deleted = !1, this.isDirty = !1, this.deletePending = !1, this.borderFactor = 0;\n }\n}\nclass yk {\n constructor(e, t) {\n this.position = e, this.id = t, this.isBorder = !0, this.q = new yh(), this.triangleCount = 0, this.triangleStart = 0, this.originalOffsets = [];\n }\n updatePosition(e) {\n this.position.copyFrom(e);\n }\n}\nclass yh {\n constructor(e) {\n this.data = new Array(10);\n for (let t = 0; t < 10; ++t)\n e && e[t] ? this.data[t] = e[t] : this.data[t] = 0;\n }\n det(e, t, i, s, r, n, o, l, h) {\n return this.data[e] * this.data[r] * this.data[h] + this.data[i] * this.data[s] * this.data[l] + this.data[t] * this.data[n] * this.data[o] - this.data[i] * this.data[r] * this.data[o] - this.data[e] * this.data[n] * this.data[l] - this.data[t] * this.data[s] * this.data[h];\n }\n addInPlace(e) {\n for (let t = 0; t < 10; ++t)\n this.data[t] += e.data[t];\n }\n addArrayInPlace(e) {\n for (let t = 0; t < 10; ++t)\n this.data[t] += e[t];\n }\n add(e) {\n const t = new yh();\n for (let i = 0; i < 10; ++i)\n t.data[i] = this.data[i] + e.data[i];\n return t;\n }\n static FromData(e, t, i, s) {\n return new yh(yh.DataFromNumbers(e, t, i, s));\n }\n //returning an array to avoid garbage collection\n static DataFromNumbers(e, t, i, s) {\n return [e * e, e * t, e * i, e * s, t * t, t * i, t * s, i * i, i * s, s * s];\n }\n}\nclass Ck {\n constructor(e, t) {\n this.vertexId = e, this.triangleId = t;\n }\n}\nclass Ak {\n /**\n * Creates a new QuadraticErrorSimplification\n * @param _mesh defines the target mesh\n */\n constructor(e) {\n this._mesh = e, this.syncIterations = 5e3, this.aggressiveness = 7, this.decimationIterations = 100, this.boundingBoxEpsilon = tt;\n }\n /**\n * Simplification of a given mesh according to the given settings.\n * Since this requires computation, it is assumed that the function runs async.\n * @param settings The settings of the simplification, including quality and distance\n * @param successCallback A callback that will be called after the mesh was simplified.\n */\n simplify(e, t) {\n this._initDecimatedMesh(), On.Run(this._mesh.subMeshes.length, (i) => {\n this._initWithMesh(i.index, () => {\n this._runDecimation(e, i.index, () => {\n i.executeNext();\n });\n }, e.optimizeMesh);\n }, () => {\n setTimeout(() => {\n t(this._reconstructedMesh);\n }, 0);\n });\n }\n _runDecimation(e, t, i) {\n const s = ~~(this._triangles.length * e.quality);\n let r = 0;\n const n = this._triangles.length, o = (l, h) => {\n setTimeout(() => {\n l % 5 === 0 && this._updateMesh(l === 0);\n for (let d = 0; d < this._triangles.length; ++d)\n this._triangles[d].isDirty = !1;\n const c = 1e-9 * Math.pow(l + 3, this.aggressiveness), u = (d) => {\n const f = ~~((this._triangles.length / 2 + d) % this._triangles.length), p = this._triangles[f];\n if (p && !(p.error[3] > c || p.deleted || p.isDirty)) {\n for (let _ = 0; _ < 3; ++_)\n if (p.error[_] < c) {\n const m = [], x = [], v = p._vertices[_], T = p._vertices[(_ + 1) % 3];\n if (v.isBorder || T.isBorder)\n continue;\n const E = g.Zero();\n this._calculateError(v, T, E);\n const b = [];\n if (this._isFlipped(v, T, E, m, b) || this._isFlipped(T, v, E, x, b) || m.indexOf(!0) < 0 || x.indexOf(!0) < 0)\n continue;\n const S = [];\n if (b.forEach((N) => {\n S.indexOf(N) === -1 && (N.deletePending = !0, S.push(N));\n }), S.length % 2 !== 0)\n continue;\n v.q = T.q.add(v.q), v.updatePosition(E);\n const C = this._references.length;\n r = this._updateTriangles(v, v, m, r), r = this._updateTriangles(v, T, x, r);\n const P = this._references.length - C;\n if (P <= v.triangleCount) {\n if (P)\n for (let N = 0; N < P; N++)\n this._references[v.triangleStart + N] = this._references[C + N];\n } else\n v.triangleStart = C;\n v.triangleCount = P;\n break;\n }\n }\n };\n On.SyncAsyncForLoop(this._triangles.length, this.syncIterations, u, h, () => n - r <= s);\n }, 0);\n };\n On.Run(this.decimationIterations, (l) => {\n n - r <= s ? l.breakLoop() : o(l.index, () => {\n l.executeNext();\n });\n }, () => {\n setTimeout(() => {\n this._reconstructMesh(t), i();\n }, 0);\n });\n }\n _initWithMesh(e, t, i) {\n this._vertices = [], this._triangles = [];\n const s = this._mesh.getVerticesData(R.PositionKind), r = this._mesh.getIndices(), n = this._mesh.subMeshes[e], o = (u) => {\n if (i) {\n for (let d = 0; d < this._vertices.length; ++d)\n if (this._vertices[d].position.equalsWithEpsilon(u, 1e-4))\n return this._vertices[d];\n }\n return null;\n }, l = [], h = (u) => {\n if (!s)\n return;\n const d = u + n.verticesStart, f = g.FromArray(s, d * 3), p = o(f) || new yk(f, this._vertices.length);\n p.originalOffsets.push(d), p.id === this._vertices.length && this._vertices.push(p), l.push(p.id);\n }, c = n.verticesCount;\n On.SyncAsyncForLoop(c, this.syncIterations / 4 >> 0, h, () => {\n const u = (d) => {\n if (!r)\n return;\n const p = (n.indexStart / 3 + d) * 3, _ = r[p + 0], m = r[p + 1], x = r[p + 2], v = this._vertices[l[_ - n.verticesStart]], T = this._vertices[l[m - n.verticesStart]], E = this._vertices[l[x - n.verticesStart]], b = new Ek([v, T, E]);\n b.originalOffset = p, this._triangles.push(b);\n };\n On.SyncAsyncForLoop(n.indexCount / 3, this.syncIterations, u, () => {\n this._init(t);\n });\n });\n }\n _init(e) {\n const t = (i) => {\n const s = this._triangles[i];\n s.normal = g.Cross(s._vertices[1].position.subtract(s._vertices[0].position), s._vertices[2].position.subtract(s._vertices[0].position)).normalize();\n for (let r = 0; r < 3; r++)\n s._vertices[r].q.addArrayInPlace(yh.DataFromNumbers(s.normal.x, s.normal.y, s.normal.z, -g.Dot(s.normal, s._vertices[0].position)));\n };\n On.SyncAsyncForLoop(this._triangles.length, this.syncIterations, t, () => {\n const i = (s) => {\n const r = this._triangles[s];\n for (let n = 0; n < 3; ++n)\n r.error[n] = this._calculateError(r._vertices[n], r._vertices[(n + 1) % 3]);\n r.error[3] = Math.min(r.error[0], r.error[1], r.error[2]);\n };\n On.SyncAsyncForLoop(this._triangles.length, this.syncIterations, i, () => {\n e();\n });\n });\n }\n _reconstructMesh(e) {\n const t = [];\n let i;\n for (i = 0; i < this._vertices.length; ++i)\n this._vertices[i].triangleCount = 0;\n let s, r;\n for (i = 0; i < this._triangles.length; ++i)\n if (!this._triangles[i].deleted) {\n for (s = this._triangles[i], r = 0; r < 3; ++r)\n s._vertices[r].triangleCount = 1;\n t.push(s);\n }\n const n = this._reconstructedMesh.getVerticesData(R.PositionKind) || [], o = this._reconstructedMesh.getVerticesData(R.NormalKind) || [], l = this._reconstructedMesh.getVerticesData(R.UVKind) || [], h = this._reconstructedMesh.getVerticesData(R.ColorKind) || [], c = this._mesh.getVerticesData(R.NormalKind), u = this._mesh.getVerticesData(R.UVKind), d = this._mesh.getVerticesData(R.ColorKind);\n let f = 0;\n for (i = 0; i < this._vertices.length; ++i) {\n const E = this._vertices[i];\n E.id = f, E.triangleCount && E.originalOffsets.forEach((b) => {\n n.push(E.position.x), n.push(E.position.y), n.push(E.position.z), c && c.length && (o.push(c[b * 3]), o.push(c[b * 3 + 1]), o.push(c[b * 3 + 2])), u && u.length && (l.push(u[b * 2]), l.push(u[b * 2 + 1])), d && d.length && (h.push(d[b * 4]), h.push(d[b * 4 + 1]), h.push(d[b * 4 + 2]), h.push(d[b * 4 + 3])), ++f;\n });\n }\n const p = this._reconstructedMesh.getTotalIndices(), _ = this._reconstructedMesh.getTotalVertices(), m = this._reconstructedMesh.subMeshes;\n this._reconstructedMesh.subMeshes = [];\n const x = this._reconstructedMesh.getIndices(), v = this._mesh.getIndices();\n for (i = 0; i < t.length; ++i)\n s = t[i], [0, 1, 2].forEach((E) => {\n const b = v[s.originalOffset + E];\n let S = s._vertices[E].originalOffsets.indexOf(b);\n S < 0 && (S = 0), x.push(s._vertices[E].id + S + _);\n });\n this._reconstructedMesh.setIndices(x), this._reconstructedMesh.setVerticesData(R.PositionKind, n), o.length > 0 && this._reconstructedMesh.setVerticesData(R.NormalKind, o), l.length > 0 && this._reconstructedMesh.setVerticesData(R.UVKind, l), h.length > 0 && this._reconstructedMesh.setVerticesData(R.ColorKind, h);\n const T = this._mesh.subMeshes[e];\n e > 0 && (this._reconstructedMesh.subMeshes = [], m.forEach((E) => {\n or.AddToMesh(\n E.materialIndex,\n E.verticesStart,\n E.verticesCount,\n /* 0, newPositionData.length/3, */\n E.indexStart,\n E.indexCount,\n E.getMesh()\n );\n }), or.AddToMesh(\n T.materialIndex,\n _,\n f,\n /* 0, newPositionData.length / 3, */\n p,\n t.length * 3,\n this._reconstructedMesh\n ));\n }\n _initDecimatedMesh() {\n this._reconstructedMesh = new H(this._mesh.name + \"Decimated\", this._mesh.getScene()), this._reconstructedMesh.material = this._mesh.material, this._reconstructedMesh.parent = this._mesh.parent, this._reconstructedMesh.isVisible = !1, this._reconstructedMesh.renderingGroupId = this._mesh.renderingGroupId;\n }\n _isFlipped(e, t, i, s, r) {\n for (let n = 0; n < e.triangleCount; ++n) {\n const o = this._triangles[this._references[e.triangleStart + n].triangleId];\n if (o.deleted)\n continue;\n const l = this._references[e.triangleStart + n].vertexId, h = o._vertices[(l + 1) % 3], c = o._vertices[(l + 2) % 3];\n if (h === t || c === t) {\n s[n] = !0, r.push(o);\n continue;\n }\n let u = h.position.subtract(i);\n u = u.normalize();\n let d = c.position.subtract(i);\n if (d = d.normalize(), Math.abs(g.Dot(u, d)) > 0.999)\n return !0;\n const f = g.Cross(u, d).normalize();\n if (s[n] = !1, g.Dot(f, o.normal) < 0.2)\n return !0;\n }\n return !1;\n }\n _updateTriangles(e, t, i, s) {\n let r = s;\n for (let n = 0; n < t.triangleCount; ++n) {\n const o = this._references[t.triangleStart + n], l = this._triangles[o.triangleId];\n if (!l.deleted) {\n if (i[n] && l.deletePending) {\n l.deleted = !0, r++;\n continue;\n }\n l._vertices[o.vertexId] = e, l.isDirty = !0, l.error[0] = this._calculateError(l._vertices[0], l._vertices[1]) + l.borderFactor / 2, l.error[1] = this._calculateError(l._vertices[1], l._vertices[2]) + l.borderFactor / 2, l.error[2] = this._calculateError(l._vertices[2], l._vertices[0]) + l.borderFactor / 2, l.error[3] = Math.min(l.error[0], l.error[1], l.error[2]), this._references.push(o);\n }\n }\n return r;\n }\n _identifyBorder() {\n for (let e = 0; e < this._vertices.length; ++e) {\n const t = [], i = [], s = this._vertices[e];\n let r;\n for (r = 0; r < s.triangleCount; ++r) {\n const n = this._triangles[this._references[s.triangleStart + r].triangleId];\n for (let o = 0; o < 3; o++) {\n let l = 0;\n const h = n._vertices[o];\n for (; l < t.length && i[l] !== h.id; )\n ++l;\n l === t.length ? (t.push(1), i.push(h.id)) : t[l]++;\n }\n }\n for (r = 0; r < t.length; ++r)\n t[r] === 1 ? this._vertices[i[r]].isBorder = !0 : this._vertices[i[r]].isBorder = !1;\n }\n }\n _updateMesh(e = !1) {\n let t;\n if (!e) {\n const l = [];\n for (t = 0; t < this._triangles.length; ++t)\n this._triangles[t].deleted || l.push(this._triangles[t]);\n this._triangles = l;\n }\n for (t = 0; t < this._vertices.length; ++t)\n this._vertices[t].triangleCount = 0, this._vertices[t].triangleStart = 0;\n let i, s, r;\n for (t = 0; t < this._triangles.length; ++t)\n for (i = this._triangles[t], s = 0; s < 3; ++s)\n r = i._vertices[s], r.triangleCount++;\n let n = 0;\n for (t = 0; t < this._vertices.length; ++t)\n this._vertices[t].triangleStart = n, n += this._vertices[t].triangleCount, this._vertices[t].triangleCount = 0;\n const o = new Array(this._triangles.length * 3);\n for (t = 0; t < this._triangles.length; ++t)\n for (i = this._triangles[t], s = 0; s < 3; ++s)\n r = i._vertices[s], o[r.triangleStart + r.triangleCount] = new Ck(s, t), r.triangleCount++;\n this._references = o, e && this._identifyBorder();\n }\n _vertexError(e, t) {\n const i = t.x, s = t.y, r = t.z;\n return e.data[0] * i * i + 2 * e.data[1] * i * s + 2 * e.data[2] * i * r + 2 * e.data[3] * i + e.data[4] * s * s + 2 * e.data[5] * s * r + 2 * e.data[6] * s + e.data[7] * r * r + 2 * e.data[8] * r + e.data[9];\n }\n _calculateError(e, t, i) {\n const s = e.q.add(t.q), r = e.isBorder && t.isBorder;\n let n = 0;\n const o = s.det(0, 1, 2, 1, 4, 5, 2, 5, 7);\n if (o !== 0 && !r)\n i || (i = g.Zero()), i.x = -1 / o * s.det(1, 2, 3, 4, 5, 6, 5, 7, 8), i.y = 1 / o * s.det(0, 2, 3, 1, 5, 6, 2, 7, 8), i.z = -1 / o * s.det(0, 1, 3, 1, 4, 6, 2, 5, 8), n = this._vertexError(s, i);\n else {\n const l = e.position.add(t.position).divide(new g(2, 2, 2)), h = this._vertexError(s, e.position), c = this._vertexError(s, t.position), u = this._vertexError(s, l);\n n = Math.min(h, c, u), n === h ? i && i.copyFrom(e.position) : n === c ? i && i.copyFrom(t.position) : i && i.copyFrom(l);\n }\n return n;\n }\n}\nObject.defineProperty(De.prototype, \"simplificationQueue\", {\n get: function() {\n if (!this._simplificationQueue) {\n this._simplificationQueue = new bk();\n let a = this._getComponent(me.NAME_SIMPLIFICATIONQUEUE);\n a || (a = new Rk(this), this._addComponent(a));\n }\n return this._simplificationQueue;\n },\n set: function(a) {\n this._simplificationQueue = a;\n },\n enumerable: !0,\n configurable: !0\n});\nH.prototype.simplify = function(a, e = !0, t = 0, i) {\n return this.getScene().simplificationQueue.addTask({\n settings: a,\n parallelProcessing: e,\n mesh: this,\n simplificationType: t,\n successCallback: i\n }), this;\n};\nclass Rk {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_SIMPLIFICATIONQUEUE, this.scene = e;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._beforeCameraUpdateStage.registerStep(me.STEP_BEFORECAMERAUPDATE_SIMPLIFICATIONQUEUE, this, this._beforeCameraUpdate);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n }\n _beforeCameraUpdate() {\n this.scene._simplificationQueue && !this.scene._simplificationQueue.running && this.scene._simplificationQueue.executeNext();\n }\n}\nvar kE;\n(function(a) {\n a[a.POINTS_MODE_POINTS = 0] = \"POINTS_MODE_POINTS\", a[a.POINTS_MODE_PATHS = 1] = \"POINTS_MODE_PATHS\";\n})(kE || (kE = {}));\nvar GE;\n(function(a) {\n a[a.FACES_MODE_SINGLE_SIDED = 0] = \"FACES_MODE_SINGLE_SIDED\", a[a.FACES_MODE_SINGLE_SIDED_NO_BACKFACE_CULLING = 1] = \"FACES_MODE_SINGLE_SIDED_NO_BACKFACE_CULLING\", a[a.FACES_MODE_DOUBLE_SIDED = 2] = \"FACES_MODE_DOUBLE_SIDED\";\n})(GE || (GE = {}));\nvar zE;\n(function(a) {\n a[a.AUTO_DIRECTIONS_FROM_FIRST_SEGMENT = 0] = \"AUTO_DIRECTIONS_FROM_FIRST_SEGMENT\", a[a.AUTO_DIRECTIONS_FROM_ALL_SEGMENTS = 1] = \"AUTO_DIRECTIONS_FROM_ALL_SEGMENTS\", a[a.AUTO_DIRECTIONS_ENHANCED = 2] = \"AUTO_DIRECTIONS_ENHANCED\", a[a.AUTO_DIRECTIONS_FACE_TO = 3] = \"AUTO_DIRECTIONS_FACE_TO\", a[a.AUTO_DIRECTIONS_NONE = 99] = \"AUTO_DIRECTIONS_NONE\";\n})(zE || (zE = {}));\nclass _R extends H {\n constructor(e, t, i) {\n super(e, t, null, null, !1, !1), this.name = e, this._options = i, this._lazy = !1, this._updatable = !1, this._engine = t.getEngine(), this._lazy = i.lazy ?? !1, this._updatable = i.updatable ?? !1, this._vertexPositions = [], this._indices = [], this._uvs = [], this._points = [], this._colorPointers = i.colorPointers ?? [], this._widths = i.widths ?? new Array(i.points.length).fill(1);\n }\n /**\n * \"GreasedLineMesh\"\n * @returns \"GreasedLineMesh\"\n */\n getClassName() {\n return \"GreasedLineMesh\";\n }\n _updateWidthsWithValue(e) {\n let t = 0;\n for (const s of this._points)\n t += s.length;\n const i = t / 3 * 2 - this._widths.length;\n for (let s = 0; s < i; s++)\n this._widths.push(e);\n }\n /**\n * Updated a lazy line. Rerenders the line and updates boundinfo as well.\n */\n updateLazy() {\n var e, t;\n this._setPoints(this._points), this._options.colorPointers || this._updateColorPointers(), this._createVertexBuffers((e = this._options.ribbonOptions) == null ? void 0 : e.smoothShading), this.refreshBoundingInfo(), (t = this.greasedLineMaterial) == null || t.updateLazy();\n }\n /**\n * Adds new points to the line. It doesn't rerenders the line if in lazy mode.\n * @param points points table\n * @param options optional options\n */\n addPoints(e, t) {\n for (const i of e)\n this._points.push(i);\n this._lazy || this.setPoints(this._points, t);\n }\n /**\n * Dispose the line and it's resources\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\n */\n dispose(e, t = !1) {\n super.dispose(e, t);\n }\n /**\n * @returns true if the mesh was created in lazy mode\n */\n isLazy() {\n return this._lazy;\n }\n /**\n * Returns the UVs\n */\n get uvs() {\n return this._uvs;\n }\n /**\n * Sets the UVs\n * @param uvs the UVs\n */\n set uvs(e) {\n this._uvs = e instanceof Float32Array ? e : new Float32Array(e), this._createVertexBuffers();\n }\n /**\n * Returns the points offsets\n * Return the points offsets\n */\n get offsets() {\n return this._offsets;\n }\n /**\n * Sets point offests\n * @param offsets offset table [x,y,z, x,y,z, ....]\n */\n set offsets(e) {\n this._offsets = e, this._offsetsBuffer ? this._offsetsBuffer.update(e) : this._createOffsetsBuffer(e);\n }\n /**\n * Gets widths at each line point like [widthLower, widthUpper, widthLower, widthUpper, ...]\n */\n get widths() {\n return this._widths;\n }\n /**\n * Sets widths at each line point\n * @param widths width table [widthLower, widthUpper, widthLower, widthUpper ...]\n */\n set widths(e) {\n this._widths = e, this._lazy || this._widthsBuffer && this._widthsBuffer.update(e);\n }\n /**\n * Gets the color pointer. Each vertex need a color pointer. These color pointers points to the colors in the color table @see colors\n */\n get colorPointers() {\n return this._colorPointers;\n }\n /**\n * Sets the color pointer\n * @param colorPointers array of color pointer in the colors array. One pointer for every vertex is needed.\n */\n set colorPointers(e) {\n this._colorPointers = e, this._lazy || this._colorPointersBuffer && this._colorPointersBuffer.update(e);\n }\n /**\n * Gets the pluginMaterial associated with line\n */\n get greasedLineMaterial() {\n var t, i;\n if (this.material && this.material instanceof fR)\n return this.material;\n const e = (i = (t = this.material) == null ? void 0 : t.pluginManager) == null ? void 0 : i.getPlugin(go.GREASED_LINE_MATERIAL_NAME);\n if (e)\n return e;\n }\n /**\n * Return copy the points.\n */\n get points() {\n const e = [];\n return Hs.DeepCopy(this._points, e), e;\n }\n /**\n * Sets line points and rerenders the line.\n * @param points points table\n * @param options optional options\n */\n setPoints(e, t) {\n this._points = e, this._updateWidths(), t != null && t.colorPointers || this._updateColorPointers(), this._setPoints(e, t);\n }\n _initGreasedLine() {\n this._vertexPositions = [], this._indices = [], this._uvs = [];\n }\n _createLineOptions() {\n return {\n points: this._points,\n colorPointers: this._colorPointers,\n lazy: this._lazy,\n updatable: this._updatable,\n uvs: this._uvs,\n widths: this._widths,\n ribbonOptions: this._options.ribbonOptions\n };\n }\n /**\n * Serializes this GreasedLineMesh\n * @param serializationObject object to write serialization to\n */\n serialize(e) {\n super.serialize(e), e.type = this.getClassName(), e.lineOptions = this._createLineOptions();\n }\n _createVertexBuffers(e = !1) {\n const t = new ge();\n return t.positions = this._vertexPositions, t.indices = this._indices, t.uvs = this._uvs, e && (t.normals = [], ge.ComputeNormals(this._vertexPositions, this._indices, t.normals)), t.applyToMesh(this, this._options.updatable), t;\n }\n _createOffsetsBuffer(e) {\n const t = this._scene.getEngine(), i = new ys(t, e, this._updatable, 3);\n this.setVerticesBuffer(i.createVertexBuffer(\"grl_offsets\", 0, 3)), this._offsetsBuffer = i;\n }\n}\nH._GreasedLineMeshParser = (a, e) => Vs.Parse(a, e);\nclass Vs extends _R {\n /**\n * GreasedLineMesh\n * @param name name of the mesh\n * @param scene the scene\n * @param _options mesh options\n */\n constructor(e, t, i) {\n super(e, t, i), this.name = e, this.intersectionThreshold = 0.1, this._previousAndSide = [], this._nextAndCounters = [], i.points && this.addPoints(qt.ConvertPoints(i.points));\n }\n /**\n * \"GreasedLineMesh\"\n * @returns \"GreasedLineMesh\"\n */\n getClassName() {\n return \"GreasedLineMesh\";\n }\n _updateColorPointers() {\n if (this._options.colorPointers)\n return;\n let e = 0;\n this._colorPointers = [], this._points.forEach((t) => {\n for (let i = 0; i < t.length; i += 3)\n this._colorPointers.push(e), this._colorPointers.push(e++);\n });\n }\n _updateWidths() {\n }\n _setPoints(e) {\n this._points = e, this._options.points = e, this._initGreasedLine();\n let t = 0, i = 0, s = 0, r = 0, n = 0;\n e.forEach((x) => {\n i += x.length * 2, s += (x.length - 3) * 2, r += x.length * 4 / 3, n += x.length * 8 / 3;\n });\n const o = new Float32Array(i), l = i > 65535 ? new Uint32Array(s) : new Uint16Array(s), h = new Float32Array(r), c = new Float32Array(n), u = new Float32Array(n);\n let d = 0, f = 0, p = 0, _ = 0, m = 0;\n e.forEach((x) => {\n const v = qt.GetLineLengthArray(x), T = v[v.length - 1];\n for (let F = 0, $ = 0; $ < x.length; F++, $ += 3) {\n const j = d + $ * 2;\n if (o[j + 0] = x[$ + 0], o[j + 1] = x[$ + 1], o[j + 2] = x[$ + 2], o[j + 3] = x[$ + 0], o[j + 4] = x[$ + 1], o[j + 5] = x[$ + 2], $ < x.length - 3) {\n const ne = F * 2 + t, te = f + $ * 2;\n l[te + 0] = ne, l[te + 1] = ne + 1, l[te + 2] = ne + 2, l[te + 3] = ne + 2, l[te + 4] = ne + 1, l[te + 5] = ne + 3;\n }\n }\n t += x.length / 3 * 2;\n const E = x.length * 2, b = o.subarray(d, d + E);\n d += E, f += (x.length - 3) * 2;\n const S = new Float32Array(b.length), C = new Float32Array(b.length), P = b.length / 6;\n let N;\n Vs._CompareV3(0, P - 1, b) ? N = b.subarray((P - 2) * 6, (P - 1) * 6) : N = b.subarray(0, 6), S.set(N), S.set(b.subarray(0, b.length - 6), 6), C.set(b.subarray(6)), Vs._CompareV3(P - 1, 0, b) ? N = b.subarray(6, 12) : N = b.subarray((P - 1) * 6, P * 6), C.set(N, C.length - 6);\n for (let F = 0, $ = b.length / 3; F < $; F++)\n c[_++] = S[F * 3], c[_++] = S[F * 3 + 1], c[_++] = S[F * 3 + 2], c[_++] = 1 - ((F & 1) << 1), u[m++] = C[F * 3], u[m++] = C[F * 3 + 1], u[m++] = C[F * 3 + 2], u[m++] = v[F >> 1] / T;\n if (this._options.uvs)\n for (let F = 0; F < this._options.uvs.length; F++)\n h[p++] = this._options.uvs[F];\n else {\n for (let F = 0; F < P; F++) {\n const $ = p + F * 4;\n h[$ + 0] = F / (P - 1), h[$ + 1] = 0, h[$ + 2] = F / (P - 1), h[$ + 3] = 1;\n }\n p += P * 4;\n }\n }), this._vertexPositions = o, this._indices = l, this._uvs = h, this._previousAndSide = c, this._nextAndCounters = u, this._lazy || (this._options.colorPointers || this._updateColorPointers(), this._createVertexBuffers(), this.refreshBoundingInfo());\n }\n /**\n * Clones the GreasedLineMesh.\n * @param name new line name\n * @param newParent new parent node\n * @returns cloned line\n */\n clone(e = `${this.name}-cloned`, t) {\n const i = this._createLineOptions(), s = {};\n Hs.DeepCopy(i, s, [\"instance\"], void 0, !0);\n const r = new Vs(e, this._scene, s);\n return t && (r.parent = t), r.material = this.material, r;\n }\n /**\n * Serializes this GreasedLineMesh\n * @param serializationObject object to write serialization to\n */\n serialize(e) {\n super.serialize(e), e.type = this.getClassName(), e.lineOptions = this._createLineOptions();\n }\n /**\n * Parses a serialized GreasedLineMesh\n * @param parsedMesh the serialized GreasedLineMesh\n * @param scene the scene to create the GreasedLineMesh in\n * @returns the created GreasedLineMesh\n */\n static Parse(e, t) {\n const i = e.lineOptions, s = e.name;\n return new Vs(s, t, i);\n }\n _initGreasedLine() {\n super._initGreasedLine(), this._previousAndSide = [], this._nextAndCounters = [];\n }\n /**\n * Checks whether a ray is intersecting this GreasedLineMesh\n * @param ray ray to check the intersection of this mesh with\n * @param fastCheck not supported\n * @param trianglePredicate not supported\n * @param onlyBoundingInfo defines a boolean indicating if picking should only happen using bounding info (false by default)\n * @param worldToUse not supported\n * @param skipBoundingInfo a boolean indicating if we should skip the bounding info check\n * @returns the picking info\n */\n intersects(e, t, i, s = !1, r, n = !1) {\n const o = new Cs(), l = this.findAllIntersections(e, t, i, s, r, n, !0);\n if ((l == null ? void 0 : l.length) === 1) {\n const h = l[0];\n o.hit = !0, o.distance = h.distance, o.ray = e, o.pickedMesh = this, o.pickedPoint = h.point;\n }\n return o;\n }\n /**\n * Gets all intersections of a ray and the line\n * @param ray Ray to check the intersection of this mesh with\n * @param _fastCheck not supported\n * @param _trianglePredicate not supported\n * @param onlyBoundingInfo defines a boolean indicating if picking should only happen using bounding info (false by default)\n * @param _worldToUse not supported\n * @param skipBoundingInfo a boolean indicating if we should skip the bounding info check\n * @param firstOnly If true, the first and only intersection is immediatelly returned if found\n * @returns intersection(s)\n */\n findAllIntersections(e, t, i, s = !1, r, n = !1, o = !1) {\n var f;\n if (s && !n && e.intersectsSphere(this._boundingSphere, this.intersectionThreshold) === !1)\n return;\n const l = this.getIndices(), h = this.getVerticesData(R.PositionKind), c = this._widths, u = ((f = this.greasedLineMaterial) == null ? void 0 : f.width) ?? 1, d = [];\n if (l && h && c) {\n let p = 0, _ = 0;\n for (p = 0, _ = l.length - 1; p < _; p += 3) {\n const m = l[p], x = l[p + 1];\n Vs._V_START.fromArray(h, m * 3), Vs._V_END.fromArray(h, x * 3), this._offsets && (Vs._V_OFFSET_START.fromArray(this._offsets, m * 3), Vs._V_OFFSET_END.fromArray(this._offsets, x * 3), Vs._V_START.addInPlace(Vs._V_OFFSET_START), Vs._V_END.addInPlace(Vs._V_OFFSET_END));\n const v = Math.floor(p / 3), T = c[v] !== void 0 ? c[v] : 1, E = this.intersectionThreshold * (u * T) / 2, b = e.intersectionSegment(Vs._V_START, Vs._V_END, E);\n if (b !== -1 && (d.push({\n distance: b,\n point: e.direction.normalize().multiplyByFloats(b, b, b).add(e.origin)\n }), o))\n return d;\n }\n p = _;\n }\n return d;\n }\n get _boundingSphere() {\n return this.getBoundingInfo().boundingSphere;\n }\n static _CompareV3(e, t, i) {\n const s = e * 6, r = t * 6;\n return i[s] === i[r] && i[s + 1] === i[r + 1] && i[s + 2] === i[r + 2];\n }\n _createVertexBuffers() {\n const e = super._createVertexBuffers(), t = this._scene.getEngine(), i = new ys(t, this._previousAndSide, !1, 4);\n this.setVerticesBuffer(i.createVertexBuffer(\"grl_previousAndSide\", 0, 4));\n const s = new ys(t, this._nextAndCounters, !1, 4);\n this.setVerticesBuffer(s.createVertexBuffer(\"grl_nextAndCounters\", 0, 4));\n const r = new ys(t, this._widths, this._updatable, 1);\n this.setVerticesBuffer(r.createVertexBuffer(\"grl_widths\", 0, 1)), this._widthsBuffer = r;\n const n = new ys(t, this._colorPointers, this._updatable, 1);\n return this.setVerticesBuffer(n.createVertexBuffer(\"grl_colorPointers\", 0, 1)), this._colorPointersBuffer = n, e;\n }\n}\nVs._V_START = new g();\nVs._V_END = new g();\nVs._V_OFFSET_START = new g();\nVs._V_OFFSET_END = new g();\nH._GreasedLineRibbonMeshParser = (a, e) => Hi.Parse(a, e);\nclass Hi extends _R {\n /**\n * GreasedLineRibbonMesh\n * @param name name of the mesh\n * @param scene the scene\n * @param _options mesh options\n * @param _pathOptions used internaly when parsing a serialized GreasedLineRibbonMesh\n */\n constructor(e, t, i, s) {\n if (super(e, t, i), this.name = e, !i.ribbonOptions)\n throw \"'GreasedLineMeshOptions.ribbonOptions' is not set.\";\n this._paths = [], this._counters = [], this._slopes = [], this._widths = i.widths ?? [], this._ribbonWidths = [], this._pathsOptions = s ?? [], i.points && this.addPoints(qt.ConvertPoints(i.points), i, !!s);\n }\n /**\n * Adds new points to the line. It doesn't rerenders the line if in lazy mode.\n * @param points points table\n * @param options mesh options\n * @param hasPathOptions defaults to false\n */\n addPoints(e, t, i = !1) {\n if (!t.ribbonOptions)\n throw \"addPoints() on GreasedLineRibbonMesh instance requires 'GreasedLineMeshOptions.ribbonOptions'.\";\n i || this._pathsOptions.push({ options: t, pathCount: e.length }), super.addPoints(e, t);\n }\n /**\n * \"GreasedLineRibbonMesh\"\n * @returns \"GreasedLineRibbonMesh\"\n */\n getClassName() {\n return \"GreasedLineRibbonMesh\";\n }\n /**\n * Return true if the line was created from two edge paths or one points path.\n * In this case the line is always flat.\n */\n get isFlatLine() {\n return this._paths.length < 3;\n }\n /**\n * Returns the slopes of the line at each point relative to the center of the line\n */\n get slopes() {\n return this._slopes;\n }\n /**\n * Set the slopes of the line at each point relative to the center of the line\n */\n set slopes(e) {\n this._slopes = e;\n }\n _updateColorPointers() {\n if (this._options.colorPointers)\n return;\n let e = 0;\n this._colorPointers = [];\n for (let t = 0; t < this._pathsOptions.length; t++) {\n const { options: i, pathCount: s } = this._pathsOptions[t], r = this._points[t];\n if (i.ribbonOptions.pointsMode === 0)\n for (let n = 0; n < s; n++)\n for (let o = 0; o < r.length; o += 3)\n this._colorPointers.push(e), this._colorPointers.push(e++);\n else\n for (let n = 0; n < r.length; n += 3) {\n for (let o = 0; o < s; o++)\n this._colorPointers.push(e);\n e++;\n }\n }\n }\n _updateWidths() {\n super._updateWidthsWithValue(1);\n }\n _setPoints(e, t) {\n var r, n;\n if (!this._options.ribbonOptions)\n throw \"No 'GreasedLineMeshOptions.ribbonOptions' provided.\";\n this._points = e, this._options.points = e, this._initGreasedLine();\n let i = 0, s;\n for (let o = 0, l = 0; o < this._pathsOptions.length; o++) {\n const { options: h, pathCount: c } = this._pathsOptions[o], u = e.slice(l, l + c);\n if (l += c, ((r = h.ribbonOptions) == null ? void 0 : r.pointsMode) === 1)\n i = this._preprocess(qt.ToVector3Array(u), i, h);\n else {\n if (((n = h.ribbonOptions) == null ? void 0 : n.directionsAutoMode) === 99) {\n if (!h.ribbonOptions.directions)\n throw \"In GreasedLineRibbonAutoDirectionMode.AUTO_DIRECTIONS_NONE 'GreasedLineMeshOptions.ribbonOptions.directions' must be defined.\";\n s = Hi._GetDirectionPlanesFromDirectionsOption(u.length, h.ribbonOptions.directions);\n }\n u.forEach((d, f) => {\n const p = Hi._ConvertToRibbonPath(d, h.ribbonOptions, this._scene.useRightHandedSystem, s && s[f]);\n i = this._preprocess(p, i, h);\n });\n }\n }\n this._lazy || (this._createVertexBuffers(), this.refreshBoundingInfo());\n }\n static _GetDirectionPlanesFromDirectionsOption(e, t) {\n return Array.isArray(t) ? t : new Array(e).fill(t);\n }\n static _CreateRibbonVertexData(e, t) {\n var c, u;\n const i = e.length;\n if (i < 2)\n throw \"Minimum of two paths are required to create a GreasedLineRibbonMesh.\";\n const s = [], r = [], n = e[0];\n for (let d = 0; d < n.length; d++)\n for (let f = 0; f < e.length; f++) {\n const p = e[f][d];\n s.push(p.x, p.y, p.z);\n }\n const o = [1, 0, i], l = ((c = t.ribbonOptions) == null ? void 0 : c.facesMode) === 2, h = ((u = t.ribbonOptions) == null ? void 0 : u.pointsMode) === 1 && t.ribbonOptions.closePath;\n if (i > 2)\n for (let d = 0; d < n.length - 1; d++) {\n o[0] = 1 + i * d, o[1] = i * d, o[2] = (d + 1) * i;\n for (let f = 0; f < (i - 1) * 2; f++)\n f % 2 !== 0 && (o[2] += 1), f % 2 === 0 && f > 0 && (o[0] += 1, o[1] += 1), r.push(o[1] + (f % 2 !== 0 ? i : 0), o[0], o[2]), l && r.push(o[0], o[1] + (f % 2 !== 0 ? i : 0), o[2]);\n }\n else\n for (let d = 0; d < s.length / 3 - 3; d += 2)\n r.push(d, d + 1, d + 2), r.push(d + 2, d + 1, d + 3), l && (r.push(d + 1, d, d + 2), r.push(d + 1, d + 2, d + 3));\n if (h) {\n let d = i * (n.length - 1);\n for (let f = 0; f < i - 1; f++)\n r.push(d, f + 1, f), r.push(d + 1, f + 1, d), l && (r.push(f, f + 1, d), r.push(d, f + 1, d + 1)), d++;\n }\n return {\n positions: s,\n indices: r\n };\n }\n _preprocess(e, t, i) {\n var f, p;\n this._paths = e;\n const s = Hi._CreateRibbonVertexData(e, i), r = s.positions;\n if (!this._options.widths)\n throw \"No 'GreasedLineMeshOptions.widths' table is specified.\";\n const n = Array.isArray(this._vertexPositions) ? this._vertexPositions : Array.from(this._vertexPositions);\n this._vertexPositions = n;\n const o = Array.isArray(this._uvs) ? this._uvs : Array.from(this._uvs);\n this._uvs = o;\n const l = Array.isArray(this._indices) ? this._indices : Array.from(this._indices);\n this._indices = l;\n for (const _ of r)\n n.push(_);\n let h = e;\n if (((f = i.ribbonOptions) == null ? void 0 : f.pointsMode) === 1 && i.ribbonOptions.closePath) {\n h = [];\n for (let _ = 0; _ < e.length; _++) {\n const m = e[_].slice();\n m.push(e[_][0].clone()), h.push(m);\n }\n }\n this._calculateSegmentLengths(h);\n const c = h.length, u = new Array(c).fill(0);\n for (let _ = 0; _ < h[0].length; _++) {\n let m = 0;\n for (let x = 0; x < c; x++) {\n const v = u[x] + this._vSegmentLengths[x][_] / this._vTotalLengths[x];\n this._counters.push(v), o.push(v, m), u[x] = v, m += this._uSegmentLengths[_][x] / this._uTotalLengths[_];\n }\n }\n for (let _ = 0, m = 0; _ < h[0].length; _++) {\n const x = this._uSegmentLengths[_][0] / 2, v = this._uSegmentLengths[_][c - 1] / 2;\n this._ribbonWidths.push(((this._widths[m++] ?? 1) - 1) * x);\n for (let T = 0; T < c - 2; T++)\n this._ribbonWidths.push(0);\n this._ribbonWidths.push(((this._widths[m++] ?? 1) - 1) * v);\n }\n const d = ((p = i.ribbonOptions) == null ? void 0 : p.pointsMode) === 1 ? new Array(h[0].length * h.length * 6).fill(0) : Hi._CalculateSlopes(h);\n for (const _ of d)\n this._slopes.push(_);\n if (s.indices)\n for (let _ = 0; _ < s.indices.length; _++)\n l.push(s.indices[_] + t);\n return t += r.length / 3, t;\n }\n static _ConvertToRibbonPath(e, t, i, s) {\n if (t.pointsMode === 0 && !t.width)\n throw \"'GreasedLineMeshOptions.ribbonOptiosn.width' must be specified in GreasedLineRibbonPointsMode.POINTS_MODE_POINTS.\";\n const r = [], n = [];\n if (t.pointsMode === 0) {\n const o = t.width / 2, l = qt.ToVector3Array(e);\n let h = null, c = null;\n if (t.directionsAutoMode === 0 && (s = Hi._GetDirectionFromPoints(l[0], l[1], null)), t.directionsAutoMode === 3 && !(t.directions instanceof g))\n throw \"In GreasedLineRibbonAutoDirectionMode.AUTO_DIRECTIONS_FACE_TO 'GreasedLineMeshOptions.ribbonOptions.directions' must be a Vector3.\";\n w.Vector3[1] = t.directions instanceof g ? t.directions : Hi.DIRECTION_XZ;\n for (let u = 0; u < l.length - (s ? 0 : 1); u++) {\n const d = l[u], f = l[u + 1];\n if (s)\n h = s;\n else if (t.directionsAutoMode === 3)\n f.subtractToRef(d, w.Vector3[0]), h = g.CrossToRef(w.Vector3[0], w.Vector3[1], w.Vector3[2]).normalize();\n else if (t.directionsAutoMode === 1)\n h = Hi._GetDirectionFromPoints(d, f, h);\n else {\n const p = f.subtract(d);\n p.applyRotationQuaternionInPlace(p.x > p.y && p.x > p.z ? i ? Hi._RightHandedForwardReadOnlyQuaternion : Hi._LeftHandedForwardReadOnlyQuaternion : Hi._LeftReadOnlyQuaternion), h = p.normalize();\n }\n c = h.multiplyByFloats(o, o, o), r.push(d.add(c)), n.push(d.subtract(c));\n }\n s || (r.push(l[l.length - 1].add(c)), n.push(l[l.length - 1].subtract(c)));\n }\n return [r, n];\n }\n static _GetDirectionFromPoints(e, t, i) {\n return e.x === t.x && (!i || (i == null ? void 0 : i.x) === 1) ? Hi.DIRECTION_YZ : e.y === t.y ? Hi.DIRECTION_XZ : e.z === t.z ? Hi.DIRECTION_XY : Hi.DIRECTION_XZ;\n }\n /**\n * Clones the GreasedLineRibbonMesh.\n * @param name new line name\n * @param newParent new parent node\n * @returns cloned line\n */\n clone(e = `${this.name}-cloned`, t) {\n const i = this._createLineOptions(), s = {}, r = [];\n Hs.DeepCopy(this._pathsOptions, r, void 0, void 0, !0), Hs.DeepCopy(i, s, [\"instance\"], void 0, !0);\n const n = new Hi(e, this._scene, s, r);\n return t && (n.parent = t), n.material = this.material, n;\n }\n /**\n * Serializes this GreasedLineRibbonMesh\n * @param serializationObject object to write serialization to\n */\n serialize(e) {\n super.serialize(e), e.type = this.getClassName(), e.lineOptions = this._createLineOptions(), e.pathsOptions = this._pathsOptions;\n }\n /**\n * Parses a serialized GreasedLineRibbonMesh\n * @param parsedMesh the serialized GreasedLineRibbonMesh\n * @param scene the scene to create the GreasedLineRibbonMesh in\n * @returns the created GreasedLineRibbonMesh\n */\n static Parse(e, t) {\n const i = e.lineOptions, s = e.name, r = e.pathOptions;\n return new Hi(s, t, i, r);\n }\n _initGreasedLine() {\n super._initGreasedLine(), this._paths = [], this._counters = [], this._slopes = [], this._ribbonWidths = [];\n }\n _calculateSegmentLengths(e) {\n const t = e.length;\n this._vSegmentLengths = new Array(t), this._vTotalLengths = new Array(t);\n let i = 0;\n for (let n = 0; n < t; n++) {\n const o = e[n];\n this._vSegmentLengths[n] = [0], i = 0;\n for (let l = 0; l < o.length - 1; l++) {\n const h = Math.abs(o[l].subtract(o[l + 1]).lengthSquared());\n i += h, this._vSegmentLengths[n].push(h);\n }\n this._vTotalLengths[n] = i;\n }\n const s = e[0].length;\n this._uSegmentLengths = new Array(s).fill([]), this._uTotalLengths = new Array(s).fill([]);\n const r = new g();\n for (let n = 0; n < s; n++) {\n i = 0;\n for (let o = 1; o < t; o++) {\n e[o][n].subtractToRef(e[o - 1][n], r);\n const l = r.length();\n i += l, this._uSegmentLengths[n].push(l);\n }\n this._uTotalLengths[n] = i;\n }\n }\n static _CalculateSlopes(e) {\n const t = e[0], i = e.length === 2 ? e[1] : e[e.length - 1], s = [], r = new g();\n for (let n = 0; n < t.length; n++)\n for (let o = 0; o < e.length; o++)\n o === 0 || o === e.length - 1 ? (t[n].subtract(i[n]).normalizeToRef(r), s.push(r.x, r.y, r.z), s.push(-r.x, -r.y, -r.z)) : s.push(0, 0, 0, 0, 0, 0);\n return s;\n }\n _createVertexBuffers() {\n var n;\n this._uvs = this._options.uvs ?? this._uvs;\n const e = super._createVertexBuffers((n = this._options.ribbonOptions) == null ? void 0 : n.smoothShading), t = new ys(this._engine, this._counters, this._updatable, 1);\n this.setVerticesBuffer(t.createVertexBuffer(\"grl_counters\", 0, 1));\n const i = new ys(this._engine, this._colorPointers, this._updatable, 1);\n this.setVerticesBuffer(i.createVertexBuffer(\"grl_colorPointers\", 0, 1));\n const s = new ys(this._engine, this._slopes, this._updatable, 3);\n this.setVerticesBuffer(s.createVertexBuffer(\"grl_slopes\", 0, 3));\n const r = new ys(this._engine, this._ribbonWidths, this._updatable, 1);\n return this.setVerticesBuffer(r.createVertexBuffer(\"grl_widths\", 0, 1)), this._widthsBuffer = r, e;\n }\n}\nHi.DEFAULT_WIDTH = 0.1;\nHi._RightHandedForwardReadOnlyQuaternion = se.RotationAxis(g.RightHandedForwardReadOnly, Math.PI / 2);\nHi._LeftHandedForwardReadOnlyQuaternion = se.RotationAxis(g.LeftHandedForwardReadOnly, Math.PI / 2);\nHi._LeftReadOnlyQuaternion = se.RotationAxis(g.LeftReadOnly, Math.PI / 2);\nHi.DIRECTION_XY = g.LeftHandedForwardReadOnly;\nHi.DIRECTION_XZ = g.UpReadOnly;\nHi.DIRECTION_YZ = g.LeftReadOnly;\nvar WE;\n(function(a) {\n a[a.COLOR_DISTRIBUTION_NONE = 0] = \"COLOR_DISTRIBUTION_NONE\", a[a.COLOR_DISTRIBUTION_REPEAT = 1] = \"COLOR_DISTRIBUTION_REPEAT\", a[a.COLOR_DISTRIBUTION_EVEN = 2] = \"COLOR_DISTRIBUTION_EVEN\", a[a.COLOR_DISTRIBUTION_START = 3] = \"COLOR_DISTRIBUTION_START\", a[a.COLOR_DISTRIBUTION_END = 4] = \"COLOR_DISTRIBUTION_END\", a[a.COLOR_DISTRIBUTION_START_END = 5] = \"COLOR_DISTRIBUTION_START_END\";\n})(WE || (WE = {}));\nvar HE;\n(function(a) {\n a[a.WIDTH_DISTRIBUTION_NONE = 0] = \"WIDTH_DISTRIBUTION_NONE\", a[a.WIDTH_DISTRIBUTION_REPEAT = 1] = \"WIDTH_DISTRIBUTION_REPEAT\", a[a.WIDTH_DISTRIBUTION_EVEN = 2] = \"WIDTH_DISTRIBUTION_EVEN\", a[a.WIDTH_DISTRIBUTION_START = 3] = \"WIDTH_DISTRIBUTION_START\", a[a.WIDTH_DISTRIBUTION_END = 4] = \"WIDTH_DISTRIBUTION_END\", a[a.WIDTH_DISTRIBUTION_START_END = 5] = \"WIDTH_DISTRIBUTION_START_END\";\n})(HE || (HE = {}));\nfunction Ik(a, e, t) {\n t = t ?? Me.LastCreatedScene;\n let i;\n switch (e.materialType) {\n case 1:\n i = new qe(a, t), new go(i, t, e);\n break;\n case 2:\n i = new fR(a, t, e);\n break;\n default:\n i = new ye(a, t), new go(i, t, e);\n break;\n }\n return i;\n}\nfunction XK(a, e, t, i) {\n var c;\n i = i ?? Me.LastCreatedScene;\n let s;\n const r = qt.ConvertPoints(e.points);\n e.widthDistribution = e.widthDistribution ?? 3, e.ribbonOptions && (e.ribbonOptions.facesMode = e.ribbonOptions.facesMode ?? 1, e.ribbonOptions.pointsMode = e.ribbonOptions.pointsMode ?? 0, e.ribbonOptions.directionsAutoMode = e.ribbonOptions.directionsAutoMode ?? (e.ribbonOptions.directions ? 99 : 0)), t = t ?? {\n color: Gs.DEFAULT_COLOR\n }, t.createAndAssignMaterial = t.createAndAssignMaterial ?? !0, t.colorDistribution = (t == null ? void 0 : t.colorDistribution) ?? 3, t.materialType = t.materialType ?? 0;\n const n = Pk(r), o = Mk(n, e.widths ?? [], e.widthDistribution), l = t != null && t.colors ? Dk(n, t.colors, t.colorDistribution, t.color ?? Gs.DEFAULT_COLOR) : void 0, h = {\n points: r,\n updatable: e.updatable,\n widths: o,\n lazy: e.lazy,\n ribbonOptions: e.ribbonOptions,\n uvs: e.uvs,\n colorPointers: e.colorPointers\n };\n if (h.ribbonOptions && h.ribbonOptions.pointsMode === 0 && (h.ribbonOptions.width = t.width ?? h.ribbonOptions.width ?? Gs.DEFAULT_WIDTH), e.instance)\n if (s = e.instance, s instanceof Hi)\n s.addPoints(r, h);\n else {\n const u = s.widths;\n if (u) {\n const d = u.slice();\n for (const f of o)\n d.push(f);\n s.widths = d;\n } else\n s.widths = o;\n if (s.addPoints(r), e.uvs) {\n const d = s.uvs;\n if (d) {\n const f = new Float32Array(d.length + e.uvs.length);\n f.set(d, 0), f.set(e.uvs, d.length), s.uvs = f;\n } else\n s.uvs = e.uvs;\n }\n }\n else if (s = h.ribbonOptions ? new Hi(a, i, h) : new Vs(a, i, h), t) {\n const u = {\n materialType: t.materialType,\n dashCount: t.dashCount,\n dashOffset: t.dashOffset,\n dashRatio: t.dashRatio,\n resolution: t.resolution,\n sizeAttenuation: t.sizeAttenuation,\n useColors: t.useColors,\n useDash: t.useDash,\n visibility: t.visibility,\n width: t.width,\n color: t.color,\n colorMode: t.colorMode,\n colorsSampling: t.colorsSampling,\n colorDistributionType: t.colorDistributionType,\n colors: l,\n cameraFacing: !e.ribbonOptions,\n colorsTexture: t.colorsTexture\n };\n if (t.createAndAssignMaterial) {\n const d = Ik(a, u, i);\n s.material = d, ((c = e.ribbonOptions) == null ? void 0 : c.facesMode) === 1 && (d.backFaceCulling = !1);\n }\n }\n if (l && e.instance && e.instance.greasedLineMaterial) {\n const u = e.instance.greasedLineMaterial.colors;\n if (u) {\n const d = u.concat(l);\n e.instance.greasedLineMaterial.setColors(d, s.isLazy());\n }\n }\n return s;\n}\nfunction Pk(a) {\n let e = 0;\n for (const t of a)\n e += t.length / 3;\n return e;\n}\nfunction Mk(a, e, t, i = 1, s = 1) {\n const r = a - e.length / 2, n = [];\n if (r < 0)\n return e.slice(0, a * 2);\n if (r > 0) {\n if (e.length % 2 != 0 && e.push(i), t === 5) {\n const o = Math.floor(e.length / 2);\n for (let c = 0, u = 0; c < o - 1; c++)\n n.push(e[u++]), n.push(e[u++]);\n const l = e[o / 2], h = e[o / 2 + 1];\n for (let c = 0; c < r; c++)\n n.push(h), n.push(l);\n for (let c = o; c < e.length; c += 2)\n n.push(e[c]), n.push(e[c + 1]);\n } else if (t === 3) {\n for (let o = 0; o < e.length; o += 2)\n n.push(e[o]), n.push(e[o + 1]);\n for (let o = 0; o < r; o++)\n n.push(i), n.push(s);\n } else if (t === 4) {\n for (let o = 0; o < r; o++)\n n.push(i), n.push(s);\n for (let o = 0; o < e.length; o += 2)\n n.push(e[o]), n.push(e[o + 1]);\n } else if (t === 1) {\n let o = 0;\n for (let l = 0; l < a; l++)\n n.push(e[o++]), n.push(e[o++]), o === e.length && (o = 0);\n } else if (t === 2) {\n let o = 0;\n const l = e.length / ((a - 1) * 2);\n for (let h = 0; h < a; h++) {\n const c = Math.floor(o);\n n.push(e[c]), n.push(e[c + 1]), o += l;\n }\n }\n } else\n for (let o = 0; o < e.length; o++)\n n.push(e[o]);\n return n;\n}\nfunction Dk(a, e, t, i) {\n a = Math.max(e.length, a);\n const s = a - e.length;\n if (s < 0)\n return e.slice(0, a);\n const r = [];\n if (s > 0) {\n if (t === 5) {\n const n = Math.floor(e.length / 2);\n for (let o = 0; o < n; o++)\n r.push(e[o]);\n for (let o = 0; o < s - 1; o++)\n r.push(i);\n for (let o = n; o < e.length; o++)\n r.push(e[o]);\n } else if (t === 3) {\n for (let n = 0; n < e.length; n++)\n r.push(e[n]);\n for (let n = 0; n < s; n++)\n r.push(i);\n } else if (t === 4) {\n for (let n = 0; n < s - 1; n++)\n r.push(i);\n for (let n = 0; n < e.length; n++)\n r.push(e[n]);\n } else if (t === 1) {\n let n = 0;\n for (let o = 0; o < a; o++)\n r.push(e[n]), n++, n === e.length && (n = 0);\n } else if (t === 2) {\n let n = 0;\n const o = e.length / (a - 1);\n for (let l = 0; l < a - 1; l++) {\n const h = Math.floor(n);\n r.push(e[h]), n += o;\n }\n } else if (t === 0)\n for (let n = 0; n < e.length; n++)\n r.push(e[n]);\n } else\n for (let n = 0; n < a; n++)\n r.push(e[n]);\n return r;\n}\nH.prototype.thinInstanceAdd = function(a, e = !0) {\n if (!this.getScene().getEngine().getCaps().instancedArrays)\n return L.Error(\"Thin Instances are not supported on this device as Instanced Array extension not supported\"), -1;\n this._thinInstanceUpdateBufferSize(\"matrix\", Array.isArray(a) ? a.length : 1);\n const t = this._thinInstanceDataStorage.instancesCount;\n if (Array.isArray(a))\n for (let i = 0; i < a.length; ++i)\n this.thinInstanceSetMatrixAt(this._thinInstanceDataStorage.instancesCount++, a[i], i === a.length - 1 && e);\n else\n this.thinInstanceSetMatrixAt(this._thinInstanceDataStorage.instancesCount++, a, e);\n return t;\n};\nH.prototype.thinInstanceAddSelf = function(a = !0) {\n return this.thinInstanceAdd(O.IdentityReadOnly, a);\n};\nH.prototype.thinInstanceRegisterAttribute = function(a, e) {\n a === R.ColorKind && (a = R.ColorInstanceKind), this.removeVerticesData(a), this._thinInstanceInitializeUserStorage(), this._userThinInstanceBuffersStorage.strides[a] = e, this._userThinInstanceBuffersStorage.sizes[a] = e * Math.max(32, this._thinInstanceDataStorage.instancesCount), this._userThinInstanceBuffersStorage.data[a] = new Float32Array(this._userThinInstanceBuffersStorage.sizes[a]), this._userThinInstanceBuffersStorage.vertexBuffers[a] = new R(this.getEngine(), this._userThinInstanceBuffersStorage.data[a], a, !0, !1, e, !0), this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[a]);\n};\nH.prototype.thinInstanceSetMatrixAt = function(a, e, t = !0) {\n if (!this._thinInstanceDataStorage.matrixData || a >= this._thinInstanceDataStorage.instancesCount)\n return !1;\n const i = this._thinInstanceDataStorage.matrixData;\n return e.copyToArray(i, a * 16), this._thinInstanceDataStorage.worldMatrices && (this._thinInstanceDataStorage.worldMatrices[a] = e), t && (this.thinInstanceBufferUpdated(\"matrix\"), this.doNotSyncBoundingInfo || this.thinInstanceRefreshBoundingInfo(!1)), !0;\n};\nH.prototype.thinInstanceSetAttributeAt = function(a, e, t, i = !0) {\n return a === R.ColorKind && (a = R.ColorInstanceKind), !this._userThinInstanceBuffersStorage || !this._userThinInstanceBuffersStorage.data[a] || e >= this._thinInstanceDataStorage.instancesCount ? !1 : (this._thinInstanceUpdateBufferSize(a, 0), this._userThinInstanceBuffersStorage.data[a].set(t, e * this._userThinInstanceBuffersStorage.strides[a]), i && this.thinInstanceBufferUpdated(a), !0);\n};\nObject.defineProperty(H.prototype, \"thinInstanceCount\", {\n get: function() {\n return this._thinInstanceDataStorage.instancesCount;\n },\n set: function(a) {\n var i;\n const e = this._thinInstanceDataStorage.matrixData ?? ((i = this.source) == null ? void 0 : i._thinInstanceDataStorage.matrixData), t = e ? e.length / 16 : 0;\n a <= t && (this._thinInstanceDataStorage.instancesCount = a);\n },\n enumerable: !0,\n configurable: !0\n});\nH.prototype._thinInstanceCreateMatrixBuffer = function(a, e, t = !0) {\n const i = new ys(this.getEngine(), e, !t, 16, !1, !0);\n for (let s = 0; s < 4; s++)\n this.setVerticesBuffer(i.createVertexBuffer(a + s, s * 4, 4));\n return i;\n};\nH.prototype.thinInstanceSetBuffer = function(a, e, t = 0, i = !0) {\n var s, r, n;\n t = t || 16, a === \"matrix\" ? ((s = this._thinInstanceDataStorage.matrixBuffer) == null || s.dispose(), this._thinInstanceDataStorage.matrixBuffer = null, this._thinInstanceDataStorage.matrixBufferSize = e ? e.length : 32 * t, this._thinInstanceDataStorage.matrixData = e, this._thinInstanceDataStorage.worldMatrices = null, e !== null ? (this._thinInstanceDataStorage.instancesCount = e.length / t, this._thinInstanceDataStorage.matrixBuffer = this._thinInstanceCreateMatrixBuffer(\"world\", e, i), this.doNotSyncBoundingInfo || this.thinInstanceRefreshBoundingInfo(!1)) : (this._thinInstanceDataStorage.instancesCount = 0, this.doNotSyncBoundingInfo || this.refreshBoundingInfo())) : a === \"previousMatrix\" ? ((r = this._thinInstanceDataStorage.previousMatrixBuffer) == null || r.dispose(), this._thinInstanceDataStorage.previousMatrixBuffer = null, this._thinInstanceDataStorage.previousMatrixData = e, e !== null && (this._thinInstanceDataStorage.previousMatrixBuffer = this._thinInstanceCreateMatrixBuffer(\"previousWorld\", e, i))) : (a === R.ColorKind && (a = R.ColorInstanceKind), e === null ? (n = this._userThinInstanceBuffersStorage) != null && n.data[a] && (this.removeVerticesData(a), delete this._userThinInstanceBuffersStorage.data[a], delete this._userThinInstanceBuffersStorage.strides[a], delete this._userThinInstanceBuffersStorage.sizes[a], delete this._userThinInstanceBuffersStorage.vertexBuffers[a]) : (this._thinInstanceInitializeUserStorage(), this._userThinInstanceBuffersStorage.data[a] = e, this._userThinInstanceBuffersStorage.strides[a] = t, this._userThinInstanceBuffersStorage.sizes[a] = e.length, this._userThinInstanceBuffersStorage.vertexBuffers[a] = new R(this.getEngine(), e, a, !i, !1, t, !0), this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[a])));\n};\nH.prototype.thinInstanceBufferUpdated = function(a) {\n var e, t, i;\n a === \"matrix\" ? (this.thinInstanceAllowAutomaticStaticBufferRecreation && this._thinInstanceDataStorage.matrixBuffer && !this._thinInstanceDataStorage.matrixBuffer.isUpdatable() && this._thinInstanceRecreateBuffer(a), (e = this._thinInstanceDataStorage.matrixBuffer) == null || e.updateDirectly(this._thinInstanceDataStorage.matrixData, 0, this._thinInstanceDataStorage.instancesCount)) : a === \"previousMatrix\" ? (this.thinInstanceAllowAutomaticStaticBufferRecreation && this._thinInstanceDataStorage.previousMatrixBuffer && !this._thinInstanceDataStorage.previousMatrixBuffer.isUpdatable() && this._thinInstanceRecreateBuffer(a), (t = this._thinInstanceDataStorage.previousMatrixBuffer) == null || t.updateDirectly(this._thinInstanceDataStorage.previousMatrixData, 0, this._thinInstanceDataStorage.instancesCount)) : (a === R.ColorKind && (a = R.ColorInstanceKind), (i = this._userThinInstanceBuffersStorage) != null && i.vertexBuffers[a] && (this.thinInstanceAllowAutomaticStaticBufferRecreation && !this._userThinInstanceBuffersStorage.vertexBuffers[a].isUpdatable() && this._thinInstanceRecreateBuffer(a), this._userThinInstanceBuffersStorage.vertexBuffers[a].updateDirectly(this._userThinInstanceBuffersStorage.data[a], 0)));\n};\nH.prototype.thinInstancePartialBufferUpdate = function(a, e, t) {\n var i;\n a === \"matrix\" ? this._thinInstanceDataStorage.matrixBuffer && this._thinInstanceDataStorage.matrixBuffer.updateDirectly(e, t) : (a === R.ColorKind && (a = R.ColorInstanceKind), (i = this._userThinInstanceBuffersStorage) != null && i.vertexBuffers[a] && this._userThinInstanceBuffersStorage.vertexBuffers[a].updateDirectly(e, t));\n};\nH.prototype.thinInstanceGetWorldMatrices = function() {\n if (!this._thinInstanceDataStorage.matrixData || !this._thinInstanceDataStorage.matrixBuffer)\n return [];\n const a = this._thinInstanceDataStorage.matrixData;\n if (!this._thinInstanceDataStorage.worldMatrices) {\n this._thinInstanceDataStorage.worldMatrices = [];\n for (let e = 0; e < this._thinInstanceDataStorage.instancesCount; ++e)\n this._thinInstanceDataStorage.worldMatrices[e] = O.FromArray(a, e * 16);\n }\n return this._thinInstanceDataStorage.worldMatrices;\n};\nH.prototype.thinInstanceRefreshBoundingInfo = function(a = !1, e = !1, t = !1) {\n if (!this._thinInstanceDataStorage.matrixData || !this._thinInstanceDataStorage.matrixBuffer)\n return;\n const i = this._thinInstanceDataStorage.boundingVectors;\n if (a || !this.rawBoundingInfo) {\n i.length = 0, this.refreshBoundingInfo(e, t);\n const n = this.getBoundingInfo();\n this.rawBoundingInfo = new zr(n.minimum, n.maximum);\n }\n const s = this.getBoundingInfo(), r = this._thinInstanceDataStorage.matrixData;\n if (i.length === 0)\n for (let n = 0; n < s.boundingBox.vectors.length; ++n)\n i.push(s.boundingBox.vectors[n].clone());\n w.Vector3[0].setAll(Number.POSITIVE_INFINITY), w.Vector3[1].setAll(Number.NEGATIVE_INFINITY);\n for (let n = 0; n < this._thinInstanceDataStorage.instancesCount; ++n) {\n O.FromArrayToRef(r, n * 16, w.Matrix[0]);\n for (let o = 0; o < i.length; ++o)\n g.TransformCoordinatesToRef(i[o], w.Matrix[0], w.Vector3[2]), w.Vector3[0].minimizeInPlace(w.Vector3[2]), w.Vector3[1].maximizeInPlace(w.Vector3[2]);\n }\n s.reConstruct(w.Vector3[0], w.Vector3[1]), this._updateBoundingInfo();\n};\nH.prototype._thinInstanceRecreateBuffer = function(a, e = !0) {\n var t, i, s;\n a === \"matrix\" ? ((t = this._thinInstanceDataStorage.matrixBuffer) == null || t.dispose(), this._thinInstanceDataStorage.matrixBuffer = this._thinInstanceCreateMatrixBuffer(\"world\", this._thinInstanceDataStorage.matrixData, e)) : a === \"previousMatrix\" ? this._scene.needsPreviousWorldMatrices && ((i = this._thinInstanceDataStorage.previousMatrixBuffer) == null || i.dispose(), this._thinInstanceDataStorage.previousMatrixBuffer = this._thinInstanceCreateMatrixBuffer(\"previousWorld\", this._thinInstanceDataStorage.previousMatrixData ?? this._thinInstanceDataStorage.matrixData, e)) : (a === R.ColorKind && (a = R.ColorInstanceKind), (s = this._userThinInstanceBuffersStorage.vertexBuffers[a]) == null || s.dispose(), this._userThinInstanceBuffersStorage.vertexBuffers[a] = new R(this.getEngine(), this._userThinInstanceBuffersStorage.data[a], a, !e, !1, this._userThinInstanceBuffersStorage.strides[a], !0), this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[a]));\n};\nH.prototype._thinInstanceUpdateBufferSize = function(a, e = 1) {\n var l, h, c;\n a === R.ColorKind && (a = R.ColorInstanceKind);\n const t = a === \"matrix\";\n if (!t && (!this._userThinInstanceBuffersStorage || !this._userThinInstanceBuffersStorage.strides[a]))\n return;\n const i = t ? 16 : this._userThinInstanceBuffersStorage.strides[a], s = t ? this._thinInstanceDataStorage.matrixBufferSize : this._userThinInstanceBuffersStorage.sizes[a];\n let r = t ? this._thinInstanceDataStorage.matrixData : this._userThinInstanceBuffersStorage.data[a];\n const n = (this._thinInstanceDataStorage.instancesCount + e) * i;\n let o = s;\n for (; o < n; )\n o *= 2;\n if (!r || s != o) {\n if (!r)\n r = new Float32Array(o);\n else {\n const u = new Float32Array(o);\n u.set(r, 0), r = u;\n }\n t ? ((l = this._thinInstanceDataStorage.matrixBuffer) == null || l.dispose(), this._thinInstanceDataStorage.matrixBuffer = this._thinInstanceCreateMatrixBuffer(\"world\", r, !1), this._thinInstanceDataStorage.matrixData = r, this._thinInstanceDataStorage.matrixBufferSize = o, this._scene.needsPreviousWorldMatrices && !this._thinInstanceDataStorage.previousMatrixData && ((h = this._thinInstanceDataStorage.previousMatrixBuffer) == null || h.dispose(), this._thinInstanceDataStorage.previousMatrixBuffer = this._thinInstanceCreateMatrixBuffer(\"previousWorld\", r, !1))) : ((c = this._userThinInstanceBuffersStorage.vertexBuffers[a]) == null || c.dispose(), this._userThinInstanceBuffersStorage.data[a] = r, this._userThinInstanceBuffersStorage.sizes[a] = o, this._userThinInstanceBuffersStorage.vertexBuffers[a] = new R(this.getEngine(), r, a, !0, !1, i, !0), this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[a]));\n }\n};\nH.prototype._thinInstanceInitializeUserStorage = function() {\n this._userThinInstanceBuffersStorage || (this._userThinInstanceBuffersStorage = {\n data: {},\n sizes: {},\n vertexBuffers: {},\n strides: {}\n });\n};\nH.prototype._disposeThinInstanceSpecificData = function() {\n var a;\n (a = this._thinInstanceDataStorage) != null && a.matrixBuffer && (this._thinInstanceDataStorage.matrixBuffer.dispose(), this._thinInstanceDataStorage.matrixBuffer = null);\n};\nvar D;\n(function(a) {\n a[a.Int = 1] = \"Int\", a[a.Float = 2] = \"Float\", a[a.Vector2 = 4] = \"Vector2\", a[a.Vector3 = 8] = \"Vector3\", a[a.Vector4 = 16] = \"Vector4\", a[a.Matrix = 32] = \"Matrix\", a[a.Geometry = 64] = \"Geometry\", a[a.Texture = 128] = \"Texture\", a[a.AutoDetect = 1024] = \"AutoDetect\", a[a.BasedOnInput = 2048] = \"BasedOnInput\", a[a.Undefined = 4096] = \"Undefined\", a[a.All = 4095] = \"All\";\n})(D || (D = {}));\nvar XE;\n(function(a) {\n a[a.Compatible = 0] = \"Compatible\", a[a.TypeIncompatible = 1] = \"TypeIncompatible\", a[a.HierarchyIssue = 2] = \"HierarchyIssue\";\n})(XE || (XE = {}));\nvar $E;\n(function(a) {\n a[a.Input = 0] = \"Input\", a[a.Output = 1] = \"Output\";\n})($E || ($E = {}));\nclass YE {\n /** Gets the direction of the point */\n get direction() {\n return this._direction;\n }\n /**\n * Gets or sets the connection point type (default is float)\n */\n get type() {\n if (this._type === D.AutoDetect) {\n if (this._ownerBlock.isInput)\n return this._ownerBlock.type;\n if (this._connectedPoint)\n return this._connectedPoint.type;\n if (this._linkedConnectionSource && this._linkedConnectionSource.isConnected)\n return this._linkedConnectionSource.type;\n }\n if (this._type === D.BasedOnInput) {\n if (this._typeConnectionSource)\n return !this._typeConnectionSource.isConnected && this._defaultConnectionPointType ? this._defaultConnectionPointType : this._typeConnectionSource.type;\n if (this._defaultConnectionPointType)\n return this._defaultConnectionPointType;\n }\n return this._type;\n }\n set type(e) {\n this._type = e;\n }\n /**\n * Gets a boolean indicating that the current point is connected to another NodeMaterialBlock\n */\n get isConnected() {\n return this.connectedPoint !== null || this.hasEndpoints;\n }\n /** Get the other side of the connection (if any) */\n get connectedPoint() {\n return this._connectedPoint;\n }\n /** Get the block that owns this connection point */\n get ownerBlock() {\n return this._ownerBlock;\n }\n /** Get the block connected on the other side of this connection (if any) */\n get sourceBlock() {\n return this._connectedPoint ? this._connectedPoint.ownerBlock : null;\n }\n /** Get the block connected on the endpoints of this connection (if any) */\n get connectedBlocks() {\n return this._endpoints.length === 0 ? [] : this._endpoints.map((e) => e.ownerBlock);\n }\n /** Gets the list of connected endpoints */\n get endpoints() {\n return this._endpoints;\n }\n /** Gets a boolean indicating if that output point is connected to at least one input */\n get hasEndpoints() {\n return this._endpoints && this._endpoints.length > 0;\n }\n /** Get the inner type (ie AutoDetect for instance instead of the inferred one) */\n get innerType() {\n return this._linkedConnectionSource && this._linkedConnectionSource.isConnected ? this.type : this._type;\n }\n /** @internal */\n _resetCounters() {\n this._callCount = 0, this._executionCount = 0;\n }\n /**\n * Gets the number of times this point was called\n */\n get callCount() {\n return this._callCount;\n }\n /**\n * Gets the number of times this point was executed\n */\n get executionCount() {\n return this._executionCount;\n }\n /**\n * Gets the value represented by this connection point\n * @param state current evaluation state\n * @returns the connected value or the value if nothing is connected\n */\n getConnectedValue(e) {\n var t;\n return this.isConnected ? (t = this._connectedPoint) != null && t._storedFunction ? (this._connectedPoint._callCount++, this._connectedPoint._executionCount++, this._connectedPoint._storedFunction(e)) : (this._connectedPoint._callCount++, this._connectedPoint._executionCount = 1, this._connectedPoint._storedValue) : (this._callCount++, this._executionCount = 1, this.value);\n }\n /**\n * Creates a new connection point\n * @param name defines the connection point name\n * @param ownerBlock defines the block hosting this connection point\n * @param direction defines the direction of the connection point\n */\n constructor(e, t, i) {\n this._connectedPoint = null, this._storedValue = null, this._storedFunction = null, this._acceptedConnectionPointType = null, this._endpoints = new Array(), this._type = D.Geometry, this._linkedConnectionSource = null, this._typeConnectionSource = null, this._defaultConnectionPointType = null, this.acceptedConnectionPointTypes = [], this.excludedConnectionPointTypes = [], this.onConnectionObservable = new G(), this.onDisconnectionObservable = new G(), this.isExposedOnFrame = !1, this.exposedPortPosition = -1, this.defaultValue = null, this.value = null, this.valueMin = null, this.valueMax = null, this._callCount = 0, this._executionCount = 0, this._ownerBlock = t, this.name = e, this._direction = i;\n }\n /**\n * Gets the current class name e.g. \"NodeMaterialConnectionPoint\"\n * @returns the class name\n */\n getClassName() {\n return \"NodeGeometryConnectionPoint\";\n }\n /**\n * Gets a boolean indicating if the current point can be connected to another point\n * @param connectionPoint defines the other connection point\n * @returns a boolean\n */\n canConnectTo(e) {\n return this.checkCompatibilityState(e) === 0;\n }\n /**\n * Gets a number indicating if the current point can be connected to another point\n * @param connectionPoint defines the other connection point\n * @returns a number defining the compatibility state\n */\n checkCompatibilityState(e) {\n const t = this._ownerBlock, i = e.ownerBlock;\n if (this.type !== e.type && e.innerType !== D.AutoDetect)\n return e.acceptedConnectionPointTypes && e.acceptedConnectionPointTypes.indexOf(this.type) !== -1 ? 0 : 1;\n if (e.excludedConnectionPointTypes && e.excludedConnectionPointTypes.indexOf(this.type) !== -1)\n return 1;\n let s = i, r = t;\n return this.direction === 0 && (s = t, r = i), s.isAnAncestorOf(r) ? 2 : 0;\n }\n /**\n * Connect this point to another connection point\n * @param connectionPoint defines the other connection point\n * @param ignoreConstraints defines if the system will ignore connection type constraints (default is false)\n * @returns the current connection point\n */\n connectTo(e, t = !1) {\n if (!t && !this.canConnectTo(e))\n throw \"Cannot connect these two connectors.\";\n return this._endpoints.push(e), e._connectedPoint = this, this.onConnectionObservable.notifyObservers(e), e.onConnectionObservable.notifyObservers(this), this;\n }\n /**\n * Disconnect this point from one of his endpoint\n * @param endpoint defines the other connection point\n * @returns the current connection point\n */\n disconnectFrom(e) {\n const t = this._endpoints.indexOf(e);\n return t === -1 ? this : (this._endpoints.splice(t, 1), e._connectedPoint = null, this.onDisconnectionObservable.notifyObservers(e), e.onDisconnectionObservable.notifyObservers(this), this);\n }\n /**\n * Fill the list of excluded connection point types with all types other than those passed in the parameter\n * @param mask Types (ORed values of NodeMaterialBlockConnectionPointTypes) that are allowed, and thus will not be pushed to the excluded list\n */\n addExcludedConnectionPointFromAllowedTypes(e) {\n let t = 1;\n for (; t < D.All; )\n e & t || this.excludedConnectionPointTypes.push(t), t = t << 1;\n }\n /**\n * Serializes this point in a JSON representation\n * @param isInput defines if the connection point is an input (default is true)\n * @returns the serialized point object\n */\n serialize(e = !0) {\n const t = {};\n return t.name = this.name, t.displayName = this.displayName, this.value !== void 0 && this.value !== null && (this.value.asArray ? (t.valueType = \"BABYLON.\" + this.value.getClassName(), t.value = this.value.asArray()) : (t.valueType = \"number\", t.value = this.value)), e && this.connectedPoint && (t.inputName = this.name, t.targetBlockId = this.connectedPoint.ownerBlock.uniqueId, t.targetConnectionName = this.connectedPoint.name, t.isExposedOnFrame = !0, t.exposedPortPosition = this.exposedPortPosition), (this.isExposedOnFrame || this.exposedPortPosition >= 0) && (t.isExposedOnFrame = !0, t.exposedPortPosition = this.exposedPortPosition), t;\n }\n /**\n * Release resources\n */\n dispose() {\n this.onConnectionObservable.clear(), this.onDisconnectionObservable.clear();\n }\n}\nclass Ze {\n /**\n * Gets the time spent to build this block (in ms)\n */\n get buildExecutionTime() {\n return this._buildExecutionTime;\n }\n /**\n * Gets the list of input points\n */\n get inputs() {\n return this._inputs;\n }\n /** Gets the list of output points */\n get outputs() {\n return this._outputs;\n }\n /**\n * Gets or set the name of the block\n */\n get name() {\n return this._name;\n }\n set name(e) {\n this._name = e;\n }\n /**\n * Gets a boolean indicating if this block is an input\n */\n get isInput() {\n return this._isInput;\n }\n /**\n * Gets a boolean indicating if this block is a teleport out\n */\n get isTeleportOut() {\n return this._isTeleportOut;\n }\n /**\n * Gets a boolean indicating if this block is a teleport in\n */\n get isTeleportIn() {\n return this._isTeleportIn;\n }\n /**\n * Gets a boolean indicating if this block is a debug block\n */\n get isDebug() {\n return this._isDebug;\n }\n /**\n * Gets a boolean indicating that this block can only be used once per NodeGeometry\n */\n get isUnique() {\n return this._isUnique;\n }\n /**\n * Gets the current class name e.g. \"NodeGeometryBlock\"\n * @returns the class name\n */\n getClassName() {\n return \"NodeGeometryBlock\";\n }\n _inputRename(e) {\n return e;\n }\n _outputRename(e) {\n return e;\n }\n /**\n * Checks if the current block is an ancestor of a given block\n * @param block defines the potential descendant block to check\n * @returns true if block is a descendant\n */\n isAnAncestorOf(e) {\n for (const t of this._outputs)\n if (t.hasEndpoints) {\n for (const i of t.endpoints)\n if (i.ownerBlock === e || i.ownerBlock.isAnAncestorOf(e))\n return !0;\n }\n return !1;\n }\n /**\n * Checks if the current block is an ancestor of a given type\n * @param type defines the potential type to check\n * @returns true if block is a descendant\n */\n isAnAncestorOfType(e) {\n if (this.getClassName() === e)\n return !0;\n for (const t of this._outputs)\n if (t.hasEndpoints) {\n for (const i of t.endpoints)\n if (i.ownerBlock.isAnAncestorOfType(e))\n return !0;\n }\n return !1;\n }\n /**\n * Get the first descendant using a predicate\n * @param predicate defines the predicate to check\n * @returns descendant or null if none found\n */\n getDescendantOfPredicate(e) {\n if (e(this))\n return this;\n for (const t of this._outputs)\n if (t.hasEndpoints)\n for (const i of t.endpoints) {\n const s = i.ownerBlock.getDescendantOfPredicate(e);\n if (s)\n return s;\n }\n return null;\n }\n /**\n * Creates a new NodeGeometryBlock\n * @param name defines the block name\n */\n constructor(e) {\n this._name = \"\", this._isInput = !1, this._isTeleportOut = !1, this._isTeleportIn = !1, this._isDebug = !1, this._isUnique = !1, this._buildExecutionTime = 0, this.onBuildObservable = new G(), this._inputs = new Array(), this._outputs = new Array(), this._codeVariableName = \"\", this.visibleOnFrame = !1, this._name = e, this.uniqueId = of.UniqueId;\n }\n /**\n * Register a new input. Must be called inside a block constructor\n * @param name defines the connection point name\n * @param type defines the connection point type\n * @param isOptional defines a boolean indicating that this input can be omitted\n * @param value value to return if there is no connection\n * @param valueMin min value accepted for value\n * @param valueMax max value accepted for value\n * @returns the current block\n */\n registerInput(e, t, i = !1, s, r, n) {\n const o = new YE(\n e,\n this,\n 0\n /* NodeGeometryConnectionPointDirection.Input */\n );\n return o.type = t, o.isOptional = i, o.defaultValue = s, o.value = s, o.valueMin = r, o.valueMax = n, this._inputs.push(o), this;\n }\n /**\n * Register a new output. Must be called inside a block constructor\n * @param name defines the connection point name\n * @param type defines the connection point type\n * @param point an already created connection point. If not provided, create a new one\n * @returns the current block\n */\n registerOutput(e, t, i) {\n return i = i ?? new YE(\n e,\n this,\n 1\n /* NodeGeometryConnectionPointDirection.Output */\n ), i.type = t, this._outputs.push(i), this;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _buildBlock(e) {\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _customBuildStep(e) {\n }\n /**\n * Build the current node and generate the vertex data\n * @param state defines the current generation state\n * @returns true if already built\n */\n build(e) {\n if (this._buildId === e.buildId)\n return !0;\n if (this._outputs.length > 0) {\n if (!this._outputs.some((i) => i.hasEndpoints) && !this.isDebug)\n return !1;\n this.outputs.forEach((i) => i._resetCounters());\n }\n this._buildId = e.buildId;\n for (const i of this._inputs) {\n if (!i.connectedPoint) {\n i.isOptional || e.notConnectedNonOptionalInputs.push(i);\n continue;\n }\n const s = i.connectedPoint.ownerBlock;\n s && s !== this && s.build(e);\n }\n this._customBuildStep(e), e.verbose && L.Log(`Building ${this.name} [${this.getClassName()}]`);\n const t = Es.Now;\n this._buildBlock(e), this._buildExecutionTime = Es.Now - t;\n for (const i of this._outputs)\n for (const s of i.endpoints) {\n const r = s.ownerBlock;\n r && r.build(e);\n }\n return this.onBuildObservable.notifyObservers(this), !1;\n }\n _linkConnectionTypes(e, t, i = !1) {\n i ? this._inputs[t]._acceptedConnectionPointType = this._inputs[e] : this._inputs[e]._linkedConnectionSource = this._inputs[t], this._inputs[t]._linkedConnectionSource = this._inputs[e];\n }\n /**\n * Initialize the block and prepare the context for build\n */\n initialize() {\n }\n /**\n * Lets the block try to connect some inputs automatically\n */\n autoConfigure() {\n }\n /**\n * Find an input by its name\n * @param name defines the name of the input to look for\n * @returns the input or null if not found\n */\n getInputByName(e) {\n const t = this._inputs.filter((i) => i.name === e);\n return t.length ? t[0] : null;\n }\n /**\n * Find an output by its name\n * @param name defines the name of the output to look for\n * @returns the output or null if not found\n */\n getOutputByName(e) {\n const t = this._outputs.filter((i) => i.name === e);\n return t.length ? t[0] : null;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = {};\n e.customType = \"BABYLON.\" + this.getClassName(), e.id = this.uniqueId, e.name = this.name, e.visibleOnFrame = this.visibleOnFrame, e.inputs = [], e.outputs = [];\n for (const t of this.inputs)\n e.inputs.push(t.serialize());\n for (const t of this.outputs)\n e.outputs.push(t.serialize(!1));\n return e;\n }\n /**\n * @internal\n */\n _deserialize(e) {\n this._name = e.name, this.comments = e.comments, this.visibleOnFrame = !!e.visibleOnFrame, this._deserializePortDisplayNamesAndExposedOnFrame(e);\n }\n _deserializePortDisplayNamesAndExposedOnFrame(e) {\n const t = e.inputs, i = e.outputs;\n t && t.forEach((s) => {\n const r = this.inputs.find((n) => n.name === s.name);\n if (r && (s.displayName && (r.displayName = s.displayName), s.isExposedOnFrame && (r.isExposedOnFrame = s.isExposedOnFrame, r.exposedPortPosition = s.exposedPortPosition), s.value !== void 0 && s.value !== null))\n if (s.valueType === \"number\")\n r.value = s.value;\n else {\n const n = Oi(s.valueType);\n n && (r.value = n.FromArray(s.value));\n }\n }), i && i.forEach((s, r) => {\n s.displayName && (this.outputs[r].displayName = s.displayName), s.isExposedOnFrame && (this.outputs[r].isExposedOnFrame = s.isExposedOnFrame, this.outputs[r].exposedPortPosition = s.exposedPortPosition);\n });\n }\n _dumpPropertiesCode() {\n return `${this._codeVariableName}.visibleOnFrame = ${this.visibleOnFrame};\n`;\n }\n /**\n * @internal\n */\n _dumpCodeForOutputConnections(e) {\n let t = \"\";\n if (e.indexOf(this) !== -1)\n return t;\n e.push(this);\n for (const i of this.inputs) {\n if (!i.isConnected)\n continue;\n const s = i.connectedPoint, r = s.ownerBlock;\n t += r._dumpCodeForOutputConnections(e), t += `${r._codeVariableName}.${r._outputRename(s.name)}.connectTo(${this._codeVariableName}.${this._inputRename(i.name)});\n`;\n }\n return t;\n }\n /**\n * @internal\n */\n _dumpCode(e, t) {\n t.push(this);\n const i = this.name.replace(/[^A-Za-z_]+/g, \"\");\n if (this._codeVariableName = i || `${this.getClassName()}_${this.uniqueId}`, e.indexOf(this._codeVariableName) !== -1) {\n let n = 0;\n do\n n++, this._codeVariableName = i + n;\n while (e.indexOf(this._codeVariableName) !== -1);\n }\n e.push(this._codeVariableName);\n let s = `\n// ${this.getClassName()}\n`;\n this.comments && (s += `// ${this.comments}\n`);\n const r = this.getClassName();\n if (r === \"GeometryInputBlock\") {\n const o = this.type;\n s += `var ${this._codeVariableName} = new BABYLON.GeometryInputBlock(\"${this.name}\", ${o});\n`;\n } else\n s += `var ${this._codeVariableName} = new BABYLON.${r}(\"${this.name}\");\n`;\n s += this._dumpPropertiesCode();\n for (const n of this.inputs) {\n if (!n.isConnected)\n continue;\n const l = n.connectedPoint.ownerBlock;\n t.indexOf(l) === -1 && (s += l._dumpCode(e, t));\n }\n for (const n of this.outputs)\n if (n.hasEndpoints)\n for (const o of n.endpoints) {\n const l = o.ownerBlock;\n l && t.indexOf(l) === -1 && (s += l._dumpCode(e, t));\n }\n return s;\n }\n /**\n * Clone the current block to a new identical block\n * @returns a copy of the current block\n */\n clone() {\n const e = this.serialize(), t = Oi(e.customType);\n if (t) {\n const i = new t();\n return i._deserialize(e), i;\n }\n return null;\n }\n /**\n * Release resources\n */\n dispose() {\n for (const e of this.inputs)\n e.dispose();\n for (const e of this.outputs)\n e.dispose();\n this.onBuildObservable.clear();\n }\n}\ny([\n I(\"comment\")\n], Ze.prototype, \"comments\", void 0);\nclass mR extends Ze {\n /**\n * Gets the current vertex data if the graph was successfully built\n */\n get currentVertexData() {\n return this._vertexData;\n }\n /**\n * Create a new GeometryOutputBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this._vertexData = null, this._isUnique = !0, this.registerInput(\"geometry\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryOutputBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n _buildBlock(e) {\n e.vertexData = this.geometry.getConnectedValue(e), this._vertexData = e.vertexData;\n }\n}\nU(\"BABYLON.GeometryOutputBlock\", mR);\nvar Vt;\n(function(a) {\n a[a.None = 0] = \"None\", a[a.Positions = 1] = \"Positions\", a[a.Normals = 2] = \"Normals\", a[a.Tangents = 3] = \"Tangents\", a[a.UV = 4] = \"UV\", a[a.UV2 = 5] = \"UV2\", a[a.UV3 = 6] = \"UV3\", a[a.UV4 = 7] = \"UV4\", a[a.UV5 = 8] = \"UV5\", a[a.UV6 = 9] = \"UV6\", a[a.Colors = 10] = \"Colors\", a[a.VertexID = 11] = \"VertexID\", a[a.FaceID = 12] = \"FaceID\", a[a.GeometryID = 13] = \"GeometryID\", a[a.CollectionID = 14] = \"CollectionID\", a[a.LoopID = 15] = \"LoopID\", a[a.InstanceID = 16] = \"InstanceID\";\n})(Vt || (Vt = {}));\nclass Ok {\n constructor() {\n this._rotationMatrix = new O(), this._scalingMatrix = new O(), this._positionMatrix = new O(), this._scalingRotationMatrix = new O(), this._transformMatrix = new O(), this._tempVector3 = new g(), this.notConnectedNonOptionalInputs = [], this.noContextualData = [], this.vertexData = null, this._geometryContext = null, this._executionContext = null, this._instancingContext = null, this._geometryContextStack = [], this._executionContextStack = [], this._instancingContextStack = [];\n }\n /** Gets or sets the geometry context */\n get geometryContext() {\n return this._geometryContext;\n }\n /** Gets or sets the execution context */\n get executionContext() {\n return this._executionContext;\n }\n /** Gets or sets the instancing context */\n get instancingContext() {\n return this._instancingContext;\n }\n /**\n * Push the new active geometry context\n * @param geometryContext defines the geometry context\n */\n pushGeometryContext(e) {\n this._geometryContext = e, this._geometryContextStack.push(this._geometryContext);\n }\n /**\n * Push the new active execution context\n * @param executionContext defines the execution context\n */\n pushExecutionContext(e) {\n this._executionContext = e, this._executionContextStack.push(this._executionContext);\n }\n /**\n * Push the new active instancing context\n * @param instancingContext defines the instancing context\n */\n pushInstancingContext(e) {\n this._instancingContext = e, this._instancingContextStack.push(this._instancingContext);\n }\n /**\n * Remove current geometry context and restore the previous one\n */\n restoreGeometryContext() {\n this._geometryContextStack.pop(), this._geometryContext = this._geometryContextStack.length > 0 ? this._geometryContextStack[this._geometryContextStack.length - 1] : null;\n }\n /**\n * Remove current execution context and restore the previous one\n */\n restoreExecutionContext() {\n this._executionContextStack.pop(), this._executionContext = this._executionContextStack.length > 0 ? this._executionContextStack[this._executionContextStack.length - 1] : null;\n }\n /**\n * Remove current isntancing context and restore the previous one\n */\n restoreInstancingContext() {\n this._instancingContextStack.pop(), this._instancingContext = this._instancingContextStack.length > 0 ? this._instancingContextStack[this._instancingContextStack.length - 1] : null;\n }\n /**\n * Gets the value associated with a contextual source\n * @param source Source of the contextual value\n * @param skipWarning Do not store the warning for reporting if true\n * @returns the value associated with the source\n */\n getContextualValue(e, t = !1) {\n if (!this.executionContext)\n return t || this.noContextualData.push(e), null;\n const i = this.executionContext.getExecutionIndex();\n switch (e) {\n case Vt.Positions:\n return this.executionContext.getOverridePositionsContextualValue ? this.executionContext.getOverridePositionsContextualValue() : !this.geometryContext || !this.geometryContext.positions ? g.Zero() : g.FromArray(this.geometryContext.positions, i * 3);\n case Vt.Normals:\n return this.executionContext.getOverrideNormalsContextualValue ? this.executionContext.getOverrideNormalsContextualValue() : !this.geometryContext || !this.geometryContext.normals ? g.Zero() : g.FromArray(this.geometryContext.normals, i * 3);\n case Vt.Colors:\n return !this.geometryContext || !this.geometryContext.colors ? Ne.Zero() : Ne.FromArray(this.geometryContext.colors, i * 4);\n case Vt.Tangents:\n return !this.geometryContext || !this.geometryContext.tangents ? Ne.Zero() : Ne.FromArray(this.geometryContext.tangents, i * 4);\n case Vt.UV:\n return this.executionContext.getOverrideUVs1ContextualValue ? this.executionContext.getOverrideUVs1ContextualValue() : !this.geometryContext || !this.geometryContext.uvs ? Q.Zero() : Q.FromArray(this.geometryContext.uvs, i * 2);\n case Vt.UV2:\n return !this.geometryContext || !this.geometryContext.uvs2 ? Q.Zero() : Q.FromArray(this.geometryContext.uvs2, i * 2);\n case Vt.UV3:\n return !this.geometryContext || !this.geometryContext.uvs3 ? Q.Zero() : Q.FromArray(this.geometryContext.uvs3, i * 2);\n case Vt.UV4:\n return !this.geometryContext || !this.geometryContext.uvs4 ? Q.Zero() : Q.FromArray(this.geometryContext.uvs4, i * 2);\n case Vt.UV5:\n return !this.geometryContext || !this.geometryContext.uvs5 ? Q.Zero() : Q.FromArray(this.geometryContext.uvs5, i * 2);\n case Vt.UV6:\n return !this.geometryContext || !this.geometryContext.uvs6 ? Q.Zero() : Q.FromArray(this.geometryContext.uvs6, i * 2);\n case Vt.VertexID:\n return i;\n case Vt.FaceID:\n return this.executionContext.getExecutionFaceIndex();\n case Vt.LoopID:\n return this.executionContext.getExecutionLoopIndex();\n case Vt.InstanceID:\n return this.instancingContext ? this.instancingContext.getInstanceIndex() : 0;\n case Vt.GeometryID:\n return this.geometryContext ? this.geometryContext.uniqueId : 0;\n case Vt.CollectionID:\n return !this.geometryContext || !this.geometryContext.metadata ? 0 : this.geometryContext.metadata.collectionId || 0;\n }\n return null;\n }\n /**\n * Adapt a value to a target type\n * @param source defines the value to adapt\n * @param targetType defines the target type\n * @returns the adapted value\n */\n adapt(e, t) {\n const i = e.getConnectedValue(this) || 0;\n if (e.type === t)\n return i;\n switch (t) {\n case D.Vector2:\n return new Q(i, i);\n case D.Vector3:\n return new g(i, i, i);\n case D.Vector4:\n return new Ne(i, i, i, i);\n }\n return null;\n }\n /**\n * Adapt an input value to a target type\n * @param source defines the value to adapt\n * @param targetType defines the target type\n * @param defaultValue defines the default value to use if not connected\n * @returns the adapted value\n */\n adaptInput(e, t, i) {\n var r;\n if (!e.isConnected)\n return e.value || i;\n const s = e.getConnectedValue(this);\n if (((r = e._connectedPoint) == null ? void 0 : r.type) === t)\n return s;\n switch (t) {\n case D.Vector2:\n return new Q(s, s);\n case D.Vector3:\n return new g(s, s, s);\n case D.Vector4:\n return new Ne(s, s, s, s);\n }\n return null;\n }\n /**\n * Emits console errors and exceptions if there is a failing check\n */\n emitErrors() {\n let e = \"\";\n for (const t of this.notConnectedNonOptionalInputs)\n e += `input ${t.name} from block ${t.ownerBlock.name}[${t.ownerBlock.getClassName()}] is not connected and is not optional.\n`;\n for (const t of this.noContextualData)\n e += `Contextual input ${Vt[t]} has no context to pull data from (must be connected to a setXXX block or a instantiateXXX block).\n`;\n if (e)\n throw `Build of NodeGeometry failed:\n` + e;\n }\n /** @internal */\n _instantiate(e, t, i, s, r) {\n O.ScalingToRef(s.x, s.y, s.z, this._scalingMatrix), O.RotationYawPitchRollToRef(i.y, i.x, i.z, this._rotationMatrix), O.TranslationToRef(t.x, t.y, t.z, this._positionMatrix), this._scalingMatrix.multiplyToRef(this._rotationMatrix, this._scalingRotationMatrix), this._scalingRotationMatrix.multiplyToRef(this._positionMatrix, this._transformMatrix);\n for (let n = 0; n < e.positions.length; n += 3)\n this._tempVector3.fromArray(e.positions, n), g.TransformCoordinatesToRef(this._tempVector3, this._transformMatrix, this._tempVector3), this._tempVector3.toArray(e.positions, n), e.normals && (this._tempVector3.fromArray(e.normals, n), g.TransformNormalToRef(this._tempVector3, this._scalingRotationMatrix, this._tempVector3), this._tempVector3.toArray(e.normals, n));\n r.push(e);\n }\n /** @internal */\n _instantiateWithMatrix(e, t, i) {\n for (let s = 0; s < e.positions.length; s += 3)\n this._tempVector3.fromArray(e.positions, s), g.TransformCoordinatesToRef(this._tempVector3, t, this._tempVector3), this._tempVector3.toArray(e.positions, s), e.normals && (this._tempVector3.fromArray(e.normals, s), g.TransformNormalToRef(this._tempVector3, t, this._tempVector3), this._tempVector3.toArray(e.normals, s));\n i.push(e);\n }\n /** @internal */\n _instantiateWithPositionAndMatrix(e, t, i, s) {\n O.TranslationToRef(t.x, t.y, t.z, this._positionMatrix), i.multiplyToRef(this._positionMatrix, this._transformMatrix);\n for (let r = 0; r < e.positions.length; r += 3)\n this._tempVector3.fromArray(e.positions, r), g.TransformCoordinatesToRef(this._tempVector3, this._transformMatrix, this._tempVector3), this._tempVector3.toArray(e.positions, r), e.normals && (this._tempVector3.fromArray(e.normals, r), g.TransformNormalToRef(this._tempVector3, this._transformMatrix, this._tempVector3), this._tempVector3.toArray(e.normals, r));\n s.push(e);\n }\n}\nclass as extends Ze {\n /**\n * Gets or sets the connection point type (default is float)\n */\n get type() {\n if (this._type === D.AutoDetect && this.value != null) {\n if (!isNaN(this.value))\n return this._type = D.Float, this._type;\n switch (this.value.getClassName()) {\n case \"Vector2\":\n return this._type = D.Vector2, this._type;\n case \"Vector3\":\n return this._type = D.Vector3, this._type;\n case \"Vector4\":\n return this._type = D.Vector4, this._type;\n case \"Matrix\":\n return this._type = D.Matrix, this._type;\n }\n }\n return this._type;\n }\n /**\n * Gets a boolean indicating that the current connection point is a contextual value\n */\n get isContextual() {\n return this._contextualSource !== Vt.None;\n }\n /**\n * Gets or sets the current contextual value\n */\n get contextualValue() {\n return this._contextualSource;\n }\n set contextualValue(e) {\n switch (this._contextualSource = e, e) {\n case Vt.Positions:\n case Vt.Normals:\n this._type = D.Vector3;\n break;\n case Vt.Colors:\n case Vt.Tangents:\n this._type = D.Vector4;\n break;\n case Vt.UV:\n case Vt.UV2:\n case Vt.UV3:\n case Vt.UV4:\n case Vt.UV5:\n case Vt.UV6:\n this._type = D.Vector2;\n break;\n case Vt.VertexID:\n case Vt.GeometryID:\n case Vt.CollectionID:\n case Vt.FaceID:\n case Vt.LoopID:\n case Vt.InstanceID:\n this._type = D.Int;\n break;\n }\n this.output && (this.output.type = this._type);\n }\n /**\n * Creates a new InputBlock\n * @param name defines the block name\n * @param type defines the type of the input (can be set to NodeGeometryBlockConnectionPointTypes.AutoDetect)\n */\n constructor(e, t = D.AutoDetect) {\n super(e), this._type = D.Undefined, this._contextualSource = Vt.None, this.min = 0, this.max = 0, this.groupInInspector = \"\", this.onValueChangedObservable = new G(), this._type = t, this._isInput = !0, this.setDefaultValue(), this.registerOutput(\"output\", t);\n }\n /**\n * Gets or sets the value of that point.\n * Please note that this value will be ignored if valueCallback is defined\n */\n get value() {\n return this._storedValue;\n }\n set value(e) {\n this.type === D.Float && this.min !== this.max && (e = Math.max(this.min, e), e = Math.min(this.max, e)), this._storedValue = e, this.onValueChangedObservable.notifyObservers(this);\n }\n /**\n * Gets or sets a callback used to get the value of that point.\n * Please note that setting this value will force the connection point to ignore the value property\n */\n get valueCallback() {\n return this._valueCallback;\n }\n set valueCallback(e) {\n this._valueCallback = e;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryInputBlock\";\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Set the input block to its default value (based on its type)\n */\n setDefaultValue() {\n switch (this.contextualValue = Vt.None, this.type) {\n case D.Int:\n case D.Float:\n this.value = 0;\n break;\n case D.Vector2:\n this.value = Q.Zero();\n break;\n case D.Vector3:\n this.value = g.Zero();\n break;\n case D.Vector4:\n this.value = Ne.Zero();\n break;\n case D.Matrix:\n this.value = O.Identity();\n break;\n }\n }\n _buildBlock(e) {\n super._buildBlock(e), this.isContextual ? (this.output._storedValue = null, this.output._storedFunction = (t) => t.getContextualValue(this._contextualSource)) : (this.output._storedFunction = null, this.output._storedValue = this.value);\n }\n dispose() {\n this.onValueChangedObservable.clear(), super.dispose();\n }\n _dumpPropertiesCode() {\n const e = this._codeVariableName;\n if (this.isContextual)\n return super._dumpPropertiesCode() + `${e}.contextualValue = BABYLON.NodeGeometryContextualSources.${Vt[this._contextualSource]};\n`;\n const t = [];\n let i = \"\";\n switch (this.type) {\n case D.Float:\n case D.Int:\n i = `${this.value}`;\n break;\n case D.Vector2:\n i = `new BABYLON.Vector2(${this.value.x}, ${this.value.y})`;\n break;\n case D.Vector3:\n i = `new BABYLON.Vector3(${this.value.x}, ${this.value.y}, ${this.value.z})`;\n break;\n case D.Vector4:\n i = `new BABYLON.Vector4(${this.value.x}, ${this.value.y}, ${this.value.z}, ${this.value.w})`;\n break;\n }\n return t.push(`${e}.value = ${i}`), (this.type === D.Float || this.type === D.Int) && t.push(`${e}.min = ${this.min}`, `${e}.max = ${this.max}`), t.push(\"\"), super._dumpPropertiesCode() + t.join(`;\n`);\n }\n serialize() {\n const e = super.serialize();\n return e.type = this.type, e.contextualValue = this.contextualValue, e.min = this.min, e.max = this.max, e.groupInInspector = this.groupInInspector, this._storedValue !== null && !this.isContextual && (this._storedValue.asArray ? (e.valueType = \"BABYLON.\" + this._storedValue.getClassName(), e.value = this._storedValue.asArray()) : (e.valueType = \"number\", e.value = this._storedValue)), e;\n }\n _deserialize(e) {\n if (super._deserialize(e), this._type = e.type, this.contextualValue = e.contextualValue, this.min = e.min || 0, this.max = e.max || 0, this.groupInInspector = e.groupInInspector || \"\", !!e.valueType)\n if (e.valueType === \"number\")\n this._storedValue = e.value;\n else {\n const t = Oi(e.valueType);\n t && (this._storedValue = t.FromArray(e.value));\n }\n }\n}\nU(\"BABYLON.GeometryInputBlock\", as);\nclass kv extends Ze {\n /**\n * Create a new BoxBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !1, this.registerInput(\"size\", D.Float, !0, 1), this.registerInput(\"width\", D.Float, !0, 0), this.registerInput(\"height\", D.Float, !0, 0), this.registerInput(\"depth\", D.Float, !0, 0), this.registerInput(\"subdivisions\", D.Int, !0, 1), this.registerInput(\"subdivisionsX\", D.Int, !0, 0), this.registerInput(\"subdivisionsY\", D.Int, !0, 0), this.registerInput(\"subdivisionsZ\", D.Int, !0, 0), this.registerOutput(\"geometry\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"BoxBlock\";\n }\n /**\n * Gets the size input component\n */\n get size() {\n return this._inputs[0];\n }\n /**\n * Gets the width input component\n */\n get width() {\n return this._inputs[1];\n }\n /**\n * Gets the height input component\n */\n get height() {\n return this._inputs[2];\n }\n /**\n * Gets the depth input component\n */\n get depth() {\n return this._inputs[3];\n }\n /**\n * Gets the subdivisions input component\n */\n get subdivisions() {\n return this._inputs[4];\n }\n /**\n * Gets the subdivisionsX input component\n */\n get subdivisionsX() {\n return this._inputs[5];\n }\n /**\n * Gets the subdivisionsY input component\n */\n get subdivisionsY() {\n return this._inputs[6];\n }\n /**\n * Gets the subdivisionsZ input component\n */\n get subdivisionsZ() {\n return this._inputs[7];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.size.isConnected) {\n if (!this.width.isConnected && !this.height.isConnected && !this.depth.isConnected) {\n const e = new as(\"Size\");\n e.value = 1, e.output.connectTo(this.size);\n return;\n }\n if (!this.width.isConnected) {\n const e = new as(\"Width\");\n e.value = 1, e.output.connectTo(this.width);\n }\n if (!this.height.isConnected) {\n const e = new as(\"Height\");\n e.value = 1, e.output.connectTo(this.height);\n }\n if (!this.depth.isConnected) {\n const e = new as(\"Depth\");\n e.value = 1, e.output.connectTo(this.depth);\n }\n }\n }\n _buildBlock(e) {\n const t = {}, i = (s) => {\n t.size = this.size.getConnectedValue(s), t.width = this.width.getConnectedValue(s), t.height = this.height.getConnectedValue(s), t.depth = this.depth.getConnectedValue(s);\n const r = this.subdivisions.getConnectedValue(s), n = this.subdivisionsX.getConnectedValue(s), o = this.subdivisionsY.getConnectedValue(s), l = this.subdivisionsZ.getConnectedValue(s);\n return r && (t.segments = r), n && (t.widthSegments = n), o && (t.heightSegments = o), l && (t.depthSegments = l), Uw(t);\n };\n if (this.evaluateContext)\n this.geometry._storedFunction = i;\n else {\n const s = i(e);\n this.geometry._storedFunction = () => (this.geometry._executionCount = 1, s.clone());\n }\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.evaluateContext = e.evaluateContext;\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], kv.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.BoxBlock\", kv);\nclass sn {\n /** @returns the inspector from bundle or global */\n _getGlobalNodeGeometryEditor() {\n if (typeof NODEGEOMETRYEDITOR < \"u\")\n return NODEGEOMETRYEDITOR;\n if (typeof BABYLON < \"u\" && typeof BABYLON.NodeGeometryEditor < \"u\")\n return BABYLON;\n }\n /**\n * Gets the time spent to build this block (in ms)\n */\n get buildExecutionTime() {\n return this._buildExecutionTime;\n }\n /**\n * Creates a new geometry\n * @param name defines the name of the geometry\n */\n constructor(e) {\n this._buildId = sn._BuildIdGenerator++, this._buildWasSuccessful = !1, this._vertexData = null, this._buildExecutionTime = 0, this.BJSNODEGEOMETRYEDITOR = this._getGlobalNodeGeometryEditor(), this.editorData = null, this.attachedBlocks = [], this.onBuildObservable = new G(), this.outputBlock = null, this.name = e;\n }\n /**\n * Gets the current class name of the geometry e.g. \"NodeGeometry\"\n * @returns the class name\n */\n getClassName() {\n return \"NodeGeometry\";\n }\n /**\n * Get a block by its name\n * @param name defines the name of the block to retrieve\n * @returns the required block or null if not found\n */\n getBlockByName(e) {\n let t = null;\n for (const i of this.attachedBlocks)\n if (i.name === e)\n if (!t)\n t = i;\n else\n return J.Warn(\"More than one block was found with the name `\" + e + \"`\"), t;\n return t;\n }\n /**\n * Get a block using a predicate\n * @param predicate defines the predicate used to find the good candidate\n * @returns the required block or null if not found\n */\n getBlockByPredicate(e) {\n for (const t of this.attachedBlocks)\n if (e(t))\n return t;\n return null;\n }\n /**\n * Gets the list of input blocks attached to this material\n * @returns an array of InputBlocks\n */\n getInputBlocks() {\n const e = [];\n for (const t of this.attachedBlocks)\n t.isInput && e.push(t);\n return e;\n }\n /**\n * Launch the node geometry editor\n * @param config Define the configuration of the editor\n * @returns a promise fulfilled when the node editor is visible\n */\n edit(e) {\n return new Promise((t) => {\n if (this.BJSNODEGEOMETRYEDITOR = this.BJSNODEGEOMETRYEDITOR || this._getGlobalNodeGeometryEditor(), typeof this.BJSNODEGEOMETRYEDITOR > \"u\") {\n const i = e && e.editorURL ? e.editorURL : sn.EditorURL;\n J.LoadBabylonScript(i, () => {\n this.BJSNODEGEOMETRYEDITOR = this.BJSNODEGEOMETRYEDITOR || this._getGlobalNodeGeometryEditor(), this._createNodeEditor(e == null ? void 0 : e.nodeGeometryEditorConfig), t();\n });\n } else\n this._createNodeEditor(e == null ? void 0 : e.nodeGeometryEditorConfig), t();\n });\n }\n /**\n * Creates the node editor window.\n * @param additionalConfig Additional configuration for the NGE\n */\n _createNodeEditor(e) {\n const t = {\n nodeGeometry: this,\n ...e\n };\n this.BJSNODEGEOMETRYEDITOR.NodeGeometryEditor.Show(t);\n }\n /**\n * Build the final geometry\n * @param verbose defines if the build should log activity\n * @param updateBuildId defines if the internal build Id should be updated (default is true)\n * @param autoConfigure defines if the autoConfigure method should be called when initializing blocks (default is false)\n */\n build(e = !1, t = !0, i = !1) {\n if (this._buildWasSuccessful = !1, !this.outputBlock)\n throw \"You must define the outputBlock property before building the geometry\";\n const s = Es.Now;\n this._initializeBlock(this.outputBlock, i);\n const r = new Ok();\n r.buildId = this._buildId, r.verbose = e, this.outputBlock.build(r), t && (this._buildId = sn._BuildIdGenerator++), this._buildExecutionTime = Es.Now - s, r.emitErrors(), this._buildWasSuccessful = !0, this._vertexData = r.vertexData, this.onBuildObservable.notifyObservers(this);\n }\n /**\n * Creates a mesh from the geometry blocks\n * @param name defines the name of the mesh\n * @param scene The scene the mesh is scoped to\n * @returns The new mesh\n */\n createMesh(e, t = null) {\n if (this._buildWasSuccessful || this.build(), !this._vertexData)\n return null;\n const i = new H(e, t);\n return this._vertexData.applyToMesh(i), i._internalMetadata = i._internalMetadata || {}, i._internalMetadata.nodeGeometry = this, i;\n }\n /**\n * Creates a mesh from the geometry blocks\n * @param mesh the mesh to update\n * @returns True if successfully updated\n */\n updateMesh(e) {\n return this._buildWasSuccessful || this.build(), this._vertexData ? (this._vertexData.applyToMesh(e), e._internalMetadata = e._internalMetadata || {}, e._internalMetadata.nodeGeometry = this, e) : !1;\n }\n _initializeBlock(e, t = !0) {\n e.initialize(), t && e.autoConfigure(), e._preparationId = this._buildId, this.attachedBlocks.indexOf(e) === -1 && this.attachedBlocks.push(e);\n for (const i of e.inputs) {\n const s = i.connectedPoint;\n if (s) {\n const r = s.ownerBlock;\n r !== e && this._initializeBlock(r, t);\n }\n }\n }\n /**\n * Clear the current geometry\n */\n clear() {\n this.outputBlock = null, this.attachedBlocks.length = 0;\n }\n /**\n * Remove a block from the current geometry\n * @param block defines the block to remove\n */\n removeBlock(e) {\n const t = this.attachedBlocks.indexOf(e);\n t > -1 && this.attachedBlocks.splice(t, 1), e === this.outputBlock && (this.outputBlock = null);\n }\n /**\n * Clear the current graph and load a new one from a serialization object\n * @param source defines the JSON representation of the geometry\n * @param merge defines whether or not the source must be merged or replace the current content\n */\n parseSerializedObject(e, t = !1) {\n t || this.clear();\n const i = {};\n for (const s of e.blocks) {\n const r = Oi(s.customType);\n if (r) {\n const n = new r();\n n._deserialize(s), i[s.id] = n, this.attachedBlocks.push(n);\n }\n }\n for (const s of this.attachedBlocks)\n if (s.isTeleportOut) {\n const r = s, n = r._tempEntryPointUniqueId;\n if (n) {\n const o = i[n];\n o && o.attachToEndpoint(r);\n }\n }\n for (let s = 0; s < e.blocks.length; s++) {\n const r = e.blocks[s], n = i[r.id];\n n && (n.inputs.length && r.inputs.some((o) => o.targetConnectionName) && !t || this._restoreConnections(n, e, i));\n }\n if (e.outputNodeId && (this.outputBlock = i[e.outputNodeId]), e.locations || e.editorData && e.editorData.locations) {\n const s = e.locations || e.editorData.locations;\n for (const n of s)\n i[n.blockId] && (n.blockId = i[n.blockId].uniqueId);\n t && this.editorData && this.editorData.locations && s.concat(this.editorData.locations), e.locations ? this.editorData = {\n locations: s\n } : (this.editorData = e.editorData, this.editorData.locations = s);\n const r = [];\n for (const n in i)\n r[n] = i[n].uniqueId;\n this.editorData.map = r;\n }\n this.comment = e.comment;\n }\n _restoreConnections(e, t, i) {\n for (const s of e.outputs)\n for (const r of t.blocks) {\n const n = i[r.id];\n if (n) {\n for (const o of r.inputs)\n if (i[o.targetBlockId] === e && o.targetConnectionName === s.name) {\n const l = n.getInputByName(o.inputName);\n if (!l || l.isConnected)\n continue;\n s.connectTo(l, !0), this._restoreConnections(n, t, i);\n continue;\n }\n }\n }\n }\n /**\n * Generate a string containing the code declaration required to create an equivalent of this geometry\n * @returns a string\n */\n generateCode() {\n let e = [];\n const t = [], i = [\"const\", \"var\", \"let\"];\n this.outputBlock && this._gatherBlocks(this.outputBlock, t);\n let s = `let nodeGeometry = new BABYLON.NodeGeometry(\"${this.name || \"node geometry\"}\");\n`;\n for (const r of t)\n r.isInput && e.indexOf(r) === -1 && (s += r._dumpCode(i, e));\n return this.outputBlock && (e = [], s += `// Connections\n`, s += this.outputBlock._dumpCodeForOutputConnections(e), s += `// Output nodes\n`, s += `nodeGeometry.outputBlock = ${this.outputBlock._codeVariableName};\n`, s += `nodeGeometry.build();\n`), s;\n }\n _gatherBlocks(e, t) {\n if (t.indexOf(e) === -1) {\n t.push(e);\n for (const i of e.inputs) {\n const s = i.connectedPoint;\n if (s) {\n const r = s.ownerBlock;\n r !== e && this._gatherBlocks(r, t);\n }\n }\n if (e.isTeleportOut) {\n const i = e;\n i.entryPoint && this._gatherBlocks(i.entryPoint, t);\n }\n }\n }\n /**\n * Clear the current geometry and set it to a default state\n */\n setToDefault() {\n this.clear(), this.editorData = null;\n const e = new kv(\"Box\");\n e.autoConfigure();\n const t = new mR(\"Geometry Output\");\n e.geometry.connectTo(t.geometry), this.outputBlock = t;\n }\n /**\n * Makes a duplicate of the current geometry.\n * @param name defines the name to use for the new geometry\n * @returns the new geometry\n */\n clone(e) {\n const t = this.serialize(), i = Ae.Clone(() => new sn(e), this);\n return i.name = e, i.parseSerializedObject(t), i._buildId = this._buildId, i.build(!1), i;\n }\n /**\n * Serializes this geometry in a JSON representation\n * @param selectedBlocks defines the list of blocks to save (if null the whole geometry will be saved)\n * @returns the serialized geometry object\n */\n serialize(e) {\n const t = e ? {} : Ae.Serialize(this);\n t.editorData = JSON.parse(JSON.stringify(this.editorData));\n let i = [];\n e ? i = e : (t.customType = \"BABYLON.NodeGeometry\", this.outputBlock && (t.outputNodeId = this.outputBlock.uniqueId)), t.blocks = [];\n for (const s of i)\n t.blocks.push(s.serialize());\n if (!e)\n for (const s of this.attachedBlocks)\n i.indexOf(s) === -1 && t.blocks.push(s.serialize());\n return t;\n }\n /**\n * Disposes the ressources\n */\n dispose() {\n for (const e of this.attachedBlocks)\n e.dispose();\n this.attachedBlocks.length = 0, this.onBuildObservable.clear();\n }\n /**\n * Creates a new node geometry set to default basic configuration\n * @param name defines the name of the geometry\n * @returns a new NodeGeometry\n */\n static CreateDefault(e) {\n const t = new sn(e);\n return t.setToDefault(), t.build(), t;\n }\n /**\n * Creates a node geometry from parsed geometry data\n * @param source defines the JSON representation of the geometry\n * @returns a new node geometry\n */\n static Parse(e) {\n const t = Ae.Parse(() => new sn(e.name), e, null);\n return t.parseSerializedObject(e), t.build(), t;\n }\n /**\n * Creates a node geometry from a snippet saved by the node geometry editor\n * @param snippetId defines the snippet to load\n * @param nodeGeometry defines a node geometry to update (instead of creating a new one)\n * @param skipBuild defines whether to build the node geometry\n * @returns a promise that will resolve to the new node geometry\n */\n static ParseFromSnippetAsync(e, t, i = !1) {\n return e === \"_BLANK\" ? Promise.resolve(sn.CreateDefault(\"blank\")) : new Promise((s, r) => {\n const n = new Di();\n n.addEventListener(\"readystatechange\", () => {\n if (n.readyState == 4)\n if (n.status == 200) {\n const o = JSON.parse(JSON.parse(n.responseText).jsonPayload), l = JSON.parse(o.nodeGeometry);\n t || (t = Ae.Parse(() => new sn(e), l, null)), t.parseSerializedObject(l), t.snippetId = e;\n try {\n i || t.build(), s(t);\n } catch (h) {\n r(h);\n }\n } else\n r(\"Unable to load the snippet \" + e);\n }), n.open(\"GET\", this.SnippetUrl + \"/\" + e.replace(/#/g, \"/\")), n.send();\n });\n }\n}\nsn._BuildIdGenerator = 0;\nsn.EditorURL = `${J._DefaultCdnUrl}/v${ee.Version}/nodeGeometryEditor/babylon.nodeGeometryEditor.js`;\nsn.SnippetUrl = \"https://snippet.babylonjs.com\";\ny([\n I()\n], sn.prototype, \"name\", void 0);\ny([\n I(\"comment\")\n], sn.prototype, \"comment\", void 0);\nclass Gv extends Ze {\n /**\n * Creates a new GeometryOptimizeBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !0, this.epsilon = tt, this.registerInput(\"geometry\", D.Geometry), this.registerOutput(\"output\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryOptimizeBlock\";\n }\n /**\n * Gets the geometry component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n const t = (i) => {\n if (!this.geometry.isConnected)\n return null;\n const s = this.geometry.getConnectedValue(i), r = [], n = {};\n for (let l = 0; l < s.positions.length; l += 3) {\n const h = s.positions[l], c = s.positions[l + 1], u = s.positions[l + 2];\n let d = !1;\n for (let f = 0; f < r.length; f += 3)\n if (Re.WithinEpsilon(h, r[f], this.epsilon) && Re.WithinEpsilon(c, r[f + 1], this.epsilon) && Re.WithinEpsilon(u, r[f + 2], this.epsilon)) {\n n[l / 3] = f / 3, d = !0;\n continue;\n }\n d || (n[l / 3] = r.length / 3, r.push(h, c, u));\n }\n const o = new ge();\n return o.positions = r, o.indices = s.indices.map((l) => n[l]), o;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n return e += `${this._codeVariableName}.epsilon = ${this.epsilon};\n`, e;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e.epsilon = this.epsilon, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.evaluateContext = e.evaluateContext, this.epsilon = e.epsilon;\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], Gv.prototype, \"evaluateContext\", void 0);\ny([\n ze(\"Epsilon\", 1, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], Gv.prototype, \"epsilon\", void 0);\nU(\"BABYLON.GeometryOptimizeBlock\", Gv);\nclass gR extends Ze {\n /**\n * Create a new PlaneBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !1, this.registerInput(\"size\", D.Float, !0, 1), this.registerInput(\"width\", D.Float, !0, 0), this.registerInput(\"height\", D.Float, !0, 0), this.registerOutput(\"geometry\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"PlaneBlock\";\n }\n /**\n * Gets the size input component\n */\n get size() {\n return this._inputs[0];\n }\n /**\n * Gets the width input component\n */\n get width() {\n return this._inputs[1];\n }\n /**\n * Gets the height input component\n */\n get height() {\n return this._inputs[2];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.size.isConnected) {\n if (!this.width.isConnected && !this.height.isConnected) {\n const e = new as(\"Size\");\n e.value = 1, e.output.connectTo(this.size);\n return;\n }\n if (!this.width.isConnected) {\n const e = new as(\"Width\");\n e.value = 1, e.output.connectTo(this.width);\n }\n if (!this.height.isConnected) {\n const e = new as(\"Height\");\n e.value = 1, e.output.connectTo(this.height);\n }\n }\n }\n _buildBlock(e) {\n const t = {}, i = (s) => (t.size = this.size.getConnectedValue(s), t.width = this.width.getConnectedValue(s), t.height = this.height.getConnectedValue(s), rv(t));\n if (this.evaluateContext)\n this.geometry._storedFunction = i;\n else {\n const s = i(e);\n this.geometry._storedFunction = () => (this.geometry._executionCount = 1, s.clone());\n }\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.evaluateContext = e.evaluateContext;\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], gR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.PlaneBlock\", gR);\nclass xR extends Ze {\n /**\n * Gets or sets the mesh to use to get vertex data\n */\n get mesh() {\n return this._mesh;\n }\n set mesh(e) {\n this._mesh = e;\n }\n /**\n * Create a new MeshBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this._cachedVertexData = null, this.reverseWindingOrder = !1, this.serializedCachedData = !1, this.registerOutput(\"geometry\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MeshBlock\";\n }\n /**\n * Gets a boolean indicating if the block is using cached data\n */\n get isUsingCachedData() {\n return !this.mesh && !!this._cachedVertexData;\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n /**\n * Remove stored data\n */\n cleanData() {\n this._mesh = null, this._cachedVertexData = null;\n }\n _buildBlock() {\n if (!this._mesh) {\n this._cachedVertexData ? this.geometry._storedValue = this._cachedVertexData.clone() : this.geometry._storedValue = null;\n return;\n }\n const e = ge.ExtractFromMesh(this._mesh, !1, !0);\n if (this._cachedVertexData = null, this.reverseWindingOrder && e.indices)\n for (let t = 0; t < e.indices.length; t += 3) {\n const i = e.indices[t];\n e.indices[t] = e.indices[t + 2], e.indices[t + 2] = i;\n }\n this.geometry._storedFunction = () => e.clone();\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.serializedCachedData = this.serializedCachedData, this.serializedCachedData && (this._mesh ? e.cachedVertexData = ge.ExtractFromMesh(this._mesh, !1, !0).serialize() : this._cachedVertexData && (e.cachedVertexData = this._cachedVertexData.serialize())), e.reverseWindingOrder = this.reverseWindingOrder, e;\n }\n _deserialize(e) {\n super._deserialize(e), e.cachedVertexData && (this._cachedVertexData = ge.Parse(e.cachedVertexData)), this.serializedCachedData = !!e.serializedCachedData, this.reverseWindingOrder = e.reverseWindingOrder;\n }\n}\ny([\n ze(\"Serialize cached data\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], xR.prototype, \"serializedCachedData\", void 0);\nU(\"BABYLON.MeshBlock\", xR);\nclass vR extends Ze {\n /**\n * Create a new IcoSphereBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !1, this.registerInput(\"radius\", D.Float, !0, 1), this.registerInput(\"radiusX\", D.Float, !0, 0), this.registerInput(\"radiusY\", D.Float, !0, 0), this.registerInput(\"radiusZ\", D.Float, !0, 0), this.registerInput(\"subdivisions\", D.Int, !0, 4), this.registerOutput(\"geometry\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"IcoSphereBlock\";\n }\n /**\n * Gets the radius input component\n */\n get radius() {\n return this._inputs[0];\n }\n /**\n * Gets the radiusX input component\n */\n get radiusX() {\n return this._inputs[1];\n }\n /**\n * Gets the radiusY input component\n */\n get radiusY() {\n return this._inputs[2];\n }\n /**\n * Gets the radiusZ input component\n */\n get radiusZ() {\n return this._inputs[3];\n }\n /**\n * Gets the subdivisions input component\n */\n get subdivisions() {\n return this._inputs[4];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.radius.isConnected) {\n const e = new as(\"Radius\");\n e.value = 0.2, e.output.connectTo(this.radius);\n }\n }\n _buildBlock(e) {\n const t = {}, i = (s) => (t.radius = this.radius.getConnectedValue(s), t.subdivisions = this.subdivisions.getConnectedValue(s), t.radiusX = this.radiusX.getConnectedValue(s), t.radiusY = this.radiusY.getConnectedValue(s), t.radiusZ = this.radiusZ.getConnectedValue(s), av(t));\n if (this.evaluateContext)\n this.geometry._storedFunction = i;\n else {\n const s = i(e);\n this.geometry._storedFunction = () => (this.geometry._executionCount = 1, s.clone());\n }\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.evaluateContext = e.evaluateContext;\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], vR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.IcoSphereBlock\", vR);\nclass TR extends Ze {\n /**\n * Create a new SphereBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !1, this.registerInput(\"segments\", D.Int, !0, 32), this.registerInput(\"diameter\", D.Float, !0, 1), this.registerInput(\"diameterX\", D.Float, !0, 0), this.registerInput(\"diameterY\", D.Float, !0, 0), this.registerInput(\"diameterZ\", D.Float, !0, 0), this.registerInput(\"arc\", D.Float, !0, 1), this.registerInput(\"slice\", D.Float, !0, 1), this.registerOutput(\"geometry\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SphereBlock\";\n }\n /**\n * Gets the segments input component\n */\n get segments() {\n return this._inputs[0];\n }\n /**\n * Gets the diameter input component\n */\n get diameter() {\n return this._inputs[1];\n }\n /**\n * Gets the diameterX input component\n */\n get diameterX() {\n return this._inputs[2];\n }\n /**\n * Gets the diameterY input component\n */\n get diameterY() {\n return this._inputs[3];\n }\n /**\n * Gets the diameterZ input component\n */\n get diameterZ() {\n return this._inputs[4];\n }\n /**\n * Gets the arc input component\n */\n get arc() {\n return this._inputs[5];\n }\n /**\n * Gets the slice input component\n */\n get slice() {\n return this._inputs[6];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.diameter.isConnected) {\n const e = new as(\"Diameter\");\n e.value = 1, e.output.connectTo(this.diameter);\n }\n }\n _buildBlock(e) {\n const t = {}, i = (s) => (t.segments = this.segments.getConnectedValue(s), t.diameter = this.diameter.getConnectedValue(s), t.diameterX = this.diameterX.getConnectedValue(s), t.diameterY = this.diameterY.getConnectedValue(s), t.diameterZ = this.diameterZ.getConnectedValue(s), t.arc = this.arc.getConnectedValue(s), t.slice = this.slice.getConnectedValue(s), Zx(t));\n if (this.evaluateContext)\n this.geometry._storedFunction = i;\n else {\n const s = i(e);\n this.geometry._storedFunction = () => (this.geometry._executionCount = 1, s.clone());\n }\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.evaluateContext = e.evaluateContext;\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], TR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.SphereBlock\", TR);\nclass SR extends Ze {\n /**\n * Create a new GridBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !1, this.registerInput(\"width\", D.Float, !0, 1), this.registerInput(\"height\", D.Float, !0, 1), this.registerInput(\"subdivisions\", D.Int, !0, 1), this.registerInput(\"subdivisionsX\", D.Int, !0, 0), this.registerInput(\"subdivisionsY\", D.Int, !0, 0), this.registerOutput(\"geometry\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GridBlock\";\n }\n /**\n * Gets the width input component\n */\n get width() {\n return this._inputs[0];\n }\n /**\n * Gets the height input component\n */\n get height() {\n return this._inputs[1];\n }\n /**\n * Gets the subdivisions input component\n */\n get subdivisions() {\n return this._inputs[2];\n }\n /**\n * Gets the subdivisionsX input component\n */\n get subdivisionsX() {\n return this._inputs[3];\n }\n /**\n * Gets the subdivisionsY input component\n */\n get subdivisionsY() {\n return this._inputs[4];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.width.isConnected) {\n const e = new as(\"Width\");\n e.value = 1, e.output.connectTo(this.width);\n }\n if (!this.height.isConnected) {\n const e = new as(\"Height\");\n e.value = 1, e.output.connectTo(this.height);\n }\n }\n _buildBlock(e) {\n const t = {}, i = (s) => (t.width = this.width.getConnectedValue(s), t.height = this.height.getConnectedValue(s), t.subdivisions = this.subdivisions.getConnectedValue(s), t.subdivisionsX = this.subdivisionsX.getConnectedValue(s), t.subdivisionsY = this.subdivisionsY.getConnectedValue(s), Ya(t));\n if (this.evaluateContext)\n this.geometry._storedFunction = i;\n else {\n const s = i(e);\n this.geometry._storedFunction = () => (this.geometry._executionCount = 1, s.clone());\n }\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.evaluateContext = e.evaluateContext;\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], SR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.GridBlock\", SR);\nclass bR extends Ze {\n /**\n * Create a new TorusBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !1, this.registerInput(\"diameter\", D.Float, !0, 1), this.registerInput(\"thickness\", D.Float, !0, 0.5), this.registerInput(\"tessellation\", D.Int, !0, 16), this.registerOutput(\"geometry\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TorusBlock\";\n }\n /**\n * Gets the diameter input component\n */\n get diameter() {\n return this._inputs[0];\n }\n /**\n * Gets the thickness input component\n */\n get thickness() {\n return this._inputs[1];\n }\n /**\n * Gets the tessellation input component\n */\n get tessellation() {\n return this._inputs[2];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.diameter.isConnected) {\n const e = new as(\"Diameter\");\n e.value = 1, e.output.connectTo(this.diameter);\n }\n }\n _buildBlock(e) {\n const t = {}, i = (s) => (t.thickness = this.thickness.getConnectedValue(s), t.diameter = this.diameter.getConnectedValue(s), t.tessellation = this.tessellation.getConnectedValue(s), ev(t));\n if (this.evaluateContext)\n this.geometry._storedFunction = i;\n else {\n const s = i(e);\n this.geometry._storedFunction = () => (this.geometry._executionCount = 1, s.clone());\n }\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.evaluateContext = e.evaluateContext;\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], bR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.TorusBlock\", bR);\nclass ER extends Ze {\n /**\n * Create a new SphereBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !1, this.registerInput(\"height\", D.Float, !0, 25), this.registerInput(\"diameter\", D.Float, !0, 1), this.registerInput(\"diameterTop\", D.Float, !0, -1), this.registerInput(\"diameterBottom\", D.Float, !0, -1), this.registerInput(\"subdivisions\", D.Int, !0, 1), this.registerInput(\"tessellation\", D.Int, !0, 24), this.registerInput(\"arc\", D.Float, !0, 1), this.registerOutput(\"geometry\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CylinderBlock\";\n }\n /**\n * Gets the height input component\n */\n get height() {\n return this._inputs[0];\n }\n /**\n * Gets the diameter input component\n */\n get diameter() {\n return this._inputs[1];\n }\n /**\n * Gets the diameterTop input component\n */\n get diameterTop() {\n return this._inputs[2];\n }\n /**\n * Gets the diameterBottom input component\n */\n get diameterBottom() {\n return this._inputs[3];\n }\n /**\n * Gets the subdivisions input component\n */\n get subdivisions() {\n return this._inputs[4];\n }\n /**\n * Gets the tessellation input component\n */\n get tessellation() {\n return this._inputs[5];\n }\n /**\n * Gets the arc input component\n */\n get arc() {\n return this._inputs[6];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.diameter.isConnected) {\n const e = new as(\"Diameter\");\n e.value = 1, e.output.connectTo(this.diameter);\n }\n if (!this.height.isConnected) {\n const e = new as(\"Height\");\n e.value = 1, e.output.connectTo(this.height);\n }\n }\n _buildBlock(e) {\n const t = {}, i = (s) => (t.height = this.height.getConnectedValue(s), t.diameter = this.diameter.getConnectedValue(s), t.diameterTop = this.diameterTop.getConnectedValue(s), t.diameterBottom = this.diameterBottom.getConnectedValue(s), t.diameterTop === -1 && (t.diameterTop = t.diameter), t.diameterBottom === -1 && (t.diameterBottom = t.diameter), t.tessellation = this.tessellation.getConnectedValue(s), t.subdivisions = this.subdivisions.getConnectedValue(s), t.arc = this.arc.getConnectedValue(s), Jx(t));\n if (this.evaluateContext)\n this.geometry._storedFunction = i;\n else {\n const s = i(e);\n this.geometry._storedFunction = () => (this.geometry._executionCount = 1, s.clone());\n }\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.evaluateContext = e.evaluateContext;\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], ER.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.CylinderBlock\", ER);\nclass yR extends Ze {\n /**\n * Create a new CapsuleBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !1, this.registerInput(\"height\", D.Float, !0, 1), this.registerInput(\"radius\", D.Float, !0, 0.25), this.registerInput(\"tessellation\", D.Int, !0, 16), this.registerInput(\"subdivisions\", D.Int, !0, 2), this.registerOutput(\"geometry\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CapsuleBlock\";\n }\n /**\n * Gets the height input component\n */\n get height() {\n return this._inputs[0];\n }\n /**\n * Gets the radius input component\n */\n get radius() {\n return this._inputs[1];\n }\n /**\n * Gets the tessellation input component\n */\n get tessellation() {\n return this._inputs[2];\n }\n /**\n * Gets the subdivisions input component\n */\n get subdivisions() {\n return this._inputs[3];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.height.isConnected) {\n const e = new as(\"Height\");\n e.value = 1, e.output.connectTo(this.height);\n }\n if (!this.radius.isConnected) {\n const e = new as(\"Radius\");\n e.value = 0.2, e.output.connectTo(this.radius);\n }\n }\n _buildBlock(e) {\n const t = {}, i = (s) => (t.height = this.height.getConnectedValue(s), t.radius = this.radius.getConnectedValue(s), t.tessellation = this.tessellation.getConnectedValue(s), t.subdivisions = this.subdivisions.getConnectedValue(s), lv(t));\n if (this.evaluateContext)\n this.geometry._storedFunction = i;\n else {\n const s = i(e);\n this.geometry._storedFunction = () => (this.geometry._executionCount = 1, s.clone());\n }\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.evaluateContext = e.evaluateContext;\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], yR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.CapsuleBlock\", yR);\nclass CR extends Ze {\n /**\n * Create a new DiscBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !1, this.registerInput(\"radius\", D.Float, !0, 0.5), this.registerInput(\"tessellation\", D.Int, !0, 64), this.registerInput(\"arc\", D.Float, !0, 1), this.registerOutput(\"geometry\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DiscBlock\";\n }\n /**\n * Gets the radius input component\n */\n get radius() {\n return this._inputs[0];\n }\n /**\n * Gets the tessellation input component\n */\n get tessellation() {\n return this._inputs[1];\n }\n /**\n * Gets the arc input component\n */\n get arc() {\n return this._inputs[2];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.radius.isConnected) {\n const e = new as(\"Radius\");\n e.value = 0.2, e.output.connectTo(this.radius);\n }\n }\n _buildBlock(e) {\n const t = {}, i = (s) => (t.radius = this.radius.getConnectedValue(s), t.tessellation = this.tessellation.getConnectedValue(s), t.arc = this.arc.getConnectedValue(s), jx(t));\n if (this.evaluateContext)\n this.geometry._storedFunction = i;\n else {\n const s = i(e);\n this.geometry._storedFunction = () => (this.geometry._executionCount = 1, s.clone());\n }\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.evaluateContext = e.evaluateContext;\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], CR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.DiscBlock\", CR);\nclass wk extends Ze {\n /**\n * Create a new NullBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerOutput(\"geometry\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NullBlock\";\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n _buildBlock() {\n this.geometry._storedValue = null;\n }\n}\nU(\"BABYLON.NullBlock\", wk);\nclass AR extends Ze {\n /**\n * Create a new SetPositionsBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !0, this.registerInput(\"geometry\", D.Geometry), this.registerInput(\"positions\", D.Vector3), this.registerOutput(\"output\", D.Geometry);\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SetPositionsBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the positions input component\n */\n get positions() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n const t = (i) => {\n if (i.pushExecutionContext(this), this._vertexData = this.geometry.getConnectedValue(i), this._vertexData && (this._vertexData = this._vertexData.clone()), i.pushGeometryContext(this._vertexData), !this._vertexData || !this._vertexData.positions || !this.positions.isConnected) {\n i.restoreGeometryContext(), i.restoreExecutionContext(), this.output._storedValue = null;\n return;\n }\n const s = this._vertexData.positions.length / 3;\n for (this._currentIndex = 0; this._currentIndex < s; this._currentIndex++) {\n const r = this.positions.getConnectedValue(i);\n r && r.toArray(this._vertexData.positions, this._currentIndex * 3);\n }\n return i.restoreGeometryContext(), i.restoreExecutionContext(), this._vertexData;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), e.evaluateContext !== void 0 && (this.evaluateContext = e.evaluateContext);\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], AR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.SetPositionsBlock\", AR);\nclass RR extends Ze {\n /**\n * Create a new SetNormalsBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !0, this.registerInput(\"geometry\", D.Geometry), this.registerInput(\"normals\", D.Vector3), this.registerOutput(\"output\", D.Geometry);\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SetNormalsBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the normals input component\n */\n get normals() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n const t = (i) => {\n if (i.pushExecutionContext(this), this._vertexData = this.geometry.getConnectedValue(i), this._vertexData && (this._vertexData = this._vertexData.clone()), i.pushGeometryContext(this._vertexData), !this._vertexData || !this._vertexData.positions) {\n i.restoreGeometryContext(), i.restoreExecutionContext(), this.output._storedValue = null;\n return;\n }\n if (!this.normals.isConnected) {\n i.restoreGeometryContext(), i.restoreExecutionContext(), this.output._storedValue = this._vertexData;\n return;\n }\n this._vertexData.normals || (this._vertexData.normals = []);\n const s = this._vertexData.positions.length / 3;\n for (this._currentIndex = 0; this._currentIndex < s; this._currentIndex++) {\n const r = this.normals.getConnectedValue(i);\n r && r.toArray(this._vertexData.normals, this._currentIndex * 3);\n }\n return i.restoreGeometryContext(), i.restoreExecutionContext(), this._vertexData;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), e.evaluateContext !== void 0 && (this.evaluateContext = e.evaluateContext);\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], RR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.SetNormalsBlock\", RR);\nclass zv extends Ze {\n /**\n * Create a new SetUVsBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !0, this.textureCoordinateIndex = 0, this.registerInput(\"geometry\", D.Geometry), this.registerInput(\"uvs\", D.Vector2), this.registerOutput(\"output\", D.Geometry);\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SetUVsBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the uvs input component\n */\n get uvs() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n const t = (i) => {\n if (i.pushExecutionContext(this), this._vertexData = this.geometry.getConnectedValue(i), this._vertexData && (this._vertexData = this._vertexData.clone()), i.pushGeometryContext(this._vertexData), !this._vertexData || !this._vertexData.positions) {\n i.restoreGeometryContext(), i.restoreExecutionContext(), this.output._storedValue = null;\n return;\n }\n if (!this.uvs.isConnected) {\n i.restoreGeometryContext(), i.restoreExecutionContext(), this.output._storedValue = this._vertexData;\n return;\n }\n const s = [], r = this._vertexData.positions.length / 3;\n for (this._currentIndex = 0; this._currentIndex < r; this._currentIndex++) {\n const n = this.uvs.getConnectedValue(i);\n n && n.toArray(s, this._currentIndex * 2);\n }\n switch (this.textureCoordinateIndex) {\n case 0:\n this._vertexData.uvs = s;\n break;\n case 1:\n this._vertexData.uvs2 = s;\n break;\n case 2:\n this._vertexData.uvs3 = s;\n break;\n case 3:\n this._vertexData.uvs4 = s;\n break;\n case 4:\n this._vertexData.uvs5 = s;\n break;\n case 5:\n this._vertexData.uvs6 = s;\n break;\n }\n return i.restoreGeometryContext(), i.restoreExecutionContext(), this._vertexData;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode() + `${this._codeVariableName}.textureCoordinateIndex};\n`;\n return e += `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`, e;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e.textureCoordinateIndex = this.textureCoordinateIndex, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.textureCoordinateIndex = e.textureCoordinateIndex, e.evaluateContext !== void 0 && (this.evaluateContext = e.evaluateContext);\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], zv.prototype, \"evaluateContext\", void 0);\ny([\n ze(\"Texture coordinates index\", 4, \"ADVANCED\", {\n notifiers: { update: !0 },\n options: [\n { label: \"UV1\", value: 0 },\n { label: \"UV2\", value: 1 },\n { label: \"UV3\", value: 2 },\n { label: \"UV4\", value: 3 },\n { label: \"UV5\", value: 4 },\n { label: \"UV6\", value: 5 }\n ]\n })\n], zv.prototype, \"textureCoordinateIndex\", void 0);\nU(\"BABYLON.SetUVsBlock\", zv);\nclass IR extends Ze {\n /**\n * Create a new SetColorsBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !0, this.registerInput(\"geometry\", D.Geometry), this.registerInput(\"colors\", D.AutoDetect), this.registerOutput(\"output\", D.Geometry), this._inputs[1].excludedConnectionPointTypes.push(D.Int), this._inputs[1].excludedConnectionPointTypes.push(D.Float), this._inputs[1].excludedConnectionPointTypes.push(D.Vector2), this._inputs[1].excludedConnectionPointTypes.push(D.Texture), this._inputs[1].excludedConnectionPointTypes.push(D.Texture);\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SetColorsBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the colors input component\n */\n get colors() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n const t = (i) => {\n var r;\n if (i.pushExecutionContext(this), this._vertexData = this.geometry.getConnectedValue(i), this._vertexData && (this._vertexData = this._vertexData.clone()), i.pushGeometryContext(this._vertexData), !this._vertexData || !this._vertexData.positions) {\n i.restoreGeometryContext(), i.restoreExecutionContext(), this.output._storedValue = null;\n return;\n }\n if (!this.colors.isConnected) {\n i.restoreGeometryContext(), i.restoreExecutionContext(), this.output._storedValue = this._vertexData;\n return;\n }\n this._vertexData.colors || (this._vertexData.colors = []);\n const s = this._vertexData.positions.length / 3;\n for (this._currentIndex = 0; this._currentIndex < s; this._currentIndex++)\n if (((r = this.colors.connectedPoint) == null ? void 0 : r.type) === D.Vector3) {\n const n = this.colors.getConnectedValue(i);\n n && (n.toArray(this._vertexData.colors, this._currentIndex * 4), this._vertexData.colors[this._currentIndex * 4 + 3] = 1, this._vertexData.hasVertexAlpha = !1);\n } else {\n const n = this.colors.getConnectedValue(i);\n n && (n.toArray(this._vertexData.colors, this._currentIndex * 4), this._vertexData.hasVertexAlpha = !0);\n }\n return i.restoreGeometryContext(), i.restoreExecutionContext(), this._vertexData;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), e.evaluateContext !== void 0 && (this.evaluateContext = e.evaluateContext);\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], IR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.SetColorsBlock\", IR);\nclass PR extends Ze {\n /**\n * Create a new SetTangentsBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !0, this.registerInput(\"geometry\", D.Geometry), this.registerInput(\"tangents\", D.Vector4), this.registerOutput(\"output\", D.Geometry);\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SetTangentsBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the tangents input component\n */\n get tangents() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n const t = (i) => {\n if (i.pushExecutionContext(this), this._vertexData = this.geometry.getConnectedValue(i), this._vertexData && (this._vertexData = this._vertexData.clone()), i.pushGeometryContext(this._vertexData), !this._vertexData || !this._vertexData.positions) {\n i.restoreGeometryContext(), i.restoreExecutionContext(), this.output._storedValue = null;\n return;\n }\n if (!this.tangents.isConnected) {\n i.restoreGeometryContext(), i.restoreExecutionContext(), this.output._storedValue = this._vertexData;\n return;\n }\n this._vertexData.tangents || (this._vertexData.tangents = []);\n const s = this._vertexData.positions.length / 3;\n for (this._currentIndex = 0; this._currentIndex < s; this._currentIndex++) {\n const r = this.tangents.getConnectedValue(i);\n r && r.toArray(this._vertexData.tangents, this._currentIndex * 4);\n }\n return i.restoreGeometryContext(), i.restoreExecutionContext(), this._vertexData;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), e.evaluateContext !== void 0 && (this.evaluateContext = e.evaluateContext);\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], PR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.SetTangentsBlock\", PR);\nvar Rr;\n(function(a) {\n a[a.Add = 0] = \"Add\", a[a.Subtract = 1] = \"Subtract\", a[a.Multiply = 2] = \"Multiply\", a[a.Divide = 3] = \"Divide\", a[a.Max = 4] = \"Max\", a[a.Min = 5] = \"Min\";\n})(Rr || (Rr = {}));\nclass MR extends Ze {\n /**\n * Create a new MathBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.operation = Rr.Add, this.registerInput(\"left\", D.AutoDetect), this.registerInput(\"right\", D.AutoDetect), this.registerOutput(\"output\", D.BasedOnInput), this.output._typeConnectionSource = this.left;\n const t = [\n D.Matrix,\n D.Geometry,\n D.Texture\n ];\n this.left.excludedConnectionPointTypes.push(...t), this.right.excludedConnectionPointTypes.push(...t), this._linkConnectionTypes(0, 1), this._connectionObservers = [\n this.left.onConnectionObservable.add(() => this._updateInputOutputTypes()),\n this.left.onDisconnectionObservable.add(() => this._updateInputOutputTypes()),\n this.right.onConnectionObservable.add(() => this._updateInputOutputTypes()),\n this.right.onDisconnectionObservable.add(() => this._updateInputOutputTypes())\n ];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MathBlock\";\n }\n /**\n * Gets the left input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n let e;\n const t = this.left, i = this.right;\n if (!t.isConnected || !i.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n const s = t.type === D.Float || t.type === D.Int, r = i.type === D.Float || i.type === D.Int, n = s && r;\n switch (this.operation) {\n case Rr.Add: {\n n ? e = (o) => t.getConnectedValue(o) + i.getConnectedValue(o) : s ? e = (o) => o.adapt(t, i.type).add(i.getConnectedValue(o)) : e = (o) => t.getConnectedValue(o).add(o.adapt(i, t.type));\n break;\n }\n case Rr.Subtract: {\n n ? e = (o) => t.getConnectedValue(o) - i.getConnectedValue(o) : s ? e = (o) => o.adapt(t, i.type).subtract(i.getConnectedValue(o)) : e = (o) => t.getConnectedValue(o).subtract(o.adapt(i, t.type));\n break;\n }\n case Rr.Multiply: {\n n ? e = (o) => t.getConnectedValue(o) * i.getConnectedValue(o) : s ? e = (o) => o.adapt(t, i.type).multiply(i.getConnectedValue(o)) : e = (o) => t.getConnectedValue(o).multiply(o.adapt(i, t.type));\n break;\n }\n case Rr.Divide: {\n n ? e = (o) => t.getConnectedValue(o) / i.getConnectedValue(o) : s ? e = (o) => o.adapt(t, i.type).divide(i.getConnectedValue(o)) : e = (o) => t.getConnectedValue(o).divide(o.adapt(i, t.type));\n break;\n }\n case Rr.Min: {\n if (n)\n e = (o) => Math.min(t.getConnectedValue(o), i.getConnectedValue(o));\n else {\n const [o, l] = s ? [i, t] : [t, i];\n switch (o.type) {\n case D.Vector2: {\n e = (h) => Q.Minimize(o.getConnectedValue(h), h.adapt(l, o.type));\n break;\n }\n case D.Vector3: {\n e = (h) => g.Minimize(o.getConnectedValue(h), h.adapt(l, o.type));\n break;\n }\n case D.Vector4: {\n e = (h) => Ne.Minimize(o.getConnectedValue(h), h.adapt(l, o.type));\n break;\n }\n }\n }\n break;\n }\n case Rr.Max:\n if (n)\n e = (o) => Math.max(t.getConnectedValue(o), i.getConnectedValue(o));\n else {\n const [o, l] = s ? [i, t] : [t, i];\n switch (o.type) {\n case D.Vector2: {\n e = (h) => Q.Maximize(o.getConnectedValue(h), h.adapt(l, o.type));\n break;\n }\n case D.Vector3: {\n e = (h) => g.Maximize(o.getConnectedValue(h), h.adapt(l, o.type));\n break;\n }\n case D.Vector4: {\n e = (h) => Ne.Maximize(o.getConnectedValue(h), h.adapt(l, o.type));\n break;\n }\n }\n break;\n }\n }\n this.output._storedFunction = (o) => t.type === D.Int ? e(o) | 0 : e(o);\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.operation = BABYLON.MathBlockOperations.${Rr[this.operation]};\n`;\n }\n _updateInputOutputTypes() {\n if (this.output._typeConnectionSource = this.left, this.left.isConnected && this.right.isConnected ? (this.left.type === D.Int || this.left.type === D.Float && this.right.type !== D.Int) && (this.output._typeConnectionSource = this.right) : this.left.isConnected !== this.right.isConnected && (this.output._typeConnectionSource = this.left.isConnected ? this.left : this.right), this.left.isConnected || this.right.isConnected)\n for (const [e, t] of [\n [this.left, this.right],\n [this.right, this.left]\n ])\n e.acceptedConnectionPointTypes = [D.Int, D.Float], t.isConnected && (e.acceptedConnectionPointTypes.push(t.type), (t.type === D.Int || t.type === D.Float) && e.acceptedConnectionPointTypes.push(D.Vector2, D.Vector3, D.Vector4));\n }\n /**\n * Release resources\n */\n dispose() {\n super.dispose(), this._connectionObservers.forEach((e) => e.remove()), this._connectionObservers.length = 0;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.operation = this.operation, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.operation = e.operation;\n }\n}\ny([\n ze(\"Operation\", 4, \"ADVANCED\", {\n notifiers: { rebuild: !0 },\n options: [\n { label: \"Add\", value: Rr.Add },\n { label: \"Subtract\", value: Rr.Subtract },\n { label: \"Multiply\", value: Rr.Multiply },\n { label: \"Divide\", value: Rr.Divide },\n { label: \"Max\", value: Rr.Max },\n { label: \"Min\", value: Rr.Min }\n ]\n })\n], MR.prototype, \"operation\", void 0);\nU(\"BABYLON.MathBlock\", MR);\nclass Nk extends Ze {\n /**\n * Create a new MapRangeBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"value\", D.AutoDetect), this.registerInput(\"fromMin\", D.Float, !0, 0), this.registerInput(\"fromMax\", D.Float, !0, 1), this.registerInput(\"toMin\", D.Float, !0, 0), this.registerInput(\"toMax\", D.Float, !0, 1), this.registerOutput(\"output\", D.BasedOnInput), this._inputs[0].excludedConnectionPointTypes.push(D.Vector2), this._inputs[0].excludedConnectionPointTypes.push(D.Vector3), this._inputs[0].excludedConnectionPointTypes.push(D.Vector4), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Geometry), this._inputs[0].excludedConnectionPointTypes.push(D.Texture), this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MapRangeBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the fromMin input component\n */\n get fromMin() {\n return this._inputs[1];\n }\n /**\n * Gets the fromMax input component\n */\n get fromMax() {\n return this._inputs[2];\n }\n /**\n * Gets the toMin input component\n */\n get toMin() {\n return this._inputs[3];\n }\n /**\n * Gets the toMax input component\n */\n get toMax() {\n return this._inputs[4];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n this.output._storedFunction = (e) => {\n const t = this.value.getConnectedValue(e), i = this.fromMin.getConnectedValue(e), s = this.fromMax.getConnectedValue(e), r = this.toMin.getConnectedValue(e), n = this.toMax.getConnectedValue(e), o = (t - i) / (s - i) * (n - r) + r;\n return this.output.type === D.Int ? Math.floor(o) : o;\n };\n }\n}\nU(\"BABYLON.MapRangeBlock\", Nk);\nvar Ms;\n(function(a) {\n a[a.Equal = 0] = \"Equal\", a[a.NotEqual = 1] = \"NotEqual\", a[a.LessThan = 2] = \"LessThan\", a[a.GreaterThan = 3] = \"GreaterThan\", a[a.LessOrEqual = 4] = \"LessOrEqual\", a[a.GreaterOrEqual = 5] = \"GreaterOrEqual\", a[a.Xor = 6] = \"Xor\", a[a.Or = 7] = \"Or\", a[a.And = 8] = \"And\";\n})(Ms || (Ms = {}));\nclass DR extends Ze {\n /**\n * Create a new ConditionBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.test = Ms.Equal, this.registerInput(\"left\", D.Float), this.registerInput(\"right\", D.Float, !0, 0), this.registerInput(\"ifTrue\", D.AutoDetect, !0, 1), this.registerInput(\"ifFalse\", D.AutoDetect, !0, 0), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[2], this._outputs[0]._defaultConnectionPointType = D.Float, this._inputs[0].acceptedConnectionPointTypes.push(D.Int), this._inputs[1].acceptedConnectionPointTypes.push(D.Int), this._linkConnectionTypes(2, 3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ConditionBlock\";\n }\n /**\n * Gets the left input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the ifTrue input component\n */\n get ifTrue() {\n return this._inputs[2];\n }\n /**\n * Gets the ifFalse input component\n */\n get ifFalse() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.left.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n const e = (t) => {\n const i = this.left.getConnectedValue(t), s = this.right.getConnectedValue(t);\n let r = !1;\n switch (this.test) {\n case Ms.Equal:\n r = Re.WithinEpsilon(i, s, tt);\n break;\n case Ms.NotEqual:\n r = i !== s;\n break;\n case Ms.LessThan:\n r = i < s;\n break;\n case Ms.GreaterThan:\n r = i > s;\n break;\n case Ms.LessOrEqual:\n r = i <= s;\n break;\n case Ms.GreaterOrEqual:\n r = i >= s;\n break;\n case Ms.Xor:\n r = !!i && !s || !i && !!s;\n break;\n case Ms.Or:\n r = !!i || !!s;\n break;\n case Ms.And:\n r = !!i && !!s;\n break;\n }\n return r;\n };\n this.output._storedFunction = (t) => e(t) ? this.ifTrue.getConnectedValue(t) : this.ifFalse.getConnectedValue(t);\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.test = BABYLON.ConditionBlockTests.${Ms[this.test]};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.test = this.test, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.test = e.test;\n }\n}\ny([\n ze(\"Test\", 4, \"ADVANCED\", {\n notifiers: { rebuild: !0 },\n options: [\n { label: \"Equal\", value: Ms.Equal },\n { label: \"NotEqual\", value: Ms.NotEqual },\n { label: \"LessThan\", value: Ms.LessThan },\n { label: \"GreaterThan\", value: Ms.GreaterThan },\n { label: \"LessOrEqual\", value: Ms.LessOrEqual },\n { label: \"GreaterOrEqual\", value: Ms.GreaterOrEqual },\n { label: \"Xor\", value: Ms.Xor },\n { label: \"Or\", value: Ms.Or },\n { label: \"And\", value: Ms.And }\n ]\n })\n], DR.prototype, \"test\", void 0);\nU(\"BABYLON.ConditionBlock\", DR);\nvar jn;\n(function(a) {\n a[a.None = 0] = \"None\", a[a.LoopID = 1] = \"LoopID\", a[a.InstanceID = 2] = \"InstanceID\";\n})(jn || (jn = {}));\nclass OR extends Ze {\n /**\n * Create a new RandomBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this._currentLockId = -1, this.lockMode = jn.None, this.registerInput(\"min\", D.AutoDetect), this.registerInput(\"max\", D.AutoDetect), this.registerOutput(\"output\", D.BasedOnInput), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Geometry), this._inputs[0].excludedConnectionPointTypes.push(D.Texture), this._inputs[1].excludedConnectionPointTypes.push(D.Matrix), this._inputs[1].excludedConnectionPointTypes.push(D.Geometry), this._inputs[1].excludedConnectionPointTypes.push(D.Texture), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RandomBlock\";\n }\n /**\n * Gets the min input component\n */\n get min() {\n return this._inputs[0];\n }\n /**\n * Gets the max input component\n */\n get max() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.min.isConnected) {\n const e = new as(\"Min\");\n e.value = 0, e.output.connectTo(this.min);\n }\n if (!this.max.isConnected) {\n const e = new as(\"Max\");\n e.value = 1, e.output.connectTo(this.max);\n }\n }\n _buildBlock() {\n let e = null;\n switch (this._currentLockId = -1, this.min.type) {\n case D.Int:\n case D.Float: {\n e = (t) => {\n const i = this.min.getConnectedValue(t) || 0, s = this.max.getConnectedValue(t) || 0;\n return i + Math.random() * (s - i);\n };\n break;\n }\n case D.Vector2: {\n e = (t) => {\n const i = this.min.getConnectedValue(t) || Q.Zero(), s = this.max.getConnectedValue(t) || Q.Zero();\n return new Q(i.x + Math.random() * (s.x - i.x), i.y + Math.random() * (s.y - i.y));\n };\n break;\n }\n case D.Vector3: {\n e = (t) => {\n const i = this.min.getConnectedValue(t) || g.Zero(), s = this.max.getConnectedValue(t) || g.Zero();\n return new g(i.x + Math.random() * (s.x - i.x), i.y + Math.random() * (s.y - i.y), i.z + Math.random() * (s.z - i.z));\n };\n break;\n }\n case D.Vector4: {\n e = (t) => {\n const i = this.min.getConnectedValue(t) || Ne.Zero(), s = this.max.getConnectedValue(t) || Ne.Zero();\n return new Ne(i.x + Math.random() * (s.x - i.x), i.y + Math.random() * (s.y - i.y), i.z + Math.random() * (s.z - i.z), i.w + Math.random() * (s.w - i.w));\n };\n break;\n }\n }\n this.lockMode === jn.None || !e ? this.output._storedFunction = e : this.output._storedFunction = (t) => {\n let i = 0;\n switch (this.lockMode) {\n case jn.InstanceID:\n i = t.getContextualValue(Vt.InstanceID, !0) || 0;\n break;\n case jn.LoopID:\n i = t.getContextualValue(Vt.LoopID, !0) || 0;\n break;\n }\n return (this._currentLockId !== i || this.lockMode === jn.None) && (this._currentLockId = i, this.output._storedValue = e(t)), this.output._storedValue;\n };\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.lockMode = BABYLON.RandomBlockLocks.${jn[this.lockMode]};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.lockMode = this.lockMode, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.lockMode = e.lockMode;\n }\n}\ny([\n ze(\"LockMode\", 4, \"ADVANCED\", {\n notifiers: { rebuild: !0 },\n options: [\n { label: \"None\", value: jn.None },\n { label: \"LoopID\", value: jn.LoopID },\n { label: \"InstanceID\", value: jn.InstanceID }\n ]\n })\n], OR.prototype, \"lockMode\", void 0);\nU(\"BABYLON.RandomBlock\", OR);\nclass Fk extends Ze {\n /**\n * Create a new NoiseBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"offset\", D.Vector3, !0, g.Zero()), this.registerInput(\"scale\", D.Float, !0, 1), this.registerInput(\"octaves\", D.Float, !0, 2, 0, 16), this.registerInput(\"roughness\", D.Float, !0, 0.5, 0, 1), this.registerOutput(\"output\", D.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NoiseBlock\";\n }\n /**\n * Gets the offset input component\n */\n get offset() {\n return this._inputs[0];\n }\n /**\n * Gets the scale input component\n */\n get scale() {\n return this._inputs[1];\n }\n /**\n * Gets the octaves input component\n */\n get octaves() {\n return this._inputs[2];\n }\n /**\n * Gets the roughtness input component\n */\n get roughness() {\n return this._inputs[3];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _negateIf(e, t) {\n return t !== 0 ? -e : e;\n }\n _noiseGrad(e, t, i, s) {\n const r = e & 15, n = r < 8 ? t : i, o = r === 12 || r == 14 ? t : s, l = r < 4 ? i : o;\n return this._negateIf(n, r & n) + this._negateIf(l, r & 2);\n }\n _fade(e) {\n return e * e * e * (e * (e * 6 - 15) + 10);\n }\n _hashBitRotate(e, t) {\n return e << t | e >> 32 - t;\n }\n _hash(e, t, i) {\n let s, r, n;\n return s = r = n = 3735928584, n += i, r += t, s += e, n ^= r, n -= this._hashBitRotate(r, 14), s ^= n, s -= this._hashBitRotate(n, 11), r ^= s, r -= this._hashBitRotate(s, 25), n ^= r, n -= this._hashBitRotate(r, 16), s ^= n, s -= this._hashBitRotate(n, 4), r ^= s, r -= this._hashBitRotate(s, 14), n ^= r, n -= this._hashBitRotate(r, 24), n;\n }\n _mix(e, t, i, s, r, n, o, l, h, c, u) {\n const d = 1 - h, f = 1 - c;\n return (1 - u) * (f * (e * d + t * h) + c * (i * d + s * h)) + u * (f * (r * d + n * h) + c * (o * d + l * h));\n }\n _perlinNoise(e) {\n const t = (e.x | 0) - (e.x < 0 ? 1 : 0), i = (e.y | 0) - (e.y < 0 ? 1 : 0), s = (e.z | 0) - (e.z < 0 ? 1 : 0), r = e.x - t, n = e.y - i, o = e.z - s, l = this._fade(r), h = this._fade(n), c = this._fade(o);\n return this._mix(this._noiseGrad(this._hash(t, i, s), r, n, o), this._noiseGrad(this._hash(t + 1, i, s), r - 1, n, o), this._noiseGrad(this._hash(t, i + 1, s), r, n - 1, o), this._noiseGrad(this._hash(t + 1, i + 1, s), r - 1, n - 1, o), this._noiseGrad(this._hash(t, i, s + 1), r, n, o - 1), this._noiseGrad(this._hash(t + 1, i, s + 1), r - 1, n, o - 1), this._noiseGrad(this._hash(t, i + 1, s + 1), r, n - 1, o - 1), this._noiseGrad(this._hash(t + 1, i + 1, s + 1), r - 1, n - 1, o - 1), l, h, c);\n }\n _perlinSigned(e) {\n return this._perlinNoise(e) * 0.982;\n }\n _perlin(e) {\n return this._perlinSigned(e) / 2 + 0.5;\n }\n /**\n * Gets a perlin noise value\n * @param octaves number of octaves\n * @param roughness roughness\n * @param _position position vector\n * @param offset offset vector\n * @param scale scale value\n * @returns a value between 0 and 1\n * @see Based on https://github.com/blender/blender/blob/main/source/blender/blenlib/intern/noise.cc#L533\n */\n noise(e, t, i, s, r) {\n const n = new g(i.x * r + s.x, i.y * r + s.y, i.z * r + s.z);\n let o = 1, l = 1, h = 0, c = 0;\n e = Re.Clamp(e, 0, 15);\n const u = e | 0;\n for (let _ = 0; _ <= u; _++) {\n const m = this._perlin(n.scale(o));\n c += m * l, h += l, l *= Re.Clamp(t, 0, 1), o *= 2;\n }\n const d = e - Math.floor(e);\n if (d == 0)\n return c / h;\n const f = this._perlin(n.scale(o));\n let p = c + f * l;\n return c /= h, p /= h + l, (1 - d) * c + d * p;\n }\n _buildBlock() {\n this.output._storedFunction = (e) => {\n const t = e.getContextualValue(Vt.Positions), i = this.octaves.getConnectedValue(e), s = this.roughness.getConnectedValue(e), r = this.offset.getConnectedValue(e), n = this.scale.getConnectedValue(e);\n return this.noise(i, s, t, r, n);\n };\n }\n}\nU(\"BABYLON.NoiseBlock\", Fk);\nclass wR extends Ze {\n /**\n * Create a new MergeGeometryBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !1, this.registerInput(\"geometry0\", D.Geometry), this.registerInput(\"geometry1\", D.Geometry, !0), this.registerInput(\"geometry2\", D.Geometry, !0), this.registerInput(\"geometry3\", D.Geometry, !0), this.registerInput(\"geometry4\", D.Geometry, !0), this.registerOutput(\"output\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MergeGeometryBlock\";\n }\n /**\n * Gets the geometry0 input component\n */\n get geometry0() {\n return this._inputs[0];\n }\n /**\n * Gets the geometry1 input component\n */\n get geometry1() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry2 input component\n */\n get geometry2() {\n return this._inputs[2];\n }\n /**\n * Gets the geometry3 input component\n */\n get geometry3() {\n return this._inputs[3];\n }\n /**\n * Gets the geometry4 input component\n */\n get geometry4() {\n return this._inputs[4];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n const t = (i) => {\n const s = [];\n if (this.geometry0.isConnected) {\n const o = this.geometry0.getConnectedValue(i);\n o && s.push(o);\n }\n if (this.geometry1.isConnected) {\n const o = this.geometry1.getConnectedValue(i);\n o && s.push(o);\n }\n if (this.geometry2.isConnected) {\n const o = this.geometry2.getConnectedValue(i);\n o && s.push(o);\n }\n if (this.geometry3.isConnected) {\n const o = this.geometry3.getConnectedValue(i);\n o && s.push(o);\n }\n if (this.geometry4.isConnected) {\n const o = this.geometry4.getConnectedValue(i);\n o && s.push(o);\n }\n if (s.length === 0)\n return null;\n let r = s[0].clone();\n const n = s.slice(1);\n return n.length && r && (r = r.merge(n, !0, !1, !0, !0)), r;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.evaluateContext = e.evaluateContext;\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], wR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.MergeGeometryBlock\", wR);\nclass NR extends Ze {\n /**\n * Create a new GeometryCollectionBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !0, this.registerInput(\"geometry0\", D.Geometry, !0), this.registerInput(\"geometry1\", D.Geometry, !0), this.registerInput(\"geometry2\", D.Geometry, !0), this.registerInput(\"geometry3\", D.Geometry, !0), this.registerInput(\"geometry4\", D.Geometry, !0), this.registerInput(\"geometry5\", D.Geometry, !0), this.registerInput(\"geometry6\", D.Geometry, !0), this.registerInput(\"geometry7\", D.Geometry, !0), this.registerInput(\"geometry8\", D.Geometry, !0), this.registerInput(\"geometry9\", D.Geometry, !0), this.registerOutput(\"output\", D.Geometry), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryCollectionBlock\";\n }\n /**\n * Gets the geometry0 input component\n */\n get geometry0() {\n return this._inputs[0];\n }\n /**\n * Gets the geometry1 input component\n */\n get geometry1() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry2 input component\n */\n get geometry2() {\n return this._inputs[2];\n }\n /**\n * Gets the geometry3 input component\n */\n get geometry3() {\n return this._inputs[3];\n }\n /**\n * Gets the geometry4 input component\n */\n get geometry4() {\n return this._inputs[4];\n }\n /**\n * Gets the geometry5 input component\n */\n get geometry5() {\n return this._inputs[5];\n }\n /**\n * Gets the geometry6 input component\n */\n get geometry6() {\n return this._inputs[6];\n }\n /**\n * Gets the geometry7 input component\n */\n get geometry7() {\n return this._inputs[7];\n }\n /**\n * Gets the geometry8 input component\n */\n get geometry8() {\n return this._inputs[8];\n }\n /**\n * Gets the geometry9 input component\n */\n get geometry9() {\n return this._inputs[9];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _storeGeometry(e, t, i, s) {\n if (e.isConnected) {\n const r = e.getConnectedValue(t);\n if (!r)\n return;\n r.metadata = r.metadata || {}, r.metadata.collectionId = i, s.push(r);\n }\n }\n _buildBlock(e) {\n const t = (i) => {\n const s = [];\n return this._storeGeometry(this.geometry0, i, 0, s), this._storeGeometry(this.geometry1, i, 1, s), this._storeGeometry(this.geometry2, i, 2, s), this._storeGeometry(this.geometry3, i, 3, s), this._storeGeometry(this.geometry4, i, 4, s), this._storeGeometry(this.geometry5, i, 5, s), this._storeGeometry(this.geometry6, i, 6, s), this._storeGeometry(this.geometry7, i, 7, s), this._storeGeometry(this.geometry8, i, 8, s), this._storeGeometry(this.geometry9, i, 9, s), s.length ? s[Math.round(Math.random() * (s.length - 1))] : null;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.evaluateContext = e.evaluateContext;\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], NR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.GeometryCollectionBlock\", NR);\nclass Lk extends Ze {\n /**\n * Creates a new GeometryElbowBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"input\", D.AutoDetect), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the time spent to build this block (in ms)\n */\n get buildExecutionTime() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryElbowBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this._outputs[0], i = this._inputs[0];\n t._storedFunction = (s) => i.getConnectedValue(s);\n }\n}\nU(\"BABYLON.GeometryElbowBlock\", Lk);\nclass Bk extends Ze {\n /**\n * Creates a new ComputeNormalsBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"geometry\", D.Geometry), this.registerOutput(\"output\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ComputeNormalsBlock\";\n }\n /**\n * Gets the geometry component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n this.output._storedFunction = (e) => {\n if (!this.geometry.isConnected)\n return null;\n const t = this.geometry.getConnectedValue(e);\n return t.normals || (t.normals = []), ge.ComputeNormals(t.positions, t.indices, t.normals), t;\n };\n }\n}\nU(\"BABYLON.ComputeNormalsBlock\", Bk);\nclass Vk extends Ze {\n /**\n * Create a new VectorConverterBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"xyzw \", D.Vector4, !0), this.registerInput(\"xyz \", D.Vector3, !0), this.registerInput(\"xy \", D.Vector2, !0), this.registerInput(\"zw \", D.Vector2, !0), this.registerInput(\"x \", D.Float, !0), this.registerInput(\"y \", D.Float, !0), this.registerInput(\"z \", D.Float, !0), this.registerInput(\"w \", D.Float, !0), this.registerOutput(\"xyzw\", D.Vector4), this.registerOutput(\"xyz\", D.Vector3), this.registerOutput(\"xy\", D.Vector2), this.registerOutput(\"zw\", D.Vector2), this.registerOutput(\"x\", D.Float), this.registerOutput(\"y\", D.Float), this.registerOutput(\"z\", D.Float), this.registerOutput(\"w\", D.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"VectorConverterBlock\";\n }\n /**\n * Gets the xyzw component (input)\n */\n get xyzwIn() {\n return this._inputs[0];\n }\n /**\n * Gets the xyz component (input)\n */\n get xyzIn() {\n return this._inputs[1];\n }\n /**\n * Gets the xy component (input)\n */\n get xyIn() {\n return this._inputs[2];\n }\n /**\n * Gets the zw component (input)\n */\n get zwIn() {\n return this._inputs[3];\n }\n /**\n * Gets the x component (input)\n */\n get xIn() {\n return this._inputs[4];\n }\n /**\n * Gets the y component (input)\n */\n get yIn() {\n return this._inputs[5];\n }\n /**\n * Gets the z component (input)\n */\n get zIn() {\n return this._inputs[6];\n }\n /**\n * Gets the w component (input)\n */\n get wIn() {\n return this._inputs[7];\n }\n /**\n * Gets the xyzw component (output)\n */\n get xyzwOut() {\n return this._outputs[0];\n }\n /**\n * Gets the xyz component (output)\n */\n get xyzOut() {\n return this._outputs[1];\n }\n /**\n * Gets the xy component (output)\n */\n get xyOut() {\n return this._outputs[2];\n }\n /**\n * Gets the zw component (output)\n */\n get zwOut() {\n return this._outputs[3];\n }\n /**\n * Gets the x component (output)\n */\n get xOut() {\n return this._outputs[4];\n }\n /**\n * Gets the y component (output)\n */\n get yOut() {\n return this._outputs[5];\n }\n /**\n * Gets the z component (output)\n */\n get zOut() {\n return this._outputs[6];\n }\n /**\n * Gets the w component (output)\n */\n get wOut() {\n return this._outputs[7];\n }\n _inputRename(e) {\n return e === \"xyzw \" ? \"xyzwIn\" : e === \"xyz \" ? \"xyzIn\" : e === \"xy \" ? \"xyIn\" : e === \"zw \" ? \"zwIn\" : e === \"x \" ? \"xIn\" : e === \"y \" ? \"yIn\" : e === \"z \" ? \"zIn\" : e === \"w \" ? \"wIn\" : e;\n }\n _outputRename(e) {\n switch (e) {\n case \"x\":\n return \"xOut\";\n case \"y\":\n return \"yOut\";\n case \"z\":\n return \"zOut\";\n case \"w\":\n return \"wOut\";\n case \"xy\":\n return \"xyOut\";\n case \"zw\":\n return \"zwOut\";\n case \"xyz\":\n return \"xyzOut\";\n case \"xyzw\":\n return \"xyzwOut\";\n default:\n return e;\n }\n }\n _buildBlock(e) {\n super._buildBlock(e);\n const t = this.xIn, i = this.yIn, s = this.zIn, r = this.wIn, n = this.xyIn, o = this.zwIn, l = this.xyzIn, h = this.xyzwIn, c = this.xyzwOut, u = this.xyzOut, d = this.xyOut, f = this.zwOut, p = this.xOut, _ = this.yOut, m = this.zOut, x = this.wOut, v = (T) => {\n if (h.isConnected)\n return h.getConnectedValue(T);\n let E = 0, b = 0, S = 0, C = 0;\n if (t.isConnected && (E = t.getConnectedValue(T)), i.isConnected && (b = i.getConnectedValue(T)), s.isConnected && (S = s.getConnectedValue(T)), r.isConnected && (C = r.getConnectedValue(T)), n.isConnected) {\n const P = n.getConnectedValue(T);\n P && (E = P.x, b = P.y);\n }\n if (o.isConnected) {\n const P = o.getConnectedValue(T);\n P && (S = P.x, C = P.y);\n }\n if (l.isConnected) {\n const P = l.getConnectedValue(T);\n P && (E = P.x, b = P.y, S = P.z);\n }\n return new Ne(E, b, S, C);\n };\n c._storedFunction = (T) => v(T), u._storedFunction = (T) => {\n const E = v(T);\n return new g(E.x, E.y, E.z);\n }, d._storedFunction = (T) => {\n const E = v(T);\n return new Q(E.x, E.y);\n }, f._storedFunction = (T) => {\n const E = v(T);\n return new Q(E.z, E.w);\n }, p._storedFunction = (T) => v(T).x, _._storedFunction = (T) => v(T).y, m._storedFunction = (T) => v(T).z, x._storedFunction = (T) => v(T).w;\n }\n}\nU(\"BABYLON.VectorConverterBlock\", Vk);\nclass Uk extends Ze {\n /**\n * Creates a new NormalizeVectorBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"input\", D.AutoDetect), this.registerOutput(\"output\", D.BasedOnInput), this._inputs[0].excludedConnectionPointTypes.push(D.Float), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Geometry), this._inputs[0].excludedConnectionPointTypes.push(D.Texture), this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NormalizeVectorBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n if (super._buildBlock(e), this.output._storedFunction = null, !this.input.isConnected) {\n this.output._storedValue = null;\n return;\n }\n this.output._storedFunction = (t) => this.input.getConnectedValue(t).normalize();\n }\n}\nU(\"BABYLON.NormalizeVectorBlock\", Uk);\nclass FR extends Ze {\n /**\n * Create a new SetMaterialIDBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !0, this.registerInput(\"geometry\", D.Geometry), this.registerInput(\"id\", D.Int, !0, 0), this.registerOutput(\"output\", D.Geometry), this.id.acceptedConnectionPointTypes.push(D.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SetMaterialIDBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the id input component\n */\n get id() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n if (!this.geometry.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n const t = (i) => {\n const s = this.geometry.getConnectedValue(i);\n if (!s || !s.indices || !s.positions)\n return s;\n const r = new vp();\n return r.materialIndex = this.id.getConnectedValue(i) | 0, r.indexStart = 0, r.indexCount = s.indices.length, r.verticesStart = 0, r.verticesCount = s.positions.length / 3, s.materialInfos = [r], s;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), e.evaluateContext !== void 0 && (this.evaluateContext = e.evaluateContext);\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], FR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.SetMaterialIDBlock\", FR);\nvar Rt;\n(function(a) {\n a[a.Cos = 0] = \"Cos\", a[a.Sin = 1] = \"Sin\", a[a.Abs = 2] = \"Abs\", a[a.Exp = 3] = \"Exp\", a[a.Round = 4] = \"Round\", a[a.Floor = 5] = \"Floor\", a[a.Ceiling = 6] = \"Ceiling\", a[a.Sqrt = 7] = \"Sqrt\", a[a.Log = 8] = \"Log\", a[a.Tan = 9] = \"Tan\", a[a.ArcTan = 10] = \"ArcTan\", a[a.ArcCos = 11] = \"ArcCos\", a[a.ArcSin = 12] = \"ArcSin\", a[a.Sign = 13] = \"Sign\", a[a.Negate = 14] = \"Negate\", a[a.OneMinus = 15] = \"OneMinus\", a[a.Reciprocal = 16] = \"Reciprocal\", a[a.ToDegrees = 17] = \"ToDegrees\", a[a.ToRadians = 18] = \"ToRadians\", a[a.Fract = 19] = \"Fract\", a[a.Exp2 = 20] = \"Exp2\";\n})(Rt || (Rt = {}));\nclass LR extends Ze {\n /**\n * Creates a new GeometryTrigonometryBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.operation = Rt.Cos, this.registerInput(\"input\", D.AutoDetect), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Geometry), this._inputs[0].excludedConnectionPointTypes.push(D.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryTrigonometryBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e);\n let t = null;\n switch (this.operation) {\n case Rt.Cos: {\n t = (i) => Math.cos(i);\n break;\n }\n case Rt.Sin: {\n t = (i) => Math.sin(i);\n break;\n }\n case Rt.Abs: {\n t = (i) => Math.abs(i);\n break;\n }\n case Rt.Exp: {\n t = (i) => Math.exp(i);\n break;\n }\n case Rt.Exp2: {\n t = (i) => Math.pow(2, i);\n break;\n }\n case Rt.Round: {\n t = (i) => Math.round(i);\n break;\n }\n case Rt.Floor: {\n t = (i) => Math.floor(i);\n break;\n }\n case Rt.Ceiling: {\n t = (i) => Math.ceil(i);\n break;\n }\n case Rt.Sqrt: {\n t = (i) => Math.sqrt(i);\n break;\n }\n case Rt.Log: {\n t = (i) => Math.log(i);\n break;\n }\n case Rt.Tan: {\n t = (i) => Math.tan(i);\n break;\n }\n case Rt.ArcTan: {\n t = (i) => Math.atan(i);\n break;\n }\n case Rt.ArcCos: {\n t = (i) => Math.acos(i);\n break;\n }\n case Rt.ArcSin: {\n t = (i) => Math.asin(i);\n break;\n }\n case Rt.Sign: {\n t = (i) => Math.sign(i);\n break;\n }\n case Rt.Negate: {\n t = (i) => -i;\n break;\n }\n case Rt.OneMinus: {\n t = (i) => 1 - i;\n break;\n }\n case Rt.Reciprocal: {\n t = (i) => 1 / i;\n break;\n }\n case Rt.ToRadians: {\n t = (i) => i * Math.PI / 180;\n break;\n }\n case Rt.ToDegrees: {\n t = (i) => i * 180 / Math.PI;\n break;\n }\n case Rt.Fract: {\n t = (i) => i >= 0 ? i - Math.floor(i) : i - Math.ceil(i);\n break;\n }\n }\n if (!t) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n switch (this.input.type) {\n case D.Int:\n case D.Float: {\n this.output._storedFunction = (i) => {\n const s = this.input.getConnectedValue(i);\n return t(s);\n };\n break;\n }\n case D.Vector2: {\n this.output._storedFunction = (i) => {\n const s = this.input.getConnectedValue(i);\n return new Q(t(s.x), t(s.y));\n };\n break;\n }\n case D.Vector3: {\n this.output._storedFunction = (i) => {\n const s = this.input.getConnectedValue(i);\n return new g(t(s.x), t(s.y), t(s.z));\n };\n break;\n }\n case D.Vector4: {\n this.output._storedFunction = (i) => {\n const s = this.input.getConnectedValue(i);\n return new Ne(t(s.x), t(s.y), t(s.z), t(s.w));\n };\n break;\n }\n }\n return this;\n }\n serialize() {\n const e = super.serialize();\n return e.operation = this.operation, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.operation = e.operation;\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.operation = BABYLON.GeometryTrigonometryBlockOperations.${Rt[this.operation]};\n`;\n }\n}\ny([\n ze(\"Operation\", 4, \"ADVANCED\", {\n notifiers: { rebuild: !0 },\n options: [\n { label: \"Cos\", value: Rt.Cos },\n { label: \"Sin\", value: Rt.Sin },\n { label: \"Abs\", value: Rt.Abs },\n { label: \"Exp\", value: Rt.Exp },\n { label: \"Exp2\", value: Rt.Exp2 },\n { label: \"Round\", value: Rt.Round },\n { label: \"Floor\", value: Rt.Floor },\n { label: \"Ceiling\", value: Rt.Ceiling },\n { label: \"Sqrt\", value: Rt.Sqrt },\n { label: \"Log\", value: Rt.Log },\n { label: \"Tan\", value: Rt.Tan },\n { label: \"ArcTan\", value: Rt.ArcTan },\n { label: \"ArcCos\", value: Rt.ArcCos },\n { label: \"ArcSin\", value: Rt.ArcSin },\n { label: \"Sign\", value: Rt.Sign },\n { label: \"Negate\", value: Rt.Negate },\n { label: \"OneMinus\", value: Rt.OneMinus },\n { label: \"Reciprocal\", value: Rt.Reciprocal },\n { label: \"ToDegrees\", value: Rt.ToDegrees },\n { label: \"ToRadians\", value: Rt.ToRadians },\n { label: \"Fract\", value: Rt.Fract }\n ]\n })\n], LR.prototype, \"operation\", void 0);\nU(\"BABYLON.GeometryTrigonometryBlock\", LR);\nclass BR extends Ze {\n /**\n * Create a new GeometryTransformBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this._rotationMatrix = new O(), this._scalingMatrix = new O(), this._translationMatrix = new O(), this._scalingRotationMatrix = new O(), this._transformMatrix = new O(), this.evaluateContext = !0, this.registerInput(\"value\", D.AutoDetect), this.registerInput(\"matrix\", D.Matrix, !0), this.registerInput(\"translation\", D.Vector3, !0, g.Zero()), this.registerInput(\"rotation\", D.Vector3, !0, g.Zero()), this.registerInput(\"scaling\", D.Vector3, !0, g.One()), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._inputs[0].excludedConnectionPointTypes.push(D.Float), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryTransformBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix input component\n */\n get matrix() {\n return this._inputs[1];\n }\n /**\n * Gets the translation input component\n */\n get translation() {\n return this._inputs[2];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[3];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[4];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n if (!this.value.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n const t = (i) => {\n const s = this.value.getConnectedValue(i);\n if (!s)\n return null;\n let r;\n if (this.matrix.isConnected)\n r = this.matrix.getConnectedValue(i);\n else {\n const n = this.scaling.getConnectedValue(i), o = this.rotation.getConnectedValue(i), l = this.translation.getConnectedValue(i);\n O.ScalingToRef(n.x, n.y, n.z, this._scalingMatrix), O.RotationYawPitchRollToRef(o.y, o.x, o.z, this._rotationMatrix), O.TranslationToRef(l.x, l.y, l.z, this._translationMatrix), this._scalingMatrix.multiplyToRef(this._rotationMatrix, this._scalingRotationMatrix), this._scalingRotationMatrix.multiplyToRef(this._translationMatrix, this._transformMatrix), r = this._transformMatrix;\n }\n switch (this.value.type) {\n case D.Geometry: {\n const n = s.clone();\n return n.transform(r), n;\n }\n case D.Vector2:\n return Q.Transform(s, r);\n case D.Vector3:\n return g.TransformCoordinates(s, r);\n case D.Vector4:\n return Ne.TransformCoordinates(s, r);\n }\n return null;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), e.evaluateContext !== void 0 && (this.evaluateContext = e.evaluateContext);\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], BR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.GeometryTransformBlock\", BR);\nclass kk extends Ze {\n /**\n * Create a new RotationXBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"angle\", D.Float, !1, 0), this.registerOutput(\"matrix\", D.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RotationXBlock\";\n }\n /**\n * Gets the angle input component\n */\n get angle() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix output component\n */\n get matrix() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.angle.isConnected) {\n const e = new as(\"Angle\");\n e.value = 0, e.output.connectTo(this.angle);\n }\n }\n _buildBlock(e) {\n super._buildBlock(e), this.matrix._storedFunction = (t) => O.RotationX(this.angle.getConnectedValue(t));\n }\n}\nU(\"BABYLON.RotationXBlock\", kk);\nclass Gk extends Ze {\n /**\n * Create a new RotationYBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"angle\", D.Float, !1, 0), this.registerOutput(\"matrix\", D.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RotationYBlock\";\n }\n /**\n * Gets the angle input component\n */\n get angle() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix output component\n */\n get matrix() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.angle.isConnected) {\n const e = new as(\"Angle\");\n e.value = 0, e.output.connectTo(this.angle);\n }\n }\n _buildBlock(e) {\n super._buildBlock(e), this.matrix._storedFunction = (t) => O.RotationY(this.angle.getConnectedValue(t));\n }\n}\nU(\"BABYLON.RotationYBlock\", Gk);\nclass zk extends Ze {\n /**\n * Create a new RotationZBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"angle\", D.Float, !1, 0), this.registerOutput(\"matrix\", D.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RotationZBlock\";\n }\n /**\n * Gets the angle input component\n */\n get angle() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix output component\n */\n get matrix() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.angle.isConnected) {\n const e = new as(\"Angle\");\n e.value = 0, e.output.connectTo(this.angle);\n }\n }\n _buildBlock(e) {\n super._buildBlock(e), this.matrix._storedFunction = (t) => O.RotationZ(this.angle.getConnectedValue(t));\n }\n}\nU(\"BABYLON.RotationZBlock\", zk);\nclass Wk extends Ze {\n /**\n * Create a new ScalingBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"scale\", D.Vector3, !1, g.One()), this.registerOutput(\"matrix\", D.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ScalingBlock\";\n }\n /**\n * Gets the scale input component\n */\n get scale() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix output component\n */\n get matrix() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.scale.isConnected) {\n const e = new as(\"Scale\");\n e.value = new g(1, 1, 1), e.output.connectTo(this.scale);\n }\n }\n _buildBlock(e) {\n super._buildBlock(e), this.matrix._storedFunction = (t) => {\n const i = this.scale.getConnectedValue(t);\n return O.Scaling(i.x, i.y, i.z);\n };\n }\n}\nU(\"BABYLON.ScalingBlock\", Wk);\nclass Hk extends Ze {\n /**\n * Create a new AlignBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"source\", D.Vector3, !0, g.Up()), this.registerInput(\"target\", D.Vector3, !0, g.Left()), this.registerOutput(\"matrix\", D.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"AlignBlock\";\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[0];\n }\n /**\n * Gets the target input component\n */\n get target() {\n return this._inputs[1];\n }\n /**\n * Gets the matrix output component\n */\n get matrix() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n super._buildBlock(e), this.matrix._storedFunction = (t) => {\n const i = this.source.getConnectedValue(t).clone(), s = this.target.getConnectedValue(t).clone(), r = new O();\n return i.normalize(), s.normalize(), O.RotationAlignToRef(i, s, r, !0), r;\n };\n }\n}\nU(\"BABYLON.AlignBlock\", Hk);\nclass Xk extends Ze {\n /**\n * Create a new TranslationBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"translation\", D.Vector3, !1, g.Zero()), this.registerOutput(\"matrix\", D.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TranslationBlock\";\n }\n /**\n * Gets the translation input component\n */\n get translation() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix output component\n */\n get matrix() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.translation.isConnected) {\n const e = new as(\"Translation\");\n e.value = new g(0, 0, 0), e.output.connectTo(this.translation);\n }\n }\n _buildBlock(e) {\n super._buildBlock(e), this.matrix._storedFunction = (t) => {\n const i = this.translation.getConnectedValue(t);\n return O.Translation(i.x, i.y, i.z);\n };\n }\n}\nU(\"BABYLON.TranslationBlock\", Xk);\nclass Wv extends Ze {\n /**\n * Create a new InstantiateOnVerticesBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this._indexTranslation = null, this.evaluateContext = !0, this.removeDuplicatedPositions = !0, this.registerInput(\"geometry\", D.Geometry), this.registerInput(\"instance\", D.Geometry, !0), this.registerInput(\"density\", D.Float, !0, 1, 0, 1), this.registerInput(\"matrix\", D.Matrix, !0), this.registerInput(\"rotation\", D.Vector3, !0, g.Zero()), this.registerInput(\"scaling\", D.Vector3, !0, g.One()), this.scaling.acceptedConnectionPointTypes.push(D.Float), this.registerOutput(\"output\", D.Geometry);\n }\n /**\n * Gets the current instance index in the current flow\n * @returns the current index\n */\n getInstanceIndex() {\n return this._currentLoopIndex;\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._indexTranslation ? this._indexTranslation[this._currentIndex] : this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentLoopIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstantiateOnVerticesBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the instance input component\n */\n get instance() {\n return this._inputs[1];\n }\n /**\n * Gets the density input component\n */\n get density() {\n return this._inputs[2];\n }\n /**\n * Gets the matrix input component\n */\n get matrix() {\n return this._inputs[3];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[4];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[5];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n const t = (i) => {\n if (i.pushExecutionContext(this), i.pushInstancingContext(this), this._vertexData = this.geometry.getConnectedValue(i), i.pushGeometryContext(this._vertexData), !this._vertexData || !this._vertexData.positions || !this.instance.isConnected) {\n i.restoreExecutionContext(), i.restoreInstancingContext(), i.restoreGeometryContext(), this.output._storedValue = null;\n return;\n }\n let s = this._vertexData.positions.length / 3;\n const r = [], n = new g(), o = [];\n let l = this._vertexData.positions;\n if (this._currentLoopIndex = 0, this.removeDuplicatedPositions) {\n for (this._indexTranslation = {}, this._currentIndex = 0; this._currentIndex < s; this._currentIndex++) {\n const h = l[this._currentIndex * 3], c = l[this._currentIndex * 3 + 1], u = l[this._currentIndex * 3 + 2];\n let d = !1;\n for (let f = 0; f < o.length; f += 3)\n if (Math.abs(o[f] - h) < tt && Math.abs(o[f + 1] - c) < tt && Math.abs(o[f + 2] - u) < tt) {\n d = !0;\n break;\n }\n d || (this._indexTranslation[o.length / 3] = this._currentIndex, o.push(h, c, u));\n }\n l = o, s = l.length / 3;\n } else\n this._indexTranslation = null;\n for (this._currentIndex = 0; this._currentIndex < s; this._currentIndex++) {\n const h = this.instance.getConnectedValue(i);\n if (!h || !h.positions || h.positions.length === 0)\n continue;\n const c = this.density.getConnectedValue(i);\n if (c < 1 && Math.random() > c)\n continue;\n n.fromArray(l, this._currentIndex * 3);\n const u = h.clone();\n if (this.matrix.isConnected) {\n const d = this.matrix.getConnectedValue(i);\n i._instantiateWithPositionAndMatrix(u, n, d, r);\n } else {\n const d = i.adaptInput(this.scaling, D.Vector3, g.OneReadOnly), f = this.rotation.getConnectedValue(i) || g.ZeroReadOnly;\n i._instantiate(u, n, f, d, r);\n }\n this._currentLoopIndex++;\n }\n if (i.restoreGeometryContext(), i.restoreExecutionContext(), i.restoreInstancingContext(), r.length)\n if (r.length === 1)\n this._vertexData = r[0];\n else {\n const h = r.splice(0, 1)[0];\n this._vertexData = h.merge(r, !0, !1, !0, !0);\n }\n else\n return null;\n return this._vertexData;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode() + `${this._codeVariableName}.removeDuplicatedPositions = ${this.removeDuplicatedPositions ? \"true\" : \"false\"};\n`;\n return e += `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`, e;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.removeDuplicatedPositions = this.removeDuplicatedPositions, e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.removeDuplicatedPositions = e.removeDuplicatedPositions, e.evaluateContext !== void 0 && (this.evaluateContext = e.evaluateContext);\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], Wv.prototype, \"evaluateContext\", void 0);\ny([\n ze(\"Remove duplicated positions\", 0, \"ADVANCED\", { notifiers: { update: !0 } })\n], Wv.prototype, \"removeDuplicatedPositions\", void 0);\nU(\"BABYLON.InstantiateOnVerticesBlock\", Wv);\nclass VR extends Ze {\n /**\n * Create a new InstantiateOnFacesBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this._currentPosition = new g(), this._currentUV = new Q(), this._vertex0 = new g(), this._vertex1 = new g(), this._vertex2 = new g(), this._tempVector0 = new g(), this._tempVector1 = new g(), this._uv0 = new Q(), this._uv1 = new Q(), this._uv2 = new Q(), this.evaluateContext = !0, this.registerInput(\"geometry\", D.Geometry), this.registerInput(\"instance\", D.Geometry, !0), this.registerInput(\"count\", D.Int, !0, 256), this.registerInput(\"matrix\", D.Matrix, !0), this.registerInput(\"rotation\", D.Vector3, !0, g.Zero()), this.registerInput(\"scaling\", D.Vector3, !0, g.One()), this.scaling.acceptedConnectionPointTypes.push(D.Float), this.registerOutput(\"output\", D.Geometry);\n }\n /**\n * Gets the current instance index in the current flow\n * @returns the current index\n */\n getInstanceIndex() {\n return this._currentLoopIndex;\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return 0;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return this._currentFaceIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentLoopIndex;\n }\n /**\n * Gets the value associated with a contextual positions\n * @returns the value associated with the source\n */\n getOverridePositionsContextualValue() {\n return this._currentPosition;\n }\n /**\n * Gets the value associated with a contextual normals\n * @returns the value associated with the source\n */\n getOverrideNormalsContextualValue() {\n return this._vertex1.subtractToRef(this._vertex0, this._tempVector0), this._vertex2.subtractToRef(this._vertex1, this._tempVector1), this._tempVector0.normalize(), this._tempVector1.normalize(), g.Cross(this._tempVector1, this._tempVector0);\n }\n /**\n * Gets the value associated with a contextual UV1 se\n * @returns the value associated with the source\n */\n getOverrideUVs1ContextualValue() {\n return this._currentUV;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstantiateOnFacesBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the instance input component\n */\n get instance() {\n return this._inputs[1];\n }\n /**\n * Gets the count input component\n */\n get count() {\n return this._inputs[2];\n }\n /**\n * Gets the matrix input component\n */\n get matrix() {\n return this._inputs[3];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[4];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[5];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n const t = (i) => {\n if (i.pushExecutionContext(this), i.pushInstancingContext(this), this._vertexData = this.geometry.getConnectedValue(i), i.pushGeometryContext(this._vertexData), !this._vertexData || !this._vertexData.positions || !this._vertexData.indices || !this.instance.isConnected) {\n i.restoreExecutionContext(), i.restoreInstancingContext(), i.restoreGeometryContext(), this.output._storedValue = null;\n return;\n }\n let s = null;\n const r = this.count.getConnectedValue(i), n = this._vertexData.indices.length / 3, o = r / n;\n let l = 0;\n const h = [];\n let c = 0;\n for (this._currentLoopIndex = 0, this._currentFaceIndex = 0; this._currentFaceIndex < n; this._currentFaceIndex++) {\n l += o;\n const u = (l | 0) - c;\n if (u < 1)\n continue;\n const d = this._vertexData.indices[this._currentFaceIndex * 3], f = this._vertexData.indices[this._currentFaceIndex * 3 + 1], p = this._vertexData.indices[this._currentFaceIndex * 3 + 2];\n this._vertex0.fromArray(this._vertexData.positions, d * 3), this._vertex1.fromArray(this._vertexData.positions, f * 3), this._vertex2.fromArray(this._vertexData.positions, p * 3), this._vertexData.uvs && (this._uv0.fromArray(this._vertexData.uvs, d * 2), this._uv1.fromArray(this._vertexData.uvs, f * 2), this._uv2.fromArray(this._vertexData.uvs, p * 2));\n for (let _ = 0; _ < u && !(c >= r); _++) {\n let m = Math.random(), x = Math.random();\n if (m > x) {\n const S = m;\n m = x, x = S;\n }\n const v = m, T = x - m, E = 1 - v - T;\n if (this._currentPosition.set(v * this._vertex0.x + T * this._vertex1.x + E * this._vertex2.x, v * this._vertex0.y + T * this._vertex1.y + E * this._vertex2.y, v * this._vertex0.z + T * this._vertex1.z + E * this._vertex2.z), this._vertexData.uvs && this._currentUV.set(v * this._uv0.x + T * this._uv1.x + E * this._uv2.x, v * this._uv0.y + T * this._uv1.y + E * this._uv2.y), s = this.instance.getConnectedValue(i), !s || !s.positions || s.positions.length === 0) {\n l -= o;\n continue;\n }\n const b = s.clone();\n if (this.matrix.isConnected) {\n const S = this.matrix.getConnectedValue(i);\n i._instantiateWithPositionAndMatrix(b, this._currentPosition, S, h);\n } else {\n const S = i.adaptInput(this.scaling, D.Vector3, g.OneReadOnly), C = this.rotation.getConnectedValue(i) || g.ZeroReadOnly;\n i._instantiate(b, this._currentPosition, C, S, h);\n }\n c++, this._currentLoopIndex++;\n }\n }\n if (h.length)\n if (h.length === 1)\n this._vertexData = h[0];\n else {\n const u = h.splice(0, 1)[0];\n this._vertexData = u.merge(h, !0, !1, !0, !0);\n }\n return i.restoreExecutionContext(), i.restoreInstancingContext(), i.restoreGeometryContext(), this._vertexData;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), e.evaluateContext !== void 0 && (this.evaluateContext = e.evaluateContext);\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], VR.prototype, \"evaluateContext\", void 0);\nU(\"BABYLON.InstantiateOnFacesBlock\", VR);\nclass Hv extends Ze {\n /**\n * Create a new InstantiateOnVolumeBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this._currentPosition = new g(), this._vertex0 = new g(), this._vertex1 = new g(), this._vertex2 = new g(), this.evaluateContext = !0, this.gridMode = !1, this.registerInput(\"geometry\", D.Geometry), this.registerInput(\"instance\", D.Geometry, !0), this.registerInput(\"count\", D.Int, !0, 256), this.registerInput(\"matrix\", D.Matrix, !0), this.registerInput(\"rotation\", D.Vector3, !0, g.Zero()), this.registerInput(\"scaling\", D.Vector3, !0, g.One()), this.registerInput(\"gridSize\", D.Int, !0, 10), this.scaling.acceptedConnectionPointTypes.push(D.Float), this.registerOutput(\"output\", D.Geometry);\n }\n /**\n * Gets the current instance index in the current flow\n * @returns the current index\n */\n getInstanceIndex() {\n return this._currentLoopIndex;\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return 0;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentLoopIndex;\n }\n /**\n * Gets the value associated with a contextual positions\n * @returns the value associated with the source\n */\n getOverridePositionsContextualValue() {\n return this._currentPosition;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstantiateOnVolumeBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the instance input component\n */\n get instance() {\n return this._inputs[1];\n }\n /**\n * Gets the count input component\n */\n get count() {\n return this._inputs[2];\n }\n /**\n * Gets the matrix input component\n */\n get matrix() {\n return this._inputs[3];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[4];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[5];\n }\n /**\n * Gets the grid size input component\n */\n get gridSize() {\n return this._inputs[6];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _getValueOnGrid(e, t, i, s) {\n const r = (s - i) / t;\n return i + r / 2 + e * r;\n }\n _getIndexinGrid(e, t, i, s) {\n return e + t * s + i * s * s;\n }\n _buildBlock(e) {\n const t = (i) => {\n if (i.pushExecutionContext(this), i.pushInstancingContext(this), this._vertexData = this.geometry.getConnectedValue(i), i.pushGeometryContext(this._vertexData), !this._vertexData || !this._vertexData.positions || !this._vertexData.indices || !this.instance.isConnected) {\n i.restoreExecutionContext(), i.restoreInstancingContext(), i.restoreGeometryContext(), this.output._storedValue = null;\n return;\n }\n let s = null;\n const r = this.count.getConnectedValue(i), n = [], o = $h(this._vertexData.positions, 0, this._vertexData.positions.length / 3), l = o.minimum, h = o.maximum, c = new g(0.5, 0.8, 0.2), u = this._vertexData.indices.length / 3, d = this.gridSize.getConnectedValue(i);\n this._currentLoopIndex = 0;\n let f;\n if (this.gridMode) {\n f = [];\n for (let p = 0; p < d * d * d; p++)\n f[p] = !1;\n }\n for (let p = 0; p < r; p++) {\n if (this.gridMode) {\n let v = Math.floor(Math.random() * d), T = Math.floor(Math.random() * d), E = Math.floor(Math.random() * d), b = this._getIndexinGrid(v, T, E, d);\n if (f[b]) {\n let S = !1;\n for (let C = 0; C < d * d * d; C++)\n if (!f[C]) {\n E = Math.floor(C / (d * d)), T = Math.floor((C - E * d * d) / d), v = C - E * d * d - T * d, b = this._getIndexinGrid(v, T, E, d), S = !0;\n break;\n }\n if (!S)\n break;\n }\n if (!f[b]) {\n const S = this._getValueOnGrid(v, d, l.x, h.x), C = this._getValueOnGrid(T, d, l.y, h.y), P = this._getValueOnGrid(E, d, l.z, h.z);\n this._currentPosition.set(S, C, P), f[b] = !0;\n }\n } else\n this._currentPosition.set(Math.random() * (h.x - l.x) + l.x, Math.random() * (h.y - l.y) + l.y, Math.random() * (h.z - l.z) + l.z);\n const _ = new nt(this._currentPosition, c);\n let m = 0;\n for (let v = 0; v < u; v++) {\n this._vertex0.fromArray(this._vertexData.positions, this._vertexData.indices[v * 3] * 3), this._vertex1.fromArray(this._vertexData.positions, this._vertexData.indices[v * 3 + 1] * 3), this._vertex2.fromArray(this._vertexData.positions, this._vertexData.indices[v * 3 + 2] * 3);\n const T = _.intersectsTriangle(this._vertex0, this._vertex1, this._vertex2);\n T && T.distance > 0 && m++;\n }\n if (m % 2 === 0) {\n p--;\n continue;\n }\n if (s = this.instance.getConnectedValue(i), !s || !s.positions || s.positions.length === 0)\n continue;\n const x = s.clone();\n if (this.matrix.isConnected) {\n const v = this.matrix.getConnectedValue(i);\n i._instantiateWithPositionAndMatrix(x, this._currentPosition, v, n);\n } else {\n const v = i.adaptInput(this.scaling, D.Vector3, g.OneReadOnly), T = this.rotation.getConnectedValue(i) || g.ZeroReadOnly;\n i._instantiate(x, this._currentPosition, T, v, n);\n }\n this._currentLoopIndex++;\n }\n if (n.length)\n if (n.length === 1)\n this._vertexData = n[0];\n else {\n const p = n.splice(0, 1)[0];\n this._vertexData = p.merge(n, !0, !1, !0, !0);\n }\n return i.restoreGeometryContext(), i.restoreExecutionContext(), i.restoreInstancingContext(), this._vertexData;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n return e += `${this._codeVariableName}.gridMode = ${this.gridMode ? \"true\" : \"false\"};\n`, e;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e.gridMode = this.gridMode, e;\n }\n _deserialize(e) {\n super._deserialize(e), e.evaluateContext !== void 0 && (this.evaluateContext = e.evaluateContext), e.gridMode !== void 0 && (this.gridMode = e.gridMode);\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], Hv.prototype, \"evaluateContext\", void 0);\ny([\n ze(\"Grid mode\", 0, \"MODES\", { notifiers: { rebuild: !0 } })\n], Hv.prototype, \"gridMode\", void 0);\nU(\"BABYLON.InstantiateOnVolumeBlock\", Hv);\nclass nm extends Ze {\n /**\n * Create a new InstantiateBaseBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !0, this.registerInput(\"instance\", D.Geometry, !0), this.registerInput(\"count\", D.Int, !0, 1), this.registerOutput(\"output\", D.Geometry);\n }\n /**\n * Gets the current instance index in the current flow\n * @returns the current index\n */\n getInstanceIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstantiateBaseBlock\";\n }\n /**\n * Gets the instance input component\n */\n get instance() {\n return this._inputs[0];\n }\n /**\n * Gets the count input component\n */\n get count() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e;\n }\n _deserialize(e) {\n super._deserialize(e), e.evaluateContext !== void 0 && (this.evaluateContext = e.evaluateContext);\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], nm.prototype, \"evaluateContext\", void 0);\nclass $k extends nm {\n /**\n * Create a new InstantiateBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"matrix\", D.Matrix, !0), this.registerInput(\"position\", D.Vector3, !0, g.Zero()), this.registerInput(\"rotation\", D.Vector3, !0, g.Zero()), this.registerInput(\"scaling\", D.Vector3, !0, g.One()), this.scaling.acceptedConnectionPointTypes.push(D.Float);\n }\n /**\n * Gets the current instance index in the current flow\n * @returns the current index\n */\n getInstanceIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstantiateBlock\";\n }\n /**\n * Gets the matrix input component\n */\n get matrix() {\n return this._inputs[2];\n }\n /**\n * Gets the position input component\n */\n get position() {\n return this._inputs[3];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[4];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[5];\n }\n _buildBlock(e) {\n const t = (i) => {\n i.pushExecutionContext(this), i.pushInstancingContext(this);\n const s = this.count.getConnectedValue(i), r = [];\n for (this._currentIndex = 0; this._currentIndex < s; this._currentIndex++) {\n const n = this.instance.getConnectedValue(i);\n if (!n || !n.positions || n.positions.length === 0)\n continue;\n const o = n.clone();\n if (this.matrix.isConnected) {\n const l = this.matrix.getConnectedValue(i);\n i._instantiateWithMatrix(o, l, r);\n } else {\n const l = this.position.getConnectedValue(i) || g.ZeroReadOnly, h = i.adaptInput(this.scaling, D.Vector3, g.OneReadOnly), c = this.rotation.getConnectedValue(i) || g.ZeroReadOnly;\n i._instantiate(o, l, c, h, r);\n }\n }\n if (r.length)\n if (r.length === 1)\n this._vertexData = r[0];\n else {\n const n = r.splice(0, 1)[0];\n this._vertexData = n.merge(r, !0, !1, !0, !0);\n }\n return i.restoreExecutionContext(), i.restoreInstancingContext(), this._vertexData;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n}\nU(\"BABYLON.InstantiateBlock\", $k);\nclass Yk extends nm {\n /**\n * Create a new Instantiate Linear Block\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"direction\", D.Vector3, !0, new g(1, 0, 0)), this.registerInput(\"rotation\", D.Vector3, !0, new g(0, 0, 0)), this.registerInput(\"scaling\", D.Vector3, !0, new g(0, 0, 0)), this.scaling.acceptedConnectionPointTypes.push(D.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstantiateLinearBlock\";\n }\n /**\n * Gets the direction input component\n */\n get direction() {\n return this._inputs[2];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[3];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[4];\n }\n _buildBlock(e) {\n const t = (i) => {\n i.pushExecutionContext(this), i.pushInstancingContext(this);\n const s = this.count.getConnectedValue(i), r = [], n = O.Identity(), o = g.Zero(), l = g.Zero(), h = g.Zero();\n for (this._currentIndex = 0; this._currentIndex < s; this._currentIndex++) {\n const c = this.instance.getConnectedValue(i);\n if (!c || !c.positions || c.positions.length === 0)\n continue;\n const u = c.clone(), d = this.direction.getConnectedValue(i), f = this.rotation.getConnectedValue(i), p = i.adaptInput(this.scaling, D.Vector3, g.OneReadOnly);\n o.copyFrom(d.clone().scale(this._currentIndex)), l.copyFrom(f.clone().scale(this._currentIndex)), h.copyFrom(p.clone().scale(this._currentIndex)), h.addInPlaceFromFloats(1, 1, 1), O.ComposeToRef(h, se.FromEulerAngles(l.x, l.y, l.z), o, n), i._instantiateWithMatrix(u, n, r);\n }\n if (r.length)\n if (r.length === 1)\n this._vertexData = r[0];\n else {\n const c = r.splice(0, 1)[0];\n this._vertexData = c.merge(r, !0, !1, !0, !0);\n }\n return i.restoreExecutionContext(), i.restoreInstancingContext(), this._vertexData;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n}\nU(\"BABYLON.InstantiateLinearBlock\", Yk);\nclass jk extends nm {\n /**\n * Create a new InstantiateRadialBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"radius\", D.Int, !0, 0, 0), this.registerInput(\"angleStart\", D.Float, !0, 0), this.registerInput(\"angleEnd\", D.Float, !0, Math.PI * 2), this.registerInput(\"transform\", D.Vector3, !0, new g(0, 0, 0)), this.registerInput(\"rotation\", D.Vector3, !0, new g(0, 0, 0)), this.registerInput(\"scaling\", D.Vector3, !0, new g(0, 0, 0)), this.scaling.acceptedConnectionPointTypes.push(D.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstantiateRadialBlock\";\n }\n /**\n * Gets the direction input component\n */\n get radius() {\n return this._inputs[2];\n }\n /**\n * Gets the direction input component\n */\n get angleStart() {\n return this._inputs[3];\n }\n /**\n * Gets the direction input component\n */\n get angleEnd() {\n return this._inputs[4];\n }\n /**\n * Gets the transform input component\n */\n get transform() {\n return this._inputs[5];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[6];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[7];\n }\n _buildBlock(e) {\n const t = (i) => {\n i.pushExecutionContext(this), i.pushInstancingContext(this);\n const s = this.count.getConnectedValue(i), r = [], n = O.Identity(), o = O.Identity(), l = O.Identity(), h = g.Zero(), c = g.Zero(), u = g.Zero();\n for (this._currentIndex = 0; this._currentIndex < s; this._currentIndex++) {\n const d = this.instance.getConnectedValue(i);\n if (!d || !d.positions || d.positions.length === 0)\n continue;\n const f = d.clone(), p = this.radius.getConnectedValue(i), _ = this.angleStart.getConnectedValue(i), m = this.angleEnd.getConnectedValue(i), x = this.transform.getConnectedValue(i), v = this.rotation.getConnectedValue(i), T = i.adaptInput(this.scaling, D.Vector3, g.OneReadOnly), b = (m - _) / s, S = _ + b * this._currentIndex, C = se.FromEulerAngles(0, S, 0);\n h.copyFrom(x.clone().scale(this._currentIndex)), c.copyFrom(v.clone().scale(this._currentIndex)), u.copyFrom(T.clone().scale(this._currentIndex)), u.addInPlaceFromFloats(1, 1, 1), O.RotationYawPitchRollToRef(c.y, c.x, c.z, n), o.setTranslationFromFloats(0, 0, p), O.ComposeToRef(u, C, h, l), n.multiplyToRef(o, o), o.multiplyToRef(l, l), i._instantiateWithMatrix(f, l, r);\n }\n if (r.length)\n if (r.length === 1)\n this._vertexData = r[0];\n else {\n const d = r.splice(0, 1)[0];\n this._vertexData = d.merge(r, !0, !1, !0, !0);\n }\n return i.restoreExecutionContext(), i.restoreInstancingContext(), this._vertexData;\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n}\nU(\"BABYLON.InstantiateRadialBlock\", jk);\nclass Kk extends Ze {\n /**\n * Create a new IntFloatConverterBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"float \", D.Float, !0), this.registerInput(\"int \", D.Int, !0), this.registerOutput(\"float\", D.Float), this.registerOutput(\"int\", D.Int);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"IntFloatConverterBlock\";\n }\n /**\n * Gets the float input component\n */\n get floatIn() {\n return this._inputs[0];\n }\n /**\n * Gets the int input component\n */\n get intIn() {\n return this._inputs[1];\n }\n /**\n * Gets the float output component\n */\n get floatOut() {\n return this._outputs[0];\n }\n /**\n * Gets the int output component\n */\n get intOut() {\n return this._outputs[1];\n }\n _inputRename(e) {\n return e === \"float \" ? \"floatIn\" : e === \"int \" ? \"intIn\" : e;\n }\n _buildBlock() {\n this.floatOut._storedFunction = (e) => this.floatIn.isConnected ? this.floatIn.getConnectedValue(e) : this.intIn.isConnected ? this.intIn.getConnectedValue(e) : 0, this.intOut._storedFunction = (e) => this.floatIn.isConnected ? Math.floor(this.floatIn.getConnectedValue(e)) : this.intIn.isConnected ? Math.floor(this.intIn.getConnectedValue(e)) : 0;\n }\n}\nU(\"BABYLON.IntFloatConverterBlock\", Kk);\nclass qk extends Ze {\n /**\n * Create a new DebugBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.log = [], this._isDebug = !0, this.registerInput(\"input\", D.AutoDetect), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._inputs[0].excludedConnectionPointTypes.push(D.Geometry), this._inputs[0].excludedConnectionPointTypes.push(D.Texture);\n }\n /**\n * Gets the time spent to build this block (in ms)\n */\n get buildExecutionTime() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DebugBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n if (!this.input.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n this.log = [];\n const t = (i) => {\n const s = this.input.getConnectedValue(i);\n if (s == null)\n return this.log.push([\"null\", \"\"]), s;\n switch (this.input.type) {\n case D.Vector2:\n this.log.push([rk(s, 4), s.toString()]);\n break;\n case D.Vector3:\n this.log.push([nk(s, 4), s.toString()]);\n break;\n case D.Vector4:\n this.log.push([ak(s, 4), s.toString()]);\n break;\n default:\n this.log.push([s.toString(), s.toString()]);\n break;\n }\n return s;\n };\n this.output.isConnected ? this.output._storedFunction = t : this.output._storedValue = t(e);\n }\n}\nU(\"BABYLON.DebugBlock\", qk);\nclass Qk extends Ze {\n /**\n * Create a new GeometryInfoBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"geometry\", D.Geometry), this.registerOutput(\"output\", D.Geometry), this.registerOutput(\"id\", D.Int), this.registerOutput(\"collectionId\", D.Int), this.registerOutput(\"verticesCount\", D.Int), this.registerOutput(\"facesCount\", D.Int);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryInfoBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the id output component\n */\n get id() {\n return this._outputs[1];\n }\n /**\n * Gets the collectionId output component\n */\n get collectionId() {\n return this._outputs[2];\n }\n /**\n * Gets the verticesCount output component\n */\n get verticesCount() {\n return this._outputs[3];\n }\n /**\n * Gets the facesCount output component\n */\n get facesCount() {\n return this._outputs[4];\n }\n _buildBlock() {\n if (!this.geometry.isConnected) {\n this.id._storedValue = 0, this.collectionId._storedValue = 0, this.verticesCount._storedValue = 0, this.facesCount._storedValue = 0, this.output._storedValue = 0, this.id._storedFunction = null, this.collectionId._storedFunction = null, this.verticesCount._storedFunction = null, this.facesCount._storedFunction = null, this.output._storedFunction = null;\n return;\n }\n this.output._storedFunction = (e) => (this._currentVertexData = this.geometry.getConnectedValue(e), this._currentVertexData), this.id._storedFunction = (e) => (this._currentVertexData = this._currentVertexData || this.geometry.getConnectedValue(e), this._currentVertexData.uniqueId), this.collectionId._storedFunction = (e) => (this._currentVertexData = this._currentVertexData || this.geometry.getConnectedValue(e), this._currentVertexData.metadata ? this._currentVertexData.metadata.collectionId : 0), this.verticesCount._storedFunction = (e) => (this._currentVertexData = this._currentVertexData || this.geometry.getConnectedValue(e), this._currentVertexData.positions ? this._currentVertexData.positions.length / 3 : 0), this.facesCount._storedFunction = (e) => (this._currentVertexData = this._currentVertexData || this.geometry.getConnectedValue(e), this._currentVertexData.indices ? this._currentVertexData.indices.length / 3 : 0);\n }\n}\nU(\"BABYLON.GeometryInfoBlock\", Qk);\nvar Sa;\n(function(a) {\n a[a.Spherical = 0] = \"Spherical\", a[a.Cylindrical = 1] = \"Cylindrical\", a[a.Cubic = 2] = \"Cubic\";\n})(Sa || (Sa = {}));\nclass UR extends Ze {\n /**\n * Create a new MappingBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.mapping = Sa.Spherical, this.registerInput(\"position\", D.Vector3), this.registerInput(\"normal\", D.Vector3), this.registerInput(\"center\", D.Vector3, !0, g.Zero()), this.registerOutput(\"uv\", D.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MappingBlock\";\n }\n /**\n * Gets the position input component\n */\n get position() {\n return this._inputs[0];\n }\n /**\n * Gets the normal input component\n */\n get normal() {\n return this._inputs[1];\n }\n /**\n * Gets the center input component\n */\n get center() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get uv() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.position.isConnected) {\n this.uv._storedFunction = null, this.uv._storedValue = null;\n return;\n }\n const e = g.Zero(), t = (i) => {\n const s = this.position.getConnectedValue(i) || g.Zero(), r = this.normal.getConnectedValue(i) || g.Zero(), n = this.center.getConnectedValue(i), o = Q.Zero();\n switch (this.mapping) {\n case Sa.Spherical: {\n s.subtractToRef(n, e);\n const l = e.length();\n l > 0 && (o.x = Math.acos(e.y / l) / Math.PI, (e.x !== 0 || e.z !== 0) && (o.y = Math.atan2(e.x, e.z) / (Math.PI * 2)));\n break;\n }\n case Sa.Cylindrical: {\n s.subtractToRef(n, e);\n const l = e.length();\n l > 0 && (o.x = Math.atan2(e.x / l, e.z / l) / (Math.PI * 2), o.y = (e.y + 1) / 2);\n break;\n }\n case Sa.Cubic: {\n const l = Math.abs(r.x), h = Math.abs(r.y), c = Math.abs(r.z), u = Math.max(Math.abs(s.x), Math.abs(s.y), Math.abs(s.z));\n let d = 0, f = 0;\n l >= h && l >= c ? (d = s.y / u - n.y, f = s.z / u - n.z) : h >= l && h >= c ? (d = s.x / u - n.x, f = s.z / u - n.z) : (d = s.x / u - n.x, f = s.y / u - n.y), o.x = (d + 1) / 2, o.y = (f + 1) / 2;\n }\n }\n return o;\n };\n this.uv._storedFunction = (i) => t(i);\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.mapping = BABYLON.MappingTypes.${Sa[this.mapping]};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.mapping = this.mapping, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.mapping = e.mapping;\n }\n}\ny([\n ze(\"Mapping\", 4, \"ADVANCED\", {\n notifiers: { rebuild: !0 },\n options: [\n { label: \"Spherical\", value: Sa.Spherical },\n { label: \"Cylindrical\", value: Sa.Cylindrical },\n { label: \"Cubic\", value: Sa.Cubic }\n ]\n })\n], UR.prototype, \"mapping\", void 0);\nU(\"BABYLON.MappingBlock\", UR);\nclass Zk extends Ze {\n /**\n * Create a new MatrixComposeBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"matrix0\", D.Matrix), this.registerInput(\"matrix1\", D.Matrix), this.registerOutput(\"output\", D.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MatrixComposeBlock\";\n }\n /**\n * Gets the matrix0 input component\n */\n get matrix0() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix1 input component\n */\n get matrix1() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n this.output._storedFunction = (e) => {\n if (!this.matrix0.isConnected || !this.matrix1.isConnected)\n return null;\n const t = this.matrix0.getConnectedValue(e), i = this.matrix1.getConnectedValue(e);\n return !t || !i ? null : t.multiply(i);\n };\n }\n}\nU(\"BABYLON.MatrixComposeBlock\", Zk);\nclass Jk extends Ze {\n /** Gets the list of attached endpoints */\n get endpoints() {\n return this._endpoints;\n }\n /**\n * Create a new TeleportInBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this._endpoints = [], this._isTeleportIn = !0, this.registerInput(\"input\", D.AutoDetect);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TeleportInBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n _dumpCode(e, t) {\n let i = super._dumpCode(e, t);\n for (const s of this.endpoints)\n t.indexOf(s) === -1 && (i += s._dumpCode(e, t));\n return i;\n }\n /**\n * Checks if the current block is an ancestor of a given type\n * @param type defines the potential type to check\n * @returns true if block is a descendant\n */\n isAnAncestorOfType(e) {\n if (this.getClassName() === e)\n return !0;\n for (const t of this.endpoints)\n if (t.isAnAncestorOfType(e))\n return !0;\n return !1;\n }\n /**\n * Checks if the current block is an ancestor of a given block\n * @param block defines the potential descendant block to check\n * @returns true if block is a descendant\n */\n isAnAncestorOf(e) {\n for (const t of this.endpoints)\n if (t === e || t.isAnAncestorOf(e))\n return !0;\n return !1;\n }\n /**\n * Get the first descendant using a predicate\n * @param predicate defines the predicate to check\n * @returns descendant or null if none found\n */\n getDescendantOfPredicate(e) {\n if (e(this))\n return this;\n for (const t of this.endpoints) {\n const i = t.getDescendantOfPredicate(e);\n if (i)\n return i;\n }\n return null;\n }\n /**\n * Add an enpoint to this block\n * @param endpoint define the endpoint to attach to\n */\n attachToEndpoint(e) {\n e.detach(), this._endpoints.push(e), e._entryPoint = this, e._outputs[0]._typeConnectionSource = this._inputs[0], e._tempEntryPointUniqueId = null, e.name = \"> \" + this.name;\n }\n /**\n * Remove enpoint from this block\n * @param endpoint define the endpoint to remove\n */\n detachFromEndpoint(e) {\n const t = this._endpoints.indexOf(e);\n t !== -1 && (this._endpoints.splice(t, 1), e._outputs[0]._typeConnectionSource = null, e._entryPoint = null);\n }\n _buildBlock() {\n for (const e of this._endpoints)\n e.output._storedFunction = (t) => this.input.getConnectedValue(t);\n }\n}\nU(\"BABYLON.TeleportInBlock\", Jk);\nclass eG extends Ze {\n /**\n * Create a new TeleportOutBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this._entryPoint = null, this._tempEntryPointUniqueId = null, this._isTeleportOut = !0, this.registerOutput(\"output\", D.BasedOnInput);\n }\n /**\n * Gets the entry point\n */\n get entryPoint() {\n return this._entryPoint;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TeleportOutBlock\";\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /** Detach from entry point */\n detach() {\n this._entryPoint && this._entryPoint.detachFromEndpoint(this);\n }\n _buildBlock() {\n }\n _customBuildStep(e) {\n this.entryPoint && this.entryPoint.build(e);\n }\n _dumpCode(e, t) {\n let i = \"\";\n return this.entryPoint && t.indexOf(this.entryPoint) === -1 && (i += this.entryPoint._dumpCode(e, t)), i + super._dumpCode(e, t);\n }\n _dumpCodeForOutputConnections(e) {\n let t = super._dumpCodeForOutputConnections(e);\n return this.entryPoint && (t += this.entryPoint._dumpCodeForOutputConnections(e)), t;\n }\n /**\n * Clone the current block to a new identical block\n * @returns a copy of the current block\n */\n clone() {\n const e = super.clone();\n return this.entryPoint && this.entryPoint.attachToEndpoint(e), e;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode();\n return this.entryPoint && (e += `${this.entryPoint._codeVariableName}.attachToEndpoint(${this._codeVariableName});\n`), e;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n var t;\n const e = super.serialize();\n return e.entryPoint = ((t = this.entryPoint) == null ? void 0 : t.uniqueId) ?? \"\", e;\n }\n _deserialize(e) {\n super._deserialize(e), this._tempEntryPointUniqueId = e.entryPoint;\n }\n}\nU(\"BABYLON.TeleportOutBlock\", eG);\nclass kR extends Ze {\n /**\n * Gets the texture data\n */\n get textureData() {\n return this._data;\n }\n /**\n * Gets the texture width\n */\n get textureWidth() {\n return this._width;\n }\n /**\n * Gets the texture height\n */\n get textureHeight() {\n return this._height;\n }\n /**\n * Creates a new GeometryTextureBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this._data = null, this.serializedCachedData = !1, this.registerOutput(\"texture\", D.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryTextureBlock\";\n }\n /**\n * Gets the texture component\n */\n get texture() {\n return this._outputs[0];\n }\n _prepareImgToLoadAsync(e) {\n return new Promise((t, i) => {\n const s = new Image(), r = document.createElement(\"canvas\"), n = r.getContext(\"2d\");\n s.onload = () => {\n r.width = s.width, r.height = s.height, n.drawImage(s, 0, 0);\n const l = n.getImageData(0, 0, s.width, s.height).data, h = new Float32Array(l.length);\n for (let c = 0; c < l.length; c++)\n h[c] = l[c] / 255;\n this._data = h, this._width = s.width, this._height = s.height, t();\n }, s.onerror = () => {\n this._data = null, i();\n }, s.src = e;\n });\n }\n /**\n * Remove stored data\n */\n cleanData() {\n this._data = null;\n }\n /**\n * Load the texture data\n * @param imageFile defines the file to load data from\n * @returns a promise fulfilled when image data is loaded\n */\n loadTextureFromFileAsync(e) {\n return this._prepareImgToLoadAsync(URL.createObjectURL(e));\n }\n /**\n * Load the texture data\n * @param url defines the url to load data from\n * @returns a promise fulfilled when image data is loaded\n */\n loadTextureFromUrlAsync(e) {\n return this._prepareImgToLoadAsync(e);\n }\n /**\n * Load the texture data\n * @param texture defines the source texture\n * @returns a promise fulfilled when image data is loaded\n */\n extractFromTextureAsync(e) {\n return new Promise((t, i) => {\n if (!e.isReady()) {\n e.onLoadObservable.addOnce(() => this.extractFromTextureAsync(e).then(t).catch(i));\n return;\n }\n const s = e.getSize();\n yO.GetTextureDataAsync(e, s.width, s.height).then(async (r) => {\n const n = new Float32Array(r.length);\n for (let o = 0; o < r.length; o++)\n n[o] = r[o] / 255;\n this._data = n, this._width = s.width, this._height = s.height, t();\n }).catch(i);\n });\n }\n _buildBlock() {\n if (!this._data) {\n this.texture._storedValue = null;\n return;\n }\n const e = {\n data: this._data,\n width: this._width,\n height: this._height\n };\n this.texture._storedValue = e;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.width = this._width, e.height = this._height, e.serializedCachedData = this.serializedCachedData, this._data && this.serializedCachedData && (e.data = Array.from(this._data)), e;\n }\n _deserialize(e) {\n super._deserialize(e), this._width = e.width, this._height = e.height, e.data ? (this._data = new Float32Array(e.data), this.serializedCachedData = !0) : this.serializedCachedData = !!e.serializedCachedData;\n }\n}\ny([\n ze(\"Serialize cached data\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], kR.prototype, \"serializedCachedData\", void 0);\nU(\"BABYLON.GeometryTextureBlock\", kR);\nclass GR extends Ze {\n /**\n * Creates a new GeometryTextureFetchBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.clampCoordinates = !0, this.registerInput(\"texture\", D.Texture), this.registerInput(\"coordinates\", D.Vector2), this.registerOutput(\"rgba\", D.Vector4), this.registerOutput(\"rgb\", D.Vector3), this.registerOutput(\"r\", D.Float), this.registerOutput(\"g\", D.Float), this.registerOutput(\"b\", D.Float), this.registerOutput(\"a\", D.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryTextureFetchBlock\";\n }\n /**\n * Gets the texture component\n */\n get texture() {\n return this.inputs[0];\n }\n /**\n * Gets the coordinates component\n */\n get coordinates() {\n return this.inputs[1];\n }\n /**\n * Gets the rgba component\n */\n get rgba() {\n return this._outputs[0];\n }\n /**\n * Gets the rgb component\n */\n get rgb() {\n return this._outputs[1];\n }\n /**\n * Gets the r component\n */\n get r() {\n return this._outputs[2];\n }\n /**\n * Gets the g component\n */\n get g() {\n return this._outputs[3];\n }\n /**\n * Gets the b component\n */\n get b() {\n return this._outputs[4];\n }\n /**\n * Gets the a component\n */\n get a() {\n return this._outputs[5];\n }\n _repeatClamp(e) {\n return e >= 0 ? e % 1 : 1 - Math.abs(e) % 1;\n }\n _buildBlock() {\n const e = (t) => {\n const i = this.texture.getConnectedValue(t);\n if (!i || !i.data)\n return null;\n const s = this.coordinates.getConnectedValue(t);\n if (!s)\n return null;\n const r = this.clampCoordinates ? Math.max(0, Math.min(s.x, 1)) : this._repeatClamp(s.x), n = this.clampCoordinates ? Math.max(0, Math.min(s.y, 1)) : this._repeatClamp(s.y), o = Math.floor(r * (i.width - 1)), l = Math.floor(n * (i.height - 1)), h = o + i.width * l;\n return Ne.FromArray(i.data, h * 4);\n };\n this.rgba._storedFunction = (t) => e(t), this.rgb._storedFunction = (t) => {\n const i = e(t);\n return i ? i.toVector3() : null;\n }, this.r._storedFunction = (t) => {\n const i = e(t);\n return i ? i.x : null;\n }, this.g._storedFunction = (t) => {\n const i = e(t);\n return i ? i.y : null;\n }, this.b._storedFunction = (t) => {\n const i = e(t);\n return i ? i.z : null;\n }, this.a._storedFunction = (t) => {\n const i = e(t);\n return i ? i.w : null;\n };\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.clampCoordinates = ${this.clampCoordinates};\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.clampCoordinates = this.clampCoordinates, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.clampCoordinates = e.clampCoordinates;\n }\n}\ny([\n ze(\"Clamp Coordinates\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], GR.prototype, \"clampCoordinates\", void 0);\nU(\"BABYLON.GeometryTextureFetchBlock\", GR);\nclass tG extends Ze {\n /**\n * Create a new BoundingBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"geometry\", D.Geometry), this.registerOutput(\"min\", D.Vector3), this.registerOutput(\"max\", D.Vector3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"BoundingBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the min output component\n */\n get min() {\n return this._outputs[0];\n }\n /**\n * Gets the max output component\n */\n get max() {\n return this._outputs[1];\n }\n _buildBlock() {\n this.min._storedFunction = (e) => {\n const t = this.geometry.getConnectedValue(e);\n return t ? $h(t.positions, 0, t.positions.length / 3).minimum : null;\n }, this.max._storedFunction = (e) => {\n const t = this.geometry.getConnectedValue(e);\n return t ? $h(t.positions, 0, t.positions.length / 3).maximum : null;\n };\n }\n}\nU(\"BABYLON.BoundingBlock\", tG);\nvar ba;\n(function(a) {\n a[a.Intersect = 0] = \"Intersect\", a[a.Subtract = 1] = \"Subtract\", a[a.Union = 2] = \"Union\";\n})(ba || (ba = {}));\nclass Xv extends Ze {\n /**\n * Create a new BooleanGeometryBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.evaluateContext = !1, this.operation = ba.Intersect, this.registerInput(\"geometry0\", D.Geometry), this.registerInput(\"geometry1\", D.Geometry), this.registerOutput(\"output\", D.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"BooleanGeometryBlock\";\n }\n /**\n * Gets the geometry0 input component\n */\n get geometry0() {\n return this._inputs[0];\n }\n /**\n * Gets the geometry1 input component\n */\n get geometry1() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(e) {\n const t = (i) => {\n const s = this.geometry0.getConnectedValue(i), r = this.geometry1.getConnectedValue(i);\n if (!s || !r)\n return null;\n const n = s.positions.length / 3;\n !s.normals && r.normals && (s.normals = new Array(s.positions.length)), !r.normals && s.normals && (r.normals = new Array(r.positions.length)), !s.uvs && r.uvs && (s.uvs = new Array(n * 2)), !r.uvs && s.uvs && (r.uvs = new Array(n * 2)), !s.colors && r.colors && (s.colors = new Array(n * 4)), !r.colors && s.colors && (r.colors = new Array(n * 4));\n const o = ma.FromVertexData(s), l = ma.FromVertexData(r);\n let h;\n switch (this.operation) {\n case ba.Intersect:\n h = o.intersect(l);\n break;\n case ba.Subtract:\n h = o.subtract(l);\n break;\n case ba.Union:\n h = o.union(l);\n break;\n }\n return h.toVertexData();\n };\n this.evaluateContext ? this.output._storedFunction = t : (this.output._storedFunction = null, this.output._storedValue = t(e));\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\n`;\n return e += `${this._codeVariableName}.operation = BABYLON.BooleanGeometryOperations.${ba[this.operation]};\n`, e;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const e = super.serialize();\n return e.evaluateContext = this.evaluateContext, e.operation = this.operation, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.evaluateContext = e.evaluateContext, e.operation && (this.operation = e.operation);\n }\n}\ny([\n ze(\"Evaluate context\", 0, \"ADVANCED\", { notifiers: { rebuild: !0 } })\n], Xv.prototype, \"evaluateContext\", void 0);\ny([\n ze(\"Operation\", 4, \"ADVANCED\", {\n notifiers: { rebuild: !0 },\n options: [\n { label: \"Intersect\", value: ba.Intersect },\n { label: \"Subtract\", value: ba.Subtract },\n { label: \"Union\", value: ba.Union }\n ]\n })\n], Xv.prototype, \"operation\", void 0);\nU(\"BABYLON.BooleanGeometryBlock\", Xv);\nclass iG extends Ze {\n /**\n * Creates a new GeometryArcTan2Block\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"x\", D.AutoDetect), this.registerInput(\"y\", D.AutoDetect), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Geometry), this._inputs[0].excludedConnectionPointTypes.push(D.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryArcTan2Block\";\n }\n /**\n * Gets the x operand input component\n */\n get x() {\n return this._inputs[0];\n }\n /**\n * Gets the y operand input component\n */\n get y() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.x.isConnected || !this.y.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n const e = (t, i) => Math.atan2(t, i);\n this.output._storedFunction = (t) => {\n const i = this.x.getConnectedValue(t), s = this.y.getConnectedValue(t);\n switch (this.x.type) {\n case D.Int:\n case D.Float:\n return e(i, s);\n case D.Vector2:\n return new Q(e(i.x, s.x), e(i.y, s.y));\n case D.Vector3:\n return new g(e(i.x, s.x), e(i.y, s.y), e(i.z, s.z));\n case D.Vector4:\n return new Ne(e(i.x, s.x), e(i.y, s.y), e(i.z, s.z), e(i.w, s.w));\n }\n return 0;\n };\n }\n}\nU(\"BABYLON.GeometryArcTan2Block\", iG);\nclass sG extends Ze {\n /**\n * Creates a new GeometryLerpBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"left\", D.AutoDetect), this.registerInput(\"right\", D.AutoDetect), this.registerInput(\"gradient\", D.Float), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Geometry), this._inputs[0].excludedConnectionPointTypes.push(D.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryLerpBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the gradient operand input component\n */\n get gradient() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.left.isConnected || !this.right.isConnected || !this.gradient.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n const e = (t, i, s) => (1 - t) * i + t * s;\n return this.output._storedFunction = (t) => {\n const i = this.left.getConnectedValue(t), s = this.right.getConnectedValue(t), r = this.gradient.getConnectedValue(t);\n switch (this.left.type) {\n case D.Int:\n case D.Float:\n return e(r, i, s);\n case D.Vector2:\n return new Q(e(r, i.x, s.x), e(r, i.y, s.y));\n case D.Vector3:\n return new g(e(r, i.x, s.x), e(r, i.y, s.y), e(r, i.z, s.z));\n case D.Vector4:\n return new Ne(e(r, i.x, s.x), e(r, i.y, s.y), e(r, i.z, s.z), e(r, i.w, s.w));\n }\n return 0;\n }, this;\n }\n}\nU(\"BABYLON.GeometryLerpBlock\", sG);\nclass rG extends Ze {\n /**\n * Creates a new GeometryNLerpBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"left\", D.AutoDetect), this.registerInput(\"right\", D.AutoDetect), this.registerInput(\"gradient\", D.Float), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Geometry), this._inputs[0].excludedConnectionPointTypes.push(D.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryNLerpBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the gradient operand input component\n */\n get gradient() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.left.isConnected || !this.right.isConnected || !this.gradient.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n const e = (t, i, s) => (1 - t) * i + t * s;\n return this.output._storedFunction = (t) => {\n const i = this.left.getConnectedValue(t), s = this.right.getConnectedValue(t), r = this.gradient.getConnectedValue(t);\n switch (this.left.type) {\n case D.Int:\n case D.Float:\n return e(r, i, s);\n case D.Vector2: {\n const n = new Q(e(r, i.x, s.x), e(r, i.y, s.y));\n return n.normalize(), n;\n }\n case D.Vector3: {\n const n = new g(e(r, i.x, s.x), e(r, i.y, s.y), e(r, i.z, s.z));\n return n.normalize(), n;\n }\n case D.Vector4: {\n const n = new Ne(e(r, i.x, s.x), e(r, i.y, s.y), e(r, i.z, s.z), e(r, i.w, s.w));\n return n.normalize(), n;\n }\n }\n return 0;\n }, this;\n }\n}\nU(\"BABYLON.GeometryNLerpBlock\", rG);\nclass nG extends Ze {\n /**\n * Creates a new GeometryStepBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"value\", D.AutoDetect), this.registerInput(\"edge\", D.Float), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Geometry), this._inputs[0].excludedConnectionPointTypes.push(D.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryStepBlock\";\n }\n /**\n * Gets the value operand input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the edge operand input component\n */\n get edge() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected || !this.edge.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n const e = (t, i) => t < i ? 0 : 1;\n return this.output._storedFunction = (t) => {\n const i = this.value.getConnectedValue(t), s = this.edge.getConnectedValue(t);\n switch (this.value.type) {\n case D.Int:\n case D.Float:\n return e(i, s);\n case D.Vector2:\n return new Q(e(i.x, s), e(i.y, s));\n case D.Vector3:\n return new g(e(i.x, s), e(i.y, s), e(i.z, s));\n case D.Vector4:\n return new Ne(e(i.x, s), e(i.y, s), e(i.z, s), e(i.w, s));\n }\n return 0;\n }, this;\n }\n}\nU(\"BABYLON.GeometryStepBlock\", nG);\nclass aG extends Ze {\n /**\n * Creates a new GeometrySmoothStepBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"value\", D.AutoDetect), this.registerInput(\"edge0\", D.Float), this.registerInput(\"edge1\", D.Float), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Geometry), this._inputs[0].excludedConnectionPointTypes.push(D.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometrySmoothStepBlock\";\n }\n /**\n * Gets the value operand input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the first edge operand input component\n */\n get edge0() {\n return this._inputs[1];\n }\n /**\n * Gets the second edge operand input component\n */\n get edge1() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected || !this.edge0.isConnected || !this.edge1.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n const e = (t, i, s) => {\n const r = Math.max(0, Math.min((t - i) / (s - i), 1));\n return r * r * (3 - 2 * r);\n };\n return this.output._storedFunction = (t) => {\n const i = this.value.getConnectedValue(t), s = this.edge0.getConnectedValue(t), r = this.edge1.getConnectedValue(t);\n switch (this.value.type) {\n case D.Int:\n case D.Float:\n return e(i, s, r);\n case D.Vector2:\n return new Q(e(i.x, s, r), e(i.y, s, r));\n case D.Vector3:\n return new g(e(i.x, s, r), e(i.y, s, r), e(i.z, s, r));\n case D.Vector4:\n return new Ne(e(i.x, s, r), e(i.y, s, r), e(i.z, s, r), e(i.w, s, r));\n }\n return 0;\n }, this;\n }\n}\nU(\"BABYLON.GeometrySmoothStepBlock\", aG);\nclass oG extends Ze {\n /**\n * Creates a new GeometryModBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"left\", D.AutoDetect), this.registerInput(\"right\", D.AutoDetect), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Geometry), this._inputs[0].excludedConnectionPointTypes.push(D.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryModBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.left.isConnected || !this.right.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n const e = (t, i) => t - Math.floor(t / i) * i;\n return this.output._storedFunction = (t) => {\n const i = this.left.getConnectedValue(t), s = this.right.getConnectedValue(t);\n switch (this.left.type) {\n case D.Int:\n case D.Float:\n return e(i, s);\n case D.Vector2:\n return new Q(e(i.x, s.x), e(i.y, s.y));\n case D.Vector3:\n return new g(e(i.x, s.x), e(i.y, s.y), e(i.z, s.z));\n case D.Vector4:\n return new Ne(e(i.x, s.x), e(i.y, s.y), e(i.z, s.z), e(i.w, s.w));\n }\n return 0;\n }, this;\n }\n}\nU(\"BABYLON.GeometryModBlock\", oG);\nclass lG extends Ze {\n /**\n * Creates a new GeometryPowBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"value\", D.AutoDetect), this.registerInput(\"power\", D.AutoDetect), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Geometry), this._inputs[0].excludedConnectionPointTypes.push(D.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryPowBlock\";\n }\n /**\n * Gets the value operand input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the power operand input component\n */\n get power() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected || !this.power.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n const e = (t, i) => Math.pow(t, i);\n return this.output._storedFunction = (t) => {\n const i = this.value.getConnectedValue(t), s = this.power.getConnectedValue(t);\n switch (this.value.type) {\n case D.Int:\n case D.Float:\n return e(i, s);\n case D.Vector2:\n return new Q(e(i.x, s), e(i.y, s));\n case D.Vector3:\n return new g(e(i.x, s), e(i.y, s), e(i.z, s));\n case D.Vector4:\n return new Ne(e(i.x, s), e(i.y, s), e(i.z, s), e(i.w, s));\n }\n return 0;\n }, this;\n }\n}\nU(\"BABYLON.GeometryPowBlock\", lG);\nclass $v extends Ze {\n /**\n * Creates a new GeometryClampBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.minimum = 0, this.maximum = 1, this.registerInput(\"value\", D.AutoDetect), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Geometry), this._inputs[0].excludedConnectionPointTypes.push(D.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryClampBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n const e = (t) => Math.max(this.minimum, Math.min(t, this.maximum));\n return this.output._storedFunction = (t) => {\n const i = this.value.getConnectedValue(t);\n switch (this.value.type) {\n case D.Int:\n case D.Float:\n return e(i);\n case D.Vector2:\n return new Q(e(i.x), e(i.y));\n case D.Vector3:\n return new g(e(i.x), e(i.y), e(i.z));\n case D.Vector4:\n return new Ne(e(i.x), e(i.y), e(i.z), e(i.w));\n }\n return 0;\n }, this;\n }\n _dumpPropertiesCode() {\n let e = super._dumpPropertiesCode() + `${this._codeVariableName}.minimum = ${this.minimum};\n`;\n return e += `${this._codeVariableName}.maximum = ${this.maximum};\n`, e;\n }\n serialize() {\n const e = super.serialize();\n return e.minimum = this.minimum, e.maximum = this.maximum, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.minimum = e.minimum, this.maximum = e.maximum;\n }\n}\ny([\n ze(\n \"Minimum\",\n 1\n /* PropertyTypeForEdition.Float */\n )\n], $v.prototype, \"minimum\", void 0);\ny([\n ze(\n \"Maximum\",\n 1\n /* PropertyTypeForEdition.Float */\n )\n], $v.prototype, \"maximum\", void 0);\nU(\"BABYLON.GeometryClampBlock\", $v);\nclass hG extends Ze {\n /**\n * Creates a new GeometryCrossBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"left\", D.AutoDetect), this.registerInput(\"right\", D.AutoDetect), this.registerOutput(\"output\", D.Vector3), this._linkConnectionTypes(0, 1), this._inputs[0].excludedConnectionPointTypes.push(D.Int), this._inputs[0].excludedConnectionPointTypes.push(D.Float), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Vector2), this._inputs[1].excludedConnectionPointTypes.push(D.Int), this._inputs[1].excludedConnectionPointTypes.push(D.Float), this._inputs[1].excludedConnectionPointTypes.push(D.Matrix), this._inputs[1].excludedConnectionPointTypes.push(D.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryCrossBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.left.isConnected || !this.right.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n return this.output._storedFunction = (e) => {\n const t = this.left.getConnectedValue(e), i = this.right.getConnectedValue(e);\n switch (this.left.type) {\n case D.Vector3:\n return g.Cross(t, i);\n case D.Vector4:\n return g.Cross(t.toVector3(), i.toVector3());\n }\n return 0;\n }, this;\n }\n}\nU(\"BABYLON.GeometryCrossBlock\", hG);\nvar ut;\n(function(a) {\n a[a.EaseInSine = 0] = \"EaseInSine\", a[a.EaseOutSine = 1] = \"EaseOutSine\", a[a.EaseInOutSine = 2] = \"EaseInOutSine\", a[a.EaseInQuad = 3] = \"EaseInQuad\", a[a.EaseOutQuad = 4] = \"EaseOutQuad\", a[a.EaseInOutQuad = 5] = \"EaseInOutQuad\", a[a.EaseInCubic = 6] = \"EaseInCubic\", a[a.EaseOutCubic = 7] = \"EaseOutCubic\", a[a.EaseInOutCubic = 8] = \"EaseInOutCubic\", a[a.EaseInQuart = 9] = \"EaseInQuart\", a[a.EaseOutQuart = 10] = \"EaseOutQuart\", a[a.EaseInOutQuart = 11] = \"EaseInOutQuart\", a[a.EaseInQuint = 12] = \"EaseInQuint\", a[a.EaseOutQuint = 13] = \"EaseOutQuint\", a[a.EaseInOutQuint = 14] = \"EaseInOutQuint\", a[a.EaseInExpo = 15] = \"EaseInExpo\", a[a.EaseOutExpo = 16] = \"EaseOutExpo\", a[a.EaseInOutExpo = 17] = \"EaseInOutExpo\", a[a.EaseInCirc = 18] = \"EaseInCirc\", a[a.EaseOutCirc = 19] = \"EaseOutCirc\", a[a.EaseInOutCirc = 20] = \"EaseInOutCirc\", a[a.EaseInBack = 21] = \"EaseInBack\", a[a.EaseOutBack = 22] = \"EaseOutBack\", a[a.EaseInOutBack = 23] = \"EaseInOutBack\", a[a.EaseInElastic = 24] = \"EaseInElastic\", a[a.EaseOutElastic = 25] = \"EaseOutElastic\", a[a.EaseInOutElastic = 26] = \"EaseInOutElastic\";\n})(ut || (ut = {}));\nclass zR extends Ze {\n /**\n * Creates a new CurveBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.type = ut.EaseInOutSine, this.registerInput(\"input\", D.AutoDetect), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[0].excludedConnectionPointTypes.push(D.Int);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryCurveBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.input.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n let e;\n switch (this.type) {\n case ut.EaseInSine:\n e = (t) => 1 - Math.cos(t * 3.1415 / 2);\n break;\n case ut.EaseOutSine:\n e = (t) => Math.sin(t * 3.1415 / 2);\n break;\n case ut.EaseInOutSine:\n e = (t) => -(Math.cos(t * 3.1415) - 1) / 2;\n break;\n case ut.EaseInQuad:\n e = (t) => t * t;\n break;\n case ut.EaseOutQuad:\n e = (t) => (1 - t) * (1 - t);\n break;\n case ut.EaseInOutQuad: {\n e = (t) => t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;\n break;\n }\n case ut.EaseInCubic:\n e = (t) => t * t * t;\n break;\n case ut.EaseOutCubic: {\n e = (t) => 1 - Math.pow(1 - t, 3);\n break;\n }\n case ut.EaseInOutCubic: {\n e = (t) => t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n break;\n }\n case ut.EaseInQuart:\n e = (t) => t * t * t * t;\n break;\n case ut.EaseOutQuart: {\n e = (t) => 1 - Math.pow(1 - t, 4);\n break;\n }\n case ut.EaseInOutQuart: {\n e = (t) => t < 0.5 ? 8 * t * t * t * t : 1 - Math.pow(-2 * t + 2, 4) / 2;\n break;\n }\n case ut.EaseInQuint:\n e = (t) => t * t * t * t * t;\n break;\n case ut.EaseOutQuint: {\n e = (t) => 1 - Math.pow(1 - t, 5);\n break;\n }\n case ut.EaseInOutQuint: {\n e = (t) => t < 0.5 ? 16 * t * t * t * t * t : 1 - Math.pow(-2 * t + 2, 5) / 2;\n break;\n }\n case ut.EaseInExpo: {\n e = (t) => t === 0 ? 0 : Math.pow(2, 10 * t - 10);\n break;\n }\n case ut.EaseOutExpo: {\n e = (t) => t === 1 ? 1 : 1 - Math.pow(2, -10 * t);\n break;\n }\n case ut.EaseInOutExpo: {\n e = (t) => t === 0 ? 0 : t === 1 ? 1 : t < 0.5 ? Math.pow(2, 20 * t - 10) / 2 : (2 - Math.pow(2, -20 * t + 10)) / 2;\n break;\n }\n case ut.EaseInCirc: {\n e = (t) => 1 - Math.sqrt(1 - Math.pow(t, 2));\n break;\n }\n case ut.EaseOutCirc: {\n e = (t) => Math.sqrt(1 - Math.pow(t - 1, 2));\n break;\n }\n case ut.EaseInOutCirc: {\n e = (t) => t < 0.5 ? (1 - Math.sqrt(1 - Math.pow(2 * t, 2))) / 2 : (Math.sqrt(1 - Math.pow(-2 * t + 2, 2)) + 1) / 2;\n break;\n }\n case ut.EaseInBack: {\n e = (t) => 2.70158 * t * t * t - 1.70158 * t * t;\n break;\n }\n case ut.EaseOutBack: {\n e = (t) => 2.70158 * Math.pow(t - 1, 3) + 1.70158 * Math.pow(t - 1, 2);\n break;\n }\n case ut.EaseInOutBack: {\n e = (t) => t < 0.5 ? Math.pow(2 * t, 2) * (3.5949095 * 2 * t - 2.5949095) / 2 : (Math.pow(2 * t - 2, 2) * (3.5949095 * (t * 2 - 2) + 3.5949095) + 2) / 2;\n break;\n }\n case ut.EaseInElastic: {\n e = (t) => t === 0 ? 0 : t === 1 ? 1 : -Math.pow(2, 10 * t - 10) * Math.sin((t * 10 - 10.75) * (2 * 3.1415 / 3));\n break;\n }\n case ut.EaseOutElastic: {\n e = (t) => t === 0 ? 0 : t === 1 ? 1 : Math.pow(2, -10 * t) * Math.sin((t * 10 - 0.75) * (2 * 3.1415 / 3)) + 1;\n break;\n }\n case ut.EaseInOutElastic: {\n e = (t) => t === 0 ? 0 : t == 1 ? 1 : t < 0.5 ? -(Math.pow(2, 20 * t - 10) * Math.sin((20 * t - 11.125) * (2 * 3.1415 / 4.5))) / 2 : Math.pow(2, -20 * t + 10) * Math.sin((20 * t - 11.125) * (2 * 3.1415 / 4.5)) / 2 + 1;\n break;\n }\n }\n return this.output._storedFunction = (t) => {\n const i = this.input.getConnectedValue(t);\n switch (this.input.type) {\n case D.Float:\n return e(i);\n case D.Vector2:\n return new Q(e(i.x), e(i.y));\n case D.Vector3:\n return new g(e(i.x), e(i.y), e(i.z));\n case D.Vector4:\n return new Ne(e(i.x), e(i.y), e(i.z), e(i.w));\n }\n return 0;\n }, this;\n }\n serialize() {\n const e = super.serialize();\n return e.curveType = this.type, e;\n }\n _deserialize(e) {\n super._deserialize(e), this.type = e.curveType;\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.type = BABYLON.GeometryCurveBlockTypes.${ut[this.type]};\n`;\n }\n}\ny([\n ze(\"Type\", 4, \"ADVANCED\", {\n notifiers: { rebuild: !0 },\n options: [\n { label: \"EaseInSine\", value: ut.EaseInSine },\n { label: \"EaseOutSine\", value: ut.EaseOutSine },\n { label: \"EaseInOutSine\", value: ut.EaseInOutSine },\n { label: \"EaseInQuad\", value: ut.EaseInQuad },\n { label: \"EaseOutQuad\", value: ut.EaseOutQuad },\n { label: \"EaseInOutQuad\", value: ut.EaseInOutQuad },\n { label: \"EaseInCubic\", value: ut.EaseInCubic },\n { label: \"EaseOutCubic\", value: ut.EaseOutCubic },\n { label: \"EaseInOutCubic\", value: ut.EaseInOutCubic },\n { label: \"EaseInQuart\", value: ut.EaseInQuart },\n { label: \"EaseOutQuart\", value: ut.EaseOutQuart },\n { label: \"EaseInOutQuart\", value: ut.EaseInOutQuart },\n { label: \"EaseInQuint\", value: ut.EaseInQuint },\n { label: \"EaseOutQuint\", value: ut.EaseOutQuint },\n { label: \"EaseInOutQuint\", value: ut.EaseInOutQuint },\n { label: \"EaseInExpo\", value: ut.EaseInExpo },\n { label: \"EaseOutExpo\", value: ut.EaseOutExpo },\n { label: \"EaseInOutExpo\", value: ut.EaseInOutExpo },\n { label: \"EaseInCirc\", value: ut.EaseInCirc },\n { label: \"EaseOutCirc\", value: ut.EaseOutCirc },\n { label: \"EaseInOutCirc\", value: ut.EaseInOutCirc },\n { label: \"EaseInBack\", value: ut.EaseInBack },\n { label: \"EaseOutBack\", value: ut.EaseOutBack },\n { label: \"EaseInOutBack\", value: ut.EaseInOutBack },\n { label: \"EaseInElastic\", value: ut.EaseInElastic },\n { label: \"EaseOutElastic\", value: ut.EaseOutElastic },\n { label: \"EaseInOutElastic\", value: ut.EaseInOutElastic }\n ]\n })\n], zR.prototype, \"type\", void 0);\nU(\"BABYLON.GeometryCurveBlock\", zR);\nclass cG extends Ze {\n /**\n * Creates a new GeometryDesaturateBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"color\", D.Vector3), this.registerInput(\"level\", D.Float, !0, 0), this.registerOutput(\"output\", D.Vector3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryDesaturateBlock\";\n }\n /**\n * Gets the color operand input component\n */\n get color() {\n return this._inputs[0];\n }\n /**\n * Gets the level operand input component\n */\n get level() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.color.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n return this.output._storedFunction = (e) => {\n const t = this.color.getConnectedValue(e), i = this.level.getConnectedValue(e), s = Math.min(t.x, t.y, t.z), r = Math.max(t.x, t.y, t.z), n = 0.5 * (s + r);\n return new g(t.x * (1 - i) + n * i, t.y * (1 - i) + n * i, t.z * (1 - i) + n * i);\n }, this;\n }\n}\nU(\"BABYLON.GeometryDesaturateBlock\", cG);\nclass uG extends Ze {\n /**\n * Creates a new GeometryPosterizeBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"value\", D.AutoDetect), this.registerInput(\"steps\", D.AutoDetect), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[1].excludedConnectionPointTypes.push(D.Matrix), this._inputs[1].acceptedConnectionPointTypes.push(D.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryPosterizeBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the steps input component\n */\n get steps() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected || !this.steps.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n return this.output._storedFunction = (e) => {\n const t = this.value.getConnectedValue(e), i = this.steps.getConnectedValue(e);\n let s = i;\n if (this.steps.type === D.Float)\n switch (this.value.type) {\n case D.Vector2:\n s = new Q(i, i);\n break;\n case D.Vector3:\n s = new g(i, i, i);\n break;\n case D.Vector4:\n s = new Ne(i, i, i, i);\n break;\n }\n switch (this.value.type) {\n case D.Vector2:\n return new Q(t.x / (1 / s.x) * (1 / s.x), t.y / (1 / s.y) * (1 / s.y));\n case D.Vector3:\n return new g(t.x / (1 / s.x) * (1 / s.x), t.y / (1 / s.y) * (1 / s.y), t.z / (1 / s.z) * (1 / s.z));\n case D.Vector4:\n return new Ne(t.x / (1 / s.x) * (1 / s.x), t.y / (1 / s.y) * (1 / s.y), t.z / (1 / s.z) * (1 / s.z), t.w / (1 / s.w) * (1 / s.w));\n default:\n return Math.floor(t / (1 / i) * (1 / i));\n }\n }, this;\n }\n}\nU(\"BABYLON.GeometryPosterizeBlock\", uG);\nclass dG extends Ze {\n /**\n * Creates a new GeometryReplaceColorBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"value\", D.AutoDetect), this.registerInput(\"reference\", D.AutoDetect), this.registerInput(\"distance\", D.Float), this.registerInput(\"replacement\", D.AutoDetect), this.registerOutput(\"output\", D.BasedOnInput), this._outputs[0]._typeConnectionSource = this._inputs[0], this._linkConnectionTypes(0, 1), this._linkConnectionTypes(0, 3), this._inputs[0].excludedConnectionPointTypes.push(D.Float), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[1].excludedConnectionPointTypes.push(D.Float), this._inputs[1].excludedConnectionPointTypes.push(D.Matrix), this._inputs[3].excludedConnectionPointTypes.push(D.Float), this._inputs[3].excludedConnectionPointTypes.push(D.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryReplaceColorBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the reference input component\n */\n get reference() {\n return this._inputs[1];\n }\n /**\n * Gets the distance input component\n */\n get distance() {\n return this._inputs[2];\n }\n /**\n * Gets the replacement input component\n */\n get replacement() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected || !this.reference.isConnected || !this.distance.isConnected || !this.replacement.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n return this.output._storedFunction = (e) => {\n const t = this.value.getConnectedValue(e), i = this.reference.getConnectedValue(e), s = this.distance.getConnectedValue(e), r = this.replacement.getConnectedValue(e);\n return t.subtract(i).length() < s ? r : t;\n }, this;\n }\n}\nU(\"BABYLON.GeometryReplaceColorBlock\", dG);\nclass fG extends Ze {\n /**\n * Creates a new GeometryDistanceBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"left\", D.AutoDetect), this.registerInput(\"right\", D.AutoDetect), this.registerOutput(\"output\", D.Float), this._linkConnectionTypes(0, 1), this._inputs[0].excludedConnectionPointTypes.push(D.Int), this._inputs[0].excludedConnectionPointTypes.push(D.Float), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[1].excludedConnectionPointTypes.push(D.Float), this._inputs[1].excludedConnectionPointTypes.push(D.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryDistanceBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.left.isConnected || !this.right.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n return this.output._storedFunction = (e) => {\n const t = this.left.getConnectedValue(e), i = this.right.getConnectedValue(e);\n return t.subtract(i).length();\n }, this;\n }\n}\nU(\"BABYLON.GeometryDistanceBlock\", fG);\nclass pG extends Ze {\n /**\n * Creates a new GeometryDotBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"left\", D.AutoDetect), this.registerInput(\"right\", D.AutoDetect), this.registerOutput(\"output\", D.Float), this._linkConnectionTypes(0, 1), this._inputs[0].excludedConnectionPointTypes.push(D.Int), this._inputs[0].excludedConnectionPointTypes.push(D.Float), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix), this._inputs[1].excludedConnectionPointTypes.push(D.Float), this._inputs[1].excludedConnectionPointTypes.push(D.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryDotBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.left.isConnected || !this.right.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n return this.output._storedFunction = (e) => {\n const t = this.left.getConnectedValue(e), i = this.right.getConnectedValue(e);\n return t.dot(i);\n }, this;\n }\n}\nU(\"BABYLON.GeometryDotBlock\", pG);\nclass _G extends Ze {\n /**\n * Creates a new GeometryLengthBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"value\", D.AutoDetect), this.registerOutput(\"output\", D.Float), this._inputs[0].excludedConnectionPointTypes.push(D.Int), this._inputs[0].excludedConnectionPointTypes.push(D.Float), this._inputs[0].excludedConnectionPointTypes.push(D.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryLengthBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n return this.output._storedFunction = (e) => this.value.getConnectedValue(e).length(), this;\n }\n}\nU(\"BABYLON.GeometryLengthBlock\", _G);\nclass mG extends Ze {\n /**\n * Creates a new GeometryRotate2dBlock\n * @param name defines the block name\n */\n constructor(e) {\n super(e), this.registerInput(\"input\", D.Vector2), this.registerInput(\"angle\", D.Float), this.registerOutput(\"output\", D.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryRotate2dBlock\";\n }\n /**\n * Gets the input vector\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the input angle\n */\n get angle() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.angle.isConnected || !this.input.isConnected) {\n this.output._storedFunction = null, this.output._storedValue = null;\n return;\n }\n return this.output._storedFunction = (e) => {\n const t = this.input.getConnectedValue(e), i = this.angle.getConnectedValue(e);\n return new Q(Math.cos(i) * t.x - Math.sin(i) * t.y, Math.sin(i) * t.x + Math.cos(i) * t.y);\n }, this;\n }\n}\nU(\"BABYLON.GeometryRotate2dBlock\", mG);\nclass Qp extends H {\n /**\n * Gets the covariancesA texture\n */\n get covariancesATexture() {\n return this._covariancesATexture;\n }\n /**\n * Gets the covariancesB texture\n */\n get covariancesBTexture() {\n return this._covariancesBTexture;\n }\n /**\n * Gets the centers texture\n */\n get centersTexture() {\n return this._centersTexture;\n }\n /**\n * Gets the colors texture\n */\n get colorsTexture() {\n return this._colorsTexture;\n }\n /**\n * Creates a new gaussian splatting mesh\n * @param name defines the name of the mesh\n * @param url defines the url to load from (optional)\n * @param scene defines the hosting scene (optional)\n */\n constructor(e, t = null, i = null) {\n super(e, i), this._vertexCount = 0, this._worker = null, this._frameIdLastUpdate = -1, this._modelViewMatrix = O.Identity(), this._material = null, this._canPostToWorker = !0, this._covariancesATexture = null, this._covariancesBTexture = null, this._centersTexture = null, this._colorsTexture = null;\n const s = new ge();\n s.positions = [-2, -2, 0, 2, -2, 0, 2, 2, 0, -2, 2, 0], s.indices = [0, 1, 2, 0, 2, 3], s.applyToMesh(this), this.subMeshes = [], new or(0, 0, 4, 0, 6, this), this.setEnabled(!1), this._lastProj = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], t && this.loadFileAsync(t);\n }\n /**\n * Returns the class name\n * @returns \"GaussianSplattingMesh\"\n */\n getClassName() {\n return \"GaussianSplattingMesh\";\n }\n /**\n * Returns the total number of vertices (splats) within the mesh\n * @returns the total number of vertices\n */\n getTotalVertices() {\n return this._vertexCount;\n }\n /**\n * Triggers the draw call for the mesh. Usually, you don't need to call this method by your own because the mesh rendering is handled by the scene rendering manager\n * @param subMesh defines the subMesh to render\n * @param enableAlphaMode defines if alpha mode can be changed\n * @param effectiveMeshReplacement defines an optional mesh used to provide info for the rendering\n * @returns the current mesh\n */\n render(e, t, i) {\n this.material || (this._material = new Cu(this.name + \"_material\", this._scene), this.material = this._material);\n const s = this.getScene().getFrameId();\n if (s !== this._frameIdLastUpdate && this._worker && this._scene.activeCamera && this._canPostToWorker) {\n this.getWorldMatrix().multiplyToRef(this._scene.activeCamera.getViewMatrix(), this._modelViewMatrix);\n const r = this._lastProj[2] * this._modelViewMatrix.m[2] + this._lastProj[6] * this._modelViewMatrix.m[6] + this._lastProj[10] * this._modelViewMatrix.m[10];\n Math.abs(r - 1) >= 0.01 && (this._frameIdLastUpdate = s, this._canPostToWorker = !1, this._lastProj = this._modelViewMatrix.m.slice(0), this._worker.postMessage({ view: this._modelViewMatrix.m, depthMix: this._depthMix, useRightHandedSystem: this._scene.useRightHandedSystem }, [\n this._depthMix.buffer\n ]));\n }\n return super.render(e, t, i);\n }\n /**\n * Code from https://github.com/dylanebert/gsplat.js/blob/main/src/loaders/PLYLoader.ts Under MIT license\n * Converts a .ply data array buffer to splat\n * if data array buffer is not ply, returns the original buffer\n * @param data the .ply data to load\n * @returns the loaded splat buffer\n */\n static ConvertPLYToSplat(e) {\n const t = new Uint8Array(e), i = new TextDecoder().decode(t.slice(0, 1024 * 10)), s = `end_header\n`, r = i.indexOf(s);\n if (r < 0 || !i)\n return e;\n const n = parseInt(/element vertex (\\d+)\\n/.exec(i)[1]);\n let o = 0;\n const l = {\n double: 8,\n int: 4,\n uint: 4,\n float: 4,\n short: 2,\n ushort: 2,\n uchar: 1\n }, h = [], c = i.slice(0, r).split(`\n`).filter((m) => m.startsWith(\"property \"));\n for (const m of c) {\n const [, x, v] = m.split(\" \");\n if (h.push({ name: v, type: x, offset: o }), l[x])\n o += l[x];\n else\n return L.Error(`Unsupported property type: ${x}. Are you sure it's a valid Gaussian Splatting file?`), new ArrayBuffer(0);\n }\n const u = 3 * 4 + 3 * 4 + 4 + 4, d = 0.28209479177387814, f = new DataView(e, r + s.length), p = new ArrayBuffer(u * n), _ = new se();\n for (let m = 0; m < n; m++) {\n const x = new Float32Array(p, m * u, 3), v = new Float32Array(p, m * u + 12, 3), T = new Uint8ClampedArray(p, m * u + 24, 4), E = new Uint8ClampedArray(p, m * u + 28, 4);\n let b = 255, S = 0, C = 0, P = 0;\n for (let N = 0; N < h.length; N++) {\n const F = h[N];\n let $;\n switch (F.type) {\n case \"float\":\n $ = f.getFloat32(F.offset + m * o, !0);\n break;\n case \"int\":\n $ = f.getInt32(F.offset + m * o, !0);\n break;\n default:\n throw new Error(`Unsupported property type: ${F.type}`);\n }\n switch (F.name) {\n case \"x\":\n x[0] = $;\n break;\n case \"y\":\n x[1] = $;\n break;\n case \"z\":\n x[2] = $;\n break;\n case \"scale_0\":\n v[0] = Math.exp($);\n break;\n case \"scale_1\":\n v[1] = Math.exp($);\n break;\n case \"scale_2\":\n v[2] = Math.exp($);\n break;\n case \"red\":\n T[0] = $;\n break;\n case \"green\":\n T[1] = $;\n break;\n case \"blue\":\n T[2] = $;\n break;\n case \"f_dc_0\":\n T[0] = (0.5 + d * $) * 255;\n break;\n case \"f_dc_1\":\n T[1] = (0.5 + d * $) * 255;\n break;\n case \"f_dc_2\":\n T[2] = (0.5 + d * $) * 255;\n break;\n case \"f_dc_3\":\n T[3] = (0.5 + d * $) * 255;\n break;\n case \"opacity\":\n T[3] = 1 / (1 + Math.exp(-$)) * 255;\n break;\n case \"rot_0\":\n b = $;\n break;\n case \"rot_1\":\n S = $;\n break;\n case \"rot_2\":\n C = $;\n break;\n case \"rot_3\":\n P = $;\n break;\n }\n }\n _.set(S, C, P, b), _.normalize(), E[0] = _.w * 128 + 128, E[1] = _.x * 128 + 128, E[2] = _.y * 128 + 128, E[3] = _.z * 128 + 128;\n }\n return p;\n }\n /**\n * Loads a .splat Gaussian Splatting array buffer asynchronously\n * @param data arraybuffer containing splat file\n * @returns a promise that resolves when the operation is complete\n */\n loadDataAsync(e) {\n return Promise.resolve(this._loadData(e));\n }\n /**\n * Loads a .splat Gaussian or .ply Splatting file asynchronously\n * @param url path to the splat file to load\n * @returns a promise that resolves when the operation is complete\n */\n loadFileAsync(e) {\n return J.LoadFileAsync(e, !0).then((t) => {\n this._loadData(Qp.ConvertPLYToSplat(t));\n });\n }\n /**\n * Releases resources associated with this mesh.\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\n */\n dispose(e) {\n var t, i, s, r, n, o;\n (t = this._covariancesATexture) == null || t.dispose(), (i = this._covariancesBTexture) == null || i.dispose(), (s = this._centersTexture) == null || s.dispose(), (r = this._colorsTexture) == null || r.dispose(), this._covariancesATexture = null, this._covariancesBTexture = null, this._centersTexture = null, this._colorsTexture = null, (n = this._material) == null || n.dispose(!1, !0), this._material = null, (o = this._worker) == null || o.terminate(), this._worker = null, super.dispose(e);\n }\n _loadData(e) {\n var b;\n if (!e.byteLength)\n return;\n const t = new Uint8Array(e), i = new Float32Array(t.buffer), s = 3 * 4 + 3 * 4 + 4 + 4, r = t.length / s;\n this._vertexCount = r;\n const n = this._getTextureSize(r), o = n.x * n.y, l = new Float32Array(3 * o), h = new Float32Array(3 * o), c = new Float32Array(3 * o), u = w.Matrix[0], d = w.Matrix[1], f = w.Quaternion[0], p = new g(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE), _ = new g(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\n for (let S = 0; S < r; S++) {\n const C = i[8 * S + 0], P = -i[8 * S + 1], N = i[8 * S + 2];\n l[3 * S + 0] = C, l[3 * S + 1] = P, l[3 * S + 2] = N, p.minimizeInPlaceFromFloats(C, P, N), _.maximizeInPlaceFromFloats(C, P, N), f.set((t[32 * S + 28 + 1] - 128) / 128, (t[32 * S + 28 + 2] - 128) / 128, (t[32 * S + 28 + 3] - 128) / 128, -(t[32 * S + 28 + 0] - 128) / 128), f.toRotationMatrix(u), O.ScalingToRef(i[8 * S + 3 + 0] * 2, i[8 * S + 3 + 1] * 2, i[8 * S + 3 + 2] * 2, d);\n const F = u.multiplyToRef(d, w.Matrix[0]).m;\n h[S * 3 + 0] = F[0] * F[0] + F[1] * F[1] + F[2] * F[2], h[S * 3 + 1] = F[0] * F[4] + F[1] * F[5] + F[2] * F[6], h[S * 3 + 2] = F[0] * F[8] + F[1] * F[9] + F[2] * F[10], c[S * 3 + 0] = F[4] * F[4] + F[5] * F[5] + F[6] * F[6], c[S * 3 + 1] = F[4] * F[8] + F[5] * F[9] + F[6] * F[10], c[S * 3 + 2] = F[8] * F[8] + F[9] * F[9] + F[10] * F[10];\n }\n this.getBoundingInfo().reConstruct(p, _, this.getWorldMatrix()), this.forcedInstanceCount = this._vertexCount, this.setEnabled(!0);\n const x = new Float32Array(this._vertexCount * 1);\n this.thinInstanceSetBuffer(\"splatIndex\", x, 1, !1);\n const v = (S, C, P, N) => new _i(S, C, P, N, this._scene, !1, !1, 2, 1), T = (S) => {\n const C = S.length / 3, P = new Float32Array(C * 4);\n for (let N = 0; N < C; ++N)\n P[N * 4 + 0] = S[N * 3 + 0], P[N * 4 + 1] = S[N * 3 + 1], P[N * 4 + 2] = S[N * 3 + 2], P[N * 4 + 3] = 1;\n return P;\n }, E = new Float32Array(n.x * n.y * 4);\n for (let S = 0; S < this._vertexCount; ++S)\n E[S * 4 + 0] = t[32 * S + 24 + 0] / 255, E[S * 4 + 1] = t[32 * S + 24 + 1] / 255, E[S * 4 + 2] = t[32 * S + 24 + 2] / 255, E[S * 4 + 3] = t[32 * S + 24 + 3] / 255;\n this._covariancesATexture = v(T(h), n.x, n.y, 5), this._covariancesBTexture = v(T(c), n.x, n.y, 5), this._centersTexture = v(T(l), n.x, n.y, 5), this._colorsTexture = v(E, n.x, n.y, 5), (b = this._worker) == null || b.terminate(), this._worker = new Worker(URL.createObjectURL(new Blob([\"(\", Qp._CreateWorker.toString(), \")(self)\"], {\n type: \"application/javascript\"\n }))), this._depthMix = new BigInt64Array(r), this._worker.postMessage({ positions: l, vertexCount: r }, [l.buffer]), this._worker.onmessage = (S) => {\n this._depthMix = S.data.depthMix;\n const C = new Uint32Array(S.data.depthMix.buffer);\n for (let P = 0; P < this._vertexCount; P++)\n x[P] = C[2 * P];\n this.thinInstanceBufferUpdated(\"splatIndex\"), this._canPostToWorker = !0;\n };\n }\n _getTextureSize(e) {\n const t = this._scene.getEngine(), i = t.getCaps().maxTextureSize;\n let s = 1;\n if (t.version === 1 && !t.isWebGPU)\n for (; i * s < e; )\n s *= 2;\n else\n s = Math.ceil(e / i);\n return s > i && (L.Error(\"GaussianSplatting texture size: (\" + i + \", \" + s + \"), maxTextureSize: \" + i), s = i), new Q(i, s);\n }\n}\nQp._CreateWorker = function(a) {\n let e = 0, t, i, s, r;\n a.onmessage = (n) => {\n if (n.data.positions)\n t = n.data.positions, e = n.data.vertexCount;\n else {\n const o = n.data.view;\n if (!t || !o)\n throw new Error(\"positions or view is not defined!\");\n i = n.data.depthMix, s = new Uint32Array(i.buffer), r = new Float32Array(i.buffer);\n for (let h = 0; h < e; h++)\n s[2 * h] = h;\n let l = -1;\n n.data.useRightHandedSystem && (l = 1);\n for (let h = 0; h < e; h++)\n r[2 * h + 1] = 1e4 + (o[2] * t[3 * h + 0] + o[6] * t[3 * h + 1] + o[10] * t[3 * h + 2]) * l;\n i.sort(), a.postMessage({ depthMix: i }, [i.buffer]);\n }\n };\n};\nee.OfflineProviderFactory = (a, e, t = !1) => new Ar(a, e, t);\nclass Ar {\n /**\n * Gets a boolean indicating if scene must be saved in the database\n */\n get enableSceneOffline() {\n return this._enableSceneOffline;\n }\n /**\n * Gets a boolean indicating if textures must be saved in the database\n */\n get enableTexturesOffline() {\n return this._enableTexturesOffline;\n }\n /**\n * Creates a new Database\n * @param urlToScene defines the url to load the scene\n * @param callbackManifestChecked defines the callback to use when manifest is checked\n * @param disableManifestCheck defines a boolean indicating that we want to skip the manifest validation (it will be considered validated and up to date)\n */\n constructor(e, t, i = !1) {\n this._idbFactory = typeof indexedDB < \"u\" ? indexedDB : void 0, this._currentSceneUrl = Ar._ReturnFullUrlLocation(e), this._db = null, this._enableSceneOffline = !1, this._enableTexturesOffline = !1, this._manifestVersionFound = 0, this._mustUpdateRessources = !1, this._hasReachedQuota = !1, Ar.IDBStorageEnabled ? i ? (this._enableSceneOffline = !0, this._enableTexturesOffline = !0, this._manifestVersionFound = 1, J.SetImmediate(() => {\n t(!0);\n })) : this._checkManifestFile(t) : t(!0);\n }\n _checkManifestFile(e) {\n const t = () => {\n this._enableSceneOffline = !1, this._enableTexturesOffline = !1, e(!1);\n }, i = () => {\n try {\n if (typeof URL == \"function\" && this._currentSceneUrl.indexOf(\"http\") === 0) {\n const o = new URL(this._currentSceneUrl);\n return o.pathname += \".manifest\", o.toString();\n }\n } catch {\n }\n return `${this._currentSceneUrl}.manifest`;\n };\n let s = !1, r = i();\n const n = new Di();\n navigator.onLine && (s = !0, r = r + (r.match(/\\?/) == null ? \"?\" : \"&\") + Date.now()), n.open(\"GET\", r), n.addEventListener(\"load\", () => {\n if (n.status === 200 || Ar._ValidateXHRData(n, 1))\n try {\n const o = JSON.parse(n.response);\n this._enableSceneOffline = o.enableSceneOffline, this._enableTexturesOffline = o.enableTexturesOffline && Ar._IsUASupportingBlobStorage, o.version && !isNaN(parseInt(o.version)) && (this._manifestVersionFound = o.version), e(!0);\n } catch {\n t();\n }\n else\n t();\n }, !1), n.addEventListener(\"error\", () => {\n if (s) {\n s = !1;\n const o = i();\n n.open(\"GET\", o), n.send();\n } else\n t();\n }, !1);\n try {\n n.send();\n } catch {\n L.Error(\"Error on XHR send request.\"), e(!1);\n }\n }\n /**\n * Open the database and make it available\n * @param successCallback defines the callback to call on success\n * @param errorCallback defines the callback to call on error\n */\n open(e, t) {\n const i = () => {\n this._isSupported = !1, t && t();\n };\n if (!this._idbFactory || !(this._enableSceneOffline || this._enableTexturesOffline))\n this._isSupported = !1, t && t();\n else if (this._db)\n e && e();\n else {\n this._hasReachedQuota = !1, this._isSupported = !0;\n const s = this._idbFactory.open(\"babylonjs\", 1);\n s.onerror = () => {\n i();\n }, s.onblocked = () => {\n L.Error(\"IDB request blocked. Please reload the page.\"), i();\n }, s.onsuccess = () => {\n this._db = s.result, e();\n }, s.onupgradeneeded = (r) => {\n if (this._db = r.target.result, this._db)\n try {\n this._db.createObjectStore(\"scenes\", { keyPath: \"sceneUrl\" }), this._db.createObjectStore(\"versions\", { keyPath: \"sceneUrl\" }), this._db.createObjectStore(\"textures\", { keyPath: \"textureUrl\" });\n } catch (n) {\n L.Error(\"Error while creating object stores. Exception: \" + n.message), i();\n }\n };\n }\n }\n /**\n * Loads an image from the database\n * @param url defines the url to load from\n * @param image defines the target DOM image\n */\n loadImage(e, t) {\n const i = Ar._ReturnFullUrlLocation(e), s = () => {\n !this._hasReachedQuota && this._db !== null ? this._saveImageIntoDBAsync(i, t) : t.src = e;\n };\n this._mustUpdateRessources ? s() : this._loadImageFromDBAsync(i, t, s);\n }\n _loadImageFromDBAsync(e, t, i) {\n if (this._isSupported && this._db !== null) {\n let s;\n const r = this._db.transaction([\"textures\"]);\n r.onabort = () => {\n t.src = e;\n }, r.oncomplete = () => {\n let o;\n s && typeof URL == \"function\" ? (o = URL.createObjectURL(s.data), t.onerror = () => {\n L.Error(\"Error loading image from blob URL: \" + o + \" switching back to web url: \" + e), t.src = e;\n }, t.src = o) : i();\n };\n const n = r.objectStore(\"textures\").get(e);\n n.onsuccess = (o) => {\n s = o.target.result;\n }, n.onerror = () => {\n L.Error(\"Error loading texture \" + e + \" from DB.\"), t.src = e;\n };\n } else\n L.Error(\"Error: IndexedDB not supported by your browser or BabylonJS Database is not open.\"), t.src = e;\n }\n _saveImageIntoDBAsync(e, t) {\n let i;\n if (this._isSupported) {\n const s = () => {\n let r;\n if (i && typeof URL == \"function\")\n try {\n r = URL.createObjectURL(i);\n } catch {\n r = URL.createObjectURL(i);\n }\n r && (t.src = r);\n };\n if (Ar._IsUASupportingBlobStorage) {\n const r = new Di();\n r.open(\"GET\", e), r.responseType = \"blob\", r.addEventListener(\"load\", () => {\n if (r.status === 200 && this._db) {\n i = r.response;\n const n = this._db.transaction([\"textures\"], \"readwrite\");\n n.onabort = (l) => {\n try {\n const c = l.target.error;\n c && c.name === \"QuotaExceededError\" && (this._hasReachedQuota = !0);\n } catch {\n }\n s();\n }, n.oncomplete = () => {\n s();\n };\n const o = { textureUrl: e, data: i };\n try {\n const l = n.objectStore(\"textures\").put(o);\n l.onsuccess = () => {\n }, l.onerror = () => {\n s();\n };\n } catch (l) {\n l.code === 25 && (Ar._IsUASupportingBlobStorage = !1, this._enableTexturesOffline = !1), t.src = e;\n }\n } else\n t.src = e;\n }, !1), r.addEventListener(\"error\", () => {\n L.Error(\"Error in XHR request in BABYLON.Database.\"), t.src = e;\n }, !1), r.send();\n } else\n t.src = e;\n } else\n L.Error(\"Error: IndexedDB not supported by your browser or Babylon.js database is not open.\"), t.src = e;\n }\n _checkVersionFromDB(e, t) {\n const i = () => {\n this._saveVersionIntoDBAsync(e, t);\n };\n this._loadVersionFromDBAsync(e, t, i);\n }\n _loadVersionFromDBAsync(e, t, i) {\n if (this._isSupported && this._db) {\n let s;\n try {\n const r = this._db.transaction([\"versions\"]);\n r.oncomplete = () => {\n s ? this._manifestVersionFound !== s.data ? (this._mustUpdateRessources = !0, i()) : t(s.data) : (this._mustUpdateRessources = !0, i());\n }, r.onabort = () => {\n t(-1);\n };\n const n = r.objectStore(\"versions\").get(e);\n n.onsuccess = (o) => {\n s = o.target.result;\n }, n.onerror = () => {\n L.Error(\"Error loading version for scene \" + e + \" from DB.\"), t(-1);\n };\n } catch (r) {\n L.Error(\"Error while accessing 'versions' object store (READ OP). Exception: \" + r.message), t(-1);\n }\n } else\n L.Error(\"Error: IndexedDB not supported by your browser or Babylon.js database is not open.\"), t(-1);\n }\n _saveVersionIntoDBAsync(e, t) {\n if (this._isSupported && !this._hasReachedQuota && this._db)\n try {\n const i = this._db.transaction([\"versions\"], \"readwrite\");\n i.onabort = (n) => {\n try {\n const o = n.target.error;\n o && o.name === \"QuotaExceededError\" && (this._hasReachedQuota = !0);\n } catch {\n }\n t(-1);\n }, i.oncomplete = () => {\n t(this._manifestVersionFound);\n };\n const s = { sceneUrl: e, data: this._manifestVersionFound }, r = i.objectStore(\"versions\").put(s);\n r.onsuccess = () => {\n }, r.onerror = () => {\n L.Error(\"Error in DB add version request in BABYLON.Database.\");\n };\n } catch (i) {\n L.Error(\"Error while accessing 'versions' object store (WRITE OP). Exception: \" + i.message), t(-1);\n }\n else\n t(-1);\n }\n /**\n * Loads a file from database\n * @param url defines the URL to load from\n * @param sceneLoaded defines a callback to call on success\n * @param progressCallBack defines a callback to call when progress changed\n * @param errorCallback defines a callback to call on error\n * @param useArrayBuffer defines a boolean to use array buffer instead of text string\n */\n loadFile(e, t, i, s, r) {\n const n = Ar._ReturnFullUrlLocation(e), o = () => {\n this._saveFileAsync(n, t, i, r, s);\n };\n this._checkVersionFromDB(n, (l) => {\n l !== -1 ? this._mustUpdateRessources ? this._saveFileAsync(n, t, i, r, s) : this._loadFileAsync(n, t, o) : s && s();\n });\n }\n _loadFileAsync(e, t, i) {\n if (this._isSupported && this._db) {\n let s;\n e.indexOf(\".babylon\") !== -1 ? s = \"scenes\" : s = \"textures\";\n let r;\n const n = this._db.transaction([s]);\n n.oncomplete = () => {\n r ? t(r.data) : i();\n }, n.onabort = () => {\n i();\n };\n const o = n.objectStore(s).get(e);\n o.onsuccess = (l) => {\n r = l.target.result;\n }, o.onerror = () => {\n L.Error(\"Error loading file \" + e + \" from DB.\"), i();\n };\n } else\n L.Error(\"Error: IndexedDB not supported by your browser or BabylonJS Database is not open.\"), t();\n }\n _saveFileAsync(e, t, i, s, r) {\n if (this._isSupported) {\n let n;\n e.indexOf(\".babylon\") !== -1 ? n = \"scenes\" : n = \"textures\";\n const o = new Di();\n let l;\n o.open(\"GET\", e + (e.match(/\\?/) == null ? \"?\" : \"&\") + Date.now()), s && (o.responseType = \"arraybuffer\"), i && (o.onprogress = i), o.addEventListener(\"load\", () => {\n if (o.status === 200 || o.status < 400 && Ar._ValidateXHRData(o, s ? 6 : 1))\n if (l = s ? o.response : o.responseText, !this._hasReachedQuota && this._db) {\n const h = this._db.transaction([n], \"readwrite\");\n h.onabort = (u) => {\n try {\n const d = u.target.error;\n d && d.name === \"QuotaExceededError\" && (this._hasReachedQuota = !0);\n } catch {\n }\n t(l);\n }, h.oncomplete = () => {\n t(l);\n };\n let c;\n n === \"scenes\" ? c = { sceneUrl: e, data: l, version: this._manifestVersionFound } : c = { textureUrl: e, data: l };\n try {\n const u = h.objectStore(n).put(c);\n u.onsuccess = () => {\n }, u.onerror = () => {\n L.Error(\"Error in DB add file request in BABYLON.Database.\");\n };\n } catch {\n t(l);\n }\n } else\n t(l);\n else\n o.status >= 400 && r ? r(o) : t();\n }, !1), o.addEventListener(\"error\", () => {\n L.Error(\"error on XHR request.\"), r && r();\n }, !1), o.send();\n } else\n L.Error(\"Error: IndexedDB not supported by your browser or Babylon.js database is not open.\"), r && r();\n }\n /**\n * Validates if xhr data is correct\n * @param xhr defines the request to validate\n * @param dataType defines the expected data type\n * @returns true if data is correct\n */\n static _ValidateXHRData(e, t = 7) {\n try {\n if (t & 1) {\n if (e.responseText && e.responseText.length > 0)\n return !0;\n if (t === 1)\n return !1;\n }\n if (t & 2) {\n const i = im(e.response);\n if (i.width && i.height && i.width > 0 && i.height > 0)\n return !0;\n if (t === 2)\n return !1;\n }\n if (t & 4) {\n const i = new Uint8Array(e.response, 0, 3);\n return i[0] === 68 && i[1] === 68 && i[2] === 83;\n }\n } catch {\n }\n return !1;\n }\n}\nAr._IsUASupportingBlobStorage = !0;\nAr.IDBStorageEnabled = !1;\nAr._ParseURL = (a) => {\n const e = document.createElement(\"a\");\n e.href = a;\n const t = a.substring(0, a.lastIndexOf(\"#\")), i = a.substring(t.lastIndexOf(\"/\") + 1, a.length);\n return a.substring(0, a.indexOf(i, 0));\n};\nAr._ReturnFullUrlLocation = (a) => a.indexOf(\"http:/\") === -1 && a.indexOf(\"https:/\") === -1 && typeof window < \"u\" ? Ar._ParseURL(window.location.href) + a : a;\nclass Xo {\n /**\n * Creates a new instance BoxParticleEmitter\n */\n constructor() {\n this.direction1 = new g(0, 1, 0), this.direction2 = new g(0, 1, 0), this.minEmitBox = new g(-0.5, -0.5, -0.5), this.maxEmitBox = new g(0.5, 0.5, 0.5);\n }\n /**\n * Called by the particle System when the direction is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param directionToUpdate is the direction vector to update with the result\n * @param particle is the particle we are computed the direction for\n * @param isLocal defines if the direction should be set in local space\n */\n startDirectionFunction(e, t, i, s) {\n const r = Wt(this.direction1.x, this.direction2.x), n = Wt(this.direction1.y, this.direction2.y), o = Wt(this.direction1.z, this.direction2.z);\n if (s) {\n t.x = r, t.y = n, t.z = o;\n return;\n }\n g.TransformNormalFromFloatsToRef(r, n, o, e, t);\n }\n /**\n * Called by the particle System when the position is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param positionToUpdate is the position vector to update with the result\n * @param particle is the particle we are computed the position for\n * @param isLocal defines if the position should be set in local space\n */\n startPositionFunction(e, t, i, s) {\n const r = Wt(this.minEmitBox.x, this.maxEmitBox.x), n = Wt(this.minEmitBox.y, this.maxEmitBox.y), o = Wt(this.minEmitBox.z, this.maxEmitBox.z);\n if (s) {\n t.x = r, t.y = n, t.z = o;\n return;\n }\n g.TransformCoordinatesFromFloatsToRef(r, n, o, e, t);\n }\n /**\n * Clones the current emitter and returns a copy of it\n * @returns the new emitter\n */\n clone() {\n const e = new Xo();\n return Hs.DeepCopy(this, e), e;\n }\n /**\n * Called by the GPUParticleSystem to setup the update shader\n * @param uboOrEffect defines the update shader\n */\n applyToShader(e) {\n e.setVector3(\"direction1\", this.direction1), e.setVector3(\"direction2\", this.direction2), e.setVector3(\"minEmitBox\", this.minEmitBox), e.setVector3(\"maxEmitBox\", this.maxEmitBox);\n }\n /**\n * Creates the structure of the ubo for this particle emitter\n * @param ubo ubo to create the structure for\n */\n buildUniformLayout(e) {\n e.addUniform(\"direction1\", 3), e.addUniform(\"direction2\", 3), e.addUniform(\"minEmitBox\", 3), e.addUniform(\"maxEmitBox\", 3);\n }\n /**\n * Returns a string to use to update the GPU particles update shader\n * @returns a string containing the defines string\n */\n getEffectDefines() {\n return \"#define BOXEMITTER\";\n }\n /**\n * Returns the string \"BoxParticleEmitter\"\n * @returns a string containing the class name\n */\n getClassName() {\n return \"BoxParticleEmitter\";\n }\n /**\n * Serializes the particle system to a JSON object.\n * @returns the JSON object\n */\n serialize() {\n const e = {};\n return e.type = this.getClassName(), e.direction1 = this.direction1.asArray(), e.direction2 = this.direction2.asArray(), e.minEmitBox = this.minEmitBox.asArray(), e.maxEmitBox = this.maxEmitBox.asArray(), e;\n }\n /**\n * Parse properties from a JSON object\n * @param serializationObject defines the JSON object\n */\n parse(e) {\n g.FromArrayToRef(e.direction1, 0, this.direction1), g.FromArrayToRef(e.direction2, 0, this.direction2), g.FromArrayToRef(e.minEmitBox, 0, this.minEmitBox), g.FromArrayToRef(e.maxEmitBox, 0, this.maxEmitBox);\n }\n}\nclass Of {\n /**\n * Gets or sets the radius of the emission cone\n */\n get radius() {\n return this._radius;\n }\n set radius(e) {\n this._radius = e, this._buildHeight();\n }\n /**\n * Gets or sets the angle of the emission cone\n */\n get angle() {\n return this._angle;\n }\n set angle(e) {\n this._angle = e, this._buildHeight();\n }\n _buildHeight() {\n this._angle !== 0 ? this._height = this._radius / Math.tan(this._angle / 2) : this._height = 1;\n }\n /**\n * Creates a new instance ConeParticleEmitter\n * @param radius the radius of the emission cone (1 by default)\n * @param angle the cone base angle (PI by default)\n * @param directionRandomizer defines how much to randomize the particle direction [0-1] (default is 0)\n */\n constructor(e = 1, t = Math.PI, i = 0) {\n this.directionRandomizer = i, this.radiusRange = 1, this.heightRange = 1, this.emitFromSpawnPointOnly = !1, this.angle = t, this.radius = e;\n }\n /**\n * Called by the particle System when the direction is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param directionToUpdate is the direction vector to update with the result\n * @param particle is the particle we are computed the direction for\n * @param isLocal defines if the direction should be set in local space\n */\n startDirectionFunction(e, t, i, s) {\n s ? w.Vector3[0].copyFrom(i._localPosition).normalize() : i.position.subtractToRef(e.getTranslation(), w.Vector3[0]).normalize();\n const r = Re.RandomRange(0, this.directionRandomizer), n = Re.RandomRange(0, this.directionRandomizer), o = Re.RandomRange(0, this.directionRandomizer);\n t.x = w.Vector3[0].x + r, t.y = w.Vector3[0].y + n, t.z = w.Vector3[0].z + o, t.normalize();\n }\n /**\n * Called by the particle System when the position is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param positionToUpdate is the position vector to update with the result\n * @param particle is the particle we are computed the position for\n * @param isLocal defines if the position should be set in local space\n */\n startPositionFunction(e, t, i, s) {\n const r = Re.RandomRange(0, Math.PI * 2);\n let n;\n this.emitFromSpawnPointOnly ? n = 1e-4 : (n = Re.RandomRange(0, this.heightRange), n = 1 - n * n);\n let o = this._radius - Re.RandomRange(0, this._radius * this.radiusRange);\n o = o * n;\n const l = o * Math.sin(r), h = o * Math.cos(r), c = n * this._height;\n if (s) {\n t.x = l, t.y = c, t.z = h;\n return;\n }\n g.TransformCoordinatesFromFloatsToRef(l, c, h, e, t);\n }\n /**\n * Clones the current emitter and returns a copy of it\n * @returns the new emitter\n */\n clone() {\n const e = new Of(this._radius, this._angle, this.directionRandomizer);\n return Hs.DeepCopy(this, e), e;\n }\n /**\n * Called by the GPUParticleSystem to setup the update shader\n * @param uboOrEffect defines the update shader\n */\n applyToShader(e) {\n e.setFloat2(\"radius\", this._radius, this.radiusRange), e.setFloat(\"coneAngle\", this._angle), e.setFloat2(\"height\", this._height, this.heightRange), e.setFloat(\"directionRandomizer\", this.directionRandomizer);\n }\n /**\n * Creates the structure of the ubo for this particle emitter\n * @param ubo ubo to create the structure for\n */\n buildUniformLayout(e) {\n e.addUniform(\"radius\", 2), e.addUniform(\"coneAngle\", 1), e.addUniform(\"height\", 2), e.addUniform(\"directionRandomizer\", 1);\n }\n /**\n * Returns a string to use to update the GPU particles update shader\n * @returns a string containing the defines string\n */\n getEffectDefines() {\n let e = \"#define CONEEMITTER\";\n return this.emitFromSpawnPointOnly && (e += `\n#define CONEEMITTERSPAWNPOINT`), e;\n }\n /**\n * Returns the string \"ConeParticleEmitter\"\n * @returns a string containing the class name\n */\n getClassName() {\n return \"ConeParticleEmitter\";\n }\n /**\n * Serializes the particle system to a JSON object.\n * @returns the JSON object\n */\n serialize() {\n const e = {};\n return e.type = this.getClassName(), e.radius = this._radius, e.angle = this._angle, e.directionRandomizer = this.directionRandomizer, e.radiusRange = this.radiusRange, e.heightRange = this.heightRange, e.emitFromSpawnPointOnly = this.emitFromSpawnPointOnly, e;\n }\n /**\n * Parse properties from a JSON object\n * @param serializationObject defines the JSON object\n */\n parse(e) {\n this.radius = e.radius, this.angle = e.angle, this.directionRandomizer = e.directionRandomizer, this.radiusRange = e.radiusRange !== void 0 ? e.radiusRange : 1, this.heightRange = e.radiusRange !== void 0 ? e.heightRange : 1, this.emitFromSpawnPointOnly = e.emitFromSpawnPointOnly !== void 0 ? e.emitFromSpawnPointOnly : !1;\n }\n}\nclass am extends Of {\n constructor(e = 1, t = Math.PI, i = new g(0, 1, 0), s = new g(0, 1, 0)) {\n super(e, t), this.direction1 = i, this.direction2 = s;\n }\n /**\n * Called by the particle System when the direction is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param directionToUpdate is the direction vector to update with the result\n */\n startDirectionFunction(e, t) {\n const i = Re.RandomRange(this.direction1.x, this.direction2.x), s = Re.RandomRange(this.direction1.y, this.direction2.y), r = Re.RandomRange(this.direction1.z, this.direction2.z);\n g.TransformNormalFromFloatsToRef(i, s, r, e, t);\n }\n /**\n * Clones the current emitter and returns a copy of it\n * @returns the new emitter\n */\n clone() {\n const e = new am(this.radius, this.angle, this.direction1, this.direction2);\n return Hs.DeepCopy(this, e), e;\n }\n /**\n * Called by the GPUParticleSystem to setup the update shader\n * @param uboOrEffect defines the update shader\n */\n applyToShader(e) {\n e.setFloat(\"radius\", this.radius), e.setFloat(\"radiusRange\", this.radiusRange), e.setVector3(\"direction1\", this.direction1), e.setVector3(\"direction2\", this.direction2);\n }\n /**\n * Creates the structure of the ubo for this particle emitter\n * @param ubo ubo to create the structure for\n */\n buildUniformLayout(e) {\n e.addUniform(\"radius\", 1), e.addUniform(\"radiusRange\", 1), e.addUniform(\"direction1\", 3), e.addUniform(\"direction2\", 3);\n }\n /**\n * Returns a string to use to update the GPU particles update shader\n * @returns a string containing the defines string\n */\n getEffectDefines() {\n return `#define CONEEMITTER\n#define DIRECTEDCONEEMITTER`;\n }\n /**\n * Returns the string \"ConeDirectedParticleEmitter\"\n * @returns a string containing the class name\n */\n getClassName() {\n return \"ConeDirectedParticleEmitter\";\n }\n /**\n * Serializes the particle system to a JSON object.\n * @returns the JSON object\n */\n serialize() {\n const e = super.serialize();\n return e.direction1 = this.direction1.asArray(), e.direction2 = this.direction2.asArray(), e;\n }\n /**\n * Parse properties from a JSON object\n * @param serializationObject defines the JSON object\n */\n parse(e) {\n super.parse(e), this.direction1.copyFrom(e.direction1), this.direction2.copyFrom(e.direction2);\n }\n}\nclass wf {\n /**\n * Creates a new instance CylinderParticleEmitter\n * @param radius the radius of the emission cylinder (1 by default)\n * @param height the height of the emission cylinder (1 by default)\n * @param radiusRange the range of the emission cylinder [0-1] 0 Surface only, 1 Entire Radius (1 by default)\n * @param directionRandomizer defines how much to randomize the particle direction [0-1]\n */\n constructor(e = 1, t = 1, i = 1, s = 0) {\n this.radius = e, this.height = t, this.radiusRange = i, this.directionRandomizer = s, this._tempVector = g.Zero();\n }\n /**\n * Called by the particle System when the direction is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param directionToUpdate is the direction vector to update with the result\n * @param particle is the particle we are computed the direction for\n * @param isLocal defines if the direction should be set in local space\n * @param inverseWorldMatrix defines the inverted world matrix to use if isLocal is false\n */\n startDirectionFunction(e, t, i, s, r) {\n i.position.subtractToRef(e.getTranslation(), this._tempVector), this._tempVector.normalize(), g.TransformNormalToRef(this._tempVector, r, this._tempVector);\n const n = Re.RandomRange(-this.directionRandomizer / 2, this.directionRandomizer / 2);\n let o = Math.atan2(this._tempVector.x, this._tempVector.z);\n if (o += Re.RandomRange(-Math.PI / 2, Math.PI / 2) * this.directionRandomizer, this._tempVector.y = n, this._tempVector.x = Math.sin(o), this._tempVector.z = Math.cos(o), this._tempVector.normalize(), s) {\n t.copyFrom(this._tempVector);\n return;\n }\n g.TransformNormalFromFloatsToRef(this._tempVector.x, this._tempVector.y, this._tempVector.z, e, t);\n }\n /**\n * Called by the particle System when the position is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param positionToUpdate is the position vector to update with the result\n * @param particle is the particle we are computed the position for\n * @param isLocal defines if the position should be set in local space\n */\n startPositionFunction(e, t, i, s) {\n const r = Re.RandomRange(-this.height / 2, this.height / 2), n = Re.RandomRange(0, 2 * Math.PI), o = Re.RandomRange((1 - this.radiusRange) * (1 - this.radiusRange), 1), l = Math.sqrt(o) * this.radius, h = l * Math.cos(n), c = l * Math.sin(n);\n if (s) {\n t.copyFromFloats(h, r, c);\n return;\n }\n g.TransformCoordinatesFromFloatsToRef(h, r, c, e, t);\n }\n /**\n * Clones the current emitter and returns a copy of it\n * @returns the new emitter\n */\n clone() {\n const e = new wf(this.radius, this.directionRandomizer);\n return Hs.DeepCopy(this, e), e;\n }\n /**\n * Called by the GPUParticleSystem to setup the update shader\n * @param uboOrEffect defines the update shader\n */\n applyToShader(e) {\n e.setFloat(\"radius\", this.radius), e.setFloat(\"height\", this.height), e.setFloat(\"radiusRange\", this.radiusRange), e.setFloat(\"directionRandomizer\", this.directionRandomizer);\n }\n /**\n * Creates the structure of the ubo for this particle emitter\n * @param ubo ubo to create the structure for\n */\n buildUniformLayout(e) {\n e.addUniform(\"radius\", 1), e.addUniform(\"height\", 1), e.addUniform(\"radiusRange\", 1), e.addUniform(\"directionRandomizer\", 1);\n }\n /**\n * Returns a string to use to update the GPU particles update shader\n * @returns a string containing the defines string\n */\n getEffectDefines() {\n return \"#define CYLINDEREMITTER\";\n }\n /**\n * Returns the string \"CylinderParticleEmitter\"\n * @returns a string containing the class name\n */\n getClassName() {\n return \"CylinderParticleEmitter\";\n }\n /**\n * Serializes the particle system to a JSON object.\n * @returns the JSON object\n */\n serialize() {\n const e = {};\n return e.type = this.getClassName(), e.radius = this.radius, e.height = this.height, e.radiusRange = this.radiusRange, e.directionRandomizer = this.directionRandomizer, e;\n }\n /**\n * Parse properties from a JSON object\n * @param serializationObject defines the JSON object\n */\n parse(e) {\n this.radius = e.radius, this.height = e.height, this.radiusRange = e.radiusRange, this.directionRandomizer = e.directionRandomizer;\n }\n}\nclass om extends wf {\n /**\n * Creates a new instance CylinderDirectedParticleEmitter\n * @param radius the radius of the emission cylinder (1 by default)\n * @param height the height of the emission cylinder (1 by default)\n * @param radiusRange the range of the emission cylinder [0-1] 0 Surface only, 1 Entire Radius (1 by default)\n * @param direction1 the min limit of the emission direction (up vector by default)\n * @param direction2 the max limit of the emission direction (up vector by default)\n */\n constructor(e = 1, t = 1, i = 1, s = new g(0, 1, 0), r = new g(0, 1, 0)) {\n super(e, t, i), this.direction1 = s, this.direction2 = r;\n }\n /**\n * Called by the particle System when the direction is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param directionToUpdate is the direction vector to update with the result\n * @param _particle is the particle we are computed the direction for\n * @param isLocal defines if the direction should be set in local space\n */\n startDirectionFunction(e, t, i, s) {\n const r = Re.RandomRange(this.direction1.x, this.direction2.x), n = Re.RandomRange(this.direction1.y, this.direction2.y), o = Re.RandomRange(this.direction1.z, this.direction2.z);\n if (s) {\n t.copyFromFloats(r, n, o);\n return;\n }\n g.TransformNormalFromFloatsToRef(r, n, o, e, t);\n }\n /**\n * Clones the current emitter and returns a copy of it\n * @returns the new emitter\n */\n clone() {\n const e = new om(this.radius, this.height, this.radiusRange, this.direction1, this.direction2);\n return Hs.DeepCopy(this, e), e;\n }\n /**\n * Called by the GPUParticleSystem to setup the update shader\n * @param uboOrEffect defines the update shader\n */\n applyToShader(e) {\n e.setFloat(\"radius\", this.radius), e.setFloat(\"height\", this.height), e.setFloat(\"radiusRange\", this.radiusRange), e.setVector3(\"direction1\", this.direction1), e.setVector3(\"direction2\", this.direction2);\n }\n /**\n * Creates the structure of the ubo for this particle emitter\n * @param ubo ubo to create the structure for\n */\n buildUniformLayout(e) {\n e.addUniform(\"radius\", 1), e.addUniform(\"height\", 1), e.addUniform(\"radiusRange\", 1), e.addUniform(\"direction1\", 3), e.addUniform(\"direction2\", 3);\n }\n /**\n * Returns a string to use to update the GPU particles update shader\n * @returns a string containing the defines string\n */\n getEffectDefines() {\n return `#define CYLINDEREMITTER\n#define DIRECTEDCYLINDEREMITTER`;\n }\n /**\n * Returns the string \"CylinderDirectedParticleEmitter\"\n * @returns a string containing the class name\n */\n getClassName() {\n return \"CylinderDirectedParticleEmitter\";\n }\n /**\n * Serializes the particle system to a JSON object.\n * @returns the JSON object\n */\n serialize() {\n const e = super.serialize();\n return e.direction1 = this.direction1.asArray(), e.direction2 = this.direction2.asArray(), e;\n }\n /**\n * Parse properties from a JSON object\n * @param serializationObject defines the JSON object\n */\n parse(e) {\n super.parse(e), g.FromArrayToRef(e.direction1, 0, this.direction1), g.FromArrayToRef(e.direction2, 0, this.direction2);\n }\n}\nclass lm {\n /**\n * Creates a new instance HemisphericParticleEmitter\n * @param radius the radius of the emission hemisphere (1 by default)\n * @param radiusRange the range of the emission hemisphere [0-1] 0 Surface only, 1 Entire Radius (1 by default)\n * @param directionRandomizer defines how much to randomize the particle direction [0-1]\n */\n constructor(e = 1, t = 1, i = 0) {\n this.radius = e, this.radiusRange = t, this.directionRandomizer = i;\n }\n /**\n * Called by the particle System when the direction is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param directionToUpdate is the direction vector to update with the result\n * @param particle is the particle we are computed the direction for\n * @param isLocal defines if the direction should be set in local space\n */\n startDirectionFunction(e, t, i, s) {\n const r = i.position.subtract(e.getTranslation()).normalize(), n = Re.RandomRange(0, this.directionRandomizer), o = Re.RandomRange(0, this.directionRandomizer), l = Re.RandomRange(0, this.directionRandomizer);\n if (r.x += n, r.y += o, r.z += l, r.normalize(), s) {\n t.copyFrom(r);\n return;\n }\n g.TransformNormalFromFloatsToRef(r.x, r.y, r.z, e, t);\n }\n /**\n * Called by the particle System when the position is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param positionToUpdate is the position vector to update with the result\n * @param particle is the particle we are computed the position for\n * @param isLocal defines if the position should be set in local space\n */\n startPositionFunction(e, t, i, s) {\n const r = this.radius - Re.RandomRange(0, this.radius * this.radiusRange), n = Re.RandomRange(0, 1), o = Re.RandomRange(0, 2 * Math.PI), l = Math.acos(2 * n - 1), h = r * Math.cos(o) * Math.sin(l), c = r * Math.cos(l), u = r * Math.sin(o) * Math.sin(l);\n if (s) {\n t.copyFromFloats(h, Math.abs(c), u);\n return;\n }\n g.TransformCoordinatesFromFloatsToRef(h, Math.abs(c), u, e, t);\n }\n /**\n * Clones the current emitter and returns a copy of it\n * @returns the new emitter\n */\n clone() {\n const e = new lm(this.radius, this.directionRandomizer);\n return Hs.DeepCopy(this, e), e;\n }\n /**\n * Called by the GPUParticleSystem to setup the update shader\n * @param uboOrEffect defines the update shader\n */\n applyToShader(e) {\n e.setFloat(\"radius\", this.radius), e.setFloat(\"radiusRange\", this.radiusRange), e.setFloat(\"directionRandomizer\", this.directionRandomizer);\n }\n /**\n * Creates the structure of the ubo for this particle emitter\n * @param ubo ubo to create the structure for\n */\n buildUniformLayout(e) {\n e.addUniform(\"radius\", 1), e.addUniform(\"radiusRange\", 1), e.addUniform(\"directionRandomizer\", 1);\n }\n /**\n * Returns a string to use to update the GPU particles update shader\n * @returns a string containing the defines string\n */\n getEffectDefines() {\n return \"#define HEMISPHERICEMITTER\";\n }\n /**\n * Returns the string \"HemisphericParticleEmitter\"\n * @returns a string containing the class name\n */\n getClassName() {\n return \"HemisphericParticleEmitter\";\n }\n /**\n * Serializes the particle system to a JSON object.\n * @returns the JSON object\n */\n serialize() {\n const e = {};\n return e.type = this.getClassName(), e.radius = this.radius, e.radiusRange = this.radiusRange, e.directionRandomizer = this.directionRandomizer, e;\n }\n /**\n * Parse properties from a JSON object\n * @param serializationObject defines the JSON object\n */\n parse(e) {\n this.radius = e.radius, this.radiusRange = e.radiusRange, this.directionRandomizer = e.directionRandomizer;\n }\n}\nclass hm {\n /**\n * Creates a new instance PointParticleEmitter\n */\n constructor() {\n this.direction1 = new g(0, 1, 0), this.direction2 = new g(0, 1, 0);\n }\n /**\n * Called by the particle System when the direction is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param directionToUpdate is the direction vector to update with the result\n * @param particle is the particle we are computed the direction for\n * @param isLocal defines if the direction should be set in local space\n */\n startDirectionFunction(e, t, i, s) {\n const r = Re.RandomRange(this.direction1.x, this.direction2.x), n = Re.RandomRange(this.direction1.y, this.direction2.y), o = Re.RandomRange(this.direction1.z, this.direction2.z);\n if (s) {\n t.copyFromFloats(r, n, o);\n return;\n }\n g.TransformNormalFromFloatsToRef(r, n, o, e, t);\n }\n /**\n * Called by the particle System when the position is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param positionToUpdate is the position vector to update with the result\n * @param particle is the particle we are computed the position for\n * @param isLocal defines if the position should be set in local space\n */\n startPositionFunction(e, t, i, s) {\n if (s) {\n t.copyFromFloats(0, 0, 0);\n return;\n }\n g.TransformCoordinatesFromFloatsToRef(0, 0, 0, e, t);\n }\n /**\n * Clones the current emitter and returns a copy of it\n * @returns the new emitter\n */\n clone() {\n const e = new hm();\n return Hs.DeepCopy(this, e), e;\n }\n /**\n * Called by the GPUParticleSystem to setup the update shader\n * @param uboOrEffect defines the update shader\n */\n applyToShader(e) {\n e.setVector3(\"direction1\", this.direction1), e.setVector3(\"direction2\", this.direction2);\n }\n /**\n * Creates the structure of the ubo for this particle emitter\n * @param ubo ubo to create the structure for\n */\n buildUniformLayout(e) {\n e.addUniform(\"direction1\", 3), e.addUniform(\"direction2\", 3);\n }\n /**\n * Returns a string to use to update the GPU particles update shader\n * @returns a string containing the defines string\n */\n getEffectDefines() {\n return \"#define POINTEMITTER\";\n }\n /**\n * Returns the string \"PointParticleEmitter\"\n * @returns a string containing the class name\n */\n getClassName() {\n return \"PointParticleEmitter\";\n }\n /**\n * Serializes the particle system to a JSON object.\n * @returns the JSON object\n */\n serialize() {\n const e = {};\n return e.type = this.getClassName(), e.direction1 = this.direction1.asArray(), e.direction2 = this.direction2.asArray(), e;\n }\n /**\n * Parse properties from a JSON object\n * @param serializationObject defines the JSON object\n */\n parse(e) {\n g.FromArrayToRef(e.direction1, 0, this.direction1), g.FromArrayToRef(e.direction2, 0, this.direction2);\n }\n}\nclass Nf {\n /**\n * Creates a new instance SphereParticleEmitter\n * @param radius the radius of the emission sphere (1 by default)\n * @param radiusRange the range of the emission sphere [0-1] 0 Surface only, 1 Entire Radius (1 by default)\n * @param directionRandomizer defines how much to randomize the particle direction [0-1]\n */\n constructor(e = 1, t = 1, i = 0) {\n this.radius = e, this.radiusRange = t, this.directionRandomizer = i;\n }\n /**\n * Called by the particle System when the direction is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param directionToUpdate is the direction vector to update with the result\n * @param particle is the particle we are computed the direction for\n * @param isLocal defines if the direction should be set in local space\n */\n startDirectionFunction(e, t, i, s) {\n const r = i.position.subtract(e.getTranslation()).normalize(), n = Re.RandomRange(0, this.directionRandomizer), o = Re.RandomRange(0, this.directionRandomizer), l = Re.RandomRange(0, this.directionRandomizer);\n if (r.x += n, r.y += o, r.z += l, r.normalize(), s) {\n t.copyFrom(r);\n return;\n }\n g.TransformNormalFromFloatsToRef(r.x, r.y, r.z, e, t);\n }\n /**\n * Called by the particle System when the position is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param positionToUpdate is the position vector to update with the result\n * @param particle is the particle we are computed the position for\n * @param isLocal defines if the position should be set in local space\n */\n startPositionFunction(e, t, i, s) {\n const r = this.radius - Re.RandomRange(0, this.radius * this.radiusRange), n = Re.RandomRange(0, 1), o = Re.RandomRange(0, 2 * Math.PI), l = Math.acos(2 * n - 1), h = r * Math.cos(o) * Math.sin(l), c = r * Math.cos(l), u = r * Math.sin(o) * Math.sin(l);\n if (s) {\n t.copyFromFloats(h, c, u);\n return;\n }\n g.TransformCoordinatesFromFloatsToRef(h, c, u, e, t);\n }\n /**\n * Clones the current emitter and returns a copy of it\n * @returns the new emitter\n */\n clone() {\n const e = new Nf(this.radius, this.directionRandomizer);\n return Hs.DeepCopy(this, e), e;\n }\n /**\n * Called by the GPUParticleSystem to setup the update shader\n * @param uboOrEffect defines the update shader\n */\n applyToShader(e) {\n e.setFloat(\"radius\", this.radius), e.setFloat(\"radiusRange\", this.radiusRange), e.setFloat(\"directionRandomizer\", this.directionRandomizer);\n }\n /**\n * Creates the structure of the ubo for this particle emitter\n * @param ubo ubo to create the structure for\n */\n buildUniformLayout(e) {\n e.addUniform(\"radius\", 1), e.addUniform(\"radiusRange\", 1), e.addUniform(\"directionRandomizer\", 1);\n }\n /**\n * Returns a string to use to update the GPU particles update shader\n * @returns a string containing the defines string\n */\n getEffectDefines() {\n return \"#define SPHEREEMITTER\";\n }\n /**\n * Returns the string \"SphereParticleEmitter\"\n * @returns a string containing the class name\n */\n getClassName() {\n return \"SphereParticleEmitter\";\n }\n /**\n * Serializes the particle system to a JSON object.\n * @returns the JSON object\n */\n serialize() {\n const e = {};\n return e.type = this.getClassName(), e.radius = this.radius, e.radiusRange = this.radiusRange, e.directionRandomizer = this.directionRandomizer, e;\n }\n /**\n * Parse properties from a JSON object\n * @param serializationObject defines the JSON object\n */\n parse(e) {\n this.radius = e.radius, this.radiusRange = e.radiusRange, this.directionRandomizer = e.directionRandomizer;\n }\n}\nclass cm extends Nf {\n /**\n * Creates a new instance SphereDirectedParticleEmitter\n * @param radius the radius of the emission sphere (1 by default)\n * @param direction1 the min limit of the emission direction (up vector by default)\n * @param direction2 the max limit of the emission direction (up vector by default)\n */\n constructor(e = 1, t = new g(0, 1, 0), i = new g(0, 1, 0)) {\n super(e), this.direction1 = t, this.direction2 = i;\n }\n /**\n * Called by the particle System when the direction is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param directionToUpdate is the direction vector to update with the result\n */\n startDirectionFunction(e, t) {\n const i = Re.RandomRange(this.direction1.x, this.direction2.x), s = Re.RandomRange(this.direction1.y, this.direction2.y), r = Re.RandomRange(this.direction1.z, this.direction2.z);\n g.TransformNormalFromFloatsToRef(i, s, r, e, t);\n }\n /**\n * Clones the current emitter and returns a copy of it\n * @returns the new emitter\n */\n clone() {\n const e = new cm(this.radius, this.direction1, this.direction2);\n return Hs.DeepCopy(this, e), e;\n }\n /**\n * Called by the GPUParticleSystem to setup the update shader\n * @param uboOrEffect defines the update shader\n */\n applyToShader(e) {\n e.setFloat(\"radius\", this.radius), e.setFloat(\"radiusRange\", this.radiusRange), e.setVector3(\"direction1\", this.direction1), e.setVector3(\"direction2\", this.direction2);\n }\n /**\n * Creates the structure of the ubo for this particle emitter\n * @param ubo ubo to create the structure for\n */\n buildUniformLayout(e) {\n e.addUniform(\"radius\", 1), e.addUniform(\"radiusRange\", 1), e.addUniform(\"direction1\", 3), e.addUniform(\"direction2\", 3);\n }\n /**\n * Returns a string to use to update the GPU particles update shader\n * @returns a string containing the defines string\n */\n getEffectDefines() {\n return `#define SPHEREEMITTER\n#define DIRECTEDSPHEREEMITTER`;\n }\n /**\n * Returns the string \"SphereDirectedParticleEmitter\"\n * @returns a string containing the class name\n */\n getClassName() {\n return \"SphereDirectedParticleEmitter\";\n }\n /**\n * Serializes the particle system to a JSON object.\n * @returns the JSON object\n */\n serialize() {\n const e = super.serialize();\n return e.direction1 = this.direction1.asArray(), e.direction2 = this.direction2.asArray(), e;\n }\n /**\n * Parse properties from a JSON object\n * @param serializationObject defines the JSON object\n */\n parse(e) {\n super.parse(e), this.direction1.copyFrom(e.direction1), this.direction2.copyFrom(e.direction2);\n }\n}\nclass $o {\n /**\n * Creates a new instance CustomParticleEmitter\n */\n constructor() {\n this.particlePositionGenerator = () => {\n }, this.particleDestinationGenerator = () => {\n };\n }\n /**\n * Called by the particle System when the direction is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param directionToUpdate is the direction vector to update with the result\n * @param particle is the particle we are computed the direction for\n * @param isLocal defines if the direction should be set in local space\n */\n startDirectionFunction(e, t, i, s) {\n const r = w.Vector3[0];\n if (this.particleDestinationGenerator) {\n this.particleDestinationGenerator(-1, i, r);\n const n = w.Vector3[1];\n r.subtractToRef(i.position, n), n.scaleToRef(1 / i.lifeTime, r);\n } else\n r.set(0, 0, 0);\n if (s) {\n t.copyFrom(r);\n return;\n }\n g.TransformNormalToRef(r, e, t);\n }\n /**\n * Called by the particle System when the position is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param positionToUpdate is the position vector to update with the result\n * @param particle is the particle we are computed the position for\n * @param isLocal defines if the position should be set in local space\n */\n startPositionFunction(e, t, i, s) {\n const r = w.Vector3[0];\n if (this.particlePositionGenerator ? this.particlePositionGenerator(-1, i, r) : r.set(0, 0, 0), s) {\n t.copyFrom(r);\n return;\n }\n g.TransformCoordinatesToRef(r, e, t);\n }\n /**\n * Clones the current emitter and returns a copy of it\n * @returns the new emitter\n */\n clone() {\n const e = new $o();\n return Hs.DeepCopy(this, e), e;\n }\n /**\n * Called by the GPUParticleSystem to setup the update shader\n * @param uboOrEffect defines the update shader\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n applyToShader(e) {\n }\n /**\n * Creates the structure of the ubo for this particle emitter\n * @param ubo ubo to create the structure for\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n buildUniformLayout(e) {\n }\n /**\n * Returns a string to use to update the GPU particles update shader\n * @returns a string containing the defines string\n */\n getEffectDefines() {\n return \"#define CUSTOMEMITTER\";\n }\n /**\n * Returns the string \"PointParticleEmitter\"\n * @returns a string containing the class name\n */\n getClassName() {\n return \"CustomParticleEmitter\";\n }\n /**\n * Serializes the particle system to a JSON object.\n * @returns the JSON object\n */\n serialize() {\n const e = {};\n return e.type = this.getClassName(), e.particlePositionGenerator = this.particlePositionGenerator, e.particleDestinationGenerator = this.particleDestinationGenerator, e;\n }\n /**\n * Parse properties from a JSON object\n * @param serializationObject defines the JSON object\n */\n parse(e) {\n e.particlePositionGenerator && (this.particlePositionGenerator = e.particlePositionGenerator), e.particleDestinationGenerator && (this.particleDestinationGenerator = e.particleDestinationGenerator);\n }\n}\nclass Yv {\n /** Defines the mesh to use as source */\n get mesh() {\n return this._mesh;\n }\n set mesh(e) {\n this._mesh !== e && (this._mesh = e, e ? (this._indices = e.getIndices(), this._positions = e.getVerticesData(R.PositionKind), this._normals = e.getVerticesData(R.NormalKind)) : (this._indices = null, this._positions = null, this._normals = null));\n }\n /**\n * Creates a new instance MeshParticleEmitter\n * @param mesh defines the mesh to use as source\n */\n constructor(e = null) {\n this._indices = null, this._positions = null, this._normals = null, this._storedNormal = g.Zero(), this._mesh = null, this.direction1 = new g(0, 1, 0), this.direction2 = new g(0, 1, 0), this.useMeshNormalsForDirection = !0, this.mesh = e;\n }\n /**\n * Called by the particle System when the direction is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param directionToUpdate is the direction vector to update with the result\n * @param particle is the particle we are computed the direction for\n * @param isLocal defines if the direction should be set in local space\n */\n startDirectionFunction(e, t, i, s) {\n if (this.useMeshNormalsForDirection && this._normals) {\n g.TransformNormalToRef(this._storedNormal, e, t);\n return;\n }\n const r = Re.RandomRange(this.direction1.x, this.direction2.x), n = Re.RandomRange(this.direction1.y, this.direction2.y), o = Re.RandomRange(this.direction1.z, this.direction2.z);\n if (s) {\n t.copyFromFloats(r, n, o);\n return;\n }\n g.TransformNormalFromFloatsToRef(r, n, o, e, t);\n }\n /**\n * Called by the particle System when the position is computed for the created particle.\n * @param worldMatrix is the world matrix of the particle system\n * @param positionToUpdate is the position vector to update with the result\n * @param particle is the particle we are computed the position for\n * @param isLocal defines if the position should be set in local space\n */\n startPositionFunction(e, t, i, s) {\n if (!this._indices || !this._positions)\n return;\n const r = 3 * Math.random() * (this._indices.length / 3) | 0, n = Math.random(), o = Math.random() * (1 - n), l = 1 - n - o, h = this._indices[r], c = this._indices[r + 1], u = this._indices[r + 2], d = w.Vector3[0], f = w.Vector3[1], p = w.Vector3[2], _ = w.Vector3[3];\n g.FromArrayToRef(this._positions, h * 3, d), g.FromArrayToRef(this._positions, c * 3, f), g.FromArrayToRef(this._positions, u * 3, p), _.x = n * d.x + o * f.x + l * p.x, _.y = n * d.y + o * f.y + l * p.y, _.z = n * d.z + o * f.z + l * p.z, s ? t.copyFromFloats(_.x, _.y, _.z) : g.TransformCoordinatesFromFloatsToRef(_.x, _.y, _.z, e, t), this.useMeshNormalsForDirection && this._normals && (g.FromArrayToRef(this._normals, h * 3, d), g.FromArrayToRef(this._normals, c * 3, f), g.FromArrayToRef(this._normals, u * 3, p), this._storedNormal.x = n * d.x + o * f.x + l * p.x, this._storedNormal.y = n * d.y + o * f.y + l * p.y, this._storedNormal.z = n * d.z + o * f.z + l * p.z);\n }\n /**\n * Clones the current emitter and returns a copy of it\n * @returns the new emitter\n */\n clone() {\n const e = new Yv(this.mesh);\n return Hs.DeepCopy(this, e), e;\n }\n /**\n * Called by the GPUParticleSystem to setup the update shader\n * @param uboOrEffect defines the update shader\n */\n applyToShader(e) {\n e.setVector3(\"direction1\", this.direction1), e.setVector3(\"direction2\", this.direction2);\n }\n /**\n * Creates the structure of the ubo for this particle emitter\n * @param ubo ubo to create the structure for\n */\n buildUniformLayout(e) {\n e.addUniform(\"direction1\", 3), e.addUniform(\"direction2\", 3);\n }\n /**\n * Returns a string to use to update the GPU particles update shader\n * @returns a string containing the defines string\n */\n getEffectDefines() {\n return \"\";\n }\n /**\n * Returns the string \"BoxParticleEmitter\"\n * @returns a string containing the class name\n */\n getClassName() {\n return \"MeshParticleEmitter\";\n }\n /**\n * Serializes the particle system to a JSON object.\n * @returns the JSON object\n */\n serialize() {\n var t;\n const e = {};\n return e.type = this.getClassName(), e.direction1 = this.direction1.asArray(), e.direction2 = this.direction2.asArray(), e.meshId = (t = this.mesh) == null ? void 0 : t.id, e.useMeshNormalsForDirection = this.useMeshNormalsForDirection, e;\n }\n /**\n * Parse properties from a JSON object\n * @param serializationObject defines the JSON object\n * @param scene defines the hosting scene\n */\n parse(e, t) {\n g.FromArrayToRef(e.direction1, 0, this.direction1), g.FromArrayToRef(e.direction2, 0, this.direction2), e.meshId && t && (this.mesh = t.getLastMeshById(e.meshId)), this.useMeshNormalsForDirection = e.useMeshNormalsForDirection;\n }\n}\nclass WR {\n _isUbo(e) {\n return e.addUniform !== void 0;\n }\n constructor(e) {\n this._isUbo(e) ? (this.setMatrix3x3 = e.updateMatrix3x3.bind(e), this.setMatrix2x2 = e.updateMatrix2x2.bind(e), this.setFloat = e.updateFloat.bind(e), this.setFloat2 = e.updateFloat2.bind(e), this.setFloat3 = e.updateFloat3.bind(e), this.setFloat4 = e.updateFloat4.bind(e), this.setFloatArray = e.updateFloatArray.bind(e), this.setArray = e.updateArray.bind(e), this.setIntArray = e.updateIntArray.bind(e), this.setMatrix = e.updateMatrix.bind(e), this.setMatrices = e.updateMatrices.bind(e), this.setVector3 = e.updateVector3.bind(e), this.setVector4 = e.updateVector4.bind(e), this.setColor3 = e.updateColor3.bind(e), this.setColor4 = e.updateColor4.bind(e), this.setDirectColor4 = e.updateDirectColor4.bind(e), this.setInt = e.updateInt.bind(e), this.setInt2 = e.updateInt2.bind(e), this.setInt3 = e.updateInt3.bind(e), this.setInt4 = e.updateInt4.bind(e)) : (this.setMatrix3x3 = e.setMatrix3x3.bind(e), this.setMatrix2x2 = e.setMatrix2x2.bind(e), this.setFloat = e.setFloat.bind(e), this.setFloat2 = e.setFloat2.bind(e), this.setFloat3 = e.setFloat3.bind(e), this.setFloat4 = e.setFloat4.bind(e), this.setFloatArray = e.setFloatArray.bind(e), this.setArray = e.setArray.bind(e), this.setIntArray = e.setIntArray.bind(e), this.setMatrix = e.setMatrix.bind(e), this.setMatrices = e.setMatrices.bind(e), this.setVector3 = e.setVector3.bind(e), this.setVector4 = e.setVector4.bind(e), this.setColor3 = e.setColor3.bind(e), this.setColor4 = e.setColor4.bind(e), this.setDirectColor4 = e.setDirectColor4.bind(e), this.setInt = e.setInt.bind(e), this.setInt2 = e.setInt2.bind(e), this.setInt3 = e.setInt3.bind(e), this.setInt4 = e.setInt4.bind(e));\n }\n}\nconst gG = \"gpuUpdateParticlesPixelShader\", xG = `#version 300 es\nvoid main() {discard;}\n`;\nz.ShadersStore[gG] = xG;\nconst vG = \"gpuUpdateParticlesVertexShader\", TG = `#version 300 es\n#define PI 3.14159\nuniform float currentCount;uniform float timeDelta;uniform float stopFactor;\n#ifndef LOCAL\nuniform mat4 emitterWM;\n#endif\nuniform vec2 lifeTime;uniform vec2 emitPower;uniform vec2 sizeRange;uniform vec4 scaleRange;\n#ifndef COLORGRADIENTS\nuniform vec4 color1;uniform vec4 color2;\n#endif\nuniform vec3 gravity;uniform sampler2D randomSampler;uniform sampler2D randomSampler2;uniform vec4 angleRange;\n#ifdef BOXEMITTER\nuniform vec3 direction1;uniform vec3 direction2;uniform vec3 minEmitBox;uniform vec3 maxEmitBox;\n#endif\n#ifdef POINTEMITTER\nuniform vec3 direction1;uniform vec3 direction2;\n#endif\n#ifdef HEMISPHERICEMITTER\nuniform float radius;uniform float radiusRange;uniform float directionRandomizer;\n#endif\n#ifdef SPHEREEMITTER\nuniform float radius;uniform float radiusRange;\n#ifdef DIRECTEDSPHEREEMITTER\nuniform vec3 direction1;uniform vec3 direction2;\n#else\nuniform float directionRandomizer;\n#endif\n#endif\n#ifdef CYLINDEREMITTER\nuniform float radius;uniform float height;uniform float radiusRange;\n#ifdef DIRECTEDCYLINDEREMITTER\nuniform vec3 direction1;uniform vec3 direction2;\n#else\nuniform float directionRandomizer;\n#endif\n#endif\n#ifdef CONEEMITTER\nuniform vec2 radius;uniform float coneAngle;uniform vec2 height;\n#ifdef DIRECTEDCONEEMITTER\nuniform vec3 direction1;uniform vec3 direction2;\n#else\nuniform float directionRandomizer;\n#endif\n#endif\nin vec3 position;\n#ifdef CUSTOMEMITTER\nin vec3 initialPosition;\n#endif\nin float age;in float life;in vec4 seed;in vec3 size;\n#ifndef COLORGRADIENTS\nin vec4 color;\n#endif\nin vec3 direction;\n#ifndef BILLBOARD\nin vec3 initialDirection;\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nin float angle;\n#else\nin vec2 angle;\n#endif\n#ifdef ANIMATESHEET\nin float cellIndex;\n#ifdef ANIMATESHEETRANDOMSTART\nin float cellStartOffset;\n#endif\n#endif\n#ifdef NOISE\nin vec3 noiseCoordinates1;in vec3 noiseCoordinates2;\n#endif\nout vec3 outPosition;\n#ifdef CUSTOMEMITTER\nout vec3 outInitialPosition;\n#endif\nout float outAge;out float outLife;out vec4 outSeed;out vec3 outSize;\n#ifndef COLORGRADIENTS\nout vec4 outColor;\n#endif\nout vec3 outDirection;\n#ifndef BILLBOARD\nout vec3 outInitialDirection;\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nout float outAngle;\n#else\nout vec2 outAngle;\n#endif\n#ifdef ANIMATESHEET\nout float outCellIndex;\n#ifdef ANIMATESHEETRANDOMSTART\nout float outCellStartOffset;\n#endif\n#endif\n#ifdef NOISE\nout vec3 outNoiseCoordinates1;out vec3 outNoiseCoordinates2;\n#endif\n#ifdef SIZEGRADIENTS\nuniform sampler2D sizeGradientSampler;\n#endif \n#ifdef ANGULARSPEEDGRADIENTS\nuniform sampler2D angularSpeedGradientSampler;\n#endif \n#ifdef VELOCITYGRADIENTS\nuniform sampler2D velocityGradientSampler;\n#endif\n#ifdef LIMITVELOCITYGRADIENTS\nuniform sampler2D limitVelocityGradientSampler;uniform float limitVelocityDamping;\n#endif\n#ifdef DRAGGRADIENTS\nuniform sampler2D dragGradientSampler;\n#endif\n#ifdef NOISE\nuniform vec3 noiseStrength;uniform sampler2D noiseSampler;\n#endif\n#ifdef ANIMATESHEET\nuniform vec4 cellInfos;\n#endif\nvec3 getRandomVec3(float offset) {return texture(randomSampler2,vec2(float(gl_VertexID)*offset/currentCount,0)).rgb;}\nvec4 getRandomVec4(float offset) {return texture(randomSampler,vec2(float(gl_VertexID)*offset/currentCount,0));}\nvoid main() {float newAge=age+timeDelta; \nif (newAge>=life && stopFactor != 0.) {vec3 newPosition;vec3 newDirection;vec4 randoms=getRandomVec4(seed.x);outLife=lifeTime.x+(lifeTime.y-lifeTime.x)*randoms.r;outAge=newAge-life;outSeed=seed;\n#ifdef SIZEGRADIENTS \noutSize.x=texture(sizeGradientSampler,vec2(0,0)).r;\n#else\noutSize.x=sizeRange.x+(sizeRange.y-sizeRange.x)*randoms.g;\n#endif\noutSize.y=scaleRange.x+(scaleRange.y-scaleRange.x)*randoms.b;outSize.z=scaleRange.z+(scaleRange.w-scaleRange.z)*randoms.a; \n#ifndef COLORGRADIENTS\noutColor=color1+(color2-color1)*randoms.b;\n#endif\n#ifndef ANGULARSPEEDGRADIENTS \noutAngle.y=angleRange.x+(angleRange.y-angleRange.x)*randoms.a;outAngle.x=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;\n#else\noutAngle=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;\n#endif \n#ifdef POINTEMITTER\nvec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);newPosition=vec3(0,0,0);newDirection=direction1+(direction2-direction1)*randoms3;\n#elif defined(BOXEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);newPosition=minEmitBox+(maxEmitBox-minEmitBox)*randoms2;newDirection=direction1+(direction2-direction1)*randoms3; \n#elif defined(HEMISPHERICEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);float phi=2.0*PI*randoms2.x;float theta=acos(2.0*randoms2.y-1.0);float randX=cos(phi)*sin(theta);float randY=cos(theta);float randZ=sin(phi)*sin(theta);newPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,abs(randY),randZ);newDirection=newPosition+directionRandomizer*randoms3; \n#elif defined(SPHEREEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);float phi=2.0*PI*randoms2.x;float theta=acos(2.0*randoms2.y-1.0);float randX=cos(phi)*sin(theta);float randY=cos(theta);float randZ=sin(phi)*sin(theta);newPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,randY,randZ);\n#ifdef DIRECTEDSPHEREEMITTER\nnewDirection=normalize(direction1+(direction2-direction1)*randoms3);\n#else\nnewDirection=normalize(newPosition+directionRandomizer*randoms3);\n#endif\n#elif defined(CYLINDEREMITTER)\nvec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);float yPos=(randoms2.x-0.5)*height;float angle=randoms2.y*PI*2.;float inverseRadiusRangeSquared=((1.-radiusRange)*(1.-radiusRange));float positionRadius=radius*sqrt(inverseRadiusRangeSquared+(randoms2.z*(1.-inverseRadiusRangeSquared)));float xPos=positionRadius*cos(angle);float zPos=positionRadius*sin(angle);newPosition=vec3(xPos,yPos,zPos);\n#ifdef DIRECTEDCYLINDEREMITTER\nnewDirection=direction1+(direction2-direction1)*randoms3;\n#else\nangle=angle+((randoms3.x-0.5)*PI)*directionRandomizer;newDirection=vec3(cos(angle),(randoms3.y-0.5)*directionRandomizer,sin(angle));newDirection=normalize(newDirection);\n#endif\n#elif defined(CONEEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);float s=2.0*PI*randoms2.x;\n#ifdef CONEEMITTERSPAWNPOINT\nfloat h=0.0001;\n#else\nfloat h=randoms2.y*height.y;h=1.-h*h; \n#endif\nfloat lRadius=radius.x-radius.x*randoms2.z*radius.y;lRadius=lRadius*h;float randX=lRadius*sin(s);float randZ=lRadius*cos(s);float randY=h *height.x;newPosition=vec3(randX,randY,randZ); \nvec3 randoms3=getRandomVec3(seed.z);\n#ifdef DIRECTEDCONEEMITTER\nnewDirection=direction1+(direction2-direction1)*randoms3;\n#else\nif (abs(cos(coneAngle))==1.0) {newDirection=vec3(0.,1.0,0.);} else {newDirection=normalize(newPosition+directionRandomizer*randoms3); }\n#endif\n#elif defined(CUSTOMEMITTER)\nnewPosition=initialPosition;outInitialPosition=initialPosition;\n#else \nnewPosition=vec3(0.,0.,0.);newDirection=2.0*(getRandomVec3(seed.w)-vec3(0.5,0.5,0.5));\n#endif\nfloat power=emitPower.x+(emitPower.y-emitPower.x)*randoms.a;\n#ifdef LOCAL\noutPosition=newPosition;\n#else\noutPosition=(emitterWM*vec4(newPosition,1.)).xyz;\n#endif\n#ifdef CUSTOMEMITTER\noutDirection=direction;\n#ifndef BILLBOARD \noutInitialDirection=direction;\n#endif\n#else\n#ifdef LOCAL\nvec3 initial=newDirection;\n#else \nvec3 initial=(emitterWM*vec4(newDirection,0.)).xyz;\n#endif\noutDirection=initial*power;\n#ifndef BILLBOARD \noutInitialDirection=initial;\n#endif\n#endif\n#ifdef ANIMATESHEET \noutCellIndex=cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\noutCellStartOffset=randoms.a*outLife;\n#endif \n#endif\n#ifdef NOISE\noutNoiseCoordinates1=noiseCoordinates1;outNoiseCoordinates2=noiseCoordinates2;\n#endif\n} else {float directionScale=timeDelta;outAge=newAge;float ageGradient=newAge/life;\n#ifdef VELOCITYGRADIENTS\ndirectionScale*=texture(velocityGradientSampler,vec2(ageGradient,0)).r;\n#endif\n#ifdef DRAGGRADIENTS\ndirectionScale*=1.0-texture(dragGradientSampler,vec2(ageGradient,0)).r;\n#endif\n#if defined(CUSTOMEMITTER)\noutPosition=position+(direction-position)*ageGradient; \noutInitialPosition=initialPosition;\n#else\noutPosition=position+direction*directionScale;\n#endif\noutLife=life;outSeed=seed;\n#ifndef COLORGRADIENTS \noutColor=color;\n#endif\n#ifdef SIZEGRADIENTS\noutSize.x=texture(sizeGradientSampler,vec2(ageGradient,0)).r;outSize.yz=size.yz;\n#else\noutSize=size;\n#endif \n#ifndef BILLBOARD \noutInitialDirection=initialDirection;\n#endif\n#ifdef CUSTOMEMITTER\noutDirection=direction;\n#else\nvec3 updatedDirection=direction+gravity*timeDelta;\n#ifdef LIMITVELOCITYGRADIENTS\nfloat limitVelocity=texture(limitVelocityGradientSampler,vec2(ageGradient,0)).r;float currentVelocity=length(updatedDirection);if (currentVelocity>limitVelocity) {updatedDirection=updatedDirection*limitVelocityDamping;}\n#endif\noutDirection=updatedDirection;\n#ifdef NOISE\nfloat fetchedR=texture(noiseSampler,vec2(noiseCoordinates1.x,noiseCoordinates1.y)*vec2(0.5)+vec2(0.5)).r;float fetchedG=texture(noiseSampler,vec2(noiseCoordinates1.z,noiseCoordinates2.x)*vec2(0.5)+vec2(0.5)).r;float fetchedB=texture(noiseSampler,vec2(noiseCoordinates2.y,noiseCoordinates2.z)*vec2(0.5)+vec2(0.5)).r;vec3 force=vec3(2.*fetchedR-1.,2.*fetchedG-1.,2.*fetchedB-1.)*noiseStrength;outDirection=outDirection+force*timeDelta;outNoiseCoordinates1=noiseCoordinates1;outNoiseCoordinates2=noiseCoordinates2;\n#endif \n#endif \n#ifdef ANGULARSPEEDGRADIENTS\nfloat angularSpeed=texture(angularSpeedGradientSampler,vec2(ageGradient,0)).r;outAngle=angle+angularSpeed*timeDelta;\n#else\noutAngle=vec2(angle.x+angle.y*timeDelta,angle.y);\n#endif\n#ifdef ANIMATESHEET \nfloat offsetAge=outAge;float dist=cellInfos.y-cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\noutCellStartOffset=cellStartOffset;offsetAge+=cellStartOffset;\n#else\nfloat cellStartOffset=0.;\n#endif \nfloat ratio=0.;if (cellInfos.w==1.0) {ratio=clamp(mod(cellStartOffset+cellInfos.z*offsetAge,life)/life,0.,1.0);}\nelse {ratio=clamp(cellStartOffset+cellInfos.z*offsetAge/life,0.,1.0);}\noutCellIndex=float(int(cellInfos.x+ratio*dist));\n#endif\n}}`;\nz.ShadersStore[vG] = TG;\nclass SG {\n constructor(e, t) {\n this._renderVAO = [], this._updateVAO = [], this.alignDataInBuffer = !1, this._parent = e, this._engine = t, this._updateEffectOptions = {\n attributes: [\n \"position\",\n \"initialPosition\",\n \"age\",\n \"life\",\n \"seed\",\n \"size\",\n \"color\",\n \"direction\",\n \"initialDirection\",\n \"angle\",\n \"cellIndex\",\n \"cellStartOffset\",\n \"noiseCoordinates1\",\n \"noiseCoordinates2\"\n ],\n uniformsNames: [\n \"currentCount\",\n \"timeDelta\",\n \"emitterWM\",\n \"lifeTime\",\n \"color1\",\n \"color2\",\n \"sizeRange\",\n \"scaleRange\",\n \"gravity\",\n \"emitPower\",\n \"direction1\",\n \"direction2\",\n \"minEmitBox\",\n \"maxEmitBox\",\n \"radius\",\n \"directionRandomizer\",\n \"height\",\n \"coneAngle\",\n \"stopFactor\",\n \"angleRange\",\n \"radiusRange\",\n \"cellInfos\",\n \"noiseStrength\",\n \"limitVelocityDamping\"\n ],\n uniformBuffersNames: [],\n samplers: [\n \"randomSampler\",\n \"randomSampler2\",\n \"sizeGradientSampler\",\n \"angularSpeedGradientSampler\",\n \"velocityGradientSampler\",\n \"limitVelocityGradientSampler\",\n \"noiseSampler\",\n \"dragGradientSampler\"\n ],\n defines: \"\",\n fallbacks: null,\n onCompiled: null,\n onError: null,\n indexParameters: null,\n maxSimultaneousLights: 0,\n transformFeedbackVaryings: []\n };\n }\n contextLost() {\n this._updateEffect = void 0, this._renderVAO.length = 0, this._updateVAO.length = 0;\n }\n isUpdateBufferCreated() {\n return !!this._updateEffect;\n }\n isUpdateBufferReady() {\n var e;\n return ((e = this._updateEffect) == null ? void 0 : e.isReady()) ?? !1;\n }\n createUpdateBuffer(e) {\n return this._updateEffectOptions.transformFeedbackVaryings = [\"outPosition\"], this._updateEffectOptions.transformFeedbackVaryings.push(\"outAge\"), this._updateEffectOptions.transformFeedbackVaryings.push(\"outSize\"), this._updateEffectOptions.transformFeedbackVaryings.push(\"outLife\"), this._updateEffectOptions.transformFeedbackVaryings.push(\"outSeed\"), this._updateEffectOptions.transformFeedbackVaryings.push(\"outDirection\"), this._parent.particleEmitterType instanceof $o && this._updateEffectOptions.transformFeedbackVaryings.push(\"outInitialPosition\"), this._parent._colorGradientsTexture || this._updateEffectOptions.transformFeedbackVaryings.push(\"outColor\"), this._parent._isBillboardBased || this._updateEffectOptions.transformFeedbackVaryings.push(\"outInitialDirection\"), this._parent.noiseTexture && (this._updateEffectOptions.transformFeedbackVaryings.push(\"outNoiseCoordinates1\"), this._updateEffectOptions.transformFeedbackVaryings.push(\"outNoiseCoordinates2\")), this._updateEffectOptions.transformFeedbackVaryings.push(\"outAngle\"), this._parent.isAnimationSheetEnabled && (this._updateEffectOptions.transformFeedbackVaryings.push(\"outCellIndex\"), this._parent.spriteRandomStartCell && this._updateEffectOptions.transformFeedbackVaryings.push(\"outCellStartOffset\")), this._updateEffectOptions.defines = e, this._updateEffect = new si(\"gpuUpdateParticles\", this._updateEffectOptions, this._engine), new WR(this._updateEffect);\n }\n createVertexBuffers(e, t) {\n this._updateVAO.push(this._createUpdateVAO(e)), this._renderVAO.push(this._engine.recordVertexArrayObject(t, null, this._parent._getWrapper(this._parent.blendMode).effect)), this._engine.bindArrayBuffer(null), this._renderVertexBuffers = t;\n }\n createParticleBuffer(e) {\n return e;\n }\n bindDrawBuffers(e, t, i) {\n i ? this._engine.bindBuffers(this._renderVertexBuffers, i, t) : this._engine.bindVertexArrayObject(this._renderVAO[e], null);\n }\n preUpdateParticleBuffer() {\n const e = this._engine;\n if (this._engine.enableEffect(this._updateEffect), !e.setState)\n throw new Error(\"GPU particles cannot work without a full Engine. ThinEngine is not supported\");\n }\n updateParticleBuffer(e, t, i) {\n this._updateEffect.setTexture(\"randomSampler\", this._parent._randomTexture), this._updateEffect.setTexture(\"randomSampler2\", this._parent._randomTexture2), this._parent._sizeGradientsTexture && this._updateEffect.setTexture(\"sizeGradientSampler\", this._parent._sizeGradientsTexture), this._parent._angularSpeedGradientsTexture && this._updateEffect.setTexture(\"angularSpeedGradientSampler\", this._parent._angularSpeedGradientsTexture), this._parent._velocityGradientsTexture && this._updateEffect.setTexture(\"velocityGradientSampler\", this._parent._velocityGradientsTexture), this._parent._limitVelocityGradientsTexture && this._updateEffect.setTexture(\"limitVelocityGradientSampler\", this._parent._limitVelocityGradientsTexture), this._parent._dragGradientsTexture && this._updateEffect.setTexture(\"dragGradientSampler\", this._parent._dragGradientsTexture), this._parent.noiseTexture && this._updateEffect.setTexture(\"noiseSampler\", this._parent.noiseTexture), this._engine.bindVertexArrayObject(this._updateVAO[e], null);\n const s = this._engine;\n s.bindTransformFeedbackBuffer(t.getBuffer()), s.setRasterizerState(!1), s.beginTransformFeedback(!0), s.drawArraysType(3, 0, i), s.endTransformFeedback(), s.setRasterizerState(!0), s.bindTransformFeedbackBuffer(null);\n }\n releaseBuffers() {\n }\n releaseVertexBuffers() {\n for (let e = 0; e < this._updateVAO.length; e++)\n this._engine.releaseVertexArrayObject(this._updateVAO[e]);\n this._updateVAO.length = 0;\n for (let e = 0; e < this._renderVAO.length; e++)\n this._engine.releaseVertexArrayObject(this._renderVAO[e]);\n this._renderVAO.length = 0;\n }\n _createUpdateVAO(e) {\n const t = {};\n t.position = e.createVertexBuffer(\"position\", 0, 3);\n let i = 3;\n t.age = e.createVertexBuffer(\"age\", i, 1), i += 1, t.size = e.createVertexBuffer(\"size\", i, 3), i += 3, t.life = e.createVertexBuffer(\"life\", i, 1), i += 1, t.seed = e.createVertexBuffer(\"seed\", i, 4), i += 4, t.direction = e.createVertexBuffer(\"direction\", i, 3), i += 3, this._parent.particleEmitterType instanceof $o && (t.initialPosition = e.createVertexBuffer(\"initialPosition\", i, 3), i += 3), this._parent._colorGradientsTexture || (t.color = e.createVertexBuffer(\"color\", i, 4), i += 4), this._parent._isBillboardBased || (t.initialDirection = e.createVertexBuffer(\"initialDirection\", i, 3), i += 3), this._parent.noiseTexture && (t.noiseCoordinates1 = e.createVertexBuffer(\"noiseCoordinates1\", i, 3), i += 3, t.noiseCoordinates2 = e.createVertexBuffer(\"noiseCoordinates2\", i, 3), i += 3), this._parent._angularSpeedGradientsTexture ? (t.angle = e.createVertexBuffer(\"angle\", i, 1), i += 1) : (t.angle = e.createVertexBuffer(\"angle\", i, 2), i += 2), this._parent._isAnimationSheetEnabled && (t.cellIndex = e.createVertexBuffer(\"cellIndex\", i, 1), i += 1, this._parent.spriteRandomStartCell && (t.cellStartOffset = e.createVertexBuffer(\"cellStartOffset\", i, 1), i += 1));\n const s = this._engine.recordVertexArrayObject(t, null, this._updateEffect);\n return this._engine.bindArrayBuffer(null), s;\n }\n}\nU(\"BABYLON.WebGL2ParticleSystem\", SG);\nconst bG = \"gpuUpdateParticlesComputeShader\", EG = `struct Particle {position : vec3,\nage : f32,\nsize : vec3,\nlife : f32,\nseed : vec4,\ndirection : vec3,\ndummy0: f32,\n#ifdef CUSTOMEMITTER\ninitialPosition : vec3,\ndummy1: f32,\n#endif\n#ifndef COLORGRADIENTS\ncolor : vec4,\n#endif\n#ifndef BILLBOARD\ninitialDirection : vec3,\ndummy2: f32,\n#endif\n#ifdef NOISE\nnoiseCoordinates1 : vec3,\ndummy3: f32,\nnoiseCoordinates2 : vec3,\ndummy4: f32,\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nangle : f32,\n#else\nangle : vec2,\n#endif\n#ifdef ANIMATESHEET\ncellIndex : f32,\n#ifdef ANIMATESHEETRANDOMSTART\ncellStartOffset : f32,\n#endif\n#endif\n};struct Particles {particles : array,};struct SimParams {currentCount : f32,\ntimeDelta : f32,\nstopFactor : f32,\nrandomTextureSize: i32,\nlifeTime : vec2,\nemitPower : vec2,\n#ifndef COLORGRADIENTS\ncolor1 : vec4,\ncolor2 : vec4,\n#endif\nsizeRange : vec2,\nscaleRange : vec4,\nangleRange : vec4,\ngravity : vec3,\n#ifdef LIMITVELOCITYGRADIENTS\nlimitVelocityDamping : f32,\n#endif\n#ifdef ANIMATESHEET\ncellInfos : vec4,\n#endif\n#ifdef NOISE\nnoiseStrength : vec3,\n#endif\n#ifndef LOCAL\nemitterWM : mat4x4,\n#endif\n#ifdef BOXEMITTER\ndirection1 : vec3,\ndirection2 : vec3,\nminEmitBox : vec3,\nmaxEmitBox : vec3,\n#endif\n#ifdef CONEEMITTER\nradius : vec2,\nconeAngle : f32,\nheight : vec2,\n#ifdef DIRECTEDCONEEMITTER\ndirection1 : vec3,\ndirection2 : vec3,\n#else\ndirectionRandomizer : f32,\n#endif\n#endif\n#ifdef CYLINDEREMITTER\nradius : f32,\nheight : f32,\nradiusRange : f32,\n#ifdef DIRECTEDCYLINDEREMITTER\ndirection1 : vec3,\ndirection2 : vec3,\n#else\ndirectionRandomizer : f32,\n#endif\n#endif\n#ifdef HEMISPHERICEMITTER\nradius : f32,\nradiusRange : f32,\ndirectionRandomizer : f32,\n#endif\n#ifdef POINTEMITTER\ndirection1 : vec3,\ndirection2 : vec3,\n#endif\n#ifdef SPHEREEMITTER\nradius : f32,\nradiusRange : f32,\n#ifdef DIRECTEDSPHEREEMITTER\ndirection1 : vec3,\ndirection2 : vec3,\n#else\ndirectionRandomizer : f32,\n#endif\n#endif\n};@binding(0) @group(0) var params : SimParams;@binding(1) @group(0) var particlesIn : Particles;@binding(2) @group(0) var particlesOut : Particles;@binding(3) @group(0) var randomTexture : texture_2d;@binding(4) @group(0) var randomTexture2 : texture_2d;\n#ifdef SIZEGRADIENTS\n@binding(0) @group(1) var sizeGradientSampler : sampler;@binding(1) @group(1) var sizeGradientTexture : texture_2d;\n#endif \n#ifdef ANGULARSPEEDGRADIENTS\n@binding(2) @group(1) var angularSpeedGradientSampler : sampler;@binding(3) @group(1) var angularSpeedGradientTexture : texture_2d;\n#endif \n#ifdef VELOCITYGRADIENTS\n@binding(4) @group(1) var velocityGradientSampler : sampler;@binding(5) @group(1) var velocityGradientTexture : texture_2d;\n#endif\n#ifdef LIMITVELOCITYGRADIENTS\n@binding(6) @group(1) var limitVelocityGradientSampler : sampler;@binding(7) @group(1) var limitVelocityGradientTexture : texture_2d;\n#endif\n#ifdef DRAGGRADIENTS\n@binding(8) @group(1) var dragGradientSampler : sampler;@binding(9) @group(1) var dragGradientTexture : texture_2d;\n#endif\n#ifdef NOISE\n@binding(10) @group(1) var noiseSampler : sampler;@binding(11) @group(1) var noiseTexture : texture_2d;\n#endif\nfn getRandomVec3(offset : f32,vertexID : f32)->vec3 {return textureLoad(randomTexture2,vec2(i32(vertexID*offset/params.currentCount*f32(params.randomTextureSize)) % params.randomTextureSize,0),0).rgb;}\nfn getRandomVec4(offset : f32,vertexID : f32)->vec4 {return textureLoad(randomTexture,vec2(i32(vertexID*offset/params.currentCount*f32(params.randomTextureSize)) % params.randomTextureSize,0),0);}\n@compute @workgroup_size(64)\nfn main(@builtin(global_invocation_id) GlobalInvocationID : vec3) {let index : u32=GlobalInvocationID.x;let vertexID : f32=f32(index);if (index>=u32(params.currentCount)) {return;}\nlet PI : f32=3.14159;let timeDelta : f32=params.timeDelta;let newAge : f32=particlesIn.particles[index].age+timeDelta;let life : f32=particlesIn.particles[index].life;let seed : vec4=particlesIn.particles[index].seed;let direction : vec3=particlesIn.particles[index].direction;if (newAge>=life && params.stopFactor != 0.) {var newPosition : vec3;var newDirection : vec3;let randoms : vec4=getRandomVec4(seed.x,vertexID);let outLife : f32=params.lifeTime.x+(params.lifeTime.y-params.lifeTime.x)*randoms.r;particlesOut.particles[index].life=outLife;particlesOut.particles[index].age=newAge-life;particlesOut.particles[index].seed=seed;var sizex : f32;\n#ifdef SIZEGRADIENTS \nsizex=textureSampleLevel(sizeGradientTexture,sizeGradientSampler,vec2(0.,0.),0.).r;\n#else\nsizex=params.sizeRange.x+(params.sizeRange.y-params.sizeRange.x)*randoms.g;\n#endif\nparticlesOut.particles[index].size=vec3(\nsizex,\nparams.scaleRange.x+(params.scaleRange.y-params.scaleRange.x)*randoms.b,\nparams.scaleRange.z+(params.scaleRange.w-params.scaleRange.z)*randoms.a);\n#ifndef COLORGRADIENTS\nparticlesOut.particles[index].color=params.color1+(params.color2-params.color1)*randoms.b;\n#endif\n#ifndef ANGULARSPEEDGRADIENTS \nparticlesOut.particles[index].angle=vec2(\nparams.angleRange.z+(params.angleRange.w-params.angleRange.z)*randoms.r,\nparams.angleRange.x+(params.angleRange.y-params.angleRange.x)*randoms.a);\n#else\nparticlesOut.particles[index].angle=params.angleRange.z+(params.angleRange.w-params.angleRange.z)*randoms.r;\n#endif \n#if defined(POINTEMITTER)\nlet randoms2 : vec3=getRandomVec3(seed.y,vertexID);let randoms3 : vec3=getRandomVec3(seed.z,vertexID);newPosition=vec3(0.,0.,0.);newDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\n#elif defined(BOXEMITTER)\nlet randoms2 : vec3=getRandomVec3(seed.y,vertexID);let randoms3 : vec3=getRandomVec3(seed.z,vertexID);newPosition=params.minEmitBox+(params.maxEmitBox-params.minEmitBox)*randoms2;newDirection=params.direction1+(params.direction2-params.direction1)*randoms3; \n#elif defined(HEMISPHERICEMITTER)\nlet randoms2 : vec3=getRandomVec3(seed.y,vertexID);let randoms3 : vec3=getRandomVec3(seed.z,vertexID);let phi : f32=2.0*PI*randoms2.x;let theta : f32=acos(-1.0+2.0*randoms2.y);let randX : f32=cos(phi)*sin(theta);let randY : f32=cos(theta);let randZ : f32=sin(phi)*sin(theta);newPosition=(params.radius-(params.radius*params.radiusRange*randoms2.z))*vec3(randX,abs(randY),randZ);newDirection=normalize(newPosition+params.directionRandomizer*randoms3);\n#elif defined(SPHEREEMITTER)\nlet randoms2 : vec3=getRandomVec3(seed.y,vertexID);let randoms3 : vec3=getRandomVec3(seed.z,vertexID);let phi : f32=2.0*PI*randoms2.x;let theta : f32=acos(-1.0+2.0*randoms2.y);let randX : f32=cos(phi)*sin(theta);let randY : f32=cos(theta);let randZ : f32=sin(phi)*sin(theta);newPosition=(params.radius-(params.radius*params.radiusRange*randoms2.z))*vec3(randX,randY,randZ);\n#ifdef DIRECTEDSPHEREEMITTER\nnewDirection=normalize(params.direction1+(params.direction2-params.direction1)*randoms3);\n#else\nnewDirection=normalize(newPosition+params.directionRandomizer*randoms3);\n#endif\n#elif defined(CYLINDEREMITTER)\nlet randoms2 : vec3=getRandomVec3(seed.y,vertexID);let randoms3 : vec3=getRandomVec3(seed.z,vertexID);let yPos : f32=(-0.5+randoms2.x)*params.height;var angle : f32=randoms2.y*PI*2.;let inverseRadiusRangeSquared : f32=(1.-params.radiusRange)*(1.-params.radiusRange);let positionRadius : f32=params.radius*sqrt(inverseRadiusRangeSquared+randoms2.z*(1.-inverseRadiusRangeSquared));let xPos : f32=positionRadius*cos(angle);let zPos : f32=positionRadius*sin(angle);newPosition=vec3(xPos,yPos,zPos);\n#ifdef DIRECTEDCYLINDEREMITTER\nnewDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\n#else\nangle=angle+(-0.5+randoms3.x)*PI*params.directionRandomizer;newDirection=vec3(cos(angle),(-0.5+randoms3.y)*params.directionRandomizer,sin(angle));newDirection=normalize(newDirection);\n#endif\n#elif defined(CONEEMITTER)\nlet randoms2 : vec3=getRandomVec3(seed.y,vertexID);let s : f32=2.0*PI*randoms2.x;\n#ifdef CONEEMITTERSPAWNPOINT\nlet h : f32=0.0001;\n#else\nvar h : f32=randoms2.y*params.height.y;h=1.-h*h; \n#endif\nvar lRadius : f32=params.radius.x-params.radius.x*randoms2.z*params.radius.y;lRadius=lRadius*h;let randX : f32=lRadius*sin(s);let randZ : f32=lRadius*cos(s);let randY : f32=h *params.height.x;newPosition=vec3(randX,randY,randZ); \nlet randoms3 : vec3=getRandomVec3(seed.z,vertexID);\n#ifdef DIRECTEDCONEEMITTER\nnewDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\n#else\nif (abs(cos(params.coneAngle))==1.0) {newDirection=vec3(0.,1.0,0.);} else {newDirection=normalize(newPosition+params.directionRandomizer*randoms3); }\n#endif\n#elif defined(CUSTOMEMITTER)\nnewPosition=particlesIn.particles[index].initialPosition;particlesOut.particles[index].initialPosition=newPosition;\n#else \nnewPosition=vec3(0.,0.,0.);newDirection=2.0*(getRandomVec3(seed.w,vertexID)-vec3(0.5,0.5,0.5));\n#endif\nlet power : f32=params.emitPower.x+(params.emitPower.y-params.emitPower.x)*randoms.a;\n#ifdef LOCAL\nparticlesOut.particles[index].position=newPosition;\n#else\nparticlesOut.particles[index].position=(params.emitterWM*vec4(newPosition,1.)).xyz;\n#endif\n#ifdef CUSTOMEMITTER\nparticlesOut.particles[index].direction=direction;\n#ifndef BILLBOARD \nparticlesOut.particles[index].initialDirection=direction;\n#endif\n#else\n#ifdef LOCAL\nlet initial : vec3=newDirection;\n#else \nlet initial : vec3=(params.emitterWM*vec4(newDirection,0.)).xyz;\n#endif\nparticlesOut.particles[index].direction=initial*power;\n#ifndef BILLBOARD \nparticlesOut.particles[index].initialDirection=initial;\n#endif\n#endif\n#ifdef ANIMATESHEET \nparticlesOut.particles[index].cellIndex=params.cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\nparticlesOut.particles[index].cellStartOffset=randoms.a*outLife;\n#endif \n#endif\n#ifdef NOISE\nparticlesOut.particles[index].noiseCoordinates1=particlesIn.particles[index].noiseCoordinates1;particlesOut.particles[index].noiseCoordinates2=particlesIn.particles[index].noiseCoordinates2;\n#endif\n} else {var directionScale : f32=timeDelta;particlesOut.particles[index].age=newAge;let ageGradient : f32=newAge/life;\n#ifdef VELOCITYGRADIENTS\ndirectionScale=directionScale*textureSampleLevel(velocityGradientTexture,velocityGradientSampler,vec2(ageGradient,0.),0.).r;\n#endif\n#ifdef DRAGGRADIENTS\ndirectionScale=directionScale*(1.0-textureSampleLevel(dragGradientTexture,dragGradientSampler,vec2(ageGradient,0.),0.).r);\n#endif\nlet position : vec3=particlesIn.particles[index].position;\n#if defined(CUSTOMEMITTER)\nparticlesOut.particles[index].position=position+(direction-position)*ageGradient; \nparticlesOut.particles[index].initialPosition=particlesIn.particles[index].initialPosition;\n#else\nparticlesOut.particles[index].position=position+direction*directionScale;\n#endif\nparticlesOut.particles[index].life=life;particlesOut.particles[index].seed=seed;\n#ifndef COLORGRADIENTS \nparticlesOut.particles[index].color=particlesIn.particles[index].color;\n#endif\n#ifdef SIZEGRADIENTS\nparticlesOut.particles[index].size=vec3(\ntextureSampleLevel(sizeGradientTexture,sizeGradientSampler,vec2(ageGradient,0.),0.).r,\nparticlesIn.particles[index].size.yz);\n#else\nparticlesOut.particles[index].size=particlesIn.particles[index].size;\n#endif \n#ifndef BILLBOARD \nparticlesOut.particles[index].initialDirection=particlesIn.particles[index].initialDirection;\n#endif\n#ifdef CUSTOMEMITTER\nparticlesOut.particles[index].direction=direction;\n#else\nvar updatedDirection : vec3=direction+params.gravity*timeDelta;\n#ifdef LIMITVELOCITYGRADIENTS\nlet limitVelocity : f32=textureSampleLevel(limitVelocityGradientTexture,limitVelocityGradientSampler,vec2(ageGradient,0.),0.).r;let currentVelocity : f32=length(updatedDirection);if (currentVelocity>limitVelocity) {updatedDirection=updatedDirection*params.limitVelocityDamping;}\n#endif\nparticlesOut.particles[index].direction=updatedDirection;\n#ifdef NOISE\nlet noiseCoordinates1 : vec3=particlesIn.particles[index].noiseCoordinates1;let noiseCoordinates2 : vec3=particlesIn.particles[index].noiseCoordinates2;let fetchedR : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2(noiseCoordinates1.x,noiseCoordinates1.y)*vec2(0.5,0.5)+vec2(0.5,0.5),0.).r;let fetchedG : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2(noiseCoordinates1.z,noiseCoordinates2.x)*vec2(0.5,0.5)+vec2(0.5,0.5),0.).r;let fetchedB : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2(noiseCoordinates2.y,noiseCoordinates2.z)*vec2(0.5,0.5)+vec2(0.5,0.5),0.).r;let force : vec3=vec3(-1.+2.*fetchedR,-1.+2.*fetchedG,-1.+2.*fetchedB)*params.noiseStrength;particlesOut.particles[index].direction=particlesOut.particles[index].direction+force*timeDelta;particlesOut.particles[index].noiseCoordinates1=noiseCoordinates1;particlesOut.particles[index].noiseCoordinates2=noiseCoordinates2;\n#endif \n#endif \n#ifdef ANGULARSPEEDGRADIENTS\nlet angularSpeed : f32=textureSampleLevel(angularSpeedGradientTexture,angularSpeedGradientSampler,vec2(ageGradient,0.),0.).r;particlesOut.particles[index].angle=particlesIn.particles[index].angle+angularSpeed*timeDelta;\n#else\nlet angle : vec2=particlesIn.particles[index].angle;particlesOut.particles[index].angle=vec2(angle.x+angle.y*timeDelta,angle.y);\n#endif\n#ifdef ANIMATESHEET \nvar offsetAge : f32=particlesOut.particles[index].age;let dist : f32=params.cellInfos.y-params.cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\nlet cellStartOffset : f32=particlesIn.particles[index].cellStartOffset;particlesOut.particles[index].cellStartOffset=cellStartOffset;offsetAge=offsetAge+cellStartOffset;\n#else\nlet cellStartOffset : f32=0.;\n#endif \nvar ratio : f32;if (params.cellInfos.w==1.0) {ratio=clamp(((cellStartOffset+params.cellInfos.z*offsetAge) % life)/life,0.,1.0);}\nelse {ratio=clamp((cellStartOffset+params.cellInfos.z*offsetAge)/life,0.,1.0);}\nparticlesOut.particles[index].cellIndex=f32(i32(params.cellInfos.x+ratio*dist));\n#endif\n}}\n`;\nz.ShadersStoreWGSL[bG] = EG;\nclass yG {\n constructor(e, t) {\n this._bufferComputeShader = [], this._renderVertexBuffers = [], this.alignDataInBuffer = !0, this._parent = e, this._engine = t;\n }\n contextLost() {\n this._updateComputeShader = void 0, this._bufferComputeShader.length = 0, this._renderVertexBuffers.length = 0;\n }\n isUpdateBufferCreated() {\n return !!this._updateComputeShader;\n }\n isUpdateBufferReady() {\n var e;\n return ((e = this._updateComputeShader) == null ? void 0 : e.isReady()) ?? !1;\n }\n createUpdateBuffer(e) {\n var i;\n const t = {\n params: { group: 0, binding: 0 },\n particlesIn: { group: 0, binding: 1 },\n particlesOut: { group: 0, binding: 2 },\n randomTexture: { group: 0, binding: 3 },\n randomTexture2: { group: 0, binding: 4 }\n };\n return this._parent._sizeGradientsTexture && (t.sizeGradientTexture = { group: 1, binding: 1 }), this._parent._angularSpeedGradientsTexture && (t.angularSpeedGradientTexture = { group: 1, binding: 3 }), this._parent._velocityGradientsTexture && (t.velocityGradientTexture = { group: 1, binding: 5 }), this._parent._limitVelocityGradientsTexture && (t.limitVelocityGradientTexture = { group: 1, binding: 7 }), this._parent._dragGradientsTexture && (t.dragGradientTexture = { group: 1, binding: 9 }), this._parent.noiseTexture && (t.noiseTexture = { group: 1, binding: 11 }), this._updateComputeShader = new qa(\"updateParticles\", this._engine, \"gpuUpdateParticles\", { bindingsMapping: t, defines: e.split(`\n`) }), (i = this._simParamsComputeShader) == null || i.dispose(), this._simParamsComputeShader = new Ve(this._engine, void 0, void 0, \"ComputeShaderParticleSystemUBO\"), this._simParamsComputeShader.addUniform(\"currentCount\", 1), this._simParamsComputeShader.addUniform(\"timeDelta\", 1), this._simParamsComputeShader.addUniform(\"stopFactor\", 1), this._simParamsComputeShader.addUniform(\"randomTextureSize\", 1), this._simParamsComputeShader.addUniform(\"lifeTime\", 2), this._simParamsComputeShader.addUniform(\"emitPower\", 2), this._parent._colorGradientsTexture || (this._simParamsComputeShader.addUniform(\"color1\", 4), this._simParamsComputeShader.addUniform(\"color2\", 4)), this._simParamsComputeShader.addUniform(\"sizeRange\", 2), this._simParamsComputeShader.addUniform(\"scaleRange\", 4), this._simParamsComputeShader.addUniform(\"angleRange\", 4), this._simParamsComputeShader.addUniform(\"gravity\", 3), this._parent._limitVelocityGradientsTexture && this._simParamsComputeShader.addUniform(\"limitVelocityDamping\", 1), this._parent.isAnimationSheetEnabled && this._simParamsComputeShader.addUniform(\"cellInfos\", 4), this._parent.noiseTexture && this._simParamsComputeShader.addUniform(\"noiseStrength\", 3), this._parent.isLocal || this._simParamsComputeShader.addUniform(\"emitterWM\", 16), this._parent.particleEmitterType && this._parent.particleEmitterType.buildUniformLayout(this._simParamsComputeShader), this._updateComputeShader.setUniformBuffer(\"params\", this._simParamsComputeShader), new WR(this._simParamsComputeShader);\n }\n createVertexBuffers(e, t) {\n this._renderVertexBuffers.push(t);\n }\n createParticleBuffer(e) {\n const t = new nL(this._engine, e.length * 4, 11, \"ComputeShaderParticleSystemBuffer\");\n return t.update(e), this._bufferComputeShader.push(t), t.getBuffer();\n }\n bindDrawBuffers(e, t, i) {\n this._engine.bindBuffers(this._renderVertexBuffers[e], i, t);\n }\n preUpdateParticleBuffer() {\n }\n updateParticleBuffer(e, t, i) {\n this._simParamsComputeShader.update(), this._updateComputeShader.setTexture(\"randomTexture\", this._parent._randomTexture, !1), this._updateComputeShader.setTexture(\"randomTexture2\", this._parent._randomTexture2, !1), this._parent._sizeGradientsTexture && this._updateComputeShader.setTexture(\"sizeGradientTexture\", this._parent._sizeGradientsTexture), this._parent._angularSpeedGradientsTexture && this._updateComputeShader.setTexture(\"angularSpeedGradientTexture\", this._parent._angularSpeedGradientsTexture), this._parent._velocityGradientsTexture && this._updateComputeShader.setTexture(\"velocityGradientTexture\", this._parent._velocityGradientsTexture), this._parent._limitVelocityGradientsTexture && this._updateComputeShader.setTexture(\"limitVelocityGradientTexture\", this._parent._limitVelocityGradientsTexture), this._parent._dragGradientsTexture && this._updateComputeShader.setTexture(\"dragGradientTexture\", this._parent._dragGradientsTexture), this._parent.noiseTexture && this._updateComputeShader.setTexture(\"noiseTexture\", this._parent.noiseTexture), this._updateComputeShader.setStorageBuffer(\"particlesIn\", this._bufferComputeShader[e]), this._updateComputeShader.setStorageBuffer(\"particlesOut\", this._bufferComputeShader[e ^ 1]), this._updateComputeShader.dispatch(Math.ceil(i / 64));\n }\n releaseBuffers() {\n var e;\n for (let t = 0; t < this._bufferComputeShader.length; ++t)\n this._bufferComputeShader[t].dispose();\n this._bufferComputeShader.length = 0, (e = this._simParamsComputeShader) == null || e.dispose(), this._simParamsComputeShader = null, this._updateComputeShader = null;\n }\n releaseVertexBuffers() {\n this._renderVertexBuffers.length = 0;\n }\n}\nU(\"BABYLON.ComputeShaderParticleSystem\", yG);\nclass HR {\n /**\n * Creates a new color4 gradient\n * @param gradient gets or sets the gradient value (between 0 and 1)\n * @param color1 gets or sets first associated color\n * @param color2 gets or sets first second color\n */\n constructor(e, t, i) {\n this.gradient = e, this.color1 = t, this.color2 = i;\n }\n /**\n * Will get a color picked randomly between color1 and color2.\n * If color2 is undefined then color1 will be used\n * @param result defines the target Color4 to store the result in\n */\n getColorToRef(e) {\n if (!this.color2) {\n e.copyFrom(this.color1);\n return;\n }\n Ce.LerpToRef(this.color1, this.color2, Math.random(), e);\n }\n}\nclass CG {\n /**\n * Creates a new color3 gradient\n * @param gradient gets or sets the gradient value (between 0 and 1)\n * @param color gets or sets associated color\n */\n constructor(e, t) {\n this.gradient = e, this.color = t;\n }\n}\nclass XR {\n /**\n * Creates a new factor gradient\n * @param gradient gets or sets the gradient value (between 0 and 1)\n * @param factor1 gets or sets first associated factor\n * @param factor2 gets or sets second associated factor\n */\n constructor(e, t, i) {\n this.gradient = e, this.factor1 = t, this.factor2 = i;\n }\n /**\n * Will get a number picked randomly between factor1 and factor2.\n * If factor2 is undefined then factor1 will be used\n * @returns the picked number\n */\n getFactor() {\n return this.factor2 === void 0 || this.factor2 === this.factor1 ? this.factor1 : this.factor1 + (this.factor2 - this.factor1) * Math.random();\n }\n}\nclass Zr {\n /**\n * Gets the current gradient from an array of IValueGradient\n * @param ratio defines the current ratio to get\n * @param gradients defines the array of IValueGradient\n * @param updateFunc defines the callback function used to get the final value from the selected gradients\n */\n static GetCurrentGradient(e, t, i) {\n if (t[0].gradient > e) {\n i(t[0], t[0], 1);\n return;\n }\n for (let r = 0; r < t.length - 1; r++) {\n const n = t[r], o = t[r + 1];\n if (e >= n.gradient && e <= o.gradient) {\n const l = (e - n.gradient) / (o.gradient - n.gradient);\n i(n, o, l);\n return;\n }\n }\n const s = t.length - 1;\n i(t[s], t[s], 1);\n }\n}\nclass Ru {\n /**\n * Creates a new instance Particle\n * @param particleSystem the particle system the particle belongs to\n */\n constructor(e) {\n this.particleSystem = e, this.position = g.Zero(), this.direction = g.Zero(), this.color = new Ce(0, 0, 0, 0), this.colorStep = new Ce(0, 0, 0, 0), this.lifeTime = 1, this.age = 0, this.size = 0, this.scale = new Q(1, 1), this.angle = 0, this.angularSpeed = 0, this.cellIndex = 0, this._attachedSubEmitters = null, this._currentColor1 = new Ce(0, 0, 0, 0), this._currentColor2 = new Ce(0, 0, 0, 0), this._currentSize1 = 0, this._currentSize2 = 0, this._currentAngularSpeed1 = 0, this._currentAngularSpeed2 = 0, this._currentVelocity1 = 0, this._currentVelocity2 = 0, this._currentLimitVelocity1 = 0, this._currentLimitVelocity2 = 0, this._currentDrag1 = 0, this._currentDrag2 = 0, this.id = Ru._Count++, this.particleSystem.isAnimationSheetEnabled && this._updateCellInfoFromSystem();\n }\n _updateCellInfoFromSystem() {\n this.cellIndex = this.particleSystem.startSpriteCellID;\n }\n /**\n * Defines how the sprite cell index is updated for the particle\n */\n updateCellIndex() {\n let e = this.age, t = this.particleSystem.spriteCellChangeSpeed;\n this.particleSystem.spriteRandomStartCell && (this._randomCellOffset === void 0 && (this._randomCellOffset = Math.random() * this.lifeTime), t === 0 ? (t = 1, e = this._randomCellOffset) : e += this._randomCellOffset);\n const i = this._initialEndSpriteCellID - this._initialStartSpriteCellID + 1;\n let s;\n this._initialSpriteCellLoop ? s = Vi(e * t % this.lifeTime / this.lifeTime) : s = Vi(e * t / this.lifeTime), this.cellIndex = this._initialStartSpriteCellID + s * i | 0;\n }\n /**\n * @internal\n */\n _inheritParticleInfoToSubEmitter(e) {\n if (e.particleSystem.emitter.position) {\n const t = e.particleSystem.emitter;\n if (t.position.copyFrom(this.position), e.inheritDirection) {\n const i = w.Vector3[0];\n this.direction.normalizeToRef(i), t.setDirection(i, 0, Math.PI / 2);\n }\n } else\n e.particleSystem.emitter.copyFrom(this.position);\n this.direction.scaleToRef(e.inheritedVelocityAmount / 2, w.Vector3[0]), e.particleSystem._inheritedVelocityOffset.copyFrom(w.Vector3[0]);\n }\n /** @internal */\n _inheritParticleInfoToSubEmitters() {\n this._attachedSubEmitters && this._attachedSubEmitters.length > 0 && this._attachedSubEmitters.forEach((e) => {\n this._inheritParticleInfoToSubEmitter(e);\n });\n }\n /** @internal */\n _reset() {\n this.age = 0, this.id = Ru._Count++, this._currentColorGradient = null, this._currentSizeGradient = null, this._currentAngularSpeedGradient = null, this._currentVelocityGradient = null, this._currentLimitVelocityGradient = null, this._currentDragGradient = null, this.cellIndex = this.particleSystem.startSpriteCellID, this._randomCellOffset = void 0;\n }\n /**\n * Copy the properties of particle to another one.\n * @param other the particle to copy the information to.\n */\n copyTo(e) {\n e.position.copyFrom(this.position), this._initialDirection ? e._initialDirection ? e._initialDirection.copyFrom(this._initialDirection) : e._initialDirection = this._initialDirection.clone() : e._initialDirection = null, e.direction.copyFrom(this.direction), this._localPosition && (e._localPosition ? e._localPosition.copyFrom(this._localPosition) : e._localPosition = this._localPosition.clone()), e.color.copyFrom(this.color), e.colorStep.copyFrom(this.colorStep), e.lifeTime = this.lifeTime, e.age = this.age, e._randomCellOffset = this._randomCellOffset, e.size = this.size, e.scale.copyFrom(this.scale), e.angle = this.angle, e.angularSpeed = this.angularSpeed, e.particleSystem = this.particleSystem, e.cellIndex = this.cellIndex, e.id = this.id, e._attachedSubEmitters = this._attachedSubEmitters, this._currentColorGradient && (e._currentColorGradient = this._currentColorGradient, e._currentColor1.copyFrom(this._currentColor1), e._currentColor2.copyFrom(this._currentColor2)), this._currentSizeGradient && (e._currentSizeGradient = this._currentSizeGradient, e._currentSize1 = this._currentSize1, e._currentSize2 = this._currentSize2), this._currentAngularSpeedGradient && (e._currentAngularSpeedGradient = this._currentAngularSpeedGradient, e._currentAngularSpeed1 = this._currentAngularSpeed1, e._currentAngularSpeed2 = this._currentAngularSpeed2), this._currentVelocityGradient && (e._currentVelocityGradient = this._currentVelocityGradient, e._currentVelocity1 = this._currentVelocity1, e._currentVelocity2 = this._currentVelocity2), this._currentLimitVelocityGradient && (e._currentLimitVelocityGradient = this._currentLimitVelocityGradient, e._currentLimitVelocity1 = this._currentLimitVelocity1, e._currentLimitVelocity2 = this._currentLimitVelocity2), this._currentDragGradient && (e._currentDragGradient = this._currentDragGradient, e._currentDrag1 = this._currentDrag1, e._currentDrag2 = this._currentDrag2), this.particleSystem.isAnimationSheetEnabled && (e._initialStartSpriteCellID = this._initialStartSpriteCellID, e._initialEndSpriteCellID = this._initialEndSpriteCellID, e._initialSpriteCellLoop = this._initialSpriteCellLoop), this.particleSystem.useRampGradients && (e.remapData && this.remapData ? e.remapData.copyFrom(this.remapData) : e.remapData = new Ne(0, 0, 0, 0)), this._randomNoiseCoordinates1 && (e._randomNoiseCoordinates1 ? (e._randomNoiseCoordinates1.copyFrom(this._randomNoiseCoordinates1), e._randomNoiseCoordinates2.copyFrom(this._randomNoiseCoordinates2)) : (e._randomNoiseCoordinates1 = this._randomNoiseCoordinates1.clone(), e._randomNoiseCoordinates2 = this._randomNoiseCoordinates2.clone()));\n }\n}\nRu._Count = 0;\nconst AG = \"particlesPixelShader\", RG = `#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\nvarying vec2 vUV;varying vec4 vColor;uniform vec4 textureMask;uniform sampler2D diffuseSampler;\n#include\n#include\n#include\n#include\n#include\n#ifdef RAMPGRADIENT\nvarying vec4 remapRanges;uniform sampler2D rampSampler;\n#endif\n#include\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include\nvec4 textureColor=texture2D(diffuseSampler,vUV);vec4 baseColor=(textureColor*textureMask+(vec4(1.,1.,1.,1.)-textureMask))*vColor;\n#ifdef RAMPGRADIENT\nfloat alpha=baseColor.a;float remappedColorIndex=clamp((alpha-remapRanges.x)/remapRanges.y,0.0,1.0);vec4 rampColor=texture2D(rampSampler,vec2(1.0-remappedColorIndex,0.));baseColor.rgb*=rampColor.rgb;float finalAlpha=baseColor.a;baseColor.a=clamp((alpha*rampColor.a-remapRanges.z)/remapRanges.w,0.0,1.0);\n#endif\n#ifdef BLENDMULTIPLYMODE\nfloat sourceAlpha=vColor.a*textureColor.a;baseColor.rgb=baseColor.rgb*sourceAlpha+vec3(1.0)*(1.0-sourceAlpha);\n#endif\n#include\n#include(color,baseColor)\n#ifdef IMAGEPROCESSINGPOSTPROCESS\nbaseColor.rgb=toLinearSpace(baseColor.rgb);\n#else\n#ifdef IMAGEPROCESSING\nbaseColor.rgb=toLinearSpace(baseColor.rgb);baseColor=applyImageProcessing(baseColor);\n#endif\n#endif\ngl_FragColor=baseColor;\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\nz.ShadersStore[AG] = RG;\nconst IG = \"particlesVertexShader\", PG = `attribute vec3 position;attribute vec4 color;attribute float angle;attribute vec2 size;\n#ifdef ANIMATESHEET\nattribute float cellIndex;\n#endif\n#ifndef BILLBOARD\nattribute vec3 direction;\n#endif\n#ifdef BILLBOARDSTRETCHED\nattribute vec3 direction;\n#endif\n#ifdef RAMPGRADIENT\nattribute vec4 remapData;\n#endif\nattribute vec2 offset;uniform mat4 view;uniform mat4 projection;uniform vec2 translationPivot;\n#ifdef ANIMATESHEET\nuniform vec3 particlesInfos; \n#endif\nvarying vec2 vUV;varying vec4 vColor;varying vec3 vPositionW;\n#ifdef RAMPGRADIENT\nvarying vec4 remapRanges;\n#endif\n#if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED)\nuniform mat4 invView;\n#endif\n#include\n#include\n#include\n#ifdef BILLBOARD\nuniform vec3 eyePosition;\n#endif\nvec3 rotate(vec3 yaxis,vec3 rotatedCorner) {vec3 xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));vec3 zaxis=normalize(cross(yaxis,xaxis));vec3 row0=vec3(xaxis.x,xaxis.y,xaxis.z);vec3 row1=vec3(yaxis.x,yaxis.y,yaxis.z);vec3 row2=vec3(zaxis.x,zaxis.y,zaxis.z);mat3 rotMatrix= mat3(row0,row1,row2);vec3 alignedCorner=rotMatrix*rotatedCorner;return position+alignedCorner;}\n#ifdef BILLBOARDSTRETCHED\nvec3 rotateAlign(vec3 toCamera,vec3 rotatedCorner) {vec3 normalizedToCamera=normalize(toCamera);vec3 normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));vec3 row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);vec3 row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\n#ifdef BILLBOARDSTRETCHED_LOCAL\nvec3 row1=direction;\n#else\nvec3 crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));vec3 row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);\n#endif\nmat3 rotMatrix= mat3(row0,row1,row2);vec3 alignedCorner=rotMatrix*rotatedCorner;return position+alignedCorner;}\n#endif\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvec2 cornerPos;cornerPos=(vec2(offset.x-0.5,offset.y -0.5)-translationPivot)*size;\n#ifdef BILLBOARD\nvec3 rotatedCorner;\n#ifdef BILLBOARDY\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.y=0.;rotatedCorner.xz+=translationPivot;vec3 yaxis=position-eyePosition;yaxis.y=0.;vPositionW=rotate(normalize(yaxis),rotatedCorner);vec3 viewPos=(view*vec4(vPositionW,1.0)).xyz;\n#elif defined(BILLBOARDSTRETCHED)\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.z=0.;rotatedCorner.xy+=translationPivot;vec3 toCamera=position-eyePosition;vPositionW=rotateAlign(toCamera,rotatedCorner);vec3 viewPos=(view*vec4(vPositionW,1.0)).xyz;\n#else\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.z=0.;rotatedCorner.xy+=translationPivot;vec3 viewPos=(view*vec4(position,1.0)).xyz+rotatedCorner;vPositionW=(invView*vec4(viewPos,1)).xyz;\n#endif\n#ifdef RAMPGRADIENT\nremapRanges=remapData;\n#endif\ngl_Position=projection*vec4(viewPos,1.0);\n#else\nvec3 rotatedCorner;rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.y=0.;rotatedCorner.xz+=translationPivot;vec3 yaxis=normalize(direction);vPositionW=rotate(yaxis,rotatedCorner);gl_Position=projection*view*vec4(vPositionW,1.0);\n#endif\nvColor=color;\n#ifdef ANIMATESHEET\nfloat rowOffset=floor(cellIndex*particlesInfos.z);float columnOffset=cellIndex-rowOffset/particlesInfos.z;vec2 uvScale=particlesInfos.xy;vec2 uvOffset=vec2(offset.x ,1.0-offset.y);vUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;\n#else\nvUV=offset;\n#endif\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6) || defined(FOG)\nvec4 worldPos=vec4(vPositionW,1.0);\n#endif\n#include\n#include\n#include\n#define CUSTOM_VERTEX_MAIN_END\n}`;\nz.ShadersStore[IG] = PG;\nclass Zp extends vs {\n /**\n * Sets a callback that will be triggered when the system is disposed\n */\n set onDispose(e) {\n this._onDisposeObserver && this.onDisposeObservable.remove(this._onDisposeObserver), this._onDisposeObserver = this.onDisposeObservable.add(e);\n }\n /** Gets or sets a boolean indicating that ramp gradients must be used\n * @see https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/particle_system_intro#ramp-gradients\n */\n get useRampGradients() {\n return this._useRampGradients;\n }\n set useRampGradients(e) {\n this._useRampGradients !== e && (this._useRampGradients = e, this._resetEffect());\n }\n /**\n * Gets the current list of active particles\n */\n get particles() {\n return this._particles;\n }\n /**\n * Gets the number of particles active at the same time.\n * @returns The number of active particles.\n */\n getActiveCount() {\n return this._particles.length;\n }\n /**\n * Returns the string \"ParticleSystem\"\n * @returns a string containing the class name\n */\n getClassName() {\n return \"ParticleSystem\";\n }\n /**\n * Gets a boolean indicating that the system is stopping\n * @returns true if the system is currently stopping\n */\n isStopping() {\n return this._stopped && this.isAlive();\n }\n /**\n * Gets the custom effect used to render the particles\n * @param blendMode Blend mode for which the effect should be retrieved\n * @returns The effect\n */\n getCustomEffect(e = 0) {\n var t;\n return ((t = this._customWrappers[e]) == null ? void 0 : t.effect) ?? this._customWrappers[0].effect;\n }\n _getCustomDrawWrapper(e = 0) {\n return this._customWrappers[e] ?? this._customWrappers[0];\n }\n /**\n * Sets the custom effect used to render the particles\n * @param effect The effect to set\n * @param blendMode Blend mode for which the effect should be set\n */\n setCustomEffect(e, t = 0) {\n this._customWrappers[t] = new Ds(this._engine), this._customWrappers[t].effect = e, this._customWrappers[t].drawContext && (this._customWrappers[t].drawContext.useInstancing = this._useInstancing);\n }\n /**\n * Observable that will be called just before the particles are drawn\n */\n get onBeforeDrawParticlesObservable() {\n return this._onBeforeDrawParticlesObservable || (this._onBeforeDrawParticlesObservable = new G()), this._onBeforeDrawParticlesObservable;\n }\n /**\n * Gets the name of the particle vertex shader\n */\n get vertexShaderName() {\n return \"particles\";\n }\n /**\n * Gets the vertex buffers used by the particle system\n */\n get vertexBuffers() {\n return this._vertexBuffers;\n }\n /**\n * Gets the index buffer used by the particle system (or null if no index buffer is used (if _useInstancing=true))\n */\n get indexBuffer() {\n return this._indexBuffer;\n }\n /**\n * Instantiates a particle system.\n * Particles are often small sprites used to simulate hard-to-reproduce phenomena like fire, smoke, water, or abstract visual effects like magic glitter and faery dust.\n * @param name The name of the particle system\n * @param capacity The max number of particles alive at the same time\n * @param sceneOrEngine The scene the particle system belongs to or the engine to use if no scene\n * @param customEffect a custom effect used to change the way particles are rendered by default\n * @param isAnimationSheetEnabled Must be true if using a spritesheet to animate the particles texture\n * @param epsilon Offset used to render the particles\n */\n constructor(e, t, i, s = null, r = !1, n = 0.01) {\n super(e), this._emitterInverseWorldMatrix = O.Identity(), this._inheritedVelocityOffset = new g(), this.onDisposeObservable = new G(), this.onStoppedObservable = new G(), this._particles = new Array(), this._stockParticles = new Array(), this._newPartsExcess = 0, this._vertexBuffers = {}, this._scaledColorStep = new Ce(0, 0, 0, 0), this._colorDiff = new Ce(0, 0, 0, 0), this._scaledDirection = g.Zero(), this._scaledGravity = g.Zero(), this._currentRenderId = -1, this._useInstancing = !1, this._started = !1, this._stopped = !1, this._actualFrame = 0, this._currentEmitRate1 = 0, this._currentEmitRate2 = 0, this._currentStartSize1 = 0, this._currentStartSize2 = 0, this.updateInAnimate = !0, this._rawTextureWidth = 256, this._useRampGradients = !1, this.isLocal = !1, this.isGPU = !1, this._onBeforeDrawParticlesObservable = null, this._emitFromParticle = (l) => {\n }, this.recycleParticle = (l) => {\n const h = this._particles.pop();\n h !== l && h.copyTo(l), this._stockParticles.push(h);\n }, this._createParticle = () => {\n let l;\n return this._stockParticles.length !== 0 ? (l = this._stockParticles.pop(), l._reset()) : l = new Ru(this), this._prepareParticle(l), l;\n }, this._capacity = t, this._epsilon = n, this._isAnimationSheetEnabled = r, !i || i.getClassName() === \"Scene\" ? (this._scene = i || Me.LastCreatedScene, this._engine = this._scene.getEngine(), this.uniqueId = this._scene.getUniqueId(), this._scene.particleSystems.push(this)) : (this._engine = i, this.defaultProjectionMatrix = O.PerspectiveFovLH(0.8, 1, 0.1, 100, this._engine.isNDCHalfZRange)), this._engine.getCaps().vertexArrayObject && (this._vertexArrayObject = null), this._attachImageProcessingConfiguration(null), this._customWrappers = { 0: new Ds(this._engine) }, this._customWrappers[0].effect = s, this._drawWrappers = [], this._useInstancing = this._engine.getCaps().instancedArrays, this._createIndexBuffer(), this._createVertexBuffers(), this.particleEmitterType = new Xo();\n let o = null;\n this.updateFunction = (l) => {\n var u;\n let h = null;\n this.noiseTexture && (h = this.noiseTexture.getSize(), (u = this.noiseTexture.getContent()) == null || u.then((d) => {\n o = d;\n }));\n const c = l === this._particles;\n for (let d = 0; d < l.length; d++) {\n const f = l[d];\n let p = this._scaledUpdateSpeed;\n const _ = f.age;\n if (f.age += p, f.age > f.lifeTime) {\n const v = f.age - _;\n p = (f.lifeTime - _) * p / v, f.age = f.lifeTime;\n }\n const m = f.age / f.lifeTime;\n this._colorGradients && this._colorGradients.length > 0 ? Zr.GetCurrentGradient(m, this._colorGradients, (v, T, E) => {\n v !== f._currentColorGradient && (f._currentColor1.copyFrom(f._currentColor2), T.getColorToRef(f._currentColor2), f._currentColorGradient = v), Ce.LerpToRef(f._currentColor1, f._currentColor2, E, f.color);\n }) : (f.colorStep.scaleToRef(p, this._scaledColorStep), f.color.addInPlace(this._scaledColorStep), f.color.a < 0 && (f.color.a = 0)), this._angularSpeedGradients && this._angularSpeedGradients.length > 0 && Zr.GetCurrentGradient(m, this._angularSpeedGradients, (v, T, E) => {\n v !== f._currentAngularSpeedGradient && (f._currentAngularSpeed1 = f._currentAngularSpeed2, f._currentAngularSpeed2 = T.getFactor(), f._currentAngularSpeedGradient = v), f.angularSpeed = qr(f._currentAngularSpeed1, f._currentAngularSpeed2, E);\n }), f.angle += f.angularSpeed * p;\n let x = p;\n if (this._velocityGradients && this._velocityGradients.length > 0 && Zr.GetCurrentGradient(m, this._velocityGradients, (v, T, E) => {\n v !== f._currentVelocityGradient && (f._currentVelocity1 = f._currentVelocity2, f._currentVelocity2 = T.getFactor(), f._currentVelocityGradient = v), x *= qr(f._currentVelocity1, f._currentVelocity2, E);\n }), f.direction.scaleToRef(x, this._scaledDirection), this._limitVelocityGradients && this._limitVelocityGradients.length > 0 && Zr.GetCurrentGradient(m, this._limitVelocityGradients, (v, T, E) => {\n v !== f._currentLimitVelocityGradient && (f._currentLimitVelocity1 = f._currentLimitVelocity2, f._currentLimitVelocity2 = T.getFactor(), f._currentLimitVelocityGradient = v);\n const b = qr(f._currentLimitVelocity1, f._currentLimitVelocity2, E);\n f.direction.length() > b && f.direction.scaleInPlace(this.limitVelocityDamping);\n }), this._dragGradients && this._dragGradients.length > 0 && Zr.GetCurrentGradient(m, this._dragGradients, (v, T, E) => {\n v !== f._currentDragGradient && (f._currentDrag1 = f._currentDrag2, f._currentDrag2 = T.getFactor(), f._currentDragGradient = v);\n const b = qr(f._currentDrag1, f._currentDrag2, E);\n this._scaledDirection.scaleInPlace(1 - b);\n }), this.isLocal && f._localPosition ? (f._localPosition.addInPlace(this._scaledDirection), g.TransformCoordinatesToRef(f._localPosition, this._emitterWorldMatrix, f.position)) : f.position.addInPlace(this._scaledDirection), o && h && f._randomNoiseCoordinates1) {\n const v = this._fetchR(f._randomNoiseCoordinates1.x, f._randomNoiseCoordinates1.y, h.width, h.height, o), T = this._fetchR(f._randomNoiseCoordinates1.z, f._randomNoiseCoordinates2.x, h.width, h.height, o), E = this._fetchR(f._randomNoiseCoordinates2.y, f._randomNoiseCoordinates2.z, h.width, h.height, o), b = w.Vector3[0], S = w.Vector3[1];\n b.copyFromFloats((2 * v - 1) * this.noiseStrength.x, (2 * T - 1) * this.noiseStrength.y, (2 * E - 1) * this.noiseStrength.z), b.scaleToRef(p, S), f.direction.addInPlace(S);\n }\n if (this.gravity.scaleToRef(p, this._scaledGravity), f.direction.addInPlace(this._scaledGravity), this._sizeGradients && this._sizeGradients.length > 0 && Zr.GetCurrentGradient(m, this._sizeGradients, (v, T, E) => {\n v !== f._currentSizeGradient && (f._currentSize1 = f._currentSize2, f._currentSize2 = T.getFactor(), f._currentSizeGradient = v), f.size = qr(f._currentSize1, f._currentSize2, E);\n }), this._useRampGradients && (this._colorRemapGradients && this._colorRemapGradients.length > 0 && Zr.GetCurrentGradient(m, this._colorRemapGradients, (v, T, E) => {\n const b = qr(v.factor1, T.factor1, E), S = qr(v.factor2, T.factor2, E);\n f.remapData.x = b, f.remapData.y = S - b;\n }), this._alphaRemapGradients && this._alphaRemapGradients.length > 0 && Zr.GetCurrentGradient(m, this._alphaRemapGradients, (v, T, E) => {\n const b = qr(v.factor1, T.factor1, E), S = qr(v.factor2, T.factor2, E);\n f.remapData.z = b, f.remapData.w = S - b;\n })), this._isAnimationSheetEnabled && f.updateCellIndex(), f._inheritParticleInfoToSubEmitters(), f.age >= f.lifeTime) {\n this._emitFromParticle(f), f._attachedSubEmitters && (f._attachedSubEmitters.forEach((v) => {\n v.particleSystem.disposeOnStop = !0, v.particleSystem.stop();\n }), f._attachedSubEmitters = null), this.recycleParticle(f), c && d--;\n continue;\n }\n }\n };\n }\n serialize(e) {\n throw new Error(\"Method not implemented.\");\n }\n /**\n * Clones the particle system.\n * @param name The name of the cloned object\n * @param newEmitter The new emitter to use\n * @param cloneTexture Also clone the textures if true\n */\n clone(e, t, i = !1) {\n throw new Error(\"Method not implemented.\");\n }\n _addFactorGradient(e, t, i, s) {\n const r = new XR(t, i, s);\n e.push(r), e.sort((n, o) => n.gradient < o.gradient ? -1 : n.gradient > o.gradient ? 1 : 0);\n }\n _removeFactorGradient(e, t) {\n if (!e)\n return;\n let i = 0;\n for (const s of e) {\n if (s.gradient === t) {\n e.splice(i, 1);\n break;\n }\n i++;\n }\n }\n /**\n * Adds a new life time gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the life time factor to affect to the specified gradient\n * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from\n * @returns the current particle system\n */\n addLifeTimeGradient(e, t, i) {\n return this._lifeTimeGradients || (this._lifeTimeGradients = []), this._addFactorGradient(this._lifeTimeGradients, e, t, i), this;\n }\n /**\n * Remove a specific life time gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeLifeTimeGradient(e) {\n return this._removeFactorGradient(this._lifeTimeGradients, e), this;\n }\n /**\n * Adds a new size gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the size factor to affect to the specified gradient\n * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from\n * @returns the current particle system\n */\n addSizeGradient(e, t, i) {\n return this._sizeGradients || (this._sizeGradients = []), this._addFactorGradient(this._sizeGradients, e, t, i), this;\n }\n /**\n * Remove a specific size gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeSizeGradient(e) {\n return this._removeFactorGradient(this._sizeGradients, e), this;\n }\n /**\n * Adds a new color remap gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param min defines the color remap minimal range\n * @param max defines the color remap maximal range\n * @returns the current particle system\n */\n addColorRemapGradient(e, t, i) {\n return this._colorRemapGradients || (this._colorRemapGradients = []), this._addFactorGradient(this._colorRemapGradients, e, t, i), this;\n }\n /**\n * Remove a specific color remap gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeColorRemapGradient(e) {\n return this._removeFactorGradient(this._colorRemapGradients, e), this;\n }\n /**\n * Adds a new alpha remap gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param min defines the alpha remap minimal range\n * @param max defines the alpha remap maximal range\n * @returns the current particle system\n */\n addAlphaRemapGradient(e, t, i) {\n return this._alphaRemapGradients || (this._alphaRemapGradients = []), this._addFactorGradient(this._alphaRemapGradients, e, t, i), this;\n }\n /**\n * Remove a specific alpha remap gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeAlphaRemapGradient(e) {\n return this._removeFactorGradient(this._alphaRemapGradients, e), this;\n }\n /**\n * Adds a new angular speed gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the angular speed to affect to the specified gradient\n * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from\n * @returns the current particle system\n */\n addAngularSpeedGradient(e, t, i) {\n return this._angularSpeedGradients || (this._angularSpeedGradients = []), this._addFactorGradient(this._angularSpeedGradients, e, t, i), this;\n }\n /**\n * Remove a specific angular speed gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeAngularSpeedGradient(e) {\n return this._removeFactorGradient(this._angularSpeedGradients, e), this;\n }\n /**\n * Adds a new velocity gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the velocity to affect to the specified gradient\n * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from\n * @returns the current particle system\n */\n addVelocityGradient(e, t, i) {\n return this._velocityGradients || (this._velocityGradients = []), this._addFactorGradient(this._velocityGradients, e, t, i), this;\n }\n /**\n * Remove a specific velocity gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeVelocityGradient(e) {\n return this._removeFactorGradient(this._velocityGradients, e), this;\n }\n /**\n * Adds a new limit velocity gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the limit velocity value to affect to the specified gradient\n * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from\n * @returns the current particle system\n */\n addLimitVelocityGradient(e, t, i) {\n return this._limitVelocityGradients || (this._limitVelocityGradients = []), this._addFactorGradient(this._limitVelocityGradients, e, t, i), this;\n }\n /**\n * Remove a specific limit velocity gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeLimitVelocityGradient(e) {\n return this._removeFactorGradient(this._limitVelocityGradients, e), this;\n }\n /**\n * Adds a new drag gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the drag value to affect to the specified gradient\n * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from\n * @returns the current particle system\n */\n addDragGradient(e, t, i) {\n return this._dragGradients || (this._dragGradients = []), this._addFactorGradient(this._dragGradients, e, t, i), this;\n }\n /**\n * Remove a specific drag gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeDragGradient(e) {\n return this._removeFactorGradient(this._dragGradients, e), this;\n }\n /**\n * Adds a new emit rate gradient (please note that this will only work if you set the targetStopDuration property)\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the emit rate value to affect to the specified gradient\n * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from\n * @returns the current particle system\n */\n addEmitRateGradient(e, t, i) {\n return this._emitRateGradients || (this._emitRateGradients = []), this._addFactorGradient(this._emitRateGradients, e, t, i), this;\n }\n /**\n * Remove a specific emit rate gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeEmitRateGradient(e) {\n return this._removeFactorGradient(this._emitRateGradients, e), this;\n }\n /**\n * Adds a new start size gradient (please note that this will only work if you set the targetStopDuration property)\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the start size value to affect to the specified gradient\n * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from\n * @returns the current particle system\n */\n addStartSizeGradient(e, t, i) {\n return this._startSizeGradients || (this._startSizeGradients = []), this._addFactorGradient(this._startSizeGradients, e, t, i), this;\n }\n /**\n * Remove a specific start size gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeStartSizeGradient(e) {\n return this._removeFactorGradient(this._startSizeGradients, e), this;\n }\n _createRampGradientTexture() {\n if (!this._rampGradients || !this._rampGradients.length || this._rampGradientsTexture || !this._scene)\n return;\n const e = new Uint8Array(this._rawTextureWidth * 4), t = wt.Color3[0];\n for (let i = 0; i < this._rawTextureWidth; i++) {\n const s = i / this._rawTextureWidth;\n Zr.GetCurrentGradient(s, this._rampGradients, (r, n, o) => {\n re.LerpToRef(r.color, n.color, o, t), e[i * 4] = t.r * 255, e[i * 4 + 1] = t.g * 255, e[i * 4 + 2] = t.b * 255, e[i * 4 + 3] = 255;\n });\n }\n this._rampGradientsTexture = _i.CreateRGBATexture(e, this._rawTextureWidth, 1, this._scene, !1, !1, 1);\n }\n /**\n * Gets the current list of ramp gradients.\n * You must use addRampGradient and removeRampGradient to update this list\n * @returns the list of ramp gradients\n */\n getRampGradients() {\n return this._rampGradients;\n }\n /** Force the system to rebuild all gradients that need to be resync */\n forceRefreshGradients() {\n this._syncRampGradientTexture();\n }\n _syncRampGradientTexture() {\n this._rampGradients && (this._rampGradients.sort((e, t) => e.gradient < t.gradient ? -1 : e.gradient > t.gradient ? 1 : 0), this._rampGradientsTexture && (this._rampGradientsTexture.dispose(), this._rampGradientsTexture = null), this._createRampGradientTexture());\n }\n /**\n * Adds a new ramp gradient used to remap particle colors\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param color defines the color to affect to the specified gradient\n * @returns the current particle system\n */\n addRampGradient(e, t) {\n this._rampGradients || (this._rampGradients = []);\n const i = new CG(e, t);\n return this._rampGradients.push(i), this._syncRampGradientTexture(), this;\n }\n /**\n * Remove a specific ramp gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeRampGradient(e) {\n return this._removeGradientAndTexture(e, this._rampGradients, this._rampGradientsTexture), this._rampGradientsTexture = null, this._rampGradients && this._rampGradients.length > 0 && this._createRampGradientTexture(), this;\n }\n /**\n * Adds a new color gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param color1 defines the color to affect to the specified gradient\n * @param color2 defines an additional color used to define a range ([color, color2]) with main color to pick the final color from\n * @returns this particle system\n */\n addColorGradient(e, t, i) {\n this._colorGradients || (this._colorGradients = []);\n const s = new HR(e, t, i);\n return this._colorGradients.push(s), this._colorGradients.sort((r, n) => r.gradient < n.gradient ? -1 : r.gradient > n.gradient ? 1 : 0), this;\n }\n /**\n * Remove a specific color gradient\n * @param gradient defines the gradient to remove\n * @returns this particle system\n */\n removeColorGradient(e) {\n if (!this._colorGradients)\n return this;\n let t = 0;\n for (const i of this._colorGradients) {\n if (i.gradient === e) {\n this._colorGradients.splice(t, 1);\n break;\n }\n t++;\n }\n return this;\n }\n /**\n * Resets the draw wrappers cache\n */\n resetDrawCache() {\n for (const e of this._drawWrappers)\n if (e)\n for (const t of e)\n t == null || t.dispose();\n this._drawWrappers = [];\n }\n _fetchR(e, t, i, s, r) {\n e = Math.abs(e) * 0.5 + 0.5, t = Math.abs(t) * 0.5 + 0.5;\n const n = e * i % i | 0, o = t * s % s | 0, l = (n + o * i) * 4;\n return r[l] / 255;\n }\n _reset() {\n this._resetEffect();\n }\n _resetEffect() {\n this._vertexBuffer && (this._vertexBuffer.dispose(), this._vertexBuffer = null), this._spriteBuffer && (this._spriteBuffer.dispose(), this._spriteBuffer = null), this._vertexArrayObject && (this._engine.releaseVertexArrayObject(this._vertexArrayObject), this._vertexArrayObject = null), this._createVertexBuffers();\n }\n _createVertexBuffers() {\n this._vertexBufferSize = this._useInstancing ? 10 : 12, this._isAnimationSheetEnabled && (this._vertexBufferSize += 1), (!this._isBillboardBased || this.billboardMode === 8 || this.billboardMode === 9) && (this._vertexBufferSize += 3), this._useRampGradients && (this._vertexBufferSize += 4);\n const e = this._engine, t = this._vertexBufferSize * (this._useInstancing ? 1 : 4);\n this._vertexData = new Float32Array(this._capacity * t), this._vertexBuffer = new ys(e, this._vertexData, !0, t);\n let i = 0;\n const s = this._vertexBuffer.createVertexBuffer(R.PositionKind, i, 3, this._vertexBufferSize, this._useInstancing);\n this._vertexBuffers[R.PositionKind] = s, i += 3;\n const r = this._vertexBuffer.createVertexBuffer(R.ColorKind, i, 4, this._vertexBufferSize, this._useInstancing);\n this._vertexBuffers[R.ColorKind] = r, i += 4;\n const n = this._vertexBuffer.createVertexBuffer(\"angle\", i, 1, this._vertexBufferSize, this._useInstancing);\n this._vertexBuffers.angle = n, i += 1;\n const o = this._vertexBuffer.createVertexBuffer(\"size\", i, 2, this._vertexBufferSize, this._useInstancing);\n if (this._vertexBuffers.size = o, i += 2, this._isAnimationSheetEnabled) {\n const h = this._vertexBuffer.createVertexBuffer(\"cellIndex\", i, 1, this._vertexBufferSize, this._useInstancing);\n this._vertexBuffers.cellIndex = h, i += 1;\n }\n if (!this._isBillboardBased || this.billboardMode === 8 || this.billboardMode === 9) {\n const h = this._vertexBuffer.createVertexBuffer(\"direction\", i, 3, this._vertexBufferSize, this._useInstancing);\n this._vertexBuffers.direction = h, i += 3;\n }\n if (this._useRampGradients) {\n const h = this._vertexBuffer.createVertexBuffer(\"remapData\", i, 4, this._vertexBufferSize, this._useInstancing);\n this._vertexBuffers.remapData = h, i += 4;\n }\n let l;\n if (this._useInstancing) {\n const h = new Float32Array([0, 0, 1, 0, 0, 1, 1, 1]);\n this._spriteBuffer = new ys(e, h, !1, 2), l = this._spriteBuffer.createVertexBuffer(\"offset\", 0, 2);\n } else\n l = this._vertexBuffer.createVertexBuffer(\"offset\", i, 2, this._vertexBufferSize, this._useInstancing), i += 2;\n this._vertexBuffers.offset = l, this.resetDrawCache();\n }\n _createIndexBuffer() {\n if (this._useInstancing) {\n this._linesIndexBufferUseInstancing = this._engine.createIndexBuffer(new Uint32Array([0, 1, 1, 3, 3, 2, 2, 0, 0, 3]));\n return;\n }\n const e = [], t = [];\n let i = 0;\n for (let s = 0; s < this._capacity; s++)\n e.push(i), e.push(i + 1), e.push(i + 2), e.push(i), e.push(i + 2), e.push(i + 3), t.push(i, i + 1, i + 1, i + 2, i + 2, i + 3, i + 3, i, i, i + 3), i += 4;\n this._indexBuffer = this._engine.createIndexBuffer(e), this._linesIndexBuffer = this._engine.createIndexBuffer(t);\n }\n /**\n * Gets the maximum number of particles active at the same time.\n * @returns The max number of active particles.\n */\n getCapacity() {\n return this._capacity;\n }\n /**\n * Gets whether there are still active particles in the system.\n * @returns True if it is alive, otherwise false.\n */\n isAlive() {\n return this._alive;\n }\n /**\n * Gets if the system has been started. (Note: this will still be true after stop is called)\n * @returns True if it has been started, otherwise false.\n */\n isStarted() {\n return this._started;\n }\n /** @internal */\n _preStart() {\n }\n /**\n * Starts the particle system and begins to emit\n * @param delay defines the delay in milliseconds before starting the system (this.startDelay by default)\n */\n start(e = this.startDelay) {\n var t;\n if (!this.targetStopDuration && this._hasTargetStopDurationDependantGradient())\n throw \"Particle system started with a targetStopDuration dependant gradient (eg. startSizeGradients) but no targetStopDuration set\";\n if (e) {\n setTimeout(() => {\n this.start(0);\n }, e);\n return;\n }\n if (this._started = !0, this._stopped = !1, this._actualFrame = 0, this._preStart(), this._emitRateGradients && (this._emitRateGradients.length > 0 && (this._currentEmitRateGradient = this._emitRateGradients[0], this._currentEmitRate1 = this._currentEmitRateGradient.getFactor(), this._currentEmitRate2 = this._currentEmitRate1), this._emitRateGradients.length > 1 && (this._currentEmitRate2 = this._emitRateGradients[1].getFactor())), this._startSizeGradients && (this._startSizeGradients.length > 0 && (this._currentStartSizeGradient = this._startSizeGradients[0], this._currentStartSize1 = this._currentStartSizeGradient.getFactor(), this._currentStartSize2 = this._currentStartSize1), this._startSizeGradients.length > 1 && (this._currentStartSize2 = this._startSizeGradients[1].getFactor())), this.preWarmCycles) {\n ((t = this.emitter) == null ? void 0 : t.getClassName().indexOf(\"Mesh\")) !== -1 && this.emitter.computeWorldMatrix(!0);\n const i = this.noiseTexture;\n if (i && i.onGeneratedObservable)\n i.onGeneratedObservable.addOnce(() => {\n setTimeout(() => {\n for (let s = 0; s < this.preWarmCycles; s++)\n this.animate(!0), i.render();\n });\n });\n else\n for (let s = 0; s < this.preWarmCycles; s++)\n this.animate(!0);\n }\n this.beginAnimationOnStart && this.animations && this.animations.length > 0 && this._scene && this._scene.beginAnimation(this, this.beginAnimationFrom, this.beginAnimationTo, this.beginAnimationLoop);\n }\n /**\n * Stops the particle system.\n * @param stopSubEmitters if true it will stop the current system and all created sub-Systems if false it will stop the current root system only, this param is used by the root particle system only. The default value is true.\n */\n stop(e = !0) {\n this._stopped || (this.onStoppedObservable.notifyObservers(this), this._stopped = !0, this._postStop(e));\n }\n /** @internal */\n _postStop(e) {\n }\n // Animation sheet\n /**\n * Remove all active particles\n */\n reset() {\n this._stockParticles.length = 0, this._particles.length = 0;\n }\n /**\n * @internal (for internal use only)\n */\n _appendParticleVertex(e, t, i, s) {\n let r = e * this._vertexBufferSize;\n if (this._vertexData[r++] = t.position.x + this.worldOffset.x, this._vertexData[r++] = t.position.y + this.worldOffset.y, this._vertexData[r++] = t.position.z + this.worldOffset.z, this._vertexData[r++] = t.color.r, this._vertexData[r++] = t.color.g, this._vertexData[r++] = t.color.b, this._vertexData[r++] = t.color.a, this._vertexData[r++] = t.angle, this._vertexData[r++] = t.scale.x * t.size, this._vertexData[r++] = t.scale.y * t.size, this._isAnimationSheetEnabled && (this._vertexData[r++] = t.cellIndex), this._isBillboardBased)\n (this.billboardMode === 8 || this.billboardMode === 9) && (this._vertexData[r++] = t.direction.x, this._vertexData[r++] = t.direction.y, this._vertexData[r++] = t.direction.z);\n else if (t._initialDirection) {\n let n = t._initialDirection;\n this.isLocal && (g.TransformNormalToRef(n, this._emitterWorldMatrix, w.Vector3[0]), n = w.Vector3[0]), n.x === 0 && n.z === 0 && (n.x = 1e-3), this._vertexData[r++] = n.x, this._vertexData[r++] = n.y, this._vertexData[r++] = n.z;\n } else {\n let n = t.direction;\n this.isLocal && (g.TransformNormalToRef(n, this._emitterWorldMatrix, w.Vector3[0]), n = w.Vector3[0]), n.x === 0 && n.z === 0 && (n.x = 1e-3), this._vertexData[r++] = n.x, this._vertexData[r++] = n.y, this._vertexData[r++] = n.z;\n }\n this._useRampGradients && t.remapData && (this._vertexData[r++] = t.remapData.x, this._vertexData[r++] = t.remapData.y, this._vertexData[r++] = t.remapData.z, this._vertexData[r++] = t.remapData.w), this._useInstancing || (this._isAnimationSheetEnabled && (i === 0 ? i = this._epsilon : i === 1 && (i = 1 - this._epsilon), s === 0 ? s = this._epsilon : s === 1 && (s = 1 - this._epsilon)), this._vertexData[r++] = i, this._vertexData[r++] = s);\n }\n /** @internal */\n _prepareParticle(e) {\n }\n _update(e) {\n if (this._alive = this._particles.length > 0, this.emitter.position) {\n const i = this.emitter;\n this._emitterWorldMatrix = i.getWorldMatrix();\n } else {\n const i = this.emitter;\n this._emitterWorldMatrix = O.Translation(i.x, i.y, i.z);\n }\n this._emitterWorldMatrix.invertToRef(this._emitterInverseWorldMatrix), this.updateFunction(this._particles);\n let t;\n for (let i = 0; i < e && this._particles.length !== this._capacity; i++) {\n if (t = this._createParticle(), this._particles.push(t), this.targetStopDuration && this._lifeTimeGradients && this._lifeTimeGradients.length > 0) {\n const r = Vi(this._actualFrame / this.targetStopDuration);\n Zr.GetCurrentGradient(r, this._lifeTimeGradients, (n, o) => {\n const l = n, h = o, c = l.getFactor(), u = h.getFactor(), d = (r - l.gradient) / (h.gradient - l.gradient);\n t.lifeTime = qr(c, u, d);\n });\n } else\n t.lifeTime = Wt(this.minLifeTime, this.maxLifeTime);\n const s = Wt(this.minEmitPower, this.maxEmitPower);\n if (this.startPositionFunction ? this.startPositionFunction(this._emitterWorldMatrix, t.position, t, this.isLocal) : this.particleEmitterType.startPositionFunction(this._emitterWorldMatrix, t.position, t, this.isLocal), this.isLocal && (t._localPosition ? t._localPosition.copyFrom(t.position) : t._localPosition = t.position.clone(), g.TransformCoordinatesToRef(t._localPosition, this._emitterWorldMatrix, t.position)), this.startDirectionFunction ? this.startDirectionFunction(this._emitterWorldMatrix, t.direction, t, this.isLocal) : this.particleEmitterType.startDirectionFunction(this._emitterWorldMatrix, t.direction, t, this.isLocal, this._emitterInverseWorldMatrix), s === 0 ? t._initialDirection ? t._initialDirection.copyFrom(t.direction) : t._initialDirection = t.direction.clone() : t._initialDirection = null, t.direction.scaleInPlace(s), !this._sizeGradients || this._sizeGradients.length === 0 ? t.size = Wt(this.minSize, this.maxSize) : (t._currentSizeGradient = this._sizeGradients[0], t._currentSize1 = t._currentSizeGradient.getFactor(), t.size = t._currentSize1, this._sizeGradients.length > 1 ? t._currentSize2 = this._sizeGradients[1].getFactor() : t._currentSize2 = t._currentSize1), t.scale.copyFromFloats(Wt(this.minScaleX, this.maxScaleX), Wt(this.minScaleY, this.maxScaleY)), this._startSizeGradients && this._startSizeGradients[0] && this.targetStopDuration) {\n const r = this._actualFrame / this.targetStopDuration;\n Zr.GetCurrentGradient(r, this._startSizeGradients, (n, o, l) => {\n n !== this._currentStartSizeGradient && (this._currentStartSize1 = this._currentStartSize2, this._currentStartSize2 = o.getFactor(), this._currentStartSizeGradient = n);\n const h = qr(this._currentStartSize1, this._currentStartSize2, l);\n t.scale.scaleInPlace(h);\n });\n }\n if (!this._angularSpeedGradients || this._angularSpeedGradients.length === 0 ? t.angularSpeed = Wt(this.minAngularSpeed, this.maxAngularSpeed) : (t._currentAngularSpeedGradient = this._angularSpeedGradients[0], t.angularSpeed = t._currentAngularSpeedGradient.getFactor(), t._currentAngularSpeed1 = t.angularSpeed, this._angularSpeedGradients.length > 1 ? t._currentAngularSpeed2 = this._angularSpeedGradients[1].getFactor() : t._currentAngularSpeed2 = t._currentAngularSpeed1), t.angle = Wt(this.minInitialRotation, this.maxInitialRotation), this._velocityGradients && this._velocityGradients.length > 0 && (t._currentVelocityGradient = this._velocityGradients[0], t._currentVelocity1 = t._currentVelocityGradient.getFactor(), this._velocityGradients.length > 1 ? t._currentVelocity2 = this._velocityGradients[1].getFactor() : t._currentVelocity2 = t._currentVelocity1), this._limitVelocityGradients && this._limitVelocityGradients.length > 0 && (t._currentLimitVelocityGradient = this._limitVelocityGradients[0], t._currentLimitVelocity1 = t._currentLimitVelocityGradient.getFactor(), this._limitVelocityGradients.length > 1 ? t._currentLimitVelocity2 = this._limitVelocityGradients[1].getFactor() : t._currentLimitVelocity2 = t._currentLimitVelocity1), this._dragGradients && this._dragGradients.length > 0 && (t._currentDragGradient = this._dragGradients[0], t._currentDrag1 = t._currentDragGradient.getFactor(), this._dragGradients.length > 1 ? t._currentDrag2 = this._dragGradients[1].getFactor() : t._currentDrag2 = t._currentDrag1), !this._colorGradients || this._colorGradients.length === 0) {\n const r = Wt(0, 1);\n Ce.LerpToRef(this.color1, this.color2, r, t.color), this.colorDead.subtractToRef(t.color, this._colorDiff), this._colorDiff.scaleToRef(1 / t.lifeTime, t.colorStep);\n } else\n t._currentColorGradient = this._colorGradients[0], t._currentColorGradient.getColorToRef(t.color), t._currentColor1.copyFrom(t.color), this._colorGradients.length > 1 ? this._colorGradients[1].getColorToRef(t._currentColor2) : t._currentColor2.copyFrom(t.color);\n this._isAnimationSheetEnabled && (t._initialStartSpriteCellID = this.startSpriteCellID, t._initialEndSpriteCellID = this.endSpriteCellID, t._initialSpriteCellLoop = this.spriteCellLoop), t.direction.addInPlace(this._inheritedVelocityOffset), this._useRampGradients && (t.remapData = new Ne(0, 1, 0, 1)), this.noiseTexture && (t._randomNoiseCoordinates1 ? (t._randomNoiseCoordinates1.copyFromFloats(Math.random(), Math.random(), Math.random()), t._randomNoiseCoordinates2.copyFromFloats(Math.random(), Math.random(), Math.random())) : (t._randomNoiseCoordinates1 = new g(Math.random(), Math.random(), Math.random()), t._randomNoiseCoordinates2 = new g(Math.random(), Math.random(), Math.random()))), t._inheritParticleInfoToSubEmitters();\n }\n }\n /**\n * @internal\n */\n static _GetAttributeNamesOrOptions(e = !1, t = !1, i = !1) {\n const s = [R.PositionKind, R.ColorKind, \"angle\", \"offset\", \"size\"];\n return e && s.push(\"cellIndex\"), t || s.push(\"direction\"), i && s.push(\"remapData\"), s;\n }\n /**\n * @internal\n */\n static _GetEffectCreationOptions(e = !1, t = !1, i = !1) {\n const s = [\"invView\", \"view\", \"projection\", \"textureMask\", \"translationPivot\", \"eyePosition\"];\n return Ln(s), e && s.push(\"particlesInfos\"), t && s.push(\"logarithmicDepthConstant\"), i && (s.push(\"vFogInfos\"), s.push(\"vFogColor\")), s;\n }\n /**\n * Fill the defines array according to the current settings of the particle system\n * @param defines Array to be updated\n * @param blendMode blend mode to take into account when updating the array\n * @param fillImageProcessing fills the image processing defines\n */\n fillDefines(e, t, i = !0) {\n if (this._scene && (tl(this, this._scene, e), this.applyFog && this._scene.fogEnabled && this._scene.fogMode !== 0 && e.push(\"#define FOG\")), this._isAnimationSheetEnabled && e.push(\"#define ANIMATESHEET\"), this.useLogarithmicDepth && e.push(\"#define LOGARITHMICDEPTH\"), t === vs.BLENDMODE_MULTIPLY && e.push(\"#define BLENDMULTIPLYMODE\"), this._useRampGradients && e.push(\"#define RAMPGRADIENT\"), this._isBillboardBased)\n switch (e.push(\"#define BILLBOARD\"), this.billboardMode) {\n case 2:\n e.push(\"#define BILLBOARDY\");\n break;\n case 8:\n case 9:\n e.push(\"#define BILLBOARDSTRETCHED\"), this.billboardMode === 9 && e.push(\"#define BILLBOARDSTRETCHED_LOCAL\");\n break;\n case 7:\n e.push(\"#define BILLBOARDMODE_ALL\");\n break;\n }\n i && this._imageProcessingConfiguration && (this._imageProcessingConfiguration.prepareDefines(this._imageProcessingConfigurationDefines), e.push(this._imageProcessingConfigurationDefines.toString()));\n }\n /**\n * Fill the uniforms, attributes and samplers arrays according to the current settings of the particle system\n * @param uniforms Uniforms array to fill\n * @param attributes Attributes array to fill\n * @param samplers Samplers array to fill\n */\n fillUniformsAttributesAndSamplerNames(e, t, i) {\n t.push(...Zp._GetAttributeNamesOrOptions(this._isAnimationSheetEnabled, this._isBillboardBased && this.billboardMode !== 8 && this.billboardMode !== 9, this._useRampGradients)), e.push(...Zp._GetEffectCreationOptions(this._isAnimationSheetEnabled, this.useLogarithmicDepth, this.applyFog)), i.push(\"diffuseSampler\", \"rampSampler\"), this._imageProcessingConfiguration && (LC(e, this._imageProcessingConfigurationDefines), BC(i, this._imageProcessingConfigurationDefines));\n }\n /**\n * @internal\n */\n _getWrapper(e) {\n const t = this._getCustomDrawWrapper(e);\n if (t != null && t.effect)\n return t;\n const i = [];\n this.fillDefines(i, e);\n const s = this._engine._features.supportRenderPasses ? this._engine.currentRenderPassId : 0;\n let r = this._drawWrappers[s];\n r || (r = this._drawWrappers[s] = []);\n let n = r[e];\n n || (n = new Ds(this._engine), n.drawContext && (n.drawContext.useInstancing = this._useInstancing), r[e] = n);\n const o = i.join(`\n`);\n if (n.defines !== o) {\n const l = [], h = [], c = [];\n this.fillUniformsAttributesAndSamplerNames(h, l, c), n.setEffect(this._engine.createEffect(\"particles\", l, h, c, o), o);\n }\n return n;\n }\n /**\n * Animates the particle system for the current frame by emitting new particles and or animating the living ones.\n * @param preWarmOnly will prevent the system from updating the vertex buffer (default is false)\n */\n animate(e = !1) {\n var i;\n if (!this._started)\n return;\n if (!e && this._scene) {\n if (!this.isReady() || this._currentRenderId === this._scene.getFrameId())\n return;\n this._currentRenderId = this._scene.getFrameId();\n }\n this._scaledUpdateSpeed = this.updateSpeed * (e ? this.preWarmStepOffset : ((i = this._scene) == null ? void 0 : i.getAnimationRatio()) || 1);\n let t;\n if (this.manualEmitCount > -1)\n t = this.manualEmitCount, this._newPartsExcess = 0, this.manualEmitCount = 0;\n else {\n let s = this.emitRate;\n if (this._emitRateGradients && this._emitRateGradients.length > 0 && this.targetStopDuration) {\n const r = this._actualFrame / this.targetStopDuration;\n Zr.GetCurrentGradient(r, this._emitRateGradients, (n, o, l) => {\n n !== this._currentEmitRateGradient && (this._currentEmitRate1 = this._currentEmitRate2, this._currentEmitRate2 = o.getFactor(), this._currentEmitRateGradient = n), s = qr(this._currentEmitRate1, this._currentEmitRate2, l);\n });\n }\n t = s * this._scaledUpdateSpeed >> 0, this._newPartsExcess += s * this._scaledUpdateSpeed - t;\n }\n if (this._newPartsExcess > 1 && (t += this._newPartsExcess >> 0, this._newPartsExcess -= this._newPartsExcess >> 0), this._alive = !1, this._stopped ? t = 0 : (this._actualFrame += this._scaledUpdateSpeed, this.targetStopDuration && this._actualFrame >= this.targetStopDuration && this.stop()), this._update(t), this._stopped && (this._alive || (this._started = !1, this.onAnimationEnd && this.onAnimationEnd(), this.disposeOnStop && this._scene && this._scene._toBeDisposed.push(this))), !e) {\n let s = 0;\n for (let r = 0; r < this._particles.length; r++) {\n const n = this._particles[r];\n this._appendParticleVertices(s, n), s += this._useInstancing ? 1 : 4;\n }\n this._vertexBuffer && this._vertexBuffer.updateDirectly(this._vertexData, 0, this._particles.length);\n }\n this.manualEmitCount === 0 && this.disposeOnStop && this.stop();\n }\n _appendParticleVertices(e, t) {\n this._appendParticleVertex(e++, t, 0, 0), this._useInstancing || (this._appendParticleVertex(e++, t, 1, 0), this._appendParticleVertex(e++, t, 1, 1), this._appendParticleVertex(e++, t, 0, 1));\n }\n /**\n * Rebuilds the particle system.\n */\n rebuild() {\n var e;\n this._engine.getCaps().vertexArrayObject && (this._vertexArrayObject = null), this._createIndexBuffer(), (e = this._spriteBuffer) == null || e._rebuild(), this._createVertexBuffers(), this.resetDrawCache();\n }\n /**\n * Is this system ready to be used/rendered\n * @returns true if the system is ready\n */\n isReady() {\n if (!this.emitter || this._imageProcessingConfiguration && !this._imageProcessingConfiguration.isReady() || !this.particleTexture || !this.particleTexture.isReady())\n return !1;\n if (this.blendMode !== vs.BLENDMODE_MULTIPLYADD) {\n if (!this._getWrapper(this.blendMode).effect.isReady())\n return !1;\n } else if (!this._getWrapper(vs.BLENDMODE_MULTIPLY).effect.isReady() || !this._getWrapper(vs.BLENDMODE_ADD).effect.isReady())\n return !1;\n return !0;\n }\n _render(e) {\n var o, l, h, c, u, d;\n const t = this._getWrapper(e), i = t.effect, s = this._engine;\n s.enableEffect(t);\n const r = this.defaultViewMatrix ?? this._scene.getViewMatrix();\n if (i.setTexture(\"diffuseSampler\", this.particleTexture), i.setMatrix(\"view\", r), i.setMatrix(\"projection\", this.defaultProjectionMatrix ?? this._scene.getProjectionMatrix()), this._isAnimationSheetEnabled && this.particleTexture) {\n const f = this.particleTexture.getBaseSize();\n i.setFloat3(\"particlesInfos\", this.spriteCellWidth / f.width, this.spriteCellHeight / f.height, this.spriteCellWidth / f.width);\n }\n if (i.setVector2(\"translationPivot\", this.translationPivot), i.setFloat4(\"textureMask\", this.textureMask.r, this.textureMask.g, this.textureMask.b, this.textureMask.a), this._isBillboardBased && this._scene) {\n const f = this._scene.activeCamera;\n i.setVector3(\"eyePosition\", f.globalPosition);\n }\n this._rampGradientsTexture && ((!this._rampGradients || !this._rampGradients.length) && (this._rampGradientsTexture.dispose(), this._rampGradientsTexture = null), i.setTexture(\"rampSampler\", this._rampGradientsTexture));\n const n = i.defines;\n switch (this._scene && (Tn(i, this, this._scene), this.applyFog && il(this._scene, void 0, i)), n.indexOf(\"#define BILLBOARDMODE_ALL\") >= 0 && (r.invertToRef(w.Matrix[0]), i.setMatrix(\"invView\", w.Matrix[0])), this._vertexArrayObject !== void 0 ? (o = this._scene) != null && o.forceWireframe ? s.bindBuffers(this._vertexBuffers, this._linesIndexBufferUseInstancing, i) : (this._vertexArrayObject || (this._vertexArrayObject = this._engine.recordVertexArrayObject(this._vertexBuffers, null, i)), this._engine.bindVertexArrayObject(this._vertexArrayObject, (l = this._scene) != null && l.forceWireframe ? this._linesIndexBufferUseInstancing : this._indexBuffer)) : this._indexBuffer ? s.bindBuffers(this._vertexBuffers, (c = this._scene) != null && c.forceWireframe ? this._linesIndexBuffer : this._indexBuffer, i) : s.bindBuffers(this._vertexBuffers, (h = this._scene) != null && h.forceWireframe ? this._linesIndexBufferUseInstancing : null, i), this.useLogarithmicDepth && this._scene && Oa(n, i, this._scene), this._imageProcessingConfiguration && !this._imageProcessingConfiguration.applyByPostProcess && this._imageProcessingConfiguration.bind(i), e) {\n case vs.BLENDMODE_ADD:\n s.setAlphaMode(1);\n break;\n case vs.BLENDMODE_ONEONE:\n s.setAlphaMode(6);\n break;\n case vs.BLENDMODE_STANDARD:\n s.setAlphaMode(2);\n break;\n case vs.BLENDMODE_MULTIPLY:\n s.setAlphaMode(4);\n break;\n }\n return this._onBeforeDrawParticlesObservable && this._onBeforeDrawParticlesObservable.notifyObservers(i), this._useInstancing ? (u = this._scene) != null && u.forceWireframe ? s.drawElementsType(6, 0, 10, this._particles.length) : s.drawArraysType(7, 0, 4, this._particles.length) : (d = this._scene) != null && d.forceWireframe ? s.drawElementsType(1, 0, this._particles.length * 10) : s.drawElementsType(0, 0, this._particles.length * 6), this._particles.length;\n }\n /**\n * Renders the particle system in its current state.\n * @returns the current number of particles\n */\n render() {\n if (!this.isReady() || !this._particles.length)\n return 0;\n const e = this._engine;\n e.setState && (e.setState(!1), this.forceDepthWrite && e.setDepthWrite(!0));\n let t = 0;\n return this.blendMode === vs.BLENDMODE_MULTIPLYADD ? t = this._render(vs.BLENDMODE_MULTIPLY) + this._render(vs.BLENDMODE_ADD) : t = this._render(this.blendMode), this._engine.unbindInstanceAttributes(), this._engine.setAlphaMode(0), t;\n }\n /** @internal */\n _onDispose(e = !1, t = !1) {\n }\n /**\n * Disposes the particle system and free the associated resources\n * @param disposeTexture defines if the particle texture must be disposed as well (true by default)\n * @param disposeAttachedSubEmitters defines if the attached sub-emitters must be disposed as well (false by default)\n * @param disposeEndSubEmitters defines if the end type sub-emitters must be disposed as well (false by default)\n */\n dispose(e = !0, t = !1, i = !1) {\n if (this.resetDrawCache(), this._vertexBuffer && (this._vertexBuffer.dispose(), this._vertexBuffer = null), this._spriteBuffer && (this._spriteBuffer.dispose(), this._spriteBuffer = null), this._indexBuffer && (this._engine._releaseBuffer(this._indexBuffer), this._indexBuffer = null), this._linesIndexBuffer && (this._engine._releaseBuffer(this._linesIndexBuffer), this._linesIndexBuffer = null), this._linesIndexBufferUseInstancing && (this._engine._releaseBuffer(this._linesIndexBufferUseInstancing), this._linesIndexBufferUseInstancing = null), this._vertexArrayObject && (this._engine.releaseVertexArrayObject(this._vertexArrayObject), this._vertexArrayObject = null), e && this.particleTexture && (this.particleTexture.dispose(), this.particleTexture = null), e && this.noiseTexture && (this.noiseTexture.dispose(), this.noiseTexture = null), this._rampGradientsTexture && (this._rampGradientsTexture.dispose(), this._rampGradientsTexture = null), this._onDispose(t, i), this._onBeforeDrawParticlesObservable && this._onBeforeDrawParticlesObservable.clear(), this._scene) {\n const s = this._scene.particleSystems.indexOf(this);\n s > -1 && this._scene.particleSystems.splice(s, 1), this._scene._activeParticleSystems.dispose();\n }\n this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear(), this.onStoppedObservable.clear(), this.reset();\n }\n}\nvar jE;\n(function(a) {\n a[a.ATTACHED = 0] = \"ATTACHED\", a[a.END = 1] = \"END\";\n})(jE || (jE = {}));\nclass Yo {\n /**\n * Creates a sub emitter\n * @param particleSystem the particle system to be used by the sub emitter\n */\n constructor(e) {\n if (this.particleSystem = e, this.type = 1, this.inheritDirection = !1, this.inheritedVelocityAmount = 0, !e.emitter || !e.emitter.dispose) {\n const t = Oi(\"BABYLON.AbstractMesh\");\n e.emitter = new t(\"SubemitterSystemEmitter\", e.getScene()), e._disposeEmitterOnDispose = !0;\n }\n }\n /**\n * Clones the sub emitter\n * @returns the cloned sub emitter\n */\n clone() {\n let e = this.particleSystem.emitter;\n if (!e)\n e = new g();\n else if (e instanceof g)\n e = e.clone();\n else if (e.getClassName().indexOf(\"Mesh\") !== -1) {\n const i = Oi(\"BABYLON.Mesh\");\n e = new i(\"\", e.getScene()), e.isVisible = !1;\n }\n const t = new Yo(this.particleSystem.clone(this.particleSystem.name, e));\n return t.particleSystem.name += \"Clone\", t.type = this.type, t.inheritDirection = this.inheritDirection, t.inheritedVelocityAmount = this.inheritedVelocityAmount, t.particleSystem._disposeEmitterOnDispose = !0, t.particleSystem.disposeOnStop = !0, t;\n }\n /**\n * Serialize current object to a JSON object\n * @param serializeTexture defines if the texture must be serialized as well\n * @returns the serialized object\n */\n serialize(e = !1) {\n const t = {};\n return t.type = this.type, t.inheritDirection = this.inheritDirection, t.inheritedVelocityAmount = this.inheritedVelocityAmount, t.particleSystem = this.particleSystem.serialize(e), t;\n }\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static _ParseParticleSystem(e, t, i, s = !1) {\n throw $e(\"ParseParticle\");\n }\n /**\n * Creates a new SubEmitter from a serialized JSON version\n * @param serializationObject defines the JSON object to read from\n * @param sceneOrEngine defines the hosting scene or the hosting engine\n * @param rootUrl defines the rootUrl for data loading\n * @returns a new SubEmitter\n */\n static Parse(e, t, i) {\n const s = e.particleSystem, r = new Yo(Yo._ParseParticleSystem(s, t, i, !0));\n return r.type = e.type, r.inheritDirection = e.inheritDirection, r.inheritedVelocityAmount = e.inheritedVelocityAmount, r.particleSystem._isSubEmitter = !0, r;\n }\n /** Release associated resources */\n dispose() {\n this.particleSystem.dispose();\n }\n}\nfunction $R(a, e) {\n const t = new hm();\n return t.direction1 = a, t.direction2 = e, t;\n}\nfunction YR(a = 1, e = 1) {\n return new lm(a, e);\n}\nfunction jR(a = 1, e = 1) {\n return new Nf(a, e);\n}\nfunction KR(a = 1, e = new g(0, 1, 0), t = new g(0, 1, 0)) {\n return new cm(a, e, t);\n}\nfunction qR(a = 1, e = 1, t = 1, i = 0) {\n return new wf(a, e, t, i);\n}\nfunction QR(a = 1, e = 1, t = 1, i = new g(0, 1, 0), s = new g(0, 1, 0)) {\n return new om(a, e, t, i, s);\n}\nfunction ZR(a = 1, e = Math.PI / 4) {\n return new Of(a, e);\n}\nfunction JR(a = 1, e = Math.PI / 4, t = new g(0, 1, 0), i = new g(0, 1, 0)) {\n return new am(a, e, t, i);\n}\nclass oi extends Zp {\n constructor() {\n super(...arguments), this._disposeEmitterOnDispose = !1, this._emitFromParticle = (e) => {\n if (!this._subEmitters || this._subEmitters.length === 0)\n return;\n const t = Math.floor(Math.random() * this._subEmitters.length);\n this._subEmitters[t].forEach((i) => {\n if (i.type === 1) {\n const s = i.clone();\n e._inheritParticleInfoToSubEmitter(s), s.particleSystem._rootParticleSystem = this, this.activeSubSystems.push(s.particleSystem), s.particleSystem.start();\n }\n });\n };\n }\n /**\n * Creates a Point Emitter for the particle system (emits directly from the emitter position)\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the box\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the box\n * @returns the emitter\n */\n createPointEmitter(e, t) {\n const i = $R(e, t);\n return this.particleEmitterType = i, i;\n }\n /**\n * Creates a Hemisphere Emitter for the particle system (emits along the hemisphere radius)\n * @param radius The radius of the hemisphere to emit from\n * @param radiusRange The range of the hemisphere to emit from [0-1] 0 Surface Only, 1 Entire Radius\n * @returns the emitter\n */\n createHemisphericEmitter(e = 1, t = 1) {\n const i = YR(e, t);\n return this.particleEmitterType = i, i;\n }\n /**\n * Creates a Sphere Emitter for the particle system (emits along the sphere radius)\n * @param radius The radius of the sphere to emit from\n * @param radiusRange The range of the sphere to emit from [0-1] 0 Surface Only, 1 Entire Radius\n * @returns the emitter\n */\n createSphereEmitter(e = 1, t = 1) {\n const i = jR(e, t);\n return this.particleEmitterType = i, i;\n }\n /**\n * Creates a Directed Sphere Emitter for the particle system (emits between direction1 and direction2)\n * @param radius The radius of the sphere to emit from\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the sphere\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the sphere\n * @returns the emitter\n */\n createDirectedSphereEmitter(e = 1, t = new g(0, 1, 0), i = new g(0, 1, 0)) {\n const s = KR(e, t, i);\n return this.particleEmitterType = s, s;\n }\n /**\n * Creates a Cylinder Emitter for the particle system (emits from the cylinder to the particle position)\n * @param radius The radius of the emission cylinder\n * @param height The height of the emission cylinder\n * @param radiusRange The range of emission [0-1] 0 Surface only, 1 Entire Radius\n * @param directionRandomizer How much to randomize the particle direction [0-1]\n * @returns the emitter\n */\n createCylinderEmitter(e = 1, t = 1, i = 1, s = 0) {\n const r = qR(e, t, i, s);\n return this.particleEmitterType = r, r;\n }\n /**\n * Creates a Directed Cylinder Emitter for the particle system (emits between direction1 and direction2)\n * @param radius The radius of the cylinder to emit from\n * @param height The height of the emission cylinder\n * @param radiusRange the range of the emission cylinder [0-1] 0 Surface only, 1 Entire Radius (1 by default)\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the cylinder\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the cylinder\n * @returns the emitter\n */\n createDirectedCylinderEmitter(e = 1, t = 1, i = 1, s = new g(0, 1, 0), r = new g(0, 1, 0)) {\n const n = QR(e, t, i, s, r);\n return this.particleEmitterType = n, n;\n }\n /**\n * Creates a Cone Emitter for the particle system (emits from the cone to the particle position)\n * @param radius The radius of the cone to emit from\n * @param angle The base angle of the cone\n * @returns the emitter\n */\n createConeEmitter(e = 1, t = Math.PI / 4) {\n const i = ZR(e, t);\n return this.particleEmitterType = i, i;\n }\n createDirectedConeEmitter(e = 1, t = Math.PI / 4, i = new g(0, 1, 0), s = new g(0, 1, 0)) {\n const r = JR(e, t, i, s);\n return this.particleEmitterType = r, r;\n }\n /**\n * Creates a Box Emitter for the particle system. (emits between direction1 and direction2 from withing the box defined by minEmitBox and maxEmitBox)\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the box\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the box\n * @param minEmitBox Particles are emitted from the box between minEmitBox and maxEmitBox\n * @param maxEmitBox Particles are emitted from the box between minEmitBox and maxEmitBox\n * @returns the emitter\n */\n createBoxEmitter(e, t, i, s) {\n const r = new Xo();\n return this.particleEmitterType = r, this.direction1 = e, this.direction2 = t, this.minEmitBox = i, this.maxEmitBox = s, r;\n }\n _prepareSubEmitterInternalArray() {\n this._subEmitters = new Array(), this.subEmitters && this.subEmitters.forEach((e) => {\n e instanceof oi ? this._subEmitters.push([new Yo(e)]) : e instanceof Yo ? this._subEmitters.push([e]) : e instanceof Array && this._subEmitters.push(e);\n });\n }\n _stopSubEmitters() {\n this.activeSubSystems && (this.activeSubSystems.forEach((e) => {\n e.stop(!0);\n }), this.activeSubSystems = []);\n }\n _removeFromRoot() {\n if (!this._rootParticleSystem)\n return;\n const e = this._rootParticleSystem.activeSubSystems.indexOf(this);\n e !== -1 && this._rootParticleSystem.activeSubSystems.splice(e, 1), this._rootParticleSystem = null;\n }\n _preStart() {\n this._prepareSubEmitterInternalArray(), this._subEmitters && this._subEmitters.length != 0 && (this.activeSubSystems = []);\n }\n _postStop(e) {\n e && this._stopSubEmitters();\n }\n _prepareParticle(e) {\n if (this._subEmitters && this._subEmitters.length > 0) {\n const t = this._subEmitters[Math.floor(Math.random() * this._subEmitters.length)];\n e._attachedSubEmitters = [], t.forEach((i) => {\n if (i.type === 0) {\n const s = i.clone();\n e._attachedSubEmitters.push(s), s.particleSystem.start();\n }\n });\n }\n }\n /** @internal */\n _onDispose(e = !1, t = !1) {\n var i;\n if (this._removeFromRoot(), this.subEmitters && !this._subEmitters && this._prepareSubEmitterInternalArray(), e && ((i = this.particles) == null || i.forEach((s) => {\n if (s._attachedSubEmitters)\n for (let r = s._attachedSubEmitters.length - 1; r >= 0; r -= 1)\n s._attachedSubEmitters[r].dispose();\n })), t && this.activeSubSystems)\n for (let s = this.activeSubSystems.length - 1; s >= 0; s -= 1)\n this.activeSubSystems[s].dispose();\n if (this._subEmitters && this._subEmitters.length) {\n for (let s = 0; s < this._subEmitters.length; s++)\n for (const r of this._subEmitters[s])\n r.dispose();\n this._subEmitters = [], this.subEmitters = [];\n }\n this._disposeEmitterOnDispose && this.emitter && this.emitter.dispose && this.emitter.dispose(!0);\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n let r;\n i instanceof we ? r = null : r = i;\n const n = Oi(\"BABYLON.Texture\");\n if (n && r && (e.texture ? t.particleTexture = n.Parse(e.texture, r, s) : e.textureName && (t.particleTexture = new n(s + e.textureName, r, !1, e.invertY !== void 0 ? e.invertY : !0), t.particleTexture.name = e.textureName)), !e.emitterId && e.emitterId !== 0 && e.emitter === void 0 ? t.emitter = g.Zero() : e.emitterId && r ? t.emitter = r.getLastMeshById(e.emitterId) : t.emitter = g.FromArray(e.emitter), t.isLocal = !!e.isLocal, e.renderingGroupId !== void 0 && (t.renderingGroupId = e.renderingGroupId), e.isBillboardBased !== void 0 && (t.isBillboardBased = e.isBillboardBased), e.billboardMode !== void 0 && (t.billboardMode = e.billboardMode), e.useLogarithmicDepth !== void 0 && (t.useLogarithmicDepth = e.useLogarithmicDepth), e.animations) {\n for (let l = 0; l < e.animations.length; l++) {\n const h = e.animations[l], c = Oi(\"BABYLON.Animation\");\n c && t.animations.push(c.Parse(h));\n }\n t.beginAnimationOnStart = e.beginAnimationOnStart, t.beginAnimationFrom = e.beginAnimationFrom, t.beginAnimationTo = e.beginAnimationTo, t.beginAnimationLoop = e.beginAnimationLoop;\n }\n if (e.autoAnimate && r && r.beginAnimation(t, e.autoAnimateFrom, e.autoAnimateTo, e.autoAnimateLoop, e.autoAnimateSpeed || 1), t.startDelay = e.startDelay | 0, t.minAngularSpeed = e.minAngularSpeed, t.maxAngularSpeed = e.maxAngularSpeed, t.minSize = e.minSize, t.maxSize = e.maxSize, e.minScaleX && (t.minScaleX = e.minScaleX, t.maxScaleX = e.maxScaleX, t.minScaleY = e.minScaleY, t.maxScaleY = e.maxScaleY), e.preWarmCycles !== void 0 && (t.preWarmCycles = e.preWarmCycles, t.preWarmStepOffset = e.preWarmStepOffset), e.minInitialRotation !== void 0 && (t.minInitialRotation = e.minInitialRotation, t.maxInitialRotation = e.maxInitialRotation), t.minLifeTime = e.minLifeTime, t.maxLifeTime = e.maxLifeTime, t.minEmitPower = e.minEmitPower, t.maxEmitPower = e.maxEmitPower, t.emitRate = e.emitRate, t.gravity = g.FromArray(e.gravity), e.noiseStrength && (t.noiseStrength = g.FromArray(e.noiseStrength)), t.color1 = Ce.FromArray(e.color1), t.color2 = Ce.FromArray(e.color2), t.colorDead = Ce.FromArray(e.colorDead), t.updateSpeed = e.updateSpeed, t.targetStopDuration = e.targetStopDuration, t.blendMode = e.blendMode, e.colorGradients)\n for (const l of e.colorGradients)\n t.addColorGradient(l.gradient, Ce.FromArray(l.color1), l.color2 ? Ce.FromArray(l.color2) : void 0);\n if (e.rampGradients) {\n for (const l of e.rampGradients)\n t.addRampGradient(l.gradient, re.FromArray(l.color));\n t.useRampGradients = e.useRampGradients;\n }\n if (e.colorRemapGradients)\n for (const l of e.colorRemapGradients)\n t.addColorRemapGradient(l.gradient, l.factor1 !== void 0 ? l.factor1 : l.factor, l.factor2);\n if (e.alphaRemapGradients)\n for (const l of e.alphaRemapGradients)\n t.addAlphaRemapGradient(l.gradient, l.factor1 !== void 0 ? l.factor1 : l.factor, l.factor2);\n if (e.sizeGradients)\n for (const l of e.sizeGradients)\n t.addSizeGradient(l.gradient, l.factor1 !== void 0 ? l.factor1 : l.factor, l.factor2);\n if (e.angularSpeedGradients)\n for (const l of e.angularSpeedGradients)\n t.addAngularSpeedGradient(l.gradient, l.factor1 !== void 0 ? l.factor1 : l.factor, l.factor2);\n if (e.velocityGradients)\n for (const l of e.velocityGradients)\n t.addVelocityGradient(l.gradient, l.factor1 !== void 0 ? l.factor1 : l.factor, l.factor2);\n if (e.dragGradients)\n for (const l of e.dragGradients)\n t.addDragGradient(l.gradient, l.factor1 !== void 0 ? l.factor1 : l.factor, l.factor2);\n if (e.emitRateGradients)\n for (const l of e.emitRateGradients)\n t.addEmitRateGradient(l.gradient, l.factor1 !== void 0 ? l.factor1 : l.factor, l.factor2);\n if (e.startSizeGradients)\n for (const l of e.startSizeGradients)\n t.addStartSizeGradient(l.gradient, l.factor1 !== void 0 ? l.factor1 : l.factor, l.factor2);\n if (e.lifeTimeGradients)\n for (const l of e.lifeTimeGradients)\n t.addLifeTimeGradient(l.gradient, l.factor1 !== void 0 ? l.factor1 : l.factor, l.factor2);\n if (e.limitVelocityGradients) {\n for (const l of e.limitVelocityGradients)\n t.addLimitVelocityGradient(l.gradient, l.factor1 !== void 0 ? l.factor1 : l.factor, l.factor2);\n t.limitVelocityDamping = e.limitVelocityDamping;\n }\n if (e.noiseTexture && r) {\n const l = Oi(\"BABYLON.ProceduralTexture\");\n t.noiseTexture = l.Parse(e.noiseTexture, r, s);\n }\n let o;\n if (e.particleEmitterType) {\n switch (e.particleEmitterType.type) {\n case \"SphereParticleEmitter\":\n o = new Nf();\n break;\n case \"SphereDirectedParticleEmitter\":\n o = new cm();\n break;\n case \"ConeEmitter\":\n case \"ConeParticleEmitter\":\n o = new Of();\n break;\n case \"ConeDirectedParticleEmitter\":\n o = new am();\n break;\n case \"CylinderParticleEmitter\":\n o = new wf();\n break;\n case \"CylinderDirectedParticleEmitter\":\n o = new om();\n break;\n case \"HemisphericParticleEmitter\":\n o = new lm();\n break;\n case \"PointParticleEmitter\":\n o = new hm();\n break;\n case \"MeshParticleEmitter\":\n o = new Yv();\n break;\n case \"CustomParticleEmitter\":\n o = new $o();\n break;\n case \"BoxEmitter\":\n case \"BoxParticleEmitter\":\n default:\n o = new Xo();\n break;\n }\n o.parse(e.particleEmitterType, r);\n } else\n o = new Xo(), o.parse(e, r);\n t.particleEmitterType = o, t.startSpriteCellID = e.startSpriteCellID, t.endSpriteCellID = e.endSpriteCellID, t.spriteCellLoop = e.spriteCellLoop ?? !0, t.spriteCellWidth = e.spriteCellWidth, t.spriteCellHeight = e.spriteCellHeight, t.spriteCellChangeSpeed = e.spriteCellChangeSpeed, t.spriteRandomStartCell = e.spriteRandomStartCell, t.disposeOnStop = e.disposeOnStop ?? !1, t.manualEmitCount = e.manualEmitCount ?? -1;\n }\n /**\n * Parses a JSON object to create a particle system.\n * @param parsedParticleSystem The JSON object to parse\n * @param sceneOrEngine The scene or the engine to create the particle system in\n * @param rootUrl The root url to use to load external dependencies like texture\n * @param doNotStart Ignore the preventAutoStart attribute and does not start\n * @param capacity defines the system capacity (if null or undefined the sotred capacity will be used)\n * @returns the Parsed particle system\n */\n static Parse(e, t, i, s = !1, r) {\n const n = e.name;\n let o = null, l = null, h, c;\n if (t instanceof we ? h = t : (c = t, h = c.getEngine()), e.customShader && h.createEffectForParticles) {\n l = e.customShader;\n const d = l.shaderOptions.defines.length > 0 ? l.shaderOptions.defines.join(`\n`) : \"\";\n o = h.createEffectForParticles(l.shaderPath.fragmentElement, l.shaderOptions.uniforms, l.shaderOptions.samplers, d);\n }\n const u = new oi(n, r || e.capacity, t, o, e.isAnimationSheetEnabled);\n if (u.customShader = l, u._rootUrl = i, e.id && (u.id = e.id), e.subEmitters) {\n u.subEmitters = [];\n for (const d of e.subEmitters) {\n const f = [];\n for (const p of d)\n f.push(Yo.Parse(p, t, i));\n u.subEmitters.push(f);\n }\n }\n return oi._Parse(e, u, t, i), e.textureMask && (u.textureMask = Ce.FromArray(e.textureMask)), e.worldOffset && (u.worldOffset = g.FromArray(e.worldOffset)), e.preventAutoStart && (u.preventAutoStart = e.preventAutoStart), !s && !u.preventAutoStart && u.start(), u;\n }\n /**\n * Serializes the particle system to a JSON object\n * @param serializeTexture defines if the texture must be serialized as well\n * @returns the JSON object\n */\n serialize(e = !1) {\n const t = {};\n if (oi._Serialize(t, this, e), t.textureMask = this.textureMask.asArray(), t.customShader = this.customShader, t.preventAutoStart = this.preventAutoStart, t.worldOffset = this.worldOffset.asArray(), this.subEmitters) {\n t.subEmitters = [], this._subEmitters || this._prepareSubEmitterInternalArray();\n for (const i of this._subEmitters) {\n const s = [];\n for (const r of i)\n s.push(r.serialize(e));\n t.subEmitters.push(s);\n }\n }\n return t;\n }\n /**\n * @internal\n */\n static _Serialize(e, t, i) {\n if (e.name = t.name, e.id = t.id, e.capacity = t.getCapacity(), e.disposeOnStop = t.disposeOnStop, e.manualEmitCount = t.manualEmitCount, t.emitter.position) {\n const m = t.emitter;\n e.emitterId = m.id;\n } else {\n const m = t.emitter;\n e.emitter = m.asArray();\n }\n t.particleEmitterType && (e.particleEmitterType = t.particleEmitterType.serialize()), t.particleTexture && (i ? e.texture = t.particleTexture.serialize() : (e.textureName = t.particleTexture.name, e.invertY = !!t.particleTexture._invertY)), e.isLocal = t.isLocal, Ae.AppendSerializedAnimations(t, e), e.beginAnimationOnStart = t.beginAnimationOnStart, e.beginAnimationFrom = t.beginAnimationFrom, e.beginAnimationTo = t.beginAnimationTo, e.beginAnimationLoop = t.beginAnimationLoop, e.startDelay = t.startDelay, e.renderingGroupId = t.renderingGroupId, e.isBillboardBased = t.isBillboardBased, e.billboardMode = t.billboardMode, e.minAngularSpeed = t.minAngularSpeed, e.maxAngularSpeed = t.maxAngularSpeed, e.minSize = t.minSize, e.maxSize = t.maxSize, e.minScaleX = t.minScaleX, e.maxScaleX = t.maxScaleX, e.minScaleY = t.minScaleY, e.maxScaleY = t.maxScaleY, e.minEmitPower = t.minEmitPower, e.maxEmitPower = t.maxEmitPower, e.minLifeTime = t.minLifeTime, e.maxLifeTime = t.maxLifeTime, e.emitRate = t.emitRate, e.gravity = t.gravity.asArray(), e.noiseStrength = t.noiseStrength.asArray(), e.color1 = t.color1.asArray(), e.color2 = t.color2.asArray(), e.colorDead = t.colorDead.asArray(), e.updateSpeed = t.updateSpeed, e.targetStopDuration = t.targetStopDuration, e.blendMode = t.blendMode, e.preWarmCycles = t.preWarmCycles, e.preWarmStepOffset = t.preWarmStepOffset, e.minInitialRotation = t.minInitialRotation, e.maxInitialRotation = t.maxInitialRotation, e.startSpriteCellID = t.startSpriteCellID, e.spriteCellLoop = t.spriteCellLoop, e.endSpriteCellID = t.endSpriteCellID, e.spriteCellChangeSpeed = t.spriteCellChangeSpeed, e.spriteCellWidth = t.spriteCellWidth, e.spriteCellHeight = t.spriteCellHeight, e.spriteRandomStartCell = t.spriteRandomStartCell, e.isAnimationSheetEnabled = t.isAnimationSheetEnabled, e.useLogarithmicDepth = t.useLogarithmicDepth;\n const s = t.getColorGradients();\n if (s) {\n e.colorGradients = [];\n for (const m of s) {\n const x = {\n gradient: m.gradient,\n color1: m.color1.asArray()\n };\n m.color2 ? x.color2 = m.color2.asArray() : x.color2 = m.color1.asArray(), e.colorGradients.push(x);\n }\n }\n const r = t.getRampGradients();\n if (r) {\n e.rampGradients = [];\n for (const m of r) {\n const x = {\n gradient: m.gradient,\n color: m.color.asArray()\n };\n e.rampGradients.push(x);\n }\n e.useRampGradients = t.useRampGradients;\n }\n const n = t.getColorRemapGradients();\n if (n) {\n e.colorRemapGradients = [];\n for (const m of n) {\n const x = {\n gradient: m.gradient,\n factor1: m.factor1\n };\n m.factor2 !== void 0 ? x.factor2 = m.factor2 : x.factor2 = m.factor1, e.colorRemapGradients.push(x);\n }\n }\n const o = t.getAlphaRemapGradients();\n if (o) {\n e.alphaRemapGradients = [];\n for (const m of o) {\n const x = {\n gradient: m.gradient,\n factor1: m.factor1\n };\n m.factor2 !== void 0 ? x.factor2 = m.factor2 : x.factor2 = m.factor1, e.alphaRemapGradients.push(x);\n }\n }\n const l = t.getSizeGradients();\n if (l) {\n e.sizeGradients = [];\n for (const m of l) {\n const x = {\n gradient: m.gradient,\n factor1: m.factor1\n };\n m.factor2 !== void 0 ? x.factor2 = m.factor2 : x.factor2 = m.factor1, e.sizeGradients.push(x);\n }\n }\n const h = t.getAngularSpeedGradients();\n if (h) {\n e.angularSpeedGradients = [];\n for (const m of h) {\n const x = {\n gradient: m.gradient,\n factor1: m.factor1\n };\n m.factor2 !== void 0 ? x.factor2 = m.factor2 : x.factor2 = m.factor1, e.angularSpeedGradients.push(x);\n }\n }\n const c = t.getVelocityGradients();\n if (c) {\n e.velocityGradients = [];\n for (const m of c) {\n const x = {\n gradient: m.gradient,\n factor1: m.factor1\n };\n m.factor2 !== void 0 ? x.factor2 = m.factor2 : x.factor2 = m.factor1, e.velocityGradients.push(x);\n }\n }\n const u = t.getDragGradients();\n if (u) {\n e.dragGradients = [];\n for (const m of u) {\n const x = {\n gradient: m.gradient,\n factor1: m.factor1\n };\n m.factor2 !== void 0 ? x.factor2 = m.factor2 : x.factor2 = m.factor1, e.dragGradients.push(x);\n }\n }\n const d = t.getEmitRateGradients();\n if (d) {\n e.emitRateGradients = [];\n for (const m of d) {\n const x = {\n gradient: m.gradient,\n factor1: m.factor1\n };\n m.factor2 !== void 0 ? x.factor2 = m.factor2 : x.factor2 = m.factor1, e.emitRateGradients.push(x);\n }\n }\n const f = t.getStartSizeGradients();\n if (f) {\n e.startSizeGradients = [];\n for (const m of f) {\n const x = {\n gradient: m.gradient,\n factor1: m.factor1\n };\n m.factor2 !== void 0 ? x.factor2 = m.factor2 : x.factor2 = m.factor1, e.startSizeGradients.push(x);\n }\n }\n const p = t.getLifeTimeGradients();\n if (p) {\n e.lifeTimeGradients = [];\n for (const m of p) {\n const x = {\n gradient: m.gradient,\n factor1: m.factor1\n };\n m.factor2 !== void 0 ? x.factor2 = m.factor2 : x.factor2 = m.factor1, e.lifeTimeGradients.push(x);\n }\n }\n const _ = t.getLimitVelocityGradients();\n if (_) {\n e.limitVelocityGradients = [];\n for (const m of _) {\n const x = {\n gradient: m.gradient,\n factor1: m.factor1\n };\n m.factor2 !== void 0 ? x.factor2 = m.factor2 : x.factor2 = m.factor1, e.limitVelocityGradients.push(x);\n }\n e.limitVelocityDamping = t.limitVelocityDamping;\n }\n t.noiseTexture && (e.noiseTexture = t.noiseTexture.serialize());\n }\n // Clone\n /**\n * Clones the particle system.\n * @param name The name of the cloned object\n * @param newEmitter The new emitter to use\n * @param cloneTexture Also clone the textures if true\n * @returns the cloned particle system\n */\n clone(e, t, i = !1) {\n const s = { ...this._customWrappers };\n let r = null;\n const n = this._engine;\n if (n.createEffectForParticles && this.customShader != null) {\n r = this.customShader;\n const h = r.shaderOptions.defines.length > 0 ? r.shaderOptions.defines.join(`\n`) : \"\", c = n.createEffectForParticles(r.shaderPath.fragmentElement, r.shaderOptions.uniforms, r.shaderOptions.samplers, h);\n s[0] ? s[0].effect = c : this.setCustomEffect(c, 0);\n }\n const o = this.serialize(i), l = oi.Parse(o, this._scene || this._engine, this._rootUrl);\n return l.name = e, l.customShader = r, l._customWrappers = s, t === void 0 && (t = this.emitter), this.noiseTexture && (l.noiseTexture = this.noiseTexture.clone()), l.emitter = t, this.preventAutoStart || l.start(), l;\n }\n}\noi.BILLBOARDMODE_Y = 2;\noi.BILLBOARDMODE_ALL = 7;\noi.BILLBOARDMODE_STRETCHED = 8;\noi.BILLBOARDMODE_STRETCHED_LOCAL = 9;\nYo._ParseParticleSystem = oi.Parse;\nconst MG = \"clipPlaneFragmentDeclaration2\", DG = `#ifdef CLIPPLANE\nin float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nin float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nin float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nin float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nin float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nin float fClipDistance6;\n#endif\n`;\nz.IncludesShadersStore[MG] = DG;\nconst OG = \"gpuRenderParticlesPixelShader\", wG = `precision highp float;\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\nuniform sampler2D diffuseSampler;varying vec2 vUV;varying vec4 vColor;\n#include \n#include\n#include\n#include\n#include\n#include\nvoid main() {\n#include \nvec4 textureColor=texture2D(diffuseSampler,vUV);gl_FragColor=textureColor*vColor;\n#ifdef BLENDMULTIPLYMODE\nfloat alpha=vColor.a*textureColor.a;gl_FragColor.rgb=gl_FragColor.rgb*alpha+vec3(1.0)*(1.0-alpha);\n#endif \n#include\n#include(color,gl_FragColor)\n#ifdef IMAGEPROCESSINGPOSTPROCESS\ngl_FragColor.rgb=toLinearSpace(gl_FragColor.rgb);\n#else\n#ifdef IMAGEPROCESSING\ngl_FragColor.rgb=toLinearSpace(gl_FragColor.rgb);gl_FragColor=applyImageProcessing(gl_FragColor);\n#endif\n#endif\n}\n`;\nz.ShadersStore[OG] = wG;\nconst NG = \"clipPlaneVertexDeclaration2\", FG = `#ifdef CLIPPLANE\nuniform vec4 vClipPlane;out float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nuniform vec4 vClipPlane2;out float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nuniform vec4 vClipPlane3;out float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nuniform vec4 vClipPlane4;out float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nuniform vec4 vClipPlane5;out float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nuniform vec4 vClipPlane6;out float fClipDistance6;\n#endif\n`;\nz.IncludesShadersStore[NG] = FG;\nconst LG = \"gpuRenderParticlesVertexShader\", BG = `precision highp float;uniform mat4 view;uniform mat4 projection;uniform vec2 translationPivot;uniform vec3 worldOffset;\n#ifdef LOCAL\nuniform mat4 emitterWM;\n#endif\nattribute vec3 position;attribute float age;attribute float life;attribute vec3 size;\n#ifndef BILLBOARD\nattribute vec3 initialDirection;\n#endif\n#ifdef BILLBOARDSTRETCHED\nattribute vec3 direction;\n#endif\nattribute float angle;\n#ifdef ANIMATESHEET\nattribute float cellIndex;\n#endif\nattribute vec2 offset;attribute vec2 uv;varying vec2 vUV;varying vec4 vColor;varying vec3 vPositionW;\n#if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED)\nuniform mat4 invView;\n#endif\n#include\n#include\n#include\n#ifdef COLORGRADIENTS\nuniform sampler2D colorGradientSampler;\n#else\nuniform vec4 colorDead;attribute vec4 color;\n#endif\n#ifdef ANIMATESHEET\nuniform vec3 sheetInfos;\n#endif\n#ifdef BILLBOARD\nuniform vec3 eyePosition;\n#endif\nvec3 rotate(vec3 yaxis,vec3 rotatedCorner) {vec3 xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));vec3 zaxis=normalize(cross(yaxis,xaxis));vec3 row0=vec3(xaxis.x,xaxis.y,xaxis.z);vec3 row1=vec3(yaxis.x,yaxis.y,yaxis.z);vec3 row2=vec3(zaxis.x,zaxis.y,zaxis.z);mat3 rotMatrix= mat3(row0,row1,row2);vec3 alignedCorner=rotMatrix*rotatedCorner;\n#ifdef LOCAL\nreturn ((emitterWM*vec4(position,1.0)).xyz+worldOffset)+alignedCorner;\n#else\nreturn (position+worldOffset)+alignedCorner;\n#endif\n}\n#ifdef BILLBOARDSTRETCHED\nvec3 rotateAlign(vec3 toCamera,vec3 rotatedCorner) {vec3 normalizedToCamera=normalize(toCamera);vec3 normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));vec3 crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));vec3 row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);vec3 row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);vec3 row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);mat3 rotMatrix= mat3(row0,row1,row2);vec3 alignedCorner=rotMatrix*rotatedCorner;\n#ifdef LOCAL\nreturn ((emitterWM*vec4(position,1.0)).xyz+worldOffset)+alignedCorner;\n#else\nreturn (position+worldOffset)+alignedCorner;\n#endif\n}\n#endif\nvoid main() {\n#ifdef ANIMATESHEET\nfloat rowOffset=floor(cellIndex/sheetInfos.z);float columnOffset=cellIndex-rowOffset*sheetInfos.z;vec2 uvScale=sheetInfos.xy;vec2 uvOffset=vec2(uv.x ,1.0-uv.y);vUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;\n#else\nvUV=uv;\n#endif\nfloat ratio=age/life;\n#ifdef COLORGRADIENTS\nvColor=texture2D(colorGradientSampler,vec2(ratio,0));\n#else\nvColor=color*vec4(1.0-ratio)+colorDead*vec4(ratio);\n#endif\nvec2 cornerPos=(offset-translationPivot)*size.yz*size.x;\n#ifdef BILLBOARD\nvec4 rotatedCorner;rotatedCorner.w=0.;\n#ifdef BILLBOARDY\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.y=0.;rotatedCorner.xz+=translationPivot;vec3 yaxis=(position+worldOffset)-eyePosition;yaxis.y=0.;vPositionW=rotate(normalize(yaxis),rotatedCorner.xyz);vec4 viewPosition=(view*vec4(vPositionW,1.0));\n#elif defined(BILLBOARDSTRETCHED)\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.z=0.;rotatedCorner.xy+=translationPivot;vec3 toCamera=(position+worldOffset)-eyePosition;vPositionW=rotateAlign(toCamera,rotatedCorner.xyz);vec4 viewPosition=(view*vec4(vPositionW,1.0));\n#else\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.z=0.;rotatedCorner.xy+=translationPivot;\n#ifdef LOCAL\nvec4 viewPosition=view*vec4(((emitterWM*vec4(position,1.0)).xyz+worldOffset),1.0)+rotatedCorner;\n#else\nvec4 viewPosition=view*vec4((position+worldOffset),1.0)+rotatedCorner;\n#endif\nvPositionW=(invView*viewPosition).xyz;\n#endif\n#else\nvec3 rotatedCorner;rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=0.;rotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.xz+=translationPivot;vec3 yaxis=normalize(initialDirection);vPositionW=rotate(yaxis,rotatedCorner);vec4 viewPosition=view*vec4(vPositionW,1.0);\n#endif\ngl_Position=projection*viewPosition;\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6) || defined(FOG)\nvec4 worldPos=vec4(vPositionW,1.0);\n#endif\n#include\n#include\n#include\n}`;\nz.ShadersStore[LG] = BG;\nclass Jn extends vs {\n /**\n * Gets a boolean indicating if the GPU particles can be rendered on current browser\n */\n static get IsSupported() {\n if (!Me.LastCreatedEngine)\n return !1;\n const e = Me.LastCreatedEngine.getCaps();\n return e.supportTransformFeedbacks || e.supportComputeShaders;\n }\n _createIndexBuffer() {\n this._linesIndexBufferUseInstancing = this._engine.createIndexBuffer(new Uint32Array([0, 1, 1, 3, 3, 2, 2, 0, 0, 3]), void 0, \"GPUParticleSystemLinesIndexBuffer\");\n }\n /**\n * Gets the maximum number of particles active at the same time.\n * @returns The max number of active particles.\n */\n getCapacity() {\n return this._capacity;\n }\n /**\n * Gets or set the number of active particles\n * The value cannot be greater than \"capacity\" (if it is, it will be limited to \"capacity\").\n */\n get maxActiveParticleCount() {\n return this._maxActiveParticleCount;\n }\n set maxActiveParticleCount(e) {\n this._maxActiveParticleCount = Math.min(e, this._capacity);\n }\n /**\n * Gets or set the number of active particles\n * @deprecated Please use maxActiveParticleCount instead.\n */\n get activeParticleCount() {\n return this.maxActiveParticleCount;\n }\n set activeParticleCount(e) {\n this.maxActiveParticleCount = e;\n }\n /**\n * Creates a Point Emitter for the particle system (emits directly from the emitter position)\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the box\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the box\n * @returns the emitter\n */\n createPointEmitter(e, t) {\n const i = $R(e, t);\n return this.particleEmitterType = i, i;\n }\n /**\n * Creates a Hemisphere Emitter for the particle system (emits along the hemisphere radius)\n * @param radius The radius of the hemisphere to emit from\n * @param radiusRange The range of the hemisphere to emit from [0-1] 0 Surface Only, 1 Entire Radius\n * @returns the emitter\n */\n createHemisphericEmitter(e = 1, t = 1) {\n const i = YR(e, t);\n return this.particleEmitterType = i, i;\n }\n /**\n * Creates a Sphere Emitter for the particle system (emits along the sphere radius)\n * @param radius The radius of the sphere to emit from\n * @param radiusRange The range of the sphere to emit from [0-1] 0 Surface Only, 1 Entire Radius\n * @returns the emitter\n */\n createSphereEmitter(e = 1, t = 1) {\n const i = jR(e, t);\n return this.particleEmitterType = i, i;\n }\n /**\n * Creates a Directed Sphere Emitter for the particle system (emits between direction1 and direction2)\n * @param radius The radius of the sphere to emit from\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the sphere\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the sphere\n * @returns the emitter\n */\n createDirectedSphereEmitter(e = 1, t = new g(0, 1, 0), i = new g(0, 1, 0)) {\n const s = KR(e, t, i);\n return this.particleEmitterType = s, s;\n }\n /**\n * Creates a Cylinder Emitter for the particle system (emits from the cylinder to the particle position)\n * @param radius The radius of the emission cylinder\n * @param height The height of the emission cylinder\n * @param radiusRange The range of emission [0-1] 0 Surface only, 1 Entire Radius\n * @param directionRandomizer How much to randomize the particle direction [0-1]\n * @returns the emitter\n */\n createCylinderEmitter(e = 1, t = 1, i = 1, s = 0) {\n const r = qR(e, t, i, s);\n return this.particleEmitterType = r, r;\n }\n /**\n * Creates a Directed Cylinder Emitter for the particle system (emits between direction1 and direction2)\n * @param radius The radius of the cylinder to emit from\n * @param height The height of the emission cylinder\n * @param radiusRange the range of the emission cylinder [0-1] 0 Surface only, 1 Entire Radius (1 by default)\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the cylinder\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the cylinder\n * @returns the emitter\n */\n createDirectedCylinderEmitter(e = 1, t = 1, i = 1, s = new g(0, 1, 0), r = new g(0, 1, 0)) {\n const n = QR(e, t, i, s, r);\n return this.particleEmitterType = n, n;\n }\n /**\n * Creates a Cone Emitter for the particle system (emits from the cone to the particle position)\n * @param radius The radius of the cone to emit from\n * @param angle The base angle of the cone\n * @returns the emitter\n */\n createConeEmitter(e = 1, t = Math.PI / 4) {\n const i = ZR(e, t);\n return this.particleEmitterType = i, i;\n }\n createDirectedConeEmitter(e = 1, t = Math.PI / 4, i = new g(0, 1, 0), s = new g(0, 1, 0)) {\n const r = JR(e, t, i, s);\n return this.particleEmitterType = r, r;\n }\n /**\n * Creates a Box Emitter for the particle system. (emits between direction1 and direction2 from withing the box defined by minEmitBox and maxEmitBox)\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the box\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the box\n * @param minEmitBox Particles are emitted from the box between minEmitBox and maxEmitBox\n * @param maxEmitBox Particles are emitted from the box between minEmitBox and maxEmitBox\n * @returns the emitter\n */\n createBoxEmitter(e, t, i, s) {\n const r = new Xo();\n return this.particleEmitterType = r, this.direction1 = e, this.direction2 = t, this.minEmitBox = i, this.maxEmitBox = s, r;\n }\n /**\n * Is this system ready to be used/rendered\n * @returns true if the system is ready\n */\n isReady() {\n if (!this.emitter || this._imageProcessingConfiguration && !this._imageProcessingConfiguration.isReady() || !this.particleTexture || !this.particleTexture.isReady() || this._rebuildingAfterContextLost)\n return !1;\n if (this.blendMode !== oi.BLENDMODE_MULTIPLYADD) {\n if (!this._getWrapper(this.blendMode).effect.isReady())\n return !1;\n } else if (!this._getWrapper(oi.BLENDMODE_MULTIPLY).effect.isReady() || !this._getWrapper(oi.BLENDMODE_ADD).effect.isReady())\n return !1;\n return this._platform.isUpdateBufferCreated() ? this._platform.isUpdateBufferReady() : (this._recreateUpdateEffect(), !1);\n }\n /**\n * Gets if the system has been started. (Note: this will still be true after stop is called)\n * @returns True if it has been started, otherwise false.\n */\n isStarted() {\n return this._started;\n }\n /**\n * Gets if the system has been stopped. (Note: rendering is still happening but the system is frozen)\n * @returns True if it has been stopped, otherwise false.\n */\n isStopped() {\n return this._stopped;\n }\n /**\n * Gets a boolean indicating that the system is stopping\n * @returns true if the system is currently stopping\n */\n isStopping() {\n return !1;\n }\n /**\n * Gets the number of particles active at the same time.\n * @returns The number of active particles.\n */\n getActiveCount() {\n return this._currentActiveCount;\n }\n /**\n * Starts the particle system and begins to emit\n * @param delay defines the delay in milliseconds before starting the system (this.startDelay by default)\n */\n start(e = this.startDelay) {\n if (!this.targetStopDuration && this._hasTargetStopDurationDependantGradient())\n throw \"Particle system started with a targetStopDuration dependant gradient (eg. startSizeGradients) but no targetStopDuration set\";\n if (e) {\n setTimeout(() => {\n this.start(0);\n }, e);\n return;\n }\n this._started = !0, this._stopped = !1, this._preWarmDone = !1, this.beginAnimationOnStart && this.animations && this.animations.length > 0 && this._scene && this._scene.beginAnimation(this, this.beginAnimationFrom, this.beginAnimationTo, this.beginAnimationLoop);\n }\n /**\n * Stops the particle system.\n */\n stop() {\n this._stopped || (this.onStoppedObservable.notifyObservers(this), this._stopped = !0);\n }\n /**\n * Remove all active particles\n */\n reset() {\n this._releaseBuffers(), this._platform.releaseVertexBuffers(), this._currentActiveCount = 0, this._targetIndex = 0;\n }\n /**\n * Returns the string \"GPUParticleSystem\"\n * @returns a string containing the class name\n */\n getClassName() {\n return \"GPUParticleSystem\";\n }\n /**\n * Gets the custom effect used to render the particles\n * @param blendMode Blend mode for which the effect should be retrieved\n * @returns The effect\n */\n getCustomEffect(e = 0) {\n var t;\n return ((t = this._customWrappers[e]) == null ? void 0 : t.effect) ?? this._customWrappers[0].effect;\n }\n _getCustomDrawWrapper(e = 0) {\n return this._customWrappers[e] ?? this._customWrappers[0];\n }\n /**\n * Sets the custom effect used to render the particles\n * @param effect The effect to set\n * @param blendMode Blend mode for which the effect should be set\n */\n setCustomEffect(e, t = 0) {\n this._customWrappers[t] = new Ds(this._engine), this._customWrappers[t].effect = e;\n }\n /**\n * Observable that will be called just before the particles are drawn\n */\n get onBeforeDrawParticlesObservable() {\n return this._onBeforeDrawParticlesObservable || (this._onBeforeDrawParticlesObservable = new G()), this._onBeforeDrawParticlesObservable;\n }\n /**\n * Gets the name of the particle vertex shader\n */\n get vertexShaderName() {\n return \"gpuRenderParticles\";\n }\n /**\n * Gets the vertex buffers used by the particle system\n * Should be called after render() has been called for the current frame so that the buffers returned are the ones that have been updated\n * in the current frame (there's a ping-pong between two sets of buffers - for a given frame, one set is used as the source and the other as the destination)\n */\n get vertexBuffers() {\n return this._renderVertexBuffers[this._targetIndex ^ 1];\n }\n /**\n * Gets the index buffer used by the particle system (null for GPU particle systems)\n */\n get indexBuffer() {\n return null;\n }\n _removeGradientAndTexture(e, t, i) {\n return super._removeGradientAndTexture(e, t, i), this._releaseBuffers(), this;\n }\n /**\n * Adds a new color gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param color1 defines the color to affect to the specified gradient\n * @returns the current particle system\n */\n addColorGradient(e, t) {\n this._colorGradients || (this._colorGradients = []);\n const i = new HR(e, t);\n return this._colorGradients.push(i), this._refreshColorGradient(!0), this._releaseBuffers(), this;\n }\n _refreshColorGradient(e = !1) {\n this._colorGradients && (e && this._colorGradients.sort((t, i) => t.gradient < i.gradient ? -1 : t.gradient > i.gradient ? 1 : 0), this._colorGradientsTexture && (this._colorGradientsTexture.dispose(), this._colorGradientsTexture = null));\n }\n /** Force the system to rebuild all gradients that need to be resync */\n forceRefreshGradients() {\n this._refreshColorGradient(), this._refreshFactorGradient(this._sizeGradients, \"_sizeGradientsTexture\"), this._refreshFactorGradient(this._angularSpeedGradients, \"_angularSpeedGradientsTexture\"), this._refreshFactorGradient(this._velocityGradients, \"_velocityGradientsTexture\"), this._refreshFactorGradient(this._limitVelocityGradients, \"_limitVelocityGradientsTexture\"), this._refreshFactorGradient(this._dragGradients, \"_dragGradientsTexture\"), this.reset();\n }\n /**\n * Remove a specific color gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeColorGradient(e) {\n return this._removeGradientAndTexture(e, this._colorGradients, this._colorGradientsTexture), this._colorGradientsTexture = null, this;\n }\n /**\n * Resets the draw wrappers cache\n */\n resetDrawCache() {\n var e;\n for (const t in this._drawWrappers)\n (e = this._drawWrappers[t].drawContext) == null || e.reset();\n }\n _addFactorGradient(e, t, i) {\n const s = new XR(t, i);\n e.push(s), this._releaseBuffers();\n }\n /**\n * Adds a new size gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the size factor to affect to the specified gradient\n * @returns the current particle system\n */\n addSizeGradient(e, t) {\n return this._sizeGradients || (this._sizeGradients = []), this._addFactorGradient(this._sizeGradients, e, t), this._refreshFactorGradient(this._sizeGradients, \"_sizeGradientsTexture\", !0), this._releaseBuffers(), this;\n }\n /**\n * Remove a specific size gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeSizeGradient(e) {\n return this._removeGradientAndTexture(e, this._sizeGradients, this._sizeGradientsTexture), this._sizeGradientsTexture = null, this;\n }\n _refreshFactorGradient(e, t, i = !1) {\n if (!e)\n return;\n i && e.sort((r, n) => r.gradient < n.gradient ? -1 : r.gradient > n.gradient ? 1 : 0);\n const s = this;\n s[t] && (s[t].dispose(), s[t] = null);\n }\n /**\n * Adds a new angular speed gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the angular speed to affect to the specified gradient\n * @returns the current particle system\n */\n addAngularSpeedGradient(e, t) {\n return this._angularSpeedGradients || (this._angularSpeedGradients = []), this._addFactorGradient(this._angularSpeedGradients, e, t), this._refreshFactorGradient(this._angularSpeedGradients, \"_angularSpeedGradientsTexture\", !0), this._releaseBuffers(), this;\n }\n /**\n * Remove a specific angular speed gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeAngularSpeedGradient(e) {\n return this._removeGradientAndTexture(e, this._angularSpeedGradients, this._angularSpeedGradientsTexture), this._angularSpeedGradientsTexture = null, this;\n }\n /**\n * Adds a new velocity gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the velocity to affect to the specified gradient\n * @returns the current particle system\n */\n addVelocityGradient(e, t) {\n return this._velocityGradients || (this._velocityGradients = []), this._addFactorGradient(this._velocityGradients, e, t), this._refreshFactorGradient(this._velocityGradients, \"_velocityGradientsTexture\", !0), this._releaseBuffers(), this;\n }\n /**\n * Remove a specific velocity gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeVelocityGradient(e) {\n return this._removeGradientAndTexture(e, this._velocityGradients, this._velocityGradientsTexture), this._velocityGradientsTexture = null, this;\n }\n /**\n * Adds a new limit velocity gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the limit velocity value to affect to the specified gradient\n * @returns the current particle system\n */\n addLimitVelocityGradient(e, t) {\n return this._limitVelocityGradients || (this._limitVelocityGradients = []), this._addFactorGradient(this._limitVelocityGradients, e, t), this._refreshFactorGradient(this._limitVelocityGradients, \"_limitVelocityGradientsTexture\", !0), this._releaseBuffers(), this;\n }\n /**\n * Remove a specific limit velocity gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeLimitVelocityGradient(e) {\n return this._removeGradientAndTexture(e, this._limitVelocityGradients, this._limitVelocityGradientsTexture), this._limitVelocityGradientsTexture = null, this;\n }\n /**\n * Adds a new drag gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the drag value to affect to the specified gradient\n * @returns the current particle system\n */\n addDragGradient(e, t) {\n return this._dragGradients || (this._dragGradients = []), this._addFactorGradient(this._dragGradients, e, t), this._refreshFactorGradient(this._dragGradients, \"_dragGradientsTexture\", !0), this._releaseBuffers(), this;\n }\n /**\n * Remove a specific drag gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeDragGradient(e) {\n return this._removeGradientAndTexture(e, this._dragGradients, this._dragGradientsTexture), this._dragGradientsTexture = null, this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n addEmitRateGradient() {\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n removeEmitRateGradient() {\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n addStartSizeGradient() {\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n removeStartSizeGradient() {\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n addColorRemapGradient() {\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n removeColorRemapGradient() {\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n addAlphaRemapGradient() {\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n removeAlphaRemapGradient() {\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n addRampGradient() {\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n removeRampGradient() {\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the list of ramp gradients\n */\n getRampGradients() {\n return null;\n }\n /**\n * Not supported by GPUParticleSystem\n * Gets or sets a boolean indicating that ramp gradients must be used\n * @see https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/particle_system_intro#ramp-gradients\n */\n get useRampGradients() {\n return !1;\n }\n set useRampGradients(e) {\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n addLifeTimeGradient() {\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n removeLifeTimeGradient() {\n return this;\n }\n /**\n * Instantiates a GPU particle system.\n * Particles are often small sprites used to simulate hard-to-reproduce phenomena like fire, smoke, water, or abstract visual effects like magic glitter and faery dust.\n * @param name The name of the particle system\n * @param options The options used to create the system\n * @param sceneOrEngine The scene the particle system belongs to or the engine to use if no scene\n * @param customEffect a custom effect used to change the way particles are rendered by default\n * @param isAnimationSheetEnabled Must be true if using a spritesheet to animate the particles texture\n */\n constructor(e, t, i, s = null, r = !1) {\n if (super(e), this.layerMask = 268435455, this._accumulatedCount = 0, this._renderVertexBuffers = [], this._targetIndex = 0, this._currentRenderId = -1, this._currentRenderingCameraUniqueId = -1, this._started = !1, this._stopped = !1, this._timeDelta = 0, this.updateInAnimate = !1, this._actualFrame = 0, this._rawTextureWidth = 256, this._rebuildingAfterContextLost = !1, this.onDisposeObservable = new G(), this.onStoppedObservable = new G(), this.forceDepthWrite = !1, this._preWarmDone = !1, this.isLocal = !1, this.isGPU = !0, this._onBeforeDrawParticlesObservable = null, !i || i.getClassName() === \"Scene\" ? (this._scene = i || Me.LastCreatedScene, this._engine = this._scene.getEngine(), this.uniqueId = this._scene.getUniqueId(), this._scene.particleSystems.push(this)) : (this._engine = i, this.defaultProjectionMatrix = O.PerspectiveFovLH(0.8, 1, 0.1, 100, this._engine.isNDCHalfZRange)), this._engine.getCaps().supportComputeShaders) {\n if (!Oi(\"BABYLON.ComputeShaderParticleSystem\"))\n throw new Error(\"The ComputeShaderParticleSystem class is not available! Make sure you have imported it.\");\n this._platform = new (Oi(\"BABYLON.ComputeShaderParticleSystem\"))(this, this._engine);\n } else {\n if (!Oi(\"BABYLON.WebGL2ParticleSystem\"))\n throw new Error(\"The WebGL2ParticleSystem class is not available! Make sure you have imported it.\");\n this._platform = new (Oi(\"BABYLON.WebGL2ParticleSystem\"))(this, this._engine);\n }\n this._customWrappers = { 0: new Ds(this._engine) }, this._customWrappers[0].effect = s, this._drawWrappers = { 0: new Ds(this._engine) }, this._drawWrappers[0].drawContext && (this._drawWrappers[0].drawContext.useInstancing = !0), this._createIndexBuffer(), this._attachImageProcessingConfiguration(null), t = t ?? {}, t.randomTextureSize || delete t.randomTextureSize;\n const n = {\n capacity: 5e4,\n randomTextureSize: this._engine.getCaps().maxTextureSize,\n ...t\n }, o = t;\n isFinite(o) && (n.capacity = o), this._capacity = n.capacity, this._maxActiveParticleCount = n.capacity, this._currentActiveCount = 0, this._isAnimationSheetEnabled = r, this.particleEmitterType = new Xo();\n const l = Math.min(this._engine.getCaps().maxTextureSize, n.randomTextureSize);\n let h = [];\n for (let c = 0; c < l; ++c)\n h.push(Math.random()), h.push(Math.random()), h.push(Math.random()), h.push(Math.random());\n this._randomTexture = new _i(new Float32Array(h), l, 1, 5, i, !1, !1, 1, 1), this._randomTexture.name = \"GPUParticleSystem_random1\", this._randomTexture.wrapU = 1, this._randomTexture.wrapV = 1, h = [];\n for (let c = 0; c < l; ++c)\n h.push(Math.random()), h.push(Math.random()), h.push(Math.random()), h.push(Math.random());\n this._randomTexture2 = new _i(new Float32Array(h), l, 1, 5, i, !1, !1, 1, 1), this._randomTexture2.name = \"GPUParticleSystem_random2\", this._randomTexture2.wrapU = 1, this._randomTexture2.wrapV = 1, this._randomTextureSize = l;\n }\n _reset() {\n this._releaseBuffers();\n }\n _createVertexBuffers(e, t, i) {\n const s = {};\n s.position = t.createVertexBuffer(\"position\", 0, 3, this._attributesStrideSize, !0);\n let r = 3;\n s.age = t.createVertexBuffer(\"age\", r, 1, this._attributesStrideSize, !0), r += 1, s.size = t.createVertexBuffer(\"size\", r, 3, this._attributesStrideSize, !0), r += 3, s.life = t.createVertexBuffer(\"life\", r, 1, this._attributesStrideSize, !0), r += 1, r += 4, this.billboardMode === oi.BILLBOARDMODE_STRETCHED && (s.direction = t.createVertexBuffer(\"direction\", r, 3, this._attributesStrideSize, !0)), r += 3, this._platform.alignDataInBuffer && (r += 1), this.particleEmitterType instanceof $o && (r += 3, this._platform.alignDataInBuffer && (r += 1)), this._colorGradientsTexture || (s.color = t.createVertexBuffer(\"color\", r, 4, this._attributesStrideSize, !0), r += 4), this._isBillboardBased || (s.initialDirection = t.createVertexBuffer(\"initialDirection\", r, 3, this._attributesStrideSize, !0), r += 3, this._platform.alignDataInBuffer && (r += 1)), this.noiseTexture && (s.noiseCoordinates1 = t.createVertexBuffer(\"noiseCoordinates1\", r, 3, this._attributesStrideSize, !0), r += 3, this._platform.alignDataInBuffer && (r += 1), s.noiseCoordinates2 = t.createVertexBuffer(\"noiseCoordinates2\", r, 3, this._attributesStrideSize, !0), r += 3, this._platform.alignDataInBuffer && (r += 1)), s.angle = t.createVertexBuffer(\"angle\", r, 1, this._attributesStrideSize, !0), this._angularSpeedGradientsTexture ? r++ : r += 2, this._isAnimationSheetEnabled && (s.cellIndex = t.createVertexBuffer(\"cellIndex\", r, 1, this._attributesStrideSize, !0), r += 1, this.spriteRandomStartCell && (s.cellStartOffset = t.createVertexBuffer(\"cellStartOffset\", r, 1, this._attributesStrideSize, !0), r += 1)), s.offset = i.createVertexBuffer(\"offset\", 0, 2), s.uv = i.createVertexBuffer(\"uv\", 2, 2), this._renderVertexBuffers.push(s), this._platform.createVertexBuffers(e, s), this.resetDrawCache();\n }\n _initialize(e = !1) {\n if (this._buffer0 && !e)\n return;\n const t = this._engine, i = [];\n this._attributesStrideSize = 21, this._targetIndex = 0, this._platform.alignDataInBuffer && (this._attributesStrideSize += 1), this.particleEmitterType instanceof $o && (this._attributesStrideSize += 3, this._platform.alignDataInBuffer && (this._attributesStrideSize += 1)), this.isBillboardBased || (this._attributesStrideSize += 3, this._platform.alignDataInBuffer && (this._attributesStrideSize += 1)), this._colorGradientsTexture && (this._attributesStrideSize -= 4), this._angularSpeedGradientsTexture && (this._attributesStrideSize -= 1), this._isAnimationSheetEnabled && (this._attributesStrideSize += 1, this.spriteRandomStartCell && (this._attributesStrideSize += 1)), this.noiseTexture && (this._attributesStrideSize += 6, this._platform.alignDataInBuffer && (this._attributesStrideSize += 2)), this._platform.alignDataInBuffer && (this._attributesStrideSize += 3 - (this._attributesStrideSize + 3 & 3));\n const s = this.particleEmitterType instanceof $o, r = w.Vector3[0];\n let n = 0;\n for (let c = 0; c < this._capacity; c++)\n if (i.push(0), i.push(0), i.push(0), i.push(0), i.push(0), i.push(0), i.push(0), i.push(0), i.push(Math.random()), i.push(Math.random()), i.push(Math.random()), i.push(Math.random()), s ? (this.particleEmitterType.particleDestinationGenerator(c, null, r), i.push(r.x), i.push(r.y), i.push(r.z)) : (i.push(0), i.push(0), i.push(0)), this._platform.alignDataInBuffer && i.push(0), n += 16, s && (this.particleEmitterType.particlePositionGenerator(c, null, r), i.push(r.x), i.push(r.y), i.push(r.z), this._platform.alignDataInBuffer && i.push(0), n += 4), this._colorGradientsTexture || (i.push(0), i.push(0), i.push(0), i.push(0), n += 4), this.isBillboardBased || (i.push(0), i.push(0), i.push(0), this._platform.alignDataInBuffer && i.push(0), n += 4), this.noiseTexture && (i.push(Math.random()), i.push(Math.random()), i.push(Math.random()), this._platform.alignDataInBuffer && i.push(0), i.push(Math.random()), i.push(Math.random()), i.push(Math.random()), this._platform.alignDataInBuffer && i.push(0), n += 8), i.push(0), n += 1, this._angularSpeedGradientsTexture || (i.push(0), n += 1), this._isAnimationSheetEnabled && (i.push(0), n += 1, this.spriteRandomStartCell && (i.push(0), n += 1)), this._platform.alignDataInBuffer) {\n let u = 3 - (n + 3 & 3);\n for (n += u; u-- > 0; )\n i.push(0);\n }\n const o = new Float32Array([0.5, 0.5, 1, 1, -0.5, 0.5, 0, 1, 0.5, -0.5, 1, 0, -0.5, -0.5, 0, 0]), l = this._platform.createParticleBuffer(i), h = this._platform.createParticleBuffer(i);\n this._buffer0 = new ys(t, l, !1, this._attributesStrideSize), this._buffer1 = new ys(t, h, !1, this._attributesStrideSize), this._spriteBuffer = new ys(t, o, !1, 4), this._renderVertexBuffers = [], this._createVertexBuffers(this._buffer0, this._buffer1, this._spriteBuffer), this._createVertexBuffers(this._buffer1, this._buffer0, this._spriteBuffer), this._sourceBuffer = this._buffer0, this._targetBuffer = this._buffer1;\n }\n /** @internal */\n _recreateUpdateEffect() {\n this._createColorGradientTexture(), this._createSizeGradientTexture(), this._createAngularSpeedGradientTexture(), this._createVelocityGradientTexture(), this._createLimitVelocityGradientTexture(), this._createDragGradientTexture();\n let e = this.particleEmitterType ? this.particleEmitterType.getEffectDefines() : \"\";\n return this._isBillboardBased && (e += `\n#define BILLBOARD`), this._colorGradientsTexture && (e += `\n#define COLORGRADIENTS`), this._sizeGradientsTexture && (e += `\n#define SIZEGRADIENTS`), this._angularSpeedGradientsTexture && (e += `\n#define ANGULARSPEEDGRADIENTS`), this._velocityGradientsTexture && (e += `\n#define VELOCITYGRADIENTS`), this._limitVelocityGradientsTexture && (e += `\n#define LIMITVELOCITYGRADIENTS`), this._dragGradientsTexture && (e += `\n#define DRAGGRADIENTS`), this.isAnimationSheetEnabled && (e += `\n#define ANIMATESHEET`, this.spriteRandomStartCell && (e += `\n#define ANIMATESHEETRANDOMSTART`)), this.noiseTexture && (e += `\n#define NOISE`), this.isLocal && (e += `\n#define LOCAL`), this._platform.isUpdateBufferCreated() && this._cachedUpdateDefines === e ? this._platform.isUpdateBufferReady() : (this._cachedUpdateDefines = e, this._updateBuffer = this._platform.createUpdateBuffer(e), this._platform.isUpdateBufferReady());\n }\n /**\n * @internal\n */\n _getWrapper(e) {\n const t = this._getCustomDrawWrapper(e);\n if (t != null && t.effect)\n return t;\n const i = [];\n this.fillDefines(i, e);\n let s = this._drawWrappers[e];\n s || (s = new Ds(this._engine), s.drawContext && (s.drawContext.useInstancing = !0), this._drawWrappers[e] = s);\n const r = i.join(`\n`);\n if (s.defines !== r) {\n const n = [], o = [], l = [];\n this.fillUniformsAttributesAndSamplerNames(o, n, l), s.setEffect(this._engine.createEffect(\"gpuRenderParticles\", n, o, l, r), r);\n }\n return s;\n }\n /**\n * @internal\n */\n static _GetAttributeNamesOrOptions(e = !1, t = !1, i = !1, s = !1) {\n const r = [R.PositionKind, \"age\", \"life\", \"size\", \"angle\"];\n return e || r.push(R.ColorKind), t && r.push(\"cellIndex\"), i || r.push(\"initialDirection\"), s && r.push(\"direction\"), r.push(\"offset\", R.UVKind), r;\n }\n /**\n * @internal\n */\n static _GetEffectCreationOptions(e = !1, t = !1, i = !1) {\n const s = [\"emitterWM\", \"worldOffset\", \"view\", \"projection\", \"colorDead\", \"invView\", \"translationPivot\", \"eyePosition\"];\n return Ln(s), e && s.push(\"sheetInfos\"), t && s.push(\"logarithmicDepthConstant\"), i && (s.push(\"vFogInfos\"), s.push(\"vFogColor\")), s;\n }\n /**\n * Fill the defines array according to the current settings of the particle system\n * @param defines Array to be updated\n * @param blendMode blend mode to take into account when updating the array\n * @param fillImageProcessing fills the image processing defines\n */\n fillDefines(e, t = 0, i = !0) {\n if (this._scene && (tl(this, this._scene, e), this.applyFog && this._scene.fogEnabled && this._scene.fogMode !== De.FOGMODE_NONE && e.push(\"#define FOG\")), t === oi.BLENDMODE_MULTIPLY && e.push(\"#define BLENDMULTIPLYMODE\"), this.isLocal && e.push(\"#define LOCAL\"), this.useLogarithmicDepth && e.push(\"#define LOGARITHMICDEPTH\"), this._isBillboardBased)\n switch (e.push(\"#define BILLBOARD\"), this.billboardMode) {\n case oi.BILLBOARDMODE_Y:\n e.push(\"#define BILLBOARDY\");\n break;\n case oi.BILLBOARDMODE_STRETCHED:\n e.push(\"#define BILLBOARDSTRETCHED\");\n break;\n case oi.BILLBOARDMODE_ALL:\n e.push(\"#define BILLBOARDMODE_ALL\");\n break;\n }\n this._colorGradientsTexture && e.push(\"#define COLORGRADIENTS\"), this.isAnimationSheetEnabled && e.push(\"#define ANIMATESHEET\"), i && this._imageProcessingConfiguration && (this._imageProcessingConfiguration.prepareDefines(this._imageProcessingConfigurationDefines), e.push(\"\" + this._imageProcessingConfigurationDefines.toString()));\n }\n /**\n * Fill the uniforms, attributes and samplers arrays according to the current settings of the particle system\n * @param uniforms Uniforms array to fill\n * @param attributes Attributes array to fill\n * @param samplers Samplers array to fill\n */\n fillUniformsAttributesAndSamplerNames(e, t, i) {\n t.push(...Jn._GetAttributeNamesOrOptions(!!this._colorGradientsTexture, this._isAnimationSheetEnabled, this._isBillboardBased, this._isBillboardBased && this.billboardMode === oi.BILLBOARDMODE_STRETCHED)), e.push(...Jn._GetEffectCreationOptions(this._isAnimationSheetEnabled, this.useLogarithmicDepth, this.applyFog)), i.push(\"diffuseSampler\", \"colorGradientSampler\"), this._imageProcessingConfiguration && (pt.PrepareUniforms(e, this._imageProcessingConfigurationDefines), pt.PrepareSamplers(i, this._imageProcessingConfigurationDefines));\n }\n /**\n * Animates the particle system for the current frame by emitting new particles and or animating the living ones.\n * @param preWarm defines if we are in the pre-warmimg phase\n */\n animate(e = !1) {\n var t;\n this._timeDelta = this.updateSpeed * (e ? this.preWarmStepOffset : ((t = this._scene) == null ? void 0 : t.getAnimationRatio()) || 1), this._actualFrame += this._timeDelta, this._stopped || this.targetStopDuration && this._actualFrame >= this.targetStopDuration && this.stop(), this.updateInAnimate && this._update();\n }\n _createFactorGradientTexture(e, t) {\n const i = this[t];\n if (!e || !e.length || i)\n return;\n const s = new Float32Array(this._rawTextureWidth);\n for (let r = 0; r < this._rawTextureWidth; r++) {\n const n = r / this._rawTextureWidth;\n Zr.GetCurrentGradient(n, e, (o, l, h) => {\n s[r] = Re.Lerp(o.factor1, l.factor1, h);\n });\n }\n this[t] = _i.CreateRTexture(s, this._rawTextureWidth, 1, this._scene || this._engine, !1, !1, 1), this[t].name = t.substring(1);\n }\n _createSizeGradientTexture() {\n this._createFactorGradientTexture(this._sizeGradients, \"_sizeGradientsTexture\");\n }\n _createAngularSpeedGradientTexture() {\n this._createFactorGradientTexture(this._angularSpeedGradients, \"_angularSpeedGradientsTexture\");\n }\n _createVelocityGradientTexture() {\n this._createFactorGradientTexture(this._velocityGradients, \"_velocityGradientsTexture\");\n }\n _createLimitVelocityGradientTexture() {\n this._createFactorGradientTexture(this._limitVelocityGradients, \"_limitVelocityGradientsTexture\");\n }\n _createDragGradientTexture() {\n this._createFactorGradientTexture(this._dragGradients, \"_dragGradientsTexture\");\n }\n _createColorGradientTexture() {\n if (!this._colorGradients || !this._colorGradients.length || this._colorGradientsTexture)\n return;\n const e = new Uint8Array(this._rawTextureWidth * 4), t = wt.Color4[0];\n for (let i = 0; i < this._rawTextureWidth; i++) {\n const s = i / this._rawTextureWidth;\n Zr.GetCurrentGradient(s, this._colorGradients, (r, n, o) => {\n Ce.LerpToRef(r.color1, n.color1, o, t), e[i * 4] = t.r * 255, e[i * 4 + 1] = t.g * 255, e[i * 4 + 2] = t.b * 255, e[i * 4 + 3] = t.a * 255;\n });\n }\n this._colorGradientsTexture = _i.CreateRGBATexture(e, this._rawTextureWidth, 1, this._scene, !1, !1, 1), this._colorGradientsTexture.name = \"colorGradients\";\n }\n _render(e, t) {\n var o, l, h, c;\n const i = this._getWrapper(e), s = i.effect;\n this._engine.enableEffect(i);\n const r = ((o = this._scene) == null ? void 0 : o.getViewMatrix()) || O.IdentityReadOnly;\n if (s.setMatrix(\"view\", r), s.setMatrix(\"projection\", this.defaultProjectionMatrix ?? this._scene.getProjectionMatrix()), s.setTexture(\"diffuseSampler\", this.particleTexture), s.setVector2(\"translationPivot\", this.translationPivot), s.setVector3(\"worldOffset\", this.worldOffset), this.isLocal && s.setMatrix(\"emitterWM\", t), this._colorGradientsTexture ? s.setTexture(\"colorGradientSampler\", this._colorGradientsTexture) : s.setDirectColor4(\"colorDead\", this.colorDead), this._isAnimationSheetEnabled && this.particleTexture) {\n const u = this.particleTexture.getBaseSize();\n s.setFloat3(\"sheetInfos\", this.spriteCellWidth / u.width, this.spriteCellHeight / u.height, u.width / this.spriteCellWidth);\n }\n if (this._isBillboardBased && this._scene) {\n const u = this._scene.activeCamera;\n s.setVector3(\"eyePosition\", u.globalPosition);\n }\n const n = s.defines;\n if (this._scene && (Tn(s, this, this._scene), this.applyFog && il(this._scene, void 0, s)), n.indexOf(\"#define BILLBOARDMODE_ALL\") >= 0) {\n const u = r.clone();\n u.invert(), s.setMatrix(\"invView\", u);\n }\n switch (this.useLogarithmicDepth && this._scene && Oa(n, s, this._scene), this._imageProcessingConfiguration && !this._imageProcessingConfiguration.applyByPostProcess && this._imageProcessingConfiguration.bind(s), e) {\n case oi.BLENDMODE_ADD:\n this._engine.setAlphaMode(1);\n break;\n case oi.BLENDMODE_ONEONE:\n this._engine.setAlphaMode(6);\n break;\n case oi.BLENDMODE_STANDARD:\n this._engine.setAlphaMode(2);\n break;\n case oi.BLENDMODE_MULTIPLY:\n this._engine.setAlphaMode(4);\n break;\n }\n return this._platform.bindDrawBuffers(this._targetIndex, s, (l = this._scene) != null && l.forceWireframe ? this._linesIndexBufferUseInstancing : null), this._onBeforeDrawParticlesObservable && this._onBeforeDrawParticlesObservable.notifyObservers(s), (h = this._scene) != null && h.forceWireframe ? this._engine.drawElementsType(6, 0, 10, this._currentActiveCount) : this._engine.drawArraysType(7, 0, 4, this._currentActiveCount), this._engine.setAlphaMode(0), (c = this._scene) != null && c.forceWireframe && this._engine.unbindInstanceAttributes(), this._currentActiveCount;\n }\n /** @internal */\n _update(e) {\n if (!this.emitter || !this._targetBuffer || !this._recreateUpdateEffect() || this._rebuildingAfterContextLost)\n return;\n if (!e)\n if (this.emitter.position)\n e = this.emitter.getWorldMatrix();\n else {\n const i = this.emitter;\n e = w.Matrix[0], O.TranslationToRef(i.x, i.y, i.z, e);\n }\n this._platform.preUpdateParticleBuffer(), this._updateBuffer.setFloat(\"currentCount\", this._currentActiveCount), this._updateBuffer.setFloat(\"timeDelta\", this._timeDelta), this._updateBuffer.setFloat(\"stopFactor\", this._stopped ? 0 : 1), this._updateBuffer.setInt(\"randomTextureSize\", this._randomTextureSize), this._updateBuffer.setFloat2(\"lifeTime\", this.minLifeTime, this.maxLifeTime), this._updateBuffer.setFloat2(\"emitPower\", this.minEmitPower, this.maxEmitPower), this._colorGradientsTexture || (this._updateBuffer.setDirectColor4(\"color1\", this.color1), this._updateBuffer.setDirectColor4(\"color2\", this.color2)), this._updateBuffer.setFloat2(\"sizeRange\", this.minSize, this.maxSize), this._updateBuffer.setFloat4(\"scaleRange\", this.minScaleX, this.maxScaleX, this.minScaleY, this.maxScaleY), this._updateBuffer.setFloat4(\"angleRange\", this.minAngularSpeed, this.maxAngularSpeed, this.minInitialRotation, this.maxInitialRotation), this._updateBuffer.setVector3(\"gravity\", this.gravity), this._limitVelocityGradientsTexture && this._updateBuffer.setFloat(\"limitVelocityDamping\", this.limitVelocityDamping), this.particleEmitterType && this.particleEmitterType.applyToShader(this._updateBuffer), this._isAnimationSheetEnabled && this._updateBuffer.setFloat4(\"cellInfos\", this.startSpriteCellID, this.endSpriteCellID, this.spriteCellChangeSpeed, this.spriteCellLoop ? 1 : 0), this.noiseTexture && this._updateBuffer.setVector3(\"noiseStrength\", this.noiseStrength), this.isLocal || this._updateBuffer.setMatrix(\"emitterWM\", e), this._platform.updateParticleBuffer(this._targetIndex, this._targetBuffer, this._currentActiveCount), this._targetIndex++, this._targetIndex === 2 && (this._targetIndex = 0);\n const t = this._sourceBuffer;\n this._sourceBuffer = this._targetBuffer, this._targetBuffer = t;\n }\n /**\n * Renders the particle system in its current state\n * @param preWarm defines if the system should only update the particles but not render them\n * @param forceUpdateOnly if true, force to only update the particles and never display them (meaning, even if preWarm=false, when forceUpdateOnly=true the particles won't be displayed)\n * @returns the current number of particles\n */\n render(e = !1, t = !1) {\n if (!this._started || !this.isReady())\n return 0;\n if (!e && this._scene) {\n if (!this._preWarmDone && this.preWarmCycles) {\n for (let n = 0; n < this.preWarmCycles; n++)\n this.animate(!0), this.render(!0, !0);\n this._preWarmDone = !0;\n }\n if (this._currentRenderId === this._scene.getRenderId() && (!this._scene.activeCamera || this._scene.activeCamera && this._currentRenderingCameraUniqueId === this._scene.activeCamera.uniqueId))\n return 0;\n this._currentRenderId = this._scene.getRenderId(), this._scene.activeCamera && (this._currentRenderingCameraUniqueId = this._scene.activeCamera.uniqueId);\n }\n if (this._initialize(), this._accumulatedCount += this.emitRate * this._timeDelta, this._accumulatedCount > 1) {\n const n = this._accumulatedCount | 0;\n this._accumulatedCount -= n, this._currentActiveCount += n;\n }\n if (this._currentActiveCount = Math.min(this._maxActiveParticleCount, this._currentActiveCount), !this._currentActiveCount)\n return 0;\n let i;\n if (this.emitter.position)\n i = this.emitter.getWorldMatrix();\n else {\n const n = this.emitter;\n i = w.Matrix[0], O.TranslationToRef(n.x, n.y, n.z, i);\n }\n const s = this._engine;\n this.updateInAnimate || this._update(i);\n let r = 0;\n return !e && !t && (s.setState(!1), this.forceDepthWrite && s.setDepthWrite(!0), this.blendMode === oi.BLENDMODE_MULTIPLYADD ? r = this._render(oi.BLENDMODE_MULTIPLY, i) + this._render(oi.BLENDMODE_ADD, i) : r = this._render(this.blendMode, i), this._engine.setAlphaMode(0)), r;\n }\n /**\n * Rebuilds the particle system\n */\n rebuild() {\n const e = () => {\n !this._recreateUpdateEffect() || !this._platform.isUpdateBufferReady() ? setTimeout(e, 10) : (this._initialize(!0), this._rebuildingAfterContextLost = !1);\n };\n this._createIndexBuffer(), this._cachedUpdateDefines = \"\", this._platform.contextLost(), this._rebuildingAfterContextLost = !0, e();\n }\n _releaseBuffers() {\n this._buffer0 && (this._buffer0.dispose(), this._buffer0 = null), this._buffer1 && (this._buffer1.dispose(), this._buffer1 = null), this._spriteBuffer && (this._spriteBuffer.dispose(), this._spriteBuffer = null), this._platform.releaseBuffers();\n }\n /**\n * Disposes the particle system and free the associated resources\n * @param disposeTexture defines if the particule texture must be disposed as well (true by default)\n */\n dispose(e = !0) {\n for (const t in this._drawWrappers)\n this._drawWrappers[t].dispose();\n if (this._drawWrappers = {}, this._scene) {\n const t = this._scene.particleSystems.indexOf(this);\n t > -1 && this._scene.particleSystems.splice(t, 1);\n }\n this._releaseBuffers(), this._platform.releaseVertexBuffers();\n for (let t = 0; t < this._renderVertexBuffers.length; ++t) {\n const i = this._renderVertexBuffers[t];\n for (const s in i)\n i[s].dispose();\n }\n this._renderVertexBuffers = [], this._colorGradientsTexture && (this._colorGradientsTexture.dispose(), this._colorGradientsTexture = null), this._sizeGradientsTexture && (this._sizeGradientsTexture.dispose(), this._sizeGradientsTexture = null), this._angularSpeedGradientsTexture && (this._angularSpeedGradientsTexture.dispose(), this._angularSpeedGradientsTexture = null), this._velocityGradientsTexture && (this._velocityGradientsTexture.dispose(), this._velocityGradientsTexture = null), this._limitVelocityGradientsTexture && (this._limitVelocityGradientsTexture.dispose(), this._limitVelocityGradientsTexture = null), this._dragGradientsTexture && (this._dragGradientsTexture.dispose(), this._dragGradientsTexture = null), this._randomTexture && (this._randomTexture.dispose(), this._randomTexture = null), this._randomTexture2 && (this._randomTexture2.dispose(), this._randomTexture2 = null), e && this.particleTexture && (this.particleTexture.dispose(), this.particleTexture = null), e && this.noiseTexture && (this.noiseTexture.dispose(), this.noiseTexture = null), this.onStoppedObservable.clear(), this.onDisposeObservable.notifyObservers(this), this.onDisposeObservable.clear();\n }\n /**\n * Clones the particle system.\n * @param name The name of the cloned object\n * @param newEmitter The new emitter to use\n * @param cloneTexture Also clone the textures if true\n * @returns the cloned particle system\n */\n clone(e, t, i = !1) {\n const s = { ...this._customWrappers };\n let r = null;\n const n = this._engine;\n if (n.createEffectForParticles && this.customShader != null) {\n r = this.customShader;\n const h = r.shaderOptions.defines.length > 0 ? r.shaderOptions.defines.join(`\n`) : \"\";\n s[0] = n.createEffectForParticles(r.shaderPath.fragmentElement, r.shaderOptions.uniforms, r.shaderOptions.samplers, h, void 0, void 0, void 0, this);\n }\n const o = this.serialize(i), l = Jn.Parse(o, this._scene || this._engine, this._rootUrl);\n return l.name = e, l.customShader = r, l._customWrappers = s, t === void 0 && (t = this.emitter), this.noiseTexture && (l.noiseTexture = this.noiseTexture.clone()), l.emitter = t, l;\n }\n /**\n * Serializes the particle system to a JSON object\n * @param serializeTexture defines if the texture must be serialized as well\n * @returns the JSON object\n */\n serialize(e = !1) {\n const t = {};\n return oi._Serialize(t, this, e), t.activeParticleCount = this.activeParticleCount, t.randomTextureSize = this._randomTextureSize, t.customShader = this.customShader, t;\n }\n /**\n * Parses a JSON object to create a GPU particle system.\n * @param parsedParticleSystem The JSON object to parse\n * @param sceneOrEngine The scene or the engine to create the particle system in\n * @param rootUrl The root url to use to load external dependencies like texture\n * @param doNotStart Ignore the preventAutoStart attribute and does not start\n * @param capacity defines the system capacity (if null or undefined the sotred capacity will be used)\n * @returns the parsed GPU particle system\n */\n static Parse(e, t, i, s = !1, r) {\n const n = e.name;\n let o, l;\n t instanceof we ? o = t : (l = t, o = l.getEngine());\n const h = new Jn(n, { capacity: r || e.capacity, randomTextureSize: e.randomTextureSize }, t, null, e.isAnimationSheetEnabled);\n if (h._rootUrl = i, e.customShader && o.createEffectForParticles) {\n const c = e.customShader, u = c.shaderOptions.defines.length > 0 ? c.shaderOptions.defines.join(`\n`) : \"\", d = o.createEffectForParticles(c.shaderPath.fragmentElement, c.shaderOptions.uniforms, c.shaderOptions.samplers, u, void 0, void 0, void 0, h);\n h.setCustomEffect(d, 0), h.customShader = c;\n }\n return e.id && (h.id = e.id), e.activeParticleCount && (h.activeParticleCount = e.activeParticleCount), oi._Parse(e, h, t, i), e.preventAutoStart && (h.preventAutoStart = e.preventAutoStart), !s && !h.preventAutoStart && h.start(), h;\n }\n}\nclass ac {\n constructor() {\n this._emitterNodeIsOwned = !0, this.systems = [];\n }\n /**\n * Gets or sets the emitter node used with this set\n */\n get emitterNode() {\n return this._emitterNode;\n }\n set emitterNode(e) {\n this._emitterNodeIsOwned && this._emitterNode && (this._emitterNode.dispose && this._emitterNode.dispose(), this._emitterNodeIsOwned = !1);\n for (const t of this.systems)\n t.emitter = e;\n this._emitterNode = e;\n }\n /**\n * Creates a new emitter mesh as a sphere\n * @param options defines the options used to create the sphere\n * @param options.diameter\n * @param options.segments\n * @param options.color\n * @param renderingGroupId defines the renderingGroupId to use for the sphere\n * @param scene defines the hosting scene\n */\n setEmitterAsSphere(e, t, i) {\n this._emitterNodeIsOwned && this._emitterNode && this._emitterNode.dispose && this._emitterNode.dispose(), this._emitterNodeIsOwned = !0, this._emitterCreationOptions = {\n kind: \"Sphere\",\n options: e,\n renderingGroupId: t\n };\n const s = Tr(\"emitterSphere\", { diameter: e.diameter, segments: e.segments }, i);\n s.renderingGroupId = t;\n const r = new ye(\"emitterSphereMaterial\", i);\n r.emissiveColor = e.color, s.material = r;\n for (const n of this.systems)\n n.emitter = s;\n this._emitterNode = s;\n }\n /**\n * Starts all particle systems of the set\n * @param emitter defines an optional mesh to use as emitter for the particle systems\n */\n start(e) {\n for (const t of this.systems)\n e && (t.emitter = e), t.start();\n }\n /**\n * Release all associated resources\n */\n dispose() {\n for (const e of this.systems)\n e.dispose();\n this.systems.length = 0, this._emitterNode && (this._emitterNode.dispose && this._emitterNode.dispose(), this._emitterNode = null);\n }\n /**\n * Serialize the set into a JSON compatible object\n * @param serializeTexture defines if the texture must be serialized as well\n * @returns a JSON compatible representation of the set\n */\n serialize(e = !1) {\n const t = {};\n t.systems = [];\n for (const i of this.systems)\n t.systems.push(i.serialize(e));\n return this._emitterNode && (t.emitter = this._emitterCreationOptions), t;\n }\n /**\n * Parse a new ParticleSystemSet from a serialized source\n * @param data defines a JSON compatible representation of the set\n * @param scene defines the hosting scene\n * @param gpu defines if we want GPU particles or CPU particles\n * @param capacity defines the system capacity (if null or undefined the sotred capacity will be used)\n * @returns a new ParticleSystemSet\n */\n static Parse(e, t, i = !1, s) {\n const r = new ac(), n = this.BaseAssetsUrl + \"/textures/\";\n t = t || Me.LastCreatedScene;\n for (const o of e.systems)\n r.systems.push(i ? Jn.Parse(o, t, n, !0, s) : oi.Parse(o, t, n, !0, s));\n if (e.emitter) {\n const o = e.emitter.options;\n switch (e.emitter.kind) {\n case \"Sphere\":\n r.setEmitterAsSphere({\n diameter: o.diameter,\n segments: o.segments,\n color: re.FromArray(o.color)\n }, e.emitter.renderingGroupId, t);\n break;\n }\n }\n return r;\n }\n}\nac.BaseAssetsUrl = \"https://assets.babylonjs.com/particles\";\nclass oc {\n /**\n * Create a default particle system that you can tweak\n * @param emitter defines the emitter to use\n * @param capacity defines the system capacity (default is 500 particles)\n * @param scene defines the hosting scene\n * @param useGPU defines if a GPUParticleSystem must be created (default is false)\n * @returns the new Particle system\n */\n static CreateDefault(e, t = 500, i, s = !1) {\n let r;\n return s ? r = new Jn(\"default system\", { capacity: t }, i) : r = new oi(\"default system\", t, i), r.emitter = e, r.particleTexture = new X(\"https://assets.babylonjs.com/textures/flare.png\", r.getScene()), r.createConeEmitter(0.1, Math.PI / 4), r.color1 = new Ce(1, 1, 1, 1), r.color2 = new Ce(1, 1, 1, 1), r.colorDead = new Ce(1, 1, 1, 0), r.minSize = 0.1, r.maxSize = 0.1, r.minEmitPower = 2, r.maxEmitPower = 2, r.updateSpeed = 1 / 60, r.emitRate = 30, r;\n }\n /**\n * This is the main static method (one-liner) of this helper to create different particle systems\n * @param type This string represents the type to the particle system to create\n * @param scene The scene where the particle system should live\n * @param gpu If the system will use gpu\n * @param capacity defines the system capacity (if null or undefined the sotred capacity will be used)\n * @returns the ParticleSystemSet created\n */\n static CreateAsync(e, t, i = !1, s) {\n t || (t = Me.LastCreatedScene);\n const r = {};\n return t.addPendingData(r), new Promise((n, o) => {\n if (i && !Jn.IsSupported)\n return t.removePendingData(r), o(\"Particle system with GPU is not supported.\");\n J.LoadFile(`${oc.BaseAssetsUrl}/systems/${e}.json`, (l) => {\n t.removePendingData(r);\n const h = JSON.parse(l.toString());\n return n(ac.Parse(h, t, i, s));\n }, void 0, void 0, void 0, () => (t.removePendingData(r), o(`An error occurred with the creation of your particle system. Check if your type '${e}' exists.`)));\n });\n }\n /**\n * Static function used to export a particle system to a ParticleSystemSet variable.\n * Please note that the emitter shape is not exported\n * @param systems defines the particle systems to export\n * @returns the created particle system set\n */\n static ExportSet(e) {\n const t = new ac();\n for (const i of e)\n t.systems.push(i);\n return t;\n }\n /**\n * Creates a particle system from a snippet saved in a remote file\n * @param name defines the name of the particle system to create (can be null or empty to use the one from the json data)\n * @param url defines the url to load from\n * @param scene defines the hosting scene\n * @param gpu If the system will use gpu\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @param capacity defines the system capacity (if null or undefined the sotred capacity will be used)\n * @returns a promise that will resolve to the new particle system\n */\n static ParseFromFileAsync(e, t, i, s = !1, r = \"\", n) {\n return new Promise((o, l) => {\n const h = new Di();\n h.addEventListener(\"readystatechange\", () => {\n if (h.readyState == 4)\n if (h.status == 200) {\n const c = JSON.parse(h.responseText);\n let u;\n s ? u = Jn.Parse(c, i, r, !1, n) : u = oi.Parse(c, i, r, !1, n), e && (u.name = e), o(u);\n } else\n l(\"Unable to load the particle system\");\n }), h.open(\"GET\", t), h.send();\n });\n }\n /**\n * Creates a particle system from a snippet saved by the particle system editor\n * @param snippetId defines the snippet to load (can be set to _BLANK to create a default one)\n * @param scene defines the hosting scene\n * @param gpu If the system will use gpu\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @param capacity defines the system capacity (if null or undefined the sotred capacity will be used)\n * @returns a promise that will resolve to the new particle system\n */\n static ParseFromSnippetAsync(e, t, i = !1, s = \"\", r) {\n if (e === \"_BLANK\") {\n const n = this.CreateDefault(null);\n return n.start(), Promise.resolve(n);\n }\n return new Promise((n, o) => {\n const l = new Di();\n l.addEventListener(\"readystatechange\", () => {\n if (l.readyState == 4)\n if (l.status == 200) {\n const h = JSON.parse(JSON.parse(l.responseText).jsonPayload), c = JSON.parse(h.particleSystem);\n let u;\n i ? u = Jn.Parse(c, t, s, !1, r) : u = oi.Parse(c, t, s, !1, r), u.snippetId = e, n(u);\n } else\n o(\"Unable to load the snippet \" + e);\n }), l.open(\"GET\", this.SnippetUrl + \"/\" + e.replace(/#/g, \"/\")), l.send();\n });\n }\n}\noc.BaseAssetsUrl = ac.BaseAssetsUrl;\noc.SnippetUrl = \"https://snippet.babylonjs.com\";\noc.CreateFromSnippetAsync = oc.ParseFromSnippetAsync;\nqi.AddParser(me.NAME_PARTICLESYSTEM, (a, e, t, i) => {\n const s = qi.GetIndividualParser(me.NAME_PARTICLESYSTEM);\n if (s && a.particleSystems !== void 0 && a.particleSystems !== null)\n for (let r = 0, n = a.particleSystems.length; r < n; r++) {\n const o = a.particleSystems[r];\n t.particleSystems.push(s(o, e, i));\n }\n});\nqi.AddIndividualParser(me.NAME_PARTICLESYSTEM, (a, e, t) => a.activeParticleCount ? Jn.Parse(a, e, t) : oi.Parse(a, e, t));\nwe.prototype.createEffectForParticles = function(a, e = [], t = [], i = \"\", s, r, n, o, l = 0) {\n let h = [], c = [];\n const u = [];\n return o ? o.fillUniformsAttributesAndSamplerNames(c, h, u) : (h = oi._GetAttributeNamesOrOptions(), c = oi._GetEffectCreationOptions()), i.indexOf(\" BILLBOARD\") === -1 && (i += `\n#define BILLBOARD\n`), o != null && o.isAnimationSheetEnabled && i.indexOf(\" ANIMATESHEET\") === -1 && (i += `\n#define ANIMATESHEET\n`), t.indexOf(\"diffuseSampler\") === -1 && t.push(\"diffuseSampler\"), this.createEffect({\n vertex: (o == null ? void 0 : o.vertexShaderName) ?? \"particles\",\n fragmentElement: a\n }, h, c.concat(e), u.concat(t), i, s, r, n, void 0, l);\n};\nH.prototype.getEmittedParticleSystems = function() {\n const a = [];\n for (let e = 0; e < this.getScene().particleSystems.length; e++) {\n const t = this.getScene().particleSystems[e];\n t.emitter === this && a.push(t);\n }\n return a;\n};\nH.prototype.getHierarchyEmittedParticleSystems = function() {\n const a = [], e = this.getDescendants();\n e.push(this);\n for (let t = 0; t < this.getScene().particleSystems.length; t++) {\n const i = this.getScene().particleSystems[t], s = i.emitter;\n s.position && e.indexOf(s) !== -1 && a.push(i);\n }\n return a;\n};\nclass VG {\n /**\n * Creates a Point Cloud object.\n * Don't create particles manually, use instead the PCS internal tools like _addParticle()\n * @param particleIndex (integer) is the particle index in the PCS pool. It's also the particle identifier.\n * @param group (PointsGroup) is the group the particle belongs to\n * @param groupId (integer) is the group identifier in the PCS.\n * @param idxInGroup (integer) is the index of the particle in the current point group (ex: the 10th point of addPoints(30))\n * @param pcs defines the PCS it is associated to\n */\n constructor(e, t, i, s, r) {\n this.idx = 0, this.color = new Ce(1, 1, 1, 1), this.position = g.Zero(), this.rotation = g.Zero(), this.uv = new Q(0, 0), this.velocity = g.Zero(), this.pivot = g.Zero(), this.translateFromPivot = !1, this._pos = 0, this._ind = 0, this.groupId = 0, this.idxInGroup = 0, this._stillInvisible = !1, this._rotationMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1], this.parentId = null, this._globalPosition = g.Zero(), this.idx = e, this._group = t, this.groupId = i, this.idxInGroup = s, this._pcs = r;\n }\n /**\n * get point size\n */\n get size() {\n return this.size;\n }\n /**\n * Set point size\n */\n set size(e) {\n this.size = e;\n }\n /**\n * Legacy support, changed quaternion to rotationQuaternion\n */\n get quaternion() {\n return this.rotationQuaternion;\n }\n /**\n * Legacy support, changed quaternion to rotationQuaternion\n */\n set quaternion(e) {\n this.rotationQuaternion = e;\n }\n /**\n * Returns a boolean. True if the particle intersects a mesh, else false\n * The intersection is computed on the particle position and Axis Aligned Bounding Box (AABB) or Sphere\n * @param target is the object (point or mesh) what the intersection is computed against\n * @param isSphere is boolean flag when false (default) bounding box of mesh is used, when true the bounding sphere is used\n * @returns true if it intersects\n */\n intersectsMesh(e, t) {\n if (!e.hasBoundingInfo)\n return !1;\n if (!this._pcs.mesh)\n throw new Error(\"Point Cloud System doesnt contain the Mesh\");\n if (t)\n return e.getBoundingInfo().boundingSphere.intersectsPoint(this.position.add(this._pcs.mesh.position));\n const i = e.getBoundingInfo().boundingBox, s = i.maximumWorld.x, r = i.minimumWorld.x, n = i.maximumWorld.y, o = i.minimumWorld.y, l = i.maximumWorld.z, h = i.minimumWorld.z, c = this.position.x + this._pcs.mesh.position.x, u = this.position.y + this._pcs.mesh.position.y, d = this.position.z + this._pcs.mesh.position.z;\n return r <= c && c <= s && o <= u && u <= n && h <= d && d <= l;\n }\n /**\n * get the rotation matrix of the particle\n * @internal\n */\n getRotationMatrix(e) {\n let t;\n if (this.rotationQuaternion)\n t = this.rotationQuaternion;\n else {\n t = w.Quaternion[0];\n const i = this.rotation;\n se.RotationYawPitchRollToRef(i.y, i.x, i.z, t);\n }\n t.toRotationMatrix(e);\n }\n}\nclass tg {\n /**\n * Get or set the groupId\n * @deprecated Please use groupId instead\n */\n get groupID() {\n return this.groupId;\n }\n set groupID(e) {\n this.groupId = e;\n }\n /**\n * Creates a points group object. This is an internal reference to produce particles for the PCS.\n * PCS internal tool, don't use it manually.\n * @internal\n */\n constructor(e, t) {\n this.groupId = e, this._positionFunction = t;\n }\n}\nvar KE;\n(function(a) {\n a[a.Color = 2] = \"Color\", a[a.UV = 1] = \"UV\", a[a.Random = 0] = \"Random\", a[a.Stated = 3] = \"Stated\";\n})(KE || (KE = {}));\nclass $K {\n /**\n * Gets the particle positions computed by the Point Cloud System\n */\n get positions() {\n return this._positions32;\n }\n /**\n * Gets the particle colors computed by the Point Cloud System\n */\n get colors() {\n return this._colors32;\n }\n /**\n * Gets the particle uvs computed by the Point Cloud System\n */\n get uvs() {\n return this._uvs32;\n }\n /**\n * Creates a PCS (Points Cloud System) object\n * @param name (String) is the PCS name, this will be the underlying mesh name\n * @param pointSize (number) is the size for each point. Has no effect on a WebGPU engine.\n * @param scene (Scene) is the scene in which the PCS is added\n * @param options defines the options of the PCS e.g.\n * * updatable (optional boolean, default true) : if the PCS must be updatable or immutable\n */\n constructor(e, t, i, s) {\n this.particles = new Array(), this.nbParticles = 0, this.counter = 0, this.vars = {}, this._promises = [], this._positions = new Array(), this._indices = new Array(), this._normals = new Array(), this._colors = new Array(), this._uvs = new Array(), this._updatable = !0, this._isVisibilityBoxLocked = !1, this._alwaysVisible = !1, this._groups = new Array(), this._groupCounter = 0, this._computeParticleColor = !0, this._computeParticleTexture = !0, this._computeParticleRotation = !0, this._computeBoundingBox = !1, this._isReady = !1, this.name = e, this._size = t, this._scene = i || Me.LastCreatedScene, s && s.updatable !== void 0 ? this._updatable = s.updatable : this._updatable = !0;\n }\n /**\n * Builds the PCS underlying mesh. Returns a standard Mesh.\n * If no points were added to the PCS, the returned mesh is just a single point.\n * @param material The material to use to render the mesh. If not provided, will create a default one\n * @returns a promise for the created mesh\n */\n buildMeshAsync(e) {\n return Promise.all(this._promises).then(() => (this._isReady = !0, this._buildMesh(e)));\n }\n /**\n * @internal\n */\n _buildMesh(e) {\n this.nbParticles === 0 && this.addPoints(1), this._positions32 = new Float32Array(this._positions), this._uvs32 = new Float32Array(this._uvs), this._colors32 = new Float32Array(this._colors);\n const t = new ge();\n t.set(this._positions32, R.PositionKind), this._uvs32.length > 0 && t.set(this._uvs32, R.UVKind);\n let i = 0;\n this._colors32.length > 0 && (i = 1, t.set(this._colors32, R.ColorKind));\n const s = new H(this.name, this._scene);\n t.applyToMesh(s, this._updatable), this.mesh = s, this._positions = null, this._uvs = null, this._colors = null, this._updatable || (this.particles.length = 0);\n let r = e;\n return r || (r = new ye(\"point cloud material\", this._scene), r.emissiveColor = new re(i, i, i), r.disableLighting = !0, r.pointsCloud = !0, r.pointSize = this._size), s.material = r, new Promise((n) => n(s));\n }\n // adds a new particle object in the particles array\n _addParticle(e, t, i, s) {\n const r = new VG(e, t, i, s, this);\n return this.particles.push(r), r;\n }\n _randomUnitVector(e) {\n e.position = new g(Math.random(), Math.random(), Math.random()), e.color = new Ce(1, 1, 1, 1);\n }\n _getColorIndicesForCoord(e, t, i, s) {\n const r = e._groupImageData, n = i * (s * 4) + t * 4, o = [n, n + 1, n + 2, n + 3], l = o[0], h = o[1], c = o[2], u = o[3], d = r[l], f = r[h], p = r[c], _ = r[u];\n return new Ce(d / 255, f / 255, p / 255, _);\n }\n _setPointsColorOrUV(e, t, i, s, r, n, o, l) {\n l = l ?? 0, i && e.updateFacetData();\n const c = 2 * e.getBoundingInfo().boundingSphere.radius;\n let u = e.getVerticesData(R.PositionKind);\n const d = e.getIndices(), f = e.getVerticesData(R.UVKind + (l ? l + 1 : \"\")), p = e.getVerticesData(R.ColorKind), _ = g.Zero();\n e.computeWorldMatrix();\n const m = e.getWorldMatrix();\n if (!m.isIdentity()) {\n u = u.slice(0);\n for (let tr = 0; tr < u.length / 3; tr++)\n g.TransformCoordinatesFromFloatsToRef(u[3 * tr], u[3 * tr + 1], u[3 * tr + 2], m, _), u[3 * tr] = _.x, u[3 * tr + 1] = _.y, u[3 * tr + 2] = _.z;\n }\n let x = 0, v = 0, T = 0, E = 0, b = 0, S = 0, C = 0, P = 0, N = 0, F = 0, $ = 0, j = 0, ne = 0;\n const te = g.Zero(), le = g.Zero(), _e = g.Zero(), Se = g.Zero(), Ie = g.Zero();\n let de = 0, Y = 0, M = 0, k = 0, W = 0, V = 0;\n const K = Q.Zero(), ie = Q.Zero(), fe = Q.Zero(), pe = Q.Zero(), ve = Q.Zero();\n let Ue = 0, ht = 0, Ee = 0, Je = 0, St = 0, Yt = 0, yt = 0, Ui = 0, is = 0, fr = 0, pr = 0, Er = 0;\n const gi = Ne.Zero(), Ni = Ne.Zero(), hr = Ne.Zero(), bt = Ne.Zero(), Dt = Ne.Zero();\n let lt = 0, Ht = 0;\n o = o || 0;\n let yi, zi, rt = new Ne(0, 0, 0, 0), gt = g.Zero(), ki = g.Zero(), Kr = g.Zero(), gs = 0, Vn = g.Zero(), fn = 0, Yf = 0;\n const Ql = new nt(g.Zero(), new g(1, 0, 0));\n let Bc, Zl = g.Zero();\n for (let tr = 0; tr < d.length / 3; tr++) {\n v = d[3 * tr], T = d[3 * tr + 1], E = d[3 * tr + 2], b = u[3 * v], S = u[3 * v + 1], C = u[3 * v + 2], P = u[3 * T], N = u[3 * T + 1], F = u[3 * T + 2], $ = u[3 * E], j = u[3 * E + 1], ne = u[3 * E + 2], te.set(b, S, C), le.set(P, N, F), _e.set($, j, ne), le.subtractToRef(te, Se), _e.subtractToRef(le, Ie), f && (de = f[2 * v], Y = f[2 * v + 1], M = f[2 * T], k = f[2 * T + 1], W = f[2 * E], V = f[2 * E + 1], K.set(de, Y), ie.set(M, k), fe.set(W, V), ie.subtractToRef(K, pe), fe.subtractToRef(ie, ve)), p && s && (Ue = p[4 * v], ht = p[4 * v + 1], Ee = p[4 * v + 2], Je = p[4 * v + 3], St = p[4 * T], Yt = p[4 * T + 1], yt = p[4 * T + 2], Ui = p[4 * T + 3], is = p[4 * E], fr = p[4 * E + 1], pr = p[4 * E + 2], Er = p[4 * E + 3], gi.set(Ue, ht, Ee, Je), Ni.set(St, Yt, yt, Ui), hr.set(is, fr, pr, Er), Ni.subtractToRef(gi, bt), hr.subtractToRef(Ni, Dt));\n let Vc, Ua, jf, Uc, Kf, la, ka, Jl;\n const kc = new re(0, 0, 0), eh = new re(0, 0, 0);\n let Ga, ae;\n for (let Z = 0; Z < t._groupDensity[tr]; Z++)\n x = this.particles.length, this._addParticle(x, t, this._groupCounter, tr + Z), ae = this.particles[x], lt = Math.sqrt(Re.RandomRange(0, 1)), Ht = Re.RandomRange(0, 1), yi = te.add(Se.scale(lt)).add(Ie.scale(lt * Ht)), i && (gt = e.getFacetNormal(tr).normalize().scale(-1), ki = Se.clone().normalize(), Kr = g.Cross(gt, ki), gs = Re.RandomRange(0, 2 * Math.PI), Vn = ki.scale(Math.cos(gs)).add(Kr.scale(Math.sin(gs))), gs = Re.RandomRange(0.1, Math.PI / 2), Zl = Vn.scale(Math.cos(gs)).add(gt.scale(Math.sin(gs))), Ql.origin = yi.add(Zl.scale(1e-5)), Ql.direction = Zl, Ql.length = c, Bc = Ql.intersectsMesh(e), Bc.hit && (Yf = Bc.pickedPoint.subtract(yi).length(), fn = Re.RandomRange(0, 1) * Yf, yi.addInPlace(Zl.scale(fn)))), ae.position = yi.clone(), this._positions.push(ae.position.x, ae.position.y, ae.position.z), s !== void 0 ? f && (zi = K.add(pe.scale(lt)).add(ve.scale(lt * Ht)), s ? r && t._groupImageData !== null ? (Vc = t._groupImgWidth, Ua = t._groupImgHeight, Ga = this._getColorIndicesForCoord(t, Math.round(zi.x * Vc), Math.round(zi.y * Ua), Vc), ae.color = Ga, this._colors.push(Ga.r, Ga.g, Ga.b, Ga.a)) : p ? (rt = gi.add(bt.scale(lt)).add(Dt.scale(lt * Ht)), ae.color = new Ce(rt.x, rt.y, rt.z, rt.w), this._colors.push(rt.x, rt.y, rt.z, rt.w)) : (rt = gi.set(Math.random(), Math.random(), Math.random(), 1), ae.color = new Ce(rt.x, rt.y, rt.z, rt.w), this._colors.push(rt.x, rt.y, rt.z, rt.w)) : (ae.uv = zi.clone(), this._uvs.push(ae.uv.x, ae.uv.y))) : (n ? (kc.set(n.r, n.g, n.b), jf = Re.RandomRange(-o, o), Uc = Re.RandomRange(-o, o), Jl = kc.toHSV(), Kf = Jl.r, la = Jl.g + jf, ka = Jl.b + Uc, la < 0 && (la = 0), la > 1 && (la = 1), ka < 0 && (ka = 0), ka > 1 && (ka = 1), re.HSVtoRGBToRef(Kf, la, ka, eh), rt.set(eh.r, eh.g, eh.b, 1)) : rt = gi.set(Math.random(), Math.random(), Math.random(), 1), ae.color = new Ce(rt.x, rt.y, rt.z, rt.w), this._colors.push(rt.x, rt.y, rt.z, rt.w));\n }\n }\n // stores mesh texture in dynamic texture for color pixel retrieval\n // when pointColor type is color for surface points\n _colorFromTexture(e, t, i) {\n if (e.material === null) {\n L.Warn(e.name + \"has no material.\"), t._groupImageData = null, this._setPointsColorOrUV(e, t, i, !0, !1);\n return;\n }\n const r = e.material.getActiveTextures();\n if (r.length === 0) {\n L.Warn(e.name + \"has no usable texture.\"), t._groupImageData = null, this._setPointsColorOrUV(e, t, i, !0, !1);\n return;\n }\n const n = e.clone();\n n.setEnabled(!1), this._promises.push(new Promise((o) => {\n Mt.WhenAllReady(r, () => {\n let l = t._textureNb;\n l < 0 && (l = 0), l > r.length - 1 && (l = r.length - 1);\n const h = () => {\n t._groupImgWidth = r[l].getSize().width, t._groupImgHeight = r[l].getSize().height, this._setPointsColorOrUV(n, t, i, !0, !0, void 0, void 0, r[l].coordinatesIndex), n.dispose(), o();\n };\n t._groupImageData = null;\n const c = r[l].readPixels();\n c ? c.then((u) => {\n t._groupImageData = u, h();\n }) : h();\n });\n }));\n }\n // calculates the point density per facet of a mesh for surface points\n _calculateDensity(e, t, i) {\n let s, r, n, o, l, h, c, u, d, f, p, _;\n const m = g.Zero(), x = g.Zero(), v = g.Zero(), T = g.Zero(), E = g.Zero(), b = g.Zero();\n let S;\n const C = [];\n let P = 0;\n const N = i.length / 3;\n for (let j = 0; j < N; j++)\n s = i[3 * j], r = i[3 * j + 1], n = i[3 * j + 2], o = t[3 * s], l = t[3 * s + 1], h = t[3 * s + 2], c = t[3 * r], u = t[3 * r + 1], d = t[3 * r + 2], f = t[3 * n], p = t[3 * n + 1], _ = t[3 * n + 2], m.set(o, l, h), x.set(c, u, d), v.set(f, p, _), x.subtractToRef(m, T), v.subtractToRef(x, E), g.CrossToRef(T, E, b), S = 0.5 * b.length(), P += S, C[j] = P;\n const F = new Array(N);\n let $ = e;\n for (let j = N - 1; j > 0; j--) {\n const ne = C[j];\n if (ne === 0)\n F[j] = 0;\n else {\n const le = (ne - C[j - 1]) / ne * $, _e = Math.floor(le), Se = le - _e, Ie = +(Math.random() < Se), de = _e + Ie;\n F[j] = de, $ -= de;\n }\n }\n return F[0] = $, F;\n }\n /**\n * Adds points to the PCS in random positions within a unit sphere\n * @param nb (positive integer) the number of particles to be created from this model\n * @param pointFunction is an optional javascript function to be called for each particle on PCS creation\n * @returns the number of groups in the system\n */\n addPoints(e, t = this._randomUnitVector) {\n const i = new tg(this._groupCounter, t);\n let s, r = this.nbParticles;\n for (let n = 0; n < e; n++)\n s = this._addParticle(r, i, this._groupCounter, n), i && i._positionFunction && i._positionFunction(s, r, n), this._positions.push(s.position.x, s.position.y, s.position.z), s.color && this._colors.push(s.color.r, s.color.g, s.color.b, s.color.a), s.uv && this._uvs.push(s.uv.x, s.uv.y), r++;\n return this.nbParticles += e, this._groupCounter++, this._groupCounter;\n }\n /**\n * Adds points to the PCS from the surface of the model shape\n * @param mesh is any Mesh object that will be used as a surface model for the points\n * @param nb (positive integer) the number of particles to be created from this model\n * @param colorWith determines whether a point is colored using color (default), uv, random, stated or none (invisible)\n * @param color (color4) to be used when colorWith is stated or color (number) when used to specify texture position\n * @param range (number from 0 to 1) to determine the variation in shape and tone for a stated color\n * @returns the number of groups in the system\n */\n addSurfacePoints(e, t, i, s, r) {\n let n = i || 0;\n (isNaN(n) || n < 0 || n > 3) && (n = 0);\n const o = e.getVerticesData(R.PositionKind), l = e.getIndices();\n this._groups.push(this._groupCounter);\n const h = new tg(this._groupCounter, null);\n switch (h._groupDensity = this._calculateDensity(t, o, l), n === 2 ? h._textureNb = s || 0 : s = s || new Ce(1, 1, 1, 1), n) {\n case 2:\n this._colorFromTexture(e, h, !1);\n break;\n case 1:\n this._setPointsColorOrUV(e, h, !1, !1, !1);\n break;\n case 0:\n this._setPointsColorOrUV(e, h, !1);\n break;\n case 3:\n this._setPointsColorOrUV(e, h, !1, void 0, void 0, s, r);\n break;\n }\n return this.nbParticles += t, this._groupCounter++, this._groupCounter - 1;\n }\n /**\n * Adds points to the PCS inside the model shape\n * @param mesh is any Mesh object that will be used as a surface model for the points\n * @param nb (positive integer) the number of particles to be created from this model\n * @param colorWith determines whether a point is colored using color (default), uv, random, stated or none (invisible)\n * @param color (color4) to be used when colorWith is stated or color (number) when used to specify texture position\n * @param range (number from 0 to 1) to determine the variation in shape and tone for a stated color\n * @returns the number of groups in the system\n */\n addVolumePoints(e, t, i, s, r) {\n let n = i || 0;\n (isNaN(n) || n < 0 || n > 3) && (n = 0);\n const o = e.getVerticesData(R.PositionKind), l = e.getIndices();\n this._groups.push(this._groupCounter);\n const h = new tg(this._groupCounter, null);\n switch (h._groupDensity = this._calculateDensity(t, o, l), n === 2 ? h._textureNb = s || 0 : s = s || new Ce(1, 1, 1, 1), n) {\n case 2:\n this._colorFromTexture(e, h, !0);\n break;\n case 1:\n this._setPointsColorOrUV(e, h, !0, !1, !1);\n break;\n case 0:\n this._setPointsColorOrUV(e, h, !0);\n break;\n case 3:\n this._setPointsColorOrUV(e, h, !0, void 0, void 0, s, r);\n break;\n }\n return this.nbParticles += t, this._groupCounter++, this._groupCounter - 1;\n }\n /**\n * Sets all the particles : this method actually really updates the mesh according to the particle positions, rotations, colors, textures, etc.\n * This method calls `updateParticle()` for each particle of the SPS.\n * For an animated SPS, it is usually called within the render loop.\n * @param start The particle index in the particle array where to start to compute the particle property values _(default 0)_\n * @param end The particle index in the particle array where to stop to compute the particle property values _(default nbParticle - 1)_\n * @param update If the mesh must be finally updated on this call after all the particle computations _(default true)_\n * @returns the PCS.\n */\n setParticles(e = 0, t = this.nbParticles - 1, i = !0) {\n var T, E;\n if (!this._updatable || !this._isReady)\n return this;\n this.beforeUpdateParticles(e, t, i);\n const s = w.Matrix[0], r = this.mesh, n = this._colors32, o = this._positions32, l = this._uvs32, h = w.Vector3, c = h[5].copyFromFloats(1, 0, 0), u = h[6].copyFromFloats(0, 1, 0), d = h[7].copyFromFloats(0, 0, 1), f = h[8].setAll(Number.MAX_VALUE), p = h[9].setAll(-Number.MAX_VALUE);\n O.IdentityToRef(s);\n let _ = 0;\n if ((T = this.mesh) != null && T.isFacetDataEnabled && (this._computeBoundingBox = !0), t = t >= this.nbParticles ? this.nbParticles - 1 : t, this._computeBoundingBox && (e != 0 || t != this.nbParticles - 1)) {\n const b = (E = this.mesh) == null ? void 0 : E.getBoundingInfo();\n b && (f.copyFrom(b.minimum), p.copyFrom(b.maximum));\n }\n _ = 0;\n let m = 0, x = 0, v = 0;\n for (let b = e; b <= t; b++) {\n const S = this.particles[b];\n _ = S.idx, m = 3 * _, x = 4 * _, v = 2 * _, this.updateParticle(S);\n const C = S._rotationMatrix, P = S.position, N = S._globalPosition;\n if (this._computeParticleRotation && S.getRotationMatrix(s), S.parentId !== null) {\n const k = this.particles[S.parentId], W = k._rotationMatrix, V = k._globalPosition, K = P.x * W[1] + P.y * W[4] + P.z * W[7], ie = P.x * W[0] + P.y * W[3] + P.z * W[6], fe = P.x * W[2] + P.y * W[5] + P.z * W[8];\n if (N.x = V.x + ie, N.y = V.y + K, N.z = V.z + fe, this._computeParticleRotation) {\n const pe = s.m;\n C[0] = pe[0] * W[0] + pe[1] * W[3] + pe[2] * W[6], C[1] = pe[0] * W[1] + pe[1] * W[4] + pe[2] * W[7], C[2] = pe[0] * W[2] + pe[1] * W[5] + pe[2] * W[8], C[3] = pe[4] * W[0] + pe[5] * W[3] + pe[6] * W[6], C[4] = pe[4] * W[1] + pe[5] * W[4] + pe[6] * W[7], C[5] = pe[4] * W[2] + pe[5] * W[5] + pe[6] * W[8], C[6] = pe[8] * W[0] + pe[9] * W[3] + pe[10] * W[6], C[7] = pe[8] * W[1] + pe[9] * W[4] + pe[10] * W[7], C[8] = pe[8] * W[2] + pe[9] * W[5] + pe[10] * W[8];\n }\n } else if (N.x = 0, N.y = 0, N.z = 0, this._computeParticleRotation) {\n const k = s.m;\n C[0] = k[0], C[1] = k[1], C[2] = k[2], C[3] = k[4], C[4] = k[5], C[5] = k[6], C[6] = k[8], C[7] = k[9], C[8] = k[10];\n }\n const $ = h[11];\n S.translateFromPivot ? $.setAll(0) : $.copyFrom(S.pivot);\n const j = h[0];\n j.copyFrom(S.position);\n const ne = j.x - S.pivot.x, te = j.y - S.pivot.y, le = j.z - S.pivot.z;\n let _e = ne * C[0] + te * C[3] + le * C[6], Se = ne * C[1] + te * C[4] + le * C[7], Ie = ne * C[2] + te * C[5] + le * C[8];\n _e += $.x, Se += $.y, Ie += $.z;\n const de = o[m] = N.x + c.x * _e + u.x * Se + d.x * Ie, Y = o[m + 1] = N.y + c.y * _e + u.y * Se + d.y * Ie, M = o[m + 2] = N.z + c.z * _e + u.z * Se + d.z * Ie;\n if (this._computeBoundingBox && (f.minimizeInPlaceFromFloats(de, Y, M), p.maximizeInPlaceFromFloats(de, Y, M)), this._computeParticleColor && S.color) {\n const k = S.color, W = this._colors32;\n W[x] = k.r, W[x + 1] = k.g, W[x + 2] = k.b, W[x + 3] = k.a;\n }\n if (this._computeParticleTexture && S.uv) {\n const k = S.uv, W = this._uvs32;\n W[v] = k.x, W[v + 1] = k.y;\n }\n }\n return r && (i && (this._computeParticleColor && r.updateVerticesData(R.ColorKind, n, !1, !1), this._computeParticleTexture && r.updateVerticesData(R.UVKind, l, !1, !1), r.updateVerticesData(R.PositionKind, o, !1, !1)), this._computeBoundingBox && (r.hasBoundingInfo ? r.getBoundingInfo().reConstruct(f, p, r._worldMatrix) : r.buildBoundingInfo(f, p, r._worldMatrix))), this.afterUpdateParticles(e, t, i), this;\n }\n /**\n * Disposes the PCS.\n */\n dispose() {\n var e;\n (e = this.mesh) == null || e.dispose(), this.vars = null, this._positions = null, this._indices = null, this._normals = null, this._uvs = null, this._colors = null, this._indices32 = null, this._positions32 = null, this._uvs32 = null, this._colors32 = null;\n }\n /**\n * Visibility helper : Recomputes the visible size according to the mesh bounding box\n * doc :\n * @returns the PCS.\n */\n refreshVisibleSize() {\n var e;\n return this._isVisibilityBoxLocked || (e = this.mesh) == null || e.refreshBoundingInfo(), this;\n }\n /**\n * Visibility helper : Sets the size of a visibility box, this sets the underlying mesh bounding box.\n * @param size the size (float) of the visibility box\n * note : this doesn't lock the PCS mesh bounding box.\n * doc :\n */\n setVisibilityBox(e) {\n if (!this.mesh)\n return;\n const t = e / 2;\n this.mesh.buildBoundingInfo(new g(-t, -t, -t), new g(t, t, t));\n }\n /**\n * Gets whether the PCS is always visible or not\n * doc :\n */\n get isAlwaysVisible() {\n return this._alwaysVisible;\n }\n /**\n * Sets the PCS as always visible or not\n * doc :\n */\n set isAlwaysVisible(e) {\n this.mesh && (this._alwaysVisible = e, this.mesh.alwaysSelectAsActiveMesh = e);\n }\n /**\n * Tells to `setParticles()` to compute the particle rotations or not\n * Default value : false. The PCS is faster when it's set to false\n * Note : particle rotations are only applied to parent particles\n * Note : the particle rotations aren't stored values, so setting `computeParticleRotation` to false will prevents the particle to rotate\n */\n set computeParticleRotation(e) {\n this._computeParticleRotation = e;\n }\n /**\n * Tells to `setParticles()` to compute the particle colors or not.\n * Default value : true. The PCS is faster when it's set to false.\n * Note : the particle colors are stored values, so setting `computeParticleColor` to false will keep yet the last colors set.\n */\n set computeParticleColor(e) {\n this._computeParticleColor = e;\n }\n set computeParticleTexture(e) {\n this._computeParticleTexture = e;\n }\n /**\n * Gets if `setParticles()` computes the particle colors or not.\n * Default value : false. The PCS is faster when it's set to false.\n * Note : the particle colors are stored values, so setting `computeParticleColor` to false will keep yet the last colors set.\n */\n get computeParticleColor() {\n return this._computeParticleColor;\n }\n /**\n * Gets if `setParticles()` computes the particle textures or not.\n * Default value : false. The PCS is faster when it's set to false.\n * Note : the particle textures are stored values, so setting `computeParticleTexture` to false will keep yet the last colors set.\n */\n get computeParticleTexture() {\n return this._computeParticleTexture;\n }\n /**\n * Tells to `setParticles()` to compute or not the mesh bounding box when computing the particle positions.\n */\n set computeBoundingBox(e) {\n this._computeBoundingBox = e;\n }\n /**\n * Gets if `setParticles()` computes or not the mesh bounding box when computing the particle positions.\n */\n get computeBoundingBox() {\n return this._computeBoundingBox;\n }\n // =======================================================================\n // Particle behavior logic\n // these following methods may be overwritten by users to fit their needs\n /**\n * This function does nothing. It may be overwritten to set all the particle first values.\n * The PCS doesn't call this function, you may have to call it by your own.\n * doc :\n */\n initParticles() {\n }\n /**\n * This function does nothing. It may be overwritten to recycle a particle\n * The PCS doesn't call this function, you can to call it\n * doc :\n * @param particle The particle to recycle\n * @returns the recycled particle\n */\n recycleParticle(e) {\n return e;\n }\n /**\n * Updates a particle : this function should be overwritten by the user.\n * It is called on each particle by `setParticles()`. This is the place to code each particle behavior.\n * doc :\n * @example : just set a particle position or velocity and recycle conditions\n * @param particle The particle to update\n * @returns the updated particle\n */\n updateParticle(e) {\n return e;\n }\n /**\n * This will be called before any other treatment by `setParticles()` and will be passed three parameters.\n * This does nothing and may be overwritten by the user.\n * @param start the particle index in the particle array where to start to iterate, same than the value passed to setParticle()\n * @param stop the particle index in the particle array where to stop to iterate, same than the value passed to setParticle()\n * @param update the boolean update value actually passed to setParticles()\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n beforeUpdateParticles(e, t, i) {\n }\n /**\n * This will be called by `setParticles()` after all the other treatments and just before the actual mesh update.\n * This will be passed three parameters.\n * This does nothing and may be overwritten by the user.\n * @param start the particle index in the particle array where to start to iterate, same than the value passed to setParticle()\n * @param stop the particle index in the particle array where to stop to iterate, same than the value passed to setParticle()\n * @param update the boolean update value actually passed to setParticles()\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n afterUpdateParticles(e, t, i) {\n }\n}\nObject.defineProperty(Pt.prototype, \"physicsImpostor\", {\n get: function() {\n return this._physicsImpostor;\n },\n set: function(a) {\n this._physicsImpostor !== a && (this._disposePhysicsObserver && this.onDisposeObservable.remove(this._disposePhysicsObserver), this._physicsImpostor = a, a && (this._disposePhysicsObserver = this.onDisposeObservable.add(() => {\n this.physicsImpostor && (this.physicsImpostor.dispose(\n /*!doNotRecurse*/\n ), this.physicsImpostor = null);\n })));\n },\n enumerable: !0,\n configurable: !0\n});\nPt.prototype.getPhysicsImpostor = function() {\n return this.physicsImpostor;\n};\nPt.prototype.applyImpulse = function(a, e) {\n return this.physicsImpostor ? (this.physicsImpostor.applyImpulse(a, e), this) : this;\n};\nPt.prototype.setPhysicsLinkWith = function(a, e, t, i) {\n return !this.physicsImpostor || !a.physicsImpostor ? this : (this.physicsImpostor.createJoint(a.physicsImpostor, Jt.HingeJoint, {\n mainPivot: e,\n connectedPivot: t,\n nativeParams: i\n }), this);\n};\nclass jv {\n /**\n *\n * @returns physics plugin version\n */\n getPluginVersion() {\n return this._physicsPlugin.getPluginVersion();\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Factory used to create the default physics plugin.\n * @returns The default physics plugin\n */\n static DefaultPluginFactory() {\n throw $e(\"\");\n }\n /**\n * Creates a new Physics Engine\n * @param gravity defines the gravity vector used by the simulation\n * @param _physicsPlugin defines the plugin to use (CannonJS by default)\n */\n constructor(e, t = jv.DefaultPluginFactory()) {\n this._physicsPlugin = t, this._physicsBodies = [], this._subTimeStep = 0, e = e || new g(0, -9.807, 0), this.setGravity(e), this.setTimeStep();\n }\n /**\n * Sets the gravity vector used by the simulation\n * @param gravity defines the gravity vector to use\n */\n setGravity(e) {\n this.gravity = e, this._physicsPlugin.setGravity(this.gravity);\n }\n /**\n * Set the time step of the physics engine.\n * Default is 1/60.\n * To slow it down, enter 1/600 for example.\n * To speed it up, 1/30\n * Unit is seconds.\n * @param newTimeStep defines the new timestep to apply to this world.\n */\n setTimeStep(e = 1 / 60) {\n this._physicsPlugin.setTimeStep(e);\n }\n /**\n * Get the time step of the physics engine.\n * @returns the current time step\n */\n getTimeStep() {\n return this._physicsPlugin.getTimeStep();\n }\n /**\n * Set the sub time step of the physics engine.\n * Default is 0 meaning there is no sub steps\n * To increase physics resolution precision, set a small value (like 1 ms)\n * @param subTimeStep defines the new sub timestep used for physics resolution.\n */\n setSubTimeStep(e = 0) {\n this._subTimeStep = e;\n }\n /**\n * Get the sub time step of the physics engine.\n * @returns the current sub time step\n */\n getSubTimeStep() {\n return this._subTimeStep;\n }\n /**\n * Release all resources\n */\n dispose() {\n this._physicsPlugin.dispose();\n }\n /**\n * Gets the name of the current physics plugin\n * @returns the name of the plugin\n */\n getPhysicsPluginName() {\n return this._physicsPlugin.name;\n }\n /**\n * Set the maximum allowed linear and angular velocities\n * @param maxLinearVelocity maximum allowed linear velocity\n * @param maxAngularVelocity maximum allowed angular velocity\n */\n setVelocityLimits(e, t) {\n this._physicsPlugin.setVelocityLimits(e, t);\n }\n /**\n * @returns maximum allowed linear velocity\n */\n getMaxLinearVelocity() {\n return this._physicsPlugin.getMaxLinearVelocity();\n }\n /**\n * @returns maximum allowed angular velocity\n */\n getMaxAngularVelocity() {\n return this._physicsPlugin.getMaxAngularVelocity();\n }\n /**\n * Adding a new impostor for the impostor tracking.\n * This will be done by the impostor itself.\n * @param impostor the impostor to add\n */\n /**\n * Called by the scene. No need to call it.\n * @param delta defines the timespan between frames\n */\n _step(e) {\n e > 0.1 ? e = 0.1 : e <= 0 && (e = 1 / 60), this._physicsPlugin.executeStep(e, this._physicsBodies);\n }\n /**\n * Add a body as an active component of this engine\n * @param physicsBody The body to add\n */\n addBody(e) {\n this._physicsBodies.push(e);\n }\n /**\n * Removes a particular body from this engine\n * @param physicsBody The body to remove from the simulation\n */\n removeBody(e) {\n const t = this._physicsBodies.indexOf(e);\n t > -1 && this._physicsBodies.splice(t, 1);\n }\n /**\n * @returns an array of bodies added to this engine\n */\n getBodies() {\n return this._physicsBodies;\n }\n /**\n * Gets the current plugin used to run the simulation\n * @returns current plugin\n */\n getPhysicsPlugin() {\n return this._physicsPlugin;\n }\n /**\n * Does a raycast in the physics world\n * @param from when should the ray start?\n * @param to when should the ray end?\n * @param result resulting PhysicsRaycastResult\n * @param query raycast query object\n */\n raycastToRef(e, t, i, s) {\n this._physicsPlugin.raycast(e, t, i, s);\n }\n /**\n * Does a raycast in the physics world\n * @param from when should the ray start?\n * @param to when should the ray end?\n * @param query raycast query object\n * @returns PhysicsRaycastResult\n */\n raycast(e, t, i) {\n const s = new tm();\n return this._physicsPlugin.raycast(e, t, s, i), s;\n }\n}\nvar qE;\n(function(a) {\n a[a.FREE = 0] = \"FREE\", a[a.LIMITED = 1] = \"LIMITED\", a[a.LOCKED = 2] = \"LOCKED\";\n})(qE || (qE = {}));\nvar QE;\n(function(a) {\n a[a.LINEAR_X = 0] = \"LINEAR_X\", a[a.LINEAR_Y = 1] = \"LINEAR_Y\", a[a.LINEAR_Z = 2] = \"LINEAR_Z\", a[a.ANGULAR_X = 3] = \"ANGULAR_X\", a[a.ANGULAR_Y = 4] = \"ANGULAR_Y\", a[a.ANGULAR_Z = 5] = \"ANGULAR_Z\", a[a.LINEAR_DISTANCE = 6] = \"LINEAR_DISTANCE\";\n})(QE || (QE = {}));\nvar ZE;\n(function(a) {\n a[a.BALL_AND_SOCKET = 1] = \"BALL_AND_SOCKET\", a[a.DISTANCE = 2] = \"DISTANCE\", a[a.HINGE = 3] = \"HINGE\", a[a.SLIDER = 4] = \"SLIDER\", a[a.LOCK = 5] = \"LOCK\", a[a.PRISMATIC = 6] = \"PRISMATIC\", a[a.SIX_DOF = 7] = \"SIX_DOF\";\n})(ZE || (ZE = {}));\nvar JE;\n(function(a) {\n a[a.SPHERE = 0] = \"SPHERE\", a[a.CAPSULE = 1] = \"CAPSULE\", a[a.CYLINDER = 2] = \"CYLINDER\", a[a.BOX = 3] = \"BOX\", a[a.CONVEX_HULL = 4] = \"CONVEX_HULL\", a[a.CONTAINER = 5] = \"CONTAINER\", a[a.MESH = 6] = \"MESH\", a[a.HEIGHTFIELD = 7] = \"HEIGHTFIELD\";\n})(JE || (JE = {}));\nvar ey;\n(function(a) {\n a[a.NONE = 0] = \"NONE\", a[a.VELOCITY = 1] = \"VELOCITY\", a[a.POSITION = 2] = \"POSITION\";\n})(ey || (ey = {}));\nvar ty;\n(function(a) {\n a.COLLISION_STARTED = \"COLLISION_STARTED\", a.COLLISION_CONTINUED = \"COLLISION_CONTINUED\", a.COLLISION_FINISHED = \"COLLISION_FINISHED\", a.TRIGGER_ENTERED = \"TRIGGER_ENTERED\", a.TRIGGER_EXITED = \"TRIGGER_EXITED\";\n})(ty || (ty = {}));\nvar iy;\n(function(a) {\n a[a.STATIC = 0] = \"STATIC\", a[a.ANIMATED = 1] = \"ANIMATED\", a[a.DYNAMIC = 2] = \"DYNAMIC\";\n})(iy || (iy = {}));\nvar sy;\n(function(a) {\n a[a.DISABLED = 0] = \"DISABLED\", a[a.TELEPORT = 1] = \"TELEPORT\", a[a.ACTION = 2] = \"ACTION\";\n})(sy || (sy = {}));\nvar ry;\n(function(a) {\n a[a.SIMULATION_CONTROLLED = 0] = \"SIMULATION_CONTROLLED\", a[a.ALWAYS_ACTIVE = 1] = \"ALWAYS_ACTIVE\", a[a.ALWAYS_INACTIVE = 2] = \"ALWAYS_INACTIVE\";\n})(ry || (ry = {}));\nvar ny;\n(function(a) {\n a[a.GEOMETRIC_MEAN = 0] = \"GEOMETRIC_MEAN\", a[a.MINIMUM = 1] = \"MINIMUM\", a[a.MAXIMUM = 2] = \"MAXIMUM\", a[a.ARITHMETIC_MEAN = 3] = \"ARITHMETIC_MEAN\", a[a.MULTIPLY = 4] = \"MULTIPLY\";\n})(ny || (ny = {}));\nDe.prototype.getPhysicsEngine = function() {\n return this._physicsEngine;\n};\nDe.prototype.enablePhysics = function(a = null, e) {\n if (this._physicsEngine)\n return !0;\n let t = this._getComponent(me.NAME_PHYSICSENGINE);\n t || (t = new UG(this), this._addComponent(t));\n try {\n if (!e || (e == null ? void 0 : e.getPluginVersion()) === 1)\n this._physicsEngine = new tA(a, e);\n else if ((e == null ? void 0 : e.getPluginVersion()) === 2)\n this._physicsEngine = new jv(a, e);\n else\n throw new Error(\"Unsupported Physics plugin version.\");\n return this._physicsTimeAccumulator = 0, !0;\n } catch (i) {\n return L.Error(i.message), !1;\n }\n};\nDe.prototype.disablePhysicsEngine = function() {\n this._physicsEngine && (this._physicsEngine.dispose(), this._physicsEngine = null);\n};\nDe.prototype.isPhysicsEnabled = function() {\n return this._physicsEngine !== void 0;\n};\nDe.prototype.deleteCompoundImpostor = function(a) {\n const e = a.parts[0].mesh;\n e.physicsImpostor && (e.physicsImpostor.dispose(\n /*true*/\n ), e.physicsImpostor = null);\n};\nDe.prototype._advancePhysicsEngineStep = function(a) {\n if (this._physicsEngine) {\n const e = this._physicsEngine.getSubTimeStep();\n if (e > 0)\n for (this._physicsTimeAccumulator += a; this._physicsTimeAccumulator > e; )\n this.onBeforePhysicsObservable.notifyObservers(this), this._physicsEngine._step(e / 1e3), this.onAfterPhysicsObservable.notifyObservers(this), this._physicsTimeAccumulator -= e;\n else\n this.onBeforePhysicsObservable.notifyObservers(this), this._physicsEngine._step(a / 1e3), this.onAfterPhysicsObservable.notifyObservers(this);\n }\n};\nclass UG {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_PHYSICSENGINE, this.scene = e, this.scene.onBeforePhysicsObservable = new G(), this.scene.onAfterPhysicsObservable = new G(), this.scene.getDeterministicFrameTime = () => this.scene._physicsEngine ? this.scene._physicsEngine.getTimeStep() * 1e3 : 1e3 / 60;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n this.scene.onBeforePhysicsObservable.clear(), this.scene.onAfterPhysicsObservable.clear(), this.scene._physicsEngine && this.scene.disablePhysicsEngine();\n }\n}\nObject.defineProperty(Ye.prototype, \"physicsBody\", {\n get: function() {\n return this._physicsBody;\n },\n set: function(a) {\n this._physicsBody !== a && (this._disposePhysicsObserver && this.onDisposeObservable.remove(this._disposePhysicsObserver), this._physicsBody = a, a && (this._disposePhysicsObserver = this.onDisposeObservable.add(() => {\n this.physicsBody && (this.physicsBody.dispose(\n /*!doNotRecurse*/\n ), this.physicsBody = null);\n })));\n },\n enumerable: !0,\n configurable: !0\n});\nYe.prototype.getPhysicsBody = function() {\n return this.physicsBody;\n};\nYe.prototype.applyImpulse = function(a, e) {\n if (!this.physicsBody)\n throw new Error(\"No Physics Body for TransformNode\");\n return this.physicsBody.applyImpulse(a, e), this;\n};\nYe.prototype.applyAngularImpulse = function(a) {\n if (!this.physicsBody)\n throw new Error(\"No Physics Body for TransformNode\");\n return this.physicsBody.applyAngularImpulse(a), this;\n};\nclass Rl {\n /*\n * Gets the hit contact point between a mesh and a ray. The method varies between\n * the different plugin versions; V1 uses a mesh intersection, V2 uses the physics body instance/object center (to avoid a raycast and improve perf).\n */\n static GetContactPointToRef(e, t, i, s, r) {\n const n = e.getScene().getPhysicsEngine(), o = n == null ? void 0 : n.getPluginVersion();\n if (o === 1) {\n const h = new nt(t, i).intersectsMesh(e);\n if (h.hit && h.pickedPoint)\n return s.copyFrom(h.pickedPoint), !0;\n } else if (o === 2)\n return e.physicsBody.getObjectCenterWorldToRef(s, r), !0;\n return !1;\n }\n /**\n * Checks if a body will be affected by forces\n * @param body the body to check\n * @param instanceIndex for instanced bodies, the index of the instance to check\n * @returns\n */\n static HasAppliedForces(e, t) {\n var i, s;\n return e.getMotionType(t) === 0 || (((i = e.getMassProperties(t)) == null ? void 0 : i.mass) ?? 0) === 0 || ((s = e.transformNode) == null ? void 0 : s.getTotalVertices()) === 0;\n }\n /**\n * Checks if a point is inside a cylinder\n * @param point point to check\n * @param origin cylinder origin on the bottom\n * @param radius cylinder radius\n * @param height cylinder height\n * @returns\n */\n static IsInsideCylinder(e, t, i, s) {\n const r = w.Vector3[0];\n return e.subtractToRef(t, r), Math.abs(r.x) <= i && Math.abs(r.z) <= i && r.y >= 0 && r.y <= s;\n }\n}\nclass YK {\n /**\n * Initializes the Physics helper\n * @param scene Babylon.js scene\n */\n constructor(e) {\n if (this._hitData = { force: new g(), contactPoint: new g(), distanceFromOrigin: 0 }, this._scene = e, this._physicsEngine = this._scene.getPhysicsEngine(), !this._physicsEngine) {\n L.Warn(\"Physics engine not enabled. Please enable the physics before you can use the methods.\");\n return;\n }\n }\n /**\n * Applies a radial explosion impulse\n * @param origin the origin of the explosion\n * @param radiusOrEventOptions the radius or the options of radial explosion\n * @param strength the explosion strength\n * @param falloff possible options: Constant & Linear. Defaults to Constant\n * @returns A physics radial explosion event, or null\n */\n applyRadialExplosionImpulse(e, t, i, s) {\n if (!this._physicsEngine)\n return L.Warn(\"Physics engine not enabled. Please enable the physics before you call this method.\"), null;\n if (this._physicsEngine.getPluginVersion() === 1 && this._physicsEngine.getImpostors().length === 0 || this._physicsEngine.getPluginVersion() === 2 && this._physicsEngine.getBodies().length === 0)\n return null;\n let r = !1;\n if (typeof t == \"number\") {\n const l = t;\n t = new ou(), t.radius = l, t.strength = i ?? t.strength, t.falloff = s ?? t.falloff;\n } else\n r = !!(t.affectedImpostorsCallback || t.affectedBodiesCallback);\n const n = new ay(this._scene, t), o = this._hitData;\n if (this._physicsEngine.getPluginVersion() === 1) {\n const l = Array();\n this._physicsEngine.getImpostors().forEach((c) => {\n n.getImpostorHitData(c, e, o) && (c.applyImpulse(o.force, o.contactPoint), r && l.push({\n impostor: c,\n hitData: this._copyPhysicsHitData(o)\n }));\n }), n.triggerAffectedImpostorsCallback(l);\n } else\n this._applicationForBodies(n, e, o, r, (l, h) => {\n l.applyImpulse(h.force, h.contactPoint, h.instanceIndex);\n });\n return n.dispose(!1), n;\n }\n /**\n * Applies a radial explosion force\n * @param origin the origin of the explosion\n * @param radiusOrEventOptions the radius or the options of radial explosion\n * @param strength the explosion strength\n * @param falloff possible options: Constant & Linear. Defaults to Constant\n * @returns A physics radial explosion event, or null\n */\n applyRadialExplosionForce(e, t, i, s) {\n if (!this._physicsEngine)\n return L.Warn(\"Physics engine not enabled. Please enable the physics before you call the PhysicsHelper.\"), null;\n if (this._physicsEngine.getPluginVersion() === 1 && this._physicsEngine.getImpostors().length === 0 || this._physicsEngine.getPluginVersion() === 2 && this._physicsEngine.getBodies().length === 0)\n return null;\n let r = !1;\n if (typeof t == \"number\") {\n const l = t;\n t = new ou(), t.radius = l, t.strength = i ?? t.strength, t.falloff = s ?? t.falloff;\n } else\n r = !!(t.affectedImpostorsCallback || t.affectedBodiesCallback);\n const n = new ay(this._scene, t), o = this._hitData;\n if (this._physicsEngine.getPluginVersion() === 1) {\n const l = Array();\n this._physicsEngine.getImpostors().forEach((c) => {\n n.getImpostorHitData(c, e, o) && (c.applyForce(o.force, o.contactPoint), r && l.push({\n impostor: c,\n hitData: this._copyPhysicsHitData(o)\n }));\n }), n.triggerAffectedImpostorsCallback(l);\n } else\n this._applicationForBodies(n, e, o, r, (l, h) => {\n l.applyForce(h.force, h.contactPoint, h.instanceIndex);\n });\n return n.dispose(!1), n;\n }\n _applicationForBodies(e, t, i, s, r) {\n const n = Array(), o = this._physicsEngine.getBodies();\n for (const l of o)\n l.iterateOverAllInstances((h, c) => {\n e.getBodyHitData(h, t, i, c) && (r(h, i), s && n.push({\n body: h,\n hitData: this._copyPhysicsHitData(i)\n }));\n });\n e.triggerAffectedBodiesCallback(n);\n }\n /**\n * Creates a gravitational field\n * @param origin the origin of the gravitational field\n * @param radiusOrEventOptions the radius or the options of radial gravitational field\n * @param strength the gravitational field strength\n * @param falloff possible options: Constant & Linear. Defaults to Constant\n * @returns A physics gravitational field event, or null\n */\n gravitationalField(e, t, i, s) {\n if (!this._physicsEngine)\n return L.Warn(\"Physics engine not enabled. Please enable the physics before you call the PhysicsHelper.\"), null;\n if (this._physicsEngine.getPluginVersion() === 1 && this._physicsEngine.getImpostors().length === 0 || this._physicsEngine.getPluginVersion() === 2 && this._physicsEngine.getBodies().length === 0)\n return null;\n if (typeof t == \"number\") {\n const n = t;\n t = new ou(), t.radius = n, t.strength = i ?? t.strength, t.falloff = s ?? t.falloff;\n }\n const r = new kG(this, this._scene, e, t);\n return r.dispose(!1), r;\n }\n /**\n * Creates a physics updraft event\n * @param origin the origin of the updraft\n * @param radiusOrEventOptions the radius or the options of the updraft\n * @param strength the strength of the updraft\n * @param height the height of the updraft\n * @param updraftMode possible options: Center & Perpendicular. Defaults to Center\n * @returns A physics updraft event, or null\n */\n updraft(e, t, i, s, r) {\n if (!this._physicsEngine)\n return L.Warn(\"Physics engine not enabled. Please enable the physics before you call the PhysicsHelper.\"), null;\n if (this._physicsEngine.getPluginVersion() === 1 && this._physicsEngine.getImpostors().length === 0 || this._physicsEngine.getPluginVersion() === 2 && this._physicsEngine.getBodies().length === 0)\n return null;\n if (typeof t == \"number\") {\n const o = t;\n t = new eI(), t.radius = o, t.strength = i ?? t.strength, t.height = s ?? t.height, t.updraftMode = r ?? t.updraftMode;\n }\n const n = new um(this._scene, e, t);\n return n.dispose(!1), n;\n }\n /**\n * Creates a physics vortex event\n * @param origin the of the vortex\n * @param radiusOrEventOptions the radius or the options of the vortex\n * @param strength the strength of the vortex\n * @param height the height of the vortex\n * @returns a Physics vortex event, or null\n * A physics vortex event or null\n */\n vortex(e, t, i, s) {\n if (!this._physicsEngine)\n return L.Warn(\"Physics engine not enabled. Please enable the physics before you call the PhysicsHelper.\"), null;\n if (this._physicsEngine.getPluginVersion() === 1 && this._physicsEngine.getImpostors().length === 0 || this._physicsEngine.getPluginVersion() === 2 && this._physicsEngine.getBodies().length === 0)\n return null;\n if (typeof t == \"number\") {\n const n = t;\n t = new tI(), t.radius = n, t.strength = i ?? t.strength, t.height = s ?? t.height;\n }\n const r = new lc(this._scene, e, t);\n return r.dispose(!1), r;\n }\n _copyPhysicsHitData(e) {\n return { force: e.force.clone(), contactPoint: e.contactPoint.clone(), distanceFromOrigin: e.distanceFromOrigin, instanceIndex: e.instanceIndex };\n }\n}\nclass ay {\n /**\n * Initializes a radial explosion event\n * @param _scene BabylonJS scene\n * @param _options The options for the vortex event\n */\n constructor(e, t) {\n this._scene = e, this._options = t, this._dataFetched = !1, this._options = { ...new ou(), ...this._options };\n }\n /**\n * Returns the data related to the radial explosion event (sphere).\n * @returns The radial explosion event data\n */\n getData() {\n return this._dataFetched = !0, {\n sphere: this._sphere\n };\n }\n _getHitData(e, t, i, s) {\n const r = w.Vector3[0];\n r.copyFrom(t).subtractInPlace(i);\n const n = w.Vector3[1];\n if (!Rl.GetContactPointToRef(e, i, r, n, s.instanceIndex))\n return !1;\n const l = g.Distance(i, n);\n if (l > this._options.radius)\n return !1;\n const h = this._options.falloff === 0 ? this._options.strength : this._options.strength * (1 - l / this._options.radius);\n return r.scaleInPlace(h), s.force.copyFrom(r), s.contactPoint.copyFrom(n), s.distanceFromOrigin = l, !0;\n }\n /**\n * Returns the force and contact point of the body or false, if the body is not affected by the force/impulse.\n * @param body A physics body where the transform node is an AbstractMesh\n * @param origin the origin of the explosion\n * @param data the data of the hit\n * @param instanceIndex the instance index of the body\n * @returns if there was a hit\n */\n getBodyHitData(e, t, i, s) {\n if (Rl.HasAppliedForces(e, s))\n return !1;\n const r = e.transformNode, n = e.getObjectCenterWorld(s);\n return i.instanceIndex = s, this._getHitData(r, n, t, i);\n }\n /**\n * Returns the force and contact point of the impostor or false, if the impostor is not affected by the force/impulse.\n * @param impostor A physics imposter\n * @param origin the origin of the explosion\n * @param data the data of the hit\n * @returns A physics force and contact point, or null\n */\n getImpostorHitData(e, t, i) {\n if (e.mass === 0 || e.object.getClassName() !== \"Mesh\" && e.object.getClassName() !== \"InstancedMesh\")\n return !1;\n const s = e.object;\n if (!this._intersectsWithSphere(s, t, this._options.radius))\n return !1;\n const r = e.getObjectCenter();\n return this._getHitData(s, r, t, i), !0;\n }\n /**\n * Triggers affected impostors callbacks\n * @param affectedImpostorsWithData defines the list of affected impostors (including associated data)\n */\n triggerAffectedImpostorsCallback(e) {\n this._options.affectedImpostorsCallback && this._options.affectedImpostorsCallback(e);\n }\n /**\n * Triggers affected bodies callbacks\n * @param affectedBodiesWithData defines the list of affected bodies (including associated data)\n */\n triggerAffectedBodiesCallback(e) {\n this._options.affectedBodiesCallback && this._options.affectedBodiesCallback(e);\n }\n /**\n * Disposes the sphere.\n * @param force Specifies if the sphere should be disposed by force\n */\n dispose(e = !0) {\n this._sphere && (e ? this._sphere.dispose() : setTimeout(() => {\n this._dataFetched || this._sphere.dispose();\n }, 0));\n }\n /*** Helpers ***/\n _prepareSphere() {\n this._sphere || (this._sphere = Tr(\"radialExplosionEventSphere\", this._options.sphere, this._scene), this._sphere.isVisible = !1);\n }\n _intersectsWithSphere(e, t, i) {\n return this._prepareSphere(), this._sphere.position = t, this._sphere.scaling.setAll(i * 2), this._sphere._updateBoundingInfo(), this._sphere.computeWorldMatrix(!0), this._sphere.intersectsMesh(e, !0);\n }\n}\nclass kG {\n /**\n * Initializes the physics gravitational field event\n * @param _physicsHelper A physics helper\n * @param _scene BabylonJS scene\n * @param _origin The origin position of the gravitational field event\n * @param _options The options for the vortex event\n */\n constructor(e, t, i, s) {\n this._physicsHelper = e, this._scene = t, this._origin = i, this._options = s, this._dataFetched = !1, this._options = { ...new ou(), ...this._options }, this._tickCallback = () => this._tick(), this._options.strength = this._options.strength * -1;\n }\n /**\n * Returns the data related to the gravitational field event (sphere).\n * @returns A gravitational field event\n */\n getData() {\n return this._dataFetched = !0, {\n sphere: this._sphere\n };\n }\n /**\n * Enables the gravitational field.\n */\n enable() {\n this._tickCallback.call(this), this._scene.registerBeforeRender(this._tickCallback);\n }\n /**\n * Disables the gravitational field.\n */\n disable() {\n this._scene.unregisterBeforeRender(this._tickCallback);\n }\n /**\n * Disposes the sphere.\n * @param force The force to dispose from the gravitational field event\n */\n dispose(e = !0) {\n this._sphere && (e ? this._sphere.dispose() : setTimeout(() => {\n this._dataFetched || this._sphere.dispose();\n }, 0));\n }\n _tick() {\n var e;\n if (this._sphere)\n this._physicsHelper.applyRadialExplosionForce(this._origin, this._options);\n else {\n const t = this._physicsHelper.applyRadialExplosionForce(this._origin, this._options);\n t && (this._sphere = (e = t.getData().sphere) == null ? void 0 : e.clone(\"radialExplosionEventSphereClone\"));\n }\n }\n}\nclass um {\n /**\n * Initializes the physics updraft event\n * @param _scene BabylonJS scene\n * @param _origin The origin position of the updraft\n * @param _options The options for the updraft event\n */\n constructor(e, t, i) {\n this._scene = e, this._origin = t, this._options = i, this._originTop = g.Zero(), this._originDirection = g.Zero(), this._cylinderPosition = g.Zero(), this._dataFetched = !1, this._physicsEngine = this._scene.getPhysicsEngine(), this._options = { ...new eI(), ...this._options }, this._origin.addToRef(new g(0, this._options.height / 2, 0), this._cylinderPosition), this._origin.addToRef(new g(0, this._options.height, 0), this._originTop), this._options.updraftMode === 1 && (this._originDirection = this._origin.subtract(this._originTop).normalize()), this._tickCallback = () => this._tick(), this._physicsEngine.getPluginVersion() === 1 && this._prepareCylinder();\n }\n /**\n * Returns the data related to the updraft event (cylinder).\n * @returns A physics updraft event\n */\n getData() {\n return this._dataFetched = !0, {\n cylinder: this._cylinder\n };\n }\n /**\n * Enables the updraft.\n */\n enable() {\n this._tickCallback.call(this), this._scene.registerBeforeRender(this._tickCallback);\n }\n /**\n * Disables the updraft.\n */\n disable() {\n this._scene.unregisterBeforeRender(this._tickCallback);\n }\n /**\n * Disposes the cylinder.\n * @param force Specifies if the updraft should be disposed by force\n */\n dispose(e = !0) {\n this._cylinder && (e ? (this._cylinder.dispose(), this._cylinder = void 0) : setTimeout(() => {\n !this._dataFetched && this._cylinder && (this._cylinder.dispose(), this._cylinder = void 0);\n }, 0));\n }\n _getHitData(e, t) {\n let i;\n this._options.updraftMode === 1 ? i = this._originDirection : i = e.subtract(this._originTop);\n const s = g.Distance(this._origin, e), r = this._options.strength * -1, n = i.multiplyByFloats(r, r, r);\n t.force.copyFrom(n), t.contactPoint.copyFrom(e), t.distanceFromOrigin = s;\n }\n _getBodyHitData(e, t, i) {\n if (Rl.HasAppliedForces(e))\n return !1;\n const s = e.getObjectCenterWorld(i);\n return Rl.IsInsideCylinder(s, this._origin, this._options.radius, this._options.height) ? (t.instanceIndex = i, this._getHitData(s, t), !0) : !1;\n }\n _getImpostorHitData(e, t) {\n if (e.mass === 0)\n return !1;\n const i = e.object;\n if (!this._intersectsWithCylinder(i))\n return !1;\n const s = e.getObjectCenter();\n return this._getHitData(s, t), !0;\n }\n _tick() {\n const e = um._HitData;\n this._physicsEngine.getPluginVersion() === 1 ? this._physicsEngine.getImpostors().forEach((t) => {\n this._getImpostorHitData(t, e) && t.applyForce(e.force, e.contactPoint);\n }) : this._physicsEngine.getBodies().forEach((t) => {\n t.iterateOverAllInstances((i, s) => {\n this._getBodyHitData(i, e, s) && i.applyForce(e.force, e.contactPoint, e.instanceIndex);\n });\n });\n }\n /*** Helpers ***/\n _prepareCylinder() {\n this._cylinder || (this._cylinder = hn(\"updraftEventCylinder\", {\n height: this._options.height,\n diameter: this._options.radius * 2\n }, this._scene), this._cylinder.isVisible = !1);\n }\n _intersectsWithCylinder(e) {\n return this._cylinder ? (this._cylinder.position = this._cylinderPosition, this._cylinder.intersectsMesh(e, !0)) : !1;\n }\n}\num._HitData = { force: new g(), contactPoint: new g(), distanceFromOrigin: 0 };\nclass lc {\n /**\n * Initializes the physics vortex event\n * @param _scene The BabylonJS scene\n * @param _origin The origin position of the vortex\n * @param _options The options for the vortex event\n */\n constructor(e, t, i) {\n this._scene = e, this._origin = t, this._options = i, this._originTop = g.Zero(), this._cylinderPosition = g.Zero(), this._dataFetched = !1, this._physicsEngine = this._scene.getPhysicsEngine(), this._options = { ...new tI(), ...this._options }, this._origin.addToRef(new g(0, this._options.height / 2, 0), this._cylinderPosition), this._origin.addToRef(new g(0, this._options.height, 0), this._originTop), this._tickCallback = () => this._tick(), this._physicsEngine.getPluginVersion() === 1 && this._prepareCylinder();\n }\n /**\n * Returns the data related to the vortex event (cylinder).\n * @returns The physics vortex event data\n */\n getData() {\n return this._dataFetched = !0, {\n cylinder: this._cylinder\n };\n }\n /**\n * Enables the vortex.\n */\n enable() {\n this._tickCallback.call(this), this._scene.registerBeforeRender(this._tickCallback);\n }\n /**\n * Disables the cortex.\n */\n disable() {\n this._scene.unregisterBeforeRender(this._tickCallback);\n }\n /**\n * Disposes the sphere.\n * @param force\n */\n dispose(e = !0) {\n this._cylinder && (e ? this._cylinder.dispose() : setTimeout(() => {\n this._dataFetched || this._cylinder.dispose();\n }, 0));\n }\n _getHitData(e, t, i) {\n const s = lc._OriginOnPlane;\n s.set(this._origin.x, t.y, this._origin.z);\n const r = w.Vector3[0];\n t.subtractToRef(s, r);\n const n = w.Vector3[1];\n if (!Rl.GetContactPointToRef(e, s, r, n, i.instanceIndex))\n return !1;\n const h = g.Distance(n, s) / this._options.radius, c = w.Vector3[2];\n n.normalizeToRef(c), h > this._options.centripetalForceThreshold && c.negateInPlace();\n let u, d, f;\n if (h > this._options.centripetalForceThreshold)\n u = c.x * this._options.centripetalForceMultiplier, d = c.y * this._options.updraftForceMultiplier, f = c.z * this._options.centripetalForceMultiplier;\n else {\n const _ = g.Cross(s, t).normalize();\n u = (_.x + c.x) * this._options.centrifugalForceMultiplier, d = this._originTop.y * this._options.updraftForceMultiplier, f = (_.z + c.z) * this._options.centrifugalForceMultiplier;\n }\n const p = w.Vector3[3];\n return p.set(u, d, f), p.scaleInPlace(this._options.strength), i.force.copyFrom(p), i.contactPoint.copyFrom(t), i.distanceFromOrigin = h, !0;\n }\n _getBodyHitData(e, t, i) {\n if (Rl.HasAppliedForces(e, i))\n return !1;\n const s = e.transformNode, r = e.getObjectCenterWorld(i);\n return Rl.IsInsideCylinder(r, this._origin, this._options.radius, this._options.height) ? (t.instanceIndex = i, this._getHitData(s, r, t)) : !1;\n }\n _getImpostorHitData(e, t) {\n if (e.mass === 0 || e.object.getClassName() !== \"Mesh\" && e.object.getClassName() !== \"InstancedMesh\")\n return !1;\n const i = e.object;\n if (!this._intersectsWithCylinder(i))\n return !1;\n const s = e.getObjectCenter();\n return this._getHitData(i, s, t), !0;\n }\n _tick() {\n const e = lc._HitData;\n this._physicsEngine.getPluginVersion() === 1 ? this._physicsEngine.getImpostors().forEach((t) => {\n this._getImpostorHitData(t, e) && t.applyForce(e.force, e.contactPoint);\n }) : this._physicsEngine.getBodies().forEach((t) => {\n t.iterateOverAllInstances((i, s) => {\n this._getBodyHitData(i, e, s) && i.applyForce(e.force, e.contactPoint, e.instanceIndex);\n });\n });\n }\n /*** Helpers ***/\n _prepareCylinder() {\n this._cylinder || (this._cylinder = hn(\"vortexEventCylinder\", {\n height: this._options.height,\n diameter: this._options.radius * 2\n }, this._scene), this._cylinder.isVisible = !1);\n }\n _intersectsWithCylinder(e) {\n return this._cylinder.position = this._cylinderPosition, this._cylinder.intersectsMesh(e, !0);\n }\n}\nlc._OriginOnPlane = g.Zero();\nlc._HitData = { force: new g(), contactPoint: new g(), distanceFromOrigin: 0 };\nclass ou {\n constructor() {\n this.radius = 5, this.strength = 10, this.falloff = 0, this.sphere = { segments: 32, diameter: 1 };\n }\n}\nclass eI {\n constructor() {\n this.radius = 5, this.strength = 10, this.height = 10, this.updraftMode = 0;\n }\n}\nclass tI {\n constructor() {\n this.radius = 5, this.strength = 10, this.height = 10, this.centripetalForceThreshold = 0.7, this.centripetalForceMultiplier = 5, this.centrifugalForceMultiplier = 0.5, this.updraftForceMultiplier = 0.02;\n }\n}\nvar oy;\n(function(a) {\n a[a.Constant = 0] = \"Constant\", a[a.Linear = 1] = \"Linear\";\n})(oy || (oy = {}));\nvar ly;\n(function(a) {\n a[a.Center = 0] = \"Center\", a[a.Perpendicular = 1] = \"Perpendicular\";\n})(ly || (ly = {}));\nconst GG = \"blackAndWhitePixelShader\", zG = `varying vec2 vUV;uniform sampler2D textureSampler;uniform float degree;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{vec3 color=texture2D(textureSampler,vUV).rgb;float luminance=dot(color,vec3(0.3,0.59,0.11)); \nvec3 blackAndWhite=vec3(luminance,luminance,luminance);gl_FragColor=vec4(color-((color-blackAndWhite)*degree),1.0);}`;\nz.ShadersStore[GG] = zG;\nclass dm extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"BlackAndWhitePostProcess\" string\n */\n getClassName() {\n return \"BlackAndWhitePostProcess\";\n }\n /**\n * Creates a black and white post process\n * @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/usePostProcesses#black-and-white\n * @param name The name of the effect.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n */\n constructor(e, t, i, s, r, n) {\n super(e, \"blackAndWhite\", [\"degree\"], null, t, i, s, r, n), this.degree = 1, this.onApplyObservable.add((o) => {\n o.setFloat(\"degree\", this.degree);\n });\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new dm(e.name, e.options, t, e.renderTargetSamplingMode, i.getEngine(), e.reusable), e, i, s);\n }\n}\ny([\n I()\n], dm.prototype, \"degree\", void 0);\nU(\"BABYLON.BlackAndWhitePostProcess\", dm);\nclass Ft {\n /**\n * Instantiates a post process render effect.\n * A post process can be used to apply a shader to a texture after it is rendered.\n * @param engine The engine the effect is tied to\n * @param name The name of the effect\n * @param getPostProcesses A function that returns a set of post processes which the effect will run in order to be run.\n * @param singleInstance False if this post process can be run on multiple cameras. (default: true)\n */\n constructor(e, t, i, s) {\n this._name = t, this._singleInstance = s || !0, this._getPostProcesses = i, this._cameras = {}, this._indicesForCamera = {}, this._postProcesses = {};\n }\n /**\n * Checks if all the post processes in the effect are supported.\n */\n get isSupported() {\n for (const e in this._postProcesses)\n if (Object.prototype.hasOwnProperty.call(this._postProcesses, e)) {\n const t = this._postProcesses[e];\n for (let i = 0; i < t.length; i++)\n if (!t[i].isSupported)\n return !1;\n }\n return !0;\n }\n /**\n * Updates the current state of the effect\n * @internal\n */\n _update() {\n }\n /**\n * Attaches the effect on cameras\n * @param cameras The camera to attach to.\n * @internal\n */\n _attachCameras(e) {\n let t;\n const i = J.MakeArray(e || this._cameras);\n if (i)\n for (let s = 0; s < i.length; s++) {\n const r = i[s];\n if (!r)\n continue;\n const n = r.name;\n if (this._singleInstance ? t = 0 : t = n, !this._postProcesses[t]) {\n const o = this._getPostProcesses();\n o && (this._postProcesses[t] = Array.isArray(o) ? o : [o]);\n }\n this._indicesForCamera[n] || (this._indicesForCamera[n] = []), this._postProcesses[t].forEach((o) => {\n const l = r.attachPostProcess(o);\n this._indicesForCamera[n].push(l);\n }), this._cameras[n] || (this._cameras[n] = r);\n }\n }\n /**\n * Detaches the effect on cameras\n * @param cameras The camera to detach from.\n * @internal\n */\n _detachCameras(e) {\n const t = J.MakeArray(e || this._cameras);\n if (t)\n for (let i = 0; i < t.length; i++) {\n const s = t[i], r = s.name, n = this._postProcesses[this._singleInstance ? 0 : r];\n n && n.forEach((o) => {\n s.detachPostProcess(o);\n }), this._cameras[r] && (this._cameras[r] = null), delete this._indicesForCamera[r];\n }\n }\n /**\n * Enables the effect on given cameras\n * @param cameras The camera to enable.\n * @internal\n */\n _enable(e) {\n const t = J.MakeArray(e || this._cameras);\n if (t)\n for (let i = 0; i < t.length; i++) {\n const s = t[i], r = s.name, n = this._singleInstance ? 0 : r;\n for (let o = 0; o < this._indicesForCamera[r].length; o++) {\n const l = this._indicesForCamera[r][o], h = s._postProcesses[l];\n h == null && t[i].attachPostProcess(this._postProcesses[n][o], l);\n }\n }\n }\n /**\n * Disables the effect on the given cameras\n * @param cameras The camera to disable.\n * @internal\n */\n _disable(e) {\n const t = J.MakeArray(e || this._cameras);\n if (t)\n for (let i = 0; i < t.length; i++) {\n const s = t[i], r = s.name;\n this._postProcesses[this._singleInstance ? 0 : r].forEach((n) => {\n s.detachPostProcess(n);\n });\n }\n }\n /**\n * Gets a list of the post processes contained in the effect.\n * @param camera The camera to get the post processes on.\n * @returns The list of the post processes in the effect.\n */\n getPostProcesses(e) {\n return this._singleInstance ? this._postProcesses[0] : e ? this._postProcesses[e.name] : null;\n }\n}\nconst WG = \"extractHighlightsPixelShader\", HG = `#include\nvarying vec2 vUV;uniform sampler2D textureSampler;uniform float threshold;uniform float exposure;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{gl_FragColor=texture2D(textureSampler,vUV);float luma=dot(LuminanceEncodeApprox,gl_FragColor.rgb*exposure);gl_FragColor.rgb=step(threshold,luma)*gl_FragColor.rgb;}`;\nz.ShadersStore[WG] = HG;\nclass Kv extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"ExtractHighlightsPostProcess\" string\n */\n getClassName() {\n return \"ExtractHighlightsPostProcess\";\n }\n constructor(e, t, i, s, r, n, o = 0, l = !1) {\n super(e, \"extractHighlights\", [\"threshold\", \"exposure\"], null, t, i, s, r, n, null, o, void 0, null, l), this.threshold = 0.9, this._exposure = 1, this._inputPostProcess = null, this.onApplyObservable.add((h) => {\n this.externalTextureSamplerBinding = !!this._inputPostProcess, this._inputPostProcess && h.setTextureFromPostProcess(\"textureSampler\", this._inputPostProcess), h.setFloat(\"threshold\", Math.pow(this.threshold, eu)), h.setFloat(\"exposure\", this._exposure);\n });\n }\n}\ny([\n I()\n], Kv.prototype, \"threshold\", void 0);\nU(\"BABYLON.ExtractHighlightsPostProcess\", Kv);\nconst XG = \"bloomMergePixelShader\", $G = `uniform sampler2D textureSampler;uniform sampler2D bloomBlur;varying vec2 vUV;uniform float bloomWeight;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{gl_FragColor=texture2D(textureSampler,vUV);vec3 blurred=texture2D(bloomBlur,vUV).rgb;gl_FragColor.rgb=gl_FragColor.rgb+(blurred.rgb*bloomWeight); }\n`;\nz.ShadersStore[XG] = $G;\nclass qv extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"BloomMergePostProcess\" string\n */\n getClassName() {\n return \"BloomMergePostProcess\";\n }\n /**\n * Creates a new instance of @see BloomMergePostProcess\n * @param name The name of the effect.\n * @param originalFromInput Post process which's input will be used for the merge.\n * @param blurred Blurred highlights post process which's output will be used.\n * @param weight Weight of the bloom to be added to the original input.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\n */\n constructor(e, t, i, s, r, n, o, l, h, c = 0, u = !1) {\n super(e, \"bloomMerge\", [\"bloomWeight\"], [\"bloomBlur\"], r, n, o, l, h, null, c, void 0, null, !0), this.weight = 1, this.weight = s, this.externalTextureSamplerBinding = !0, this.onApplyObservable.add((d) => {\n d.setTextureFromPostProcess(\"textureSampler\", t), d.setTextureFromPostProcessOutput(\"bloomBlur\", i), d.setFloat(\"bloomWeight\", this.weight);\n }), u || this.updateEffect();\n }\n}\ny([\n I()\n], qv.prototype, \"weight\", void 0);\nU(\"BABYLON.BloomMergePostProcess\", qv);\nclass hy extends Ft {\n /**\n * The luminance threshold to find bright areas of the image to bloom.\n */\n get threshold() {\n return this._downscale.threshold;\n }\n set threshold(e) {\n this._downscale.threshold = e;\n }\n /**\n * The strength of the bloom.\n */\n get weight() {\n return this._merge.weight;\n }\n set weight(e) {\n this._merge.weight = e;\n }\n /**\n * Specifies the size of the bloom blur kernel, relative to the final output size\n */\n get kernel() {\n return this._blurX.kernel / this._bloomScale;\n }\n set kernel(e) {\n this._blurX.kernel = e * this._bloomScale, this._blurY.kernel = e * this._bloomScale;\n }\n /**\n * Creates a new instance of @see BloomEffect\n * @param scene The scene the effect belongs to.\n * @param _bloomScale The ratio of the blur texture to the input texture that should be used to compute the bloom.\n * @param bloomWeight The strength of bloom.\n * @param bloomKernel The size of the kernel to be used when applying the blur.\n * @param pipelineTextureType The type of texture to be used when performing the post processing.\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\n */\n constructor(e, t, i, s, r = 0, n = !1) {\n super(e.getEngine(), \"bloom\", () => this._effects, !0), this._bloomScale = t, this._effects = [], this._downscale = new Kv(\"highlights\", 1, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, r, n), this._blurX = new As(\"horizontal blur\", new Q(1, 0), 10, t, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, r, void 0, n), this._blurX.alwaysForcePOT = !0, this._blurX.autoClear = !1, this._blurY = new As(\"vertical blur\", new Q(0, 1), 10, t, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, r, void 0, n), this._blurY.alwaysForcePOT = !0, this._blurY.autoClear = !1, this.kernel = s, this._effects = [this._downscale, this._blurX, this._blurY], this._merge = new qv(\"bloomMerge\", this._downscale, this._blurY, i, t, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, r, n), this._merge.autoClear = !1, this._effects.push(this._merge);\n }\n /**\n * Disposes each of the internal effects for a given camera.\n * @param camera The camera to dispose the effect on.\n */\n disposeEffects(e) {\n for (let t = 0; t < this._effects.length; t++)\n this._effects[t].dispose(e);\n }\n /**\n * @internal Internal\n */\n _updateEffects() {\n for (let e = 0; e < this._effects.length; e++)\n this._effects[e].updateEffect();\n }\n /**\n * Internal\n * @returns if all the contained post processes are ready.\n * @internal\n */\n _isReady() {\n for (let e = 0; e < this._effects.length; e++)\n if (!this._effects[e].isReady())\n return !1;\n return !0;\n }\n}\nconst YG = \"chromaticAberrationPixelShader\", jG = `uniform sampler2D textureSampler; \nuniform float chromatic_aberration;uniform float radialIntensity;uniform vec2 direction;uniform vec2 centerPosition;uniform float screen_width;uniform float screen_height;varying vec2 vUV;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{vec2 centered_screen_pos=vec2(vUV.x-centerPosition.x,vUV.y-centerPosition.y);vec2 directionOfEffect=direction;if(directionOfEffect.x==0. && directionOfEffect.y==0.){directionOfEffect=normalize(centered_screen_pos);}\nfloat radius2=centered_screen_pos.x*centered_screen_pos.x\n+ centered_screen_pos.y*centered_screen_pos.y;float radius=sqrt(radius2);vec4 original=texture2D(textureSampler,vUV);vec3 ref_indices=vec3(-0.3,0.0,0.3);float ref_shiftX=chromatic_aberration*pow(radius,radialIntensity)*directionOfEffect.x/screen_width;float ref_shiftY=chromatic_aberration*pow(radius,radialIntensity)*directionOfEffect.y/screen_height;vec2 ref_coords_r=vec2(vUV.x+ref_indices.r*ref_shiftX,vUV.y+ref_indices.r*ref_shiftY*0.5);vec2 ref_coords_g=vec2(vUV.x+ref_indices.g*ref_shiftX,vUV.y+ref_indices.g*ref_shiftY*0.5);vec2 ref_coords_b=vec2(vUV.x+ref_indices.b*ref_shiftX,vUV.y+ref_indices.b*ref_shiftY*0.5);original.r=texture2D(textureSampler,ref_coords_r).r;original.g=texture2D(textureSampler,ref_coords_g).g;original.b=texture2D(textureSampler,ref_coords_b).b;original.a=clamp(texture2D(textureSampler,ref_coords_r).a+texture2D(textureSampler,ref_coords_g).a+texture2D(textureSampler,ref_coords_b).a,0.,1.);gl_FragColor=original;}`;\nz.ShadersStore[YG] = jG;\nclass La extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"ChromaticAberrationPostProcess\" string\n */\n getClassName() {\n return \"ChromaticAberrationPostProcess\";\n }\n /**\n * Creates a new instance ChromaticAberrationPostProcess\n * @param name The name of the effect.\n * @param screenWidth The width of the screen to apply the effect on.\n * @param screenHeight The height of the screen to apply the effect on.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\n */\n constructor(e, t, i, s, r, n, o, l, h = 0, c = !1) {\n super(e, \"chromaticAberration\", [\"chromatic_aberration\", \"screen_width\", \"screen_height\", \"direction\", \"radialIntensity\", \"centerPosition\"], [], s, r, n, o, l, null, h, void 0, null, c), this.aberrationAmount = 30, this.radialIntensity = 0, this.direction = new Q(0.707, 0.707), this.centerPosition = new Q(0.5, 0.5), this.screenWidth = t, this.screenHeight = i, this.onApplyObservable.add((u) => {\n u.setFloat(\"chromatic_aberration\", this.aberrationAmount), u.setFloat(\"screen_width\", t), u.setFloat(\"screen_height\", i), u.setFloat(\"radialIntensity\", this.radialIntensity), u.setFloat2(\"direction\", this.direction.x, this.direction.y), u.setFloat2(\"centerPosition\", this.centerPosition.x, this.centerPosition.y);\n });\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new La(e.name, e.screenWidth, e.screenHeight, e.options, t, e.renderTargetSamplingMode, i.getEngine(), e.reusable, e.textureType, !1), e, i, s);\n }\n}\ny([\n I()\n], La.prototype, \"aberrationAmount\", void 0);\ny([\n I()\n], La.prototype, \"radialIntensity\", void 0);\ny([\n I()\n], La.prototype, \"direction\", void 0);\ny([\n I()\n], La.prototype, \"centerPosition\", void 0);\ny([\n I()\n], La.prototype, \"screenWidth\", void 0);\ny([\n I()\n], La.prototype, \"screenHeight\", void 0);\nU(\"BABYLON.ChromaticAberrationPostProcess\", La);\nconst KG = \"circleOfConfusionPixelShader\", qG = `uniform sampler2D depthSampler;varying vec2 vUV;uniform vec2 cameraMinMaxZ;uniform float focusDistance;uniform float cocPrecalculation;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{float depth=texture2D(depthSampler,vUV).r;\n#define CUSTOM_COC_DEPTH\nfloat pixelDistance=(cameraMinMaxZ.x+cameraMinMaxZ.y*depth)*1000.0; \n#define CUSTOM_COC_PIXELDISTANCE\nfloat coc=abs(cocPrecalculation*((focusDistance-pixelDistance)/pixelDistance));coc=clamp(coc,0.0,1.0);gl_FragColor=vec4(coc,coc,coc,1.0);}\n`;\nz.ShadersStore[KG] = qG;\nclass Rc extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"CircleOfConfusionPostProcess\" string\n */\n getClassName() {\n return \"CircleOfConfusionPostProcess\";\n }\n /**\n * Creates a new instance CircleOfConfusionPostProcess\n * @param name The name of the effect.\n * @param depthTexture The depth texture of the scene to compute the circle of confusion. This must be set in order for this to function but may be set after initialization if needed.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\n */\n constructor(e, t, i, s, r, n, o, l = 0, h = !1) {\n super(e, \"circleOfConfusion\", [\"cameraMinMaxZ\", \"focusDistance\", \"cocPrecalculation\"], [\"depthSampler\"], i, s, r, n, o, null, l, void 0, null, h), this.lensSize = 50, this.fStop = 1.4, this.focusDistance = 2e3, this.focalLength = 50, this._depthTexture = null, this._depthTexture = t, this.onApplyObservable.add((c) => {\n if (!this._depthTexture) {\n L.Warn(\"No depth texture set on CircleOfConfusionPostProcess\");\n return;\n }\n c.setTexture(\"depthSampler\", this._depthTexture);\n const d = this.lensSize / this.fStop * this.focalLength / (this.focusDistance - this.focalLength);\n c.setFloat(\"focusDistance\", this.focusDistance), c.setFloat(\"cocPrecalculation\", d);\n const f = this._depthTexture.activeCamera;\n c.setFloat2(\"cameraMinMaxZ\", f.minZ, f.maxZ - f.minZ);\n });\n }\n /**\n * Depth texture to be used to compute the circle of confusion. This must be set here or in the constructor in order for the post process to function.\n */\n set depthTexture(e) {\n this._depthTexture = e;\n }\n}\ny([\n I()\n], Rc.prototype, \"lensSize\", void 0);\ny([\n I()\n], Rc.prototype, \"fStop\", void 0);\ny([\n I()\n], Rc.prototype, \"focusDistance\", void 0);\ny([\n I()\n], Rc.prototype, \"focalLength\", void 0);\nU(\"BABYLON.CircleOfConfusionPostProcess\", Rc);\nconst QG = \"colorCorrectionPixelShader\", ZG = `uniform sampler2D textureSampler; \nuniform sampler2D colorTable; \nvarying vec2 vUV;const float SLICE_COUNT=16.0; \nvec4 sampleAs3DTexture(sampler2D textureSampler,vec3 uv,float width) {float sliceSize=1.0/width; \nfloat slicePixelSize=sliceSize/width; \nfloat sliceInnerSize=slicePixelSize*(width-1.0); \nfloat zSlice0=min(floor(uv.z*width),width-1.0);float zSlice1=min(zSlice0+1.0,width-1.0);float xOffset=slicePixelSize*0.5+uv.x*sliceInnerSize;float s0=xOffset+(zSlice0*sliceSize);float s1=xOffset+(zSlice1*sliceSize);vec4 slice0Color=texture2D(textureSampler,vec2(s0,uv.y));vec4 slice1Color=texture2D(textureSampler,vec2(s1,uv.y));float zOffset=mod(uv.z*width,1.0);vec4 result=mix(slice0Color,slice1Color,zOffset);return result;}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{vec4 screen_color=texture2D(textureSampler,vUV);gl_FragColor=sampleAs3DTexture(colorTable,screen_color.rgb,SLICE_COUNT);}`;\nz.ShadersStore[QG] = ZG;\nclass fm extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"ColorCorrectionPostProcess\" string\n */\n getClassName() {\n return \"ColorCorrectionPostProcess\";\n }\n constructor(e, t, i, s, r, n, o) {\n super(e, \"colorCorrection\", null, [\"colorTable\"], i, s, r, n, o);\n const l = (s == null ? void 0 : s.getScene()) || null;\n this._colorTableTexture = new X(t, l, !0, !1, X.TRILINEAR_SAMPLINGMODE), this._colorTableTexture.anisotropicFilteringLevel = 1, this._colorTableTexture.wrapU = X.CLAMP_ADDRESSMODE, this._colorTableTexture.wrapV = X.CLAMP_ADDRESSMODE, this.colorTableUrl = t, this.onApply = (h) => {\n h.setTexture(\"colorTable\", this._colorTableTexture);\n };\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new fm(e.name, e.colorTableUrl, e.options, t, e.renderTargetSamplingMode, i.getEngine(), e.reusable), e, i, s);\n }\n}\ny([\n I()\n], fm.prototype, \"colorTableUrl\", void 0);\nU(\"BABYLON.ColorCorrectionPostProcess\", fm);\nconst JG = \"convolutionPixelShader\", ez = `varying vec2 vUV;uniform sampler2D textureSampler;uniform vec2 screenSize;uniform float kernel[9];\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{vec2 onePixel=vec2(1.0,1.0)/screenSize;vec4 colorSum =\ntexture2D(textureSampler,vUV+onePixel*vec2(-1,-1))*kernel[0] +\ntexture2D(textureSampler,vUV+onePixel*vec2(0,-1))*kernel[1] +\ntexture2D(textureSampler,vUV+onePixel*vec2(1,-1))*kernel[2] +\ntexture2D(textureSampler,vUV+onePixel*vec2(-1,0))*kernel[3] +\ntexture2D(textureSampler,vUV+onePixel*vec2(0,0))*kernel[4] +\ntexture2D(textureSampler,vUV+onePixel*vec2(1,0))*kernel[5] +\ntexture2D(textureSampler,vUV+onePixel*vec2(-1,1))*kernel[6] +\ntexture2D(textureSampler,vUV+onePixel*vec2(0,1))*kernel[7] +\ntexture2D(textureSampler,vUV+onePixel*vec2(1,1))*kernel[8];float kernelWeight =\nkernel[0] +\nkernel[1] +\nkernel[2] +\nkernel[3] +\nkernel[4] +\nkernel[5] +\nkernel[6] +\nkernel[7] +\nkernel[8];if (kernelWeight<=0.0) {kernelWeight=1.0;}\ngl_FragColor=vec4((colorSum/kernelWeight).rgb,1);}`;\nz.ShadersStore[JG] = ez;\nclass Ba extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"ConvolutionPostProcess\" string\n */\n getClassName() {\n return \"ConvolutionPostProcess\";\n }\n /**\n * Creates a new instance ConvolutionPostProcess\n * @param name The name of the effect.\n * @param kernel Array of 9 values corresponding to the 3x3 kernel to be applied\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n */\n constructor(e, t, i, s, r, n, o, l = 0) {\n super(e, \"convolution\", [\"kernel\", \"screenSize\"], null, i, s, r, n, o, null, l), this.kernel = t, this.onApply = (h) => {\n h.setFloat2(\"screenSize\", this.width, this.height), h.setArray(\"kernel\", this.kernel);\n };\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new Ba(e.name, e.kernel, e.options, t, e.renderTargetSamplingMode, i.getEngine(), e.reusable, e.textureType), e, i, s);\n }\n}\nBa.EdgeDetect0Kernel = [1, 0, -1, 0, 0, 0, -1, 0, 1];\nBa.EdgeDetect1Kernel = [0, 1, 0, 1, -4, 1, 0, 1, 0];\nBa.EdgeDetect2Kernel = [-1, -1, -1, -1, 8, -1, -1, -1, -1];\nBa.SharpenKernel = [0, -1, 0, -1, 5, -1, 0, -1, 0];\nBa.EmbossKernel = [-2, -1, 0, -1, 1, 1, 0, 1, 2];\nBa.GaussianKernel = [0, 1, 0, 1, 1, 1, 0, 1, 0];\ny([\n I()\n], Ba.prototype, \"kernel\", void 0);\nU(\"BABYLON.ConvolutionPostProcess\", Ba);\nclass Jp extends As {\n /**\n * Gets a string identifying the name of the class\n * @returns \"DepthOfFieldBlurPostProcess\" string\n */\n getClassName() {\n return \"DepthOfFieldBlurPostProcess\";\n }\n /**\n * Creates a new instance DepthOfFieldBlurPostProcess\n * @param name The name of the effect.\n * @param scene The scene the effect belongs to.\n * @param direction The direction the blur should be applied.\n * @param kernel The size of the kernel used to blur.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param circleOfConfusion The circle of confusion + depth map to be used to avoid blurring across edges\n * @param imageToBlur The image to apply the blur to (default: Current rendered frame)\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\n * @param textureFormat Format of textures used when performing the post process. (default: TEXTUREFORMAT_RGBA)\n */\n constructor(e, t, i, s, r, n, o, l = null, h = X.BILINEAR_SAMPLINGMODE, c, u, d = 0, f = !1, p = 5) {\n super(\n e,\n i,\n s,\n r,\n n,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n h = 2,\n c,\n u,\n d,\n `#define DOF 1\n`,\n f,\n p\n ), this.direction = i, this.externalTextureSamplerBinding = !!l, this.onApplyObservable.add((_) => {\n l != null && _.setTextureFromPostProcess(\"textureSampler\", l), _.setTextureFromPostProcessOutput(\"circleOfConfusionSampler\", o);\n });\n }\n}\ny([\n I()\n], Jp.prototype, \"direction\", void 0);\nU(\"BABYLON.DepthOfFieldBlurPostProcess\", Jp);\nconst tz = \"depthOfFieldMergePixelShader\", iz = `#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\n#define TEXTUREFUNC(s,c,lod) texture2DLodEXT(s,c,lod)\n#else\n#define TEXTUREFUNC(s,c,bias) texture2D(s,c,bias)\n#endif\nuniform sampler2D textureSampler;varying vec2 vUV;uniform sampler2D circleOfConfusionSampler;uniform sampler2D blurStep0;\n#if BLUR_LEVEL>0\nuniform sampler2D blurStep1;\n#endif\n#if BLUR_LEVEL>1\nuniform sampler2D blurStep2;\n#endif\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{float coc=TEXTUREFUNC(circleOfConfusionSampler,vUV,0.0).r;\n#if BLUR_LEVEL==0\nvec4 original=TEXTUREFUNC(textureSampler,vUV,0.0);vec4 blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);gl_FragColor=mix(original,blurred0,coc);\n#endif\n#if BLUR_LEVEL==1\nif(coc<0.5){vec4 original=TEXTUREFUNC(textureSampler,vUV,0.0);vec4 blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);gl_FragColor=mix(original,blurred1,coc/0.5);}else{vec4 blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);vec4 blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);gl_FragColor=mix(blurred1,blurred0,(coc-0.5)/0.5);}\n#endif\n#if BLUR_LEVEL==2\nif(coc<0.33){vec4 original=TEXTUREFUNC(textureSampler,vUV,0.0);vec4 blurred2=TEXTUREFUNC(blurStep2,vUV,0.0);gl_FragColor=mix(original,blurred2,coc/0.33);}else if(coc<0.66){vec4 blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);vec4 blurred2=TEXTUREFUNC(blurStep2,vUV,0.0);gl_FragColor=mix(blurred2,blurred1,(coc-0.33)/0.33);}else{vec4 blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);vec4 blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);gl_FragColor=mix(blurred1,blurred0,(coc-0.66)/0.34);}\n#endif\n}\n`;\nz.ShadersStore[tz] = iz;\nclass sz extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"DepthOfFieldMergePostProcess\" string\n */\n getClassName() {\n return \"DepthOfFieldMergePostProcess\";\n }\n /**\n * Creates a new instance of DepthOfFieldMergePostProcess\n * @param name The name of the effect.\n * @param originalFromInput Post process which's input will be used for the merge.\n * @param circleOfConfusion Circle of confusion post process which's output will be used to blur each pixel.\n * @param _blurSteps Blur post processes from low to high which will be mixed with the original image.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\n */\n constructor(e, t, i, s, r, n, o, l, h, c = 0, u = !1) {\n super(e, \"depthOfFieldMerge\", [], [\"circleOfConfusionSampler\", \"blurStep0\", \"blurStep1\", \"blurStep2\"], r, n, o, l, h, null, c, void 0, null, !0), this._blurSteps = s, this.externalTextureSamplerBinding = !0, this.onApplyObservable.add((d) => {\n d.setTextureFromPostProcess(\"textureSampler\", t), d.setTextureFromPostProcessOutput(\"circleOfConfusionSampler\", i), s.forEach((f, p) => {\n d.setTextureFromPostProcessOutput(\"blurStep\" + (s.length - p - 1), f);\n });\n }), u || this.updateEffect();\n }\n /**\n * Updates the effect with the current post process compile time values and recompiles the shader.\n * @param defines Define statements that should be added at the beginning of the shader. (default: null)\n * @param uniforms Set of uniform variables that will be passed to the shader. (default: null)\n * @param samplers Set of Texture2D variables that will be passed to the shader. (default: null)\n * @param indexParameters The index parameters to be used for babylons include syntax \"#include[0..varyingCount]\". (default: undefined) See usage in babylon.blurPostProcess.ts and kernelBlur.vertex.fx\n * @param onCompiled Called when the shader has been compiled.\n * @param onError Called if there is an error when compiling a shader.\n */\n updateEffect(e = null, t = null, i = null, s, r, n) {\n e || (e = \"\", e += \"#define BLUR_LEVEL \" + (this._blurSteps.length - 1) + `\n`), super.updateEffect(e, t, i, s, r, n);\n }\n}\nvar cy;\n(function(a) {\n a[a.Low = 0] = \"Low\", a[a.Medium = 1] = \"Medium\", a[a.High = 2] = \"High\";\n})(cy || (cy = {}));\nclass uy extends Ft {\n /**\n * The focal the length of the camera used in the effect in scene units/1000 (eg. millimeter)\n */\n set focalLength(e) {\n this._circleOfConfusion.focalLength = e;\n }\n get focalLength() {\n return this._circleOfConfusion.focalLength;\n }\n /**\n * F-Stop of the effect's camera. The diameter of the resulting aperture can be computed by lensSize/fStop. (default: 1.4)\n */\n set fStop(e) {\n this._circleOfConfusion.fStop = e;\n }\n get fStop() {\n return this._circleOfConfusion.fStop;\n }\n /**\n * Distance away from the camera to focus on in scene units/1000 (eg. millimeter). (default: 2000)\n */\n set focusDistance(e) {\n this._circleOfConfusion.focusDistance = e;\n }\n get focusDistance() {\n return this._circleOfConfusion.focusDistance;\n }\n /**\n * Max lens size in scene units/1000 (eg. millimeter). Standard cameras are 50mm. (default: 50) The diameter of the resulting aperture can be computed by lensSize/fStop.\n */\n set lensSize(e) {\n this._circleOfConfusion.lensSize = e;\n }\n get lensSize() {\n return this._circleOfConfusion.lensSize;\n }\n /**\n * Creates a new instance DepthOfFieldEffect\n * @param scene The scene the effect belongs to.\n * @param depthTexture The depth texture of the scene to compute the circle of confusion.This must be set in order for this to function but may be set after initialization if needed.\n * @param blurLevel\n * @param pipelineTextureType The type of texture to be used when performing the post processing.\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\n */\n constructor(e, t, i = 0, s = 0, r = !1) {\n super(e.getEngine(), \"depth of field\", () => this._effects, !0), this._effects = [];\n const n = e.getEngine(), o = n.isWebGPU || n.version > 1 ? 6 : 5;\n this._circleOfConfusion = new Rc(\"circleOfConfusion\", t, 1, null, X.BILINEAR_SAMPLINGMODE, n, !1, s, r), this._depthOfFieldBlurY = [], this._depthOfFieldBlurX = [];\n let l = 1, h = 15;\n switch (i) {\n case 2: {\n l = 3, h = 51;\n break;\n }\n case 1: {\n l = 2, h = 31;\n break;\n }\n default: {\n h = 15, l = 1;\n break;\n }\n }\n const c = h / Math.pow(2, l - 1);\n let u = 1;\n for (let d = 0; d < l; d++) {\n const f = new Jp(\"vertical blur\", e, new Q(0, 1), c, u, null, this._circleOfConfusion, d == 0 ? this._circleOfConfusion : null, X.BILINEAR_SAMPLINGMODE, n, !1, s, r, d == 0 ? o : 5);\n f.autoClear = !1, u = 0.75 / Math.pow(2, d);\n const p = new Jp(\"horizontal blur\", e, new Q(1, 0), c, u, null, this._circleOfConfusion, null, X.BILINEAR_SAMPLINGMODE, n, !1, s, r);\n p.autoClear = !1, this._depthOfFieldBlurY.push(f), this._depthOfFieldBlurX.push(p);\n }\n this._effects = [this._circleOfConfusion];\n for (let d = 0; d < this._depthOfFieldBlurX.length; d++)\n this._effects.push(this._depthOfFieldBlurY[d]), this._effects.push(this._depthOfFieldBlurX[d]);\n this._dofMerge = new sz(\"dofMerge\", this._circleOfConfusion, this._circleOfConfusion, this._depthOfFieldBlurX, u, null, X.BILINEAR_SAMPLINGMODE, n, !1, s, r), this._dofMerge.autoClear = !1, this._effects.push(this._dofMerge);\n }\n /**\n * Get the current class name of the current effect\n * @returns \"DepthOfFieldEffect\"\n */\n getClassName() {\n return \"DepthOfFieldEffect\";\n }\n /**\n * Depth texture to be used to compute the circle of confusion. This must be set here or in the constructor in order for the post process to function.\n */\n set depthTexture(e) {\n this._circleOfConfusion.depthTexture = e;\n }\n /**\n * Disposes each of the internal effects for a given camera.\n * @param camera The camera to dispose the effect on.\n */\n disposeEffects(e) {\n for (let t = 0; t < this._effects.length; t++)\n this._effects[t].dispose(e);\n }\n /**\n * @internal Internal\n */\n _updateEffects() {\n for (let e = 0; e < this._effects.length; e++)\n this._effects[e].updateEffect();\n }\n /**\n * Internal\n * @returns if all the contained post processes are ready.\n * @internal\n */\n _isReady() {\n for (let e = 0; e < this._effects.length; e++)\n if (!this._effects[e].isReady())\n return !1;\n return !0;\n }\n}\nconst rz = \"displayPassPixelShader\", nz = `varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D passSampler;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{gl_FragColor=texture2D(passSampler,vUV);}`;\nz.ShadersStore[rz] = nz;\nclass Qv extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"DisplayPassPostProcess\" string\n */\n getClassName() {\n return \"DisplayPassPostProcess\";\n }\n /**\n * Creates the DisplayPassPostProcess\n * @param name The name of the effect.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n */\n constructor(e, t, i, s, r, n) {\n super(e, \"displayPass\", [\"passSampler\"], [\"passSampler\"], t, i, s, r, n);\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new Qv(e.name, e.options, t, e.renderTargetSamplingMode, i.getEngine(), e.reusable), e, i, s);\n }\n}\nU(\"BABYLON.DisplayPassPostProcess\", Qv);\nconst az = \"filterPixelShader\", oz = `varying vec2 vUV;uniform sampler2D textureSampler;uniform mat4 kernelMatrix;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{vec3 baseColor=texture2D(textureSampler,vUV).rgb;vec3 updatedColor=(kernelMatrix*vec4(baseColor,1.0)).rgb;gl_FragColor=vec4(updatedColor,1.0);}`;\nz.ShadersStore[az] = oz;\nclass pm extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"FilterPostProcess\" string\n */\n getClassName() {\n return \"FilterPostProcess\";\n }\n /**\n *\n * @param name The name of the effect.\n * @param kernelMatrix The matrix to be applied to the image\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n */\n constructor(e, t, i, s, r, n, o) {\n super(e, \"filter\", [\"kernelMatrix\"], null, i, s, r, n, o), this.kernelMatrix = t, this.onApply = (l) => {\n l.setMatrix(\"kernelMatrix\", this.kernelMatrix);\n };\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new pm(e.name, e.kernelMatrix, e.options, t, e.renderTargetSamplingMode, i.getEngine(), e.reusable), e, i, s);\n }\n}\ny([\n yx()\n], pm.prototype, \"kernelMatrix\", void 0);\nU(\"BABYLON.FilterPostProcess\", pm);\nconst lz = \"fxaaPixelShader\", hz = `#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\n#define TEXTUREFUNC(s,c,l) texture2DLodEXT(s,c,l)\n#else\n#define TEXTUREFUNC(s,c,b) texture2D(s,c,b)\n#endif\nuniform sampler2D textureSampler;uniform vec2 texelSize;varying vec2 vUV;varying vec2 sampleCoordS;varying vec2 sampleCoordE;varying vec2 sampleCoordN;varying vec2 sampleCoordW;varying vec2 sampleCoordNW;varying vec2 sampleCoordSE;varying vec2 sampleCoordNE;varying vec2 sampleCoordSW;const float fxaaQualitySubpix=1.0;const float fxaaQualityEdgeThreshold=0.166;const float fxaaQualityEdgeThresholdMin=0.0833;const vec3 kLumaCoefficients=vec3(0.2126,0.7152,0.0722);\n#define FxaaLuma(rgba) dot(rgba.rgb,kLumaCoefficients)\nvoid main(){vec2 posM;posM.x=vUV.x;posM.y=vUV.y;vec4 rgbyM=TEXTUREFUNC(textureSampler,vUV,0.0);float lumaM=FxaaLuma(rgbyM);float lumaS=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordS,0.0));float lumaE=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordE,0.0));float lumaN=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordN,0.0));float lumaW=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordW,0.0));float maxSM=max(lumaS,lumaM);float minSM=min(lumaS,lumaM);float maxESM=max(lumaE,maxSM);float minESM=min(lumaE,minSM);float maxWN=max(lumaN,lumaW);float minWN=min(lumaN,lumaW);float rangeMax=max(maxWN,maxESM);float rangeMin=min(minWN,minESM);float rangeMaxScaled=rangeMax*fxaaQualityEdgeThreshold;float range=rangeMax-rangeMin;float rangeMaxClamped=max(fxaaQualityEdgeThresholdMin,rangeMaxScaled);\n#ifndef MALI\nif(range=edgeVert;float subpixA=subpixNSWE*2.0+subpixNWSWNESE;if (!horzSpan)\n{lumaN=lumaW;}\nif (!horzSpan) \n{lumaS=lumaE;}\nif (horzSpan) \n{lengthSign=texelSize.y;}\nfloat subpixB=(subpixA*(1.0/12.0))-lumaM;float gradientN=lumaN-lumaM;float gradientS=lumaS-lumaM;float lumaNN=lumaN+lumaM;float lumaSS=lumaS+lumaM;bool pairN=abs(gradientN)>=abs(gradientS);float gradient=max(abs(gradientN),abs(gradientS));if (pairN)\n{lengthSign=-lengthSign;}\nfloat subpixC=clamp(abs(subpixB)*subpixRcpRange,0.0,1.0);vec2 posB;posB.x=posM.x;posB.y=posM.y;vec2 offNP;offNP.x=(!horzSpan) ? 0.0 : texelSize.x;offNP.y=(horzSpan) ? 0.0 : texelSize.y;if (!horzSpan) \n{posB.x+=lengthSign*0.5;}\nif (horzSpan)\n{posB.y+=lengthSign*0.5;}\nvec2 posN;posN.x=posB.x-offNP.x*1.5;posN.y=posB.y-offNP.y*1.5;vec2 posP;posP.x=posB.x+offNP.x*1.5;posP.y=posB.y+offNP.y*1.5;float subpixD=((-2.0)*subpixC)+3.0;float lumaEndN=FxaaLuma(TEXTUREFUNC(textureSampler,posN,0.0));float subpixE=subpixC*subpixC;float lumaEndP=FxaaLuma(TEXTUREFUNC(textureSampler,posP,0.0));if (!pairN) \n{lumaNN=lumaSS;}\nfloat gradientScaled=gradient*1.0/4.0;float lumaMM=lumaM-lumaNN*0.5;float subpixF=subpixD*subpixE;bool lumaMLTZero=lumaMM<0.0;lumaEndN-=lumaNN*0.5;lumaEndP-=lumaNN*0.5;bool doneN=abs(lumaEndN)>=gradientScaled;bool doneP=abs(lumaEndP)>=gradientScaled;if (!doneN) \n{posN.x-=offNP.x*3.0;}\nif (!doneN) \n{posN.y-=offNP.y*3.0;}\nbool doneNP=(!doneN) || (!doneP);if (!doneP) \n{posP.x+=offNP.x*3.0;}\nif (!doneP)\n{posP.y+=offNP.y*3.0;}\nif (doneNP)\n{if (!doneN) lumaEndN=FxaaLuma(TEXTUREFUNC(textureSampler,posN.xy,0.0));if (!doneP) lumaEndP=FxaaLuma(TEXTUREFUNC(textureSampler,posP.xy,0.0));if (!doneN) lumaEndN=lumaEndN-lumaNN*0.5;if (!doneP) lumaEndP=lumaEndP-lumaNN*0.5;doneN=abs(lumaEndN)>=gradientScaled;doneP=abs(lumaEndP)>=gradientScaled;if (!doneN) posN.x-=offNP.x*12.0;if (!doneN) posN.y-=offNP.y*12.0;doneNP=(!doneN) || (!doneP);if (!doneP) posP.x+=offNP.x*12.0;if (!doneP) posP.y+=offNP.y*12.0;}\nfloat dstN=posM.x-posN.x;float dstP=posP.x-posM.x;if (!horzSpan)\n{dstN=posM.y-posN.y;}\nif (!horzSpan) \n{dstP=posP.y-posM.y;}\nbool goodSpanN=(lumaEndN<0.0) != lumaMLTZero;float spanLength=(dstP+dstN);bool goodSpanP=(lumaEndP<0.0) != lumaMLTZero;float spanLengthRcp=1.0/spanLength;bool directionN=dstN {\n const c = this.texelSize;\n h.setFloat2(\"texelSize\", c.x, c.y);\n });\n }\n _getDefines() {\n const e = this.getEngine();\n return e && e.extractDriverInfo().toLowerCase().indexOf(\"mali\") > -1 ? `#define MALI 1\n` : null;\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new Ic(e.name, e.options, t, e.renderTargetSamplingMode, i.getEngine(), e.reusable), e, i, s);\n }\n}\nU(\"BABYLON.FxaaPostProcess\", Ic);\nconst dz = \"grainPixelShader\", fz = `#include\nuniform sampler2D textureSampler; \nuniform float intensity;uniform float animatedSeed;varying vec2 vUV;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{gl_FragColor=texture2D(textureSampler,vUV);vec2 seed=vUV*(animatedSeed);float grain=dither(seed,intensity);float lum=getLuminance(gl_FragColor.rgb);float grainAmount=(cos(-PI+(lum*PI*2.))+1.)/2.;gl_FragColor.rgb+=grain*grainAmount;gl_FragColor.rgb=max(gl_FragColor.rgb,0.0);}`;\nz.ShadersStore[dz] = fz;\nclass Pc extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"GrainPostProcess\" string\n */\n getClassName() {\n return \"GrainPostProcess\";\n }\n /**\n * Creates a new instance of @see GrainPostProcess\n * @param name The name of the effect.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\n */\n constructor(e, t, i, s, r, n, o = 0, l = !1) {\n super(e, \"grain\", [\"intensity\", \"animatedSeed\"], [], t, i, s, r, n, null, o, void 0, null, l), this.intensity = 30, this.animated = !1, this.onApplyObservable.add((h) => {\n h.setFloat(\"intensity\", this.intensity), h.setFloat(\"animatedSeed\", this.animated ? Math.random() + 1 : 1);\n });\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new Pc(e.name, e.options, t, e.renderTargetSamplingMode, i.getEngine(), e.reusable), e, i, s);\n }\n}\ny([\n I()\n], Pc.prototype, \"intensity\", void 0);\ny([\n I()\n], Pc.prototype, \"animated\", void 0);\nU(\"BABYLON.GrainPostProcess\", Pc);\nconst pz = \"highlightsPixelShader\", _z = `varying vec2 vUV;uniform sampler2D textureSampler;const vec3 RGBLuminanceCoefficients=vec3(0.2126,0.7152,0.0722);\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{vec4 tex=texture2D(textureSampler,vUV);vec3 c=tex.rgb;float luma=dot(c.rgb,RGBLuminanceCoefficients);gl_FragColor=vec4(pow(c,vec3(25.0-luma*15.0)),tex.a); }`;\nz.ShadersStore[pz] = _z;\nconst mz = \"imageProcessingPixelShader\", gz = `varying vec2 vUV;uniform sampler2D textureSampler;\n#include\n#include\n#include\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{vec4 result=texture2D(textureSampler,vUV);\n#ifdef IMAGEPROCESSING\n#ifndef FROMLINEARSPACE\nresult.rgb=toLinearSpace(result.rgb);\n#endif\nresult=applyImageProcessing(result);\n#else\n#ifdef FROMLINEARSPACE\nresult=applyImageProcessing(result);\n#endif\n#endif\ngl_FragColor=result;}`;\nz.ShadersStore[mz] = gz;\nclass Zv extends Be {\n /**\n * Gets the image processing configuration used either in this material.\n */\n get imageProcessingConfiguration() {\n return this._imageProcessingConfiguration;\n }\n /**\n * Sets the Default image processing configuration used either in the this material.\n *\n * If sets to null, the scene one is in use.\n */\n set imageProcessingConfiguration(e) {\n e.applyByPostProcess = !0, this._attachImageProcessingConfiguration(e);\n }\n /**\n * Attaches a new image processing configuration to the PBR Material.\n * @param configuration\n * @param doNotBuild\n */\n _attachImageProcessingConfiguration(e, t = !1) {\n if (e !== this._imageProcessingConfiguration) {\n if (this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), e)\n this._imageProcessingConfiguration = e;\n else {\n let i = null;\n const s = this.getEngine(), r = this.getCamera();\n if (r)\n i = r.getScene();\n else if (s && s.scenes) {\n const n = s.scenes;\n i = n[n.length - 1];\n } else\n i = Me.LastCreatedScene;\n i ? this._imageProcessingConfiguration = i.imageProcessingConfiguration : this._imageProcessingConfiguration = new pt();\n }\n this._imageProcessingConfiguration && (this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(() => {\n this._updateParameters();\n })), t || this._updateParameters();\n }\n }\n /**\n * If the post process is supported.\n */\n get isSupported() {\n const e = this.getEffect();\n return !e || e.isSupported;\n }\n /**\n * Gets Color curves setup used in the effect if colorCurvesEnabled is set to true .\n */\n get colorCurves() {\n return this.imageProcessingConfiguration.colorCurves;\n }\n /**\n * Sets Color curves setup used in the effect if colorCurvesEnabled is set to true .\n */\n set colorCurves(e) {\n this.imageProcessingConfiguration.colorCurves = e;\n }\n /**\n * Gets whether the color curves effect is enabled.\n */\n get colorCurvesEnabled() {\n return this.imageProcessingConfiguration.colorCurvesEnabled;\n }\n /**\n * Sets whether the color curves effect is enabled.\n */\n set colorCurvesEnabled(e) {\n this.imageProcessingConfiguration.colorCurvesEnabled = e;\n }\n /**\n * Gets Color grading LUT texture used in the effect if colorGradingEnabled is set to true.\n */\n get colorGradingTexture() {\n return this.imageProcessingConfiguration.colorGradingTexture;\n }\n /**\n * Sets Color grading LUT texture used in the effect if colorGradingEnabled is set to true.\n */\n set colorGradingTexture(e) {\n this.imageProcessingConfiguration.colorGradingTexture = e;\n }\n /**\n * Gets whether the color grading effect is enabled.\n */\n get colorGradingEnabled() {\n return this.imageProcessingConfiguration.colorGradingEnabled;\n }\n /**\n * Gets whether the color grading effect is enabled.\n */\n set colorGradingEnabled(e) {\n this.imageProcessingConfiguration.colorGradingEnabled = e;\n }\n /**\n * Gets exposure used in the effect.\n */\n get exposure() {\n return this.imageProcessingConfiguration.exposure;\n }\n /**\n * Sets exposure used in the effect.\n */\n set exposure(e) {\n this.imageProcessingConfiguration.exposure = e;\n }\n /**\n * Gets whether tonemapping is enabled or not.\n */\n get toneMappingEnabled() {\n return this._imageProcessingConfiguration.toneMappingEnabled;\n }\n /**\n * Sets whether tonemapping is enabled or not\n */\n set toneMappingEnabled(e) {\n this._imageProcessingConfiguration.toneMappingEnabled = e;\n }\n /**\n * Gets the type of tone mapping effect.\n */\n get toneMappingType() {\n return this._imageProcessingConfiguration.toneMappingType;\n }\n /**\n * Sets the type of tone mapping effect.\n */\n set toneMappingType(e) {\n this._imageProcessingConfiguration.toneMappingType = e;\n }\n /**\n * Gets contrast used in the effect.\n */\n get contrast() {\n return this.imageProcessingConfiguration.contrast;\n }\n /**\n * Sets contrast used in the effect.\n */\n set contrast(e) {\n this.imageProcessingConfiguration.contrast = e;\n }\n /**\n * Gets Vignette stretch size.\n */\n get vignetteStretch() {\n return this.imageProcessingConfiguration.vignetteStretch;\n }\n /**\n * Sets Vignette stretch size.\n */\n set vignetteStretch(e) {\n this.imageProcessingConfiguration.vignetteStretch = e;\n }\n /**\n * Gets Vignette center X Offset.\n * @deprecated use vignetteCenterX instead\n */\n get vignetteCentreX() {\n return this.imageProcessingConfiguration.vignetteCenterX;\n }\n /**\n * Sets Vignette center X Offset.\n * @deprecated use vignetteCenterX instead\n */\n set vignetteCentreX(e) {\n this.imageProcessingConfiguration.vignetteCenterX = e;\n }\n /**\n * Gets Vignette center Y Offset.\n * @deprecated use vignetteCenterY instead\n */\n get vignetteCentreY() {\n return this.imageProcessingConfiguration.vignetteCenterY;\n }\n /**\n * Sets Vignette center Y Offset.\n * @deprecated use vignetteCenterY instead\n */\n set vignetteCentreY(e) {\n this.imageProcessingConfiguration.vignetteCenterY = e;\n }\n /**\n * Vignette center Y Offset.\n */\n get vignetteCenterY() {\n return this.imageProcessingConfiguration.vignetteCenterY;\n }\n set vignetteCenterY(e) {\n this.imageProcessingConfiguration.vignetteCenterY = e;\n }\n /**\n * Vignette center X Offset.\n */\n get vignetteCenterX() {\n return this.imageProcessingConfiguration.vignetteCenterX;\n }\n set vignetteCenterX(e) {\n this.imageProcessingConfiguration.vignetteCenterX = e;\n }\n /**\n * Gets Vignette weight or intensity of the vignette effect.\n */\n get vignetteWeight() {\n return this.imageProcessingConfiguration.vignetteWeight;\n }\n /**\n * Sets Vignette weight or intensity of the vignette effect.\n */\n set vignetteWeight(e) {\n this.imageProcessingConfiguration.vignetteWeight = e;\n }\n /**\n * Gets Color of the vignette applied on the screen through the chosen blend mode (vignetteBlendMode)\n * if vignetteEnabled is set to true.\n */\n get vignetteColor() {\n return this.imageProcessingConfiguration.vignetteColor;\n }\n /**\n * Sets Color of the vignette applied on the screen through the chosen blend mode (vignetteBlendMode)\n * if vignetteEnabled is set to true.\n */\n set vignetteColor(e) {\n this.imageProcessingConfiguration.vignetteColor = e;\n }\n /**\n * Gets Camera field of view used by the Vignette effect.\n */\n get vignetteCameraFov() {\n return this.imageProcessingConfiguration.vignetteCameraFov;\n }\n /**\n * Sets Camera field of view used by the Vignette effect.\n */\n set vignetteCameraFov(e) {\n this.imageProcessingConfiguration.vignetteCameraFov = e;\n }\n /**\n * Gets the vignette blend mode allowing different kind of effect.\n */\n get vignetteBlendMode() {\n return this.imageProcessingConfiguration.vignetteBlendMode;\n }\n /**\n * Sets the vignette blend mode allowing different kind of effect.\n */\n set vignetteBlendMode(e) {\n this.imageProcessingConfiguration.vignetteBlendMode = e;\n }\n /**\n * Gets whether the vignette effect is enabled.\n */\n get vignetteEnabled() {\n return this.imageProcessingConfiguration.vignetteEnabled;\n }\n /**\n * Sets whether the vignette effect is enabled.\n */\n set vignetteEnabled(e) {\n this.imageProcessingConfiguration.vignetteEnabled = e;\n }\n /**\n * Gets intensity of the dithering effect.\n */\n get ditheringIntensity() {\n return this.imageProcessingConfiguration.ditheringIntensity;\n }\n /**\n * Sets intensity of the dithering effect.\n */\n set ditheringIntensity(e) {\n this.imageProcessingConfiguration.ditheringIntensity = e;\n }\n /**\n * Gets whether the dithering effect is enabled.\n */\n get ditheringEnabled() {\n return this.imageProcessingConfiguration.ditheringEnabled;\n }\n /**\n * Sets whether the dithering effect is enabled.\n */\n set ditheringEnabled(e) {\n this.imageProcessingConfiguration.ditheringEnabled = e;\n }\n /**\n * Gets whether the input of the processing is in Gamma or Linear Space.\n */\n get fromLinearSpace() {\n return this._fromLinearSpace;\n }\n /**\n * Sets whether the input of the processing is in Gamma or Linear Space.\n */\n set fromLinearSpace(e) {\n this._fromLinearSpace !== e && (this._fromLinearSpace = e, this._updateParameters());\n }\n constructor(e, t, i = null, s, r, n, o = 0, l) {\n super(e, \"imageProcessing\", [], [], t, i, s, r, n, null, o, \"postprocess\", null, !0), this._fromLinearSpace = !0, this._defines = {\n IMAGEPROCESSING: !1,\n VIGNETTE: !1,\n VIGNETTEBLENDMODEMULTIPLY: !1,\n VIGNETTEBLENDMODEOPAQUE: !1,\n TONEMAPPING: 0,\n CONTRAST: !1,\n COLORCURVES: !1,\n COLORGRADING: !1,\n COLORGRADING3D: !1,\n FROMLINEARSPACE: !1,\n SAMPLER3DGREENDEPTH: !1,\n SAMPLER3DBGRMAP: !1,\n DITHER: !1,\n IMAGEPROCESSINGPOSTPROCESS: !1,\n EXPOSURE: !1,\n SKIPFINALCOLORCLAMP: !1\n }, l ? (l.applyByPostProcess = !0, this._attachImageProcessingConfiguration(l, !0), this._updateParameters()) : (this._attachImageProcessingConfiguration(null, !0), this.imageProcessingConfiguration.applyByPostProcess = !0), this.onApply = (h) => {\n this.imageProcessingConfiguration.bind(h, this.aspectRatio);\n };\n }\n /**\n * \"ImageProcessingPostProcess\"\n * @returns \"ImageProcessingPostProcess\"\n */\n getClassName() {\n return \"ImageProcessingPostProcess\";\n }\n /**\n * @internal\n */\n _updateParameters() {\n this._defines.FROMLINEARSPACE = this._fromLinearSpace, this.imageProcessingConfiguration.prepareDefines(this._defines, !0);\n let e = \"\";\n for (const s in this._defines) {\n const r = this._defines[s];\n switch (typeof r) {\n case \"number\":\n case \"string\":\n e += `#define ${s} ${r};\n`;\n break;\n default:\n r && (e += `#define ${s};\n`);\n break;\n }\n }\n const t = [\"textureSampler\"], i = [\"scale\"];\n pt && (pt.PrepareSamplers(t, this._defines), pt.PrepareUniforms(i, this._defines)), this.updateEffect(e, i, t);\n }\n dispose(e) {\n super.dispose(e), this._imageProcessingConfiguration && this._imageProcessingObserver && this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver), this._imageProcessingConfiguration && (this.imageProcessingConfiguration.applyByPostProcess = !1);\n }\n}\ny([\n I()\n], Zv.prototype, \"_fromLinearSpace\", void 0);\nconst xz = \"mrtFragmentDeclaration\", vz = `#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\nlayout(location=0) out vec4 glFragData[{X}];\n#endif\n`;\nz.IncludesShadersStore[xz] = vz;\nconst Tz = \"geometryPixelShader\", Sz = `#extension GL_EXT_draw_buffers : require\n#if defined(BUMP) || !defined(NORMAL)\n#extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\n#ifdef BUMP\nvarying mat4 vWorldView;varying vec3 vNormalW;\n#else\nvarying vec3 vNormalV;\n#endif\nvarying vec4 vViewPos;\n#if defined(POSITION) || defined(BUMP)\nvarying vec3 vPositionW;\n#endif\n#ifdef VELOCITY\nvarying vec4 vCurrentPosition;varying vec4 vPreviousPosition;\n#endif\n#ifdef NEED_UV\nvarying vec2 vUV;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;uniform vec2 vTangentSpaceParams;\n#endif\n#if defined(REFLECTIVITY)\n#if defined(ORMTEXTURE) || defined(SPECULARGLOSSINESSTEXTURE) || defined(REFLECTIVITYTEXTURE)\nuniform sampler2D reflectivitySampler;varying vec2 vReflectivityUV;\n#endif\n#ifdef ALBEDOTEXTURE\nvarying vec2 vAlbedoUV;uniform sampler2D albedoSampler;\n#endif\n#ifdef REFLECTIVITYCOLOR\nuniform vec3 reflectivityColor;\n#endif\n#ifdef ALBEDOCOLOR\nuniform vec3 albedoColor;\n#endif\n#ifdef METALLIC\nuniform float metallic;\n#endif\n#if defined(ROUGHNESS) || defined(GLOSSINESS)\nuniform float glossiness;\n#endif\n#endif\n#if defined(ALPHATEST) && defined(NEED_UV)\nuniform sampler2D diffuseSampler;\n#endif\n#include\n#include[RENDER_TARGET_COUNT]\n#include\n#include\n#include\nvoid main() {\n#include\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\ndiscard;\n#endif\nvec3 normalOutput;\n#ifdef BUMP\nvec3 normalW=normalize(vNormalW);\n#include\n#ifdef NORMAL_WORLDSPACE\nnormalOutput=normalW;\n#else\nnormalOutput=normalize(vec3(vWorldView*vec4(normalW,0.0)));\n#endif\n#else\nnormalOutput=normalize(vNormalV);\n#endif\n#ifdef ENCODE_NORMAL\nnormalOutput=normalOutput*0.5+0.5;\n#endif\n#ifdef PREPASS\n#ifdef PREPASS_DEPTH\ngl_FragData[DEPTH_INDEX]=vec4(vViewPos.z/vViewPos.w,0.0,0.0,1.0);\n#endif\n#ifdef PREPASS_NORMAL\ngl_FragData[NORMAL_INDEX]=vec4(normalOutput,1.0);\n#endif\n#else\ngl_FragData[0]=vec4(vViewPos.z/vViewPos.w,0.0,0.0,1.0);gl_FragData[1]=vec4(normalOutput,1.0);\n#endif\n#ifdef POSITION\ngl_FragData[POSITION_INDEX]=vec4(vPositionW,1.0);\n#endif\n#ifdef VELOCITY\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;gl_FragData[VELOCITY_INDEX]=vec4(velocity,0.0,1.0);\n#endif\n#ifdef REFLECTIVITY\nvec4 reflectivity=vec4(0.0,0.0,0.0,1.0);\n#ifdef METALLICWORKFLOW\nfloat metal=1.0;float roughness=1.0;\n#ifdef ORMTEXTURE\nmetal*=texture2D(reflectivitySampler,vReflectivityUV).b;roughness*=texture2D(reflectivitySampler,vReflectivityUV).g;\n#endif\n#ifdef METALLIC\nmetal*=metallic;\n#endif\n#ifdef ROUGHNESS\nroughness*=(1.0-glossiness); \n#endif\nreflectivity.a-=roughness;vec3 color=vec3(1.0);\n#ifdef ALBEDOTEXTURE\ncolor=texture2D(albedoSampler,vAlbedoUV).rgb;\n#ifdef GAMMAALBEDO\ncolor=toLinearSpace(color);\n#endif\n#endif\n#ifdef ALBEDOCOLOR\ncolor*=albedoColor.xyz;\n#endif\nreflectivity.rgb=mix(vec3(0.04),color,metal);\n#else\n#if defined(SPECULARGLOSSINESSTEXTURE) || defined(REFLECTIVITYTEXTURE)\nreflectivity=texture2D(reflectivitySampler,vReflectivityUV);\n#ifdef GAMMAREFLECTIVITYTEXTURE\nreflectivity.rgb=toLinearSpace(reflectivity.rgb);\n#endif\n#else \n#ifdef REFLECTIVITYCOLOR\nreflectivity.rgb=toLinearSpace(reflectivityColor.xyz);reflectivity.a=1.0;\n#endif\n#endif\n#ifdef GLOSSINESSS\nreflectivity.a*=glossiness; \n#endif\n#endif\ngl_FragData[REFLECTIVITY_INDEX]=reflectivity;\n#endif\n}\n`;\nz.ShadersStore[Tz] = Sz;\nconst bz = \"geometryVertexDeclaration\", Ez = \"uniform mat4 viewProjection;uniform mat4 view;\";\nz.IncludesShadersStore[bz] = Ez;\nconst yz = \"geometryUboDeclaration\", Cz = `#include\n`;\nz.IncludesShadersStore[yz] = Cz;\nconst Az = \"geometryVertexShader\", Rz = `precision highp float;\n#include\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include<__decl__geometryVertex>\n#include\nattribute vec3 position;attribute vec3 normal;\n#ifdef NEED_UV\nvarying vec2 vUV;\n#ifdef ALPHATEST\nuniform mat4 diffuseMatrix;\n#endif\n#ifdef BUMP\nuniform mat4 bumpMatrix;varying vec2 vBumpUV;\n#endif\n#ifdef REFLECTIVITY\nuniform mat4 reflectivityMatrix;uniform mat4 albedoMatrix;varying vec2 vReflectivityUV;varying vec2 vAlbedoUV;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\n#ifdef BUMP\nvarying mat4 vWorldView;\n#endif\n#ifdef BUMP\nvarying vec3 vNormalW;\n#else\nvarying vec3 vNormalV;\n#endif\nvarying vec4 vViewPos;\n#if defined(POSITION) || defined(BUMP)\nvarying vec3 vPositionW;\n#endif\n#ifdef VELOCITY\nuniform mat4 previousViewProjection;varying vec4 vCurrentPosition;varying vec4 vPreviousPosition;\n#endif\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void)\n{vec3 positionUpdated=position;vec3 normalUpdated=normal;\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\n#if defined(VELOCITY) && !defined(BONES_VELOCITY_ENABLED)\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\n#endif\n#include\n#include\nvec4 worldPos=vec4(finalWorld*vec4(positionUpdated,1.0));\n#ifdef BUMP\nvWorldView=view*finalWorld;vNormalW=normalUpdated;\n#else\n#ifdef NORMAL_WORLDSPACE\nvNormalV=normalize(vec3(finalWorld*vec4(normalUpdated,0.0)));\n#else\nvNormalV=normalize(vec3((view*finalWorld)*vec4(normalUpdated,0.0)));\n#endif\n#endif\nvViewPos=view*worldPos;\n#if defined(VELOCITY) && defined(BONES_VELOCITY_ENABLED)\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\n#if NUM_BONE_INFLUENCERS>0\nmat4 previousInfluence;previousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\npreviousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\npreviousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\npreviousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\n#endif\nvPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);\n#else\nvPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\n#endif\n#endif\n#if defined(POSITION) || defined(BUMP)\nvPositionW=worldPos.xyz/worldPos.w;\n#endif\ngl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\n#include\n#ifdef NEED_UV\n#ifdef UV1\n#if defined(ALPHATEST) && defined(ALPHATEST_UV1)\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#else\nvUV=uv;\n#endif\n#ifdef BUMP_UV1\nvBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef REFLECTIVITY_UV1\nvReflectivityUV=vec2(reflectivityMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef ALBEDO_UV1\nvAlbedoUV=vec2(albedoMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#endif\n#ifdef UV2\n#if defined(ALPHATEST) && defined(ALPHATEST_UV2)\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#else\nvUV=uv2;\n#endif\n#ifdef BUMP_UV2\nvBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0));\n#endif\n#ifdef REFLECTIVITY_UV2\nvReflectivityUV=vec2(reflectivityMatrix*vec4(uv2,1.0,0.0));\n#endif\n#ifdef ALBEDO_UV2\nvAlbedoUV=vec2(albedoMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n#endif\n#include\n}\n`;\nz.ShadersStore[Az] = Rz;\nconst iI = [\n \"world\",\n \"mBones\",\n \"viewProjection\",\n \"diffuseMatrix\",\n \"view\",\n \"previousWorld\",\n \"previousViewProjection\",\n \"mPreviousBones\",\n \"bumpMatrix\",\n \"reflectivityMatrix\",\n \"albedoMatrix\",\n \"reflectivityColor\",\n \"albedoColor\",\n \"metallic\",\n \"glossiness\",\n \"vTangentSpaceParams\",\n \"vBumpInfos\",\n \"morphTargetInfluences\",\n \"morphTargetCount\",\n \"morphTargetTextureInfo\",\n \"morphTargetTextureIndices\",\n \"boneTextureWidth\"\n];\nLn(iI);\nclass Et {\n /**\n * Gets a boolean indicating if normals are encoded in the [0,1] range in the render target. If true, you should do `normal = normal_rt * 2.0 - 1.0` to get the right normal\n */\n get normalsAreUnsigned() {\n return this._normalsAreUnsigned;\n }\n /**\n * @internal\n * Sets up internal structures to share outputs with PrePassRenderer\n * This method should only be called by the PrePassRenderer itself\n */\n _linkPrePassRenderer(e) {\n this._linkedWithPrePass = !0, this._prePassRenderer = e, this._multiRenderTarget && (this._multiRenderTarget.onClearObservable.clear(), this._multiRenderTarget.onClearObservable.add(() => {\n }));\n }\n /**\n * @internal\n * Separates internal structures from PrePassRenderer so the geometry buffer can now operate by itself.\n * This method should only be called by the PrePassRenderer itself\n */\n _unlinkPrePassRenderer() {\n this._linkedWithPrePass = !1, this._createRenderTargets();\n }\n /**\n * @internal\n * Resets the geometry buffer layout\n */\n _resetLayout() {\n this._enablePosition = !1, this._enableReflectivity = !1, this._enableVelocity = !1, this._attachmentsFromPrePass = [];\n }\n /**\n * @internal\n * Replaces a texture in the geometry buffer renderer\n * Useful when linking textures of the prepass renderer\n */\n _forceTextureType(e, t) {\n e === Et.POSITION_TEXTURE_TYPE ? (this._positionIndex = t, this._enablePosition = !0) : e === Et.VELOCITY_TEXTURE_TYPE ? (this._velocityIndex = t, this._enableVelocity = !0) : e === Et.REFLECTIVITY_TEXTURE_TYPE ? (this._reflectivityIndex = t, this._enableReflectivity = !0) : e === Et.DEPTH_TEXTURE_TYPE ? this._depthIndex = t : e === Et.NORMAL_TEXTURE_TYPE && (this._normalIndex = t);\n }\n /**\n * @internal\n * Sets texture attachments\n * Useful when linking textures of the prepass renderer\n */\n _setAttachments(e) {\n this._attachmentsFromPrePass = e;\n }\n /**\n * @internal\n * Replaces the first texture which is hard coded as a depth texture in the geometry buffer\n * Useful when linking textures of the prepass renderer\n */\n _linkInternalTexture(e) {\n this._multiRenderTarget.setInternalTexture(e, 0, !1);\n }\n /**\n * Gets the render list (meshes to be rendered) used in the G buffer.\n */\n get renderList() {\n return this._multiRenderTarget.renderList;\n }\n /**\n * Set the render list (meshes to be rendered) used in the G buffer.\n */\n set renderList(e) {\n this._multiRenderTarget.renderList = e;\n }\n /**\n * Gets whether or not G buffer are supported by the running hardware.\n * This requires draw buffer supports\n */\n get isSupported() {\n return this._multiRenderTarget.isSupported;\n }\n /**\n * Returns the index of the given texture type in the G-Buffer textures array\n * @param textureType The texture type constant. For example GeometryBufferRenderer.POSITION_TEXTURE_INDEX\n * @returns the index of the given texture type in the G-Buffer textures array\n */\n getTextureIndex(e) {\n switch (e) {\n case Et.POSITION_TEXTURE_TYPE:\n return this._positionIndex;\n case Et.VELOCITY_TEXTURE_TYPE:\n return this._velocityIndex;\n case Et.REFLECTIVITY_TEXTURE_TYPE:\n return this._reflectivityIndex;\n case Et.DEPTH_TEXTURE_TYPE:\n return this._linkedWithPrePass ? this._depthIndex : 0;\n case Et.NORMAL_TEXTURE_TYPE:\n return this._linkedWithPrePass ? this._normalIndex : 1;\n default:\n return -1;\n }\n }\n /**\n * @returns a boolean indicating if objects positions are enabled for the G buffer.\n */\n get enablePosition() {\n return this._enablePosition;\n }\n /**\n * Sets whether or not objects positions are enabled for the G buffer.\n */\n set enablePosition(e) {\n this._enablePosition = e, this._linkedWithPrePass || (this.dispose(), this._createRenderTargets());\n }\n /**\n * @returns a boolean indicating if objects velocities are enabled for the G buffer.\n */\n get enableVelocity() {\n return this._enableVelocity;\n }\n /**\n * Sets whether or not objects velocities are enabled for the G buffer.\n */\n set enableVelocity(e) {\n this._enableVelocity = e, e || (this._previousTransformationMatrices = {}), this._linkedWithPrePass || (this.dispose(), this._createRenderTargets()), this._scene.needsPreviousWorldMatrices = e;\n }\n /**\n * Gets a boolean indicating if objects reflectivity are enabled in the G buffer.\n */\n get enableReflectivity() {\n return this._enableReflectivity;\n }\n /**\n * Sets whether or not objects reflectivity are enabled for the G buffer.\n * For Metallic-Roughness workflow with ORM texture, we assume that ORM texture is defined according to the default layout:\n * pbr.useRoughnessFromMetallicTextureAlpha = false;\n * pbr.useRoughnessFromMetallicTextureGreen = true;\n * pbr.useMetallnessFromMetallicTextureBlue = true;\n */\n set enableReflectivity(e) {\n this._enableReflectivity = e, this._linkedWithPrePass || (this.dispose(), this._createRenderTargets());\n }\n /**\n * Gets the scene associated with the buffer.\n */\n get scene() {\n return this._scene;\n }\n /**\n * Gets the ratio used by the buffer during its creation.\n * How big is the buffer related to the main canvas.\n */\n get ratio() {\n return typeof this._ratioOrDimensions == \"object\" ? 1 : this._ratioOrDimensions;\n }\n /**\n * Creates a new G Buffer for the scene\n * @param scene The scene the buffer belongs to\n * @param ratioOrDimensions How big is the buffer related to the main canvas (default: 1). You can also directly pass a width and height for the generated textures\n * @param depthFormat Format of the depth texture (default: 15)\n * @param textureTypesAndFormats The types and formats of textures to create as render targets. If not provided, all textures will be RGBA and float or half float, depending on the engine capabilities.\n */\n constructor(e, t = 1, i = 15, s) {\n this._previousTransformationMatrices = {}, this._previousBonesTransformationMatrices = {}, this.excludedSkinnedMeshesFromVelocity = [], this.renderTransparentMeshes = !0, this.generateNormalsInWorldSpace = !1, this._normalsAreUnsigned = !1, this._resizeObserver = null, this._enablePosition = !1, this._enableVelocity = !1, this._enableReflectivity = !1, this._clearColor = new Ce(0, 0, 0, 0), this._clearDepthColor = new Ce(1e8, 0, 0, 1), this._positionIndex = -1, this._velocityIndex = -1, this._reflectivityIndex = -1, this._depthIndex = -1, this._normalIndex = -1, this._linkedWithPrePass = !1, this.useSpecificClearForDepthTexture = !1, this._scene = e, this._ratioOrDimensions = t, this._useUbo = e.getEngine().supportsUniformBuffers, this._depthFormat = i, this._textureTypesAndFormats = s || {}, Et._SceneComponentInitialization(this._scene), this._createRenderTargets();\n }\n /**\n * Checks whether everything is ready to render a submesh to the G buffer.\n * @param subMesh the submesh to check readiness for\n * @param useInstances is the mesh drawn using instance or not\n * @returns true if ready otherwise false\n */\n isReady(e, t) {\n const i = e.getMaterial();\n if (i && i.disableDepthWrite)\n return !1;\n const s = [], r = [R.PositionKind, R.NormalKind], n = e.getMesh();\n if (i) {\n let f = !1;\n if (i.needAlphaTesting() && i.getAlphaTestTexture() && (s.push(\"#define ALPHATEST\"), s.push(`#define ALPHATEST_UV${i.getAlphaTestTexture().coordinatesIndex + 1}`), f = !0), i.bumpTexture && xe.BumpTextureEnabled && (s.push(\"#define BUMP\"), s.push(`#define BUMP_UV${i.bumpTexture.coordinatesIndex + 1}`), f = !0), this._enableReflectivity) {\n let p = !1;\n i.getClassName() === \"PBRMetallicRoughnessMaterial\" ? (i.metallicRoughnessTexture && (s.push(\"#define ORMTEXTURE\"), s.push(`#define REFLECTIVITY_UV${i.metallicRoughnessTexture.coordinatesIndex + 1}`), s.push(\"#define METALLICWORKFLOW\"), f = !0, p = !0), i.metallic != null && (s.push(\"#define METALLIC\"), s.push(\"#define METALLICWORKFLOW\"), p = !0), i.roughness != null && (s.push(\"#define ROUGHNESS\"), s.push(\"#define METALLICWORKFLOW\"), p = !0), p && (i.baseTexture && (s.push(\"#define ALBEDOTEXTURE\"), s.push(`#define ALBEDO_UV${i.baseTexture.coordinatesIndex + 1}`), i.baseTexture.gammaSpace && s.push(\"#define GAMMAALBEDO\"), f = !0), i.baseColor && s.push(\"#define ALBEDOCOLOR\"))) : i.getClassName() === \"PBRSpecularGlossinessMaterial\" ? (i.specularGlossinessTexture ? (s.push(\"#define SPECULARGLOSSINESSTEXTURE\"), s.push(`#define REFLECTIVITY_UV${i.specularGlossinessTexture.coordinatesIndex + 1}`), f = !0, i.specularGlossinessTexture.gammaSpace && s.push(\"#define GAMMAREFLECTIVITYTEXTURE\")) : i.specularColor && s.push(\"#define REFLECTIVITYCOLOR\"), i.glossiness != null && s.push(\"#define GLOSSINESS\")) : i.getClassName() === \"PBRMaterial\" ? (i.metallicTexture && (s.push(\"#define ORMTEXTURE\"), s.push(`#define REFLECTIVITY_UV${i.metallicTexture.coordinatesIndex + 1}`), s.push(\"#define METALLICWORKFLOW\"), f = !0, p = !0), i.metallic != null && (s.push(\"#define METALLIC\"), s.push(\"#define METALLICWORKFLOW\"), p = !0), i.roughness != null && (s.push(\"#define ROUGHNESS\"), s.push(\"#define METALLICWORKFLOW\"), p = !0), p ? (i.albedoTexture && (s.push(\"#define ALBEDOTEXTURE\"), s.push(`#define ALBEDO_UV${i.albedoTexture.coordinatesIndex + 1}`), i.albedoTexture.gammaSpace && s.push(\"#define GAMMAALBEDO\"), f = !0), i.albedoColor && s.push(\"#define ALBEDOCOLOR\")) : (i.reflectivityTexture ? (s.push(\"#define SPECULARGLOSSINESSTEXTURE\"), s.push(`#define REFLECTIVITY_UV${i.reflectivityTexture.coordinatesIndex + 1}`), i.reflectivityTexture.gammaSpace && s.push(\"#define GAMMAREFLECTIVITYTEXTURE\"), f = !0) : i.reflectivityColor && s.push(\"#define REFLECTIVITYCOLOR\"), i.microSurface != null && s.push(\"#define GLOSSINESS\"))) : i.getClassName() === \"StandardMaterial\" && (i.specularTexture && (s.push(\"#define REFLECTIVITYTEXTURE\"), s.push(`#define REFLECTIVITY_UV${i.specularTexture.coordinatesIndex + 1}`), i.specularTexture.gammaSpace && s.push(\"#define GAMMAREFLECTIVITYTEXTURE\"), f = !0), i.specularColor && s.push(\"#define REFLECTIVITYCOLOR\"));\n }\n f && (s.push(\"#define NEED_UV\"), n.isVerticesDataPresent(R.UVKind) && (r.push(R.UVKind), s.push(\"#define UV1\")), n.isVerticesDataPresent(R.UV2Kind) && (r.push(R.UV2Kind), s.push(\"#define UV2\")));\n }\n this._linkedWithPrePass && (s.push(\"#define PREPASS\"), this._depthIndex !== -1 && (s.push(\"#define DEPTH_INDEX \" + this._depthIndex), s.push(\"#define PREPASS_DEPTH\")), this._normalIndex !== -1 && (s.push(\"#define NORMAL_INDEX \" + this._normalIndex), s.push(\"#define PREPASS_NORMAL\"))), this._enablePosition && (s.push(\"#define POSITION\"), s.push(\"#define POSITION_INDEX \" + this._positionIndex)), this._enableVelocity && (s.push(\"#define VELOCITY\"), s.push(\"#define VELOCITY_INDEX \" + this._velocityIndex), this.excludedSkinnedMeshesFromVelocity.indexOf(n) === -1 && s.push(\"#define BONES_VELOCITY_ENABLED\")), this._enableReflectivity && (s.push(\"#define REFLECTIVITY\"), s.push(\"#define REFLECTIVITY_INDEX \" + this._reflectivityIndex)), this.generateNormalsInWorldSpace && s.push(\"#define NORMAL_WORLDSPACE\"), this._normalsAreUnsigned && s.push(\"#define ENCODE_NORMAL\"), n.useBones && n.computeBonesUsingShaders && n.skeleton ? (r.push(R.MatricesIndicesKind), r.push(R.MatricesWeightsKind), n.numBoneInfluencers > 4 && (r.push(R.MatricesIndicesExtraKind), r.push(R.MatricesWeightsExtraKind)), s.push(\"#define NUM_BONE_INFLUENCERS \" + n.numBoneInfluencers), s.push(\"#define BONETEXTURE \" + n.skeleton.isUsingTextureForMatrices), s.push(\"#define BonesPerMesh \" + (n.skeleton.bones.length + 1))) : (s.push(\"#define NUM_BONE_INFLUENCERS 0\"), s.push(\"#define BONETEXTURE false\"), s.push(\"#define BonesPerMesh 0\"));\n const o = n.morphTargetManager;\n let l = 0;\n o && (l = o.numMaxInfluencers || o.numInfluencers, l > 0 && (s.push(\"#define MORPHTARGETS\"), s.push(\"#define NUM_MORPH_INFLUENCERS \" + l), o.isUsingTextureForTargets && s.push(\"#define MORPHTARGETS_TEXTURE\"), mc(r, n, l))), t && (s.push(\"#define INSTANCES\"), So(r, this._enableVelocity), e.getRenderingMesh().hasThinInstances && s.push(\"#define THIN_INSTANCES\")), this._linkedWithPrePass ? s.push(\"#define RENDER_TARGET_COUNT \" + this._attachmentsFromPrePass.length) : s.push(\"#define RENDER_TARGET_COUNT \" + this._multiRenderTarget.textures.length), tl(i, this._scene, s);\n const h = this._scene.getEngine(), c = e._getDrawWrapper(void 0, !0), u = c.defines, d = s.join(`\n`);\n return u !== d && c.setEffect(h.createEffect(\"geometry\", {\n attributes: r,\n uniformsNames: iI,\n samplers: [\"diffuseSampler\", \"bumpSampler\", \"reflectivitySampler\", \"albedoSampler\", \"morphTargets\", \"boneSampler\"],\n defines: d,\n onCompiled: null,\n fallbacks: null,\n onError: null,\n uniformBuffersNames: [\"Scene\"],\n indexParameters: { buffersCount: this._multiRenderTarget.textures.length - 1, maxSimultaneousMorphTargets: l }\n }, h), d), c.effect.isReady();\n }\n /**\n * Gets the current underlying G Buffer.\n * @returns the buffer\n */\n getGBuffer() {\n return this._multiRenderTarget;\n }\n /**\n * Gets the number of samples used to render the buffer (anti aliasing).\n */\n get samples() {\n return this._multiRenderTarget.samples;\n }\n /**\n * Sets the number of samples used to render the buffer (anti aliasing).\n */\n set samples(e) {\n this._multiRenderTarget.samples = e;\n }\n /**\n * Disposes the renderer and frees up associated resources.\n */\n dispose() {\n this._resizeObserver && (this._scene.getEngine().onResizeObservable.remove(this._resizeObserver), this._resizeObserver = null), this.getGBuffer().dispose();\n }\n _assignRenderTargetIndices() {\n const e = [], t = [];\n let i = 2;\n return e.push(\"gBuffer_Depth\", \"gBuffer_Normal\"), t.push(this._textureTypesAndFormats[Et.DEPTH_TEXTURE_TYPE]), t.push(this._textureTypesAndFormats[Et.NORMAL_TEXTURE_TYPE]), this._enablePosition && (this._positionIndex = i, i++, e.push(\"gBuffer_Position\"), t.push(this._textureTypesAndFormats[Et.POSITION_TEXTURE_TYPE])), this._enableVelocity && (this._velocityIndex = i, i++, e.push(\"gBuffer_Velocity\"), t.push(this._textureTypesAndFormats[Et.VELOCITY_TEXTURE_TYPE])), this._enableReflectivity && (this._reflectivityIndex = i, i++, e.push(\"gBuffer_Reflectivity\"), t.push(this._textureTypesAndFormats[Et.REFLECTIVITY_TEXTURE_TYPE])), [i, e, t];\n }\n _createRenderTargets() {\n const e = this._scene.getEngine(), [t, i, s] = this._assignRenderTargetIndices();\n let r = 0;\n e._caps.textureFloat && e._caps.textureFloatLinearFiltering ? r = 1 : e._caps.textureHalfFloat && e._caps.textureHalfFloatLinearFiltering && (r = 2);\n const n = this._ratioOrDimensions.width !== void 0 ? this._ratioOrDimensions : { width: e.getRenderWidth() * this._ratioOrDimensions, height: e.getRenderHeight() * this._ratioOrDimensions }, o = [], l = [];\n for (const m of s)\n m ? (o.push(m.textureType), l.push(m.textureFormat)) : (o.push(r), l.push(5));\n if (this._normalsAreUnsigned = o[Et.NORMAL_TEXTURE_TYPE] === 11 || o[Et.NORMAL_TEXTURE_TYPE] === 13, this._multiRenderTarget = new Oo(\"gBuffer\", n, t, this._scene, { generateMipMaps: !1, generateDepthTexture: !0, types: o, formats: l, depthTextureFormat: this._depthFormat }, i.concat(\"gBuffer_DepthBuffer\")), !this.isSupported)\n return;\n this._multiRenderTarget.wrapU = X.CLAMP_ADDRESSMODE, this._multiRenderTarget.wrapV = X.CLAMP_ADDRESSMODE, this._multiRenderTarget.refreshRate = 1, this._multiRenderTarget.renderParticles = !1, this._multiRenderTarget.renderList = null;\n const h = [!0], c = [!1], u = [!0];\n for (let m = 1; m < t; ++m)\n h.push(!0), u.push(!1), c.push(!0);\n const d = e.buildTextureLayout(h), f = e.buildTextureLayout(c), p = e.buildTextureLayout(u);\n this._multiRenderTarget.onClearObservable.add((m) => {\n m.bindAttachments(this.useSpecificClearForDepthTexture ? f : d), m.clear(this._clearColor, !0, !0, !0), this.useSpecificClearForDepthTexture && (m.bindAttachments(p), m.clear(this._clearDepthColor, !0, !0, !0)), m.bindAttachments(d);\n }), this._resizeObserver = e.onResizeObservable.add(() => {\n if (this._multiRenderTarget) {\n const m = this._ratioOrDimensions.width !== void 0 ? this._ratioOrDimensions : { width: e.getRenderWidth() * this._ratioOrDimensions, height: e.getRenderHeight() * this._ratioOrDimensions };\n this._multiRenderTarget.resize(m);\n }\n });\n const _ = (m) => {\n const x = m.getRenderingMesh(), v = m.getEffectiveMesh(), T = this._scene, E = T.getEngine(), b = m.getMaterial();\n if (!b)\n return;\n if (v._internalAbstractMeshDataInfo._isActiveIntermediate = !1, this._enableVelocity && !this._previousTransformationMatrices[v.uniqueId] && (this._previousTransformationMatrices[v.uniqueId] = {\n world: O.Identity(),\n viewProjection: T.getTransformMatrix()\n }, x.skeleton)) {\n const N = x.skeleton.getTransformMatrices(x);\n this._previousBonesTransformationMatrices[x.uniqueId] = this._copyBonesTransformationMatrices(N, new Float32Array(N.length));\n }\n const S = x._getInstancesRenderList(m._id, !!m.getReplacementMesh());\n if (S.mustReturn)\n return;\n const C = E.getCaps().instancedArrays && (S.visibleInstances[m._id] !== null || x.hasThinInstances), P = v.getWorldMatrix();\n if (this.isReady(m, C)) {\n const N = m._getDrawWrapper();\n if (!N)\n return;\n const F = N.effect;\n E.enableEffect(N), C || x._bind(m, F, b.fillMode), this._useUbo ? (hf(F, this._scene.getSceneUniformBuffer()), this._scene.finalizeSceneUbo()) : (F.setMatrix(\"viewProjection\", T.getTransformMatrix()), F.setMatrix(\"view\", T.getViewMatrix()));\n let $;\n const j = x._instanceDataStorage;\n if (!j.isFrozen && (b.backFaceCulling || b.sideOrientation !== null)) {\n const ne = v._getWorldMatrixDeterminant();\n $ = b._getEffectiveOrientation(x), ne < 0 && ($ = $ === ue.ClockWiseSideOrientation ? ue.CounterClockWiseSideOrientation : ue.ClockWiseSideOrientation);\n } else\n $ = j.sideOrientation;\n if (b._preBind(N, $), b.needAlphaTesting()) {\n const ne = b.getAlphaTestTexture();\n ne && (F.setTexture(\"diffuseSampler\", ne), F.setMatrix(\"diffuseMatrix\", ne.getTextureMatrix()));\n }\n if (b.bumpTexture && T.getEngine().getCaps().standardDerivatives && xe.BumpTextureEnabled && (F.setFloat3(\"vBumpInfos\", b.bumpTexture.coordinatesIndex, 1 / b.bumpTexture.level, b.parallaxScaleBias), F.setMatrix(\"bumpMatrix\", b.bumpTexture.getTextureMatrix()), F.setTexture(\"bumpSampler\", b.bumpTexture), F.setFloat2(\"vTangentSpaceParams\", b.invertNormalMapX ? -1 : 1, b.invertNormalMapY ? -1 : 1)), this._enableReflectivity && (b.getClassName() === \"PBRMetallicRoughnessMaterial\" ? (b.metallicRoughnessTexture !== null && (F.setTexture(\"reflectivitySampler\", b.metallicRoughnessTexture), F.setMatrix(\"reflectivityMatrix\", b.metallicRoughnessTexture.getTextureMatrix())), b.metallic !== null && F.setFloat(\"metallic\", b.metallic), b.roughness !== null && F.setFloat(\"glossiness\", 1 - b.roughness), b.baseTexture !== null && (F.setTexture(\"albedoSampler\", b.baseTexture), F.setMatrix(\"albedoMatrix\", b.baseTexture.getTextureMatrix())), b.baseColor !== null && F.setColor3(\"albedoColor\", b.baseColor)) : b.getClassName() === \"PBRSpecularGlossinessMaterial\" ? (b.specularGlossinessTexture !== null ? (F.setTexture(\"reflectivitySampler\", b.specularGlossinessTexture), F.setMatrix(\"reflectivityMatrix\", b.specularGlossinessTexture.getTextureMatrix())) : b.specularColor !== null && F.setColor3(\"reflectivityColor\", b.specularColor), b.glossiness !== null && F.setFloat(\"glossiness\", b.glossiness)) : b.getClassName() === \"PBRMaterial\" ? (b.metallicTexture !== null && (F.setTexture(\"reflectivitySampler\", b.metallicTexture), F.setMatrix(\"reflectivityMatrix\", b.metallicTexture.getTextureMatrix())), b.metallic !== null && F.setFloat(\"metallic\", b.metallic), b.roughness !== null && F.setFloat(\"glossiness\", 1 - b.roughness), b.roughness !== null || b.metallic !== null || b.metallicTexture !== null ? (b.albedoTexture !== null && (F.setTexture(\"albedoSampler\", b.albedoTexture), F.setMatrix(\"albedoMatrix\", b.albedoTexture.getTextureMatrix())), b.albedoColor !== null && F.setColor3(\"albedoColor\", b.albedoColor)) : (b.reflectivityTexture !== null ? (F.setTexture(\"reflectivitySampler\", b.reflectivityTexture), F.setMatrix(\"reflectivityMatrix\", b.reflectivityTexture.getTextureMatrix())) : b.reflectivityColor !== null && F.setColor3(\"reflectivityColor\", b.reflectivityColor), b.microSurface !== null && F.setFloat(\"glossiness\", b.microSurface))) : b.getClassName() === \"StandardMaterial\" && (b.specularTexture !== null && (F.setTexture(\"reflectivitySampler\", b.specularTexture), F.setMatrix(\"reflectivityMatrix\", b.specularTexture.getTextureMatrix())), b.specularColor !== null && F.setColor3(\"reflectivityColor\", b.specularColor))), Tn(F, b, this._scene), x.useBones && x.computeBonesUsingShaders && x.skeleton) {\n const ne = x.skeleton;\n if (ne.isUsingTextureForMatrices && F.getUniformIndex(\"boneTextureWidth\") > -1) {\n const te = ne.getTransformMatrixTexture(x);\n F.setTexture(\"boneSampler\", te), F.setFloat(\"boneTextureWidth\", 4 * (ne.bones.length + 1));\n } else\n F.setMatrices(\"mBones\", x.skeleton.getTransformMatrices(x));\n this._enableVelocity && F.setMatrices(\"mPreviousBones\", this._previousBonesTransformationMatrices[x.uniqueId]);\n }\n na(x, F), x.morphTargetManager && x.morphTargetManager.isUsingTextureForTargets && x.morphTargetManager._bind(F), this._enableVelocity && (F.setMatrix(\"previousWorld\", this._previousTransformationMatrices[v.uniqueId].world), F.setMatrix(\"previousViewProjection\", this._previousTransformationMatrices[v.uniqueId].viewProjection)), C && x.hasThinInstances && F.setMatrix(\"world\", P), x._processRendering(v, m, F, b.fillMode, S, C, (ne, te) => {\n ne || F.setMatrix(\"world\", te);\n });\n }\n this._enableVelocity && (this._previousTransformationMatrices[v.uniqueId].world = P.clone(), this._previousTransformationMatrices[v.uniqueId].viewProjection = this._scene.getTransformMatrix().clone(), x.skeleton && this._copyBonesTransformationMatrices(x.skeleton.getTransformMatrices(x), this._previousBonesTransformationMatrices[v.uniqueId]));\n };\n this._multiRenderTarget.customIsReadyFunction = (m, x, v) => {\n if ((v || x === 0) && m.subMeshes)\n for (let T = 0; T < m.subMeshes.length; ++T) {\n const E = m.subMeshes[T], b = E.getMaterial(), S = E.getRenderingMesh();\n if (!b)\n continue;\n const C = S._getInstancesRenderList(E._id, !!E.getReplacementMesh()), P = e.getCaps().instancedArrays && (C.visibleInstances[E._id] !== null || S.hasThinInstances);\n if (!this.isReady(E, P))\n return !1;\n }\n return !0;\n }, this._multiRenderTarget.customRenderFunction = (m, x, v, T) => {\n let E;\n if (this._linkedWithPrePass) {\n if (!this._prePassRenderer.enabled)\n return;\n this._scene.getEngine().bindAttachments(this._attachmentsFromPrePass);\n }\n if (T.length) {\n for (e.setColorWrite(!1), E = 0; E < T.length; E++)\n _(T.data[E]);\n e.setColorWrite(!0);\n }\n for (E = 0; E < m.length; E++)\n _(m.data[E]);\n for (e.setDepthWrite(!1), E = 0; E < x.length; E++)\n _(x.data[E]);\n if (this.renderTransparentMeshes)\n for (E = 0; E < v.length; E++)\n _(v.data[E]);\n e.setDepthWrite(!0);\n };\n }\n // Copies the bones transformation matrices into the target array and returns the target's reference\n _copyBonesTransformationMatrices(e, t) {\n for (let i = 0; i < e.length; i++)\n t[i] = e[i];\n return t;\n }\n}\nEt.DEPTH_TEXTURE_TYPE = 0;\nEt.NORMAL_TEXTURE_TYPE = 1;\nEt.POSITION_TEXTURE_TYPE = 2;\nEt.VELOCITY_TEXTURE_TYPE = 3;\nEt.REFLECTIVITY_TEXTURE_TYPE = 4;\nEt._SceneComponentInitialization = (a) => {\n throw $e(\"GeometryBufferRendererSceneComponent\");\n};\nclass Iz {\n constructor() {\n this.enabled = !1, this.name = \"motionBlur\", this.texturesRequired = [2];\n }\n}\nObject.defineProperty(De.prototype, \"geometryBufferRenderer\", {\n get: function() {\n return this._geometryBufferRenderer;\n },\n set: function(a) {\n a && a.isSupported && (this._geometryBufferRenderer = a);\n },\n enumerable: !0,\n configurable: !0\n});\nDe.prototype.enableGeometryBufferRenderer = function(a = 1, e = 15, t) {\n return this._geometryBufferRenderer ? this._geometryBufferRenderer : (this._geometryBufferRenderer = new Et(this, a, e, t), this._geometryBufferRenderer.isSupported || (this._geometryBufferRenderer = null), this._geometryBufferRenderer);\n};\nDe.prototype.disableGeometryBufferRenderer = function() {\n this._geometryBufferRenderer && (this._geometryBufferRenderer.dispose(), this._geometryBufferRenderer = null);\n};\nclass Pz {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_GEOMETRYBUFFERRENDERER, this.scene = e;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._gatherRenderTargetsStage.registerStep(me.STEP_GATHERRENDERTARGETS_GEOMETRYBUFFERRENDERER, this, this._gatherRenderTargets);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n }\n _gatherRenderTargets(e) {\n this.scene._geometryBufferRenderer && e.push(this.scene._geometryBufferRenderer.getGBuffer());\n }\n}\nEt._SceneComponentInitialization = (a) => {\n let e = a._getComponent(me.NAME_GEOMETRYBUFFERRENDERER);\n e || (e = new Pz(a), a._addComponent(e));\n};\nconst Mz = \"motionBlurPixelShader\", Dz = `varying vec2 vUV;uniform sampler2D textureSampler;uniform float motionStrength;uniform float motionScale;uniform vec2 screenSize;\n#ifdef OBJECT_BASED\nuniform sampler2D velocitySampler;\n#else\nuniform sampler2D depthSampler;uniform mat4 inverseViewProjection;uniform mat4 prevViewProjection;uniform mat4 projection;\n#endif\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{\n#ifdef GEOMETRY_SUPPORTED\n#ifdef OBJECT_BASED\nvec2 texelSize=1.0/screenSize;vec4 velocityColor=texture2D(velocitySampler,vUV);velocityColor.rg=velocityColor.rg*2.0-vec2(1.0);vec2 velocity=vec2(pow(velocityColor.r,3.0),pow(velocityColor.g,3.0))*velocityColor.a;velocity*=motionScale*motionStrength;float speed=length(velocity/texelSize);int samplesCount=int(clamp(speed,1.0,SAMPLES));velocity=normalize(velocity)*texelSize;float hlim=float(-samplesCount)*0.5+0.5;vec4 result=texture2D(textureSampler,vUV);for (int i=1; i=samplesCount)\nbreak;vec2 offset=vUV+velocity*(hlim+float(i));\n#if defined(WEBGPU)\nresult+=texture2DLodEXT(textureSampler,offset,0.0);\n#else\nresult+=texture2D(textureSampler,offset);\n#endif\n}\ngl_FragColor=result/float(samplesCount);gl_FragColor.a=1.0;\n#else\nvec2 texelSize=1.0/screenSize;float depth=texture2D(depthSampler,vUV).r;depth=projection[2].z+projection[3].z/depth; \nvec4 cpos=vec4(vUV*2.0-1.0,depth,1.0);cpos=inverseViewProjection*cpos;cpos/=cpos.w;vec4 ppos=prevViewProjection*cpos;ppos/=ppos.w;ppos.xy=ppos.xy*0.5+0.5;vec2 velocity=(ppos.xy-vUV)*motionScale*motionStrength;float speed=length(velocity/texelSize);int nSamples=int(clamp(speed,1.0,SAMPLES));vec4 result=texture2D(textureSampler,vUV);for (int i=1; i=nSamples)\nbreak;vec2 offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5);\n#if defined(WEBGPU)\nresult+=texture2DLodEXT(textureSampler,offset1,0.0);\n#else\nresult+=texture2D(textureSampler,offset1);\n#endif\n}\ngl_FragColor=result/float(nSamples);\n#endif\n#else\ngl_FragColor=texture2D(textureSampler,vUV);\n#endif\n}\n`;\nz.ShadersStore[Mz] = Dz;\nclass Yl extends Be {\n /**\n * Gets the number of iterations are used for motion blur quality. Default value is equal to 32\n */\n get motionBlurSamples() {\n return this._motionBlurSamples;\n }\n /**\n * Sets the number of iterations to be used for motion blur quality\n */\n set motionBlurSamples(e) {\n this._motionBlurSamples = e, this._updateEffect();\n }\n /**\n * Gets whether or not the motion blur post-process is in object based mode.\n */\n get isObjectBased() {\n return this._isObjectBased;\n }\n /**\n * Sets whether or not the motion blur post-process is in object based mode.\n */\n set isObjectBased(e) {\n this._isObjectBased !== e && (this._isObjectBased = e, this._applyMode());\n }\n get _geometryBufferRenderer() {\n return this._forceGeometryBuffer ? this._scene.geometryBufferRenderer : null;\n }\n get _prePassRenderer() {\n return this._forceGeometryBuffer ? null : this._scene.prePassRenderer;\n }\n /**\n * Gets a string identifying the name of the class\n * @returns \"MotionBlurPostProcess\" string\n */\n getClassName() {\n return \"MotionBlurPostProcess\";\n }\n /**\n * Creates a new instance MotionBlurPostProcess\n * @param name The name of the effect.\n * @param scene The scene containing the objects to blur according to their velocity.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: true)\n * @param forceGeometryBuffer If this post process should use geometry buffer instead of prepass (default: false)\n */\n constructor(e, t, i, s, r, n, o, l = 0, h = !1, c = !1) {\n super(e, \"motionBlur\", [\"motionStrength\", \"motionScale\", \"screenSize\", \"inverseViewProjection\", \"prevViewProjection\", \"projection\"], [\"velocitySampler\", \"depthSampler\"], i, s, r, n, o, `#define GEOMETRY_SUPPORTED\n#define SAMPLES 64.0\n#define OBJECT_BASED`, l, void 0, null, h), this.motionStrength = 1, this._motionBlurSamples = 32, this._isObjectBased = !0, this._forceGeometryBuffer = !1, this._invViewProjection = null, this._previousViewProjection = null, this._forceGeometryBuffer = c, this._forceGeometryBuffer ? (t.enableGeometryBufferRenderer(), this._geometryBufferRenderer && (this._geometryBufferRenderer.enableVelocity = this._isObjectBased)) : (t.enablePrePassRenderer(), this._prePassRenderer && (this._prePassRenderer.markAsDirty(), this._prePassEffectConfiguration = new Iz())), this._applyMode();\n }\n /**\n * Excludes the given skinned mesh from computing bones velocities.\n * Computing bones velocities can have a cost and that cost. The cost can be saved by calling this function and by passing the skinned mesh reference to ignore.\n * @param skinnedMesh The mesh containing the skeleton to ignore when computing the velocity map.\n */\n excludeSkinnedMesh(e) {\n if (e.skeleton) {\n let t;\n if (this._geometryBufferRenderer)\n t = this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity;\n else if (this._prePassRenderer)\n t = this._prePassRenderer.excludedSkinnedMesh;\n else\n return;\n t.push(e);\n }\n }\n /**\n * Removes the given skinned mesh from the excluded meshes to integrate bones velocities while rendering the velocity map.\n * @param skinnedMesh The mesh containing the skeleton that has been ignored previously.\n * @see excludeSkinnedMesh to exclude a skinned mesh from bones velocity computation.\n */\n removeExcludedSkinnedMesh(e) {\n if (e.skeleton) {\n let t;\n if (this._geometryBufferRenderer)\n t = this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity;\n else if (this._prePassRenderer)\n t = this._prePassRenderer.excludedSkinnedMesh;\n else\n return;\n const i = t.indexOf(e);\n i !== -1 && t.splice(i, 1);\n }\n }\n /**\n * Disposes the post process.\n * @param camera The camera to dispose the post process on.\n */\n dispose(e) {\n this._geometryBufferRenderer && (this._geometryBufferRenderer._previousTransformationMatrices = {}, this._geometryBufferRenderer._previousBonesTransformationMatrices = {}, this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity = []), super.dispose(e);\n }\n /**\n * Called on the mode changed (object based or screen based).\n * @returns void\n */\n _applyMode() {\n if (!this._geometryBufferRenderer && !this._prePassRenderer)\n return L.Warn(\"Multiple Render Target support needed to compute object based motion blur\"), this.updateEffect();\n this._geometryBufferRenderer && (this._geometryBufferRenderer.enableVelocity = this._isObjectBased), this._updateEffect(), this._invViewProjection = null, this._previousViewProjection = null, this.isObjectBased ? (this._prePassRenderer && this._prePassEffectConfiguration && (this._prePassEffectConfiguration.texturesRequired[0] = 2), this.onApply = (e) => this._onApplyObjectBased(e)) : (this._invViewProjection = O.Identity(), this._previousViewProjection = this._scene.getTransformMatrix().clone(), this._prePassRenderer && this._prePassEffectConfiguration && (this._prePassEffectConfiguration.texturesRequired[0] = 5), this.onApply = (e) => this._onApplyScreenBased(e));\n }\n /**\n * Called on the effect is applied when the motion blur post-process is in object based mode.\n * @param effect\n */\n _onApplyObjectBased(e) {\n if (e.setVector2(\"screenSize\", new Q(this.width, this.height)), e.setFloat(\"motionScale\", this._scene.getAnimationRatio()), e.setFloat(\"motionStrength\", this.motionStrength), this._geometryBufferRenderer) {\n const t = this._geometryBufferRenderer.getTextureIndex(Et.VELOCITY_TEXTURE_TYPE);\n e.setTexture(\"velocitySampler\", this._geometryBufferRenderer.getGBuffer().textures[t]);\n } else if (this._prePassRenderer) {\n const t = this._prePassRenderer.getIndex(2);\n e.setTexture(\"velocitySampler\", this._prePassRenderer.getRenderTarget().textures[t]);\n }\n }\n /**\n * Called on the effect is applied when the motion blur post-process is in screen based mode.\n * @param effect\n */\n _onApplyScreenBased(e) {\n const t = w.Matrix[0];\n if (t.copyFrom(this._scene.getTransformMatrix()), t.invertToRef(this._invViewProjection), e.setMatrix(\"inverseViewProjection\", this._invViewProjection), e.setMatrix(\"prevViewProjection\", this._previousViewProjection), this._previousViewProjection.copyFrom(t), e.setMatrix(\"projection\", this._scene.getProjectionMatrix()), e.setVector2(\"screenSize\", new Q(this.width, this.height)), e.setFloat(\"motionScale\", this._scene.getAnimationRatio()), e.setFloat(\"motionStrength\", this.motionStrength), this._geometryBufferRenderer) {\n const i = this._geometryBufferRenderer.getTextureIndex(Et.DEPTH_TEXTURE_TYPE);\n e.setTexture(\"depthSampler\", this._geometryBufferRenderer.getGBuffer().textures[i]);\n } else if (this._prePassRenderer) {\n const i = this._prePassRenderer.getIndex(5);\n e.setTexture(\"depthSampler\", this._prePassRenderer.getRenderTarget().textures[i]);\n }\n }\n /**\n * Called on the effect must be updated (changed mode, samples count, etc.).\n */\n _updateEffect() {\n if (this._geometryBufferRenderer || this._prePassRenderer) {\n const e = [\n \"#define GEOMETRY_SUPPORTED\",\n \"#define SAMPLES \" + this._motionBlurSamples.toFixed(1),\n this._isObjectBased ? \"#define OBJECT_BASED\" : \"#define SCREEN_BASED\"\n ];\n this.updateEffect(e.join(`\n`));\n }\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new Yl(e.name, i, e.options, t, e.renderTargetSamplingMode, i.getEngine(), e.reusable, e.textureType, !1), e, i, s);\n }\n}\ny([\n I()\n], Yl.prototype, \"motionStrength\", void 0);\ny([\n I()\n], Yl.prototype, \"motionBlurSamples\", null);\ny([\n I()\n], Yl.prototype, \"isObjectBased\", null);\nU(\"BABYLON.MotionBlurPostProcess\", Yl);\nconst Oz = \"refractionPixelShader\", wz = \"varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D refractionSampler;uniform vec3 baseColor;uniform float depth;uniform float colorLevel;void main() {float ref=1.0-texture2D(refractionSampler,vUV).r;vec2 uv=vUV-vec2(0.5);vec2 offset=uv*depth*ref;vec3 sourceColor=texture2D(textureSampler,vUV-offset).rgb;gl_FragColor=vec4(sourceColor+sourceColor*ref*colorLevel,1.0);}\";\nz.ShadersStore[Oz] = wz;\nclass jl extends Be {\n /**\n * Gets or sets the refraction texture\n * Please note that you are responsible for disposing the texture if you set it manually\n */\n get refractionTexture() {\n return this._refTexture;\n }\n set refractionTexture(e) {\n this._refTexture && this._ownRefractionTexture && this._refTexture.dispose(), this._refTexture = e, this._ownRefractionTexture = !1;\n }\n /**\n * Gets a string identifying the name of the class\n * @returns \"RefractionPostProcess\" string\n */\n getClassName() {\n return \"RefractionPostProcess\";\n }\n /**\n * Initializes the RefractionPostProcess\n * @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/usePostProcesses#refraction\n * @param name The name of the effect.\n * @param refractionTextureUrl Url of the refraction texture to use\n * @param color the base color of the refraction (used to taint the rendering)\n * @param depth simulated refraction depth\n * @param colorLevel the coefficient of the base color (0 to remove base color tainting)\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n */\n constructor(e, t, i, s, r, n, o, l, h, c) {\n super(e, \"refraction\", [\"baseColor\", \"depth\", \"colorLevel\"], [\"refractionSampler\"], n, o, l, h, c), this._ownRefractionTexture = !0, this.color = i, this.depth = s, this.colorLevel = r, this.refractionTextureUrl = t, this.onActivateObservable.add((u) => {\n this._refTexture = this._refTexture || new X(t, u.getScene());\n }), this.onApplyObservable.add((u) => {\n u.setColor3(\"baseColor\", this.color), u.setFloat(\"depth\", this.depth), u.setFloat(\"colorLevel\", this.colorLevel), u.setTexture(\"refractionSampler\", this._refTexture);\n });\n }\n // Methods\n /**\n * Disposes of the post process\n * @param camera Camera to dispose post process on\n */\n dispose(e) {\n this._refTexture && this._ownRefractionTexture && (this._refTexture.dispose(), this._refTexture = null), super.dispose(e);\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new jl(e.name, e.refractionTextureUrl, e.color, e.depth, e.colorLevel, e.options, t, e.renderTargetSamplingMode, i.getEngine(), e.reusable), e, i, s);\n }\n}\ny([\n I()\n], jl.prototype, \"color\", void 0);\ny([\n I()\n], jl.prototype, \"depth\", void 0);\ny([\n I()\n], jl.prototype, \"colorLevel\", void 0);\ny([\n I()\n], jl.prototype, \"refractionTextureUrl\", void 0);\nU(\"BABYLON.RefractionPostProcess\", jl);\nconst Nz = \"sharpenPixelShader\", Fz = `varying vec2 vUV;uniform sampler2D textureSampler;uniform vec2 screenSize;uniform vec2 sharpnessAmounts;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{vec2 onePixel=vec2(1.0,1.0)/screenSize;vec4 color=texture2D(textureSampler,vUV);vec4 edgeDetection=texture2D(textureSampler,vUV+onePixel*vec2(0,-1)) +\ntexture2D(textureSampler,vUV+onePixel*vec2(-1,0)) +\ntexture2D(textureSampler,vUV+onePixel*vec2(1,0)) +\ntexture2D(textureSampler,vUV+onePixel*vec2(0,1)) -\ncolor*4.0;gl_FragColor=max(vec4(color.rgb*sharpnessAmounts.y,color.a)-(sharpnessAmounts.x*vec4(edgeDetection.rgb,0)),0.);}`;\nz.ShadersStore[Nz] = Fz;\nclass Mc extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"SharpenPostProcess\" string\n */\n getClassName() {\n return \"SharpenPostProcess\";\n }\n /**\n * Creates a new instance ConvolutionPostProcess\n * @param name The name of the effect.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\n */\n constructor(e, t, i, s, r, n, o = 0, l = !1) {\n super(e, \"sharpen\", [\"sharpnessAmounts\", \"screenSize\"], null, t, i, s, r, n, null, o, void 0, null, l), this.colorAmount = 1, this.edgeAmount = 0.3, this.onApply = (h) => {\n h.setFloat2(\"screenSize\", this.width, this.height), h.setFloat2(\"sharpnessAmounts\", this.edgeAmount, this.colorAmount);\n };\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new Mc(e.name, e.options, t, e.renderTargetSamplingMode, i.getEngine(), e.textureType, e.reusable), e, i, s);\n }\n}\ny([\n I()\n], Mc.prototype, \"colorAmount\", void 0);\ny([\n I()\n], Mc.prototype, \"edgeAmount\", void 0);\nU(\"BABYLON.SharpenPostProcess\", Mc);\nclass Kl {\n /**\n * Gets pipeline name\n */\n get name() {\n return this._name;\n }\n /** Gets the list of attached cameras */\n get cameras() {\n return this._cameras;\n }\n /**\n * Initializes a PostProcessRenderPipeline\n * @param _engine engine to add the pipeline to\n * @param name name of the pipeline\n */\n constructor(e, t) {\n this._engine = e, this._name = t, this._renderEffects = {}, this._renderEffectsForIsolatedPass = new Array(), this._cameras = [];\n }\n /**\n * Gets the class name\n * @returns \"PostProcessRenderPipeline\"\n */\n getClassName() {\n return \"PostProcessRenderPipeline\";\n }\n /**\n * If all the render effects in the pipeline are supported\n */\n get isSupported() {\n for (const e in this._renderEffects)\n if (Object.prototype.hasOwnProperty.call(this._renderEffects, e) && !this._renderEffects[e].isSupported)\n return !1;\n return !0;\n }\n /**\n * Adds an effect to the pipeline\n * @param renderEffect the effect to add\n */\n addEffect(e) {\n this._renderEffects[e._name] = e;\n }\n // private\n /** @internal */\n _rebuild() {\n }\n /**\n * @internal\n */\n _enableEffect(e, t) {\n const i = this._renderEffects[e];\n i && i._enable(J.MakeArray(t || this._cameras));\n }\n /**\n * @internal\n */\n _disableEffect(e, t) {\n const i = this._renderEffects[e];\n i && i._disable(J.MakeArray(t || this._cameras));\n }\n /**\n * @internal\n */\n _attachCameras(e, t) {\n const i = J.MakeArray(e || this._cameras);\n if (!i)\n return;\n const s = [];\n let r;\n for (r = 0; r < i.length; r++) {\n const n = i[r];\n n && (this._cameras.indexOf(n) === -1 ? this._cameras.push(n) : t && s.push(r));\n }\n for (r = 0; r < s.length; r++)\n i.splice(s[r], 1);\n for (const n in this._renderEffects)\n Object.prototype.hasOwnProperty.call(this._renderEffects, n) && this._renderEffects[n]._attachCameras(i);\n }\n /**\n * @internal\n */\n _detachCameras(e) {\n const t = J.MakeArray(e || this._cameras);\n if (t) {\n for (const i in this._renderEffects)\n Object.prototype.hasOwnProperty.call(this._renderEffects, i) && this._renderEffects[i]._detachCameras(t);\n for (let i = 0; i < t.length; i++)\n this._cameras.splice(this._cameras.indexOf(t[i]), 1);\n }\n }\n /** @internal */\n _update() {\n for (const e in this._renderEffects)\n Object.prototype.hasOwnProperty.call(this._renderEffects, e) && this._renderEffects[e]._update();\n for (let e = 0; e < this._cameras.length; e++) {\n if (!this._cameras[e])\n continue;\n const t = this._cameras[e].name;\n this._renderEffectsForIsolatedPass[t] && this._renderEffectsForIsolatedPass[t]._update();\n }\n }\n /** @internal */\n _reset() {\n this._renderEffects = {}, this._renderEffectsForIsolatedPass = new Array();\n }\n _enableMSAAOnFirstPostProcess(e) {\n if (!this._engine._features.supportMSAA)\n return !1;\n const t = Object.keys(this._renderEffects);\n if (t.length > 0) {\n const i = this._renderEffects[t[0]].getPostProcesses();\n i && (i[0].samples = e);\n }\n return !0;\n }\n /**\n * Ensures that all post processes in the pipeline are the correct size according to the\n * the viewport's required size\n */\n _adaptPostProcessesToViewPort() {\n const e = Object.keys(this._renderEffects);\n for (const t of e) {\n const i = this._renderEffects[t].getPostProcesses();\n if (i)\n for (const s of i)\n s.adaptScaleToCurrentViewport = !0;\n }\n }\n /**\n * Sets the required values to the prepass renderer.\n * @param prePassRenderer defines the prepass renderer to setup.\n * @returns true if the pre pass is needed.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setPrePassRenderer(e) {\n return !1;\n }\n /**\n * Disposes of the pipeline\n */\n dispose() {\n }\n}\ny([\n I()\n], Kl.prototype, \"_name\", void 0);\nclass Lz {\n /**\n * Initializes a PostProcessRenderPipelineManager\n * @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/postProcessRenderPipeline\n */\n constructor() {\n this._renderPipelines = {};\n }\n /**\n * Gets the list of supported render pipelines\n */\n get supportedPipelines() {\n const e = [];\n for (const t in this._renderPipelines)\n if (Object.prototype.hasOwnProperty.call(this._renderPipelines, t)) {\n const i = this._renderPipelines[t];\n i.isSupported && e.push(i);\n }\n return e;\n }\n /**\n * Adds a pipeline to the manager\n * @param renderPipeline The pipeline to add\n */\n addPipeline(e) {\n this._renderPipelines[e._name] = e;\n }\n /**\n * Remove the pipeline from the manager\n * @param renderPipelineName the name of the pipeline to remove\n */\n removePipeline(e) {\n delete this._renderPipelines[e];\n }\n /**\n * Attaches a camera to the pipeline\n * @param renderPipelineName The name of the pipeline to attach to\n * @param cameras the camera to attach\n * @param unique if the camera can be attached multiple times to the pipeline\n */\n attachCamerasToRenderPipeline(e, t, i = !1) {\n const s = this._renderPipelines[e];\n s && s._attachCameras(t, i);\n }\n /**\n * Detaches a camera from the pipeline\n * @param renderPipelineName The name of the pipeline to detach from\n * @param cameras the camera to detach\n */\n detachCamerasFromRenderPipeline(e, t) {\n const i = this._renderPipelines[e];\n i && i._detachCameras(t);\n }\n /**\n * Enables an effect by name on a pipeline\n * @param renderPipelineName the name of the pipeline to enable the effect in\n * @param renderEffectName the name of the effect to enable\n * @param cameras the cameras that the effect should be enabled on\n */\n enableEffectInPipeline(e, t, i) {\n const s = this._renderPipelines[e];\n s && s._enableEffect(t, i);\n }\n /**\n * Disables an effect by name on a pipeline\n * @param renderPipelineName the name of the pipeline to disable the effect in\n * @param renderEffectName the name of the effect to disable\n * @param cameras the cameras that the effect should be disabled on\n */\n disableEffectInPipeline(e, t, i) {\n const s = this._renderPipelines[e];\n s && s._disableEffect(t, i);\n }\n /**\n * Updates the state of all contained render pipelines and disposes of any non supported pipelines\n */\n update() {\n for (const e in this._renderPipelines)\n if (Object.prototype.hasOwnProperty.call(this._renderPipelines, e)) {\n const t = this._renderPipelines[e];\n t.isSupported ? t._update() : (t.dispose(), delete this._renderPipelines[e]);\n }\n }\n /** @internal */\n _rebuild() {\n for (const e in this._renderPipelines)\n Object.prototype.hasOwnProperty.call(this._renderPipelines, e) && this._renderPipelines[e]._rebuild();\n }\n /**\n * Disposes of the manager and pipelines\n */\n dispose() {\n for (const e in this._renderPipelines)\n Object.prototype.hasOwnProperty.call(this._renderPipelines, e) && this._renderPipelines[e].dispose();\n }\n}\nObject.defineProperty(De.prototype, \"postProcessRenderPipelineManager\", {\n get: function() {\n if (!this._postProcessRenderPipelineManager) {\n let a = this._getComponent(me.NAME_POSTPROCESSRENDERPIPELINEMANAGER);\n a || (a = new Bz(this), this._addComponent(a)), this._postProcessRenderPipelineManager = new Lz();\n }\n return this._postProcessRenderPipelineManager;\n },\n enumerable: !0,\n configurable: !0\n});\nclass Bz {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_POSTPROCESSRENDERPIPELINEMANAGER, this.scene = e;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._gatherRenderTargetsStage.registerStep(me.STEP_GATHERRENDERTARGETS_POSTPROCESSRENDERPIPELINEMANAGER, this, this._gatherRenderTargets);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n this.scene._postProcessRenderPipelineManager && this.scene._postProcessRenderPipelineManager._rebuild();\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n this.scene._postProcessRenderPipelineManager && this.scene._postProcessRenderPipelineManager.dispose();\n }\n _gatherRenderTargets() {\n this.scene._postProcessRenderPipelineManager && this.scene._postProcessRenderPipelineManager.update();\n }\n}\nclass er extends Kl {\n /**\n * Enable or disable automatic building of the pipeline when effects are enabled and disabled.\n * If false, you will have to manually call prepare() to update the pipeline.\n */\n get automaticBuild() {\n return this._buildAllowed;\n }\n set automaticBuild(e) {\n this._buildAllowed = e;\n }\n /**\n * Gets active scene\n */\n get scene() {\n return this._scene;\n }\n /**\n * Enable or disable the sharpen process from the pipeline\n */\n set sharpenEnabled(e) {\n this._sharpenEnabled !== e && (this._sharpenEnabled = e, this._buildPipeline());\n }\n get sharpenEnabled() {\n return this._sharpenEnabled;\n }\n /**\n * Specifies the size of the bloom blur kernel, relative to the final output size\n */\n get bloomKernel() {\n return this._bloomKernel;\n }\n set bloomKernel(e) {\n this._bloomKernel = e, this.bloom.kernel = e / this._hardwareScaleLevel;\n }\n /**\n * The strength of the bloom.\n */\n set bloomWeight(e) {\n this._bloomWeight !== e && (this.bloom.weight = e, this._bloomWeight = e);\n }\n get bloomWeight() {\n return this._bloomWeight;\n }\n /**\n * The luminance threshold to find bright areas of the image to bloom.\n */\n set bloomThreshold(e) {\n this._bloomThreshold !== e && (this.bloom.threshold = e, this._bloomThreshold = e);\n }\n get bloomThreshold() {\n return this._bloomThreshold;\n }\n /**\n * The scale of the bloom, lower value will provide better performance.\n */\n set bloomScale(e) {\n this._bloomScale !== e && (this._bloomScale = e, this._rebuildBloom(), this._buildPipeline());\n }\n get bloomScale() {\n return this._bloomScale;\n }\n /**\n * Enable or disable the bloom from the pipeline\n */\n set bloomEnabled(e) {\n this._bloomEnabled !== e && (this._bloomEnabled = e, this._buildPipeline());\n }\n get bloomEnabled() {\n return this._bloomEnabled;\n }\n _rebuildBloom() {\n const e = this.bloom;\n this.bloom = new hy(this._scene, this.bloomScale, this._bloomWeight, this.bloomKernel / this._hardwareScaleLevel, this._defaultPipelineTextureType, !1), this.bloom.threshold = e.threshold;\n for (let t = 0; t < this._cameras.length; t++)\n e.disposeEffects(this._cameras[t]);\n }\n /**\n * If the depth of field is enabled.\n */\n get depthOfFieldEnabled() {\n return this._depthOfFieldEnabled;\n }\n set depthOfFieldEnabled(e) {\n this._depthOfFieldEnabled !== e && (this._depthOfFieldEnabled = e, this._buildPipeline());\n }\n /**\n * Blur level of the depth of field effect. (Higher blur will effect performance)\n */\n get depthOfFieldBlurLevel() {\n return this._depthOfFieldBlurLevel;\n }\n set depthOfFieldBlurLevel(e) {\n if (this._depthOfFieldBlurLevel === e)\n return;\n this._depthOfFieldBlurLevel = e;\n const t = this.depthOfField;\n this.depthOfField = new uy(this._scene, null, this._depthOfFieldBlurLevel, this._defaultPipelineTextureType, !1), this.depthOfField.focalLength = t.focalLength, this.depthOfField.focusDistance = t.focusDistance, this.depthOfField.fStop = t.fStop, this.depthOfField.lensSize = t.lensSize;\n for (let i = 0; i < this._cameras.length; i++)\n t.disposeEffects(this._cameras[i]);\n this._buildPipeline();\n }\n /**\n * If the anti aliasing is enabled.\n */\n set fxaaEnabled(e) {\n this._fxaaEnabled !== e && (this._fxaaEnabled = e, this._buildPipeline());\n }\n get fxaaEnabled() {\n return this._fxaaEnabled;\n }\n /**\n * MSAA sample count, setting this to 4 will provide 4x anti aliasing. (default: 1)\n */\n set samples(e) {\n this._samples !== e && (this._samples = e, this._buildPipeline());\n }\n get samples() {\n return this._samples;\n }\n /**\n * If image processing is enabled.\n */\n set imageProcessingEnabled(e) {\n this._imageProcessingEnabled !== e && (this._scene.imageProcessingConfiguration.isEnabled = e);\n }\n get imageProcessingEnabled() {\n return this._imageProcessingEnabled;\n }\n /**\n * If glow layer is enabled. (Adds a glow effect to emmissive materials)\n */\n set glowLayerEnabled(e) {\n e && !this._glowLayer ? this._glowLayer = new xn(\"\", this._scene) : !e && this._glowLayer && (this._glowLayer.dispose(), this._glowLayer = null);\n }\n get glowLayerEnabled() {\n return this._glowLayer != null;\n }\n /**\n * Gets the glow layer (or null if not defined)\n */\n get glowLayer() {\n return this._glowLayer;\n }\n /**\n * Enable or disable the chromaticAberration process from the pipeline\n */\n set chromaticAberrationEnabled(e) {\n this._chromaticAberrationEnabled !== e && (this._chromaticAberrationEnabled = e, this._buildPipeline());\n }\n get chromaticAberrationEnabled() {\n return this._chromaticAberrationEnabled;\n }\n /**\n * Enable or disable the grain process from the pipeline\n */\n set grainEnabled(e) {\n this._grainEnabled !== e && (this._grainEnabled = e, this._buildPipeline());\n }\n get grainEnabled() {\n return this._grainEnabled;\n }\n /**\n * Instantiates a DefaultRenderingPipeline.\n * @param name The rendering pipeline name (default: \"\")\n * @param hdr If high dynamic range textures should be used (default: true)\n * @param scene The scene linked to this pipeline (default: the last created scene)\n * @param cameras The array of cameras that the rendering pipeline will be attached to (default: scene.cameras)\n * @param automaticBuild If false, you will have to manually call prepare() to update the pipeline (default: true)\n */\n constructor(e = \"\", t = !0, i = Me.LastCreatedScene, s, r = !0) {\n super(i.getEngine(), e), this._camerasToBeAttached = [], this.SharpenPostProcessId = \"SharpenPostProcessEffect\", this.ImageProcessingPostProcessId = \"ImageProcessingPostProcessEffect\", this.FxaaPostProcessId = \"FxaaPostProcessEffect\", this.ChromaticAberrationPostProcessId = \"ChromaticAberrationPostProcessEffect\", this.GrainPostProcessId = \"GrainPostProcessEffect\", this._glowLayer = null, this.animations = [], this._imageProcessingConfigurationObserver = null, this._sharpenEnabled = !1, this._bloomEnabled = !1, this._depthOfFieldEnabled = !1, this._depthOfFieldBlurLevel = 0, this._fxaaEnabled = !1, this._imageProcessingEnabled = !0, this._bloomScale = 0.5, this._chromaticAberrationEnabled = !1, this._grainEnabled = !1, this._buildAllowed = !0, this.onBuildObservable = new G(), this._resizeObserver = null, this._hardwareScaleLevel = 1, this._bloomKernel = 64, this._bloomWeight = 0.15, this._bloomThreshold = 0.9, this._samples = 1, this._hasCleared = !1, this._prevPostProcess = null, this._prevPrevPostProcess = null, this._depthOfFieldSceneObserver = null, this._activeCameraChangedObserver = null, this._activeCamerasChangedObserver = null, this._cameras = s || i.cameras, this._cameras = this._cameras.slice(), this._camerasToBeAttached = this._cameras.slice(), this._buildAllowed = r, this._scene = i;\n const n = this._scene.getEngine().getCaps();\n this._hdr = t && (n.textureHalfFloatRender || n.textureFloatRender), this._hdr ? n.textureHalfFloatRender ? this._defaultPipelineTextureType = 2 : n.textureFloatRender && (this._defaultPipelineTextureType = 1) : this._defaultPipelineTextureType = 0, i.postProcessRenderPipelineManager.addPipeline(this);\n const o = this._scene.getEngine();\n this.sharpen = new Mc(\"sharpen\", 1, null, X.BILINEAR_SAMPLINGMODE, o, !1, this._defaultPipelineTextureType, !0), this._sharpenEffect = new Ft(o, this.SharpenPostProcessId, () => this.sharpen, !0), this.depthOfField = new uy(this._scene, null, this._depthOfFieldBlurLevel, this._defaultPipelineTextureType, !0), this._hardwareScaleLevel = o.getHardwareScalingLevel(), this._resizeObserver = o.onResizeObservable.add(() => {\n this._hardwareScaleLevel = o.getHardwareScalingLevel(), this.bloomKernel = this._bloomKernel;\n }), this.bloom = new hy(this._scene, this._bloomScale, this._bloomWeight, this.bloomKernel / this._hardwareScaleLevel, this._defaultPipelineTextureType, !0), this.chromaticAberration = new La(\"ChromaticAberration\", o.getRenderWidth(), o.getRenderHeight(), 1, null, X.BILINEAR_SAMPLINGMODE, o, !1, this._defaultPipelineTextureType, !0), this._chromaticAberrationEffect = new Ft(o, this.ChromaticAberrationPostProcessId, () => this.chromaticAberration, !0), this.grain = new Pc(\"Grain\", 1, null, X.BILINEAR_SAMPLINGMODE, o, !1, this._defaultPipelineTextureType, !0), this._grainEffect = new Ft(o, this.GrainPostProcessId, () => this.grain, !0);\n let l = !0;\n this._imageProcessingConfigurationObserver = this._scene.imageProcessingConfiguration.onUpdateParameters.add(() => {\n this.bloom._downscale._exposure = this._scene.imageProcessingConfiguration.exposure, this.imageProcessingEnabled !== this._scene.imageProcessingConfiguration.isEnabled && (this._imageProcessingEnabled = this._scene.imageProcessingConfiguration.isEnabled, l ? J.SetImmediate(() => {\n this._buildPipeline();\n }) : this._buildPipeline());\n }), this._buildPipeline(), l = !1;\n }\n /**\n * Get the class name\n * @returns \"DefaultRenderingPipeline\"\n */\n getClassName() {\n return \"DefaultRenderingPipeline\";\n }\n /**\n * Force the compilation of the entire pipeline.\n */\n prepare() {\n const e = this._buildAllowed;\n this._buildAllowed = !0, this._buildPipeline(), this._buildAllowed = e;\n }\n _setAutoClearAndTextureSharing(e, t = !1) {\n this._hasCleared ? e.autoClear = !1 : (e.autoClear = !0, this._scene.autoClear = !1, this._hasCleared = !0), t || (this._prevPrevPostProcess ? e.shareOutputWith(this._prevPrevPostProcess) : e.useOwnOutput(), this._prevPostProcess && (this._prevPrevPostProcess = this._prevPostProcess), this._prevPostProcess = e);\n }\n _buildPipeline() {\n if (!this._buildAllowed)\n return;\n this._scene.autoClear = !0;\n const e = this._scene.getEngine();\n if (this._disposePostProcesses(), this._cameras !== null && (this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), this._cameras = this._camerasToBeAttached.slice()), this._reset(), this._prevPostProcess = null, this._prevPrevPostProcess = null, this._hasCleared = !1, this.depthOfFieldEnabled) {\n if (this._cameras.length > 1) {\n for (const t of this._cameras) {\n const i = this._scene.enableDepthRenderer(t);\n i.useOnlyInActiveCamera = !0;\n }\n this._depthOfFieldSceneObserver = this._scene.onAfterRenderTargetsRenderObservable.add((t) => {\n this._cameras.indexOf(t.activeCamera) > -1 && (this.depthOfField.depthTexture = t.enableDepthRenderer(t.activeCamera).getDepthMap());\n });\n } else {\n this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);\n const t = this._scene.enableDepthRenderer(this._cameras[0]);\n this.depthOfField.depthTexture = t.getDepthMap();\n }\n this.depthOfField._isReady() || this.depthOfField._updateEffects(), this.addEffect(this.depthOfField), this._setAutoClearAndTextureSharing(this.depthOfField._effects[0], !0);\n } else\n this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);\n this.bloomEnabled && (this.bloom._isReady() || this.bloom._updateEffects(), this.addEffect(this.bloom), this._setAutoClearAndTextureSharing(this.bloom._effects[0], !0)), this._imageProcessingEnabled && (this.imageProcessing = new Zv(\"imageProcessing\", 1, null, X.BILINEAR_SAMPLINGMODE, e, !1, this._defaultPipelineTextureType, this.scene.imageProcessingConfiguration), this._hdr ? (this.addEffect(new Ft(e, this.ImageProcessingPostProcessId, () => this.imageProcessing, !0)), this._setAutoClearAndTextureSharing(this.imageProcessing)) : this._scene.imageProcessingConfiguration.applyByPostProcess = !1, (!this._cameras || this._cameras.length === 0) && (this._scene.imageProcessingConfiguration.applyByPostProcess = !1), this.imageProcessing.getEffect() || this.imageProcessing._updateParameters()), this.sharpenEnabled && (this.sharpen.isReady() || this.sharpen.updateEffect(), this.addEffect(this._sharpenEffect), this._setAutoClearAndTextureSharing(this.sharpen)), this.grainEnabled && (this.grain.isReady() || this.grain.updateEffect(), this.addEffect(this._grainEffect), this._setAutoClearAndTextureSharing(this.grain)), this.chromaticAberrationEnabled && (this.chromaticAberration.isReady() || this.chromaticAberration.updateEffect(), this.addEffect(this._chromaticAberrationEffect), this._setAutoClearAndTextureSharing(this.chromaticAberration)), this.fxaaEnabled && (this.fxaa = new Ic(\"fxaa\", 1, null, X.BILINEAR_SAMPLINGMODE, e, !1, this._defaultPipelineTextureType), this.addEffect(new Ft(e, this.FxaaPostProcessId, () => this.fxaa, !0)), this._setAutoClearAndTextureSharing(this.fxaa, !0)), this._cameras !== null && this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras), (this._scene.activeCameras && this._scene.activeCameras.length > 1 || this._scene.activeCamera && this._cameras.indexOf(this._scene.activeCamera) === -1) && (this._scene.autoClear = !0), this._activeCameraChangedObserver || (this._activeCameraChangedObserver = this._scene.onActiveCameraChanged.add(() => {\n this._scene.activeCamera && this._cameras.indexOf(this._scene.activeCamera) === -1 && (this._scene.autoClear = !0);\n })), this._activeCamerasChangedObserver || (this._activeCamerasChangedObserver = this._scene.onActiveCamerasChanged.add(() => {\n this._scene.activeCameras && this._scene.activeCameras.length > 1 && (this._scene.autoClear = !0);\n })), this._adaptPostProcessesToViewPort(), !this._enableMSAAOnFirstPostProcess(this.samples) && this.samples > 1 && L.Warn(\"MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0\"), this.onBuildObservable.notifyObservers(this);\n }\n _disposePostProcesses(e = !1) {\n for (let t = 0; t < this._cameras.length; t++) {\n const i = this._cameras[t];\n this.imageProcessing && this.imageProcessing.dispose(i), this.fxaa && this.fxaa.dispose(i), e && (this.sharpen && this.sharpen.dispose(i), this.depthOfField && (this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver), this.depthOfField.disposeEffects(i)), this.bloom && this.bloom.disposeEffects(i), this.chromaticAberration && this.chromaticAberration.dispose(i), this.grain && this.grain.dispose(i), this._glowLayer && this._glowLayer.dispose());\n }\n this.imageProcessing = null, this.fxaa = null, e && (this.sharpen = null, this._sharpenEffect = null, this.depthOfField = null, this.bloom = null, this.chromaticAberration = null, this._chromaticAberrationEffect = null, this.grain = null, this._grainEffect = null, this._glowLayer = null);\n }\n /**\n * Adds a camera to the pipeline\n * @param camera the camera to be added\n */\n addCamera(e) {\n this._camerasToBeAttached.push(e), this._buildPipeline();\n }\n /**\n * Removes a camera from the pipeline\n * @param camera the camera to remove\n */\n removeCamera(e) {\n const t = this._camerasToBeAttached.indexOf(e);\n this._camerasToBeAttached.splice(t, 1), this._buildPipeline();\n }\n /**\n * Dispose of the pipeline and stop all post processes\n */\n dispose() {\n this._buildAllowed = !1, this.onBuildObservable.clear(), this._disposePostProcesses(!0), this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), this._scene._postProcessRenderPipelineManager.removePipeline(this.name), this._scene.autoClear = !0, this._resizeObserver && (this._scene.getEngine().onResizeObservable.remove(this._resizeObserver), this._resizeObserver = null), this._scene.onActiveCameraChanged.remove(this._activeCameraChangedObserver), this._scene.onActiveCamerasChanged.remove(this._activeCamerasChangedObserver), this._scene.imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingConfigurationObserver), super.dispose();\n }\n /**\n * Serialize the rendering pipeline (Used when exporting)\n * @returns the serialized object\n */\n serialize() {\n const e = Ae.Serialize(this);\n return e.customType = \"DefaultRenderingPipeline\", e;\n }\n /**\n * Parse the serialized pipeline\n * @param source Source pipeline.\n * @param scene The scene to load the pipeline to.\n * @param rootUrl The URL of the serialized pipeline.\n * @returns An instantiated pipeline from the serialized object.\n */\n static Parse(e, t, i) {\n return Ae.Parse(() => new er(e._name, e._name._hdr, t), e, t, i);\n }\n}\ny([\n I()\n], er.prototype, \"sharpenEnabled\", null);\ny([\n I()\n], er.prototype, \"bloomKernel\", null);\ny([\n I()\n], er.prototype, \"_bloomWeight\", void 0);\ny([\n I()\n], er.prototype, \"_bloomThreshold\", void 0);\ny([\n I()\n], er.prototype, \"_hdr\", void 0);\ny([\n I()\n], er.prototype, \"bloomWeight\", null);\ny([\n I()\n], er.prototype, \"bloomThreshold\", null);\ny([\n I()\n], er.prototype, \"bloomScale\", null);\ny([\n I()\n], er.prototype, \"bloomEnabled\", null);\ny([\n I()\n], er.prototype, \"depthOfFieldEnabled\", null);\ny([\n I()\n], er.prototype, \"depthOfFieldBlurLevel\", null);\ny([\n I()\n], er.prototype, \"fxaaEnabled\", null);\ny([\n I()\n], er.prototype, \"samples\", null);\ny([\n I()\n], er.prototype, \"imageProcessingEnabled\", null);\ny([\n I()\n], er.prototype, \"glowLayerEnabled\", null);\ny([\n I()\n], er.prototype, \"chromaticAberrationEnabled\", null);\ny([\n I()\n], er.prototype, \"grainEnabled\", null);\nU(\"BABYLON.DefaultRenderingPipeline\", er);\nconst Vz = \"lensHighlightsPixelShader\", Uz = `uniform sampler2D textureSampler; \nuniform float gain;uniform float threshold;uniform float screen_width;uniform float screen_height;varying vec2 vUV;vec4 highlightColor(vec4 color) {vec4 highlight=color;float luminance=dot(highlight.rgb,vec3(0.2125,0.7154,0.0721));float lum_threshold;if (threshold>1.0) { lum_threshold=0.94+0.01*threshold; }\nelse { lum_threshold=0.5+0.44*threshold; }\nluminance=clamp((luminance-lum_threshold)*(1.0/(1.0-lum_threshold)),0.0,1.0);highlight*=luminance*gain;highlight.a=1.0;return highlight;}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{vec4 original=texture2D(textureSampler,vUV);if (gain==-1.0) {gl_FragColor=vec4(0.0,0.0,0.0,1.0);return;}\nfloat w=2.0/screen_width;float h=2.0/screen_height;float weight=1.0;vec4 blurred=vec4(0.0,0.0,0.0,0.0);\n#ifdef PENTAGON\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.84*w,0.43*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.48*w,-1.29*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.61*w,1.51*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.55*w,-0.74*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.71*w,-0.52*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.94*w,1.59*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.40*w,-1.87*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.62*w,1.16*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.09*w,0.25*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.46*w,-1.71*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.08*w,2.42*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.85*w,-1.89*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.89*w,0.16*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.29*w,1.88*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.40*w,-2.81*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.54*w,2.26*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.60*w,-0.61*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.31*w,-1.30*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.83*w,2.53*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.12*w,-2.48*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.60*w,1.11*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.99*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.50*w,-2.81*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.85*w,3.33*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.94*w,-1.92*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.27*w,-0.53*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.95*w,2.48*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.23*w,-3.04*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.17*w,2.05*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.97*w,-0.04*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.25*w,-2.00*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.31*w,3.08*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.94*w,-2.59*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.37*w,0.64*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.13*w,1.93*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.03*w,-3.65*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.60*w,3.17*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.14*w,-1.19*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.00*w,-1.19*h)));\n#else\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.85*w,0.36*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.52*w,-1.14*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.46*w,1.42*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.46*w,-0.83*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.79*w,-0.42*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.11*w,1.62*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.29*w,-2.07*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.69*w,1.39*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.28*w,0.12*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.65*w,-1.69*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.08*w,2.44*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.63*w,-1.90*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.55*w,0.31*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.13*w,1.52*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.56*w,-2.61*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.38*w,2.34*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.64*w,-0.81*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.53*w,-1.21*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.06*w,2.63*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.00*w,-2.69*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.59*w,1.32*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.78*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.57*w,-2.50*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.54*w,2.93*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.39*w,-1.81*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,-0.28*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.04*w,2.25*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.02*w,-3.05*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.09*w,2.25*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.07*w,-0.25*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.44*w,-1.90*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.52*w,3.05*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.68*w,-2.61*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,0.79*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.76*w,1.46*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.05*w,-2.94*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.21*w,2.88*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.84*w,-1.30*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.98*w,-0.96*h)));\n#endif\nblurred/=39.0;gl_FragColor=blurred;}`;\nz.ShadersStore[Vz] = Uz;\nconst kz = \"depthOfFieldPixelShader\", Gz = `uniform sampler2D textureSampler;uniform sampler2D highlightsSampler;uniform sampler2D depthSampler;uniform sampler2D grainSampler;uniform float grain_amount;uniform bool blur_noise;uniform float screen_width;uniform float screen_height;uniform float distortion;uniform bool dof_enabled;uniform float screen_distance; \nuniform float aperture;uniform float darken;uniform float edge_blur;uniform bool highlights;uniform float near;uniform float far;varying vec2 vUV;\n#define PI 3.14159265\n#define TWOPI 6.28318530\n#define inverse_focal_length 0.1 \nvec2 centered_screen_pos;vec2 distorted_coords;float radius2;float radius;vec2 rand(vec2 co)\n{float noise1=(fract(sin(dot(co,vec2(12.9898,78.233)))*43758.5453));float noise2=(fract(sin(dot(co,vec2(12.9898,78.233)*2.0))*43758.5453));return clamp(vec2(noise1,noise2),0.0,1.0);}\nvec2 getDistortedCoords(vec2 coords) {if (distortion==0.0) { return coords; }\nvec2 direction=1.0*normalize(centered_screen_pos);vec2 dist_coords=vec2(0.5,0.5);dist_coords.x=0.5+direction.x*radius2*1.0;dist_coords.y=0.5+direction.y*radius2*1.0;float dist_amount=clamp(distortion*0.23,0.0,1.0);dist_coords=mix(coords,dist_coords,dist_amount);return dist_coords;}\nfloat sampleScreen(inout vec4 color,in vec2 offset,in float weight) {vec2 coords=distorted_coords;float angle=rand(coords*100.0).x*TWOPI;coords+=vec2(offset.x*cos(angle)-offset.y*sin(angle),offset.x*sin(angle)+offset.y*cos(angle));color+=texture2D(textureSampler,coords)*weight;return weight;}\nfloat getBlurLevel(float size) {return min(3.0,ceil(size/1.0));}\nvec4 getBlurColor(float size) {vec4 col=texture2D(textureSampler,distorted_coords);float blur_level=getBlurLevel(size);float w=(size/screen_width);float h=(size/screen_height);float total_weight=1.0;vec2 sample_coords;total_weight+=sampleScreen(col,vec2(-0.50*w,0.24*h),0.93);total_weight+=sampleScreen(col,vec2(0.30*w,-0.75*h),0.90);total_weight+=sampleScreen(col,vec2(0.36*w,0.96*h),0.87);total_weight+=sampleScreen(col,vec2(-1.08*w,-0.55*h),0.85);total_weight+=sampleScreen(col,vec2(1.33*w,-0.37*h),0.83);total_weight+=sampleScreen(col,vec2(-0.82*w,1.31*h),0.80);total_weight+=sampleScreen(col,vec2(-0.31*w,-1.67*h),0.78);total_weight+=sampleScreen(col,vec2(1.47*w,1.11*h),0.76);total_weight+=sampleScreen(col,vec2(-1.97*w,0.19*h),0.74);total_weight+=sampleScreen(col,vec2(1.42*w,-1.57*h),0.72);if (blur_level>1.0) {total_weight+=sampleScreen(col,vec2(0.01*w,2.25*h),0.70);total_weight+=sampleScreen(col,vec2(-1.62*w,-1.74*h),0.67);total_weight+=sampleScreen(col,vec2(2.49*w,0.20*h),0.65);total_weight+=sampleScreen(col,vec2(-2.07*w,1.61*h),0.63);total_weight+=sampleScreen(col,vec2(0.46*w,-2.70*h),0.61);total_weight+=sampleScreen(col,vec2(1.55*w,2.40*h),0.59);total_weight+=sampleScreen(col,vec2(-2.88*w,-0.75*h),0.56);total_weight+=sampleScreen(col,vec2(2.73*w,-1.44*h),0.54);total_weight+=sampleScreen(col,vec2(-1.08*w,3.02*h),0.52);total_weight+=sampleScreen(col,vec2(-1.28*w,-3.05*h),0.49);}\nif (blur_level>2.0) {total_weight+=sampleScreen(col,vec2(3.11*w,1.43*h),0.46);total_weight+=sampleScreen(col,vec2(-3.36*w,1.08*h),0.44);total_weight+=sampleScreen(col,vec2(1.80*w,-3.16*h),0.41);total_weight+=sampleScreen(col,vec2(0.83*w,3.65*h),0.38);total_weight+=sampleScreen(col,vec2(-3.16*w,-2.19*h),0.34);total_weight+=sampleScreen(col,vec2(3.92*w,-0.53*h),0.31);total_weight+=sampleScreen(col,vec2(-2.59*w,3.12*h),0.26);total_weight+=sampleScreen(col,vec2(-0.20*w,-4.15*h),0.22);total_weight+=sampleScreen(col,vec2(3.02*w,3.00*h),0.15);}\ncol/=total_weight; \nif (darken>0.0) {col.rgb*=clamp(0.3,1.0,1.05-size*0.5*darken);}\nreturn col;}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{centered_screen_pos=vec2(vUV.x-0.5,vUV.y-0.5);radius2=centered_screen_pos.x*centered_screen_pos.x+centered_screen_pos.y*centered_screen_pos.y;radius=sqrt(radius2);distorted_coords=getDistortedCoords(vUV); \nvec2 texels_coords=vec2(vUV.x*screen_width,vUV.y*screen_height); \nfloat depth=texture2D(depthSampler,distorted_coords).r; \nfloat distance=near+(far-near)*depth; \nvec4 color=texture2D(textureSampler,vUV); \nfloat coc=abs(aperture*(screen_distance*(inverse_focal_length-1.0/distance)-1.0));if (dof_enabled==false || coc<0.07) { coc=0.0; }\nfloat edge_blur_amount=0.0;if (edge_blur>0.0) {edge_blur_amount=clamp((radius*2.0-1.0+0.15*edge_blur)*1.5,0.0,1.0)*1.3;}\nfloat blur_amount=max(edge_blur_amount,coc);if (blur_amount==0.0) {gl_FragColor=texture2D(textureSampler,distorted_coords);}\nelse {gl_FragColor=getBlurColor(blur_amount*1.7);if (highlights) {gl_FragColor.rgb+=clamp(coc,0.0,1.0)*texture2D(highlightsSampler,distorted_coords).rgb;}\nif (blur_noise) {vec2 noise=rand(distorted_coords)*0.01*blur_amount;vec2 blurred_coord=vec2(distorted_coords.x+noise.x,distorted_coords.y+noise.y);gl_FragColor=0.04*texture2D(textureSampler,blurred_coord)+0.96*gl_FragColor;}}\nif (grain_amount>0.0) {vec4 grain_color=texture2D(grainSampler,texels_coords*0.003);gl_FragColor.rgb+=(-0.5+grain_color.rgb)*0.30*grain_amount;}}\n`;\nz.ShadersStore[kz] = Gz;\nclass zz {\n constructor() {\n this.enabled = !1, this.name = \"ssao2\", this.texturesRequired = [6, 5];\n }\n}\nconst Wz = \"ssao2PixelShader\", Hz = `precision highp float;uniform sampler2D textureSampler;varying vec2 vUV;\n#ifdef SSAO\nfloat scales[16]=float[16](\n0.1,\n0.11406250000000001,\n0.131640625,\n0.15625,\n0.187890625,\n0.2265625,\n0.272265625,\n0.325,\n0.384765625,\n0.4515625,\n0.525390625,\n0.60625,\n0.694140625,\n0.7890625,\n0.891015625,\n1.0\n);uniform float near;uniform float radius;uniform sampler2D depthSampler;uniform sampler2D randomSampler;uniform sampler2D normalSampler;uniform float randTextureTiles;uniform float samplesFactor;uniform vec3 sampleSphere[SAMPLES];uniform float totalStrength;uniform float base;uniform float xViewport;uniform float yViewport;uniform mat3 depthProjection;uniform float maxZ;uniform float minZAspect;uniform vec2 texelSize;uniform mat4 projection;void main()\n{vec3 random=textureLod(randomSampler,vUV*randTextureTiles,0.0).rgb;float depth=textureLod(depthSampler,vUV,0.0).r;float depthSign=sign(depth);depth=depth*depthSign;vec3 normal=textureLod(normalSampler,vUV,0.0).rgb;float occlusion=0.0;float correctedRadius=min(radius,minZAspect*depth/near);vec3 vViewRay=vec3((vUV.x*2.0-1.0)*xViewport,(vUV.y*2.0-1.0)*yViewport,depthSign);vec3 vDepthFactor=depthProjection*vec3(1.0,1.0,depth);vec3 origin=vViewRay*vDepthFactor;vec3 rvec=random*2.0-1.0;rvec.z=0.0;float dotProduct=dot(rvec,normal);rvec=1.0-abs(dotProduct)>1e-2 ? rvec : vec3(-rvec.y,0.0,rvec.x);vec3 tangent=normalize(rvec-normal*dot(rvec,normal));vec3 bitangent=cross(normal,tangent);mat3 tbn=mat3(tangent,bitangent,normal);float difference;for (int i=0; i1.0 || offset.y>1.0) {continue;}\nfloat sampleDepth=abs(textureLod(depthSampler,offset.xy,0.0).r);difference=depthSign*samplePosition.z-sampleDepth;float rangeCheck=1.0-smoothstep(correctedRadius*0.5,correctedRadius,difference);occlusion+=step(EPSILON,difference)*rangeCheck;}\nocclusion=occlusion*(1.0-smoothstep(maxZ*0.75,maxZ,depth));float ao=1.0-totalStrength*occlusion*samplesFactor;float result=clamp(ao+base,0.0,1.0);gl_FragColor=vec4(vec3(result),1.0);}\n#endif\n#ifdef BLUR\nuniform float outSize;uniform float soften;uniform float tolerance;uniform int samples;\n#ifndef BLUR_BYPASS\nuniform sampler2D depthSampler;\n#ifdef BLUR_LEGACY\n#define inline\nfloat blur13Bilateral(sampler2D image,vec2 uv,vec2 step) {float result=0.0;vec2 off1=vec2(1.411764705882353)*step;vec2 off2=vec2(3.2941176470588234)*step;vec2 off3=vec2(5.176470588235294)*step;float compareDepth=abs(textureLod(depthSampler,uv,0.0).r);float sampleDepth;float weight;float weightSum=30.0;result+=textureLod(image,uv,0.0).r*30.0;sampleDepth=abs(textureLod(depthSampler,uv+off1,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+= weight;result+=textureLod(image,uv+off1,0.0).r*weight;sampleDepth=abs(textureLod(depthSampler,uv-off1,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+= weight;result+=textureLod(image,uv-off1,0.0).r*weight;sampleDepth=abs(textureLod(depthSampler,uv+off2,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureLod(image,uv+off2,0.0).r*weight;sampleDepth=abs(textureLod(depthSampler,uv-off2,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureLod(image,uv-off2,0.0).r*weight;sampleDepth=abs(textureLod(depthSampler,uv+off3,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureLod(image,uv+off3,0.0).r*weight;sampleDepth=abs(textureLod(depthSampler,uv-off3,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureLod(image,uv-off3,0.0).r*weight;return result/weightSum;}\n#endif\n#endif\nvoid main()\n{float result=0.0;\n#ifdef BLUR_BYPASS\nresult=textureLod(textureSampler,vUV,0.0).r;\n#else\n#ifdef BLUR_H\nvec2 step=vec2(1.0/outSize,0.0);\n#else\nvec2 step=vec2(0.0,1.0/outSize);\n#endif\n#ifdef BLUR_LEGACY\nresult=blur13Bilateral(textureSampler,vUV,step);\n#else\nfloat compareDepth=abs(textureLod(depthSampler,vUV,0.0).r);float weightSum=0.0;for (int i=-samples; i this._originalColorPostProcess, !0)), this.addEffect(new Ft(t.getEngine(), this.SSAORenderEffect, () => this._ssaoPostProcess, !0)), this.addEffect(new Ft(t.getEngine(), this.SSAOBlurHRenderEffect, () => this._blurHPostProcess, !0)), this.addEffect(new Ft(t.getEngine(), this.SSAOBlurVRenderEffect, () => this._blurVPostProcess, !0)), this.addEffect(new Ft(t.getEngine(), this.SSAOCombineRenderEffect, () => this._ssaoCombinePostProcess, !0)), t.postProcessRenderPipelineManager.addPipeline(this), s && t.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(e, s);\n }\n // Public Methods\n /**\n * Get the class name\n * @returns \"SSAO2RenderingPipeline\"\n */\n getClassName() {\n return \"SSAO2RenderingPipeline\";\n }\n /**\n * Removes the internal pipeline assets and detaches the pipeline from the scene cameras\n * @param disableGeometryBufferRenderer Set to true if you want to disable the Geometry Buffer renderer\n */\n dispose(e = !1) {\n for (let t = 0; t < this._scene.cameras.length; t++) {\n const i = this._scene.cameras[t];\n this._originalColorPostProcess.dispose(i), this._ssaoPostProcess.dispose(i), this._blurHPostProcess.dispose(i), this._blurVPostProcess.dispose(i), this._ssaoCombinePostProcess.dispose(i);\n }\n this._randomTexture.dispose(), e && this._scene.disableGeometryBufferRenderer(), this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._scene.cameras), super.dispose();\n }\n // Private Methods\n /** @internal */\n _rebuild() {\n super._rebuild();\n }\n _getSamplersForBlur(e) {\n return e ? [\"textureSampler\"] : [\"textureSampler\", \"depthSampler\"];\n }\n _getDefinesForBlur(e, t) {\n let i = `#define BLUR\n`;\n return t && (i += `#define BLUR_BYPASS\n`), e || (i += `#define BLUR_LEGACY\n`), { h: i + `#define BLUR_H\n`, v: i };\n }\n _createBlurPostProcess(e, t, i) {\n const s = this._getDefinesForBlur(this.expensiveBlur, this.bypassBlur), r = this._getSamplersForBlur(this.bypassBlur);\n this._blurHPostProcess = this._createBlurFilter(\"BlurH\", r, e, s.h, i, !0), this._blurVPostProcess = this._createBlurFilter(\"BlurV\", r, t, s.v, i, !1);\n }\n _createBlurFilter(e, t, i, s, r, n) {\n const o = new Be(e, \"ssao2\", [\"outSize\", \"samples\", \"soften\", \"tolerance\"], t, i, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, s, r);\n return o.onApply = (l) => {\n if (!this._scene.activeCamera)\n return;\n const h = n ? this._ssaoCombinePostProcess.width : this._ssaoCombinePostProcess.height, c = n ? this._originalColorPostProcess.width : this._originalColorPostProcess.height;\n l.setFloat(\"outSize\", h > 0 ? h : c), l.setInt(\"samples\", this.bilateralSamples), l.setFloat(\"soften\", this.bilateralSoften), l.setFloat(\"tolerance\", this.bilateralTolerance), this._geometryBufferRenderer ? l.setTexture(\"depthSampler\", this._geometryBufferRenderer.getGBuffer().textures[0]) : this._prePassRenderer && l.setTexture(\"depthSampler\", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(5)]);\n }, o.samples = this.textureSamples, o.autoClear = !1, o;\n }\n //Van der Corput radical inverse\n _radicalInverse_VdC(e) {\n return this._bits[0] = e, this._bits[0] = (this._bits[0] << 16 | this._bits[0] >> 16) >>> 0, this._bits[0] = (this._bits[0] & 1431655765) << 1 | (this._bits[0] & 2863311530) >>> 1 >>> 0, this._bits[0] = (this._bits[0] & 858993459) << 2 | (this._bits[0] & 3435973836) >>> 2 >>> 0, this._bits[0] = (this._bits[0] & 252645135) << 4 | (this._bits[0] & 4042322160) >>> 4 >>> 0, this._bits[0] = (this._bits[0] & 16711935) << 8 | (this._bits[0] & 4278255360) >>> 8 >>> 0, this._bits[0] * 23283064365386963e-26;\n }\n _hammersley(e, t) {\n return [e / t, this._radicalInverse_VdC(e)];\n }\n _hemisphereSample_uniform(e, t) {\n const i = t * 2 * Math.PI, s = 1 - e * 0.85, r = Math.sqrt(1 - s * s);\n return new g(Math.cos(i) * r, Math.sin(i) * r, s);\n }\n _generateHemisphere() {\n const e = this.samples, t = [];\n let i, s = 0;\n for (; s < e; ) {\n if (e < 16)\n i = this._hemisphereSample_uniform(Math.random(), Math.random());\n else {\n const r = this._hammersley(s, e);\n i = this._hemisphereSample_uniform(r[0], r[1]);\n }\n t.push(i.x, i.y, i.z), s++;\n }\n return t;\n }\n _getDefinesForSSAO() {\n return `#define SSAO\n#define SAMPLES ${this.samples}\n#define EPSILON ${this.epsilon.toFixed(4)}`;\n }\n _createSSAOPostProcess(e, t) {\n this._sampleSphere = this._generateHemisphere();\n const i = this._getDefinesForSSAO(), s = [\"randomSampler\", \"depthSampler\", \"normalSampler\"];\n this._ssaoPostProcess = new Be(\"ssao2\", \"ssao2\", [\n \"sampleSphere\",\n \"samplesFactor\",\n \"randTextureTiles\",\n \"totalStrength\",\n \"radius\",\n \"base\",\n \"range\",\n \"projection\",\n \"near\",\n \"texelSize\",\n \"xViewport\",\n \"yViewport\",\n \"maxZ\",\n \"minZAspect\",\n \"depthProjection\"\n ], s, e, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, i, t), this._ssaoPostProcess.autoClear = !1, this._ssaoPostProcess.onApply = (r) => {\n if (this._scene.activeCamera) {\n if (r.setArray3(\"sampleSphere\", this._sampleSphere), r.setFloat(\"randTextureTiles\", 32), r.setFloat(\"samplesFactor\", 1 / this.samples), r.setFloat(\"totalStrength\", this.totalStrength), r.setFloat2(\"texelSize\", 1 / this._ssaoPostProcess.width, 1 / this._ssaoPostProcess.height), r.setFloat(\"radius\", this.radius), r.setFloat(\"maxZ\", this.maxZ), r.setFloat(\"minZAspect\", this.minZAspect), r.setFloat(\"base\", this.base), r.setFloat(\"near\", this._scene.activeCamera.minZ), this._scene.activeCamera.mode === Fe.PERSPECTIVE_CAMERA)\n r.setMatrix3x3(\"depthProjection\", Rs.PERSPECTIVE_DEPTH_PROJECTION), r.setFloat(\"xViewport\", Math.tan(this._scene.activeCamera.fov / 2) * this._scene.getEngine().getAspectRatio(this._scene.activeCamera, !0)), r.setFloat(\"yViewport\", Math.tan(this._scene.activeCamera.fov / 2));\n else {\n const n = this._scene.getEngine().getRenderWidth() / 2, o = this._scene.getEngine().getRenderHeight() / 2, l = this._scene.activeCamera.orthoLeft ?? -n, h = this._scene.activeCamera.orthoRight ?? n, c = this._scene.activeCamera.orthoBottom ?? -o, u = this._scene.activeCamera.orthoTop ?? o;\n r.setMatrix3x3(\"depthProjection\", Rs.ORTHO_DEPTH_PROJECTION), r.setFloat(\"xViewport\", (h - l) * 0.5), r.setFloat(\"yViewport\", (u - c) * 0.5);\n }\n r.setMatrix(\"projection\", this._scene.getProjectionMatrix()), this._geometryBufferRenderer ? (r.setTexture(\"depthSampler\", this._geometryBufferRenderer.getGBuffer().textures[0]), r.setTexture(\"normalSampler\", this._geometryBufferRenderer.getGBuffer().textures[1])) : this._prePassRenderer && (r.setTexture(\"depthSampler\", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(5)]), r.setTexture(\"normalSampler\", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(6)])), r.setTexture(\"randomSampler\", this._randomTexture);\n }\n }, this._ssaoPostProcess.samples = this.textureSamples, this._forceGeometryBuffer || (this._ssaoPostProcess._prePassEffectConfiguration = new zz());\n }\n _createSSAOCombinePostProcess(e, t) {\n this._ssaoCombinePostProcess = new Be(\"ssaoCombine\", \"ssaoCombine\", [], [\"originalColor\", \"viewport\"], e, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, void 0, t), this._ssaoCombinePostProcess.onApply = (i) => {\n const s = this._scene.activeCamera.viewport;\n i.setVector4(\"viewport\", w.Vector4[0].copyFromFloats(s.x, s.y, s.width, s.height)), i.setTextureFromPostProcessOutput(\"originalColor\", this._originalColorPostProcess);\n }, this._ssaoCombinePostProcess.autoClear = !1, this._ssaoCombinePostProcess.samples = this.textureSamples;\n }\n _createRandomTexture() {\n const t = new Uint8Array(65536), i = Q.Zero();\n for (let r = 0; r < t.length; )\n i.set(Re.RandomRange(0, 1), Re.RandomRange(0, 1)).normalize().scaleInPlace(255), t[r++] = Math.floor(i.x), t[r++] = Math.floor(i.y), t[r++] = 0, t[r++] = 255;\n const s = _i.CreateRGBATexture(t, 128, 128, this._scene, !1, !1, 2);\n s.name = \"SSAORandomTexture\", s.wrapU = X.WRAP_ADDRESSMODE, s.wrapV = X.WRAP_ADDRESSMODE, this._randomTexture = s;\n }\n /**\n * Serialize the rendering pipeline (Used when exporting)\n * @returns the serialized object\n */\n serialize() {\n const e = Ae.Serialize(this);\n return e.customType = \"SSAO2RenderingPipeline\", e;\n }\n /**\n * Parse the serialized pipeline\n * @param source Source pipeline.\n * @param scene The scene to load the pipeline to.\n * @param rootUrl The URL of the serialized pipeline.\n * @returns An instantiated pipeline from the serialized object.\n */\n static Parse(e, t, i) {\n return Ae.Parse(() => new Rs(e._name, t, e._ratio, void 0, e._forceGeometryBuffer, e._textureType), e, t, i);\n }\n}\nRs.ORTHO_DEPTH_PROJECTION = [1, 0, 0, 0, 1, 0, 0, 0, 1];\nRs.PERSPECTIVE_DEPTH_PROJECTION = [0, 0, 0, 0, 0, 0, 1, 1, 1];\ny([\n I()\n], Rs.prototype, \"totalStrength\", void 0);\ny([\n I()\n], Rs.prototype, \"maxZ\", void 0);\ny([\n I()\n], Rs.prototype, \"minZAspect\", void 0);\ny([\n I(\"epsilon\")\n], Rs.prototype, \"_epsilon\", void 0);\ny([\n I(\"samples\")\n], Rs.prototype, \"_samples\", void 0);\ny([\n I(\"textureSamples\")\n], Rs.prototype, \"_textureSamples\", void 0);\ny([\n I()\n], Rs.prototype, \"_forceGeometryBuffer\", void 0);\ny([\n I()\n], Rs.prototype, \"_ratio\", void 0);\ny([\n I()\n], Rs.prototype, \"_textureType\", void 0);\ny([\n I()\n], Rs.prototype, \"radius\", void 0);\ny([\n I()\n], Rs.prototype, \"base\", void 0);\ny([\n I(\"bypassBlur\")\n], Rs.prototype, \"_bypassBlur\", void 0);\ny([\n I(\"expensiveBlur\")\n], Rs.prototype, \"_expensiveBlur\", void 0);\ny([\n I()\n], Rs.prototype, \"bilateralSamples\", void 0);\ny([\n I()\n], Rs.prototype, \"bilateralSoften\", void 0);\ny([\n I()\n], Rs.prototype, \"bilateralTolerance\", void 0);\nU(\"BABYLON.SSAO2RenderingPipeline\", Rs);\nconst Yz = \"ssaoPixelShader\", jz = `uniform sampler2D textureSampler;varying vec2 vUV;\n#ifdef SSAO\nuniform sampler2D randomSampler;uniform float randTextureTiles;uniform float samplesFactor;uniform vec3 sampleSphere[SAMPLES];uniform float totalStrength;uniform float radius;uniform float area;uniform float fallOff;uniform float base;vec3 normalFromDepth(float depth,vec2 coords)\n{vec2 offset1=vec2(0.0,radius);vec2 offset2=vec2(radius,0.0);float depth1=texture2D(textureSampler,coords+offset1).r;float depth2=texture2D(textureSampler,coords+offset2).r;vec3 p1=vec3(offset1,depth1-depth);vec3 p2=vec3(offset2,depth2-depth);vec3 normal=cross(p1,p2);normal.z=-normal.z;return normalize(normal);}\nvoid main()\n{vec3 random=normalize(texture2D(randomSampler,vUV*randTextureTiles).rgb);float depth=texture2D(textureSampler,vUV).r;vec3 position=vec3(vUV,depth);vec3 normal=normalFromDepth(depth,vUV);float radiusDepth=radius/depth;float occlusion=0.0;vec3 ray;vec3 hemiRay;float occlusionDepth;float difference;for (int i=0; i this._originalColorPostProcess, !0)), this.addEffect(new Ft(t.getEngine(), this.SSAORenderEffect, () => this._ssaoPostProcess, !0)), this.addEffect(new Ft(t.getEngine(), this.SSAOBlurHRenderEffect, () => this._blurHPostProcess, !0)), this.addEffect(new Ft(t.getEngine(), this.SSAOBlurVRenderEffect, () => this._blurVPostProcess, !0)), this.addEffect(new Ft(t.getEngine(), this.SSAOCombineRenderEffect, () => this._ssaoCombinePostProcess, !0)), t.postProcessRenderPipelineManager.addPipeline(this), s && t.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(e, s);\n }\n /**\n * @internal\n */\n _attachCameras(e, t) {\n super._attachCameras(e, t);\n for (const i of this._cameras)\n this._scene.enableDepthRenderer(i).getDepthMap();\n }\n // Public Methods\n /**\n * Get the class name\n * @returns \"SSAORenderingPipeline\"\n */\n getClassName() {\n return \"SSAORenderingPipeline\";\n }\n /**\n * Removes the internal pipeline assets and detaches the pipeline from the scene cameras\n * @param disableDepthRender - If the depth renderer should be disabled on the scene\n */\n dispose(e = !1) {\n for (let t = 0; t < this._scene.cameras.length; t++) {\n const i = this._scene.cameras[t];\n this._originalColorPostProcess.dispose(i), this._ssaoPostProcess.dispose(i), this._blurHPostProcess.dispose(i), this._blurVPostProcess.dispose(i), this._ssaoCombinePostProcess.dispose(i);\n }\n this._randomTexture.dispose(), e && this._scene.disableDepthRenderer(), this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._scene.cameras), super.dispose();\n }\n // Private Methods\n _createBlurPostProcess(e) {\n this._blurHPostProcess = new As(\"BlurH\", new Q(1, 0), 16, e, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, 0), this._blurVPostProcess = new As(\"BlurV\", new Q(0, 1), 16, e, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, 0), this._blurHPostProcess.onActivateObservable.add(() => {\n const i = this._blurHPostProcess.width / this._scene.getEngine().getRenderWidth();\n this._blurHPostProcess.kernel = 16 * i;\n }), this._blurVPostProcess.onActivateObservable.add(() => {\n const i = this._blurVPostProcess.height / this._scene.getEngine().getRenderHeight();\n this._blurVPostProcess.kernel = 16 * i;\n });\n }\n /** @internal */\n _rebuild() {\n this._firstUpdate = !0, super._rebuild();\n }\n _createSSAOPostProcess(e) {\n const i = [\n 0.5381,\n 0.1856,\n -0.4319,\n 0.1379,\n 0.2486,\n 0.443,\n 0.3371,\n 0.5679,\n -57e-4,\n -0.6999,\n -0.0451,\n -19e-4,\n 0.0689,\n -0.1598,\n -0.8547,\n 0.056,\n 69e-4,\n -0.1843,\n -0.0146,\n 0.1402,\n 0.0762,\n 0.01,\n -0.1924,\n -0.0344,\n -0.3577,\n -0.5301,\n -0.4358,\n -0.3169,\n 0.1063,\n 0.0158,\n 0.0103,\n -0.5869,\n 46e-4,\n -0.0897,\n -0.494,\n 0.3287,\n 0.7119,\n -0.0154,\n -0.0918,\n -0.0533,\n 0.0596,\n -0.5411,\n 0.0352,\n -0.0631,\n 0.546,\n -0.4776,\n 0.2847,\n -0.0271\n ], s = 1 / 16;\n this._ssaoPostProcess = new Be(\"ssao\", \"ssao\", [\"sampleSphere\", \"samplesFactor\", \"randTextureTiles\", \"totalStrength\", \"radius\", \"area\", \"fallOff\", \"base\", \"range\", \"viewport\"], [\"randomSampler\"], e, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1, `#define SAMPLES 16\n#define SSAO`), this._ssaoPostProcess.externalTextureSamplerBinding = !0, this._ssaoPostProcess.onApply = (r) => {\n this._firstUpdate && (r.setArray3(\"sampleSphere\", i), r.setFloat(\"samplesFactor\", s), r.setFloat(\"randTextureTiles\", 4)), r.setFloat(\"totalStrength\", this.totalStrength), r.setFloat(\"radius\", this.radius), r.setFloat(\"area\", this.area), r.setFloat(\"fallOff\", this.fallOff), r.setFloat(\"base\", this.base), r.setTexture(\"textureSampler\", this._scene.enableDepthRenderer(this._scene.activeCamera).getDepthMap()), r.setTexture(\"randomSampler\", this._randomTexture);\n };\n }\n _createSSAOCombinePostProcess(e) {\n this._ssaoCombinePostProcess = new Be(\"ssaoCombine\", \"ssaoCombine\", [], [\"originalColor\", \"viewport\"], e, null, X.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), !1), this._ssaoCombinePostProcess.onApply = (t) => {\n t.setVector4(\"viewport\", w.Vector4[0].copyFromFloats(0, 0, 1, 1)), t.setTextureFromPostProcess(\"originalColor\", this._originalColorPostProcess);\n };\n }\n _createRandomTexture() {\n const t = new Uint8Array(1048576);\n for (let s = 0; s < t.length; )\n t[s++] = Math.floor(Math.max(0, Re.RandomRange(-1, 1)) * 255), t[s++] = Math.floor(Math.max(0, Re.RandomRange(-1, 1)) * 255), t[s++] = Math.floor(Math.max(0, Re.RandomRange(-1, 1)) * 255), t[s++] = 255;\n const i = _i.CreateRGBATexture(t, 512, 512, this._scene, !1, !1, 2);\n i.name = \"SSAORandomTexture\", i.wrapU = X.WRAP_ADDRESSMODE, i.wrapV = X.WRAP_ADDRESSMODE, this._randomTexture = i;\n }\n}\ny([\n I()\n], Ff.prototype, \"totalStrength\", void 0);\ny([\n I()\n], Ff.prototype, \"radius\", void 0);\ny([\n I()\n], Ff.prototype, \"area\", void 0);\ny([\n I()\n], Ff.prototype, \"fallOff\", void 0);\ny([\n I()\n], Ff.prototype, \"base\", void 0);\nclass Kz {\n constructor() {\n this.enabled = !1, this.name = \"screenSpaceReflections\", this.texturesRequired = [6, 3, 1];\n }\n}\nconst qz = \"screenSpaceReflectionPixelShader\", Qz = `uniform sampler2D textureSampler;\n#ifdef SSR_SUPPORTED\nuniform sampler2D reflectivitySampler;uniform sampler2D normalSampler;uniform sampler2D positionSampler;\n#endif\nuniform mat4 view;uniform mat4 projection;uniform float stepSize;uniform float strength;uniform float threshold;uniform float roughnessFactor;uniform float reflectionSpecularFalloffExponent;varying vec2 vUV;\n#ifdef SSR_SUPPORTED\nstruct ReflectionInfo {vec3 color;vec4 coords;};/**\n* According to specular,see https:\n*/\nvec3 fresnelSchlick(float cosTheta,vec3 F0)\n{return F0+(1.0-F0)*pow(1.0-cosTheta,5.0);}\n/**\n* Once the pixel's coordinates has been found,let's adjust (smooth) a little bit\n* by sampling multiple reflection pixels.\n*/\nReflectionInfo smoothReflectionInfo(vec3 dir,vec3 hitCoord)\n{ReflectionInfo info;info.color=vec3(0.0);vec4 projectedCoord;float sampledDepth;for(int i=0; i0.0)\nhitCoord-=dir;else\nhitCoord+=dir;info.color+=texture2D(textureSampler,projectedCoord.xy).rgb;}\nprojectedCoord=projection*vec4(hitCoord,1.0);projectedCoord.xy/=projectedCoord.w;projectedCoord.xy=0.5*projectedCoord.xy+vec2(0.5);info.coords=vec4(projectedCoord.xy,sampledDepth,1.0);info.color+=texture2D(textureSampler,projectedCoord.xy).rgb;info.color/=float(SMOOTH_STEPS+1);return info;}\n/**\n* Tests the given world position (hitCoord) according to the given reflection vector (dir)\n* until it finds a collision (means that depth is enough close to say \"it's the pixel to sample!\").\n*/\nReflectionInfo getReflectionInfo(vec3 dir,vec3 hitCoord)\n{ReflectionInfo info;vec4 projectedCoord;float sampledDepth;dir*=stepSize;for(int i=0; i {\n const d = this._geometryBufferRenderer, f = this._prePassRenderer;\n if (!f && !d)\n return;\n if (d) {\n const x = d.getTextureIndex(Et.POSITION_TEXTURE_TYPE), v = d.getTextureIndex(Et.REFLECTIVITY_TEXTURE_TYPE);\n u.setTexture(\"normalSampler\", d.getGBuffer().textures[1]), u.setTexture(\"positionSampler\", d.getGBuffer().textures[x]), u.setTexture(\"reflectivitySampler\", d.getGBuffer().textures[v]);\n } else if (f) {\n const x = f.getIndex(1), v = f.getIndex(3), T = f.getIndex(6);\n u.setTexture(\"normalSampler\", f.getRenderTarget().textures[T]), u.setTexture(\"positionSampler\", f.getRenderTarget().textures[x]), u.setTexture(\"reflectivitySampler\", f.getRenderTarget().textures[v]);\n }\n const p = t.activeCamera;\n if (!p)\n return;\n const _ = p.getViewMatrix(!0), m = p.getProjectionMatrix(!0);\n u.setMatrix(\"projection\", m), u.setMatrix(\"view\", _), u.setFloat(\"threshold\", this.threshold), u.setFloat(\"reflectionSpecularFalloffExponent\", this.reflectionSpecularFalloffExponent), u.setFloat(\"strength\", this.strength), u.setFloat(\"stepSize\", this.step), u.setFloat(\"roughnessFactor\", this.roughnessFactor);\n }, this._isSceneRightHanded = t.useRightHandedSystem;\n }\n /**\n * Gets whether or not smoothing reflections is enabled.\n * Enabling smoothing will require more GPU power and can generate a drop in FPS.\n */\n get enableSmoothReflections() {\n return this._enableSmoothReflections;\n }\n /**\n * Sets whether or not smoothing reflections is enabled.\n * Enabling smoothing will require more GPU power and can generate a drop in FPS.\n */\n set enableSmoothReflections(e) {\n e !== this._enableSmoothReflections && (this._enableSmoothReflections = e, this._updateEffectDefines());\n }\n /**\n * Gets the number of samples taken while computing reflections. More samples count is high,\n * more the post-process wil require GPU power and can generate a drop in FPS. Basically in interval [25, 100].\n */\n get reflectionSamples() {\n return this._reflectionSamples;\n }\n /**\n * Sets the number of samples taken while computing reflections. More samples count is high,\n * more the post-process wil require GPU power and can generate a drop in FPS. Basically in interval [25, 100].\n */\n set reflectionSamples(e) {\n e !== this._reflectionSamples && (this._reflectionSamples = e, this._updateEffectDefines());\n }\n /**\n * Gets the number of samples taken while smoothing reflections. More samples count is high,\n * more the post-process will require GPU power and can generate a drop in FPS.\n * Default value (5.0) work pretty well in all cases but can be adjusted.\n */\n get smoothSteps() {\n return this._smoothSteps;\n }\n /*\n * Sets the number of samples taken while smoothing reflections. More samples count is high,\n * more the post-process will require GPU power and can generate a drop in FPS.\n * Default value (5.0) work pretty well in all cases but can be adjusted.\n */\n set smoothSteps(e) {\n e !== this._smoothSteps && (this._smoothSteps = e, this._updateEffectDefines());\n }\n _updateEffectDefines() {\n const e = [];\n (this._geometryBufferRenderer || this._prePassRenderer) && e.push(\"#define SSR_SUPPORTED\"), this._enableSmoothReflections && e.push(\"#define ENABLE_SMOOTH_REFLECTIONS\"), this._isSceneRightHanded && e.push(\"#define RIGHT_HANDED_SCENE\"), e.push(\"#define REFLECTION_SAMPLES \" + (this._reflectionSamples >> 0)), e.push(\"#define SMOOTH_STEPS \" + (this._smoothSteps >> 0)), this.updateEffect(e.join(`\n`));\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new Bn(e.name, i, e.options, t, e.renderTargetSamplingMode, i.getEngine(), e.textureType, e.reusable), e, i, s);\n }\n}\ny([\n I()\n], Bn.prototype, \"threshold\", void 0);\ny([\n I()\n], Bn.prototype, \"strength\", void 0);\ny([\n I()\n], Bn.prototype, \"reflectionSpecularFalloffExponent\", void 0);\ny([\n I()\n], Bn.prototype, \"step\", void 0);\ny([\n I()\n], Bn.prototype, \"roughnessFactor\", void 0);\ny([\n I()\n], Bn.prototype, \"enableSmoothReflections\", null);\ny([\n I()\n], Bn.prototype, \"reflectionSamples\", null);\ny([\n I()\n], Bn.prototype, \"smoothSteps\", null);\nU(\"BABYLON.ScreenSpaceReflectionPostProcess\", Bn);\nconst Zz = \"standardPixelShader\", Jz = `uniform sampler2D textureSampler;varying vec2 vUV;\n#define CUSTOM_FRAGMENT_DEFINITIONS\n#if defined(PASS_POST_PROCESS)\nvoid main(void)\n{vec4 color=texture2D(textureSampler,vUV);gl_FragColor=color;}\n#endif\n#if defined(DOWN_SAMPLE_X4)\nuniform vec2 dsOffsets[16];void main(void)\n{vec4 average=vec4(0.0,0.0,0.0,0.0);average=texture2D(textureSampler,vUV+dsOffsets[0]);average+=texture2D(textureSampler,vUV+dsOffsets[1]);average+=texture2D(textureSampler,vUV+dsOffsets[2]);average+=texture2D(textureSampler,vUV+dsOffsets[3]);average+=texture2D(textureSampler,vUV+dsOffsets[4]);average+=texture2D(textureSampler,vUV+dsOffsets[5]);average+=texture2D(textureSampler,vUV+dsOffsets[6]);average+=texture2D(textureSampler,vUV+dsOffsets[7]);average+=texture2D(textureSampler,vUV+dsOffsets[8]);average+=texture2D(textureSampler,vUV+dsOffsets[9]);average+=texture2D(textureSampler,vUV+dsOffsets[10]);average+=texture2D(textureSampler,vUV+dsOffsets[11]);average+=texture2D(textureSampler,vUV+dsOffsets[12]);average+=texture2D(textureSampler,vUV+dsOffsets[13]);average+=texture2D(textureSampler,vUV+dsOffsets[14]);average+=texture2D(textureSampler,vUV+dsOffsets[15]);average/=16.0;gl_FragColor=average;}\n#endif\n#if defined(BRIGHT_PASS)\nuniform vec2 dsOffsets[4];uniform float brightThreshold;void main(void)\n{vec4 average=vec4(0.0,0.0,0.0,0.0);average=texture2D(textureSampler,vUV+vec2(dsOffsets[0].x,dsOffsets[0].y));average+=texture2D(textureSampler,vUV+vec2(dsOffsets[1].x,dsOffsets[1].y));average+=texture2D(textureSampler,vUV+vec2(dsOffsets[2].x,dsOffsets[2].y));average+=texture2D(textureSampler,vUV+vec2(dsOffsets[3].x,dsOffsets[3].y));average*=0.25;float luminance=length(average.rgb);if (luminanceshadowPixelDepth)\naccumFog+=sunColor*computeScattering(dot(rayDirection,sunDirection));currentPosition+=stepL;}\naccumFog/=NB_STEPS;vec3 color=accumFog*scatteringPower;gl_FragColor=vec4(color*exp(color) ,1.0);}\n#endif\n#if defined(VLSMERGE)\nuniform sampler2D originalSampler;void main(void)\n{gl_FragColor=texture2D(originalSampler,vUV)+texture2D(textureSampler,vUV);}\n#endif\n#if defined(LUMINANCE)\nuniform vec2 lumOffsets[4];void main()\n{float average=0.0;vec4 color=vec4(0.0);float maximum=-1e20;vec3 weight=vec3(0.299,0.587,0.114);for (int i=0; i<4; i++)\n{color=texture2D(textureSampler,vUV+ lumOffsets[i]);float GreyValue=dot(color.rgb,vec3(0.33,0.33,0.33));\n#ifdef WEIGHTED_AVERAGE\nfloat GreyValue=dot(color.rgb,weight);\n#endif\n#ifdef BRIGHTNESS\nfloat GreyValue=max(color.r,max(color.g,color.b));\n#endif\n#ifdef HSL_COMPONENT\nfloat GreyValue=0.5*(max(color.r,max(color.g,color.b))+min(color.r,min(color.g,color.b)));\n#endif\n#ifdef MAGNITUDE\nfloat GreyValue=length(color.rgb);\n#endif\nmaximum=max(maximum,GreyValue);average+=(0.25*log(1e-5+GreyValue));}\naverage=exp(average);gl_FragColor=vec4(average,maximum,0.0,1.0);}\n#endif\n#if defined(LUMINANCE_DOWN_SAMPLE)\nuniform vec2 dsOffsets[9];uniform float halfDestPixelSize;\n#ifdef FINAL_DOWN_SAMPLER\n#include\n#endif\nvoid main()\n{vec4 color=vec4(0.0);float average=0.0;for (int i=0; i<9; i++)\n{color=texture2D(textureSampler,vUV+vec2(halfDestPixelSize,halfDestPixelSize)+dsOffsets[i]);average+=color.r;}\naverage/=9.0;\n#ifdef FINAL_DOWN_SAMPLER\ngl_FragColor=pack(average);\n#else\ngl_FragColor=vec4(average,average,0.0,1.0);\n#endif\n}\n#endif\n#if defined(HDR)\nuniform sampler2D textureAdderSampler;uniform float averageLuminance;void main()\n{vec4 color=texture2D(textureAdderSampler,vUV);\n#ifndef AUTO_EXPOSURE\nvec4 adjustedColor=color/averageLuminance;color=adjustedColor;color.a=1.0;\n#endif\ngl_FragColor=color;}\n#endif\n#if defined(LENS_FLARE)\n#define GHOSTS 3\nuniform sampler2D lensColorSampler;uniform float strength;uniform float ghostDispersal;uniform float haloWidth;uniform vec2 resolution;uniform float distortionStrength;float hash(vec2 p)\n{float h=dot(p,vec2(127.1,311.7));return -1.0+2.0*fract(sin(h)*43758.5453123);}\nfloat noise(in vec2 p)\n{vec2 i=floor(p);vec2 f=fract(p);vec2 u=f*f*(3.0-2.0*f);return mix(mix(hash(i+vec2(0.0,0.0)),\nhash(i+vec2(1.0,0.0)),u.x),\nmix(hash(i+vec2(0.0,1.0)),\nhash(i+vec2(1.0,1.0)),u.x),u.y);}\nfloat fbm(vec2 p)\n{float f=0.0;f+=0.5000*noise(p); p*=2.02;f+=0.2500*noise(p); p*=2.03;f+=0.1250*noise(p); p*=2.01;f+=0.0625*noise(p); p*=2.04;f/=0.9375;return f;}\nvec3 pattern(vec2 uv)\n{vec2 p=-1.0+2.0*uv;float p2=dot(p,p);float f=fbm(vec2(15.0*p2))/2.0;float r=0.2+0.6*sin(12.5*length(uv-vec2(0.5)));float g=0.2+0.6*sin(20.5*length(uv-vec2(0.5)));float b=0.2+0.6*sin(17.2*length(uv-vec2(0.5)));return (1.0-f)*vec3(r,g,b);}\nfloat luminance(vec3 color)\n{return dot(color.rgb,vec3(0.2126,0.7152,0.0722));}\nvec4 textureDistorted(sampler2D tex,vec2 texcoord,vec2 direction,vec3 distortion)\n{return vec4(\ntexture2D(tex,texcoord+direction*distortion.r).r,\ntexture2D(tex,texcoord+direction*distortion.g).g,\ntexture2D(tex,texcoord+direction*distortion.b).b,\n1.0\n);}\nvoid main(void)\n{vec2 uv=-vUV+vec2(1.0);vec2 ghostDir=(vec2(0.5)-uv)*ghostDispersal;vec2 texelSize=1.0/resolution;vec3 distortion=vec3(-texelSize.x*distortionStrength,0.0,texelSize.x*distortionStrength);vec4 result=vec4(0.0);float ghostIndice=1.0;for (int i=0; i=nSamples)\nbreak;vec2 offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5);result+=texture2D(textureSampler,offset1);}\ngl_FragColor=result/float(nSamples);}\n#endif\n`;\nz.ShadersStore[Zz] = Jz;\nclass kt extends Kl {\n /**\n * Gets the overall exposure used by the pipeline\n */\n get exposure() {\n return this._fixedExposure;\n }\n /**\n * Sets the overall exposure used by the pipeline\n */\n set exposure(e) {\n this._fixedExposure = e, this._currentExposure = e;\n }\n /**\n * Gets whether or not the exposure of the overall pipeline should be automatically adjusted by the HDR post-process\n */\n get hdrAutoExposure() {\n return this._hdrAutoExposure;\n }\n /**\n * Sets whether or not the exposure of the overall pipeline should be automatically adjusted by the HDR post-process\n */\n set hdrAutoExposure(e) {\n if (this._hdrAutoExposure = e, this.hdrPostProcess) {\n const t = [\"#define HDR\"];\n e && t.push(\"#define AUTO_EXPOSURE\"), this.hdrPostProcess.updateEffect(t.join(`\n`));\n }\n }\n /**\n * Gets how much the image is blurred by the movement while using the motion blur post-process\n */\n get motionStrength() {\n return this._motionStrength;\n }\n /**\n * Sets how much the image is blurred by the movement while using the motion blur post-process\n */\n set motionStrength(e) {\n this._motionStrength = e, this._isObjectBasedMotionBlur && this.motionBlurPostProcess && (this.motionBlurPostProcess.motionStrength = e);\n }\n /**\n * Gets whether or not the motion blur post-process is object based or screen based.\n */\n get objectBasedMotionBlur() {\n return this._isObjectBasedMotionBlur;\n }\n /**\n * Sets whether or not the motion blur post-process should be object based or screen based\n */\n set objectBasedMotionBlur(e) {\n const t = this._isObjectBasedMotionBlur !== e;\n this._isObjectBasedMotionBlur = e, t && this._buildPipeline();\n }\n /**\n * @ignore\n * Specifies if the bloom pipeline is enabled\n */\n get BloomEnabled() {\n return this._bloomEnabled;\n }\n set BloomEnabled(e) {\n this._bloomEnabled !== e && (this._bloomEnabled = e, this._buildPipeline());\n }\n /**\n * @ignore\n * Specifies if the depth of field pipeline is enabled\n */\n get DepthOfFieldEnabled() {\n return this._depthOfFieldEnabled;\n }\n set DepthOfFieldEnabled(e) {\n this._depthOfFieldEnabled !== e && (this._depthOfFieldEnabled = e, this._buildPipeline());\n }\n /**\n * @ignore\n * Specifies if the lens flare pipeline is enabled\n */\n get LensFlareEnabled() {\n return this._lensFlareEnabled;\n }\n set LensFlareEnabled(e) {\n this._lensFlareEnabled !== e && (this._lensFlareEnabled = e, this._buildPipeline());\n }\n /**\n * @ignore\n * Specifies if the HDR pipeline is enabled\n */\n get HDREnabled() {\n return this._hdrEnabled;\n }\n set HDREnabled(e) {\n this._hdrEnabled !== e && (this._hdrEnabled = e, this._buildPipeline());\n }\n /**\n * @ignore\n * Specifies if the volumetric lights scattering effect is enabled\n */\n get VLSEnabled() {\n return this._vlsEnabled;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n set VLSEnabled(e) {\n if (this._vlsEnabled !== e) {\n if (e && !this._scene.enableGeometryBufferRenderer()) {\n L.Warn(\"Geometry renderer is not supported, cannot create volumetric lights in Standard Rendering Pipeline\");\n return;\n }\n this._vlsEnabled = e, this._buildPipeline();\n }\n }\n /**\n * @ignore\n * Specifies if the motion blur effect is enabled\n */\n get MotionBlurEnabled() {\n return this._motionBlurEnabled;\n }\n set MotionBlurEnabled(e) {\n this._motionBlurEnabled !== e && (this._motionBlurEnabled = e, this._buildPipeline());\n }\n /**\n * Specifies if anti-aliasing is enabled\n */\n get fxaaEnabled() {\n return this._fxaaEnabled;\n }\n set fxaaEnabled(e) {\n this._fxaaEnabled !== e && (this._fxaaEnabled = e, this._buildPipeline());\n }\n /**\n * Specifies if screen space reflections are enabled.\n */\n get screenSpaceReflectionsEnabled() {\n return this._screenSpaceReflectionsEnabled;\n }\n set screenSpaceReflectionsEnabled(e) {\n this._screenSpaceReflectionsEnabled !== e && (this._screenSpaceReflectionsEnabled = e, this._buildPipeline());\n }\n /**\n * Specifies the number of steps used to calculate the volumetric lights\n * Typically in interval [50, 200]\n */\n get volumetricLightStepsCount() {\n return this._volumetricLightStepsCount;\n }\n set volumetricLightStepsCount(e) {\n this.volumetricLightPostProcess && this.volumetricLightPostProcess.updateEffect(`#define VLS\n#define NB_STEPS ` + e.toFixed(1)), this._volumetricLightStepsCount = e;\n }\n /**\n * Specifies the number of samples used for the motion blur effect\n * Typically in interval [16, 64]\n */\n get motionBlurSamples() {\n return this._motionBlurSamples;\n }\n set motionBlurSamples(e) {\n this.motionBlurPostProcess && (this._isObjectBasedMotionBlur ? this.motionBlurPostProcess.motionBlurSamples = e : this.motionBlurPostProcess.updateEffect(`#define MOTION_BLUR\n#define MAX_MOTION_SAMPLES ` + e.toFixed(1))), this._motionBlurSamples = e;\n }\n /**\n * Specifies MSAA sample count, setting this to 4 will provide 4x anti aliasing. (default: 1)\n */\n get samples() {\n return this._samples;\n }\n set samples(e) {\n this._samples !== e && (this._samples = e, this._buildPipeline());\n }\n /**\n * Default pipeline should be used going forward but the standard pipeline will be kept for backwards compatibility.\n * @constructor\n * @param name The rendering pipeline name\n * @param scene The scene linked to this pipeline\n * @param ratio The size of the postprocesses (0.5 means that your postprocess will have a width = canvas.width 0.5 and a height = canvas.height 0.5)\n * @param originalPostProcess the custom original color post-process. Must be \"reusable\". Can be null.\n * @param cameras The array of cameras that the rendering pipeline will be attached to\n */\n constructor(e, t, i, s = null, r) {\n super(t.getEngine(), e), this.downSampleX4PostProcess = null, this.brightPassPostProcess = null, this.blurHPostProcesses = [], this.blurVPostProcesses = [], this.textureAdderPostProcess = null, this.volumetricLightPostProcess = null, this.volumetricLightSmoothXPostProcess = null, this.volumetricLightSmoothYPostProcess = null, this.volumetricLightMergePostProces = null, this.volumetricLightFinalPostProcess = null, this.luminancePostProcess = null, this.luminanceDownSamplePostProcesses = [], this.hdrPostProcess = null, this.textureAdderFinalPostProcess = null, this.lensFlareFinalPostProcess = null, this.hdrFinalPostProcess = null, this.lensFlarePostProcess = null, this.lensFlareComposePostProcess = null, this.motionBlurPostProcess = null, this.depthOfFieldPostProcess = null, this.fxaaPostProcess = null, this.screenSpaceReflectionPostProcess = null, this.brightThreshold = 1, this.blurWidth = 512, this.horizontalBlur = !1, this.lensTexture = null, this.volumetricLightCoefficient = 0.2, this.volumetricLightPower = 4, this.volumetricLightBlurScale = 64, this.sourceLight = null, this.hdrMinimumLuminance = 1, this.hdrDecreaseRate = 0.5, this.hdrIncreaseRate = 0.5, this.lensColorTexture = null, this.lensFlareStrength = 20, this.lensFlareGhostDispersal = 1.4, this.lensFlareHaloWidth = 0.7, this.lensFlareDistortionStrength = 16, this.lensFlareBlurWidth = 512, this.lensStarTexture = null, this.lensFlareDirtTexture = null, this.depthOfFieldDistance = 10, this.depthOfFieldBlurWidth = 64, this.animations = [], this._currentDepthOfFieldSource = null, this._fixedExposure = 1, this._currentExposure = 1, this._hdrAutoExposure = !1, this._hdrCurrentLuminance = 1, this._motionStrength = 1, this._isObjectBasedMotionBlur = !1, this._camerasToBeAttached = [], this._bloomEnabled = !1, this._depthOfFieldEnabled = !1, this._vlsEnabled = !1, this._lensFlareEnabled = !1, this._hdrEnabled = !1, this._motionBlurEnabled = !1, this._fxaaEnabled = !1, this._screenSpaceReflectionsEnabled = !1, this._motionBlurSamples = 64, this._volumetricLightStepsCount = 50, this._samples = 1, this._cameras = r || t.cameras, this._cameras = this._cameras.slice(), this._camerasToBeAttached = this._cameras.slice(), this._scene = t, this._basePostProcess = s, this._ratio = i, this._floatTextureType = t.getEngine().getCaps().textureFloatRender ? 1 : 2, t.postProcessRenderPipelineManager.addPipeline(this), this._buildPipeline();\n }\n _buildPipeline() {\n const e = this._ratio, t = this._scene;\n this._disposePostProcesses(), this._cameras !== null && (this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), this._cameras = this._camerasToBeAttached.slice()), this._reset(), this._screenSpaceReflectionsEnabled && (this.screenSpaceReflectionPostProcess = new Bn(\"HDRPass\", t, e, null, X.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, this._floatTextureType), this.screenSpaceReflectionPostProcess.onApplyObservable.add(() => {\n this._currentDepthOfFieldSource = this.screenSpaceReflectionPostProcess;\n }), this.addEffect(new Ft(t.getEngine(), \"HDRScreenSpaceReflections\", () => this.screenSpaceReflectionPostProcess, !0))), this._basePostProcess ? this.originalPostProcess = this._basePostProcess : this.originalPostProcess = new Be(\"HDRPass\", \"standard\", [], [], e, null, X.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, \"#define PASS_POST_PROCESS\", this._floatTextureType), this.originalPostProcess.autoClear = !this.screenSpaceReflectionPostProcess, this.originalPostProcess.onApplyObservable.add(() => {\n this._currentDepthOfFieldSource = this.originalPostProcess;\n }), this.addEffect(new Ft(t.getEngine(), \"HDRPassPostProcess\", () => this.originalPostProcess, !0)), this._bloomEnabled && (this._createDownSampleX4PostProcess(t, e / 4), this._createBrightPassPostProcess(t, e / 4), this._createBlurPostProcesses(t, e / 4, 1), this._createTextureAdderPostProcess(t, e), this.textureAdderFinalPostProcess = new Be(\"HDRDepthOfFieldSource\", \"standard\", [], [], e, null, X.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, \"#define PASS_POST_PROCESS\", 0), this.addEffect(new Ft(t.getEngine(), \"HDRBaseDepthOfFieldSource\", () => this.textureAdderFinalPostProcess, !0))), this._vlsEnabled && (this._createVolumetricLightPostProcess(t, e), this.volumetricLightFinalPostProcess = new Be(\"HDRVLSFinal\", \"standard\", [], [], e, null, X.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, \"#define PASS_POST_PROCESS\", 0), this.addEffect(new Ft(t.getEngine(), \"HDRVLSFinal\", () => this.volumetricLightFinalPostProcess, !0))), this._lensFlareEnabled && (this._createLensFlarePostProcess(t, e), this.lensFlareFinalPostProcess = new Be(\"HDRPostLensFlareDepthOfFieldSource\", \"standard\", [], [], e, null, X.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, \"#define PASS_POST_PROCESS\", 0), this.addEffect(new Ft(t.getEngine(), \"HDRPostLensFlareDepthOfFieldSource\", () => this.lensFlareFinalPostProcess, !0))), this._hdrEnabled && (this._createLuminancePostProcesses(t, this._floatTextureType), this._createHdrPostProcess(t, e), this.hdrFinalPostProcess = new Be(\"HDRPostHDReDepthOfFieldSource\", \"standard\", [], [], e, null, X.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, \"#define PASS_POST_PROCESS\", 0), this.addEffect(new Ft(t.getEngine(), \"HDRPostHDReDepthOfFieldSource\", () => this.hdrFinalPostProcess, !0))), this._depthOfFieldEnabled && (this._createBlurPostProcesses(t, e / 2, 3, \"depthOfFieldBlurWidth\"), this._createDepthOfFieldPostProcess(t, e)), this._motionBlurEnabled && this._createMotionBlurPostProcess(t, e), this._fxaaEnabled && (this.fxaaPostProcess = new Ic(\"fxaa\", 1, null, X.BILINEAR_SAMPLINGMODE, t.getEngine(), !1, 0), this.addEffect(new Ft(t.getEngine(), \"HDRFxaa\", () => this.fxaaPostProcess, !0))), this._cameras !== null && this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras), !this._enableMSAAOnFirstPostProcess(this._samples) && this._samples > 1 && L.Warn(\"MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0\");\n }\n // Down Sample X4 Post-Process\n _createDownSampleX4PostProcess(e, t) {\n const i = new Array(32);\n this.downSampleX4PostProcess = new Be(\"HDRDownSampleX4\", \"standard\", [\"dsOffsets\"], [], t, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, \"#define DOWN_SAMPLE_X4\", this._floatTextureType), this.downSampleX4PostProcess.onApply = (s) => {\n let r = 0;\n const n = this.downSampleX4PostProcess.width, o = this.downSampleX4PostProcess.height;\n for (let l = -2; l < 2; l++)\n for (let h = -2; h < 2; h++)\n i[r] = (l + 0.5) * (1 / n), i[r + 1] = (h + 0.5) * (1 / o), r += 2;\n s.setArray2(\"dsOffsets\", i);\n }, this.addEffect(new Ft(e.getEngine(), \"HDRDownSampleX4\", () => this.downSampleX4PostProcess, !0));\n }\n // Brightpass Post-Process\n _createBrightPassPostProcess(e, t) {\n const i = new Array(8);\n this.brightPassPostProcess = new Be(\"HDRBrightPass\", \"standard\", [\"dsOffsets\", \"brightThreshold\"], [], t, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, \"#define BRIGHT_PASS\", this._floatTextureType), this.brightPassPostProcess.onApply = (s) => {\n const r = 1 / this.brightPassPostProcess.width, n = 1 / this.brightPassPostProcess.height;\n i[0] = -0.5 * r, i[1] = 0.5 * n, i[2] = 0.5 * r, i[3] = 0.5 * n, i[4] = -0.5 * r, i[5] = -0.5 * n, i[6] = 0.5 * r, i[7] = -0.5 * n, s.setArray2(\"dsOffsets\", i), s.setFloat(\"brightThreshold\", this.brightThreshold);\n }, this.addEffect(new Ft(e.getEngine(), \"HDRBrightPass\", () => this.brightPassPostProcess, !0));\n }\n // Create blur H&V post-processes\n _createBlurPostProcesses(e, t, i, s = \"blurWidth\") {\n const r = e.getEngine(), n = new As(\"HDRBlurH_\" + i, new Q(1, 0), this[s], t, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, this._floatTextureType), o = new As(\"HDRBlurV_\" + i, new Q(0, 1), this[s], t, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, this._floatTextureType);\n n.onActivateObservable.add(() => {\n const l = n.width / r.getRenderWidth();\n n.kernel = this[s] * l;\n }), o.onActivateObservable.add(() => {\n const l = o.height / r.getRenderHeight();\n o.kernel = this.horizontalBlur ? 64 * l : this[s] * l;\n }), this.addEffect(new Ft(e.getEngine(), \"HDRBlurH\" + i, () => n, !0)), this.addEffect(new Ft(e.getEngine(), \"HDRBlurV\" + i, () => o, !0)), this.blurHPostProcesses.push(n), this.blurVPostProcesses.push(o);\n }\n // Create texture adder post-process\n _createTextureAdderPostProcess(e, t) {\n this.textureAdderPostProcess = new Be(\"HDRTextureAdder\", \"standard\", [\"exposure\"], [\"otherSampler\", \"lensSampler\"], t, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, \"#define TEXTURE_ADDER\", this._floatTextureType), this.textureAdderPostProcess.onApply = (i) => {\n i.setTextureFromPostProcess(\"otherSampler\", this._vlsEnabled ? this._currentDepthOfFieldSource : this.originalPostProcess), i.setTexture(\"lensSampler\", this.lensTexture), i.setFloat(\"exposure\", this._currentExposure), this._currentDepthOfFieldSource = this.textureAdderFinalPostProcess;\n }, this.addEffect(new Ft(e.getEngine(), \"HDRTextureAdder\", () => this.textureAdderPostProcess, !0));\n }\n _createVolumetricLightPostProcess(e, t) {\n const i = e.enableGeometryBufferRenderer();\n i.enablePosition = !0;\n const s = i.getGBuffer();\n this.volumetricLightPostProcess = new Be(\"HDRVLS\", \"standard\", [\"shadowViewProjection\", \"cameraPosition\", \"sunDirection\", \"sunColor\", \"scatteringCoefficient\", \"scatteringPower\", \"depthValues\"], [\"shadowMapSampler\", \"positionSampler\"], t / 8, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, `#define VLS\n#define NB_STEPS ` + this._volumetricLightStepsCount.toFixed(1));\n const r = Q.Zero();\n this.volumetricLightPostProcess.onApply = (n) => {\n if (this.sourceLight && this.sourceLight.getShadowGenerator() && this._scene.activeCamera) {\n const o = this.sourceLight.getShadowGenerator();\n n.setTexture(\"shadowMapSampler\", o.getShadowMap()), n.setTexture(\"positionSampler\", s.textures[2]), n.setColor3(\"sunColor\", this.sourceLight.diffuse), n.setVector3(\"sunDirection\", this.sourceLight.getShadowDirection()), n.setVector3(\"cameraPosition\", this._scene.activeCamera.globalPosition), n.setMatrix(\"shadowViewProjection\", o.getTransformMatrix()), n.setFloat(\"scatteringCoefficient\", this.volumetricLightCoefficient), n.setFloat(\"scatteringPower\", this.volumetricLightPower), r.x = this.sourceLight.getDepthMinZ(this._scene.activeCamera), r.y = this.sourceLight.getDepthMaxZ(this._scene.activeCamera), n.setVector2(\"depthValues\", r);\n }\n }, this.addEffect(new Ft(e.getEngine(), \"HDRVLS\", () => this.volumetricLightPostProcess, !0)), this._createBlurPostProcesses(e, t / 4, 0, \"volumetricLightBlurScale\"), this.volumetricLightMergePostProces = new Be(\"HDRVLSMerge\", \"standard\", [], [\"originalSampler\"], t, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, \"#define VLSMERGE\"), this.volumetricLightMergePostProces.onApply = (n) => {\n n.setTextureFromPostProcess(\"originalSampler\", this._bloomEnabled ? this.textureAdderFinalPostProcess : this.originalPostProcess), this._currentDepthOfFieldSource = this.volumetricLightFinalPostProcess;\n }, this.addEffect(new Ft(e.getEngine(), \"HDRVLSMerge\", () => this.volumetricLightMergePostProces, !0));\n }\n // Create luminance\n _createLuminancePostProcesses(e, t) {\n let i = Math.pow(3, kt.LuminanceSteps);\n this.luminancePostProcess = new Be(\"HDRLuminance\", \"standard\", [\"lumOffsets\"], [], { width: i, height: i }, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, \"#define LUMINANCE\", t);\n const s = [];\n this.luminancePostProcess.onApply = (n) => {\n const o = 1 / this.luminancePostProcess.width, l = 1 / this.luminancePostProcess.height;\n s[0] = -0.5 * o, s[1] = 0.5 * l, s[2] = 0.5 * o, s[3] = 0.5 * l, s[4] = -0.5 * o, s[5] = -0.5 * l, s[6] = 0.5 * o, s[7] = -0.5 * l, n.setArray2(\"lumOffsets\", s);\n }, this.addEffect(new Ft(e.getEngine(), \"HDRLuminance\", () => this.luminancePostProcess, !0));\n for (let n = kt.LuminanceSteps - 1; n >= 0; n--) {\n i = Math.pow(3, n);\n let o = `#define LUMINANCE_DOWN_SAMPLE\n`;\n n === 0 && (o += \"#define FINAL_DOWN_SAMPLER\");\n const l = new Be(\"HDRLuminanceDownSample\" + n, \"standard\", [\"dsOffsets\", \"halfDestPixelSize\"], [], { width: i, height: i }, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, o, t);\n this.luminanceDownSamplePostProcesses.push(l);\n }\n let r = this.luminancePostProcess;\n this.luminanceDownSamplePostProcesses.forEach((n, o) => {\n const l = new Array(18);\n n.onApply = (h) => {\n if (!r)\n return;\n let c = 0;\n for (let u = -1; u < 2; u++)\n for (let d = -1; d < 2; d++)\n l[c] = u / r.width, l[c + 1] = d / r.height, c += 2;\n h.setArray2(\"dsOffsets\", l), h.setFloat(\"halfDestPixelSize\", 0.5 / r.width), o === this.luminanceDownSamplePostProcesses.length - 1 ? r = this.luminancePostProcess : r = n;\n }, o === this.luminanceDownSamplePostProcesses.length - 1 && (n.onAfterRender = () => {\n const h = e.getEngine().readPixels(0, 0, 1, 1), c = new Ne(1 / (255 * 255 * 255), 1 / (255 * 255), 1 / 255, 1);\n h.then((u) => {\n const d = new Uint8Array(u.buffer);\n this._hdrCurrentLuminance = (d[0] * c.x + d[1] * c.y + d[2] * c.z + d[3] * c.w) / 100;\n });\n }), this.addEffect(new Ft(e.getEngine(), \"HDRLuminanceDownSample\" + o, () => n, !0));\n });\n }\n // Create HDR post-process\n _createHdrPostProcess(e, t) {\n const i = [\"#define HDR\"];\n this._hdrAutoExposure && i.push(\"#define AUTO_EXPOSURE\"), this.hdrPostProcess = new Be(\"HDR\", \"standard\", [\"averageLuminance\"], [\"textureAdderSampler\"], t, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, i.join(`\n`), 0);\n let s = 1, r = 0, n = 0;\n this.hdrPostProcess.onApply = (o) => {\n if (o.setTextureFromPostProcess(\"textureAdderSampler\", this._currentDepthOfFieldSource), r += e.getEngine().getDeltaTime(), s < 0)\n s = this._hdrCurrentLuminance;\n else {\n const l = (n - r) / 1e3;\n this._hdrCurrentLuminance < s + this.hdrDecreaseRate * l ? s += this.hdrDecreaseRate * l : this._hdrCurrentLuminance > s - this.hdrIncreaseRate * l ? s -= this.hdrIncreaseRate * l : s = this._hdrCurrentLuminance;\n }\n this.hdrAutoExposure ? this._currentExposure = this._fixedExposure / s : (s = Re.Clamp(s, this.hdrMinimumLuminance, 1e20), o.setFloat(\"averageLuminance\", s)), n = r, this._currentDepthOfFieldSource = this.hdrFinalPostProcess;\n }, this.addEffect(new Ft(e.getEngine(), \"HDR\", () => this.hdrPostProcess, !0));\n }\n // Create lens flare post-process\n _createLensFlarePostProcess(e, t) {\n this.lensFlarePostProcess = new Be(\"HDRLensFlare\", \"standard\", [\"strength\", \"ghostDispersal\", \"haloWidth\", \"resolution\", \"distortionStrength\"], [\"lensColorSampler\"], t / 2, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, \"#define LENS_FLARE\", 0), this.addEffect(new Ft(e.getEngine(), \"HDRLensFlare\", () => this.lensFlarePostProcess, !0)), this._createBlurPostProcesses(e, t / 4, 2, \"lensFlareBlurWidth\"), this.lensFlareComposePostProcess = new Be(\"HDRLensFlareCompose\", \"standard\", [\"lensStarMatrix\"], [\"otherSampler\", \"lensDirtSampler\", \"lensStarSampler\"], t, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, \"#define LENS_FLARE_COMPOSE\", 0), this.addEffect(new Ft(e.getEngine(), \"HDRLensFlareCompose\", () => this.lensFlareComposePostProcess, !0));\n const i = new Q(0, 0);\n this.lensFlarePostProcess.externalTextureSamplerBinding = !0, this.lensFlarePostProcess.onApply = (n) => {\n n.setTextureFromPostProcess(\"textureSampler\", this._bloomEnabled ? this.blurHPostProcesses[0] : this.originalPostProcess), n.setTexture(\"lensColorSampler\", this.lensColorTexture), n.setFloat(\"strength\", this.lensFlareStrength), n.setFloat(\"ghostDispersal\", this.lensFlareGhostDispersal), n.setFloat(\"haloWidth\", this.lensFlareHaloWidth), i.x = this.lensFlarePostProcess.width, i.y = this.lensFlarePostProcess.height, n.setVector2(\"resolution\", i), n.setFloat(\"distortionStrength\", this.lensFlareDistortionStrength);\n };\n const s = O.FromValues(2, 0, -1, 0, 0, 2, -1, 0, 0, 0, 1, 0, 0, 0, 0, 1), r = O.FromValues(0.5, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n this.lensFlareComposePostProcess.onApply = (n) => {\n if (!this._scene.activeCamera)\n return;\n n.setTextureFromPostProcess(\"otherSampler\", this.lensFlarePostProcess), n.setTexture(\"lensDirtSampler\", this.lensFlareDirtTexture), n.setTexture(\"lensStarSampler\", this.lensStarTexture);\n const o = this._scene.activeCamera.getViewMatrix().getRow(0), l = this._scene.activeCamera.getViewMatrix().getRow(2);\n let h = g.Dot(o.toVector3(), new g(1, 0, 0)) + g.Dot(l.toVector3(), new g(0, 0, 1));\n h *= 4;\n const c = O.FromValues(Math.cos(h) * 0.5, -Math.sin(h), 0, 0, Math.sin(h), Math.cos(h) * 0.5, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), u = r.multiply(c).multiply(s);\n n.setMatrix(\"lensStarMatrix\", u), this._currentDepthOfFieldSource = this.lensFlareFinalPostProcess;\n };\n }\n // Create depth-of-field post-process\n _createDepthOfFieldPostProcess(e, t) {\n this.depthOfFieldPostProcess = new Be(\"HDRDepthOfField\", \"standard\", [\"distance\"], [\"otherSampler\", \"depthSampler\"], t, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, \"#define DEPTH_OF_FIELD\", 0), this.depthOfFieldPostProcess.onApply = (i) => {\n i.setTextureFromPostProcess(\"otherSampler\", this._currentDepthOfFieldSource), i.setTexture(\"depthSampler\", this._getDepthTexture()), i.setFloat(\"distance\", this.depthOfFieldDistance);\n }, this.addEffect(new Ft(e.getEngine(), \"HDRDepthOfField\", () => this.depthOfFieldPostProcess, !0));\n }\n // Create motion blur post-process\n _createMotionBlurPostProcess(e, t) {\n if (this._isObjectBasedMotionBlur) {\n const i = new Yl(\"HDRMotionBlur\", e, t, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, 0);\n i.motionStrength = this.motionStrength, i.motionBlurSamples = this.motionBlurSamples, this.motionBlurPostProcess = i;\n } else {\n this.motionBlurPostProcess = new Be(\"HDRMotionBlur\", \"standard\", [\"inverseViewProjection\", \"prevViewProjection\", \"screenSize\", \"motionScale\", \"motionStrength\"], [\"depthSampler\"], t, null, X.BILINEAR_SAMPLINGMODE, e.getEngine(), !1, `#define MOTION_BLUR\n#define MAX_MOTION_SAMPLES ` + this.motionBlurSamples.toFixed(1), 0);\n let i = 0, s = O.Identity();\n const r = O.Identity();\n let n = O.Identity();\n const o = Q.Zero();\n this.motionBlurPostProcess.onApply = (l) => {\n n = e.getProjectionMatrix().multiply(e.getViewMatrix()), n.invertToRef(r), l.setMatrix(\"inverseViewProjection\", r), l.setMatrix(\"prevViewProjection\", s), s = n, o.x = this.motionBlurPostProcess.width, o.y = this.motionBlurPostProcess.height, l.setVector2(\"screenSize\", o), i = e.getEngine().getFps() / 60, l.setFloat(\"motionScale\", i), l.setFloat(\"motionStrength\", this.motionStrength), l.setTexture(\"depthSampler\", this._getDepthTexture());\n };\n }\n this.addEffect(new Ft(e.getEngine(), \"HDRMotionBlur\", () => this.motionBlurPostProcess, !0));\n }\n _getDepthTexture() {\n return this._scene.getEngine().getCaps().drawBuffersExtension ? this._scene.enableGeometryBufferRenderer().getGBuffer().textures[0] : this._scene.enableDepthRenderer().getDepthMap();\n }\n _disposePostProcesses() {\n for (let e = 0; e < this._cameras.length; e++) {\n const t = this._cameras[e];\n this.originalPostProcess && this.originalPostProcess.dispose(t), this.screenSpaceReflectionPostProcess && this.screenSpaceReflectionPostProcess.dispose(t), this.downSampleX4PostProcess && this.downSampleX4PostProcess.dispose(t), this.brightPassPostProcess && this.brightPassPostProcess.dispose(t), this.textureAdderPostProcess && this.textureAdderPostProcess.dispose(t), this.volumetricLightPostProcess && this.volumetricLightPostProcess.dispose(t), this.volumetricLightSmoothXPostProcess && this.volumetricLightSmoothXPostProcess.dispose(t), this.volumetricLightSmoothYPostProcess && this.volumetricLightSmoothYPostProcess.dispose(t), this.volumetricLightMergePostProces && this.volumetricLightMergePostProces.dispose(t), this.volumetricLightFinalPostProcess && this.volumetricLightFinalPostProcess.dispose(t), this.lensFlarePostProcess && this.lensFlarePostProcess.dispose(t), this.lensFlareComposePostProcess && this.lensFlareComposePostProcess.dispose(t);\n for (let i = 0; i < this.luminanceDownSamplePostProcesses.length; i++)\n this.luminanceDownSamplePostProcesses[i].dispose(t);\n this.luminancePostProcess && this.luminancePostProcess.dispose(t), this.hdrPostProcess && this.hdrPostProcess.dispose(t), this.hdrFinalPostProcess && this.hdrFinalPostProcess.dispose(t), this.depthOfFieldPostProcess && this.depthOfFieldPostProcess.dispose(t), this.motionBlurPostProcess && this.motionBlurPostProcess.dispose(t), this.fxaaPostProcess && this.fxaaPostProcess.dispose(t);\n for (let i = 0; i < this.blurHPostProcesses.length; i++)\n this.blurHPostProcesses[i].dispose(t);\n for (let i = 0; i < this.blurVPostProcesses.length; i++)\n this.blurVPostProcesses[i].dispose(t);\n }\n this.originalPostProcess = null, this.downSampleX4PostProcess = null, this.brightPassPostProcess = null, this.textureAdderPostProcess = null, this.textureAdderFinalPostProcess = null, this.volumetricLightPostProcess = null, this.volumetricLightSmoothXPostProcess = null, this.volumetricLightSmoothYPostProcess = null, this.volumetricLightMergePostProces = null, this.volumetricLightFinalPostProcess = null, this.lensFlarePostProcess = null, this.lensFlareComposePostProcess = null, this.luminancePostProcess = null, this.hdrPostProcess = null, this.hdrFinalPostProcess = null, this.depthOfFieldPostProcess = null, this.motionBlurPostProcess = null, this.fxaaPostProcess = null, this.screenSpaceReflectionPostProcess = null, this.luminanceDownSamplePostProcesses.length = 0, this.blurHPostProcesses.length = 0, this.blurVPostProcesses.length = 0;\n }\n /**\n * Dispose of the pipeline and stop all post processes\n */\n dispose() {\n this._disposePostProcesses(), this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), super.dispose();\n }\n /**\n * Serialize the rendering pipeline (Used when exporting)\n * @returns the serialized object\n */\n serialize() {\n const e = Ae.Serialize(this);\n return this.sourceLight && (e.sourceLightId = this.sourceLight.id), this.screenSpaceReflectionPostProcess && (e.screenSpaceReflectionPostProcess = Ae.Serialize(this.screenSpaceReflectionPostProcess)), e.customType = \"StandardRenderingPipeline\", e;\n }\n /**\n * Parse the serialized pipeline\n * @param source Source pipeline.\n * @param scene The scene to load the pipeline to.\n * @param rootUrl The URL of the serialized pipeline.\n * @returns An instantiated pipeline from the serialized object.\n */\n static Parse(e, t, i) {\n const s = Ae.Parse(() => new kt(e._name, t, e._ratio), e, t, i);\n return e.sourceLightId && (s.sourceLight = t.getLightById(e.sourceLightId)), e.screenSpaceReflectionPostProcess && Ae.Parse(() => s.screenSpaceReflectionPostProcess, e.screenSpaceReflectionPostProcess, t, i), s;\n }\n}\nkt.LuminanceSteps = 6;\ny([\n I()\n], kt.prototype, \"brightThreshold\", void 0);\ny([\n I()\n], kt.prototype, \"blurWidth\", void 0);\ny([\n I()\n], kt.prototype, \"horizontalBlur\", void 0);\ny([\n I()\n], kt.prototype, \"exposure\", null);\ny([\n xt(\"lensTexture\")\n], kt.prototype, \"lensTexture\", void 0);\ny([\n I()\n], kt.prototype, \"volumetricLightCoefficient\", void 0);\ny([\n I()\n], kt.prototype, \"volumetricLightPower\", void 0);\ny([\n I()\n], kt.prototype, \"volumetricLightBlurScale\", void 0);\ny([\n I()\n], kt.prototype, \"hdrMinimumLuminance\", void 0);\ny([\n I()\n], kt.prototype, \"hdrDecreaseRate\", void 0);\ny([\n I()\n], kt.prototype, \"hdrIncreaseRate\", void 0);\ny([\n I()\n], kt.prototype, \"hdrAutoExposure\", null);\ny([\n xt(\"lensColorTexture\")\n], kt.prototype, \"lensColorTexture\", void 0);\ny([\n I()\n], kt.prototype, \"lensFlareStrength\", void 0);\ny([\n I()\n], kt.prototype, \"lensFlareGhostDispersal\", void 0);\ny([\n I()\n], kt.prototype, \"lensFlareHaloWidth\", void 0);\ny([\n I()\n], kt.prototype, \"lensFlareDistortionStrength\", void 0);\ny([\n I()\n], kt.prototype, \"lensFlareBlurWidth\", void 0);\ny([\n xt(\"lensStarTexture\")\n], kt.prototype, \"lensStarTexture\", void 0);\ny([\n xt(\"lensFlareDirtTexture\")\n], kt.prototype, \"lensFlareDirtTexture\", void 0);\ny([\n I()\n], kt.prototype, \"depthOfFieldDistance\", void 0);\ny([\n I()\n], kt.prototype, \"depthOfFieldBlurWidth\", void 0);\ny([\n I()\n], kt.prototype, \"motionStrength\", null);\ny([\n I()\n], kt.prototype, \"objectBasedMotionBlur\", null);\ny([\n I()\n], kt.prototype, \"_ratio\", void 0);\ny([\n I()\n], kt.prototype, \"BloomEnabled\", null);\ny([\n I()\n], kt.prototype, \"DepthOfFieldEnabled\", null);\ny([\n I()\n], kt.prototype, \"LensFlareEnabled\", null);\ny([\n I()\n], kt.prototype, \"HDREnabled\", null);\ny([\n I()\n // eslint-disable-next-line @typescript-eslint/naming-convention\n], kt.prototype, \"VLSEnabled\", null);\ny([\n I()\n], kt.prototype, \"MotionBlurEnabled\", null);\ny([\n I()\n], kt.prototype, \"fxaaEnabled\", null);\ny([\n I()\n], kt.prototype, \"screenSpaceReflectionsEnabled\", null);\ny([\n I()\n], kt.prototype, \"volumetricLightStepsCount\", null);\ny([\n I()\n], kt.prototype, \"motionBlurSamples\", null);\ny([\n I()\n], kt.prototype, \"samples\", null);\nU(\"BABYLON.StandardRenderingPipeline\", kt);\nclass e4 {\n constructor() {\n this.enabled = !1, this.name = \"screenSpaceReflections2\", this.texturesRequired = [6, 3, 5];\n }\n}\nconst t4 = \"screenSpaceRayTrace\", i4 = `float distanceSquared(vec2 a,vec2 b) { a-=b; return dot(a,a); }\n/**\nparam csOrigin Camera-space ray origin,which must be \nwithin the view volume and must have z>0.01 and project within the valid screen rectangle\nparam csDirection Unit length camera-space ray direction\nparam projectToPixelMatrix A projection matrix that maps to **pixel** coordinates \n(**not** [-1,+1] normalized device coordinates).\nparam csZBuffer The camera-space Z buffer\nparam csZBufferSize Dimensions of csZBuffer\nparam csZThickness Camera space csZThickness to ascribe to each pixel in the depth buffer\nparam nearPlaneZ Positive number. Doesn't have to be THE actual near plane,just a reasonable value\nfor clipping rays headed towards the camera\nparam stride Step in horizontal or vertical pixels between samples. This is a float\nbecause integer math is slow on GPUs,but should be set to an integer>=1\nparam jitterFraction Number between 0 and 1 for how far to bump the ray in stride units\nto conceal banding artifacts,plus the stride ray offset.\nparam maxSteps Maximum number of iterations. Higher gives better images but may be slow\nparam maxRayTraceDistance Maximum camera-space distance to trace before returning a miss\nparam selfCollisionNumSkip Number of steps to skip at start when raytracing to avoid self collisions.\n1 is a reasonable value,depending on the scene you may need to set this value to 2\nparam hitPixel Pixel coordinates of the first intersection with the scene\nparam numIterations number of iterations performed\nparam csHitPoint Camera space location of the ray hit\n*/\n#define inline\nbool traceScreenSpaceRay1(\nvec3 csOrigin,\nvec3 csDirection,\nmat4 projectToPixelMatrix,\nsampler2D csZBuffer,\nvec2 csZBufferSize,\n#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER\nsampler2D csZBackBuffer,\nfloat csZBackSizeFactor,\n#endif\nfloat csZThickness,\nfloat nearPlaneZ,\nfloat stride,\nfloat jitterFraction,\nfloat maxSteps,\nfloat maxRayTraceDistance,\nfloat selfCollisionNumSkip,\nout vec2 startPixel,\nout vec2 hitPixel,\nout vec3 csHitPoint,\nout float numIterations\n#ifdef SSRAYTRACE_DEBUG\n,out vec3 debugColor\n#endif\n)\n{\n#ifdef SSRAYTRACE_RIGHT_HANDED_SCENE\nfloat rayLength=(csOrigin.z+csDirection.z*maxRayTraceDistance)>-nearPlaneZ ? (-nearPlaneZ-csOrigin.z)/csDirection.z : maxRayTraceDistance;\n#else\nfloat rayLength=(csOrigin.z+csDirection.z*maxRayTraceDistance)yMax) || (P1.yyMax) ? yMax : yMin))/(P1.y-P0.y);}\nif ((P1.x>xMax) || (P1.xxMax) ? xMax : xMin))/(P1.x-P0.x));}\nP1=mix(P1,P0,alpha); k1=mix(k1,k0,alpha); Q1=mix(Q1,Q0,alpha);\n#endif\nP1+=vec2((distanceSquared(P0,P1)<0.0001) ? 0.01 : 0.0);vec2 delta=P1-P0;bool permute=false;if (abs(delta.x)rayZMax) { \nfloat t=rayZMin; rayZMin=rayZMax; rayZMax=t;}\nsceneZMax=texelFetch(csZBuffer,ivec2(hitPixel),0).r;\n#ifdef SSRAYTRACE_RIGHT_HANDED_SCENE\n#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER\nfloat sceneBackZ=texelFetch(csZBackBuffer,ivec2(hitPixel/csZBackSizeFactor),0).r;hit=(rayZMax>=sceneBackZ-csZThickness) && (rayZMin<=sceneZMax);\n#else\nhit=(rayZMax>=sceneZMax-csZThickness) && (rayZMin<=sceneZMax);\n#endif\n#else\n#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER\nfloat sceneBackZ=texelFetch(csZBackBuffer,ivec2(hitPixel/csZBackSizeFactor),0).r;hit=(rayZMin<=sceneBackZ+csZThickness) && (rayZMax>=sceneZMax) && (sceneZMax != 0.0);\n#else\nhit=(rayZMin<=sceneZMax+csZThickness) && (rayZMax>=sceneZMax);\n#endif\n#endif\n}\npqk-=dPQK;stepCount-=1.0;if (((pqk.x+dPQK.x)*stepDirection)>end || (stepCount+1.0)>=maxSteps || sceneZMax==0.0) {hit=false;}\n#ifdef SSRAYTRACE_ENABLE_REFINEMENT\nif (stride>1.0 && hit) {pqk-=dPQK;stepCount-=1.0;float invStride=1.0/stride;dPQK*=invStride;float refinementStepCount=0.0;prevZMaxEstimate=pqk.z/pqk.w;rayZMax=prevZMaxEstimate;sceneZMax=rayZMax+1e7;for (;refinementStepCount<=1.0 ||\n(refinementStepCount<=stride*1.4) &&\n(rayZMaxend) {debugColor=vec3(0,0,1);} else if ((stepCount+1.0)>=maxSteps) {debugColor=vec3(1,0,0);} else if (sceneZMax==0.0) {debugColor=vec3(1,1,0);} else {debugColor=vec3(0,stepCount/maxSteps,0);}\n#endif\nreturn hit;}\n/**\ntexCoord: in the [0,1] range\ndepth: depth in view space (range [znear,zfar]])\n*/\nvec3 computeViewPosFromUVDepth(vec2 texCoord,float depth,mat4 projection,mat4 invProjectionMatrix) {vec4 ndc;ndc.xy=texCoord*2.0-1.0;\n#ifdef SSRAYTRACE_RIGHT_HANDED_SCENE\n#ifdef ORTHOGRAPHIC_CAMERA\nndc.z=-projection[2].z*depth+projection[3].z;\n#else\nndc.z=-projection[2].z-projection[3].z/depth;\n#endif\n#else\n#ifdef ORTHOGRAPHIC_CAMERA\nndc.z=projection[2].z*depth+projection[3].z;\n#else\nndc.z=projection[2].z+projection[3].z/depth;\n#endif\n#endif\nndc.w=1.0;vec4 eyePos=invProjectionMatrix*ndc;eyePos.xyz/=eyePos.w;return eyePos.xyz;}\n`;\nz.IncludesShadersStore[t4] = i4;\nconst s4 = \"screenSpaceReflection2PixelShader\", r4 = `#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\n#define TEXTUREFUNC(s,c,lod) texture2DLodEXT(s,c,lod)\n#define TEXTURECUBEFUNC(s,c,lod) textureLod(s,c,lod)\n#else\n#define TEXTUREFUNC(s,c,bias) texture2D(s,c,bias)\n#define TEXTURECUBEFUNC(s,c,bias) textureCube(s,c,bias)\n#endif\nuniform sampler2D textureSampler;varying vec2 vUV;\n#ifdef SSR_SUPPORTED\nuniform sampler2D reflectivitySampler;uniform sampler2D normalSampler;uniform sampler2D depthSampler;\n#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER\nuniform sampler2D backDepthSampler;uniform float backSizeFactor;\n#endif\n#ifdef SSR_USE_ENVIRONMENT_CUBE\nuniform samplerCube envCubeSampler;\n#ifdef SSR_USE_LOCAL_REFLECTIONMAP_CUBIC\nuniform vec3 vReflectionPosition;uniform vec3 vReflectionSize;\n#endif\n#endif\nuniform mat4 view;uniform mat4 invView;uniform mat4 projection;uniform mat4 invProjectionMatrix;uniform mat4 projectionPixel;uniform float nearPlaneZ;uniform float stepSize;uniform float maxSteps;uniform float strength;uniform float thickness;uniform float roughnessFactor;uniform float reflectionSpecularFalloffExponent;uniform float maxDistance;uniform float selfCollisionNumSkip;uniform float reflectivityThreshold;\n#include\n#include\n#include\nvec3 hash(vec3 a)\n{a=fract(a*0.8);a+=dot(a,a.yxz+19.19);return fract((a.xxy+a.yxx)*a.zyx);}\nfloat computeAttenuationForIntersection(ivec2 hitPixel,vec2 hitUV,vec3 vsRayOrigin,vec3 vsHitPoint,vec3 reflectionVector,float maxRayDistance,float numIterations) {float attenuation=1.0;\n#ifdef SSR_ATTENUATE_SCREEN_BORDERS\nvec2 dCoords=smoothstep(0.2,0.6,abs(vec2(0.5,0.5)-hitUV.xy));attenuation*=clamp(1.0-(dCoords.x+dCoords.y),0.0,1.0);\n#endif\n#ifdef SSR_ATTENUATE_INTERSECTION_DISTANCE\nattenuation*=1.0-clamp(distance(vsRayOrigin,vsHitPoint)/maxRayDistance,0.0,1.0);\n#endif\n#ifdef SSR_ATTENUATE_INTERSECTION_NUMITERATIONS\nattenuation*=1.0-(numIterations/maxSteps);\n#endif\n#ifdef SSR_ATTENUATE_BACKFACE_REFLECTION\nvec3 reflectionNormal=texelFetch(normalSampler,hitPixel,0).xyz;float directionBasedAttenuation=smoothstep(-0.17,0.0,dot(reflectionNormal,-reflectionVector));attenuation*=directionBasedAttenuation;\n#endif\nreturn attenuation;}\n#endif\nvoid main()\n{\n#ifdef SSR_SUPPORTED\nvec4 colorFull=TEXTUREFUNC(textureSampler,vUV,0.0);vec3 color=colorFull.rgb;vec4 reflectivity=TEXTUREFUNC(reflectivitySampler,vUV,0.0);\n#ifndef SSR_DISABLE_REFLECTIVITY_TEST\nif (max(reflectivity.r,max(reflectivity.g,reflectivity.b))<=reflectivityThreshold) {\n#ifdef SSR_USE_BLUR\ngl_FragColor=vec4(0.);\n#else\ngl_FragColor=colorFull;\n#endif\nreturn;}\n#endif\n#ifdef SSR_INPUT_IS_GAMMA_SPACE\ncolor=toLinearSpace(color);\n#endif\nvec2 texSize=vec2(textureSize(depthSampler,0));vec3 csNormal=texelFetch(normalSampler,ivec2(vUV*texSize),0).xyz; \n#ifdef SSR_DECODE_NORMAL\ncsNormal=csNormal*2.0-1.0;\n#endif\n#ifdef SSR_NORMAL_IS_IN_WORLDSPACE\ncsNormal=(view*vec4(csNormal,0.0)).xyz;\n#endif\nfloat depth=texelFetch(depthSampler,ivec2(vUV*texSize),0).r;vec3 csPosition=computeViewPosFromUVDepth(vUV,depth,projection,invProjectionMatrix);\n#ifdef ORTHOGRAPHIC_CAMERA\nvec3 csViewDirection=vec3(0.,0.,1.);\n#else\nvec3 csViewDirection=normalize(csPosition);\n#endif\nvec3 csReflectedVector=reflect(csViewDirection,csNormal);\n#ifdef SSR_USE_ENVIRONMENT_CUBE\nvec3 wReflectedVector=vec3(invView*vec4(csReflectedVector,0.0));\n#ifdef SSR_USE_LOCAL_REFLECTIONMAP_CUBIC\nvec4 worldPos=invView*vec4(csPosition,1.0);wReflectedVector=parallaxCorrectNormal(worldPos.xyz,normalize(wReflectedVector),vReflectionSize,vReflectionPosition);\n#endif\n#ifdef SSR_INVERTCUBICMAP\nwReflectedVector.y*=-1.0;\n#endif\n#ifdef SSRAYTRACE_RIGHT_HANDED_SCENE\nwReflectedVector.z*=-1.0;\n#endif\nvec3 envColor=TEXTURECUBEFUNC(envCubeSampler,wReflectedVector,0.0).xyz;\n#ifdef SSR_ENVIRONMENT_CUBE_IS_GAMMASPACE\nenvColor=toLinearSpace(envColor);\n#endif\n#else\nvec3 envColor=color;\n#endif\nfloat reflectionAttenuation=1.0;bool rayHasHit=false;vec2 startPixel;vec2 hitPixel;vec3 hitPoint;float numIterations;\n#ifdef SSRAYTRACE_DEBUG\nvec3 debugColor;\n#endif\n#ifdef SSR_ATTENUATE_FACING_CAMERA\nreflectionAttenuation*=1.0-smoothstep(0.25,0.5,dot(-csViewDirection,csReflectedVector));\n#endif\nif (reflectionAttenuation>0.0) {\n#ifdef SSR_USE_BLUR\nvec3 jitt=vec3(0.);\n#else\nfloat roughness=1.0-reflectivity.a;vec3 jitt=mix(vec3(0.0),hash(csPosition)-vec3(0.5),roughness)*roughnessFactor; \n#endif\nvec2 uv2=vUV*texSize;float c=(uv2.x+uv2.y)*0.25;float jitter=mod(c,1.0); \nrayHasHit=traceScreenSpaceRay1(\ncsPosition,\nnormalize(csReflectedVector+jitt),\nprojectionPixel,\ndepthSampler,\ntexSize,\n#ifdef SSRAYTRACE_USE_BACK_DEPTHBUFFER\nbackDepthSampler,\nbackSizeFactor,\n#endif\nthickness,\nnearPlaneZ,\nstepSize,\njitter,\nmaxSteps,\nmaxDistance,\nselfCollisionNumSkip,\nstartPixel,\nhitPixel,\nhitPoint,\nnumIterations\n#ifdef SSRAYTRACE_DEBUG\n,debugColor\n#endif\n);}\n#ifdef SSRAYTRACE_DEBUG\ngl_FragColor=vec4(debugColor,1.);return;\n#endif\nvec3 F0=reflectivity.rgb;vec3 fresnel=fresnelSchlickGGX(max(dot(csNormal,-csViewDirection),0.0),F0,vec3(1.));vec3 SSR=envColor;if (rayHasHit) {vec3 reflectedColor=texelFetch(textureSampler,ivec2(hitPixel),0).rgb;\n#ifdef SSR_INPUT_IS_GAMMA_SPACE\nreflectedColor=toLinearSpace(reflectedColor);\n#endif\nreflectionAttenuation*=computeAttenuationForIntersection(ivec2(hitPixel),hitPixel/texSize,csPosition,hitPoint,csReflectedVector,maxDistance,numIterations);SSR=reflectedColor*reflectionAttenuation+(1.0-reflectionAttenuation)*envColor;}\n#ifndef SSR_BLEND_WITH_FRESNEL\nSSR*=fresnel;\n#endif\n#ifdef SSR_USE_BLUR\nfloat blur_radius=0.0;float roughness=1.0-reflectivity.a*(1.0-roughnessFactor);if (roughness>0.001) {float cone_angle=min(roughness,0.999)*3.14159265*0.5;float cone_len=distance(startPixel,hitPixel);float op_len=2.0*tan(cone_angle)*cone_len; \nfloat a=op_len;float h=cone_len;float a2=a*a;float fh2=4.0f*h*h;blur_radius=(a*(sqrt(a2+fh2)-a))/(4.0f*h);}\ngl_FragColor=vec4(SSR,blur_radius/255.0); \n#else\n#ifdef SSR_BLEND_WITH_FRESNEL\nvec3 reflectionMultiplier=clamp(pow(fresnel*strength,vec3(reflectionSpecularFalloffExponent)),0.0,1.0);\n#else\nvec3 reflectionMultiplier=clamp(pow(reflectivity.rgb*strength,vec3(reflectionSpecularFalloffExponent)),0.0,1.0);\n#endif\nvec3 colorMultiplier=1.0-reflectionMultiplier;vec3 finalColor=(color*colorMultiplier)+(SSR*reflectionMultiplier);\n#ifdef SSR_OUTPUT_IS_GAMMA_SPACE\nfinalColor=toGammaSpace(finalColor);\n#endif\ngl_FragColor=vec4(finalColor,colorFull.a);\n#endif\n#else\ngl_FragColor=TEXTUREFUNC(textureSampler,vUV,0.0);\n#endif\n}\n`;\nz.ShadersStore[s4] = r4;\nconst n4 = \"screenSpaceReflection2BlurPixelShader\", a4 = `#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\n#define TEXTUREFUNC(s,c,lod) texture2DLodEXT(s,c,lod)\n#else\n#define TEXTUREFUNC(s,c,bias) texture2D(s,c,bias)\n#endif\nuniform sampler2D textureSampler;varying vec2 vUV;uniform vec2 texelOffsetScale;const float weights[8]=float[8] (0.071303,0.131514,0.189879,0.321392,0.452906, 0.584419,0.715932,0.847445);void processSample(vec2 uv,float i,vec2 stepSize,inout vec4 accumulator,inout float denominator)\n{vec2 offsetUV=stepSize*i+uv;float coefficient=weights[int(2.0-abs(i))];accumulator+=TEXTUREFUNC(textureSampler,offsetUV,0.0)*coefficient;denominator+=coefficient;}\nvoid main()\n{vec4 colorFull=TEXTUREFUNC(textureSampler,vUV,0.0);if (dot(colorFull,vec4(1.0))==0.0) {gl_FragColor=colorFull;return;}\nfloat blurRadius=colorFull.a*255.0; \nvec2 stepSize=texelOffsetScale.xy*blurRadius;vec4 accumulator=TEXTUREFUNC(textureSampler,vUV,0.0)*0.214607;float denominator=0.214607;processSample(vUV,1.0,stepSize,accumulator,denominator);processSample(vUV,1.0*0.2,stepSize,accumulator,denominator);processSample(vUV,1.0*0.4,stepSize,accumulator,denominator);processSample(vUV,1.0*0.6,stepSize,accumulator,denominator);processSample(vUV,1.0*0.8,stepSize,accumulator,denominator);processSample(vUV,1.0*1.2,stepSize,accumulator,denominator);processSample(vUV,1.0*1.4,stepSize,accumulator,denominator);processSample(vUV,1.0*1.6,stepSize,accumulator,denominator);processSample(vUV,1.0*1.8,stepSize,accumulator,denominator);processSample(vUV,1.0*2.0,stepSize,accumulator,denominator);processSample(vUV,-1.0,stepSize,accumulator,denominator);processSample(vUV,-1.0*0.2,stepSize,accumulator,denominator);processSample(vUV,-1.0*0.4,stepSize,accumulator,denominator);processSample(vUV,-1.0*0.6,stepSize,accumulator,denominator);processSample(vUV,-1.0*0.8,stepSize,accumulator,denominator);processSample(vUV,-1.0*1.2,stepSize,accumulator,denominator);processSample(vUV,-1.0*1.4,stepSize,accumulator,denominator);processSample(vUV,-1.0*1.6,stepSize,accumulator,denominator);processSample(vUV,-1.0*1.8,stepSize,accumulator,denominator);processSample(vUV,-1.0*2.0,stepSize,accumulator,denominator);gl_FragColor=vec4(accumulator.rgb/denominator,colorFull.a);}\n`;\nz.ShadersStore[n4] = a4;\nconst o4 = \"screenSpaceReflection2BlurCombinerPixelShader\", l4 = `uniform sampler2D textureSampler; \nuniform sampler2D mainSampler;uniform sampler2D reflectivitySampler;uniform float strength;uniform float reflectionSpecularFalloffExponent;uniform float reflectivityThreshold;varying vec2 vUV;\n#include\n#ifdef SSR_BLEND_WITH_FRESNEL\n#include\n#include\nuniform mat4 projection;uniform mat4 invProjectionMatrix;uniform sampler2D normalSampler;uniform sampler2D depthSampler;\n#endif\nvoid main()\n{\n#ifdef SSRAYTRACE_DEBUG\ngl_FragColor=texture2D(textureSampler,vUV);\n#else\nvec3 SSR=texture2D(textureSampler,vUV).rgb;vec4 color=texture2D(mainSampler,vUV);vec4 reflectivity=texture2D(reflectivitySampler,vUV);\n#ifndef SSR_DISABLE_REFLECTIVITY_TEST\nif (max(reflectivity.r,max(reflectivity.g,reflectivity.b))<=reflectivityThreshold) {gl_FragColor=color;return;}\n#endif\n#ifdef SSR_INPUT_IS_GAMMA_SPACE\ncolor=toLinearSpace(color);\n#endif\n#ifdef SSR_BLEND_WITH_FRESNEL\nvec2 texSize=vec2(textureSize(depthSampler,0));vec3 csNormal=texelFetch(normalSampler,ivec2(vUV*texSize),0).xyz;float depth=texelFetch(depthSampler,ivec2(vUV*texSize),0).r;vec3 csPosition=computeViewPosFromUVDepth(vUV,depth,projection,invProjectionMatrix);vec3 csViewDirection=normalize(csPosition);vec3 F0=reflectivity.rgb;vec3 fresnel=fresnelSchlickGGX(max(dot(csNormal,-csViewDirection),0.0),F0,vec3(1.));vec3 reflectionMultiplier=clamp(pow(fresnel*strength,vec3(reflectionSpecularFalloffExponent)),0.0,1.0);\n#else\nvec3 reflectionMultiplier=clamp(pow(reflectivity.rgb*strength,vec3(reflectionSpecularFalloffExponent)),0.0,1.0);\n#endif\nvec3 colorMultiplier=1.0-reflectionMultiplier;vec3 finalColor=(color.rgb*colorMultiplier)+(SSR*reflectionMultiplier);\n#ifdef SSR_OUTPUT_IS_GAMMA_SPACE\nfinalColor=toGammaSpace(finalColor);\n#endif\ngl_FragColor=vec4(finalColor,color.a);\n#endif\n}\n`;\nz.ShadersStore[o4] = l4;\nconst h4 = O.Compose(new g(0.5, 0.5, 0.5), se.Identity(), new g(0.5, 0.5, 0.5)), c4 = O.Compose(new g(0.5, 0.5, 1), se.Identity(), new g(0.5, 0.5, 0));\nclass mi extends Kl {\n /**\n * MSAA sample count, setting this to 4 will provide 4x anti aliasing. (default: 1)\n */\n set samples(e) {\n this._samples !== e && (this._samples = e, this._buildPipeline());\n }\n get samples() {\n return this._samples;\n }\n /**\n * Gets or sets the minimum value for one of the reflectivity component of the material to consider it for SSR (default: 0.04).\n * If all r/g/b components of the reflectivity is below or equal this value, the pixel will not be considered reflective and SSR won't be applied.\n */\n get reflectivityThreshold() {\n return this._reflectivityThreshold;\n }\n set reflectivityThreshold(e) {\n e !== this._reflectivityThreshold && (e === 0 && this._reflectivityThreshold !== 0 || e !== 0 && this._reflectivityThreshold === 0 ? (this._reflectivityThreshold = e, this._buildPipeline()) : this._reflectivityThreshold = e);\n }\n /**\n * Gets or sets the downsample factor used to reduce the size of the texture used to compute the SSR contribution (default: 0).\n * Use 0 to render the SSR contribution at full resolution, 1 to render at half resolution, 2 to render at 1/3 resolution, etc.\n * Note that it is used only when blurring is enabled (blurDispersionStrength \\> 0), because in that mode the SSR contribution is generated in a separate texture.\n */\n get ssrDownsample() {\n return this._ssrDownsample;\n }\n set ssrDownsample(e) {\n e !== this._ssrDownsample && (this._ssrDownsample = e, this._buildPipeline());\n }\n /**\n * Gets or sets the blur dispersion strength. Set this value to 0 to disable blurring (default: 0.05)\n * The reflections are blurred based on the roughness of the surface and the distance between the pixel shaded and the reflected pixel: the higher the distance the more blurry the reflection is.\n * blurDispersionStrength allows to increase or decrease this effect.\n */\n get blurDispersionStrength() {\n return this._blurDispersionStrength;\n }\n set blurDispersionStrength(e) {\n if (e === this._blurDispersionStrength)\n return;\n const t = e === 0 && this._blurDispersionStrength !== 0 || e !== 0 && this._blurDispersionStrength === 0;\n this._blurDispersionStrength = e, t && this._buildPipeline();\n }\n _useBlur() {\n return this._blurDispersionStrength > 0;\n }\n /**\n * Gets or sets the downsample factor used to reduce the size of the textures used to blur the reflection effect (default: 0).\n * Use 0 to blur at full resolution, 1 to render at half resolution, 2 to render at 1/3 resolution, etc.\n */\n get blurDownsample() {\n return this._blurDownsample;\n }\n set blurDownsample(e) {\n e !== this._blurDownsample && (this._blurDownsample = e, this._buildPipeline());\n }\n /**\n * Gets or sets whether or not smoothing reflections is enabled (default: false)\n * Enabling smoothing will require more GPU power.\n * Note that this setting has no effect if step = 1: it's only used if step \\> 1.\n */\n get enableSmoothReflections() {\n return this._enableSmoothReflections;\n }\n set enableSmoothReflections(e) {\n e !== this._enableSmoothReflections && (this._enableSmoothReflections = e, this._updateEffectDefines());\n }\n /**\n * Gets or sets the environment cube texture used to define the reflection when the reflected rays of SSR leave the view space or when the maxDistance/maxSteps is reached.\n */\n get environmentTexture() {\n return this._environmentTexture;\n }\n set environmentTexture(e) {\n this._environmentTexture = e, this._updateEffectDefines();\n }\n /**\n * Gets or sets the boolean defining if the environment texture is a standard cubemap (false) or a probe (true). Default value is false.\n * Note: a probe cube texture is treated differently than an ordinary cube texture because the Y axis is reversed.\n */\n get environmentTextureIsProbe() {\n return this._environmentTextureIsProbe;\n }\n set environmentTextureIsProbe(e) {\n this._environmentTextureIsProbe = e, this._updateEffectDefines();\n }\n /**\n * Gets or sets a boolean indicating if the reflections should be attenuated at the screen borders (default: true).\n */\n get attenuateScreenBorders() {\n return this._attenuateScreenBorders;\n }\n set attenuateScreenBorders(e) {\n this._attenuateScreenBorders !== e && (this._attenuateScreenBorders = e, this._updateEffectDefines());\n }\n /**\n * Gets or sets a boolean indicating if the reflections should be attenuated according to the distance of the intersection (default: true).\n */\n get attenuateIntersectionDistance() {\n return this._attenuateIntersectionDistance;\n }\n set attenuateIntersectionDistance(e) {\n this._attenuateIntersectionDistance !== e && (this._attenuateIntersectionDistance = e, this._updateEffectDefines());\n }\n /**\n * Gets or sets a boolean indicating if the reflections should be attenuated according to the number of iterations performed to find the intersection (default: true).\n */\n get attenuateIntersectionIterations() {\n return this._attenuateIntersectionIterations;\n }\n set attenuateIntersectionIterations(e) {\n this._attenuateIntersectionIterations !== e && (this._attenuateIntersectionIterations = e, this._updateEffectDefines());\n }\n /**\n * Gets or sets a boolean indicating if the reflections should be attenuated when the reflection ray is facing the camera (the view direction) (default: false).\n */\n get attenuateFacingCamera() {\n return this._attenuateFacingCamera;\n }\n set attenuateFacingCamera(e) {\n this._attenuateFacingCamera !== e && (this._attenuateFacingCamera = e, this._updateEffectDefines());\n }\n /**\n * Gets or sets a boolean indicating if the backface reflections should be attenuated (default: false).\n */\n get attenuateBackfaceReflection() {\n return this._attenuateBackfaceReflection;\n }\n set attenuateBackfaceReflection(e) {\n this._attenuateBackfaceReflection !== e && (this._attenuateBackfaceReflection = e, this._updateEffectDefines());\n }\n /**\n * Gets or sets a boolean indicating if the ray should be clipped to the frustum (default: true).\n * You can try to set this parameter to false to save some performances: it may produce some artefacts in some cases, but generally they won't really be visible\n */\n get clipToFrustum() {\n return this._clipToFrustum;\n }\n set clipToFrustum(e) {\n this._clipToFrustum !== e && (this._clipToFrustum = e, this._updateEffectDefines());\n }\n /**\n * Gets or sets a boolean indicating whether the blending between the current color pixel and the reflection color should be done with a Fresnel coefficient (default: false).\n * It is more physically accurate to use the Fresnel coefficient (otherwise it uses the reflectivity of the material for blending), but it is also more expensive when you use blur (when blurDispersionStrength \\> 0).\n */\n get useFresnel() {\n return this._useFresnel;\n }\n set useFresnel(e) {\n this._useFresnel !== e && (this._useFresnel = e, this._buildPipeline());\n }\n /**\n * Gets or sets a boolean defining if geometry thickness should be computed automatically (default: false).\n * When enabled, a depth renderer is created which will render the back faces of the scene to a depth texture (meaning additional work for the GPU).\n * In that mode, the \"thickness\" property is still used as an offset to compute the ray intersection, but you can typically use a much lower\n * value than when enableAutomaticThicknessComputation is false (it's even possible to use a value of 0 when using low values for \"step\")\n * Note that for performance reasons, this option will only apply to the first camera to which the rendering pipeline is attached!\n */\n get enableAutomaticThicknessComputation() {\n return this._enableAutomaticThicknessComputation;\n }\n set enableAutomaticThicknessComputation(e) {\n this._enableAutomaticThicknessComputation !== e && (this._enableAutomaticThicknessComputation = e, this._buildPipeline());\n }\n /**\n * Gets the depth renderer used to render the back faces of the scene to a depth texture.\n */\n get backfaceDepthRenderer() {\n return this._depthRenderer;\n }\n /**\n * Gets or sets the downsample factor (default: 0) used to create the backface depth texture - used only if enableAutomaticThicknessComputation = true.\n * Use 0 to render the depth at full resolution, 1 to render at half resolution, 2 to render at 1/4 resolution, etc.\n * Note that you will get rendering artefacts when using a value different from 0: it's a tradeoff between image quality and performances.\n */\n get backfaceDepthTextureDownsample() {\n return this._backfaceDepthTextureDownsample;\n }\n set backfaceDepthTextureDownsample(e) {\n this._backfaceDepthTextureDownsample !== e && (this._backfaceDepthTextureDownsample = e, this._resizeDepthRenderer());\n }\n /**\n * Gets or sets a boolean (default: true) indicating if the depth of transparent meshes should be written to the backface depth texture (when automatic thickness computation is enabled).\n */\n get backfaceForceDepthWriteTransparentMeshes() {\n return this._backfaceForceDepthWriteTransparentMeshes;\n }\n set backfaceForceDepthWriteTransparentMeshes(e) {\n this._backfaceForceDepthWriteTransparentMeshes !== e && (this._backfaceForceDepthWriteTransparentMeshes = e, this._depthRenderer && (this._depthRenderer.forceDepthWriteTransparentMeshes = e));\n }\n /**\n * Gets or sets a boolean indicating if the effect is enabled (default: true).\n */\n get isEnabled() {\n return this._isEnabled;\n }\n set isEnabled(e) {\n this._isEnabled !== e && (this._isEnabled = e, e ? e && (this._isDirty ? this._buildPipeline() : this._cameras !== null && this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras)) : this._cameras !== null && (this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), this._cameras = this._camerasToBeAttached.slice()));\n }\n /**\n * Gets or sets a boolean defining if the input color texture is in gamma space (default: true)\n * The SSR effect works in linear space, so if the input texture is in gamma space, we must convert the texture to linear space before applying the effect\n */\n get inputTextureColorIsInGammaSpace() {\n return this._inputTextureColorIsInGammaSpace;\n }\n set inputTextureColorIsInGammaSpace(e) {\n this._inputTextureColorIsInGammaSpace !== e && (this._inputTextureColorIsInGammaSpace = e, this._buildPipeline());\n }\n /**\n * Gets or sets a boolean defining if the output color texture generated by the SSR pipeline should be in gamma space (default: true)\n * If you have a post-process that comes after the SSR and that post-process needs the input to be in a linear space, you must disable generateOutputInGammaSpace\n */\n get generateOutputInGammaSpace() {\n return this._generateOutputInGammaSpace;\n }\n set generateOutputInGammaSpace(e) {\n this._generateOutputInGammaSpace !== e && (this._generateOutputInGammaSpace = e, this._buildPipeline());\n }\n /**\n * Gets or sets a boolean indicating if the effect should be rendered in debug mode (default: false).\n * In this mode, colors have this meaning:\n * - blue: the ray hit the max distance (we reached maxDistance)\n * - red: the ray ran out of steps (we reached maxSteps)\n * - yellow: the ray went off screen\n * - green: the ray hit a surface. The brightness of the green color is proportional to the distance between the ray origin and the intersection point: A brighter green means more computation than a darker green.\n * In the first 3 cases, the final color is calculated by mixing the skybox color with the pixel color (if environmentTexture is defined), otherwise the pixel color is not modified\n * You should try to get as few blue/red/yellow pixels as possible, as this means that the ray has gone further than if it had hit a surface.\n */\n get debug() {\n return this._debug;\n }\n set debug(e) {\n this._debug !== e && (this._debug = e, this._buildPipeline());\n }\n /**\n * Gets the scene the effect belongs to.\n * @returns the scene the effect belongs to.\n */\n getScene() {\n return this._scene;\n }\n get _geometryBufferRenderer() {\n return this._forceGeometryBuffer ? this._scene.geometryBufferRenderer : null;\n }\n get _prePassRenderer() {\n return this._forceGeometryBuffer ? null : this._scene.prePassRenderer;\n }\n /**\n * Gets active scene\n */\n get scene() {\n return this._scene;\n }\n /**\n * Returns true if SSR is supported by the running hardware\n */\n get isSupported() {\n const e = this._scene.getEngine().getCaps();\n return e.drawBuffersExtension && e.texelFetch;\n }\n /**\n * Constructor of the SSR rendering pipeline\n * @param name The rendering pipeline name\n * @param scene The scene linked to this pipeline\n * @param cameras The array of cameras that the rendering pipeline will be attached to (default: scene.cameras)\n * @param forceGeometryBuffer Set to true if you want to use the legacy geometry buffer renderer (default: false)\n * @param textureType The texture type used by the different post processes created by SSR (default: 0)\n */\n constructor(e, t, i, s = !1, r = 0) {\n if (super(t.getEngine(), e), this.SSRRenderEffect = \"SSRRenderEffect\", this.SSRBlurRenderEffect = \"SSRBlurRenderEffect\", this.SSRCombineRenderEffect = \"SSRCombineRenderEffect\", this._samples = 1, this.maxDistance = 1e3, this.step = 1, this.thickness = 0.5, this.strength = 1, this.reflectionSpecularFalloffExponent = 1, this.maxSteps = 1e3, this.roughnessFactor = 0.2, this.selfCollisionNumSkip = 1, this._reflectivityThreshold = 0.04, this._ssrDownsample = 0, this._blurDispersionStrength = 0.03, this._blurDownsample = 0, this._enableSmoothReflections = !1, this._environmentTextureIsProbe = !1, this._attenuateScreenBorders = !0, this._attenuateIntersectionDistance = !0, this._attenuateIntersectionIterations = !0, this._attenuateFacingCamera = !1, this._attenuateBackfaceReflection = !1, this._clipToFrustum = !0, this._useFresnel = !1, this._enableAutomaticThicknessComputation = !1, this._backfaceDepthTextureDownsample = 0, this._backfaceForceDepthWriteTransparentMeshes = !0, this._isEnabled = !0, this._inputTextureColorIsInGammaSpace = !0, this._generateOutputInGammaSpace = !0, this._debug = !1, this._forceGeometryBuffer = !1, this._isDirty = !1, this._camerasToBeAttached = [], this._cameras = i || t.cameras, this._cameras = this._cameras.slice(), this._camerasToBeAttached = this._cameras.slice(), this._scene = t, this._textureType = r, this._forceGeometryBuffer = s, this.isSupported) {\n if (t.postProcessRenderPipelineManager.addPipeline(this), this._forceGeometryBuffer) {\n const n = t.enableGeometryBufferRenderer();\n n && (n.enableReflectivity = !0, n.useSpecificClearForDepthTexture = !0);\n } else {\n const n = t.enablePrePassRenderer();\n n && (n.useSpecificClearForDepthTexture = !0, n.markAsDirty());\n }\n this._buildPipeline();\n }\n }\n /**\n * Get the class name\n * @returns \"SSRRenderingPipeline\"\n */\n getClassName() {\n return \"SSRRenderingPipeline\";\n }\n /**\n * Adds a camera to the pipeline\n * @param camera the camera to be added\n */\n addCamera(e) {\n this._camerasToBeAttached.push(e), this._buildPipeline();\n }\n /**\n * Removes a camera from the pipeline\n * @param camera the camera to remove\n */\n removeCamera(e) {\n const t = this._camerasToBeAttached.indexOf(e);\n this._camerasToBeAttached.splice(t, 1), this._buildPipeline();\n }\n /**\n * Removes the internal pipeline assets and detaches the pipeline from the scene cameras\n * @param disableGeometryBufferRenderer if the geometry buffer renderer should be disabled\n */\n dispose(e = !1) {\n this._disposeDepthRenderer(), this._disposePostProcesses(), e && this._scene.disableGeometryBufferRenderer(), this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), super.dispose();\n }\n _getTextureSize() {\n var s, r;\n const e = this._scene.getEngine(), t = this._prePassRenderer;\n let i = { width: e.getRenderWidth(), height: e.getRenderHeight() };\n if (t && ((s = this._scene.activeCamera) == null ? void 0 : s._getFirstPostProcess()) === this._ssrPostProcess) {\n const n = t.getRenderTarget();\n n && n.textures && (i = n.textures[t.getIndex(4)].getSize());\n } else (r = this._ssrPostProcess) != null && r.inputTexture && (i.width = this._ssrPostProcess.inputTexture.width, i.height = this._ssrPostProcess.inputTexture.height);\n return i;\n }\n _updateEffectDefines() {\n var i, s, r, n, o;\n const e = [];\n (this._geometryBufferRenderer || this._prePassRenderer) && e.push(\"#define SSR_SUPPORTED\"), this._enableSmoothReflections && e.push(\"#define SSRAYTRACE_ENABLE_REFINEMENT\"), this._scene.useRightHandedSystem && e.push(\"#define SSRAYTRACE_RIGHT_HANDED_SCENE\"), this._environmentTexture && (e.push(\"#define SSR_USE_ENVIRONMENT_CUBE\"), this._environmentTexture.boundingBoxSize && e.push(\"#define SSR_USE_LOCAL_REFLECTIONMAP_CUBIC\"), this._environmentTexture.gammaSpace && e.push(\"#define SSR_ENVIRONMENT_CUBE_IS_GAMMASPACE\")), this._environmentTextureIsProbe && e.push(\"#define SSR_INVERTCUBICMAP\"), this._enableAutomaticThicknessComputation && e.push(\"#define SSRAYTRACE_USE_BACK_DEPTHBUFFER\"), this._attenuateScreenBorders && e.push(\"#define SSR_ATTENUATE_SCREEN_BORDERS\"), this._attenuateIntersectionDistance && e.push(\"#define SSR_ATTENUATE_INTERSECTION_DISTANCE\"), this._attenuateIntersectionIterations && e.push(\"#define SSR_ATTENUATE_INTERSECTION_NUMITERATIONS\"), this._attenuateFacingCamera && e.push(\"#define SSR_ATTENUATE_FACING_CAMERA\"), this._attenuateBackfaceReflection && e.push(\"#define SSR_ATTENUATE_BACKFACE_REFLECTION\"), this._clipToFrustum && e.push(\"#define SSRAYTRACE_CLIP_TO_FRUSTUM\"), this._useBlur() && e.push(\"#define SSR_USE_BLUR\"), this._debug && e.push(\"#define SSRAYTRACE_DEBUG\"), this._inputTextureColorIsInGammaSpace && e.push(\"#define SSR_INPUT_IS_GAMMA_SPACE\"), this._generateOutputInGammaSpace && e.push(\"#define SSR_OUTPUT_IS_GAMMA_SPACE\"), this._useFresnel && e.push(\"#define SSR_BLEND_WITH_FRESNEL\"), this._reflectivityThreshold === 0 && e.push(\"#define SSR_DISABLE_REFLECTIVITY_TEST\"), (((i = this._geometryBufferRenderer) == null ? void 0 : i.generateNormalsInWorldSpace) ?? ((s = this._prePassRenderer) == null ? void 0 : s.generateNormalsInWorldSpace)) && e.push(\"#define SSR_NORMAL_IS_IN_WORLDSPACE\"), (r = this._geometryBufferRenderer) != null && r.normalsAreUnsigned && e.push(\"#define SSR_DECODE_NORMAL\");\n const t = (n = this._cameras) == null ? void 0 : n[0];\n t && t.mode === 1 && e.push(\"#define ORTHOGRAPHIC_CAMERA\"), (o = this._ssrPostProcess) == null || o.updateEffect(e.join(`\n`));\n }\n _buildPipeline() {\n var t;\n if (!this.isSupported)\n return;\n if (!this._isEnabled) {\n this._isDirty = !0;\n return;\n }\n this._isDirty = !1;\n const e = this._scene.getEngine();\n if (this._disposeDepthRenderer(), this._disposePostProcesses(), this._cameras !== null && (this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), this._cameras = this._camerasToBeAttached.slice()), this._reset(), this._enableAutomaticThicknessComputation) {\n const i = (t = this._cameras) == null ? void 0 : t[0];\n i && (this._depthRendererCamera = i, this._depthRenderer = new Wl(this._scene, void 0, void 0, void 0, 1, !0, \"SSRBackDepth\"), this._depthRenderer.clearColor.r = 1e8, this._depthRenderer.reverseCulling = !0, this._depthRenderer.forceDepthWriteTransparentMeshes = this._backfaceForceDepthWriteTransparentMeshes, this._resizeDepthRenderer(), i.customRenderTargets.push(this._depthRenderer.getDepthMap()));\n }\n this._createSSRPostProcess(), this.addEffect(new Ft(e, this.SSRRenderEffect, () => this._ssrPostProcess, !0)), this._useBlur() && (this._createBlurAndCombinerPostProcesses(), this.addEffect(new Ft(e, this.SSRBlurRenderEffect, () => [this._blurPostProcessX, this._blurPostProcessY], !0)), this.addEffect(new Ft(e, this.SSRCombineRenderEffect, () => this._blurCombinerPostProcess, !0))), this._cameras !== null && this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras);\n }\n _resizeDepthRenderer() {\n if (!this._depthRenderer)\n return;\n const e = this._getTextureSize(), t = this._depthRenderer.getDepthMap().getSize(), i = Math.floor(e.width / (this._backfaceDepthTextureDownsample + 1)), s = Math.floor(e.height / (this._backfaceDepthTextureDownsample + 1));\n (t.width !== i || t.height !== s) && this._depthRenderer.getDepthMap().resize({ width: i, height: s });\n }\n _disposeDepthRenderer() {\n if (this._depthRenderer) {\n if (this._depthRendererCamera) {\n const e = this._depthRendererCamera.customRenderTargets.indexOf(this._depthRenderer.getDepthMap()) ?? -1;\n e !== -1 && this._depthRendererCamera.customRenderTargets.splice(e, 1);\n }\n this._depthRendererCamera = null, this._depthRenderer.getDepthMap().dispose();\n }\n this._depthRenderer = null;\n }\n _disposePostProcesses() {\n var e, t, i, s;\n for (let r = 0; r < this._cameras.length; r++) {\n const n = this._cameras[r];\n (e = this._ssrPostProcess) == null || e.dispose(n), (t = this._blurPostProcessX) == null || t.dispose(n), (i = this._blurPostProcessY) == null || i.dispose(n), (s = this._blurCombinerPostProcess) == null || s.dispose(n);\n }\n this._ssrPostProcess = null, this._blurPostProcessX = null, this._blurPostProcessY = null, this._blurCombinerPostProcess = null;\n }\n _createSSRPostProcess() {\n this._ssrPostProcess = new Be(\"ssr\", \"screenSpaceReflection2\", [\n \"projection\",\n \"invProjectionMatrix\",\n \"view\",\n \"invView\",\n \"thickness\",\n \"reflectionSpecularFalloffExponent\",\n \"strength\",\n \"stepSize\",\n \"maxSteps\",\n \"roughnessFactor\",\n \"projectionPixel\",\n \"nearPlaneZ\",\n \"maxDistance\",\n \"selfCollisionNumSkip\",\n \"vReflectionPosition\",\n \"vReflectionSize\",\n \"backSizeFactor\",\n \"reflectivityThreshold\"\n ], [\"textureSampler\", \"normalSampler\", \"reflectivitySampler\", \"depthSampler\", \"envCubeSampler\", \"backDepthSampler\"], 1, null, this._textureType, this._scene.getEngine(), !1, \"\", this._textureType), this._updateEffectDefines(), this._ssrPostProcess.onApply = (e) => {\n this._resizeDepthRenderer();\n const t = this._geometryBufferRenderer, i = this._prePassRenderer;\n if (!i && !t)\n return;\n if (t) {\n const l = t.getTextureIndex(Et.REFLECTIVITY_TEXTURE_TYPE);\n e.setTexture(\"normalSampler\", t.getGBuffer().textures[1]), e.setTexture(\"reflectivitySampler\", t.getGBuffer().textures[l]), e.setTexture(\"depthSampler\", t.getGBuffer().textures[0]);\n } else if (i) {\n const l = i.getIndex(5), h = i.getIndex(3), c = i.getIndex(6);\n e.setTexture(\"normalSampler\", i.getRenderTarget().textures[c]), e.setTexture(\"depthSampler\", i.getRenderTarget().textures[l]), e.setTexture(\"reflectivitySampler\", i.getRenderTarget().textures[h]);\n }\n this._enableAutomaticThicknessComputation && this._depthRenderer && (e.setTexture(\"backDepthSampler\", this._depthRenderer.getDepthMap()), e.setFloat(\"backSizeFactor\", this._backfaceDepthTextureDownsample + 1));\n const s = this._scene.activeCamera;\n if (!s)\n return;\n const r = s.getViewMatrix(), n = s.getProjectionMatrix();\n n.invertToRef(w.Matrix[0]), r.invertToRef(w.Matrix[1]), e.setMatrix(\"projection\", n), e.setMatrix(\"view\", r), e.setMatrix(\"invView\", w.Matrix[1]), e.setMatrix(\"invProjectionMatrix\", w.Matrix[0]), e.setFloat(\"thickness\", this.thickness), e.setFloat(\"reflectionSpecularFalloffExponent\", this.reflectionSpecularFalloffExponent), e.setFloat(\"strength\", this.strength), e.setFloat(\"stepSize\", this.step), e.setFloat(\"maxSteps\", this.maxSteps), e.setFloat(\"roughnessFactor\", this.roughnessFactor), e.setFloat(\"nearPlaneZ\", s.minZ), e.setFloat(\"maxDistance\", this.maxDistance), e.setFloat(\"selfCollisionNumSkip\", this.selfCollisionNumSkip), e.setFloat(\"reflectivityThreshold\", this._reflectivityThreshold);\n const o = this._getTextureSize();\n O.ScalingToRef(o.width, o.height, 1, w.Matrix[2]), n.multiplyToRef(this._scene.getEngine().isWebGPU ? c4 : h4, w.Matrix[3]), w.Matrix[3].multiplyToRef(w.Matrix[2], w.Matrix[4]), e.setMatrix(\"projectionPixel\", w.Matrix[4]), this._environmentTexture && (e.setTexture(\"envCubeSampler\", this._environmentTexture), this._environmentTexture.boundingBoxSize && (e.setVector3(\"vReflectionPosition\", this._environmentTexture.boundingBoxPosition), e.setVector3(\"vReflectionSize\", this._environmentTexture.boundingBoxSize)));\n }, this._ssrPostProcess.samples = this.samples, this._forceGeometryBuffer || (this._ssrPostProcess._prePassEffectConfiguration = new e4());\n }\n _createBlurAndCombinerPostProcesses() {\n const e = this._scene.getEngine();\n this._blurPostProcessX = new Be(\"SSRblurX\", \"screenSpaceReflection2Blur\", [\"texelOffsetScale\"], [\"textureSampler\"], this._useBlur() ? 1 / (this._ssrDownsample + 1) : 1, null, 2, e, !1, \"\", this._textureType), this._blurPostProcessX.autoClear = !1, this._blurPostProcessX.onApplyObservable.add((r) => {\n var o;\n const n = ((o = this._blurPostProcessX) == null ? void 0 : o.inputTexture.width) ?? this._scene.getEngine().getRenderWidth();\n r.setFloat2(\"texelOffsetScale\", this._blurDispersionStrength / n, 0);\n }), this._blurPostProcessY = new Be(\"SSRblurY\", \"screenSpaceReflection2Blur\", [\"texelOffsetScale\"], [\"textureSampler\"], this._useBlur() ? 1 / (this._blurDownsample + 1) : 1, null, 2, e, !1, \"\", this._textureType), this._blurPostProcessY.autoClear = !1, this._blurPostProcessY.onApplyObservable.add((r) => {\n var o;\n const n = ((o = this._blurPostProcessY) == null ? void 0 : o.inputTexture.height) ?? this._scene.getEngine().getRenderHeight();\n r.setFloat2(\"texelOffsetScale\", 0, this._blurDispersionStrength / n);\n });\n const t = [\"strength\", \"reflectionSpecularFalloffExponent\", \"reflectivityThreshold\"], i = [\"textureSampler\", \"mainSampler\", \"reflectivitySampler\"];\n let s = \"\";\n this._debug && (s += `#define SSRAYTRACE_DEBUG\n`), this._inputTextureColorIsInGammaSpace && (s += `#define SSR_INPUT_IS_GAMMA_SPACE\n`), this._generateOutputInGammaSpace && (s += `#define SSR_OUTPUT_IS_GAMMA_SPACE\n`), this.useFresnel && (s += `#define SSR_BLEND_WITH_FRESNEL\n`, t.push(\"projection\", \"invProjectionMatrix\"), i.push(\"depthSampler\", \"normalSampler\")), this._reflectivityThreshold === 0 && (s += \"#define SSR_DISABLE_REFLECTIVITY_TEST\"), this._blurCombinerPostProcess = new Be(\"SSRblurCombiner\", \"screenSpaceReflection2BlurCombiner\", t, i, this._useBlur() ? 1 / (this._blurDownsample + 1) : 1, null, 1, e, !1, s, this._textureType), this._blurCombinerPostProcess.autoClear = !1, this._blurCombinerPostProcess.onApplyObservable.add((r) => {\n var l;\n const n = this._geometryBufferRenderer, o = this._prePassRenderer;\n if (!(!o && !n)) {\n if (o && ((l = this._scene.activeCamera) == null ? void 0 : l._getFirstPostProcess()) === this._ssrPostProcess) {\n const h = o.getRenderTarget();\n h && h.textures && r.setTexture(\"mainSampler\", h.textures[o.getIndex(4)]);\n } else\n r.setTextureFromPostProcess(\"mainSampler\", this._ssrPostProcess);\n if (n) {\n const h = n.getTextureIndex(Et.REFLECTIVITY_TEXTURE_TYPE);\n r.setTexture(\"reflectivitySampler\", n.getGBuffer().textures[h]), this.useFresnel && (r.setTexture(\"normalSampler\", n.getGBuffer().textures[1]), r.setTexture(\"depthSampler\", n.getGBuffer().textures[0]));\n } else if (o) {\n const h = o.getIndex(3);\n if (r.setTexture(\"reflectivitySampler\", o.getRenderTarget().textures[h]), this.useFresnel) {\n const c = o.getIndex(5), u = o.getIndex(6);\n r.setTexture(\"normalSampler\", o.getRenderTarget().textures[u]), r.setTexture(\"depthSampler\", o.getRenderTarget().textures[c]);\n }\n }\n if (r.setFloat(\"strength\", this.strength), r.setFloat(\"reflectionSpecularFalloffExponent\", this.reflectionSpecularFalloffExponent), r.setFloat(\"reflectivityThreshold\", this._reflectivityThreshold), this.useFresnel) {\n const h = this._scene.activeCamera;\n if (h) {\n const c = h.getProjectionMatrix();\n c.invertToRef(w.Matrix[0]), r.setMatrix(\"projection\", c), r.setMatrix(\"invProjectionMatrix\", w.Matrix[0]);\n }\n }\n }\n });\n }\n /**\n * Serializes the rendering pipeline (Used when exporting)\n * @returns the serialized object\n */\n serialize() {\n const e = Ae.Serialize(this);\n return e.customType = \"SSRRenderingPipeline\", e;\n }\n /**\n * Parse the serialized pipeline\n * @param source Source pipeline.\n * @param scene The scene to load the pipeline to.\n * @param rootUrl The URL of the serialized pipeline.\n * @returns An instantiated pipeline from the serialized object.\n */\n static Parse(e, t, i) {\n return Ae.Parse(() => new mi(e._name, t, e._ratio), e, t, i);\n }\n}\ny([\n I()\n], mi.prototype, \"samples\", null);\ny([\n I()\n], mi.prototype, \"maxDistance\", void 0);\ny([\n I()\n], mi.prototype, \"step\", void 0);\ny([\n I()\n], mi.prototype, \"thickness\", void 0);\ny([\n I()\n], mi.prototype, \"strength\", void 0);\ny([\n I()\n], mi.prototype, \"reflectionSpecularFalloffExponent\", void 0);\ny([\n I()\n], mi.prototype, \"maxSteps\", void 0);\ny([\n I()\n], mi.prototype, \"roughnessFactor\", void 0);\ny([\n I()\n], mi.prototype, \"selfCollisionNumSkip\", void 0);\ny([\n I()\n], mi.prototype, \"_reflectivityThreshold\", void 0);\ny([\n I(\"_ssrDownsample\")\n], mi.prototype, \"_ssrDownsample\", void 0);\ny([\n I()\n], mi.prototype, \"ssrDownsample\", null);\ny([\n I(\"blurDispersionStrength\")\n], mi.prototype, \"_blurDispersionStrength\", void 0);\ny([\n I(\"blurDownsample\")\n], mi.prototype, \"_blurDownsample\", void 0);\ny([\n I(\"enableSmoothReflections\")\n], mi.prototype, \"_enableSmoothReflections\", void 0);\ny([\n I(\"environmentTexture\")\n], mi.prototype, \"_environmentTexture\", void 0);\ny([\n I(\"environmentTextureIsProbe\")\n], mi.prototype, \"_environmentTextureIsProbe\", void 0);\ny([\n I(\"attenuateScreenBorders\")\n], mi.prototype, \"_attenuateScreenBorders\", void 0);\ny([\n I(\"attenuateIntersectionDistance\")\n], mi.prototype, \"_attenuateIntersectionDistance\", void 0);\ny([\n I(\"attenuateIntersectionIterations\")\n], mi.prototype, \"_attenuateIntersectionIterations\", void 0);\ny([\n I(\"attenuateFacingCamera\")\n], mi.prototype, \"_attenuateFacingCamera\", void 0);\ny([\n I(\"attenuateBackfaceReflection\")\n], mi.prototype, \"_attenuateBackfaceReflection\", void 0);\ny([\n I(\"clipToFrustum\")\n], mi.prototype, \"_clipToFrustum\", void 0);\ny([\n I(\"useFresnel\")\n], mi.prototype, \"_useFresnel\", void 0);\ny([\n I(\"enableAutomaticThicknessComputation\")\n], mi.prototype, \"_enableAutomaticThicknessComputation\", void 0);\ny([\n I(\"backfaceDepthTextureDownsample\")\n], mi.prototype, \"_backfaceDepthTextureDownsample\", void 0);\ny([\n I(\"backfaceForceDepthWriteTransparentMeshes\")\n], mi.prototype, \"_backfaceForceDepthWriteTransparentMeshes\", void 0);\ny([\n I(\"isEnabled\")\n], mi.prototype, \"_isEnabled\", void 0);\ny([\n I(\"inputTextureColorIsInGammaSpace\")\n], mi.prototype, \"_inputTextureColorIsInGammaSpace\", void 0);\ny([\n I(\"generateOutputInGammaSpace\")\n], mi.prototype, \"_generateOutputInGammaSpace\", void 0);\ny([\n I(\"debug\")\n], mi.prototype, \"_debug\", void 0);\nU(\"BABYLON.SSRRenderingPipeline\", mi);\nconst u4 = \"taaPixelShader\", d4 = `varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D historySampler;uniform float factor;void main() {vec4 c=texelFetch(textureSampler,ivec2(gl_FragCoord.xy),0);vec4 h=texelFetch(historySampler,ivec2(gl_FragCoord.xy),0);gl_FragColor=mix(h,c,factor);}\n`;\nz.ShadersStore[u4] = d4;\nclass ol extends Kl {\n /**\n * Number of accumulated samples (default: 16)\n */\n set samples(e) {\n this._samples !== e && (this._samples = e, this._hs.regenerate(e));\n }\n get samples() {\n return this._samples;\n }\n /**\n * MSAA samples (default: 1)\n */\n set msaaSamples(e) {\n this._msaaSamples !== e && (this._msaaSamples = e, this._taaPostProcess && (this._taaPostProcess.samples = e));\n }\n get msaaSamples() {\n return this._msaaSamples;\n }\n /**\n * Gets or sets a boolean indicating if the render pipeline is enabled (default: true).\n */\n get isEnabled() {\n return this._isEnabled;\n }\n set isEnabled(e) {\n this._isEnabled !== e && (this._isEnabled = e, e ? e && (this._isDirty ? this._buildPipeline() : this._cameras !== null && (this._firstUpdate = !0, this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras))) : this._cameras !== null && (this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), this._cameras = this._camerasToBeAttached.slice()));\n }\n /**\n * Gets active scene\n */\n get scene() {\n return this._scene;\n }\n /**\n * Returns true if TAA is supported by the running hardware\n */\n get isSupported() {\n return this._scene.getEngine().getCaps().texelFetch;\n }\n /**\n * Constructor of the TAA rendering pipeline\n * @param name The rendering pipeline name\n * @param scene The scene linked to this pipeline\n * @param cameras The array of cameras that the rendering pipeline will be attached to (default: scene.cameras)\n * @param textureType The type of texture where the scene will be rendered (default: 0)\n */\n constructor(e, t, i, s = 0) {\n const r = t.getEngine();\n super(r, e), this.TAARenderEffect = \"TAARenderEffect\", this.TAAPassEffect = \"TAAPassEffect\", this._samples = 8, this._msaaSamples = 1, this.factor = 0.05, this.disableOnCameraMove = !0, this._isEnabled = !0, this._isDirty = !1, this._camerasToBeAttached = [], this._pingpong = 0, this._firstUpdate = !0, this._cameras = i || t.cameras, this._cameras = this._cameras.slice(), this._camerasToBeAttached = this._cameras.slice(), this._scene = t, this._textureType = s, this._hs = new sk(this.samples), this.isSupported && (this._createPingPongTextures(r.getRenderWidth(), r.getRenderHeight()), t.postProcessRenderPipelineManager.addPipeline(this), this._buildPipeline());\n }\n /**\n * Get the class name\n * @returns \"TAARenderingPipeline\"\n */\n getClassName() {\n return \"TAARenderingPipeline\";\n }\n /**\n * Adds a camera to the pipeline\n * @param camera the camera to be added\n */\n addCamera(e) {\n this._camerasToBeAttached.push(e), this._buildPipeline();\n }\n /**\n * Removes a camera from the pipeline\n * @param camera the camera to remove\n */\n removeCamera(e) {\n const t = this._camerasToBeAttached.indexOf(e);\n this._camerasToBeAttached.splice(t, 1), this._buildPipeline();\n }\n /**\n * Removes the internal pipeline assets and detaches the pipeline from the scene cameras\n */\n dispose() {\n this._disposePostProcesses(), this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), this._ping.dispose(), this._pong.dispose(), super.dispose();\n }\n _createPingPongTextures(e, t) {\n var s, r;\n const i = this._scene.getEngine();\n (s = this._ping) == null || s.dispose(), (r = this._pong) == null || r.dispose(), this._ping = i.createRenderTargetTexture({ width: e, height: t }, { generateMipMaps: !1, generateDepthBuffer: !1, type: 2, samplingMode: 1 }), this._pong = i.createRenderTargetTexture({ width: e, height: t }, { generateMipMaps: !1, generateDepthBuffer: !1, type: 2, samplingMode: 1 }), this._hs.setDimensions(e / 2, t / 2), this._firstUpdate = !0;\n }\n _updateEffectDefines() {\n var t;\n const e = [];\n (t = this._taaPostProcess) == null || t.updateEffect(e.join(`\n`));\n }\n _buildPipeline() {\n if (!this.isSupported)\n return;\n if (!this._isEnabled) {\n this._isDirty = !0;\n return;\n }\n this._isDirty = !1;\n const e = this._scene.getEngine();\n this._disposePostProcesses(), this._cameras !== null && (this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras), this._cameras = this._camerasToBeAttached.slice()), this._reset(), this._createTAAPostProcess(), this.addEffect(new Ft(e, this.TAARenderEffect, () => this._taaPostProcess, !0)), this._createPassPostProcess(), this.addEffect(new Ft(e, this.TAAPassEffect, () => this._passPostProcess, !0)), this._cameras !== null && this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras);\n }\n _disposePostProcesses() {\n var e, t;\n for (let i = 0; i < this._cameras.length; i++) {\n const s = this._cameras[i];\n (e = this._taaPostProcess) == null || e.dispose(s), (t = this._passPostProcess) == null || t.dispose(s), s.getProjectionMatrix(!0);\n }\n this._taaPostProcess = null, this._passPostProcess = null;\n }\n _createTAAPostProcess() {\n this._taaPostProcess = new Be(\"TAA\", \"taa\", {\n uniforms: [\"factor\"],\n samplers: [\"historySampler\"],\n size: 1,\n engine: this._scene.getEngine(),\n textureType: this._textureType\n }), this._taaPostProcess.samples = this._msaaSamples, this._updateEffectDefines(), this._taaPostProcess.onActivateObservable.add(() => {\n var t, i;\n const e = this._scene.activeCamera;\n if (((t = this._taaPostProcess) == null ? void 0 : t.width) !== this._ping.width || ((i = this._taaPostProcess) == null ? void 0 : i.height) !== this._ping.height) {\n const s = this._scene.getEngine();\n this._createPingPongTextures(s.getRenderWidth(), s.getRenderHeight());\n }\n if (e && !e.hasMoved)\n if (e.mode === Fe.PERSPECTIVE_CAMERA) {\n const s = e.getProjectionMatrix();\n s.setRowFromFloats(2, this._hs.x, this._hs.y, s.m[10], s.m[11]);\n } else {\n const s = e.getProjectionMatrix(!0);\n s.setRowFromFloats(3, this._hs.x + s.m[12], this._hs.y + s.m[13], s.m[14], s.m[15]);\n }\n this._passPostProcess && (this._passPostProcess.inputTexture = this._pingpong ? this._ping : this._pong), this._pingpong = this._pingpong ^ 1, this._hs.next();\n }), this._taaPostProcess.onApplyObservable.add((e) => {\n const t = this._scene.activeCamera;\n e._bindTexture(\"historySampler\", this._pingpong ? this._ping.texture : this._pong.texture), e.setFloat(\"factor\", t != null && t.hasMoved && this.disableOnCameraMove || this._firstUpdate ? 1 : this.factor), this._firstUpdate = !1;\n });\n }\n _createPassPostProcess() {\n const e = this._scene.getEngine();\n this._passPostProcess = new ra(\"TAAPass\", 1, null, 1, e), this._passPostProcess.inputTexture = this._ping, this._passPostProcess.autoClear = !1;\n }\n /**\n * Serializes the rendering pipeline (Used when exporting)\n * @returns the serialized object\n */\n serialize() {\n const e = Ae.Serialize(this);\n return e.customType = \"TAARenderingPipeline\", e;\n }\n /**\n * Parse the serialized pipeline\n * @param source Source pipeline.\n * @param scene The scene to load the pipeline to.\n * @param rootUrl The URL of the serialized pipeline.\n * @returns An instantiated pipeline from the serialized object.\n */\n static Parse(e, t, i) {\n return Ae.Parse(() => new ol(e._name, t, e._ratio), e, t, i);\n }\n}\ny([\n I(\"samples\")\n], ol.prototype, \"_samples\", void 0);\ny([\n I(\"msaaSamples\")\n], ol.prototype, \"_msaaSamples\", void 0);\ny([\n I()\n], ol.prototype, \"factor\", void 0);\ny([\n I()\n], ol.prototype, \"disableOnCameraMove\", void 0);\ny([\n I(\"isEnabled\")\n], ol.prototype, \"_isEnabled\", void 0);\nU(\"BABYLON.TAARenderingPipeline\", ol);\nconst f4 = \"tonemapPixelShader\", p4 = `varying vec2 vUV;uniform sampler2D textureSampler;uniform float _ExposureAdjustment;\n#if defined(HABLE_TONEMAPPING)\nconst float A=0.15;const float B=0.50;const float C=0.10;const float D=0.20;const float E=0.02;const float F=0.30;const float W=11.2;\n#endif\nfloat Luminance(vec3 c)\n{return dot(c,vec3(0.22,0.707,0.071));}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{vec3 colour=texture2D(textureSampler,vUV).rgb;\n#if defined(REINHARD_TONEMAPPING)\nfloat lum=Luminance(colour.rgb); \nfloat lumTm=lum*_ExposureAdjustment;float scale=lumTm/(1.0+lumTm); \ncolour*=scale/lum;\n#elif defined(HABLE_TONEMAPPING)\ncolour*=_ExposureAdjustment;const float ExposureBias=2.0;vec3 x=ExposureBias*colour;vec3 curr=((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;x=vec3(W,W,W);vec3 whiteScale=1.0/(((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F);colour=curr*whiteScale;\n#elif defined(OPTIMIZED_HEJIDAWSON_TONEMAPPING)\ncolour*=_ExposureAdjustment;vec3 X=max(vec3(0.0,0.0,0.0),colour-0.004);vec3 retColor=(X*(6.2*X+0.5))/(X*(6.2*X+1.7)+0.06);colour=retColor*retColor;\n#elif defined(PHOTOGRAPHIC_TONEMAPPING)\ncolour= vec3(1.0,1.0,1.0)-exp2(-_ExposureAdjustment*colour);\n#endif\ngl_FragColor=vec4(colour.rgb,1.0);}`;\nz.ShadersStore[f4] = p4;\nvar dy;\n(function(a) {\n a[a.Hable = 0] = \"Hable\", a[a.Reinhard = 1] = \"Reinhard\", a[a.HejiDawson = 2] = \"HejiDawson\", a[a.Photographic = 3] = \"Photographic\";\n})(dy || (dy = {}));\nclass jK extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"TonemapPostProcess\" string\n */\n getClassName() {\n return \"TonemapPostProcess\";\n }\n /**\n * Creates a new TonemapPostProcess\n * @param name defines the name of the postprocess\n * @param _operator defines the operator to use\n * @param exposureAdjustment defines the required exposure adjustment\n * @param camera defines the camera to use (can be null)\n * @param samplingMode defines the required sampling mode (BABYLON.Texture.BILINEAR_SAMPLINGMODE by default)\n * @param engine defines the hosting engine (can be ignore if camera is set)\n * @param textureFormat defines the texture format to use (BABYLON.Engine.TEXTURETYPE_UNSIGNED_INT by default)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n */\n constructor(e, t, i, s, r = 2, n, o = 0, l) {\n super(e, \"tonemap\", [\"_ExposureAdjustment\"], null, 1, s, r, n, l, null, o), this._operator = t, this.exposureAdjustment = i;\n let h = \"#define \";\n this._operator === 0 ? h += \"HABLE_TONEMAPPING\" : this._operator === 1 ? h += \"REINHARD_TONEMAPPING\" : this._operator === 2 ? h += \"OPTIMIZED_HEJIDAWSON_TONEMAPPING\" : this._operator === 3 && (h += \"PHOTOGRAPHIC_TONEMAPPING\"), this.updateEffect(h), this.onApply = (c) => {\n c.setFloat(\"_ExposureAdjustment\", this.exposureAdjustment);\n };\n }\n}\nconst _4 = \"volumetricLightScatteringPixelShader\", m4 = `uniform sampler2D textureSampler;uniform sampler2D lightScatteringSampler;uniform float decay;uniform float exposure;uniform float weight;uniform float density;uniform vec2 meshPositionOnScreen;varying vec2 vUV;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nvec2 tc=vUV;vec2 deltaTexCoord=(tc-meshPositionOnScreen.xy);deltaTexCoord*=1.0/float(NUM_SAMPLES)*density;float illuminationDecay=1.0;vec4 color=texture2D(lightScatteringSampler,tc)*0.4;for(int i=0; i\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\nuniform mat4 viewProjection;uniform vec2 depthValues;\n#if defined(ALPHATEST) || defined(NEED_UV)\nvarying vec2 vUV;uniform mat4 diffuseMatrix;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void)\n{vec3 positionUpdated=position;\n#if (defined(ALPHATEST) || defined(NEED_UV)) && defined(UV1)\nvec2 uvUpdated=uv;\n#endif\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include\n#include\ngl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\n#if defined(ALPHATEST) || defined(BASIC_RENDER)\n#ifdef UV1\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef UV2\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n}\n`;\nz.ShadersStore[g4] = x4;\nconst v4 = \"volumetricLightScatteringPassPixelShader\", T4 = `#if defined(ALPHATEST) || defined(NEED_UV)\nvarying vec2 vUV;\n#endif\n#if defined(ALPHATEST)\nuniform sampler2D diffuseSampler;\n#endif\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{\n#if defined(ALPHATEST)\nvec4 diffuseColor=texture2D(diffuseSampler,vUV);if (diffuseColor.a<0.4)\ndiscard;\n#endif\ngl_FragColor=vec4(0.0,0.0,0.0,1.0);}\n`;\nz.ShadersStore[v4] = T4;\nclass yn extends Be {\n /**\n * @internal\n * VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead\n */\n get useDiffuseColor() {\n return L.Warn(\"VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead\"), !1;\n }\n set useDiffuseColor(e) {\n L.Warn(\"VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead\");\n }\n /**\n * @constructor\n * @param name The post-process name\n * @param ratio The size of the post-process and/or internal pass (0.5 means that your postprocess will have a width = canvas.width 0.5 and a height = canvas.height 0.5)\n * @param camera The camera that the post-process will be attached to\n * @param mesh The mesh used to create the light scattering\n * @param samples The post-process quality, default 100\n * @param samplingMode The post-process filtering mode\n * @param engine The babylon engine\n * @param reusable If the post-process is reusable\n * @param scene The constructor needs a scene reference to initialize internal components. If \"camera\" is null a \"scene\" must be provided\n */\n constructor(e, t, i, s, r = 100, n = X.BILINEAR_SAMPLINGMODE, o, l, h) {\n super(e, \"volumetricLightScattering\", [\"decay\", \"exposure\", \"weight\", \"meshPositionOnScreen\", \"density\"], [\"lightScatteringSampler\"], t.postProcessRatio || t, i, n, o, l, \"#define NUM_SAMPLES \" + r), this._screenCoordinates = Q.Zero(), this.customMeshPosition = g.Zero(), this.useCustomMeshPosition = !1, this.invert = !0, this.excludedMeshes = [], this.includedMeshes = [], this.exposure = 0.3, this.decay = 0.96815, this.weight = 0.58767, this.density = 0.926, h = (i == null ? void 0 : i.getScene()) ?? h ?? this._scene, o = h.getEngine(), this._viewPort = new xr(0, 0, 1, 1).toGlobal(o.getRenderWidth(), o.getRenderHeight()), this.mesh = s ?? yn.CreateDefaultMesh(\"VolumetricLightScatteringMesh\", h), this._createPass(h, t.passRatio || t), this.onActivate = (c) => {\n this.isSupported || this.dispose(c), this.onActivate = null;\n }, this.onApplyObservable.add((c) => {\n this._updateMeshScreenCoordinates(h), c.setTexture(\"lightScatteringSampler\", this._volumetricLightScatteringRTT), c.setFloat(\"exposure\", this.exposure), c.setFloat(\"decay\", this.decay), c.setFloat(\"weight\", this.weight), c.setFloat(\"density\", this.density), c.setVector2(\"meshPositionOnScreen\", this._screenCoordinates);\n });\n }\n /**\n * Returns the string \"VolumetricLightScatteringPostProcess\"\n * @returns \"VolumetricLightScatteringPostProcess\"\n */\n getClassName() {\n return \"VolumetricLightScatteringPostProcess\";\n }\n _isReady(e, t) {\n var u;\n const i = e.getMesh();\n if (i === this.mesh && i.material)\n return i.material.isReady(i);\n const s = (u = i._internalAbstractMeshDataInfo._materialForRenderPass) == null ? void 0 : u[this._scene.getEngine().currentRenderPassId];\n if (s)\n return s.isReadyForSubMesh(i, e, t);\n const r = [], n = [R.PositionKind], o = e.getMaterial();\n o && (o.needAlphaTesting() && r.push(\"#define ALPHATEST\"), i.isVerticesDataPresent(R.UVKind) && (n.push(R.UVKind), r.push(\"#define UV1\")), i.isVerticesDataPresent(R.UV2Kind) && (n.push(R.UV2Kind), r.push(\"#define UV2\"))), i.useBones && i.computeBonesUsingShaders ? (n.push(R.MatricesIndicesKind), n.push(R.MatricesWeightsKind), r.push(\"#define NUM_BONE_INFLUENCERS \" + i.numBoneInfluencers), r.push(\"#define BonesPerMesh \" + (i.skeleton ? i.skeleton.bones.length + 1 : 0))) : r.push(\"#define NUM_BONE_INFLUENCERS 0\"), t && (r.push(\"#define INSTANCES\"), So(n), e.getRenderingMesh().hasThinInstances && r.push(\"#define THIN_INSTANCES\"));\n const l = e._getDrawWrapper(void 0, !0), h = l.defines, c = r.join(`\n`);\n return h !== c && l.setEffect(i.getScene().getEngine().createEffect(\"volumetricLightScatteringPass\", n, [\"world\", \"mBones\", \"viewProjection\", \"diffuseMatrix\"], [\"diffuseSampler\"], c, void 0, void 0, void 0, { maxSimultaneousMorphTargets: i.numBoneInfluencers }), c), l.effect.isReady();\n }\n /**\n * Sets the new light position for light scattering effect\n * @param position The new custom light position\n */\n setCustomMeshPosition(e) {\n this.customMeshPosition = e;\n }\n /**\n * Returns the light position for light scattering effect\n * @returns Vector3 The custom light position\n */\n getCustomMeshPosition() {\n return this.customMeshPosition;\n }\n /**\n * Disposes the internal assets and detaches the post-process from the camera\n * @param camera The camera from which to detach the post-process\n */\n dispose(e) {\n const t = e.getScene().customRenderTargets.indexOf(this._volumetricLightScatteringRTT);\n t !== -1 && e.getScene().customRenderTargets.splice(t, 1), this._volumetricLightScatteringRTT.dispose(), super.dispose(e);\n }\n /**\n * Returns the render target texture used by the post-process\n * @returns the render target texture used by the post-process\n */\n getPass() {\n return this._volumetricLightScatteringRTT;\n }\n // Private methods\n _meshExcluded(e) {\n return this.includedMeshes.length > 0 && this.includedMeshes.indexOf(e) === -1 || this.excludedMeshes.length > 0 && this.excludedMeshes.indexOf(e) !== -1;\n }\n _createPass(e, t) {\n const i = e.getEngine();\n this._volumetricLightScatteringRTT = new Ii(\"volumetricLightScatteringMap\", { width: i.getRenderWidth() * t, height: i.getRenderHeight() * t }, e, !1, !0, 0), this._volumetricLightScatteringRTT.wrapU = X.CLAMP_ADDRESSMODE, this._volumetricLightScatteringRTT.wrapV = X.CLAMP_ADDRESSMODE, this._volumetricLightScatteringRTT.renderList = null, this._volumetricLightScatteringRTT.renderParticles = !1, this._volumetricLightScatteringRTT.ignoreCameraViewport = !0;\n const s = this.getCamera();\n s ? s.customRenderTargets.push(this._volumetricLightScatteringRTT) : e.customRenderTargets.push(this._volumetricLightScatteringRTT);\n const r = (l) => {\n var m;\n const h = l.getRenderingMesh(), c = l.getEffectiveMesh();\n if (this._meshExcluded(h))\n return;\n c._internalAbstractMeshDataInfo._isActiveIntermediate = !1;\n const u = l.getMaterial();\n if (!u)\n return;\n const d = h.getScene(), f = d.getEngine();\n f.setState(u.backFaceCulling, void 0, void 0, void 0, u.cullBackFaces);\n const p = h._getInstancesRenderList(l._id, !!l.getReplacementMesh());\n if (p.mustReturn)\n return;\n const _ = f.getCaps().instancedArrays && (p.visibleInstances[l._id] !== null || h.hasThinInstances);\n if (this._isReady(l, _)) {\n const x = (m = c._internalAbstractMeshDataInfo._materialForRenderPass) == null ? void 0 : m[f.currentRenderPassId];\n let v = l._getDrawWrapper();\n if (h === this.mesh && !v && (v = u._getDrawWrapper()), !v)\n return;\n const T = v.effect;\n if (f.enableEffect(v), _ || h._bind(l, T, u.fillMode), h === this.mesh)\n u.bind(c.getWorldMatrix(), h);\n else if (x)\n x.bindForSubMesh(c.getWorldMatrix(), c, l);\n else {\n if (T.setMatrix(\"viewProjection\", d.getTransformMatrix()), u && u.needAlphaTesting()) {\n const E = u.getAlphaTestTexture();\n T.setTexture(\"diffuseSampler\", E), E && T.setMatrix(\"diffuseMatrix\", E.getTextureMatrix());\n }\n h.useBones && h.computeBonesUsingShaders && h.skeleton && T.setMatrices(\"mBones\", h.skeleton.getTransformMatrices(h));\n }\n _ && h.hasThinInstances && T.setMatrix(\"world\", c.getWorldMatrix()), h._processRendering(c, l, T, ue.TriangleFillMode, p, _, (E, b) => {\n E || T.setMatrix(\"world\", b);\n });\n }\n };\n let n;\n const o = new Ce(0, 0, 0, 1);\n this._volumetricLightScatteringRTT.onBeforeRenderObservable.add(() => {\n n = e.clearColor, e.clearColor = o;\n }), this._volumetricLightScatteringRTT.onAfterRenderObservable.add(() => {\n e.clearColor = n;\n }), this._volumetricLightScatteringRTT.customIsReadyFunction = (l, h, c) => {\n if ((c || h === 0) && l.subMeshes)\n for (let u = 0; u < l.subMeshes.length; ++u) {\n const d = l.subMeshes[u], f = d.getMaterial(), p = d.getRenderingMesh();\n if (!f)\n continue;\n const _ = p._getInstancesRenderList(d._id, !!d.getReplacementMesh()), m = i.getCaps().instancedArrays && (_.visibleInstances[d._id] !== null || p.hasThinInstances);\n if (!this._isReady(d, m))\n return !1;\n }\n return !0;\n }, this._volumetricLightScatteringRTT.customRenderFunction = (l, h, c, u) => {\n const d = e.getEngine();\n let f;\n if (u.length) {\n for (d.setColorWrite(!1), f = 0; f < u.length; f++)\n r(u.data[f]);\n d.setColorWrite(!0);\n }\n for (f = 0; f < l.length; f++)\n r(l.data[f]);\n for (f = 0; f < h.length; f++)\n r(h.data[f]);\n if (c.length) {\n for (f = 0; f < c.length; f++) {\n const _ = c.data[f], m = _.getBoundingInfo();\n m && e.activeCamera && (_._alphaIndex = _.getMesh().alphaIndex, _._distanceToCamera = m.boundingSphere.centerWorld.subtract(e.activeCamera.position).length());\n }\n const p = c.data.slice(0, c.length);\n for (p.sort((_, m) => _._alphaIndex > m._alphaIndex ? 1 : _._alphaIndex < m._alphaIndex ? -1 : _._distanceToCamera < m._distanceToCamera ? 1 : _._distanceToCamera > m._distanceToCamera ? -1 : 0), d.setAlphaMode(2), f = 0; f < p.length; f++)\n r(p[f]);\n d.setAlphaMode(0);\n }\n };\n }\n _updateMeshScreenCoordinates(e) {\n const t = e.getTransformMatrix();\n let i;\n this.useCustomMeshPosition ? i = this.customMeshPosition : this.attachedNode ? i = this.attachedNode.position : i = this.mesh.parent ? this.mesh.getAbsolutePosition() : this.mesh.position;\n const s = g.Project(i, O.Identity(), t, this._viewPort);\n this._screenCoordinates.x = s.x / this._viewPort.width, this._screenCoordinates.y = s.y / this._viewPort.height, this.invert && (this._screenCoordinates.y = 1 - this._screenCoordinates.y);\n }\n // Static methods\n /**\n * Creates a default mesh for the Volumeric Light Scattering post-process\n * @param name The mesh name\n * @param scene The scene where to create the mesh\n * @returns the default mesh\n */\n static CreateDefaultMesh(e, t) {\n const i = Ul(e, { size: 1 }, t);\n i.billboardMode = Pt.BILLBOARDMODE_ALL;\n const s = new ye(e + \"Material\", t);\n return s.emissiveColor = new re(1, 1, 1), i.material = s, i;\n }\n}\ny([\n Zs()\n], yn.prototype, \"customMeshPosition\", void 0);\ny([\n I()\n], yn.prototype, \"useCustomMeshPosition\", void 0);\ny([\n I()\n], yn.prototype, \"invert\", void 0);\ny([\n af()\n], yn.prototype, \"mesh\", void 0);\ny([\n I()\n], yn.prototype, \"excludedMeshes\", void 0);\ny([\n I()\n], yn.prototype, \"includedMeshes\", void 0);\ny([\n I()\n], yn.prototype, \"exposure\", void 0);\ny([\n I()\n], yn.prototype, \"decay\", void 0);\ny([\n I()\n], yn.prototype, \"weight\", void 0);\ny([\n I()\n], yn.prototype, \"density\", void 0);\nU(\"BABYLON.VolumetricLightScatteringPostProcess\", yn);\nconst S4 = \"screenSpaceCurvaturePixelShader\", b4 = `precision highp float;varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D normalSampler;uniform float curvature_ridge;uniform float curvature_valley;\n#ifndef CURVATURE_OFFSET\n#define CURVATURE_OFFSET 1\n#endif\nfloat curvature_soft_clamp(float curvature,float control)\n{if (curvature<0.5/control)\nreturn curvature*(1.0-curvature*control);return 0.25/control;}\nfloat calculate_curvature(ivec2 texel,float ridge,float valley)\n{vec2 normal_up =texelFetch(normalSampler,texel+ivec2(0, CURVATURE_OFFSET),0).rb;vec2 normal_down =texelFetch(normalSampler,texel+ivec2(0,-CURVATURE_OFFSET),0).rb;vec2 normal_left =texelFetch(normalSampler,texel+ivec2(-CURVATURE_OFFSET,0),0).rb;vec2 normal_right=texelFetch(normalSampler,texel+ivec2( CURVATURE_OFFSET,0),0).rb;float normal_diff=((normal_up.g-normal_down.g)+(normal_right.r-normal_left.r));if (normal_diff<0.0)\nreturn -2.0*curvature_soft_clamp(-normal_diff,valley);return 2.0*curvature_soft_clamp(normal_diff,ridge);}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{ivec2 texel=ivec2(gl_FragCoord.xy);vec4 baseColor=texture2D(textureSampler,vUV);float curvature=calculate_curvature(texel,curvature_ridge,curvature_valley);baseColor.rgb*=curvature+1.0;gl_FragColor=baseColor;}`;\nz.ShadersStore[S4] = b4;\nclass Lf extends Be {\n /**\n * Gets a string identifying the name of the class\n * @returns \"ScreenSpaceCurvaturePostProcess\" string\n */\n getClassName() {\n return \"ScreenSpaceCurvaturePostProcess\";\n }\n /**\n * Creates a new instance ScreenSpaceCurvaturePostProcess\n * @param name The name of the effect.\n * @param scene The scene containing the objects to blur according to their velocity.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\n */\n constructor(e, t, i, s, r, n, o, l = 0, h = !1) {\n super(e, \"screenSpaceCurvature\", [\"curvature_ridge\", \"curvature_valley\"], [\"textureSampler\", \"normalSampler\"], i, s, r, n, o, void 0, l, void 0, null, h), this.ridge = 1, this.valley = 1, this._geometryBufferRenderer = t.enableGeometryBufferRenderer(), this._geometryBufferRenderer ? (this._geometryBufferRenderer.generateNormalsInWorldSpace && L.Error(\"ScreenSpaceCurvaturePostProcess does not support generateNormalsInWorldSpace=true for the geometry buffer renderer!\"), this.onApply = (c) => {\n c.setFloat(\"curvature_ridge\", 0.5 / Math.max(this.ridge * this.ridge, 1e-4)), c.setFloat(\"curvature_valley\", 0.7 / Math.max(this.valley * this.valley, 1e-4));\n const u = this._geometryBufferRenderer.getGBuffer().textures[1];\n c.setTexture(\"normalSampler\", u);\n }) : L.Error(\"Multiple Render Target support needed for screen space curvature post process. Please use IsSupported test first.\");\n }\n /**\n * Support test.\n */\n static get IsSupported() {\n const e = Me.LastCreatedEngine;\n return e ? e.getCaps().drawBuffersExtension : !1;\n }\n /**\n * @internal\n */\n static _Parse(e, t, i, s) {\n return Ae.Parse(() => new Lf(e.name, i, e.options, t, e.renderTargetSamplingMode, i.getEngine(), e.textureType, e.reusable), e, i, s);\n }\n}\ny([\n I()\n], Lf.prototype, \"ridge\", void 0);\ny([\n I()\n], Lf.prototype, \"valley\", void 0);\nU(\"BABYLON.ScreenSpaceCurvaturePostProcess\", Lf);\nconst E4 = \"boundingBoxRendererFragmentDeclaration\", y4 = `uniform vec4 color;\n`;\nz.IncludesShadersStore[E4] = y4;\nconst C4 = \"boundingBoxRendererUboDeclaration\", A4 = `#ifdef WEBGL2\nuniform vec4 color;uniform mat4 world;uniform mat4 viewProjection;\n#ifdef MULTIVIEW\nuniform mat4 viewProjectionR;\n#endif\n#else\nlayout(std140,column_major) uniform;uniform BoundingBoxRenderer {vec4 color;mat4 world;mat4 viewProjection;mat4 viewProjectionR;};\n#endif\n`;\nz.IncludesShadersStore[C4] = A4;\nconst R4 = \"boundingBoxRendererPixelShader\", I4 = `#include<__decl__boundingBoxRendererFragment>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\ngl_FragColor=color;\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\nz.ShadersStore[R4] = I4;\nconst P4 = \"boundingBoxRendererVertexDeclaration\", M4 = `uniform mat4 world;uniform mat4 viewProjection;\n#ifdef MULTIVIEW\nuniform mat4 viewProjectionR;\n#endif\n`;\nz.IncludesShadersStore[P4] = M4;\nconst D4 = \"boundingBoxRendererVertexShader\", O4 = `attribute vec3 position;\n#include<__decl__boundingBoxRendererVertex>\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvec4 worldPos=world*vec4(position,1.0);\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR==0u) {gl_Position=viewProjection*worldPos;} else {gl_Position=viewProjectionR*worldPos;}\n#else\ngl_Position=viewProjection*worldPos;\n#endif\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\nz.ShadersStore[D4] = O4;\nObject.defineProperty(De.prototype, \"forceShowBoundingBoxes\", {\n get: function() {\n return this._forceShowBoundingBoxes || !1;\n },\n set: function(a) {\n this._forceShowBoundingBoxes = a, a && this.getBoundingBoxRenderer();\n },\n enumerable: !0,\n configurable: !0\n});\nDe.prototype.getBoundingBoxRenderer = function() {\n return this._boundingBoxRenderer || (this._boundingBoxRenderer = new w4(this)), this._boundingBoxRenderer;\n};\nObject.defineProperty(Pt.prototype, \"showBoundingBox\", {\n get: function() {\n return this._showBoundingBox || !1;\n },\n set: function(a) {\n this._showBoundingBox = a, a && this.getScene().getBoundingBoxRenderer();\n },\n enumerable: !0,\n configurable: !0\n});\nclass w4 {\n /**\n * Instantiates a new bounding box renderer in a scene.\n * @param scene the scene the renderer renders in\n */\n constructor(e) {\n this.name = me.NAME_BOUNDINGBOXRENDERER, this.frontColor = new re(1, 1, 1), this.backColor = new re(0.1, 0.1, 0.1), this.showBackLines = !0, this.onBeforeBoxRenderingObservable = new G(), this.onAfterBoxRenderingObservable = new G(), this.onResourcesReadyObservable = new G(), this.enabled = !0, this.renderList = new fs(32), this._vertexBuffers = {}, this._fillIndexBuffer = null, this._fillIndexData = null, this.scene = e, e._addComponent(this), this._uniformBufferFront = new Ve(this.scene.getEngine(), void 0, void 0, \"BoundingBoxRendererFront\", !this.scene.getEngine().isWebGPU), this._buildUniformLayout(this._uniformBufferFront), this._uniformBufferBack = new Ve(this.scene.getEngine(), void 0, void 0, \"BoundingBoxRendererBack\", !this.scene.getEngine().isWebGPU), this._buildUniformLayout(this._uniformBufferBack);\n }\n _buildUniformLayout(e) {\n e.addUniform(\"color\", 4), e.addUniform(\"world\", 16), e.addUniform(\"viewProjection\", 16), e.addUniform(\"viewProjectionR\", 16), e.create();\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._beforeEvaluateActiveMeshStage.registerStep(me.STEP_BEFOREEVALUATEACTIVEMESH_BOUNDINGBOXRENDERER, this, this.reset), this.scene._preActiveMeshStage.registerStep(me.STEP_PREACTIVEMESH_BOUNDINGBOXRENDERER, this, this._preActiveMesh), this.scene._evaluateSubMeshStage.registerStep(me.STEP_EVALUATESUBMESH_BOUNDINGBOXRENDERER, this, this._evaluateSubMesh), this.scene._afterRenderingGroupDrawStage.registerStep(me.STEP_AFTERRENDERINGGROUPDRAW_BOUNDINGBOXRENDERER, this, this.render);\n }\n _evaluateSubMesh(e, t) {\n if (e.showSubMeshesBoundingBox) {\n const i = t.getBoundingInfo();\n i != null && (i.boundingBox._tag = e.renderingGroupId, this.renderList.push(i.boundingBox));\n }\n }\n _preActiveMesh(e) {\n if (e.showBoundingBox || this.scene.forceShowBoundingBoxes) {\n const t = e.getBoundingInfo();\n t.boundingBox._tag = e.renderingGroupId, this.renderList.push(t.boundingBox);\n }\n }\n _prepareResources() {\n if (this._colorShader)\n return;\n this._colorShader = new Or(\"colorShader\", this.scene, \"boundingBoxRenderer\", {\n attributes: [R.PositionKind],\n uniforms: [\"world\", \"viewProjection\", \"viewProjectionR\", \"color\"],\n uniformBuffers: [\"BoundingBoxRenderer\"]\n }, !1), this._colorShader.doNotSerialize = !0, this._colorShader.reservedDataStore = {\n hidden: !0\n }, this._colorShaderForOcclusionQuery = new Or(\"colorShaderOccQuery\", this.scene, \"boundingBoxRenderer\", {\n attributes: [R.PositionKind],\n uniforms: [\"world\", \"viewProjection\", \"viewProjectionR\", \"color\"],\n uniformBuffers: [\"BoundingBoxRenderer\"]\n }, !0), this._colorShaderForOcclusionQuery.doNotSerialize = !0, this._colorShaderForOcclusionQuery.reservedDataStore = {\n hidden: !0\n };\n const e = this.scene.getEngine(), t = Qx({ size: 1 });\n this._vertexBuffers[R.PositionKind] = new R(e, t.positions, R.PositionKind, !1), this._createIndexBuffer(), this._fillIndexData = t.indices, this.onResourcesReadyObservable.notifyObservers(this);\n }\n _createIndexBuffer() {\n const e = this.scene.getEngine();\n this._indexBuffer = e.createIndexBuffer([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 7, 1, 6, 2, 5, 3, 4]);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n const e = this._vertexBuffers[R.PositionKind];\n e && e._rebuild(), this._createIndexBuffer();\n }\n /**\n * @internal\n */\n reset() {\n this.renderList.reset();\n }\n /**\n * Render the bounding boxes of a specific rendering group\n * @param renderingGroupId defines the rendering group to render\n */\n render(e) {\n if (this.renderList.length === 0 || !this.enabled || (this._prepareResources(), !this._colorShader.isReady()))\n return;\n const t = this.scene.getEngine();\n t.setDepthWrite(!1);\n const i = this.scene.getTransformMatrix();\n for (let s = 0; s < this.renderList.length; s++) {\n const r = this.renderList.data[s];\n if (r._tag !== e)\n continue;\n this._createWrappersForBoundingBox(r), this.onBeforeBoxRenderingObservable.notifyObservers(r);\n const n = r.minimum, l = r.maximum.subtract(n), h = n.add(l.scale(0.5)), c = O.Scaling(l.x, l.y, l.z).multiply(O.Translation(h.x, h.y, h.z)).multiply(r.getWorldMatrix()), u = t.useReverseDepthBuffer;\n if (this.showBackLines) {\n const f = r._drawWrapperBack ?? this._colorShader._getDrawWrapper();\n this._colorShader._preBind(f), t.bindBuffers(this._vertexBuffers, this._indexBuffer, this._colorShader.getEffect()), u ? t.setDepthFunctionToLessOrEqual() : t.setDepthFunctionToGreaterOrEqual(), this._uniformBufferBack.bindToEffect(f.effect, \"BoundingBoxRenderer\"), this._uniformBufferBack.updateColor4(\"color\", this.backColor, 1), this._uniformBufferBack.updateMatrix(\"world\", c), this._uniformBufferBack.updateMatrix(\"viewProjection\", i), this._uniformBufferBack.update(), t.drawElementsType(ue.LineListDrawMode, 0, 24);\n }\n const d = r._drawWrapperFront ?? this._colorShader._getDrawWrapper();\n this._colorShader._preBind(d), t.bindBuffers(this._vertexBuffers, this._indexBuffer, this._colorShader.getEffect()), u ? t.setDepthFunctionToGreater() : t.setDepthFunctionToLess(), this._uniformBufferFront.bindToEffect(d.effect, \"BoundingBoxRenderer\"), this._uniformBufferFront.updateColor4(\"color\", this.frontColor, 1), this._uniformBufferFront.updateMatrix(\"world\", c), this._uniformBufferFront.updateMatrix(\"viewProjection\", i), this._uniformBufferFront.update(), t.drawElementsType(ue.LineListDrawMode, 0, 24), this.onAfterBoxRenderingObservable.notifyObservers(r);\n }\n this._colorShader.unbind(), t.setDepthFunctionToLessOrEqual(), t.setDepthWrite(!0);\n }\n _createWrappersForBoundingBox(e) {\n if (!e._drawWrapperFront) {\n const t = this.scene.getEngine();\n e._drawWrapperFront = new Ds(t), e._drawWrapperBack = new Ds(t), e._drawWrapperFront.setEffect(this._colorShader.getEffect()), e._drawWrapperBack.setEffect(this._colorShader.getEffect());\n }\n }\n /**\n * In case of occlusion queries, we can render the occlusion bounding box through this method\n * @param mesh Define the mesh to render the occlusion bounding box for\n */\n renderOcclusionBoundingBox(e) {\n const t = this.scene.getEngine();\n this._renderPassIdForOcclusionQuery === void 0 && (this._renderPassIdForOcclusionQuery = t.createRenderPassId(\"Render pass for occlusion query\"));\n const i = t.currentRenderPassId;\n t.currentRenderPassId = this._renderPassIdForOcclusionQuery, this._prepareResources();\n const s = e.subMeshes[0];\n if (!this._colorShaderForOcclusionQuery.isReady(e, void 0, s) || !e.hasBoundingInfo) {\n t.currentRenderPassId = i;\n return;\n }\n this._fillIndexBuffer || (this._fillIndexBuffer = t.createIndexBuffer(this._fillIndexData));\n const r = t.useReverseDepthBuffer;\n t.setDepthWrite(!1), t.setColorWrite(!1);\n const n = e.getBoundingInfo().boundingBox, o = n.minimum, h = n.maximum.subtract(o), c = o.add(h.scale(0.5)), u = O.Scaling(h.x, h.y, h.z).multiply(O.Translation(c.x, c.y, c.z)).multiply(n.getWorldMatrix()), d = s._drawWrapper;\n this._colorShaderForOcclusionQuery._preBind(d), t.bindBuffers(this._vertexBuffers, this._fillIndexBuffer, d.effect), r ? t.setDepthFunctionToGreater() : t.setDepthFunctionToLess(), this.scene.resetCachedMaterial(), this._uniformBufferFront.bindToEffect(d.effect, \"BoundingBoxRenderer\"), this._uniformBufferFront.updateMatrix(\"world\", u), this._uniformBufferFront.updateMatrix(\"viewProjection\", this.scene.getTransformMatrix()), this._uniformBufferFront.update(), t.drawElementsType(ue.TriangleFillMode, 0, 36), this._colorShaderForOcclusionQuery.unbind(), t.setDepthFunctionToLessOrEqual(), t.setDepthWrite(!0), t.setColorWrite(!0), t.currentRenderPassId = i;\n }\n /**\n * Dispose and release the resources attached to this renderer.\n */\n dispose() {\n if (this._renderPassIdForOcclusionQuery !== void 0 && (this.scene.getEngine().releaseRenderPassId(this._renderPassIdForOcclusionQuery), this._renderPassIdForOcclusionQuery = void 0), !this._colorShader)\n return;\n this.onBeforeBoxRenderingObservable.clear(), this.onAfterBoxRenderingObservable.clear(), this.onResourcesReadyObservable.clear(), this.renderList.dispose(), this._colorShader.dispose(), this._colorShaderForOcclusionQuery.dispose(), this._uniformBufferFront.dispose(), this._uniformBufferBack.dispose();\n const e = this._vertexBuffers[R.PositionKind];\n e && (e.dispose(), this._vertexBuffers[R.PositionKind] = null), this.scene.getEngine()._releaseBuffer(this._indexBuffer), this._fillIndexBuffer && (this.scene.getEngine()._releaseBuffer(this._fillIndexBuffer), this._fillIndexBuffer = null);\n }\n}\nDe.prototype.enableDepthRenderer = function(a, e = !1, t = !1, i = 3, s = !1) {\n if (a = a || this.activeCamera, !a)\n throw \"No camera available to enable depth renderer\";\n if (this._depthRenderer || (this._depthRenderer = {}), !this._depthRenderer[a.id]) {\n const r = !!this.getEngine().getCaps().textureFloatRender;\n let n = 0;\n this.getEngine().getCaps().textureHalfFloatRender && (!t || !r) ? n = 2 : r ? n = 1 : n = 0, this._depthRenderer[a.id] = new Wl(this, n, a, e, i, s);\n }\n return this._depthRenderer[a.id];\n};\nDe.prototype.disableDepthRenderer = function(a) {\n a = a || this.activeCamera, !(!a || !this._depthRenderer || !this._depthRenderer[a.id]) && this._depthRenderer[a.id].dispose();\n};\nclass N4 {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_DEPTHRENDERER, this.scene = e;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._gatherRenderTargetsStage.registerStep(me.STEP_GATHERRENDERTARGETS_DEPTHRENDERER, this, this._gatherRenderTargets), this.scene._gatherActiveCameraRenderTargetsStage.registerStep(me.STEP_GATHERACTIVECAMERARENDERTARGETS_DEPTHRENDERER, this, this._gatherActiveCameraRenderTargets);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n for (const e in this.scene._depthRenderer)\n this.scene._depthRenderer[e].dispose();\n }\n _gatherRenderTargets(e) {\n if (this.scene._depthRenderer)\n for (const t in this.scene._depthRenderer) {\n const i = this.scene._depthRenderer[t];\n i.enabled && !i.useOnlyInActiveCamera && e.push(i.getDepthMap());\n }\n }\n _gatherActiveCameraRenderTargets(e) {\n if (this.scene._depthRenderer)\n for (const t in this.scene._depthRenderer) {\n const i = this.scene._depthRenderer[t];\n i.enabled && i.useOnlyInActiveCamera && this.scene.activeCamera.id === t && e.push(i.getDepthMap());\n }\n }\n}\nWl._SceneComponentInitialization = (a) => {\n let e = a._getComponent(me.NAME_DEPTHRENDERER);\n e || (e = new N4(a), a._addComponent(e));\n};\nconst F4 = \"oitFinalPixelShader\", L4 = `precision highp float;uniform sampler2D uFrontColor;uniform sampler2D uBackColor;void main() {ivec2 fragCoord=ivec2(gl_FragCoord.xy);vec4 frontColor=texelFetch(uFrontColor,fragCoord,0);vec4 backColor=texelFetch(uBackColor,fragCoord,0);float alphaMultiplier=1.0-frontColor.a;glFragColor=vec4(\nfrontColor.rgb+alphaMultiplier*backColor.rgb,\nfrontColor.a+backColor.a\n);}`;\nz.ShadersStore[F4] = L4;\nconst B4 = \"oitBackBlendPixelShader\", V4 = `precision highp float;uniform sampler2D uBackColor;void main() {glFragColor=texelFetch(uBackColor,ivec2(gl_FragCoord.xy),0);if (glFragColor.a==0.0) { \ndiscard;}}`;\nz.ShadersStore[B4] = V4;\nclass U4 {\n constructor() {\n this.enabled = !0, this.name = \"depthPeeling\", this.texturesRequired = [4];\n }\n}\nclass eo {\n /**\n * Number of depth peeling passes. As we are using dual depth peeling, each pass two levels of transparency are processed.\n */\n get passCount() {\n return this._passCount;\n }\n set passCount(e) {\n this._passCount !== e && (this._passCount = e, this._createRenderPassIds());\n }\n /**\n * Instructs the renderer to use render passes. It is an optimization that makes the rendering faster for some engines (like WebGPU) but that consumes more memory, so it is disabled by default.\n */\n get useRenderPasses() {\n return this._useRenderPasses;\n }\n set useRenderPasses(e) {\n this._useRenderPasses !== e && (this._useRenderPasses = e, this._createRenderPassIds());\n }\n /**\n * Add a mesh in the exclusion list to prevent it to be handled by the depth peeling renderer\n * @param mesh The mesh to exclude from the depth peeling renderer\n */\n addExcludedMesh(e) {\n this._excludedMeshes.indexOf(e.uniqueId) === -1 && this._excludedMeshes.push(e.uniqueId);\n }\n /**\n * Remove a mesh from the exclusion list of the depth peeling renderer\n * @param mesh The mesh to remove\n */\n removeExcludedMesh(e) {\n const t = this._excludedMeshes.indexOf(e.uniqueId);\n t !== -1 && this._excludedMeshes.splice(t, 1);\n }\n /**\n * Instanciates the depth peeling renderer\n * @param scene Scene to attach to\n * @param passCount Number of depth layers to peel\n * @returns The depth peeling renderer\n */\n constructor(e, t = 5) {\n if (this._thinTextures = [], this._currentPingPongState = 0, this._layoutCacheFormat = [[!0], [!0, !0], [!0, !0, !0]], this._layoutCache = [], this._candidateSubMeshes = new fs(10), this._excludedSubMeshes = new fs(10), this._excludedMeshes = [], this._colorCache = [\n new Ce(eo._DEPTH_CLEAR_VALUE, eo._DEPTH_CLEAR_VALUE, 0, 0),\n new Ce(-eo._MIN_DEPTH, eo._MAX_DEPTH, 0, 0),\n new Ce(0, 0, 0, 0)\n ], this._scene = e, this._engine = e.getEngine(), this._passCount = t, !e.enablePrePassRenderer()) {\n L.Warn(\"Depth peeling for order independant transparency could not enable PrePass, aborting.\");\n return;\n }\n for (let i = 0; i < this._layoutCacheFormat.length; ++i)\n this._layoutCache[i] = this._engine.buildTextureLayout(this._layoutCacheFormat[i]);\n this._renderPassIds = [], this.useRenderPasses = !1, this._prePassEffectConfiguration = new U4(), this._createTextures(), this._createEffects();\n }\n _createRenderPassIds() {\n if (this._releaseRenderPassIds(), this._useRenderPasses)\n for (let e = 0; e < this._passCount + 1; ++e)\n this._renderPassIds[e] || (this._renderPassIds[e] = this._engine.createRenderPassId(`DepthPeelingRenderer - pass #${e}`));\n }\n _releaseRenderPassIds() {\n for (let e = 0; e < this._renderPassIds.length; ++e)\n this._engine.releaseRenderPassId(this._renderPassIds[e]);\n this._renderPassIds = [];\n }\n _createTextures() {\n const e = {\n width: this._engine.getRenderWidth(),\n height: this._engine.getRenderHeight()\n };\n this._depthMrts = [\n new Oo(\"depthPeelingDepth0MRT\", e, 3, this._scene, void 0, [\n \"depthPeelingDepth0MRT_depth\",\n \"depthPeelingDepth0MRT_frontColor\",\n \"depthPeelingDepth0MRT_backColor\"\n ]),\n new Oo(\"depthPeelingDepth1MRT\", e, 3, this._scene, void 0, [\n \"depthPeelingDepth1MRT_depth\",\n \"depthPeelingDepth1MRT_frontColor\",\n \"depthPeelingDepth1MRT_backColor\"\n ])\n ], this._colorMrts = [\n new Oo(\"depthPeelingColor0MRT\", e, 2, this._scene, { generateDepthBuffer: !1 }, [\n \"depthPeelingColor0MRT_frontColor\",\n \"depthPeelingColor0MRT_backColor\"\n ]),\n new Oo(\"depthPeelingColor1MRT\", e, 2, this._scene, { generateDepthBuffer: !1 }, [\n \"depthPeelingColor1MRT_frontColor\",\n \"depthPeelingColor1MRT_backColor\"\n ])\n ], this._blendBackMrt = new Oo(\"depthPeelingBackMRT\", e, 1, this._scene, { generateDepthBuffer: !1 }, [\"depthPeelingBackMRT_blendBack\"]), this._outputRT = new Ii(\"depthPeelingOutputRTT\", e, this._scene, !1);\n const t = [\n {\n format: 7,\n samplingMode: 1,\n type: this._engine.getCaps().textureFloatLinearFiltering ? 1 : 2,\n label: \"DepthPeelingRenderer-DepthTexture\"\n },\n {\n format: 5,\n samplingMode: 1,\n type: 2,\n label: \"DepthPeelingRenderer-ColorTexture\"\n }\n ];\n for (let i = 0; i < 2; i++) {\n const s = this._engine._createInternalTexture(e, t[0], !1), r = this._engine._createInternalTexture(e, t[1], !1), n = this._engine._createInternalTexture(e, t[1], !1);\n this._depthMrts[i].setInternalTexture(s, 0), this._depthMrts[i].setInternalTexture(r, 1), this._depthMrts[i].setInternalTexture(n, 2), this._colorMrts[i].setInternalTexture(r, 0), this._colorMrts[i].setInternalTexture(n, 1), this._thinTextures.push(new Sl(s), new Sl(r), new Sl(n));\n }\n }\n // TODO : explore again MSAA with depth peeling when\n // we are able to fetch individual samples in a multisampled renderbuffer\n // public set samples(value: number) {\n // for (let i = 0; i < 2; i++) {\n // this._depthMrts[i].samples = value;\n // this._colorMrts[i].samples = value;\n // }\n // this._scene.prePassRenderer!.samples = value;\n // }\n _disposeTextures() {\n for (let e = 0; e < this._thinTextures.length; e++)\n e !== 6 && this._thinTextures[e].dispose();\n for (let e = 0; e < 2; e++)\n this._depthMrts[e].dispose(!0), this._colorMrts[e].dispose(!0), this._blendBackMrt.dispose(!0);\n this._outputRT.dispose(), this._thinTextures = [], this._colorMrts = [], this._depthMrts = [];\n }\n _updateTextures() {\n return (this._depthMrts[0].getSize().width !== this._engine.getRenderWidth() || this._depthMrts[0].getSize().height !== this._engine.getRenderHeight()) && (this._disposeTextures(), this._createTextures()), this._updateTextureReferences();\n }\n _updateTextureReferences() {\n var s;\n const e = this._scene.prePassRenderer;\n if (!e)\n return !1;\n const t = e.getIndex(4), i = (s = e.defaultRT.textures) != null && s.length ? e.defaultRT.textures[t].getInternalTexture() : null;\n return i ? (this._blendBackTexture !== i && (this._blendBackTexture = i, this._blendBackMrt.setInternalTexture(this._blendBackTexture, 0), this._thinTextures[6] && this._thinTextures[6].dispose(), this._thinTextures[6] = new Sl(this._blendBackTexture), e.defaultRT.renderTarget.shareDepth(this._depthMrts[0].renderTarget)), !0) : !1;\n }\n _createEffects() {\n this._blendBackEffectWrapper = new to({\n fragmentShader: \"oitBackBlend\",\n useShaderStore: !0,\n engine: this._engine,\n samplerNames: [\"uBackColor\"],\n uniformNames: []\n }), this._blendBackEffectWrapperPingPong = new to({\n fragmentShader: \"oitBackBlend\",\n useShaderStore: !0,\n engine: this._engine,\n samplerNames: [\"uBackColor\"],\n uniformNames: []\n }), this._finalEffectWrapper = new to({\n fragmentShader: \"oitFinal\",\n useShaderStore: !0,\n engine: this._engine,\n samplerNames: [\"uFrontColor\", \"uBackColor\"],\n uniformNames: []\n }), this._effectRenderer = new c_(this._engine);\n }\n /**\n * Links to the prepass renderer\n * @param prePassRenderer The scene PrePassRenderer\n */\n setPrePassRenderer(e) {\n e.addEffectConfiguration(this._prePassEffectConfiguration);\n }\n /**\n * Binds depth peeling textures on an effect\n * @param effect The effect to bind textures on\n */\n bind(e) {\n e.setTexture(\"oitDepthSampler\", this._thinTextures[this._currentPingPongState * 3]), e.setTexture(\"oitFrontColorSampler\", this._thinTextures[this._currentPingPongState * 3 + 1]);\n }\n _renderSubMeshes(e) {\n let t;\n this._useRenderPasses && (t = {});\n for (let i = 0; i < e.length; i++) {\n const s = e.data[i].getMaterial();\n let r = !0, n = !1;\n const o = e.data[i];\n let l, h = !1;\n if (this._useRenderPasses && (l = o._getDrawWrapper(), h = !l), s && (r = s.allowShaderHotSwapping, n = s.backFaceCulling, s.allowShaderHotSwapping = !1, s.backFaceCulling = !1), o.render(!1), h && (l = o._getDrawWrapper(), l.materialContext)) {\n let c = t[l.materialContext.uniqueId];\n c || (c = t[l.materialContext.uniqueId] = this._engine.createMaterialContext()), o._getDrawWrapper().materialContext = c;\n }\n s && (s.allowShaderHotSwapping = r, s.backFaceCulling = n);\n }\n }\n _finalCompose(e) {\n var i;\n ((i = this._scene.prePassRenderer) == null ? void 0 : i.setCustomOutput(this._outputRT)) ? this._engine.bindFramebuffer(this._outputRT.renderTarget) : this._engine.restoreDefaultFramebuffer(), this._engine.setAlphaMode(0), this._engine.applyStates(), this._engine.enableEffect(this._finalEffectWrapper._drawWrapper), this._finalEffectWrapper.effect.setTexture(\"uFrontColor\", this._thinTextures[e * 3 + 1]), this._finalEffectWrapper.effect.setTexture(\"uBackColor\", this._thinTextures[6]), this._effectRenderer.render(this._finalEffectWrapper);\n }\n /**\n * Checks if the depth peeling renderer is ready to render transparent meshes\n * @returns true if the depth peeling renderer is ready to render the transparent meshes\n */\n isReady() {\n return this._blendBackEffectWrapper.effect.isReady() && this._blendBackEffectWrapperPingPong.effect.isReady() && this._finalEffectWrapper.effect.isReady() && this._updateTextures();\n }\n /**\n * Renders transparent submeshes with depth peeling\n * @param transparentSubMeshes List of transparent meshes to render\n * @returns The array of submeshes that could not be handled by this renderer\n */\n render(e) {\n if (this._candidateSubMeshes.length = 0, this._excludedSubMeshes.length = 0, !this.isReady())\n return this._excludedSubMeshes;\n this._scene.activeCamera && this._engine.setViewport(this._scene.activeCamera.viewport);\n for (let r = 0; r < e.length; r++) {\n const n = e.data[r], o = n.getMaterial(), l = o && n.getRenderingMesh()._getRenderingFillMode(o.fillMode);\n o && (l === ue.TriangleFanDrawMode || l === ue.TriangleFillMode || l === ue.TriangleStripDrawMode) && this._excludedMeshes.indexOf(n.getMesh().uniqueId) === -1 ? this._candidateSubMeshes.push(n) : this._excludedSubMeshes.push(n);\n }\n if (!this._candidateSubMeshes.length)\n return this._engine.bindFramebuffer(this._colorMrts[1].renderTarget), this._engine.bindAttachments(this._layoutCache[1]), this._engine.clear(this._colorCache[2], !0, !1, !1), this._engine.unBindFramebuffer(this._colorMrts[1].renderTarget), this._finalCompose(1), this._excludedSubMeshes;\n const t = this._engine.currentRenderPassId;\n this._scene.prePassRenderer._enabled = !1, this._useRenderPasses && (this._engine.currentRenderPassId = this._renderPassIds[0]), this._engine.bindFramebuffer(this._depthMrts[0].renderTarget), this._engine.bindAttachments(this._layoutCache[0]), this._engine.clear(this._colorCache[0], !0, !1, !1), this._engine.unBindFramebuffer(this._depthMrts[0].renderTarget), this._engine.bindFramebuffer(this._depthMrts[1].renderTarget), this._engine.bindAttachments(this._layoutCache[0]), this._engine.clear(this._colorCache[1], !0, !1, !1), this._engine.unBindFramebuffer(this._depthMrts[1].renderTarget), this._engine.bindFramebuffer(this._colorMrts[0].renderTarget), this._engine.bindAttachments(this._layoutCache[1]), this._engine.clear(this._colorCache[2], !0, !1, !1), this._engine.unBindFramebuffer(this._colorMrts[0].renderTarget), this._engine.bindFramebuffer(this._colorMrts[1].renderTarget), this._engine.bindAttachments(this._layoutCache[1]), this._engine.clear(this._colorCache[2], !0, !1, !1), this._engine.unBindFramebuffer(this._colorMrts[1].renderTarget), this._engine.bindFramebuffer(this._depthMrts[0].renderTarget), this._engine.bindAttachments(this._layoutCache[0]), this._engine.setAlphaMode(11), this._engine.setAlphaEquation(3), this._engine.depthCullingState.depthMask = !1, this._engine.depthCullingState.depthTest = !0, this._engine.applyStates(), this._currentPingPongState = 1, this._renderSubMeshes(this._candidateSubMeshes), this._engine.unBindFramebuffer(this._depthMrts[0].renderTarget), this._scene.resetCachedMaterial();\n let i = 0, s = 0;\n for (let r = 0; r < this._passCount; r++) {\n i = r % 2, s = 1 - i, this._currentPingPongState = i, this._useRenderPasses && (this._engine.currentRenderPassId = this._renderPassIds[r + 1]), this._scene.activeCamera && this._engine.setViewport(this._scene.activeCamera.viewport), this._engine.bindFramebuffer(this._depthMrts[s].renderTarget), this._engine.bindAttachments(this._layoutCache[0]), this._engine.clear(this._colorCache[0], !0, !1, !1), this._engine.unBindFramebuffer(this._depthMrts[s].renderTarget), this._engine.bindFramebuffer(this._colorMrts[s].renderTarget), this._engine.bindAttachments(this._layoutCache[1]), this._engine.clear(this._colorCache[2], !0, !1, !1), this._engine.unBindFramebuffer(this._colorMrts[s].renderTarget), this._engine.bindFramebuffer(this._depthMrts[s].renderTarget), this._engine.bindAttachments(this._layoutCache[2]), this._engine.setAlphaMode(11), this._engine.setAlphaEquation(3), this._engine.depthCullingState.depthTest = !1, this._engine.applyStates(), this._renderSubMeshes(this._candidateSubMeshes), this._engine.unBindFramebuffer(this._depthMrts[s].renderTarget), this._scene.resetCachedMaterial(), this._engine.bindFramebuffer(this._blendBackMrt.renderTarget), this._engine.bindAttachments(this._layoutCache[0]), this._engine.setAlphaEquation(0), this._engine.setAlphaMode(17), this._engine.applyStates();\n const n = s === 0 || !this._useRenderPasses ? this._blendBackEffectWrapper : this._blendBackEffectWrapperPingPong;\n this._engine.enableEffect(n._drawWrapper), n.effect.setTexture(\"uBackColor\", this._thinTextures[s * 3 + 2]), this._effectRenderer.render(n), this._engine.unBindFramebuffer(this._blendBackMrt.renderTarget);\n }\n return this._engine.currentRenderPassId = t, this._finalCompose(s), this._scene.prePassRenderer._enabled = !0, this._engine.depthCullingState.depthMask = !0, this._engine.depthCullingState.depthTest = !0, this._excludedSubMeshes;\n }\n /**\n * Disposes the depth peeling renderer and associated ressources\n */\n dispose() {\n this._disposeTextures(), this._blendBackEffectWrapper.dispose(), this._finalEffectWrapper.dispose(), this._effectRenderer.dispose(), this._releaseRenderPassIds();\n }\n}\neo._DEPTH_CLEAR_VALUE = -99999;\neo._MIN_DEPTH = 0;\neo._MAX_DEPTH = 1;\nObject.defineProperty(De.prototype, \"depthPeelingRenderer\", {\n get: function() {\n if (!this._depthPeelingRenderer) {\n let a = this._getComponent(me.NAME_DEPTHPEELINGRENDERER);\n a || (a = new k4(this), this._addComponent(a));\n }\n return this._depthPeelingRenderer;\n },\n set: function(a) {\n this._depthPeelingRenderer = a;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(De.prototype, \"useOrderIndependentTransparency\", {\n get: function() {\n return this._useOrderIndependentTransparency;\n },\n set: function(a) {\n var e;\n this._useOrderIndependentTransparency !== a && (this._useOrderIndependentTransparency = a, this.markAllMaterialsAsDirty(63), (e = this.prePassRenderer) == null || e.markAsDirty());\n },\n enumerable: !0,\n configurable: !0\n});\nclass k4 {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_DEPTHPEELINGRENDERER, this.scene = e, e.depthPeelingRenderer = new eo(e);\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n }\n /**\n * Disposes the component and the associated resources.\n */\n dispose() {\n var e;\n (e = this.scene.depthPeelingRenderer) == null || e.dispose(), this.scene.depthPeelingRenderer = null;\n }\n}\nconst G4 = \"linePixelShader\", z4 = `#include\nuniform vec4 color;\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n#include\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include\n#include\ngl_FragColor=color;\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\nz.ShadersStore[G4] = z4;\nconst W4 = \"lineVertexDeclaration\", H4 = `uniform mat4 viewProjection;\n#define ADDITIONAL_VERTEX_DECLARATION\n`;\nz.IncludesShadersStore[W4] = H4;\nconst X4 = \"lineUboDeclaration\", $4 = `layout(std140,column_major) uniform;\n#include\n#include\n`;\nz.IncludesShadersStore[X4] = $4;\nconst Y4 = \"lineVertexShader\", j4 = `#include<__decl__lineVertex>\n#include\n#include\nattribute vec3 position;attribute vec4 normal;uniform float width;uniform float aspectRatio;\n#include\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#include\nmat4 worldViewProjection=viewProjection*finalWorld;vec4 viewPosition=worldViewProjection*vec4(position,1.0);vec4 viewPositionNext=worldViewProjection*vec4(normal.xyz,1.0);vec2 currentScreen=viewPosition.xy/viewPosition.w;vec2 nextScreen=viewPositionNext.xy/viewPositionNext.w;currentScreen.x*=aspectRatio;nextScreen.x*=aspectRatio;vec2 dir=normalize(nextScreen-currentScreen);vec2 normalDir=vec2(-dir.y,dir.x);normalDir*=width/2.0;normalDir.x/=aspectRatio;vec4 offset=vec4(normalDir*normal.w,0.0,0.0);gl_Position=viewPosition+offset;\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)\nvec4 worldPos=finalWorld*vec4(position,1.0);\n#include\n#endif\n#include\n#define CUSTOM_VERTEX_MAIN_END\n}`;\nz.ShadersStore[Y4] = j4;\nPt.prototype.disableEdgesRendering = function() {\n return this._edgesRenderer && (this._edgesRenderer.dispose(), this._edgesRenderer = null), this;\n};\nPt.prototype.enableEdgesRendering = function(a = 0.95, e = !1, t) {\n return this.disableEdgesRendering(), this._edgesRenderer = new _m(this, a, e, !0, t), this;\n};\nObject.defineProperty(Pt.prototype, \"edgesRenderer\", {\n get: function() {\n return this._edgesRenderer;\n },\n enumerable: !0,\n configurable: !0\n});\nJo.prototype.enableEdgesRendering = function(a = 0.95, e = !1) {\n return this.disableEdgesRendering(), this._edgesRenderer = new q4(this, a, e), this;\n};\nS0.prototype.enableEdgesRendering = function(a = 0.95, e = !1) {\n return Jo.prototype.enableEdgesRendering.apply(this, arguments), this;\n};\nclass K4 {\n constructor() {\n this.edges = [], this.edgesConnectedCount = 0;\n }\n}\nclass _m {\n /** Gets the vertices generated by the edge renderer */\n get linesPositions() {\n return this._linesPositions;\n }\n /** Gets the normals generated by the edge renderer */\n get linesNormals() {\n return this._linesNormals;\n }\n /** Gets the indices generated by the edge renderer */\n get linesIndices() {\n return this._linesIndices;\n }\n /**\n * Gets or sets the shader used to draw the lines\n */\n get lineShader() {\n return this._lineShader;\n }\n set lineShader(e) {\n this._lineShader = e;\n }\n static _GetShader(e) {\n if (!e._edgeRenderLineShader) {\n const t = new Or(\"lineShader\", e, \"line\", {\n attributes: [\"position\", \"normal\"],\n uniforms: [\"world\", \"viewProjection\", \"color\", \"width\", \"aspectRatio\"],\n uniformBuffers: [\"Scene\", \"Mesh\"]\n }, !1);\n t.disableDepthWrite = !0, t.backFaceCulling = !1, t.checkReadyOnEveryCall = e.getEngine().isWebGPU, e._edgeRenderLineShader = t;\n }\n return e._edgeRenderLineShader;\n }\n /**\n * Creates an instance of the EdgesRenderer. It is primarily use to display edges of a mesh.\n * Beware when you use this class with complex objects as the adjacencies computation can be really long\n * @param source Mesh used to create edges\n * @param epsilon sum of angles in adjacency to check for edge\n * @param checkVerticesInsteadOfIndices bases the edges detection on vertices vs indices. Note that this parameter is not used if options.useAlternateEdgeFinder = true\n * @param generateEdgesLines - should generate Lines or only prepare resources.\n * @param options The options to apply when generating the edges\n */\n constructor(e, t = 0.95, i = !1, s = !0, r) {\n this.edgesWidthScalerForOrthographic = 1e3, this.edgesWidthScalerForPerspective = 50, this._linesPositions = new Array(), this._linesNormals = new Array(), this._linesIndices = new Array(), this._buffers = {}, this._buffersForInstances = {}, this._checkVerticesInsteadOfIndices = !1, this.isEnabled = !0, this.customInstances = new fs(32), this._source = e, this._checkVerticesInsteadOfIndices = i, this._options = r ?? null, this._epsilon = t, this._source.getScene().getEngine().isWebGPU && (this._drawWrapper = new Ds(e.getEngine())), this._prepareRessources(), s && ((r == null ? void 0 : r.useAlternateEdgeFinder) ?? !0 ? this._generateEdgesLinesAlternate() : this._generateEdgesLines()), this._meshRebuildObserver = this._source.onRebuildObservable.add(() => {\n this._rebuild();\n }), this._meshDisposeObserver = this._source.onDisposeObservable.add(() => {\n this.dispose();\n });\n }\n _prepareRessources() {\n this._lineShader || (this._lineShader = _m._GetShader(this._source.getScene()));\n }\n /** @internal */\n _rebuild() {\n let e = this._buffers[R.PositionKind];\n e && e._rebuild(), e = this._buffers[R.NormalKind], e && e._rebuild();\n const i = this._source.getScene().getEngine();\n this._ib = i.createIndexBuffer(this._linesIndices);\n }\n /**\n * Releases the required resources for the edges renderer\n */\n dispose() {\n var t;\n this._source.onRebuildObservable.remove(this._meshRebuildObserver), this._source.onDisposeObservable.remove(this._meshDisposeObserver);\n let e = this._buffers[R.PositionKind];\n e && (e.dispose(), this._buffers[R.PositionKind] = null), e = this._buffers[R.NormalKind], e && (e.dispose(), this._buffers[R.NormalKind] = null), this._ib && this._source.getScene().getEngine()._releaseBuffer(this._ib), this._lineShader.dispose(), (t = this._drawWrapper) == null || t.dispose();\n }\n _processEdgeForAdjacencies(e, t, i, s, r) {\n return e === i && t === s || e === s && t === i ? 0 : e === s && t === r || e === r && t === s ? 1 : e === r && t === i || e === i && t === r ? 2 : -1;\n }\n _processEdgeForAdjacenciesWithVertices(e, t, i, s, r) {\n return e.equalsWithEpsilon(i, 1e-10) && t.equalsWithEpsilon(s, 1e-10) || e.equalsWithEpsilon(s, 1e-10) && t.equalsWithEpsilon(i, 1e-10) ? 0 : e.equalsWithEpsilon(s, 1e-10) && t.equalsWithEpsilon(r, 1e-10) || e.equalsWithEpsilon(r, 1e-10) && t.equalsWithEpsilon(s, 1e-10) ? 1 : e.equalsWithEpsilon(r, 1e-10) && t.equalsWithEpsilon(i, 1e-10) || e.equalsWithEpsilon(i, 1e-10) && t.equalsWithEpsilon(r, 1e-10) ? 2 : -1;\n }\n /**\n * Checks if the pair of p0 and p1 is en edge\n * @param faceIndex\n * @param edge\n * @param faceNormals\n * @param p0\n * @param p1\n * @private\n */\n _checkEdge(e, t, i, s, r) {\n let n;\n t === void 0 ? n = !0 : n = g.Dot(i[e], i[t]) < this._epsilon, n && this.createLine(s, r, this._linesPositions.length / 3);\n }\n /**\n * push line into the position, normal and index buffer\n * @param p0\n * @param p1\n * @param offset\n * @protected\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n createLine(e, t, i) {\n this._linesPositions.push(e.x, e.y, e.z, e.x, e.y, e.z, t.x, t.y, t.z, t.x, t.y, t.z), this._linesNormals.push(t.x, t.y, t.z, -1, t.x, t.y, t.z, 1, e.x, e.y, e.z, -1, e.x, e.y, e.z, 1), this._linesIndices.push(i, i + 1, i + 2, i, i + 2, i + 3);\n }\n /**\n * See https://playground.babylonjs.com/#R3JR6V#1 for a visual display of the algorithm\n * @param edgePoints\n * @param indexTriangle\n * @param indices\n * @param remapVertexIndices\n */\n _tessellateTriangle(e, t, i, s) {\n const r = (P, N, F) => {\n F >= 0 && N.push(F);\n for (let $ = 0; $ < P.length; ++$)\n N.push(P[$][0]);\n };\n let n = 0;\n e[1].length >= e[0].length && e[1].length >= e[2].length ? n = 1 : e[2].length >= e[0].length && e[2].length >= e[1].length && (n = 2);\n for (let P = 0; P < 3; ++P)\n P === n ? e[P].sort((N, F) => N[1] < F[1] ? -1 : N[1] > F[1] ? 1 : 0) : e[P].sort((N, F) => N[1] > F[1] ? -1 : N[1] < F[1] ? 1 : 0);\n const o = [], l = [];\n r(e[n], o, -1);\n const h = o.length;\n for (let P = n + 2; P >= n + 1; --P)\n r(e[P % 3], l, P !== n + 2 ? s[i[t + (P + 1) % 3]] : -1);\n const c = l.length, u = 0, d = 0;\n i.push(s[i[t + n]], o[0], l[0]), i.push(s[i[t + (n + 1) % 3]], l[c - 1], o[h - 1]);\n const f = h <= c, p = f ? h : c, _ = f ? c : h, m = f ? h - 1 : c - 1, x = f ? 0 : 1;\n let v = h + c - 2, T = f ? u : d, E = f ? d : u;\n const b = f ? o : l, S = f ? l : o;\n let C = 0;\n for (; v-- > 0; ) {\n x ? i.push(b[T], S[E]) : i.push(S[E], b[T]), C += p;\n let P;\n C >= _ && T < m ? (P = b[++T], C -= _) : P = S[++E], i.push(P);\n }\n i[t + 0] = i[i.length - 3], i[t + 1] = i[i.length - 2], i[t + 2] = i[i.length - 1], i.length = i.length - 3;\n }\n _generateEdgesLinesAlternate() {\n var h, c, u, d, f, p;\n const e = this._source.getVerticesData(R.PositionKind);\n let t = this._source.getIndices();\n if (!t || !e)\n return;\n Array.isArray(t) || (t = Array.from(t));\n const i = ((h = this._options) == null ? void 0 : h.useFastVertexMerger) ?? !0, s = i ? Math.round(-Math.log(((c = this._options) == null ? void 0 : c.epsilonVertexMerge) ?? 1e-6) / Math.log(10)) : ((u = this._options) == null ? void 0 : u.epsilonVertexMerge) ?? 1e-6, r = [], n = [];\n if (i) {\n const _ = {};\n for (let m = 0; m < e.length; m += 3) {\n const x = e[m + 0], v = e[m + 1], T = e[m + 2], E = x.toFixed(s) + \"|\" + v.toFixed(s) + \"|\" + T.toFixed(s);\n if (_[E] !== void 0)\n r.push(_[E]);\n else {\n const b = m / 3;\n _[E] = b, r.push(b), n.push(b);\n }\n }\n } else\n for (let _ = 0; _ < e.length; _ += 3) {\n const m = e[_ + 0], x = e[_ + 1], v = e[_ + 2];\n let T = !1;\n for (let E = 0; E < _ && !T; E += 3) {\n const b = e[E + 0], S = e[E + 1], C = e[E + 2];\n if (Math.abs(m - b) < s && Math.abs(x - S) < s && Math.abs(v - C) < s) {\n r.push(E / 3), T = !0;\n break;\n }\n }\n T || (r.push(_ / 3), n.push(_ / 3));\n }\n if ((d = this._options) != null && d.applyTessellation) {\n const _ = ((f = this._options) == null ? void 0 : f.epsilonVertexAligned) ?? 1e-6, m = [];\n for (let x = 0; x < t.length; x += 3) {\n let v;\n for (let T = 0; T < 3; ++T) {\n const E = r[t[x + T]], b = r[t[x + (T + 1) % 3]], S = r[t[x + (T + 2) % 3]];\n if (E === b)\n continue;\n const C = e[E * 3 + 0], P = e[E * 3 + 1], N = e[E * 3 + 2], F = e[b * 3 + 0], $ = e[b * 3 + 1], j = e[b * 3 + 2], ne = Math.sqrt((F - C) * (F - C) + ($ - P) * ($ - P) + (j - N) * (j - N));\n for (let te = 0; te < n.length - 1; te++) {\n const le = n[te];\n if (le === E || le === b || le === S)\n continue;\n const _e = e[le * 3 + 0], Se = e[le * 3 + 1], Ie = e[le * 3 + 2], de = Math.sqrt((_e - C) * (_e - C) + (Se - P) * (Se - P) + (Ie - N) * (Ie - N)), Y = Math.sqrt((_e - F) * (_e - F) + (Se - $) * (Se - $) + (Ie - j) * (Ie - j));\n Math.abs(de + Y - ne) < _ && (v || (v = {\n index: x,\n edgesPoints: [[], [], []]\n }, m.push(v)), v.edgesPoints[T].push([le, de]));\n }\n }\n }\n for (let x = 0; x < m.length; ++x) {\n const v = m[x];\n this._tessellateTriangle(v.edgesPoints, v.index, t, r);\n }\n m.length = 0;\n }\n const o = {};\n for (let _ = 0; _ < t.length; _ += 3) {\n let m;\n for (let x = 0; x < 3; ++x) {\n let v = r[t[_ + x]], T = r[t[_ + (x + 1) % 3]];\n const E = r[t[_ + (x + 2) % 3]];\n if (v === T || (v === E || T === E) && ((p = this._options) != null && p.removeDegeneratedTriangles))\n continue;\n if (w.Vector3[0].copyFromFloats(e[v * 3 + 0], e[v * 3 + 1], e[v * 3 + 2]), w.Vector3[1].copyFromFloats(e[T * 3 + 0], e[T * 3 + 1], e[T * 3 + 2]), w.Vector3[2].copyFromFloats(e[E * 3 + 0], e[E * 3 + 1], e[E * 3 + 2]), m || (w.Vector3[1].subtractToRef(w.Vector3[0], w.Vector3[3]), w.Vector3[2].subtractToRef(w.Vector3[1], w.Vector3[4]), m = g.Cross(w.Vector3[3], w.Vector3[4]), m.normalize()), v > T) {\n const C = v;\n v = T, T = C;\n }\n const b = v + \"_\" + T, S = o[b];\n S ? S.done || (g.Dot(m, S.normal) < this._epsilon && this.createLine(w.Vector3[0], w.Vector3[1], this._linesPositions.length / 3), S.done = !0) : o[b] = { normal: m, done: !1, index: _, i: x };\n }\n }\n for (const _ in o) {\n const m = o[_];\n if (!m.done) {\n const x = r[t[m.index + m.i]], v = r[t[m.index + (m.i + 1) % 3]];\n w.Vector3[0].copyFromFloats(e[x * 3 + 0], e[x * 3 + 1], e[x * 3 + 2]), w.Vector3[1].copyFromFloats(e[v * 3 + 0], e[v * 3 + 1], e[v * 3 + 2]), this.createLine(w.Vector3[0], w.Vector3[1], this._linesPositions.length / 3);\n }\n }\n const l = this._source.getScene().getEngine();\n this._buffers[R.PositionKind] = new R(l, this._linesPositions, R.PositionKind, !1), this._buffers[R.NormalKind] = new R(l, this._linesNormals, R.NormalKind, !1, !1, 4), this._buffersForInstances[R.PositionKind] = this._buffers[R.PositionKind], this._buffersForInstances[R.NormalKind] = this._buffers[R.NormalKind], this._ib = l.createIndexBuffer(this._linesIndices), this._indicesCount = this._linesIndices.length;\n }\n /**\n * Generates lines edges from adjacencjes\n * @private\n */\n _generateEdgesLines() {\n const e = this._source.getVerticesData(R.PositionKind), t = this._source.getIndices();\n if (!t || !e)\n return;\n const i = [], s = [];\n let r, n;\n for (r = 0; r < t.length; r += 3) {\n n = new K4();\n const l = t[r], h = t[r + 1], c = t[r + 2];\n n.p0 = new g(e[l * 3], e[l * 3 + 1], e[l * 3 + 2]), n.p1 = new g(e[h * 3], e[h * 3 + 1], e[h * 3 + 2]), n.p2 = new g(e[c * 3], e[c * 3 + 1], e[c * 3 + 2]);\n const u = g.Cross(n.p1.subtract(n.p0), n.p2.subtract(n.p1));\n u.normalize(), s.push(u), i.push(n);\n }\n for (r = 0; r < i.length; r++) {\n n = i[r];\n for (let l = r + 1; l < i.length; l++) {\n const h = i[l];\n if (n.edgesConnectedCount === 3)\n break;\n if (h.edgesConnectedCount === 3)\n continue;\n const c = t[l * 3], u = t[l * 3 + 1], d = t[l * 3 + 2];\n for (let f = 0; f < 3; f++) {\n let p = 0;\n if (n.edges[f] === void 0) {\n switch (f) {\n case 0:\n this._checkVerticesInsteadOfIndices ? p = this._processEdgeForAdjacenciesWithVertices(n.p0, n.p1, h.p0, h.p1, h.p2) : p = this._processEdgeForAdjacencies(t[r * 3], t[r * 3 + 1], c, u, d);\n break;\n case 1:\n this._checkVerticesInsteadOfIndices ? p = this._processEdgeForAdjacenciesWithVertices(n.p1, n.p2, h.p0, h.p1, h.p2) : p = this._processEdgeForAdjacencies(t[r * 3 + 1], t[r * 3 + 2], c, u, d);\n break;\n case 2:\n this._checkVerticesInsteadOfIndices ? p = this._processEdgeForAdjacenciesWithVertices(n.p2, n.p0, h.p0, h.p1, h.p2) : p = this._processEdgeForAdjacencies(t[r * 3 + 2], t[r * 3], c, u, d);\n break;\n }\n if (p !== -1 && (n.edges[f] = l, h.edges[p] = r, n.edgesConnectedCount++, h.edgesConnectedCount++, n.edgesConnectedCount === 3))\n break;\n }\n }\n }\n }\n for (r = 0; r < i.length; r++) {\n const l = i[r];\n this._checkEdge(r, l.edges[0], s, l.p0, l.p1), this._checkEdge(r, l.edges[1], s, l.p1, l.p2), this._checkEdge(r, l.edges[2], s, l.p2, l.p0);\n }\n const o = this._source.getScene().getEngine();\n this._buffers[R.PositionKind] = new R(o, this._linesPositions, R.PositionKind, !1), this._buffers[R.NormalKind] = new R(o, this._linesNormals, R.NormalKind, !1, !1, 4), this._buffersForInstances[R.PositionKind] = this._buffers[R.PositionKind], this._buffersForInstances[R.NormalKind] = this._buffers[R.NormalKind], this._ib = o.createIndexBuffer(this._linesIndices), this._indicesCount = this._linesIndices.length;\n }\n /**\n * Checks whether or not the edges renderer is ready to render.\n * @returns true if ready, otherwise false.\n */\n isReady() {\n return this._lineShader.isReady(this._source, this._source.hasInstances && this.customInstances.length > 0 || this._source.hasThinInstances);\n }\n /**\n * Renders the edges of the attached mesh,\n */\n render() {\n const e = this._source.getScene(), t = this._lineShader._getDrawWrapper();\n if (this._drawWrapper && this._lineShader._setDrawWrapper(this._drawWrapper), !this.isReady() || !e.activeCamera) {\n this._lineShader._setDrawWrapper(t);\n return;\n }\n const i = this._source.hasInstances && this.customInstances.length > 0, s = i || this._source.hasThinInstances;\n let r = 0;\n if (s)\n if (this._buffersForInstances.world0 = this._source.getVertexBuffer(\"world0\"), this._buffersForInstances.world1 = this._source.getVertexBuffer(\"world1\"), this._buffersForInstances.world2 = this._source.getVertexBuffer(\"world2\"), this._buffersForInstances.world3 = this._source.getVertexBuffer(\"world3\"), i) {\n const o = this._source._instanceDataStorage;\n if (r = this.customInstances.length, !o.instancesData) {\n this._source.getScene()._activeMeshesFrozen || this.customInstances.reset();\n return;\n }\n if (!o.isFrozen) {\n let l = 0;\n for (let h = 0; h < r; ++h)\n this.customInstances.data[h].copyToArray(o.instancesData, l), l += 16;\n o.instancesBuffer.updateDirectly(o.instancesData, 0, r);\n }\n } else\n r = this._source.thinInstanceCount;\n const n = e.getEngine();\n this._lineShader._preBind(), this._source.edgesColor.a !== 1 ? n.setAlphaMode(2) : n.setAlphaMode(0), n.bindBuffers(s ? this._buffersForInstances : this._buffers, this._ib, this._lineShader.getEffect()), e.resetCachedMaterial(), this._lineShader.setColor4(\"color\", this._source.edgesColor), e.activeCamera.mode === Fe.ORTHOGRAPHIC_CAMERA ? this._lineShader.setFloat(\"width\", this._source.edgesWidth / this.edgesWidthScalerForOrthographic) : this._lineShader.setFloat(\"width\", this._source.edgesWidth / this.edgesWidthScalerForPerspective), this._lineShader.setFloat(\"aspectRatio\", n.getAspectRatio(e.activeCamera)), this._lineShader.bind(this._source.getWorldMatrix(), this._source), n.drawElementsType(ue.TriangleFillMode, 0, this._indicesCount, r), this._lineShader.unbind(), s && n.unbindInstanceAttributes(), this._source.getScene()._activeMeshesFrozen || this.customInstances.reset(), this._lineShader._setDrawWrapper(t);\n }\n}\nclass q4 extends _m {\n /**\n * This constructor turns off auto generating edges line in Edges Renderer to make it here.\n * @param source LineMesh used to generate edges\n * @param epsilon not important (specified angle for edge detection)\n * @param checkVerticesInsteadOfIndices not important for LineMesh\n */\n constructor(e, t = 0.95, i = !1) {\n super(e, t, i, !1), this._generateEdgesLines();\n }\n /**\n * Generate edges for each line in LinesMesh. Every Line should be rendered as edge.\n */\n _generateEdgesLines() {\n const e = this._source.getVerticesData(R.PositionKind), t = this._source.getIndices();\n if (!t || !e)\n return;\n const i = w.Vector3[0], s = w.Vector3[1], r = t.length - 1;\n for (let o = 0, l = 0; o < r; o += 2, l += 4)\n g.FromArrayToRef(e, 3 * t[o], i), g.FromArrayToRef(e, 3 * t[o + 1], s), this.createLine(i, s, l);\n const n = this._source.getScene().getEngine();\n this._buffers[R.PositionKind] = new R(n, this._linesPositions, R.PositionKind, !1), this._buffers[R.NormalKind] = new R(n, this._linesNormals, R.NormalKind, !1, !1, 4), this._ib = n.createIndexBuffer(this._linesIndices), this._indicesCount = this._linesIndices.length;\n }\n}\nclass Q4 extends Oo {\n constructor(e, t, i, s, r, n) {\n super(e, i, s, r, n), this._beforeCompositionPostProcesses = [], this._internalTextureDirty = !1, this.enabled = !1, this.renderTargetTexture = null, this.renderTargetTexture = t;\n }\n /**\n * Creates a composition effect for this RT\n * @internal\n */\n _createCompositionEffect() {\n this.imageProcessingPostProcess = new Zv(\"prePassComposition\", 1, null, void 0, this._engine), this.imageProcessingPostProcess._updateParameters();\n }\n /**\n * Checks that the size of this RT is still adapted to the desired render size.\n * @internal\n */\n _checkSize() {\n const e = this._engine.getRenderWidth(!0), t = this._engine.getRenderHeight(!0), i = this.getRenderWidth(), s = this.getRenderHeight();\n (i !== e || s !== t) && (this.resize({ width: e, height: t }), this._internalTextureDirty = !0);\n }\n /**\n * Changes the number of render targets in this MRT\n * Be careful as it will recreate all the data in the new texture.\n * @param count new texture count\n * @param options Specifies texture types and sampling modes for new textures\n * @param textureNames Specifies the names of the textures (optional)\n */\n updateCount(e, t, i) {\n super.updateCount(e, t, i), this._internalTextureDirty = !0;\n }\n /**\n * Resets the post processes chains applied to this RT.\n * @internal\n */\n _resetPostProcessChain() {\n this._beforeCompositionPostProcesses.length = 0;\n }\n /**\n * Diposes this render target\n */\n dispose() {\n const e = this._scene;\n if (super.dispose(), e && e.prePassRenderer) {\n const t = e.prePassRenderer.renderTargets.indexOf(this);\n t !== -1 && e.prePassRenderer.renderTargets.splice(t, 1);\n }\n this.imageProcessingPostProcess && this.imageProcessingPostProcess.dispose(), this.renderTargetTexture && (this.renderTargetTexture._prePassRenderTarget = null), this._outputPostProcess && (this._outputPostProcess.autoClear = !0, this._outputPostProcess.restoreDefaultInputTexture());\n }\n}\nclass sr {\n /**\n * Indicates if the prepass renderer is generating normals in world space or camera space (default: camera space)\n */\n get generateNormalsInWorldSpace() {\n return this._generateNormalsInWorldSpace;\n }\n set generateNormalsInWorldSpace(e) {\n this._generateNormalsInWorldSpace !== e && (this._generateNormalsInWorldSpace = e, this._markAllMaterialsAsPrePassDirty());\n }\n /**\n * Returns the index of a texture in the multi render target texture array.\n * @param type Texture type\n * @returns The index\n */\n getIndex(e) {\n return this._textureIndices[e];\n }\n /**\n * How many samples are used for MSAA of the scene render target\n */\n get samples() {\n return this.defaultRT.samples;\n }\n set samples(e) {\n this.defaultRT.samples = e;\n }\n /**\n * If set to true (default: false), the depth texture will be cleared with the depth value corresponding to the far plane (1 in normal mode, 0 in reverse depth buffer mode)\n * If set to false, the depth texture is always cleared with 0.\n */\n get useSpecificClearForDepthTexture() {\n return this._useSpecificClearForDepthTexture;\n }\n set useSpecificClearForDepthTexture(e) {\n this._useSpecificClearForDepthTexture !== e && (this._useSpecificClearForDepthTexture = e, this._isDirty = !0);\n }\n /**\n * @returns the prepass render target for the rendering pass.\n * If we are currently rendering a render target, it returns the PrePassRenderTarget\n * associated with that render target. Otherwise, it returns the scene default PrePassRenderTarget\n */\n getRenderTarget() {\n return this._currentTarget;\n }\n /**\n * @internal\n * Managed by the scene component\n * @param prePassRenderTarget\n */\n _setRenderTarget(e) {\n var t;\n e ? this._currentTarget = e : (this._currentTarget = this.defaultRT, this._engine.currentRenderPassId = ((t = this._scene.activeCamera) == null ? void 0 : t.renderPassId) ?? this._currentTarget.renderPassId);\n }\n /**\n * Returns true if the currently rendered prePassRenderTarget is the one\n * associated with the scene.\n */\n get currentRTisSceneRT() {\n return this._currentTarget === this.defaultRT;\n }\n _refreshGeometryBufferRendererLink() {\n if (this.doNotUseGeometryRendererFallback)\n this._geometryBuffer && this._geometryBuffer._unlinkPrePassRenderer(), this._geometryBuffer = null, this._scene.disableGeometryBufferRenderer();\n else {\n if (this._geometryBuffer = this._scene.enableGeometryBufferRenderer(), !this._geometryBuffer) {\n this.doNotUseGeometryRendererFallback = !0;\n return;\n }\n this._geometryBuffer._linkPrePassRenderer(this);\n }\n }\n /**\n * Indicates if the prepass is enabled\n */\n get enabled() {\n return this._enabled;\n }\n /**\n * Instantiates a prepass renderer\n * @param scene The scene\n */\n constructor(e) {\n this.excludedSkinnedMesh = [], this.excludedMaterials = [], this.mrtCount = 0, this._mrtTypes = [], this._mrtFormats = [], this._mrtLayout = [], this._mrtNames = [], this._textureIndices = [], this._generateNormalsInWorldSpace = !1, this._useSpecificClearForDepthTexture = !1, this._isDirty = !0, this._effectConfigurations = [], this.doNotUseGeometryRendererFallback = !0, this.renderTargets = [], this._clearColor = new Ce(0, 0, 0, 0), this._clearDepthColor = new Ce(1e8, 0, 0, 1), this._enabled = !1, this._needsCompositionForThisPass = !1, this.disableGammaTransform = !1, this._scene = e, this._engine = e.getEngine();\n let t = 0;\n this._engine._caps.textureFloat && this._engine._caps.textureFloatLinearFiltering ? t = 1 : this._engine._caps.textureHalfFloat && this._engine._caps.textureHalfFloatLinearFiltering && (t = 2);\n for (let i = 0; i < sr.TextureFormats.length; ++i) {\n const s = sr.TextureFormats[i].format;\n sr.TextureFormats[i].type === 1 && (sr.TextureFormats[5].type = t, (s === 6 || s === 7 || s === 5) && !this._engine._caps.supportFloatTexturesResolve && (sr.TextureFormats[5].type = 2));\n }\n sr._SceneComponentInitialization(this._scene), this.defaultRT = this._createRenderTarget(\"sceneprePassRT\", null), this._currentTarget = this.defaultRT;\n }\n /**\n * Creates a new PrePassRenderTarget\n * This should be the only way to instantiate a `PrePassRenderTarget`\n * @param name Name of the `PrePassRenderTarget`\n * @param renderTargetTexture RenderTarget the `PrePassRenderTarget` will be attached to.\n * Can be `null` if the created `PrePassRenderTarget` is attached to the scene (default framebuffer).\n * @internal\n */\n _createRenderTarget(e, t) {\n const i = new Q4(e, t, { width: this._engine.getRenderWidth(), height: this._engine.getRenderHeight() }, 0, this._scene, {\n generateMipMaps: !1,\n generateStencilBuffer: this._engine.isStencilEnable,\n defaultType: 0,\n types: [],\n drawOnlyOnFirstAttachmentByDefault: !0\n });\n return this.renderTargets.push(i), this._enabled && this._update(), i;\n }\n /**\n * Indicates if rendering a prepass is supported\n */\n get isSupported() {\n return this._scene.getEngine().getCaps().drawBuffersExtension;\n }\n /**\n * Sets the proper output textures to draw in the engine.\n * @param effect The effect that is drawn. It can be or not be compatible with drawing to several output textures.\n * @param subMesh Submesh on which the effect is applied\n */\n bindAttachmentsForEffect(e, t) {\n const i = t.getMaterial(), s = i && i.isPrePassCapable, r = i && this.excludedMaterials.indexOf(i) !== -1;\n this.enabled && this._currentTarget.enabled && (e._multiTarget && s && !r ? this._engine.bindAttachments(this._multiRenderAttachments) : (this._engine._currentRenderTarget ? this._engine.bindAttachments(this._defaultAttachments) : this._engine.restoreSingleAttachment(), this._geometryBuffer && this.currentRTisSceneRT && !r && this._geometryBuffer.renderList.push(t.getRenderingMesh())));\n }\n _reinitializeAttachments() {\n const e = [], t = [!1], i = [!1], s = [!0];\n for (let r = 0; r < this.mrtCount; r++)\n e.push(!0), r > 0 && (this._useSpecificClearForDepthTexture && this._mrtLayout[r] === 5 ? (t.push(!1), i.push(!0)) : (t.push(!0), i.push(!1)), s.push(!1));\n this._multiRenderAttachments = this._engine.buildTextureLayout(e), this._clearAttachments = this._engine.buildTextureLayout(t), this._clearDepthAttachments = this._engine.buildTextureLayout(i), this._defaultAttachments = this._engine.buildTextureLayout(s);\n }\n _resetLayout() {\n for (let e = 0; e < sr.TextureFormats.length; e++)\n this._textureIndices[sr.TextureFormats[e].purpose] = -1;\n this._textureIndices[4] = 0, this._mrtLayout = [4], this._mrtTypes = [sr.TextureFormats[4].type], this._mrtFormats = [sr.TextureFormats[4].format], this._mrtNames = [sr.TextureFormats[4].name], this.mrtCount = 1;\n }\n _updateGeometryBufferLayout() {\n if (this._refreshGeometryBufferRendererLink(), this._geometryBuffer) {\n this._geometryBuffer._resetLayout();\n const e = [];\n for (let i = 0; i < this._mrtLayout.length; i++)\n e.push(!1);\n this._geometryBuffer._linkInternalTexture(this.defaultRT.getInternalTexture());\n const t = [\n {\n prePassConstant: 5,\n geometryBufferConstant: Et.DEPTH_TEXTURE_TYPE\n },\n {\n prePassConstant: 6,\n geometryBufferConstant: Et.NORMAL_TEXTURE_TYPE\n },\n {\n prePassConstant: 1,\n geometryBufferConstant: Et.POSITION_TEXTURE_TYPE\n },\n {\n prePassConstant: 3,\n geometryBufferConstant: Et.REFLECTIVITY_TEXTURE_TYPE\n },\n {\n prePassConstant: 2,\n geometryBufferConstant: Et.VELOCITY_TEXTURE_TYPE\n }\n ];\n for (let i = 0; i < t.length; i++) {\n const s = this._mrtLayout.indexOf(t[i].prePassConstant);\n s !== -1 && (this._geometryBuffer._forceTextureType(t[i].geometryBufferConstant, s), e[s] = !0);\n }\n this._geometryBuffer._setAttachments(this._engine.buildTextureLayout(e));\n }\n }\n /**\n * Restores attachments for single texture draw.\n */\n restoreAttachments() {\n this.enabled && this._currentTarget.enabled && this._defaultAttachments && (this._engine._currentRenderTarget ? this._engine.bindAttachments(this._defaultAttachments) : this._engine.restoreSingleAttachment());\n }\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _beforeDraw(e, t, i) {\n this._isDirty && this._update(), !(!this._enabled || !this._currentTarget.enabled) && (this._geometryBuffer && (this._geometryBuffer.renderList = []), this._setupOutputForThisPass(this._currentTarget, e));\n }\n _prepareFrame(e, t, i) {\n e.renderTargetTexture ? e.renderTargetTexture._prepareFrame(this._scene, t, i, e.renderTargetTexture.useCameraPostProcesses) : this._postProcessesSourceForThisPass.length ? this._scene.postProcessManager._prepareFrame() : this._engine.restoreDefaultFramebuffer();\n }\n /**\n * Sets an intermediary texture between prepass and postprocesses. This texture\n * will be used as input for post processes\n * @param rt The render target texture to use\n * @returns true if there are postprocesses that will use this texture,\n * false if there is no postprocesses - and the function has no effect\n */\n setCustomOutput(e) {\n const t = this._postProcessesSourceForThisPass[0];\n return t ? (t.inputTexture = e.renderTarget, !0) : !1;\n }\n _renderPostProcesses(e, t) {\n var n;\n const i = this._postProcessesSourceForThisPass[0], s = i ? i.inputTexture : e.renderTargetTexture ? e.renderTargetTexture.renderTarget : null;\n let r = this._currentTarget._beforeCompositionPostProcesses;\n this._needsCompositionForThisPass && (r = r.concat([this._currentTarget.imageProcessingPostProcess])), r.length && (this._scene.postProcessManager._prepareFrame((n = this._currentTarget.renderTarget) == null ? void 0 : n.texture, r), this._scene.postProcessManager.directRender(r, s, !1, t));\n }\n /**\n * @internal\n */\n _afterDraw(e, t) {\n this._enabled && this._currentTarget.enabled && (this._prepareFrame(this._currentTarget, e, t), this._renderPostProcesses(this._currentTarget, e));\n }\n /**\n * Clears the current prepass render target (in the sense of settings pixels to the scene clear color value)\n * @internal\n */\n _clear() {\n this._isDirty && this._update(), this._enabled && this._currentTarget.enabled && (this._bindFrameBuffer(), this._engine.bindAttachments(this._clearAttachments), this._engine.clear(this._clearColor, !0, !1, !1), this._useSpecificClearForDepthTexture && (this._engine.bindAttachments(this._clearDepthAttachments), this._engine.clear(this._clearDepthColor, !0, !1, !1)), this._engine.bindAttachments(this._defaultAttachments));\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _bindFrameBuffer() {\n if (this._enabled && this._currentTarget.enabled) {\n this._currentTarget._checkSize();\n const e = this._currentTarget.renderTarget;\n e && this._engine.bindFramebuffer(e);\n }\n }\n _setEnabled(e) {\n this._enabled = e;\n }\n _setRenderTargetEnabled(e, t) {\n e.enabled = t, t || this._unlinkInternalTexture(e);\n }\n /**\n * Adds an effect configuration to the prepass render target.\n * If an effect has already been added, it won't add it twice and will return the configuration\n * already present.\n * @param cfg the effect configuration\n * @returns the effect configuration now used by the prepass\n */\n addEffectConfiguration(e) {\n for (let t = 0; t < this._effectConfigurations.length; t++)\n if (this._effectConfigurations[t].name === e.name)\n return this._effectConfigurations[t];\n return this._effectConfigurations.push(e), e;\n }\n /**\n * Retrieves an effect configuration by name\n * @param name the name of the effect configuration\n * @returns the effect configuration, or null if not present\n */\n getEffectConfiguration(e) {\n for (let t = 0; t < this._effectConfigurations.length; t++)\n if (this._effectConfigurations[t].name === e)\n return this._effectConfigurations[t];\n return null;\n }\n _enable() {\n const e = this.mrtCount;\n for (let t = 0; t < this._effectConfigurations.length; t++)\n this._effectConfigurations[t].enabled && this._enableTextures(this._effectConfigurations[t].texturesRequired);\n for (let t = 0; t < this.renderTargets.length; t++) {\n (this.mrtCount !== e || this.renderTargets[t].count !== this.mrtCount) && this.renderTargets[t].updateCount(this.mrtCount, { types: this._mrtTypes, formats: this._mrtFormats }, this._mrtNames.concat(\"prePass_DepthBuffer\")), this.renderTargets[t]._resetPostProcessChain();\n for (let i = 0; i < this._effectConfigurations.length; i++)\n this._effectConfigurations[i].enabled && (!this._effectConfigurations[i].postProcess && this._effectConfigurations[i].createPostProcess && this._effectConfigurations[i].createPostProcess(), this._effectConfigurations[i].postProcess && this.renderTargets[t]._beforeCompositionPostProcesses.push(this._effectConfigurations[i].postProcess));\n }\n this._reinitializeAttachments(), this._setEnabled(!0), this._updateGeometryBufferLayout();\n }\n _disable() {\n this._setEnabled(!1);\n for (let e = 0; e < this.renderTargets.length; e++)\n this._setRenderTargetEnabled(this.renderTargets[e], !1);\n this._resetLayout();\n for (let e = 0; e < this._effectConfigurations.length; e++)\n this._effectConfigurations[e].enabled = !1;\n }\n _getPostProcessesSource(e, t) {\n if (t)\n return t._postProcesses;\n if (e.renderTargetTexture)\n if (e.renderTargetTexture.useCameraPostProcesses) {\n const i = e.renderTargetTexture.activeCamera ? e.renderTargetTexture.activeCamera : this._scene.activeCamera;\n return i ? i._postProcesses : [];\n } else return e.renderTargetTexture.postProcesses ? e.renderTargetTexture.postProcesses : [];\n else\n return this._scene.activeCamera ? this._scene.activeCamera._postProcesses : [];\n }\n _setupOutputForThisPass(e, t) {\n const i = t && this._scene.activeCameras && !!this._scene.activeCameras.length && this._scene.activeCameras.indexOf(t) !== 0;\n this._postProcessesSourceForThisPass = this._getPostProcessesSource(e, t), this._postProcessesSourceForThisPass = this._postProcessesSourceForThisPass.filter((l) => l != null), this._scene.autoClear = !0;\n const s = this._hasImageProcessing(this._postProcessesSourceForThisPass);\n this._needsCompositionForThisPass = !s && !this.disableGammaTransform && this._needsImageProcessing() && !i;\n const r = this._getFirstPostProcess(this._postProcessesSourceForThisPass), n = e._beforeCompositionPostProcesses && e._beforeCompositionPostProcesses[0];\n let o = null;\n this._scene.imageProcessingConfiguration.applyByPostProcess = this._needsCompositionForThisPass || s, this._needsCompositionForThisPass && !e.imageProcessingPostProcess && e._createCompositionEffect(), n ? o = n : this._needsCompositionForThisPass ? o = e.imageProcessingPostProcess : r && (o = r), this._bindFrameBuffer(), this._linkInternalTexture(e, o);\n }\n _linkInternalTexture(e, t) {\n t && (t.autoClear = !1, t.inputTexture = e.renderTarget), e._outputPostProcess !== t && (e._outputPostProcess && this._unlinkInternalTexture(e), e._outputPostProcess = t), e._internalTextureDirty && (this._updateGeometryBufferLayout(), e._internalTextureDirty = !1);\n }\n /**\n * @internal\n */\n _unlinkInternalTexture(e) {\n e._outputPostProcess && (e._outputPostProcess.autoClear = !0, e._outputPostProcess.restoreDefaultInputTexture(), e._outputPostProcess = null);\n }\n _needsImageProcessing() {\n for (let e = 0; e < this._effectConfigurations.length; e++)\n if (this._effectConfigurations[e].enabled && this._effectConfigurations[e].needsImageProcessing)\n return !0;\n return !1;\n }\n _hasImageProcessing(e) {\n var i;\n let t = !1;\n if (e) {\n for (let s = 0; s < e.length; s++)\n if (((i = e[s]) == null ? void 0 : i.getClassName()) === \"ImageProcessingPostProcess\") {\n t = !0;\n break;\n }\n }\n return t;\n }\n /**\n * Internal, gets the first post proces.\n * @param postProcesses\n * @returns the first post process to be run on this camera.\n */\n _getFirstPostProcess(e) {\n for (let t = 0; t < e.length; t++)\n if (e[t] !== null)\n return e[t];\n return null;\n }\n /**\n * Marks the prepass renderer as dirty, triggering a check if the prepass is necessary for the next rendering.\n */\n markAsDirty() {\n this._isDirty = !0;\n }\n /**\n * Enables a texture on the MultiRenderTarget for prepass\n * @param types\n */\n _enableTextures(e) {\n this._scene.needsPreviousWorldMatrices = !1;\n for (let t = 0; t < e.length; t++) {\n const i = e[t];\n this._textureIndices[i] === -1 && (this._textureIndices[i] = this._mrtLayout.length, this._mrtLayout.push(i), this._mrtTypes.push(sr.TextureFormats[i].type), this._mrtFormats.push(sr.TextureFormats[i].format), this._mrtNames.push(sr.TextureFormats[i].name), this.mrtCount++), i === 2 && (this._scene.needsPreviousWorldMatrices = !0);\n }\n }\n /**\n * Makes sure that the prepass renderer is up to date if it has been dirtified.\n */\n update() {\n this._isDirty && this._update();\n }\n _update() {\n this._disable();\n let e = !1;\n this._scene.imageProcessingConfiguration.applyByPostProcess = !1, this._scene._depthPeelingRenderer && this._scene.useOrderIndependentTransparency && (this._scene._depthPeelingRenderer.setPrePassRenderer(this), e = !0);\n for (let i = 0; i < this._scene.materials.length; i++)\n this._scene.materials[i].setPrePassRenderer(this) && (e = !0);\n e && this._setRenderTargetEnabled(this.defaultRT, !0);\n let t;\n for (let i = 0; i < this.renderTargets.length; i++) {\n if (this.renderTargets[i].renderTargetTexture)\n t = this._getPostProcessesSource(this.renderTargets[i]);\n else {\n const s = this._scene.activeCamera;\n if (!s)\n continue;\n t = s._postProcesses;\n }\n if (t && (t = t.filter((s) => s != null), t)) {\n for (let s = 0; s < t.length; s++)\n t[s].setPrePassRenderer(this) && (this._setRenderTargetEnabled(this.renderTargets[i], !0), e = !0);\n this._hasImageProcessing(t) && (this._scene.imageProcessingConfiguration.applyByPostProcess = !0);\n }\n }\n this._markAllMaterialsAsPrePassDirty(), this._isDirty = !1, e && this._enable();\n }\n _markAllMaterialsAsPrePassDirty() {\n const e = this._scene.materials;\n for (let t = 0; t < e.length; t++)\n e[t].markAsDirty(ue.PrePassDirtyFlag);\n }\n /**\n * Disposes the prepass renderer.\n */\n dispose() {\n for (let e = this.renderTargets.length - 1; e >= 0; e--)\n this.renderTargets[e].dispose();\n for (let e = 0; e < this._effectConfigurations.length; e++)\n this._effectConfigurations[e].dispose && this._effectConfigurations[e].dispose();\n }\n}\nsr._SceneComponentInitialization = (a) => {\n throw $e(\"PrePassRendererSceneComponent\");\n};\nsr.TextureFormats = [\n {\n purpose: 0,\n type: 2,\n format: 5,\n name: \"prePass_Irradiance\"\n },\n {\n purpose: 1,\n type: 2,\n format: 5,\n name: \"prePass_Position\"\n },\n {\n purpose: 2,\n type: 0,\n format: 5,\n name: \"prePass_Velocity\"\n },\n {\n purpose: 3,\n type: 0,\n format: 5,\n name: \"prePass_Reflectivity\"\n },\n {\n purpose: 4,\n type: 2,\n format: 5,\n name: \"prePass_Color\"\n },\n {\n purpose: 5,\n type: 1,\n format: 6,\n name: \"prePass_Depth\"\n },\n {\n purpose: 6,\n type: 2,\n format: 5,\n name: \"prePass_Normal\"\n },\n {\n purpose: 7,\n type: 0,\n format: 5,\n name: \"prePass_Albedo\"\n }\n];\nObject.defineProperty(De.prototype, \"prePassRenderer\", {\n get: function() {\n return this._prePassRenderer;\n },\n set: function(a) {\n a && a.isSupported && (this._prePassRenderer = a);\n },\n enumerable: !0,\n configurable: !0\n});\nDe.prototype.enablePrePassRenderer = function() {\n return this._prePassRenderer ? this._prePassRenderer : (this._prePassRenderer = new sr(this), this._prePassRenderer.isSupported || (this._prePassRenderer = null, L.Error(`PrePassRenderer needs WebGL 2 support.\nMaybe you tried to use the following features that need the PrePassRenderer :\n + Subsurface Scattering`)), this._prePassRenderer);\n};\nDe.prototype.disablePrePassRenderer = function() {\n this._prePassRenderer && (this._prePassRenderer.dispose(), this._prePassRenderer = null);\n};\nclass Z4 {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_PREPASSRENDERER, this.scene = e;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._beforeCameraDrawStage.registerStep(me.STEP_BEFORECAMERADRAW_PREPASS, this, this._beforeCameraDraw), this.scene._afterCameraDrawStage.registerStep(me.STEP_AFTERCAMERADRAW_PREPASS, this, this._afterCameraDraw), this.scene._beforeRenderTargetDrawStage.registerStep(me.STEP_BEFORERENDERTARGETDRAW_PREPASS, this, this._beforeRenderTargetDraw), this.scene._afterRenderTargetDrawStage.registerStep(me.STEP_AFTERCAMERADRAW_PREPASS, this, this._afterRenderTargetDraw), this.scene._beforeClearStage.registerStep(me.STEP_BEFORECLEAR_PREPASS, this, this._beforeClearStage), this.scene._beforeRenderTargetClearStage.registerStep(me.STEP_BEFORERENDERTARGETCLEAR_PREPASS, this, this._beforeRenderTargetClearStage), this.scene._beforeRenderingMeshStage.registerStep(me.STEP_BEFORERENDERINGMESH_PREPASS, this, this._beforeRenderingMeshStage), this.scene._afterRenderingMeshStage.registerStep(me.STEP_AFTERRENDERINGMESH_PREPASS, this, this._afterRenderingMeshStage);\n }\n _beforeRenderTargetDraw(e, t, i) {\n this.scene.prePassRenderer && !e.noPrePassRenderer && (this.scene.prePassRenderer._setRenderTarget(e._prePassRenderTarget), this.scene.prePassRenderer._beforeDraw(void 0, t, i));\n }\n _afterRenderTargetDraw(e, t, i) {\n this.scene.prePassRenderer && !e.noPrePassRenderer && this.scene.prePassRenderer._afterDraw(t, i);\n }\n _beforeRenderTargetClearStage(e) {\n this.scene.prePassRenderer && !e.noPrePassRenderer && (e._prePassRenderTarget || (e._prePassRenderTarget = this.scene.prePassRenderer._createRenderTarget(e.name + \"_prePassRTT\", e)), this.scene.prePassRenderer._setRenderTarget(e._prePassRenderTarget), this.scene.prePassRenderer._clear());\n }\n _beforeCameraDraw(e) {\n this.scene.prePassRenderer && (this.scene.prePassRenderer._setRenderTarget(null), this.scene.prePassRenderer._beforeDraw(e));\n }\n _afterCameraDraw() {\n this.scene.prePassRenderer && this.scene.prePassRenderer._afterDraw();\n }\n _beforeClearStage() {\n this.scene.prePassRenderer && (this.scene.prePassRenderer._setRenderTarget(null), this.scene.prePassRenderer._clear());\n }\n _beforeRenderingMeshStage(e, t, i, s) {\n if (!s)\n return;\n const r = e.getScene();\n r.prePassRenderer && r.prePassRenderer.bindAttachmentsForEffect(s, t);\n }\n _afterRenderingMeshStage(e) {\n const t = e.getScene();\n t.prePassRenderer && t.prePassRenderer.restoreAttachments();\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n this.scene.disablePrePassRenderer();\n }\n}\nsr._SceneComponentInitialization = (a) => {\n let e = a._getComponent(me.NAME_PREPASSRENDERER);\n e || (e = new Z4(a), a._addComponent(e));\n};\nconst J4 = \"fibonacci\", eW = `#define rcp(x) 1./x\n#define GOLDEN_RATIO 1.618033988749895\n#define TWO_PI 6.2831855\nvec2 Golden2dSeq(int i,float n)\n{return vec2(float(i)/n+(0.5/n),fract(float(i)*rcp(GOLDEN_RATIO)));}\nvec2 SampleDiskGolden(int i,int sampleCount)\n{vec2 f=Golden2dSeq(i,float(sampleCount));return vec2(sqrt(f.x),TWO_PI*f.y);}`;\nz.IncludesShadersStore[J4] = eW;\nconst tW = \"diffusionProfile\", iW = \"uniform vec3 diffusionS[5];uniform float diffusionD[5];uniform float filterRadii[5];\";\nz.IncludesShadersStore[tW] = iW;\nconst sW = \"subSurfaceScatteringPixelShader\", rW = `#include\n#include\n#include\n#include\nvarying vec2 vUV;uniform vec2 texelSize;uniform sampler2D textureSampler;uniform sampler2D irradianceSampler;uniform sampler2D depthSampler;uniform sampler2D albedoSampler;uniform vec2 viewportSize;uniform float metersPerUnit;const float LOG2_E=1.4426950408889634;const float SSS_PIXELS_PER_SAMPLE=4.;const int _SssSampleBudget=40;\n#define rcp(x) 1./x\n#define Sq(x) x*x\n#define SSS_BILATERAL_FILTER true\nvec3 EvalBurleyDiffusionProfile(float r,vec3 S)\n{vec3 exp_13=exp2(((LOG2_E*(-1.0/3.0))*r)*S); \nvec3 expSum=exp_13*(1.+exp_13*exp_13); \nreturn (S*rcp(8.*PI))*expSum; }\nvec2 SampleBurleyDiffusionProfile(float u,float rcpS)\n{u=1.-u; \nfloat g=1.+(4.*u)*(2.*u+sqrt(1.+(4.*u)*u));float n=exp2(log2(g)*(-1.0/3.0)); \nfloat p=(g*n)*n; \nfloat c=1.+p+n; \nfloat d=(3./LOG2_E*2.)+(3./LOG2_E)*log2(u); \nfloat x=(3./LOG2_E)*log2(c)-d; \nfloat rcpExp=((c*c)*c)*rcp((4.*u)*((c*c)+(4.*u)*(4.*u)));float r=x*rcpS;float rcpPdf=(8.*PI*rcpS)*rcpExp; \nreturn vec2(r,rcpPdf);}\nvec3 ComputeBilateralWeight(float xy2,float z,float mmPerUnit,vec3 S,float rcpPdf)\n{\n#ifndef SSS_BILATERAL_FILTER\nz=0.;\n#endif\nfloat r=sqrt(xy2+(z*mmPerUnit)*(z*mmPerUnit));float area=rcpPdf;\n#if SSS_CLAMP_ARTIFACT\nreturn clamp(EvalBurleyDiffusionProfile(r,S)*area,0.0,1.0);\n#else\nreturn EvalBurleyDiffusionProfile(r,S)*area;\n#endif\n}\nvoid EvaluateSample(int i,int n,vec3 S,float d,vec3 centerPosVS,float mmPerUnit,float pixelsPerMm,\nfloat phase,inout vec3 totalIrradiance,inout vec3 totalWeight)\n{float scale =rcp(float(n));float offset=rcp(float(n))*0.5;float sinPhase,cosPhase;sinPhase=sin(phase);cosPhase=cos(phase);vec2 bdp=SampleBurleyDiffusionProfile(float(i)*scale+offset,d);float r=bdp.x;float rcpPdf=bdp.y;float phi=SampleDiskGolden(i,n).y;float sinPhi,cosPhi;sinPhi=sin(phi);cosPhi=cos(phi);float sinPsi=cosPhase*sinPhi+sinPhase*cosPhi; \nfloat cosPsi=cosPhase*cosPhi-sinPhase*sinPhi; \nvec2 vec=r*vec2(cosPsi,sinPsi);vec2 position; \nfloat xy2;position=vUV+round((pixelsPerMm*r)*vec2(cosPsi,sinPsi))*texelSize;xy2 =r*r;vec4 textureSample=texture2D(irradianceSampler,position);float viewZ=texture2D(depthSampler,position).r;vec3 irradiance =textureSample.rgb;if (testLightingForSSS(textureSample.a))\n{float relZ=viewZ-centerPosVS.z;vec3 weight=ComputeBilateralWeight(xy2,relZ,mmPerUnit,S,rcpPdf);totalIrradiance+=weight*irradiance;totalWeight +=weight;}\nelse\n{}}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{vec4 irradianceAndDiffusionProfile =texture2D(irradianceSampler,vUV);vec3 centerIrradiance=irradianceAndDiffusionProfile.rgb;int diffusionProfileIndex=int(round(irradianceAndDiffusionProfile.a*255.));float centerDepth =0.;vec4 inputColor=texture2D(textureSampler,vUV);bool passedStencilTest=testLightingForSSS(irradianceAndDiffusionProfile.a);if (passedStencilTest)\n{centerDepth=texture2D(depthSampler,vUV).r;}\nif (!passedStencilTest) { \ngl_FragColor=inputColor;return;}\nfloat distScale =1.;vec3 S =diffusionS[diffusionProfileIndex];float d =diffusionD[diffusionProfileIndex];float filterRadius=filterRadii[diffusionProfileIndex];vec2 centerPosNDC=vUV;vec2 cornerPosNDC=vUV+0.5*texelSize;vec3 centerPosVS =vec3(centerPosNDC*viewportSize,1.0)*centerDepth; \nvec3 cornerPosVS =vec3(cornerPosNDC*viewportSize,1.0)*centerDepth; \nfloat mmPerUnit =1000.*(metersPerUnit*rcp(distScale));float unitsPerMm=rcp(mmPerUnit);float unitsPerPixel=2.*abs(cornerPosVS.x-centerPosVS.x);float pixelsPerMm =rcp(unitsPerPixel)*unitsPerMm;float filterArea =PI*Sq(filterRadius*pixelsPerMm);int sampleCount =int(filterArea*rcp(SSS_PIXELS_PER_SAMPLE));int sampleBudget=_SssSampleBudget;int texturingMode=0;vec3 albedo =texture2D(albedoSampler,vUV).rgb;if (distScale==0. || sampleCount<1)\n{\n#ifdef DEBUG_SSS_SAMPLES\nvec3 green=vec3(0.,1.,0.);gl_FragColor=vec4(green,1.0);return;\n#endif\ngl_FragColor=vec4(inputColor.rgb+albedo*centerIrradiance,1.0);return;}\n#ifdef DEBUG_SSS_SAMPLES\nvec3 red =vec3(1.,0.,0.);vec3 blue=vec3(0.,0.,1.);gl_FragColor=vec4(mix(blue,red,clamp(float(sampleCount)/float(sampleBudget),0.0,1.0)),1.0);return;\n#endif\nfloat phase=0.;int n=min(sampleCount,sampleBudget);vec3 centerWeight =vec3(0.); \nvec3 totalIrradiance=vec3(0.);vec3 totalWeight =vec3(0.);for (int i=0; i {\n if (!t.prePassRenderer || !t.subSurfaceConfiguration) {\n L.Error(\"PrePass and subsurface configuration needs to be enabled for subsurface scattering.\");\n return;\n }\n const c = this.texelSize;\n h.setFloat(\"metersPerUnit\", t.subSurfaceConfiguration.metersPerUnit), h.setFloat2(\"texelSize\", c.x, c.y), h.setTexture(\"irradianceSampler\", t.prePassRenderer.getRenderTarget().textures[t.prePassRenderer.getIndex(0)]), h.setTexture(\"depthSampler\", t.prePassRenderer.getRenderTarget().textures[t.prePassRenderer.getIndex(5)]), h.setTexture(\"albedoSampler\", t.prePassRenderer.getRenderTarget().textures[t.prePassRenderer.getIndex(7)]), h.setFloat2(\"viewportSize\", Math.tan(t.activeCamera.fov / 2) * t.getEngine().getAspectRatio(t.activeCamera, !0), Math.tan(t.activeCamera.fov / 2)), h.setArray3(\"diffusionS\", t.subSurfaceConfiguration.ssDiffusionS), h.setArray(\"diffusionD\", t.subSurfaceConfiguration.ssDiffusionD), h.setArray(\"filterRadii\", t.subSurfaceConfiguration.ssFilterRadii);\n });\n }\n}\nclass Bf {\n /**\n * Diffusion profile color for subsurface scattering\n */\n get ssDiffusionS() {\n return this._ssDiffusionS;\n }\n /**\n * Diffusion profile max color channel value for subsurface scattering\n */\n get ssDiffusionD() {\n return this._ssDiffusionD;\n }\n /**\n * Diffusion profile filter radius for subsurface scattering\n */\n get ssFilterRadii() {\n return this._ssFilterRadii;\n }\n /**\n * Builds a subsurface configuration object\n * @param scene The scene\n */\n constructor(e) {\n this._ssDiffusionS = [], this._ssFilterRadii = [], this._ssDiffusionD = [], this.enabled = !1, this.needsImageProcessing = !0, this.name = me.NAME_SUBSURFACE, this.ssDiffusionProfileColors = [], this.metersPerUnit = 1, this.texturesRequired = [\n 5,\n 7,\n 4,\n 0\n ], this.addDiffusionProfile(new re(1, 1, 1)), this._scene = e, Bf._SceneComponentInitialization(this._scene);\n }\n /**\n * Adds a new diffusion profile.\n * Useful for more realistic subsurface scattering on diverse materials.\n * @param color The color of the diffusion profile. Should be the average color of the material.\n * @returns The index of the diffusion profile for the material subsurface configuration\n */\n addDiffusionProfile(e) {\n if (this.ssDiffusionD.length >= 5)\n return L.Error(\"You already reached the maximum number of diffusion profiles.\"), 0;\n for (let t = 0; t < this._ssDiffusionS.length / 3; t++)\n if (this._ssDiffusionS[t * 3] === e.r && this._ssDiffusionS[t * 3 + 1] === e.g && this._ssDiffusionS[t * 3 + 2] === e.b)\n return t;\n return this._ssDiffusionS.push(e.r, e.b, e.g), this._ssDiffusionD.push(Math.max(Math.max(e.r, e.b), e.g)), this._ssFilterRadii.push(this.getDiffusionProfileParameters(e)), this.ssDiffusionProfileColors.push(e), this._ssDiffusionD.length - 1;\n }\n /**\n * Creates the sss post process\n * @returns The created post process\n */\n createPostProcess() {\n return this.postProcess = new nW(\"subSurfaceScattering\", this._scene, 1, null, void 0, this._scene.getEngine()), this.postProcess.autoClear = !1, this.postProcess;\n }\n /**\n * Deletes all diffusion profiles.\n * Note that in order to render subsurface scattering, you should have at least 1 diffusion profile.\n */\n clearAllDiffusionProfiles() {\n this._ssDiffusionD = [], this._ssDiffusionS = [], this._ssFilterRadii = [], this.ssDiffusionProfileColors = [];\n }\n /**\n * Disposes this object\n */\n dispose() {\n this.clearAllDiffusionProfiles(), this.postProcess && this.postProcess.dispose();\n }\n /**\n * @internal\n * https://zero-radiance.github.io/post/sampling-diffusion/\n *\n * Importance sample the normalized diffuse reflectance profile for the computed value of 's'.\n * ------------------------------------------------------------------------------------\n * R[r, phi, s] = s * (Exp[-r * s] + Exp[-r * s / 3]) / (8 * Pi * r)\n * PDF[r, phi, s] = r * R[r, phi, s]\n * CDF[r, s] = 1 - 1/4 * Exp[-r * s] - 3/4 * Exp[-r * s / 3]\n * ------------------------------------------------------------------------------------\n * We importance sample the color channel with the widest scattering distance.\n */\n getDiffusionProfileParameters(e) {\n const i = Math.max(e.r, e.g, e.b);\n return this._sampleBurleyDiffusionProfile(0.997, i);\n }\n /**\n * Performs sampling of a Normalized Burley diffusion profile in polar coordinates.\n * 'u' is the random number (the value of the CDF): [0, 1).\n * rcp(s) = 1 / ShapeParam = ScatteringDistance.\n * Returns the sampled radial distance, s.t. (u = 0 -> r = 0) and (u = 1 -> r = Inf).\n * @param u\n * @param rcpS\n * @returns The sampled radial distance\n */\n _sampleBurleyDiffusionProfile(e, t) {\n e = 1 - e;\n const i = 1 + 4 * e * (2 * e + Math.sqrt(1 + 4 * e * e)), s = Math.pow(i, -1 / 3), n = 1 + i * s * s + s;\n return 3 * Math.log(n / (4 * e)) * t;\n }\n}\nBf._SceneComponentInitialization = (a) => {\n throw $e(\"SubSurfaceSceneComponent\");\n};\nqi.AddParser(me.NAME_SUBSURFACE, (a, e) => {\n if (a.ssDiffusionProfileColors !== void 0 && a.ssDiffusionProfileColors !== null && (e.enableSubSurfaceForPrePass(), e.subSurfaceConfiguration))\n for (let t = 0, i = a.ssDiffusionProfileColors.length; t < i; t++) {\n const s = a.ssDiffusionProfileColors[t];\n e.subSurfaceConfiguration.addDiffusionProfile(new re(s.r, s.g, s.b));\n }\n});\nObject.defineProperty(De.prototype, \"subSurfaceConfiguration\", {\n get: function() {\n return this._subSurfaceConfiguration;\n },\n set: function(a) {\n a && this.enablePrePassRenderer() && (this._subSurfaceConfiguration = a);\n },\n enumerable: !0,\n configurable: !0\n});\nDe.prototype.enableSubSurfaceForPrePass = function() {\n if (this._subSurfaceConfiguration)\n return this._subSurfaceConfiguration;\n const a = this.enablePrePassRenderer();\n return a ? (this._subSurfaceConfiguration = new Bf(this), a.addEffectConfiguration(this._subSurfaceConfiguration), this._subSurfaceConfiguration) : null;\n};\nDe.prototype.disableSubSurfaceForPrePass = function() {\n this._subSurfaceConfiguration && (this._subSurfaceConfiguration.dispose(), this._subSurfaceConfiguration = null);\n};\nclass aW {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_PREPASSRENDERER, this.scene = e;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n }\n /**\n * Serializes the component data to the specified json object\n * @param serializationObject The object to serialize to\n */\n serialize(e) {\n if (!this.scene.subSurfaceConfiguration)\n return;\n const t = this.scene.subSurfaceConfiguration.ssDiffusionProfileColors;\n e.ssDiffusionProfileColors = [];\n for (let i = 0; i < t.length; i++)\n e.ssDiffusionProfileColors.push({\n r: t[i].r,\n g: t[i].g,\n b: t[i].b\n });\n }\n /**\n * Adds all the elements from the container to the scene\n */\n addFromContainer() {\n }\n /**\n * Removes all the elements in the container from the scene\n */\n removeFromContainer() {\n this.scene.prePassRenderer && this.scene.subSurfaceConfiguration && this.scene.subSurfaceConfiguration.clearAllDiffusionProfiles();\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n }\n}\nBf._SceneComponentInitialization = (a) => {\n let e = a._getComponent(me.NAME_SUBSURFACE);\n e || (e = new aW(a), a._addComponent(e));\n};\nconst oW = \"outlinePixelShader\", lW = `#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\nuniform vec4 color;\n#ifdef ALPHATEST\nvarying vec2 vUV;uniform sampler2D diffuseSampler;\n#endif\n#include\n#include\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\ndiscard;\n#endif\n#include\ngl_FragColor=color;\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\nz.ShadersStore[oW] = lW;\nconst hW = \"outlineVertexShader\", cW = `attribute vec3 position;attribute vec3 normal;\n#include\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\nuniform float offset;\n#include\nuniform mat4 viewProjection;\n#ifdef ALPHATEST\nvarying vec2 vUV;uniform mat4 diffuseMatrix;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\n#include\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void)\n{vec3 positionUpdated=position;vec3 normalUpdated=normal;\n#ifdef UV1\nvec2 uvUpdated=uv;\n#endif\n#include\n#include[0..maxSimultaneousMorphTargets]\nvec3 offsetPosition=positionUpdated+(normalUpdated*offset);\n#include\n#include\n#include\nvec4 worldPos=finalWorld*vec4(offsetPosition,1.0);gl_Position=viewProjection*worldPos;\n#ifdef ALPHATEST\n#ifdef UV1\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef UV2\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n#include\n#include\n}\n`;\nz.ShadersStore[hW] = cW;\nDe.prototype.getOutlineRenderer = function() {\n return this._outlineRenderer || (this._outlineRenderer = new Iu(this)), this._outlineRenderer;\n};\nObject.defineProperty(H.prototype, \"renderOutline\", {\n get: function() {\n return this._renderOutline;\n },\n set: function(a) {\n a && this.getScene().getOutlineRenderer(), this._renderOutline = a;\n },\n enumerable: !0,\n configurable: !0\n});\nObject.defineProperty(H.prototype, \"renderOverlay\", {\n get: function() {\n return this._renderOverlay;\n },\n set: function(a) {\n a && this.getScene().getOutlineRenderer(), this._renderOverlay = a;\n },\n enumerable: !0,\n configurable: !0\n});\nclass Iu {\n /**\n * Instantiates a new outline renderer. (There could be only one per scene).\n * @param scene Defines the scene it belongs to\n */\n constructor(e) {\n this.name = me.NAME_OUTLINERENDERER, this.zOffset = 1, this.zOffsetUnits = 4, this.scene = e, this._engine = e.getEngine(), this.scene._addComponent(this), this._passIdForDrawWrapper = [];\n for (let t = 0; t < 4; ++t)\n this._passIdForDrawWrapper[t] = this._engine.createRenderPassId(`Outline Renderer (${t})`);\n }\n /**\n * Register the component to one instance of a scene.\n */\n register() {\n this.scene._beforeRenderingMeshStage.registerStep(me.STEP_BEFORERENDERINGMESH_OUTLINE, this, this._beforeRenderingMesh), this.scene._afterRenderingMeshStage.registerStep(me.STEP_AFTERRENDERINGMESH_OUTLINE, this, this._afterRenderingMesh);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n }\n /**\n * Disposes the component and the associated resources.\n */\n dispose() {\n for (let e = 0; e < this._passIdForDrawWrapper.length; ++e)\n this._engine.releaseRenderPassId(this._passIdForDrawWrapper[e]);\n }\n /**\n * Renders the outline in the canvas.\n * @param subMesh Defines the sumesh to render\n * @param batch Defines the batch of meshes in case of instances\n * @param useOverlay Defines if the rendering is for the overlay or the outline\n * @param renderPassId Render pass id to use to render the mesh\n */\n render(e, t, i = !1, s) {\n s = s ?? this._passIdForDrawWrapper[0];\n const r = this.scene, n = r.getEngine(), o = n.getCaps().instancedArrays && (t.visibleInstances[e._id] !== null && t.visibleInstances[e._id] !== void 0 || e.getRenderingMesh().hasThinInstances);\n if (!this.isReady(e, o, s))\n return;\n const l = e.getMesh(), h = l._internalAbstractMeshDataInfo._actAsRegularMesh ? l : null, c = e.getRenderingMesh(), u = h || c, d = e.getMaterial();\n if (!d || !r.activeCamera)\n return;\n const f = e._getDrawWrapper(s), p = Ds.GetEffect(f);\n if (n.enableEffect(f), d.useLogarithmicDepth && p.setFloat(\"logarithmicDepthConstant\", 2 / (Math.log(r.activeCamera.maxZ + 1) / Math.LN2)), p.setFloat(\"offset\", i ? 0 : c.outlineWidth), p.setColor4(\"color\", i ? c.overlayColor : c.outlineColor, i ? c.overlayAlpha : d.alpha), p.setMatrix(\"viewProjection\", r.getTransformMatrix()), p.setMatrix(\"world\", u.getWorldMatrix()), c.useBones && c.computeBonesUsingShaders && c.skeleton && p.setMatrices(\"mBones\", c.skeleton.getTransformMatrices(c)), c.morphTargetManager && c.morphTargetManager.isUsingTextureForTargets && c.morphTargetManager._bind(p), na(c, p), o || c._bind(e, p, d.fillMode), d && d.needAlphaTesting()) {\n const _ = d.getAlphaTestTexture();\n _ && (p.setTexture(\"diffuseSampler\", _), p.setMatrix(\"diffuseMatrix\", _.getTextureMatrix()));\n }\n Tn(p, d, r), n.setZOffset(-this.zOffset), n.setZOffsetUnits(-this.zOffsetUnits), c._processRendering(u, e, p, d.fillMode, t, o, (_, m) => {\n p.setMatrix(\"world\", m);\n }), n.setZOffset(0), n.setZOffsetUnits(0);\n }\n /**\n * Returns whether or not the outline renderer is ready for a given submesh.\n * All the dependencies e.g. submeshes, texture, effect... mus be ready\n * @param subMesh Defines the submesh to check readiness for\n * @param useInstances Defines whether wee are trying to render instances or not\n * @param renderPassId Render pass id to use to render the mesh\n * @returns true if ready otherwise false\n */\n isReady(e, t, i) {\n i = i ?? this._passIdForDrawWrapper[0];\n const s = [], r = [R.PositionKind, R.NormalKind], n = e.getMesh(), o = e.getMaterial();\n if (!o)\n return !1;\n const l = n.getScene();\n o.needAlphaTesting() && (s.push(\"#define ALPHATEST\"), n.isVerticesDataPresent(R.UVKind) && (r.push(R.UVKind), s.push(\"#define UV1\")), n.isVerticesDataPresent(R.UV2Kind) && (r.push(R.UV2Kind), s.push(\"#define UV2\"))), o.useLogarithmicDepth && s.push(\"#define LOGARITHMICDEPTH\"), tl(o, l, s), n.useBones && n.computeBonesUsingShaders ? (r.push(R.MatricesIndicesKind), r.push(R.MatricesWeightsKind), n.numBoneInfluencers > 4 && (r.push(R.MatricesIndicesExtraKind), r.push(R.MatricesWeightsExtraKind)), s.push(\"#define NUM_BONE_INFLUENCERS \" + n.numBoneInfluencers), s.push(\"#define BonesPerMesh \" + (n.skeleton ? n.skeleton.bones.length + 1 : 0))) : s.push(\"#define NUM_BONE_INFLUENCERS 0\");\n const h = n.morphTargetManager;\n let c = 0;\n h && (c = h.numMaxInfluencers || h.numInfluencers, c > 0 && (s.push(\"#define MORPHTARGETS\"), s.push(\"#define NUM_MORPH_INFLUENCERS \" + c), h.isUsingTextureForTargets && s.push(\"#define MORPHTARGETS_TEXTURE\"), mc(r, n, c))), t && (s.push(\"#define INSTANCES\"), So(r), e.getRenderingMesh().hasThinInstances && s.push(\"#define THIN_INSTANCES\"));\n const u = e._getDrawWrapper(i, !0), d = u.defines, f = s.join(`\n`);\n if (d !== f) {\n const p = [\n \"world\",\n \"mBones\",\n \"viewProjection\",\n \"diffuseMatrix\",\n \"offset\",\n \"color\",\n \"logarithmicDepthConstant\",\n \"morphTargetInfluences\",\n \"morphTargetCount\",\n \"morphTargetTextureInfo\",\n \"morphTargetTextureIndices\"\n ];\n Ln(p), u.setEffect(this.scene.getEngine().createEffect(\"outline\", r, p, [\"diffuseSampler\", \"morphTargets\"], f, void 0, void 0, void 0, {\n maxSimultaneousMorphTargets: c\n }), f);\n }\n return u.effect.isReady();\n }\n _beforeRenderingMesh(e, t, i) {\n if (this._savedDepthWrite = this._engine.getDepthWrite(), e.renderOutline) {\n const s = t.getMaterial();\n s && s.needAlphaBlendingForMesh(e) && (this._engine.cacheStencilState(), this._engine.setDepthWrite(!1), this._engine.setColorWrite(!1), this._engine.setStencilBuffer(!0), this._engine.setStencilOperationPass(7681), this._engine.setStencilFunction(519), this._engine.setStencilMask(Iu._StencilReference), this._engine.setStencilFunctionReference(Iu._StencilReference), this._engine.stencilStateComposer.useStencilGlobalOnly = !0, this.render(\n t,\n i,\n /* This sets offset to 0 */\n !0,\n this._passIdForDrawWrapper[1]\n ), this._engine.setColorWrite(!0), this._engine.setStencilFunction(517)), this._engine.setDepthWrite(!1), this.render(t, i, !1, this._passIdForDrawWrapper[0]), this._engine.setDepthWrite(this._savedDepthWrite), s && s.needAlphaBlendingForMesh(e) && (this._engine.stencilStateComposer.useStencilGlobalOnly = !1, this._engine.restoreStencilState());\n }\n }\n _afterRenderingMesh(e, t, i) {\n if (e.renderOverlay) {\n const s = this._engine.getAlphaMode(), r = this._engine.alphaState.alphaBlend;\n this._engine.setAlphaMode(2), this.render(t, i, !0, this._passIdForDrawWrapper[3]), this._engine.setAlphaMode(s), this._engine.setDepthWrite(this._savedDepthWrite), this._engine.alphaState.alphaBlend = r;\n }\n e.renderOutline && this._savedDepthWrite && (this._engine.setDepthWrite(!0), this._engine.setColorWrite(!1), this.render(t, i, !1, this._passIdForDrawWrapper[2]), this._engine.setColorWrite(!0));\n }\n}\nIu._StencilReference = 4;\nclass sI {\n /** Gets or sets the size of the particle */\n get particleSize() {\n return this._particleSize;\n }\n set particleSize(e) {\n e !== this._particleSize && (this._particleSize = e, this.onParticleSizeChanged.notifyObservers(this));\n }\n /** Indicates if the object uses instancing or not */\n get useInstancing() {\n return !this.indexBuffer;\n }\n /** Indicates if velocity of particles should be used when rendering the object. The vertex buffer set must contain a \"velocity\" buffer for this to work! */\n get useVelocity() {\n return this._useVelocity;\n }\n set useVelocity(e) {\n this._useVelocity === e || !this._hasVelocity() || (this._useVelocity = e, this._effectsAreDirty = !0);\n }\n _hasVelocity() {\n var e;\n return !!((e = this.vertexBuffers) != null && e.velocity);\n }\n /**\n * Gets the index buffer (or null if the object is using instancing)\n */\n get indexBuffer() {\n return null;\n }\n /**\n * @returns the name of the class\n */\n getClassName() {\n return \"FluidRenderingObject\";\n }\n /**\n * Instantiates a fluid rendering object\n * @param scene The scene the object is part of\n */\n constructor(e) {\n this.priority = 0, this._particleSize = 0.1, this.onParticleSizeChanged = new G(), this.particleThicknessAlpha = 0.05, this._useVelocity = !1, this._scene = e, this._engine = e.getEngine(), this._effectsAreDirty = !0, this._depthEffectWrapper = null, this._thicknessEffectWrapper = null;\n }\n _createEffects() {\n const e = [\"view\", \"projection\", \"particleRadius\", \"size\"], t = [\"position\", \"offset\"], i = [];\n this._effectsAreDirty = !1, this.useVelocity && (t.push(\"velocity\"), i.push(\"#define FLUIDRENDERING_VELOCITY\")), this._scene.useRightHandedSystem && i.push(\"#define FLUIDRENDERING_RHS\"), this._depthEffectWrapper = new to({\n engine: this._engine,\n useShaderStore: !0,\n vertexShader: \"fluidRenderingParticleDepth\",\n fragmentShader: \"fluidRenderingParticleDepth\",\n attributeNames: t,\n uniformNames: e,\n samplerNames: [],\n defines: i\n }), e.push(\"particleAlpha\"), this._thicknessEffectWrapper = new to({\n engine: this._engine,\n useShaderStore: !0,\n vertexShader: \"fluidRenderingParticleThickness\",\n fragmentShader: \"fluidRenderingParticleThickness\",\n attributeNames: [\"position\", \"offset\"],\n uniformNames: e,\n samplerNames: []\n });\n }\n /**\n * Indicates if the object is ready to be rendered\n * @returns True if everything is ready for the object to be rendered, otherwise false\n */\n isReady() {\n if (this._effectsAreDirty && this._createEffects(), !this._depthEffectWrapper || !this._thicknessEffectWrapper)\n return !1;\n const e = this._depthEffectWrapper._drawWrapper.effect, t = this._thicknessEffectWrapper._drawWrapper.effect;\n return e.isReady() && t.isReady();\n }\n /**\n * Render the depth texture for this object\n */\n renderDepthTexture() {\n const e = this.numParticles;\n if (!this._depthEffectWrapper || e === 0)\n return;\n const t = this._depthEffectWrapper._drawWrapper, i = t.effect;\n this._engine.enableEffect(t), this._engine.bindBuffers(this.vertexBuffers, this.indexBuffer, i), i.setMatrix(\"view\", this._scene.getViewMatrix()), i.setMatrix(\"projection\", this._scene.getProjectionMatrix()), i.setFloat2(\"size\", this._particleSize, this._particleSize), i.setFloat(\"particleRadius\", this._particleSize / 2), this.useInstancing ? this._engine.drawArraysType(7, 0, 4, e) : this._engine.drawElementsType(0, 0, e);\n }\n /**\n * Render the thickness texture for this object\n */\n renderThicknessTexture() {\n const e = this.numParticles;\n if (!this._thicknessEffectWrapper || e === 0)\n return;\n const t = this._thicknessEffectWrapper._drawWrapper, i = t.effect;\n this._engine.setAlphaMode(6), this._engine.setDepthWrite(!1), this._engine.enableEffect(t), this._engine.bindBuffers(this.vertexBuffers, this.indexBuffer, i), i.setMatrix(\"view\", this._scene.getViewMatrix()), i.setMatrix(\"projection\", this._scene.getProjectionMatrix()), i.setFloat(\"particleAlpha\", this.particleThicknessAlpha), i.setFloat2(\"size\", this._particleSize, this._particleSize), this.useInstancing ? this._engine.drawArraysType(7, 0, 4, e) : this._engine.drawElementsType(0, 0, e), this._engine.setDepthWrite(!0), this._engine.setAlphaMode(0);\n }\n /**\n * Render the diffuse texture for this object\n */\n renderDiffuseTexture() {\n }\n /**\n * Releases the ressources used by the class\n */\n dispose() {\n var e, t;\n (e = this._depthEffectWrapper) == null || e.dispose(!1), (t = this._thicknessEffectWrapper) == null || t.dispose(!1);\n }\n}\nclass uW extends sI {\n /** Gets the particle system */\n get particleSystem() {\n return this._particleSystem;\n }\n /**\n * @returns the name of the class\n */\n getClassName() {\n return \"FluidRenderingObjectParticleSystem\";\n }\n /**\n * Gets or sets a boolean indicating that the diffuse texture should be generated based on the regular rendering of the particle system (default: true).\n * Sometimes, generating the diffuse texture this way may be sub-optimal. In that case, you can disable this property, in which case the particle system will be\n * rendered using a ALPHA_COMBINE mode instead of the one used by the particle system.\n */\n get useTrueRenderingForDiffuseTexture() {\n return this._useTrueRenderingForDiffuseTexture;\n }\n set useTrueRenderingForDiffuseTexture(e) {\n this._useTrueRenderingForDiffuseTexture !== e && (this._useTrueRenderingForDiffuseTexture = e, e ? (this._particleSystem.blendMode = this._blendMode, this._particleSystem.onBeforeDrawParticlesObservable.remove(this._onBeforeDrawParticleObserver), this._onBeforeDrawParticleObserver = null) : (this._particleSystem.blendMode = -1, this._onBeforeDrawParticleObserver = this._particleSystem.onBeforeDrawParticlesObservable.add(() => {\n this._engine.setAlphaMode(2);\n })));\n }\n /**\n * Gets the vertex buffers\n */\n get vertexBuffers() {\n return this._particleSystem.vertexBuffers;\n }\n /**\n * Gets the index buffer (or null if the object is using instancing)\n */\n get indexBuffer() {\n return this._particleSystem.indexBuffer;\n }\n /**\n * Creates a new instance of the class\n * @param scene The scene the particle system is part of\n * @param ps The particle system\n */\n constructor(e, t) {\n super(e), this._useTrueRenderingForDiffuseTexture = !0, this._particleSystem = t, this._originalRender = t.render.bind(t), this._blendMode = t.blendMode, this._onBeforeDrawParticleObserver = null, this._updateInAnimate = this._particleSystem.updateInAnimate, this._particleSystem.updateInAnimate = !0, this._particleSystem.render = () => 0, this.particleSize = (t.minSize + t.maxSize) / 2, this.useTrueRenderingForDiffuseTexture = !1;\n }\n /**\n * Indicates if the object is ready to be rendered\n * @returns True if everything is ready for the object to be rendered, otherwise false\n */\n isReady() {\n return super.isReady() && this._particleSystem.isReady();\n }\n /**\n * Gets the number of particles in this particle system\n * @returns The number of particles\n */\n get numParticles() {\n return this._particleSystem.getActiveCount();\n }\n /**\n * Render the diffuse texture for this object\n */\n renderDiffuseTexture() {\n this._originalRender();\n }\n /**\n * Releases the ressources used by the class\n */\n dispose() {\n super.dispose(), this._particleSystem.onBeforeDrawParticlesObservable.remove(this._onBeforeDrawParticleObserver), this._onBeforeDrawParticleObserver = null, this._particleSystem.render = this._originalRender, this._particleSystem.blendMode = this._blendMode, this._particleSystem.updateInAnimate = this._updateInAnimate;\n }\n}\nclass ig {\n get blurNumIterations() {\n return this._blurNumIterations;\n }\n set blurNumIterations(e) {\n if (this._blurNumIterations !== e && (this._blurNumIterations = e, this._blurPostProcesses !== null)) {\n const t = this._blurPostProcesses[0], i = this._blurPostProcesses[1];\n this._blurPostProcesses = [];\n for (let s = 0; s < this._blurNumIterations * 2; ++s)\n this._blurPostProcesses[s] = s & 1 ? i : t;\n }\n }\n get renderTarget() {\n return this._rt;\n }\n get renderTargetBlur() {\n return this._rtBlur;\n }\n get texture() {\n return this._texture;\n }\n get textureBlur() {\n return this._textureBlurred;\n }\n constructor(e, t, i, s, r, n, o = 1, l = 6, h = 1, c = 6, u = !1, d = null, f = !0, p = 1) {\n this.enableBlur = !0, this.blurSizeDivisor = 1, this.blurFilterSize = 7, this._blurNumIterations = 3, this.blurMaxFilterSize = 100, this.blurDepthScale = 10, this.particleSize = 0.02, this.onDisposeObservable = new G(), this._name = e, this._scene = t, this._camera = d, this._engine = t.getEngine(), this._width = i, this._height = s, this._blurTextureSizeX = r, this._blurTextureSizeY = n, this._textureType = o, this._textureFormat = l, this._blurTextureType = h, this._blurTextureFormat = c, this._useStandardBlur = u, this._generateDepthBuffer = f, this._samples = p, this._postProcessRunningIndex = 0, this.enableBlur = r !== 0 && n !== 0, this._rt = null, this._texture = null, this._rtBlur = null, this._textureBlurred = null, this._blurPostProcesses = null;\n }\n initialize() {\n if (this.dispose(), this._createRenderTarget(), this.enableBlur && this._texture) {\n const [e, t, i] = this._createBlurPostProcesses(this._texture, this._blurTextureType, this._blurTextureFormat, this.blurSizeDivisor, this._name, this._useStandardBlur);\n this._rtBlur = e, this._textureBlurred = t, this._blurPostProcesses = i;\n }\n }\n applyBlurPostProcesses() {\n this.enableBlur && this._blurPostProcesses && (this._postProcessRunningIndex = 0, this._scene.postProcessManager.directRender(this._blurPostProcesses, this._rtBlur, !0), this._engine.unBindFramebuffer(this._rtBlur));\n }\n _createRenderTarget() {\n this._rt = this._engine.createRenderTargetTexture({ width: this._width, height: this._height }, {\n generateMipMaps: !1,\n type: this._textureType,\n format: this._textureFormat,\n samplingMode: 1,\n generateDepthBuffer: this._generateDepthBuffer,\n generateStencilBuffer: !1,\n samples: this._samples,\n label: `FluidRenderingRTT-${this._name}`\n });\n const e = this._rt.texture;\n e.incrementReferences(), this._texture = new X(null, this._scene), this._texture.name = \"rtt\" + this._name, this._texture._texture = e, this._texture.wrapU = X.CLAMP_ADDRESSMODE, this._texture.wrapV = X.CLAMP_ADDRESSMODE, this._texture.anisotropicFilteringLevel = 1;\n }\n _createBlurPostProcesses(e, t, i, s, r, n = !1) {\n const o = this._scene.getEngine(), l = new Q(Math.floor(this._blurTextureSizeX / s), Math.floor(this._blurTextureSizeY / s)), h = t === 1 && o.getCaps().textureFloatLinearFiltering || t === 2 && o.getCaps().textureHalfFloatLinearFiltering, c = this._engine.createRenderTargetTexture({ width: l.x, height: l.y }, {\n generateMipMaps: !1,\n type: t,\n format: i,\n samplingMode: h ? 2 : 1,\n generateDepthBuffer: !1,\n generateStencilBuffer: !1,\n samples: this._samples,\n label: `FluidRenderingRTTBlur-${r}`\n }), u = c.texture;\n u.incrementReferences();\n const d = new X(null, this._scene);\n if (d.name = \"rttBlurred\" + r, d._texture = u, d.wrapU = X.CLAMP_ADDRESSMODE, d.wrapV = X.CLAMP_ADDRESSMODE, d.anisotropicFilteringLevel = 1, n) {\n const f = new Be(\"BilateralBlurX\", \"fluidRenderingStandardBlur\", [\"filterSize\", \"blurDir\"], null, 1, null, 1, o, !0, null, t, void 0, void 0, void 0, i);\n f.samples = this._samples, f.externalTextureSamplerBinding = !0, f.onApplyObservable.add((m) => {\n this._postProcessRunningIndex === 0 ? m.setTexture(\"textureSampler\", e) : m._bindTexture(\"textureSampler\", f.inputTexture.texture), m.setInt(\"filterSize\", this.blurFilterSize), m.setFloat2(\"blurDir\", 1 / this._blurTextureSizeX, 0), this._postProcessRunningIndex++;\n }), f.onSizeChangedObservable.add(() => {\n f._textures.forEach((m) => {\n m.texture.wrapU = X.CLAMP_ADDRESSMODE, m.texture.wrapV = X.CLAMP_ADDRESSMODE;\n });\n }), this._fixReusablePostProcess(f);\n const p = new Be(\"BilateralBlurY\", \"fluidRenderingStandardBlur\", [\"filterSize\", \"blurDir\"], null, 1, null, 1, o, !0, null, t, void 0, void 0, void 0, i);\n p.samples = this._samples, p.onApplyObservable.add((m) => {\n m.setInt(\"filterSize\", this.blurFilterSize), m.setFloat2(\"blurDir\", 0, 1 / this._blurTextureSizeY), this._postProcessRunningIndex++;\n }), p.onSizeChangedObservable.add(() => {\n p._textures.forEach((m) => {\n m.texture.wrapU = X.CLAMP_ADDRESSMODE, m.texture.wrapV = X.CLAMP_ADDRESSMODE;\n });\n }), this._fixReusablePostProcess(p), f.autoClear = !1, p.autoClear = !1;\n const _ = [];\n for (let m = 0; m < this._blurNumIterations * 2; ++m)\n _[m] = m & 1 ? p : f;\n return [c, d, _];\n } else {\n const f = [\"maxFilterSize\", \"blurDir\", \"projectedParticleConstant\", \"depthThreshold\"], p = new Be(\"BilateralBlurX\", \"fluidRenderingBilateralBlur\", f, null, 1, null, 1, o, !0, null, t, void 0, void 0, void 0, i);\n p.samples = this._samples, p.externalTextureSamplerBinding = !0, p.onApplyObservable.add((x) => {\n this._postProcessRunningIndex === 0 ? x.setTexture(\"textureSampler\", e) : x._bindTexture(\"textureSampler\", p.inputTexture.texture), x.setInt(\"maxFilterSize\", this.blurMaxFilterSize), x.setFloat2(\"blurDir\", 1 / this._blurTextureSizeX, 0), x.setFloat(\"projectedParticleConstant\", this._getProjectedParticleConstant()), x.setFloat(\"depthThreshold\", this._getDepthThreshold()), this._postProcessRunningIndex++;\n }), p.onSizeChangedObservable.add(() => {\n p._textures.forEach((x) => {\n x.texture.wrapU = X.CLAMP_ADDRESSMODE, x.texture.wrapV = X.CLAMP_ADDRESSMODE;\n });\n }), this._fixReusablePostProcess(p);\n const _ = new Be(\"BilateralBlurY\", \"fluidRenderingBilateralBlur\", f, null, 1, null, 1, o, !0, null, t, void 0, void 0, void 0, i);\n _.samples = this._samples, _.onApplyObservable.add((x) => {\n x.setInt(\"maxFilterSize\", this.blurMaxFilterSize), x.setFloat2(\"blurDir\", 0, 1 / this._blurTextureSizeY), x.setFloat(\"projectedParticleConstant\", this._getProjectedParticleConstant()), x.setFloat(\"depthThreshold\", this._getDepthThreshold()), this._postProcessRunningIndex++;\n }), _.onSizeChangedObservable.add(() => {\n _._textures.forEach((x) => {\n x.texture.wrapU = X.CLAMP_ADDRESSMODE, x.texture.wrapV = X.CLAMP_ADDRESSMODE;\n });\n }), this._fixReusablePostProcess(_), p.autoClear = !1, _.autoClear = !1;\n const m = [];\n for (let x = 0; x < this._blurNumIterations * 2; ++x)\n m[x] = x & 1 ? _ : p;\n return [c, d, m];\n }\n }\n _fixReusablePostProcess(e) {\n e.isReusable() && (e.onActivateObservable.add(() => {\n e._currentRenderTextureInd = (e._currentRenderTextureInd + 1) % 2;\n }), e.onApplyObservable.add(() => {\n e._currentRenderTextureInd = (e._currentRenderTextureInd + 1) % 2;\n }));\n }\n _getProjectedParticleConstant() {\n var e;\n return this.blurFilterSize * this.particleSize * 0.05 * (this._height / 2) / Math.tan((((e = this._camera) == null ? void 0 : e.fov) ?? 45 * Math.PI / 180) / 2);\n }\n _getDepthThreshold() {\n return this.particleSize / 2 * this.blurDepthScale;\n }\n dispose() {\n var e, t, i, s;\n this.onDisposeObservable.hasObservers() && this.onDisposeObservable.notifyObservers(this), (e = this._rt) == null || e.dispose(), this._rt = null, (t = this._texture) == null || t.dispose(), this._texture = null, (i = this._rtBlur) == null || i.dispose(), this._rtBlur = null, (s = this._textureBlurred) == null || s.dispose(), this._textureBlurred = null, this._blurPostProcesses && (this._blurPostProcesses[0].dispose(), this._blurPostProcesses[1].dispose()), this._blurPostProcesses = null;\n }\n}\nvar fy;\n(function(a) {\n a[a.DepthTexture = 0] = \"DepthTexture\", a[a.DepthBlurredTexture = 1] = \"DepthBlurredTexture\", a[a.ThicknessTexture = 2] = \"ThicknessTexture\", a[a.ThicknessBlurredTexture = 3] = \"ThicknessBlurredTexture\", a[a.DiffuseTexture = 4] = \"DiffuseTexture\", a[a.Normals = 5] = \"Normals\", a[a.DiffuseRendering = 6] = \"DiffuseRendering\";\n})(fy || (fy = {}));\nclass py {\n /**\n * Returns true if the class needs to be reinitialized (because of changes in parameterization)\n */\n get needInitialization() {\n return this._needInitialization;\n }\n /**\n * Gets or sets a boolean indicating that the diffuse texture should be generated and used for the rendering\n */\n get generateDiffuseTexture() {\n return this._generateDiffuseTexture;\n }\n set generateDiffuseTexture(e) {\n this._generateDiffuseTexture !== e && (this._generateDiffuseTexture = e, this._needInitialization = !0);\n }\n /**\n * Gets or sets the feature (texture) to be debugged. Not used if debug is false\n */\n get debugFeature() {\n return this._debugFeature;\n }\n set debugFeature(e) {\n this._debugFeature !== e && (this._needInitialization = !0, this._debugFeature = e);\n }\n /**\n * Gets or sets a boolean indicating if we should display a specific texture (given by debugFeature) for debugging purpose\n */\n get debug() {\n return this._debug;\n }\n set debug(e) {\n this._debug !== e && (this._debug = e, this._needInitialization = !0);\n }\n /**\n * Gets or sets the environment map used for the reflection part of the shading\n * If null, no map will be used. If undefined, the scene.environmentMap will be used (if defined)\n */\n get environmentMap() {\n return this._environmentMap;\n }\n set environmentMap(e) {\n this._environmentMap !== e && (this._needInitialization = !0, this._environmentMap = e);\n }\n /**\n * Gets or sets a boolean indicating that the depth texture should be blurred\n */\n get enableBlurDepth() {\n return this._enableBlurDepth;\n }\n set enableBlurDepth(e) {\n this._enableBlurDepth !== e && (this._enableBlurDepth = e, this._needInitialization = !0);\n }\n /**\n * Gets or sets the depth size divisor (positive number, generally between 1 and 4), which is used as a divisor when creating the texture used for blurring the depth\n * For eg. if blurDepthSizeDivisor=2, the texture used to blur the depth will be half the size of the depth texture\n */\n get blurDepthSizeDivisor() {\n return this._blurDepthSizeDivisor;\n }\n set blurDepthSizeDivisor(e) {\n this._blurDepthSizeDivisor !== e && (this._blurDepthSizeDivisor = e, this._needInitialization = !0);\n }\n /**\n * Size of the kernel used to filter the depth blur texture (positive number, generally between 1 and 20 - higher values will require more processing power from the GPU)\n */\n get blurDepthFilterSize() {\n return this._blurDepthFilterSize;\n }\n set blurDepthFilterSize(e) {\n this._blurDepthFilterSize !== e && (this._blurDepthFilterSize = e, this._setBlurParameters());\n }\n /**\n * Number of blurring iterations used to generate the depth blur texture (positive number, generally between 1 and 10 - higher values will require more processing power from the GPU)\n */\n get blurDepthNumIterations() {\n return this._blurDepthNumIterations;\n }\n set blurDepthNumIterations(e) {\n this._blurDepthNumIterations !== e && (this._blurDepthNumIterations = e, this._setBlurParameters());\n }\n /**\n * Maximum size of the kernel used to blur the depth texture (positive number, generally between 1 and 200 - higher values will require more processing power from the GPU when the particles are larger on screen)\n */\n get blurDepthMaxFilterSize() {\n return this._blurDepthMaxFilterSize;\n }\n set blurDepthMaxFilterSize(e) {\n this._blurDepthMaxFilterSize !== e && (this._blurDepthMaxFilterSize = e, this._setBlurParameters());\n }\n /**\n * Depth weight in the calculation when applying the bilateral blur to generate the depth blur texture (positive number, generally between 0 and 100)\n */\n get blurDepthDepthScale() {\n return this._blurDepthDepthScale;\n }\n set blurDepthDepthScale(e) {\n this._blurDepthDepthScale !== e && (this._blurDepthDepthScale = e, this._setBlurParameters());\n }\n /**\n * Gets or sets a boolean indicating that the thickness texture should be blurred\n */\n get enableBlurThickness() {\n return this._enableBlurThickness;\n }\n set enableBlurThickness(e) {\n this._enableBlurThickness !== e && (this._enableBlurThickness = e, this._needInitialization = !0);\n }\n /**\n * Gets or sets the thickness size divisor (positive number, generally between 1 and 4), which is used as a divisor when creating the texture used for blurring the thickness\n * For eg. if blurThicknessSizeDivisor=2, the texture used to blur the thickness will be half the size of the thickness texture\n */\n get blurThicknessSizeDivisor() {\n return this._blurThicknessSizeDivisor;\n }\n set blurThicknessSizeDivisor(e) {\n this._blurThicknessSizeDivisor !== e && (this._blurThicknessSizeDivisor = e, this._needInitialization = !0);\n }\n /**\n * Size of the kernel used to filter the thickness blur texture (positive number, generally between 1 and 20 - higher values will require more processing power from the GPU)\n */\n get blurThicknessFilterSize() {\n return this._blurThicknessFilterSize;\n }\n set blurThicknessFilterSize(e) {\n this._blurThicknessFilterSize !== e && (this._blurThicknessFilterSize = e, this._setBlurParameters());\n }\n /**\n * Number of blurring iterations used to generate the thickness blur texture (positive number, generally between 1 and 10 - higher values will require more processing power from the GPU)\n */\n get blurThicknessNumIterations() {\n return this._blurThicknessNumIterations;\n }\n set blurThicknessNumIterations(e) {\n this._blurThicknessNumIterations !== e && (this._blurThicknessNumIterations = e, this._setBlurParameters());\n }\n /**\n * Gets or sets a boolean indicating that a fixed thickness should be used instead of generating a thickness texture\n */\n get useFixedThickness() {\n return this._useFixedThickness;\n }\n set useFixedThickness(e) {\n this._useFixedThickness !== e && (this._useFixedThickness = e, this._needInitialization = !0);\n }\n /**\n * Gets or sets a boolean indicating that the velocity should be used when rendering the particles as a fluid.\n * Note: the vertex buffers must contain a \"velocity\" buffer for this to work!\n */\n get useVelocity() {\n return this._useVelocity;\n }\n set useVelocity(e) {\n this._useVelocity !== e && (this._useVelocity = e, this._needInitialization = !0, this._onUseVelocityChanged.notifyObservers(this));\n }\n /**\n * Defines the size of the depth texture.\n * If null, the texture will have the size of the screen\n */\n get depthMapSize() {\n return this._depthMapSize;\n }\n set depthMapSize(e) {\n this._depthMapSize !== e && (this._depthMapSize = e, this._needInitialization = !0);\n }\n /**\n * Defines the size of the thickness texture.\n * If null, the texture will have the size of the screen\n */\n get thicknessMapSize() {\n return this._thicknessMapSize;\n }\n set thicknessMapSize(e) {\n this._thicknessMapSize !== e && (this._thicknessMapSize = e, this._needInitialization = !0);\n }\n /**\n * Defines the size of the diffuse texture.\n * If null, the texture will have the size of the screen\n */\n get diffuseMapSize() {\n return this._diffuseMapSize;\n }\n set diffuseMapSize(e) {\n this._diffuseMapSize !== e && (this._diffuseMapSize = e, this._needInitialization = !0);\n }\n /**\n * Gets or sets the number of samples used by MSAA\n * Note: changing this value in WebGL does not work because depth/stencil textures can't be created with MSAA (see https://github.com/BabylonJS/Babylon.js/issues/12444)\n */\n get samples() {\n return this._samples;\n }\n set samples(e) {\n this._samples !== e && (this._samples = e, this._needInitialization = !0);\n }\n /**\n * If compositeMode is true (default: false), when the alpha value of the background (the scene rendered without the fluid objects) is 0, the final alpha value of the pixel will be set to the thickness value.\n * This way, it is possible to composite the fluid rendering on top of the HTML background.\n */\n get compositeMode() {\n return this._compositeMode;\n }\n set compositeMode(e) {\n this._compositeMode !== e && (this._compositeMode = e, this._needInitialization = !0);\n }\n /**\n * Gets the camera used for the rendering\n */\n get camera() {\n return this._camera;\n }\n /**\n * Creates an instance of the class\n * @param scene Scene used to render the fluid object into\n * @param camera Camera used to render the fluid object. If not provided, use the active camera of the scene instead\n */\n constructor(e, t) {\n this._generateDiffuseTexture = !1, this.fluidColor = new re(0.085, 0.6375, 0.765), this.density = 2, this.refractionStrength = 0.1, this.fresnelClamp = 1, this.specularPower = 250, this.minimumThickness = 0, this.dirLight = new g(-2, -1, 1).normalize(), this._debugFeature = 1, this._debug = !1, this._enableBlurDepth = !0, this._blurDepthSizeDivisor = 1, this._blurDepthFilterSize = 7, this._blurDepthNumIterations = 3, this._blurDepthMaxFilterSize = 100, this._blurDepthDepthScale = 10, this._enableBlurThickness = !0, this._blurThicknessSizeDivisor = 1, this._blurThicknessFilterSize = 5, this._blurThicknessNumIterations = 1, this._useFixedThickness = !1, this._onUseVelocityChanged = new G(), this._useVelocity = !1, this._depthMapSize = null, this._thicknessMapSize = null, this._diffuseMapSize = null, this._samples = 1, this._compositeMode = !1, this._scene = e, this._engine = e.getEngine(), this._camera = t ?? e.activeCamera, this._needInitialization = !0, this._bgDepthTexture = null, this._invProjectionMatrix = new O(), this._depthClearColor = new Ce(1e6, 1e6, 1e6, 1), this._thicknessClearColor = new Ce(0, 0, 0, 1), this._depthRenderTarget = null, this._diffuseRenderTarget = null, this._thicknessRenderTarget = null, this._renderPostProcess = null;\n }\n /** @internal */\n _initialize() {\n this.dispose(), this._needInitialization = !1;\n const e = this._depthMapSize ?? this._engine.getRenderWidth(), t = this._depthMapSize !== null ? Math.round(this._depthMapSize * this._engine.getRenderHeight() / this._engine.getRenderWidth()) : this._engine.getRenderHeight();\n if (this._depthRenderTarget = new ig(\"Depth\", this._scene, e, t, e, t, 1, 7, 1, 7, !1, this._camera, !0, this._samples), this._initializeRenderTarget(this._depthRenderTarget), this.generateDiffuseTexture) {\n const r = this._diffuseMapSize ?? this._engine.getRenderWidth(), n = this._diffuseMapSize !== null ? Math.round(this._diffuseMapSize * this._engine.getRenderHeight() / this._engine.getRenderWidth()) : this._engine.getRenderHeight();\n this._diffuseRenderTarget = new ig(\"Diffuse\", this._scene, r, n, 0, 0, 0, 5, 0, 5, !0, this._camera, !0, this._samples), this._initializeRenderTarget(this._diffuseRenderTarget);\n }\n const i = this._thicknessMapSize ?? this._engine.getRenderWidth(), s = this._thicknessMapSize !== null ? Math.round(this._thicknessMapSize * this._engine.getRenderHeight() / this._engine.getRenderWidth()) : this._engine.getRenderHeight();\n this._useFixedThickness || (this._thicknessRenderTarget = new ig(\"Thickness\", this._scene, i, s, i, s, 2, 6, 2, 6, !0, this._camera, !1, this._samples), this._initializeRenderTarget(this._thicknessRenderTarget)), this._createLiquidRenderingPostProcess();\n }\n _setBlurParameters(e = null) {\n (e === null || e === this._depthRenderTarget) && this._setBlurDepthParameters(), (e === null || e === this._thicknessRenderTarget) && this._setBlurThicknessParameters();\n }\n _setBlurDepthParameters() {\n this._depthRenderTarget && (this._depthRenderTarget.blurFilterSize = this.blurDepthFilterSize, this._depthRenderTarget.blurMaxFilterSize = this.blurDepthMaxFilterSize, this._depthRenderTarget.blurNumIterations = this.blurDepthNumIterations, this._depthRenderTarget.blurDepthScale = this.blurDepthDepthScale);\n }\n _setBlurThicknessParameters() {\n this._thicknessRenderTarget && (this._thicknessRenderTarget.blurFilterSize = this.blurThicknessFilterSize, this._thicknessRenderTarget.blurNumIterations = this.blurThicknessNumIterations);\n }\n _initializeRenderTarget(e) {\n e !== this._diffuseRenderTarget && (e.enableBlur = e === this._depthRenderTarget ? this.enableBlurDepth : this.enableBlurThickness, e.blurSizeDivisor = e === this._depthRenderTarget ? this.blurDepthSizeDivisor : this.blurThicknessSizeDivisor), this._setBlurParameters(e), e.initialize();\n }\n _createLiquidRenderingPostProcess() {\n const e = this._scene.getEngine(), t = [\n \"viewMatrix\",\n \"projectionMatrix\",\n \"invProjectionMatrix\",\n \"texelSize\",\n \"dirLight\",\n \"cameraFar\",\n \"density\",\n \"refractionStrength\",\n \"fresnelClamp\",\n \"specularPower\"\n ], i = [\"depthSampler\"], s = [];\n if (this.dispose(!0), !this._camera)\n return;\n const r = this._depthRenderTarget.enableBlur ? this._depthRenderTarget.textureBlur : this._depthRenderTarget.texture, n = new Q(1 / r.getSize().width, 1 / r.getSize().height);\n this._scene.useRightHandedSystem && s.push(\"#define FLUIDRENDERING_RHS\"), this._environmentMap !== null && (this._environmentMap ?? this._scene.environmentTexture) && (i.push(\"reflectionSampler\"), s.push(\"#define FLUIDRENDERING_ENVIRONMENT\")), this._diffuseRenderTarget ? (i.push(\"diffuseSampler\"), s.push(\"#define FLUIDRENDERING_DIFFUSETEXTURE\")) : t.push(\"diffuseColor\"), this._useVelocity && (i.push(\"velocitySampler\"), s.push(\"#define FLUIDRENDERING_VELOCITY\")), this._useFixedThickness ? (t.push(\"thickness\"), i.push(\"bgDepthSampler\"), s.push(\"#define FLUIDRENDERING_FIXED_THICKNESS\")) : (t.push(\"minimumThickness\"), i.push(\"thicknessSampler\")), this._compositeMode && s.push(\"#define FLUIDRENDERING_COMPOSITE_MODE\"), this._debug && (s.push(\"#define FLUIDRENDERING_DEBUG\"), this._debugFeature === 5 ? s.push(\"#define FLUIDRENDERING_DEBUG_SHOWNORMAL\") : this._debugFeature === 6 ? s.push(\"#define FLUIDRENDERING_DEBUG_DIFFUSERENDERING\") : (s.push(\"#define FLUIDRENDERING_DEBUG_TEXTURE\"), i.push(\"debugSampler\"), (this._debugFeature === 0 || this._debugFeature === 1) && s.push(\"#define FLUIDRENDERING_DEBUG_DEPTH\"))), this._renderPostProcess = new Be(\"FluidRendering\", \"fluidRenderingRender\", t, i, 1, null, 2, e, !1, null, 0, void 0, void 0, !0, void 0), this._renderPostProcess.updateEffect(s.join(`\n`)), this._renderPostProcess.samples = this._samples;\n const o = e, l = o.setTextureSampler;\n this._renderPostProcess.onApplyObservable.add((h) => {\n var c, u, d, f, p, _, m, x, v, T;\n if (this._invProjectionMatrix.copyFrom(this._scene.getProjectionMatrix()), this._invProjectionMatrix.invert(), l && l.call(o, \"textureSamplerSampler\", this._renderPostProcess.inputTexture.texture), this._depthRenderTarget.enableBlur ? (h.setTexture(\"depthSampler\", this._depthRenderTarget.textureBlur), l && l.call(o, \"depthSamplerSampler\", ((u = this._depthRenderTarget.textureBlur) == null ? void 0 : u.getInternalTexture()) ?? null)) : (h.setTexture(\"depthSampler\", this._depthRenderTarget.texture), l && l.call(o, \"depthSamplerSampler\", ((c = this._depthRenderTarget.texture) == null ? void 0 : c.getInternalTexture()) ?? null)), this._diffuseRenderTarget ? this._diffuseRenderTarget.enableBlur ? (h.setTexture(\"diffuseSampler\", this._diffuseRenderTarget.textureBlur), l && l.call(o, \"diffuseSamplerSampler\", ((f = this._diffuseRenderTarget.textureBlur) == null ? void 0 : f.getInternalTexture()) ?? null)) : (h.setTexture(\"diffuseSampler\", this._diffuseRenderTarget.texture), l && l.call(o, \"diffuseSamplerSampler\", ((d = this._diffuseRenderTarget.texture) == null ? void 0 : d.getInternalTexture()) ?? null)) : h.setColor3(\"diffuseColor\", this.fluidColor), this._useFixedThickness ? (h.setFloat(\"thickness\", this.minimumThickness), h._bindTexture(\"bgDepthSampler\", this._bgDepthTexture), l && l.call(o, \"bgDepthSamplerSampler\", this._bgDepthTexture ?? null)) : (this._thicknessRenderTarget.enableBlur ? (h.setTexture(\"thicknessSampler\", this._thicknessRenderTarget.textureBlur), l && l.call(o, \"thicknessSamplerSampler\", ((_ = this._thicknessRenderTarget.textureBlur) == null ? void 0 : _.getInternalTexture()) ?? null)) : (h.setTexture(\"thicknessSampler\", this._thicknessRenderTarget.texture), l && l.call(o, \"thicknessSamplerSampler\", ((p = this._thicknessRenderTarget.texture) == null ? void 0 : p.getInternalTexture()) ?? null)), h.setFloat(\"minimumThickness\", this.minimumThickness)), this._environmentMap !== null) {\n const E = this._environmentMap ?? this._scene.environmentTexture;\n E && (h.setTexture(\"reflectionSampler\", E), l && l.call(o, \"reflectionSamplerSampler\", (E == null ? void 0 : E.getInternalTexture()) ?? null));\n }\n if (h.setMatrix(\"viewMatrix\", this._scene.getViewMatrix()), h.setMatrix(\"invProjectionMatrix\", this._invProjectionMatrix), h.setMatrix(\"projectionMatrix\", this._scene.getProjectionMatrix()), h.setVector2(\"texelSize\", n), h.setFloat(\"density\", this.density), h.setFloat(\"refractionStrength\", this.refractionStrength), h.setFloat(\"fresnelClamp\", this.fresnelClamp), h.setFloat(\"specularPower\", this.specularPower), h.setVector3(\"dirLight\", this.dirLight), h.setFloat(\"cameraFar\", this._camera.maxZ), this._debug) {\n let E = null;\n switch (this._debugFeature) {\n case 0:\n E = this._depthRenderTarget.texture;\n break;\n case 1:\n E = this._depthRenderTarget.enableBlur ? this._depthRenderTarget.textureBlur : this._depthRenderTarget.texture;\n break;\n case 2:\n E = ((m = this._thicknessRenderTarget) == null ? void 0 : m.texture) ?? null;\n break;\n case 3:\n E = (x = this._thicknessRenderTarget) != null && x.enableBlur ? ((v = this._thicknessRenderTarget) == null ? void 0 : v.textureBlur) ?? null : ((T = this._thicknessRenderTarget) == null ? void 0 : T.texture) ?? null;\n break;\n case 4:\n this._diffuseRenderTarget && (E = this._diffuseRenderTarget.texture);\n break;\n }\n this._debugFeature !== 5 && (h.setTexture(\"debugSampler\", E), l && l.call(o, \"debugSamplerSampler\", (E == null ? void 0 : E.getInternalTexture()) ?? null));\n }\n });\n }\n /** @internal */\n _clearTargets() {\n var e, t, i;\n (e = this._depthRenderTarget) != null && e.renderTarget && (this._engine.bindFramebuffer(this._depthRenderTarget.renderTarget), this._engine.clear(this._depthClearColor, !0, !0, !1), this._engine.unBindFramebuffer(this._depthRenderTarget.renderTarget)), (t = this._diffuseRenderTarget) != null && t.renderTarget && (this._engine.bindFramebuffer(this._diffuseRenderTarget.renderTarget), this._engine.clear(this._thicknessClearColor, !0, !0, !1), this._engine.unBindFramebuffer(this._diffuseRenderTarget.renderTarget)), (i = this._thicknessRenderTarget) != null && i.renderTarget && (this._engine.bindFramebuffer(this._thicknessRenderTarget.renderTarget), this._engine.clear(this._thicknessClearColor, !0, !1, !1), this._engine.unBindFramebuffer(this._thicknessRenderTarget.renderTarget));\n }\n /** @internal */\n _render(e) {\n var i, s, r, n, o, l;\n if (this._needInitialization || !e.isReady())\n return;\n const t = this._engine._currentRenderTarget;\n this._engine.setState(!1, void 0, void 0, void 0, !0), this._engine.setDepthBuffer(!0), this._engine.setDepthWrite(!0), this._engine.setAlphaMode(0), (i = this._depthRenderTarget) != null && i.renderTarget && (this._engine.bindFramebuffer(this._depthRenderTarget.renderTarget), e.renderDepthTexture(), this._engine.unbindInstanceAttributes(), this._engine.unBindFramebuffer(this._depthRenderTarget.renderTarget)), (s = this._diffuseRenderTarget) != null && s.renderTarget && (this._engine.bindFramebuffer(this._diffuseRenderTarget.renderTarget), e.renderDiffuseTexture(), this._engine.unbindInstanceAttributes(), this._engine.unBindFramebuffer(this._diffuseRenderTarget.renderTarget)), (r = this._thicknessRenderTarget) != null && r.renderTarget && (this._engine.bindFramebuffer(this._thicknessRenderTarget.renderTarget), e.renderThicknessTexture(), this._engine.unbindInstanceAttributes(), this._engine.unBindFramebuffer(this._thicknessRenderTarget.renderTarget)), (n = this._depthRenderTarget) == null || n.applyBlurPostProcesses(), (o = this._diffuseRenderTarget) == null || o.applyBlurPostProcesses(), (l = this._thicknessRenderTarget) == null || l.applyBlurPostProcesses(), t && this._engine.bindFramebuffer(t);\n }\n /**\n * Releases all the ressources used by the class\n * @param onlyPostProcesses If true, releases only the ressources used by the render post processes\n */\n dispose(e = !1) {\n var t, i, s, r;\n e || ((t = this._depthRenderTarget) == null || t.dispose(), this._depthRenderTarget = null, (i = this._diffuseRenderTarget) == null || i.dispose(), this._diffuseRenderTarget = null, (s = this._thicknessRenderTarget) == null || s.dispose(), this._thicknessRenderTarget = null), this._renderPostProcess && this._camera && this._camera.detachPostProcess(this._renderPostProcess), (r = this._renderPostProcess) == null || r.dispose(), this._renderPostProcess = null, this._needInitialization = !1;\n }\n}\nclass dW extends sI {\n /**\n * @returns the name of the class\n */\n getClassName() {\n return \"FluidRenderingObjectCustomParticles\";\n }\n /**\n * Gets the vertex buffers\n */\n get vertexBuffers() {\n return this._vertexBuffers;\n }\n /**\n * Creates a new instance of the class\n * @param scene The scene the particles should be rendered into\n * @param buffers The list of buffers (must contain at least one \"position\" buffer!). Note that you don't have to pass all (or any!) buffers at once in the constructor, you can use the addBuffers method to add more later.\n * @param numParticles Number of vertices to take into account from the buffers\n */\n constructor(e, t, i) {\n super(e), this._numParticles = i, this._diffuseEffectWrapper = null, this._vertexBuffers = {}, this.addBuffers(t);\n }\n /**\n * Add some new buffers\n * @param buffers List of buffers\n */\n addBuffers(e) {\n for (const t in e) {\n let i, s = !0;\n switch (t) {\n case \"velocity\":\n i = 3;\n break;\n case \"offset\":\n s = !1;\n break;\n }\n this._vertexBuffers[t] = new R(this._engine, e[t], t, !0, !1, i, s);\n }\n }\n _createEffects() {\n super._createEffects();\n const e = [\"view\", \"projection\", \"size\"], t = [\"position\", \"offset\", \"color\"];\n this._diffuseEffectWrapper = new to({\n engine: this._engine,\n useShaderStore: !0,\n vertexShader: \"fluidRenderingParticleDiffuse\",\n fragmentShader: \"fluidRenderingParticleDiffuse\",\n attributeNames: t,\n uniformNames: e,\n samplerNames: []\n });\n }\n /**\n * Indicates if the object is ready to be rendered\n * @returns True if everything is ready for the object to be rendered, otherwise false\n */\n isReady() {\n var e;\n return this._vertexBuffers.offset || (this._vertexBuffers.offset = new R(this._engine, [0, 0, 1, 0, 0, 1, 1, 1], \"offset\", !1, !1, 2)), super.isReady() && (((e = this._diffuseEffectWrapper) == null ? void 0 : e.effect.isReady()) ?? !1);\n }\n /**\n * Gets the number of particles in this object\n * @returns The number of particles\n */\n get numParticles() {\n return this._numParticles;\n }\n /**\n * Sets the number of particles in this object\n * @param num The number of particles to take into account\n */\n setNumParticles(e) {\n this._numParticles = e;\n }\n /**\n * Render the diffuse texture for this object\n */\n renderDiffuseTexture() {\n const e = this.numParticles;\n if (!this._diffuseEffectWrapper || e === 0)\n return;\n const t = this._diffuseEffectWrapper._drawWrapper, i = t.effect;\n this._engine.enableEffect(t), this._engine.bindBuffers(this.vertexBuffers, this.indexBuffer, i), i.setMatrix(\"view\", this._scene.getViewMatrix()), i.setMatrix(\"projection\", this._scene.getProjectionMatrix()), this._particleSize !== null && i.setFloat2(\"size\", this._particleSize, this._particleSize), this.useInstancing ? this._engine.drawArraysType(7, 0, 4, e) : this._engine.drawElementsType(0, 0, e);\n }\n /**\n * Releases the ressources used by the class\n */\n dispose() {\n var e;\n super.dispose(), (e = this._diffuseEffectWrapper) == null || e.dispose();\n for (const t in this._vertexBuffers)\n this._vertexBuffers[t].dispose();\n this._vertexBuffers = {};\n }\n}\nconst fW = \"copyTextureToTexturePixelShader\", pW = `uniform float conversion;uniform sampler2D textureSampler;varying vec2 vUV;\n#include\nvoid main(void) \n{vec4 color=texture2D(textureSampler,vUV);\n#ifdef DEPTH_TEXTURE\ngl_FragDepth=color.r;\n#else\nif (conversion==1.) {color=toLinearSpace(color);} else if (conversion==2.) {color=toGammaSpace(color);}\ngl_FragColor=color;\n#endif\n}\n`;\nz.ShadersStore[fW] = pW;\nvar _y;\n(function(a) {\n a[a.None = 0] = \"None\", a[a.ToLinearSpace = 1] = \"ToLinearSpace\", a[a.ToGammaSpace = 2] = \"ToGammaSpace\";\n})(_y || (_y = {}));\nclass _W {\n _textureIsInternal(e) {\n return e.getInternalTexture === void 0;\n }\n /**\n * Constructs a new instance of the class\n * @param engine The engine to use for the copy\n * @param isDepthTexture True means that we should write (using gl_FragDepth) into the depth texture attached to the destination (default: false)\n */\n constructor(e, t = !1) {\n this._engine = e, this._isDepthTexture = t, this._renderer = new c_(e), this._effectWrapper = new to({\n engine: e,\n name: \"CopyTextureToTexture\",\n fragmentShader: \"copyTextureToTexture\",\n useShaderStore: !0,\n uniformNames: [\"conversion\"],\n samplerNames: [\"textureSampler\"],\n defines: t ? [\"#define DEPTH_TEXTURE\"] : []\n }), this._effectWrapper.onApplyObservable.add(() => {\n t && (e.setState(!1), e.setDepthBuffer(!0), e.depthCullingState.depthMask = !0, e.depthCullingState.depthFunc = 519), this._textureIsInternal(this._source) ? this._effectWrapper.effect._bindTexture(\"textureSampler\", this._source) : this._effectWrapper.effect.setTexture(\"textureSampler\", this._source), this._effectWrapper.effect.setFloat(\"conversion\", this._conversion);\n });\n }\n /**\n * Indicates if the effect is ready to be used for the copy\n * @returns true if \"copy\" can be called without delay, else false\n */\n isReady() {\n return this._effectWrapper.effect.isReady();\n }\n /**\n * Copy one texture into another\n * @param source The source texture\n * @param destination The destination texture\n * @param conversion The conversion mode that should be applied when copying\n * @returns\n */\n copy(e, t, i = 0) {\n if (!this.isReady())\n return !1;\n this._source = e, this._conversion = i;\n const s = this._engine.depthCullingState.depthFunc;\n return this._renderer.render(this._effectWrapper, t), this._isDepthTexture && s && (this._engine.depthCullingState.depthFunc = s), !0;\n }\n /**\n * Releases all the resources used by the class\n */\n dispose() {\n this._effectWrapper.dispose(), this._renderer.dispose();\n }\n}\nclass mW {\n get depthRTWrapper() {\n return this._depthRTWrapper;\n }\n constructor(e, t, i, s = 1) {\n this._engine = e, this._copyTextureToTexture = new _W(e, !0), this._depthRTWrapper = this._engine.createRenderTargetTexture({ width: t, height: i }, {\n generateMipMaps: !1,\n type: 0,\n format: 6,\n samplingMode: 1,\n generateDepthBuffer: !0,\n generateStencilBuffer: !1,\n samples: s,\n noColorAttachment: !0,\n label: \"FluidRenderingDepthTextureCopyRTT\"\n });\n const r = this._depthRTWrapper.createDepthStencilTexture(0, !1, !1, 1, void 0, \"FluidRenderingDepthTextureCopyRTTDepthStencil\");\n r.label = `FluidDepthTextureCopy${t}x${i}x${s}`;\n }\n copy(e) {\n return this._copyTextureToTexture.copy(e, this._depthRTWrapper);\n }\n dispose() {\n this._depthRTWrapper.dispose(), this._copyTextureToTexture.dispose();\n }\n}\nconst gW = \"fluidRenderingParticleDepthVertexShader\", xW = `attribute vec3 position;attribute vec2 offset;uniform mat4 view;uniform mat4 projection;uniform vec2 size;varying vec2 uv;varying vec3 viewPos;varying float sphereRadius;\n#ifdef FLUIDRENDERING_VELOCITY\nattribute vec3 velocity;varying float velocityNorm;\n#endif\nvoid main(void) {vec3 cornerPos;cornerPos.xy=vec2(offset.x-0.5,offset.y-0.5)*size;cornerPos.z=0.0;viewPos=(view*vec4(position,1.0)).xyz;gl_Position=projection*vec4(viewPos+cornerPos,1.0);uv=offset;sphereRadius=size.x/2.0;\n#ifdef FLUIDRENDERING_VELOCITY\nvelocityNorm=length(velocity);\n#endif\n}\n`;\nz.ShadersStore[gW] = xW;\nconst vW = \"fluidRenderingParticleDepthPixelShader\", TW = `uniform mat4 projection;varying vec2 uv;varying vec3 viewPos;varying float sphereRadius;\n#ifdef FLUIDRENDERING_VELOCITY\nvarying float velocityNorm;\n#endif\nvoid main(void) {vec3 normal;normal.xy=uv*2.0-1.0;float r2=dot(normal.xy,normal.xy);if (r2>1.0) discard;normal.z=sqrt(1.0-r2);\n#ifndef FLUIDRENDERING_RHS\nnormal.z=-normal.z;\n#endif\nvec4 realViewPos=vec4(viewPos+normal*sphereRadius,1.0);vec4 clipSpacePos=projection*realViewPos;\n#ifdef WEBGPU\ngl_FragDepth=clipSpacePos.z/clipSpacePos.w;\n#else\ngl_FragDepth=(clipSpacePos.z/clipSpacePos.w)*0.5+0.5;\n#endif\n#ifdef FLUIDRENDERING_RHS\nrealViewPos.z=-realViewPos.z;\n#endif\n#ifdef FLUIDRENDERING_VELOCITY\nglFragColor=vec4(realViewPos.z,velocityNorm,0.,1.);\n#else\nglFragColor=vec4(realViewPos.z,0.,0.,1.);\n#endif\n}\n`;\nz.ShadersStore[vW] = TW;\nconst SW = \"fluidRenderingParticleThicknessVertexShader\", bW = `attribute vec3 position;attribute vec2 offset;uniform mat4 view;uniform mat4 projection;uniform vec2 size;varying vec2 uv;void main(void) {vec3 cornerPos;cornerPos.xy=vec2(offset.x-0.5,offset.y-0.5)*size;cornerPos.z=0.0;vec3 viewPos=(view*vec4(position,1.0)).xyz+cornerPos;gl_Position=projection*vec4(viewPos,1.0);uv=offset;}\n`;\nz.ShadersStore[SW] = bW;\nconst EW = \"fluidRenderingParticleThicknessPixelShader\", yW = `uniform float particleAlpha;varying vec2 uv;void main(void) {vec3 normal;normal.xy=uv*2.0-1.0;float r2=dot(normal.xy,normal.xy);if (r2>1.0) discard;float thickness=sqrt(1.0-r2);glFragColor=vec4(vec3(particleAlpha*thickness),1.0);}\n`;\nz.ShadersStore[EW] = yW;\nconst CW = \"fluidRenderingParticleDiffuseVertexShader\", AW = `attribute vec3 position;attribute vec2 offset;attribute vec4 color;uniform mat4 view;uniform mat4 projection;uniform vec2 size;varying vec2 uv;varying vec3 diffuseColor;void main(void) {vec3 cornerPos;cornerPos.xy=vec2(offset.x-0.5,offset.y-0.5)*size;cornerPos.z=0.0;vec3 viewPos=(view*vec4(position,1.0)).xyz+cornerPos;gl_Position=projection*vec4(viewPos,1.0);uv=offset;diffuseColor=color.rgb;}\n`;\nz.ShadersStore[CW] = AW;\nconst RW = \"fluidRenderingParticleDiffusePixelShader\", IW = `uniform float particleAlpha;varying vec2 uv;varying vec3 diffuseColor;void main(void) {vec3 normal;normal.xy=uv*2.0-1.0;float r2=dot(normal.xy,normal.xy);if (r2>1.0) discard;glFragColor=vec4(diffuseColor,1.0);}\n`;\nz.ShadersStore[RW] = IW;\nconst PW = \"fluidRenderingBilateralBlurPixelShader\", MW = `uniform sampler2D textureSampler;uniform int maxFilterSize;uniform vec2 blurDir;uniform float projectedParticleConstant;uniform float depthThreshold;varying vec2 vUV;void main(void) {float depth=textureLod(textureSampler,vUV,0.).x;if (depth>=1e6 || depth<=0.) {glFragColor=vec4(vec3(depth),1.);return;}\nint filterSize=min(maxFilterSize,int(ceil(projectedParticleConstant/depth)));float sigma=float(filterSize)/3.0;float two_sigma2=2.0*sigma*sigma;float sigmaDepth=depthThreshold/3.0;float two_sigmaDepth2=2.0*sigmaDepth*sigmaDepth;float sum=0.;float wsum=0.;float sumVel=0.;for (int x=-filterSize; x<=filterSize; ++x) {vec2 coords=vec2(x);vec2 sampleDepthVel=textureLod(textureSampler,vUV+coords*blurDir,0.).rg;float r=dot(coords,coords);float w=exp(-r/two_sigma2);float rDepth=sampleDepthVel.r-depth;float wd=exp(-rDepth*rDepth/two_sigmaDepth2);sum+=sampleDepthVel.r*w*wd;sumVel+=sampleDepthVel.g*w*wd;wsum+=w*wd;}\nglFragColor=vec4(sum/wsum,sumVel/wsum,0.,1.);}\n`;\nz.ShadersStore[PW] = MW;\nconst DW = \"fluidRenderingStandardBlurPixelShader\", OW = `uniform sampler2D textureSampler;uniform int filterSize;uniform vec2 blurDir;varying vec2 vUV;void main(void) {vec4 s=textureLod(textureSampler,vUV,0.);if (s.r==0.) {glFragColor=vec4(0.,0.,0.,1.);return;}\nfloat sigma=float(filterSize)/3.0;float twoSigma2=2.0*sigma*sigma;vec4 sum=vec4(0.);float wsum=0.;for (int x=-filterSize; x<=filterSize; ++x) {vec2 coords=vec2(x);vec4 sampl=textureLod(textureSampler,vUV+coords*blurDir,0.);float w=exp(-coords.x*coords.x/twoSigma2);sum+=sampl*w;wsum+=w;}\nsum/=wsum;glFragColor=vec4(sum.rgb,1.);}\n`;\nz.ShadersStore[DW] = OW;\nconst wW = \"fluidRenderingRenderPixelShader\", NW = `#define DISABLE_UNIFORMITY_ANALYSIS\n#define IOR 1.333\n#define ETA 1.0/IOR\n#define F0 0.02\nuniform sampler2D textureSampler;uniform sampler2D depthSampler;\n#ifdef FLUIDRENDERING_DIFFUSETEXTURE\nuniform sampler2D diffuseSampler;\n#else\nuniform vec3 diffuseColor;\n#endif\n#ifdef FLUIDRENDERING_FIXED_THICKNESS\nuniform float thickness;uniform sampler2D bgDepthSampler;\n#else\nuniform float minimumThickness;uniform sampler2D thicknessSampler;\n#endif\n#ifdef FLUIDRENDERING_ENVIRONMENT\nuniform samplerCube reflectionSampler;\n#endif\n#if defined(FLUIDRENDERING_DEBUG) && defined(FLUIDRENDERING_DEBUG_TEXTURE)\nuniform sampler2D debugSampler;\n#endif\nuniform mat4 viewMatrix;uniform mat4 projectionMatrix;uniform mat4 invProjectionMatrix;uniform vec2 texelSize;uniform vec3 dirLight;uniform float cameraFar;uniform float density;uniform float refractionStrength;uniform float fresnelClamp;uniform float specularPower;varying vec2 vUV;vec3 computeViewPosFromUVDepth(vec2 texCoord,float depth) {vec4 ndc;ndc.xy=texCoord*2.0-1.0;\n#ifdef FLUIDRENDERING_RHS\nndc.z=-projectionMatrix[2].z+projectionMatrix[3].z/depth;\n#else\nndc.z=projectionMatrix[2].z+projectionMatrix[3].z/depth;\n#endif\nndc.w=1.0;vec4 eyePos=invProjectionMatrix*ndc;eyePos.xyz/=eyePos.w;return eyePos.xyz;}\nvec3 getViewPosFromTexCoord(vec2 texCoord) {float depth=textureLod(depthSampler,texCoord,0.).x;return computeViewPosFromUVDepth(texCoord,depth);}\nvoid main(void) {vec2 texCoord=vUV;\n#if defined(FLUIDRENDERING_DEBUG) && defined(FLUIDRENDERING_DEBUG_TEXTURE)\nvec4 color=texture2D(debugSampler,texCoord);\n#ifdef FLUIDRENDERING_DEBUG_DEPTH\nglFragColor=vec4(color.rgb/vec3(2.0),1.);if (color.r>0.999 && color.g>0.999) {glFragColor=texture2D(textureSampler,texCoord);}\n#else\nglFragColor=vec4(color.rgb,1.);if (color.r<0.001 && color.g<0.001 && color.b<0.001) {glFragColor=texture2D(textureSampler,texCoord);}\n#endif\nreturn;\n#endif\nvec2 depthVel=textureLod(depthSampler,texCoord,0.).rg;float depth=depthVel.r;\n#ifndef FLUIDRENDERING_FIXED_THICKNESS\nfloat thickness=texture2D(thicknessSampler,texCoord).x;\n#else\nfloat bgDepth=texture2D(bgDepthSampler,texCoord).x;float depthNonLinear=projectionMatrix[2].z+projectionMatrix[3].z/depth;depthNonLinear=depthNonLinear*0.5+0.5;\n#endif\nvec4 backColor=texture2D(textureSampler,texCoord);\n#ifndef FLUIDRENDERING_FIXED_THICKNESS\nif (depth>=cameraFar || depth<=0. || thickness<=minimumThickness) {\n#else\nif (depth>=cameraFar || depth<=0. || bgDepth<=depthNonLinear) {\n#endif\n#ifdef FLUIDRENDERING_COMPOSITE_MODE\nglFragColor.rgb=backColor.rgb*backColor.a;glFragColor.a=backColor.a;\n#else\nglFragColor=backColor;\n#endif\nreturn;}\nvec3 viewPos=computeViewPosFromUVDepth(texCoord,depth);vec3 ddx=getViewPosFromTexCoord(texCoord+vec2(texelSize.x,0.))-viewPos;vec3 ddy=getViewPosFromTexCoord(texCoord+vec2(0.,texelSize.y))-viewPos;vec3 ddx2=viewPos-getViewPosFromTexCoord(texCoord+vec2(-texelSize.x,0.));if (abs(ddx.z)>abs(ddx2.z)) {ddx=ddx2;}\nvec3 ddy2=viewPos-getViewPosFromTexCoord(texCoord+vec2(0.,-texelSize.y));if (abs(ddy.z)>abs(ddy2.z)) {ddy=ddy2;}\nvec3 normal=normalize(cross(ddy,ddx));\n#ifdef FLUIDRENDERING_RHS\nnormal=-normal;\n#endif\n#ifndef WEBGPU\nif(isnan(normal.x) || isnan(normal.y) || isnan(normal.z) || isinf(normal.x) || isinf(normal.y) || isinf(normal.z)) {normal=vec3(0.,0.,-1.);}\n#endif\n#if defined(FLUIDRENDERING_DEBUG) && defined(FLUIDRENDERING_DEBUG_SHOWNORMAL)\nglFragColor=vec4(normal*0.5+0.5,1.0);return;\n#endif\nvec3 rayDir=normalize(viewPos); \n#ifdef FLUIDRENDERING_DIFFUSETEXTURE\nvec3 diffuseColor=textureLod(diffuseSampler,texCoord,0.0).rgb;\n#endif\nvec3 lightDir=normalize(vec3(viewMatrix*vec4(-dirLight,0.)));vec3 H =normalize(lightDir-rayDir);float specular=pow(max(0.0,dot(H,normal)),specularPower);\n#ifdef FLUIDRENDERING_DEBUG_DIFFUSERENDERING\nfloat diffuse =max(0.0,dot(lightDir,normal))*1.0;glFragColor=vec4(vec3(0.1) /*ambient*/+vec3(0.42,0.50,1.00)*diffuse+vec3(0,0,0.2)+specular,1.);return;\n#endif\nvec3 refractionDir=refract(rayDir,normal,ETA);vec4 transmitted=textureLod(textureSampler,vec2(texCoord+refractionDir.xy*thickness*refractionStrength),0.0);\n#ifdef FLUIDRENDERING_COMPOSITE_MODE\nif (transmitted.a==0.) transmitted.a=thickness;\n#endif\nvec3 transmittance=exp(-density*thickness*(1.0-diffuseColor)); \nvec3 refractionColor=transmitted.rgb*transmittance;\n#ifdef FLUIDRENDERING_ENVIRONMENT\nvec3 reflectionDir=reflect(rayDir,normal);vec3 reflectionColor=(textureCube(reflectionSampler,reflectionDir).rgb);float fresnel=clamp(F0+(1.0-F0)*pow(1.0-dot(normal,-rayDir),5.0),0.,fresnelClamp);vec3 finalColor=mix(refractionColor,reflectionColor,fresnel)+specular;\n#else\nvec3 finalColor=refractionColor+specular;\n#endif\n#ifdef FLUIDRENDERING_VELOCITY\nfloat velocity=depthVel.g;finalColor=mix(finalColor,vec3(1.0),smoothstep(0.3,1.0,velocity/6.0));\n#endif\nglFragColor=vec4(finalColor,transmitted.a);}\n`;\nz.ShadersStore[wW] = NW;\nObject.defineProperty(De.prototype, \"fluidRenderer\", {\n get: function() {\n return this._fluidRenderer;\n },\n set: function(a) {\n this._fluidRenderer = a;\n },\n enumerable: !0,\n configurable: !0\n});\nDe.prototype.enableFluidRenderer = function() {\n return this._fluidRenderer ? this._fluidRenderer : (this._fluidRenderer = new Jv(this), this._fluidRenderer);\n};\nDe.prototype.disableFluidRenderer = function() {\n var a;\n (a = this._fluidRenderer) == null || a.dispose(), this._fluidRenderer = null;\n};\nfunction FW(a) {\n return !!a.particleSystem;\n}\nfunction LW(a) {\n return !!a.addBuffers;\n}\nclass BW {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(e) {\n this.name = me.NAME_FLUIDRENDERER, this.scene = e;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._gatherActiveCameraRenderTargetsStage.registerStep(me.STEP_GATHERACTIVECAMERARENDERTARGETS_FLUIDRENDERER, this, this._gatherActiveCameraRenderTargets), this.scene._afterCameraDrawStage.registerStep(me.STEP_AFTERCAMERADRAW_FLUIDRENDERER, this, this._afterCameraDraw);\n }\n _gatherActiveCameraRenderTargets(e) {\n var t;\n (t = this.scene.fluidRenderer) == null || t._prepareRendering();\n }\n _afterCameraDraw(e) {\n var t;\n (t = this.scene.fluidRenderer) == null || t._render(e);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n const e = this.scene.fluidRenderer;\n if (!e)\n return;\n const t = /* @__PURE__ */ new Set();\n for (let i = 0; i < e.renderObjects.length; ++i) {\n const s = e.renderObjects[i].object;\n if (LW(s)) {\n const r = s.vertexBuffers;\n for (const n in r)\n t.add(r[n].getWrapperBuffer());\n }\n }\n t.forEach((i) => {\n i._rebuild();\n });\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n this.scene.disableFluidRenderer();\n }\n}\nclass Jv {\n /** @internal */\n static _SceneComponentInitialization(e) {\n let t = e._getComponent(me.NAME_FLUIDRENDERER);\n t || (t = new BW(e), e._addComponent(t));\n }\n /**\n * Initializes the class\n * @param scene Scene in which the objects are part of\n */\n constructor(e) {\n this._scene = e, this._engine = e.getEngine(), this._onEngineResizeObserver = null, this.renderObjects = [], this.targetRenderers = [], this._cameras = /* @__PURE__ */ new Map(), Jv._SceneComponentInitialization(this._scene), this._onEngineResizeObserver = this._engine.onResizeObservable.add(() => {\n this._initialize();\n });\n }\n /**\n * Reinitializes the class\n * Can be used if you change the object priority (FluidRenderingObject.priority), to make sure the objects are rendered in the right order\n */\n recreate() {\n this._sortRenderingObjects(), this._initialize();\n }\n /**\n * Gets the render object corresponding to a particle system (null if the particle system is not rendered as a fluid)\n * @param ps The particle system\n * @returns the render object corresponding to this particle system if any, otherwise null\n */\n getRenderObjectFromParticleSystem(e) {\n const t = this._getParticleSystemIndex(e);\n return t !== -1 ? this.renderObjects[t] : null;\n }\n /**\n * Adds a particle system to the fluid renderer.\n * @param ps particle system\n * @param generateDiffuseTexture True if you want to generate a diffuse texture from the particle system and use it as part of the fluid rendering (default: false)\n * @param targetRenderer The target renderer used to display the particle system as a fluid. If not provided, the method will create a new one\n * @param camera The camera used by the target renderer (if the target renderer is created by the method)\n * @returns the render object corresponding to the particle system\n */\n addParticleSystem(e, t, i, s) {\n const r = new uW(this._scene, e);\n r.onParticleSizeChanged.add(() => this._setParticleSizeForRenderTargets()), i || (i = new py(this._scene, s), this.targetRenderers.push(i)), i._onUseVelocityChanged.hasObservers() || i._onUseVelocityChanged.add(() => this._setUseVelocityForRenderObject()), t !== void 0 && (i.generateDiffuseTexture = t);\n const n = { object: r, targetRenderer: i };\n return this.renderObjects.push(n), this._sortRenderingObjects(), this._setParticleSizeForRenderTargets(), n;\n }\n /**\n * Adds a custom particle set to the fluid renderer.\n * @param buffers The list of buffers (should contain at least a \"position\" buffer!)\n * @param numParticles Number of particles in each buffer\n * @param generateDiffuseTexture True if you want to generate a diffuse texture from buffers and use it as part of the fluid rendering (default: false). For the texture to be generated correctly, you need a \"color\" buffer in the set!\n * @param targetRenderer The target renderer used to display the particle system as a fluid. If not provided, the method will create a new one\n * @param camera The camera used by the target renderer (if the target renderer is created by the method)\n * @returns the render object corresponding to the custom particle set\n */\n addCustomParticles(e, t, i, s, r) {\n const n = new dW(this._scene, e, t);\n n.onParticleSizeChanged.add(() => this._setParticleSizeForRenderTargets()), s || (s = new py(this._scene, r), this.targetRenderers.push(s)), s._onUseVelocityChanged.hasObservers() || s._onUseVelocityChanged.add(() => this._setUseVelocityForRenderObject()), i !== void 0 && (s.generateDiffuseTexture = i);\n const o = { object: n, targetRenderer: s };\n return this.renderObjects.push(o), this._sortRenderingObjects(), this._setParticleSizeForRenderTargets(), o;\n }\n /**\n * Removes a render object from the fluid renderer\n * @param renderObject the render object to remove\n * @param removeUnusedTargetRenderer True to remove/dispose of the target renderer if it's not used anymore (default: true)\n * @returns True if the render object has been found and released, else false\n */\n removeRenderObject(e, t = !0) {\n const i = this.renderObjects.indexOf(e);\n return i === -1 ? !1 : (e.object.dispose(), this.renderObjects.splice(i, 1), t && this._removeUnusedTargetRenderers() ? this._initialize() : this._setParticleSizeForRenderTargets(), !0);\n }\n _sortRenderingObjects() {\n this.renderObjects.sort((e, t) => e.object.priority < t.object.priority ? -1 : e.object.priority > t.object.priority ? 1 : 0);\n }\n _removeUnusedTargetRenderers() {\n const e = {};\n for (let s = 0; s < this.renderObjects.length; ++s) {\n const r = this.renderObjects[s].targetRenderer;\n e[this.targetRenderers.indexOf(r)] = !0;\n }\n let t = !1;\n const i = [];\n for (let s = 0; s < this.targetRenderers.length; ++s)\n e[s] ? i.push(this.targetRenderers[s]) : (this.targetRenderers[s].dispose(), t = !0);\n return t && (this.targetRenderers.length = 0, this.targetRenderers.push(...i)), t;\n }\n _getParticleSystemIndex(e) {\n for (let t = 0; t < this.renderObjects.length; ++t) {\n const i = this.renderObjects[t].object;\n if (FW(i) && i.particleSystem === e)\n return t;\n }\n return -1;\n }\n _initialize() {\n for (let i = 0; i < this.targetRenderers.length; ++i)\n this.targetRenderers[i].dispose();\n const e = /* @__PURE__ */ new Map();\n for (let i = 0; i < this.targetRenderers.length; ++i) {\n const s = this.targetRenderers[i];\n if (s._initialize(), s.camera && s._renderPostProcess) {\n let r = e.get(s.camera);\n r || (r = [[], {}], e.set(s.camera, r)), r[0].push(s), s.camera.attachPostProcess(s._renderPostProcess, i);\n }\n }\n let t = e.keys();\n for (let i = t.next(); i.done !== !0; i = t.next()) {\n const s = i.value, r = e.get(s), n = s._getFirstPostProcess();\n if (!n)\n continue;\n const [o, l] = r;\n n.onSizeChangedObservable.add(() => {\n var h;\n n.inputTexture.depthStencilTexture || n.inputTexture.createDepthStencilTexture(0, !0, this._engine.isStencilEnable, o[0].samples, this._engine.isStencilEnable ? 13 : 14, `PostProcessRTTDepthStencil-${n.name}`);\n for (const c of o) {\n const u = (h = c._thicknessRenderTarget) == null ? void 0 : h.renderTarget, d = u == null ? void 0 : u.texture;\n if (u && d) {\n const f = d.width + \"_\" + d.height;\n let p = l[f];\n p || (p = l[f] = new mW(this._engine, d.width, d.height)), p.depthRTWrapper.shareDepth(u);\n }\n }\n });\n }\n t = this._cameras.keys();\n for (let i = t.next(); i.done !== !0; i = t.next()) {\n const s = i.value, n = this._cameras.get(s)[1], o = e.get(s);\n if (o)\n for (const l in n)\n o[1][l] || n[l].dispose();\n else\n for (const l in n)\n n[l].dispose();\n }\n this._cameras.clear(), this._cameras = e, this._setParticleSizeForRenderTargets();\n }\n _setParticleSizeForRenderTargets() {\n const e = /* @__PURE__ */ new Map();\n for (let t = 0; t < this.renderObjects.length; ++t) {\n const i = this.renderObjects[t];\n let s = e.get(i.targetRenderer);\n s === void 0 && (s = 0), e.set(i.targetRenderer, Math.max(s, i.object.particleSize));\n }\n e.forEach((t, i) => {\n i._depthRenderTarget && (i._depthRenderTarget.particleSize = t);\n });\n }\n _setUseVelocityForRenderObject() {\n for (const e of this.renderObjects)\n e.object.useVelocity = e.targetRenderer.useVelocity;\n }\n /** @internal */\n _prepareRendering() {\n for (const e of this.targetRenderers)\n if (e.needInitialization) {\n this._initialize();\n return;\n }\n }\n /** @internal */\n _render(e) {\n var i;\n for (let s = 0; s < this.targetRenderers.length; ++s)\n (!e || this.targetRenderers[s].camera === e) && this.targetRenderers[s]._clearTargets();\n const t = this._cameras.keys();\n for (let s = t.next(); s.done !== !0; s = t.next()) {\n const r = s.value, n = this._cameras.get(r);\n if (e && r !== e)\n continue;\n const o = r._getFirstPostProcess();\n if (!o)\n continue;\n const l = (i = o.inputTexture) == null ? void 0 : i.depthStencilTexture;\n if (l) {\n const [h, c] = n;\n for (const u of h)\n u._bgDepthTexture = l;\n for (const u in c)\n c[u].copy(l);\n }\n }\n for (let s = 0; s < this.renderObjects.length; ++s) {\n const r = this.renderObjects[s];\n (!e || r.targetRenderer.camera === e) && r.targetRenderer._render(r.object);\n }\n }\n /**\n * Disposes of all the ressources used by the class\n */\n dispose() {\n this._engine.onResizeObservable.remove(this._onEngineResizeObserver), this._onEngineResizeObserver = null;\n for (let e = 0; e < this.renderObjects.length; ++e)\n this.renderObjects[e].object.dispose();\n for (let e = 0; e < this.targetRenderers.length; ++e)\n this.targetRenderers[e].dispose();\n this._cameras.forEach((e) => {\n const t = e[1];\n for (const i in t)\n t[i].dispose();\n }), this.renderObjects = [], this.targetRenderers = [], this._cameras.clear();\n }\n}\nclass KK {\n /**\n * Enables or disables the RSM generation.\n */\n get enable() {\n return this._enable;\n }\n set enable(e) {\n this._enable !== e && (this._enable = e, this._customRenderTarget(e));\n }\n /**\n * Gets the position texture generated by the RSM process.\n */\n get positionWorldTexture() {\n return this._mrt.textures[0];\n }\n /**\n * Gets the normal texture generated by the RSM process.\n */\n get normalWorldTexture() {\n return this._mrt.textures[1];\n }\n /**\n * Gets the flux texture generated by the RSM process.\n */\n get fluxTexture() {\n return this._mrt.textures[2];\n }\n /**\n * Gets the render list used to generate the RSM textures.\n */\n get renderList() {\n return this._mrt.renderList;\n }\n /**\n * Gets the light used to generate the RSM textures.\n */\n get light() {\n return this._light;\n }\n /**\n * Creates a new RSM for the given light.\n * @param scene The scene\n * @param light The light to use to generate the RSM textures\n * @param textureDimensions The dimensions of the textures to generate. Default: \\{ width: 512, height: 512 \\}\n */\n constructor(e, t, i = { width: 512, height: 512 }) {\n this._lightTransformMatrix = O.Identity(), this._enable = !1, this.forceUpdateLightParameters = !1, this._scene = e, this._light = t, this._textureDimensions = i, this._regularMatToMatWithPlugin = /* @__PURE__ */ new Map(), this._counters = [{ name: \"RSM Generation \" + t.name, value: 0 }], this._createMultiRenderTarget(), this._recomputeLightTransformationMatrix(), this.enable = !0;\n }\n /**\n * Sets the dimensions of the textures to generate.\n * @param dimensions The dimensions of the textures to generate.\n */\n setTextureDimensions(e) {\n const t = this._mrt.renderList;\n this._textureDimensions = e, this._disposeMultiRenderTarget(), this._createMultiRenderTarget(), t == null || t.forEach((i) => {\n this._addMeshToMRT(i);\n });\n }\n /**\n * Adds the given mesh to the render list used to generate the RSM textures.\n * @param mesh The mesh to add to the render list used to generate the RSM textures. If not provided, all scene meshes will be added to the render list.\n */\n addMesh(e) {\n e ? this._addMeshToMRT(e) : this._scene.meshes.forEach((t) => {\n this._addMeshToMRT(t);\n }), this._recomputeLightTransformationMatrix();\n }\n /**\n * Recomputes the light transformation matrix. Call this method if you manually changed the light position / direction / etc. and you want to update the RSM textures accordingly.\n * You should also call this method if you add/remove meshes to/from the render list.\n */\n updateLightParameters() {\n this._recomputeLightTransformationMatrix();\n }\n /**\n * Gets the light transformation matrix used to generate the RSM textures.\n */\n get lightTransformationMatrix() {\n return this.forceUpdateLightParameters && this.updateLightParameters(), this._lightTransformMatrix;\n }\n /**\n * Gets the GPU time spent to generate the RSM textures.\n */\n get countersGPU() {\n return this._counters;\n }\n /**\n * Disposes the RSM.\n */\n dispose() {\n this._disposeMultiRenderTarget();\n }\n _createMultiRenderTarget() {\n const e = this._light.name, t = this._scene.getEngine().getCaps(), i = t.rg11b10ufColorRenderable ? 13 : 2, s = t.rg11b10ufColorRenderable ? 4 : 5;\n this._mrt = new Oo(\n \"RSMmrt_\" + e,\n this._textureDimensions,\n 3,\n // number of RTT - position / normal / flux\n this._scene,\n {\n types: [2, 11, i],\n samplingModes: [2, 2, 2],\n generateMipMaps: !1,\n targetTypes: [3553, 3553, 3553],\n formats: [5, 5, s]\n },\n [\"RSMPosition_\" + e, \"RSMNormal_\" + e, \"RSMFlux_\" + e]\n ), this._mrt.renderList = [], this._mrt.clearColor = new Ce(0, 0, 0, 1), this._mrt.noPrePassRenderer = !0;\n let r, n;\n const o = this._scene.getEngine().supportsUniformBuffers;\n o && (r = this._scene.createSceneUniformBuffer(`Scene for RSM (light \"${e}\")`));\n let l;\n this._mrt.onBeforeBindObservable.add(() => {\n n = this._scene.getSceneUniformBuffer(), l = this._light.shadowEnabled, this._light.shadowEnabled = !1;\n }), this._mrt.onBeforeRenderObservable.add((h) => {\n r && this._scene.setSceneUniformBuffer(r);\n const c = this._light.getViewMatrix(h), u = this._light.getProjectionMatrix(c || void 0, this._mrt.renderList || void 0);\n c && u && this._scene.setTransformMatrix(c, u), o && (this._scene.getSceneUniformBuffer().unbindEffect(), this._scene.finalizeSceneUbo());\n }), this._mrt.onAfterUnbindObservable.add(() => {\n var h;\n r && this._scene.setSceneUniformBuffer(n), this._scene.updateTransformMatrix(), this._light.shadowEnabled = l, this._counters[0].value = ((h = this._mrt.renderTarget.gpuTimeInFrame) == null ? void 0 : h.counter.lastSecAverage) ?? 0;\n }), this._customRenderTarget(!0);\n }\n _customRenderTarget(e) {\n const t = this._scene.customRenderTargets.indexOf(this._mrt);\n e ? t === -1 && this._scene.customRenderTargets.push(this._mrt) : t !== -1 && this._scene.customRenderTargets.splice(t, 1);\n }\n _recomputeLightTransformationMatrix() {\n const e = this._light.getViewMatrix(), t = this._light.getProjectionMatrix(e || void 0, this._mrt.renderList || void 0);\n e && t && e.multiplyToRef(t, this._lightTransformMatrix);\n }\n _addMeshToMRT(e) {\n var s;\n (s = this._mrt.renderList) == null || s.push(e);\n const t = e.material;\n if (e.getTotalVertices() === 0 || !t)\n return;\n let i = this._regularMatToMatWithPlugin.get(t);\n if (!i && (i = t.clone(\"RSMCreate_\" + t.name) || void 0, i)) {\n Object.defineProperty(i, \"canRenderToMRT\", {\n get: function() {\n return !1;\n },\n enumerable: !0,\n configurable: !0\n }), i.disableLighting = !0;\n const r = new ql(i);\n r.isEnabled = !0, r.light = this._light, this._regularMatToMatWithPlugin.set(t, i);\n }\n this._mrt.setMaterialForRendering(e, i);\n }\n _disposeMultiRenderTarget() {\n this._customRenderTarget(!1), this._mrt.dispose();\n }\n}\nclass VW extends dr {\n constructor() {\n super(...arguments), this.RSMCREATE = !1, this.RSMCREATE_PROJTEXTURE = !1, this.RSMCREATE_LIGHT_IS_SPOT = !1;\n }\n}\nclass ql extends br {\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled), this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n /**\n * Create a new RSMCreatePluginMaterial\n * @param material Parent material of the plugin\n */\n constructor(e) {\n super(e, ql.Name, 300, new VW()), this._lightColor = new re(), this._hasProjectionTexture = !1, this._isEnabled = !1, this.isEnabled = !1, this._internalMarkAllSubMeshesAsTexturesDirty = e._dirtyCallbacks[1], this._varAlbedoName = e instanceof Ut ? \"surfaceAlbedo\" : \"baseColor.rgb\";\n }\n prepareDefines(e) {\n e.RSMCREATE = this._isEnabled, this._hasProjectionTexture = !1;\n const t = this.light.getTypeID() === at.LIGHTTYPEID_SPOTLIGHT;\n if (t) {\n const i = this.light;\n this._hasProjectionTexture = i.projectionTexture ? i.projectionTexture.isReady() : !1;\n }\n e.RSMCREATE_PROJTEXTURE = this._hasProjectionTexture, e.RSMCREATE_LIGHT_IS_SPOT = t;\n }\n getClassName() {\n return \"RSMCreatePluginMaterial\";\n }\n getUniforms() {\n return {\n ubo: [\n { name: \"rsmTextureProjectionMatrix\", size: 16, type: \"mat4\" },\n { name: \"rsmSpotInfo\", size: 4, type: \"vec4\" },\n { name: \"rsmLightColor\", size: 3, type: \"vec3\" },\n { name: \"rsmLightPosition\", size: 3, type: \"vec3\" }\n ],\n fragment: `#ifdef RSMCREATE\n uniform mat4 rsmTextureProjectionMatrix;\n uniform vec4 rsmSpotInfo;\n uniform vec3 rsmLightColor;\n uniform vec3 rsmLightPosition;\n #endif`\n };\n }\n getSamplers(e) {\n e.push(\"rsmTextureProjectionSampler\");\n }\n bindForSubMesh(e) {\n if (this._isEnabled && (this.light.diffuse.scaleToRef(this.light.getScaledIntensity(), this._lightColor), e.updateColor3(\"rsmLightColor\", this._lightColor), this.light.getTypeID() === at.LIGHTTYPEID_SPOTLIGHT)) {\n const t = this.light;\n this._hasProjectionTexture && (e.updateMatrix(\"rsmTextureProjectionMatrix\", t.projectionTextureMatrix), e.setTexture(\"rsmTextureProjectionSampler\", t.projectionTexture));\n const i = w.Vector3[0];\n t.computeTransformedInformation() ? (e.updateFloat3(\"rsmLightPosition\", this.light.transformedPosition.x, this.light.transformedPosition.y, this.light.transformedPosition.z), t.transformedDirection.normalizeToRef(i)) : (e.updateFloat3(\"rsmLightPosition\", this.light.position.x, this.light.position.y, this.light.position.z), t.direction.normalizeToRef(i)), e.updateFloat4(\"rsmSpotInfo\", i.x, i.y, i.z, Math.cos(t.angle * 0.5));\n }\n }\n getCustomCode(e) {\n return e === \"vertex\" ? null : {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_BEGIN: `\n #ifdef RSMCREATE\n #extension GL_EXT_draw_buffers : require\n #endif\n `,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_DEFINITIONS: `\n #ifdef RSMCREATE\n #ifdef RSMCREATE_PROJTEXTURE\n uniform highp sampler2D rsmTextureProjectionSampler; \n #endif\n layout(location = 0) out highp vec4 glFragData[3];\n vec4 glFragColor;\n #endif\n `,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR: `\n #ifdef RSMCREATE\n vec3 rsmColor = ${this._varAlbedoName} * rsmLightColor;\n #ifdef RSMCREATE_PROJTEXTURE\n {\n vec4 strq = rsmTextureProjectionMatrix * vec4(vPositionW, 1.0);\n strq /= strq.w;\n rsmColor *= texture2D(rsmTextureProjectionSampler, strq.xy).rgb;\n }\n #endif\n #ifdef RSMCREATE_LIGHT_IS_SPOT\n {\n float cosAngle = max(0., dot(rsmSpotInfo.xyz, normalize(vPositionW - rsmLightPosition)));\n rsmColor = sign(cosAngle - rsmSpotInfo.w) * rsmColor;\n }\n #endif\n glFragData[0] = vec4(vPositionW, 1.);\n glFragData[1] = vec4(normalize(normalW) * 0.5 + 0.5, 1.);\n glFragData[2] = vec4(rsmColor, 1.);\n #endif\n `\n };\n }\n}\nql.Name = \"RSMCreate\";\ny([\n I()\n], ql.prototype, \"light\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], ql.prototype, \"isEnabled\", void 0);\nU(\"BABYLON.RSMCreatePluginMaterial\", ql);\nconst UW = \"bilateralBlurPixelShader\", kW = `uniform sampler2D textureSampler;uniform sampler2D depthSampler;uniform sampler2D normalSampler;uniform int filterSize;uniform vec2 blurDir;uniform float depthThreshold;uniform float normalThreshold;varying vec2 vUV;void main(void) {vec3 color=textureLod(textureSampler,vUV,0.).rgb;float depth=textureLod(depthSampler,vUV,0.).x;if (depth>=1e6 || depth<=0.) {glFragColor=vec4(color,1.);return;}\nvec3 normal=textureLod(normalSampler,vUV,0.).rgb;\n#ifdef DECODE_NORMAL\nnormal=normal*2.0-1.0;\n#endif\nfloat sigma=float(filterSize);float two_sigma2=2.0*sigma*sigma;float sigmaDepth=depthThreshold;float two_sigmaDepth2=2.0*sigmaDepth*sigmaDepth;float sigmaNormal=normalThreshold;float two_sigmaNormal2=2.0*sigmaNormal*sigmaNormal;vec3 sum=vec3(0.);float wsum=0.;for (int x=-filterSize; x<=filterSize; ++x) {vec2 coords=vec2(x);vec3 sampleColor=textureLod(textureSampler,vUV+coords*blurDir,0.).rgb;float sampleDepth=textureLod(depthSampler,vUV+coords*blurDir,0.).r;vec3 sampleNormal=textureLod(normalSampler,vUV+coords*blurDir,0.).rgb;\n#ifdef DECODE_NORMAL\nsampleNormal=sampleNormal*2.0-1.0;\n#endif\nfloat r=dot(coords,coords);float w=exp(-r/two_sigma2);float depthDelta=abs(sampleDepth-depth);float wd=step(depthDelta,depthThreshold);vec3 normalDelta=abs(sampleNormal-normal);float wn=step(normalDelta.x+normalDelta.y+normalDelta.z,normalThreshold);sum+=sampleColor*w*wd*wn;wsum+=w*wd*wn;}\nglFragColor=vec4(sum/wsum,1.);}\n`;\nz.ShadersStore[UW] = kW;\nconst GW = \"bilateralBlurQualityPixelShader\", zW = `uniform sampler2D textureSampler;uniform sampler2D depthSampler;uniform sampler2D normalSampler;uniform int filterSize;uniform vec2 blurDir;uniform float depthThreshold;uniform float normalThreshold;varying vec2 vUV;void main(void) {vec3 color=textureLod(textureSampler,vUV,0.).rgb;float depth=textureLod(depthSampler,vUV,0.).x;if (depth>=1e6 || depth<=0.) {glFragColor=vec4(color,1.);return;}\nvec3 normal=textureLod(normalSampler,vUV,0.).rgb;\n#ifdef DECODE_NORMAL\nnormal=normal*2.0-1.0;\n#endif\nfloat sigma=float(filterSize);float two_sigma2=2.0*sigma*sigma;float sigmaDepth=depthThreshold;float two_sigmaDepth2=2.0*sigmaDepth*sigmaDepth;float sigmaNormal=normalThreshold;float two_sigmaNormal2=2.0*sigmaNormal*sigmaNormal;vec3 sum=vec3(0.);float wsum=0.;for (int x=-filterSize; x<=filterSize; ++x) {for (int y=-filterSize; y<=filterSize; ++y) {vec2 coords=vec2(x,y)*blurDir;vec3 sampleColor=textureLod(textureSampler,vUV+coords,0.).rgb;float sampleDepth=textureLod(depthSampler,vUV+coords,0.).r;vec3 sampleNormal=textureLod(normalSampler,vUV+coords,0.).rgb;\n#ifdef DECODE_NORMAL\nsampleNormal=sampleNormal*2.0-1.0;\n#endif\nfloat r=dot(coords,coords);float w=exp(-r/two_sigma2);float rDepth=sampleDepth-depth;float wd=exp(-rDepth*rDepth/two_sigmaDepth2);float rNormal=abs(sampleNormal.x-normal.x)+abs(sampleNormal.y-normal.y)+abs(sampleNormal.z-normal.z);float wn=exp(-rNormal*rNormal/two_sigmaNormal2);sum+=sampleColor*w*wd*wn;wsum+=w*wd*wn;}}\nglFragColor=vec4(sum/wsum,1.);}\n`;\nz.ShadersStore[GW] = zW;\nconst WW = \"rsmGlobalIlluminationPixelShader\", HW = `/**\n* The implementation is an application of the formula found in http:\n* For better results,it also adds a random (noise) rotation to the RSM samples (the noise artifacts are easier to remove than the banding artifacts).\n*/\nprecision highp float;varying vec2 vUV;uniform mat4 rsmLightMatrix;uniform vec4 rsmInfo;uniform vec4 rsmInfo2;uniform sampler2D textureSampler;uniform sampler2D normalSampler;uniform sampler2D rsmPositionW;uniform sampler2D rsmNormalW;uniform sampler2D rsmFlux;uniform sampler2D rsmSamples;\n#ifdef TRANSFORM_NORMAL\nuniform mat4 invView;\n#endif\nfloat mod289(float x){return x-floor(x*(1.0/289.0))*289.0;}\nvec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}\nvec4 perm(vec4 x){return mod289(((x*34.0)+1.0)*x);}\nfloat noise(vec3 p){vec3 a=floor(p);vec3 d=p-a;d=d*d*(3.0-2.0*d);vec4 b=a.xxyy+vec4(0.0,1.0,0.0,1.0);vec4 k1=perm(b.xyxy);vec4 k2=perm(k1.xyxy+b.zzww);vec4 c=k2+a.zzzz;vec4 k3=perm(c);vec4 k4=perm(c+1.0);vec4 o1=fract(k3*(1.0/41.0));vec4 o2=fract(k4*(1.0/41.0));vec4 o3=o2*d.z+o1*(1.0-d.z);vec2 o4=o3.yw*d.x+o3.xz*(1.0-d.x);return o4.y*d.y+o4.x*(1.0-d.y);}\nvec3 computeIndirect(vec3 p,vec3 n) {vec3 indirectDiffuse=vec3(0.);int numSamples=int(rsmInfo.x);float radius=rsmInfo.y;float intensity=rsmInfo.z;float edgeArtifactCorrection=rsmInfo.w;vec4 texRSM=rsmLightMatrix*vec4(p,1.);texRSM.xy/=texRSM.w;texRSM.xy=texRSM.xy*0.5+0.5;float angle=noise(p*rsmInfo2.x);float c=cos(angle);float s=sin(angle);for (int i=0; i1. || uv.y<0. || uv.y>1.) continue;vec3 vplPositionW=textureLod(rsmPositionW,uv,0.).xyz;vec3 vplNormalW=textureLod(rsmNormalW,uv,0.).xyz*2.0-1.0;vec3 vplFlux=textureLod(rsmFlux,uv,0.).rgb;vplPositionW-=vplNormalW*edgeArtifactCorrection; \nfloat dist2=dot(vplPositionW-p,vplPositionW-p);indirectDiffuse+=vplFlux*weightSquare*max(0.,dot(n,vplPositionW-p))*max(0.,dot(vplNormalW,p-vplPositionW))/(dist2*dist2);}\nreturn clamp(indirectDiffuse*intensity,0.0,1.0);}\nvoid main(void) \n{vec3 positionW=texture2D(textureSampler,vUV).xyz;vec3 normalW=texture2D(normalSampler,vUV).xyz;\n#ifdef DECODE_NORMAL\nnormalW=normalW*2.0-1.0;\n#endif\n#ifdef TRANSFORM_NORMAL\nnormalW=(invView*vec4(normalW,0.)).xyz;\n#endif\ngl_FragColor.rgb=computeIndirect(positionW,normalW);gl_FragColor.a=1.0;}\n`;\nz.ShadersStore[WW] = HW;\nconst XW = \"rsmFullGlobalIlluminationPixelShader\", $W = `/**\n* The implementation is a direct application of the formula found in http:\n*/\nprecision highp float;varying vec2 vUV;uniform mat4 rsmLightMatrix;uniform vec4 rsmInfo;uniform sampler2D textureSampler;uniform sampler2D normalSampler;uniform sampler2D rsmPositionW;uniform sampler2D rsmNormalW;uniform sampler2D rsmFlux;\n#ifdef TRANSFORM_NORMAL\nuniform mat4 invView;\n#endif\nvec3 computeIndirect(vec3 p,vec3 n) {vec3 indirectDiffuse=vec3(0.);float intensity=rsmInfo.z;float edgeArtifactCorrection=rsmInfo.w;vec4 texRSM=rsmLightMatrix*vec4(p,1.);texRSM.xy/=texRSM.w;texRSM.xy=texRSM.xy*0.5+0.5;int width=int(rsmInfo.x);int height=int(rsmInfo.y);for (int j=0; j {\n if (t.pluginManager) {\n const i = t.pluginManager.getPlugin(wn.Name);\n i.isEnabled = e;\n }\n }), this.recreateResources(!e));\n }\n /**\n * Defines if the global illumination contribution should be blurred or not (using a bilateral blur). Default is true.\n */\n get enableBlur() {\n return this._enableBlur;\n }\n set enableBlur(e) {\n e !== this._enableBlur && (this._enableBlur = e, this.recreateResources());\n }\n /**\n * Defines if the blur should be done with a better quality but slower or not. Default is false.\n */\n get useQualityBlur() {\n return this._useQualityBlur;\n }\n set useQualityBlur(e) {\n e !== this._useQualityBlur && (this._useQualityBlur = e, this.recreateResources());\n }\n /**\n * Defines if the blur should be done at full resolution or not. Default is false.\n * If this setting is enabled, upampling will be disabled (ignored) as it is not needed anymore.\n */\n get fullSizeBlur() {\n return this._forceFullSizeBlur;\n }\n set fullSizeBlur(e) {\n this._forceFullSizeBlur !== e && (this._forceFullSizeBlur = e, this.recreateResources());\n }\n /**\n * Defines if the upsampling should be done with a better quality but slower or not. Default is false.\n */\n get useQualityUpsampling() {\n return this._useQualityUpsampling;\n }\n set useQualityUpsampling(e) {\n e !== this._useQualityUpsampling && (this._useQualityUpsampling = e, this.recreateResources());\n }\n /**\n * Defines if the debug layer should be enabled or not. Default is false.\n * Use this setting for debugging purpose, to show the global illumination contribution only.\n */\n get showOnlyGI() {\n return this._showOnlyGI;\n }\n set showOnlyGI(e) {\n this._showOnlyGI !== e && (this._showOnlyGI = e, this._debugLayer.isEnabled = e);\n }\n /**\n * Defines if the depth buffer used by the geometry buffer renderer should be 32 bits or not. Default is false (16 bits).\n */\n get use32BitsDepthBuffer() {\n return this._use32BitsDepthBuffer;\n }\n set use32BitsDepthBuffer(e) {\n this._use32BitsDepthBuffer !== e && (this._use32BitsDepthBuffer = e, this.recreateResources());\n }\n /**\n * Sets the output dimensions of the final process. It should normally be the same as the output dimensions of the screen.\n * @param dimensions The dimensions of the output texture (width and height)\n */\n setOutputDimensions(e) {\n this._outputDimensions = e, this.recreateResources();\n }\n /**\n * Sets the dimensions of the GI texture. Try to use the smallest size possible for better performance.\n * @param dimensions The dimensions of the GI texture (width and height)\n */\n setGITextureDimensions(e) {\n this._giTextureDimensions = e, this.recreateResources();\n }\n /**\n * Gets or sets the texture type used by the GI texture. Default is 11.\n */\n get giTextureType() {\n return this._giTextureType;\n }\n set giTextureType(e) {\n this._giTextureType !== e && (this._giTextureType = e, this.recreateResources());\n }\n /**\n * Gets the list of GIRSM used by the manager.\n */\n get giRSM() {\n return this._giRSM;\n }\n /**\n * Adds a (list of) GIRSM to the manager.\n * @param rsm The GIRSM (or array of GIRSM) to add to the manager\n */\n addGIRSM(e) {\n Array.isArray(e) ? this._giRSM.push(...e) : this._giRSM.push(e), this.recreateResources();\n }\n /**\n * Removes a (list of) GIRSM from the manager.\n * @param rsm The GIRSM (or array of GIRSM) to remove from the manager\n */\n removeGIRSM(e) {\n if (Array.isArray(e))\n for (let t = 0; t < e.length; ++t) {\n const i = this._giRSM.indexOf(e[t]);\n i !== -1 && this._giRSM.splice(i, 1);\n }\n else {\n const t = this._giRSM.indexOf(e);\n t !== -1 && this._giRSM.splice(t, 1);\n }\n this._giRSM.length === 0 ? this.enable = !1 : this.recreateResources();\n }\n /**\n * Add a material to the manager. This will enable the global illumination contribution for the material.\n * @param material Material that will be affected by the global illumination contribution. If not provided, all materials of the scene will be affected.\n */\n addMaterial(e) {\n e ? this._addGISupportToMaterial(e) : this._scene.meshes.forEach((t) => {\n t.getTotalVertices() > 0 && t.isEnabled() && t.material && this._addGISupportToMaterial(t.material);\n });\n }\n /**\n * Gets the list of GPU counters used by the manager.\n * GPU timing measurements must be enabled for the counters to be filled (engine.enableGPUTimingMeasurements = true).\n * Only available with WebGPU. You will still get the list of counters with other engines but the values will always be 0.\n */\n get countersGPU() {\n return this._counters;\n }\n /**\n * Recreates the resources used by the manager.\n * You should normally not have to call this method manually, except if you change the useFullTexture property of a GIRSM, because the manager won't track this change.\n * @param disposeGeometryBufferRenderer Defines if the geometry buffer renderer should be disposed and recreated. Default is false.\n */\n recreateResources(e = !1) {\n this._disposePostProcesses(e), this._createPostProcesses(), this._setPluginParameters();\n }\n /**\n * Generates the sample texture used by the the global illumination calculation process.\n * @param maxSamples The maximum number of samples to generate in the texture. Default value is 2048. The numSamples property of the GIRSM should be less than or equal to this value!\n */\n generateSampleTexture(e) {\n var i;\n (i = this._sampleTexture) == null || i.dispose(), this._maxSamples = e;\n const t = new Float32Array(this._maxSamples * 4);\n for (let s = 0; s < this._maxSamples; s++) {\n const r = Math.random(), n = Math.random(), o = r * Math.sin(2 * Math.PI * n), l = r * Math.cos(2 * Math.PI * n);\n t[s * 4 + 0] = o, t[s * 4 + 1] = l, t[s * 4 + 2] = r * r, t[s * 4 + 3] = 1;\n }\n this._sampleTexture = new _i(t, this._maxSamples, 1, 5, this._scene, !1, !1, 1, 1), this._sampleTexture.name = \"GIRSMSamples\";\n }\n /**\n * Disposes the manager.\n */\n dispose() {\n var e;\n this._disposePostProcesses(!0), (e = this._debugLayer.texture) == null || e.dispose(), this._debugLayer.dispose(), this._scene.onBeforeDrawPhaseObservable.remove(this._drawPhaseObserver);\n }\n /**\n * Creates a new GIRSMManager\n * @param scene The scene\n * @param outputDimensions The dimensions of the output texture (width and height). Should normally be the same as the output dimensions of the screen.\n * @param giTextureDimensions The dimensions of the GI texture (width and height). Try to use the smallest size possible for better performance.\n * @param maxSamples The maximum number of samples to generate in the sample texture. Default value is 2048. The numSamples property of the GIRSM should be less than or equal to this value!\n * @param giTextureType The texture type used by the GI texture. Default is 11.\n */\n constructor(e, t, i = { width: 256, height: 256 }, s = 2048, r = 11) {\n this._giRSM = [], this._blurRTT = null, this._blurPostProcesses = null, this._blurXPostprocess = null, this._blurYPostprocess = null, this._upsamplingXPostprocess = null, this._upsamplingYPostprocess = null, this._ppGlobalIllumination = [], this._firstActivation = !0, this._geomBufferEnabled = !1, this._geomBufferEnablePosition = !1, this._tempMatrix = new O(), this._enable = !1, this.pause = !1, this._enableBlur = !0, this._useQualityBlur = !1, this.blurDepthThreshold = 0.05, this.blurNormalThreshold = 0.25, this.blurKernel = 12, this._forceFullSizeBlur = !1, this._useQualityUpsampling = !1, this.upsamplerKernel = 6, this._showOnlyGI = !1, this._use32BitsDepthBuffer = !1, this._scene = e, this._engine = e.getEngine(), this._outputDimensions = t, this._giTextureDimensions = i, this._giTextureType = r, this._materialsWithRenderPlugin = [], this._maxSamples = s, this._debugLayer = new L0(\"debug layer\", null, this._scene, !1), this._debugLayer.isEnabled = !1, this._counters = [], this._countersRTW = [], this.generateSampleTexture(s), this._drawPhaseObserver = this._scene.onBeforeDrawPhaseObservable.add(() => {\n var l, h;\n const n = this._engine._currentRenderTarget;\n let o = !1;\n if (this._enable) {\n this.pause || (this._scene.postProcessManager.directRender(this._ppGlobalIllumination, this._ppGlobalIllumination[0].inputTexture), this._engine.unBindFramebuffer(this._ppGlobalIllumination[0].inputTexture, !0), this._engine.setAlphaMode(0), o = !0, this.enableBlur && this._blurPostProcesses && (this._scene.postProcessManager.directRender(this._blurPostProcesses, this._blurRTT.renderTarget, !0), this._engine.unBindFramebuffer(this._blurRTT.renderTarget, !0)));\n for (let c = 0; c < this._counters.length; ++c) {\n const u = this._countersRTW[c];\n for (let d = 0; d < u.length; ++d)\n d === 0 ? this._counters[c].value = this.pause ? 0 : ((l = u[d].gpuTimeInFrame) == null ? void 0 : l.counter.lastSecAverage) ?? 0 : this.pause || (this._counters[c].value += ((h = u[d].gpuTimeInFrame) == null ? void 0 : h.counter.lastSecAverage) ?? 0);\n }\n this._scene.activeCamera && this._engine.setViewport(this._scene.activeCamera.viewport);\n }\n o && n && this._engine.bindFramebuffer(n);\n });\n }\n _disposePostProcesses(e = !1) {\n var t, i, s, r, n;\n (t = this._blurRTT) == null || t.dispose(), this._blurRTT = null, this._blurPostProcesses = [], (i = this._blurXPostprocess) == null || i.dispose(), this._blurXPostprocess = null, (s = this._blurYPostprocess) == null || s.dispose(), this._blurYPostprocess = null, (r = this._upsamplingXPostprocess) == null || r.dispose(), this._upsamplingXPostprocess = null, (n = this._upsamplingYPostprocess) == null || n.dispose(), this._upsamplingYPostprocess = null;\n for (const o of this._ppGlobalIllumination)\n o.dispose();\n this._ppGlobalIllumination = [], e && (this._geomBufferEnabled ? (this._scene.enableGeometryBufferRenderer(), this._scene.geometryBufferRenderer.enablePosition = this._geomBufferEnablePosition) : this._scene.disableGeometryBufferRenderer()), this._counters = [], this._countersRTW = [];\n }\n _setPluginParameters() {\n this._enable && this._materialsWithRenderPlugin.forEach((e) => {\n if (e.pluginManager) {\n const t = e.pluginManager.getPlugin(wn.Name);\n t.textureGIContrib = this.enableBlur ? this._blurRTT.renderTarget.texture : this._ppGlobalIllumination[0].inputTexture.texture, t.outputTextureWidth = this._outputDimensions.width, t.outputTextureHeight = this._outputDimensions.height;\n }\n });\n }\n _createPostProcesses() {\n var n, o;\n if (!this._enable)\n return;\n const e = this._giTextureType === 13 ? 4 : 5;\n this._firstActivation && (this._firstActivation = !1, this._geomBufferEnabled = !!this._scene.geometryBufferRenderer, this._geomBufferEnablePosition = ((n = this._scene.geometryBufferRenderer) == null ? void 0 : n.enablePosition) ?? !1), this._geomBufferEnabled || this._scene.disableGeometryBufferRenderer();\n const t = this._scene.enableGeometryBufferRenderer(this._enableBlur ? this._outputDimensions : this._giTextureDimensions, this._use32BitsDepthBuffer ? 14 : 15, eT.GeometryBufferTextureTypesAndFormats);\n if (!t)\n throw new Error(\"Geometry buffer renderer is not supported but is required for GIRSMManager.\");\n t.enablePosition = !0, this._geomBufferEnabled || (t.generateNormalsInWorldSpace = !0);\n const i = t.normalsAreUnsigned, s = t.generateNormalsInWorldSpace;\n this._counters.push({ name: \"Geometry buffer renderer\", value: 0 }), this._countersRTW.push([this._scene.geometryBufferRenderer.getGBuffer().renderTarget]);\n let r = \"\";\n i && (r += `#define DECODE_NORMAL\n`), s || (r += `#define TRANSFORM_NORMAL\n`);\n for (let l = 0; l < this._giRSM.length; ++l) {\n const h = this._giRSM[l], c = h.rsm, u = new Be(\"RSMGlobalIllumination\" + l, h.useFullTexture ? \"rsmFullGlobalIllumination\" : \"rsmGlobalIllumination\", {\n ...this._giTextureDimensions,\n uniforms: [\"rsmLightMatrix\", \"rsmInfo\", \"rsmInfo2\", \"invView\"],\n samplers: [\"normalSampler\", \"rsmPositionW\", \"rsmNormalW\", \"rsmFlux\", \"rsmSamples\"],\n defines: r,\n samplingMode: 2,\n engine: this._engine,\n textureType: this._giTextureType,\n textureFormat: e\n });\n this._ppGlobalIllumination.push(u), l !== 0 && (u.shareOutputWith(this._ppGlobalIllumination[0]), u.alphaMode = 1), u.autoClear = !1, u.externalTextureSamplerBinding = !0, u.onApplyObservable.add((d) => {\n d.setTexture(\"textureSampler\", t.getGBuffer().textures[t.getTextureIndex(Et.POSITION_TEXTURE_TYPE)]), d.setTexture(\"normalSampler\", t.getGBuffer().textures[t.getTextureIndex(Et.NORMAL_TEXTURE_TYPE)]), d.setTexture(\"rsmPositionW\", c.positionWorldTexture), d.setTexture(\"rsmNormalW\", c.normalWorldTexture), d.setTexture(\"rsmFlux\", c.fluxTexture), d.setMatrix(\"rsmLightMatrix\", c.lightTransformationMatrix), h.useFullTexture ? d.setFloat4(\"rsmInfo\", c.fluxTexture.getInternalTexture().width, c.fluxTexture.getInternalTexture().height, h.intensity, h.edgeArtifactCorrection) : (d.setTexture(\"rsmSamples\", this._sampleTexture), d.setFloat4(\"rsmInfo\", h.numSamples, h.radius, h.intensity, h.edgeArtifactCorrection), d.setFloat4(\"rsmInfo2\", h.noiseFactor, h.rotateSample ? 1 : 0, c.fluxTexture.getInternalTexture().width, c.fluxTexture.getInternalTexture().height)), s || (this._tempMatrix.copyFrom(this._scene.activeCamera.getViewMatrix()), this._tempMatrix.invert(), d.setMatrix(\"invView\", this._tempMatrix));\n });\n }\n for (const l of this._ppGlobalIllumination)\n l.inputTexture || l.resize(this._giTextureDimensions.width, this._giTextureDimensions.height);\n if (this._counters.push({ name: \"GI generation\", value: 0 }), this._countersRTW.push([this._ppGlobalIllumination[0].inputTexture]), this._enableBlur) {\n const l = this._forceFullSizeBlur ? this._outputDimensions : this._giTextureDimensions;\n this._blurRTT = new Ii(\"GIRSMContribution\", this._outputDimensions, this._scene, {\n type: this._giTextureType,\n format: e,\n generateDepthBuffer: !1\n }), this._blurRTT.wrapU = 0, this._blurRTT.wrapV = 0, this._blurRTT.updateSamplingMode(1), this._blurRTT.skipInitialClear = !0;\n const h = [];\n if (this._counters.push({ name: \"GI blur\", value: 0 }), this._countersRTW.push(h), this._blurXPostprocess = new Be(this._useQualityBlur ? \"BilateralBlur\" : \"BilateralBlurX\", this._useQualityBlur ? \"bilateralBlurQuality\" : \"bilateralBlur\", {\n uniforms: [\"filterSize\", \"blurDir\", \"depthThreshold\", \"normalThreshold\"],\n samplers: [\"depthSampler\", \"normalSampler\"],\n defines: i ? \"#define DECODE_NORMAL\" : void 0,\n size: l,\n samplingMode: 2,\n engine: this._engine,\n textureType: this._giTextureType,\n textureFormat: e\n }), this._blurXPostprocess.onApplyObservable.add((u) => {\n u._bindTexture(\"textureSampler\", this._ppGlobalIllumination[0].inputTexture.texture), u.setTexture(\"depthSampler\", t.getGBuffer().textures[t.getTextureIndex(Et.DEPTH_TEXTURE_TYPE)]), u.setTexture(\"normalSampler\", t.getGBuffer().textures[t.getTextureIndex(Et.NORMAL_TEXTURE_TYPE)]), u.setInt(\"filterSize\", this.blurKernel), u.setFloat2(\"blurDir\", 1 / this._giTextureDimensions.width, this._useQualityBlur ? 1 / this._giTextureDimensions.height : 0), u.setFloat(\"depthThreshold\", this.blurDepthThreshold), u.setFloat(\"normalThreshold\", this.blurNormalThreshold);\n }), this._blurXPostprocess.externalTextureSamplerBinding = !0, this._blurXPostprocess.autoClear = !1, this._useQualityBlur || (this._blurYPostprocess = new Be(\"BilateralBlurY\", \"bilateralBlur\", {\n uniforms: [\"filterSize\", \"blurDir\", \"depthThreshold\", \"normalThreshold\"],\n samplers: [\"depthSampler\", \"normalSampler\"],\n defines: i ? \"#define DECODE_NORMAL\" : void 0,\n size: l,\n samplingMode: 2,\n engine: this._engine,\n textureType: this._giTextureType,\n textureFormat: e\n }), this._blurYPostprocess.autoClear = !1, this._blurYPostprocess.onApplyObservable.add((u) => {\n u.setTexture(\"depthSampler\", t.getGBuffer().textures[t.getTextureIndex(Et.DEPTH_TEXTURE_TYPE)]), u.setTexture(\"normalSampler\", t.getGBuffer().textures[t.getTextureIndex(Et.NORMAL_TEXTURE_TYPE)]), u.setInt(\"filterSize\", this.blurKernel), u.setFloat2(\"blurDir\", 0, 1 / this._giTextureDimensions.height), u.setFloat(\"depthThreshold\", this.blurDepthThreshold), u.setFloat(\"normalThreshold\", this.blurNormalThreshold);\n }), this._blurYPostprocess.resize(l.width, l.height), h.push(this._blurYPostprocess.inputTexture)), this._blurPostProcesses = [this._blurXPostprocess], this._blurYPostprocess && this._blurPostProcesses.push(this._blurYPostprocess), !(this._giTextureDimensions.width >= this._outputDimensions.width && this._giTextureDimensions.height >= this._outputDimensions.height) && !this._forceFullSizeBlur) {\n const u = [];\n this._counters.push({ name: \"GI upsampling\", value: 0 }), this._countersRTW.push(u), this._upsamplingXPostprocess = new Be(this._useQualityUpsampling ? \"BilateralUpsampling\" : \"BilateralUpsamplingX\", this._useQualityUpsampling ? \"bilateralBlurQuality\" : \"bilateralBlur\", {\n uniforms: [\"filterSize\", \"blurDir\", \"depthThreshold\", \"normalThreshold\"],\n samplers: [\"depthSampler\", \"normalSampler\"],\n defines: i ? \"#define DECODE_NORMAL\" : void 0,\n size: l,\n samplingMode: 2,\n engine: this._engine,\n textureType: this._giTextureType,\n textureFormat: e\n }), this._upsamplingXPostprocess.autoClear = !1, this._upsamplingXPostprocess.onApplyObservable.add((d) => {\n d.setTexture(\"depthSampler\", t.getGBuffer().textures[t.getTextureIndex(Et.DEPTH_TEXTURE_TYPE)]), d.setTexture(\"normalSampler\", t.getGBuffer().textures[t.getTextureIndex(Et.NORMAL_TEXTURE_TYPE)]), d.setInt(\"filterSize\", this.upsamplerKernel), d.setFloat2(\"blurDir\", 1 / this._outputDimensions.width, this._useQualityUpsampling ? 1 / this._outputDimensions.height : 0), d.setFloat(\"depthThreshold\", this.blurDepthThreshold), d.setFloat(\"normalThreshold\", this.blurNormalThreshold);\n }), this._upsamplingXPostprocess.resize(l.width, l.height), h.push(this._upsamplingXPostprocess.inputTexture), this.useQualityUpsampling || (this._upsamplingYPostprocess = new Be(\"BilateralUpsamplingY\", \"bilateralBlur\", {\n uniforms: [\"filterSize\", \"blurDir\", \"depthThreshold\", \"normalThreshold\"],\n samplers: [\"depthSampler\", \"normalSampler\"],\n defines: i ? \"#define DECODE_NORMAL\" : void 0,\n size: this._outputDimensions,\n samplingMode: 2,\n engine: this._engine,\n textureType: this._giTextureType,\n textureFormat: e\n }), this._upsamplingYPostprocess.autoClear = !1, this._upsamplingYPostprocess.onApplyObservable.add((d) => {\n d.setTexture(\"depthSampler\", t.getGBuffer().textures[t.getTextureIndex(Et.DEPTH_TEXTURE_TYPE)]), d.setTexture(\"normalSampler\", t.getGBuffer().textures[t.getTextureIndex(Et.NORMAL_TEXTURE_TYPE)]), d.setInt(\"filterSize\", this.upsamplerKernel), d.setFloat2(\"blurDir\", 0, 1 / this._outputDimensions.height), d.setFloat(\"depthThreshold\", this.blurDepthThreshold), d.setFloat(\"normalThreshold\", this.blurNormalThreshold);\n }), this._upsamplingYPostprocess.resize(this._outputDimensions.width, this._outputDimensions.height), u.push(this._upsamplingYPostprocess.inputTexture)), u.push(this._blurRTT.renderTarget), this._blurPostProcesses.push(this._upsamplingXPostprocess), this._upsamplingYPostprocess && this._blurPostProcesses.push(this._upsamplingYPostprocess);\n } else\n h.push(this._blurRTT.renderTarget);\n }\n (o = this._debugLayer.texture) == null || o.dispose(), this._debugLayer.texture = new Mt(this._scene, this._enableBlur ? this._blurRTT.renderTarget.texture : this._ppGlobalIllumination[0].inputTexture.texture);\n }\n _addGISupportToMaterial(e) {\n var i;\n if ((i = e.pluginManager) != null && i.getPlugin(wn.Name))\n return;\n const t = new wn(e);\n this._enable && this._ppGlobalIllumination.length > 0 && (t.textureGIContrib = this._ppGlobalIllumination[0].inputTexture.texture, t.outputTextureWidth = this._outputDimensions.width, t.outputTextureHeight = this._outputDimensions.height), t.isEnabled = this._enable, this._materialsWithRenderPlugin.push(e);\n }\n}\neT.GeometryBufferTextureTypesAndFormats = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 0: { textureType: 2, textureFormat: 6 },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 1: { textureType: 11, textureFormat: 5 },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 2: { textureType: 2, textureFormat: 5 }\n // position\n};\nclass YW extends dr {\n constructor() {\n super(...arguments), this.RENDER_WITH_GIRSM = !1, this.RSMCREATE_PROJTEXTURE = !1;\n }\n}\nclass wn extends br {\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled), this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n constructor(e) {\n super(e, wn.Name, 310, new YW()), this._isEnabled = !1, this.isEnabled = !1, this._internalMarkAllSubMeshesAsTexturesDirty = e._dirtyCallbacks[1], this._isPBR = e instanceof Ut;\n }\n prepareDefines(e) {\n e.RENDER_WITH_GIRSM = this._isEnabled;\n }\n getClassName() {\n return \"GIRSMRenderPluginMaterial\";\n }\n getUniforms() {\n return {\n ubo: [{ name: \"girsmTextureOutputSize\", size: 2, type: \"vec2\" }],\n fragment: `#ifdef RENDER_WITH_GIRSM\n uniform vec2 girsmTextureOutputSize;\n #endif`\n };\n }\n getSamplers(e) {\n e.push(\"girsmTextureGIContrib\");\n }\n bindForSubMesh(e) {\n this._isEnabled && (e.bindTexture(\"girsmTextureGIContrib\", this.textureGIContrib), e.updateFloat2(\"girsmTextureOutputSize\", this.outputTextureWidth, this.outputTextureHeight));\n }\n getCustomCode(e) {\n const t = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_DEFINITIONS: `\n #ifdef RENDER_WITH_GIRSM\n uniform sampler2D girsmTextureGIContrib;\n\n vec3 computeIndirect() {\n vec2 uv = gl_FragCoord.xy / girsmTextureOutputSize;\n return texture2D(girsmTextureGIContrib, uv).rgb;\n }\n #endif\n `,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION: `\n #ifdef RENDER_WITH_GIRSM\n finalDiffuse += computeIndirect() * surfaceAlbedo.rgb;\n #endif\n `\n };\n return this._isPBR || (t.CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR = `\n #ifdef RENDER_WITH_GIRSM\n color.rgb += computeIndirect() * baseColor.rgb;\n #endif\n `), e === \"vertex\" ? null : t;\n }\n}\nwn.Name = \"GIRSMRender\";\ny([\n I()\n], wn.prototype, \"textureGIContrib\", void 0);\ny([\n I()\n], wn.prototype, \"outputTextureWidth\", void 0);\ny([\n I()\n], wn.prototype, \"outputTextureHeight\", void 0);\ny([\n I(),\n ce(\"_markAllSubMeshesAsTexturesDirty\")\n], wn.prototype, \"isEnabled\", void 0);\nU(\"BABYLON.GIRSMRenderPluginMaterial\", wn);\nconst jW = \"spriteMapPixelShader\", KW = `#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\n#define TEXTUREFUNC(s,c,l) texture2DLodEXT(s,c,l)\n#else\n#define TEXTUREFUNC(s,c,b) texture2D(s,c,b)\n#endif\nprecision highp float;varying vec3 vPosition;varying vec2 vUV;varying vec2 tUV;uniform float time;uniform float spriteCount;uniform sampler2D spriteSheet;uniform vec2 spriteMapSize;uniform vec2 outputSize;uniform vec2 stageSize;uniform sampler2D frameMap;uniform sampler2D tileMaps[LAYERS];uniform sampler2D animationMap;uniform vec3 colorMul;float mt;const float fdStep=1./4.;const float aFrameSteps=MAX_ANIMATION_FRAMES==0. ? 0. : 1./MAX_ANIMATION_FRAMES;mat4 getFrameData(float frameID){float fX=frameID/spriteCount;return mat4(\ntexture2D(frameMap,vec2(fX,0.),0.),\ntexture2D(frameMap,vec2(fX,fdStep*1.),0.),\ntexture2D(frameMap,vec2(fX,fdStep*2.),0.),\nvec4(0.)\n);}\nvoid main(){vec4 color=vec4(0.);vec2 tileUV=fract(tUV);\n#ifdef FLIPU\ntileUV.y=1.0-tileUV.y;\n#endif\nvec2 tileID=floor(tUV);vec2 sheetUnits=1./spriteMapSize;float spriteUnits=1./spriteCount;vec2 stageUnits=1./stageSize;for(int i=0; i0.) {mt=mod(time*animationData.z,1.0);for(float f=0.; fmt){frameID=animationData.x;break;}\nanimationData=TEXTUREFUNC(animationMap,vec2((frameID+0.5)/spriteCount,aFrameSteps*f),0.);}}\nmat4 frameData=getFrameData(frameID+0.5);vec2 frameSize=(frameData[0].zw)/spriteMapSize;vec2 offset=frameData[0].xy*sheetUnits;vec2 ratio=frameData[2].xy/frameData[0].zw;if (frameData[2].z==1.){tileUV.xy=tileUV.yx;}\nvec4 nc=texture2D(spriteSheet,tileUV*frameSize+offset);if (i==0){color=nc;} else {float alpha=min(color.a+nc.a,1.0);vec3 mixed=mix(color.xyz,nc.xyz,nc.a);color=vec4(mixed,alpha);}}\ncolor.xyz*=colorMul;gl_FragColor=color;}\n`;\nz.ShadersStore[jW] = KW;\nconst qW = \"spriteMapVertexShader\", QW = `precision highp float;attribute vec3 position;attribute vec3 normal;attribute vec2 uv;varying vec3 vPosition;varying vec2 vUV;varying vec2 tUV;varying vec2 stageUnits;varying vec2 levelUnits;varying vec2 tileID;uniform float time;uniform mat4 worldViewProjection;uniform vec2 outputSize;uniform vec2 stageSize;uniform vec2 spriteMapSize;uniform float stageScale;void main() {vec4 p=vec4( position,1. );vPosition=p.xyz;vUV=uv;tUV=uv*stageSize; \ngl_Position=worldViewProjection*p;}`;\nz.ShadersStore[qW] = QW;\nvar my;\n(function(a) {\n a[a.INIT = 0] = \"INIT\", a[a.RUNNING = 1] = \"RUNNING\", a[a.DONE = 2] = \"DONE\", a[a.ERROR = 3] = \"ERROR\";\n})(my || (my = {}));\nclass Va {\n /**\n * Creates a new AssetsManager\n * @param name defines the name of the task\n */\n constructor(e) {\n this.name = e, this._isCompleted = !1, this._taskState = 0;\n }\n /**\n * Get if the task is completed\n */\n get isCompleted() {\n return this._isCompleted;\n }\n /**\n * Gets the current state of the task\n */\n get taskState() {\n return this._taskState;\n }\n /**\n * Gets the current error object (if task is in error)\n */\n get errorObject() {\n return this._errorObject;\n }\n /**\n * Internal only\n * @internal\n */\n _setErrorObject(e, t) {\n this._errorObject || (this._errorObject = {\n message: e,\n exception: t\n });\n }\n /**\n * Execute the current task\n * @param scene defines the scene where you want your assets to be loaded\n * @param onSuccess is a callback called when the task is successfully executed\n * @param onError is a callback called if an error occurs\n */\n run(e, t, i) {\n this._taskState = 1, this.runTask(e, () => {\n this._onDoneCallback(t, i);\n }, (s, r) => {\n this._onErrorCallback(i, s, r);\n });\n }\n /**\n * Execute the current task\n * @param scene defines the scene where you want your assets to be loaded\n * @param onSuccess is a callback called when the task is successfully executed\n * @param onError is a callback called if an error occurs\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n runTask(e, t, i) {\n throw new Error(\"runTask is not implemented\");\n }\n /**\n * Reset will set the task state back to INIT, so the next load call of the assets manager will execute this task again.\n * This can be used with failed tasks that have the reason for failure fixed.\n */\n reset() {\n this._taskState = 0;\n }\n _onErrorCallback(e, t, i) {\n this._taskState = 3, this._errorObject = {\n message: t,\n exception: i\n }, this.onError && this.onError(this, t, i), e();\n }\n _onDoneCallback(e, t) {\n try {\n this._taskState = 2, this._isCompleted = !0, this.onSuccess && this.onSuccess(this), e();\n } catch (i) {\n this._onErrorCallback(t, \"Task is done, error executing success callback(s)\", i);\n }\n }\n}\nclass ZW {\n /**\n * Creates a AssetsProgressEvent\n * @param remainingCount defines the number of remaining tasks to process\n * @param totalCount defines the total number of tasks\n * @param task defines the task that was just processed\n */\n constructor(e, t, i) {\n this.remainingCount = e, this.totalCount = t, this.task = i;\n }\n}\nclass JW extends Va {\n /**\n * Creates a new ContainerAssetTask\n * @param name defines the name of the task\n * @param meshesNames defines the list of mesh's names you want to load\n * @param rootUrl defines the root url to use as a base to load your meshes and associated resources\n * @param sceneFilename defines the filename or File of the scene to load from\n * @param extension defines the extension to use to load the scene (if not defined, \".babylon\" will be used)\n */\n constructor(e, t, i, s, r) {\n super(e), this.name = e, this.meshesNames = t, this.rootUrl = i, this.sceneFilename = s, this.extension = r;\n }\n /**\n * Execute the current task\n * @param scene defines the scene where you want your assets to be loaded\n * @param onSuccess is a callback called when the task is successfully executed\n * @param onError is a callback called if an error occurs\n */\n runTask(e, t, i) {\n st.LoadAssetContainer(this.rootUrl, this.sceneFilename, e, (s) => {\n this.loadedContainer = s, this.loadedMeshes = s.meshes, this.loadedTransformNodes = s.transformNodes, this.loadedParticleSystems = s.particleSystems, this.loadedSkeletons = s.skeletons, this.loadedAnimationGroups = s.animationGroups, t();\n }, null, (s, r, n) => {\n i(r, n);\n }, this.extension);\n }\n}\nclass eH extends Va {\n /**\n * Creates a new MeshAssetTask\n * @param name defines the name of the task\n * @param meshesNames defines the list of mesh's names you want to load\n * @param rootUrl defines the root url to use as a base to load your meshes and associated resources\n * @param sceneFilename defines the filename or File of the scene to load from\n * @param extension defines the extension to use to load the scene (if not defined, \".babylon\" will be used)\n */\n constructor(e, t, i, s, r) {\n super(e), this.name = e, this.meshesNames = t, this.rootUrl = i, this.sceneFilename = s, this.extension = r;\n }\n /**\n * Execute the current task\n * @param scene defines the scene where you want your assets to be loaded\n * @param onSuccess is a callback called when the task is successfully executed\n * @param onError is a callback called if an error occurs\n */\n runTask(e, t, i) {\n st.ImportMesh(this.meshesNames, this.rootUrl, this.sceneFilename, e, (s, r, n, o, l) => {\n this.loadedMeshes = s, this.loadedTransformNodes = l, this.loadedParticleSystems = r, this.loadedSkeletons = n, this.loadedAnimationGroups = o, t();\n }, null, (s, r, n) => {\n i(r, n);\n }, this.extension);\n }\n}\nclass qK extends Va {\n /**\n * Creates a new AnimationAssetTask\n * @param name defines the name of the task\n * @param rootUrl defines the root url to use as a base to load your meshes and associated resources\n * @param filename defines the filename or File of the scene to load from\n * @param targetConverter defines a function used to convert animation targets from loaded scene to current scene (default: search node by name)\n * @param extension defines the extension to use to load the scene (if not defined, \".babylon\" will be used)\n */\n constructor(e, t, i, s, r) {\n super(e), this.name = e, this.rootUrl = t, this.filename = i, this.targetConverter = s, this.extension = r;\n }\n /**\n * Execute the current task\n * @param scene defines the scene where you want your assets to be loaded\n * @param onSuccess is a callback called when the task is successfully executed\n * @param onError is a callback called if an error occurs\n */\n runTask(e, t, i) {\n const s = e.animatables.length, r = e.animationGroups.length;\n this.loadedAnimatables = [], this.loadedAnimationGroups = [], st.ImportAnimations(this.rootUrl, this.filename, e, !1, 3, this.targetConverter, () => {\n this.loadedAnimatables = e.animatables.slice(s), this.loadedAnimationGroups = e.animationGroups.slice(r), t();\n }, null, (n, o, l) => {\n i(o, l);\n }, this.extension);\n }\n}\nclass tH extends Va {\n /**\n * Creates a new TextFileAssetTask object\n * @param name defines the name of the task\n * @param url defines the location of the file to load\n */\n constructor(e, t) {\n super(e), this.name = e, this.url = t;\n }\n /**\n * Execute the current task\n * @param scene defines the scene where you want your assets to be loaded\n * @param onSuccess is a callback called when the task is successfully executed\n * @param onError is a callback called if an error occurs\n */\n runTask(e, t, i) {\n e._loadFile(this.url, (s) => {\n this.text = s, t();\n }, void 0, !1, !1, (s, r) => {\n s && i(s.status + \" \" + s.statusText, r);\n });\n }\n}\nclass iH extends Va {\n /**\n * Creates a new BinaryFileAssetTask object\n * @param name defines the name of the new task\n * @param url defines the location of the file to load\n */\n constructor(e, t) {\n super(e), this.name = e, this.url = t;\n }\n /**\n * Execute the current task\n * @param scene defines the scene where you want your assets to be loaded\n * @param onSuccess is a callback called when the task is successfully executed\n * @param onError is a callback called if an error occurs\n */\n runTask(e, t, i) {\n e._loadFile(this.url, (s) => {\n this.data = s, t();\n }, void 0, !0, !0, (s, r) => {\n s && i(s.status + \" \" + s.statusText, r);\n });\n }\n}\nclass sH extends Va {\n /**\n * Creates a new ImageAssetTask\n * @param name defines the name of the task\n * @param url defines the location of the image to load\n */\n constructor(e, t) {\n super(e), this.name = e, this.url = t;\n }\n /**\n * Execute the current task\n * @param scene defines the scene where you want your assets to be loaded\n * @param onSuccess is a callback called when the task is successfully executed\n * @param onError is a callback called if an error occurs\n */\n runTask(e, t, i) {\n const s = new Image();\n J.SetCorsBehavior(this.url, s), s.onload = () => {\n this.image = s, t();\n }, s.onerror = (r) => {\n i(\"Error loading image\", r);\n }, s.src = this.url;\n }\n}\nclass rH extends Va {\n /**\n * Creates a new TextureAssetTask object\n * @param name defines the name of the task\n * @param url defines the location of the file to load\n * @param noMipmap defines if mipmap should not be generated (default is false)\n * @param invertY defines if texture must be inverted on Y axis (default is true)\n * @param samplingMode defines the sampling mode to use (default is Texture.TRILINEAR_SAMPLINGMODE)\n */\n constructor(e, t, i, s = !0, r = X.TRILINEAR_SAMPLINGMODE) {\n super(e), this.name = e, this.url = t, this.noMipmap = i, this.invertY = s, this.samplingMode = r;\n }\n /**\n * Execute the current task\n * @param scene defines the scene where you want your assets to be loaded\n * @param onSuccess is a callback called when the task is successfully executed\n * @param onError is a callback called if an error occurs\n */\n runTask(e, t, i) {\n const s = () => {\n t();\n }, r = (n, o) => {\n i(n, o);\n };\n this.texture = new X(this.url, e, this.noMipmap, this.invertY, this.samplingMode, s, r);\n }\n}\nclass nH extends Va {\n /**\n * Creates a new CubeTextureAssetTask\n * @param name defines the name of the task\n * @param url defines the location of the files to load (You have to specify the folder where the files are + filename with no extension)\n * @param extensions defines the extensions to use to load files ([\"_px\", \"_py\", \"_pz\", \"_nx\", \"_ny\", \"_nz\"] by default)\n * @param noMipmap defines if mipmaps should not be generated (default is false)\n * @param files defines the explicit list of files (undefined by default)\n * @param prefiltered\n */\n constructor(e, t, i, s, r, n) {\n super(e), this.name = e, this.url = t, this.extensions = i, this.noMipmap = s, this.files = r, this.prefiltered = n;\n }\n /**\n * Execute the current task\n * @param scene defines the scene where you want your assets to be loaded\n * @param onSuccess is a callback called when the task is successfully executed\n * @param onError is a callback called if an error occurs\n */\n runTask(e, t, i) {\n const s = () => {\n t();\n }, r = (n, o) => {\n i(n, o);\n };\n this.texture = new ps(this.url, e, this.extensions, this.noMipmap, this.files, s, r, void 0, this.prefiltered);\n }\n}\nclass aH extends Va {\n /**\n * Creates a new HDRCubeTextureAssetTask object\n * @param name defines the name of the task\n * @param url defines the location of the file to load\n * @param size defines the desired size (the more it increases the longer the generation will be) If the size is omitted this implies you are using a preprocessed cubemap.\n * @param noMipmap defines if mipmaps should not be generated (default is false)\n * @param generateHarmonics specifies whether you want to extract the polynomial harmonics during the generation process (default is true)\n * @param gammaSpace specifies if the texture will be use in gamma or linear space (the PBR material requires those texture in linear space, but the standard material would require them in Gamma space) (default is false)\n * @param reserved Internal use only\n */\n constructor(e, t, i, s = !1, r = !0, n = !1, o = !1) {\n super(e), this.name = e, this.url = t, this.size = i, this.noMipmap = s, this.generateHarmonics = r, this.gammaSpace = n, this.reserved = o;\n }\n /**\n * Execute the current task\n * @param scene defines the scene where you want your assets to be loaded\n * @param onSuccess is a callback called when the task is successfully executed\n * @param onError is a callback called if an error occurs\n */\n runTask(e, t, i) {\n const s = () => {\n t();\n }, r = (n, o) => {\n i(n, o);\n };\n this.texture = new Ho(this.url, e, this.size, this.noMipmap, this.generateHarmonics, this.gammaSpace, this.reserved, s, r);\n }\n}\nclass oH extends Va {\n /**\n * Creates a new EquiRectangularCubeTextureAssetTask object\n * @param name defines the name of the task\n * @param url defines the location of the file to load\n * @param size defines the desired size (the more it increases the longer the generation will be)\n * If the size is omitted this implies you are using a preprocessed cubemap.\n * @param noMipmap defines if mipmaps should not be generated (default is false)\n * @param gammaSpace specifies if the texture will be used in gamma or linear space\n * (the PBR material requires those texture in linear space, but the standard material would require them in Gamma space)\n * (default is true)\n */\n constructor(e, t, i, s = !1, r = !0) {\n super(e), this.name = e, this.url = t, this.size = i, this.noMipmap = s, this.gammaSpace = r;\n }\n /**\n * Execute the current task\n * @param scene defines the scene where you want your assets to be loaded\n * @param onSuccess is a callback called when the task is successfully executed\n * @param onError is a callback called if an error occurs\n */\n runTask(e, t, i) {\n const s = () => {\n t();\n }, r = (n, o) => {\n i(n, o);\n };\n this.texture = new bu(this.url, e, this.size, this.noMipmap, this.gammaSpace, s, r);\n }\n}\nclass QK {\n /**\n * Creates a new AssetsManager\n * @param scene defines the scene to work on\n */\n constructor(e) {\n this._isLoading = !1, this._tasks = new Array(), this._waitingTasksCount = 0, this._totalTasksCount = 0, this.onTaskSuccessObservable = new G(), this.onTaskErrorObservable = new G(), this.onTasksDoneObservable = new G(), this.onProgressObservable = new G(), this.useDefaultLoadingScreen = !0, this.autoHideLoadingUI = !0, this._scene = e || Me.LastCreatedScene;\n }\n /**\n * Add a ContainerAssetTask to the list of active tasks\n * @param taskName defines the name of the new task\n * @param meshesNames defines the name of meshes to load\n * @param rootUrl defines the root url to use to locate files\n * @param sceneFilename defines the filename of the scene file or the File itself\n * @param extension defines the extension to use to load the file\n * @returns a new ContainerAssetTask object\n */\n addContainerTask(e, t, i, s, r) {\n const n = new JW(e, t, i, s, r);\n return this._tasks.push(n), n;\n }\n /**\n * Add a MeshAssetTask to the list of active tasks\n * @param taskName defines the name of the new task\n * @param meshesNames defines the name of meshes to load\n * @param rootUrl defines the root url to use to locate files\n * @param sceneFilename defines the filename of the scene file or the File itself\n * @param extension defines the extension to use to load the file\n * @returns a new MeshAssetTask object\n */\n addMeshTask(e, t, i, s, r) {\n const n = new eH(e, t, i, s, r);\n return this._tasks.push(n), n;\n }\n /**\n * Add a TextFileAssetTask to the list of active tasks\n * @param taskName defines the name of the new task\n * @param url defines the url of the file to load\n * @returns a new TextFileAssetTask object\n */\n addTextFileTask(e, t) {\n const i = new tH(e, t);\n return this._tasks.push(i), i;\n }\n /**\n * Add a BinaryFileAssetTask to the list of active tasks\n * @param taskName defines the name of the new task\n * @param url defines the url of the file to load\n * @returns a new BinaryFileAssetTask object\n */\n addBinaryFileTask(e, t) {\n const i = new iH(e, t);\n return this._tasks.push(i), i;\n }\n /**\n * Add a ImageAssetTask to the list of active tasks\n * @param taskName defines the name of the new task\n * @param url defines the url of the file to load\n * @returns a new ImageAssetTask object\n */\n addImageTask(e, t) {\n const i = new sH(e, t);\n return this._tasks.push(i), i;\n }\n /**\n * Add a TextureAssetTask to the list of active tasks\n * @param taskName defines the name of the new task\n * @param url defines the url of the file to load\n * @param noMipmap defines if the texture must not receive mipmaps (false by default)\n * @param invertY defines if you want to invert Y axis of the loaded texture (true by default)\n * @param samplingMode defines the sampling mode to use (Texture.TRILINEAR_SAMPLINGMODE by default)\n * @returns a new TextureAssetTask object\n */\n addTextureTask(e, t, i, s, r = X.TRILINEAR_SAMPLINGMODE) {\n const n = new rH(e, t, i, s, r);\n return this._tasks.push(n), n;\n }\n /**\n * Add a CubeTextureAssetTask to the list of active tasks\n * @param taskName defines the name of the new task\n * @param url defines the url of the file to load\n * @param extensions defines the extension to use to load the cube map (can be null)\n * @param noMipmap defines if the texture must not receive mipmaps (false by default)\n * @param files defines the list of files to load (can be null)\n * @param prefiltered defines the prefiltered texture option (default is false)\n * @returns a new CubeTextureAssetTask object\n */\n addCubeTextureTask(e, t, i, s, r, n) {\n const o = new nH(e, t, i, s, r, n);\n return this._tasks.push(o), o;\n }\n /**\n *\n * Add a HDRCubeTextureAssetTask to the list of active tasks\n * @param taskName defines the name of the new task\n * @param url defines the url of the file to load\n * @param size defines the size you want for the cubemap (can be null)\n * @param noMipmap defines if the texture must not receive mipmaps (false by default)\n * @param generateHarmonics defines if you want to automatically generate (true by default)\n * @param gammaSpace specifies if the texture will be use in gamma or linear space (the PBR material requires those texture in linear space, but the standard material would require them in Gamma space) (default is false)\n * @param reserved Internal use only\n * @returns a new HDRCubeTextureAssetTask object\n */\n addHDRCubeTextureTask(e, t, i, s = !1, r = !0, n = !1, o = !1) {\n const l = new aH(e, t, i, s, r, n, o);\n return this._tasks.push(l), l;\n }\n /**\n *\n * Add a EquiRectangularCubeTextureAssetTask to the list of active tasks\n * @param taskName defines the name of the new task\n * @param url defines the url of the file to load\n * @param size defines the size you want for the cubemap (can be null)\n * @param noMipmap defines if the texture must not receive mipmaps (false by default)\n * @param gammaSpace Specifies if the texture will be used in gamma or linear space\n * (the PBR material requires those textures in linear space, but the standard material would require them in Gamma space)\n * @returns a new EquiRectangularCubeTextureAssetTask object\n */\n addEquiRectangularCubeTextureAssetTask(e, t, i, s = !1, r = !0) {\n const n = new oH(e, t, i, s, r);\n return this._tasks.push(n), n;\n }\n /**\n * Remove a task from the assets manager.\n * @param task the task to remove\n */\n removeTask(e) {\n const t = this._tasks.indexOf(e);\n t > -1 && this._tasks.splice(t, 1);\n }\n _decreaseWaitingTasksCount(e) {\n this._waitingTasksCount--;\n try {\n this.onProgress && this.onProgress(this._waitingTasksCount, this._totalTasksCount, e), this.onProgressObservable.notifyObservers(new ZW(this._waitingTasksCount, this._totalTasksCount, e));\n } catch (t) {\n L.Error(\"Error running progress callbacks.\"), L.Log(t);\n }\n if (this._waitingTasksCount === 0) {\n try {\n const t = this._tasks.slice();\n this.onFinish && this.onFinish(t);\n for (const i of t)\n if (i.taskState === 2) {\n const s = this._tasks.indexOf(i);\n s > -1 && this._tasks.splice(s, 1);\n }\n this.onTasksDoneObservable.notifyObservers(this._tasks);\n } catch (t) {\n L.Error(\"Error running tasks-done callbacks.\"), L.Log(t);\n }\n this._isLoading = !1, this.autoHideLoadingUI && this._scene.getEngine().hideLoadingUI();\n }\n }\n _runTask(e) {\n const t = () => {\n try {\n this.onTaskSuccess && this.onTaskSuccess(e), this.onTaskSuccessObservable.notifyObservers(e), this._decreaseWaitingTasksCount(e);\n } catch (s) {\n i(\"Error executing task success callbacks\", s);\n }\n }, i = (s, r) => {\n e._setErrorObject(s, r), this.onTaskError ? this.onTaskError(e) : e.onError || L.Error(this._formatTaskErrorMessage(e)), this.onTaskErrorObservable.notifyObservers(e), this._decreaseWaitingTasksCount(e);\n };\n e.run(this._scene, t, i);\n }\n _formatTaskErrorMessage(e) {\n let t = \"Unable to complete task \" + e.name;\n return e.errorObject.message && (t += `: ${e.errorObject.message}`), e.errorObject.exception && (t += `: ${e.errorObject.exception}`), t;\n }\n /**\n * Reset the AssetsManager and remove all tasks\n * @returns the current instance of the AssetsManager\n */\n reset() {\n return this._isLoading = !1, this._tasks = new Array(), this;\n }\n /**\n * Start the loading process\n * @returns the current instance of the AssetsManager\n */\n load() {\n if (this._isLoading)\n return this;\n if (this._isLoading = !0, this._waitingTasksCount = this._tasks.length, this._totalTasksCount = this._tasks.length, this._waitingTasksCount === 0)\n return this._isLoading = !1, this.onFinish && this.onFinish(this._tasks), this.onTasksDoneObservable.notifyObservers(this._tasks), this;\n this.useDefaultLoadingScreen && this._scene.getEngine().displayLoadingUI();\n for (let e = 0; e < this._tasks.length; e++) {\n const t = this._tasks[e];\n t.taskState === 0 && this._runTask(t);\n }\n return this;\n }\n /**\n * Start the loading process as an async operation\n * @returns a promise returning the list of failed tasks\n */\n loadAsync() {\n return new Promise((e, t) => {\n if (this._isLoading) {\n e();\n return;\n }\n this.onTasksDoneObservable.addOnce((i) => {\n i && i.length ? t(i) : e();\n }), this.load();\n });\n }\n}\nclass rI {\n /**\n * Release associated resources\n */\n dispose() {\n if (this._observers && this._observables)\n for (let e = 0; e < this._observers.length; e++)\n this._observables[e].remove(this._observers[e]);\n this._observers = null, this._observables = null;\n }\n /**\n * Raise a callback when one of the observable will notify\n * @param observables defines a list of observables to watch\n * @param callback defines the callback to call on notification\n * @param mask defines the mask used to filter notifications\n * @param scope defines the current scope used to restore the JS context\n * @returns the new MultiObserver\n */\n static Watch(e, t, i = -1, s = null) {\n const r = new rI();\n r._observers = new Array(), r._observables = e;\n for (const n of e) {\n const o = n.add(t, i, !1, s);\n o && r._observers.push(o);\n }\n return r;\n }\n}\nG.prototype.notifyObserversWithPromise = async function(a, e = -1, t, i, s) {\n let r = Promise.resolve(a);\n if (!this.observers.length)\n return r;\n const n = this._eventState;\n return n.mask = e, n.target = t, n.currentTarget = i, n.skipNextObservers = !1, n.userInfo = s, this.observers.forEach((o) => {\n n.skipNextObservers || o._willBeUnregistered || o.mask & e && (o.scope ? r = r.then((l) => (n.lastReturnValue = l, o.callback.apply(o.scope, [a, n]))) : r = r.then((l) => (n.lastReturnValue = l, o.callback(a, n))), o.unregisterOnNextCall && this._deferUnregister(o));\n }), await r, a;\n};\nclass bo {\n /**\n * Gets a string describing the action executed by the current optimization\n * @returns description string\n */\n getDescription() {\n return \"\";\n }\n /**\n * This function will be called by the SceneOptimizer when its priority is reached in order to apply the change required by the current optimization\n * @param scene defines the current scene where to apply this optimization\n * @param optimizer defines the current optimizer\n * @returns true if everything that can be done was applied\n */\n apply(e, t) {\n return !0;\n }\n /**\n * Creates the SceneOptimization object\n * @param priority defines the priority of this optimization (0 by default which means first in the list)\n */\n constructor(e = 0) {\n this.priority = e;\n }\n}\nclass sg extends bo {\n /**\n * Gets a string describing the action executed by the current optimization\n * @returns description string\n */\n getDescription() {\n return \"Reducing render target texture size to \" + this.maximumSize;\n }\n /**\n * Creates the TextureOptimization object\n * @param priority defines the priority of this optimization (0 by default which means first in the list)\n * @param maximumSize defines the maximum sized allowed for textures (1024 is the default value). If a texture is bigger, it will be scaled down using a factor defined by the step parameter\n * @param step defines the factor (0.5 by default) used to scale down textures bigger than maximum sized allowed.\n */\n constructor(e = 0, t = 1024, i = 0.5) {\n super(e), this.priority = e, this.maximumSize = t, this.step = i;\n }\n /**\n * This function will be called by the SceneOptimizer when its priority is reached in order to apply the change required by the current optimization\n * @param scene defines the current scene where to apply this optimization\n * @param optimizer defines the current optimizer\n * @returns true if everything that can be done was applied\n */\n apply(e, t) {\n let i = !0;\n for (let s = 0; s < e.textures.length; s++) {\n const r = e.textures[s];\n if (!r.canRescale || r.getContext)\n continue;\n const n = r.getSize();\n Math.max(n.width, n.height) > this.maximumSize && (r.scale(this.step), i = !1);\n }\n return i;\n }\n}\nclass gy extends bo {\n /**\n * Gets a string describing the action executed by the current optimization\n * @returns description string\n */\n getDescription() {\n return \"Setting hardware scaling level to \" + this._currentScale;\n }\n /**\n * Creates the HardwareScalingOptimization object\n * @param priority defines the priority of this optimization (0 by default which means first in the list)\n * @param maximumScale defines the maximum scale to use (2 by default)\n * @param step defines the step to use between two passes (0.5 by default)\n */\n constructor(e = 0, t = 2, i = 0.25) {\n super(e), this.priority = e, this.maximumScale = t, this.step = i, this._currentScale = -1, this._directionOffset = 1;\n }\n /**\n * This function will be called by the SceneOptimizer when its priority is reached in order to apply the change required by the current optimization\n * @param scene defines the current scene where to apply this optimization\n * @param optimizer defines the current optimizer\n * @returns true if everything that can be done was applied\n */\n apply(e, t) {\n return this._currentScale === -1 && (this._currentScale = e.getEngine().getHardwareScalingLevel(), this._currentScale > this.maximumScale && (this._directionOffset = -1)), this._currentScale += this._directionOffset * this.step, e.getEngine().setHardwareScalingLevel(this._currentScale), this._directionOffset === 1 ? this._currentScale >= this.maximumScale : this._currentScale <= this.maximumScale;\n }\n}\nclass rg extends bo {\n /**\n * Gets a string describing the action executed by the current optimization\n * @returns description string\n */\n getDescription() {\n return \"Turning shadows on/off\";\n }\n /**\n * This function will be called by the SceneOptimizer when its priority is reached in order to apply the change required by the current optimization\n * @param scene defines the current scene where to apply this optimization\n * @param optimizer defines the current optimizer\n * @returns true if everything that can be done was applied\n */\n apply(e, t) {\n return e.shadowsEnabled = t.isInImprovementMode, !0;\n }\n}\nclass ng extends bo {\n /**\n * Gets a string describing the action executed by the current optimization\n * @returns description string\n */\n getDescription() {\n return \"Turning post-processes on/off\";\n }\n /**\n * This function will be called by the SceneOptimizer when its priority is reached in order to apply the change required by the current optimization\n * @param scene defines the current scene where to apply this optimization\n * @param optimizer defines the current optimizer\n * @returns true if everything that can be done was applied\n */\n apply(e, t) {\n return e.postProcessesEnabled = t.isInImprovementMode, !0;\n }\n}\nclass ag extends bo {\n /**\n * Gets a string describing the action executed by the current optimization\n * @returns description string\n */\n getDescription() {\n return \"Turning lens flares on/off\";\n }\n /**\n * This function will be called by the SceneOptimizer when its priority is reached in order to apply the change required by the current optimization\n * @param scene defines the current scene where to apply this optimization\n * @param optimizer defines the current optimizer\n * @returns true if everything that can be done was applied\n */\n apply(e, t) {\n return e.lensFlaresEnabled = t.isInImprovementMode, !0;\n }\n}\nclass lH extends bo {\n /**\n * Gets a string describing the action executed by the current optimization\n * @returns description string\n */\n getDescription() {\n return this.onGetDescription ? this.onGetDescription() : \"Running user defined callback\";\n }\n /**\n * This function will be called by the SceneOptimizer when its priority is reached in order to apply the change required by the current optimization\n * @param scene defines the current scene where to apply this optimization\n * @param optimizer defines the current optimizer\n * @returns true if everything that can be done was applied\n */\n apply(e, t) {\n return this.onApply ? this.onApply(e, t) : !0;\n }\n}\nclass og extends bo {\n /**\n * Gets a string describing the action executed by the current optimization\n * @returns description string\n */\n getDescription() {\n return \"Turning particles on/off\";\n }\n /**\n * This function will be called by the SceneOptimizer when its priority is reached in order to apply the change required by the current optimization\n * @param scene defines the current scene where to apply this optimization\n * @param optimizer defines the current optimizer\n * @returns true if everything that can be done was applied\n */\n apply(e, t) {\n return e.particlesEnabled = t.isInImprovementMode, !0;\n }\n}\nclass xy extends bo {\n /**\n * Gets a string describing the action executed by the current optimization\n * @returns description string\n */\n getDescription() {\n return \"Turning render targets off\";\n }\n /**\n * This function will be called by the SceneOptimizer when its priority is reached in order to apply the change required by the current optimization\n * @param scene defines the current scene where to apply this optimization\n * @param optimizer defines the current optimizer\n * @returns true if everything that can be done was applied\n */\n apply(e, t) {\n return e.renderTargetsEnabled = t.isInImprovementMode, !0;\n }\n}\nclass jo extends bo {\n constructor() {\n super(...arguments), this._canBeMerged = (e) => {\n if (!(e instanceof H))\n return !1;\n const t = e;\n return !(t.isDisposed() || !t.isVisible || !t.isEnabled() || t.instances.length > 0 || t.skeleton || t.hasLODLevels || t.getTotalVertices() === 0);\n };\n }\n /**\n * Gets or sets a boolean which defines if optimization octree has to be updated\n */\n static get UpdateSelectionTree() {\n return jo._UpdateSelectionTree;\n }\n /**\n * Gets or sets a boolean which defines if optimization octree has to be updated\n */\n static set UpdateSelectionTree(e) {\n jo._UpdateSelectionTree = e;\n }\n /**\n * Gets a string describing the action executed by the current optimization\n * @returns description string\n */\n getDescription() {\n return \"Merging similar meshes together\";\n }\n /**\n * This function will be called by the SceneOptimizer when its priority is reached in order to apply the change required by the current optimization\n * @param scene defines the current scene where to apply this optimization\n * @param optimizer defines the current optimizer\n * @param updateSelectionTree defines that the selection octree has to be updated (false by default)\n * @returns true if everything that can be done was applied\n */\n apply(e, t, i) {\n const s = e.meshes.slice(0);\n let r = s.length;\n for (let o = 0; o < r; o++) {\n const l = [], h = s[o];\n if (this._canBeMerged(h)) {\n l.push(h);\n for (let c = o + 1; c < r; c++) {\n const u = s[c];\n this._canBeMerged(u) && u.material === h.material && u.checkCollisions === h.checkCollisions && (l.push(u), r--, s.splice(c, 1), c--);\n }\n l.length < 2 || H.MergeMeshes(l, void 0, !0);\n }\n }\n const n = e;\n return n.createOrUpdateSelectionOctree && (i != null ? i && n.createOrUpdateSelectionOctree() : jo.UpdateSelectionTree && n.createOrUpdateSelectionOctree()), !0;\n }\n}\njo._UpdateSelectionTree = !1;\nclass Ch {\n /**\n * Creates a new list of options used by SceneOptimizer\n * @param targetFrameRate defines the target frame rate to reach (60 by default)\n * @param trackerDuration defines the interval between two checks (2000ms by default)\n */\n constructor(e = 60, t = 2e3) {\n this.targetFrameRate = e, this.trackerDuration = t, this.optimizations = [];\n }\n /**\n * Add a new optimization\n * @param optimization defines the SceneOptimization to add to the list of active optimizations\n * @returns the current SceneOptimizerOptions\n */\n addOptimization(e) {\n return this.optimizations.push(e), this;\n }\n /**\n * Add a new custom optimization\n * @param onApply defines the callback called to apply the custom optimization (true if everything that can be done was applied)\n * @param onGetDescription defines the callback called to get the description attached with the optimization.\n * @param priority defines the priority of this optimization (0 by default which means first in the list)\n * @returns the current SceneOptimizerOptions\n */\n addCustomOptimization(e, t, i = 0) {\n const s = new lH(i);\n return s.onApply = e, s.onGetDescription = t, this.optimizations.push(s), this;\n }\n /**\n * Creates a list of pre-defined optimizations aimed to reduce the visual impact on the scene\n * @param targetFrameRate defines the target frame rate (60 by default)\n * @returns a SceneOptimizerOptions object\n */\n static LowDegradationAllowed(e) {\n const t = new Ch(e);\n let i = 0;\n return t.addOptimization(new jo(i)), t.addOptimization(new rg(i)), t.addOptimization(new ag(i)), i++, t.addOptimization(new ng(i)), t.addOptimization(new og(i)), i++, t.addOptimization(new sg(i, 1024)), t;\n }\n /**\n * Creates a list of pre-defined optimizations aimed to have a moderate impact on the scene visual\n * @param targetFrameRate defines the target frame rate (60 by default)\n * @returns a SceneOptimizerOptions object\n */\n static ModerateDegradationAllowed(e) {\n const t = new Ch(e);\n let i = 0;\n return t.addOptimization(new jo(i)), t.addOptimization(new rg(i)), t.addOptimization(new ag(i)), i++, t.addOptimization(new ng(i)), t.addOptimization(new og(i)), i++, t.addOptimization(new sg(i, 512)), i++, t.addOptimization(new xy(i)), i++, t.addOptimization(new gy(i, 2)), t;\n }\n /**\n * Creates a list of pre-defined optimizations aimed to have a big impact on the scene visual\n * @param targetFrameRate defines the target frame rate (60 by default)\n * @returns a SceneOptimizerOptions object\n */\n static HighDegradationAllowed(e) {\n const t = new Ch(e);\n let i = 0;\n return t.addOptimization(new jo(i)), t.addOptimization(new rg(i)), t.addOptimization(new ag(i)), i++, t.addOptimization(new ng(i)), t.addOptimization(new og(i)), i++, t.addOptimization(new sg(i, 256)), i++, t.addOptimization(new xy(i)), i++, t.addOptimization(new gy(i, 4)), t;\n }\n}\nclass nI {\n /**\n * Gets or sets a boolean indicating if the optimizer is in improvement mode\n */\n get isInImprovementMode() {\n return this._improvementMode;\n }\n set isInImprovementMode(e) {\n this._improvementMode = e;\n }\n /**\n * Gets the current priority level (0 at start)\n */\n get currentPriorityLevel() {\n return this._currentPriorityLevel;\n }\n /**\n * Gets the current frame rate checked by the SceneOptimizer\n */\n get currentFrameRate() {\n return this._currentFrameRate;\n }\n /**\n * Gets or sets the current target frame rate (60 by default)\n */\n get targetFrameRate() {\n return this._targetFrameRate;\n }\n /**\n * Gets or sets the current target frame rate (60 by default)\n */\n set targetFrameRate(e) {\n this._targetFrameRate = e;\n }\n /**\n * Gets or sets the current interval between two checks (every 2000ms by default)\n */\n get trackerDuration() {\n return this._trackerDuration;\n }\n /**\n * Gets or sets the current interval between two checks (every 2000ms by default)\n */\n set trackerDuration(e) {\n this._trackerDuration = e;\n }\n /**\n * Gets the list of active optimizations\n */\n get optimizations() {\n return this._options.optimizations;\n }\n /**\n * Creates a new SceneOptimizer\n * @param scene defines the scene to work on\n * @param options defines the options to use with the SceneOptimizer\n * @param autoGeneratePriorities defines if priorities must be generated and not read from SceneOptimization property (true by default)\n * @param improvementMode defines if the scene optimizer must run the maximum optimization while staying over a target frame instead of trying to reach the target framerate (false by default)\n */\n constructor(e, t, i = !0, s = !1) {\n if (this._isRunning = !1, this._currentPriorityLevel = 0, this._targetFrameRate = 60, this._trackerDuration = 2e3, this._currentFrameRate = 0, this._improvementMode = !1, this.onSuccessObservable = new G(), this.onNewOptimizationAppliedObservable = new G(), this.onFailureObservable = new G(), t ? this._options = t : this._options = new Ch(), this._options.targetFrameRate && (this._targetFrameRate = this._options.targetFrameRate), this._options.trackerDuration && (this._trackerDuration = this._options.trackerDuration), i) {\n let r = 0;\n for (const n of this._options.optimizations)\n n.priority = r++;\n }\n this._improvementMode = s, this._scene = e || Me.LastCreatedScene, this._sceneDisposeObserver = this._scene.onDisposeObservable.add(() => {\n this._sceneDisposeObserver = null, this.dispose();\n });\n }\n /**\n * Stops the current optimizer\n */\n stop() {\n this._isRunning = !1;\n }\n /**\n * Reset the optimizer to initial step (current priority level = 0)\n */\n reset() {\n this._currentPriorityLevel = 0;\n }\n /**\n * Start the optimizer. By default it will try to reach a specific framerate\n * but if the optimizer is set with improvementMode === true then it will run all optimization while frame rate is above the target frame rate\n */\n start() {\n this._isRunning || (this._isRunning = !0, this._scene.executeWhenReady(() => {\n setTimeout(() => {\n this._checkCurrentState();\n }, this._trackerDuration);\n }));\n }\n _checkCurrentState() {\n if (!this._isRunning)\n return;\n const e = this._scene, t = this._options;\n if (this._currentFrameRate = Math.round(e.getEngine().getFps()), this._improvementMode && this._currentFrameRate <= this._targetFrameRate || !this._improvementMode && this._currentFrameRate >= this._targetFrameRate) {\n this._isRunning = !1, this.onSuccessObservable.notifyObservers(this);\n return;\n }\n let i = !0, s = !0;\n for (let r = 0; r < t.optimizations.length; r++) {\n const n = t.optimizations[r];\n n.priority === this._currentPriorityLevel && (s = !1, i = i && n.apply(e, this), this.onNewOptimizationAppliedObservable.notifyObservers(n));\n }\n if (s) {\n this._isRunning = !1, this.onFailureObservable.notifyObservers(this);\n return;\n }\n i && this._currentPriorityLevel++, e.executeWhenReady(() => {\n setTimeout(() => {\n this._checkCurrentState();\n }, this._trackerDuration);\n });\n }\n /**\n * Release all resources\n */\n dispose() {\n this.stop(), this.onSuccessObservable.clear(), this.onFailureObservable.clear(), this.onNewOptimizationAppliedObservable.clear(), this._sceneDisposeObserver && this._scene.onDisposeObservable.remove(this._sceneDisposeObserver);\n }\n /**\n * Helper function to create a SceneOptimizer with one single line of code\n * @param scene defines the scene to work on\n * @param options defines the options to use with the SceneOptimizer\n * @param onSuccess defines a callback to call on success\n * @param onFailure defines a callback to call on failure\n * @returns the new SceneOptimizer object\n */\n static OptimizeAsync(e, t, i, s) {\n const r = new nI(e, t || Ch.ModerateDegradationAllowed(), !1);\n return i && r.onSuccessObservable.add(() => {\n i();\n }), s && r.onFailureObservable.add(() => {\n s();\n }), r.start(), r;\n }\n}\nlet Xg = [];\nconst tT = (a, e) => {\n a.doNotSerialize || (e.vertexData.push(a.serializeVerticeData()), Xg[a.id] = !0);\n}, aI = (a, e) => {\n const t = {}, i = a._geometry;\n return i && (a.getScene().getGeometryById(i.id) || tT(i, e.geometries)), a.serialize && a.serialize(t), t;\n}, hH = (a, e) => {\n if (a._isMesh) {\n const t = a;\n if (t.delayLoadState === 1 || t.delayLoadState === 0) {\n const i = (r) => {\n e.materials = e.materials || [], t.material && !e.materials.some((n) => n.id === t.material.id) && e.materials.push(r.serialize());\n };\n if (t.material && !t.material.doNotSerialize)\n if (t.material instanceof fo) {\n if (e.multiMaterials = e.multiMaterials || [], !e.multiMaterials.some((r) => r.id === t.material.id)) {\n e.multiMaterials.push(t.material.serialize());\n for (const r of t.material.subMaterials)\n r && i(r);\n }\n } else\n i(t.material);\n else t.material || i(t.getScene().defaultMaterial);\n const s = t._geometry;\n s && (e.geometries || (e.geometries = {}, e.geometries.boxes = [], e.geometries.spheres = [], e.geometries.cylinders = [], e.geometries.toruses = [], e.geometries.grounds = [], e.geometries.planes = [], e.geometries.torusKnots = [], e.geometries.vertexData = []), tT(s, e.geometries)), t.skeleton && !t.skeleton.doNotSerialize && (e.skeletons = e.skeletons || [], e.skeletons.push(t.skeleton.serialize())), e.meshes = e.meshes || [], e.meshes.push(aI(t, e));\n }\n } else if (a.getClassName() === \"TransformNode\") {\n const t = a;\n e.transformNodes.push(t.serialize());\n } else if (a.getClassName().indexOf(\"Camera\") !== -1) {\n const t = a;\n e.cameras.push(t.serialize());\n } else if (a.getClassName().indexOf(\"Light\") !== -1) {\n const t = a;\n e.lights.push(t.serialize());\n }\n};\nclass _h {\n /**\n * Clear cache used by a previous serialization\n */\n static ClearCache() {\n Xg = [];\n }\n /**\n * Serialize a scene into a JSON compatible object\n * Note that if the current engine does not support synchronous texture reading (like WebGPU), you should use SerializeAsync instead\n * as else you may not retrieve the proper base64 encoded texture data (when using the Texture.ForceSerializeBuffers flag)\n * @param scene defines the scene to serialize\n * @returns a JSON compatible object\n */\n static Serialize(e) {\n return _h._Serialize(e);\n }\n static _Serialize(e, t = !0) {\n const i = {};\n if (t && !e.getEngine()._features.supportSyncTextureRead && X.ForceSerializeBuffers && L.Warn(\"The serialization object may not contain the proper base64 encoded texture data! You should use the SerializeAsync method instead.\"), _h.ClearCache(), i.useDelayedTextureLoading = e.useDelayedTextureLoading, i.autoClear = e.autoClear, i.clearColor = e.clearColor.asArray(), i.ambientColor = e.ambientColor.asArray(), i.gravity = e.gravity.asArray(), i.collisionsEnabled = e.collisionsEnabled, i.useRightHandedSystem = e.useRightHandedSystem, e.fogMode !== void 0 && e.fogMode !== null && (i.fogMode = e.fogMode), e.fogColor !== void 0 && e.fogColor !== null && (i.fogColor = e.fogColor.asArray()), e.fogStart !== void 0 && e.fogStart !== null && (i.fogStart = e.fogStart), e.fogEnd !== void 0 && e.fogEnd !== null && (i.fogEnd = e.fogEnd), e.fogDensity !== void 0 && e.fogDensity !== null && (i.fogDensity = e.fogDensity), e.isPhysicsEnabled && e.isPhysicsEnabled()) {\n const l = e.getPhysicsEngine();\n l && (i.physicsEnabled = !0, i.physicsGravity = l.gravity.asArray(), i.physicsEngine = l.getPhysicsPluginName());\n }\n e.metadata && (i.metadata = e.metadata), i.morphTargetManagers = [];\n for (const l of e.meshes) {\n const h = l.morphTargetManager;\n h && i.morphTargetManagers.push(h.serialize());\n }\n i.lights = [];\n let s, r;\n for (s = 0; s < e.lights.length; s++)\n r = e.lights[s], r.doNotSerialize || i.lights.push(r.serialize());\n for (i.cameras = [], s = 0; s < e.cameras.length; s++) {\n const l = e.cameras[s];\n l.doNotSerialize || i.cameras.push(l.serialize());\n }\n if (e.activeCamera && (i.activeCameraID = e.activeCamera.id), Ae.AppendSerializedAnimations(e, i), e.animationGroups && e.animationGroups.length > 0) {\n i.animationGroups = [];\n for (let l = 0; l < e.animationGroups.length; l++) {\n const h = e.animationGroups[l];\n i.animationGroups.push(h.serialize());\n }\n }\n if (e.reflectionProbes && e.reflectionProbes.length > 0)\n for (i.reflectionProbes = [], s = 0; s < e.reflectionProbes.length; s++) {\n const l = e.reflectionProbes[s];\n i.reflectionProbes.push(l.serialize());\n }\n i.materials = [], i.multiMaterials = [];\n let n;\n for (s = 0; s < e.materials.length; s++)\n n = e.materials[s], n.doNotSerialize || i.materials.push(n.serialize());\n for (i.multiMaterials = [], s = 0; s < e.multiMaterials.length; s++) {\n const l = e.multiMaterials[s];\n i.multiMaterials.push(l.serialize());\n }\n for (e.environmentTexture && (e.environmentTexture._files ? i.environmentTexture = e.environmentTexture.serialize() : (i.environmentTexture = e.environmentTexture.name, i.environmentTextureRotationY = e.environmentTexture.rotationY)), i.environmentIntensity = e.environmentIntensity, i.skeletons = [], s = 0; s < e.skeletons.length; s++) {\n const l = e.skeletons[s];\n l.doNotSerialize || i.skeletons.push(l.serialize());\n }\n for (i.transformNodes = [], s = 0; s < e.transformNodes.length; s++)\n e.transformNodes[s].doNotSerialize || i.transformNodes.push(e.transformNodes[s].serialize());\n i.geometries = {}, i.geometries.boxes = [], i.geometries.spheres = [], i.geometries.cylinders = [], i.geometries.toruses = [], i.geometries.grounds = [], i.geometries.planes = [], i.geometries.torusKnots = [], i.geometries.vertexData = [], Xg = [];\n const o = e.getGeometries();\n for (s = 0; s < o.length; s++) {\n const l = o[s];\n l.isReady() && tT(l, i.geometries);\n }\n for (i.meshes = [], s = 0; s < e.meshes.length; s++) {\n const l = e.meshes[s];\n if (l instanceof H) {\n const h = l;\n h.doNotSerialize || (h.delayLoadState === 1 || h.delayLoadState === 0) && i.meshes.push(aI(h, i));\n }\n }\n for (i.particleSystems = [], s = 0; s < e.particleSystems.length; s++)\n i.particleSystems.push(e.particleSystems[s].serialize(!1));\n for (i.postProcesses = [], s = 0; s < e.postProcesses.length; s++)\n i.postProcesses.push(e.postProcesses[s].serialize());\n e.actionManager && (i.actions = e.actionManager.serialize(\"scene\"));\n for (const l of e._serializableComponents)\n l.serialize(i);\n if (e.spriteManagers)\n for (i.spriteManagers = [], s = 0; s < e.spriteManagers.length; s++)\n i.spriteManagers.push(e.spriteManagers[s].serialize(!0));\n return i;\n }\n /**\n * Serialize a scene into a JSON compatible object\n * @param scene defines the scene to serialize\n * @returns a JSON promise compatible object\n */\n static SerializeAsync(e) {\n const t = _h._Serialize(e, !1), i = [];\n return this._CollectPromises(t, i), Promise.all(i).then(() => t);\n }\n static _CollectPromises(e, t) {\n if (Array.isArray(e))\n for (let i = 0; i < e.length; ++i) {\n const s = e[i];\n s instanceof Promise ? t.push(s.then((r) => e[i] = r)) : (s instanceof Object || Array.isArray(s)) && this._CollectPromises(s, t);\n }\n else if (e instanceof Object) {\n for (const i in e)\n if (Object.prototype.hasOwnProperty.call(e, i)) {\n const s = e[i];\n s instanceof Promise ? t.push(s.then((r) => e[i] = r)) : (s instanceof Object || Array.isArray(s)) && this._CollectPromises(s, t);\n }\n }\n }\n /**\n * Serialize a mesh into a JSON compatible object\n * @param toSerialize defines the mesh to serialize\n * @param withParents defines if parents must be serialized as well\n * @param withChildren defines if children must be serialized as well\n * @returns a JSON compatible object\n */\n static SerializeMesh(e, t = !1, i = !1) {\n const s = {};\n if (s.meshes = [], s.transformNodes = [], s.cameras = [], s.lights = [], _h.ClearCache(), e = e instanceof Array ? e : [e], t || i)\n for (let r = 0; r < e.length; ++r)\n i && e[r].getDescendants().forEach((n) => {\n e.indexOf(n) < 0 && !n.doNotSerialize && e.push(n);\n }), t && e[r].parent && e.indexOf(e[r].parent) < 0 && !e[r].parent.doNotSerialize && e.push(e[r].parent);\n return e.forEach((r) => {\n hH(r, s);\n }), s;\n }\n}\nclass e_ {\n /**\n * Returns whether or not the VideoRecorder is available in your browser.\n * @param engine Defines the Babylon Engine.\n * @param canvas Defines the canvas to record. If not provided, the engine canvas will be used.\n * @returns true if supported otherwise false.\n */\n static IsSupported(e, t) {\n const i = t ?? e.getRenderingCanvas();\n return !!i && typeof i.captureStream == \"function\";\n }\n /**\n * True when a recording is already in progress.\n */\n get isRecording() {\n return !!this._canvas && this._canvas.isRecording;\n }\n /**\n * Create a new VideoCapture object which can help converting what you see in Babylon to a video file.\n * @param engine Defines the BabylonJS Engine you wish to record.\n * @param options Defines options that can be used to customize the capture.\n */\n constructor(e, t = {}) {\n if (!e_.IsSupported(e, t.canvas))\n throw \"Your browser does not support recording so far.\";\n const i = t.canvas ?? e.getRenderingCanvas();\n if (!i)\n throw \"The babylon engine must have a canvas to be recorded\";\n this._canvas = i, this._canvas.isRecording = !1, this._options = {\n ...e_._DefaultOptions,\n ...t\n };\n const s = this._canvas.captureStream(this._options.fps);\n if (this._options.audioTracks)\n for (const r of this._options.audioTracks)\n s.addTrack(r);\n this._mediaRecorder = new MediaRecorder(s, { mimeType: this._options.mimeType }), this._mediaRecorder.ondataavailable = (r) => this._handleDataAvailable(r), this._mediaRecorder.onerror = (r) => this._handleError(r), this._mediaRecorder.onstop = () => this._handleStop();\n }\n /**\n * Stops the current recording before the default capture timeout passed in the startRecording function.\n */\n stopRecording() {\n !this._canvas || !this._mediaRecorder || this.isRecording && (this._canvas.isRecording = !1, this._mediaRecorder.stop());\n }\n /**\n * Starts recording the canvas for a max duration specified in parameters.\n * @param fileName Defines the name of the file to be downloaded when the recording stop.\n * If null no automatic download will start and you can rely on the promise to get the data back.\n * @param maxDuration Defines the maximum recording time in seconds.\n * It defaults to 7 seconds. A value of zero will not stop automatically, you would need to call stopRecording manually.\n * @returns A promise callback at the end of the recording with the video data in Blob.\n */\n startRecording(e = \"babylonjs.webm\", t = 7) {\n if (!this._canvas || !this._mediaRecorder)\n throw \"Recorder has already been disposed\";\n if (this.isRecording)\n throw \"Recording already in progress\";\n return t > 0 && setTimeout(() => {\n this.stopRecording();\n }, t * 1e3), this._fileName = e, this._recordedChunks = [], this._resolve = null, this._reject = null, this._canvas.isRecording = !0, this._mediaRecorder.start(this._options.recordChunckSize), new Promise((i, s) => {\n this._resolve = i, this._reject = s;\n });\n }\n /**\n * Releases internal resources used during the recording.\n */\n dispose() {\n this._canvas = null, this._mediaRecorder = null, this._recordedChunks = [], this._fileName = null, this._resolve = null, this._reject = null;\n }\n _handleDataAvailable(e) {\n e.data.size > 0 && this._recordedChunks.push(e.data);\n }\n _handleError(e) {\n if (this.stopRecording(), this._reject)\n this._reject(e.error);\n else\n throw new e.error();\n }\n _handleStop() {\n this.stopRecording();\n const e = new Blob(this._recordedChunks);\n this._resolve && this._resolve(e), window.URL.createObjectURL(e), this._fileName && J.Download(e, this._fileName);\n }\n}\ne_._DefaultOptions = {\n mimeType: \"video/webm\",\n fps: 25,\n recordChunckSize: 3e3\n};\nlet yo = null;\nfunction mm(a, e, t, i, s = \"image/png\", r = !1, n) {\n const { height: o, width: l } = hI(a, e, t);\n if (!(o && l)) {\n L.Error(\"Invalid 'size' parameter !\");\n return;\n }\n yo || (yo = document.createElement(\"canvas\")), yo.width = l, yo.height = o;\n const h = yo.getContext(\"2d\"), c = a.getRenderWidth() / a.getRenderHeight();\n let u = l, d = u / c;\n d > o && (d = o, u = d * c);\n const f = Math.max(0, l - u) / 2, p = Math.max(0, o - d) / 2;\n e.getScene().activeCamera !== e ? gm(a, e, t, (m) => {\n if (r) {\n const x = new Blob([m]);\n J.DownloadBlob(x), i && i(\"\");\n } else i && i(m);\n }, s, 1, a.getCreationOptions().antialias, void 0, void 0, void 0, void 0, n) : a.onEndFrameObservable.addOnce(() => {\n const m = a.getRenderingCanvas();\n h && m && h.drawImage(m, f, p, u, d), yo && (r ? (J.EncodeScreenshotCanvasData(yo, void 0, s, void 0, n), i && i(\"\")) : J.EncodeScreenshotCanvasData(yo, i, s, void 0, n));\n });\n}\nfunction oI(a, e, t, i = \"image/png\", s) {\n return new Promise((r, n) => {\n mm(a, e, t, (o) => {\n typeof o < \"u\" ? r(o) : n(new Error(\"Data is undefined\"));\n }, i, void 0, s);\n });\n}\nfunction cH(a, e, t, i, s = \"image/png\", r) {\n return new Promise((n) => {\n mm(a, e, { width: t, height: i }, () => {\n n();\n }, s, !0, r);\n });\n}\nfunction gm(a, e, t, i, s = \"image/png\", r = 1, n = !1, o, l = !1, h = !1, c = !0, u, d) {\n const { height: f, width: p, finalWidth: _, finalHeight: m } = hI(a, e, t), x = { width: p, height: f };\n if (!(f && p)) {\n L.Error(\"Invalid 'size' parameter !\");\n return;\n }\n const v = { width: a.getRenderWidth(), height: a.getRenderHeight() };\n a.setSize(p, f);\n const T = e.getScene(), E = new Ii(\"screenShot\", x, T, !1, !1, 0, !1, X.BILINEAR_SAMPLINGMODE, void 0, h, void 0, void 0, void 0, r);\n E.renderList = T.meshes.slice(), E.samples = r, E.renderSprites = l, E.activeCamera = e, E.forceLayerMaskCheck = c, d == null || d(E);\n const b = () => {\n E.isReadyForRendering() && e.isReady(!0) ? (a.onEndFrameObservable.addOnce(() => {\n _ === p && m === f ? E.readPixels(void 0, void 0, void 0, !1).then((C) => {\n js.DumpData(p, f, C, i, s, o, !0, void 0, u), E.dispose();\n }) : Rx(\"pass\", E.getInternalTexture(), T, void 0, void 0, void 0, _, m).then((C) => {\n a._readTexturePixels(C, _, m, -1, 0, null, !0, !1, 0, 0).then((P) => {\n js.DumpData(_, m, P, i, s, o, !0, void 0, u), C.dispose();\n });\n });\n }), E.render(!0), T.incrementRenderId(), T.resetCachedMaterial(), a.setSize(v.width, v.height), e.getProjectionMatrix(!0), T.render()) : setTimeout(b, 16);\n }, S = () => {\n T.incrementRenderId(), T.resetCachedMaterial(), b();\n };\n if (n) {\n const C = new Ic(\"antialiasing\", 1, T.activeCamera);\n E.addPostProcess(C), C.getEffect().isReady() ? S() : C.getEffect().onCompiled = () => {\n S();\n };\n } else\n S();\n}\nfunction lI(a, e, t, i = \"image/png\", s = 1, r = !1, n, o = !1, l = !1, h = !0, c) {\n return new Promise((u, d) => {\n gm(a, e, t, (f) => {\n typeof f < \"u\" ? u(f) : d(new Error(\"Data is undefined\"));\n }, i, s, r, n, o, l, h, c);\n });\n}\nfunction hI(a, e, t) {\n let i = 0, s = 0, r = 0, n = 0;\n if (typeof t == \"object\") {\n const o = t.precision ? Math.abs(t.precision) : 1;\n t.width && t.height ? (i = t.height * o, s = t.width * o) : t.width && !t.height ? (s = t.width * o, i = Math.round(s / a.getAspectRatio(e))) : t.height && !t.width ? (i = t.height * o, s = Math.round(i * a.getAspectRatio(e))) : (s = Math.round(a.getRenderWidth() * o), i = Math.round(s / a.getAspectRatio(e))), t.finalWidth && t.finalHeight ? (n = t.finalHeight, r = t.finalWidth) : t.finalWidth && !t.finalHeight ? (r = t.finalWidth, n = Math.round(r / a.getAspectRatio(e))) : t.finalHeight && !t.finalWidth ? (n = t.finalHeight, r = Math.round(n * a.getAspectRatio(e))) : (r = s, n = i);\n } else isNaN(t) || (i = t, s = t, r = t, n = t);\n return s && (s = Math.floor(s)), i && (i = Math.floor(i)), r && (r = Math.floor(r)), n && (n = Math.floor(n)), { height: i | 0, width: s | 0, finalWidth: r | 0, finalHeight: n | 0 };\n}\nconst ZK = {\n /**\n * Captures a screenshot of the current rendering\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/renderToPNG\n * @param engine defines the rendering engine\n * @param camera defines the source camera\n * @param size This parameter can be set to a single number or to an object with the\n * following (optional) properties: precision, width, height. If a single number is passed,\n * it will be used for both width and height. If an object is passed, the screenshot size\n * will be derived from the parameters. The precision property is a multiplier allowing\n * rendering at a higher or lower resolution\n * @param successCallback defines the callback receives a single parameter which contains the\n * screenshot as a string of base64-encoded characters. This string can be assigned to the\n * src parameter of an to display it\n * @param mimeType defines the MIME type of the screenshot image (default: image/png).\n * Check your browser for supported MIME types\n * @param forceDownload force the system to download the image even if a successCallback is provided\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n */\n CreateScreenshot: mm,\n /**\n * Captures a screenshot of the current rendering\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/renderToPNG\n * @param engine defines the rendering engine\n * @param camera defines the source camera\n * @param size This parameter can be set to a single number or to an object with the\n * following (optional) properties: precision, width, height. If a single number is passed,\n * it will be used for both width and height. If an object is passed, the screenshot size\n * will be derived from the parameters. The precision property is a multiplier allowing\n * rendering at a higher or lower resolution\n * @param mimeType defines the MIME type of the screenshot image (default: image/png).\n * Check your browser for supported MIME types\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n * @returns screenshot as a string of base64-encoded characters. This string can be assigned\n * to the src parameter of an to display it\n */\n CreateScreenshotAsync: oI,\n /**\n * Captures a screenshot of the current rendering for a specific size. This will render the entire canvas but will generate a blink (due to canvas resize)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/renderToPNG\n * @param engine defines the rendering engine\n * @param camera defines the source camera\n * @param width defines the expected width\n * @param height defines the expected height\n * @param mimeType defines the MIME type of the screenshot image (default: image/png).\n * Check your browser for supported MIME types\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n * @returns screenshot as a string of base64-encoded characters. This string can be assigned\n * to the src parameter of an to display it\n */\n CreateScreenshotWithResizeAsync: cH,\n /**\n * Generates an image screenshot from the specified camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/renderToPNG\n * @param engine The engine to use for rendering\n * @param camera The camera to use for rendering\n * @param size This parameter can be set to a single number or to an object with the\n * following (optional) properties: precision, width, height. If a single number is passed,\n * it will be used for both width and height. If an object is passed, the screenshot size\n * will be derived from the parameters. The precision property is a multiplier allowing\n * rendering at a higher or lower resolution\n * @param successCallback The callback receives a single parameter which contains the\n * screenshot as a string of base64-encoded characters. This string can be assigned to the\n * src parameter of an to display it\n * @param mimeType The MIME type of the screenshot image (default: image/png).\n * Check your browser for supported MIME types\n * @param samples Texture samples (default: 1)\n * @param antialiasing Whether antialiasing should be turned on or not (default: false)\n * @param fileName A name for for the downloaded file.\n * @param renderSprites Whether the sprites should be rendered or not (default: false)\n * @param enableStencilBuffer Whether the stencil buffer should be enabled or not (default: false)\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n */\n CreateScreenshotUsingRenderTarget: gm,\n /**\n * Generates an image screenshot from the specified camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/renderToPNG\n * @param engine The engine to use for rendering\n * @param camera The camera to use for rendering\n * @param size This parameter can be set to a single number or to an object with the\n * following (optional) properties: precision, width, height. If a single number is passed,\n * it will be used for both width and height. If an object is passed, the screenshot size\n * will be derived from the parameters. The precision property is a multiplier allowing\n * rendering at a higher or lower resolution\n * @param mimeType The MIME type of the screenshot image (default: image/png).\n * Check your browser for supported MIME types\n * @param samples Texture samples (default: 1)\n * @param antialiasing Whether antialiasing should be turned on or not (default: false)\n * @param fileName A name for for the downloaded file.\n * @param renderSprites Whether the sprites should be rendered or not (default: false)\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n * @returns screenshot as a string of base64-encoded characters. This string can be assigned\n * to the src parameter of an to display it\n */\n CreateScreenshotUsingRenderTargetAsync: lI\n}, uH = () => {\n J.CreateScreenshot = mm, J.CreateScreenshotAsync = oI, J.CreateScreenshotUsingRenderTarget = gm, J.CreateScreenshotUsingRenderTargetAsync = lI;\n};\nuH();\nvar vy;\n(function(a) {\n a[a.Checkbox = 0] = \"Checkbox\", a[a.Slider = 1] = \"Slider\", a[a.Vector3 = 2] = \"Vector3\", a[a.Quaternion = 3] = \"Quaternion\", a[a.Color3 = 4] = \"Color3\", a[a.String = 5] = \"String\", a[a.Button = 6] = \"Button\", a[a.Options = 7] = \"Options\", a[a.Tab = 8] = \"Tab\", a[a.FileButton = 9] = \"FileButton\", a[a.Vector2 = 10] = \"Vector2\";\n})(vy || (vy = {}));\nclass Ty {\n static _GetStorage() {\n try {\n return localStorage.setItem(\"test\", \"\"), localStorage.removeItem(\"test\"), localStorage;\n } catch {\n const e = {};\n return {\n getItem: (t) => {\n const i = e[t];\n return i === void 0 ? null : i;\n },\n setItem: (t, i) => {\n e[t] = i;\n }\n };\n }\n }\n /**\n * Reads a string from the data storage\n * @param key The key to read\n * @param defaultValue The value if the key doesn't exist\n * @returns The string value\n */\n static ReadString(e, t) {\n const i = this._Storage.getItem(e);\n return i !== null ? i : t;\n }\n /**\n * Writes a string to the data storage\n * @param key The key to write\n * @param value The value to write\n */\n static WriteString(e, t) {\n this._Storage.setItem(e, t);\n }\n /**\n * Reads a boolean from the data storage\n * @param key The key to read\n * @param defaultValue The value if the key doesn't exist\n * @returns The boolean value\n */\n static ReadBoolean(e, t) {\n const i = this._Storage.getItem(e);\n return i !== null ? i === \"true\" : t;\n }\n /**\n * Writes a boolean to the data storage\n * @param key The key to write\n * @param value The value to write\n */\n static WriteBoolean(e, t) {\n this._Storage.setItem(e, t ? \"true\" : \"false\");\n }\n /**\n * Reads a number from the data storage\n * @param key The key to read\n * @param defaultValue The value if the key doesn't exist\n * @returns The number value\n */\n static ReadNumber(e, t) {\n const i = this._Storage.getItem(e);\n return i !== null ? parseFloat(i) : t;\n }\n /**\n * Writes a number to the data storage\n * @param key The key to write\n * @param value The value to write\n */\n static WriteNumber(e, t) {\n this._Storage.setItem(e, t.toString());\n }\n}\nTy._Storage = Ty._GetStorage();\nvar hc;\n(function(a) {\n class e {\n /**\n * Serialize the Alphabet to JSON string.\n * @returns JSON serialization\n */\n serialize() {\n const s = {}, r = new Array(this._characterToIdx.size);\n return this._characterToIdx.forEach((n, o) => {\n r[n] = o;\n }), s.characters = r, s.insertionCosts = this._insertionCosts, s.deletionCosts = this._deletionCosts, s.substitutionCosts = this._substitutionCosts, JSON.stringify(s);\n }\n /**\n * Parse an Alphabet from a JSON serialization.\n * @param json JSON string to deserialize\n * @returns deserialized Alphabet\n */\n static Deserialize(s) {\n const r = JSON.parse(s), n = new e(r.characters);\n return n._insertionCosts = r.insertionCosts, n._deletionCosts = r.deletionCosts, n._substitutionCosts = r.substitutionCosts, n;\n }\n /**\n * Create a new Alphabet.\n * @param characters characters of the alphabet\n * @param charToInsertionCost function mapping characters to insertion costs\n * @param charToDeletionCost function mapping characters to deletion costs\n * @param charsToSubstitutionCost function mapping character pairs to substitution costs\n */\n constructor(s, r = null, n = null, o = null) {\n r = r ?? (() => 1), n = n ?? (() => 1), o = o ?? ((h, c) => h === c ? 0 : 1), this._characterToIdx = /* @__PURE__ */ new Map(), this._insertionCosts = new Array(s.length), this._deletionCosts = new Array(s.length), this._substitutionCosts = new Array(s.length);\n let l;\n for (let h = 0; h < s.length; ++h) {\n l = s[h], this._characterToIdx.set(l, h), this._insertionCosts[h] = r(l), this._deletionCosts[h] = n(l), this._substitutionCosts[h] = new Array(s.length);\n for (let c = h; c < s.length; ++c)\n this._substitutionCosts[h][c] = o(l, s[c]);\n }\n }\n /**\n * Get the index (internally-assigned number) for a character.\n * @param char character\n * @returns index\n */\n getCharacterIdx(s) {\n return this._characterToIdx.get(s);\n }\n /**\n * Get the insertion cost of a character from its index.\n * @param idx character index\n * @returns insertion cost\n */\n getInsertionCost(s) {\n return this._insertionCosts[s];\n }\n /**\n * Get the deletion cost of a character from its index.\n * @param idx character index\n * @returns deletion cost\n */\n getDeletionCost(s) {\n return this._deletionCosts[s];\n }\n /**\n * Gets the cost to substitute two characters. NOTE: this cost is\n * required to be bi-directional, meaning it cannot matter which of\n * the provided characters is being removed and which is being inserted.\n * @param idx1 the first character index\n * @param idx2 the second character index\n * @returns substitution cost\n */\n getSubstitutionCost(s, r) {\n const n = Math.min(s, r), o = Math.max(s, r);\n return this._substitutionCosts[n][o];\n }\n }\n a.Alphabet = e;\n class t {\n /**\n * Serialize to JSON string. JSON representation does NOT include the Alphabet\n * from which this Sequence was created; Alphabet must be independently\n * serialized.\n * @returns JSON string\n */\n serialize() {\n return JSON.stringify(this._characters);\n }\n /**\n * Deserialize from JSON string and Alphabet. This should be the same Alphabet\n * from which the Sequence was originally created, which must be serialized and\n * deserialized independently so that it can be passed in here.\n * @param json JSON string representation of Sequence\n * @param alphabet Alphabet from which Sequence was originally created\n * @returns Sequence\n */\n static Deserialize(s, r) {\n const n = new t([], r);\n return n._characters = JSON.parse(s), n;\n }\n /**\n * Create a new Sequence.\n * @param characters characters in the new Sequence\n * @param alphabet Alphabet, which must include all used characters\n */\n constructor(s, r) {\n if (s.length > t._MAX_SEQUENCE_LENGTH)\n throw new Error(\"Sequences longer than \" + t._MAX_SEQUENCE_LENGTH + \" not supported.\");\n this._alphabet = r, this._characters = s.map((n) => this._alphabet.getCharacterIdx(n));\n }\n /**\n * Get the distance between this Sequence and another.\n * @param other sequence to compare to\n * @returns Levenshtein distance\n */\n distance(s) {\n return t._Distance(this, s);\n }\n /**\n * Compute the Levenshtein distance between two Sequences.\n * @param a first Sequence\n * @param b second Sequence\n * @returns Levenshtein distance\n */\n static _Distance(s, r) {\n const n = s._alphabet;\n if (n !== r._alphabet)\n throw new Error(\"Cannot Levenshtein compare Sequences built from different alphabets.\");\n const o = s._characters, l = r._characters, h = o.length, c = l.length, u = t._CostMatrix;\n u[0][0] = 0;\n for (let d = 0; d < h; ++d)\n u[d + 1][0] = u[d][0] + n.getInsertionCost(o[d]);\n for (let d = 0; d < c; ++d)\n u[0][d + 1] = u[0][d] + n.getInsertionCost(l[d]);\n for (let d = 0; d < h; ++d)\n for (let f = 0; f < c; ++f)\n t._InsertionCost = u[d + 1][f] + n.getInsertionCost(l[f]), t._DeletionCost = u[d][f + 1] + n.getDeletionCost(o[d]), t._SubstitutionCost = u[d][f] + n.getSubstitutionCost(o[d], l[f]), u[d + 1][f + 1] = Math.min(t._InsertionCost, t._DeletionCost, t._SubstitutionCost);\n return u[h][c];\n }\n }\n t._MAX_SEQUENCE_LENGTH = 256, t._CostMatrix = [...Array(t._MAX_SEQUENCE_LENGTH + 1)].map(() => new Array(t._MAX_SEQUENCE_LENGTH + 1)), a.Sequence = t;\n})(hc || (hc = {}));\nclass ei {\n /**\n * Serialize to JSON.\n * @returns serialized JSON string\n */\n serialize() {\n return JSON.stringify(this);\n }\n /**\n * Deserialize from JSON.\n * @param json serialized JSON string\n * @returns deserialized Trajectory\n */\n static Deserialize(e) {\n const t = JSON.parse(e), i = new ei(t._segmentLength);\n return i._points = t._points.map((s) => new g(s._x, s._y, s._z)), i;\n }\n /**\n * Create a new empty Trajectory.\n * @param segmentLength radius of discretization for Trajectory points\n */\n constructor(e = 0.01) {\n this._points = [], this._segmentLength = e;\n }\n /**\n * Get the length of the Trajectory.\n * @returns length of the Trajectory\n */\n getLength() {\n return this._points.length * this._segmentLength;\n }\n /**\n * Append a new point to the Trajectory.\n * NOTE: This implementation has many allocations.\n * @param point point to append to the Trajectory\n */\n add(e) {\n let t = this._points.length;\n if (t === 0)\n this._points.push(e.clone());\n else {\n const i = () => this._segmentLength / g.Distance(this._points[t - 1], e);\n for (let s = i(); s <= 1; s = i()) {\n const r = this._points[t - 1].scale(1 - s);\n e.scaleAndAddToRef(s, r), this._points.push(r), ++t;\n }\n }\n }\n /**\n * Create a new Trajectory with a segment length chosen to make it\n * probable that the new Trajectory will have a specified number of\n * segments. This operation is imprecise.\n * @param targetResolution number of segments desired\n * @returns new Trajectory with approximately the requested number of segments\n */\n resampleAtTargetResolution(e) {\n const t = new ei(this.getLength() / e);\n return this._points.forEach((i) => {\n t.add(i);\n }), t;\n }\n /**\n * Convert Trajectory segments into tokenized representation. This\n * representation is an array of numbers where each nth number is the\n * index of the token which is most similar to the nth segment of the\n * Trajectory.\n * @param tokens list of vectors which serve as discrete tokens\n * @returns list of indices of most similar token per segment\n */\n tokenize(e) {\n const t = [], i = new g();\n for (let s = 2; s < this._points.length; ++s)\n ei._TransformSegmentDirToRef(this._points[s - 2], this._points[s - 1], this._points[s], i) && t.push(ei._TokenizeSegment(i, e));\n return t;\n }\n /**\n * Transform the rotation (i.e., direction) of a segment to isolate\n * the relative transformation represented by the segment. This operation\n * may or may not succeed due to singularities in the equations that define\n * motion relativity in this context.\n * @param priorVec the origin of the prior segment\n * @param fromVec the origin of the current segment\n * @param toVec the destination of the current segment\n * @param result reference to output variable\n * @returns whether or not transformation was successful\n */\n static _TransformSegmentDirToRef(e, t, i, s) {\n return t.subtractToRef(e, ei._ForwardDir), ei._ForwardDir.normalize(), t.scaleToRef(-1, ei._InverseFromVec), ei._InverseFromVec.normalize(), Math.abs(g.Dot(ei._ForwardDir, ei._InverseFromVec)) > 0.98 ? !1 : (g.CrossToRef(ei._ForwardDir, ei._InverseFromVec, ei._UpDir), ei._UpDir.normalize(), O.LookAtLHToRef(e, t, ei._UpDir, ei._LookMatrix), i.subtractToRef(t, ei._FromToVec), ei._FromToVec.normalize(), g.TransformNormalToRef(ei._FromToVec, ei._LookMatrix, s), !0);\n }\n /**\n * Determine which token vector is most similar to the\n * segment vector.\n * @param segment segment vector\n * @param tokens token vector list\n * @returns index of the most similar token to the segment\n */\n static _TokenizeSegment(e, t) {\n ei._BestMatch = 0, ei._Score = g.Dot(e, t[0]), ei._BestScore = ei._Score;\n for (let i = 1; i < t.length; ++i)\n ei._Score = g.Dot(e, t[i]), ei._Score > ei._BestScore && (ei._BestMatch = i, ei._BestScore = ei._Score);\n return ei._BestMatch;\n }\n}\nei._ForwardDir = new g();\nei._InverseFromVec = new g();\nei._UpDir = new g();\nei._FromToVec = new g();\nei._LookMatrix = new O();\nclass Pu {\n /**\n * Helper method to create new \"spikeball\" Vector3Alphabets. Uses a naive\n * optimize-from-random strategy to space points around the unit sphere\n * surface as a simple alternative to really doing the math to tile the\n * sphere.\n * @param alphabetSize size of the desired alphabet\n * @param iterations number of iterations over which to optimize the \"spikeball\"\n * @param startingStepSize distance factor to move points in early optimization iterations\n * @param endingStepSize distance factor to move points in late optimization iterations\n * @param fixedValues alphabet \"characters\" that are required and cannot be moved by optimization\n * @returns a new randomly generated and optimized Vector3Alphabet of the specified size\n */\n static Generate(e = 64, t = 256, i = 0.1, s = 1e-3, r = []) {\n const l = new Pu(e);\n for (let p = 0; p < e; ++p)\n l.chars[p] = new g(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5), l.chars[p].normalize();\n for (let p = 0; p < r.length; ++p)\n l.chars[p].copyFrom(r[p]);\n let h, c;\n const u = new g(), d = new g(), f = (p, _, m) => (1 - m) * p + m * _;\n for (let p = 0; p < t; ++p) {\n h = f(i, s, p / (t - 1));\n for (let _ = r.length; _ < l.chars.length; ++_)\n u.copyFromFloats(0, 0, 0), l.chars.forEach((m) => {\n l.chars[_].subtractToRef(m, d), c = d.lengthSquared(), c > 1e-6 && d.scaleAndAddToRef(1 / (d.lengthSquared() * c), u);\n }), u.scaleInPlace(h), l.chars[_].addInPlace(u), l.chars[_].normalize();\n }\n return l;\n }\n /**\n * Serialize to JSON.\n * @returns JSON serialization\n */\n serialize() {\n return JSON.stringify(this.chars);\n }\n /**\n * Deserialize from JSON.\n * @param json JSON serialization\n * @returns deserialized Vector3Alphabet\n */\n static Deserialize(e) {\n const t = JSON.parse(e), i = new Pu(t.length);\n for (let s = 0; s < t.length; ++s)\n i.chars[s] = new g(t[s]._x, t[s]._y, t[s]._z);\n return i;\n }\n constructor(e) {\n this.chars = new Array(e);\n }\n}\nclass Ea {\n /**\n * Serialize to JSON.\n * @returns JSON serialization\n */\n serialize() {\n return JSON.stringify(this._sequences.map((e) => e.serialize()));\n }\n /**\n * Deserialize from JSON string and Alphabet. This should be the same Alphabet\n * from which the descriptor was originally created, which must be serialized and\n * deserialized independently so that it can be passed in here.\n * @param json JSON serialization\n * @param alphabet Alphabet from which descriptor was originally created\n * @returns deserialized TrajectoryDescriptor\n */\n static Deserialize(e, t) {\n const i = new Ea();\n return i._sequences = JSON.parse(e).map((s) => hc.Sequence.Deserialize(s, t)), i;\n }\n /**\n * Create a new TrajectoryDescriptor to describe a provided Trajectory according\n * to the provided alphabets.\n * @param trajectory Trajectory to be described\n * @param vector3Alphabet Vector3Alphabet to be used to tokenize the Trajectory\n * @param levenshteinAlphabet Levenshtein.Alphabet to be used as basis for comparison with other descriptors\n * @returns TrajectoryDescriptor describing provided Trajectory\n */\n static CreateFromTrajectory(e, t, i) {\n return Ea.CreateFromTokenizationPyramid(Ea._GetTokenizationPyramid(e, t), i);\n }\n /**\n * Create a new TrajectoryDescriptor from a pre-existing pyramid of tokens.\n * NOTE: This function exists to support an outdated serialization mechanism and should\n * be deleted if it is no longer useful.\n * @param pyramid tokenization pyramid\n * @param levenshteinAlphabet Levenshtein.Alphabet to be uses as basis for comparison with other descriptors\n * @returns TrajectoryDescriptor describing the Trajectory from which the pyramid was built\n */\n static CreateFromTokenizationPyramid(e, t) {\n const i = new Ea();\n return i._sequences = e.map((s) => new hc.Sequence(s, t)), i;\n }\n constructor() {\n this._sequences = [];\n }\n /**\n * Create the tokenization pyramid for the provided Trajectory according to the given\n * Vector3Alphabet.\n * @param trajectory Trajectory to be tokenized\n * @param alphabet Vector3Alphabet containing tokens\n * @param targetResolution finest resolution of descriptor\n * @returns tokenization pyramid for Trajectory\n */\n static _GetTokenizationPyramid(e, t, i = Ea._FINEST_DESCRIPTOR_RESOLUTION) {\n const s = [];\n for (let r = i; r > 4; r = Math.floor(r / 2))\n s.push(e.resampleAtTargetResolution(r).tokenize(t.chars));\n return s;\n }\n /**\n * Calculate a distance metric between this TrajectoryDescriptor and another. This is\n * essentially a similarity score and does not directly represent Euclidean distance,\n * edit distance, or any other formal distance metric.\n * @param other TrajectoryDescriptor from which to determine distance\n * @returns distance, a nonnegative similarity score where larger values indicate dissimilarity\n */\n distance(e) {\n let t = 0, i;\n for (let s = 0; s < this._sequences.length; ++s)\n i = Math.pow(2, s), t += i * this._sequences[s].distance(e._sequences[s]);\n return t;\n }\n}\nEa._FINEST_DESCRIPTOR_RESOLUTION = 32;\nclass cc {\n /**\n * Serialize to JSON.\n * @returns JSON serialization\n */\n serialize() {\n const e = {};\n return e.descriptors = this._descriptors.map((t) => t.serialize()), e.centroidIdx = this._centroidIdx, e.averageDistance = this._averageDistance, JSON.stringify(e);\n }\n /**\n * Deserialize from JSON string and Alphabet. This should be the same Alphabet\n * from which the descriptors were originally created, which must be serialized and\n * deserialized independently so that it can be passed in here.\n * @param json JSON string representation\n * @param alphabet Alphabet from which TrajectoryDescriptors were originally created\n * @returns deserialized TrajectoryDescriptor\n */\n static Deserialize(e, t) {\n const i = JSON.parse(e), s = new cc();\n return s._descriptors = i.descriptors.map((r) => Ea.Deserialize(r, t)), s._centroidIdx = i.centroidIdx, s._averageDistance = i.averageDistance, s;\n }\n /**\n * Create a new DescribedTrajectory.\n * @param descriptors currently-known TrajectoryDescriptors, if any\n */\n constructor(e = []) {\n this._descriptors = e, this._centroidIdx = -1, this._averageDistance = 0, this._refreshDescription();\n }\n /**\n * Add a new TrajectoryDescriptor to the list of descriptors known to describe\n * this same DescribedTrajectory.\n * @param descriptor descriptor to be added\n */\n add(e) {\n this._descriptors.push(e), this._refreshDescription();\n }\n /**\n * Compute the cost, which is inversely related to the likelihood that the provided\n * TrajectoryDescriptor describes a Trajectory that is considered to be the same as\n * the class represented by this DescribedTrajectory.\n * @param descriptor the descriptor to be costed\n * @returns cost of the match, which is a nonnegative similarity metric where larger values indicate dissimilarity\n */\n getMatchCost(e) {\n return e.distance(this._descriptors[this._centroidIdx]) / this._averageDistance;\n }\n /**\n * Compute the minimum distance between the queried TrajectoryDescriptor and a\n * descriptor which is a member of this collection. This is an alternative way of\n * conceptualizing match cost from getMatchCost(), and it serves a different function.\n * @param descriptor the descriptor to find the minimum distance to\n * @returns minimum descriptor distance to a member descriptor of this DescribedTrajectory\n */\n getMatchMinimumDistance(e) {\n return Math.min(...this._descriptors.map((t) => t.distance(e)));\n }\n /**\n * Refreshes the internal representation of this DescribedTrajectory.\n */\n _refreshDescription() {\n this._centroidIdx = -1;\n let e;\n const t = this._descriptors.map((i) => (e = 0, this._descriptors.forEach((s) => {\n e += i.distance(s);\n }), e));\n for (let i = 0; i < t.length; ++i)\n (this._centroidIdx < 0 || t[i] < t[this._centroidIdx]) && (this._centroidIdx = i);\n this._averageDistance = 0, this._descriptors.forEach((i) => {\n this._averageDistance += i.distance(this._descriptors[this._centroidIdx]);\n }), this._descriptors.length > 0 && (this._averageDistance = Math.max(this._averageDistance / this._descriptors.length, cc._MIN_AVERAGE_DISTANCE));\n }\n}\ncc._MIN_AVERAGE_DISTANCE = 1;\nclass $g {\n /**\n * Serialize to JSON.\n * @returns JSON serialization\n */\n serialize() {\n const e = {};\n return e.maximumAllowableMatchCost = this._maximumAllowableMatchCost, e.vector3Alphabet = this._vector3Alphabet.serialize(), e.levenshteinAlphabet = this._levenshteinAlphabet.serialize(), e.nameToDescribedTrajectory = [], this._nameToDescribedTrajectory.forEach((t, i) => {\n e.nameToDescribedTrajectory.push(i), e.nameToDescribedTrajectory.push(t.serialize());\n }), JSON.stringify(e);\n }\n /**\n * Deserialize from JSON.\n * @param json JSON serialization\n * @returns deserialized TrajectorySet\n */\n static Deserialize(e) {\n const t = JSON.parse(e), i = new $g();\n i._maximumAllowableMatchCost = t.maximumAllowableMatchCost, i._vector3Alphabet = Pu.Deserialize(t.vector3Alphabet), i._levenshteinAlphabet = hc.Alphabet.Deserialize(t.levenshteinAlphabet);\n for (let s = 0; s < t.nameToDescribedTrajectory.length; s += 2)\n i._nameToDescribedTrajectory.set(t.nameToDescribedTrajectory[s], cc.Deserialize(t.nameToDescribedTrajectory[s + 1], i._levenshteinAlphabet));\n return i;\n }\n /**\n * Initialize a new empty TrajectorySet with auto-generated Alphabets.\n * VERY naive, need to be generating these things from known\n * sets. Better version later, probably eliminating this one.\n * @returns auto-generated TrajectorySet\n */\n static Generate() {\n const e = Pu.Generate(64, 256, 0.1, 1e-3, [g.Forward()]), t = new Array(e.chars.length);\n for (let r = 0; r < t.length; ++r)\n t[r] = r;\n const i = new hc.Alphabet(t, (r) => r === 0 ? 0 : 1, (r) => r === 0 ? 0 : 1, (r, n) => Math.min(1 - g.Dot(e.chars[r], e.chars[n]), 1)), s = new $g();\n return s._vector3Alphabet = e, s._levenshteinAlphabet = i, s;\n }\n constructor() {\n this._maximumAllowableMatchCost = 4, this._nameToDescribedTrajectory = /* @__PURE__ */ new Map();\n }\n /**\n * Add a new Trajectory to the set with a given name.\n * @param trajectory new Trajectory to be added\n * @param classification name to which to add the Trajectory\n */\n addTrajectoryToClassification(e, t) {\n this._nameToDescribedTrajectory.has(t) || this._nameToDescribedTrajectory.set(t, new cc()), this._nameToDescribedTrajectory.get(t).add(Ea.CreateFromTrajectory(e, this._vector3Alphabet, this._levenshteinAlphabet));\n }\n /**\n * Remove a known named trajectory and all Trajectories associated with it.\n * @param classification name to remove\n * @returns whether anything was removed\n */\n deleteClassification(e) {\n return this._nameToDescribedTrajectory.delete(e);\n }\n /**\n * Attempt to recognize a Trajectory from among all the classifications\n * already known to the classifier.\n * @param trajectory Trajectory to be recognized\n * @returns classification of Trajectory if recognized, null otherwise\n */\n classifyTrajectory(e) {\n const t = Ea.CreateFromTrajectory(e, this._vector3Alphabet, this._levenshteinAlphabet), i = [];\n if (this._nameToDescribedTrajectory.forEach((o, l) => {\n o.getMatchCost(t) < this._maximumAllowableMatchCost && i.push(l);\n }), i.length === 0)\n return null;\n let s = 0, r = this._nameToDescribedTrajectory.get(i[s]).getMatchMinimumDistance(t), n;\n for (let o = 0; o < i.length; ++o)\n n = this._nameToDescribedTrajectory.get(i[o]).getMatchMinimumDistance(t), n < r && (r = n, s = o);\n return i[s];\n }\n}\nclass t_ {\n /**\n * Constructs a reflector object.\n * @param scene The scene to use\n * @param hostname The hostname of the reflector bridge\n * @param port The port of the reflector bridge\n */\n constructor(e, t, i) {\n this._scene = e, L.Log(`[Reflector] Connecting to ws://${t}:${i}`), this._webSocket = new WebSocket(`ws://${t}:${i}`), this._webSocket.onmessage = (s) => {\n const r = s.data;\n if (r.startsWith(t_._SERVER_PREFIX)) {\n const n = r.substr(t_._SERVER_PREFIX.length);\n L.Log(`[Reflector] Received server message: ${n.substr(0, 64)}`), this._handleServerMessage(n);\n return;\n } else\n L.Log(`[Reflector] Received client message: ${r.substr(0, 64)}`), this._handleClientMessage();\n }, this._webSocket.onclose = (s) => {\n L.Log(`[Reflector] Disconnected ${s.code} ${s.reason}`);\n };\n }\n /**\n * Closes the reflector connection\n */\n close() {\n this._webSocket.close();\n }\n _handleServerMessage(e) {\n switch (e) {\n case \"connected\": {\n _h.SerializeAsync(this._scene).then((t) => {\n this._webSocket.send(`load|${JSON.stringify(t)}`);\n });\n break;\n }\n }\n }\n _handleClientMessage() {\n }\n}\nt_._SERVER_PREFIX = \"$$\";\nconst dH = 1.5;\nclass Co {\n /**\n * Creates a new DynamicFloat32Array with the desired item capacity.\n * @param itemCapacity The initial item capacity you would like to set for the array.\n */\n constructor(e) {\n this._view = new Float32Array(e), this._itemLength = 0;\n }\n /**\n * The number of items currently in the array.\n */\n get itemLength() {\n return this._itemLength;\n }\n /**\n * Gets value at index, NaN if no such index exists.\n * @param index the index to get the value at.\n * @returns the value at the index provided.\n */\n at(e) {\n return e < 0 || e >= this._itemLength ? NaN : this._view[e];\n }\n /**\n * Gets a view of the original array from start to end (exclusive of end).\n * @param start starting index.\n * @param end ending index.\n * @returns a subarray of the original array.\n */\n subarray(e, t) {\n return e >= t || e < 0 ? new Float32Array(0) : (t > this._itemLength && (t = this._itemLength), this._view.subarray(e, t));\n }\n /**\n * Pushes items to the end of the array.\n * @param item The item to push into the array.\n */\n push(e) {\n this._view[this._itemLength] = e, this._itemLength++, this._itemLength >= this._view.length && this._growArray();\n }\n /**\n * Grows the array by the growth factor when necessary.\n */\n _growArray() {\n const e = Math.floor(this._view.length * dH), t = new Float32Array(e);\n t.set(this._view), this._view = t;\n }\n}\nconst Ao = 1800, fH = 24, pH = \"0\", Sy = \"timestamp\", by = \"numPoints\", _H = /\\r/g, lg = \"@\";\nclass Wn {\n /**\n * The offset for when actual data values start appearing inside a slice.\n */\n static get SliceDataOffset() {\n return 2;\n }\n /**\n * The offset for the value of the number of points inside a slice.\n */\n static get NumberOfPointsOffset() {\n return 1;\n }\n /**\n * Handles the creation of a performance viewer collector.\n * @param _scene the scene to collect on.\n * @param _enabledStrategyCallbacks the list of data to collect with callbacks for initialization purposes.\n */\n constructor(e, t) {\n this._scene = e, this._collectDataAtFrame = () => {\n const i = Es.Now - this._startingTimestamp, s = this.datasets.ids.length, r = this.datasets.startingIndices.itemLength;\n let n = 0;\n if (r > 0) {\n const o = this.datasets.startingIndices.at(r - 1);\n n = o + this.datasets.data.at(o + Wn.NumberOfPointsOffset) + Wn.SliceDataOffset;\n }\n if (this.datasets.startingIndices.push(n), this.datasets.data.push(i), this.datasets.data.push(s), this.datasets.ids.forEach((o) => {\n const l = this._strategies.get(o);\n l && this.datasets.data.push(l.getData());\n }), this.datasetObservable.hasObservers()) {\n const o = [i, s];\n for (let l = 0; l < s; l++)\n o.push(this.datasets.data.at(n + Wn.SliceDataOffset + l));\n this.datasetObservable.notifyObservers(o);\n }\n }, this.datasets = {\n ids: [],\n data: new Co(Ao),\n startingIndices: new Co(Ao)\n }, this._strategies = /* @__PURE__ */ new Map(), this._datasetMeta = /* @__PURE__ */ new Map(), this._eventRestoreSet = /* @__PURE__ */ new Set(), this._customEventObservable = new G(), this.datasetObservable = new G(), this.metadataObservable = new G((i) => i.callback(this._datasetMeta, new sC(0))), t && this.addCollectionStrategies(...t);\n }\n /**\n * Registers a custom string event which will be callable via sendEvent. This method returns an event object which will contain the id of the event.\n * The user can set a value optionally, which will be used in the sendEvent method. If the value is set, we will record this value at the end of each frame,\n * if not we will increment our counter and record the value of the counter at the end of each frame. The value recorded is 0 if no sendEvent method is called, within a frame.\n * @param name The name of the event to register\n * @param forceUpdate if the code should force add an event, and replace the last one.\n * @param category the category for that event\n * @returns The event registered, used in sendEvent\n */\n registerEvent(e, t, i) {\n var n;\n if (this._strategies.has(e) && !t)\n return;\n this._strategies.has(e) && t && ((n = this._strategies.get(e)) == null || n.dispose(), this._strategies.delete(e));\n const s = (o) => {\n let l = 0, h = 0;\n const c = o.onAfterRenderObservable.add(() => {\n h = l, l = 0;\n }), u = this._customEventObservable.add((d) => {\n e === d.name && (d.value !== void 0 ? l = d.value : l++);\n });\n return {\n id: e,\n getData: () => h,\n dispose: () => {\n o.onAfterRenderObservable.remove(c), this._customEventObservable.remove(u);\n }\n };\n }, r = {\n name: e\n };\n return this._eventRestoreSet.add(e), this.addCollectionStrategies({ strategyCallback: s, category: i }), r;\n }\n /**\n * Lets the perf collector handle an event, occurences or event value depending on if the event.value params is set.\n * @param event the event to handle an occurence for\n */\n sendEvent(e) {\n this._customEventObservable.notifyObservers(e);\n }\n /**\n * This event restores all custom string events if necessary.\n */\n _restoreStringEvents() {\n this._eventRestoreSet.size !== this._customEventObservable.observers.length && this._eventRestoreSet.forEach((e) => {\n this.registerEvent(e, !0);\n });\n }\n /**\n * This method adds additional collection strategies for data collection purposes.\n * @param strategyCallbacks the list of data to collect with callbacks.\n */\n addCollectionStrategies(...e) {\n for (let { strategyCallback: t, category: i, hidden: s } of e) {\n const r = t(this._scene);\n if (this._strategies.has(r.id)) {\n r.dispose();\n continue;\n }\n this.datasets.ids.push(r.id), i && (i = i.replace(new RegExp(lg, \"g\"), \"\")), this._datasetMeta.set(r.id, {\n color: this._getHexColorFromId(r.id),\n category: i,\n hidden: s\n }), this._strategies.set(r.id, r);\n }\n this.metadataObservable.notifyObservers(this._datasetMeta);\n }\n /**\n * Gets a 6 character hexcode representing the colour from a passed in string.\n * @param id the string to get a hex code for.\n * @returns a hexcode hashed from the id.\n */\n _getHexColorFromId(e) {\n let t = 0;\n for (let s = 0; s < e.length; s++)\n t = e.charCodeAt(s) + ((t << 5) - t);\n let i = \"#\";\n for (let s = 0; s < fH; s += 8) {\n const r = t >> s & 255;\n i += (pH + r.toString(16)).substr(-2);\n }\n return i;\n }\n /**\n * Collects and then sends the latest slice to any observers by using the appropriate strategy when the user wants.\n * The slice will be of the form [timestamp, numberOfPoints, value1, value2...]\n * This method does not add onto the collected data accessible via the datasets variable.\n */\n getCurrentSlice() {\n const e = Es.Now - this._startingTimestamp, t = this.datasets.ids.length, i = [e, t];\n this.datasets.ids.forEach((s) => {\n const r = this._strategies.get(s);\n r && this.datasetObservable.hasObservers() && i.push(r.getData());\n }), this.datasetObservable.hasObservers() && this.datasetObservable.notifyObservers(i);\n }\n /**\n * Updates a property for a dataset's metadata with the value provided.\n * @param id the id of the dataset which needs its metadata updated.\n * @param prop the property to update.\n * @param value the value to update the property with.\n */\n updateMetadata(e, t, i) {\n const s = this._datasetMeta.get(e);\n s && (s[t] = i, this.metadataObservable.notifyObservers(this._datasetMeta));\n }\n /**\n * Completely clear, data, ids, and strategies saved to this performance collector.\n * @param preserveStringEventsRestore if it should preserve the string events, by default will clear string events registered when called.\n */\n clear(e) {\n this.datasets.data = new Co(Ao), this.datasets.ids.length = 0, this.datasets.startingIndices = new Co(Ao), this._datasetMeta.clear(), this._strategies.forEach((t) => t.dispose()), this._strategies.clear(), e || this._eventRestoreSet.clear(), this._hasLoadedData = !1;\n }\n /**\n * Accessor which lets the caller know if the performance collector has data loaded from a file or not!\n * Call clear() to reset this value.\n * @returns true if the data is loaded from a file, false otherwise.\n */\n get hasLoadedData() {\n return this._hasLoadedData;\n }\n /**\n * Given a string containing file data, this function parses the file data into the datasets object.\n * It returns a boolean to indicate if this object was successfully loaded with the data.\n * @param data string content representing the file data.\n * @param keepDatasetMeta if it should use reuse the existing dataset metadata\n * @returns true if the data was successfully loaded, false otherwise.\n */\n loadFromFileData(e, t) {\n const i = e.replace(_H, \"\").split(`\n`).map((u) => u.split(\",\").filter((d) => d.length > 0)).filter((u) => u.length > 0), s = 0, r = Wn.NumberOfPointsOffset;\n if (i.length < 2)\n return !1;\n const n = {\n ids: [],\n data: new Co(Ao),\n startingIndices: new Co(Ao)\n }, [o, ...l] = i;\n if (o.length < 2 || o[s] !== Sy || o[r] !== by)\n return !1;\n const h = /* @__PURE__ */ new Map();\n for (let u = Wn.SliceDataOffset; u < o.length; u++) {\n const [d, f] = o[u].split(lg);\n n.ids.push(d), h.set(d, f);\n }\n let c = 0;\n for (const u of l) {\n if (u.length < 2)\n return !1;\n const d = parseFloat(u[s]), f = parseInt(u[r]);\n if (isNaN(f) || isNaN(d) || (n.data.push(d), n.data.push(f), f + Wn.SliceDataOffset !== u.length))\n return !1;\n for (let p = Wn.SliceDataOffset; p < u.length; p++) {\n const _ = parseFloat(u[p]);\n if (isNaN(_))\n return !1;\n n.data.push(_);\n }\n n.startingIndices.push(c), c += u.length;\n }\n if (this.datasets.ids = n.ids, this.datasets.data = n.data, this.datasets.startingIndices = n.startingIndices, t || this._datasetMeta.clear(), this._strategies.forEach((u) => u.dispose()), this._strategies.clear(), !t)\n for (const u of this.datasets.ids) {\n const d = h.get(u);\n this._datasetMeta.set(u, { category: d, color: this._getHexColorFromId(u) });\n }\n return this.metadataObservable.notifyObservers(this._datasetMeta), this._hasLoadedData = !0, !0;\n }\n /**\n * Exports the datasets inside of the collector to a csv.\n */\n exportDataToCsv() {\n let e = \"\";\n e += `${Sy},${by}`;\n for (let i = 0; i < this.datasets.ids.length; i++)\n if (e += `,${this.datasets.ids[i]}`, this._datasetMeta) {\n const s = this._datasetMeta.get(this.datasets.ids[i]);\n s != null && s.category && (e += `${lg}${s.category}`);\n }\n e += `\n`;\n for (let i = 0; i < this.datasets.startingIndices.itemLength; i++) {\n const s = this.datasets.startingIndices.at(i), r = this.datasets.data.at(s), n = this.datasets.data.at(s + Wn.NumberOfPointsOffset);\n e += `${r},${n}`;\n for (let o = 0; o < n; o++)\n e += `,${this.datasets.data.at(s + Wn.SliceDataOffset + o)}`;\n for (let o = 0; o < this.datasets.ids.length - n; o++)\n e += \",\";\n e += `\n`;\n }\n const t = `${(/* @__PURE__ */ new Date()).toISOString()}-perfdata.csv`;\n J.Download(new Blob([e], { type: \"text/csv\" }), t);\n }\n /**\n * Starts the realtime collection of data.\n * @param shouldPreserve optional boolean param, if set will preserve the dataset between calls of start.\n */\n start(e) {\n e ? this._startingTimestamp === void 0 && (this._startingTimestamp = Es.Now) : (this.datasets.data = new Co(Ao), this.datasets.startingIndices = new Co(Ao), this._startingTimestamp = Es.Now), this._scene.onAfterRenderObservable.add(this._collectDataAtFrame), this._restoreStringEvents(), this._isStarted = !0;\n }\n /**\n * Stops the collection of data.\n */\n stop() {\n this._scene.onAfterRenderObservable.removeCallback(this._collectDataAtFrame), this._isStarted = !1;\n }\n /**\n * Returns if the perf collector has been started or not.\n */\n get isStarted() {\n return this._isStarted;\n }\n /**\n * Disposes of the object\n */\n dispose() {\n this._scene.onAfterRenderObservable.removeCallback(this._collectDataAtFrame), this._datasetMeta.clear(), this._strategies.forEach((e) => {\n e.dispose();\n }), this.datasetObservable.clear(), this.metadataObservable.clear(), this._isStarted = !1, this.datasets = null;\n }\n}\nDe.prototype.getPerfCollector = function() {\n return this._perfCollector || (this._perfCollector = new Wn(this)), this._perfCollector;\n};\nfunction mH(a) {\n const e = new Array(), t = new Array(), i = new Array(), s = a.add(() => {\n const n = e.length;\n for (let o = 0; o < n; o++)\n Bp(e.shift(), t.shift(), i.shift());\n });\n return {\n scheduler: (n, o, l) => {\n e.push(n), t.push(o), i.push(l);\n },\n dispose: () => {\n a.remove(s);\n }\n };\n}\nG.prototype.runCoroutineAsync = function(a) {\n if (!this._coroutineScheduler) {\n const e = mH(this);\n this._coroutineScheduler = e.scheduler, this._coroutineSchedulerDispose = e.dispose;\n }\n return Bx(a, this._coroutineScheduler);\n};\nG.prototype.cancelAllCoroutines = function() {\n this._coroutineSchedulerDispose && this._coroutineSchedulerDispose(), this._coroutineScheduler = void 0, this._coroutineSchedulerDispose = void 0;\n};\nconst gH = \"equirectangularPanoramaPixelShader\", xH = `#ifdef GL_ES\nprecision highp float;\n#endif\n#define M_PI 3.1415926535897932384626433832795\nvarying vec2 vUV;uniform samplerCube cubeMap;void main(void) {vec2 uv=vUV;float longitude=uv.x*2.*M_PI-M_PI+M_PI/2.;float latitude=(1.-uv.y)*M_PI;vec3 dir=vec3(\n- sin( longitude )*sin( latitude ),\ncos( latitude ),\n- cos( longitude )*sin( latitude )\n);normalize( dir );gl_FragColor=textureCube( cubeMap,dir );}`;\nz.ShadersStore[gH] = xH;\nvar Yg;\n(function(a) {\n a[a.ENTERING_XR = 0] = \"ENTERING_XR\", a[a.EXITING_XR = 1] = \"EXITING_XR\", a[a.IN_XR = 2] = \"IN_XR\", a[a.NOT_IN_XR = 3] = \"NOT_IN_XR\";\n})(Yg || (Yg = {}));\nvar jg;\n(function(a) {\n a[a.NOT_TRACKING = 0] = \"NOT_TRACKING\", a[a.TRACKING_LOST = 1] = \"TRACKING_LOST\", a[a.TRACKING = 2] = \"TRACKING\";\n})(jg || (jg = {}));\nclass ro extends Is {\n /**\n * Creates a new instance of the (legacy version) hit test feature\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param options options to use when constructing this feature\n */\n constructor(e, t = {}) {\n super(e), this.options = t, this._direction = new g(0, 0, -1), this._mat = new O(), this._onSelectEnabled = !1, this._origin = new g(0, 0, 0), this.lastNativeXRHitResults = [], this.onHitTestResultObservable = new G(), this._onHitTestResults = (i) => {\n const s = i.map((r) => {\n const n = O.FromArray(r.hitMatrix);\n return this._xrSessionManager.scene.useRightHandedSystem || n.toggleModelMatrixHandInPlace(), this.options.worldParentNode && n.multiplyToRef(this.options.worldParentNode.getWorldMatrix(), n), {\n xrHitResult: r,\n transformationMatrix: n\n };\n });\n this.lastNativeXRHitResults = i, this.onHitTestResultObservable.notifyObservers(s);\n }, this._onSelect = (i) => {\n this._onSelectEnabled && ro.XRHitTestWithSelectEvent(i, this._xrSessionManager.referenceSpace);\n }, this.xrNativeFeatureName = \"hit-test\", J.Warn(\"A newer version of this plugin is available\");\n }\n /**\n * execute a hit test with an XR Ray\n *\n * @param xrSession a native xrSession that will execute this hit test\n * @param xrRay the ray (position and direction) to use for ray-casting\n * @param referenceSpace native XR reference space to use for the hit-test\n * @param filter filter function that will filter the results\n * @returns a promise that resolves with an array of native XR hit result in xr coordinates system\n */\n static XRHitTestWithRay(e, t, i, s) {\n return e.requestHitTest(t, i).then((r) => {\n const n = s || ((o) => !!o.hitMatrix);\n return r.filter(n);\n });\n }\n /**\n * Execute a hit test on the current running session using a select event returned from a transient input (such as touch)\n * @param event the (select) event to use to select with\n * @param referenceSpace the reference space to use for this hit test\n * @returns a promise that resolves with an array of native XR hit result in xr coordinates system\n */\n static XRHitTestWithSelectEvent(e, t) {\n const i = e.frame.getPose(e.inputSource.targetRaySpace, t);\n if (!i)\n return Promise.resolve([]);\n const s = new XRRay(i.transform);\n return this.XRHitTestWithRay(e.frame.session, s, t);\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n return super.attach() ? (this.options.testOnPointerDownOnly && this._xrSessionManager.session.addEventListener(\"select\", this._onSelect, !1), !0) : !1;\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n return super.detach() ? (this._onSelectEnabled = !1, this._xrSessionManager.session.removeEventListener(\"select\", this._onSelect), !0) : !1;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose(), this.onHitTestResultObservable.clear();\n }\n _onXRFrame(e) {\n if (!this.attached || this.options.testOnPointerDownOnly)\n return;\n const t = e.getViewerPose(this._xrSessionManager.referenceSpace);\n if (!t)\n return;\n O.FromArrayToRef(t.transform.matrix, 0, this._mat), g.TransformCoordinatesFromFloatsToRef(0, 0, 0, this._mat, this._origin), g.TransformCoordinatesFromFloatsToRef(0, 0, -1, this._mat, this._direction), this._direction.subtractInPlace(this._origin), this._direction.normalize();\n const i = new XRRay({ x: this._origin.x, y: this._origin.y, z: this._origin.z, w: 0 }, { x: this._direction.x, y: this._direction.y, z: this._direction.z, w: 0 });\n ro.XRHitTestWithRay(this._xrSessionManager.session, i, this._xrSessionManager.referenceSpace).then(this._onHitTestResults);\n }\n}\nro.Name = Tt.HIT_TEST;\nro.Version = 1;\nRi.AddWebXRFeature(ro.Name, (a, e) => () => new ro(a, e), ro.Version, !1);\nlet vH = 0;\nclass Ah extends Is {\n /**\n * Set the reference space to use for anchor creation, when not using a hit test.\n * Will default to the session's reference space if not defined\n */\n set referenceSpaceForFrameAnchors(e) {\n this._referenceSpaceForFrameAnchors = e;\n }\n /**\n * constructs a new anchor system\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param _options configuration object for this feature\n */\n constructor(e, t = {}) {\n super(e), this._options = t, this._lastFrameDetected = /* @__PURE__ */ new Set(), this._trackedAnchors = [], this._futureAnchors = [], this.onAnchorAddedObservable = new G(), this.onAnchorRemovedObservable = new G(), this.onAnchorUpdatedObservable = new G(), this._tmpVector = new g(), this._tmpQuaternion = new se(), this.xrNativeFeatureName = \"anchors\";\n }\n _populateTmpTransformation(e, t) {\n return this._tmpVector.copyFrom(e), this._tmpQuaternion.copyFrom(t), this._xrSessionManager.scene.useRightHandedSystem || (this._tmpVector.z *= -1, this._tmpQuaternion.z *= -1, this._tmpQuaternion.w *= -1), {\n position: this._tmpVector,\n rotationQuaternion: this._tmpQuaternion\n };\n }\n /**\n * Create a new anchor point using a hit test result at a specific point in the scene\n * An anchor is tracked only after it is added to the trackerAnchors in xrFrame. The promise returned here does not yet guaranty that.\n * Use onAnchorAddedObservable to get newly added anchors if you require tracking guaranty.\n *\n * @param hitTestResult The hit test result to use for this anchor creation\n * @param position an optional position offset for this anchor\n * @param rotationQuaternion an optional rotation offset for this anchor\n * @returns A promise that fulfills when babylon has created the corresponding WebXRAnchor object and tracking has begun\n */\n async addAnchorPointUsingHitTestResultAsync(e, t = new g(), i = new se()) {\n this._populateTmpTransformation(t, i);\n const s = new XRRigidTransform({ x: this._tmpVector.x, y: this._tmpVector.y, z: this._tmpVector.z }, { x: this._tmpQuaternion.x, y: this._tmpQuaternion.y, z: this._tmpQuaternion.z, w: this._tmpQuaternion.w });\n if (e.xrHitResult.createAnchor)\n try {\n const r = await e.xrHitResult.createAnchor(s);\n return new Promise((n, o) => {\n this._futureAnchors.push({\n nativeAnchor: r,\n resolved: !1,\n submitted: !0,\n xrTransformation: s,\n resolve: n,\n reject: o\n });\n });\n } catch (r) {\n throw new Error(r);\n }\n else\n throw this.detach(), new Error(\"Anchors not enabled in this environment/browser\");\n }\n /**\n * Add a new anchor at a specific position and rotation\n * This function will add a new anchor per default in the next available frame. Unless forced, the createAnchor function\n * will be called in the next xrFrame loop to make sure that the anchor can be created correctly.\n * An anchor is tracked only after it is added to the trackerAnchors in xrFrame. The promise returned here does not yet guaranty that.\n * Use onAnchorAddedObservable to get newly added anchors if you require tracking guaranty.\n *\n * @param position the position in which to add an anchor\n * @param rotationQuaternion an optional rotation for the anchor transformation\n * @param forceCreateInCurrentFrame force the creation of this anchor in the current frame. Must be called inside xrFrame loop!\n * @returns A promise that fulfills when babylon has created the corresponding WebXRAnchor object and tracking has begun\n */\n async addAnchorAtPositionAndRotationAsync(e, t = new se(), i = !1) {\n this._populateTmpTransformation(e, t);\n const s = new XRRigidTransform({ x: this._tmpVector.x, y: this._tmpVector.y, z: this._tmpVector.z }, { x: this._tmpQuaternion.x, y: this._tmpQuaternion.y, z: this._tmpQuaternion.z, w: this._tmpQuaternion.w }), r = i && this.attached && this._xrSessionManager.currentFrame ? await this._createAnchorAtTransformation(s, this._xrSessionManager.currentFrame) : void 0;\n return new Promise((n, o) => {\n this._futureAnchors.push({\n nativeAnchor: r,\n resolved: !1,\n submitted: !1,\n xrTransformation: s,\n resolve: n,\n reject: o\n });\n });\n }\n /**\n * Get the list of anchors currently being tracked by the system\n */\n get anchors() {\n return this._trackedAnchors;\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n if (!super.detach())\n return !1;\n if (!this._options.doNotRemoveAnchorsOnSessionEnded)\n for (; this._trackedAnchors.length; ) {\n const e = this._trackedAnchors.pop();\n if (e) {\n try {\n e.remove();\n } catch {\n }\n this.onAnchorRemovedObservable.notifyObservers(e);\n }\n }\n return !0;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n this._futureAnchors.length = 0, super.dispose(), this.onAnchorAddedObservable.clear(), this.onAnchorRemovedObservable.clear(), this.onAnchorUpdatedObservable.clear();\n }\n _onXRFrame(e) {\n if (!this.attached || !e)\n return;\n const t = e.trackedAnchors;\n if (t) {\n const i = this._trackedAnchors.filter((r) => !t.has(r.xrAnchor)).map((r) => this._trackedAnchors.indexOf(r));\n let s = 0;\n i.forEach((r) => {\n const n = this._trackedAnchors.splice(r - s, 1)[0];\n this.onAnchorRemovedObservable.notifyObservers(n), s++;\n }), t.forEach((r) => {\n if (this._lastFrameDetected.has(r)) {\n const n = this._findIndexInAnchorArray(r), o = this._trackedAnchors[n];\n try {\n this._updateAnchorWithXRFrame(r, o, e), o.attachedNode && (o.attachedNode.rotationQuaternion = o.attachedNode.rotationQuaternion || new se(), o.transformationMatrix.decompose(o.attachedNode.scaling, o.attachedNode.rotationQuaternion, o.attachedNode.position)), this.onAnchorUpdatedObservable.notifyObservers(o);\n } catch {\n J.Warn(\"Anchor could not be updated\");\n }\n } else {\n const n = {\n id: vH++,\n xrAnchor: r,\n remove: () => r.delete()\n }, o = this._updateAnchorWithXRFrame(r, n, e);\n this._trackedAnchors.push(o), this.onAnchorAddedObservable.notifyObservers(o);\n const h = this._futureAnchors.filter((c) => c.nativeAnchor === r)[0];\n h && (h.resolve(o), h.resolved = !0);\n }\n }), this._lastFrameDetected = t;\n }\n this._futureAnchors.forEach((i) => {\n !i.resolved && !i.submitted && (this._createAnchorAtTransformation(i.xrTransformation, e).then((s) => {\n i.nativeAnchor = s;\n }, (s) => {\n i.resolved = !0, i.reject(s);\n }), i.submitted = !0);\n });\n }\n /**\n * avoiding using Array.find for global support.\n * @param xrAnchor the plane to find in the array\n * @returns the index of the anchor in the array or -1 if not found\n */\n _findIndexInAnchorArray(e) {\n for (let t = 0; t < this._trackedAnchors.length; ++t)\n if (this._trackedAnchors[t].xrAnchor === e)\n return t;\n return -1;\n }\n _updateAnchorWithXRFrame(e, t, i) {\n const s = i.getPose(e.anchorSpace, this._xrSessionManager.referenceSpace);\n if (s) {\n const r = t.transformationMatrix || new O();\n O.FromArrayToRef(s.transform.matrix, 0, r), this._xrSessionManager.scene.useRightHandedSystem || r.toggleModelMatrixHandInPlace(), t.transformationMatrix = r, this._options.worldParentNode && r.multiplyToRef(this._options.worldParentNode.getWorldMatrix(), r);\n }\n return t;\n }\n async _createAnchorAtTransformation(e, t) {\n if (t.createAnchor)\n try {\n return t.createAnchor(e, this._referenceSpaceForFrameAnchors ?? this._xrSessionManager.referenceSpace);\n } catch (i) {\n throw new Error(i);\n }\n else\n throw this.detach(), new Error(\"Anchors are not enabled in your browser\");\n }\n}\nAh.Name = Tt.ANCHOR_SYSTEM;\nAh.Version = 1;\nRi.AddWebXRFeature(Ah.Name, (a, e) => () => new Ah(a, e), Ah.Version);\nlet TH = 0;\nclass Rh extends Is {\n /**\n * construct a new Plane Detector\n * @param _xrSessionManager an instance of xr Session manager\n * @param _options configuration to use when constructing this feature\n */\n constructor(e, t = {}) {\n super(e), this._options = t, this._detectedPlanes = [], this._enabled = !1, this._lastFrameDetected = /* @__PURE__ */ new Set(), this.onPlaneAddedObservable = new G(), this.onPlaneRemovedObservable = new G(), this.onPlaneUpdatedObservable = new G(), this.xrNativeFeatureName = \"plane-detection\", this._xrSessionManager.session ? this._init() : this._xrSessionManager.onXRSessionInit.addOnce(() => {\n this._init();\n });\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n if (!super.detach())\n return !1;\n if (!this._options.doNotRemovePlanesOnSessionEnded)\n for (; this._detectedPlanes.length; ) {\n const e = this._detectedPlanes.pop();\n e && this.onPlaneRemovedObservable.notifyObservers(e);\n }\n return !0;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose(), this.onPlaneAddedObservable.clear(), this.onPlaneRemovedObservable.clear(), this.onPlaneUpdatedObservable.clear();\n }\n /**\n * Check if the needed objects are defined.\n * This does not mean that the feature is enabled, but that the objects needed are well defined.\n * @returns true if the initial compatibility test passed\n */\n isCompatible() {\n return typeof XRPlane < \"u\";\n }\n /**\n * Enable room capture mode.\n * When enabled and supported by the system,\n * the detectedPlanes array will be populated with the detected room boundaries\n * @see https://immersive-web.github.io/real-world-geometry/plane-detection.html#dom-xrsession-initiateroomcapture\n * @returns true if plane detection is enabled and supported. Will reject if not supported.\n */\n async initiateRoomCapture() {\n return this._xrSessionManager.session.initiateRoomCapture ? this._xrSessionManager.session.initiateRoomCapture() : Promise.reject(\"initiateRoomCapture is not supported on this session\");\n }\n _onXRFrame(e) {\n var i;\n if (!this.attached || !this._enabled || !e)\n return;\n const t = e.detectedPlanes || ((i = e.worldInformation) == null ? void 0 : i.detectedPlanes);\n if (t) {\n for (let s = 0; s < this._detectedPlanes.length; s++) {\n const r = this._detectedPlanes[s];\n t.has(r.xrPlane) || (this._detectedPlanes.splice(s--, 1), this.onPlaneRemovedObservable.notifyObservers(r));\n }\n t.forEach((s) => {\n if (this._lastFrameDetected.has(s)) {\n if (s.lastChangedTime === this._xrSessionManager.currentTimestamp) {\n const r = this._findIndexInPlaneArray(s), n = this._detectedPlanes[r];\n this._updatePlaneWithXRPlane(s, n, e), this.onPlaneUpdatedObservable.notifyObservers(n);\n }\n } else {\n const r = {\n id: TH++,\n xrPlane: s,\n polygonDefinition: []\n }, n = this._updatePlaneWithXRPlane(s, r, e);\n this._detectedPlanes.push(n), this.onPlaneAddedObservable.notifyObservers(n);\n }\n }), this._lastFrameDetected = t;\n }\n }\n _init() {\n const e = () => {\n this._enabled = !0, this._detectedPlanes.length && (this._detectedPlanes.length = 0);\n };\n if (this._xrSessionManager.isNative && this._options.preferredDetectorOptions && this._xrSessionManager.session.trySetPreferredPlaneDetectorOptions && this._xrSessionManager.session.trySetPreferredPlaneDetectorOptions(this._options.preferredDetectorOptions), !this._xrSessionManager.session.updateWorldTrackingState) {\n e();\n return;\n }\n this._xrSessionManager.session.updateWorldTrackingState({ planeDetectionState: { enabled: !0 } }), e();\n }\n _updatePlaneWithXRPlane(e, t, i) {\n t.polygonDefinition = e.polygon.map((r) => {\n const n = this._xrSessionManager.scene.useRightHandedSystem ? 1 : -1;\n return new g(r.x, r.y, r.z * n);\n });\n const s = i.getPose(e.planeSpace, this._xrSessionManager.referenceSpace);\n if (s) {\n const r = t.transformationMatrix || new O();\n O.FromArrayToRef(s.transform.matrix, 0, r), this._xrSessionManager.scene.useRightHandedSystem || r.toggleModelMatrixHandInPlace(), t.transformationMatrix = r, this._options.worldParentNode && r.multiplyToRef(this._options.worldParentNode.getWorldMatrix(), r);\n }\n return t;\n }\n /**\n * avoiding using Array.find for global support.\n * @param xrPlane the plane to find in the array\n * @returns the index of the plane in the array or -1 if not found\n */\n _findIndexInPlaneArray(e) {\n for (let t = 0; t < this._detectedPlanes.length; ++t)\n if (this._detectedPlanes[t].xrPlane === e)\n return t;\n return -1;\n }\n}\nRh.Name = Tt.PLANE_DETECTION;\nRh.Version = 1;\nRi.AddWebXRFeature(Rh.Name, (a, e) => () => new Rh(a, e), Rh.Version);\nclass Ih extends Is {\n /**\n * constructs a new background remover module\n * @param _xrSessionManager the session manager for this module\n * @param options read-only options to be used in this module\n */\n constructor(e, t = {}) {\n super(e), this.options = t, this.onBackgroundStateChangedObservable = new G();\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n return this._setBackgroundState(!1), super.attach();\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n return this._setBackgroundState(!0), super.detach();\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose(), this.onBackgroundStateChangedObservable.clear();\n }\n _onXRFrame(e) {\n }\n _setBackgroundState(e) {\n const t = this._xrSessionManager.scene;\n if (!this.options.ignoreEnvironmentHelper)\n if (this.options.environmentHelperRemovalFlags) {\n if (this.options.environmentHelperRemovalFlags.skyBox) {\n const i = t.getMeshByName(\"BackgroundSkybox\");\n i && i.setEnabled(e);\n }\n if (this.options.environmentHelperRemovalFlags.ground) {\n const i = t.getMeshByName(\"BackgroundPlane\");\n i && i.setEnabled(e);\n }\n } else {\n const i = t.getMeshByName(\"BackgroundHelper\");\n i && i.setEnabled(e);\n }\n this.options.backgroundMeshes && this.options.backgroundMeshes.forEach((i) => i.setEnabled(e)), this.onBackgroundStateChangedObservable.notifyObservers(e);\n }\n}\nIh.Name = Tt.BACKGROUND_REMOVER;\nIh.Version = 1;\nRi.AddWebXRFeature(Ih.Name, (a, e) => () => new Ih(a, e), Ih.Version, !0);\nclass SH {\n}\nclass Ph extends Is {\n _createPhysicsImpostor(e) {\n const t = this._options.physicsProperties.impostorType || Ke.SphereImpostor, i = this._options.physicsProperties.impostorSize || 0.1, s = Tr(\"impostor-mesh-\" + e.uniqueId, {\n diameterX: typeof i == \"number\" ? i : i.width,\n diameterY: typeof i == \"number\" ? i : i.height,\n diameterZ: typeof i == \"number\" ? i : i.depth\n });\n s.isVisible = this._debugMode, s.isPickable = !1, s.rotationQuaternion = new se();\n const r = e.grip || e.pointer;\n s.position.copyFrom(r.position), s.rotationQuaternion.copyFrom(r.rotationQuaternion);\n const n = new Ke(s, t, {\n mass: 0,\n ...this._options.physicsProperties\n });\n this._controllers[e.uniqueId] = {\n xrController: e,\n impostor: n,\n impostorMesh: s\n };\n }\n /**\n * Construct a new Controller Physics Feature\n * @param _xrSessionManager the corresponding xr session manager\n * @param _options options to create this feature with\n */\n constructor(e, t) {\n super(e), this._options = t, this._attachController = (i) => {\n this._controllers[i.uniqueId] || (this._xrSessionManager.scene.isPhysicsEnabled() || L.Warn(\"physics engine not enabled, skipped. Please add this controller manually.\"), this._options.physicsProperties.useControllerMesh && i.inputSource.gamepad ? i.onMotionControllerInitObservable.addOnce((s) => {\n s._doNotLoadControllerMesh ? this._createPhysicsImpostor(i) : s.onModelLoadedObservable.addOnce(() => {\n const r = new Ke(s.rootMesh, Ke.MeshImpostor, {\n mass: 0,\n ...this._options.physicsProperties\n }), n = i.grip || i.pointer;\n this._controllers[i.uniqueId] = {\n xrController: i,\n impostor: r,\n oldPos: n.position.clone(),\n oldRotation: n.rotationQuaternion.clone()\n };\n });\n }) : this._createPhysicsImpostor(i));\n }, this._controllers = {}, this._debugMode = !1, this._delta = 0, this._lastTimestamp = 0, this._tmpQuaternion = new se(), this._tmpVector = new g(), this._options.physicsProperties || (this._options.physicsProperties = {});\n }\n /**\n * @internal\n * enable debugging - will show console outputs and the impostor mesh\n */\n _enablePhysicsDebug() {\n this._debugMode = !0, Object.keys(this._controllers).forEach((e) => {\n const t = this._controllers[e];\n t.impostorMesh && (t.impostorMesh.isVisible = !0);\n });\n }\n /**\n * Manually add a controller (if no xrInput was provided or physics engine was not enabled)\n * @param xrController the controller to add\n */\n addController(e) {\n this._attachController(e);\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach())\n return !1;\n if (!this._options.xrInput)\n return !0;\n if (this._options.xrInput.controllers.forEach(this._attachController), this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable, this._attachController), this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable, (e) => {\n this._detachController(e.uniqueId);\n }), this._options.enableHeadsetImpostor) {\n const e = this._options.headsetImpostorParams || {\n impostorType: Ke.SphereImpostor,\n restitution: 0.8,\n impostorSize: 0.3\n }, t = e.impostorSize || 0.3;\n this._headsetMesh = Tr(\"headset-mesh\", {\n diameterX: typeof t == \"number\" ? t : t.width,\n diameterY: typeof t == \"number\" ? t : t.height,\n diameterZ: typeof t == \"number\" ? t : t.depth\n }), this._headsetMesh.rotationQuaternion = new se(), this._headsetMesh.isVisible = !1, this._headsetImpostor = new Ke(this._headsetMesh, e.impostorType, { mass: 0, ...e });\n }\n return !0;\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n return super.detach() ? (Object.keys(this._controllers).forEach((e) => {\n this._detachController(e);\n }), this._headsetMesh && this._headsetMesh.dispose(), !0) : !1;\n }\n /**\n * Get the headset impostor, if enabled\n * @returns the impostor\n */\n getHeadsetImpostor() {\n return this._headsetImpostor;\n }\n /**\n * Get the physics impostor of a specific controller.\n * The impostor is not attached to a mesh because a mesh for each controller is not obligatory\n * @param controller the controller or the controller id of which to get the impostor\n * @returns the impostor or null\n */\n getImpostorForController(e) {\n const t = typeof e == \"string\" ? e : e.uniqueId;\n return this._controllers[t] ? this._controllers[t].impostor : null;\n }\n /**\n * Update the physics properties provided in the constructor\n * @param newProperties the new properties object\n * @param newProperties.impostorType\n * @param newProperties.impostorSize\n * @param newProperties.friction\n * @param newProperties.restitution\n */\n setPhysicsProperties(e) {\n this._options.physicsProperties = {\n ...this._options.physicsProperties,\n ...e\n };\n }\n _onXRFrame(e) {\n var t, i;\n if (this._delta = this._xrSessionManager.currentTimestamp - this._lastTimestamp, this._lastTimestamp = this._xrSessionManager.currentTimestamp, this._headsetMesh && this._headsetImpostor) {\n if (this._headsetMesh.position.copyFrom(this._options.xrInput.xrCamera.globalPosition), this._headsetMesh.rotationQuaternion.copyFrom(this._options.xrInput.xrCamera.absoluteRotation), (t = this._options.xrInput.xrCamera._lastXRViewerPose) != null && t.linearVelocity) {\n const s = this._options.xrInput.xrCamera._lastXRViewerPose.linearVelocity;\n this._tmpVector.set(s.x, s.y, s.z), this._headsetImpostor.setLinearVelocity(this._tmpVector);\n }\n if ((i = this._options.xrInput.xrCamera._lastXRViewerPose) != null && i.angularVelocity) {\n const s = this._options.xrInput.xrCamera._lastXRViewerPose.angularVelocity;\n this._tmpVector.set(s.x, s.y, s.z), this._headsetImpostor.setAngularVelocity(this._tmpVector);\n }\n }\n Object.keys(this._controllers).forEach((s) => {\n var h, c;\n const r = this._controllers[s], n = r.xrController.grip || r.xrController.pointer, o = r.oldPos || r.impostorMesh.position;\n if ((h = r.xrController._lastXRPose) != null && h.linearVelocity) {\n const u = r.xrController._lastXRPose.linearVelocity;\n this._tmpVector.set(u.x, u.y, u.z), r.impostor.setLinearVelocity(this._tmpVector);\n } else\n n.position.subtractToRef(o, this._tmpVector), this._tmpVector.scaleInPlace(1e3 / this._delta), r.impostor.setLinearVelocity(this._tmpVector);\n o.copyFrom(n.position), this._debugMode && L.Log([this._tmpVector, \"linear\"]);\n const l = r.oldRotation || r.impostorMesh.rotationQuaternion;\n if ((c = r.xrController._lastXRPose) != null && c.angularVelocity) {\n const u = r.xrController._lastXRPose.angularVelocity;\n this._tmpVector.set(u.x, u.y, u.z), r.impostor.setAngularVelocity(this._tmpVector);\n } else if (!l.equalsWithEpsilon(n.rotationQuaternion)) {\n l.conjugateInPlace().multiplyToRef(n.rotationQuaternion, this._tmpQuaternion);\n const u = Math.sqrt(this._tmpQuaternion.x * this._tmpQuaternion.x + this._tmpQuaternion.y * this._tmpQuaternion.y + this._tmpQuaternion.z * this._tmpQuaternion.z);\n if (this._tmpVector.set(this._tmpQuaternion.x, this._tmpQuaternion.y, this._tmpQuaternion.z), u < 1e-3)\n this._tmpVector.scaleInPlace(2);\n else {\n const d = 2 * Math.atan2(u, this._tmpQuaternion.w);\n this._tmpVector.scaleInPlace(d / (u * (this._delta / 1e3)));\n }\n r.impostor.setAngularVelocity(this._tmpVector);\n }\n l.copyFrom(n.rotationQuaternion), this._debugMode && L.Log([this._tmpVector, this._tmpQuaternion, \"angular\"]);\n });\n }\n _detachController(e) {\n const t = this._controllers[e];\n t && (t.impostorMesh && t.impostorMesh.dispose(), delete this._controllers[e]);\n }\n}\nPh.Name = Tt.PHYSICS_CONTROLLERS;\nPh.Version = 1;\nRi.AddWebXRFeature(Ph.Name, (a, e) => () => new Ph(a, e), Ph.Version, !0);\nclass Mh extends Is {\n /**\n * Creates a new instance of the hit test feature\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param options options to use when constructing this feature\n */\n constructor(e, t = {}) {\n super(e), this.options = t, this._tmpMat = new O(), this._tmpPos = new g(), this._tmpQuat = new se(), this._initHitTestSource = (i) => {\n if (!i)\n return;\n const s = new XRRay(this.options.offsetRay || {}), r = {\n space: this.options.useReferenceSpace ? i : this._xrSessionManager.viewerReferenceSpace,\n offsetRay: s\n };\n if (this.options.entityTypes && (r.entityTypes = this.options.entityTypes), !r.space) {\n J.Warn(\"waiting for viewer reference space to initialize\");\n return;\n }\n this._xrSessionManager.session.requestHitTestSource(r).then((n) => {\n this._xrHitTestSource && this._xrHitTestSource.cancel(), this._xrHitTestSource = n;\n });\n }, this.autoCloneTransformation = !1, this.onHitTestResultObservable = new G(), this.paused = !1, this.xrNativeFeatureName = \"hit-test\", J.Warn(\"Hit test is an experimental and unstable feature.\");\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach() || !this._xrSessionManager.session.requestHitTestSource)\n return !1;\n if (this.options.disablePermanentHitTest || (this._xrSessionManager.referenceSpace && this._initHitTestSource(this._xrSessionManager.referenceSpace), this._xrSessionManager.onXRReferenceSpaceChanged.add(this._initHitTestSource)), this.options.enableTransientHitTest) {\n const e = new XRRay(this.options.transientOffsetRay || {});\n this._xrSessionManager.session.requestHitTestSourceForTransientInput({\n profile: this.options.transientHitTestProfile || \"generic-touchscreen\",\n offsetRay: e,\n entityTypes: this.options.entityTypes\n }).then((t) => {\n this._transientXrHitTestSource = t;\n });\n }\n return !0;\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n return super.detach() ? (this._xrHitTestSource && (this._xrHitTestSource.cancel(), this._xrHitTestSource = null), this._xrSessionManager.onXRReferenceSpaceChanged.removeCallback(this._initHitTestSource), this._transientXrHitTestSource && (this._transientXrHitTestSource.cancel(), this._transientXrHitTestSource = null), !0) : !1;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose(), this.onHitTestResultObservable.clear();\n }\n _onXRFrame(e) {\n if (!(!this.attached || this.paused)) {\n if (this._xrHitTestSource) {\n const t = e.getHitTestResults(this._xrHitTestSource);\n this._processWebXRHitTestResult(t);\n }\n this._transientXrHitTestSource && e.getHitTestResultsForTransientInput(this._transientXrHitTestSource).forEach((i) => {\n this._processWebXRHitTestResult(i.results, i.inputSource);\n });\n }\n }\n _processWebXRHitTestResult(e, t) {\n const i = [];\n e.forEach((s) => {\n const r = s.getPose(this._xrSessionManager.referenceSpace);\n if (!r)\n return;\n const n = r.transform.position, o = r.transform.orientation;\n this._tmpPos.set(n.x, n.y, n.z).scaleInPlace(this._xrSessionManager.worldScalingFactor), this._tmpQuat.set(o.x, o.y, o.z, o.w), O.FromFloat32ArrayToRefScaled(r.transform.matrix, 0, 1, this._tmpMat), this._xrSessionManager.scene.useRightHandedSystem || (this._tmpPos.z *= -1, this._tmpQuat.z *= -1, this._tmpQuat.w *= -1, this._tmpMat.toggleModelMatrixHandInPlace());\n const l = {\n position: this.autoCloneTransformation ? this._tmpPos.clone() : this._tmpPos,\n rotationQuaternion: this.autoCloneTransformation ? this._tmpQuat.clone() : this._tmpQuat,\n transformationMatrix: this.autoCloneTransformation ? this._tmpMat.clone() : this._tmpMat,\n inputSource: t,\n isTransient: !!t,\n xrHitResult: s\n };\n i.push(l);\n }), this.onHitTestResultObservable.notifyObservers(i);\n }\n}\nMh.Name = Tt.HIT_TEST;\nMh.Version = 2;\nRi.AddWebXRFeature(Mh.Name, (a, e) => () => new Mh(a, e), Mh.Version, !1);\nclass Dh extends Is {\n /**\n * The current feature point cloud maintained across frames.\n */\n get featurePointCloud() {\n return this._featurePointCloud;\n }\n /**\n * construct the feature point system\n * @param _xrSessionManager an instance of xr Session manager\n */\n constructor(e) {\n super(e), this._enabled = !1, this._featurePointCloud = [], this.onFeaturePointsAddedObservable = new G(), this.onFeaturePointsUpdatedObservable = new G(), this.xrNativeFeatureName = \"bjsfeature-points\", this._xrSessionManager.session ? this._init() : this._xrSessionManager.onXRSessionInit.addOnce(() => {\n this._init();\n });\n }\n /**\n * Detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n return super.detach() ? (this.featurePointCloud.length = 0, !0) : !1;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose(), this._featurePointCloud.length = 0, this.onFeaturePointsUpdatedObservable.clear(), this.onFeaturePointsAddedObservable.clear();\n }\n /**\n * On receiving a new XR frame if this feature is attached notify observers new feature point data is available.\n * @param frame\n */\n _onXRFrame(e) {\n if (!this.attached || !this._enabled || !e)\n return;\n const t = e.featurePointCloud;\n if (!(!t || t.length === 0)) {\n if (t.length % 5 !== 0)\n throw new Error(\"Received malformed feature point cloud of length: \" + t.length);\n const i = t.length / 5, s = [], r = [];\n for (let n = 0; n < i; n++) {\n const o = n * 5, l = t[o + 4];\n this._featurePointCloud[l] ? s.push(l) : (this._featurePointCloud[l] = { position: new g(), confidenceValue: 0 }, r.push(l)), this._featurePointCloud[l].position.x = t[o], this._featurePointCloud[l].position.y = t[o + 1], this._featurePointCloud[l].position.z = t[o + 2], this._featurePointCloud[l].confidenceValue = t[o + 3];\n }\n r.length > 0 && this.onFeaturePointsAddedObservable.notifyObservers(r), s.length > 0 && this.onFeaturePointsUpdatedObservable.notifyObservers(s);\n }\n }\n /**\n * Initializes the feature. If the feature point feature is not available for this environment do not mark the feature as enabled.\n */\n _init() {\n !this._xrSessionManager.session.trySetFeaturePointCloudEnabled || !this._xrSessionManager.session.trySetFeaturePointCloudEnabled(!0) || (this._enabled = !0);\n }\n}\nDh.Name = Tt.FEATURE_POINTS;\nDh.Version = 1;\nRi.AddWebXRFeature(Dh.Name, (a) => () => new Dh(a), Dh.Version);\nlet bH = 0;\nclass Oh extends Is {\n constructor(e, t = {}) {\n super(e), this._options = t, this._detectedMeshes = /* @__PURE__ */ new Map(), this.onMeshAddedObservable = new G(), this.onMeshRemovedObservable = new G(), this.onMeshUpdatedObservable = new G(), this.xrNativeFeatureName = \"mesh-detection\", this._options.generateMeshes && (this._options.convertCoordinateSystems = !0), this._xrSessionManager.session ? this._init() : this._xrSessionManager.onXRSessionInit.addOnce(() => {\n this._init();\n });\n }\n detach() {\n return super.detach() ? (this._xrSessionManager.isNative && this._xrSessionManager.session.trySetMeshDetectorEnabled && this._xrSessionManager.session.trySetMeshDetectorEnabled(!1), this._options.doNotRemoveMeshesOnSessionEnded || (this._detectedMeshes.forEach((e) => {\n this.onMeshRemovedObservable.notifyObservers(e);\n }), this._detectedMeshes.clear()), !0) : !1;\n }\n dispose() {\n super.dispose(), this.onMeshAddedObservable.clear(), this.onMeshRemovedObservable.clear(), this.onMeshUpdatedObservable.clear();\n }\n _onXRFrame(e) {\n var t;\n try {\n if (!this.attached || !e)\n return;\n const i = e.detectedMeshes || ((t = e.worldInformation) == null ? void 0 : t.detectedMeshes);\n if (i) {\n const s = /* @__PURE__ */ new Set();\n this._detectedMeshes.forEach((r, n) => {\n i.has(n) || s.add(n);\n }), s.forEach((r) => {\n const n = this._detectedMeshes.get(r);\n n && (this.onMeshRemovedObservable.notifyObservers(n), this._detectedMeshes.delete(r));\n }), i.forEach((r) => {\n if (this._detectedMeshes.has(r)) {\n if (r.lastChangedTime === this._xrSessionManager.currentTimestamp) {\n const n = this._detectedMeshes.get(r);\n n && (this._updateVertexDataWithXRMesh(r, n, e), this.onMeshUpdatedObservable.notifyObservers(n));\n }\n } else {\n const n = {\n id: bH++,\n xrMesh: r\n }, o = this._updateVertexDataWithXRMesh(r, n, e);\n this._detectedMeshes.set(r, o), this.onMeshAddedObservable.notifyObservers(o);\n }\n });\n }\n } catch (i) {\n L.Log(i.stack);\n }\n }\n _init() {\n this._xrSessionManager.isNative && (this._xrSessionManager.session.trySetMeshDetectorEnabled && this._xrSessionManager.session.trySetMeshDetectorEnabled(!0), this._options.preferredDetectorOptions && this._xrSessionManager.session.trySetPreferredMeshDetectorOptions && this._xrSessionManager.session.trySetPreferredMeshDetectorOptions(this._options.preferredDetectorOptions));\n }\n _updateVertexDataWithXRMesh(e, t, i) {\n var r;\n t.xrMesh = e, t.worldParentNode = this._options.worldParentNode;\n const s = e.vertices || e.positions;\n if (this._options.convertCoordinateSystems) {\n if (this._xrSessionManager.scene.useRightHandedSystem)\n t.positions = s, t.normals = e.normals;\n else {\n t.positions = new Float32Array(s.length);\n for (let o = 0; o < s.length; o += 3)\n t.positions[o] = s[o], t.positions[o + 1] = s[o + 1], t.positions[o + 2] = -1 * s[o + 2];\n if (e.normals) {\n t.normals = new Float32Array(e.normals.length);\n for (let o = 0; o < e.normals.length; o += 3)\n t.normals[o] = e.normals[o], t.normals[o + 1] = e.normals[o + 1], t.normals[o + 2] = -1 * e.normals[o + 2];\n }\n }\n t.indices = e.indices;\n const n = i.getPose(e.meshSpace, this._xrSessionManager.referenceSpace);\n if (n) {\n const o = t.transformationMatrix || new O();\n O.FromArrayToRef(n.transform.matrix, 0, o), this._xrSessionManager.scene.useRightHandedSystem || o.toggleModelMatrixHandInPlace(), t.transformationMatrix = o, this._options.worldParentNode && o.multiplyToRef(this._options.worldParentNode.getWorldMatrix(), o);\n }\n if (this._options.generateMeshes) {\n if (t.mesh) {\n const o = t.mesh;\n o.updateVerticesData(R.PositionKind, t.positions), t.normals ? o.updateVerticesData(R.NormalKind, t.normals) : o.createNormals(!0), o.updateIndices(t.indices);\n } else {\n const o = new H(\"xr mesh \" + t.id, this._xrSessionManager.scene);\n o.rotationQuaternion = new se(), o.setVerticesData(R.PositionKind, t.positions), t.normals ? o.setVerticesData(R.NormalKind, t.normals) : o.createNormals(!0), o.setIndices(t.indices, void 0, !0), t.mesh = o;\n }\n (r = t.transformationMatrix) == null || r.decompose(t.mesh.scaling, t.mesh.rotationQuaternion, t.mesh.position);\n }\n }\n return t;\n }\n}\nOh.Name = Tt.MESH_DETECTION;\nOh.Version = 1;\nRi.AddWebXRFeature(Oh.Name, (a, e) => () => new Oh(a, e), Oh.Version, !1);\nvar pa;\n(function(a) {\n a[a.NotReceived = 0] = \"NotReceived\", a[a.Waiting = 1] = \"Waiting\", a[a.Received = 2] = \"Received\";\n})(pa || (pa = {}));\nclass wh extends Is {\n /**\n * constructs the image tracking feature\n * @param _xrSessionManager the session manager for this module\n * @param options read-only options to be used in this module\n */\n constructor(e, t) {\n super(e), this.options = t, this.onUntrackableImageFoundObservable = new G(), this.onTrackableImageFoundObservable = new G(), this.onTrackedImageUpdatedObservable = new G(), this._trackableScoreStatus = pa.NotReceived, this._trackedImages = [], this.xrNativeFeatureName = \"image-tracking\";\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n return super.attach();\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n return super.detach();\n }\n /**\n * Get a tracked image by its ID.\n *\n * @param id the id of the image to load (position in the init array)\n * @returns a trackable image, if exists in this location\n */\n getTrackedImageById(e) {\n return this._trackedImages[e] || null;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose(), this._trackedImages.forEach((e) => {\n e.originalBitmap.close();\n }), this._trackedImages.length = 0, this.onTrackableImageFoundObservable.clear(), this.onUntrackableImageFoundObservable.clear(), this.onTrackedImageUpdatedObservable.clear();\n }\n /**\n * Extends the session init object if needed\n * @returns augmentation object fo the xr session init object.\n */\n async getXRSessionInitExtension() {\n if (!this.options.images || !this.options.images.length)\n return {};\n const e = this.options.images.map((t) => typeof t.src == \"string\" ? this._xrSessionManager.scene.getEngine()._createImageBitmapFromSource(t.src) : Promise.resolve(t.src));\n try {\n const t = await Promise.all(e);\n return this._originalTrackingRequest = t.map((i, s) => ({\n image: i,\n widthInMeters: this.options.images[s].estimatedRealWorldWidth\n })), {\n trackedImages: this._originalTrackingRequest\n };\n } catch {\n return J.Error(\"Error loading images for tracking, WebXRImageTracking disabled for this session.\"), {};\n }\n }\n _onXRFrame(e) {\n if (!e.getImageTrackingResults || this._trackableScoreStatus === pa.Waiting)\n return;\n if (this._trackableScoreStatus === pa.NotReceived) {\n this._checkScoresAsync();\n return;\n }\n const t = e.getImageTrackingResults();\n for (const i of t) {\n let s = !1;\n const r = i.index, n = this._trackedImages[r];\n if (!n)\n continue;\n n.xrTrackingResult = i, n.realWorldWidth !== i.measuredWidthInMeters && (n.realWorldWidth = i.measuredWidthInMeters, s = !0);\n const o = e.getPose(i.imageSpace, this._xrSessionManager.referenceSpace);\n if (o) {\n const c = n.transformationMatrix;\n O.FromArrayToRef(o.transform.matrix, 0, c), this._xrSessionManager.scene.useRightHandedSystem || c.toggleModelMatrixHandInPlace(), s = !0;\n }\n const h = i.trackingState === \"emulated\";\n n.emulated !== h && (n.emulated = h, s = !0), s && this.onTrackedImageUpdatedObservable.notifyObservers(n);\n }\n }\n async _checkScoresAsync() {\n if (!this._xrSessionManager.session.getTrackedImageScores || this._trackableScoreStatus !== pa.NotReceived)\n return;\n this._trackableScoreStatus = pa.Waiting;\n const e = await this._xrSessionManager.session.getTrackedImageScores();\n if (!e || e.length === 0) {\n this._trackableScoreStatus = pa.NotReceived;\n return;\n }\n for (let t = 0; t < e.length; ++t)\n if (e[t] == \"untrackable\")\n this.onUntrackableImageFoundObservable.notifyObservers(t);\n else {\n const i = this._originalTrackingRequest[t].image, s = {\n id: t,\n originalBitmap: i,\n transformationMatrix: new O(),\n ratio: i.width / i.height\n };\n this._trackedImages[t] = s, this.onTrackableImageFoundObservable.notifyObservers(s);\n }\n this._trackableScoreStatus = e.length > 0 ? pa.Received : pa.NotReceived;\n }\n}\nwh.Name = Tt.IMAGE_TRACKING;\nwh.Version = 1;\nRi.AddWebXRFeature(wh.Name, (a, e) => () => new wh(a, e), wh.Version, !1);\nclass Nh extends Is {\n /**\n * Creates a new instance of the dom-overlay feature\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param options options to use when constructing this feature\n */\n constructor(e, t) {\n super(e), this.options = t, this._domOverlayType = null, this._beforeXRSelectListener = null, this._element = null, this.xrNativeFeatureName = \"dom-overlay\", J.Warn(\"dom-overlay is an experimental and unstable feature.\");\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n return !super.attach() || !this._xrSessionManager.session.domOverlayState || this._xrSessionManager.session.domOverlayState.type === null ? !1 : (this._domOverlayType = this._xrSessionManager.session.domOverlayState.type, this._element !== null && this.options.supressXRSelectEvents === !0 && (this._beforeXRSelectListener = (e) => {\n e.preventDefault();\n }, this._element.addEventListener(\"beforexrselect\", this._beforeXRSelectListener)), !0);\n }\n /**\n * The type of DOM overlay (null when not supported). Provided by UA and remains unchanged for duration of session.\n */\n get domOverlayType() {\n return this._domOverlayType;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose(), this._element !== null && this._beforeXRSelectListener && this._element.removeEventListener(\"beforexrselect\", this._beforeXRSelectListener);\n }\n _onXRFrame(e) {\n }\n /**\n * Extends the session init object if needed\n * @returns augmentation object for the xr session init object.\n */\n async getXRSessionInitExtension() {\n if (this.options.element === void 0)\n return J.Warn('\"element\" option must be provided to attach xr-dom-overlay feature.'), {};\n if (typeof this.options.element == \"string\") {\n const e = document.querySelector(this.options.element);\n if (e === null)\n return J.Warn(`element not found '${this.options.element}' (not requesting xr-dom-overlay)`), {};\n this._element = e;\n } else\n this._element = this.options.element;\n return {\n domOverlay: {\n root: this._element\n }\n };\n }\n}\nNh.Name = Tt.DOM_OVERLAY;\nNh.Version = 1;\nRi.AddWebXRFeature(Nh.Name, (a, e) => () => new Nh(a, e), Nh.Version, !1);\nclass no extends Is {\n /**\n * Current movement direction. Will be null before XR Frames have been processed.\n */\n get movementDirection() {\n return this._movementDirection;\n }\n /**\n * Is movement enabled\n */\n get movementEnabled() {\n return this._featureContext.movementEnabled;\n }\n /**\n * Sets whether movement is enabled or not\n * @param enabled is movement enabled\n */\n set movementEnabled(e) {\n this._featureContext.movementEnabled = e;\n }\n /**\n * If movement follows viewer pose\n */\n get movementOrientationFollowsViewerPose() {\n return this._featureContext.movementOrientationFollowsViewerPose;\n }\n /**\n * Sets whether movement follows viewer pose\n * @param followsPose is movement should follow viewer pose\n */\n set movementOrientationFollowsViewerPose(e) {\n this._featureContext.movementOrientationFollowsViewerPose = e;\n }\n /**\n * Gets movement speed\n */\n get movementSpeed() {\n return this._featureContext.movementSpeed;\n }\n /**\n * Sets movement speed\n * @param movementSpeed movement speed\n */\n set movementSpeed(e) {\n this._featureContext.movementSpeed = e;\n }\n /**\n * Gets minimum threshold the controller's thumbstick/touchpad must pass before being recognized for movement (avoids jitter/unintentional movement)\n */\n get movementThreshold() {\n return this._featureContext.movementThreshold;\n }\n /**\n * Sets minimum threshold the controller's thumbstick/touchpad must pass before being recognized for movement (avoids jitter/unintentional movement)\n * @param movementThreshold new threshold\n */\n set movementThreshold(e) {\n this._featureContext.movementThreshold = e;\n }\n /**\n * Is rotation enabled\n */\n get rotationEnabled() {\n return this._featureContext.rotationEnabled;\n }\n /**\n * Sets whether rotation is enabled or not\n * @param enabled is rotation enabled\n */\n set rotationEnabled(e) {\n this._featureContext.rotationEnabled = e;\n }\n /**\n * Gets rotation speed factor\n */\n get rotationSpeed() {\n return this._featureContext.rotationSpeed;\n }\n /**\n * Sets rotation speed factor (1.0 is default)\n * @param rotationSpeed new rotation speed factor\n */\n set rotationSpeed(e) {\n this._featureContext.rotationSpeed = e;\n }\n /**\n * Gets minimum threshold the controller's thumbstick/touchpad must pass before being recognized for rotation (avoids jitter/unintentional rotation)\n */\n get rotationThreshold() {\n return this._featureContext.rotationThreshold;\n }\n /**\n * Sets minimum threshold the controller's thumbstick/touchpad must pass before being recognized for rotation (avoids jitter/unintentional rotation)\n * @param threshold new threshold\n */\n set rotationThreshold(e) {\n this._featureContext.rotationThreshold = e;\n }\n /**\n * constructs a new movement controller system\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param options configuration object for this feature\n */\n constructor(e, t) {\n if (super(e), this._controllers = {}, this._currentRegistrationConfigurations = [], this._movementDirection = new se(), this._tmpRotationMatrix = O.Identity(), this._tmpTranslationDirection = new g(), this._tmpMovementTranslation = new g(), this._tempCacheQuaternion = new se(), this._attachController = (i) => {\n if (this._controllers[i.uniqueId])\n return;\n this._controllers[i.uniqueId] = {\n xrController: i,\n registeredComponents: []\n };\n const s = this._controllers[i.uniqueId];\n if (s.xrController.inputSource.targetRayMode === \"tracked-pointer\" && s.xrController.inputSource.gamepad) {\n const r = () => {\n if (i.motionController)\n for (const n of this._currentRegistrationConfigurations) {\n let o = null;\n if (n.allowedComponentTypes)\n for (const h of n.allowedComponentTypes) {\n const c = i.motionController.getComponentOfType(h);\n if (c !== null) {\n o = c;\n break;\n }\n }\n if (n.mainComponentOnly) {\n const h = i.motionController.getMainComponent();\n if (h === null)\n continue;\n o = h;\n }\n if (typeof n.componentSelectionPredicate == \"function\" && (o = n.componentSelectionPredicate(i)), o && n.forceHandedness && i.inputSource.handedness !== n.forceHandedness || o === null)\n continue;\n const l = {\n registrationConfiguration: n,\n component: o\n };\n s.registeredComponents.push(l), \"axisChangedHandler\" in n && (l.onAxisChangedObserver = o.onAxisValueChangedObservable.add((h) => {\n n.axisChangedHandler(h, this._movementState, this._featureContext, this._xrInput);\n })), \"buttonChangedHandler\" in n && (l.onButtonChangedObserver = o.onButtonStateChangedObservable.add((h) => {\n h.changes.pressed && n.buttonChangedHandler(h.changes.pressed, this._movementState, this._featureContext, this._xrInput);\n }));\n }\n };\n i.motionController ? r() : i.onMotionControllerInitObservable.addOnce(() => {\n r();\n });\n }\n }, !t || t.xrInput === void 0) {\n J.Error('WebXRControllerMovement feature requires \"xrInput\" option.');\n return;\n }\n Array.isArray(t.customRegistrationConfigurations) ? this._currentRegistrationConfigurations = t.customRegistrationConfigurations : this._currentRegistrationConfigurations = no.REGISTRATIONS.default, this._featureContext = {\n movementEnabled: t.movementEnabled || !0,\n movementOrientationFollowsViewerPose: t.movementOrientationFollowsViewerPose ?? !0,\n movementOrientationFollowsController: t.movementOrientationFollowsController ?? !1,\n orientationPreferredHandedness: t.orientationPreferredHandedness,\n movementSpeed: t.movementSpeed ?? 1,\n movementThreshold: t.movementThreshold ?? 0.25,\n rotationEnabled: t.rotationEnabled ?? !0,\n rotationSpeed: t.rotationSpeed ?? 1,\n rotationThreshold: t.rotationThreshold ?? 0.25\n }, this._movementState = {\n moveX: 0,\n moveY: 0,\n rotateX: 0,\n rotateY: 0\n }, this._xrInput = t.xrInput;\n }\n attach() {\n return super.attach() ? (this._xrInput.controllers.forEach(this._attachController), this._addNewAttachObserver(this._xrInput.onControllerAddedObservable, this._attachController), this._addNewAttachObserver(this._xrInput.onControllerRemovedObservable, (e) => {\n this._detachController(e.uniqueId);\n }), !0) : !1;\n }\n detach() {\n return super.detach() ? (Object.keys(this._controllers).forEach((e) => {\n this._detachController(e);\n }), this._controllers = {}, !0) : !1;\n }\n /**\n * Occurs on every XR frame.\n * @param _xrFrame\n */\n _onXRFrame(e) {\n if (this.attached) {\n if (this._movementState.rotateX !== 0 && this._featureContext.rotationEnabled) {\n const i = this._xrSessionManager.scene.getEngine().getDeltaTime() * 1e-3 * this._featureContext.rotationSpeed * this._movementState.rotateX * (this._xrSessionManager.scene.useRightHandedSystem ? -1 : 1);\n if (this._featureContext.movementOrientationFollowsViewerPose)\n this._xrInput.xrCamera.cameraRotation.y += i, se.RotationYawPitchRollToRef(i, 0, 0, this._tempCacheQuaternion), this._xrInput.xrCamera.rotationQuaternion.multiplyToRef(this._tempCacheQuaternion, this._movementDirection);\n else if (this._featureContext.movementOrientationFollowsController) {\n this._xrInput.xrCamera.cameraRotation.y += i;\n const s = this._featureContext.orientationPreferredHandedness || \"right\", r = Object.keys(this._controllers).find((o) => {\n var l, h;\n return ((h = (l = this._controllers[o]) == null ? void 0 : l.xrController) == null ? void 0 : h.inputSource.handedness) === s;\n }) || Object.keys(this._controllers)[0], n = this._controllers[r];\n se.RotationYawPitchRollToRef(i, 0, 0, this._tempCacheQuaternion), ((n == null ? void 0 : n.xrController.pointer.rotationQuaternion) || se.Identity()).multiplyToRef(this._tempCacheQuaternion, this._movementDirection);\n } else\n se.RotationYawPitchRollToRef(i * 3, 0, 0, this._tempCacheQuaternion), this._movementDirection.multiplyInPlace(this._tempCacheQuaternion);\n } else if (this._featureContext.movementOrientationFollowsViewerPose)\n this._movementDirection.copyFrom(this._xrInput.xrCamera.rotationQuaternion);\n else if (this._featureContext.movementOrientationFollowsController) {\n const t = this._featureContext.orientationPreferredHandedness || \"right\", i = Object.keys(this._controllers).find((r) => {\n var n;\n return ((n = this._controllers[r]) == null ? void 0 : n.xrController.inputSource.handedness) === t;\n }) || Object.keys(this._controllers)[0], s = this._controllers[i];\n this._movementDirection.copyFrom((s == null ? void 0 : s.xrController.pointer.rotationQuaternion) || se.Identity());\n }\n (this._movementState.moveX || this._movementState.moveY) && this._featureContext.movementEnabled && (O.FromQuaternionToRef(this._movementDirection, this._tmpRotationMatrix), this._tmpTranslationDirection.set(this._movementState.moveX, 0, this._movementState.moveY * (this._xrSessionManager.scene.useRightHandedSystem ? 1 : -1)), g.TransformCoordinatesToRef(this._tmpTranslationDirection, this._tmpRotationMatrix, this._tmpMovementTranslation), this._tmpMovementTranslation.scaleInPlace(this._xrInput.xrCamera._computeLocalCameraSpeed() * this._featureContext.movementSpeed), this._xrInput.xrCamera.cameraDirection.addInPlace(this._tmpMovementTranslation));\n }\n }\n _detachController(e) {\n const t = this._controllers[e];\n if (t) {\n for (const i of t.registeredComponents)\n i.onAxisChangedObserver && i.component.onAxisValueChangedObservable.remove(i.onAxisChangedObserver), i.onButtonChangedObserver && i.component.onButtonStateChangedObservable.remove(i.onButtonChangedObserver);\n delete this._controllers[e];\n }\n }\n}\nno.Name = Tt.MOVEMENT;\nno.REGISTRATIONS = {\n default: [\n {\n allowedComponentTypes: [Wr.THUMBSTICK_TYPE, Wr.TOUCHPAD_TYPE],\n forceHandedness: \"left\",\n axisChangedHandler: (a, e, t) => {\n e.rotateX = Math.abs(a.x) > t.rotationThreshold ? a.x : 0, e.rotateY = Math.abs(a.y) > t.rotationThreshold ? a.y : 0;\n }\n },\n {\n allowedComponentTypes: [Wr.THUMBSTICK_TYPE, Wr.TOUCHPAD_TYPE],\n forceHandedness: \"right\",\n axisChangedHandler: (a, e, t) => {\n e.moveX = Math.abs(a.x) > t.movementThreshold ? a.x : 0, e.moveY = Math.abs(a.y) > t.movementThreshold ? a.y : 0;\n }\n }\n ]\n};\nno.Version = 1;\nRi.AddWebXRFeature(no.Name, (a, e) => () => new no(a, e), no.Version, !0);\nclass Fh extends Is {\n /**\n * Creates a new instance of the light estimation feature\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param options options to use when constructing this feature\n */\n constructor(e, t) {\n super(e), this.options = t, this._canvasContext = null, this._reflectionCubeMap = null, this._xrLightEstimate = null, this._xrLightProbe = null, this._xrWebGLBinding = null, this._lightDirection = g.Up().negateInPlace(), this._lightColor = re.White(), this._intensity = 1, this._sphericalHarmonics = new Xh(), this._cubeMapPollTime = Date.now(), this._lightEstimationPollTime = Date.now(), this._reflectionCubeMapTextureSize = 16, this.directionalLight = null, this.onReflectionCubeMapUpdatedObservable = new G(), this._updateReflectionCubeMap = () => {\n var s;\n if (!this._xrLightProbe)\n return;\n if (this.options.cubeMapPollInterval) {\n const r = Date.now();\n if (r - this._cubeMapPollTime < this.options.cubeMapPollInterval)\n return;\n this._cubeMapPollTime = r;\n }\n const i = this._getXRGLBinding().getReflectionCubeMap(this._xrLightProbe);\n if (i && this._reflectionCubeMap) {\n if (this._reflectionCubeMap._texture)\n (s = this._reflectionCubeMap._texture._hardwareTexture) == null || s.set(i), this._reflectionCubeMap._texture.getEngine().resetTextureCache();\n else {\n const r = new Nt(\n this._xrSessionManager.scene.getEngine(),\n 0\n /* InternalTextureSource.Unknown */\n );\n r.isCube = !0, r.invertY = !1, r._useSRGBBuffer = this.options.reflectionFormat === \"srgba8\", r.format = 5, r.generateMipMaps = !0, r.type = this.options.reflectionFormat !== \"srgba8\" ? 2 : 0, r.samplingMode = 3, r.width = this._reflectionCubeMapTextureSize, r.height = this._reflectionCubeMapTextureSize, r._cachedWrapU = 1, r._cachedWrapV = 1, r._hardwareTexture = new pc(i, this._getCanvasContext()), this._reflectionCubeMap._texture = r;\n }\n this._reflectionCubeMap._texture.isReady = !0, this.options.disablePreFiltering ? (this._xrSessionManager.scene.markAllMaterialsAsDirty(1), this.onReflectionCubeMapUpdatedObservable.notifyObservers(this._reflectionCubeMap)) : (this._xrLightProbe.removeEventListener(\"reflectionchange\", this._updateReflectionCubeMap), this._hdrFilter.prefilter(this._reflectionCubeMap).then(() => {\n this._xrSessionManager.scene.markAllMaterialsAsDirty(1), this.onReflectionCubeMapUpdatedObservable.notifyObservers(this._reflectionCubeMap), this._xrLightProbe.addEventListener(\"reflectionchange\", this._updateReflectionCubeMap);\n }));\n }\n }, this.xrNativeFeatureName = \"light-estimation\", this.options.createDirectionalLightSource && (this.directionalLight = new bn(\"light estimation directional\", this._lightDirection, this._xrSessionManager.scene), this.directionalLight.position = new g(0, 8, 0), this.directionalLight.intensity = 0, this.directionalLight.falloffType = Qt.FALLOFF_GLTF), this._hdrFilter = new eA(this._xrSessionManager.scene.getEngine()), J.Warn(\"light-estimation is an experimental and unstable feature.\");\n }\n /**\n * While the estimated cube map is expected to update over time to better reflect the user's environment as they move around those changes are unlikely to happen with every XRFrame.\n * Since creating and processing the cube map is potentially expensive, especially if mip maps are needed, you can listen to the onReflectionCubeMapUpdatedObservable to determine\n * when it has been updated.\n */\n get reflectionCubeMapTexture() {\n return this._reflectionCubeMap;\n }\n /**\n * The most recent light estimate. Available starting on the first frame where the device provides a light probe.\n */\n get xrLightingEstimate() {\n return this._xrLightEstimate ? {\n lightColor: this._lightColor,\n lightDirection: this._lightDirection,\n lightIntensity: this._intensity,\n sphericalHarmonics: this._sphericalHarmonics\n } : this._xrLightEstimate;\n }\n _getCanvasContext() {\n return this._canvasContext === null && (this._canvasContext = this._xrSessionManager.scene.getEngine()._gl), this._canvasContext;\n }\n _getXRGLBinding() {\n if (this._xrWebGLBinding === null) {\n const e = this._getCanvasContext();\n this._xrWebGLBinding = new XRWebGLBinding(this._xrSessionManager.session, e);\n }\n return this._xrWebGLBinding;\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach())\n return !1;\n const e = this.options.reflectionFormat ?? (this._xrSessionManager.session.preferredReflectionFormat || \"srgba8\");\n return this.options.reflectionFormat = e, this._xrSessionManager.session.requestLightProbe({\n reflectionFormat: e\n }).then((t) => {\n this._xrLightProbe = t, this.options.disableCubeMapReflection || (this._reflectionCubeMap || (this._reflectionCubeMap = new Mt(this._xrSessionManager.scene), this._reflectionCubeMap._isCube = !0, this._reflectionCubeMap.coordinatesMode = 3, this.options.setSceneEnvironmentTexture && (this._xrSessionManager.scene.environmentTexture = this._reflectionCubeMap)), this._xrLightProbe.addEventListener(\"reflectionchange\", this._updateReflectionCubeMap));\n }), !0;\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n const e = super.detach();\n return this._xrLightProbe !== null && !this.options.disableCubeMapReflection && (this._xrLightProbe.removeEventListener(\"reflectionchange\", this._updateReflectionCubeMap), this._xrLightProbe = null), this._canvasContext = null, this._xrLightEstimate = null, this._xrWebGLBinding = null, e;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose(), this.onReflectionCubeMapUpdatedObservable.clear(), this.directionalLight && (this.directionalLight.dispose(), this.directionalLight = null), this._reflectionCubeMap !== null && (this._reflectionCubeMap._texture && this._reflectionCubeMap._texture.dispose(), this._reflectionCubeMap.dispose(), this._reflectionCubeMap = null);\n }\n _onXRFrame(e) {\n var t;\n if (this._xrLightProbe !== null) {\n if (this.options.lightEstimationPollInterval) {\n const i = Date.now();\n if (i - this._lightEstimationPollTime < this.options.lightEstimationPollInterval)\n return;\n this._lightEstimationPollTime = i;\n }\n if (this._xrLightEstimate = e.getLightEstimate(this._xrLightProbe), this._xrLightEstimate) {\n this._intensity = Math.max(1, this._xrLightEstimate.primaryLightIntensity.x, this._xrLightEstimate.primaryLightIntensity.y, this._xrLightEstimate.primaryLightIntensity.z);\n const i = this._xrSessionManager.scene.useRightHandedSystem ? 1 : -1;\n this.options.disableVectorReuse && (this._lightDirection = new g(), this._lightColor = new re(), this.directionalLight && (this.directionalLight.direction = this._lightDirection, this.directionalLight.diffuse = this._lightColor)), this._lightDirection.copyFromFloats(this._xrLightEstimate.primaryLightDirection.x, this._xrLightEstimate.primaryLightDirection.y, this._xrLightEstimate.primaryLightDirection.z * i), this._lightColor.copyFromFloats(this._xrLightEstimate.primaryLightIntensity.x / this._intensity, this._xrLightEstimate.primaryLightIntensity.y / this._intensity, this._xrLightEstimate.primaryLightIntensity.z / this._intensity), this._sphericalHarmonics.updateFromFloatsArray(this._xrLightEstimate.sphericalHarmonicsCoefficients), this._reflectionCubeMap && !this.options.disableSphericalPolynomial && (this._reflectionCubeMap.sphericalPolynomial = this._reflectionCubeMap.sphericalPolynomial || new uo(), (t = this._reflectionCubeMap.sphericalPolynomial) == null || t.updateFromHarmonics(this._sphericalHarmonics)), this._lightDirection.negateInPlace(), this.directionalLight && (this.directionalLight.direction.copyFrom(this._lightDirection), this.directionalLight.intensity = Math.min(this._intensity, 1), this.directionalLight.diffuse.copyFrom(this._lightColor));\n }\n }\n }\n}\nFh.Name = Tt.LIGHT_ESTIMATION;\nFh.Version = 1;\nRi.AddWebXRFeature(Fh.Name, (a, e) => () => new Fh(a, e), Fh.Version, !1);\nclass Lh extends Is {\n /**\n * Creates a new instance of the XR eye tracking feature.\n * @param _xrSessionManager An instance of WebXRSessionManager.\n */\n constructor(e) {\n super(e), this.onEyeTrackingStartedObservable = new G(), this.onEyeTrackingEndedObservable = new G(), this.onEyeTrackingFrameUpdateObservable = new G(), this._eyeTrackingStartListener = (t) => {\n this._latestEyeSpace = t.gazeSpace, this._gazeRay = new nt(g.Zero(), g.Forward()), this.onEyeTrackingStartedObservable.notifyObservers(this._gazeRay);\n }, this._eyeTrackingEndListener = () => {\n this._latestEyeSpace = null, this._gazeRay = null, this.onEyeTrackingEndedObservable.notifyObservers();\n }, this.xrNativeFeatureName = \"eye-tracking\", this._xrSessionManager.session ? this._init() : this._xrSessionManager.onXRSessionInit.addOnce(() => {\n this._init();\n });\n }\n /**\n * Dispose this feature and all of the resources attached.\n */\n dispose() {\n super.dispose(), this._xrSessionManager.session.removeEventListener(\"eyetrackingstart\", this._eyeTrackingStartListener), this._xrSessionManager.session.removeEventListener(\"eyetrackingend\", this._eyeTrackingEndListener), this.onEyeTrackingStartedObservable.clear(), this.onEyeTrackingEndedObservable.clear(), this.onEyeTrackingFrameUpdateObservable.clear();\n }\n /**\n * Returns whether the gaze data is valid or not\n * @returns true if the data is valid\n */\n get isEyeGazeValid() {\n return !!this._gazeRay;\n }\n /**\n * Get a reference to the gaze ray. This data is valid while eye tracking persists, and will be set to null when gaze data is no longer available\n * @returns a reference to the gaze ray if it exists and is valid, returns null otherwise.\n */\n getEyeGaze() {\n return this._gazeRay;\n }\n _onXRFrame(e) {\n if (!(!this.attached || !e) && this._latestEyeSpace && this._gazeRay) {\n const t = e.getPose(this._latestEyeSpace, this._xrSessionManager.referenceSpace);\n if (t) {\n this._gazeRay.origin.set(t.transform.position.x, t.transform.position.y, t.transform.position.z).scaleInPlace(this._xrSessionManager.worldScalingFactor);\n const i = t.transform.orientation;\n w.Quaternion[0].set(i.x, i.y, i.z, i.w), this._xrSessionManager.scene.useRightHandedSystem ? g.RightHandedForwardReadOnly.rotateByQuaternionToRef(w.Quaternion[0], this._gazeRay.direction) : (this._gazeRay.origin.z *= -1, w.Quaternion[0].z *= -1, w.Quaternion[0].w *= -1, g.LeftHandedForwardReadOnly.rotateByQuaternionToRef(w.Quaternion[0], this._gazeRay.direction)), this.onEyeTrackingFrameUpdateObservable.notifyObservers(this._gazeRay);\n }\n }\n }\n _init() {\n this._xrSessionManager.isNative && (this._xrSessionManager.session.addEventListener(\"eyetrackingstart\", this._eyeTrackingStartListener), this._xrSessionManager.session.addEventListener(\"eyetrackingend\", this._eyeTrackingEndListener));\n }\n}\nLh.Name = Tt.EYE_TRACKING;\nLh.Version = 1;\nRi.AddWebXRFeature(Lh.Name, (a) => () => new Lh(a), Lh.Version, !1);\nclass EH {\n constructor(e, t) {\n this._samples = [], this._idx = 0;\n for (let i = 0; i < e; ++i)\n this._samples.push(t ? t() : Q.Zero());\n }\n get length() {\n return this._samples.length;\n }\n push(e, t) {\n this._idx = (this._idx + this._samples.length - 1) % this._samples.length, this.at(0).copyFromFloats(e, t);\n }\n at(e) {\n if (e >= this._samples.length)\n throw new Error(\"Index out of bounds\");\n return this._samples[(this._idx + e) % this._samples.length];\n }\n}\nclass yH {\n constructor() {\n this._samples = new EH(20), this._entropy = 0, this.onFirstStepDetected = new G();\n }\n update(e, t, i, s) {\n this._samples.push(e, t);\n const r = this._samples.at(0);\n if (this._entropy *= this._entropyDecayFactor, this._entropy += Q.Distance(r, this._samples.at(1)), this._entropy > this._entropyThreshold)\n return;\n let n;\n for (n = this._samePointCheckStartIdx; n < this._samples.length && !(Q.DistanceSquared(r, this._samples.at(n)) < this._samePointSquaredDistanceThreshold); ++n)\n ;\n if (n === this._samples.length)\n return;\n let o = -1, l = 0;\n for (let E, b = 1; b < n; ++b)\n E = Q.DistanceSquared(r, this._samples.at(b)), E > o && (l = b, o = E);\n if (o < this._apexSquaredDistanceThreshold)\n return;\n const h = this._samples.at(l), c = h.subtract(r);\n c.normalize();\n const u = w.Vector2[0];\n let d, f, p = 0;\n for (let E = 1; E < n; ++E)\n f = this._samples.at(E), f.subtractToRef(r, u), d = Q.Dot(c, u), p += u.lengthSquared() - d * d;\n if (p > n * this._squaredProjectionDistanceThreshold)\n return;\n const _ = w.Vector3[0];\n _.set(i, s, 0);\n const m = w.Vector3[1];\n m.set(c.x, c.y, 0);\n const x = g.Cross(_, m).z > 0, v = r.clone(), T = r.clone();\n h.subtractToRef(r, c), x ? (c.scaleAndAddToRef(this._axisToApexShrinkFactor, v), c.scaleAndAddToRef(this._axisToApexExtendFactor, T)) : (c.scaleAndAddToRef(this._axisToApexExtendFactor, v), c.scaleAndAddToRef(this._axisToApexShrinkFactor, T)), this.onFirstStepDetected.notifyObservers({\n leftApex: v,\n rightApex: T,\n currentPosition: r,\n currentStepDirection: x ? \"right\" : \"left\"\n });\n }\n reset() {\n for (let e = 0; e < this._samples.length; ++e)\n this._samples.at(e).copyFromFloats(0, 0);\n }\n get _samePointCheckStartIdx() {\n return Math.floor(this._samples.length / 3);\n }\n get _samePointSquaredDistanceThreshold() {\n return 0.03 * 0.03;\n }\n get _apexSquaredDistanceThreshold() {\n return 0.09 * 0.09;\n }\n get _squaredProjectionDistanceThreshold() {\n return 0.03 * 0.03;\n }\n get _axisToApexShrinkFactor() {\n return 0.8;\n }\n get _axisToApexExtendFactor() {\n return -1.6;\n }\n get _entropyDecayFactor() {\n return 0.93;\n }\n get _entropyThreshold() {\n return 0.4;\n }\n}\nclass CH {\n constructor(e, t, i, s) {\n this._leftApex = new Q(), this._rightApex = new Q(), this._currentPosition = new Q(), this._axis = new Q(), this._axisLength = -1, this._forward = new Q(), this._steppingLeft = !1, this._t = -1, this._maxT = -1, this._maxTPosition = new Q(), this._vitality = 0, this.onMovement = new G(), this.onFootfall = new G(), this._reset(e, t, i, s === \"left\");\n }\n _reset(e, t, i, s) {\n this._leftApex.copyFrom(e), this._rightApex.copyFrom(t), this._steppingLeft = s, this._steppingLeft ? (this._leftApex.subtractToRef(this._rightApex, this._axis), this._forward.copyFromFloats(-this._axis.y, this._axis.x)) : (this._rightApex.subtractToRef(this._leftApex, this._axis), this._forward.copyFromFloats(this._axis.y, -this._axis.x)), this._axisLength = this._axis.length(), this._forward.scaleInPlace(1 / this._axisLength), this._updateTAndVitality(i.x, i.y), this._maxT = this._t, this._maxTPosition.copyFrom(i), this._vitality = 1;\n }\n _updateTAndVitality(e, t) {\n this._currentPosition.copyFromFloats(e, t), this._steppingLeft ? this._currentPosition.subtractInPlace(this._rightApex) : this._currentPosition.subtractInPlace(this._leftApex);\n const i = this._t, s = Q.Dot(this._currentPosition, this._axis);\n this._t = s / (this._axisLength * this._axisLength);\n const r = this._currentPosition.lengthSquared() - s / this._axisLength * (s / this._axisLength);\n this._vitality *= 0.92 - 100 * Math.max(r - 16e-4, 0) + Math.max(this._t - i, 0);\n }\n update(e, t) {\n if (this._vitality < this._vitalityThreshold)\n return !1;\n const i = this._t;\n return this._updateTAndVitality(e, t), this._t > this._maxT && (this._maxT = this._t, this._maxTPosition.copyFromFloats(e, t)), !(this._vitality < this._vitalityThreshold || (this._t > i && (this.onMovement.notifyObservers({ deltaT: this._t - i }), i < 0.5 && this._t >= 0.5 && this.onFootfall.notifyObservers({ foot: this._steppingLeft ? \"left\" : \"right\" })), this._t < 0.95 * this._maxT && (this._currentPosition.copyFromFloats(e, t), this._steppingLeft ? this._leftApex.copyFrom(this._maxTPosition) : this._rightApex.copyFrom(this._maxTPosition), this._reset(this._leftApex, this._rightApex, this._currentPosition, !this._steppingLeft)), this._axisLength < 0.03));\n }\n get _vitalityThreshold() {\n return 0.1;\n }\n get forward() {\n return this._forward;\n }\n}\nclass lu {\n static get _MillisecondsPerUpdate() {\n return 1e3 / 15;\n }\n constructor(e) {\n this._detector = new yH(), this._walker = null, this._movement = new Q(), this._millisecondsSinceLastUpdate = lu._MillisecondsPerUpdate, this.movementThisFrame = g.Zero(), this._engine = e, this._detector.onFirstStepDetected.add((t) => {\n this._walker || (this._walker = new CH(t.leftApex, t.rightApex, t.currentPosition, t.currentStepDirection), this._walker.onFootfall.add(() => {\n L.Log(\"Footfall!\");\n }), this._walker.onMovement.add((i) => {\n this._walker.forward.scaleAndAddToRef(0.024 * i.deltaT, this._movement);\n }));\n });\n }\n update(e, t) {\n t.y = 0, t.normalize(), this._millisecondsSinceLastUpdate += this._engine.getDeltaTime(), this._millisecondsSinceLastUpdate >= lu._MillisecondsPerUpdate && (this._millisecondsSinceLastUpdate -= lu._MillisecondsPerUpdate, this._detector.update(e.x, e.z, t.x, t.z), this._walker && (this._walker.update(e.x, e.z) || (this._walker = null)), this._movement.scaleInPlace(0.85)), this.movementThisFrame.set(this._movement.x, 0, this._movement.y);\n }\n}\nclass Ep extends Is {\n /**\n * The module's name.\n */\n static get Name() {\n return Tt.WALKING_LOCOMOTION;\n }\n /**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number has no external basis.\n */\n static get Version() {\n return 1;\n }\n /**\n * The target to be articulated by walking locomotion.\n * When the walking locomotion feature detects walking in place, this element's\n * X and Z coordinates will be modified to reflect locomotion. This target should\n * be either the XR space's origin (i.e., the parent node of the WebXRCamera) or\n * the WebXRCamera itself. Note that the WebXRCamera path will modify the position\n * of the WebXRCamera directly and is thus discouraged.\n */\n get locomotionTarget() {\n return this._locomotionTarget;\n }\n /**\n * The target to be articulated by walking locomotion.\n * When the walking locomotion feature detects walking in place, this element's\n * X and Z coordinates will be modified to reflect locomotion. This target should\n * be either the XR space's origin (i.e., the parent node of the WebXRCamera) or\n * the WebXRCamera itself. Note that the WebXRCamera path will modify the position\n * of the WebXRCamera directly and is thus discouraged.\n */\n set locomotionTarget(e) {\n this._locomotionTarget = e, this._isLocomotionTargetWebXRCamera = this._locomotionTarget.getClassName() === \"WebXRCamera\";\n }\n /**\n * Construct a new Walking Locomotion feature.\n * @param sessionManager manager for the current XR session\n * @param options creation options, prominently including the vector target for locomotion\n */\n constructor(e, t) {\n super(e), this._up = new g(), this._forward = new g(), this._position = new g(), this._movement = new g(), this._sessionManager = e, this.locomotionTarget = t.locomotionTarget, this._isLocomotionTargetWebXRCamera && L.Warn(\"Using walking locomotion directly on a WebXRCamera may have unintended interactions with other XR techniques. Using an XR space parent is highly recommended\");\n }\n /**\n * Checks whether this feature is compatible with the current WebXR session.\n * Walking locomotion is only compatible with \"immersive-vr\" sessions.\n * @returns true if compatible, false otherwise\n */\n isCompatible() {\n return this._sessionManager.sessionMode === void 0 || this._sessionManager.sessionMode === \"immersive-vr\";\n }\n /**\n * Attaches the feature.\n * Typically called automatically by the features manager.\n * @returns true if attach succeeded, false otherwise\n */\n attach() {\n return !this.isCompatible || !super.attach() ? !1 : (this._walker = new lu(this._sessionManager.scene.getEngine()), !0);\n }\n /**\n * Detaches the feature.\n * Typically called automatically by the features manager.\n * @returns true if detach succeeded, false otherwise\n */\n detach() {\n return super.detach() ? (this._walker = null, !0) : !1;\n }\n _onXRFrame(e) {\n const t = e.getViewerPose(this._sessionManager.baseReferenceSpace);\n if (!t)\n return;\n const i = this.locomotionTarget.getScene().useRightHandedSystem ? 1 : -1, s = t.transform.matrix;\n this._up.copyFromFloats(s[4], s[5], i * s[6]), this._forward.copyFromFloats(s[8], s[9], i * s[10]), this._position.copyFromFloats(s[12], s[13], i * s[14]), this._forward.scaleAndAddToRef(0.05, this._position), this._up.scaleAndAddToRef(-0.05, this._position), this._walker.update(this._position, this._forward), this._movement.copyFrom(this._walker.movementThisFrame), this._isLocomotionTargetWebXRCamera || g.TransformNormalToRef(this._movement, this.locomotionTarget.getWorldMatrix(), this._movement), this.locomotionTarget.position.addInPlace(this._movement);\n }\n}\nRi.AddWebXRFeature(Ep.Name, (a, e) => () => new Ep(a, e), Ep.Version, !1);\nclass cI extends Xx {\n constructor(e, t, i, s, r, n, o = null) {\n super(e, t, i, s, n), this.getWidth = e, this.getHeight = t, this.layer = i, this.layerType = s, this.isMultiview = r, this.createRTTProvider = n, this._originalInternalTexture = o;\n }\n}\nclass uI extends b_ {\n constructor(e, t, i) {\n super(e.scene, i), this._xrSessionManager = e, this._xrWebGLBinding = t, this.layerWrapper = i, this._lastSubImages = /* @__PURE__ */ new Map(), this.onRenderTargetTextureCreatedObservable = new G(), this._compositionLayer = i.layer;\n }\n _getRenderTargetForSubImage(e, t = \"none\") {\n const i = this._lastSubImages.get(t), s = t == \"right\" ? 1 : 0, r = e.colorTextureWidth ?? e.textureWidth, n = e.colorTextureHeight ?? e.textureHeight;\n if (!this._renderTargetTextures[s] || (i == null ? void 0 : i.textureWidth) !== r || (i == null ? void 0 : i.textureHeight) !== n) {\n let o;\n const l = e.depthStencilTextureWidth ?? r, h = e.depthStencilTextureHeight ?? n;\n (r === l || n === h) && (o = e.depthStencilTexture), this._renderTargetTextures[s] = this._createRenderTargetTexture(r, n, null, e.colorTexture, o, this.layerWrapper.isMultiview), this._framebufferDimensions = {\n framebufferWidth: r,\n framebufferHeight: n\n }, this.onRenderTargetTextureCreatedObservable.notifyObservers({ texture: this._renderTargetTextures[s], eye: t });\n }\n return this._lastSubImages.set(t, e), this._renderTargetTextures[s];\n }\n _getSubImageForEye(e) {\n const t = this._xrSessionManager.currentFrame;\n return t ? this._xrWebGLBinding.getSubImage(this._compositionLayer, t, e) : null;\n }\n getRenderTargetTextureForEye(e) {\n const t = this._getSubImageForEye(e);\n return t ? this._getRenderTargetForSubImage(t, e) : null;\n }\n getRenderTargetTextureForView(e) {\n return this.getRenderTargetTextureForEye(e == null ? void 0 : e.eye);\n }\n _setViewportForSubImage(e, t) {\n const i = t.colorTextureWidth ?? t.textureWidth, s = t.colorTextureHeight ?? t.textureHeight, r = t.viewport;\n e.x = r.x / i, e.y = r.y / s, e.width = r.width / i, e.height = r.height / s;\n }\n trySetViewportForView(e, t) {\n const i = this._lastSubImages.get(t.eye) || this._getSubImageForEye(t.eye);\n return i ? (this._setViewportForSubImage(e, i), !0) : !1;\n }\n}\nclass AH extends cI {\n constructor(e, t, i) {\n super(() => e.textureWidth, () => e.textureHeight, e, \"XRProjectionLayer\", t, (s) => new RH(s, i, this)), this.layer = e;\n }\n}\nclass RH extends uI {\n constructor(e, t, i) {\n super(e, t, i), this.layerWrapper = i, this._projectionLayer = i.layer;\n }\n _getSubImageForView(e) {\n return this._xrWebGLBinding.getViewSubImage(this._projectionLayer, e);\n }\n getRenderTargetTextureForView(e) {\n return this._getRenderTargetForSubImage(this._getSubImageForView(e), e.eye);\n }\n getRenderTargetTextureForEye(e) {\n const t = this._lastSubImages.get(e);\n return t ? this._getRenderTargetForSubImage(t, e) : null;\n }\n trySetViewportForView(e, t) {\n const i = this._lastSubImages.get(t.eye) || this._getSubImageForView(t);\n return i ? (this._setViewportForSubImage(e, i), !0) : !1;\n }\n}\nconst Ey = {\n textureType: \"texture\",\n colorFormat: 6408,\n depthFormat: 35056,\n scaleFactor: 1,\n clearOnAccess: !1\n}, IH = {};\nclass Bh extends Is {\n constructor(e, t = {}) {\n super(e), this._options = t, this._existingLayers = [], this._isMultiviewEnabled = !1, this._projectionLayerInitialized = !1, this._compositionLayerTextureMapping = /* @__PURE__ */ new WeakMap(), this._layerToRTTProviderMapping = /* @__PURE__ */ new WeakMap(), this.xrNativeFeatureName = \"layers\";\n }\n /**\n * Attach this feature.\n * Will usually be called by the features manager.\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach())\n return !1;\n const e = this._xrSessionManager.scene.getEngine();\n this._glContext = e._gl, this._xrWebGLBinding = new XRWebGLBinding(this._xrSessionManager.session, this._glContext), this._existingLayers.length = 0;\n const t = { ...Ey, ...this._options.projectionLayerInit };\n return this._isMultiviewEnabled = this._options.preferMultiviewOnInit && e.getCaps().multiview, this.createProjectionLayer(\n t\n /*, projectionLayerMultiview*/\n ), this._projectionLayerInitialized = !0, !0;\n }\n detach() {\n return super.detach() ? (this._existingLayers.forEach((e) => {\n e.dispose();\n }), this._existingLayers.length = 0, this._projectionLayerInitialized = !1, !0) : !1;\n }\n /**\n * Creates a new XRWebGLLayer.\n * @param params an object providing configuration options for the new XRWebGLLayer\n * @returns the XRWebGLLayer\n */\n createXRWebGLLayer(e = IH) {\n const t = new XRWebGLLayer(this._xrSessionManager.session, this._glContext, e);\n return new $x(t);\n }\n _validateLayerInit(e, t = this._isMultiviewEnabled) {\n if (!this._xrSessionManager.inXRSession)\n throw new Error(\"Cannot create a layer outside of a WebXR session. Make sure the session has started before creating layers.\");\n if (t && e.textureType !== \"texture-array\")\n throw new Error(\"Projection layers can only be made multiview if they use texture arrays. Set the textureType parameter to 'texture-array'.\");\n if (!t && e.textureType === \"texture-array\")\n throw new Error(\"We currently only support multiview rendering when the textureType parameter is set to 'texture-array'.\");\n }\n _extendXRLayerInit(e, t = this._isMultiviewEnabled) {\n return t && (e.textureType = \"texture-array\"), e;\n }\n /**\n * Creates a new XRProjectionLayer.\n * @param params an object providing configuration options for the new XRProjectionLayer.\n * @param multiview whether the projection layer should render with multiview. Will be tru automatically if the extension initialized with multiview.\n * @returns the projection layer\n */\n createProjectionLayer(e = Ey, t = this._isMultiviewEnabled) {\n this._extendXRLayerInit(e, t), this._validateLayerInit(e, t);\n const i = this._xrWebGLBinding.createProjectionLayer(e), s = new AH(i, t, this._xrWebGLBinding);\n return this.addXRSessionLayer(s), s;\n }\n /**\n * Note about making it private - this function will be exposed once I decide on a proper API to support all of the XR layers' options\n * @param options an object providing configuration options for the new XRQuadLayer.\n * @param babylonTexture the texture to display in the layer\n * @returns the quad layer\n */\n _createQuadLayer(e = { params: {} }, t) {\n this._extendXRLayerInit(e.params, !1);\n const i = this._existingLayers[0].layer.textureWidth, s = this._existingLayers[0].layer.textureHeight, r = {\n space: this._xrSessionManager.referenceSpace,\n viewPixelWidth: i,\n viewPixelHeight: s,\n clearOnAccess: !0,\n ...e.params\n };\n this._validateLayerInit(r, !1);\n const n = this._xrWebGLBinding.createQuadLayer(r);\n n.width = this._isMultiviewEnabled ? 1 : 2, n.height = 1;\n const o = new cI(() => n.width, () => n.height, n, \"XRQuadLayer\", !1, (h) => new uI(h, this._xrWebGLBinding, o));\n t && this._compositionLayerTextureMapping.set(n, t);\n const l = o.createRenderTargetTextureProvider(this._xrSessionManager);\n return this._layerToRTTProviderMapping.set(n, l), this.addXRSessionLayer(o), o;\n }\n /**\n * @experimental\n * This will support full screen ADT when used with WebXR Layers. This API might change in the future.\n * Note that no interaction will be available with the ADT when using this method\n * @param texture the texture to display in the layer\n * @param options optional parameters for the layer\n * @returns a composition layer containing the texture\n */\n addFullscreenAdvancedDynamicTexture(e, t = { distanceFromHeadset: 1.5 }) {\n const i = this._createQuadLayer({\n params: {\n space: this._xrSessionManager.viewerReferenceSpace,\n textureType: \"texture\",\n layout: \"mono\"\n }\n }, e), s = i.layer, n = { x: 0, y: 0, z: -Math.max(0.1, t.distanceFromHeadset) }, o = { x: 0, y: 0, z: 0, w: 1 };\n s.transform = new XRRigidTransform(n, o);\n const l = this._layerToRTTProviderMapping.get(s);\n if (!l)\n throw new Error(\"Could not find the RTT provider for the layer\");\n const h = this._xrSessionManager.scene.layers.find((c) => c.texture === e);\n if (!h)\n throw new Error(\"Could not find the babylon layer for the texture\");\n return l.onRenderTargetTextureCreatedObservable.add((c) => {\n c.eye && c.eye === \"right\" || (c.texture.clearColor = new Ce(0, 0, 0, 0), h.renderTargetTextures.push(c.texture), h.renderOnlyInRenderTargetTextures = !0, this._xrSessionManager.scene.onBeforeRenderObservable.add(() => {\n c.texture.render();\n }), h.renderTargetTextures.push(c.texture), h.renderOnlyInRenderTargetTextures = !0, this._xrSessionManager.onXRSessionEnded.addOnce(() => {\n h.renderTargetTextures.splice(h.renderTargetTextures.indexOf(c.texture), 1), h.renderOnlyInRenderTargetTextures = !1;\n }));\n }), i;\n }\n /**\n * @experimental\n * This functions allows you to add a lens flare system to the XR scene.\n * Note - this will remove the lens flare system from the scene and add it to the XR scene.\n * This feature is experimental and might change in the future.\n * @param flareSystem the flare system to add\n * @returns a composition layer containing the flare system\n */\n _addLensFlareSystem(e) {\n const t = this._createQuadLayer({\n params: {\n space: this._xrSessionManager.viewerReferenceSpace,\n textureType: \"texture\",\n layout: \"mono\"\n }\n }), i = t.layer;\n i.width = 2, i.height = 1;\n const r = { x: 0, y: 0, z: -10 }, n = { x: 0, y: 0, z: 0, w: 1 };\n i.transform = new XRRigidTransform(r, n);\n const o = this._layerToRTTProviderMapping.get(i);\n if (!o)\n throw new Error(\"Could not find the RTT provider for the layer\");\n return o.onRenderTargetTextureCreatedObservable.add((l) => {\n l.texture.clearColor = new Ce(0, 0, 0, 0), l.texture.customRenderFunction = () => {\n e.render();\n };\n }), this._xrSessionManager.onXRSessionInit.add(() => {\n this._xrSessionManager.scene.lensFlareSystems.splice(this._xrSessionManager.scene.lensFlareSystems.indexOf(e), 1);\n }), this._xrSessionManager.onXRSessionEnded.add(() => {\n this._xrSessionManager.scene.lensFlareSystems.push(e);\n }), t;\n }\n /**\n * Add a new layer to the already-existing list of layers\n * @param wrappedLayer the new layer to add to the existing ones\n */\n addXRSessionLayer(e) {\n this._existingLayers.push(e), this.setXRSessionLayers(this._existingLayers);\n }\n /**\n * Sets the layers to be used by the XR session.\n * Note that you must call this function with any layers you wish to render to\n * since it adds them to the XR session's render state\n * (replacing any layers that were added in a previous call to setXRSessionLayers or updateRenderState).\n * This method also sets up the session manager's render target texture provider\n * as the first layer in the array, which feeds the WebXR camera(s) attached to the session.\n * @param wrappedLayers An array of WebXRLayerWrapper, usually returned from the WebXRLayers createLayer functions.\n */\n setXRSessionLayers(e = this._existingLayers) {\n const t = { ...this._xrSessionManager.session.renderState };\n t.baseLayer = void 0, t.layers = e.map((i) => i.layer), this._xrSessionManager.updateRenderState(t), this._projectionLayerInitialized || this._xrSessionManager._setBaseLayerWrapper(e.length > 0 ? e.at(0) : null);\n }\n isCompatible() {\n return !this._xrSessionManager.isNative && typeof XRWebGLBinding < \"u\" && !!XRWebGLBinding.prototype.createProjectionLayer;\n }\n /**\n * Dispose this feature and all of the resources attached.\n */\n dispose() {\n super.dispose();\n }\n _onXRFrame(e) {\n const t = this._existingLayers;\n for (let i = 0; i < t.length; ++i) {\n const s = t[i];\n if (s.layerType !== \"XRProjectionLayer\") {\n const r = this._layerToRTTProviderMapping.get(s.layer);\n if (!r)\n continue;\n if (r.layerWrapper.isMultiview) {\n const n = e.getViewerPose(this._xrSessionManager.referenceSpace);\n if (n) {\n const o = n.views;\n for (let l = 0; l < o.length; ++l) {\n const h = o[l];\n r.getRenderTargetTextureForView(h);\n }\n }\n } else\n r.getRenderTargetTextureForView();\n }\n }\n }\n}\nBh.Name = Tt.LAYERS;\nBh.Version = 1;\nRi.AddWebXRFeature(Bh.Name, (a, e) => () => new Bh(a, e), Bh.Version, !1);\nclass Vh extends Is {\n /**\n * Width of depth data. If depth data is not exist, returns null.\n */\n get width() {\n return this._width;\n }\n /**\n * Height of depth data. If depth data is not exist, returns null.\n */\n get height() {\n return this._height;\n }\n /**\n * Scale factor by which the raw depth values must be multiplied in order to get the depths in meters.\n */\n get rawValueToMeters() {\n return this._rawValueToMeters;\n }\n /**\n * An XRRigidTransform that needs to be applied when indexing into the depth buffer.\n */\n get normDepthBufferFromNormView() {\n return this._normDepthBufferFromNormView;\n }\n /**\n * Describes which depth-sensing usage (\"cpu\" or \"gpu\") is used.\n */\n get depthUsage() {\n switch (this._xrSessionManager.session.depthUsage) {\n case \"cpu-optimized\":\n return \"cpu\";\n case \"gpu-optimized\":\n return \"gpu\";\n }\n }\n /**\n * Describes which depth sensing data format (\"ushort\" or \"float\") is used.\n */\n get depthDataFormat() {\n switch (this._xrSessionManager.session.depthDataFormat) {\n case \"luminance-alpha\":\n return \"ushort\";\n case \"float32\":\n return \"float\";\n }\n }\n /**\n * Latest cached InternalTexture which containing depth buffer information.\n * This can be used when the depth usage is \"gpu\".\n */\n get latestInternalTexture() {\n if (!this._cachedWebGLTexture)\n return null;\n const e = this._xrSessionManager.scene.getEngine(), t = new Nt(\n e,\n 0\n /* InternalTextureSource.Unknown */\n );\n return t.isCube = !1, t.invertY = !1, t._useSRGBBuffer = !1, t.format = this.depthDataFormat === \"ushort\" ? 2 : 5, t.generateMipMaps = !1, t.type = this.depthDataFormat === \"ushort\" ? 5 : 1, t.samplingMode = 7, t.width = this.width ?? 0, t.height = this.height ?? 0, t._cachedWrapU = 1, t._cachedWrapV = 1, t._hardwareTexture = new pc(this._cachedWebGLTexture, e._gl), t;\n }\n /**\n * cached depth buffer\n */\n get latestDepthBuffer() {\n return this._cachedDepthBuffer ? this.depthDataFormat === \"ushort\" ? new Uint16Array(this._cachedDepthBuffer) : new Float32Array(this._cachedDepthBuffer) : null;\n }\n /**\n * Latest cached Texture of depth image which is made from the depth buffer data.\n */\n get latestDepthImageTexture() {\n return this._cachedDepthImageTexture;\n }\n /**\n * Creates a new instance of the depth sensing feature\n * @param _xrSessionManager the WebXRSessionManager\n * @param options options for WebXR Depth Sensing Feature\n */\n constructor(e, t) {\n super(e), this.options = t, this._width = null, this._height = null, this._rawValueToMeters = null, this._normDepthBufferFromNormView = null, this._cachedDepthBuffer = null, this._cachedWebGLTexture = null, this._cachedDepthImageTexture = null, this.onGetDepthInMetersAvailable = new G(), this.xrNativeFeatureName = \"depth-sensing\", J.Warn(\"depth-sensing is an experimental and unstable feature.\");\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n * @param force should attachment be forced (even when already attached)\n * @returns true if successful.\n */\n attach(e) {\n return !super.attach(e) || this._xrSessionManager.session.depthDataFormat == null || this._xrSessionManager.session.depthUsage == null ? !1 : (this._glBinding = new XRWebGLBinding(this._xrSessionManager.session, this._xrSessionManager.scene.getEngine()._gl), !0);\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n var e;\n (e = this._cachedDepthImageTexture) == null || e.dispose();\n }\n _onXRFrame(e) {\n const t = this._xrSessionManager.referenceSpace, i = e.getViewerPose(t);\n if (i != null)\n for (const s of i.views)\n switch (this.depthUsage) {\n case \"cpu\":\n this._updateDepthInformationAndTextureCPUDepthUsage(e, s, this.depthDataFormat);\n break;\n case \"gpu\":\n if (!this._glBinding)\n break;\n this._updateDepthInformationAndTextureWebGLDepthUsage(this._glBinding, s, this.depthDataFormat);\n break;\n default:\n J.Error(\"Unknown depth usage\"), this.detach();\n break;\n }\n }\n _updateDepthInformationAndTextureCPUDepthUsage(e, t, i) {\n const s = e.getDepthInformation(t);\n if (s === null)\n return;\n const { data: r, width: n, height: o, rawValueToMeters: l, getDepthInMeters: h } = s;\n switch (this._width = n, this._height = o, this._rawValueToMeters = l, this._cachedDepthBuffer = r, this.onGetDepthInMetersAvailable.notifyObservers(h.bind(s)), this._cachedDepthImageTexture || (this._cachedDepthImageTexture = _i.CreateRTexture(null, n, o, this._xrSessionManager.scene, !1, !0, X.NEAREST_SAMPLINGMODE, ee.TEXTURETYPE_FLOAT)), i) {\n case \"ushort\":\n this._cachedDepthImageTexture.update(Float32Array.from(new Uint16Array(r)).map((c) => c * l));\n break;\n case \"float\":\n this._cachedDepthImageTexture.update(new Float32Array(r).map((c) => c * l));\n break;\n }\n }\n _updateDepthInformationAndTextureWebGLDepthUsage(e, t, i) {\n const s = e.getDepthInformation(t);\n if (s === null)\n return;\n const { texture: r, width: n, height: o } = s;\n this._width = n, this._height = o, this._cachedWebGLTexture = r;\n const l = this._xrSessionManager.scene, c = l.getEngine().wrapWebGLTexture(r);\n this._cachedDepthImageTexture || (this._cachedDepthImageTexture = _i.CreateRTexture(null, n, o, l, !1, !0, X.NEAREST_SAMPLINGMODE, i === \"ushort\" ? ee.TEXTURETYPE_UNSIGNED_BYTE : ee.TEXTURETYPE_FLOAT)), this._cachedDepthImageTexture._texture = c;\n }\n /**\n * Extends the session init object if needed\n * @returns augmentation object for the xr session init object.\n */\n getXRSessionInitExtension() {\n const e = this.options.usagePreference != null && this.options.usagePreference.length !== 0, t = this.options.dataFormatPreference != null && this.options.dataFormatPreference.length !== 0;\n return new Promise((i) => {\n if (e && t) {\n const s = this.options.usagePreference.map((n) => {\n switch (n) {\n case \"cpu\":\n return \"cpu-optimized\";\n case \"gpu\":\n return \"gpu-optimized\";\n }\n }), r = this.options.dataFormatPreference.map((n) => {\n switch (n) {\n case \"ushort\":\n return \"luminance-alpha\";\n case \"float\":\n return \"float32\";\n }\n });\n i({\n depthSensing: {\n usagePreference: s,\n dataFormatPreference: r\n }\n });\n } else\n i({});\n });\n }\n}\nVh.Name = Tt.DEPTH_SENSING;\nVh.Version = 1;\nRi.AddWebXRFeature(Vh.Name, (a, e) => () => new Vh(a, e), Vh.Version, !1);\nconst PH = \"velocityPixelShader\", MH = `precision highp float;\n#define CUSTOM_FRAGMENT_BEGIN\nvarying vec4 clipPos;varying vec4 previousClipPos;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nhighp vec4 motionVector=( clipPos/clipPos.w-previousClipPos/previousClipPos.w );gl_FragColor=motionVector;\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\nz.ShadersStore[PH] = MH;\nconst DH = \"velocityVertexShader\", OH = `#define CUSTOM_VERTEX_BEGIN\n#define VELOCITY\nattribute vec3 position;\n#include\nuniform mat4 viewProjection;uniform mat4 previousViewProjection;\n#ifdef MULTIVIEW\nuniform mat4 viewProjectionR;uniform mat4 previousViewProjectionR;\n#endif\nvarying vec4 clipPos;varying vec4 previousClipPos;\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvec3 positionUpdated=position;\n#include\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);vec4 previousWorldPos=finalPreviousWorld*vec4(positionUpdated,1.0);\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR==0u) {clipPos=viewProjection*worldPos;previousClipPos=previousViewProjection*previousWorldPos;gl_Position=clipPos;} else {clipPos=viewProjectionR*worldPos;previousClipPos=previousViewProjectionR*previousWorldPos;gl_Position=clipPos;}\n#elif\nclipPos=viewProjection*worldPos;previousClipPos=previousViewProjection*previousWorldPos;gl_Position=clipPos;\n#endif\n#define CUSTOM_VERTEX_MAIN_END\n}`;\nz.ShadersStore[DH] = OH;\nclass dI extends Ii {\n /**\n * Creates a Space Warp render target\n * @param motionVectorTexture WebGLTexture provided by WebGLSubImage\n * @param depthStencilTexture WebGLTexture provided by WebGLSubImage\n * @param scene scene used with the render target\n * @param size the size of the render target (used for each view)\n */\n constructor(e, t, i, s = 512) {\n super(\"spacewarp rtt\", s, i, !1, !0, 2, !1, void 0, !1, !1, !0, void 0, !0), this._originalPairing = [], this._previousWorldMatrices = [], this._previousTransforms = [O.Identity(), O.Identity()], this._renderTarget = this.getScene().getEngine().createMultiviewRenderTargetTexture(this.getRenderWidth(), this.getRenderHeight(), e, t), this._renderTarget._disposeOnlyFramebuffers = !0, this._texture = this._renderTarget.texture, this._texture.isMultiview = !0, this._texture.format = 5, i && (this._velocityMaterial = new Or(\"velocity shader material\", i, {\n vertex: \"velocity\",\n fragment: \"velocity\"\n }, {\n uniforms: [\"world\", \"previousWorld\", \"viewProjection\", \"viewProjectionR\", \"previousViewProjection\", \"previousViewProjectionR\"]\n }), this._velocityMaterial._materialHelperNeedsPreviousMatrices = !0, this._velocityMaterial.onBindObservable.add((r) => {\n this._previousWorldMatrices[r.uniqueId] = this._previousWorldMatrices[r.uniqueId] || r.getWorldMatrix(), this._velocityMaterial.getEffect().setMatrix(\"previousWorld\", this._previousWorldMatrices[r.uniqueId]), this._previousWorldMatrices[r.uniqueId] = r.getWorldMatrix(), this._velocityMaterial.getEffect().setMatrix(\"previousViewProjection\", this._previousTransforms[0]), this._velocityMaterial.getEffect().setMatrix(\"previousViewProjectionR\", this._previousTransforms[1]), this._previousTransforms[0].copyFrom(i.getTransformMatrix()), this._previousTransforms[1].copyFrom(i._transformMatrixR);\n }), this._velocityMaterial.freeze());\n }\n render(e = !1, t = !1) {\n this._originalPairing.length = 0;\n const i = this.getScene();\n i && this._velocityMaterial && i.getActiveMeshes().forEach((s) => {\n this._originalPairing.push([s, s.material]), s.material = this._velocityMaterial;\n }), super.render(e, t), this._originalPairing.forEach((s) => {\n s[0].material = s[1];\n });\n }\n /**\n * @internal\n */\n _bindFrameBuffer() {\n this._renderTarget && this.getScene().getEngine().bindSpaceWarpFramebuffer(this._renderTarget);\n }\n /**\n * Gets the number of views the corresponding to the texture (eg. a SpaceWarpRenderTarget will have > 1)\n * @returns the view count\n */\n getViewCount() {\n return 2;\n }\n dispose() {\n super.dispose(), this._velocityMaterial.dispose(), this._previousTransforms.length = 0, this._previousWorldMatrices.length = 0, this._originalPairing.length = 0;\n }\n}\nclass fI {\n constructor(e, t, i) {\n this._scene = e, this._xrSessionManager = t, this._xrWebGLBinding = i, this._lastSubImages = /* @__PURE__ */ new Map(), this._renderTargetTextures = /* @__PURE__ */ new Map(), this._engine = e.getEngine();\n }\n _getSubImageForView(e) {\n const t = this._xrSessionManager._getBaseLayerWrapper();\n if (!t)\n throw new Error(\"For Space Warp, the base layer should be a WebXR Projection Layer.\");\n if (t.layerType !== \"XRProjectionLayer\")\n throw new Error('For Space Warp, the base layer type should \"XRProjectionLayer\".');\n const i = t.layer;\n return this._xrWebGLBinding.getViewSubImage(i, e);\n }\n _setViewportForSubImage(e, t) {\n e.x = 0, e.y = 0, e.width = t.motionVectorTextureWidth, e.height = t.motionVectorTextureHeight;\n }\n _createRenderTargetTexture(e, t, i, s, r) {\n if (!this._engine)\n throw new Error(\"Engine is disposed\");\n const n = { width: e, height: t }, o = new dI(s, r, this._scene, n), l = o.renderTarget;\n return i && (l._framebuffer = i), l._colorTextureArray = s, l._depthStencilTextureArray = r, o.disableRescaling(), o.renderListPredicate = () => !0, o;\n }\n _getRenderTargetForSubImage(e, t) {\n const i = this._lastSubImages.get(t);\n let s = this._renderTargetTextures.get(t.eye);\n const r = e.motionVectorTextureWidth, n = e.motionVectorTextureHeight;\n return (!s || (i == null ? void 0 : i.textureWidth) !== r || (i == null ? void 0 : i.textureHeight) != n) && (s = this._createRenderTargetTexture(r, n, null, e.motionVectorTexture, e.depthStencilTexture), this._renderTargetTextures.set(t.eye, s), this._framebufferDimensions = {\n framebufferWidth: r,\n framebufferHeight: n\n }), this._lastSubImages.set(t, e), s;\n }\n trySetViewportForView(e, t) {\n const i = this._lastSubImages.get(t) || this._getSubImageForView(t);\n return i ? (this._setViewportForSubImage(e, i), !0) : !1;\n }\n /**\n * Access the motion vector (which will turn on Space Warp)\n * @param view the view to access the motion vector texture for\n */\n accessMotionVector(e) {\n const t = this._getSubImageForView(e);\n t && (t.motionVectorTexture, t.depthStencilTexture);\n }\n getRenderTargetTextureForEye(e) {\n return null;\n }\n getRenderTargetTextureForView(e) {\n const t = this._getSubImageForView(e);\n return t ? this._getRenderTargetForSubImage(t, e) : null;\n }\n dispose() {\n this._renderTargetTextures.forEach((e) => e.dispose()), this._renderTargetTextures.clear();\n }\n}\nclass Uh extends Is {\n /**\n * constructor for the space warp feature\n * @param _xrSessionManager the xr session manager for this feature\n */\n constructor(e) {\n super(e), this._onAfterRenderObserver = null, this.dependsOn = [Tt.LAYERS], this.xrNativeFeatureName = \"space-warp\", this._xrSessionManager.scene.needsPreviousWorldMatrices = !0;\n }\n /**\n * Attach this feature.\n * Will usually be called by the features manager.\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach())\n return !1;\n const e = this._xrSessionManager.scene.getEngine();\n return this._glContext = e._gl, this._xrWebGLBinding = new XRWebGLBinding(this._xrSessionManager.session, this._glContext), this.spaceWarpRTTProvider = new fI(this._xrSessionManager.scene, this._xrSessionManager, this._xrWebGLBinding), this._onAfterRenderObserver = this._xrSessionManager.scene.onAfterRenderObservable.add(() => this._onAfterRender()), !0;\n }\n detach() {\n return this._xrSessionManager.scene.onAfterRenderObservable.remove(this._onAfterRenderObserver), super.detach();\n }\n _onAfterRender() {\n this.attached && this._renderTargetTexture && this._renderTargetTexture.render(!1, !1);\n }\n isCompatible() {\n return this._xrSessionManager.scene.getEngine().getCaps().colorBufferHalfFloat || !1;\n }\n dispose() {\n super.dispose();\n }\n _onXRFrame(e) {\n const t = e.getViewerPose(this._xrSessionManager.referenceSpace);\n if (!t)\n return;\n const i = t.views[0];\n this._renderTargetTexture = this._renderTargetTexture || this.spaceWarpRTTProvider.getRenderTargetTextureForView(i), this.spaceWarpRTTProvider.accessMotionVector(i);\n }\n}\nUh.Name = Tt.SPACE_WARP;\nUh.Version = 1;\nRi.AddWebXRFeature(Uh.Name, (a) => () => new Uh(a), Uh.Version, !1);\nclass kh extends Is {\n /**\n * Creates a new instance of the feature\n * @param _xrSessionManager the WebXRSessionManager\n * @param options options for the Feature\n */\n constructor(e, t = {}) {\n super(e), this.options = t, this._cachedInternalTextures = [], this.texturesData = [], this.viewIndex = [], this.cameraIntrinsics = [], this.onTexturesUpdatedObservable = new G(), this.xrNativeFeatureName = \"camera-access\";\n }\n attach(e) {\n return super.attach(e) ? (this._glContext = this._xrSessionManager.scene.getEngine()._gl, this._glBinding = new XRWebGLBinding(this._xrSessionManager.session, this._glContext), !0) : !1;\n }\n detach() {\n return super.detach() ? (this._glBinding = void 0, this.options.doNotDisposeOnDetach || (this._cachedInternalTextures.forEach((e) => e.dispose()), this.texturesData.forEach((e) => e.dispose()), this._cachedInternalTextures.length = 0, this.texturesData.length = 0, this.cameraIntrinsics.length = 0), !0) : !1;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose(), this.onTexturesUpdatedObservable.clear();\n }\n /**\n * @see https://github.com/immersive-web/raw-camera-access/blob/main/explainer.md\n * @param view the XRView to update\n * @param index the index of the view in the views array\n */\n _updateCameraIntrinsics(e, t) {\n const i = {\n width: e.camera.width,\n height: e.camera.height,\n x: 0,\n y: 0\n }, s = e.projectionMatrix, r = (1 - s[8]) * i.width / 2 + i.x, n = (1 - s[9]) * i.height / 2 + i.y, o = i.width / 2 * s[0], l = i.height / 2 * s[5], h = i.width / 2 * s[4];\n this.cameraIntrinsics[t] = {\n u0: r,\n v0: n,\n ax: o,\n ay: l,\n gamma: h,\n width: i.width,\n height: i.height,\n viewportX: i.x,\n viewportY: i.y\n };\n }\n _updateInternalTextures(e, t = 0) {\n var s, r;\n if (!e.camera)\n return !1;\n this.viewIndex[t] = e.eye;\n const i = (s = this._glBinding) == null ? void 0 : s.getCameraImage(e.camera);\n if (this._cachedInternalTextures[t])\n (r = this._cachedInternalTextures[t]._hardwareTexture) == null || r.set(i);\n else {\n const n = new Nt(this._xrSessionManager.scene.getEngine(), 0, !0);\n n.invertY = !1, n.format = 5, n.generateMipMaps = !0, n.type = 1, n.samplingMode = 3, n.width = e.camera.width, n.height = e.camera.height, n._cachedWrapU = 1, n._cachedWrapV = 1, n._hardwareTexture = new pc(i, this._glContext), this._cachedInternalTextures[t] = n;\n const o = new Mt(this._xrSessionManager.scene);\n o.name = `WebXR Raw Camera Access (${t})`, o._texture = this._cachedInternalTextures[t], this.texturesData[t] = o, this._updateCameraIntrinsics(e, t);\n }\n return this._cachedInternalTextures[t].isReady = !0, !0;\n }\n _onXRFrame(e) {\n const t = this._xrSessionManager.referenceSpace, i = e.getViewerPose(t);\n if (!i || !i.views)\n return;\n let s = !0;\n i.views.forEach((r, n) => {\n s = s && this._updateInternalTextures(r, n);\n }), s && this.onTexturesUpdatedObservable.notifyObservers(this.texturesData);\n }\n}\nkh.Name = Tt.RAW_CAMERA_ACCESS;\nkh.Version = 1;\nRi.AddWebXRFeature(kh.Name, (a, e) => () => new kh(a, e), kh.Version, !1);\nclass pI extends zl {\n /**\n * Create a new hand controller object, without loading a controller model\n * @param scene the scene to use to create this controller\n * @param gamepadObject the corresponding gamepad object\n * @param handedness the handedness of the controller\n */\n constructor(e, t, i) {\n super(e, wH[i], t, i, !0), this.profileId = \"generic-hand-select-grasp\";\n }\n _getFilenameAndPath() {\n return {\n filename: \"generic.babylon\",\n path: \"https://controllers.babylonjs.com/generic/\"\n };\n }\n _getModelLoadingConstraints() {\n return !0;\n }\n _processLoadedModel(e) {\n }\n _setRootMesh(e) {\n }\n _updateModel() {\n }\n}\nSs.RegisterController(\"generic-hand-select-grasp\", (a, e) => new pI(e, a.gamepad, a.handedness));\nconst wH = {\n left: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0\n },\n rootNodeName: \"xr-standard-trigger\",\n visualResponses: {}\n },\n grasp: {\n type: \"trigger\",\n gamepadIndices: {\n button: 4\n },\n rootNodeName: \"grasp\",\n visualResponses: {}\n }\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"generic-hand-select-grasp-left\",\n assetPath: \"left.glb\"\n },\n right: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0\n },\n rootNodeName: \"xr-standard-trigger\",\n visualResponses: {}\n },\n grasp: {\n type: \"trigger\",\n gamepadIndices: {\n button: 4\n },\n rootNodeName: \"grasp\",\n visualResponses: {}\n }\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"generic-hand-select-grasp-right\",\n assetPath: \"right.glb\"\n },\n none: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0\n },\n rootNodeName: \"xr-standard-trigger\",\n visualResponses: {}\n },\n grasp: {\n type: \"trigger\",\n gamepadIndices: {\n button: 4\n },\n rootNodeName: \"grasp\",\n visualResponses: {}\n }\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"generic-hand-select-grasp-none\",\n assetPath: \"none.glb\"\n }\n};\nclass ao extends zl {\n constructor(e, t, i) {\n super(e, NH[\"left-right\"], t, i), this._mapping = {\n defaultButton: {\n valueNodeName: \"VALUE\",\n unpressedNodeName: \"UNPRESSED\",\n pressedNodeName: \"PRESSED\"\n },\n defaultAxis: {\n valueNodeName: \"VALUE\",\n minNodeName: \"MIN\",\n maxNodeName: \"MAX\"\n },\n buttons: {\n \"xr-standard-trigger\": {\n rootNodeName: \"SELECT\",\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"]\n },\n \"xr-standard-squeeze\": {\n rootNodeName: \"GRASP\",\n componentProperty: \"state\",\n states: [\"pressed\"]\n },\n \"xr-standard-touchpad\": {\n rootNodeName: \"TOUCHPAD_PRESS\",\n labelAnchorNodeName: \"squeeze-label\",\n touchPointNodeName: \"TOUCH\"\n // TODO - use this for visual feedback\n },\n \"xr-standard-thumbstick\": {\n rootNodeName: \"THUMBSTICK_PRESS\",\n componentProperty: \"state\",\n states: [\"pressed\"]\n }\n },\n axes: {\n \"xr-standard-touchpad\": {\n \"x-axis\": {\n rootNodeName: \"TOUCHPAD_TOUCH_X\"\n },\n \"y-axis\": {\n rootNodeName: \"TOUCHPAD_TOUCH_Y\"\n }\n },\n \"xr-standard-thumbstick\": {\n \"x-axis\": {\n rootNodeName: \"THUMBSTICK_X\"\n },\n \"y-axis\": {\n rootNodeName: \"THUMBSTICK_Y\"\n }\n }\n }\n }, this.profileId = \"microsoft-mixed-reality\";\n }\n _getFilenameAndPath() {\n let e = \"\";\n this.handedness === \"left\" ? e = ao.MODEL_LEFT_FILENAME : e = ao.MODEL_RIGHT_FILENAME;\n const i = ao.MODEL_BASE_URL + \"default\" + \"/\";\n return {\n filename: e,\n path: i\n };\n }\n _getModelLoadingConstraints() {\n const e = st.IsPluginForExtensionAvailable(\".glb\");\n return e || L.Warn(\"glTF / glb loaded was not registered, using generic controller instead\"), e;\n }\n _processLoadedModel(e) {\n this.rootMesh && (this.getComponentIds().forEach((t, i) => {\n if (!this.disableAnimation && t && this.rootMesh) {\n const s = this._mapping.buttons[t], r = s.rootNodeName;\n if (!r) {\n L.Log(\"Skipping unknown button at index: \" + i + \" with mapped name: \" + t);\n return;\n }\n const n = this._getChildByName(this.rootMesh, r);\n if (!n) {\n L.Warn(\"Missing button mesh with name: \" + r);\n return;\n }\n if (s.valueMesh = this._getImmediateChildByName(n, this._mapping.defaultButton.valueNodeName), s.pressedMesh = this._getImmediateChildByName(n, this._mapping.defaultButton.pressedNodeName), s.unpressedMesh = this._getImmediateChildByName(n, this._mapping.defaultButton.unpressedNodeName), s.valueMesh && s.pressedMesh && s.unpressedMesh) {\n const o = this.getComponent(t);\n o && o.onButtonStateChangedObservable.add((l) => {\n this._lerpTransform(s, l.value);\n }, void 0, !0);\n } else\n L.Warn(\"Missing button submesh under mesh with name: \" + r);\n }\n }), this.getComponentIds().forEach((t) => {\n const i = this.getComponent(t);\n i.isAxes() && [\"x-axis\", \"y-axis\"].forEach((s) => {\n if (!this.rootMesh)\n return;\n const r = this._mapping.axes[t][s], n = this._getChildByName(this.rootMesh, r.rootNodeName);\n if (!n) {\n L.Warn(\"Missing axis mesh with name: \" + r.rootNodeName);\n return;\n }\n r.valueMesh = this._getImmediateChildByName(n, this._mapping.defaultAxis.valueNodeName), r.minMesh = this._getImmediateChildByName(n, this._mapping.defaultAxis.minNodeName), r.maxMesh = this._getImmediateChildByName(n, this._mapping.defaultAxis.maxNodeName), r.valueMesh && r.minMesh && r.maxMesh ? i && i.onAxisValueChangedObservable.add((o) => {\n const l = s === \"x-axis\" ? o.x : o.y;\n this._lerpTransform(r, l, !0);\n }, void 0, !0) : L.Warn(\"Missing axis submesh under mesh with name: \" + r.rootNodeName);\n });\n }));\n }\n _setRootMesh(e) {\n this.rootMesh = new H(this.profileId + \" \" + this.handedness, this.scene), this.rootMesh.isPickable = !1;\n let t;\n for (let i = 0; i < e.length; i++) {\n const s = e[i];\n s.isPickable = !1, s.parent || (t = s);\n }\n t && t.setParent(this.rootMesh), this.scene.useRightHandedSystem || (this.rootMesh.rotationQuaternion = se.FromEulerAngles(0, Math.PI, 0));\n }\n _updateModel() {\n }\n}\nao.MODEL_BASE_URL = \"https://controllers.babylonjs.com/microsoft/\";\nao.MODEL_LEFT_FILENAME = \"left.glb\";\nao.MODEL_RIGHT_FILENAME = \"right.glb\";\nSs.RegisterController(\"windows-mixed-reality\", (a, e) => new ao(e, a.gamepad, a.handedness));\nconst NH = {\n left: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {\n xr_standard_trigger_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_trigger_pressed_value\",\n minNodeName: \"xr_standard_trigger_pressed_min\",\n maxNodeName: \"xr_standard_trigger_pressed_max\"\n }\n }\n },\n \"xr-standard-squeeze\": {\n type: \"squeeze\",\n gamepadIndices: {\n button: 1\n },\n rootNodeName: \"xr_standard_squeeze\",\n visualResponses: {\n xr_standard_squeeze_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_squeeze_pressed_value\",\n minNodeName: \"xr_standard_squeeze_pressed_min\",\n maxNodeName: \"xr_standard_squeeze_pressed_max\"\n }\n }\n },\n \"xr-standard-touchpad\": {\n type: \"touchpad\",\n gamepadIndices: {\n button: 2,\n xAxis: 0,\n yAxis: 1\n },\n rootNodeName: \"xr_standard_touchpad\",\n visualResponses: {\n xr_standard_touchpad_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_pressed_value\",\n minNodeName: \"xr_standard_touchpad_pressed_min\",\n maxNodeName: \"xr_standard_touchpad_pressed_max\"\n },\n xr_standard_touchpad_xaxis_pressed: {\n componentProperty: \"xAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_xaxis_pressed_value\",\n minNodeName: \"xr_standard_touchpad_xaxis_pressed_min\",\n maxNodeName: \"xr_standard_touchpad_xaxis_pressed_max\"\n },\n xr_standard_touchpad_yaxis_pressed: {\n componentProperty: \"yAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_yaxis_pressed_value\",\n minNodeName: \"xr_standard_touchpad_yaxis_pressed_min\",\n maxNodeName: \"xr_standard_touchpad_yaxis_pressed_max\"\n },\n xr_standard_touchpad_xaxis_touched: {\n componentProperty: \"xAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_xaxis_touched_value\",\n minNodeName: \"xr_standard_touchpad_xaxis_touched_min\",\n maxNodeName: \"xr_standard_touchpad_xaxis_touched_max\"\n },\n xr_standard_touchpad_yaxis_touched: {\n componentProperty: \"yAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_yaxis_touched_value\",\n minNodeName: \"xr_standard_touchpad_yaxis_touched_min\",\n maxNodeName: \"xr_standard_touchpad_yaxis_touched_max\"\n },\n xr_standard_touchpad_axes_touched: {\n componentProperty: \"state\",\n states: [\"touched\", \"pressed\"],\n valueNodeProperty: \"visibility\",\n valueNodeName: \"xr_standard_touchpad_axes_touched_value\"\n }\n },\n touchPointNodeName: \"xr_standard_touchpad_axes_touched_value\"\n },\n \"xr-standard-thumbstick\": {\n type: \"thumbstick\",\n gamepadIndices: {\n button: 3,\n xAxis: 2,\n yAxis: 3\n },\n rootNodeName: \"xr_standard_thumbstick\",\n visualResponses: {\n xr_standard_thumbstick_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_thumbstick_pressed_value\",\n minNodeName: \"xr_standard_thumbstick_pressed_min\",\n maxNodeName: \"xr_standard_thumbstick_pressed_max\"\n },\n xr_standard_thumbstick_xaxis_pressed: {\n componentProperty: \"xAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_thumbstick_xaxis_pressed_value\",\n minNodeName: \"xr_standard_thumbstick_xaxis_pressed_min\",\n maxNodeName: \"xr_standard_thumbstick_xaxis_pressed_max\"\n },\n xr_standard_thumbstick_yaxis_pressed: {\n componentProperty: \"yAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_thumbstick_yaxis_pressed_value\",\n minNodeName: \"xr_standard_thumbstick_yaxis_pressed_min\",\n maxNodeName: \"xr_standard_thumbstick_yaxis_pressed_max\"\n }\n }\n }\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"microsoft-mixed-reality-left\",\n assetPath: \"left.glb\"\n },\n right: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {\n xr_standard_trigger_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_trigger_pressed_value\",\n minNodeName: \"xr_standard_trigger_pressed_min\",\n maxNodeName: \"xr_standard_trigger_pressed_max\"\n }\n }\n },\n \"xr-standard-squeeze\": {\n type: \"squeeze\",\n gamepadIndices: {\n button: 1\n },\n rootNodeName: \"xr_standard_squeeze\",\n visualResponses: {\n xr_standard_squeeze_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_squeeze_pressed_value\",\n minNodeName: \"xr_standard_squeeze_pressed_min\",\n maxNodeName: \"xr_standard_squeeze_pressed_max\"\n }\n }\n },\n \"xr-standard-touchpad\": {\n type: \"touchpad\",\n gamepadIndices: {\n button: 2,\n xAxis: 0,\n yAxis: 1\n },\n rootNodeName: \"xr_standard_touchpad\",\n visualResponses: {\n xr_standard_touchpad_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_pressed_value\",\n minNodeName: \"xr_standard_touchpad_pressed_min\",\n maxNodeName: \"xr_standard_touchpad_pressed_max\"\n },\n xr_standard_touchpad_xaxis_pressed: {\n componentProperty: \"xAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_xaxis_pressed_value\",\n minNodeName: \"xr_standard_touchpad_xaxis_pressed_min\",\n maxNodeName: \"xr_standard_touchpad_xaxis_pressed_max\"\n },\n xr_standard_touchpad_yaxis_pressed: {\n componentProperty: \"yAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_yaxis_pressed_value\",\n minNodeName: \"xr_standard_touchpad_yaxis_pressed_min\",\n maxNodeName: \"xr_standard_touchpad_yaxis_pressed_max\"\n },\n xr_standard_touchpad_xaxis_touched: {\n componentProperty: \"xAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_xaxis_touched_value\",\n minNodeName: \"xr_standard_touchpad_xaxis_touched_min\",\n maxNodeName: \"xr_standard_touchpad_xaxis_touched_max\"\n },\n xr_standard_touchpad_yaxis_touched: {\n componentProperty: \"yAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_yaxis_touched_value\",\n minNodeName: \"xr_standard_touchpad_yaxis_touched_min\",\n maxNodeName: \"xr_standard_touchpad_yaxis_touched_max\"\n },\n xr_standard_touchpad_axes_touched: {\n componentProperty: \"state\",\n states: [\"touched\", \"pressed\"],\n valueNodeProperty: \"visibility\",\n valueNodeName: \"xr_standard_touchpad_axes_touched_value\"\n }\n },\n touchPointNodeName: \"xr_standard_touchpad_axes_touched_value\"\n },\n \"xr-standard-thumbstick\": {\n type: \"thumbstick\",\n gamepadIndices: {\n button: 3,\n xAxis: 2,\n yAxis: 3\n },\n rootNodeName: \"xr_standard_thumbstick\",\n visualResponses: {\n xr_standard_thumbstick_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_thumbstick_pressed_value\",\n minNodeName: \"xr_standard_thumbstick_pressed_min\",\n maxNodeName: \"xr_standard_thumbstick_pressed_max\"\n },\n xr_standard_thumbstick_xaxis_pressed: {\n componentProperty: \"xAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_thumbstick_xaxis_pressed_value\",\n minNodeName: \"xr_standard_thumbstick_xaxis_pressed_min\",\n maxNodeName: \"xr_standard_thumbstick_xaxis_pressed_max\"\n },\n xr_standard_thumbstick_yaxis_pressed: {\n componentProperty: \"yAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_thumbstick_yaxis_pressed_value\",\n minNodeName: \"xr_standard_thumbstick_yaxis_pressed_min\",\n maxNodeName: \"xr_standard_thumbstick_yaxis_pressed_max\"\n }\n }\n }\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"microsoft-mixed-reality-right\",\n assetPath: \"right.glb\"\n }\n};\nclass Nn extends zl {\n constructor(e, t, i, s = !1, r = !1) {\n super(e, FH[i], t, i), this._forceLegacyControllers = r, this.profileId = \"oculus-touch\";\n }\n _getFilenameAndPath() {\n let e = \"\";\n this.handedness === \"left\" ? e = Nn.MODEL_LEFT_FILENAME : e = Nn.MODEL_RIGHT_FILENAME;\n const t = this._isQuest() ? Nn.QUEST_MODEL_BASE_URL : Nn.MODEL_BASE_URL;\n return {\n filename: e,\n path: t\n };\n }\n _getModelLoadingConstraints() {\n return !0;\n }\n _processLoadedModel(e) {\n const t = this._isQuest(), i = this.handedness === \"right\" ? -1 : 1;\n this.getComponentIds().forEach((s) => {\n const r = s && this.getComponent(s);\n r && r.onButtonStateChangedObservable.add((n) => {\n if (!(!this.rootMesh || this.disableAnimation))\n switch (s) {\n case \"xr-standard-trigger\":\n t || (this._modelRootNode.getChildren()[3].rotation.x = -n.value * 0.2, this._modelRootNode.getChildren()[3].position.y = -n.value * 5e-3, this._modelRootNode.getChildren()[3].position.z = -n.value * 5e-3);\n return;\n case \"xr-standard-squeeze\":\n t || (this._modelRootNode.getChildren()[4].position.x = i * n.value * 35e-4);\n return;\n case \"xr-standard-thumbstick\":\n return;\n case \"a-button\":\n case \"x-button\":\n t || (n.pressed ? this._modelRootNode.getChildren()[1].position.y = -1e-3 : this._modelRootNode.getChildren()[1].position.y = 0);\n return;\n case \"b-button\":\n case \"y-button\":\n t || (n.pressed ? this._modelRootNode.getChildren()[2].position.y = -1e-3 : this._modelRootNode.getChildren()[2].position.y = 0);\n return;\n }\n }, void 0, !0);\n });\n }\n _setRootMesh(e) {\n this.rootMesh = new H(this.profileId + \" \" + this.handedness, this.scene), this.scene.useRightHandedSystem || (this.rootMesh.rotationQuaternion = se.FromEulerAngles(0, Math.PI, 0)), e.forEach((t) => {\n t.isPickable = !1;\n }), this._isQuest() ? this._modelRootNode = e[0] : (this._modelRootNode = e[1], this.rootMesh.position.y = 0.034, this.rootMesh.position.z = 0.052), this._modelRootNode.parent = this.rootMesh;\n }\n _updateModel() {\n }\n /**\n * Is this the new type of oculus touch. At the moment both have the same profile and it is impossible to differentiate\n * between the touch and touch 2.\n * @returns true if this is the new type of oculus touch controllers.\n */\n _isQuest() {\n return !!navigator.userAgent.match(/Quest/gi) && !this._forceLegacyControllers;\n }\n}\nNn.MODEL_BASE_URL = \"https://controllers.babylonjs.com/oculus/\";\nNn.MODEL_LEFT_FILENAME = \"left.babylon\";\nNn.MODEL_RIGHT_FILENAME = \"right.babylon\";\nNn.QUEST_MODEL_BASE_URL = \"https://controllers.babylonjs.com/oculusQuest/\";\nSs.RegisterController(\"oculus-touch\", (a, e) => new Nn(e, a.gamepad, a.handedness));\nSs.RegisterController(\"oculus-touch-legacy\", (a, e) => new Nn(e, a.gamepad, a.handedness, !0));\nconst FH = {\n left: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {}\n },\n \"xr-standard-squeeze\": {\n type: \"squeeze\",\n gamepadIndices: {\n button: 1\n },\n rootNodeName: \"xr_standard_squeeze\",\n visualResponses: {}\n },\n \"xr-standard-thumbstick\": {\n type: \"thumbstick\",\n gamepadIndices: {\n button: 3,\n xAxis: 2,\n yAxis: 3\n },\n rootNodeName: \"xr_standard_thumbstick\",\n visualResponses: {}\n },\n \"x-button\": {\n type: \"button\",\n gamepadIndices: {\n button: 4\n },\n rootNodeName: \"x_button\",\n visualResponses: {}\n },\n \"y-button\": {\n type: \"button\",\n gamepadIndices: {\n button: 5\n },\n rootNodeName: \"y_button\",\n visualResponses: {}\n },\n thumbrest: {\n type: \"button\",\n gamepadIndices: {\n button: 6\n },\n rootNodeName: \"thumbrest\",\n visualResponses: {}\n }\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"oculus-touch-v2-left\",\n assetPath: \"left.glb\"\n },\n right: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {}\n },\n \"xr-standard-squeeze\": {\n type: \"squeeze\",\n gamepadIndices: {\n button: 1\n },\n rootNodeName: \"xr_standard_squeeze\",\n visualResponses: {}\n },\n \"xr-standard-thumbstick\": {\n type: \"thumbstick\",\n gamepadIndices: {\n button: 3,\n xAxis: 2,\n yAxis: 3\n },\n rootNodeName: \"xr_standard_thumbstick\",\n visualResponses: {}\n },\n \"a-button\": {\n type: \"button\",\n gamepadIndices: {\n button: 4\n },\n rootNodeName: \"a_button\",\n visualResponses: {}\n },\n \"b-button\": {\n type: \"button\",\n gamepadIndices: {\n button: 5\n },\n rootNodeName: \"b_button\",\n visualResponses: {}\n },\n thumbrest: {\n type: \"button\",\n gamepadIndices: {\n button: 6\n },\n rootNodeName: \"thumbrest\",\n visualResponses: {}\n }\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"oculus-touch-v2-right\",\n assetPath: \"right.glb\"\n }\n};\nclass Ol extends zl {\n /**\n * Create a new Vive motion controller object\n * @param scene the scene to use to create this controller\n * @param gamepadObject the corresponding gamepad object\n * @param handedness the handedness of the controller\n */\n constructor(e, t, i) {\n super(e, LH[i], t, i), this.profileId = \"htc-vive\";\n }\n _getFilenameAndPath() {\n const e = Ol.MODEL_FILENAME, t = Ol.MODEL_BASE_URL;\n return {\n filename: e,\n path: t\n };\n }\n _getModelLoadingConstraints() {\n return !0;\n }\n _processLoadedModel(e) {\n this.getComponentIds().forEach((t) => {\n const i = t && this.getComponent(t);\n i && i.onButtonStateChangedObservable.add((s) => {\n if (!(!this.rootMesh || this.disableAnimation))\n switch (t) {\n case \"xr-standard-trigger\":\n this._modelRootNode.getChildren()[6].rotation.x = -s.value * 0.15;\n return;\n case \"xr-standard-touchpad\":\n return;\n case \"xr-standard-squeeze\":\n return;\n }\n }, void 0, !0);\n });\n }\n _setRootMesh(e) {\n this.rootMesh = new H(this.profileId + \" \" + this.handedness, this.scene), e.forEach((t) => {\n t.isPickable = !1;\n }), this._modelRootNode = e[1], this._modelRootNode.parent = this.rootMesh, this.scene.useRightHandedSystem || (this.rootMesh.rotationQuaternion = se.FromEulerAngles(0, Math.PI, 0));\n }\n _updateModel() {\n }\n}\nOl.MODEL_BASE_URL = \"https://controllers.babylonjs.com/vive/\";\nOl.MODEL_FILENAME = \"wand.babylon\";\nSs.RegisterController(\"htc-vive\", (a, e) => new Ol(e, a.gamepad, a.handedness));\nconst LH = {\n left: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {}\n },\n \"xr-standard-squeeze\": {\n type: \"squeeze\",\n gamepadIndices: {\n button: 1\n },\n rootNodeName: \"xr_standard_squeeze\",\n visualResponses: {}\n },\n \"xr-standard-touchpad\": {\n type: \"touchpad\",\n gamepadIndices: {\n button: 2,\n xAxis: 0,\n yAxis: 1\n },\n rootNodeName: \"xr_standard_touchpad\",\n visualResponses: {}\n },\n menu: {\n type: \"button\",\n gamepadIndices: {\n button: 4\n },\n rootNodeName: \"menu\",\n visualResponses: {}\n }\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"htc_vive_none\",\n assetPath: \"none.glb\"\n },\n right: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {}\n },\n \"xr-standard-squeeze\": {\n type: \"squeeze\",\n gamepadIndices: {\n button: 1\n },\n rootNodeName: \"xr_standard_squeeze\",\n visualResponses: {}\n },\n \"xr-standard-touchpad\": {\n type: \"touchpad\",\n gamepadIndices: {\n button: 2,\n xAxis: 0,\n yAxis: 1\n },\n rootNodeName: \"xr_standard_touchpad\",\n visualResponses: {}\n },\n menu: {\n type: \"button\",\n gamepadIndices: {\n button: 4\n },\n rootNodeName: \"menu\",\n visualResponses: {}\n }\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"htc_vive_none\",\n assetPath: \"none.glb\"\n },\n none: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {}\n },\n \"xr-standard-squeeze\": {\n type: \"squeeze\",\n gamepadIndices: {\n button: 1\n },\n rootNodeName: \"xr_standard_squeeze\",\n visualResponses: {}\n },\n \"xr-standard-touchpad\": {\n type: \"touchpad\",\n gamepadIndices: {\n button: 2,\n xAxis: 0,\n yAxis: 1\n },\n rootNodeName: \"xr_standard_touchpad\",\n visualResponses: {}\n },\n menu: {\n type: \"button\",\n gamepadIndices: {\n button: 4\n },\n rootNodeName: \"menu\",\n visualResponses: {}\n }\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"htc-vive-none\",\n assetPath: \"none.glb\"\n }\n};\nclass _I {\n get session() {\n return this._nativeImpl.session;\n }\n constructor(e) {\n this._nativeImpl = e, this._xrTransform = new XRRigidTransform(), this._xrPose = {\n transform: this._xrTransform,\n emulatedPosition: !1\n }, this._xrPoseVectorData = new Float32Array(8), this.fillPoses = this._nativeImpl.fillPoses.bind(this._nativeImpl), this.getViewerPose = this._nativeImpl.getViewerPose.bind(this._nativeImpl), this.getHitTestResults = this._nativeImpl.getHitTestResults.bind(this._nativeImpl), this.getHitTestResultsForTransientInput = () => {\n throw new Error(\"XRFrame.getHitTestResultsForTransientInput not supported on native.\");\n }, this.createAnchor = this._nativeImpl.createAnchor.bind(this._nativeImpl), this.getJointPose = this._nativeImpl.getJointPose.bind(this._nativeImpl), this.fillJointRadii = this._nativeImpl.fillJointRadii.bind(this._nativeImpl), this.getLightEstimate = () => {\n throw new Error(\"XRFrame.getLightEstimate not supported on native.\");\n }, this.getImageTrackingResults = () => this._nativeImpl._imageTrackingResults ?? [];\n }\n getPose(e, t) {\n if (!this._nativeImpl.getPoseData(e, t, this._xrPoseVectorData.buffer, this._xrTransform.matrix.buffer))\n return;\n const i = this._xrTransform.position;\n i.x = this._xrPoseVectorData[0], i.y = this._xrPoseVectorData[1], i.z = this._xrPoseVectorData[2], i.w = this._xrPoseVectorData[3];\n const s = this._xrTransform.orientation;\n return s.x = this._xrPoseVectorData[4], s.y = this._xrPoseVectorData[5], s.z = this._xrPoseVectorData[6], s.w = this._xrPoseVectorData[7], this._xrPose;\n }\n get trackedAnchors() {\n return this._nativeImpl.trackedAnchors;\n }\n get worldInformation() {\n return this._nativeImpl.worldInformation;\n }\n get detectedPlanes() {\n return this._nativeImpl.detectedPlanes;\n }\n get featurePointCloud() {\n return this._nativeImpl.featurePointCloud;\n }\n getDepthInformation(e) {\n throw new Error(\"This function is not available in Babylon Native\");\n }\n}\nSB(\"NativeXRFrame\", _I);\nconst BH = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n get HandPart() {\n return Lg;\n },\n IWebXRControllerPhysicsOptions: SH,\n NativeXRFrame: _I,\n NativeXRLayerRenderTargetTextureProvider: a0,\n NativeXRLayerWrapper: n0,\n NativeXRRenderTarget: o0,\n WebXRAbstractFeature: Is,\n WebXRAbstractMotionController: zl,\n WebXRAnchorSystem: Ah,\n WebXRBackgroundRemover: Ih,\n WebXRCamera: jh,\n WebXRControllerComponent: Wr,\n WebXRControllerMovement: no,\n WebXRControllerPhysics: Ph,\n WebXRControllerPointerSelection: ta,\n WebXRDefaultExperience: J_,\n WebXRDefaultExperienceOptions: kV,\n WebXRDepthSensing: Vh,\n WebXRDomOverlay: Nh,\n WebXREnterExitUI: Z_,\n WebXREnterExitUIButton: Z0,\n WebXREnterExitUIOptions: BV,\n WebXRExperienceHelper: vf,\n WebXREyeTracking: Lh,\n WebXRFeatureName: Tt,\n WebXRFeaturePointSystem: Dh,\n WebXRFeaturesManager: Ri,\n WebXRGenericHandController: pI,\n WebXRGenericTriggerMotionController: ec,\n WebXRHTCViveMotionController: Ol,\n WebXRHand: J0,\n get WebXRHandJoint() {\n return Bg;\n },\n WebXRHandTracking: jt,\n WebXRHitTest: Mh,\n WebXRHitTestLegacy: ro,\n WebXRImageTracking: wh,\n WebXRInput: Q0,\n WebXRInputSource: q0,\n WebXRLayerRenderTargetTextureProvider: b_,\n WebXRLayers: Bh,\n WebXRLightEstimation: Fh,\n WebXRManagedOutputCanvas: r0,\n WebXRManagedOutputCanvasOptions: xf,\n WebXRMeshDetector: Oh,\n WebXRMicrosoftMixedRealityController: ao,\n WebXRMotionControllerManager: Ss,\n WebXRMotionControllerTeleportation: Al,\n get WebXRNearControllerMode() {\n return Fg;\n },\n WebXRNearInteraction: ia,\n WebXROculusTouchMotionController: Nn,\n WebXRPlaneDetector: Rh,\n WebXRProfiledMotionController: K0,\n WebXRRawCameraAccess: kh,\n WebXRSessionManager: vc,\n WebXRSpaceWarp: Uh,\n WebXRSpaceWarpRenderTargetTextureProvider: fI,\n get WebXRState() {\n return Yg;\n },\n get WebXRTrackingState() {\n return jg;\n },\n WebXRWalkingLocomotion: Ep,\n XRSpaceWarpRenderTarget: dI\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar yy;\n(function(a) {\n a[a.Input = 0] = \"Input\", a[a.Output = 1] = \"Output\";\n})(yy || (yy = {}));\nclass Kg {\n constructor(e, t, i) {\n this._ownerBlock = i, this._connectedPoint = [], this.uniqueId = vo(), this.connectedPointIds = [], this.name = e, this._connectionType = t;\n }\n /**\n * The type of the connection\n */\n get connectionType() {\n return this._connectionType;\n }\n /**\n * @internal\n * Override this to indicate if a point can connect to more than one point.\n */\n _isSingularConnection() {\n return !0;\n }\n /**\n * Returns if a point is connected to any other point.\n * @returns boolean indicating if the point is connected.\n */\n isConnected() {\n return this._connectedPoint.length > 0;\n }\n /**\n * Connects two connections together.\n * @param point the connection to connect to.\n */\n connectTo(e) {\n if (this._connectionType === e._connectionType)\n throw new Error(`Cannot connect two points of type ${this.connectionType}`);\n if (this._isSingularConnection() && this._connectedPoint.length > 0 || e._isSingularConnection() && e._connectedPoint.length > 0)\n throw new Error(\"Max number of connections for point reached\");\n this._connectedPoint.push(e), e._connectedPoint.push(this);\n }\n /**\n * Saves the connection to a JSON object.\n * @param serializationObject the object to serialize to.\n */\n serialize(e = {}) {\n e.uniqueId = this.uniqueId, e.name = this.name, e._connectionType = this._connectionType, e.connectedPointIds = [], e.className = this.getClassName();\n for (const t of this._connectedPoint)\n e.connectedPointIds.push(t.uniqueId);\n }\n /**\n * @returns class name of the connection.\n */\n getClassName() {\n return \"FGConnection\";\n }\n /**\n * Deserialize from a object into this\n * @param serializationObject the object to deserialize from.\n */\n deserialize(e) {\n this.uniqueId = e.uniqueId, this.name = e.name, this._connectionType = e._connectionType, this.connectedPointIds = e.connectedPointIds;\n }\n /**\n * Parses a connection from an object\n * @param serializationObject the object to parse from.\n * @param ownerBlock the block that owns the connection.\n * @returns the parsed connection.\n */\n static Parse(e = {}, t) {\n const i = J.Instantiate(e.className), s = new i(e.name, e._connectionType, t);\n return s.deserialize(e), s;\n }\n}\nclass ji {\n constructor(e) {\n this.value = this._toInt(e);\n }\n /**\n * Converts a float to an integer.\n * @param n the float to convert\n * @returns the result of n | 0 - converting it to a int\n */\n _toInt(e) {\n return e | 0;\n }\n /**\n * Adds two integers together.\n * @param other the other integer to add\n * @returns a FlowGraphInteger with the result of the addition\n */\n add(e) {\n return new ji(this.value + e.value);\n }\n /**\n * Subtracts two integers.\n * @param other the other integer to subtract\n * @returns a FlowGraphInteger with the result of the subtraction\n */\n subtract(e) {\n return new ji(this.value - e.value);\n }\n /**\n * Multiplies two integers.\n * @param other the other integer to multiply\n * @returns a FlowGraphInteger with the result of the multiplication\n */\n multiply(e) {\n return new ji(Math.imul(this.value, e.value));\n }\n /**\n * Divides two integers.\n * @param other the other integer to divide\n * @returns a FlowGraphInteger with the result of the division\n */\n divide(e) {\n return new ji(this.value / e.value);\n }\n /**\n * The class name of this type.\n * @returns\n */\n getClassName() {\n return ji.ClassName;\n }\n /**\n * Compares two integers for equality.\n * @param other the other integer to compare\n * @returns\n */\n equals(e) {\n return this.value === e.value;\n }\n /**\n * Parses a FlowGraphInteger from a serialization object.\n * @param serializationObject\n * @returns\n */\n static Parse(e) {\n return new ji(e.value);\n }\n}\nji.ClassName = \"FlowGraphInteger\";\nU(\"FlowGraphInteger\", ji);\nclass jr {\n constructor(e, t) {\n this.typeName = e, this.defaultValue = t;\n }\n /**\n * Serializes this rich type into a serialization object.\n * @param serializationObject the object to serialize to\n */\n serialize(e) {\n e.typeName = this.typeName, e.defaultValue = this.defaultValue;\n }\n /**\n * Parses a rich type from a serialization object.\n * @param serializationObject a serialization object\n * @returns the parsed rich type\n */\n static Parse(e) {\n return new jr(e.typeName, e.defaultValue);\n }\n}\nconst Oe = new jr(\"any\", void 0), VH = new jr(\"string\", \"\"), hi = new jr(\"number\", 0), Ws = new jr(\"boolean\", !1), qg = new jr(\"Vector2\", Q.Zero()), oo = new jr(\"Vector3\", g.Zero()), UH = new jr(\"Vector4\", Ne.Zero()), Ko = new jr(\"Matrix\", O.Identity()), kH = new jr(\"Color3\", re.Black()), GH = new jr(\"Color4\", new Ce(0, 0, 0, 0)), zH = new jr(\"Quaternion\", se.Identity()), Ki = new jr(\"FlowGraphInteger\", new ji(0));\nfunction WH(a) {\n switch (typeof a) {\n case \"string\":\n return VH;\n case \"number\":\n return hi;\n case \"boolean\":\n return Ws;\n case \"object\":\n return a instanceof Q ? qg : a instanceof g ? oo : a instanceof Ne ? UH : a instanceof re ? kH : a instanceof Ce ? GH : a instanceof se ? zH : a instanceof ji ? Ki : Oe;\n default:\n return Oe;\n }\n}\nclass Qg extends Kg {\n /**\n * Create a new data connection point.\n * @param name\n * @param connectionType\n * @param ownerBlock\n * @param richType\n */\n constructor(e, t, i, s) {\n super(e, t, i), this.richType = s;\n }\n /**\n * An output data block can connect to multiple input data blocks,\n * but an input data block can only connect to one output data block.\n * @returns true if the connection is singular\n */\n _isSingularConnection() {\n return this.connectionType === 0;\n }\n /**\n * Set the value of the connection in a specific context.\n * @param value the value to set\n * @param context the context to which the value is set\n */\n setValue(e, t) {\n t._setConnectionValue(this, e);\n }\n /**\n * Connect this point to another point.\n * @param point the point to connect to.\n */\n connectTo(e) {\n super.connectTo(e);\n }\n _getValueOrDefault(e) {\n return e._hasConnectionValue(this) ? e._getConnectionValue(this) : this.richType.defaultValue;\n }\n /**\n * Gets the value of the connection in a specific context.\n * @param context the context from which the value is retrieved\n * @returns the value of the connection\n */\n getValue(e) {\n return this.connectionType === 1 ? (e._notifyExecuteNode(this._ownerBlock), this._ownerBlock._updateOutputs(e), this._getValueOrDefault(e)) : this.isConnected() ? this._connectedPoint[0].getValue(e) : this._getValueOrDefault(e);\n }\n /**\n * @returns class name of the object.\n */\n getClassName() {\n return \"FGDataConnection\";\n }\n /**\n * Serializes this object.\n * @param serializationObject the object to serialize to\n */\n serialize(e = {}) {\n super.serialize(e), e.richType = {}, this.richType.serialize(e.richType);\n }\n /**\n * Parses a data connection from a serialized object.\n * @param serializationObject the object to parse from\n * @param ownerBlock the block that owns the connection\n * @returns the parsed connection\n */\n static Parse(e, t) {\n const i = Kg.Parse(e, t);\n return i.richType = jr.Parse(e.richType), i;\n }\n}\nU(\"FGDataConnection\", Qg);\nfunction mI(a) {\n return a === \"Mesh\" || a === \"AbstractMesh\" || a === \"GroundMesh\" || a === \"InstanceMesh\" || a === \"LinesMesh\" || a === \"GoldbergMesh\" || a === \"GreasedLineMesh\" || a === \"TrailMesh\";\n}\nfunction gI(a) {\n return a === \"Vector2\" || a === \"Vector3\" || a === \"Vector4\" || a === \"Quaternion\" || a === \"Color3\" || a === \"Color4\";\n}\nfunction HH(a, e) {\n if (a === \"Vector2\")\n return Q.FromArray(e);\n if (a === \"Vector3\")\n return g.FromArray(e);\n if (a === \"Vector4\")\n return Ne.FromArray(e);\n if (a === \"Quaternion\")\n return se.FromArray(e);\n if (a === \"Color3\")\n return new re(e[0], e[1], e[2]);\n if (a === \"Color4\")\n return new Ce(e[0], e[1], e[2], e[3]);\n throw new Error(`Unknown vector class name ${a}`);\n}\nfunction iT(a, e, t) {\n var s;\n const i = ((s = e == null ? void 0 : e.getClassName) == null ? void 0 : s.call(e)) ?? \"\";\n mI(i) ? t[a] = {\n name: e.name,\n className: i\n } : gI(i) ? t[a] = {\n value: e.asArray(),\n className: i\n } : t[a] = e;\n}\nfunction xm(a, e, t) {\n const i = e[a];\n let s;\n const r = i == null ? void 0 : i.className;\n return mI(r) ? s = t.getMeshByName(i.name) : gI(r) ? s = HH(r, i.value) : r === \"Matrix\" ? s = O.FromArray(i.value) : r === ji.ClassName ? s = ji.Parse(i) : i && i.value !== void 0 ? s = i.value : s = i, s;\n}\nfunction XH(a) {\n return a === \"FGSetPropertyBlock\" || a === \"FGGetPropertyBlock\" || a === \"FGPlayAnimationBlock\" || a === \"FGMeshPickEventBlock\";\n}\nclass ll {\n /** Constructor is protected so only subclasses can be instantiated\n * @param config optional configuration for this block\n */\n constructor(e) {\n var t;\n this.config = e, this.uniqueId = vo(), this.name = ((t = this.config) == null ? void 0 : t.name) ?? this.getClassName(), this.dataInputs = [], this.dataOutputs = [];\n }\n /**\n * @internal\n */\n _updateOutputs(e) {\n }\n /**\n * Registers a data input on the block.\n * @param name the name of the input\n * @param richType the type of the input\n * @returns the created connection\n */\n registerDataInput(e, t) {\n const i = new Qg(e, 0, this, t);\n return this.dataInputs.push(i), i;\n }\n /**\n * Registers a data output on the block.\n * @param name the name of the input\n * @param richType the type of the input\n * @returns the created connection\n */\n registerDataOutput(e, t) {\n const i = new Qg(e, 1, this, t);\n return this.dataOutputs.push(i), i;\n }\n /**\n * Given the name of a data input, returns the connection if it exists\n * @param name the name of the input\n * @returns the connection if it exists, undefined otherwise\n */\n getDataInput(e) {\n return this.dataInputs.find((t) => t.name === e);\n }\n /**\n * Given the name of a data output, returns the connection if it exists\n * @param name the name of the output\n * @returns the connection if it exists, undefined otherwise\n */\n getDataOutput(e) {\n return this.dataOutputs.find((t) => t.name === e);\n }\n /**\n * Serializes this block\n * @param serializationObject the object to serialize to\n * @param _valueSerializeFunction a function that serializes a specific value\n */\n serialize(e = {}, t = iT) {\n e.uniqueId = this.uniqueId, e.config = {}, this.config && (e.config.name = this.config.name), e.dataInputs = [], e.dataOutputs = [], e.className = this.getClassName();\n for (const i of this.dataInputs) {\n const s = {};\n i.serialize(s), e.dataInputs.push(s);\n }\n for (const i of this.dataOutputs) {\n const s = {};\n i.serialize(s), e.dataOutputs.push(s);\n }\n }\n /**\n * Gets the class name of this block\n * @returns the class name\n */\n getClassName() {\n return \"FGBlock\";\n }\n /**\n * Parses a block from a serialization object\n * @param serializationObject the object to parse from\n * @param parseOptions options for parsing the block\n * @returns the parsed block\n */\n static Parse(e, t) {\n const i = J.Instantiate(e.className), s = {}, r = t.valueParseFunction ?? xm;\n if (e.config)\n for (const o in e.config)\n s[o] = r(o, e.config, t.scene);\n XH(e.className) && (s.pathConverter = t.pathConverter);\n const n = new i(s);\n n.uniqueId = e.uniqueId;\n for (let o = 0; o < e.dataInputs.length; o++) {\n const l = n.getDataInput(e.dataInputs[o].name);\n if (l)\n l.deserialize(e.dataInputs[o]);\n else\n throw new Error(\"Could not find data input with name \" + e.dataInputs[o].name + \" in block \" + e.className);\n }\n for (let o = 0; o < e.dataOutputs.length; o++) {\n const l = n.getDataOutput(e.dataOutputs[o].name);\n if (l)\n l.deserialize(e.dataOutputs[o]);\n else\n throw new Error(\"Could not find data output with name \" + e.dataOutputs[o].name + \" in block \" + e.className);\n }\n return n.metadata = e.metadata, n.deserialize && n.deserialize(e), n;\n }\n}\nclass Zg extends Kg {\n /**\n * @internal\n * A signal input can be connected to more than one signal output,\n * but a signal output can only connect to one signal input\n * @returns true if the connection is singular\n */\n _isSingularConnection() {\n return this.connectionType === 1;\n }\n /**\n * @internal\n */\n _activateSignal(e) {\n var t;\n this.connectionType === 0 ? (e._notifyExecuteNode(this._ownerBlock), this._ownerBlock._execute(e, this), e._increaseExecutionId()) : (t = this._connectedPoint[0]) == null || t._activateSignal(e);\n }\n}\nU(\"FlowGraphSignalConnection\", Zg);\nclass Pa extends ll {\n constructor(e) {\n super(e), this.signalInputs = [], this.signalOutputs = [], this.in = this._registerSignalInput(\"in\");\n }\n _registerSignalInput(e) {\n const t = new Zg(e, 0, this);\n return this.signalInputs.push(t), t;\n }\n _registerSignalOutput(e) {\n const t = new Zg(e, 1, this);\n return this.signalOutputs.push(t), t;\n }\n /**\n * Given a name of a signal input, return that input if it exists\n * @param name the name of the input\n * @returns if the input exists, the input. Otherwise, undefined.\n */\n getSignalInput(e) {\n return this.signalInputs.find((t) => t.name === e);\n }\n /**\n * Given a name of a signal output, return that input if it exists\n * @param name the name of the input\n * @returns if the input exists, the input. Otherwise, undefined.\n */\n getSignalOutput(e) {\n return this.signalOutputs.find((t) => t.name === e);\n }\n /**\n * Serializes this block\n * @param serializationObject the object to serialize in\n */\n serialize(e = {}) {\n super.serialize(e), e.signalInputs = [], e.signalOutputs = [];\n for (const t of this.signalInputs) {\n const i = {};\n t.serialize(i), e.signalInputs.push(i);\n }\n for (const t of this.signalOutputs) {\n const i = {};\n t.serialize(i), e.signalOutputs.push(i);\n }\n }\n /**\n * Deserializes from an object\n * @param serializationObject the object to deserialize from\n */\n deserialize(e) {\n for (let t = 0; t < e.signalInputs.length; t++) {\n const i = this.getSignalInput(e.signalInputs[t].name);\n if (i)\n i.deserialize(e.signalInputs[t]);\n else\n throw new Error(\"Could not find signal input with name \" + e.signalInputs[t].name + \" in block \" + e.className);\n }\n for (let t = 0; t < e.signalOutputs.length; t++) {\n const i = this.getSignalOutput(e.signalOutputs[t].name);\n if (i)\n i.deserialize(e.signalOutputs[t]);\n else\n throw new Error(\"Could not find signal output with name \" + e.signalOutputs[t].name + \" in block \" + e.className);\n }\n }\n /**\n * @returns the class name\n */\n getClassName() {\n return \"FGExecutionBlock\";\n }\n}\nclass sT extends Pa {\n constructor(e) {\n super(e), this.out = this._registerSignalOutput(\"out\"), this.done = this._registerSignalOutput(\"done\");\n }\n /**\n * @internal\n * @param context\n */\n _startPendingTasks(e) {\n this._preparePendingTasks(e), e._addPendingBlock(this);\n }\n}\nclass Vf extends sT {\n /**\n * @internal\n */\n _execute(e) {\n e._notifyExecuteNode(this), this.out._activateSignal(e);\n }\n}\nclass Jg {\n constructor(e) {\n this.uniqueId = vo(), this._userVariables = {}, this._executionVariables = {}, this._connectionValues = {}, this._pendingBlocks = [], this._executionId = 0, this.onNodeExecutedObservable = new G(), this._configuration = e;\n }\n /**\n * Check if a user-defined variable is defined.\n * @param name the name of the variable\n * @returns true if the variable is defined\n */\n hasVariable(e) {\n return e in this._userVariables;\n }\n /**\n * Set a user-defined variable.\n * @param name the name of the variable\n * @param value the value of the variable\n */\n setVariable(e, t) {\n this._userVariables[e] = t;\n }\n /**\n * Get a user-defined variable.\n * @param name the name of the variable\n * @returns the value of the variable\n */\n getVariable(e) {\n return this._userVariables[e];\n }\n /**\n * Gets all user variables map\n */\n get userVariables() {\n return this._userVariables;\n }\n _getUniqueIdPrefixedName(e, t) {\n return `${e.uniqueId}_${t}`;\n }\n /**\n * Set an internal execution variable\n * @internal\n * @param name\n * @param value\n */\n _setExecutionVariable(e, t, i) {\n this._executionVariables[this._getUniqueIdPrefixedName(e, t)] = i;\n }\n /**\n * Get an internal execution variable\n * @internal\n * @param name\n * @returns\n */\n _getExecutionVariable(e, t, i) {\n return this._hasExecutionVariable(e, t) ? this._executionVariables[this._getUniqueIdPrefixedName(e, t)] : i;\n }\n /**\n * Delete an internal execution variable\n * @internal\n * @param block\n * @param name\n */\n _deleteExecutionVariable(e, t) {\n delete this._executionVariables[this._getUniqueIdPrefixedName(e, t)];\n }\n /**\n * Check if an internal execution variable is defined\n * @internal\n * @param block\n * @param name\n * @returns\n */\n _hasExecutionVariable(e, t) {\n return this._getUniqueIdPrefixedName(e, t) in this._executionVariables;\n }\n /**\n * Check if a connection value is defined\n * @internal\n * @param connectionPoint\n * @returns\n */\n _hasConnectionValue(e) {\n return e.uniqueId in this._connectionValues;\n }\n /**\n * Set a connection value\n * @internal\n * @param connectionPoint\n * @param value\n */\n _setConnectionValue(e, t) {\n this._connectionValues[e.uniqueId] = t;\n }\n /**\n * Get a connection value\n * @internal\n * @param connectionPoint\n * @returns\n */\n _getConnectionValue(e) {\n return this._connectionValues[e.uniqueId];\n }\n /**\n * Get the configuration\n * @internal\n * @param name\n * @param value\n */\n get configuration() {\n return this._configuration;\n }\n /**\n * Add a block to the list of blocks that have pending tasks.\n * @internal\n * @param block\n */\n _addPendingBlock(e) {\n this._pendingBlocks.push(e);\n }\n /**\n * Remove a block from the list of blocks that have pending tasks.\n * @internal\n * @param block\n */\n _removePendingBlock(e) {\n const t = this._pendingBlocks.indexOf(e);\n t !== -1 && this._pendingBlocks.splice(t, 1);\n }\n /**\n * Clear all pending blocks.\n * @internal\n */\n _clearPendingBlocks() {\n for (const e of this._pendingBlocks)\n e._cancelPendingTasks(this);\n this._pendingBlocks.length = 0;\n }\n /**\n * @internal\n * Function that notifies the node executed observable\n * @param node\n */\n _notifyExecuteNode(e) {\n this.onNodeExecutedObservable.notifyObservers(e);\n }\n /**\n * @internal\n */\n _increaseExecutionId() {\n this._executionId++;\n }\n /**\n * A monotonically increasing ID for each execution.\n * Incremented for every block executed.\n */\n get executionId() {\n return this._executionId;\n }\n /**\n * Serializes a context\n * @param serializationObject the object to write the values in\n * @param valueSerializationFunction a function to serialize complex values\n */\n serialize(e = {}, t = iT) {\n e.uniqueId = this.uniqueId, e._userVariables = {};\n for (const i in this._userVariables)\n t(i, this._userVariables[i], e._userVariables);\n e._connectionValues = {};\n for (const i in this._connectionValues)\n t(i, this._connectionValues[i], e._connectionValues);\n }\n /**\n * @returns the class name of the object.\n */\n getClassName() {\n return \"FGContext\";\n }\n /**\n * Parses a context\n * @param serializationObject the object containing the context serialization values\n * @param options the options for parsing the context\n * @returns\n */\n static Parse(e, t) {\n const i = t.graph.createContext(), s = t.valueParseFunction ?? xm;\n i.uniqueId = e.uniqueId;\n for (const r in e._userVariables) {\n const n = s(r, e._userVariables, i._configuration.scene);\n i._userVariables[r] = n;\n }\n for (const r in e._connectionValues) {\n const n = s(r, e._connectionValues, i._configuration.scene);\n i._connectionValues[r] = n;\n }\n return i;\n }\n}\ny([\n I()\n], Jg.prototype, \"uniqueId\", void 0);\nfunction rT(a, e) {\n return !!(a.parent && (a.parent === e || rT(a.parent, e)));\n}\nclass uc extends Vf {\n constructor(e) {\n super(e), this.config = e;\n }\n _getReferencedMesh() {\n const e = this.config.pathConverter.convert(this.config.path), t = e.info.getObject(e.object);\n if (!t || !(t instanceof Pt))\n throw new Error(\"Mesh pick event block requires a valid mesh\");\n return t;\n }\n /**\n * @internal\n */\n _preparePendingTasks(e) {\n let t = e._getExecutionVariable(this, \"meshPickObserver\");\n if (!t) {\n const i = this._getReferencedMesh();\n e._setExecutionVariable(this, \"mesh\", i), t = i.getScene().onPointerObservable.add((r) => {\n var n, o, l;\n r.type === Pe.POINTERPICK && ((n = r.pickInfo) != null && n.pickedMesh) && (((o = r.pickInfo) == null ? void 0 : o.pickedMesh) === i || rT((l = r.pickInfo) == null ? void 0 : l.pickedMesh, i)) && this._execute(e);\n });\n const s = i.onDisposeObservable.add(() => this._onDispose);\n e._setExecutionVariable(this, \"meshPickObserver\", t), e._setExecutionVariable(this, \"meshDisposeObserver\", s);\n }\n }\n _onDispose(e) {\n this._cancelPendingTasks(e), e._removePendingBlock(this);\n }\n /**\n * @internal\n */\n _cancelPendingTasks(e) {\n const t = e._getExecutionVariable(this, \"mesh\"), i = e._getExecutionVariable(this, \"meshPickObserver\"), s = e._getExecutionVariable(this, \"meshDisposeObserver\");\n t.getScene().onPointerObservable.remove(i), t.onDisposeObservable.remove(s), e._deleteExecutionVariable(this, \"mesh\"), e._deleteExecutionVariable(this, \"meshPickObserver\"), e._deleteExecutionVariable(this, \"meshDisposeObserver\");\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return uc.ClassName;\n }\n /**\n * Serializes the block to a JSON object.\n * @param serializationObject the object to serialize to.\n */\n serialize(e) {\n super.serialize(e), e.config.path = this.config.path;\n }\n}\nuc.ClassName = \"FGMeshPickEventBlock\";\nU(uc.ClassName, uc);\nvar Cy;\n(function(a) {\n a[a.Stopped = 0] = \"Stopped\", a[a.Started = 1] = \"Started\";\n})(Cy || (Cy = {}));\nclass Mu {\n /**\n * Construct a Flow Graph\n * @param params construction parameters. currently only the scene\n */\n constructor(e) {\n this._eventBlocks = [], this._executionContexts = [], this.state = 0, this._scene = e.scene, this._coordinator = e.coordinator, this._sceneDisposeObserver = this._scene.onDisposeObservable.add(() => this.dispose());\n }\n /**\n * Create a context. A context represents one self contained execution for the graph, with its own variables.\n * @returns the context, where you can get and set variables\n */\n createContext() {\n const e = new Jg({ scene: this._scene, coordinator: this._coordinator });\n return this._executionContexts.push(e), e;\n }\n /**\n * Returns the execution context at a given index\n * @param index the index of the context\n * @returns the execution context at that index\n */\n getContext(e) {\n return this._executionContexts[e];\n }\n /**\n * Add an event block. When the graph is started, it will start listening to events\n * from the block and execute the graph when they are triggered.\n * @param block the event block to be added\n */\n addEventBlock(e) {\n this._eventBlocks.push(e);\n }\n /**\n * Starts the flow graph. Initializes the event blocks and starts listening to events.\n */\n start() {\n if (this.state !== 1) {\n this.state = 1, this._executionContexts.length === 0 && this.createContext();\n for (const e of this._executionContexts) {\n const t = this._getContextualOrder();\n for (const i of t)\n i._startPendingTasks(e);\n }\n }\n }\n _getContextualOrder() {\n const e = [];\n for (const t of this._eventBlocks)\n if (t.getClassName() === uc.ClassName) {\n const i = t._getReferencedMesh();\n let s = 0;\n for (; s < e.length; s++) {\n const n = e[s]._getReferencedMesh();\n if (i && n && rT(i, n))\n break;\n }\n e.splice(s, 0, t);\n } else\n e.push(t);\n return e;\n }\n /**\n * Disposes of the flow graph. Cancels any pending tasks and removes all event listeners.\n */\n dispose() {\n if (this.state !== 0) {\n this.state = 0;\n for (const e of this._executionContexts)\n e._clearPendingBlocks();\n this._executionContexts.length = 0, this._eventBlocks.length = 0, this._scene.onDisposeObservable.remove(this._sceneDisposeObserver), this._sceneDisposeObserver = null;\n }\n }\n /**\n * Executes a function in all blocks of a flow graph, starting with the event blocks.\n * @param visitor the function to execute.\n */\n visitAllBlocks(e) {\n const t = [], i = /* @__PURE__ */ new Set();\n for (const s of this._eventBlocks)\n t.push(s), i.add(s.uniqueId);\n for (; t.length > 0; ) {\n const s = t.pop();\n e(s);\n for (const r of s.dataInputs)\n for (const n of r._connectedPoint)\n i.has(n._ownerBlock.uniqueId) || (t.push(n._ownerBlock), i.add(n._ownerBlock.uniqueId));\n if (s instanceof Pa)\n for (const r of s.signalOutputs)\n for (const n of r._connectedPoint)\n i.has(n._ownerBlock.uniqueId) || (t.push(n._ownerBlock), i.add(n._ownerBlock.uniqueId));\n }\n }\n /**\n * Serializes a graph\n * @param serializationObject the object to write the values in\n * @param valueSerializeFunction a function to serialize complex values\n */\n serialize(e = {}, t) {\n e.allBlocks = [], this.visitAllBlocks((i) => {\n const s = {};\n i.serialize(s), e.allBlocks.push(s);\n }), e.executionContexts = [];\n for (const i of this._executionContexts) {\n const s = {};\n i.serialize(s, t), e.executionContexts.push(s);\n }\n }\n /**\n * Given a list of blocks, find an output data connection that has a specific unique id\n * @param blocks a list of flow graph blocks\n * @param uniqueId the unique id of a connection\n * @returns the connection that has this unique id. throws an error if none was found\n */\n static GetDataOutConnectionByUniqueId(e, t) {\n for (const i of e)\n for (const s of i.dataOutputs)\n if (s.uniqueId === t)\n return s;\n throw new Error(\"Could not find data out connection with unique id \" + t);\n }\n /**\n * Given a list of blocks, find an input signal connection that has a specific unique id\n * @param blocks a list of flow graph blocks\n * @param uniqueId the unique id of a connection\n * @returns the connection that has this unique id. throws an error if none was found\n */\n static GetSignalInConnectionByUniqueId(e, t) {\n for (const i of e)\n if (i instanceof Pa) {\n for (const s of i.signalInputs)\n if (s.uniqueId === t)\n return s;\n }\n throw new Error(\"Could not find signal in connection with unique id \" + t);\n }\n /**\n * Parses a graph from a given serialization object\n * @param serializationObject the object where the values are written\n * @param options options for parsing the graph\n * @returns the parsed graph\n */\n static Parse(e, t) {\n const i = t.coordinator.createGraph(), s = [], r = t.valueParseFunction ?? xm;\n for (const n of e.allBlocks) {\n const o = ll.Parse(n, { scene: t.coordinator.config.scene, pathConverter: t.pathConverter, valueParseFunction: r });\n s.push(o), o instanceof Vf && i.addEventBlock(o);\n }\n for (const n of s) {\n for (const o of n.dataInputs)\n for (const l of o.connectedPointIds) {\n const h = Mu.GetDataOutConnectionByUniqueId(s, l);\n o.connectTo(h);\n }\n if (n instanceof Pa)\n for (const o of n.signalOutputs)\n for (const l of o.connectedPointIds) {\n const h = Mu.GetSignalInConnectionByUniqueId(s, l);\n o.connectTo(h);\n }\n }\n for (const n of e.executionContexts)\n Jg.Parse(n, { graph: i, valueParseFunction: r });\n return i;\n }\n}\nclass hu {\n constructor(e) {\n this.config = e, this._flowGraphs = [], this._customEventsMap = /* @__PURE__ */ new Map(), this.config.scene.onDisposeObservable.add(() => {\n this.dispose();\n }), (hu.SceneCoordinators.get(this.config.scene) ?? []).push(this);\n }\n /**\n * Creates a new flow graph and adds it to the list of existing flow graphs\n * @returns a new flow graph\n */\n createGraph() {\n const e = new Mu({ scene: this.config.scene, coordinator: this });\n return this._flowGraphs.push(e), e;\n }\n /**\n * Removes a flow graph from the list of existing flow graphs and disposes it\n * @param graph the graph to remove\n */\n removeGraph(e) {\n const t = this._flowGraphs.indexOf(e);\n t !== -1 && (e.dispose(), this._flowGraphs.splice(t, 1));\n }\n /**\n * Starts all graphs\n */\n start() {\n this._flowGraphs.forEach((e) => e.start());\n }\n /**\n * Disposes all graphs\n */\n dispose() {\n this._flowGraphs.forEach((i) => i.dispose()), this._flowGraphs.length = 0;\n const e = hu.SceneCoordinators.get(this.config.scene) ?? [], t = e.indexOf(this);\n t !== -1 && e.splice(t, 1);\n }\n /**\n * Serializes this coordinator to a JSON object.\n * @param serializationObject the object to serialize to\n * @param valueSerializeFunction the function to use to serialize the value\n */\n serialize(e, t) {\n e._flowGraphs = [], this._flowGraphs.forEach((i) => {\n const s = {};\n i.serialize(s, t), e._flowGraphs.push(s);\n });\n }\n /**\n * Parses a serialized coordinator.\n * @param serializedObject the object to parse\n * @param options the options to use when parsing\n * @returns the parsed coordinator\n */\n static Parse(e, t) {\n var r;\n const i = t.valueParseFunction ?? xm, s = new hu({ scene: t.scene });\n return (r = e._flowGraphs) == null || r.forEach((n) => {\n Mu.Parse(n, { coordinator: s, valueParseFunction: i, pathConverter: t.pathConverter });\n }), s;\n }\n /**\n * Gets the list of flow graphs\n */\n get flowGraphs() {\n return this._flowGraphs;\n }\n /**\n * Get an observable that will be notified when the event with the given id is fired.\n * @param id the id of the event\n * @returns the observable for the event\n */\n getCustomEventObservable(e) {\n let t = this._customEventsMap.get(e);\n return t || (t = new G(), this._customEventsMap.set(e, t)), t;\n }\n /**\n * Notifies the observable for the given event id with the given data.\n * @param id the id of the event\n * @param data the data to send with the event\n */\n notifyCustomEvent(e, t) {\n const i = this._customEventsMap.get(e);\n i && i.notifyObservers(t);\n }\n}\nhu.SceneCoordinators = /* @__PURE__ */ new Map();\nclass Cn extends Pa {\n constructor(e) {\n super(e), this.out = this._registerSignalOutput(\"out\");\n }\n}\nclass Du extends Cn {\n constructor(e) {\n super(e), this.message = this.registerDataInput(\"message\", Oe);\n }\n /**\n * @internal\n */\n _execute(e) {\n const t = this.message.getValue(e);\n L.Log(t), this.out._activateSignal(e);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return Du.ClassName;\n }\n}\nDu.ClassName = \"FGConsoleLogBlock\";\nU(Du.ClassName, Du);\nclass Ou extends Cn {\n constructor(e) {\n super(e), this.config = e, this.input = this.registerDataInput(e.variableName, Oe);\n }\n _execute(e) {\n const t = this.config.variableName, i = this.input.getValue(e);\n e.setVariable(t, i), this.out._activateSignal(e);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return Ou.ClassName;\n }\n}\nOu.ClassName = \"FGSetVariableBlock\";\nU(Ou.ClassName, Ou);\nconst Ay = new RegExp(/\\{(\\w+)\\}/g);\nclass i_ {\n constructor(e, t) {\n this.path = e, this.ownerBlock = t, this.templatedInputs = [];\n let i = Ay.exec(e);\n for (; i; ) {\n const [, s] = i;\n this.templatedInputs.push(t.registerDataInput(s, Ki)), i = Ay.exec(e);\n }\n }\n getAccessor(e, t) {\n let i = this.path;\n for (const s of this.templatedInputs) {\n const r = s.getValue(t).value;\n i = i.replace(`{${s.name}}`, r.toString());\n }\n return e.convert(i);\n }\n}\nclass vm extends Cn {\n constructor(e) {\n super(e), this.config = e, this.a = this.registerDataInput(\"a\", Oe), this.templateComponent = new i_(e.path, this);\n }\n _execute(e) {\n const t = this.a.getValue(e), i = this.templateComponent.getAccessor(this.config.pathConverter, e);\n i.info.set(t, i.object), this.out._activateSignal(e);\n }\n /**\n * Serializes the block to a JSON object.\n * @param serializationObject the object to serialize to.\n */\n serialize(e = {}) {\n super.serialize(e), e.config.path = this.config.path;\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return vm.ClassName;\n }\n}\nvm.ClassName = \"FGSetPropertyBlock\";\nU(\"FGSetPropertyBlock\", vm);\nclass Tm extends Cn {\n constructor(e) {\n super(e), this.config = e;\n for (let t = 0; t < this.config.eventData.length; t++) {\n const i = this.config.eventData[t];\n this.registerDataInput(i, Oe);\n }\n }\n _execute(e) {\n const t = this.config.eventId, i = this.dataInputs.map((s) => s.getValue(e));\n e.configuration.coordinator.notifyCustomEvent(t, i), this.out._activateSignal(e);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return Tm.ClassName;\n }\n}\nTm.ClassName = \"FGSendCustomEventBlock\";\nU(\"FGSendCustomEventBlock\", Tm);\nclass $H extends Pa {\n constructor(e) {\n super(e), this.condition = this.registerDataInput(\"condition\", Ws), this.onTrue = this._registerSignalOutput(\"onTrue\"), this.onFalse = this._registerSignalOutput(\"onFalse\");\n }\n _execute(e) {\n this.condition.getValue(e) ? this.onTrue._activateSignal(e) : this.onFalse._activateSignal(e);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGBranchBlock\";\n }\n}\nU(\"FGBranchBlock\", $H);\nclass wu extends Cn {\n constructor(e = { startIndex: new ji(0) }) {\n super(e), this.config = e, this.reset = this._registerSignalInput(\"reset\"), this.n = this.registerDataInput(\"n\", Ki), this.value = this.registerDataOutput(\"value\", Ki);\n }\n _execute(e, t) {\n if (t === this.reset)\n this.value.setValue(this.config.startIndex, e);\n else {\n const i = this.value.getValue(e);\n i.value < this.n.getValue(e).value && (this.value.setValue(new ji(i.value + 1), e), this.out._activateSignal(e));\n }\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return wu.ClassName;\n }\n}\nwu.ClassName = \"FGDoNBlock\";\nU(wu.ClassName, wu);\nclass YH extends Cn {\n constructor(e) {\n super(e), this.startIndex = this.registerDataInput(\"startIndex\", hi), this.endIndex = this.registerDataInput(\"endIndex\", hi), this.step = this.registerDataInput(\"step\", hi), this.index = this.registerDataOutput(\"index\", hi), this.onLoop = this._registerSignalOutput(\"onLoop\");\n }\n _executeLoop(e) {\n let t = e._getExecutionVariable(this, \"index\");\n const i = e._getExecutionVariable(this, \"endIndex\");\n if (t < i) {\n this.index.setValue(t, e), this.onLoop._activateSignal(e);\n const s = e._getExecutionVariable(this, \"step\", 1);\n t += s, e._setExecutionVariable(this, \"index\", t), this._executeLoop(e);\n } else\n this.out._activateSignal(e);\n }\n /**\n * @internal\n */\n _execute(e) {\n const t = this.startIndex.getValue(e), i = this.endIndex.getValue(e), s = this.step.getValue(e);\n e._setExecutionVariable(this, \"index\", t), e._setExecutionVariable(this, \"endIndex\", i), e._setExecutionVariable(this, \"step\", s), this._executeLoop(e);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGForLoopBlock\";\n }\n}\nU(\"FGForLoopBlock\", YH);\nclass jH extends Cn {\n constructor(e) {\n super(e), this.reset = this._registerSignalInput(\"reset\"), this.duration = this.registerDataInput(\"duration\", hi), this.timeRemaining = this.registerDataOutput(\"timeRemaining\", hi);\n }\n _execute(e, t) {\n const i = e._getExecutionVariable(this, \"lastExecutedTime\"), s = this.duration.getValue(e), r = Date.now();\n if (t === this.reset || i === void 0 || r - i > s)\n this.timeRemaining.setValue(0, e), this.out._activateSignal(e), e._setExecutionVariable(this, \"lastExecutedTime\", r);\n else {\n const n = s - (r - i);\n this.timeRemaining.setValue(n, e);\n }\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGThrottleBlock\";\n }\n}\nU(\"FGThrottleBlock\", jH);\nclass Sm extends sT {\n constructor(e) {\n super(e), this.timeout = this.registerDataInput(\"timeout\", hi);\n }\n _preparePendingTasks(e) {\n const t = this.timeout.getValue(e);\n if (t !== void 0 && t >= 0) {\n const i = e._getExecutionVariable(this, \"runningTimers\") || [], s = e.configuration.scene, r = new UV({\n timeout: t,\n contextObservable: s.onBeforeRenderObservable,\n onEnded: () => this._onEnded(r, e)\n });\n r.start(), i.push(r), e._setExecutionVariable(this, \"runningTimers\", i);\n }\n }\n /**\n * @internal\n */\n _execute(e) {\n this._startPendingTasks(e), this.out._activateSignal(e);\n }\n _onEnded(e, t) {\n const i = t._getExecutionVariable(this, \"runningTimers\") || [], s = i.indexOf(e);\n s !== -1 ? i.splice(s, 1) : J.Warn(\"FlowGraphTimerBlock: Timer ended but was not found in the running timers list\"), t._removePendingBlock(this), this.done._activateSignal(t);\n }\n _cancelPendingTasks(e) {\n const t = e._getExecutionVariable(this, \"runningTimers\") || [];\n for (const i of t)\n i.dispose();\n e._deleteExecutionVariable(this, \"runningTimers\");\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return Sm.ClassName;\n }\n}\nSm.ClassName = \"FGTimerBlock\";\nU(\"FGTimerBlock\", Sm);\nclass KH extends Pa {\n constructor(e) {\n super(e), this.config = e, this._cachedUnusedIndexes = [], this.reset = this._registerSignalInput(\"reset\"), this.currentIndex = this.registerDataOutput(\"currentIndex\", hi), this.config.startIndex = this.config.startIndex !== void 0 ? this.config.startIndex : 0, this.config.startIndex = Math.max(0, Math.min(this.config.startIndex, this.config.numberOutputFlows - 1)), this.outFlows = [];\n for (let t = 0; t < this.config.numberOutputFlows; t++)\n this.outFlows.push(this._registerSignalOutput(`out${t}`));\n }\n _getUnusedIndexes(e) {\n const t = this._cachedUnusedIndexes;\n if (t.length = 0, e._hasExecutionVariable(this, \"unusedIndexes\")) {\n const i = e._getExecutionVariable(this, \"unusedIndexes\");\n for (let s = 0; s < i.length; s++)\n t.push(i[s]);\n } else\n for (let i = 0; i < this.config.numberOutputFlows; i++)\n t.push(i);\n return t;\n }\n _getNextOutput(e, t) {\n if (this.config.isRandom) {\n const i = Math.floor(Math.random() * t.length);\n return t[i];\n } else\n return e + 1;\n }\n _execute(e, t) {\n const i = e._getExecutionVariable(this, \"currentIndex\") ?? this.config.startIndex - 1;\n let s = this._getUnusedIndexes(e);\n if (t === this.reset) {\n e._deleteExecutionVariable(this, \"currentIndex\"), e._deleteExecutionVariable(this, \"unusedIndexes\");\n return;\n }\n let r = this._getNextOutput(i, s);\n if (r >= this.config.numberOutputFlows && this.config.loop)\n r = 0;\n else if (r >= this.config.numberOutputFlows && !this.config.loop)\n return;\n if (s = s.filter((n) => n !== r), s.length === 0)\n for (let n = 0; n < this.config.numberOutputFlows; n++)\n s.push(n);\n e._setExecutionVariable(this, \"unusedIndexes\", s), e._setExecutionVariable(this, \"currentIndex\", r), this.currentIndex.setValue(r, e), this.outFlows[r]._activateSignal(e);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGMultiGateBlock\";\n }\n /**\n * Serializes the block.\n * @param serializationObject the object to serialize to.\n */\n serialize(e) {\n super.serialize(e), e.config.numberOutputFlows = this.config.numberOutputFlows, e.config.isRandom = this.config.isRandom, e.config.loop = this.config.loop, e.config.startIndex = this.config.startIndex;\n }\n}\nU(\"FGMultiGateBlock\", KH);\nclass qH extends Pa {\n constructor(e) {\n super(e), this.config = e, this.selection = this.registerDataInput(\"selection\", Oe), this.outputFlows = [];\n for (let t = 0; t <= this.config.cases.length; t++)\n this.outputFlows.push(this._registerSignalOutput(`out${t}`));\n }\n _execute(e, t) {\n const i = this.selection.getValue(e);\n for (let s = 0; s < this.config.cases.length; s++)\n if (i === this.config.cases[s]) {\n this.outputFlows[s]._activateSignal(e);\n return;\n }\n this.outputFlows[this.outputFlows.length - 1]._activateSignal(e);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGSwitchBlock\";\n }\n /**\n * Serialize the block to a JSON representation.\n * @param serializationObject the object to serialize to.\n */\n serialize(e) {\n super.serialize(e), e.cases = this.config.cases;\n }\n}\nU(\"FGSwitchBlock\", qH);\nclass QH extends Cn {\n constructor(e) {\n super(e), this.config = e, this.inFlows = [], this._cachedActivationState = [], this.reset = this._registerSignalInput(\"reset\");\n for (let t = 1; t < this.config.numberInputFlows; t++)\n this.inFlows.push(this._registerSignalInput(`in${t}`));\n }\n _getCurrentActivationState(e) {\n const t = this._cachedActivationState;\n if (t.length = 0, e._hasExecutionVariable(this, \"activationState\")) {\n const i = e._getExecutionVariable(this, \"activationState\");\n for (let s = 0; s < i.length; s++)\n t.push(i[s]);\n } else\n for (let i = 0; i < this.config.numberInputFlows; i++)\n t.push(!1);\n return t;\n }\n _execute(e, t) {\n const i = this._getCurrentActivationState(e);\n if (t === this.reset)\n for (let s = 0; s < this.config.numberInputFlows; s++)\n i[s] = !1;\n else if (t === this.in)\n i[0] = !0;\n else {\n const s = this.inFlows.indexOf(t);\n s >= 0 && (i[s + 1] = !0);\n }\n if (e._setExecutionVariable(this, \"activationState\", i.slice()), i.every((s) => s)) {\n this.out._activateSignal(e);\n for (let s = 0; s < this.config.numberInputFlows; s++)\n i[s] = !1;\n }\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGWaitAllBlock\";\n }\n /**\n * Serializes this block into a object\n * @param serializationObject the object to serialize to\n */\n serialize(e) {\n super.serialize(e), e.config.numberInputFlows = this.config.numberInputFlows;\n }\n}\nU(\"FGWaitAllBlock\", QH);\nclass ZH extends Cn {\n constructor(e) {\n super(e), this.count = this.registerDataOutput(\"count\", hi), this.reset = this._registerSignalInput(\"reset\");\n }\n _execute(e, t) {\n if (t === this.reset) {\n e._setExecutionVariable(this, \"count\", 0), this.count.setValue(0, e);\n return;\n }\n const i = (e._getExecutionVariable(this, \"count\") ?? 0) + 1;\n e._setExecutionVariable(this, \"count\", i), this.count.setValue(i, e), this.out._activateSignal(e);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGCounterBlock\";\n }\n}\nU(\"FGCounterBlock\", ZH);\nclass Nu extends Cn {\n constructor(e) {\n super(e), this.config = e, this.condition = this.registerDataInput(\"condition\", Ws), this.loopBody = this._registerSignalOutput(\"loopBody\");\n }\n _execute(e, t) {\n var s;\n let i = this.condition.getValue(e);\n for ((s = this.config) != null && s.isDo && !i && this.loopBody._activateSignal(e); i; )\n this.loopBody._activateSignal(e), i = this.condition.getValue(e);\n this.out._activateSignal(e);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return Nu.ClassName;\n }\n /**\n * Serializes the block to a JSON object.\n * @param serializationObject the object to serialize to.\n */\n serialize(e) {\n var t;\n super.serialize(e), e.isDo = (t = this.config) == null ? void 0 : t.isDo;\n }\n}\nNu.ClassName = \"FGWhileLoopBlock\";\nU(Nu.ClassName, Nu);\nclass JH extends Cn {\n constructor(e) {\n super(e), this.count = this.registerDataInput(\"count\", hi), this.reset = this._registerSignalInput(\"reset\"), this.currentCount = this.registerDataOutput(\"currentCount\", hi);\n }\n _execute(e, t) {\n if (t === this.reset) {\n e._setExecutionVariable(this, \"debounceCount\", 0);\n return;\n }\n const i = this.count.getValue(e), r = e._getExecutionVariable(this, \"debounceCount\", 0) + 1;\n this.currentCount.setValue(r, e), e._setExecutionVariable(this, \"debounceCount\", r), r >= i && (this.out._activateSignal(e), e._setExecutionVariable(this, \"debounceCount\", 0));\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGDebounceBlock\";\n }\n}\nU(\"FGDebounceBlock\", JH);\nclass eX extends Pa {\n constructor(e) {\n super(e), this.onOn = this._registerSignalOutput(\"onOn\"), this.onOff = this._registerSignalOutput(\"onOff\"), this.isOn = this.registerDataOutput(\"isOn\", Ws);\n }\n _execute(e, t) {\n let i = e._getExecutionVariable(this, \"value\", !1);\n i = !i, e._setExecutionVariable(this, \"value\", i), this.isOn.setValue(i, e), i ? this.onOn._activateSignal(e) : this.onOff._activateSignal(e);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGFlipFlopBlock\";\n }\n}\nU(\"FGFlipFlopBlock\", eX);\nclass Fu extends Pa {\n constructor(e) {\n super(e), this.config = e, this.outFlows = [];\n for (let t = 0; t < this.config.numberOutputFlows; t++)\n this.outFlows.push(this._registerSignalOutput(`${t}`));\n }\n _execute(e) {\n for (let t = 0; t < this.config.numberOutputFlows; t++)\n this.outFlows[t]._activateSignal(e);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return Fu.ClassName;\n }\n}\nFu.ClassName = \"FGSequenceBlock\";\nU(Fu.ClassName, Fu);\nclass Lu extends sT {\n constructor(e) {\n super(e), this.config = e, this.templateTargetComponent = new i_(e.targetPath, this), this.templateAnimationComponent = new i_(e.animationPath, this), this.speed = this.registerDataInput(\"speed\", hi), this.loop = this.registerDataInput(\"loop\", Ws), this.from = this.registerDataInput(\"from\", hi), this.to = this.registerDataInput(\"to\", hi), this.runningAnimatable = this.registerDataOutput(\"runningAnimatable\", Oe);\n }\n /**\n * @internal\n * @param context\n */\n _preparePendingTasks(e) {\n const t = this.templateTargetComponent.getAccessor(this.config.pathConverter, e), i = t.info.getObject(t.object), s = this.templateAnimationComponent.getAccessor(this.config.pathConverter, e), r = s.info.get(s.object);\n if (!i || !r)\n throw new Error(\"Cannot play animation without target or animation\");\n const n = e._getExecutionVariable(this, \"runningAnimatables\") ?? [], o = this.runningAnimatable.getValue(e);\n if (o && o.paused)\n o.restart();\n else {\n const h = e.configuration.scene.beginDirectAnimation(i, [r], this.from.getValue(e), this.to.getValue(e), this.loop.getValue(e), this.speed.getValue(e), () => this._onAnimationEnd(h, e));\n this.runningAnimatable.setValue(h, e), n.push(h);\n }\n e._setExecutionVariable(this, \"runningAnimatables\", n);\n }\n _execute(e) {\n this._startPendingTasks(e), this.out._activateSignal(e);\n }\n _onAnimationEnd(e, t) {\n const i = t._getExecutionVariable(this, \"runningAnimatables\") ?? [], s = i.indexOf(e);\n s !== -1 && i.splice(s, 1), t._removePendingBlock(this), this.done._activateSignal(t);\n }\n /**\n * @internal\n * Stop any currently running animations.\n */\n _cancelPendingTasks(e) {\n const t = e._getExecutionVariable(this, \"runningAnimatables\") ?? [];\n for (const i of t)\n i.stop();\n e._deleteExecutionVariable(this, \"runningAnimatables\");\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return Lu.ClassName;\n }\n /**\n * Serializes the block to a JSON object.\n * @param serializationObject the object to serialize to.\n */\n serialize(e = {}) {\n super.serialize(e), e.config.targetPath = this.config.targetPath, e.config.animationPath = this.config.animationPath;\n }\n}\nLu.ClassName = \"FGPlayAnimationBlock\";\nU(Lu.ClassName, Lu);\nclass tX extends Cn {\n constructor(e) {\n super(e), this.animationToStop = this.registerDataInput(\"animationToStop\", Oe);\n }\n _execute(e) {\n this.animationToStop.getValue(e).stop(), this.out._activateSignal(e);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGStopAnimationBlock\";\n }\n}\nU(\"FGStopAnimationBlock\", tX);\nclass iX extends Cn {\n constructor(e) {\n super(e), this.animationToPause = this.registerDataInput(\"animationToPause\", Oe);\n }\n _execute(e) {\n this.animationToPause.getValue(e).pause(), this.out._activateSignal(e);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGPauseAnimationBlock\";\n }\n}\nU(\"FGPauseAnimationBlock\", iX);\nclass sX extends ll {\n constructor(e) {\n super(e), this.condition = this.registerDataInput(\"condition\", Ws), this.trueValue = this.registerDataInput(\"trueValue\", Oe), this.falseValue = this.registerDataInput(\"falseValue\", Oe), this.output = this.registerDataOutput(\"output\", Oe);\n }\n /**\n * @internal\n */\n _updateOutputs(e) {\n this.output.setValue(this.condition.getValue(e) ? this.trueValue.getValue(e) : this.falseValue.getValue(e), e);\n }\n /**\n * Gets the class name of this block\n * @returns the class name\n */\n getClassName() {\n return \"FGConditionalDataBlock\";\n }\n}\nU(\"FGConditionalDataBlock\", sX);\nclass Bu extends ll {\n /**\n * Construct a FlowGraphGetVariableBlock.\n * @param config construction parameters\n */\n constructor(e) {\n super(e), this.config = e, this.output = this.registerDataOutput(e.variableName, Oe);\n }\n /**\n * @internal\n */\n _updateOutputs(e) {\n const t = this.config.variableName;\n e.hasVariable(t) && this.output.setValue(e.getVariable(t), e);\n }\n /**\n * Gets the class name of this block\n * @returns the class name\n */\n getClassName() {\n return Bu.ClassName;\n }\n /**\n * Serializes this block\n * @param serializationObject the object to serialize to\n */\n serialize(e) {\n super.serialize(e), e.config.variableName = this.config.variableName;\n }\n}\nBu.ClassName = \"FGGetVariableBlock\";\nU(Bu.ClassName, Bu);\nclass rX extends ll {\n /**\n * Creates a new FlowGraphCoordinateTransformBlock\n * @param config optional configuration for this block\n */\n constructor(e) {\n super(e), this.sourceSystem = this.registerDataInput(\"sourceSystem\", Oe), this.destinationSystem = this.registerDataInput(\"destinationSystem\", Oe), this.inputCoordinates = this.registerDataInput(\"inputCoordinates\", oo), this.outputCoordinates = this.registerDataOutput(\"outputCoordinates\", oo);\n }\n _updateOutputs(e) {\n const t = this.sourceSystem.getValue(e), i = this.destinationSystem.getValue(e), s = this.inputCoordinates.getValue(e), r = t.getWorldMatrix(), n = i.getWorldMatrix(), o = w.Matrix[0].copyFrom(n);\n o.invert();\n const l = w.Matrix[1];\n o.multiplyToRef(r, l);\n const h = this.outputCoordinates.getValue(e);\n g.TransformCoordinatesToRef(s, l, h);\n }\n /**\n * Gets the class name of this block\n * @returns the class name\n */\n getClassName() {\n return \"FGCoordinateTransformBlock\";\n }\n}\nU(\"FGCoordinateTransformBlock\", rX);\nclass nX extends ll {\n constructor(e) {\n super(e), this.config = e, this.output = this.registerDataOutput(\"output\", WH(e.value));\n }\n _updateOutputs(e) {\n this.output.setValue(this.config.value, e);\n }\n /**\n * Gets the class name of this block\n * @returns the class name\n */\n getClassName() {\n return \"FGConstantBlock\";\n }\n /**\n * Serializes this block\n * @param serializationObject the object to serialize to\n * @param valueSerializeFunction the function to use to serialize the value\n */\n serialize(e = {}, t = iT) {\n super.serialize(e), t(\"value\", this.config.value, e.config);\n }\n}\nU(\"FGConstantBlock\", nX);\nclass Vu extends ll {\n constructor(e) {\n super(e), this.config = e, this.value = this.registerDataOutput(\"value\", Oe), this.templateComponent = new i_(e.path, this);\n }\n _updateOutputs(e) {\n const t = this.templateComponent.getAccessor(this.config.pathConverter, e), i = t.info.get(t.object);\n this.value.setValue(i, e);\n }\n /**\n * Gets the class name of this block\n * @returns the class name\n */\n getClassName() {\n return Vu.ClassName;\n }\n /**\n * Serializes this block\n * @param serializationObject the object to serialize to\n */\n serialize(e = {}) {\n super.serialize(e), e.config.path = this.config.path;\n }\n}\nVu.ClassName = \"FGGetPropertyBlock\";\nU(Vu.ClassName, Vu);\nconst Ry = \"cachedOperationValue\", Iy = \"cachedExecutionId\";\nclass bm extends ll {\n constructor(e, t) {\n super(t), this.value = this.registerDataOutput(\"value\", e);\n }\n _updateOutputs(e) {\n const t = e._getExecutionVariable(this, Iy), i = e._getExecutionVariable(this, Ry);\n if (i !== void 0 && t === e.executionId)\n this.value.setValue(i, e);\n else {\n const s = this._doOperation(e);\n e._setExecutionVariable(this, Ry, s), e._setExecutionVariable(this, Iy, e.executionId), this.value.setValue(s, e);\n }\n }\n}\nclass os extends bm {\n constructor(e, t, i, s, r, n) {\n super(i, n), this._operation = s, this._className = r, this.a = this.registerDataInput(\"a\", e), this.b = this.registerDataInput(\"b\", t);\n }\n /**\n * the operation performed by this block\n * @param context the graph context\n * @returns the result of the operation\n */\n _doOperation(e) {\n return this._operation(this.a.getValue(e), this.b.getValue(e));\n }\n /**\n * Gets the class name of this block\n * @returns the class name\n */\n getClassName() {\n return this._className;\n }\n}\nclass $t extends bm {\n constructor(e, t, i, s, r) {\n super(t, r), this._operation = i, this._className = s, this.a = this.registerDataInput(\"a\", e);\n }\n /**\n * the operation performed by this block\n * @param context the graph context\n * @returns the result of the operation\n */\n _doOperation(e) {\n return this._operation(this.a.getValue(e));\n }\n /**\n * Gets the class name of this block\n * @returns the class name\n */\n getClassName() {\n return this._className;\n }\n}\nconst Dc = \"FGLogic\", xI = \"AndBlock\", vI = \"OrBlock\", TI = \"NotBlock\";\nclass aX extends os {\n constructor(e) {\n super(Ws, Ws, Ws, (t, i) => t && i, `${Dc}${xI}`, e);\n }\n}\nU(`${Dc}${xI}`, aX);\nclass oX extends os {\n constructor(e) {\n super(Ws, Ws, Ws, (t, i) => t || i, `${Dc}${vI}`, e);\n }\n}\nU(`${Dc}${vI}`, oX);\nclass lX extends $t {\n constructor(e) {\n super(Ws, Ws, (t) => !t, `${Dc}${TI}`, e);\n }\n}\nU(`${Dc}${TI}`, lX);\nclass Uf extends bm {\n constructor(e, t, i, s) {\n super(e, s), this._operation = t, this._className = i;\n }\n /**\n * the operation performed by this block\n * @param _context the graph context\n * @returns the result of the operation\n */\n _doOperation(e) {\n return this._operation();\n }\n /**\n * Gets the class name of this block\n * @returns the class name\n */\n getClassName() {\n return this._className;\n }\n}\nclass nT extends bm {\n constructor(e, t, i, s, r, n, o) {\n super(s, o), this._operation = r, this._className = n, this.a = this.registerDataInput(\"a\", e), this.b = this.registerDataInput(\"b\", t), this.c = this.registerDataInput(\"c\", i);\n }\n /**\n * the operation performed by this block\n * @param context the graph context\n * @returns the result of the operation\n */\n _doOperation(e) {\n return this._operation(this.a.getValue(e), this.b.getValue(e), this.c.getValue(e));\n }\n /**\n * Gets the class name of this block\n * @returns the class name\n */\n getClassName() {\n return this._className;\n }\n}\nfunction Qs(a) {\n return a.getClassName ? a.getClassName() : \"\";\n}\nfunction kf(a, e) {\n return a === \"Vector2\" && e === \"Vector2\" || a === \"Vector3\" && e === \"Vector3\" || a === \"Vector4\" && e === \"Vector4\";\n}\nfunction Gf(a, e) {\n return a === \"Matrix\" && e === \"Matrix\";\n}\nfunction zf(a, e) {\n return a === \"FlowGraphInteger\" && e === \"FlowGraphInteger\";\n}\nclass Uu extends os {\n constructor(e) {\n super(Oe, Oe, Oe, (t, i) => this._polymorphicAdd(t, i), Uu.ClassName, e);\n }\n _polymorphicAdd(e, t) {\n const i = Qs(e), s = Qs(t);\n return kf(i, s) || Gf(i, s) || zf(i, s) ? e.add(t) : e + t;\n }\n}\nUu.ClassName = \"FGAddBlock\";\nU(Uu.ClassName, Uu);\nclass ku extends os {\n constructor(e) {\n super(Oe, Oe, Oe, (t, i) => this._polymorphicAdd(t, i), ku.ClassName, e);\n }\n _polymorphicAdd(e, t) {\n const i = Qs(e), s = Qs(t);\n return kf(i, s) || zf(i, s) ? e.subtract(t) : Gf(i, s) ? e.add(t.scale(-1)) : e - t;\n }\n}\nku.ClassName = \"FGSubBlock\";\nU(ku.ClassName, ku);\nclass Gu extends os {\n constructor(e) {\n super(Oe, Oe, Oe, (t, i) => this._polymorphicMultiply(t, i), Gu.ClassName, e);\n }\n _polymorphicMultiply(e, t) {\n const i = Qs(e), s = Qs(t);\n return kf(i, s) || zf(i, s) ? e.multiply(t) : Gf(i, s) ? O.FromValues(e.m[0] * t.m[0], e.m[4] * t.m[4], e.m[8] * t.m[8], e.m[12] * t.m[12], e.m[1] * t.m[1], e.m[5] * t.m[5], e.m[9] * t.m[9], e.m[13] * t.m[13], e.m[2] * t.m[2], e.m[6] * t.m[6], e.m[10] * t.m[10], e.m[14] * t.m[14], e.m[3] * t.m[3], e.m[7] * t.m[7], e.m[11] * t.m[11], e.m[15] * t.m[15]) : e * t;\n }\n}\nGu.ClassName = \"FGMultiplyBlock\";\nU(Gu.ClassName, Gu);\nclass zu extends os {\n constructor(e) {\n super(Oe, Oe, Oe, (t, i) => this._polymorphicDivide(t, i), zu.ClassName, e);\n }\n _polymorphicDivide(e, t) {\n const i = Qs(e), s = Qs(t);\n return kf(i, s) || zf(i, s) ? e.divide(t) : Gf(i, s) ? O.FromValues(e.m[0] / t.m[0], e.m[4] / t.m[4], e.m[8] / t.m[8], e.m[12] / t.m[12], e.m[1] / t.m[1], e.m[5] / t.m[5], e.m[9] / t.m[9], e.m[13] / t.m[13], e.m[2] / t.m[2], e.m[6] / t.m[6], e.m[10] / t.m[10], e.m[14] / t.m[14], e.m[3] / t.m[3], e.m[7] / t.m[7], e.m[11] / t.m[11], e.m[15] / t.m[15]) : e / t;\n }\n}\nzu.ClassName = \"FGDivideBlock\";\nU(zu.ClassName, zu);\nclass Wu extends Uf {\n constructor(e) {\n super(hi, () => Math.random(), Wu.ClassName, e);\n }\n}\nWu.ClassName = \"FGRandomBlock\";\nU(Wu.ClassName, Wu);\nclass Hu extends os {\n constructor(e) {\n super(Oe, Oe, hi, (t, i) => this._polymorphicDot(t, i), Hu.ClassName, e);\n }\n _polymorphicDot(e, t) {\n switch (Qs(e)) {\n case \"Vector2\":\n return Q.Dot(e, t);\n case \"Vector3\":\n return g.Dot(e, t);\n case \"Vector4\":\n return Ne.Dot(e, t);\n default:\n throw new Error(`Cannot get dot product of ${e} and ${t}`);\n }\n }\n}\nHu.ClassName = \"FGDotBlock\";\nU(Hu.ClassName, Hu);\nclass Xu extends Uf {\n constructor(e) {\n super(hi, () => Math.E, Xu.ClassName, e);\n }\n}\nXu.ClassName = \"FGEBlock\";\nU(Xu.ClassName, Xu);\nclass $u extends Uf {\n constructor(e) {\n super(hi, () => Math.PI, $u.ClassName, e);\n }\n}\n$u.ClassName = \"FGPIBlock\";\nU($u.ClassName, $u);\nclass Yu extends Uf {\n constructor(e) {\n super(hi, () => Number.POSITIVE_INFINITY, Yu.ClassName, e);\n }\n}\nYu.ClassName = \"FGInfBlock\";\nU(Yu.ClassName, Yu);\nclass ju extends Uf {\n constructor(e) {\n super(hi, () => Number.NaN, ju.ClassName, e);\n }\n}\nju.ClassName = \"FGNaNBlock\";\nU(ju.ClassName, ju);\nfunction Gi(a, e) {\n switch (Qs(a)) {\n case \"FlowGraphInteger\":\n return new ji(e(a.value));\n case \"Vector2\":\n return new Q(e(a.x), e(a.y));\n case \"Vector3\":\n return new g(e(a.x), e(a.y), e(a.z));\n case \"Vector4\":\n return new Ne(e(a.x), e(a.y), e(a.z), e(a.w));\n case \"Matrix\":\n return O.FromValues(e(a.m[0]), e(a.m[4]), e(a.m[8]), e(a.m[12]), e(a.m[1]), e(a.m[5]), e(a.m[9]), e(a.m[13]), e(a.m[2]), e(a.m[6]), e(a.m[10]), e(a.m[14]), e(a.m[3]), e(a.m[7]), e(a.m[11]), e(a.m[15]));\n default:\n return e(a);\n }\n}\nclass Ku extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicAbs(t), Ku.ClassName, e);\n }\n _polymorphicAbs(e) {\n return Gi(e, Math.abs);\n }\n}\nKu.ClassName = \"FGAbsBlock\";\nU(Ku.ClassName, Ku);\nclass qu extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicSign(t), qu.ClassName, e);\n }\n _polymorphicSign(e) {\n return Gi(e, Math.sign);\n }\n}\nqu.ClassName = \"FGSignBlock\";\nU(qu.ClassName, qu);\nclass Qu extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicTrunc(t), Qu.ClassName, e);\n }\n _polymorphicTrunc(e) {\n return Gi(e, Math.trunc);\n }\n}\nQu.ClassName = \"FGTruncBlock\";\nU(Qu.ClassName, Qu);\nclass Zu extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicFloor(t), Zu.ClassName, e);\n }\n _polymorphicFloor(e) {\n return Gi(e, Math.floor);\n }\n}\nZu.ClassName = \"FGFloorBlock\";\nU(Zu.ClassName, Zu);\nclass Ju extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicCeiling(t), Ju.ClassName, e);\n }\n _polymorphicCeiling(e) {\n return Gi(e, Math.ceil);\n }\n}\nJu.ClassName = \"FGCeilBlock\";\nU(Ju.ClassName, Ju);\nclass ed extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicFract(t), ed.ClassName, e);\n }\n _polymorphicFract(e) {\n return Gi(e, (t) => t - Math.floor(t));\n }\n}\ned.ClassName = \"FGFractBlock\";\nU(ed.ClassName, ed);\nclass td extends $t {\n /**\n * construct a new negation block.\n * @param config optional configuration\n */\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicNeg(t), td.ClassName, e);\n }\n _polymorphicNeg(e) {\n return Gi(e, (t) => -t);\n }\n}\ntd.ClassName = \"FGNegBlock\";\nU(td.ClassName, td);\nfunction Wf(a, e, t) {\n switch (Qs(a)) {\n case \"FlowGraphInteger\":\n return new ji(t(a.value, e.value));\n case \"Vector2\":\n return new Q(t(a.x, e.x), t(a.y, e.y));\n case \"Vector3\":\n return new g(t(a.x, e.x), t(a.y, e.y), t(a.z, e.z));\n case \"Vector4\":\n return new Ne(t(a.x, e.x), t(a.y, e.y), t(a.z, e.z), t(a.w, e.w));\n case \"Matrix\":\n return O.FromValues(t(a.m[0], e.m[0]), t(a.m[4], e.m[4]), t(a.m[8], e.m[8]), t(a.m[12], e.m[12]), t(a.m[1], e.m[1]), t(a.m[5], e.m[5]), t(a.m[9], e.m[9]), t(a.m[13], e.m[13]), t(a.m[2], e.m[2]), t(a.m[6], e.m[6]), t(a.m[10], e.m[10]), t(a.m[14], e.m[14]), t(a.m[3], e.m[3]), t(a.m[7], e.m[7]), t(a.m[11], e.m[11]), t(a.m[15], e.m[15]));\n default:\n return t(a, e);\n }\n}\nclass id extends os {\n constructor(e) {\n super(Oe, Oe, Oe, (t, i) => this._polymorphicRemainder(t, i), id.ClassName, e);\n }\n _polymorphicRemainder(e, t) {\n return Wf(e, t, (i, s) => i % s);\n }\n}\nid.ClassName = \"FGRemainderBlock\";\nU(id.ClassName, id);\nclass sd extends os {\n constructor(e) {\n super(Oe, Oe, Oe, (t, i) => this._polymorphicMin(t, i), sd.ClassName, e);\n }\n _polymorphicMin(e, t) {\n return Wf(e, t, Math.min);\n }\n}\nsd.ClassName = \"FGMinBlock\";\nU(sd.ClassName, sd);\nclass rd extends os {\n constructor(e) {\n super(Oe, Oe, Oe, (t, i) => this._polymorphicMax(t, i), rd.ClassName, e);\n }\n _polymorphicMax(e, t) {\n return Wf(e, t, Math.max);\n }\n}\nrd.ClassName = \"FGMaxBlock\";\nU(rd.ClassName, rd);\nfunction hX(a, e, t) {\n return Math.min(Math.max(a, Math.min(e, t)), Math.max(e, t));\n}\nfunction SI(a, e, t, i) {\n switch (Qs(a)) {\n case \"FlowGraphInteger\":\n return new ji(i(a.value, e.value, t.value));\n case \"Vector2\":\n return new Q(i(a.x, e.x, t.x), i(a.y, e.y, t.y));\n case \"Vector3\":\n return new g(i(a.x, e.x, t.x), i(a.y, e.y, t.y), i(a.z, e.z, t.z));\n case \"Vector4\":\n return new Ne(i(a.x, e.x, t.x), i(a.y, e.y, t.y), i(a.z, e.z, t.z), i(a.w, e.w, t.w));\n case \"Matrix\":\n return O.FromValues(i(a.m[0], e.m[0], t.m[0]), i(a.m[4], e.m[4], t.m[4]), i(a.m[8], e.m[8], t.m[8]), i(a.m[12], e.m[12], t.m[12]), i(a.m[1], e.m[1], t.m[1]), i(a.m[5], e.m[5], t.m[5]), i(a.m[9], e.m[9], t.m[9]), i(a.m[13], e.m[13], t.m[13]), i(a.m[2], e.m[2], t.m[2]), i(a.m[6], e.m[6], t.m[6]), i(a.m[10], e.m[10], t.m[10]), i(a.m[14], e.m[14], t.m[14]), i(a.m[3], e.m[3], t.m[3]), i(a.m[7], e.m[7], t.m[7]), i(a.m[11], e.m[11], t.m[11]), i(a.m[15], e.m[15], t.m[15]));\n default:\n return i(a, e, t);\n }\n}\nclass nd extends nT {\n constructor(e) {\n super(Oe, Oe, Oe, Oe, (t, i, s) => this._polymorphicClamp(t, i, s), nd.ClassName, e);\n }\n _polymorphicClamp(e, t, i) {\n return SI(e, t, i, hX);\n }\n}\nnd.ClassName = \"FGClampBlock\";\nU(nd.ClassName, nd);\nfunction cX(a) {\n return Math.min(Math.max(a, 0), 1);\n}\nclass ad extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicSaturate(t), ad.ClassName, e);\n }\n _polymorphicSaturate(e) {\n return Gi(e, cX);\n }\n}\nad.ClassName = \"FGSaturateBlock\";\nU(ad.ClassName, ad);\nclass od extends nT {\n constructor(e) {\n super(Oe, Oe, Oe, Oe, (t, i, s) => this._polymorphicInterpolate(t, i, s), od.ClassName, e);\n }\n _interpolate(e, t, i) {\n return (1 - i) * e + i * t;\n }\n _polymorphicInterpolate(e, t, i) {\n return SI(e, t, i, this._interpolate);\n }\n}\nod.ClassName = \"FGInterpolateBlock\";\nU(od.ClassName, od);\nclass ld extends os {\n constructor(e) {\n super(Oe, Oe, Ws, (t, i) => this._polymorphicEq(t, i), ld.ClassName, e);\n }\n _polymorphicEq(e, t) {\n const i = Qs(e), s = Qs(t);\n return kf(i, s) || Gf(i, s) || zf(i, s) ? e.equals(t) : e === t;\n }\n}\nld.ClassName = \"FGEqBlock\";\nU(ld.ClassName, ld);\nfunction Em(a, e, t) {\n const i = Qs(a), s = Qs(e);\n if (i === s) {\n if (i === \"\")\n return t(a, e);\n if (i === \"FlowGraphInteger\")\n return t(a.value, e.value);\n throw new Error(`Cannot compare ${a} and ${e}`);\n }\n throw new Error(`${a} and ${e} are of different types.`);\n}\nclass hd extends os {\n constructor(e) {\n super(Oe, Oe, Ws, (t, i) => this._polymorphicLessThan(t, i), hd.ClassName, e);\n }\n _polymorphicLessThan(e, t) {\n return Em(e, t, (i, s) => i < s);\n }\n}\nhd.ClassName = \"FGLessThanBlock\";\nU(hd.ClassName, hd);\nclass aT extends os {\n constructor(e) {\n super(Oe, Oe, Ws, (t, i) => this._polymorphicLessThanOrEqual(t, i), aT.ClassName, e);\n }\n _polymorphicLessThanOrEqual(e, t) {\n return Em(e, t, (i, s) => i <= s);\n }\n}\naT.ClassName = \"FGLessThanOrEqualBlock\";\nclass cd extends os {\n constructor(e) {\n super(Oe, Oe, Ws, (t, i) => this._polymorphicGreaterThan(t, i), cd.ClassName, e);\n }\n _polymorphicGreaterThan(e, t) {\n return Em(e, t, (i, s) => i > s);\n }\n}\ncd.ClassName = \"FGGreaterThanBlock\";\nU(cd.ClassName, cd);\nclass ud extends os {\n constructor(e) {\n super(Oe, Oe, Ws, (t, i) => this._polymorphicGreaterThanOrEqual(t, i), ud.ClassName, e);\n }\n _polymorphicGreaterThanOrEqual(e, t) {\n return Em(e, t, (i, s) => i >= s);\n }\n}\nud.ClassName = \"FGGreaterThanOrEqualBlock\";\nU(ud.ClassName, ud);\nclass dd extends $t {\n constructor(e) {\n super(Oe, Ws, (t) => this._polymorphicIsNan(t), dd.ClassName, e);\n }\n _polymorphicIsNan(e) {\n const t = Qs(e);\n if (t === \"\")\n return isNaN(e);\n if (t === \"FlowGraphInteger\")\n return isNaN(e.value);\n throw new Error(`Cannot get NaN of ${e}`);\n }\n}\ndd.ClassName = \"FGIsNanBlock\";\nU(dd.ClassName, dd);\nclass oT extends $t {\n constructor(e) {\n super(Oe, Ws, (t) => this._polymorphicIsInf(t), oT.ClassName, e);\n }\n _polymorphicIsInf(e) {\n const t = Qs(e);\n if (t === \"\")\n return !isFinite(e);\n if (t === \"FlowGraphInteger\")\n return !isFinite(e.value);\n throw new Error(`Cannot get isInf of ${e}`);\n }\n}\noT.ClassName = \"FGIsInfBlock\";\nclass fd extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicDegToRad(t), fd.ClassName, e);\n }\n _degToRad(e) {\n return e * Math.PI / 180;\n }\n _polymorphicDegToRad(e) {\n return Gi(e, this._degToRad);\n }\n}\nfd.ClassName = \"FGDegToRadBlock\";\nU(fd.ClassName, fd);\nclass pd extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicRadToDeg(t), pd.ClassName, e);\n }\n _radToDeg(e) {\n return e * 180 / Math.PI;\n }\n _polymorphicRadToDeg(e) {\n return Gi(e, this._radToDeg);\n }\n}\npd.ClassName = \"FGRadToDegBlock\";\nU(pd.ClassName, pd);\nclass _d extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicSin(t), _d.ClassName, e);\n }\n _polymorphicSin(e) {\n return Gi(e, Math.sin);\n }\n}\n_d.ClassName = \"FGSinBlock\";\nU(_d.ClassName, _d);\nclass md extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicCos(t), md.ClassName, e);\n }\n _polymorphicCos(e) {\n return Gi(e, Math.cos);\n }\n}\nmd.ClassName = \"FGCosBlock\";\nU(md.ClassName, md);\nclass gd extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicTan(t), gd.ClassName, e);\n }\n _polymorphicTan(e) {\n return Gi(e, Math.tan);\n }\n}\ngd.ClassName = \"FGTanBlock\";\nU(gd.ClassName, gd);\nclass xd extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicAsin(t), xd.ClassName, e);\n }\n _polymorphicAsin(e) {\n return Gi(e, Math.asin);\n }\n}\nxd.ClassName = \"FGAsinBlock\";\nU(xd.ClassName, xd);\nclass vd extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicAcos(t), vd.ClassName, e);\n }\n _polymorphicAcos(e) {\n return Gi(e, Math.acos);\n }\n}\nvd.ClassName = \"FGAcosBlock\";\nU(vd.ClassName, vd);\nclass Td extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicAtan(t), Td.ClassName, e);\n }\n _polymorphicAtan(e) {\n return Gi(e, Math.atan);\n }\n}\nTd.ClassName = \"FGAtanBlock\";\nU(Td.ClassName, Td);\nclass Sd extends os {\n constructor(e) {\n super(Oe, Oe, Oe, (t, i) => this._polymorphicAtan2(t, i), Sd.ClassName, e);\n }\n _polymorphicAtan2(e, t) {\n return Wf(e, t, Math.atan2);\n }\n}\nSd.ClassName = \"FGAtan2Block\";\nU(Sd.ClassName, Sd);\nclass bd extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicSinh(t), bd.ClassName, e);\n }\n _polymorphicSinh(e) {\n return Gi(e, Math.sinh);\n }\n}\nbd.ClassName = \"FGSinhBlock\";\nU(bd.ClassName, bd);\nclass Ed extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicCosh(t), Ed.ClassName, e);\n }\n _polymorphicCosh(e) {\n return Gi(e, Math.cosh);\n }\n}\nEd.ClassName = \"FGCoshBlock\";\nU(Ed.ClassName, Ed);\nclass yd extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicTanh(t), yd.ClassName, e);\n }\n _polymorphicTanh(e) {\n return Gi(e, Math.tanh);\n }\n}\nyd.ClassName = \"FGTanhBlock\";\nU(yd.ClassName, yd);\nclass Cd extends $t {\n constructor(e) {\n super(Oe, hi, (t) => this._polymorphicAsinh(t), Cd.ClassName, e);\n }\n _polymorphicAsinh(e) {\n return Gi(e, Math.asinh);\n }\n}\nCd.ClassName = \"FGAsinhBlock\";\nU(Cd.ClassName, Cd);\nclass Ad extends $t {\n constructor(e) {\n super(Oe, hi, (t) => this._polymorphicAcosh(t), Ad.ClassName, e);\n }\n _polymorphicAcosh(e) {\n return Gi(e, Math.acosh);\n }\n}\nAd.ClassName = \"FGAcoshBlock\";\nU(Ad.ClassName, Ad);\nclass Rd extends $t {\n constructor(e) {\n super(Oe, hi, (t) => this._polymorphicAtanh(t), Rd.ClassName, e);\n }\n _polymorphicAtanh(e) {\n return Gi(e, Math.atanh);\n }\n}\nRd.ClassName = \"FGAtanhBlock\";\nU(Rd.ClassName, Rd);\nclass Id extends $t {\n constructor(e) {\n super(Oe, hi, (t) => this._polymorphicExp(t), Id.ClassName, e);\n }\n _polymorphicExp(e) {\n return Gi(e, Math.exp);\n }\n}\nId.ClassName = \"FGExpBlock\";\nU(Id.ClassName, Id);\nclass Pd extends $t {\n constructor(e) {\n super(Oe, hi, (t) => this._polymorphicLog(t), Pd.ClassName, e);\n }\n _polymorphicLog(e) {\n return Gi(e, Math.log);\n }\n}\nPd.ClassName = \"FGLogBlock\";\nU(Pd.ClassName, Pd);\nclass Md extends $t {\n constructor(e) {\n super(Oe, hi, (t) => this._polymorphicLog2(t), Md.ClassName, e);\n }\n _polymorphicLog2(e) {\n return Gi(e, Math.log2);\n }\n}\nMd.ClassName = \"FGLog2Block\";\nU(Md.ClassName, Md);\nclass Dd extends $t {\n constructor(e) {\n super(Oe, hi, (t) => this._polymorphicLog10(t), Dd.ClassName, e);\n }\n _polymorphicLog10(e) {\n return Gi(e, Math.log10);\n }\n}\nDd.ClassName = \"FGLog10Block\";\nU(Dd.ClassName, Dd);\nclass Od extends $t {\n constructor(e) {\n super(Oe, hi, (t) => this._polymorphicSqrt(t), Od.ClassName, e);\n }\n _polymorphicSqrt(e) {\n return Gi(e, Math.sqrt);\n }\n}\nOd.ClassName = \"FGSqrtBlock\";\nU(Od.ClassName, Od);\nclass wd extends $t {\n constructor(e) {\n super(Oe, hi, (t) => this._polymorphicCubeRoot(t), wd.ClassName, e);\n }\n _polymorphicCubeRoot(e) {\n return Gi(e, Math.cbrt);\n }\n}\nwd.ClassName = \"FGCubeRootBlock\";\nU(wd.ClassName, wd);\nclass Nd extends os {\n constructor(e) {\n super(Oe, hi, hi, (t, i) => this._polymorphicPow(t, i), Nd.ClassName, e);\n }\n _polymorphicPow(e, t) {\n return Wf(e, t, Math.pow);\n }\n}\nNd.ClassName = \"FGPowBlock\";\nU(Nd.ClassName, Nd);\nclass Fd extends $t {\n constructor(e) {\n super(Oe, hi, (t) => this._polymorphicLength(t), Fd.ClassName, e);\n }\n _polymorphicLength(e) {\n switch (Qs(e)) {\n case \"Vector2\":\n case \"Vector3\":\n case \"Vector4\":\n return e.length();\n default:\n throw new Error(`Cannot compute length of value ${e}`);\n }\n }\n}\nFd.ClassName = \"FGLengthBlock\";\nU(Fd.ClassName, Fd);\nclass Ld extends $t {\n constructor(e) {\n super(Oe, Oe, (t) => this._polymorphicNormalize(t), Ld.ClassName, e);\n }\n _polymorphicNormalize(e) {\n switch (Qs(e)) {\n case \"Vector2\":\n case \"Vector3\":\n case \"Vector4\":\n return e.normalize();\n default:\n throw new Error(`Cannot normalize value ${e}`);\n }\n }\n}\nLd.ClassName = \"FGNormalizeBlock\";\nU(Ld.ClassName, Ld);\nclass Bd extends os {\n constructor(e) {\n super(oo, oo, oo, (t, i) => g.Cross(t, i), Bd.ClassName, e);\n }\n}\nBd.ClassName = \"FGCrossBlock\";\nU(Bd.ClassName, Bd);\nclass Vd extends os {\n constructor(e) {\n super(qg, hi, qg, (t, i) => Q.Transform(t, O.RotationZ(i)), Vd.ClassName, e);\n }\n}\nVd.ClassName = \"FGRotate2DBlock\";\nU(Vd.ClassName, Vd);\nclass Ud extends nT {\n constructor(e) {\n super(oo, oo, hi, oo, (t, i, s) => g.TransformCoordinates(t, O.RotationAxis(i, s)), Ud.ClassName, e);\n }\n}\nUd.ClassName = \"FGRotate3DBlock\";\nU(Ud.ClassName, Ud);\nclass kd extends $t {\n constructor(e) {\n super(Ko, Ko, (t) => O.Transpose(t), kd.ClassName, e);\n }\n}\nkd.ClassName = \"FGTransposeBlock\";\nU(kd.ClassName, kd);\nclass Gd extends $t {\n constructor(e) {\n super(Ko, hi, (t) => t.determinant(), Gd.ClassName, e);\n }\n}\nGd.ClassName = \"FGDeterminantBlock\";\nU(Gd.ClassName, Gd);\nclass zd extends $t {\n constructor(e) {\n super(Ko, Ko, (t) => O.Invert(t), zd.ClassName, e);\n }\n}\nzd.ClassName = \"FGInvertMatrixBlock\";\nU(zd.ClassName, zd);\nclass Wd extends os {\n constructor(e) {\n super(Ko, Ko, Ko, (t, i) => i.multiply(t), Wd.ClassName, e);\n }\n}\nWd.ClassName = \"FGMatMulBlock\";\nU(Wd.ClassName, Wd);\nclass Hd extends $t {\n constructor(e) {\n super(Ki, Ki, (t) => new ji(~t.value), Hd.ClassName, e);\n }\n}\nHd.ClassName = \"FGBitwiseNotBlock\";\nU(Hd.ClassName, Hd);\nclass Xd extends os {\n constructor(e) {\n super(Ki, Ki, Ki, (t, i) => new ji(t.value & i.value), Xd.ClassName, e);\n }\n}\nXd.ClassName = \"FGBitwiseAndBlock\";\nU(Xd.ClassName, Xd);\nclass $d extends os {\n constructor(e) {\n super(Ki, Ki, Ki, (t, i) => new ji(t.value | i.value), $d.ClassName, e);\n }\n}\n$d.ClassName = \"FGBitwiseOrBlock\";\nU($d.ClassName, $d);\nclass Yd extends os {\n constructor(e) {\n super(Ki, Ki, Ki, (t, i) => new ji(t.value ^ i.value), Yd.ClassName, e);\n }\n}\nYd.ClassName = \"FGBitwiseXorBlock\";\nU(Yd.ClassName, Yd);\nclass jd extends os {\n constructor(e) {\n super(Ki, Ki, Ki, (t, i) => new ji(t.value << i.value), jd.ClassName, e);\n }\n}\njd.ClassName = \"FGBitwiseLeftShiftBlock\";\nU(jd.ClassName, jd);\nclass Kd extends os {\n constructor(e) {\n super(Ki, Ki, Ki, (t, i) => new ji(t.value >> i.value), Kd.ClassName, e);\n }\n}\nKd.ClassName = \"FGBitwiseRightShiftBlock\";\nU(Kd.ClassName, Kd);\nclass qd extends $t {\n constructor(e) {\n super(Ki, Ki, (t) => new ji(Math.clz32(t.value)), qd.ClassName, e);\n }\n}\nqd.ClassName = \"FGCountLeadingZerosBlock\";\nU(qd.ClassName, qd);\nclass Qd extends $t {\n constructor(e) {\n super(Ki, Ki, (t) => new ji(t.value ? 31 - Math.clz32(t.value & -t.value) : 32), Qd.ClassName, e);\n }\n}\nQd.ClassName = \"FGCountTrailingZerosBlock\";\nU(Qd.ClassName, Qd);\nfunction uX(a) {\n let e = 0;\n for (; a; )\n e += a & 1, a >>= 1;\n return e;\n}\nclass Zd extends $t {\n constructor(e) {\n super(Ki, Ki, (t) => new ji(uX(t.value)), Zd.ClassName, e);\n }\n}\nZd.ClassName = \"FGCountOneBitsBlock\";\nU(Zd.ClassName, Zd);\nclass ym extends Vf {\n /**\n * @internal\n */\n _preparePendingTasks(e) {\n if (!e._getExecutionVariable(this, \"sceneReadyObserver\")) {\n const i = e.configuration.scene.onReadyObservable.add(() => {\n this._execute(e);\n });\n e._setExecutionVariable(this, \"sceneReadyObserver\", i);\n }\n }\n /**\n * @internal\n */\n _cancelPendingTasks(e) {\n const t = e._getExecutionVariable(this, \"sceneReadyObserver\");\n e.configuration.scene.onReadyObservable.remove(t), e._deleteExecutionVariable(this, \"sceneReadyObserver\");\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return ym.ClassName;\n }\n}\nym.ClassName = \"FGSceneReadyEventBlock\";\nU(\"FGSceneReadyEventBlock\", ym);\nclass Jd extends Vf {\n constructor(e) {\n super(e), this.config = e;\n for (let t = 0; t < this.config.eventData.length; t++) {\n const i = this.config.eventData[t];\n this.registerDataOutput(i, Oe);\n }\n }\n _preparePendingTasks(e) {\n const t = e.configuration.coordinator.getCustomEventObservable(this.config.eventId);\n this._eventObserver = t.add((i) => {\n for (let s = 0; s < i.length; s++)\n this.dataOutputs[s].setValue(i[s], e);\n this._execute(e);\n });\n }\n _cancelPendingTasks(e) {\n const t = e.configuration.coordinator.getCustomEventObservable(this.config.eventId);\n t ? t.remove(this._eventObserver) : J.Warn(`FlowGraphReceiveCustomEventBlock: Missing observable for event ${this.config.eventId}`);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return Jd.ClassName;\n }\n /**\n * Serializes this block\n * @param serializationObject the object to serialize to\n */\n serialize(e) {\n super.serialize(e), e.eventId = this.config.eventId, e.eventData = this.config.eventData;\n }\n}\nJd.ClassName = \"FGReceiveCustomEventBlock\";\nU(Jd.ClassName, Jd);\nclass ef extends Vf {\n /**\n * @internal\n */\n _preparePendingTasks(e) {\n if (!e._getExecutionVariable(this, \"sceneBeforeRender\")) {\n const i = e.configuration.scene.onBeforeRenderObservable.add(() => {\n this._execute(e);\n });\n e._setExecutionVariable(this, \"sceneBeforeRender\", i);\n }\n }\n /**\n * @internal\n */\n _cancelPendingTasks(e) {\n const t = e._getExecutionVariable(this, \"sceneBeforeRender\");\n e.configuration.scene.onBeforeRenderObservable.remove(t), e._deleteExecutionVariable(this, \"sceneBeforeRender\");\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return ef.ClassName;\n }\n}\nef.ClassName = \"FGSceneTickEventBlock\";\nU(ef.ClassName, ef);\nclass dX extends bf {\n constructor(e, t) {\n super(e, t);\n }\n async construct(e, t) {\n let i = this.rootNode;\n i.position = Il(t.position), t.rotation.x != null || t.rotation.y != null || t.rotation.z != null ? i.rotation = cv(t.rotation) : i.lookAt(new g(0, 0, 0)), i.scaling = Il(t.scale);\n let s = U_.CreatePlane(\"TextContainer\", { size: t.size, sideOrientation: H.DOUBLESIDE });\n s.rotation.y = Math.PI, s.parent = i;\n var r = this.createText(\n new Ce(t.fontColor.x / 255, t.fontColor.y / 255, t.fontColor.z / 255, t.fontColor.w),\n new Ce(t.backgroundColor.x / 255, t.backgroundColor.y / 255, t.backgroundColor.z / 255, t.backgroundColor.w),\n t.text,\n t.fontSize,\n t.padding,\n t.cornerRadius\n );\n this.textBlock = r.getChildByType(\"\", \"TextBlock\");\n var n = ir.CreateForMesh(s);\n n.addControl(r);\n var o = new zo();\n o.setEasingMode(Ti.EASINGMODE_EASEIN), r.onPointerClickObservable.add(() => {\n t.situationID != null ? e.getSituationManager().changeSituation(t.situationID, { playAnimation: !1 }) : bs.triggerOnSituationComponentClicked(this);\n }), r.onPointerEnterObservable.add(() => {\n if (t.situationID != null && oe.CreateAndStartAnimation(\"\", s, \"scaling\", 50, 10, s.scaling, g.One().scale(1.05), 0, o), t.fontColor_hover != null) {\n var l = r.getChildByType(\"\", \"TextBlock\");\n l.color = new re(t.fontColor_hover.x / 255, t.fontColor_hover.y / 255, t.fontColor_hover.z / 255).toHexString(), l.alpha = t.fontColor_hover.w;\n }\n bs.triggerOnSituationComponentHoverOver(this);\n }), r.onPointerOutObservable.add(() => {\n if (t.situationID != null && oe.CreateAndStartAnimation(\"\", s, \"scaling\", 50, 10, s.scaling, g.One(), 0, o), t.fontColor_hover != null) {\n var l = r.getChildByType(\"\", \"TextBlock\");\n l.color = new re(t.fontColor.x / 255, t.fontColor.y / 255, t.fontColor.z / 255).toHexString(), l.alpha = t.fontColor.w;\n }\n bs.triggerOnSituationComponentHoverOut(this);\n }), s.actionManager = new dt(e.getScene()), s.actionManager.registerAction(new ln(dt.OnPointerOutTrigger, () => {\n if (t.situationID != null && oe.CreateAndStartAnimation(\"\", s, \"scaling\", 50, 10, s.scaling, g.One(), 0, o), t.fontColor_hover != null) {\n var l = r.getChildByType(\"\", \"TextBlock\");\n l.color = new re(t.fontColor.x / 255, t.fontColor.y / 255, t.fontColor.z / 255).toHexString(), l.alpha = t.fontColor.w;\n }\n }));\n }\n createText(e, t, i, s, r, n) {\n var o = new po();\n o.thickness = 0, o.adaptHeightToChildren = !0, o.adaptWidthToChildren = !0, o.hoverCursor = \"pointer\";\n var l = new po();\n l.thickness = 0, l.background = t.toHexString(!0), l.alpha = t.a, l.width = \"100%\", l.height = \"100%\", l.cornerRadius = n, o.addControl(l);\n var h = new $r();\n return h.text = i, h.height = \"100%\", h.width = \"100%\", h.fontSize = s, h.color = e.toHexString(!0), h.alpha = e.a, h.textHorizontalAlignment = Le.HORIZONTAL_ALIGNMENT_LEFT, h.textVerticalAlignment = Le.VERTICAL_ALIGNMENT_CENTER, h.paddingLeftInPixels = r, h.paddingRightInPixels = r, h.paddingTopInPixels = r, h.paddingBottomInPixels = r, h.textWrapping = Og.WordWrap, h.resizeToFit = !0, o.addControl(h), o;\n }\n // Color Conversion\n hexToColor3(e) {\n let t = !1;\n var i = e.slice(e.startsWith(\"#\") ? 1 : 0);\n i.length === 3 ? i = [...i].map((r) => r + r).join(\"\") : i.length === 8 && (t = !0), i = parseInt(i, 16);\n var s = new re(\n (i >>> (t ? 24 : 16)) / 255,\n ((i & (t ? 16711680 : 65280)) >>> (t ? 16 : 8)) / 255,\n ((i & (t ? 65280 : 255)) >>> (t ? 8 : 0)) / 255\n );\n return s;\n }\n vector3ToHex(e) {\n return \"#\" + ((1 << 24) + Math.round(e.x << 16) + Math.round(e.y << 8) + Math.round(e.z)).toString(16).slice(1);\n }\n vector4ToHex(e) {\n return \"#\" + (1 + (Math.round(e.x) << 24) + (Math.round(e.y) << 16) + (Math.round(e.z) << 8) + Math.round(e.w)).toString(16).slice(1);\n }\n vector3toColor3(e) {\n return new re(e.x / 255, e.y / 255, e.z / 255);\n }\n}\nclass fX {\n constructor(e, t, i, s) {\n this.situationComponents = [], this.isCreated = !1, this.isPreloaded = !1, this.id = e.id, this.name = e.name, this.situationConfig = e, this.scene = t.getScene(), this.situationsNode = i, this.situationManager = s;\n }\n createSituation() {\n console.log(\"[Logic] Create Situation \" + this.name), this.situationNode = new Ye(this.name, this.scene), this.situationNode.parent = this.situationsNode, this.situationComponents.push(new U1(this, this.situationConfig.panorama)), this.situationConfig.situationComponents.forEach((e) => {\n e.type == \"Transition\" && this.situationComponents.push(new A1(this, e)), e.type == \"Button\" && this.situationComponents.push(new R1(this, e)), e.type == \"PanoramaOverlayAnimation\" && this.situationComponents.push(new G1(this, e)), e.type == \"PanoramaOverlayImage\" && this.situationComponents.push(new z1(this, e)), e.type == \"Video\" && this.situationComponents.push(new W1(this, e)), e.type == \"Image\" && this.situationComponents.push(new H1(this, e)), e.type == \"Text\" && this.situationComponents.push(new dX(this, e));\n }), this.isCreated = !0;\n }\n async enterSituation(e) {\n if (console.log(\"[Logic] Enter Situation \" + this.name), this.isCreated ? (console.log(\"[Logic] Situation \" + this.name + \" already loaded. Reactivate Situation\"), this.toggleSituatioNodes(!0)) : (this.isPreloaded || await this.preloadSituation(!1), this.createSituation(), this.preloadAdjacentSituations()), e.playAnimation)\n await this.enterSituationAnimation({ alpha: e.alpha, beta: e.beta });\n else {\n let t = this.scene.activeCamera;\n t.alpha = e.alpha == null ? this.situationConfig.rotation.x : e.alpha, t.beta = e.beta == null ? this.situationConfig.rotation.y : e.beta;\n }\n }\n async leaveSituation(e = { playAnimation: !0, alpha: void 0, beta: void 0 }) {\n console.log(\"[Logic] Leave Situation \" + this.name), e.playAnimation && await this.leaveSituationAnimation(), this.toggleSituatioNodes(!1);\n }\n toggleSituatioNodes(e) {\n this.situationNode.setEnabled(e), this.situationComponents.forEach((t) => {\n e ? t.enable() : t.disable();\n });\n }\n preloadSituation(e) {\n return new Promise((t) => {\n console.log(\"[Logic] Loading Situation \" + this.name + (e ? \" in the Background!\" : \"\"));\n let i = /* @__PURE__ */ new Set();\n i.add(this.situationConfig.panorama.panoramaMediaID), this.situationConfig.situationComponents.forEach((r) => {\n if (r.type == \"Transition\") {\n let n = r;\n i.add(n.textureMediaID);\n }\n if (r.type == \"Button\") {\n let n = r;\n i.add(n.textureMediaID);\n }\n if (r.type == \"Image\") {\n let n = r;\n i.add(n.textureMediaID);\n }\n if (r.type == \"Video\") {\n let n = r;\n i.add(n.videoMediaID), n.alphaTextureMediaID && i.add(n.alphaTextureMediaID), n.alphaVideoMediaID && i.add(n.alphaVideoMediaID);\n }\n if (r.type == \"PanoramaOverlayAnimation\") {\n let n = r;\n i.add(n.videoMediaID), n.buttonMediaID && i.add(n.buttonMediaID), n.alphaTextureMediaID && i.add(n.alphaTextureMediaID), n.alphaVideoMediaID && i.add(n.alphaVideoMediaID);\n }\n if (r.type == \"PanoramaOverlayImage\") {\n let n = r;\n i.add(n.textureMediaID), i.add(n.alphaMediaID);\n }\n }), e || this.scene.getEngine().displayLoadingUI();\n let s = 0;\n i.forEach(async (r) => {\n await on.getMedia(r).preloadMediaFile(), s++, s == i.size && (console.log(\"[Logic] Situation \" + this.name + \" loaded\"), this.isPreloaded = !0, e || this.scene.getEngine().hideLoadingUI(), t());\n });\n });\n }\n preloadAdjacentSituations() {\n console.log(\"[Logic] Preload adjacent situations....\");\n let e = [];\n this.situationConfig.situationComponents.forEach((t) => {\n t.type == \"Transition\" && e.push(t.targetSituationID);\n }), console.log(\"[Logic] \" + e.length + \" adjacent Situations to preload\"), e.forEach((t) => {\n let i = this.situationManager.getSituations().find((s) => s.getID() == t);\n i.isPreloaded || i.preloadSituation(!0);\n });\n }\n async enterSituationAnimation(e = { alpha: void 0, beta: void 0 }) {\n return console.log(\"[Logic] Play Leave Situation Animation\"), new Promise((t) => {\n var i = new zo();\n i.setEasingMode(Ti.EASINGMODE_EASEOUT);\n var s = new zo();\n s.setEasingMode(Ti.EASINGMODE_EASEINOUT);\n let r = this.scene.activeCamera, n = e.alpha == null ? this.situationConfig.rotation.x : e.alpha, o = e.beta == null ? this.situationConfig.rotation.y : e.beta;\n r.target = new g(0, 0, 0).subtract(r.target.scale(1.5)), r.alpha -= Math.PI, r.alpha %= 2 * Math.PI, r.alpha += 0 >= r.alpha ? 2 * Math.PI : 0, n %= 2 * Math.PI, n += 0 >= n ? 2 * Math.PI : 0, Math.abs(r.alpha) - Math.abs(n) > Math.PI ? n += Math.PI * 2 : Math.abs(n) - Math.abs(r.alpha) > Math.PI && (n -= Math.PI * 2), r.beta = 1.5;\n let l = 60, h = 1e3;\n oe.CreateAndStartAnimation(\"\", r, \"target\", l, h / 1e3 * l, r.target, new g(0, 0, 0), 0, i), setTimeout(() => {\n oe.CreateAndStartAnimation(\"\", r, \"alpha\", l, h / 1e3 * l, r.alpha, n, 0, s), oe.CreateAndStartAnimation(\"\", r, \"beta\", l, h / 1e3 * l, r.beta, o, 0, s, () => {\n t();\n });\n }, 400);\n });\n }\n async leaveSituationAnimation() {\n return console.log(\"[Logic] Play Leave Situation Animation\"), new Promise((e) => {\n var t = new zo();\n t.setEasingMode(Ti.EASINGMODE_EASEIN);\n let i = this.scene.activeCamera, s = 60, r = 800, n = 40, c = this.scene.pick(this.scene.pointerX, this.scene.pointerY).pickedMesh.parent.position, u = new g(c.x, 0, c.z).normalize(), d = i.target.add(u.scale(n)), f = g.Project(\n c,\n O.Identity(),\n this.scene.getTransformMatrix(),\n i.viewport.toGlobal(\n this.scene.getEngine().getRenderWidth(),\n this.scene.getEngine().getRenderHeight()\n )\n ), p = new g(c.x, 0, c.z), _ = i.getForwardRay().direction;\n _.y = 0;\n let m = p.x * _.x + p.y * _.y + p.z * _.z, x = Math.acos(m / (p.length() * _.length())), v = f.x > this.scene.getEngine().getRenderWidth() / 2 ? i.alpha - x : i.alpha + x;\n setTimeout(() => {\n let T = this.scene.getEngine().getRenderingCanvas(), E = T.style.filter, b = T.style.transition;\n T.style.transition = \".8s filter ease\", T.style.filter += \" blur(10px)\", setTimeout(() => {\n T.style.filter = E;\n }, 800), setTimeout(() => {\n T.style.transition = b;\n }, 1600);\n }, r - 500), oe.CreateAndStartAnimation(\"\", i, \"alpha\", s, r / 1e3 * s, i.alpha, v, 0, t), oe.CreateAndStartAnimation(\"\", i, \"target\", s, r / 1e3 * s, i.target, d, 0, t), oe.CreateAndStartAnimation(\"\", i, \"beta\", s, r / 1e3 * s, i.beta, i.beta, 0, t, () => {\n e();\n });\n });\n }\n ////////////\n // Setter //\n ////////////\n setName(e) {\n this.situationNode && (this.situationNode.name = e), this.name = e;\n }\n ////////////\n // Getter //\n ////////////\n getID() {\n return this.id;\n }\n getName() {\n return this.name;\n }\n getScene() {\n return this.scene;\n }\n getSituationNode() {\n return this.situationNode;\n }\n getSituationManager() {\n return this.situationManager;\n }\n // isCreated\n isSituationCreated() {\n return this.isCreated;\n }\n getSituationComponents() {\n return this.situationComponents;\n }\n getSituationConfig() {\n return this.situationConfig;\n }\n}\nclass pX {\n constructor(e, t) {\n this.situtations = [], this.tourConfig = t, this.fluxGraphicsEngine = e, this.activeSituationID = t.startSituationID;\n }\n setup() {\n let e = new Ye(\"Situations\");\n this.tourConfig.situations.forEach((i) => {\n let s = new fX(i, this.fluxGraphicsEngine, e, this);\n this.situtations.push(s);\n });\n const t = new URLSearchParams(window.location.search);\n t.get(\"SituationID\") && (this.activeSituationID = parseFloat(t.get(\"SituationID\"))), this.changeSituation(this.activeSituationID, { playAnimation: !1 }), this.registerWindowURLHandling();\n }\n async changeSituation(e, t = { playAnimation: !0, alpha: void 0, beta: void 0 }) {\n let i = this.situtations.find((r) => r.getID() == this.activeSituationID);\n i.isSituationCreated() && (bs.triggerOnBeforeSituationLeave(e, this.activeSituationID), await i.leaveSituation(t), bs.triggerOnAfterSituationLeave(e, this.activeSituationID)), this.activeSituationID = e, this.handleWindowURL(), bs.triggerOnBeforeSituationEnter(e, this.activeSituationID), await this.situtations.find((r) => r.getID() == e).enterSituation(t), bs.triggerOnAfterSituationEnter(e, this.activeSituationID);\n }\n registerWindowURLHandling() {\n window.onpopstate = (e) => {\n let t = e.state.situationID;\n this.changeSituation(t, { playAnimation: !1 });\n }, this.handleWindowURL();\n }\n handleWindowURL() {\n let e = { situationID: this.activeSituationID }, t = new URL(window.location.href);\n const i = new URLSearchParams(window.location.search);\n if (i.get(\"SituationID\") && i.get(\"SituationID\") == this.activeSituationID.toString())\n return;\n i.set(\"SituationID\", this.activeSituationID.toString()), t.search = i.toString();\n let s = t.toString();\n window.history.pushState(e, \"\", s);\n }\n getSituations() {\n return this.situtations;\n }\n getActiveSituationID() {\n return this.activeSituationID;\n }\n getActiveSituation() {\n return this.situtations.find((e) => e.getID() == this.activeSituationID);\n }\n}\nclass _X {\n constructor(e, t) {\n this.tourConfig = t, this.situationManager = new pX(e, this.tourConfig), this.fluxGraphicsEngine = e;\n }\n setup() {\n on.setup(this.tourConfig.mediaFiles, this.fluxGraphicsEngine), this.situationManager.setup();\n }\n /////////////\n // Actions //\n /////////////\n changeSituation(e, t = { playAnimation: !0, alpha: void 0, beta: void 0 }) {\n this.situationManager.changeSituation(e, t);\n }\n ////////////\n // Getter //\n ////////////\n getActiveSituationID() {\n return this.situationManager.getActiveSituationID();\n }\n getSituations() {\n return this.situationManager.getSituations();\n }\n}\nvar ex = { exports: {} }, bI = {}, sa = {}, dc = {}, Hf = {}, Gt = {}, tf = {};\n(function(a) {\n Object.defineProperty(a, \"__esModule\", { value: !0 }), a.regexpCode = a.getEsmExportName = a.getProperty = a.safeStringify = a.stringify = a.strConcat = a.addCodeArg = a.str = a._ = a.nil = a._Code = a.Name = a.IDENTIFIER = a._CodeOrName = void 0;\n class e {\n }\n a._CodeOrName = e, a.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\n class t extends e {\n constructor(v) {\n if (super(), !a.IDENTIFIER.test(v))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = v;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return !1;\n }\n get names() {\n return { [this.str]: 1 };\n }\n }\n a.Name = t;\n class i extends e {\n constructor(v) {\n super(), this._items = typeof v == \"string\" ? [v] : v;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return !1;\n const v = this._items[0];\n return v === \"\" || v === '\"\"';\n }\n get str() {\n var v;\n return (v = this._str) !== null && v !== void 0 ? v : this._str = this._items.reduce((T, E) => `${T}${E}`, \"\");\n }\n get names() {\n var v;\n return (v = this._names) !== null && v !== void 0 ? v : this._names = this._items.reduce((T, E) => (E instanceof t && (T[E.str] = (T[E.str] || 0) + 1), T), {});\n }\n }\n a._Code = i, a.nil = new i(\"\");\n function s(x, ...v) {\n const T = [x[0]];\n let E = 0;\n for (; E < v.length; )\n o(T, v[E]), T.push(x[++E]);\n return new i(T);\n }\n a._ = s;\n const r = new i(\"+\");\n function n(x, ...v) {\n const T = [f(x[0])];\n let E = 0;\n for (; E < v.length; )\n T.push(r), o(T, v[E]), T.push(r, f(x[++E]));\n return l(T), new i(T);\n }\n a.str = n;\n function o(x, v) {\n v instanceof i ? x.push(...v._items) : v instanceof t ? x.push(v) : x.push(u(v));\n }\n a.addCodeArg = o;\n function l(x) {\n let v = 1;\n for (; v < x.length - 1; ) {\n if (x[v] === r) {\n const T = h(x[v - 1], x[v + 1]);\n if (T !== void 0) {\n x.splice(v - 1, 3, T);\n continue;\n }\n x[v++] = \"+\";\n }\n v++;\n }\n }\n function h(x, v) {\n if (v === '\"\"')\n return x;\n if (x === '\"\"')\n return v;\n if (typeof x == \"string\")\n return v instanceof t || x[x.length - 1] !== '\"' ? void 0 : typeof v != \"string\" ? `${x.slice(0, -1)}${v}\"` : v[0] === '\"' ? x.slice(0, -1) + v.slice(1) : void 0;\n if (typeof v == \"string\" && v[0] === '\"' && !(x instanceof t))\n return `\"${x}${v.slice(1)}`;\n }\n function c(x, v) {\n return v.emptyStr() ? x : x.emptyStr() ? v : n`${x}${v}`;\n }\n a.strConcat = c;\n function u(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null ? x : f(Array.isArray(x) ? x.join(\",\") : x);\n }\n function d(x) {\n return new i(f(x));\n }\n a.stringify = d;\n function f(x) {\n return JSON.stringify(x).replace(/\\u2028/g, \"\\\\u2028\").replace(/\\u2029/g, \"\\\\u2029\");\n }\n a.safeStringify = f;\n function p(x) {\n return typeof x == \"string\" && a.IDENTIFIER.test(x) ? new i(`.${x}`) : s`[${x}]`;\n }\n a.getProperty = p;\n function _(x) {\n if (typeof x == \"string\" && a.IDENTIFIER.test(x))\n return new i(`${x}`);\n throw new Error(`CodeGen: invalid export name: ${x}, use explicit $id name mapping`);\n }\n a.getEsmExportName = _;\n function m(x) {\n return new i(x.toString());\n }\n a.regexpCode = m;\n})(tf);\nvar tx = {};\n(function(a) {\n Object.defineProperty(a, \"__esModule\", { value: !0 }), a.ValueScope = a.ValueScopeName = a.Scope = a.varKinds = a.UsedValueState = void 0;\n const e = tf;\n class t extends Error {\n constructor(h) {\n super(`CodeGen: \"code\" for ${h} not defined`), this.value = h.value;\n }\n }\n var i;\n (function(l) {\n l[l.Started = 0] = \"Started\", l[l.Completed = 1] = \"Completed\";\n })(i || (a.UsedValueState = i = {})), a.varKinds = {\n const: new e.Name(\"const\"),\n let: new e.Name(\"let\"),\n var: new e.Name(\"var\")\n };\n class s {\n constructor({ prefixes: h, parent: c } = {}) {\n this._names = {}, this._prefixes = h, this._parent = c;\n }\n toName(h) {\n return h instanceof e.Name ? h : this.name(h);\n }\n name(h) {\n return new e.Name(this._newName(h));\n }\n _newName(h) {\n const c = this._names[h] || this._nameGroup(h);\n return `${h}${c.index++}`;\n }\n _nameGroup(h) {\n var c, u;\n if (!((u = (c = this._parent) === null || c === void 0 ? void 0 : c._prefixes) === null || u === void 0) && u.has(h) || this._prefixes && !this._prefixes.has(h))\n throw new Error(`CodeGen: prefix \"${h}\" is not allowed in this scope`);\n return this._names[h] = { prefix: h, index: 0 };\n }\n }\n a.Scope = s;\n class r extends e.Name {\n constructor(h, c) {\n super(c), this.prefix = h;\n }\n setValue(h, { property: c, itemIndex: u }) {\n this.value = h, this.scopePath = (0, e._)`.${new e.Name(c)}[${u}]`;\n }\n }\n a.ValueScopeName = r;\n const n = (0, e._)`\\n`;\n class o extends s {\n constructor(h) {\n super(h), this._values = {}, this._scope = h.scope, this.opts = { ...h, _n: h.lines ? n : e.nil };\n }\n get() {\n return this._scope;\n }\n name(h) {\n return new r(h, this._newName(h));\n }\n value(h, c) {\n var u;\n if (c.ref === void 0)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const d = this.toName(h), { prefix: f } = d, p = (u = c.key) !== null && u !== void 0 ? u : c.ref;\n let _ = this._values[f];\n if (_) {\n const v = _.get(p);\n if (v)\n return v;\n } else\n _ = this._values[f] = /* @__PURE__ */ new Map();\n _.set(p, d);\n const m = this._scope[f] || (this._scope[f] = []), x = m.length;\n return m[x] = c.ref, d.setValue(c, { property: f, itemIndex: x }), d;\n }\n getValue(h, c) {\n const u = this._values[h];\n if (u)\n return u.get(c);\n }\n scopeRefs(h, c = this._values) {\n return this._reduceValues(c, (u) => {\n if (u.scopePath === void 0)\n throw new Error(`CodeGen: name \"${u}\" has no value`);\n return (0, e._)`${h}${u.scopePath}`;\n });\n }\n scopeCode(h = this._values, c, u) {\n return this._reduceValues(h, (d) => {\n if (d.value === void 0)\n throw new Error(`CodeGen: name \"${d}\" has no value`);\n return d.value.code;\n }, c, u);\n }\n _reduceValues(h, c, u = {}, d) {\n let f = e.nil;\n for (const p in h) {\n const _ = h[p];\n if (!_)\n continue;\n const m = u[p] = u[p] || /* @__PURE__ */ new Map();\n _.forEach((x) => {\n if (m.has(x))\n return;\n m.set(x, i.Started);\n let v = c(x);\n if (v) {\n const T = this.opts.es5 ? a.varKinds.var : a.varKinds.const;\n f = (0, e._)`${f}${T} ${x} = ${v};${this.opts._n}`;\n } else if (v = d == null ? void 0 : d(x))\n f = (0, e._)`${f}${v}${this.opts._n}`;\n else\n throw new t(x);\n m.set(x, i.Completed);\n });\n }\n return f;\n }\n }\n a.ValueScope = o;\n})(tx);\n(function(a) {\n Object.defineProperty(a, \"__esModule\", { value: !0 }), a.or = a.and = a.not = a.CodeGen = a.operators = a.varKinds = a.ValueScopeName = a.ValueScope = a.Scope = a.Name = a.regexpCode = a.stringify = a.getProperty = a.nil = a.strConcat = a.str = a._ = void 0;\n const e = tf, t = tx;\n var i = tf;\n Object.defineProperty(a, \"_\", { enumerable: !0, get: function() {\n return i._;\n } }), Object.defineProperty(a, \"str\", { enumerable: !0, get: function() {\n return i.str;\n } }), Object.defineProperty(a, \"strConcat\", { enumerable: !0, get: function() {\n return i.strConcat;\n } }), Object.defineProperty(a, \"nil\", { enumerable: !0, get: function() {\n return i.nil;\n } }), Object.defineProperty(a, \"getProperty\", { enumerable: !0, get: function() {\n return i.getProperty;\n } }), Object.defineProperty(a, \"stringify\", { enumerable: !0, get: function() {\n return i.stringify;\n } }), Object.defineProperty(a, \"regexpCode\", { enumerable: !0, get: function() {\n return i.regexpCode;\n } }), Object.defineProperty(a, \"Name\", { enumerable: !0, get: function() {\n return i.Name;\n } });\n var s = tx;\n Object.defineProperty(a, \"Scope\", { enumerable: !0, get: function() {\n return s.Scope;\n } }), Object.defineProperty(a, \"ValueScope\", { enumerable: !0, get: function() {\n return s.ValueScope;\n } }), Object.defineProperty(a, \"ValueScopeName\", { enumerable: !0, get: function() {\n return s.ValueScopeName;\n } }), Object.defineProperty(a, \"varKinds\", { enumerable: !0, get: function() {\n return s.varKinds;\n } }), a.operators = {\n GT: new e._Code(\">\"),\n GTE: new e._Code(\">=\"),\n LT: new e._Code(\"<\"),\n LTE: new e._Code(\"<=\"),\n EQ: new e._Code(\"===\"),\n NEQ: new e._Code(\"!==\"),\n NOT: new e._Code(\"!\"),\n OR: new e._Code(\"||\"),\n AND: new e._Code(\"&&\"),\n ADD: new e._Code(\"+\")\n };\n class r {\n optimizeNodes() {\n return this;\n }\n optimizeNames(V, K) {\n return this;\n }\n }\n class n extends r {\n constructor(V, K, ie) {\n super(), this.varKind = V, this.name = K, this.rhs = ie;\n }\n render({ es5: V, _n: K }) {\n const ie = V ? t.varKinds.var : this.varKind, fe = this.rhs === void 0 ? \"\" : ` = ${this.rhs}`;\n return `${ie} ${this.name}${fe};` + K;\n }\n optimizeNames(V, K) {\n if (V[this.name.str])\n return this.rhs && (this.rhs = te(this.rhs, V, K)), this;\n }\n get names() {\n return this.rhs instanceof e._CodeOrName ? this.rhs.names : {};\n }\n }\n class o extends r {\n constructor(V, K, ie) {\n super(), this.lhs = V, this.rhs = K, this.sideEffects = ie;\n }\n render({ _n: V }) {\n return `${this.lhs} = ${this.rhs};` + V;\n }\n optimizeNames(V, K) {\n if (!(this.lhs instanceof e.Name && !V[this.lhs.str] && !this.sideEffects))\n return this.rhs = te(this.rhs, V, K), this;\n }\n get names() {\n const V = this.lhs instanceof e.Name ? {} : { ...this.lhs.names };\n return ne(V, this.rhs);\n }\n }\n class l extends o {\n constructor(V, K, ie, fe) {\n super(V, ie, fe), this.op = K;\n }\n render({ _n: V }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + V;\n }\n }\n class h extends r {\n constructor(V) {\n super(), this.label = V, this.names = {};\n }\n render({ _n: V }) {\n return `${this.label}:` + V;\n }\n }\n class c extends r {\n constructor(V) {\n super(), this.label = V, this.names = {};\n }\n render({ _n: V }) {\n return `break${this.label ? ` ${this.label}` : \"\"};` + V;\n }\n }\n class u extends r {\n constructor(V) {\n super(), this.error = V;\n }\n render({ _n: V }) {\n return `throw ${this.error};` + V;\n }\n get names() {\n return this.error.names;\n }\n }\n class d extends r {\n constructor(V) {\n super(), this.code = V;\n }\n render({ _n: V }) {\n return `${this.code};` + V;\n }\n optimizeNodes() {\n return `${this.code}` ? this : void 0;\n }\n optimizeNames(V, K) {\n return this.code = te(this.code, V, K), this;\n }\n get names() {\n return this.code instanceof e._CodeOrName ? this.code.names : {};\n }\n }\n class f extends r {\n constructor(V = []) {\n super(), this.nodes = V;\n }\n render(V) {\n return this.nodes.reduce((K, ie) => K + ie.render(V), \"\");\n }\n optimizeNodes() {\n const { nodes: V } = this;\n let K = V.length;\n for (; K--; ) {\n const ie = V[K].optimizeNodes();\n Array.isArray(ie) ? V.splice(K, 1, ...ie) : ie ? V[K] = ie : V.splice(K, 1);\n }\n return V.length > 0 ? this : void 0;\n }\n optimizeNames(V, K) {\n const { nodes: ie } = this;\n let fe = ie.length;\n for (; fe--; ) {\n const pe = ie[fe];\n pe.optimizeNames(V, K) || (le(V, pe.names), ie.splice(fe, 1));\n }\n return ie.length > 0 ? this : void 0;\n }\n get names() {\n return this.nodes.reduce((V, K) => j(V, K.names), {});\n }\n }\n class p extends f {\n render(V) {\n return \"{\" + V._n + super.render(V) + \"}\" + V._n;\n }\n }\n class _ extends f {\n }\n class m extends p {\n }\n m.kind = \"else\";\n class x extends p {\n constructor(V, K) {\n super(K), this.condition = V;\n }\n render(V) {\n let K = `if(${this.condition})` + super.render(V);\n return this.else && (K += \"else \" + this.else.render(V)), K;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const V = this.condition;\n if (V === !0)\n return this.nodes;\n let K = this.else;\n if (K) {\n const ie = K.optimizeNodes();\n K = this.else = Array.isArray(ie) ? new m(ie) : ie;\n }\n if (K)\n return V === !1 ? K instanceof x ? K : K.nodes : this.nodes.length ? this : new x(_e(V), K instanceof x ? [K] : K.nodes);\n if (!(V === !1 || !this.nodes.length))\n return this;\n }\n optimizeNames(V, K) {\n var ie;\n if (this.else = (ie = this.else) === null || ie === void 0 ? void 0 : ie.optimizeNames(V, K), !!(super.optimizeNames(V, K) || this.else))\n return this.condition = te(this.condition, V, K), this;\n }\n get names() {\n const V = super.names;\n return ne(V, this.condition), this.else && j(V, this.else.names), V;\n }\n }\n x.kind = \"if\";\n class v extends p {\n }\n v.kind = \"for\";\n class T extends v {\n constructor(V) {\n super(), this.iteration = V;\n }\n render(V) {\n return `for(${this.iteration})` + super.render(V);\n }\n optimizeNames(V, K) {\n if (super.optimizeNames(V, K))\n return this.iteration = te(this.iteration, V, K), this;\n }\n get names() {\n return j(super.names, this.iteration.names);\n }\n }\n class E extends v {\n constructor(V, K, ie, fe) {\n super(), this.varKind = V, this.name = K, this.from = ie, this.to = fe;\n }\n render(V) {\n const K = V.es5 ? t.varKinds.var : this.varKind, { name: ie, from: fe, to: pe } = this;\n return `for(${K} ${ie}=${fe}; ${ie}<${pe}; ${ie}++)` + super.render(V);\n }\n get names() {\n const V = ne(super.names, this.from);\n return ne(V, this.to);\n }\n }\n class b extends v {\n constructor(V, K, ie, fe) {\n super(), this.loop = V, this.varKind = K, this.name = ie, this.iterable = fe;\n }\n render(V) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(V);\n }\n optimizeNames(V, K) {\n if (super.optimizeNames(V, K))\n return this.iterable = te(this.iterable, V, K), this;\n }\n get names() {\n return j(super.names, this.iterable.names);\n }\n }\n class S extends p {\n constructor(V, K, ie) {\n super(), this.name = V, this.args = K, this.async = ie;\n }\n render(V) {\n return `${this.async ? \"async \" : \"\"}function ${this.name}(${this.args})` + super.render(V);\n }\n }\n S.kind = \"func\";\n class C extends f {\n render(V) {\n return \"return \" + super.render(V);\n }\n }\n C.kind = \"return\";\n class P extends p {\n render(V) {\n let K = \"try\" + super.render(V);\n return this.catch && (K += this.catch.render(V)), this.finally && (K += this.finally.render(V)), K;\n }\n optimizeNodes() {\n var V, K;\n return super.optimizeNodes(), (V = this.catch) === null || V === void 0 || V.optimizeNodes(), (K = this.finally) === null || K === void 0 || K.optimizeNodes(), this;\n }\n optimizeNames(V, K) {\n var ie, fe;\n return super.optimizeNames(V, K), (ie = this.catch) === null || ie === void 0 || ie.optimizeNames(V, K), (fe = this.finally) === null || fe === void 0 || fe.optimizeNames(V, K), this;\n }\n get names() {\n const V = super.names;\n return this.catch && j(V, this.catch.names), this.finally && j(V, this.finally.names), V;\n }\n }\n class N extends p {\n constructor(V) {\n super(), this.error = V;\n }\n render(V) {\n return `catch(${this.error})` + super.render(V);\n }\n }\n N.kind = \"catch\";\n class F extends p {\n render(V) {\n return \"finally\" + super.render(V);\n }\n }\n F.kind = \"finally\";\n class $ {\n constructor(V, K = {}) {\n this._values = {}, this._blockStarts = [], this._constants = {}, this.opts = { ...K, _n: K.lines ? `\n` : \"\" }, this._extScope = V, this._scope = new t.Scope({ parent: V }), this._nodes = [new _()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(V) {\n return this._scope.name(V);\n }\n // reserves unique name in the external scope\n scopeName(V) {\n return this._extScope.name(V);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(V, K) {\n const ie = this._extScope.value(V, K);\n return (this._values[ie.prefix] || (this._values[ie.prefix] = /* @__PURE__ */ new Set())).add(ie), ie;\n }\n getScopeValue(V, K) {\n return this._extScope.getValue(V, K);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(V) {\n return this._extScope.scopeRefs(V, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(V, K, ie, fe) {\n const pe = this._scope.toName(K);\n return ie !== void 0 && fe && (this._constants[pe.str] = ie), this._leafNode(new n(V, pe, ie)), pe;\n }\n // `const` declaration (`var` in es5 mode)\n const(V, K, ie) {\n return this._def(t.varKinds.const, V, K, ie);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(V, K, ie) {\n return this._def(t.varKinds.let, V, K, ie);\n }\n // `var` declaration with optional assignment\n var(V, K, ie) {\n return this._def(t.varKinds.var, V, K, ie);\n }\n // assignment code\n assign(V, K, ie) {\n return this._leafNode(new o(V, K, ie));\n }\n // `+=` code\n add(V, K) {\n return this._leafNode(new l(V, a.operators.ADD, K));\n }\n // appends passed SafeExpr to code or executes Block\n code(V) {\n return typeof V == \"function\" ? V() : V !== e.nil && this._leafNode(new d(V)), this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...V) {\n const K = [\"{\"];\n for (const [ie, fe] of V)\n K.length > 1 && K.push(\",\"), K.push(ie), (ie !== fe || this.opts.es5) && (K.push(\":\"), (0, e.addCodeArg)(K, fe));\n return K.push(\"}\"), new e._Code(K);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(V, K, ie) {\n if (this._blockNode(new x(V)), K && ie)\n this.code(K).else().code(ie).endIf();\n else if (K)\n this.code(K).endIf();\n else if (ie)\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(V) {\n return this._elseNode(new x(V));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new m());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(x, m);\n }\n _for(V, K) {\n return this._blockNode(V), K && this.code(K).endFor(), this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(V, K) {\n return this._for(new T(V), K);\n }\n // `for` statement for a range of values\n forRange(V, K, ie, fe, pe = this.opts.es5 ? t.varKinds.var : t.varKinds.let) {\n const ve = this._scope.toName(V);\n return this._for(new E(pe, ve, K, ie), () => fe(ve));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(V, K, ie, fe = t.varKinds.const) {\n const pe = this._scope.toName(V);\n if (this.opts.es5) {\n const ve = K instanceof e.Name ? K : this.var(\"_arr\", K);\n return this.forRange(\"_i\", 0, (0, e._)`${ve}.length`, (Ue) => {\n this.var(pe, (0, e._)`${ve}[${Ue}]`), ie(pe);\n });\n }\n return this._for(new b(\"of\", fe, pe, K), () => ie(pe));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(V, K, ie, fe = this.opts.es5 ? t.varKinds.var : t.varKinds.const) {\n if (this.opts.ownProperties)\n return this.forOf(V, (0, e._)`Object.keys(${K})`, ie);\n const pe = this._scope.toName(V);\n return this._for(new b(\"in\", fe, pe, K), () => ie(pe));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(v);\n }\n // `label` statement\n label(V) {\n return this._leafNode(new h(V));\n }\n // `break` statement\n break(V) {\n return this._leafNode(new c(V));\n }\n // `return` statement\n return(V) {\n const K = new C();\n if (this._blockNode(K), this.code(V), K.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(C);\n }\n // `try` statement\n try(V, K, ie) {\n if (!K && !ie)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const fe = new P();\n if (this._blockNode(fe), this.code(V), K) {\n const pe = this.name(\"e\");\n this._currNode = fe.catch = new N(pe), K(pe);\n }\n return ie && (this._currNode = fe.finally = new F(), this.code(ie)), this._endBlockNode(N, F);\n }\n // `throw` statement\n throw(V) {\n return this._leafNode(new u(V));\n }\n // start self-balancing block\n block(V, K) {\n return this._blockStarts.push(this._nodes.length), V && this.code(V).endBlock(K), this;\n }\n // end the current self-balancing block\n endBlock(V) {\n const K = this._blockStarts.pop();\n if (K === void 0)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const ie = this._nodes.length - K;\n if (ie < 0 || V !== void 0 && ie !== V)\n throw new Error(`CodeGen: wrong number of nodes: ${ie} vs ${V} expected`);\n return this._nodes.length = K, this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(V, K = e.nil, ie, fe) {\n return this._blockNode(new S(V, K, ie)), fe && this.code(fe).endFunc(), this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(S);\n }\n optimize(V = 1) {\n for (; V-- > 0; )\n this._root.optimizeNodes(), this._root.optimizeNames(this._root.names, this._constants);\n }\n _leafNode(V) {\n return this._currNode.nodes.push(V), this;\n }\n _blockNode(V) {\n this._currNode.nodes.push(V), this._nodes.push(V);\n }\n _endBlockNode(V, K) {\n const ie = this._currNode;\n if (ie instanceof V || K && ie instanceof K)\n return this._nodes.pop(), this;\n throw new Error(`CodeGen: not in block \"${K ? `${V.kind}/${K.kind}` : V.kind}\"`);\n }\n _elseNode(V) {\n const K = this._currNode;\n if (!(K instanceof x))\n throw new Error('CodeGen: \"else\" without \"if\"');\n return this._currNode = K.else = V, this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const V = this._nodes;\n return V[V.length - 1];\n }\n set _currNode(V) {\n const K = this._nodes;\n K[K.length - 1] = V;\n }\n }\n a.CodeGen = $;\n function j(W, V) {\n for (const K in V)\n W[K] = (W[K] || 0) + (V[K] || 0);\n return W;\n }\n function ne(W, V) {\n return V instanceof e._CodeOrName ? j(W, V.names) : W;\n }\n function te(W, V, K) {\n if (W instanceof e.Name)\n return ie(W);\n if (!fe(W))\n return W;\n return new e._Code(W._items.reduce((pe, ve) => (ve instanceof e.Name && (ve = ie(ve)), ve instanceof e._Code ? pe.push(...ve._items) : pe.push(ve), pe), []));\n function ie(pe) {\n const ve = K[pe.str];\n return ve === void 0 || V[pe.str] !== 1 ? pe : (delete V[pe.str], ve);\n }\n function fe(pe) {\n return pe instanceof e._Code && pe._items.some((ve) => ve instanceof e.Name && V[ve.str] === 1 && K[ve.str] !== void 0);\n }\n }\n function le(W, V) {\n for (const K in V)\n W[K] = (W[K] || 0) - (V[K] || 0);\n }\n function _e(W) {\n return typeof W == \"boolean\" || typeof W == \"number\" || W === null ? !W : (0, e._)`!${k(W)}`;\n }\n a.not = _e;\n const Se = M(a.operators.AND);\n function Ie(...W) {\n return W.reduce(Se);\n }\n a.and = Ie;\n const de = M(a.operators.OR);\n function Y(...W) {\n return W.reduce(de);\n }\n a.or = Y;\n function M(W) {\n return (V, K) => V === e.nil ? K : K === e.nil ? V : (0, e._)`${k(V)} ${W} ${k(K)}`;\n }\n function k(W) {\n return W instanceof e.Name ? W : (0, e._)`(${W})`;\n }\n})(Gt);\nvar Qe = {};\nObject.defineProperty(Qe, \"__esModule\", { value: !0 });\nQe.checkStrictMode = Qe.getErrorPath = Qe.Type = Qe.useFunc = Qe.setEvaluated = Qe.evaluatedPropsToName = Qe.mergeEvaluated = Qe.eachItem = Qe.unescapeJsonPointer = Qe.escapeJsonPointer = Qe.escapeFragment = Qe.unescapeFragment = Qe.schemaRefOrVal = Qe.schemaHasRulesButRef = Qe.schemaHasRules = Qe.checkUnknownRules = Qe.alwaysValidSchema = Qe.toHash = void 0;\nconst Yi = Gt, mX = tf;\nfunction gX(a) {\n const e = {};\n for (const t of a)\n e[t] = !0;\n return e;\n}\nQe.toHash = gX;\nfunction xX(a, e) {\n return typeof e == \"boolean\" ? e : Object.keys(e).length === 0 ? !0 : (EI(a, e), !yI(e, a.self.RULES.all));\n}\nQe.alwaysValidSchema = xX;\nfunction EI(a, e = a.schema) {\n const { opts: t, self: i } = a;\n if (!t.strictSchema || typeof e == \"boolean\")\n return;\n const s = i.RULES.keywords;\n for (const r in e)\n s[r] || RI(a, `unknown keyword: \"${r}\"`);\n}\nQe.checkUnknownRules = EI;\nfunction yI(a, e) {\n if (typeof a == \"boolean\")\n return !a;\n for (const t in a)\n if (e[t])\n return !0;\n return !1;\n}\nQe.schemaHasRules = yI;\nfunction vX(a, e) {\n if (typeof a == \"boolean\")\n return !a;\n for (const t in a)\n if (t !== \"$ref\" && e.all[t])\n return !0;\n return !1;\n}\nQe.schemaHasRulesButRef = vX;\nfunction TX({ topSchemaRef: a, schemaPath: e }, t, i, s) {\n if (!s) {\n if (typeof t == \"number\" || typeof t == \"boolean\")\n return t;\n if (typeof t == \"string\")\n return (0, Yi._)`${t}`;\n }\n return (0, Yi._)`${a}${e}${(0, Yi.getProperty)(i)}`;\n}\nQe.schemaRefOrVal = TX;\nfunction SX(a) {\n return CI(decodeURIComponent(a));\n}\nQe.unescapeFragment = SX;\nfunction bX(a) {\n return encodeURIComponent(lT(a));\n}\nQe.escapeFragment = bX;\nfunction lT(a) {\n return typeof a == \"number\" ? `${a}` : a.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nQe.escapeJsonPointer = lT;\nfunction CI(a) {\n return a.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nQe.unescapeJsonPointer = CI;\nfunction EX(a, e) {\n if (Array.isArray(a))\n for (const t of a)\n e(t);\n else\n e(a);\n}\nQe.eachItem = EX;\nfunction Py({ mergeNames: a, mergeToName: e, mergeValues: t, resultToName: i }) {\n return (s, r, n, o) => {\n const l = n === void 0 ? r : n instanceof Yi.Name ? (r instanceof Yi.Name ? a(s, r, n) : e(s, r, n), n) : r instanceof Yi.Name ? (e(s, n, r), r) : t(r, n);\n return o === Yi.Name && !(l instanceof Yi.Name) ? i(s, l) : l;\n };\n}\nQe.mergeEvaluated = {\n props: Py({\n mergeNames: (a, e, t) => a.if((0, Yi._)`${t} !== true && ${e} !== undefined`, () => {\n a.if((0, Yi._)`${e} === true`, () => a.assign(t, !0), () => a.assign(t, (0, Yi._)`${t} || {}`).code((0, Yi._)`Object.assign(${t}, ${e})`));\n }),\n mergeToName: (a, e, t) => a.if((0, Yi._)`${t} !== true`, () => {\n e === !0 ? a.assign(t, !0) : (a.assign(t, (0, Yi._)`${t} || {}`), hT(a, t, e));\n }),\n mergeValues: (a, e) => a === !0 ? !0 : { ...a, ...e },\n resultToName: AI\n }),\n items: Py({\n mergeNames: (a, e, t) => a.if((0, Yi._)`${t} !== true && ${e} !== undefined`, () => a.assign(t, (0, Yi._)`${e} === true ? true : ${t} > ${e} ? ${t} : ${e}`)),\n mergeToName: (a, e, t) => a.if((0, Yi._)`${t} !== true`, () => a.assign(t, e === !0 ? !0 : (0, Yi._)`${t} > ${e} ? ${t} : ${e}`)),\n mergeValues: (a, e) => a === !0 ? !0 : Math.max(a, e),\n resultToName: (a, e) => a.var(\"items\", e)\n })\n};\nfunction AI(a, e) {\n if (e === !0)\n return a.var(\"props\", !0);\n const t = a.var(\"props\", (0, Yi._)`{}`);\n return e !== void 0 && hT(a, t, e), t;\n}\nQe.evaluatedPropsToName = AI;\nfunction hT(a, e, t) {\n Object.keys(t).forEach((i) => a.assign((0, Yi._)`${e}${(0, Yi.getProperty)(i)}`, !0));\n}\nQe.setEvaluated = hT;\nconst My = {};\nfunction yX(a, e) {\n return a.scopeValue(\"func\", {\n ref: e,\n code: My[e.code] || (My[e.code] = new mX._Code(e.code))\n });\n}\nQe.useFunc = yX;\nvar ix;\n(function(a) {\n a[a.Num = 0] = \"Num\", a[a.Str = 1] = \"Str\";\n})(ix || (Qe.Type = ix = {}));\nfunction CX(a, e, t) {\n if (a instanceof Yi.Name) {\n const i = e === ix.Num;\n return t ? i ? (0, Yi._)`\"[\" + ${a} + \"]\"` : (0, Yi._)`\"['\" + ${a} + \"']\"` : i ? (0, Yi._)`\"/\" + ${a}` : (0, Yi._)`\"/\" + ${a}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`;\n }\n return t ? (0, Yi.getProperty)(a).toString() : \"/\" + lT(a);\n}\nQe.getErrorPath = CX;\nfunction RI(a, e, t = a.opts.strictSchema) {\n if (t) {\n if (e = `strict mode: ${e}`, t === !0)\n throw new Error(e);\n a.self.logger.warn(e);\n }\n}\nQe.checkStrictMode = RI;\nvar An = {};\nObject.defineProperty(An, \"__esModule\", { value: !0 });\nconst yr = Gt, AX = {\n // validation function arguments\n data: new yr.Name(\"data\"),\n // data passed to validation function\n // args passed from referencing schema\n valCxt: new yr.Name(\"valCxt\"),\n // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new yr.Name(\"instancePath\"),\n parentData: new yr.Name(\"parentData\"),\n parentDataProperty: new yr.Name(\"parentDataProperty\"),\n rootData: new yr.Name(\"rootData\"),\n // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new yr.Name(\"dynamicAnchors\"),\n // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new yr.Name(\"vErrors\"),\n // null or array of validation errors\n errors: new yr.Name(\"errors\"),\n // counter of validation errors\n this: new yr.Name(\"this\"),\n // \"globals\"\n self: new yr.Name(\"self\"),\n scope: new yr.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new yr.Name(\"json\"),\n jsonPos: new yr.Name(\"jsonPos\"),\n jsonLen: new yr.Name(\"jsonLen\"),\n jsonPart: new yr.Name(\"jsonPart\")\n};\nAn.default = AX;\n(function(a) {\n Object.defineProperty(a, \"__esModule\", { value: !0 }), a.extendErrors = a.resetErrorsCount = a.reportExtraError = a.reportError = a.keyword$DataError = a.keywordError = void 0;\n const e = Gt, t = Qe, i = An;\n a.keywordError = {\n message: ({ keyword: m }) => (0, e.str)`must pass \"${m}\" keyword validation`\n }, a.keyword$DataError = {\n message: ({ keyword: m, schemaType: x }) => x ? (0, e.str)`\"${m}\" keyword must be ${x} ($data)` : (0, e.str)`\"${m}\" keyword is invalid ($data)`\n };\n function s(m, x = a.keywordError, v, T) {\n const { it: E } = m, { gen: b, compositeRule: S, allErrors: C } = E, P = u(m, x, v);\n T ?? (S || C) ? l(b, P) : h(E, (0, e._)`[${P}]`);\n }\n a.reportError = s;\n function r(m, x = a.keywordError, v) {\n const { it: T } = m, { gen: E, compositeRule: b, allErrors: S } = T, C = u(m, x, v);\n l(E, C), b || S || h(T, i.default.vErrors);\n }\n a.reportExtraError = r;\n function n(m, x) {\n m.assign(i.default.errors, x), m.if((0, e._)`${i.default.vErrors} !== null`, () => m.if(x, () => m.assign((0, e._)`${i.default.vErrors}.length`, x), () => m.assign(i.default.vErrors, null)));\n }\n a.resetErrorsCount = n;\n function o({ gen: m, keyword: x, schemaValue: v, data: T, errsCount: E, it: b }) {\n if (E === void 0)\n throw new Error(\"ajv implementation error\");\n const S = m.name(\"err\");\n m.forRange(\"i\", E, i.default.errors, (C) => {\n m.const(S, (0, e._)`${i.default.vErrors}[${C}]`), m.if((0, e._)`${S}.instancePath === undefined`, () => m.assign((0, e._)`${S}.instancePath`, (0, e.strConcat)(i.default.instancePath, b.errorPath))), m.assign((0, e._)`${S}.schemaPath`, (0, e.str)`${b.errSchemaPath}/${x}`), b.opts.verbose && (m.assign((0, e._)`${S}.schema`, v), m.assign((0, e._)`${S}.data`, T));\n });\n }\n a.extendErrors = o;\n function l(m, x) {\n const v = m.const(\"err\", x);\n m.if((0, e._)`${i.default.vErrors} === null`, () => m.assign(i.default.vErrors, (0, e._)`[${v}]`), (0, e._)`${i.default.vErrors}.push(${v})`), m.code((0, e._)`${i.default.errors}++`);\n }\n function h(m, x) {\n const { gen: v, validateName: T, schemaEnv: E } = m;\n E.$async ? v.throw((0, e._)`new ${m.ValidationError}(${x})`) : (v.assign((0, e._)`${T}.errors`, x), v.return(!1));\n }\n const c = {\n keyword: new e.Name(\"keyword\"),\n schemaPath: new e.Name(\"schemaPath\"),\n // also used in JTD errors\n params: new e.Name(\"params\"),\n propertyName: new e.Name(\"propertyName\"),\n message: new e.Name(\"message\"),\n schema: new e.Name(\"schema\"),\n parentSchema: new e.Name(\"parentSchema\")\n };\n function u(m, x, v) {\n const { createErrors: T } = m.it;\n return T === !1 ? (0, e._)`{}` : d(m, x, v);\n }\n function d(m, x, v = {}) {\n const { gen: T, it: E } = m, b = [\n f(E, v),\n p(m, v)\n ];\n return _(m, x, b), T.object(...b);\n }\n function f({ errorPath: m }, { instancePath: x }) {\n const v = x ? (0, e.str)`${m}${(0, t.getErrorPath)(x, t.Type.Str)}` : m;\n return [i.default.instancePath, (0, e.strConcat)(i.default.instancePath, v)];\n }\n function p({ keyword: m, it: { errSchemaPath: x } }, { schemaPath: v, parentSchema: T }) {\n let E = T ? x : (0, e.str)`${x}/${m}`;\n return v && (E = (0, e.str)`${E}${(0, t.getErrorPath)(v, t.Type.Str)}`), [c.schemaPath, E];\n }\n function _(m, { params: x, message: v }, T) {\n const { keyword: E, data: b, schemaValue: S, it: C } = m, { opts: P, propertyName: N, topSchemaRef: F, schemaPath: $ } = C;\n T.push([c.keyword, E], [c.params, typeof x == \"function\" ? x(m) : x || (0, e._)`{}`]), P.messages && T.push([c.message, typeof v == \"function\" ? v(m) : v]), P.verbose && T.push([c.schema, S], [c.parentSchema, (0, e._)`${F}${$}`], [i.default.data, b]), N && T.push([c.propertyName, N]);\n }\n})(Hf);\nObject.defineProperty(dc, \"__esModule\", { value: !0 });\ndc.boolOrEmptySchema = dc.topBoolOrEmptySchema = void 0;\nconst RX = Hf, IX = Gt, PX = An, MX = {\n message: \"boolean schema is false\"\n};\nfunction DX(a) {\n const { gen: e, schema: t, validateName: i } = a;\n t === !1 ? II(a, !1) : typeof t == \"object\" && t.$async === !0 ? e.return(PX.default.data) : (e.assign((0, IX._)`${i}.errors`, null), e.return(!0));\n}\ndc.topBoolOrEmptySchema = DX;\nfunction OX(a, e) {\n const { gen: t, schema: i } = a;\n i === !1 ? (t.var(e, !1), II(a)) : t.var(e, !0);\n}\ndc.boolOrEmptySchema = OX;\nfunction II(a, e) {\n const { gen: t, data: i } = a, s = {\n gen: t,\n keyword: \"false schema\",\n data: i,\n schema: !1,\n schemaCode: !1,\n schemaValue: !1,\n params: {},\n it: a\n };\n (0, RX.reportError)(s, MX, void 0, e);\n}\nvar ar = {}, wl = {};\nObject.defineProperty(wl, \"__esModule\", { value: !0 });\nwl.getRules = wl.isJSONType = void 0;\nconst wX = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"], NX = new Set(wX);\nfunction FX(a) {\n return typeof a == \"string\" && NX.has(a);\n}\nwl.isJSONType = FX;\nfunction LX() {\n const a = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] }\n };\n return {\n types: { ...a, integer: !0, boolean: !0, null: !0 },\n rules: [{ rules: [] }, a.number, a.string, a.array, a.object],\n post: { rules: [] },\n all: {},\n keywords: {}\n };\n}\nwl.getRules = LX;\nvar lo = {};\nObject.defineProperty(lo, \"__esModule\", { value: !0 });\nlo.shouldUseRule = lo.shouldUseGroup = lo.schemaHasRulesForType = void 0;\nfunction BX({ schema: a, self: e }, t) {\n const i = e.RULES.types[t];\n return i && i !== !0 && PI(a, i);\n}\nlo.schemaHasRulesForType = BX;\nfunction PI(a, e) {\n return e.rules.some((t) => MI(a, t));\n}\nlo.shouldUseGroup = PI;\nfunction MI(a, e) {\n var t;\n return a[e.keyword] !== void 0 || ((t = e.definition.implements) === null || t === void 0 ? void 0 : t.some((i) => a[i] !== void 0));\n}\nlo.shouldUseRule = MI;\nObject.defineProperty(ar, \"__esModule\", { value: !0 });\nar.reportTypeError = ar.checkDataTypes = ar.checkDataType = ar.coerceAndCheckDataType = ar.getJSONTypes = ar.getSchemaTypes = ar.DataType = void 0;\nconst VX = wl, UX = lo, kX = Hf, zt = Gt, DI = Qe;\nvar Gh;\n(function(a) {\n a[a.Correct = 0] = \"Correct\", a[a.Wrong = 1] = \"Wrong\";\n})(Gh || (ar.DataType = Gh = {}));\nfunction GX(a) {\n const e = OI(a.type);\n if (e.includes(\"null\")) {\n if (a.nullable === !1)\n throw new Error(\"type: null contradicts nullable: false\");\n } else {\n if (!e.length && a.nullable !== void 0)\n throw new Error('\"nullable\" cannot be used without \"type\"');\n a.nullable === !0 && e.push(\"null\");\n }\n return e;\n}\nar.getSchemaTypes = GX;\nfunction OI(a) {\n const e = Array.isArray(a) ? a : a ? [a] : [];\n if (e.every(VX.isJSONType))\n return e;\n throw new Error(\"type must be JSONType or JSONType[]: \" + e.join(\",\"));\n}\nar.getJSONTypes = OI;\nfunction zX(a, e) {\n const { gen: t, data: i, opts: s } = a, r = WX(e, s.coerceTypes), n = e.length > 0 && !(r.length === 0 && e.length === 1 && (0, UX.schemaHasRulesForType)(a, e[0]));\n if (n) {\n const o = cT(e, i, s.strictNumbers, Gh.Wrong);\n t.if(o, () => {\n r.length ? HX(a, e, r) : uT(a);\n });\n }\n return n;\n}\nar.coerceAndCheckDataType = zX;\nconst wI = /* @__PURE__ */ new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction WX(a, e) {\n return e ? a.filter((t) => wI.has(t) || e === \"array\" && t === \"array\") : [];\n}\nfunction HX(a, e, t) {\n const { gen: i, data: s, opts: r } = a, n = i.let(\"dataType\", (0, zt._)`typeof ${s}`), o = i.let(\"coerced\", (0, zt._)`undefined`);\n r.coerceTypes === \"array\" && i.if((0, zt._)`${n} == 'object' && Array.isArray(${s}) && ${s}.length == 1`, () => i.assign(s, (0, zt._)`${s}[0]`).assign(n, (0, zt._)`typeof ${s}`).if(cT(e, s, r.strictNumbers), () => i.assign(o, s))), i.if((0, zt._)`${o} !== undefined`);\n for (const h of t)\n (wI.has(h) || h === \"array\" && r.coerceTypes === \"array\") && l(h);\n i.else(), uT(a), i.endIf(), i.if((0, zt._)`${o} !== undefined`, () => {\n i.assign(s, o), XX(a, o);\n });\n function l(h) {\n switch (h) {\n case \"string\":\n i.elseIf((0, zt._)`${n} == \"number\" || ${n} == \"boolean\"`).assign(o, (0, zt._)`\"\" + ${s}`).elseIf((0, zt._)`${s} === null`).assign(o, (0, zt._)`\"\"`);\n return;\n case \"number\":\n i.elseIf((0, zt._)`${n} == \"boolean\" || ${s} === null\n || (${n} == \"string\" && ${s} && ${s} == +${s})`).assign(o, (0, zt._)`+${s}`);\n return;\n case \"integer\":\n i.elseIf((0, zt._)`${n} === \"boolean\" || ${s} === null\n || (${n} === \"string\" && ${s} && ${s} == +${s} && !(${s} % 1))`).assign(o, (0, zt._)`+${s}`);\n return;\n case \"boolean\":\n i.elseIf((0, zt._)`${s} === \"false\" || ${s} === 0 || ${s} === null`).assign(o, !1).elseIf((0, zt._)`${s} === \"true\" || ${s} === 1`).assign(o, !0);\n return;\n case \"null\":\n i.elseIf((0, zt._)`${s} === \"\" || ${s} === 0 || ${s} === false`), i.assign(o, null);\n return;\n case \"array\":\n i.elseIf((0, zt._)`${n} === \"string\" || ${n} === \"number\"\n || ${n} === \"boolean\" || ${s} === null`).assign(o, (0, zt._)`[${s}]`);\n }\n }\n}\nfunction XX({ gen: a, parentData: e, parentDataProperty: t }, i) {\n a.if((0, zt._)`${e} !== undefined`, () => a.assign((0, zt._)`${e}[${t}]`, i));\n}\nfunction sx(a, e, t, i = Gh.Correct) {\n const s = i === Gh.Correct ? zt.operators.EQ : zt.operators.NEQ;\n let r;\n switch (a) {\n case \"null\":\n return (0, zt._)`${e} ${s} null`;\n case \"array\":\n r = (0, zt._)`Array.isArray(${e})`;\n break;\n case \"object\":\n r = (0, zt._)`${e} && typeof ${e} == \"object\" && !Array.isArray(${e})`;\n break;\n case \"integer\":\n r = n((0, zt._)`!(${e} % 1) && !isNaN(${e})`);\n break;\n case \"number\":\n r = n();\n break;\n default:\n return (0, zt._)`typeof ${e} ${s} ${a}`;\n }\n return i === Gh.Correct ? r : (0, zt.not)(r);\n function n(o = zt.nil) {\n return (0, zt.and)((0, zt._)`typeof ${e} == \"number\"`, o, t ? (0, zt._)`isFinite(${e})` : zt.nil);\n }\n}\nar.checkDataType = sx;\nfunction cT(a, e, t, i) {\n if (a.length === 1)\n return sx(a[0], e, t, i);\n let s;\n const r = (0, DI.toHash)(a);\n if (r.array && r.object) {\n const n = (0, zt._)`typeof ${e} != \"object\"`;\n s = r.null ? n : (0, zt._)`!${e} || ${n}`, delete r.null, delete r.array, delete r.object;\n } else\n s = zt.nil;\n r.number && delete r.integer;\n for (const n in r)\n s = (0, zt.and)(s, sx(n, e, t, i));\n return s;\n}\nar.checkDataTypes = cT;\nconst $X = {\n message: ({ schema: a }) => `must be ${a}`,\n params: ({ schema: a, schemaValue: e }) => typeof a == \"string\" ? (0, zt._)`{type: ${a}}` : (0, zt._)`{type: ${e}}`\n};\nfunction uT(a) {\n const e = YX(a);\n (0, kX.reportError)(e, $X);\n}\nar.reportTypeError = uT;\nfunction YX(a) {\n const { gen: e, data: t, schema: i } = a, s = (0, DI.schemaRefOrVal)(a, i, \"type\");\n return {\n gen: e,\n keyword: \"type\",\n data: t,\n schema: i.type,\n schemaCode: s,\n schemaValue: s,\n parentSchema: i,\n params: {},\n it: a\n };\n}\nvar Cm = {};\nObject.defineProperty(Cm, \"__esModule\", { value: !0 });\nCm.assignDefaults = void 0;\nconst hh = Gt, jX = Qe;\nfunction KX(a, e) {\n const { properties: t, items: i } = a.schema;\n if (e === \"object\" && t)\n for (const s in t)\n Dy(a, s, t[s].default);\n else e === \"array\" && Array.isArray(i) && i.forEach((s, r) => Dy(a, r, s.default));\n}\nCm.assignDefaults = KX;\nfunction Dy(a, e, t) {\n const { gen: i, compositeRule: s, data: r, opts: n } = a;\n if (t === void 0)\n return;\n const o = (0, hh._)`${r}${(0, hh.getProperty)(e)}`;\n if (s) {\n (0, jX.checkStrictMode)(a, `default is ignored for: ${o}`);\n return;\n }\n let l = (0, hh._)`${o} === undefined`;\n n.useDefaults === \"empty\" && (l = (0, hh._)`${l} || ${o} === null || ${o} === \"\"`), i.if(l, (0, hh._)`${o} = ${(0, hh.stringify)(t)}`);\n}\nvar Ra = {}, Zt = {};\nObject.defineProperty(Zt, \"__esModule\", { value: !0 });\nZt.validateUnion = Zt.validateArray = Zt.usePattern = Zt.callValidateCode = Zt.schemaProperties = Zt.allSchemaProperties = Zt.noPropertyInData = Zt.propertyInData = Zt.isOwnProperty = Zt.hasPropFunc = Zt.reportMissingProp = Zt.checkMissingProp = Zt.checkReportMissingProp = void 0;\nconst ns = Gt, dT = Qe, Ro = An, qX = Qe;\nfunction QX(a, e) {\n const { gen: t, data: i, it: s } = a;\n t.if(pT(t, i, e, s.opts.ownProperties), () => {\n a.setParams({ missingProperty: (0, ns._)`${e}` }, !0), a.error();\n });\n}\nZt.checkReportMissingProp = QX;\nfunction ZX({ gen: a, data: e, it: { opts: t } }, i, s) {\n return (0, ns.or)(...i.map((r) => (0, ns.and)(pT(a, e, r, t.ownProperties), (0, ns._)`${s} = ${r}`)));\n}\nZt.checkMissingProp = ZX;\nfunction JX(a, e) {\n a.setParams({ missingProperty: e }, !0), a.error();\n}\nZt.reportMissingProp = JX;\nfunction NI(a) {\n return a.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, ns._)`Object.prototype.hasOwnProperty`\n });\n}\nZt.hasPropFunc = NI;\nfunction fT(a, e, t) {\n return (0, ns._)`${NI(a)}.call(${e}, ${t})`;\n}\nZt.isOwnProperty = fT;\nfunction e5(a, e, t, i) {\n const s = (0, ns._)`${e}${(0, ns.getProperty)(t)} !== undefined`;\n return i ? (0, ns._)`${s} && ${fT(a, e, t)}` : s;\n}\nZt.propertyInData = e5;\nfunction pT(a, e, t, i) {\n const s = (0, ns._)`${e}${(0, ns.getProperty)(t)} === undefined`;\n return i ? (0, ns.or)(s, (0, ns.not)(fT(a, e, t))) : s;\n}\nZt.noPropertyInData = pT;\nfunction FI(a) {\n return a ? Object.keys(a).filter((e) => e !== \"__proto__\") : [];\n}\nZt.allSchemaProperties = FI;\nfunction t5(a, e) {\n return FI(e).filter((t) => !(0, dT.alwaysValidSchema)(a, e[t]));\n}\nZt.schemaProperties = t5;\nfunction i5({ schemaCode: a, data: e, it: { gen: t, topSchemaRef: i, schemaPath: s, errorPath: r }, it: n }, o, l, h) {\n const c = h ? (0, ns._)`${a}, ${e}, ${i}${s}` : e, u = [\n [Ro.default.instancePath, (0, ns.strConcat)(Ro.default.instancePath, r)],\n [Ro.default.parentData, n.parentData],\n [Ro.default.parentDataProperty, n.parentDataProperty],\n [Ro.default.rootData, Ro.default.rootData]\n ];\n n.opts.dynamicRef && u.push([Ro.default.dynamicAnchors, Ro.default.dynamicAnchors]);\n const d = (0, ns._)`${c}, ${t.object(...u)}`;\n return l !== ns.nil ? (0, ns._)`${o}.call(${l}, ${d})` : (0, ns._)`${o}(${d})`;\n}\nZt.callValidateCode = i5;\nconst s5 = (0, ns._)`new RegExp`;\nfunction r5({ gen: a, it: { opts: e } }, t) {\n const i = e.unicodeRegExp ? \"u\" : \"\", { regExp: s } = e.code, r = s(t, i);\n return a.scopeValue(\"pattern\", {\n key: r.toString(),\n ref: r,\n code: (0, ns._)`${s.code === \"new RegExp\" ? s5 : (0, qX.useFunc)(a, s)}(${t}, ${i})`\n });\n}\nZt.usePattern = r5;\nfunction n5(a) {\n const { gen: e, data: t, keyword: i, it: s } = a, r = e.name(\"valid\");\n if (s.allErrors) {\n const o = e.let(\"valid\", !0);\n return n(() => e.assign(o, !1)), o;\n }\n return e.var(r, !0), n(() => e.break()), r;\n function n(o) {\n const l = e.const(\"len\", (0, ns._)`${t}.length`);\n e.forRange(\"i\", 0, l, (h) => {\n a.subschema({\n keyword: i,\n dataProp: h,\n dataPropType: dT.Type.Num\n }, r), e.if((0, ns.not)(r), o);\n });\n }\n}\nZt.validateArray = n5;\nfunction a5(a) {\n const { gen: e, schema: t, keyword: i, it: s } = a;\n if (!Array.isArray(t))\n throw new Error(\"ajv implementation error\");\n if (t.some((l) => (0, dT.alwaysValidSchema)(s, l)) && !s.opts.unevaluated)\n return;\n const n = e.let(\"valid\", !1), o = e.name(\"_valid\");\n e.block(() => t.forEach((l, h) => {\n const c = a.subschema({\n keyword: i,\n schemaProp: h,\n compositeRule: !0\n }, o);\n e.assign(n, (0, ns._)`${n} || ${o}`), a.mergeValidEvaluated(c, o) || e.if((0, ns.not)(n));\n })), a.result(n, () => a.reset(), () => a.error(!0));\n}\nZt.validateUnion = a5;\nObject.defineProperty(Ra, \"__esModule\", { value: !0 });\nRa.validateKeywordUsage = Ra.validSchemaType = Ra.funcKeywordCode = Ra.macroKeywordCode = void 0;\nconst Ur = Gt, ml = An, o5 = Zt, l5 = Hf;\nfunction h5(a, e) {\n const { gen: t, keyword: i, schema: s, parentSchema: r, it: n } = a, o = e.macro.call(n.self, s, r, n), l = LI(t, i, o);\n n.opts.validateSchema !== !1 && n.self.validateSchema(o, !0);\n const h = t.name(\"valid\");\n a.subschema({\n schema: o,\n schemaPath: Ur.nil,\n errSchemaPath: `${n.errSchemaPath}/${i}`,\n topSchemaRef: l,\n compositeRule: !0\n }, h), a.pass(h, () => a.error(!0));\n}\nRa.macroKeywordCode = h5;\nfunction c5(a, e) {\n var t;\n const { gen: i, keyword: s, schema: r, parentSchema: n, $data: o, it: l } = a;\n d5(l, e);\n const h = !o && e.compile ? e.compile.call(l.self, r, n, l) : e.validate, c = LI(i, s, h), u = i.let(\"valid\");\n a.block$data(u, d), a.ok((t = e.valid) !== null && t !== void 0 ? t : u);\n function d() {\n if (e.errors === !1)\n _(), e.modifying && Oy(a), m(() => a.error());\n else {\n const x = e.async ? f() : p();\n e.modifying && Oy(a), m(() => u5(a, x));\n }\n }\n function f() {\n const x = i.let(\"ruleErrs\", null);\n return i.try(() => _((0, Ur._)`await `), (v) => i.assign(u, !1).if((0, Ur._)`${v} instanceof ${l.ValidationError}`, () => i.assign(x, (0, Ur._)`${v}.errors`), () => i.throw(v))), x;\n }\n function p() {\n const x = (0, Ur._)`${c}.errors`;\n return i.assign(x, null), _(Ur.nil), x;\n }\n function _(x = e.async ? (0, Ur._)`await ` : Ur.nil) {\n const v = l.opts.passContext ? ml.default.this : ml.default.self, T = !(\"compile\" in e && !o || e.schema === !1);\n i.assign(u, (0, Ur._)`${x}${(0, o5.callValidateCode)(a, c, v, T)}`, e.modifying);\n }\n function m(x) {\n var v;\n i.if((0, Ur.not)((v = e.valid) !== null && v !== void 0 ? v : u), x);\n }\n}\nRa.funcKeywordCode = c5;\nfunction Oy(a) {\n const { gen: e, data: t, it: i } = a;\n e.if(i.parentData, () => e.assign(t, (0, Ur._)`${i.parentData}[${i.parentDataProperty}]`));\n}\nfunction u5(a, e) {\n const { gen: t } = a;\n t.if((0, Ur._)`Array.isArray(${e})`, () => {\n t.assign(ml.default.vErrors, (0, Ur._)`${ml.default.vErrors} === null ? ${e} : ${ml.default.vErrors}.concat(${e})`).assign(ml.default.errors, (0, Ur._)`${ml.default.vErrors}.length`), (0, l5.extendErrors)(a);\n }, () => a.error());\n}\nfunction d5({ schemaEnv: a }, e) {\n if (e.async && !a.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction LI(a, e, t) {\n if (t === void 0)\n throw new Error(`keyword \"${e}\" failed to compile`);\n return a.scopeValue(\"keyword\", typeof t == \"function\" ? { ref: t } : { ref: t, code: (0, Ur.stringify)(t) });\n}\nfunction f5(a, e, t = !1) {\n return !e.length || e.some((i) => i === \"array\" ? Array.isArray(a) : i === \"object\" ? a && typeof a == \"object\" && !Array.isArray(a) : typeof a == i || t && typeof a > \"u\");\n}\nRa.validSchemaType = f5;\nfunction p5({ schema: a, opts: e, self: t, errSchemaPath: i }, s, r) {\n if (Array.isArray(s.keyword) ? !s.keyword.includes(r) : s.keyword !== r)\n throw new Error(\"ajv implementation error\");\n const n = s.dependencies;\n if (n != null && n.some((o) => !Object.prototype.hasOwnProperty.call(a, o)))\n throw new Error(`parent schema must have dependencies of ${r}: ${n.join(\",\")}`);\n if (s.validateSchema && !s.validateSchema(a[r])) {\n const l = `keyword \"${r}\" value is invalid at path \"${i}\": ` + t.errorsText(s.validateSchema.errors);\n if (e.validateSchema === \"log\")\n t.logger.error(l);\n else\n throw new Error(l);\n }\n}\nRa.validateKeywordUsage = p5;\nvar qo = {};\nObject.defineProperty(qo, \"__esModule\", { value: !0 });\nqo.extendSubschemaMode = qo.extendSubschemaData = qo.getSubschema = void 0;\nconst ya = Gt, BI = Qe;\nfunction _5(a, { keyword: e, schemaProp: t, schema: i, schemaPath: s, errSchemaPath: r, topSchemaRef: n }) {\n if (e !== void 0 && i !== void 0)\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n if (e !== void 0) {\n const o = a.schema[e];\n return t === void 0 ? {\n schema: o,\n schemaPath: (0, ya._)`${a.schemaPath}${(0, ya.getProperty)(e)}`,\n errSchemaPath: `${a.errSchemaPath}/${e}`\n } : {\n schema: o[t],\n schemaPath: (0, ya._)`${a.schemaPath}${(0, ya.getProperty)(e)}${(0, ya.getProperty)(t)}`,\n errSchemaPath: `${a.errSchemaPath}/${e}/${(0, BI.escapeFragment)(t)}`\n };\n }\n if (i !== void 0) {\n if (s === void 0 || r === void 0 || n === void 0)\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n return {\n schema: i,\n schemaPath: s,\n topSchemaRef: n,\n errSchemaPath: r\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nqo.getSubschema = _5;\nfunction m5(a, e, { dataProp: t, dataPropType: i, data: s, dataTypes: r, propertyName: n }) {\n if (s !== void 0 && t !== void 0)\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n const { gen: o } = e;\n if (t !== void 0) {\n const { errorPath: h, dataPathArr: c, opts: u } = e, d = o.let(\"data\", (0, ya._)`${e.data}${(0, ya.getProperty)(t)}`, !0);\n l(d), a.errorPath = (0, ya.str)`${h}${(0, BI.getErrorPath)(t, i, u.jsPropertySyntax)}`, a.parentDataProperty = (0, ya._)`${t}`, a.dataPathArr = [...c, a.parentDataProperty];\n }\n if (s !== void 0) {\n const h = s instanceof ya.Name ? s : o.let(\"data\", s, !0);\n l(h), n !== void 0 && (a.propertyName = n);\n }\n r && (a.dataTypes = r);\n function l(h) {\n a.data = h, a.dataLevel = e.dataLevel + 1, a.dataTypes = [], e.definedProperties = /* @__PURE__ */ new Set(), a.parentData = e.data, a.dataNames = [...e.dataNames, h];\n }\n}\nqo.extendSubschemaData = m5;\nfunction g5(a, { jtdDiscriminator: e, jtdMetadata: t, compositeRule: i, createErrors: s, allErrors: r }) {\n i !== void 0 && (a.compositeRule = i), s !== void 0 && (a.createErrors = s), r !== void 0 && (a.allErrors = r), a.jtdDiscriminator = e, a.jtdMetadata = t;\n}\nqo.extendSubschemaMode = g5;\nvar mr = {}, VI = function a(e, t) {\n if (e === t) return !0;\n if (e && t && typeof e == \"object\" && typeof t == \"object\") {\n if (e.constructor !== t.constructor) return !1;\n var i, s, r;\n if (Array.isArray(e)) {\n if (i = e.length, i != t.length) return !1;\n for (s = i; s-- !== 0; )\n if (!a(e[s], t[s])) return !1;\n return !0;\n }\n if (e.constructor === RegExp) return e.source === t.source && e.flags === t.flags;\n if (e.valueOf !== Object.prototype.valueOf) return e.valueOf() === t.valueOf();\n if (e.toString !== Object.prototype.toString) return e.toString() === t.toString();\n if (r = Object.keys(e), i = r.length, i !== Object.keys(t).length) return !1;\n for (s = i; s-- !== 0; )\n if (!Object.prototype.hasOwnProperty.call(t, r[s])) return !1;\n for (s = i; s-- !== 0; ) {\n var n = r[s];\n if (!a(e[n], t[n])) return !1;\n }\n return !0;\n }\n return e !== e && t !== t;\n}, UI = { exports: {} }, ko = UI.exports = function(a, e, t) {\n typeof e == \"function\" && (t = e, e = {}), t = e.cb || t;\n var i = typeof t == \"function\" ? t : t.pre || function() {\n }, s = t.post || function() {\n };\n yp(e, i, s, a, \"\", a);\n};\nko.keywords = {\n additionalItems: !0,\n items: !0,\n contains: !0,\n additionalProperties: !0,\n propertyNames: !0,\n not: !0,\n if: !0,\n then: !0,\n else: !0\n};\nko.arrayKeywords = {\n items: !0,\n allOf: !0,\n anyOf: !0,\n oneOf: !0\n};\nko.propsKeywords = {\n $defs: !0,\n definitions: !0,\n properties: !0,\n patternProperties: !0,\n dependencies: !0\n};\nko.skipKeywords = {\n default: !0,\n enum: !0,\n const: !0,\n required: !0,\n maximum: !0,\n minimum: !0,\n exclusiveMaximum: !0,\n exclusiveMinimum: !0,\n multipleOf: !0,\n maxLength: !0,\n minLength: !0,\n pattern: !0,\n format: !0,\n maxItems: !0,\n minItems: !0,\n uniqueItems: !0,\n maxProperties: !0,\n minProperties: !0\n};\nfunction yp(a, e, t, i, s, r, n, o, l, h) {\n if (i && typeof i == \"object\" && !Array.isArray(i)) {\n e(i, s, r, n, o, l, h);\n for (var c in i) {\n var u = i[c];\n if (Array.isArray(u)) {\n if (c in ko.arrayKeywords)\n for (var d = 0; d < u.length; d++)\n yp(a, e, t, u[d], s + \"/\" + c + \"/\" + d, r, s, c, i, d);\n } else if (c in ko.propsKeywords) {\n if (u && typeof u == \"object\")\n for (var f in u)\n yp(a, e, t, u[f], s + \"/\" + c + \"/\" + x5(f), r, s, c, i, f);\n } else (c in ko.keywords || a.allKeys && !(c in ko.skipKeywords)) && yp(a, e, t, u, s + \"/\" + c, r, s, c, i);\n }\n t(i, s, r, n, o, l, h);\n }\n}\nfunction x5(a) {\n return a.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nvar v5 = UI.exports;\nObject.defineProperty(mr, \"__esModule\", { value: !0 });\nmr.getSchemaRefs = mr.resolveUrl = mr.normalizeId = mr._getFullPath = mr.getFullPath = mr.inlineRef = void 0;\nconst T5 = Qe, S5 = VI, b5 = v5, E5 = /* @__PURE__ */ new Set([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\",\n \"const\"\n]);\nfunction y5(a, e = !0) {\n return typeof a == \"boolean\" ? !0 : e === !0 ? !rx(a) : e ? kI(a) <= e : !1;\n}\nmr.inlineRef = y5;\nconst C5 = /* @__PURE__ */ new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\"\n]);\nfunction rx(a) {\n for (const e in a) {\n if (C5.has(e))\n return !0;\n const t = a[e];\n if (Array.isArray(t) && t.some(rx) || typeof t == \"object\" && rx(t))\n return !0;\n }\n return !1;\n}\nfunction kI(a) {\n let e = 0;\n for (const t in a) {\n if (t === \"$ref\")\n return 1 / 0;\n if (e++, !E5.has(t) && (typeof a[t] == \"object\" && (0, T5.eachItem)(a[t], (i) => e += kI(i)), e === 1 / 0))\n return 1 / 0;\n }\n return e;\n}\nfunction GI(a, e = \"\", t) {\n t !== !1 && (e = zh(e));\n const i = a.parse(e);\n return zI(a, i);\n}\nmr.getFullPath = GI;\nfunction zI(a, e) {\n return a.serialize(e).split(\"#\")[0] + \"#\";\n}\nmr._getFullPath = zI;\nconst A5 = /#\\/?$/;\nfunction zh(a) {\n return a ? a.replace(A5, \"\") : \"\";\n}\nmr.normalizeId = zh;\nfunction R5(a, e, t) {\n return t = zh(t), a.resolve(e, t);\n}\nmr.resolveUrl = R5;\nconst I5 = /^[a-z_][-a-z0-9._]*$/i;\nfunction P5(a, e) {\n if (typeof a == \"boolean\")\n return {};\n const { schemaId: t, uriResolver: i } = this.opts, s = zh(a[t] || e), r = { \"\": s }, n = GI(i, s, !1), o = {}, l = /* @__PURE__ */ new Set();\n return b5(a, { allKeys: !0 }, (u, d, f, p) => {\n if (p === void 0)\n return;\n const _ = n + d;\n let m = r[p];\n typeof u[t] == \"string\" && (m = x.call(this, u[t])), v.call(this, u.$anchor), v.call(this, u.$dynamicAnchor), r[d] = m;\n function x(T) {\n const E = this.opts.uriResolver.resolve;\n if (T = zh(m ? E(m, T) : T), l.has(T))\n throw c(T);\n l.add(T);\n let b = this.refs[T];\n return typeof b == \"string\" && (b = this.refs[b]), typeof b == \"object\" ? h(u, b.schema, T) : T !== zh(_) && (T[0] === \"#\" ? (h(u, o[T], T), o[T] = u) : this.refs[T] = _), T;\n }\n function v(T) {\n if (typeof T == \"string\") {\n if (!I5.test(T))\n throw new Error(`invalid anchor \"${T}\"`);\n x.call(this, `#${T}`);\n }\n }\n }), o;\n function h(u, d, f) {\n if (d !== void 0 && !S5(u, d))\n throw c(f);\n }\n function c(u) {\n return new Error(`reference \"${u}\" resolves to more than one schema`);\n }\n}\nmr.getSchemaRefs = P5;\nObject.defineProperty(sa, \"__esModule\", { value: !0 });\nsa.getData = sa.KeywordCxt = sa.validateFunctionCode = void 0;\nconst WI = dc, wy = ar, _T = lo, s_ = ar, M5 = Cm, cu = Ra, hg = qo, ft = Gt, It = An, D5 = mr, ho = Qe, jc = Hf;\nfunction O5(a) {\n if ($I(a) && (YI(a), XI(a))) {\n F5(a);\n return;\n }\n HI(a, () => (0, WI.topBoolOrEmptySchema)(a));\n}\nsa.validateFunctionCode = O5;\nfunction HI({ gen: a, validateName: e, schema: t, schemaEnv: i, opts: s }, r) {\n s.code.es5 ? a.func(e, (0, ft._)`${It.default.data}, ${It.default.valCxt}`, i.$async, () => {\n a.code((0, ft._)`\"use strict\"; ${Ny(t, s)}`), N5(a, s), a.code(r);\n }) : a.func(e, (0, ft._)`${It.default.data}, ${w5(s)}`, i.$async, () => a.code(Ny(t, s)).code(r));\n}\nfunction w5(a) {\n return (0, ft._)`{${It.default.instancePath}=\"\", ${It.default.parentData}, ${It.default.parentDataProperty}, ${It.default.rootData}=${It.default.data}${a.dynamicRef ? (0, ft._)`, ${It.default.dynamicAnchors}={}` : ft.nil}}={}`;\n}\nfunction N5(a, e) {\n a.if(It.default.valCxt, () => {\n a.var(It.default.instancePath, (0, ft._)`${It.default.valCxt}.${It.default.instancePath}`), a.var(It.default.parentData, (0, ft._)`${It.default.valCxt}.${It.default.parentData}`), a.var(It.default.parentDataProperty, (0, ft._)`${It.default.valCxt}.${It.default.parentDataProperty}`), a.var(It.default.rootData, (0, ft._)`${It.default.valCxt}.${It.default.rootData}`), e.dynamicRef && a.var(It.default.dynamicAnchors, (0, ft._)`${It.default.valCxt}.${It.default.dynamicAnchors}`);\n }, () => {\n a.var(It.default.instancePath, (0, ft._)`\"\"`), a.var(It.default.parentData, (0, ft._)`undefined`), a.var(It.default.parentDataProperty, (0, ft._)`undefined`), a.var(It.default.rootData, It.default.data), e.dynamicRef && a.var(It.default.dynamicAnchors, (0, ft._)`{}`);\n });\n}\nfunction F5(a) {\n const { schema: e, opts: t, gen: i } = a;\n HI(a, () => {\n t.$comment && e.$comment && KI(a), k5(a), i.let(It.default.vErrors, null), i.let(It.default.errors, 0), t.unevaluated && L5(a), jI(a), W5(a);\n });\n}\nfunction L5(a) {\n const { gen: e, validateName: t } = a;\n a.evaluated = e.const(\"evaluated\", (0, ft._)`${t}.evaluated`), e.if((0, ft._)`${a.evaluated}.dynamicProps`, () => e.assign((0, ft._)`${a.evaluated}.props`, (0, ft._)`undefined`)), e.if((0, ft._)`${a.evaluated}.dynamicItems`, () => e.assign((0, ft._)`${a.evaluated}.items`, (0, ft._)`undefined`));\n}\nfunction Ny(a, e) {\n const t = typeof a == \"object\" && a[e.schemaId];\n return t && (e.code.source || e.code.process) ? (0, ft._)`/*# sourceURL=${t} */` : ft.nil;\n}\nfunction B5(a, e) {\n if ($I(a) && (YI(a), XI(a))) {\n V5(a, e);\n return;\n }\n (0, WI.boolOrEmptySchema)(a, e);\n}\nfunction XI({ schema: a, self: e }) {\n if (typeof a == \"boolean\")\n return !a;\n for (const t in a)\n if (e.RULES.all[t])\n return !0;\n return !1;\n}\nfunction $I(a) {\n return typeof a.schema != \"boolean\";\n}\nfunction V5(a, e) {\n const { schema: t, gen: i, opts: s } = a;\n s.$comment && t.$comment && KI(a), G5(a), z5(a);\n const r = i.const(\"_errs\", It.default.errors);\n jI(a, r), i.var(e, (0, ft._)`${r} === ${It.default.errors}`);\n}\nfunction YI(a) {\n (0, ho.checkUnknownRules)(a), U5(a);\n}\nfunction jI(a, e) {\n if (a.opts.jtd)\n return Fy(a, [], !1, e);\n const t = (0, wy.getSchemaTypes)(a.schema), i = (0, wy.coerceAndCheckDataType)(a, t);\n Fy(a, t, !i, e);\n}\nfunction U5(a) {\n const { schema: e, errSchemaPath: t, opts: i, self: s } = a;\n e.$ref && i.ignoreKeywordsWithRef && (0, ho.schemaHasRulesButRef)(e, s.RULES) && s.logger.warn(`$ref: keywords ignored in schema at path \"${t}\"`);\n}\nfunction k5(a) {\n const { schema: e, opts: t } = a;\n e.default !== void 0 && t.useDefaults && t.strictSchema && (0, ho.checkStrictMode)(a, \"default is ignored in the schema root\");\n}\nfunction G5(a) {\n const e = a.schema[a.opts.schemaId];\n e && (a.baseId = (0, D5.resolveUrl)(a.opts.uriResolver, a.baseId, e));\n}\nfunction z5(a) {\n if (a.schema.$async && !a.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction KI({ gen: a, schemaEnv: e, schema: t, errSchemaPath: i, opts: s }) {\n const r = t.$comment;\n if (s.$comment === !0)\n a.code((0, ft._)`${It.default.self}.logger.log(${r})`);\n else if (typeof s.$comment == \"function\") {\n const n = (0, ft.str)`${i}/$comment`, o = a.scopeValue(\"root\", { ref: e.root });\n a.code((0, ft._)`${It.default.self}.opts.$comment(${r}, ${n}, ${o}.schema)`);\n }\n}\nfunction W5(a) {\n const { gen: e, schemaEnv: t, validateName: i, ValidationError: s, opts: r } = a;\n t.$async ? e.if((0, ft._)`${It.default.errors} === 0`, () => e.return(It.default.data), () => e.throw((0, ft._)`new ${s}(${It.default.vErrors})`)) : (e.assign((0, ft._)`${i}.errors`, It.default.vErrors), r.unevaluated && H5(a), e.return((0, ft._)`${It.default.errors} === 0`));\n}\nfunction H5({ gen: a, evaluated: e, props: t, items: i }) {\n t instanceof ft.Name && a.assign((0, ft._)`${e}.props`, t), i instanceof ft.Name && a.assign((0, ft._)`${e}.items`, i);\n}\nfunction Fy(a, e, t, i) {\n const { gen: s, schema: r, data: n, allErrors: o, opts: l, self: h } = a, { RULES: c } = h;\n if (r.$ref && (l.ignoreKeywordsWithRef || !(0, ho.schemaHasRulesButRef)(r, c))) {\n s.block(() => ZI(a, \"$ref\", c.all.$ref.definition));\n return;\n }\n l.jtd || X5(a, e), s.block(() => {\n for (const d of c.rules)\n u(d);\n u(c.post);\n });\n function u(d) {\n (0, _T.shouldUseGroup)(r, d) && (d.type ? (s.if((0, s_.checkDataType)(d.type, n, l.strictNumbers)), Ly(a, d), e.length === 1 && e[0] === d.type && t && (s.else(), (0, s_.reportTypeError)(a)), s.endIf()) : Ly(a, d), o || s.if((0, ft._)`${It.default.errors} === ${i || 0}`));\n }\n}\nfunction Ly(a, e) {\n const { gen: t, schema: i, opts: { useDefaults: s } } = a;\n s && (0, M5.assignDefaults)(a, e.type), t.block(() => {\n for (const r of e.rules)\n (0, _T.shouldUseRule)(i, r) && ZI(a, r.keyword, r.definition, e.type);\n });\n}\nfunction X5(a, e) {\n a.schemaEnv.meta || !a.opts.strictTypes || ($5(a, e), a.opts.allowUnionTypes || Y5(a, e), j5(a, a.dataTypes));\n}\nfunction $5(a, e) {\n if (e.length) {\n if (!a.dataTypes.length) {\n a.dataTypes = e;\n return;\n }\n e.forEach((t) => {\n qI(a.dataTypes, t) || mT(a, `type \"${t}\" not allowed by context \"${a.dataTypes.join(\",\")}\"`);\n }), q5(a, e);\n }\n}\nfunction Y5(a, e) {\n e.length > 1 && !(e.length === 2 && e.includes(\"null\")) && mT(a, \"use allowUnionTypes to allow union type keyword\");\n}\nfunction j5(a, e) {\n const t = a.self.RULES.all;\n for (const i in t) {\n const s = t[i];\n if (typeof s == \"object\" && (0, _T.shouldUseRule)(a.schema, s)) {\n const { type: r } = s.definition;\n r.length && !r.some((n) => K5(e, n)) && mT(a, `missing type \"${r.join(\",\")}\" for keyword \"${i}\"`);\n }\n }\n}\nfunction K5(a, e) {\n return a.includes(e) || e === \"number\" && a.includes(\"integer\");\n}\nfunction qI(a, e) {\n return a.includes(e) || e === \"integer\" && a.includes(\"number\");\n}\nfunction q5(a, e) {\n const t = [];\n for (const i of a.dataTypes)\n qI(e, i) ? t.push(i) : e.includes(\"integer\") && i === \"number\" && t.push(\"integer\");\n a.dataTypes = t;\n}\nfunction mT(a, e) {\n const t = a.schemaEnv.baseId + a.errSchemaPath;\n e += ` at \"${t}\" (strictTypes)`, (0, ho.checkStrictMode)(a, e, a.opts.strictTypes);\n}\nclass QI {\n constructor(e, t, i) {\n if ((0, cu.validateKeywordUsage)(e, t, i), this.gen = e.gen, this.allErrors = e.allErrors, this.keyword = i, this.data = e.data, this.schema = e.schema[i], this.$data = t.$data && e.opts.$data && this.schema && this.schema.$data, this.schemaValue = (0, ho.schemaRefOrVal)(e, this.schema, i, this.$data), this.schemaType = t.schemaType, this.parentSchema = e.schema, this.params = {}, this.it = e, this.def = t, this.$data)\n this.schemaCode = e.gen.const(\"vSchema\", JI(this.$data, e));\n else if (this.schemaCode = this.schemaValue, !(0, cu.validSchemaType)(this.schema, t.schemaType, t.allowUndefined))\n throw new Error(`${i} value must be ${JSON.stringify(t.schemaType)}`);\n (\"code\" in t ? t.trackErrors : t.errors !== !1) && (this.errsCount = e.gen.const(\"_errs\", It.default.errors));\n }\n result(e, t, i) {\n this.failResult((0, ft.not)(e), t, i);\n }\n failResult(e, t, i) {\n this.gen.if(e), i ? i() : this.error(), t ? (this.gen.else(), t(), this.allErrors && this.gen.endIf()) : this.allErrors ? this.gen.endIf() : this.gen.else();\n }\n pass(e, t) {\n this.failResult((0, ft.not)(e), void 0, t);\n }\n fail(e) {\n if (e === void 0) {\n this.error(), this.allErrors || this.gen.if(!1);\n return;\n }\n this.gen.if(e), this.error(), this.allErrors ? this.gen.endIf() : this.gen.else();\n }\n fail$data(e) {\n if (!this.$data)\n return this.fail(e);\n const { schemaCode: t } = this;\n this.fail((0, ft._)`${t} !== undefined && (${(0, ft.or)(this.invalid$data(), e)})`);\n }\n error(e, t, i) {\n if (t) {\n this.setParams(t), this._error(e, i), this.setParams({});\n return;\n }\n this._error(e, i);\n }\n _error(e, t) {\n (e ? jc.reportExtraError : jc.reportError)(this, this.def.error, t);\n }\n $dataError() {\n (0, jc.reportError)(this, this.def.$dataError || jc.keyword$DataError);\n }\n reset() {\n if (this.errsCount === void 0)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, jc.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(e) {\n this.allErrors || this.gen.if(e);\n }\n setParams(e, t) {\n t ? Object.assign(this.params, e) : this.params = e;\n }\n block$data(e, t, i = ft.nil) {\n this.gen.block(() => {\n this.check$data(e, i), t();\n });\n }\n check$data(e = ft.nil, t = ft.nil) {\n if (!this.$data)\n return;\n const { gen: i, schemaCode: s, schemaType: r, def: n } = this;\n i.if((0, ft.or)((0, ft._)`${s} === undefined`, t)), e !== ft.nil && i.assign(e, !0), (r.length || n.validateSchema) && (i.elseIf(this.invalid$data()), this.$dataError(), e !== ft.nil && i.assign(e, !1)), i.else();\n }\n invalid$data() {\n const { gen: e, schemaCode: t, schemaType: i, def: s, it: r } = this;\n return (0, ft.or)(n(), o());\n function n() {\n if (i.length) {\n if (!(t instanceof ft.Name))\n throw new Error(\"ajv implementation error\");\n const l = Array.isArray(i) ? i : [i];\n return (0, ft._)`${(0, s_.checkDataTypes)(l, t, r.opts.strictNumbers, s_.DataType.Wrong)}`;\n }\n return ft.nil;\n }\n function o() {\n if (s.validateSchema) {\n const l = e.scopeValue(\"validate$data\", { ref: s.validateSchema });\n return (0, ft._)`!${l}(${t})`;\n }\n return ft.nil;\n }\n }\n subschema(e, t) {\n const i = (0, hg.getSubschema)(this.it, e);\n (0, hg.extendSubschemaData)(i, this.it, e), (0, hg.extendSubschemaMode)(i, e);\n const s = { ...this.it, ...i, items: void 0, props: void 0 };\n return B5(s, t), s;\n }\n mergeEvaluated(e, t) {\n const { it: i, gen: s } = this;\n i.opts.unevaluated && (i.props !== !0 && e.props !== void 0 && (i.props = ho.mergeEvaluated.props(s, e.props, i.props, t)), i.items !== !0 && e.items !== void 0 && (i.items = ho.mergeEvaluated.items(s, e.items, i.items, t)));\n }\n mergeValidEvaluated(e, t) {\n const { it: i, gen: s } = this;\n if (i.opts.unevaluated && (i.props !== !0 || i.items !== !0))\n return s.if(t, () => this.mergeEvaluated(e, ft.Name)), !0;\n }\n}\nsa.KeywordCxt = QI;\nfunction ZI(a, e, t, i) {\n const s = new QI(a, t, e);\n \"code\" in t ? t.code(s, i) : s.$data && t.validate ? (0, cu.funcKeywordCode)(s, t) : \"macro\" in t ? (0, cu.macroKeywordCode)(s, t) : (t.compile || t.validate) && (0, cu.funcKeywordCode)(s, t);\n}\nconst Q5 = /^\\/(?:[^~]|~0|~1)*$/, Z5 = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction JI(a, { dataLevel: e, dataNames: t, dataPathArr: i }) {\n let s, r;\n if (a === \"\")\n return It.default.rootData;\n if (a[0] === \"/\") {\n if (!Q5.test(a))\n throw new Error(`Invalid JSON-pointer: ${a}`);\n s = a, r = It.default.rootData;\n } else {\n const h = Z5.exec(a);\n if (!h)\n throw new Error(`Invalid JSON-pointer: ${a}`);\n const c = +h[1];\n if (s = h[2], s === \"#\") {\n if (c >= e)\n throw new Error(l(\"property/index\", c));\n return i[e - c];\n }\n if (c > e)\n throw new Error(l(\"data\", c));\n if (r = t[e - c], !s)\n return r;\n }\n let n = r;\n const o = s.split(\"/\");\n for (const h of o)\n h && (r = (0, ft._)`${r}${(0, ft.getProperty)((0, ho.unescapeJsonPointer)(h))}`, n = (0, ft._)`${n} && ${r}`);\n return n;\n function l(h, c) {\n return `Cannot access ${h} ${c} levels up, current level is ${e}`;\n }\n}\nsa.getData = JI;\nvar Xf = {};\nObject.defineProperty(Xf, \"__esModule\", { value: !0 });\nclass J5 extends Error {\n constructor(e) {\n super(\"validation failed\"), this.errors = e, this.ajv = this.validation = !0;\n }\n}\nXf.default = J5;\nvar Oc = {};\nObject.defineProperty(Oc, \"__esModule\", { value: !0 });\nconst cg = mr;\nclass e$ extends Error {\n constructor(e, t, i, s) {\n super(s || `can't resolve reference ${i} from id ${t}`), this.missingRef = (0, cg.resolveUrl)(e, t, i), this.missingSchema = (0, cg.normalizeId)((0, cg.getFullPath)(e, this.missingRef));\n }\n}\nOc.default = e$;\nvar kr = {};\nObject.defineProperty(kr, \"__esModule\", { value: !0 });\nkr.resolveSchema = kr.getCompilingSchema = kr.resolveRef = kr.compileSchema = kr.SchemaEnv = void 0;\nconst kn = Gt, t$ = Xf, fl = An, qn = mr, By = Qe, i$ = sa;\nclass Am {\n constructor(e) {\n var t;\n this.refs = {}, this.dynamicAnchors = {};\n let i;\n typeof e.schema == \"object\" && (i = e.schema), this.schema = e.schema, this.schemaId = e.schemaId, this.root = e.root || this, this.baseId = (t = e.baseId) !== null && t !== void 0 ? t : (0, qn.normalizeId)(i == null ? void 0 : i[e.schemaId || \"$id\"]), this.schemaPath = e.schemaPath, this.localRefs = e.localRefs, this.meta = e.meta, this.$async = i == null ? void 0 : i.$async, this.refs = {};\n }\n}\nkr.SchemaEnv = Am;\nfunction gT(a) {\n const e = eP.call(this, a);\n if (e)\n return e;\n const t = (0, qn.getFullPath)(this.opts.uriResolver, a.root.baseId), { es5: i, lines: s } = this.opts.code, { ownProperties: r } = this.opts, n = new kn.CodeGen(this.scope, { es5: i, lines: s, ownProperties: r });\n let o;\n a.$async && (o = n.scopeValue(\"Error\", {\n ref: t$.default,\n code: (0, kn._)`require(\"ajv/dist/runtime/validation_error\").default`\n }));\n const l = n.scopeName(\"validate\");\n a.validateName = l;\n const h = {\n gen: n,\n allErrors: this.opts.allErrors,\n data: fl.default.data,\n parentData: fl.default.parentData,\n parentDataProperty: fl.default.parentDataProperty,\n dataNames: [fl.default.data],\n dataPathArr: [kn.nil],\n // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: /* @__PURE__ */ new Set(),\n topSchemaRef: n.scopeValue(\"schema\", this.opts.code.source === !0 ? { ref: a.schema, code: (0, kn.stringify)(a.schema) } : { ref: a.schema }),\n validateName: l,\n ValidationError: o,\n schema: a.schema,\n schemaEnv: a,\n rootId: t,\n baseId: a.baseId || t,\n schemaPath: kn.nil,\n errSchemaPath: a.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, kn._)`\"\"`,\n opts: this.opts,\n self: this\n };\n let c;\n try {\n this._compilations.add(a), (0, i$.validateFunctionCode)(h), n.optimize(this.opts.code.optimize);\n const u = n.toString();\n c = `${n.scopeRefs(fl.default.scope)}return ${u}`, this.opts.code.process && (c = this.opts.code.process(c, a));\n const f = new Function(`${fl.default.self}`, `${fl.default.scope}`, c)(this, this.scope.get());\n if (this.scope.value(l, { ref: f }), f.errors = null, f.schema = a.schema, f.schemaEnv = a, a.$async && (f.$async = !0), this.opts.code.source === !0 && (f.source = { validateName: l, validateCode: u, scopeValues: n._values }), this.opts.unevaluated) {\n const { props: p, items: _ } = h;\n f.evaluated = {\n props: p instanceof kn.Name ? void 0 : p,\n items: _ instanceof kn.Name ? void 0 : _,\n dynamicProps: p instanceof kn.Name,\n dynamicItems: _ instanceof kn.Name\n }, f.source && (f.source.evaluated = (0, kn.stringify)(f.evaluated));\n }\n return a.validate = f, a;\n } catch (u) {\n throw delete a.validate, delete a.validateName, c && this.logger.error(\"Error compiling schema, function code:\", c), u;\n } finally {\n this._compilations.delete(a);\n }\n}\nkr.compileSchema = gT;\nfunction s$(a, e, t) {\n var i;\n t = (0, qn.resolveUrl)(this.opts.uriResolver, e, t);\n const s = a.refs[t];\n if (s)\n return s;\n let r = a$.call(this, a, t);\n if (r === void 0) {\n const n = (i = a.localRefs) === null || i === void 0 ? void 0 : i[t], { schemaId: o } = this.opts;\n n && (r = new Am({ schema: n, schemaId: o, root: a, baseId: e }));\n }\n if (r !== void 0)\n return a.refs[t] = r$.call(this, r);\n}\nkr.resolveRef = s$;\nfunction r$(a) {\n return (0, qn.inlineRef)(a.schema, this.opts.inlineRefs) ? a.schema : a.validate ? a : gT.call(this, a);\n}\nfunction eP(a) {\n for (const e of this._compilations)\n if (n$(e, a))\n return e;\n}\nkr.getCompilingSchema = eP;\nfunction n$(a, e) {\n return a.schema === e.schema && a.root === e.root && a.baseId === e.baseId;\n}\nfunction a$(a, e) {\n let t;\n for (; typeof (t = this.refs[e]) == \"string\"; )\n e = t;\n return t || this.schemas[e] || Rm.call(this, a, e);\n}\nfunction Rm(a, e) {\n const t = this.opts.uriResolver.parse(e), i = (0, qn._getFullPath)(this.opts.uriResolver, t);\n let s = (0, qn.getFullPath)(this.opts.uriResolver, a.baseId, void 0);\n if (Object.keys(a.schema).length > 0 && i === s)\n return ug.call(this, t, a);\n const r = (0, qn.normalizeId)(i), n = this.refs[r] || this.schemas[r];\n if (typeof n == \"string\") {\n const o = Rm.call(this, a, n);\n return typeof (o == null ? void 0 : o.schema) != \"object\" ? void 0 : ug.call(this, t, o);\n }\n if (typeof (n == null ? void 0 : n.schema) == \"object\") {\n if (n.validate || gT.call(this, n), r === (0, qn.normalizeId)(e)) {\n const { schema: o } = n, { schemaId: l } = this.opts, h = o[l];\n return h && (s = (0, qn.resolveUrl)(this.opts.uriResolver, s, h)), new Am({ schema: o, schemaId: l, root: a, baseId: s });\n }\n return ug.call(this, t, n);\n }\n}\nkr.resolveSchema = Rm;\nconst o$ = /* @__PURE__ */ new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\"\n]);\nfunction ug(a, { baseId: e, schema: t, root: i }) {\n var s;\n if (((s = a.fragment) === null || s === void 0 ? void 0 : s[0]) !== \"/\")\n return;\n for (const o of a.fragment.slice(1).split(\"/\")) {\n if (typeof t == \"boolean\")\n return;\n const l = t[(0, By.unescapeFragment)(o)];\n if (l === void 0)\n return;\n t = l;\n const h = typeof t == \"object\" && t[this.opts.schemaId];\n !o$.has(o) && h && (e = (0, qn.resolveUrl)(this.opts.uriResolver, e, h));\n }\n let r;\n if (typeof t != \"boolean\" && t.$ref && !(0, By.schemaHasRulesButRef)(t, this.RULES)) {\n const o = (0, qn.resolveUrl)(this.opts.uriResolver, e, t.$ref);\n r = Rm.call(this, i, o);\n }\n const { schemaId: n } = this.opts;\n if (r = r || new Am({ schema: t, schemaId: n, root: i, baseId: e }), r.schema !== r.root.schema)\n return r;\n}\nconst l$ = \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\", h$ = \"Meta-schema for $data reference (JSON AnySchema extension proposal)\", c$ = \"object\", u$ = [\n \"$data\"\n], d$ = {\n $data: {\n type: \"string\",\n anyOf: [\n {\n format: \"relative-json-pointer\"\n },\n {\n format: \"json-pointer\"\n }\n ]\n }\n}, f$ = !1, p$ = {\n $id: l$,\n description: h$,\n type: c$,\n required: u$,\n properties: d$,\n additionalProperties: f$\n};\nvar xT = {}, nx = { exports: {} };\n/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */\n(function(a, e) {\n (function(t, i) {\n i(e);\n })(h0, function(t) {\n function i() {\n for (var ae = arguments.length, Z = Array(ae), he = 0; he < ae; he++)\n Z[he] = arguments[he];\n if (Z.length > 1) {\n Z[0] = Z[0].slice(0, -1);\n for (var be = Z.length - 1, Te = 1; Te < be; ++Te)\n Z[Te] = Z[Te].slice(1, -1);\n return Z[be] = Z[be].slice(1), Z.join(\"\");\n } else\n return Z[0];\n }\n function s(ae) {\n return \"(?:\" + ae + \")\";\n }\n function r(ae) {\n return ae === void 0 ? \"undefined\" : ae === null ? \"null\" : Object.prototype.toString.call(ae).split(\" \").pop().split(\"]\").shift().toLowerCase();\n }\n function n(ae) {\n return ae.toUpperCase();\n }\n function o(ae) {\n return ae != null ? ae instanceof Array ? ae : typeof ae.length != \"number\" || ae.split || ae.setInterval || ae.call ? [ae] : Array.prototype.slice.call(ae) : [];\n }\n function l(ae, Z) {\n var he = ae;\n if (Z)\n for (var be in Z)\n he[be] = Z[be];\n return he;\n }\n function h(ae) {\n var Z = \"[A-Za-z]\", he = \"[0-9]\", be = i(he, \"[A-Fa-f]\"), Te = s(s(\"%[EFef]\" + be + \"%\" + be + be + \"%\" + be + be) + \"|\" + s(\"%[89A-Fa-f]\" + be + \"%\" + be + be) + \"|\" + s(\"%\" + be + be)), _t = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\", vt = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\", di = i(_t, vt), ss = ae ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", Fs = ae ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", ni = i(Z, he, \"[\\\\-\\\\.\\\\_\\\\~]\", ss);\n s(Z + i(Z, he, \"[\\\\+\\\\-\\\\.]\") + \"*\"), s(s(Te + \"|\" + i(ni, vt, \"[\\\\:]\")) + \"*\");\n var Qi = s(s(\"25[0-5]\") + \"|\" + s(\"2[0-4]\" + he) + \"|\" + s(\"1\" + he + he) + \"|\" + s(\"0?[1-9]\" + he) + \"|0?0?\" + he), Ls = s(Qi + \"\\\\.\" + Qi + \"\\\\.\" + Qi + \"\\\\.\" + Qi), Ot = s(be + \"{1,4}\"), ls = s(s(Ot + \"\\\\:\" + Ot) + \"|\" + Ls), Xs = s(s(Ot + \"\\\\:\") + \"{6}\" + ls), hs = s(\"\\\\:\\\\:\" + s(Ot + \"\\\\:\") + \"{5}\" + ls), Eo = s(s(Ot) + \"?\\\\:\\\\:\" + s(Ot + \"\\\\:\") + \"{4}\" + ls), ha = s(s(s(Ot + \"\\\\:\") + \"{0,1}\" + Ot) + \"?\\\\:\\\\:\" + s(Ot + \"\\\\:\") + \"{3}\" + ls), ca = s(s(s(Ot + \"\\\\:\") + \"{0,2}\" + Ot) + \"?\\\\:\\\\:\" + s(Ot + \"\\\\:\") + \"{2}\" + ls), th = s(s(s(Ot + \"\\\\:\") + \"{0,3}\" + Ot) + \"?\\\\:\\\\:\" + Ot + \"\\\\:\" + ls), hl = s(s(s(Ot + \"\\\\:\") + \"{0,4}\" + Ot) + \"?\\\\:\\\\:\" + ls), Rn = s(s(s(Ot + \"\\\\:\") + \"{0,5}\" + Ot) + \"?\\\\:\\\\:\" + Ot), ua = s(s(s(Ot + \"\\\\:\") + \"{0,6}\" + Ot) + \"?\\\\:\\\\:\"), cl = s([Xs, hs, Eo, ha, ca, th, hl, Rn, ua].join(\"|\")), za = s(s(ni + \"|\" + Te) + \"+\");\n s(\"[vV]\" + be + \"+\\\\.\" + i(ni, vt, \"[\\\\:]\") + \"+\"), s(s(Te + \"|\" + i(ni, vt)) + \"*\");\n var Gc = s(Te + \"|\" + i(ni, vt, \"[\\\\:\\\\@]\"));\n return s(s(Te + \"|\" + i(ni, vt, \"[\\\\@]\")) + \"+\"), s(s(Gc + \"|\" + i(\"[\\\\/\\\\?]\", Fs)) + \"*\"), {\n NOT_SCHEME: new RegExp(i(\"[^]\", Z, he, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n NOT_USERINFO: new RegExp(i(\"[^\\\\%\\\\:]\", ni, vt), \"g\"),\n NOT_HOST: new RegExp(i(\"[^\\\\%\\\\[\\\\]\\\\:]\", ni, vt), \"g\"),\n NOT_PATH: new RegExp(i(\"[^\\\\%\\\\/\\\\:\\\\@]\", ni, vt), \"g\"),\n NOT_PATH_NOSCHEME: new RegExp(i(\"[^\\\\%\\\\/\\\\@]\", ni, vt), \"g\"),\n NOT_QUERY: new RegExp(i(\"[^\\\\%]\", ni, vt, \"[\\\\:\\\\@\\\\/\\\\?]\", Fs), \"g\"),\n NOT_FRAGMENT: new RegExp(i(\"[^\\\\%]\", ni, vt, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n ESCAPE: new RegExp(i(\"[^]\", ni, vt), \"g\"),\n UNRESERVED: new RegExp(ni, \"g\"),\n OTHER_CHARS: new RegExp(i(\"[^\\\\%]\", ni, di), \"g\"),\n PCT_ENCODED: new RegExp(Te, \"g\"),\n IPV4ADDRESS: new RegExp(\"^(\" + Ls + \")$\"),\n IPV6ADDRESS: new RegExp(\"^\\\\[?(\" + cl + \")\" + s(s(\"\\\\%25|\\\\%(?!\" + be + \"{2})\") + \"(\" + za + \")\") + \"?\\\\]?$\")\n //RFC 6874, with relaxed parsing rules\n };\n }\n var c = h(!1), u = h(!0), d = /* @__PURE__ */ function() {\n function ae(Z, he) {\n var be = [], Te = !0, _t = !1, vt = void 0;\n try {\n for (var di = Z[Symbol.iterator](), ss; !(Te = (ss = di.next()).done) && (be.push(ss.value), !(he && be.length === he)); Te = !0)\n ;\n } catch (Fs) {\n _t = !0, vt = Fs;\n } finally {\n try {\n !Te && di.return && di.return();\n } finally {\n if (_t) throw vt;\n }\n }\n return be;\n }\n return function(Z, he) {\n if (Array.isArray(Z))\n return Z;\n if (Symbol.iterator in Object(Z))\n return ae(Z, he);\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n };\n }(), f = function(ae) {\n if (Array.isArray(ae)) {\n for (var Z = 0, he = Array(ae.length); Z < ae.length; Z++) he[Z] = ae[Z];\n return he;\n } else\n return Array.from(ae);\n }, p = 2147483647, _ = 36, m = 1, x = 26, v = 38, T = 700, E = 72, b = 128, S = \"-\", C = /^xn--/, P = /[^\\0-\\x7E]/, N = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, F = {\n overflow: \"Overflow: input needs wider integers to process\",\n \"not-basic\": \"Illegal input >= 0x80 (not a basic code point)\",\n \"invalid-input\": \"Invalid input\"\n }, $ = _ - m, j = Math.floor, ne = String.fromCharCode;\n function te(ae) {\n throw new RangeError(F[ae]);\n }\n function le(ae, Z) {\n for (var he = [], be = ae.length; be--; )\n he[be] = Z(ae[be]);\n return he;\n }\n function _e(ae, Z) {\n var he = ae.split(\"@\"), be = \"\";\n he.length > 1 && (be = he[0] + \"@\", ae = he[1]), ae = ae.replace(N, \".\");\n var Te = ae.split(\".\"), _t = le(Te, Z).join(\".\");\n return be + _t;\n }\n function Se(ae) {\n for (var Z = [], he = 0, be = ae.length; he < be; ) {\n var Te = ae.charCodeAt(he++);\n if (Te >= 55296 && Te <= 56319 && he < be) {\n var _t = ae.charCodeAt(he++);\n (_t & 64512) == 56320 ? Z.push(((Te & 1023) << 10) + (_t & 1023) + 65536) : (Z.push(Te), he--);\n } else\n Z.push(Te);\n }\n return Z;\n }\n var Ie = function(Z) {\n return String.fromCodePoint.apply(String, f(Z));\n }, de = function(Z) {\n return Z - 48 < 10 ? Z - 22 : Z - 65 < 26 ? Z - 65 : Z - 97 < 26 ? Z - 97 : _;\n }, Y = function(Z, he) {\n return Z + 22 + 75 * (Z < 26) - ((he != 0) << 5);\n }, M = function(Z, he, be) {\n var Te = 0;\n for (\n Z = be ? j(Z / T) : Z >> 1, Z += j(Z / he);\n /* no initialization */\n Z > $ * x >> 1;\n Te += _\n )\n Z = j(Z / $);\n return j(Te + ($ + 1) * Z / (Z + v));\n }, k = function(Z) {\n var he = [], be = Z.length, Te = 0, _t = b, vt = E, di = Z.lastIndexOf(S);\n di < 0 && (di = 0);\n for (var ss = 0; ss < di; ++ss)\n Z.charCodeAt(ss) >= 128 && te(\"not-basic\"), he.push(Z.charCodeAt(ss));\n for (var Fs = di > 0 ? di + 1 : 0; Fs < be; ) {\n for (\n var ni = Te, Qi = 1, Ls = _;\n ;\n /* no condition */\n Ls += _\n ) {\n Fs >= be && te(\"invalid-input\");\n var Ot = de(Z.charCodeAt(Fs++));\n (Ot >= _ || Ot > j((p - Te) / Qi)) && te(\"overflow\"), Te += Ot * Qi;\n var ls = Ls <= vt ? m : Ls >= vt + x ? x : Ls - vt;\n if (Ot < ls)\n break;\n var Xs = _ - ls;\n Qi > j(p / Xs) && te(\"overflow\"), Qi *= Xs;\n }\n var hs = he.length + 1;\n vt = M(Te - ni, hs, ni == 0), j(Te / hs) > p - _t && te(\"overflow\"), _t += j(Te / hs), Te %= hs, he.splice(Te++, 0, _t);\n }\n return String.fromCodePoint.apply(String, he);\n }, W = function(Z) {\n var he = [];\n Z = Se(Z);\n var be = Z.length, Te = b, _t = 0, vt = E, di = !0, ss = !1, Fs = void 0;\n try {\n for (var ni = Z[Symbol.iterator](), Qi; !(di = (Qi = ni.next()).done); di = !0) {\n var Ls = Qi.value;\n Ls < 128 && he.push(ne(Ls));\n }\n } catch (zc) {\n ss = !0, Fs = zc;\n } finally {\n try {\n !di && ni.return && ni.return();\n } finally {\n if (ss)\n throw Fs;\n }\n }\n var Ot = he.length, ls = Ot;\n for (Ot && he.push(S); ls < be; ) {\n var Xs = p, hs = !0, Eo = !1, ha = void 0;\n try {\n for (var ca = Z[Symbol.iterator](), th; !(hs = (th = ca.next()).done); hs = !0) {\n var hl = th.value;\n hl >= Te && hl < Xs && (Xs = hl);\n }\n } catch (zc) {\n Eo = !0, ha = zc;\n } finally {\n try {\n !hs && ca.return && ca.return();\n } finally {\n if (Eo)\n throw ha;\n }\n }\n var Rn = ls + 1;\n Xs - Te > j((p - _t) / Rn) && te(\"overflow\"), _t += (Xs - Te) * Rn, Te = Xs;\n var ua = !0, cl = !1, za = void 0;\n try {\n for (var Gc = Z[Symbol.iterator](), oS; !(ua = (oS = Gc.next()).done); ua = !0) {\n var lS = oS.value;\n if (lS < Te && ++_t > p && te(\"overflow\"), lS == Te) {\n for (\n var qf = _t, Qf = _;\n ;\n /* no condition */\n Qf += _\n ) {\n var Zf = Qf <= vt ? m : Qf >= vt + x ? x : Qf - vt;\n if (qf < Zf)\n break;\n var hS = qf - Zf, cS = _ - Zf;\n he.push(ne(Y(Zf + hS % cS, 0))), qf = j(hS / cS);\n }\n he.push(ne(Y(qf, 0))), vt = M(_t, Rn, ls == Ot), _t = 0, ++ls;\n }\n }\n } catch (zc) {\n cl = !0, za = zc;\n } finally {\n try {\n !ua && Gc.return && Gc.return();\n } finally {\n if (cl)\n throw za;\n }\n }\n ++_t, ++Te;\n }\n return he.join(\"\");\n }, V = function(Z) {\n return _e(Z, function(he) {\n return C.test(he) ? k(he.slice(4).toLowerCase()) : he;\n });\n }, K = function(Z) {\n return _e(Z, function(he) {\n return P.test(he) ? \"xn--\" + W(he) : he;\n });\n }, ie = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n version: \"2.1.0\",\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see \n * @memberOf punycode\n * @type Object\n */\n ucs2: {\n decode: Se,\n encode: Ie\n },\n decode: k,\n encode: W,\n toASCII: K,\n toUnicode: V\n }, fe = {};\n function pe(ae) {\n var Z = ae.charCodeAt(0), he = void 0;\n return Z < 16 ? he = \"%0\" + Z.toString(16).toUpperCase() : Z < 128 ? he = \"%\" + Z.toString(16).toUpperCase() : Z < 2048 ? he = \"%\" + (Z >> 6 | 192).toString(16).toUpperCase() + \"%\" + (Z & 63 | 128).toString(16).toUpperCase() : he = \"%\" + (Z >> 12 | 224).toString(16).toUpperCase() + \"%\" + (Z >> 6 & 63 | 128).toString(16).toUpperCase() + \"%\" + (Z & 63 | 128).toString(16).toUpperCase(), he;\n }\n function ve(ae) {\n for (var Z = \"\", he = 0, be = ae.length; he < be; ) {\n var Te = parseInt(ae.substr(he + 1, 2), 16);\n if (Te < 128)\n Z += String.fromCharCode(Te), he += 3;\n else if (Te >= 194 && Te < 224) {\n if (be - he >= 6) {\n var _t = parseInt(ae.substr(he + 4, 2), 16);\n Z += String.fromCharCode((Te & 31) << 6 | _t & 63);\n } else\n Z += ae.substr(he, 6);\n he += 6;\n } else if (Te >= 224) {\n if (be - he >= 9) {\n var vt = parseInt(ae.substr(he + 4, 2), 16), di = parseInt(ae.substr(he + 7, 2), 16);\n Z += String.fromCharCode((Te & 15) << 12 | (vt & 63) << 6 | di & 63);\n } else\n Z += ae.substr(he, 9);\n he += 9;\n } else\n Z += ae.substr(he, 3), he += 3;\n }\n return Z;\n }\n function Ue(ae, Z) {\n function he(be) {\n var Te = ve(be);\n return Te.match(Z.UNRESERVED) ? Te : be;\n }\n return ae.scheme && (ae.scheme = String(ae.scheme).replace(Z.PCT_ENCODED, he).toLowerCase().replace(Z.NOT_SCHEME, \"\")), ae.userinfo !== void 0 && (ae.userinfo = String(ae.userinfo).replace(Z.PCT_ENCODED, he).replace(Z.NOT_USERINFO, pe).replace(Z.PCT_ENCODED, n)), ae.host !== void 0 && (ae.host = String(ae.host).replace(Z.PCT_ENCODED, he).toLowerCase().replace(Z.NOT_HOST, pe).replace(Z.PCT_ENCODED, n)), ae.path !== void 0 && (ae.path = String(ae.path).replace(Z.PCT_ENCODED, he).replace(ae.scheme ? Z.NOT_PATH : Z.NOT_PATH_NOSCHEME, pe).replace(Z.PCT_ENCODED, n)), ae.query !== void 0 && (ae.query = String(ae.query).replace(Z.PCT_ENCODED, he).replace(Z.NOT_QUERY, pe).replace(Z.PCT_ENCODED, n)), ae.fragment !== void 0 && (ae.fragment = String(ae.fragment).replace(Z.PCT_ENCODED, he).replace(Z.NOT_FRAGMENT, pe).replace(Z.PCT_ENCODED, n)), ae;\n }\n function ht(ae) {\n return ae.replace(/^0*(.*)/, \"$1\") || \"0\";\n }\n function Ee(ae, Z) {\n var he = ae.match(Z.IPV4ADDRESS) || [], be = d(he, 2), Te = be[1];\n return Te ? Te.split(\".\").map(ht).join(\".\") : ae;\n }\n function Je(ae, Z) {\n var he = ae.match(Z.IPV6ADDRESS) || [], be = d(he, 3), Te = be[1], _t = be[2];\n if (Te) {\n for (var vt = Te.toLowerCase().split(\"::\").reverse(), di = d(vt, 2), ss = di[0], Fs = di[1], ni = Fs ? Fs.split(\":\").map(ht) : [], Qi = ss.split(\":\").map(ht), Ls = Z.IPV4ADDRESS.test(Qi[Qi.length - 1]), Ot = Ls ? 7 : 8, ls = Qi.length - Ot, Xs = Array(Ot), hs = 0; hs < Ot; ++hs)\n Xs[hs] = ni[hs] || Qi[ls + hs] || \"\";\n Ls && (Xs[Ot - 1] = Ee(Xs[Ot - 1], Z));\n var Eo = Xs.reduce(function(Rn, ua, cl) {\n if (!ua || ua === \"0\") {\n var za = Rn[Rn.length - 1];\n za && za.index + za.length === cl ? za.length++ : Rn.push({ index: cl, length: 1 });\n }\n return Rn;\n }, []), ha = Eo.sort(function(Rn, ua) {\n return ua.length - Rn.length;\n })[0], ca = void 0;\n if (ha && ha.length > 1) {\n var th = Xs.slice(0, ha.index), hl = Xs.slice(ha.index + ha.length);\n ca = th.join(\":\") + \"::\" + hl.join(\":\");\n } else\n ca = Xs.join(\":\");\n return _t && (ca += \"%\" + _t), ca;\n } else\n return ae;\n }\n var St = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i, Yt = \"\".match(/(){0}/)[1] === void 0;\n function yt(ae) {\n var Z = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, he = {}, be = Z.iri !== !1 ? u : c;\n Z.reference === \"suffix\" && (ae = (Z.scheme ? Z.scheme + \":\" : \"\") + \"//\" + ae);\n var Te = ae.match(St);\n if (Te) {\n Yt ? (he.scheme = Te[1], he.userinfo = Te[3], he.host = Te[4], he.port = parseInt(Te[5], 10), he.path = Te[6] || \"\", he.query = Te[7], he.fragment = Te[8], isNaN(he.port) && (he.port = Te[5])) : (he.scheme = Te[1] || void 0, he.userinfo = ae.indexOf(\"@\") !== -1 ? Te[3] : void 0, he.host = ae.indexOf(\"//\") !== -1 ? Te[4] : void 0, he.port = parseInt(Te[5], 10), he.path = Te[6] || \"\", he.query = ae.indexOf(\"?\") !== -1 ? Te[7] : void 0, he.fragment = ae.indexOf(\"#\") !== -1 ? Te[8] : void 0, isNaN(he.port) && (he.port = ae.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? Te[4] : void 0)), he.host && (he.host = Je(Ee(he.host, be), be)), he.scheme === void 0 && he.userinfo === void 0 && he.host === void 0 && he.port === void 0 && !he.path && he.query === void 0 ? he.reference = \"same-document\" : he.scheme === void 0 ? he.reference = \"relative\" : he.fragment === void 0 ? he.reference = \"absolute\" : he.reference = \"uri\", Z.reference && Z.reference !== \"suffix\" && Z.reference !== he.reference && (he.error = he.error || \"URI is not a \" + Z.reference + \" reference.\");\n var _t = fe[(Z.scheme || he.scheme || \"\").toLowerCase()];\n if (!Z.unicodeSupport && (!_t || !_t.unicodeSupport)) {\n if (he.host && (Z.domainHost || _t && _t.domainHost))\n try {\n he.host = ie.toASCII(he.host.replace(be.PCT_ENCODED, ve).toLowerCase());\n } catch (vt) {\n he.error = he.error || \"Host's domain name can not be converted to ASCII via punycode: \" + vt;\n }\n Ue(he, c);\n } else\n Ue(he, be);\n _t && _t.parse && _t.parse(he, Z);\n } else\n he.error = he.error || \"URI can not be parsed.\";\n return he;\n }\n function Ui(ae, Z) {\n var he = Z.iri !== !1 ? u : c, be = [];\n return ae.userinfo !== void 0 && (be.push(ae.userinfo), be.push(\"@\")), ae.host !== void 0 && be.push(Je(Ee(String(ae.host), he), he).replace(he.IPV6ADDRESS, function(Te, _t, vt) {\n return \"[\" + _t + (vt ? \"%25\" + vt : \"\") + \"]\";\n })), (typeof ae.port == \"number\" || typeof ae.port == \"string\") && (be.push(\":\"), be.push(String(ae.port))), be.length ? be.join(\"\") : void 0;\n }\n var is = /^\\.\\.?\\//, fr = /^\\/\\.(\\/|$)/, pr = /^\\/\\.\\.(\\/|$)/, Er = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n function gi(ae) {\n for (var Z = []; ae.length; )\n if (ae.match(is))\n ae = ae.replace(is, \"\");\n else if (ae.match(fr))\n ae = ae.replace(fr, \"/\");\n else if (ae.match(pr))\n ae = ae.replace(pr, \"/\"), Z.pop();\n else if (ae === \".\" || ae === \"..\")\n ae = \"\";\n else {\n var he = ae.match(Er);\n if (he) {\n var be = he[0];\n ae = ae.slice(be.length), Z.push(be);\n } else\n throw new Error(\"Unexpected dot segment condition\");\n }\n return Z.join(\"\");\n }\n function Ni(ae) {\n var Z = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, he = Z.iri ? u : c, be = [], Te = fe[(Z.scheme || ae.scheme || \"\").toLowerCase()];\n if (Te && Te.serialize && Te.serialize(ae, Z), ae.host && !he.IPV6ADDRESS.test(ae.host)) {\n if (Z.domainHost || Te && Te.domainHost)\n try {\n ae.host = Z.iri ? ie.toUnicode(ae.host) : ie.toASCII(ae.host.replace(he.PCT_ENCODED, ve).toLowerCase());\n } catch (di) {\n ae.error = ae.error || \"Host's domain name can not be converted to \" + (Z.iri ? \"Unicode\" : \"ASCII\") + \" via punycode: \" + di;\n }\n }\n Ue(ae, he), Z.reference !== \"suffix\" && ae.scheme && (be.push(ae.scheme), be.push(\":\"));\n var _t = Ui(ae, Z);\n if (_t !== void 0 && (Z.reference !== \"suffix\" && be.push(\"//\"), be.push(_t), ae.path && ae.path.charAt(0) !== \"/\" && be.push(\"/\")), ae.path !== void 0) {\n var vt = ae.path;\n !Z.absolutePath && (!Te || !Te.absolutePath) && (vt = gi(vt)), _t === void 0 && (vt = vt.replace(/^\\/\\//, \"/%2F\")), be.push(vt);\n }\n return ae.query !== void 0 && (be.push(\"?\"), be.push(ae.query)), ae.fragment !== void 0 && (be.push(\"#\"), be.push(ae.fragment)), be.join(\"\");\n }\n function hr(ae, Z) {\n var he = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, be = arguments[3], Te = {};\n return be || (ae = yt(Ni(ae, he), he), Z = yt(Ni(Z, he), he)), he = he || {}, !he.tolerant && Z.scheme ? (Te.scheme = Z.scheme, Te.userinfo = Z.userinfo, Te.host = Z.host, Te.port = Z.port, Te.path = gi(Z.path || \"\"), Te.query = Z.query) : (Z.userinfo !== void 0 || Z.host !== void 0 || Z.port !== void 0 ? (Te.userinfo = Z.userinfo, Te.host = Z.host, Te.port = Z.port, Te.path = gi(Z.path || \"\"), Te.query = Z.query) : (Z.path ? (Z.path.charAt(0) === \"/\" ? Te.path = gi(Z.path) : ((ae.userinfo !== void 0 || ae.host !== void 0 || ae.port !== void 0) && !ae.path ? Te.path = \"/\" + Z.path : ae.path ? Te.path = ae.path.slice(0, ae.path.lastIndexOf(\"/\") + 1) + Z.path : Te.path = Z.path, Te.path = gi(Te.path)), Te.query = Z.query) : (Te.path = ae.path, Z.query !== void 0 ? Te.query = Z.query : Te.query = ae.query), Te.userinfo = ae.userinfo, Te.host = ae.host, Te.port = ae.port), Te.scheme = ae.scheme), Te.fragment = Z.fragment, Te;\n }\n function bt(ae, Z, he) {\n var be = l({ scheme: \"null\" }, he);\n return Ni(hr(yt(ae, be), yt(Z, be), be, !0), be);\n }\n function Dt(ae, Z) {\n return typeof ae == \"string\" ? ae = Ni(yt(ae, Z), Z) : r(ae) === \"object\" && (ae = yt(Ni(ae, Z), Z)), ae;\n }\n function lt(ae, Z, he) {\n return typeof ae == \"string\" ? ae = Ni(yt(ae, he), he) : r(ae) === \"object\" && (ae = Ni(ae, he)), typeof Z == \"string\" ? Z = Ni(yt(Z, he), he) : r(Z) === \"object\" && (Z = Ni(Z, he)), ae === Z;\n }\n function Ht(ae, Z) {\n return ae && ae.toString().replace(!Z || !Z.iri ? c.ESCAPE : u.ESCAPE, pe);\n }\n function yi(ae, Z) {\n return ae && ae.toString().replace(!Z || !Z.iri ? c.PCT_ENCODED : u.PCT_ENCODED, ve);\n }\n var zi = {\n scheme: \"http\",\n domainHost: !0,\n parse: function(Z, he) {\n return Z.host || (Z.error = Z.error || \"HTTP URIs must have a host.\"), Z;\n },\n serialize: function(Z, he) {\n var be = String(Z.scheme).toLowerCase() === \"https\";\n return (Z.port === (be ? 443 : 80) || Z.port === \"\") && (Z.port = void 0), Z.path || (Z.path = \"/\"), Z;\n }\n }, rt = {\n scheme: \"https\",\n domainHost: zi.domainHost,\n parse: zi.parse,\n serialize: zi.serialize\n };\n function gt(ae) {\n return typeof ae.secure == \"boolean\" ? ae.secure : String(ae.scheme).toLowerCase() === \"wss\";\n }\n var ki = {\n scheme: \"ws\",\n domainHost: !0,\n parse: function(Z, he) {\n var be = Z;\n return be.secure = gt(be), be.resourceName = (be.path || \"/\") + (be.query ? \"?\" + be.query : \"\"), be.path = void 0, be.query = void 0, be;\n },\n serialize: function(Z, he) {\n if ((Z.port === (gt(Z) ? 443 : 80) || Z.port === \"\") && (Z.port = void 0), typeof Z.secure == \"boolean\" && (Z.scheme = Z.secure ? \"wss\" : \"ws\", Z.secure = void 0), Z.resourceName) {\n var be = Z.resourceName.split(\"?\"), Te = d(be, 2), _t = Te[0], vt = Te[1];\n Z.path = _t && _t !== \"/\" ? _t : void 0, Z.query = vt, Z.resourceName = void 0;\n }\n return Z.fragment = void 0, Z;\n }\n }, Kr = {\n scheme: \"wss\",\n domainHost: ki.domainHost,\n parse: ki.parse,\n serialize: ki.serialize\n }, gs = {}, Vn = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\", fn = \"[0-9A-Fa-f]\", Yf = s(s(\"%[EFef]\" + fn + \"%\" + fn + fn + \"%\" + fn + fn) + \"|\" + s(\"%[89A-Fa-f]\" + fn + \"%\" + fn + fn) + \"|\" + s(\"%\" + fn + fn)), Ql = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\", Bc = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\", Zl = i(Bc, '[\\\\\"\\\\\\\\]'), tr = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\", Vc = new RegExp(Vn, \"g\"), Ua = new RegExp(Yf, \"g\"), jf = new RegExp(i(\"[^]\", Ql, \"[\\\\.]\", '[\\\\\"]', Zl), \"g\"), Uc = new RegExp(i(\"[^]\", Vn, tr), \"g\"), Kf = Uc;\n function la(ae) {\n var Z = ve(ae);\n return Z.match(Vc) ? Z : ae;\n }\n var ka = {\n scheme: \"mailto\",\n parse: function(Z, he) {\n var be = Z, Te = be.to = be.path ? be.path.split(\",\") : [];\n if (be.path = void 0, be.query) {\n for (var _t = !1, vt = {}, di = be.query.split(\"&\"), ss = 0, Fs = di.length; ss < Fs; ++ss) {\n var ni = di[ss].split(\"=\");\n switch (ni[0]) {\n case \"to\":\n for (var Qi = ni[1].split(\",\"), Ls = 0, Ot = Qi.length; Ls < Ot; ++Ls)\n Te.push(Qi[Ls]);\n break;\n case \"subject\":\n be.subject = yi(ni[1], he);\n break;\n case \"body\":\n be.body = yi(ni[1], he);\n break;\n default:\n _t = !0, vt[yi(ni[0], he)] = yi(ni[1], he);\n break;\n }\n }\n _t && (be.headers = vt);\n }\n be.query = void 0;\n for (var ls = 0, Xs = Te.length; ls < Xs; ++ls) {\n var hs = Te[ls].split(\"@\");\n if (hs[0] = yi(hs[0]), he.unicodeSupport)\n hs[1] = yi(hs[1], he).toLowerCase();\n else\n try {\n hs[1] = ie.toASCII(yi(hs[1], he).toLowerCase());\n } catch (Eo) {\n be.error = be.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + Eo;\n }\n Te[ls] = hs.join(\"@\");\n }\n return be;\n },\n serialize: function(Z, he) {\n var be = Z, Te = o(Z.to);\n if (Te) {\n for (var _t = 0, vt = Te.length; _t < vt; ++_t) {\n var di = String(Te[_t]), ss = di.lastIndexOf(\"@\"), Fs = di.slice(0, ss).replace(Ua, la).replace(Ua, n).replace(jf, pe), ni = di.slice(ss + 1);\n try {\n ni = he.iri ? ie.toUnicode(ni) : ie.toASCII(yi(ni, he).toLowerCase());\n } catch (ls) {\n be.error = be.error || \"Email address's domain name can not be converted to \" + (he.iri ? \"Unicode\" : \"ASCII\") + \" via punycode: \" + ls;\n }\n Te[_t] = Fs + \"@\" + ni;\n }\n be.path = Te.join(\",\");\n }\n var Qi = Z.headers = Z.headers || {};\n Z.subject && (Qi.subject = Z.subject), Z.body && (Qi.body = Z.body);\n var Ls = [];\n for (var Ot in Qi)\n Qi[Ot] !== gs[Ot] && Ls.push(Ot.replace(Ua, la).replace(Ua, n).replace(Uc, pe) + \"=\" + Qi[Ot].replace(Ua, la).replace(Ua, n).replace(Kf, pe));\n return Ls.length && (be.query = Ls.join(\"&\")), be;\n }\n }, Jl = /^([^\\:]+)\\:(.*)/, kc = {\n scheme: \"urn\",\n parse: function(Z, he) {\n var be = Z.path && Z.path.match(Jl), Te = Z;\n if (be) {\n var _t = he.scheme || Te.scheme || \"urn\", vt = be[1].toLowerCase(), di = be[2], ss = _t + \":\" + (he.nid || vt), Fs = fe[ss];\n Te.nid = vt, Te.nss = di, Te.path = void 0, Fs && (Te = Fs.parse(Te, he));\n } else\n Te.error = Te.error || \"URN can not be parsed.\";\n return Te;\n },\n serialize: function(Z, he) {\n var be = he.scheme || Z.scheme || \"urn\", Te = Z.nid, _t = be + \":\" + (he.nid || Te), vt = fe[_t];\n vt && (Z = vt.serialize(Z, he));\n var di = Z, ss = Z.nss;\n return di.path = (Te || he.nid) + \":\" + ss, di;\n }\n }, eh = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/, Ga = {\n scheme: \"urn:uuid\",\n parse: function(Z, he) {\n var be = Z;\n return be.uuid = be.nss, be.nss = void 0, !he.tolerant && (!be.uuid || !be.uuid.match(eh)) && (be.error = be.error || \"UUID is not valid.\"), be;\n },\n serialize: function(Z, he) {\n var be = Z;\n return be.nss = (Z.uuid || \"\").toLowerCase(), be;\n }\n };\n fe[zi.scheme] = zi, fe[rt.scheme] = rt, fe[ki.scheme] = ki, fe[Kr.scheme] = Kr, fe[ka.scheme] = ka, fe[kc.scheme] = kc, fe[Ga.scheme] = Ga, t.SCHEMES = fe, t.pctEncChar = pe, t.pctDecChars = ve, t.parse = yt, t.removeDotSegments = gi, t.serialize = Ni, t.resolveComponents = hr, t.resolve = bt, t.normalize = Dt, t.equal = lt, t.escapeComponent = Ht, t.unescapeComponent = yi, Object.defineProperty(t, \"__esModule\", { value: !0 });\n });\n})(nx, nx.exports);\nvar _$ = nx.exports;\nObject.defineProperty(xT, \"__esModule\", { value: !0 });\nconst tP = _$;\ntP.code = 'require(\"ajv/dist/runtime/uri\").default';\nxT.default = tP;\n(function(a) {\n Object.defineProperty(a, \"__esModule\", { value: !0 }), a.CodeGen = a.Name = a.nil = a.stringify = a.str = a._ = a.KeywordCxt = void 0;\n var e = sa;\n Object.defineProperty(a, \"KeywordCxt\", { enumerable: !0, get: function() {\n return e.KeywordCxt;\n } });\n var t = Gt;\n Object.defineProperty(a, \"_\", { enumerable: !0, get: function() {\n return t._;\n } }), Object.defineProperty(a, \"str\", { enumerable: !0, get: function() {\n return t.str;\n } }), Object.defineProperty(a, \"stringify\", { enumerable: !0, get: function() {\n return t.stringify;\n } }), Object.defineProperty(a, \"nil\", { enumerable: !0, get: function() {\n return t.nil;\n } }), Object.defineProperty(a, \"Name\", { enumerable: !0, get: function() {\n return t.Name;\n } }), Object.defineProperty(a, \"CodeGen\", { enumerable: !0, get: function() {\n return t.CodeGen;\n } });\n const i = Xf, s = Oc, r = wl, n = kr, o = Gt, l = mr, h = ar, c = Qe, u = p$, d = xT, f = (Y, M) => new RegExp(Y, M);\n f.code = \"new RegExp\";\n const p = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"], _ = /* @__PURE__ */ new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\"\n ]), m = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\"\n }, x = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.'\n }, v = 200;\n function T(Y) {\n var M, k, W, V, K, ie, fe, pe, ve, Ue, ht, Ee, Je, St, Yt, yt, Ui, is, fr, pr, Er, gi, Ni, hr, bt;\n const Dt = Y.strict, lt = (M = Y.code) === null || M === void 0 ? void 0 : M.optimize, Ht = lt === !0 || lt === void 0 ? 1 : lt || 0, yi = (W = (k = Y.code) === null || k === void 0 ? void 0 : k.regExp) !== null && W !== void 0 ? W : f, zi = (V = Y.uriResolver) !== null && V !== void 0 ? V : d.default;\n return {\n strictSchema: (ie = (K = Y.strictSchema) !== null && K !== void 0 ? K : Dt) !== null && ie !== void 0 ? ie : !0,\n strictNumbers: (pe = (fe = Y.strictNumbers) !== null && fe !== void 0 ? fe : Dt) !== null && pe !== void 0 ? pe : !0,\n strictTypes: (Ue = (ve = Y.strictTypes) !== null && ve !== void 0 ? ve : Dt) !== null && Ue !== void 0 ? Ue : \"log\",\n strictTuples: (Ee = (ht = Y.strictTuples) !== null && ht !== void 0 ? ht : Dt) !== null && Ee !== void 0 ? Ee : \"log\",\n strictRequired: (St = (Je = Y.strictRequired) !== null && Je !== void 0 ? Je : Dt) !== null && St !== void 0 ? St : !1,\n code: Y.code ? { ...Y.code, optimize: Ht, regExp: yi } : { optimize: Ht, regExp: yi },\n loopRequired: (Yt = Y.loopRequired) !== null && Yt !== void 0 ? Yt : v,\n loopEnum: (yt = Y.loopEnum) !== null && yt !== void 0 ? yt : v,\n meta: (Ui = Y.meta) !== null && Ui !== void 0 ? Ui : !0,\n messages: (is = Y.messages) !== null && is !== void 0 ? is : !0,\n inlineRefs: (fr = Y.inlineRefs) !== null && fr !== void 0 ? fr : !0,\n schemaId: (pr = Y.schemaId) !== null && pr !== void 0 ? pr : \"$id\",\n addUsedSchema: (Er = Y.addUsedSchema) !== null && Er !== void 0 ? Er : !0,\n validateSchema: (gi = Y.validateSchema) !== null && gi !== void 0 ? gi : !0,\n validateFormats: (Ni = Y.validateFormats) !== null && Ni !== void 0 ? Ni : !0,\n unicodeRegExp: (hr = Y.unicodeRegExp) !== null && hr !== void 0 ? hr : !0,\n int32range: (bt = Y.int32range) !== null && bt !== void 0 ? bt : !0,\n uriResolver: zi\n };\n }\n class E {\n constructor(M = {}) {\n this.schemas = {}, this.refs = {}, this.formats = {}, this._compilations = /* @__PURE__ */ new Set(), this._loading = {}, this._cache = /* @__PURE__ */ new Map(), M = this.opts = { ...M, ...T(M) };\n const { es5: k, lines: W } = this.opts.code;\n this.scope = new o.ValueScope({ scope: {}, prefixes: _, es5: k, lines: W }), this.logger = j(M.logger);\n const V = M.validateFormats;\n M.validateFormats = !1, this.RULES = (0, r.getRules)(), b.call(this, m, M, \"NOT SUPPORTED\"), b.call(this, x, M, \"DEPRECATED\", \"warn\"), this._metaOpts = F.call(this), M.formats && P.call(this), this._addVocabularies(), this._addDefaultMetaSchema(), M.keywords && N.call(this, M.keywords), typeof M.meta == \"object\" && this.addMetaSchema(M.meta), C.call(this), M.validateFormats = V;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data: M, meta: k, schemaId: W } = this.opts;\n let V = u;\n W === \"id\" && (V = { ...u }, V.id = V.$id, delete V.$id), k && M && this.addMetaSchema(V, V[W], !1);\n }\n defaultMeta() {\n const { meta: M, schemaId: k } = this.opts;\n return this.opts.defaultMeta = typeof M == \"object\" ? M[k] || M : void 0;\n }\n validate(M, k) {\n let W;\n if (typeof M == \"string\") {\n if (W = this.getSchema(M), !W)\n throw new Error(`no schema with key or ref \"${M}\"`);\n } else\n W = this.compile(M);\n const V = W(k);\n return \"$async\" in W || (this.errors = W.errors), V;\n }\n compile(M, k) {\n const W = this._addSchema(M, k);\n return W.validate || this._compileSchemaEnv(W);\n }\n compileAsync(M, k) {\n if (typeof this.opts.loadSchema != \"function\")\n throw new Error(\"options.loadSchema should be a function\");\n const { loadSchema: W } = this.opts;\n return V.call(this, M, k);\n async function V(Ue, ht) {\n await K.call(this, Ue.$schema);\n const Ee = this._addSchema(Ue, ht);\n return Ee.validate || ie.call(this, Ee);\n }\n async function K(Ue) {\n Ue && !this.getSchema(Ue) && await V.call(this, { $ref: Ue }, !0);\n }\n async function ie(Ue) {\n try {\n return this._compileSchemaEnv(Ue);\n } catch (ht) {\n if (!(ht instanceof s.default))\n throw ht;\n return fe.call(this, ht), await pe.call(this, ht.missingSchema), ie.call(this, Ue);\n }\n }\n function fe({ missingSchema: Ue, missingRef: ht }) {\n if (this.refs[Ue])\n throw new Error(`AnySchema ${Ue} is loaded but ${ht} cannot be resolved`);\n }\n async function pe(Ue) {\n const ht = await ve.call(this, Ue);\n this.refs[Ue] || await K.call(this, ht.$schema), this.refs[Ue] || this.addSchema(ht, Ue, k);\n }\n async function ve(Ue) {\n const ht = this._loading[Ue];\n if (ht)\n return ht;\n try {\n return await (this._loading[Ue] = W(Ue));\n } finally {\n delete this._loading[Ue];\n }\n }\n }\n // Adds schema to the instance\n addSchema(M, k, W, V = this.opts.validateSchema) {\n if (Array.isArray(M)) {\n for (const ie of M)\n this.addSchema(ie, void 0, W, V);\n return this;\n }\n let K;\n if (typeof M == \"object\") {\n const { schemaId: ie } = this.opts;\n if (K = M[ie], K !== void 0 && typeof K != \"string\")\n throw new Error(`schema ${ie} must be string`);\n }\n return k = (0, l.normalizeId)(k || K), this._checkUnique(k), this.schemas[k] = this._addSchema(M, W, k, V, !0), this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(M, k, W = this.opts.validateSchema) {\n return this.addSchema(M, k, !0, W), this;\n }\n // Validate schema against its meta-schema\n validateSchema(M, k) {\n if (typeof M == \"boolean\")\n return !0;\n let W;\n if (W = M.$schema, W !== void 0 && typeof W != \"string\")\n throw new Error(\"$schema must be a string\");\n if (W = W || this.opts.defaultMeta || this.defaultMeta(), !W)\n return this.logger.warn(\"meta-schema not available\"), this.errors = null, !0;\n const V = this.validate(W, M);\n if (!V && k) {\n const K = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(K);\n else\n throw new Error(K);\n }\n return V;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(M) {\n let k;\n for (; typeof (k = S.call(this, M)) == \"string\"; )\n M = k;\n if (k === void 0) {\n const { schemaId: W } = this.opts, V = new n.SchemaEnv({ schema: {}, schemaId: W });\n if (k = n.resolveSchema.call(this, V, M), !k)\n return;\n this.refs[M] = k;\n }\n return k.validate || this._compileSchemaEnv(k);\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(M) {\n if (M instanceof RegExp)\n return this._removeAllSchemas(this.schemas, M), this._removeAllSchemas(this.refs, M), this;\n switch (typeof M) {\n case \"undefined\":\n return this._removeAllSchemas(this.schemas), this._removeAllSchemas(this.refs), this._cache.clear(), this;\n case \"string\": {\n const k = S.call(this, M);\n return typeof k == \"object\" && this._cache.delete(k.schema), delete this.schemas[M], delete this.refs[M], this;\n }\n case \"object\": {\n const k = M;\n this._cache.delete(k);\n let W = M[this.opts.schemaId];\n return W && (W = (0, l.normalizeId)(W), delete this.schemas[W], delete this.refs[W]), this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(M) {\n for (const k of M)\n this.addKeyword(k);\n return this;\n }\n addKeyword(M, k) {\n let W;\n if (typeof M == \"string\")\n W = M, typeof k == \"object\" && (this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\"), k.keyword = W);\n else if (typeof M == \"object\" && k === void 0) {\n if (k = M, W = k.keyword, Array.isArray(W) && !W.length)\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n } else\n throw new Error(\"invalid addKeywords parameters\");\n if (te.call(this, W, k), !k)\n return (0, c.eachItem)(W, (K) => le.call(this, K)), this;\n Se.call(this, k);\n const V = {\n ...k,\n type: (0, h.getJSONTypes)(k.type),\n schemaType: (0, h.getJSONTypes)(k.schemaType)\n };\n return (0, c.eachItem)(W, V.type.length === 0 ? (K) => le.call(this, K, V) : (K) => V.type.forEach((ie) => le.call(this, K, V, ie))), this;\n }\n getKeyword(M) {\n const k = this.RULES.all[M];\n return typeof k == \"object\" ? k.definition : !!k;\n }\n // Remove keyword\n removeKeyword(M) {\n const { RULES: k } = this;\n delete k.keywords[M], delete k.all[M];\n for (const W of k.rules) {\n const V = W.rules.findIndex((K) => K.keyword === M);\n V >= 0 && W.rules.splice(V, 1);\n }\n return this;\n }\n // Add format\n addFormat(M, k) {\n return typeof k == \"string\" && (k = new RegExp(k)), this.formats[M] = k, this;\n }\n errorsText(M = this.errors, { separator: k = \", \", dataVar: W = \"data\" } = {}) {\n return !M || M.length === 0 ? \"No errors\" : M.map((V) => `${W}${V.instancePath} ${V.message}`).reduce((V, K) => V + k + K);\n }\n $dataMetaSchema(M, k) {\n const W = this.RULES.all;\n M = JSON.parse(JSON.stringify(M));\n for (const V of k) {\n const K = V.split(\"/\").slice(1);\n let ie = M;\n for (const fe of K)\n ie = ie[fe];\n for (const fe in W) {\n const pe = W[fe];\n if (typeof pe != \"object\")\n continue;\n const { $data: ve } = pe.definition, Ue = ie[fe];\n ve && Ue && (ie[fe] = de(Ue));\n }\n }\n return M;\n }\n _removeAllSchemas(M, k) {\n for (const W in M) {\n const V = M[W];\n (!k || k.test(W)) && (typeof V == \"string\" ? delete M[W] : V && !V.meta && (this._cache.delete(V.schema), delete M[W]));\n }\n }\n _addSchema(M, k, W, V = this.opts.validateSchema, K = this.opts.addUsedSchema) {\n let ie;\n const { schemaId: fe } = this.opts;\n if (typeof M == \"object\")\n ie = M[fe];\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n if (typeof M != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let pe = this._cache.get(M);\n if (pe !== void 0)\n return pe;\n W = (0, l.normalizeId)(ie || W);\n const ve = l.getSchemaRefs.call(this, M, W);\n return pe = new n.SchemaEnv({ schema: M, schemaId: fe, meta: k, baseId: W, localRefs: ve }), this._cache.set(pe.schema, pe), K && !W.startsWith(\"#\") && (W && this._checkUnique(W), this.refs[W] = pe), V && this.validateSchema(M, !0), pe;\n }\n _checkUnique(M) {\n if (this.schemas[M] || this.refs[M])\n throw new Error(`schema with key or id \"${M}\" already exists`);\n }\n _compileSchemaEnv(M) {\n if (M.meta ? this._compileMetaSchema(M) : n.compileSchema.call(this, M), !M.validate)\n throw new Error(\"ajv implementation error\");\n return M.validate;\n }\n _compileMetaSchema(M) {\n const k = this.opts;\n this.opts = this._metaOpts;\n try {\n n.compileSchema.call(this, M);\n } finally {\n this.opts = k;\n }\n }\n }\n E.ValidationError = i.default, E.MissingRefError = s.default, a.default = E;\n function b(Y, M, k, W = \"error\") {\n for (const V in Y) {\n const K = V;\n K in M && this.logger[W](`${k}: option ${V}. ${Y[K]}`);\n }\n }\n function S(Y) {\n return Y = (0, l.normalizeId)(Y), this.schemas[Y] || this.refs[Y];\n }\n function C() {\n const Y = this.opts.schemas;\n if (Y)\n if (Array.isArray(Y))\n this.addSchema(Y);\n else\n for (const M in Y)\n this.addSchema(Y[M], M);\n }\n function P() {\n for (const Y in this.opts.formats) {\n const M = this.opts.formats[Y];\n M && this.addFormat(Y, M);\n }\n }\n function N(Y) {\n if (Array.isArray(Y)) {\n this.addVocabulary(Y);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const M in Y) {\n const k = Y[M];\n k.keyword || (k.keyword = M), this.addKeyword(k);\n }\n }\n function F() {\n const Y = { ...this.opts };\n for (const M of p)\n delete Y[M];\n return Y;\n }\n const $ = { log() {\n }, warn() {\n }, error() {\n } };\n function j(Y) {\n if (Y === !1)\n return $;\n if (Y === void 0)\n return console;\n if (Y.log && Y.warn && Y.error)\n return Y;\n throw new Error(\"logger must implement log, warn and error methods\");\n }\n const ne = /^[a-z_$][a-z0-9_$:-]*$/i;\n function te(Y, M) {\n const { RULES: k } = this;\n if ((0, c.eachItem)(Y, (W) => {\n if (k.keywords[W])\n throw new Error(`Keyword ${W} is already defined`);\n if (!ne.test(W))\n throw new Error(`Keyword ${W} has invalid name`);\n }), !!M && M.$data && !(\"code\" in M || \"validate\" in M))\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n function le(Y, M, k) {\n var W;\n const V = M == null ? void 0 : M.post;\n if (k && V)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES: K } = this;\n let ie = V ? K.post : K.rules.find(({ type: pe }) => pe === k);\n if (ie || (ie = { type: k, rules: [] }, K.rules.push(ie)), K.keywords[Y] = !0, !M)\n return;\n const fe = {\n keyword: Y,\n definition: {\n ...M,\n type: (0, h.getJSONTypes)(M.type),\n schemaType: (0, h.getJSONTypes)(M.schemaType)\n }\n };\n M.before ? _e.call(this, ie, fe, M.before) : ie.rules.push(fe), K.all[Y] = fe, (W = M.implements) === null || W === void 0 || W.forEach((pe) => this.addKeyword(pe));\n }\n function _e(Y, M, k) {\n const W = Y.rules.findIndex((V) => V.keyword === k);\n W >= 0 ? Y.rules.splice(W, 0, M) : (Y.rules.push(M), this.logger.warn(`rule ${k} is not defined`));\n }\n function Se(Y) {\n let { metaSchema: M } = Y;\n M !== void 0 && (Y.$data && this.opts.$data && (M = de(M)), Y.validateSchema = this.compile(M, !0));\n }\n const Ie = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\"\n };\n function de(Y) {\n return { anyOf: [Y, Ie] };\n }\n})(bI);\nvar vT = {}, TT = {}, ST = {};\nObject.defineProperty(ST, \"__esModule\", { value: !0 });\nconst m$ = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n }\n};\nST.default = m$;\nvar xo = {};\nObject.defineProperty(xo, \"__esModule\", { value: !0 });\nxo.callRef = xo.getValidate = void 0;\nconst g$ = Oc, Vy = Zt, en = Gt, ch = An, Uy = kr, cp = Qe, x$ = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(a) {\n const { gen: e, schema: t, it: i } = a, { baseId: s, schemaEnv: r, validateName: n, opts: o, self: l } = i, { root: h } = r;\n if ((t === \"#\" || t === \"#/\") && s === h.baseId)\n return u();\n const c = Uy.resolveRef.call(l, h, s, t);\n if (c === void 0)\n throw new g$.default(i.opts.uriResolver, s, t);\n if (c instanceof Uy.SchemaEnv)\n return d(c);\n return f(c);\n function u() {\n if (r === h)\n return Cp(a, n, r, r.$async);\n const p = e.scopeValue(\"root\", { ref: h });\n return Cp(a, (0, en._)`${p}.validate`, h, h.$async);\n }\n function d(p) {\n const _ = iP(a, p);\n Cp(a, _, p, p.$async);\n }\n function f(p) {\n const _ = e.scopeValue(\"schema\", o.code.source === !0 ? { ref: p, code: (0, en.stringify)(p) } : { ref: p }), m = e.name(\"valid\"), x = a.subschema({\n schema: p,\n dataTypes: [],\n schemaPath: en.nil,\n topSchemaRef: _,\n errSchemaPath: t\n }, m);\n a.mergeEvaluated(x), a.ok(m);\n }\n }\n};\nfunction iP(a, e) {\n const { gen: t } = a;\n return e.validate ? t.scopeValue(\"validate\", { ref: e.validate }) : (0, en._)`${t.scopeValue(\"wrapper\", { ref: e })}.validate`;\n}\nxo.getValidate = iP;\nfunction Cp(a, e, t, i) {\n const { gen: s, it: r } = a, { allErrors: n, schemaEnv: o, opts: l } = r, h = l.passContext ? ch.default.this : en.nil;\n i ? c() : u();\n function c() {\n if (!o.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const p = s.let(\"valid\");\n s.try(() => {\n s.code((0, en._)`await ${(0, Vy.callValidateCode)(a, e, h)}`), f(e), n || s.assign(p, !0);\n }, (_) => {\n s.if((0, en._)`!(${_} instanceof ${r.ValidationError})`, () => s.throw(_)), d(_), n || s.assign(p, !1);\n }), a.ok(p);\n }\n function u() {\n a.result((0, Vy.callValidateCode)(a, e, h), () => f(e), () => d(e));\n }\n function d(p) {\n const _ = (0, en._)`${p}.errors`;\n s.assign(ch.default.vErrors, (0, en._)`${ch.default.vErrors} === null ? ${_} : ${ch.default.vErrors}.concat(${_})`), s.assign(ch.default.errors, (0, en._)`${ch.default.vErrors}.length`);\n }\n function f(p) {\n var _;\n if (!r.opts.unevaluated)\n return;\n const m = (_ = t == null ? void 0 : t.validate) === null || _ === void 0 ? void 0 : _.evaluated;\n if (r.props !== !0)\n if (m && !m.dynamicProps)\n m.props !== void 0 && (r.props = cp.mergeEvaluated.props(s, m.props, r.props));\n else {\n const x = s.var(\"props\", (0, en._)`${p}.evaluated.props`);\n r.props = cp.mergeEvaluated.props(s, x, r.props, en.Name);\n }\n if (r.items !== !0)\n if (m && !m.dynamicItems)\n m.items !== void 0 && (r.items = cp.mergeEvaluated.items(s, m.items, r.items));\n else {\n const x = s.var(\"items\", (0, en._)`${p}.evaluated.items`);\n r.items = cp.mergeEvaluated.items(s, x, r.items, en.Name);\n }\n }\n}\nxo.callRef = Cp;\nxo.default = x$;\nObject.defineProperty(TT, \"__esModule\", { value: !0 });\nconst v$ = ST, T$ = xo, S$ = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n v$.default,\n T$.default\n];\nTT.default = S$;\nvar bT = {}, ET = {};\nObject.defineProperty(ET, \"__esModule\", { value: !0 });\nconst r_ = Gt, Io = r_.operators, n_ = {\n maximum: { okStr: \"<=\", ok: Io.LTE, fail: Io.GT },\n minimum: { okStr: \">=\", ok: Io.GTE, fail: Io.LT },\n exclusiveMaximum: { okStr: \"<\", ok: Io.LT, fail: Io.GTE },\n exclusiveMinimum: { okStr: \">\", ok: Io.GT, fail: Io.LTE }\n}, b$ = {\n message: ({ keyword: a, schemaCode: e }) => (0, r_.str)`must be ${n_[a].okStr} ${e}`,\n params: ({ keyword: a, schemaCode: e }) => (0, r_._)`{comparison: ${n_[a].okStr}, limit: ${e}}`\n}, E$ = {\n keyword: Object.keys(n_),\n type: \"number\",\n schemaType: \"number\",\n $data: !0,\n error: b$,\n code(a) {\n const { keyword: e, data: t, schemaCode: i } = a;\n a.fail$data((0, r_._)`${t} ${n_[e].fail} ${i} || isNaN(${t})`);\n }\n};\nET.default = E$;\nvar yT = {};\nObject.defineProperty(yT, \"__esModule\", { value: !0 });\nconst uu = Gt, y$ = {\n message: ({ schemaCode: a }) => (0, uu.str)`must be multiple of ${a}`,\n params: ({ schemaCode: a }) => (0, uu._)`{multipleOf: ${a}}`\n}, C$ = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: !0,\n error: y$,\n code(a) {\n const { gen: e, data: t, schemaCode: i, it: s } = a, r = s.opts.multipleOfPrecision, n = e.let(\"res\"), o = r ? (0, uu._)`Math.abs(Math.round(${n}) - ${n}) > 1e-${r}` : (0, uu._)`${n} !== parseInt(${n})`;\n a.fail$data((0, uu._)`(${i} === 0 || (${n} = ${t}/${i}, ${o}))`);\n }\n};\nyT.default = C$;\nvar CT = {}, AT = {};\nObject.defineProperty(AT, \"__esModule\", { value: !0 });\nfunction sP(a) {\n const e = a.length;\n let t = 0, i = 0, s;\n for (; i < e; )\n t++, s = a.charCodeAt(i++), s >= 55296 && s <= 56319 && i < e && (s = a.charCodeAt(i), (s & 64512) === 56320 && i++);\n return t;\n}\nAT.default = sP;\nsP.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\nObject.defineProperty(CT, \"__esModule\", { value: !0 });\nconst gl = Gt, A$ = Qe, R$ = AT, I$ = {\n message({ keyword: a, schemaCode: e }) {\n const t = a === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, gl.str)`must NOT have ${t} than ${e} characters`;\n },\n params: ({ schemaCode: a }) => (0, gl._)`{limit: ${a}}`\n}, P$ = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: !0,\n error: I$,\n code(a) {\n const { keyword: e, data: t, schemaCode: i, it: s } = a, r = e === \"maxLength\" ? gl.operators.GT : gl.operators.LT, n = s.opts.unicode === !1 ? (0, gl._)`${t}.length` : (0, gl._)`${(0, A$.useFunc)(a.gen, R$.default)}(${t})`;\n a.fail$data((0, gl._)`${n} ${r} ${i}`);\n }\n};\nCT.default = P$;\nvar RT = {};\nObject.defineProperty(RT, \"__esModule\", { value: !0 });\nconst M$ = Zt, a_ = Gt, D$ = {\n message: ({ schemaCode: a }) => (0, a_.str)`must match pattern \"${a}\"`,\n params: ({ schemaCode: a }) => (0, a_._)`{pattern: ${a}}`\n}, O$ = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: !0,\n error: D$,\n code(a) {\n const { data: e, $data: t, schema: i, schemaCode: s, it: r } = a, n = r.opts.unicodeRegExp ? \"u\" : \"\", o = t ? (0, a_._)`(new RegExp(${s}, ${n}))` : (0, M$.usePattern)(a, i);\n a.fail$data((0, a_._)`!${o}.test(${e})`);\n }\n};\nRT.default = O$;\nvar IT = {};\nObject.defineProperty(IT, \"__esModule\", { value: !0 });\nconst du = Gt, w$ = {\n message({ keyword: a, schemaCode: e }) {\n const t = a === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, du.str)`must NOT have ${t} than ${e} properties`;\n },\n params: ({ schemaCode: a }) => (0, du._)`{limit: ${a}}`\n}, N$ = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: !0,\n error: w$,\n code(a) {\n const { keyword: e, data: t, schemaCode: i } = a, s = e === \"maxProperties\" ? du.operators.GT : du.operators.LT;\n a.fail$data((0, du._)`Object.keys(${t}).length ${s} ${i}`);\n }\n};\nIT.default = N$;\nvar PT = {};\nObject.defineProperty(PT, \"__esModule\", { value: !0 });\nconst Kc = Zt, fu = Gt, F$ = Qe, L$ = {\n message: ({ params: { missingProperty: a } }) => (0, fu.str)`must have required property '${a}'`,\n params: ({ params: { missingProperty: a } }) => (0, fu._)`{missingProperty: ${a}}`\n}, B$ = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: !0,\n error: L$,\n code(a) {\n const { gen: e, schema: t, schemaCode: i, data: s, $data: r, it: n } = a, { opts: o } = n;\n if (!r && t.length === 0)\n return;\n const l = t.length >= o.loopRequired;\n if (n.allErrors ? h() : c(), o.strictRequired) {\n const f = a.parentSchema.properties, { definedProperties: p } = a.it;\n for (const _ of t)\n if ((f == null ? void 0 : f[_]) === void 0 && !p.has(_)) {\n const m = n.schemaEnv.baseId + n.errSchemaPath, x = `required property \"${_}\" is not defined at \"${m}\" (strictRequired)`;\n (0, F$.checkStrictMode)(n, x, n.opts.strictRequired);\n }\n }\n function h() {\n if (l || r)\n a.block$data(fu.nil, u);\n else\n for (const f of t)\n (0, Kc.checkReportMissingProp)(a, f);\n }\n function c() {\n const f = e.let(\"missing\");\n if (l || r) {\n const p = e.let(\"valid\", !0);\n a.block$data(p, () => d(f, p)), a.ok(p);\n } else\n e.if((0, Kc.checkMissingProp)(a, t, f)), (0, Kc.reportMissingProp)(a, f), e.else();\n }\n function u() {\n e.forOf(\"prop\", i, (f) => {\n a.setParams({ missingProperty: f }), e.if((0, Kc.noPropertyInData)(e, s, f, o.ownProperties), () => a.error());\n });\n }\n function d(f, p) {\n a.setParams({ missingProperty: f }), e.forOf(f, i, () => {\n e.assign(p, (0, Kc.propertyInData)(e, s, f, o.ownProperties)), e.if((0, fu.not)(p), () => {\n a.error(), e.break();\n });\n }, fu.nil);\n }\n }\n};\nPT.default = B$;\nvar MT = {};\nObject.defineProperty(MT, \"__esModule\", { value: !0 });\nconst pu = Gt, V$ = {\n message({ keyword: a, schemaCode: e }) {\n const t = a === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, pu.str)`must NOT have ${t} than ${e} items`;\n },\n params: ({ schemaCode: a }) => (0, pu._)`{limit: ${a}}`\n}, U$ = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: !0,\n error: V$,\n code(a) {\n const { keyword: e, data: t, schemaCode: i } = a, s = e === \"maxItems\" ? pu.operators.GT : pu.operators.LT;\n a.fail$data((0, pu._)`${t}.length ${s} ${i}`);\n }\n};\nMT.default = U$;\nvar DT = {}, $f = {};\nObject.defineProperty($f, \"__esModule\", { value: !0 });\nconst rP = VI;\nrP.code = 'require(\"ajv/dist/runtime/equal\").default';\n$f.default = rP;\nObject.defineProperty(DT, \"__esModule\", { value: !0 });\nconst dg = ar, _r = Gt, k$ = Qe, G$ = $f, z$ = {\n message: ({ params: { i: a, j: e } }) => (0, _r.str)`must NOT have duplicate items (items ## ${e} and ${a} are identical)`,\n params: ({ params: { i: a, j: e } }) => (0, _r._)`{i: ${a}, j: ${e}}`\n}, W$ = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: !0,\n error: z$,\n code(a) {\n const { gen: e, data: t, $data: i, schema: s, parentSchema: r, schemaCode: n, it: o } = a;\n if (!i && !s)\n return;\n const l = e.let(\"valid\"), h = r.items ? (0, dg.getSchemaTypes)(r.items) : [];\n a.block$data(l, c, (0, _r._)`${n} === false`), a.ok(l);\n function c() {\n const p = e.let(\"i\", (0, _r._)`${t}.length`), _ = e.let(\"j\");\n a.setParams({ i: p, j: _ }), e.assign(l, !0), e.if((0, _r._)`${p} > 1`, () => (u() ? d : f)(p, _));\n }\n function u() {\n return h.length > 0 && !h.some((p) => p === \"object\" || p === \"array\");\n }\n function d(p, _) {\n const m = e.name(\"item\"), x = (0, dg.checkDataTypes)(h, m, o.opts.strictNumbers, dg.DataType.Wrong), v = e.const(\"indices\", (0, _r._)`{}`);\n e.for((0, _r._)`;${p}--;`, () => {\n e.let(m, (0, _r._)`${t}[${p}]`), e.if(x, (0, _r._)`continue`), h.length > 1 && e.if((0, _r._)`typeof ${m} == \"string\"`, (0, _r._)`${m} += \"_\"`), e.if((0, _r._)`typeof ${v}[${m}] == \"number\"`, () => {\n e.assign(_, (0, _r._)`${v}[${m}]`), a.error(), e.assign(l, !1).break();\n }).code((0, _r._)`${v}[${m}] = ${p}`);\n });\n }\n function f(p, _) {\n const m = (0, k$.useFunc)(e, G$.default), x = e.name(\"outer\");\n e.label(x).for((0, _r._)`;${p}--;`, () => e.for((0, _r._)`${_} = ${p}; ${_}--;`, () => e.if((0, _r._)`${m}(${t}[${p}], ${t}[${_}])`, () => {\n a.error(), e.assign(l, !1).break(x);\n })));\n }\n }\n};\nDT.default = W$;\nvar OT = {};\nObject.defineProperty(OT, \"__esModule\", { value: !0 });\nconst ax = Gt, H$ = Qe, X$ = $f, $$ = {\n message: \"must be equal to constant\",\n params: ({ schemaCode: a }) => (0, ax._)`{allowedValue: ${a}}`\n}, Y$ = {\n keyword: \"const\",\n $data: !0,\n error: $$,\n code(a) {\n const { gen: e, data: t, $data: i, schemaCode: s, schema: r } = a;\n i || r && typeof r == \"object\" ? a.fail$data((0, ax._)`!${(0, H$.useFunc)(e, X$.default)}(${t}, ${s})`) : a.fail((0, ax._)`${r} !== ${t}`);\n }\n};\nOT.default = Y$;\nvar wT = {};\nObject.defineProperty(wT, \"__esModule\", { value: !0 });\nconst Qc = Gt, j$ = Qe, K$ = $f, q$ = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode: a }) => (0, Qc._)`{allowedValues: ${a}}`\n}, Q$ = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: !0,\n error: q$,\n code(a) {\n const { gen: e, data: t, $data: i, schema: s, schemaCode: r, it: n } = a;\n if (!i && s.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const o = s.length >= n.opts.loopEnum;\n let l;\n const h = () => l ?? (l = (0, j$.useFunc)(e, K$.default));\n let c;\n if (o || i)\n c = e.let(\"valid\"), a.block$data(c, u);\n else {\n if (!Array.isArray(s))\n throw new Error(\"ajv implementation error\");\n const f = e.const(\"vSchema\", r);\n c = (0, Qc.or)(...s.map((p, _) => d(f, _)));\n }\n a.pass(c);\n function u() {\n e.assign(c, !1), e.forOf(\"v\", r, (f) => e.if((0, Qc._)`${h()}(${t}, ${f})`, () => e.assign(c, !0).break()));\n }\n function d(f, p) {\n const _ = s[p];\n return typeof _ == \"object\" && _ !== null ? (0, Qc._)`${h()}(${t}, ${f}[${p}])` : (0, Qc._)`${t} === ${_}`;\n }\n }\n};\nwT.default = Q$;\nObject.defineProperty(bT, \"__esModule\", { value: !0 });\nconst Z$ = ET, J$ = yT, eY = CT, tY = RT, iY = IT, sY = PT, rY = MT, nY = DT, aY = OT, oY = wT, lY = [\n // number\n Z$.default,\n J$.default,\n // string\n eY.default,\n tY.default,\n // object\n iY.default,\n sY.default,\n // array\n rY.default,\n nY.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n aY.default,\n oY.default\n];\nbT.default = lY;\nvar NT = {}, wc = {};\nObject.defineProperty(wc, \"__esModule\", { value: !0 });\nwc.validateAdditionalItems = void 0;\nconst xl = Gt, ox = Qe, hY = {\n message: ({ params: { len: a } }) => (0, xl.str)`must NOT have more than ${a} items`,\n params: ({ params: { len: a } }) => (0, xl._)`{limit: ${a}}`\n}, cY = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error: hY,\n code(a) {\n const { parentSchema: e, it: t } = a, { items: i } = e;\n if (!Array.isArray(i)) {\n (0, ox.checkStrictMode)(t, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n nP(a, i);\n }\n};\nfunction nP(a, e) {\n const { gen: t, schema: i, data: s, keyword: r, it: n } = a;\n n.items = !0;\n const o = t.const(\"len\", (0, xl._)`${s}.length`);\n if (i === !1)\n a.setParams({ len: e.length }), a.pass((0, xl._)`${o} <= ${e.length}`);\n else if (typeof i == \"object\" && !(0, ox.alwaysValidSchema)(n, i)) {\n const h = t.var(\"valid\", (0, xl._)`${o} <= ${e.length}`);\n t.if((0, xl.not)(h), () => l(h)), a.ok(h);\n }\n function l(h) {\n t.forRange(\"i\", e.length, o, (c) => {\n a.subschema({ keyword: r, dataProp: c, dataPropType: ox.Type.Num }, h), n.allErrors || t.if((0, xl.not)(h), () => t.break());\n });\n }\n}\nwc.validateAdditionalItems = nP;\nwc.default = cY;\nvar FT = {}, Nc = {};\nObject.defineProperty(Nc, \"__esModule\", { value: !0 });\nNc.validateTuple = void 0;\nconst ky = Gt, Ap = Qe, uY = Zt, dY = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(a) {\n const { schema: e, it: t } = a;\n if (Array.isArray(e))\n return aP(a, \"additionalItems\", e);\n t.items = !0, !(0, Ap.alwaysValidSchema)(t, e) && a.ok((0, uY.validateArray)(a));\n }\n};\nfunction aP(a, e, t = a.schema) {\n const { gen: i, parentSchema: s, data: r, keyword: n, it: o } = a;\n c(s), o.opts.unevaluated && t.length && o.items !== !0 && (o.items = Ap.mergeEvaluated.items(i, t.length, o.items));\n const l = i.name(\"valid\"), h = i.const(\"len\", (0, ky._)`${r}.length`);\n t.forEach((u, d) => {\n (0, Ap.alwaysValidSchema)(o, u) || (i.if((0, ky._)`${h} > ${d}`, () => a.subschema({\n keyword: n,\n schemaProp: d,\n dataProp: d\n }, l)), a.ok(l));\n });\n function c(u) {\n const { opts: d, errSchemaPath: f } = o, p = t.length, _ = p === u.minItems && (p === u.maxItems || u[e] === !1);\n if (d.strictTuples && !_) {\n const m = `\"${n}\" is ${p}-tuple, but minItems or maxItems/${e} are not specified or different at path \"${f}\"`;\n (0, Ap.checkStrictMode)(o, m, d.strictTuples);\n }\n }\n}\nNc.validateTuple = aP;\nNc.default = dY;\nObject.defineProperty(FT, \"__esModule\", { value: !0 });\nconst fY = Nc, pY = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (a) => (0, fY.validateTuple)(a, \"items\")\n};\nFT.default = pY;\nvar LT = {};\nObject.defineProperty(LT, \"__esModule\", { value: !0 });\nconst Gy = Gt, _Y = Qe, mY = Zt, gY = wc, xY = {\n message: ({ params: { len: a } }) => (0, Gy.str)`must NOT have more than ${a} items`,\n params: ({ params: { len: a } }) => (0, Gy._)`{limit: ${a}}`\n}, vY = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error: xY,\n code(a) {\n const { schema: e, parentSchema: t, it: i } = a, { prefixItems: s } = t;\n i.items = !0, !(0, _Y.alwaysValidSchema)(i, e) && (s ? (0, gY.validateAdditionalItems)(a, s) : a.ok((0, mY.validateArray)(a)));\n }\n};\nLT.default = vY;\nvar BT = {};\nObject.defineProperty(BT, \"__esModule\", { value: !0 });\nconst Dn = Gt, up = Qe, TY = {\n message: ({ params: { min: a, max: e } }) => e === void 0 ? (0, Dn.str)`must contain at least ${a} valid item(s)` : (0, Dn.str)`must contain at least ${a} and no more than ${e} valid item(s)`,\n params: ({ params: { min: a, max: e } }) => e === void 0 ? (0, Dn._)`{minContains: ${a}}` : (0, Dn._)`{minContains: ${a}, maxContains: ${e}}`\n}, SY = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: !0,\n error: TY,\n code(a) {\n const { gen: e, schema: t, parentSchema: i, data: s, it: r } = a;\n let n, o;\n const { minContains: l, maxContains: h } = i;\n r.opts.next ? (n = l === void 0 ? 1 : l, o = h) : n = 1;\n const c = e.const(\"len\", (0, Dn._)`${s}.length`);\n if (a.setParams({ min: n, max: o }), o === void 0 && n === 0) {\n (0, up.checkStrictMode)(r, '\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored');\n return;\n }\n if (o !== void 0 && n > o) {\n (0, up.checkStrictMode)(r, '\"minContains\" > \"maxContains\" is always invalid'), a.fail();\n return;\n }\n if ((0, up.alwaysValidSchema)(r, t)) {\n let _ = (0, Dn._)`${c} >= ${n}`;\n o !== void 0 && (_ = (0, Dn._)`${_} && ${c} <= ${o}`), a.pass(_);\n return;\n }\n r.items = !0;\n const u = e.name(\"valid\");\n o === void 0 && n === 1 ? f(u, () => e.if(u, () => e.break())) : n === 0 ? (e.let(u, !0), o !== void 0 && e.if((0, Dn._)`${s}.length > 0`, d)) : (e.let(u, !1), d()), a.result(u, () => a.reset());\n function d() {\n const _ = e.name(\"_valid\"), m = e.let(\"count\", 0);\n f(_, () => e.if(_, () => p(m)));\n }\n function f(_, m) {\n e.forRange(\"i\", 0, c, (x) => {\n a.subschema({\n keyword: \"contains\",\n dataProp: x,\n dataPropType: up.Type.Num,\n compositeRule: !0\n }, _), m();\n });\n }\n function p(_) {\n e.code((0, Dn._)`${_}++`), o === void 0 ? e.if((0, Dn._)`${_} >= ${n}`, () => e.assign(u, !0).break()) : (e.if((0, Dn._)`${_} > ${o}`, () => e.assign(u, !1).break()), n === 1 ? e.assign(u, !0) : e.if((0, Dn._)`${_} >= ${n}`, () => e.assign(u, !0)));\n }\n }\n};\nBT.default = SY;\nvar Im = {};\n(function(a) {\n Object.defineProperty(a, \"__esModule\", { value: !0 }), a.validateSchemaDeps = a.validatePropertyDeps = a.error = void 0;\n const e = Gt, t = Qe, i = Zt;\n a.error = {\n message: ({ params: { property: l, depsCount: h, deps: c } }) => {\n const u = h === 1 ? \"property\" : \"properties\";\n return (0, e.str)`must have ${u} ${c} when property ${l} is present`;\n },\n params: ({ params: { property: l, depsCount: h, deps: c, missingProperty: u } }) => (0, e._)`{property: ${l},\n missingProperty: ${u},\n depsCount: ${h},\n deps: ${c}}`\n // TODO change to reference\n };\n const s = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: a.error,\n code(l) {\n const [h, c] = r(l);\n n(l, h), o(l, c);\n }\n };\n function r({ schema: l }) {\n const h = {}, c = {};\n for (const u in l) {\n if (u === \"__proto__\")\n continue;\n const d = Array.isArray(l[u]) ? h : c;\n d[u] = l[u];\n }\n return [h, c];\n }\n function n(l, h = l.schema) {\n const { gen: c, data: u, it: d } = l;\n if (Object.keys(h).length === 0)\n return;\n const f = c.let(\"missing\");\n for (const p in h) {\n const _ = h[p];\n if (_.length === 0)\n continue;\n const m = (0, i.propertyInData)(c, u, p, d.opts.ownProperties);\n l.setParams({\n property: p,\n depsCount: _.length,\n deps: _.join(\", \")\n }), d.allErrors ? c.if(m, () => {\n for (const x of _)\n (0, i.checkReportMissingProp)(l, x);\n }) : (c.if((0, e._)`${m} && (${(0, i.checkMissingProp)(l, _, f)})`), (0, i.reportMissingProp)(l, f), c.else());\n }\n }\n a.validatePropertyDeps = n;\n function o(l, h = l.schema) {\n const { gen: c, data: u, keyword: d, it: f } = l, p = c.name(\"valid\");\n for (const _ in h)\n (0, t.alwaysValidSchema)(f, h[_]) || (c.if(\n (0, i.propertyInData)(c, u, _, f.opts.ownProperties),\n () => {\n const m = l.subschema({ keyword: d, schemaProp: _ }, p);\n l.mergeValidEvaluated(m, p);\n },\n () => c.var(p, !0)\n // TODO var\n ), l.ok(p));\n }\n a.validateSchemaDeps = o, a.default = s;\n})(Im);\nvar VT = {};\nObject.defineProperty(VT, \"__esModule\", { value: !0 });\nconst oP = Gt, bY = Qe, EY = {\n message: \"property name must be valid\",\n params: ({ params: a }) => (0, oP._)`{propertyName: ${a.propertyName}}`\n}, yY = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error: EY,\n code(a) {\n const { gen: e, schema: t, data: i, it: s } = a;\n if ((0, bY.alwaysValidSchema)(s, t))\n return;\n const r = e.name(\"valid\");\n e.forIn(\"key\", i, (n) => {\n a.setParams({ propertyName: n }), a.subschema({\n keyword: \"propertyNames\",\n data: n,\n dataTypes: [\"string\"],\n propertyName: n,\n compositeRule: !0\n }, r), e.if((0, oP.not)(r), () => {\n a.error(!0), s.allErrors || e.break();\n });\n }), a.ok(r);\n }\n};\nVT.default = yY;\nvar Pm = {};\nObject.defineProperty(Pm, \"__esModule\", { value: !0 });\nconst dp = Zt, Gn = Gt, CY = An, fp = Qe, AY = {\n message: \"must NOT have additional properties\",\n params: ({ params: a }) => (0, Gn._)`{additionalProperty: ${a.additionalProperty}}`\n}, RY = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: !0,\n trackErrors: !0,\n error: AY,\n code(a) {\n const { gen: e, schema: t, parentSchema: i, data: s, errsCount: r, it: n } = a;\n if (!r)\n throw new Error(\"ajv implementation error\");\n const { allErrors: o, opts: l } = n;\n if (n.props = !0, l.removeAdditional !== \"all\" && (0, fp.alwaysValidSchema)(n, t))\n return;\n const h = (0, dp.allSchemaProperties)(i.properties), c = (0, dp.allSchemaProperties)(i.patternProperties);\n u(), a.ok((0, Gn._)`${r} === ${CY.default.errors}`);\n function u() {\n e.forIn(\"key\", s, (m) => {\n !h.length && !c.length ? p(m) : e.if(d(m), () => p(m));\n });\n }\n function d(m) {\n let x;\n if (h.length > 8) {\n const v = (0, fp.schemaRefOrVal)(n, i.properties, \"properties\");\n x = (0, dp.isOwnProperty)(e, v, m);\n } else h.length ? x = (0, Gn.or)(...h.map((v) => (0, Gn._)`${m} === ${v}`)) : x = Gn.nil;\n return c.length && (x = (0, Gn.or)(x, ...c.map((v) => (0, Gn._)`${(0, dp.usePattern)(a, v)}.test(${m})`))), (0, Gn.not)(x);\n }\n function f(m) {\n e.code((0, Gn._)`delete ${s}[${m}]`);\n }\n function p(m) {\n if (l.removeAdditional === \"all\" || l.removeAdditional && t === !1) {\n f(m);\n return;\n }\n if (t === !1) {\n a.setParams({ additionalProperty: m }), a.error(), o || e.break();\n return;\n }\n if (typeof t == \"object\" && !(0, fp.alwaysValidSchema)(n, t)) {\n const x = e.name(\"valid\");\n l.removeAdditional === \"failing\" ? (_(m, x, !1), e.if((0, Gn.not)(x), () => {\n a.reset(), f(m);\n })) : (_(m, x), o || e.if((0, Gn.not)(x), () => e.break()));\n }\n }\n function _(m, x, v) {\n const T = {\n keyword: \"additionalProperties\",\n dataProp: m,\n dataPropType: fp.Type.Str\n };\n v === !1 && Object.assign(T, {\n compositeRule: !0,\n createErrors: !1,\n allErrors: !1\n }), a.subschema(T, x);\n }\n }\n};\nPm.default = RY;\nvar UT = {};\nObject.defineProperty(UT, \"__esModule\", { value: !0 });\nconst IY = sa, zy = Zt, fg = Qe, Wy = Pm, PY = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(a) {\n const { gen: e, schema: t, parentSchema: i, data: s, it: r } = a;\n r.opts.removeAdditional === \"all\" && i.additionalProperties === void 0 && Wy.default.code(new IY.KeywordCxt(r, Wy.default, \"additionalProperties\"));\n const n = (0, zy.allSchemaProperties)(t);\n for (const u of n)\n r.definedProperties.add(u);\n r.opts.unevaluated && n.length && r.props !== !0 && (r.props = fg.mergeEvaluated.props(e, (0, fg.toHash)(n), r.props));\n const o = n.filter((u) => !(0, fg.alwaysValidSchema)(r, t[u]));\n if (o.length === 0)\n return;\n const l = e.name(\"valid\");\n for (const u of o)\n h(u) ? c(u) : (e.if((0, zy.propertyInData)(e, s, u, r.opts.ownProperties)), c(u), r.allErrors || e.else().var(l, !0), e.endIf()), a.it.definedProperties.add(u), a.ok(l);\n function h(u) {\n return r.opts.useDefaults && !r.compositeRule && t[u].default !== void 0;\n }\n function c(u) {\n a.subschema({\n keyword: \"properties\",\n schemaProp: u,\n dataProp: u\n }, l);\n }\n }\n};\nUT.default = PY;\nvar kT = {};\nObject.defineProperty(kT, \"__esModule\", { value: !0 });\nconst Hy = Zt, pp = Gt, Xy = Qe, $y = Qe, MY = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(a) {\n const { gen: e, schema: t, data: i, parentSchema: s, it: r } = a, { opts: n } = r, o = (0, Hy.allSchemaProperties)(t), l = o.filter((_) => (0, Xy.alwaysValidSchema)(r, t[_]));\n if (o.length === 0 || l.length === o.length && (!r.opts.unevaluated || r.props === !0))\n return;\n const h = n.strictSchema && !n.allowMatchingProperties && s.properties, c = e.name(\"valid\");\n r.props !== !0 && !(r.props instanceof pp.Name) && (r.props = (0, $y.evaluatedPropsToName)(e, r.props));\n const { props: u } = r;\n d();\n function d() {\n for (const _ of o)\n h && f(_), r.allErrors ? p(_) : (e.var(c, !0), p(_), e.if(c));\n }\n function f(_) {\n for (const m in h)\n new RegExp(_).test(m) && (0, Xy.checkStrictMode)(r, `property ${m} matches pattern ${_} (use allowMatchingProperties)`);\n }\n function p(_) {\n e.forIn(\"key\", i, (m) => {\n e.if((0, pp._)`${(0, Hy.usePattern)(a, _)}.test(${m})`, () => {\n const x = l.includes(_);\n x || a.subschema({\n keyword: \"patternProperties\",\n schemaProp: _,\n dataProp: m,\n dataPropType: $y.Type.Str\n }, c), r.opts.unevaluated && u !== !0 ? e.assign((0, pp._)`${u}[${m}]`, !0) : !x && !r.allErrors && e.if((0, pp.not)(c), () => e.break());\n });\n });\n }\n }\n};\nkT.default = MY;\nvar GT = {};\nObject.defineProperty(GT, \"__esModule\", { value: !0 });\nconst DY = Qe, OY = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: !0,\n code(a) {\n const { gen: e, schema: t, it: i } = a;\n if ((0, DY.alwaysValidSchema)(i, t)) {\n a.fail();\n return;\n }\n const s = e.name(\"valid\");\n a.subschema({\n keyword: \"not\",\n compositeRule: !0,\n createErrors: !1,\n allErrors: !1\n }, s), a.failResult(s, () => a.reset(), () => a.error());\n },\n error: { message: \"must NOT be valid\" }\n};\nGT.default = OY;\nvar zT = {};\nObject.defineProperty(zT, \"__esModule\", { value: !0 });\nconst wY = Zt, NY = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: !0,\n code: wY.validateUnion,\n error: { message: \"must match a schema in anyOf\" }\n};\nzT.default = NY;\nvar WT = {};\nObject.defineProperty(WT, \"__esModule\", { value: !0 });\nconst Rp = Gt, FY = Qe, LY = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params: a }) => (0, Rp._)`{passingSchemas: ${a.passing}}`\n}, BY = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: !0,\n error: LY,\n code(a) {\n const { gen: e, schema: t, parentSchema: i, it: s } = a;\n if (!Array.isArray(t))\n throw new Error(\"ajv implementation error\");\n if (s.opts.discriminator && i.discriminator)\n return;\n const r = t, n = e.let(\"valid\", !1), o = e.let(\"passing\", null), l = e.name(\"_valid\");\n a.setParams({ passing: o }), e.block(h), a.result(n, () => a.reset(), () => a.error(!0));\n function h() {\n r.forEach((c, u) => {\n let d;\n (0, FY.alwaysValidSchema)(s, c) ? e.var(l, !0) : d = a.subschema({\n keyword: \"oneOf\",\n schemaProp: u,\n compositeRule: !0\n }, l), u > 0 && e.if((0, Rp._)`${l} && ${n}`).assign(n, !1).assign(o, (0, Rp._)`[${o}, ${u}]`).else(), e.if(l, () => {\n e.assign(n, !0), e.assign(o, u), d && a.mergeEvaluated(d, Rp.Name);\n });\n });\n }\n }\n};\nWT.default = BY;\nvar HT = {};\nObject.defineProperty(HT, \"__esModule\", { value: !0 });\nconst VY = Qe, UY = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(a) {\n const { gen: e, schema: t, it: i } = a;\n if (!Array.isArray(t))\n throw new Error(\"ajv implementation error\");\n const s = e.name(\"valid\");\n t.forEach((r, n) => {\n if ((0, VY.alwaysValidSchema)(i, r))\n return;\n const o = a.subschema({ keyword: \"allOf\", schemaProp: n }, s);\n a.ok(s), a.mergeEvaluated(o);\n });\n }\n};\nHT.default = UY;\nvar XT = {};\nObject.defineProperty(XT, \"__esModule\", { value: !0 });\nconst o_ = Gt, lP = Qe, kY = {\n message: ({ params: a }) => (0, o_.str)`must match \"${a.ifClause}\" schema`,\n params: ({ params: a }) => (0, o_._)`{failingKeyword: ${a.ifClause}}`\n}, GY = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: !0,\n error: kY,\n code(a) {\n const { gen: e, parentSchema: t, it: i } = a;\n t.then === void 0 && t.else === void 0 && (0, lP.checkStrictMode)(i, '\"if\" without \"then\" and \"else\" is ignored');\n const s = Yy(i, \"then\"), r = Yy(i, \"else\");\n if (!s && !r)\n return;\n const n = e.let(\"valid\", !0), o = e.name(\"_valid\");\n if (l(), a.reset(), s && r) {\n const c = e.let(\"ifClause\");\n a.setParams({ ifClause: c }), e.if(o, h(\"then\", c), h(\"else\", c));\n } else s ? e.if(o, h(\"then\")) : e.if((0, o_.not)(o), h(\"else\"));\n a.pass(n, () => a.error(!0));\n function l() {\n const c = a.subschema({\n keyword: \"if\",\n compositeRule: !0,\n createErrors: !1,\n allErrors: !1\n }, o);\n a.mergeEvaluated(c);\n }\n function h(c, u) {\n return () => {\n const d = a.subschema({ keyword: c }, o);\n e.assign(n, o), a.mergeValidEvaluated(d, n), u ? e.assign(u, (0, o_._)`${c}`) : a.setParams({ ifClause: c });\n };\n }\n }\n};\nfunction Yy(a, e) {\n const t = a.schema[e];\n return t !== void 0 && !(0, lP.alwaysValidSchema)(a, t);\n}\nXT.default = GY;\nvar $T = {};\nObject.defineProperty($T, \"__esModule\", { value: !0 });\nconst zY = Qe, WY = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword: a, parentSchema: e, it: t }) {\n e.if === void 0 && (0, zY.checkStrictMode)(t, `\"${a}\" without \"if\" is ignored`);\n }\n};\n$T.default = WY;\nObject.defineProperty(NT, \"__esModule\", { value: !0 });\nconst HY = wc, XY = FT, $Y = Nc, YY = LT, jY = BT, KY = Im, qY = VT, QY = Pm, ZY = UT, JY = kT, e6 = GT, t6 = zT, i6 = WT, s6 = HT, r6 = XT, n6 = $T;\nfunction a6(a = !1) {\n const e = [\n // any\n e6.default,\n t6.default,\n i6.default,\n s6.default,\n r6.default,\n n6.default,\n // object\n qY.default,\n QY.default,\n KY.default,\n ZY.default,\n JY.default\n ];\n return a ? e.push(XY.default, YY.default) : e.push(HY.default, $Y.default), e.push(jY.default), e;\n}\nNT.default = a6;\nvar YT = {}, Fc = {};\nObject.defineProperty(Fc, \"__esModule\", { value: !0 });\nFc.dynamicAnchor = void 0;\nconst pg = Gt, o6 = An, jy = kr, l6 = xo, h6 = {\n keyword: \"$dynamicAnchor\",\n schemaType: \"string\",\n code: (a) => hP(a, a.schema)\n};\nfunction hP(a, e) {\n const { gen: t, it: i } = a;\n i.schemaEnv.root.dynamicAnchors[e] = !0;\n const s = (0, pg._)`${o6.default.dynamicAnchors}${(0, pg.getProperty)(e)}`, r = i.errSchemaPath === \"#\" ? i.validateName : c6(a);\n t.if((0, pg._)`!${s}`, () => t.assign(s, r));\n}\nFc.dynamicAnchor = hP;\nfunction c6(a) {\n const { schemaEnv: e, schema: t, self: i } = a.it, { root: s, baseId: r, localRefs: n, meta: o } = e.root, { schemaId: l } = i.opts, h = new jy.SchemaEnv({ schema: t, schemaId: l, root: s, baseId: r, localRefs: n, meta: o });\n return jy.compileSchema.call(i, h), (0, l6.getValidate)(a, h);\n}\nFc.default = h6;\nvar Lc = {};\nObject.defineProperty(Lc, \"__esModule\", { value: !0 });\nLc.dynamicRef = void 0;\nconst Ky = Gt, u6 = An, qy = xo, d6 = {\n keyword: \"$dynamicRef\",\n schemaType: \"string\",\n code: (a) => cP(a, a.schema)\n};\nfunction cP(a, e) {\n const { gen: t, keyword: i, it: s } = a;\n if (e[0] !== \"#\")\n throw new Error(`\"${i}\" only supports hash fragment reference`);\n const r = e.slice(1);\n if (s.allErrors)\n n();\n else {\n const l = t.let(\"valid\", !1);\n n(l), a.ok(l);\n }\n function n(l) {\n if (s.schemaEnv.root.dynamicAnchors[r]) {\n const h = t.let(\"_v\", (0, Ky._)`${u6.default.dynamicAnchors}${(0, Ky.getProperty)(r)}`);\n t.if(h, o(h, l), o(s.validateName, l));\n } else\n o(s.validateName, l)();\n }\n function o(l, h) {\n return h ? () => t.block(() => {\n (0, qy.callRef)(a, l), t.let(h, !0);\n }) : () => (0, qy.callRef)(a, l);\n }\n}\nLc.dynamicRef = cP;\nLc.default = d6;\nvar jT = {};\nObject.defineProperty(jT, \"__esModule\", { value: !0 });\nconst f6 = Fc, p6 = Qe, _6 = {\n keyword: \"$recursiveAnchor\",\n schemaType: \"boolean\",\n code(a) {\n a.schema ? (0, f6.dynamicAnchor)(a, \"\") : (0, p6.checkStrictMode)(a.it, \"$recursiveAnchor: false is ignored\");\n }\n};\njT.default = _6;\nvar KT = {};\nObject.defineProperty(KT, \"__esModule\", { value: !0 });\nconst m6 = Lc, g6 = {\n keyword: \"$recursiveRef\",\n schemaType: \"string\",\n code: (a) => (0, m6.dynamicRef)(a, a.schema)\n};\nKT.default = g6;\nObject.defineProperty(YT, \"__esModule\", { value: !0 });\nconst x6 = Fc, v6 = Lc, T6 = jT, S6 = KT, b6 = [x6.default, v6.default, T6.default, S6.default];\nYT.default = b6;\nvar qT = {}, QT = {};\nObject.defineProperty(QT, \"__esModule\", { value: !0 });\nconst Qy = Im, E6 = {\n keyword: \"dependentRequired\",\n type: \"object\",\n schemaType: \"object\",\n error: Qy.error,\n code: (a) => (0, Qy.validatePropertyDeps)(a)\n};\nQT.default = E6;\nvar ZT = {};\nObject.defineProperty(ZT, \"__esModule\", { value: !0 });\nconst y6 = Im, C6 = {\n keyword: \"dependentSchemas\",\n type: \"object\",\n schemaType: \"object\",\n code: (a) => (0, y6.validateSchemaDeps)(a)\n};\nZT.default = C6;\nvar JT = {};\nObject.defineProperty(JT, \"__esModule\", { value: !0 });\nconst A6 = Qe, R6 = {\n keyword: [\"maxContains\", \"minContains\"],\n type: \"array\",\n schemaType: \"number\",\n code({ keyword: a, parentSchema: e, it: t }) {\n e.contains === void 0 && (0, A6.checkStrictMode)(t, `\"${a}\" without \"contains\" is ignored`);\n }\n};\nJT.default = R6;\nObject.defineProperty(qT, \"__esModule\", { value: !0 });\nconst I6 = QT, P6 = ZT, M6 = JT, D6 = [I6.default, P6.default, M6.default];\nqT.default = D6;\nvar eS = {}, tS = {};\nObject.defineProperty(tS, \"__esModule\", { value: !0 });\nconst Po = Gt, Zy = Qe, O6 = An, w6 = {\n message: \"must NOT have unevaluated properties\",\n params: ({ params: a }) => (0, Po._)`{unevaluatedProperty: ${a.unevaluatedProperty}}`\n}, N6 = {\n keyword: \"unevaluatedProperties\",\n type: \"object\",\n schemaType: [\"boolean\", \"object\"],\n trackErrors: !0,\n error: w6,\n code(a) {\n const { gen: e, schema: t, data: i, errsCount: s, it: r } = a;\n if (!s)\n throw new Error(\"ajv implementation error\");\n const { allErrors: n, props: o } = r;\n o instanceof Po.Name ? e.if((0, Po._)`${o} !== true`, () => e.forIn(\"key\", i, (u) => e.if(h(o, u), () => l(u)))) : o !== !0 && e.forIn(\"key\", i, (u) => o === void 0 ? l(u) : e.if(c(o, u), () => l(u))), r.props = !0, a.ok((0, Po._)`${s} === ${O6.default.errors}`);\n function l(u) {\n if (t === !1) {\n a.setParams({ unevaluatedProperty: u }), a.error(), n || e.break();\n return;\n }\n if (!(0, Zy.alwaysValidSchema)(r, t)) {\n const d = e.name(\"valid\");\n a.subschema({\n keyword: \"unevaluatedProperties\",\n dataProp: u,\n dataPropType: Zy.Type.Str\n }, d), n || e.if((0, Po.not)(d), () => e.break());\n }\n }\n function h(u, d) {\n return (0, Po._)`!${u} || !${u}[${d}]`;\n }\n function c(u, d) {\n const f = [];\n for (const p in u)\n u[p] === !0 && f.push((0, Po._)`${d} !== ${p}`);\n return (0, Po.and)(...f);\n }\n }\n};\ntS.default = N6;\nvar iS = {};\nObject.defineProperty(iS, \"__esModule\", { value: !0 });\nconst vl = Gt, Jy = Qe, F6 = {\n message: ({ params: { len: a } }) => (0, vl.str)`must NOT have more than ${a} items`,\n params: ({ params: { len: a } }) => (0, vl._)`{limit: ${a}}`\n}, L6 = {\n keyword: \"unevaluatedItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n error: F6,\n code(a) {\n const { gen: e, schema: t, data: i, it: s } = a, r = s.items || 0;\n if (r === !0)\n return;\n const n = e.const(\"len\", (0, vl._)`${i}.length`);\n if (t === !1)\n a.setParams({ len: r }), a.fail((0, vl._)`${n} > ${r}`);\n else if (typeof t == \"object\" && !(0, Jy.alwaysValidSchema)(s, t)) {\n const l = e.var(\"valid\", (0, vl._)`${n} <= ${r}`);\n e.if((0, vl.not)(l), () => o(l, r)), a.ok(l);\n }\n s.items = !0;\n function o(l, h) {\n e.forRange(\"i\", h, n, (c) => {\n a.subschema({ keyword: \"unevaluatedItems\", dataProp: c, dataPropType: Jy.Type.Num }, l), s.allErrors || e.if((0, vl.not)(l), () => e.break());\n });\n }\n }\n};\niS.default = L6;\nObject.defineProperty(eS, \"__esModule\", { value: !0 });\nconst B6 = tS, V6 = iS, U6 = [B6.default, V6.default];\neS.default = U6;\nvar sS = {}, rS = {};\nObject.defineProperty(rS, \"__esModule\", { value: !0 });\nconst Bs = Gt, k6 = {\n message: ({ schemaCode: a }) => (0, Bs.str)`must match format \"${a}\"`,\n params: ({ schemaCode: a }) => (0, Bs._)`{format: ${a}}`\n}, G6 = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: !0,\n error: k6,\n code(a, e) {\n const { gen: t, data: i, $data: s, schema: r, schemaCode: n, it: o } = a, { opts: l, errSchemaPath: h, schemaEnv: c, self: u } = o;\n if (!l.validateFormats)\n return;\n s ? d() : f();\n function d() {\n const p = t.scopeValue(\"formats\", {\n ref: u.formats,\n code: l.code.formats\n }), _ = t.const(\"fDef\", (0, Bs._)`${p}[${n}]`), m = t.let(\"fType\"), x = t.let(\"format\");\n t.if((0, Bs._)`typeof ${_} == \"object\" && !(${_} instanceof RegExp)`, () => t.assign(m, (0, Bs._)`${_}.type || \"string\"`).assign(x, (0, Bs._)`${_}.validate`), () => t.assign(m, (0, Bs._)`\"string\"`).assign(x, _)), a.fail$data((0, Bs.or)(v(), T()));\n function v() {\n return l.strictSchema === !1 ? Bs.nil : (0, Bs._)`${n} && !${x}`;\n }\n function T() {\n const E = c.$async ? (0, Bs._)`(${_}.async ? await ${x}(${i}) : ${x}(${i}))` : (0, Bs._)`${x}(${i})`, b = (0, Bs._)`(typeof ${x} == \"function\" ? ${E} : ${x}.test(${i}))`;\n return (0, Bs._)`${x} && ${x} !== true && ${m} === ${e} && !${b}`;\n }\n }\n function f() {\n const p = u.formats[r];\n if (!p) {\n v();\n return;\n }\n if (p === !0)\n return;\n const [_, m, x] = T(p);\n _ === e && a.pass(E());\n function v() {\n if (l.strictSchema === !1) {\n u.logger.warn(b());\n return;\n }\n throw new Error(b());\n function b() {\n return `unknown format \"${r}\" ignored in schema at path \"${h}\"`;\n }\n }\n function T(b) {\n const S = b instanceof RegExp ? (0, Bs.regexpCode)(b) : l.code.formats ? (0, Bs._)`${l.code.formats}${(0, Bs.getProperty)(r)}` : void 0, C = t.scopeValue(\"formats\", { key: r, ref: b, code: S });\n return typeof b == \"object\" && !(b instanceof RegExp) ? [b.type || \"string\", b.validate, (0, Bs._)`${C}.validate`] : [\"string\", b, C];\n }\n function E() {\n if (typeof p == \"object\" && !(p instanceof RegExp) && p.async) {\n if (!c.$async)\n throw new Error(\"async format in sync schema\");\n return (0, Bs._)`await ${x}(${i})`;\n }\n return typeof m == \"function\" ? (0, Bs._)`${x}(${i})` : (0, Bs._)`${x}.test(${i})`;\n }\n }\n }\n};\nrS.default = G6;\nObject.defineProperty(sS, \"__esModule\", { value: !0 });\nconst z6 = rS, W6 = [z6.default];\nsS.default = W6;\nvar fc = {};\nObject.defineProperty(fc, \"__esModule\", { value: !0 });\nfc.contentVocabulary = fc.metadataVocabulary = void 0;\nfc.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\"\n];\nfc.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\"\n];\nObject.defineProperty(vT, \"__esModule\", { value: !0 });\nconst H6 = TT, X6 = bT, $6 = NT, Y6 = YT, j6 = qT, K6 = eS, q6 = sS, eC = fc, Q6 = [\n Y6.default,\n H6.default,\n X6.default,\n (0, $6.default)(!0),\n q6.default,\n eC.metadataVocabulary,\n eC.contentVocabulary,\n j6.default,\n K6.default\n];\nvT.default = Q6;\nvar nS = {}, Mm = {};\nObject.defineProperty(Mm, \"__esModule\", { value: !0 });\nMm.DiscrError = void 0;\nvar tC;\n(function(a) {\n a.Tag = \"tag\", a.Mapping = \"mapping\";\n})(tC || (Mm.DiscrError = tC = {}));\nObject.defineProperty(nS, \"__esModule\", { value: !0 });\nconst dh = Gt, lx = Mm, iC = kr, Z6 = Oc, J6 = Qe, e8 = {\n message: ({ params: { discrError: a, tagName: e } }) => a === lx.DiscrError.Tag ? `tag \"${e}\" must be string` : `value of tag \"${e}\" must be in oneOf`,\n params: ({ params: { discrError: a, tag: e, tagName: t } }) => (0, dh._)`{error: ${a}, tag: ${t}, tagValue: ${e}}`\n}, t8 = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error: e8,\n code(a) {\n const { gen: e, data: t, schema: i, parentSchema: s, it: r } = a, { oneOf: n } = s;\n if (!r.opts.discriminator)\n throw new Error(\"discriminator: requires discriminator option\");\n const o = i.propertyName;\n if (typeof o != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (i.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!n)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const l = e.let(\"valid\", !1), h = e.const(\"tag\", (0, dh._)`${t}${(0, dh.getProperty)(o)}`);\n e.if((0, dh._)`typeof ${h} == \"string\"`, () => c(), () => a.error(!1, { discrError: lx.DiscrError.Tag, tag: h, tagName: o })), a.ok(l);\n function c() {\n const f = d();\n e.if(!1);\n for (const p in f)\n e.elseIf((0, dh._)`${h} === ${p}`), e.assign(l, u(f[p]));\n e.else(), a.error(!1, { discrError: lx.DiscrError.Mapping, tag: h, tagName: o }), e.endIf();\n }\n function u(f) {\n const p = e.name(\"valid\"), _ = a.subschema({ keyword: \"oneOf\", schemaProp: f }, p);\n return a.mergeEvaluated(_, dh.Name), p;\n }\n function d() {\n var f;\n const p = {}, _ = x(s);\n let m = !0;\n for (let E = 0; E < n.length; E++) {\n let b = n[E];\n if (b != null && b.$ref && !(0, J6.schemaHasRulesButRef)(b, r.self.RULES)) {\n const C = b.$ref;\n if (b = iC.resolveRef.call(r.self, r.schemaEnv.root, r.baseId, C), b instanceof iC.SchemaEnv && (b = b.schema), b === void 0)\n throw new Z6.default(r.opts.uriResolver, r.baseId, C);\n }\n const S = (f = b == null ? void 0 : b.properties) === null || f === void 0 ? void 0 : f[o];\n if (typeof S != \"object\")\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${o}\"`);\n m = m && (_ || x(b)), v(S, E);\n }\n if (!m)\n throw new Error(`discriminator: \"${o}\" must be required`);\n return p;\n function x({ required: E }) {\n return Array.isArray(E) && E.includes(o);\n }\n function v(E, b) {\n if (E.const)\n T(E.const, b);\n else if (E.enum)\n for (const S of E.enum)\n T(S, b);\n else\n throw new Error(`discriminator: \"properties/${o}\" must have \"const\" or \"enum\"`);\n }\n function T(E, b) {\n if (typeof E != \"string\" || E in p)\n throw new Error(`discriminator: \"${o}\" values must be unique strings`);\n p[E] = b;\n }\n }\n }\n};\nnS.default = t8;\nvar aS = {};\nconst i8 = \"https://json-schema.org/draft/2020-12/schema\", s8 = \"https://json-schema.org/draft/2020-12/schema\", r8 = {\n \"https://json-schema.org/draft/2020-12/vocab/core\": !0,\n \"https://json-schema.org/draft/2020-12/vocab/applicator\": !0,\n \"https://json-schema.org/draft/2020-12/vocab/unevaluated\": !0,\n \"https://json-schema.org/draft/2020-12/vocab/validation\": !0,\n \"https://json-schema.org/draft/2020-12/vocab/meta-data\": !0,\n \"https://json-schema.org/draft/2020-12/vocab/format-annotation\": !0,\n \"https://json-schema.org/draft/2020-12/vocab/content\": !0\n}, n8 = \"meta\", a8 = \"Core and Validation specifications meta-schema\", o8 = [\n {\n $ref: \"meta/core\"\n },\n {\n $ref: \"meta/applicator\"\n },\n {\n $ref: \"meta/unevaluated\"\n },\n {\n $ref: \"meta/validation\"\n },\n {\n $ref: \"meta/meta-data\"\n },\n {\n $ref: \"meta/format-annotation\"\n },\n {\n $ref: \"meta/content\"\n }\n], l8 = [\n \"object\",\n \"boolean\"\n], h8 = \"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.\", c8 = {\n definitions: {\n $comment: '\"definitions\" has been replaced by \"$defs\".',\n type: \"object\",\n additionalProperties: {\n $dynamicRef: \"#meta\"\n },\n deprecated: !0,\n default: {}\n },\n dependencies: {\n $comment: '\"dependencies\" has been split and replaced by \"dependentSchemas\" and \"dependentRequired\" in order to serve their differing semantics.',\n type: \"object\",\n additionalProperties: {\n anyOf: [\n {\n $dynamicRef: \"#meta\"\n },\n {\n $ref: \"meta/validation#/$defs/stringArray\"\n }\n ]\n },\n deprecated: !0,\n default: {}\n },\n $recursiveAnchor: {\n $comment: '\"$recursiveAnchor\" has been replaced by \"$dynamicAnchor\".',\n $ref: \"meta/core#/$defs/anchorString\",\n deprecated: !0\n },\n $recursiveRef: {\n $comment: '\"$recursiveRef\" has been replaced by \"$dynamicRef\".',\n $ref: \"meta/core#/$defs/uriReferenceString\",\n deprecated: !0\n }\n}, u8 = {\n $schema: i8,\n $id: s8,\n $vocabulary: r8,\n $dynamicAnchor: n8,\n title: a8,\n allOf: o8,\n type: l8,\n $comment: h8,\n properties: c8\n}, d8 = \"https://json-schema.org/draft/2020-12/schema\", f8 = \"https://json-schema.org/draft/2020-12/meta/applicator\", p8 = {\n \"https://json-schema.org/draft/2020-12/vocab/applicator\": !0\n}, _8 = \"meta\", m8 = \"Applicator vocabulary meta-schema\", g8 = [\n \"object\",\n \"boolean\"\n], x8 = {\n prefixItems: {\n $ref: \"#/$defs/schemaArray\"\n },\n items: {\n $dynamicRef: \"#meta\"\n },\n contains: {\n $dynamicRef: \"#meta\"\n },\n additionalProperties: {\n $dynamicRef: \"#meta\"\n },\n properties: {\n type: \"object\",\n additionalProperties: {\n $dynamicRef: \"#meta\"\n },\n default: {}\n },\n patternProperties: {\n type: \"object\",\n additionalProperties: {\n $dynamicRef: \"#meta\"\n },\n propertyNames: {\n format: \"regex\"\n },\n default: {}\n },\n dependentSchemas: {\n type: \"object\",\n additionalProperties: {\n $dynamicRef: \"#meta\"\n },\n default: {}\n },\n propertyNames: {\n $dynamicRef: \"#meta\"\n },\n if: {\n $dynamicRef: \"#meta\"\n },\n then: {\n $dynamicRef: \"#meta\"\n },\n else: {\n $dynamicRef: \"#meta\"\n },\n allOf: {\n $ref: \"#/$defs/schemaArray\"\n },\n anyOf: {\n $ref: \"#/$defs/schemaArray\"\n },\n oneOf: {\n $ref: \"#/$defs/schemaArray\"\n },\n not: {\n $dynamicRef: \"#meta\"\n }\n}, v8 = {\n schemaArray: {\n type: \"array\",\n minItems: 1,\n items: {\n $dynamicRef: \"#meta\"\n }\n }\n}, T8 = {\n $schema: d8,\n $id: f8,\n $vocabulary: p8,\n $dynamicAnchor: _8,\n title: m8,\n type: g8,\n properties: x8,\n $defs: v8\n}, S8 = \"https://json-schema.org/draft/2020-12/schema\", b8 = \"https://json-schema.org/draft/2020-12/meta/unevaluated\", E8 = {\n \"https://json-schema.org/draft/2020-12/vocab/unevaluated\": !0\n}, y8 = \"meta\", C8 = \"Unevaluated applicator vocabulary meta-schema\", A8 = [\n \"object\",\n \"boolean\"\n], R8 = {\n unevaluatedItems: {\n $dynamicRef: \"#meta\"\n },\n unevaluatedProperties: {\n $dynamicRef: \"#meta\"\n }\n}, I8 = {\n $schema: S8,\n $id: b8,\n $vocabulary: E8,\n $dynamicAnchor: y8,\n title: C8,\n type: A8,\n properties: R8\n}, P8 = \"https://json-schema.org/draft/2020-12/schema\", M8 = \"https://json-schema.org/draft/2020-12/meta/content\", D8 = {\n \"https://json-schema.org/draft/2020-12/vocab/content\": !0\n}, O8 = \"meta\", w8 = \"Content vocabulary meta-schema\", N8 = [\n \"object\",\n \"boolean\"\n], F8 = {\n contentEncoding: {\n type: \"string\"\n },\n contentMediaType: {\n type: \"string\"\n },\n contentSchema: {\n $dynamicRef: \"#meta\"\n }\n}, L8 = {\n $schema: P8,\n $id: M8,\n $vocabulary: D8,\n $dynamicAnchor: O8,\n title: w8,\n type: N8,\n properties: F8\n}, B8 = \"https://json-schema.org/draft/2020-12/schema\", V8 = \"https://json-schema.org/draft/2020-12/meta/core\", U8 = {\n \"https://json-schema.org/draft/2020-12/vocab/core\": !0\n}, k8 = \"meta\", G8 = \"Core vocabulary meta-schema\", z8 = [\n \"object\",\n \"boolean\"\n], W8 = {\n $id: {\n $ref: \"#/$defs/uriReferenceString\",\n $comment: \"Non-empty fragments not allowed.\",\n pattern: \"^[^#]*#?$\"\n },\n $schema: {\n $ref: \"#/$defs/uriString\"\n },\n $ref: {\n $ref: \"#/$defs/uriReferenceString\"\n },\n $anchor: {\n $ref: \"#/$defs/anchorString\"\n },\n $dynamicRef: {\n $ref: \"#/$defs/uriReferenceString\"\n },\n $dynamicAnchor: {\n $ref: \"#/$defs/anchorString\"\n },\n $vocabulary: {\n type: \"object\",\n propertyNames: {\n $ref: \"#/$defs/uriString\"\n },\n additionalProperties: {\n type: \"boolean\"\n }\n },\n $comment: {\n type: \"string\"\n },\n $defs: {\n type: \"object\",\n additionalProperties: {\n $dynamicRef: \"#meta\"\n }\n }\n}, H8 = {\n anchorString: {\n type: \"string\",\n pattern: \"^[A-Za-z_][-A-Za-z0-9._]*$\"\n },\n uriString: {\n type: \"string\",\n format: \"uri\"\n },\n uriReferenceString: {\n type: \"string\",\n format: \"uri-reference\"\n }\n}, X8 = {\n $schema: B8,\n $id: V8,\n $vocabulary: U8,\n $dynamicAnchor: k8,\n title: G8,\n type: z8,\n properties: W8,\n $defs: H8\n}, $8 = \"https://json-schema.org/draft/2020-12/schema\", Y8 = \"https://json-schema.org/draft/2020-12/meta/format-annotation\", j8 = {\n \"https://json-schema.org/draft/2020-12/vocab/format-annotation\": !0\n}, K8 = \"meta\", q8 = \"Format vocabulary meta-schema for annotation results\", Q8 = [\n \"object\",\n \"boolean\"\n], Z8 = {\n format: {\n type: \"string\"\n }\n}, J8 = {\n $schema: $8,\n $id: Y8,\n $vocabulary: j8,\n $dynamicAnchor: K8,\n title: q8,\n type: Q8,\n properties: Z8\n}, ej = \"https://json-schema.org/draft/2020-12/schema\", tj = \"https://json-schema.org/draft/2020-12/meta/meta-data\", ij = {\n \"https://json-schema.org/draft/2020-12/vocab/meta-data\": !0\n}, sj = \"meta\", rj = \"Meta-data vocabulary meta-schema\", nj = [\n \"object\",\n \"boolean\"\n], aj = {\n title: {\n type: \"string\"\n },\n description: {\n type: \"string\"\n },\n default: !0,\n deprecated: {\n type: \"boolean\",\n default: !1\n },\n readOnly: {\n type: \"boolean\",\n default: !1\n },\n writeOnly: {\n type: \"boolean\",\n default: !1\n },\n examples: {\n type: \"array\",\n items: !0\n }\n}, oj = {\n $schema: ej,\n $id: tj,\n $vocabulary: ij,\n $dynamicAnchor: sj,\n title: rj,\n type: nj,\n properties: aj\n}, lj = \"https://json-schema.org/draft/2020-12/schema\", hj = \"https://json-schema.org/draft/2020-12/meta/validation\", cj = {\n \"https://json-schema.org/draft/2020-12/vocab/validation\": !0\n}, uj = \"meta\", dj = \"Validation vocabulary meta-schema\", fj = [\n \"object\",\n \"boolean\"\n], pj = {\n type: {\n anyOf: [\n {\n $ref: \"#/$defs/simpleTypes\"\n },\n {\n type: \"array\",\n items: {\n $ref: \"#/$defs/simpleTypes\"\n },\n minItems: 1,\n uniqueItems: !0\n }\n ]\n },\n const: !0,\n enum: {\n type: \"array\",\n items: !0\n },\n multipleOf: {\n type: \"number\",\n exclusiveMinimum: 0\n },\n maximum: {\n type: \"number\"\n },\n exclusiveMaximum: {\n type: \"number\"\n },\n minimum: {\n type: \"number\"\n },\n exclusiveMinimum: {\n type: \"number\"\n },\n maxLength: {\n $ref: \"#/$defs/nonNegativeInteger\"\n },\n minLength: {\n $ref: \"#/$defs/nonNegativeIntegerDefault0\"\n },\n pattern: {\n type: \"string\",\n format: \"regex\"\n },\n maxItems: {\n $ref: \"#/$defs/nonNegativeInteger\"\n },\n minItems: {\n $ref: \"#/$defs/nonNegativeIntegerDefault0\"\n },\n uniqueItems: {\n type: \"boolean\",\n default: !1\n },\n maxContains: {\n $ref: \"#/$defs/nonNegativeInteger\"\n },\n minContains: {\n $ref: \"#/$defs/nonNegativeInteger\",\n default: 1\n },\n maxProperties: {\n $ref: \"#/$defs/nonNegativeInteger\"\n },\n minProperties: {\n $ref: \"#/$defs/nonNegativeIntegerDefault0\"\n },\n required: {\n $ref: \"#/$defs/stringArray\"\n },\n dependentRequired: {\n type: \"object\",\n additionalProperties: {\n $ref: \"#/$defs/stringArray\"\n }\n }\n}, _j = {\n nonNegativeInteger: {\n type: \"integer\",\n minimum: 0\n },\n nonNegativeIntegerDefault0: {\n $ref: \"#/$defs/nonNegativeInteger\",\n default: 0\n },\n simpleTypes: {\n enum: [\n \"array\",\n \"boolean\",\n \"integer\",\n \"null\",\n \"number\",\n \"object\",\n \"string\"\n ]\n },\n stringArray: {\n type: \"array\",\n items: {\n type: \"string\"\n },\n uniqueItems: !0,\n default: []\n }\n}, mj = {\n $schema: lj,\n $id: hj,\n $vocabulary: cj,\n $dynamicAnchor: uj,\n title: dj,\n type: fj,\n properties: pj,\n $defs: _j\n};\nObject.defineProperty(aS, \"__esModule\", { value: !0 });\nconst gj = u8, xj = T8, vj = I8, Tj = L8, Sj = X8, bj = J8, Ej = oj, yj = mj, Cj = [\"/properties\"];\nfunction Aj(a) {\n return [\n gj,\n xj,\n vj,\n Tj,\n Sj,\n e(this, bj),\n Ej,\n e(this, yj)\n ].forEach((t) => this.addMetaSchema(t, void 0, !1)), this;\n function e(t, i) {\n return a ? t.$dataMetaSchema(i, Cj) : i;\n }\n}\naS.default = Aj;\n(function(a, e) {\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.MissingRefError = e.ValidationError = e.CodeGen = e.Name = e.nil = e.stringify = e.str = e._ = e.KeywordCxt = e.Ajv2020 = void 0;\n const t = bI, i = vT, s = nS, r = aS, n = \"https://json-schema.org/draft/2020-12/schema\";\n class o extends t.default {\n constructor(f = {}) {\n super({\n ...f,\n dynamicRef: !0,\n next: !0,\n unevaluated: !0\n });\n }\n _addVocabularies() {\n super._addVocabularies(), i.default.forEach((f) => this.addVocabulary(f)), this.opts.discriminator && this.addKeyword(s.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n const { $data: f, meta: p } = this.opts;\n p && (r.default.call(this, f), this.refs[\"http://json-schema.org/schema\"] = n);\n }\n defaultMeta() {\n return this.opts.defaultMeta = super.defaultMeta() || (this.getSchema(n) ? n : void 0);\n }\n }\n e.Ajv2020 = o, a.exports = e = o, a.exports.Ajv2020 = o, Object.defineProperty(e, \"__esModule\", { value: !0 }), e.default = o;\n var l = sa;\n Object.defineProperty(e, \"KeywordCxt\", { enumerable: !0, get: function() {\n return l.KeywordCxt;\n } });\n var h = Gt;\n Object.defineProperty(e, \"_\", { enumerable: !0, get: function() {\n return h._;\n } }), Object.defineProperty(e, \"str\", { enumerable: !0, get: function() {\n return h.str;\n } }), Object.defineProperty(e, \"stringify\", { enumerable: !0, get: function() {\n return h.stringify;\n } }), Object.defineProperty(e, \"nil\", { enumerable: !0, get: function() {\n return h.nil;\n } }), Object.defineProperty(e, \"Name\", { enumerable: !0, get: function() {\n return h.Name;\n } }), Object.defineProperty(e, \"CodeGen\", { enumerable: !0, get: function() {\n return h.CodeGen;\n } });\n var c = Xf;\n Object.defineProperty(e, \"ValidationError\", { enumerable: !0, get: function() {\n return c.default;\n } });\n var u = Oc;\n Object.defineProperty(e, \"MissingRefError\", { enumerable: !0, get: function() {\n return u.default;\n } });\n})(ex, ex.exports);\nvar Rj = ex.exports;\nconst Ij = /* @__PURE__ */ c0(Rj), Pj = \"Flux360ConfigLogic\", Mj = \"Flux360 Config for the Tour-Logic\", Dj = \"https://json-schema.org/draft/2020-12/schema\", Oj = \"object\", wj = \"flux-360-schema-logic-v0.0.1\", Nj = [\n \"tour\",\n \"settings\"\n], Fj = {\n tour: {\n $ref: \"#/$defs/tour\"\n },\n settings: {\n title: \"General Settings\",\n description: \"\"\n }\n}, Lj = {\n tour: {\n title: \"Tour\",\n description: \"Tour Settings\",\n type: \"object\",\n required: [\n \"name\",\n \"startSituationID\",\n \"situations\",\n \"mediaFiles\"\n ],\n properties: {\n name: {\n title: \"Name\",\n description: \"Name of Tour\",\n type: \"string\"\n },\n startSituationID: {\n title: \"StartSituationID\",\n description: \"Starting Situation ID\",\n type: \"number\"\n },\n situations: {\n title: \"Situations\",\n description: \"All situations in the panorama tour\",\n type: \"array\",\n items: {\n $ref: \"#/$defs/situation\"\n }\n },\n mediaFiles: {\n title: \"Media\",\n description: \"All Media files for this tour\",\n type: \"array\",\n items: {\n anyOf: [\n {\n $ref: \"#/$defs/textureMediaFile\"\n },\n {\n $ref: \"#/$defs/videoMediaFile\"\n }\n ]\n }\n }\n }\n },\n situation: {\n title: \"Situation\",\n description: \"\",\n type: \"object\",\n required: [\n \"id\",\n \"name\",\n \"thumbnailMediaID\",\n \"panorama\",\n \"situationComponents\",\n \"rotation\"\n ],\n properties: {\n id: {\n type: \"integer\"\n },\n name: {\n type: \"string\"\n },\n panorama: {\n $ref: \"#/$defs/panorama\"\n },\n thumbnailMediaID: {\n type: \"integer\"\n },\n rotation: {\n $ref: \"#/$defs/vector2\"\n },\n situationComponents: {\n title: \"Components of Situation\",\n type: \"array\",\n items: {\n anyOf: [\n {\n $ref: \"#/$defs/transition\"\n },\n {\n $ref: \"#/$defs/panoramaOverlayAnimation\"\n },\n {\n $ref: \"#/$defs/panoramaOverlayImage\"\n },\n {\n $ref: \"#/$defs/video\"\n },\n {\n $ref: \"#/$defs/button\"\n },\n {\n $ref: \"#/$defs/image\"\n },\n {\n $ref: \"#/$defs/text\"\n }\n ]\n }\n }\n }\n },\n situationComponent: {\n title: \"SituationComponent\",\n type: \"object\",\n properties: {\n type: {\n type: \"string\"\n }\n }\n },\n panorama: {\n title: \"Panorama\",\n type: \"object\",\n allOf: [\n {\n $ref: \"#/$defs/situationComponent\"\n },\n {\n required: [\n \"panoramaMediaID\"\n ],\n properties: {\n panoramaMediaID: {\n type: \"integer\"\n },\n type: {\n type: \"string\",\n default: \"Panorama\"\n }\n }\n }\n ]\n },\n visualComponent: {\n title: \"VisualComponent\",\n type: \"object\",\n allOf: [\n {\n $ref: \"#/$defs/situationComponent\"\n },\n {\n required: [\n \"position\",\n \"rotation\",\n \"scale\",\n \"textureMediaID\"\n ],\n properties: {\n position: {\n $ref: \"#/$defs/vector3\"\n },\n rotation: {\n $ref: \"#/$defs/vector3\"\n },\n scale: {\n $ref: \"#/$defs/vector3\"\n },\n width: {\n type: \"number\"\n },\n height: {\n type: \"number\"\n },\n textureMediaID: {\n type: \"integer\"\n }\n }\n }\n ]\n },\n panoramaOverlay: {\n title: \"PanoramaOverlay\",\n type: \"object\",\n allOf: [\n {\n $ref: \"#/$defs/situationComponent\"\n }\n ]\n },\n panoramaOverlayAnimation: {\n title: \"PanoramaOverlayAnimation\",\n type: \"object\",\n allOf: [\n {\n $ref: \"#/$defs/panoramaOverlay\"\n },\n {\n required: [\n \"videoMediaID\",\n \"rotation\",\n \"arcSize\",\n \"sliceTo\",\n \"sliceFrom\"\n ],\n properties: {\n videoMediaID: {\n type: \"integer\"\n },\n rotation: {\n type: \"number\"\n },\n arcSize: {\n type: \"number\"\n },\n sliceTo: {\n type: \"number\"\n },\n sliceFrom: {\n type: \"number\"\n },\n alphaTextureMediaID: {\n type: \"integer\"\n },\n alphaVideoMediaID: {\n type: \"integer\"\n },\n hasButton: {\n type: \"boolean\"\n },\n buttonPosition: {\n $ref: \"#/$defs/vector3\"\n },\n buttonMediaID: {\n type: \"integer\"\n },\n loop: {\n type: \"boolean\",\n default: !1\n },\n muted: {\n type: \"boolean\",\n default: !0\n },\n autoPlay: {\n type: \"boolean\",\n default: !1\n },\n hasAlpha: {\n type: \"boolean\",\n default: !1\n },\n type: {\n type: \"string\",\n default: \"PanoramaOverlayAnimation\"\n }\n }\n }\n ]\n },\n panoramaOverlayImage: {\n title: \"PanoramaOverlayImage\",\n type: \"object\",\n allOf: [\n {\n $ref: \"#/$defs/panoramaOverlay\"\n },\n {\n required: [\n \"textureMediaID\",\n \"alphaMediaID\",\n \"rotation\",\n \"arcSize\",\n \"sliceTo\",\n \"sliceFrom\"\n ],\n properties: {\n textureMediaID: {\n type: \"integer\"\n },\n alphaMediaID: {\n type: \"integer\"\n },\n rotation: {\n type: \"number\"\n },\n arcSize: {\n type: \"number\"\n },\n sliceTo: {\n type: \"number\"\n },\n sliceFrom: {\n type: \"number\"\n },\n type: {\n type: \"string\",\n default: \"PanoramaOverlayImage\"\n }\n }\n }\n ]\n },\n video: {\n title: \"Video\",\n type: \"object\",\n allOf: [\n {\n $ref: \"#/$defs/situationComponent\"\n },\n {\n required: [\n \"videoMediaID\",\n \"rotation\",\n \"position\",\n \"scale\",\n \"width\",\n \"height\"\n ],\n properties: {\n videoMediaID: {\n type: \"integer\"\n },\n position: {\n $ref: \"#/$defs/vector3\"\n },\n rotation: {\n $ref: \"#/$defs/vector3\"\n },\n scale: {\n $ref: \"#/$defs/vector3\"\n },\n width: {\n type: \"number\"\n },\n height: {\n type: \"number\"\n },\n type: {\n type: \"string\",\n default: \"Video\"\n },\n url: {\n type: \"string\"\n },\n loop: {\n type: \"boolean\",\n default: !0\n },\n muted: {\n type: \"boolean\",\n default: !0\n },\n autoPlay: {\n type: \"boolean\",\n default: !0\n },\n alphaTextureMediaID: {\n type: \"integer\"\n },\n alphaVideoMediaID: {\n type: \"integer\"\n }\n }\n }\n ]\n },\n transition: {\n title: \"Transition\",\n type: \"object\",\n allOf: [\n {\n $ref: \"#/$defs/visualComponent\"\n },\n {\n required: [\n \"targetSituationID\"\n ],\n properties: {\n targetSituationID: {\n type: \"integer\"\n },\n type: {\n type: \"string\",\n default: \"Transition\"\n }\n }\n }\n ]\n },\n button: {\n title: \"Button\",\n type: \"object\",\n allOf: [\n {\n $ref: \"#/$defs/visualComponent\"\n },\n {\n required: [\n \"url\"\n ],\n properties: {\n url: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n default: \"Button\"\n }\n }\n }\n ]\n },\n image: {\n title: \"Image\",\n type: \"object\",\n allOf: [\n {\n $ref: \"#/$defs/visualComponent\"\n },\n {\n properties: {\n url: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n default: \"Image\"\n }\n }\n }\n ]\n },\n text: {\n title: \"Text\",\n type: \"object\",\n allOf: [\n {\n $ref: \"#/$defs/situationComponent\"\n },\n {\n properties: {\n position: {\n $ref: \"#/$defs/vector3\"\n },\n rotation: {\n $ref: \"#/$defs/vector3\"\n },\n scale: {\n $ref: \"#/$defs/vector3\"\n },\n size: {\n type: \"number\",\n default: 20\n },\n text: {\n type: \"string\",\n default: \"Empty String\"\n },\n fontColor: {\n $ref: \"#/$defs/vector4\"\n },\n backgroundColor: {\n $ref: \"#/$defs/vector4\"\n },\n fontSize: {\n type: \"number\",\n default: 10\n },\n fontColor_hover: {\n $ref: \"#/$defs/vector4\"\n },\n padding: {\n type: \"number\",\n default: 20\n },\n cornerRadius: {\n type: \"number\",\n default: 10\n },\n situationID: {\n type: \"integer\"\n }\n }\n }\n ]\n },\n mediaFile: {\n title: \"MediaFile\",\n type: \"object\",\n required: [\n \"id\",\n \"url\",\n \"type\"\n ],\n properties: {\n id: {\n type: \"integer\"\n },\n url: {\n type: \"string\"\n },\n type: {\n type: \"string\"\n },\n fallbacks: {\n title: \"MediaFallbacks\",\n type: \"array\",\n items: {\n title: \"MediaFallback\",\n type: \"object\",\n required: [\n \"url\",\n \"type\"\n ],\n properties: {\n url: {\n type: \"string\"\n },\n type: {\n type: \"string\",\n enum: [\n \"browser\",\n \"maxTextureSize\",\n \"vr\",\n \"maxDeviceWidth\"\n ]\n },\n browser: {\n type: \"string\",\n enum: [\n \"Safari\",\n \"Chrome\",\n \"Firefox\",\n \"Edge\",\n \"Mobile\",\n \"Safari_iOS\"\n ]\n },\n maxTextureSize: {\n type: \"integer\"\n },\n maxDeviceWidth: {\n type: \"integer\"\n }\n }\n }\n }\n }\n },\n textureMediaFile: {\n title: \"TextureMediaFile\",\n type: \"object\",\n allOf: [\n {\n $ref: \"#/$defs/mediaFile\"\n },\n {\n properties: {\n type: {\n type: \"string\",\n default: \"Texture\"\n }\n }\n }\n ]\n },\n videoMediaFile: {\n title: \"VideoMediaFile\",\n type: \"object\",\n allOf: [\n {\n $ref: \"#/$defs/mediaFile\"\n },\n {\n properties: {\n type: {\n type: \"string\",\n default: \"Video\"\n },\n hasAlpha: {\n type: \"boolean\",\n default: !1\n }\n }\n }\n ]\n },\n vector4: {\n type: \"object\",\n required: [\n \"x\",\n \"y\",\n \"z\",\n \"w\"\n ],\n properties: {\n x: {\n type: \"number\",\n default: 0\n },\n y: {\n type: \"number\",\n default: 0\n },\n z: {\n type: \"number\",\n default: 0\n },\n w: {\n type: \"number\",\n default: 1\n }\n }\n },\n vector3: {\n type: \"object\",\n required: [\n \"x\",\n \"y\",\n \"z\"\n ],\n properties: {\n x: {\n type: \"number\",\n default: 0\n },\n y: {\n type: \"number\",\n default: 0\n },\n z: {\n type: \"number\",\n default: 0\n }\n }\n },\n vector2: {\n type: \"object\",\n required: [\n \"x\",\n \"y\"\n ],\n properties: {\n x: {\n type: \"number\",\n default: 0\n },\n y: {\n type: \"number\",\n default: 0\n }\n }\n }\n}, Bj = {\n title: Pj,\n description: Mj,\n $schema: Dj,\n type: Oj,\n $id: wj,\n required: Nj,\n properties: Fj,\n $defs: Lj\n};\nclass Vj {\n static validateConfig(e) {\n let i = new Ij({ allErrors: !0, verbose: !0 }).compile(Bj);\n return i(e), i.errors ? (console.log(\"[Logic] [ConfigManager] Found config validation errors\", i.errors), alert(\"[Logic] [ConfigManager] Found config validation errors\")) : console.log(\"[Logic] [ConfigManager] Config validated without Errors\"), e;\n }\n}\nclass JK {\n constructor(e) {\n console.log(`[Logic] [v${uP}]`), this.config = Vj.validateConfig(e), this.fluxGraphicsEngine = new Cw(), this.tour = new _X(this.fluxGraphicsEngine, this.config.tour);\n }\n async setup(e) {\n console.log(\"[Logic] Logic Setup starting...\"), bs.triggerOnBeforeSetup(), await this.fluxGraphicsEngine.setup(e), bs.triggerOnGraphicsEngineCreated(this.fluxGraphicsEngine), this.tour.setup(), bs.triggerOnAfterSetup();\n }\n getTour() {\n return this.tour;\n }\n getLifeCycleHooks() {\n return bs;\n }\n getGraphicsEngine() {\n return this.fluxGraphicsEngine;\n }\n getMediaManager() {\n return on;\n }\n}\nexport {\n vi as $,\n oe as A,\n Bl as B,\n Fe as C,\n mx as D,\n Me as E,\n Tr as F,\n qs as G,\n hv as H,\n ge as I,\n U_ as J,\n Wo as K,\n L,\n O as M,\n ks as N,\n G as O,\n Fr as P,\n se as Q,\n _i as R,\n Su as S,\n J as T,\n Tc as U,\n g as V,\n Nl as W,\n uC as X,\n Nt as Y,\n Ax as Z,\n it as _,\n Q as a,\n uL as a$,\n Bo as a0,\n Ul as a1,\n Do as a2,\n F_ as a3,\n Pt as a4,\n nn as a5,\n Fa as a6,\n Di as a7,\n Pr as a8,\n Sl as a9,\n Zc as aA,\n st as aB,\n Ae as aC,\n _h as aD,\n Za as aE,\n oi as aF,\n ue as aG,\n je as aH,\n at as aI,\n Es as aJ,\n Rf as aK,\n js as aL,\n rn as aM,\n Va as aN,\n we as aO,\n qi as aP,\n TB as aQ,\n ui as aR,\n Mi as aS,\n dt as aT,\n yA as aU,\n HS as aV,\n UV as aW,\n Hk as aX,\n XP as aY,\n Aa as aZ,\n cL as a_,\n Ds as aa,\n vo as ab,\n si as ac,\n Ut as ad,\n Cc as ae,\n ur as af,\n ws as ag,\n Sr as ah,\n Na as ai,\n wi as aj,\n sl as ak,\n Be as al,\n Ne as am,\n zr as an,\n io as ao,\n fo as ap,\n P_ as aq,\n or as ar,\n sy as as,\n Kn as at,\n _s as au,\n M_ as av,\n Y3 as aw,\n Kl as ax,\n Ft as ay,\n Ja as az,\n ee as b,\n ab as b$,\n dL as b0,\n G0 as b1,\n fL as b2,\n _l as b3,\n va as b4,\n N0 as b5,\n xa as b6,\n qK as b7,\n $a as b8,\n CK as b9,\n Tp as bA,\n dw as bB,\n mt as bC,\n bc as bD,\n y_ as bE,\n Wx as bF,\n Wh as bG,\n vs as bH,\n Mt as bI,\n GK as bJ,\n Ov as bK,\n el as bL,\n zK as bM,\n SM as bN,\n Qj as bO,\n hR as bP,\n iH as bQ,\n Fl as bR,\n il as bS,\n __ as bT,\n nw as bU,\n gc as bV,\n Oa as bW,\n na as bX,\n hf as bY,\n pi as bZ,\n dm as b_,\n Vb as ba,\n Bb as bb,\n Yh as bc,\n Mf as bd,\n Rx as be,\n bM as bf,\n k0 as bg,\n ri as bh,\n I_ as bi,\n Hx as bj,\n aa as bk,\n gf as bl,\n Xr as bm,\n B0 as bn,\n HA as bo,\n sL as bp,\n my as bq,\n QK as br,\n ZW as bs,\n On as bt,\n KP as bu,\n Hr as bv,\n tb as bw,\n Cf as bx,\n cw as by,\n VK as bz,\n X as c,\n aR as c$,\n ob as c0,\n hy as c1,\n qv as c2,\n As as c3,\n Si as c4,\n pn as c5,\n $s as c6,\n nA as c7,\n Xv as c8,\n ba as c9,\n so as cA,\n Wm as cB,\n Vv as cC,\n VG as cD,\n X_ as cE,\n CG as cF,\n fm as cG,\n Li as cH,\n HR as cI,\n Eh as cJ,\n MA as cK,\n Cv as cL,\n nb as cM,\n Vw as cN,\n YS as cO,\n At as cP,\n JS as cQ,\n Dk as cR,\n Mk as cS,\n cE as cT,\n qh as cU,\n Bk as cV,\n db as cW,\n yG as cX,\n Tu as cY,\n DR as cZ,\n Ms as c_,\n $j as ca,\n Cl as cb,\n tG as cc,\n w4 as cd,\n kv as ce,\n rK as cf,\n Xo as cg,\n ys as ch,\n KS as ci,\n BS as cj,\n Kt as ck,\n ma as cl,\n su as cm,\n lr as cn,\n S_ as co,\n Ug as cp,\n gb as cq,\n yR as cr,\n SK as cs,\n Us as ct,\n La as cu,\n uw as cv,\n Rc as cw,\n sm as cx,\n Dl as cy,\n TA as cz,\n px as d,\n nv as d$,\n Jr as d0,\n am as d1,\n Of as d2,\n q as d3,\n JW as d4,\n _y as d5,\n Ba as d6,\n wS as d7,\n qO as d8,\n _W as d9,\n b0 as dA,\n rv as dB,\n D_ as dC,\n y0 as dD,\n A0 as dE,\n SO as dF,\n Zo as dG,\n p0 as dH,\n mm as dI,\n oI as dJ,\n gm as dK,\n lI as dL,\n cH as dM,\n Uw as dN,\n Zx as dO,\n wN as dP,\n I0 as dQ,\n v0 as dR,\n x0 as dS,\n Kx as dT,\n _0 as dU,\n g0 as dV,\n tu as dW,\n Da as dX,\n tv as dY,\n T0 as dZ,\n ev as d_,\n Hj as da,\n Qx as db,\n lv as dc,\n Jx as dd,\n iv as de,\n E0 as df,\n ov as dg,\n jx as dh,\n oB as di,\n IN as dj,\n MN as dk,\n PN as dl,\n XK as dm,\n Ik as dn,\n Sf as dp,\n qx as dq,\n m0 as dr,\n Ya as ds,\n zp as dt,\n L_ as du,\n av as dv,\n yC as dw,\n vv as dx,\n sv as dy,\n Sh as dz,\n Ye as e,\n IA as e$,\n AA as e0,\n yc as e1,\n ps as e2,\n nH as e3,\n zo as e4,\n rb as e5,\n Sv as e6,\n _a as e7,\n dR as e8,\n xi as e9,\n Jp as eA,\n uy as eB,\n cy as eC,\n sz as eD,\n eo as eE,\n k4 as eF,\n k3 as eG,\n Wl as eH,\n N4 as eI,\n cA as eJ,\n sR as eK,\n AS as eL,\n xb as eM,\n fv as eN,\n PS as eO,\n vM as eP,\n He as eQ,\n bn as eR,\n CR as eS,\n iK as eT,\n lA as eU,\n Qv as eV,\n UA as eW,\n MK as eX,\n wA as eY,\n d0 as eZ,\n Uj as e_,\n RA as ea,\n lH as eb,\n $o as ec,\n ER as ed,\n lK as ee,\n om as ef,\n wf as eg,\n ti as eh,\n Ty as ei,\n Ar as ej,\n qk as ek,\n Zh as el,\n Yb as em,\n TK as en,\n Df as eo,\n LU as ep,\n tM as eq,\n _x as er,\n Sx as es,\n DC as et,\n Hs as eu,\n DL as ev,\n AV as ew,\n Ca as ex,\n er as ey,\n gC as ez,\n w as f,\n sX as f$,\n Br as f0,\n ES as f1,\n Nb as f2,\n Fb as f3,\n bS as f4,\n Sw as f5,\n Co as f6,\n ea as f7,\n Ti as f8,\n _m as f9,\n N_ as fA,\n XR as fB,\n LS as fC,\n Wc as fD,\n Xi as fE,\n XS as fF,\n pm as fG,\n Mu as fH,\n Ku as fI,\n vd as fJ,\n Ad as fK,\n Uu as fL,\n xd as fM,\n Cd as fN,\n Sd as fO,\n Td as fP,\n Rd as fQ,\n Xd as fR,\n jd as fS,\n Hd as fT,\n $d as fU,\n Kd as fV,\n Yd as fW,\n ll as fX,\n $H as fY,\n Ju as fZ,\n nd as f_,\n Vl as fa,\n En as fb,\n XV as fc,\n c_ as fd,\n to as fe,\n Yj as ff,\n lR as fg,\n JP as fh,\n xE as fi,\n wK as fj,\n Ml as fk,\n LK as fl,\n bu as fm,\n oH as fn,\n Go as fo,\n vb as fp,\n _c as fq,\n sC as fr,\n ln as fs,\n RC as ft,\n IC as fu,\n fw as fv,\n $C as fw,\n Kv as fx,\n O_ as fy,\n w_ as fz,\n De as g,\n Wu as g$,\n Kg as g0,\n yy as g1,\n Du as g2,\n nX as g3,\n Jg as g4,\n rX as g5,\n hu as g6,\n md as g7,\n Ed as g8,\n qd as g9,\n od as gA,\n zd as gB,\n oT as gC,\n dd as gD,\n Fd as gE,\n hd as gF,\n aT as gG,\n Dd as gH,\n Md as gI,\n Pd as gJ,\n aX as gK,\n lX as gL,\n oX as gM,\n Wd as gN,\n rd as gO,\n uc as gP,\n sd as gQ,\n KH as gR,\n Gu as gS,\n ju as gT,\n td as gU,\n Ld as gV,\n iX as gW,\n $u as gX,\n Lu as gY,\n Nd as gZ,\n pd as g_,\n Zd as ga,\n Qd as gb,\n ZH as gc,\n Bd as gd,\n wd as ge,\n Qg as gf,\n JH as gg,\n fd as gh,\n Gd as gi,\n zu as gj,\n wu as gk,\n Hu as gl,\n Xu as gm,\n ld as gn,\n Vf as go,\n Pa as gp,\n Id as gq,\n eX as gr,\n Zu as gs,\n YH as gt,\n ed as gu,\n Vu as gv,\n Bu as gw,\n cd as gx,\n ud as gy,\n Yu as gz,\n Pe as h,\n _n as h$,\n Jd as h0,\n id as h1,\n Vd as h2,\n Ud as h3,\n ad as h4,\n ym as h5,\n ef as h6,\n Tm as h7,\n Fu as h8,\n vm as h9,\n aL as hA,\n rl as hB,\n G_ as hC,\n xA as hD,\n dn as hE,\n oL as hF,\n Js as hG,\n kl as hH,\n Yr as hI,\n uA as hJ,\n _A as hK,\n Qa as hL,\n Vr as hM,\n cn as hN,\n V0 as hO,\n R_ as hP,\n A_ as hQ,\n Sn as hR,\n E_ as hS,\n oa as hT,\n C_ as hU,\n U0 as hV,\n LA as hW,\n Yp as hX,\n fa as hY,\n sb as hZ,\n hA as h_,\n Ou as ha,\n qu as hb,\n Zg as hc,\n _d as hd,\n bd as he,\n Od as hf,\n Cy as hg,\n tX as hh,\n ku as hi,\n qH as hj,\n gd as hk,\n yd as hl,\n jH as hm,\n Sm as hn,\n kd as ho,\n Qu as hp,\n QH as hq,\n Nu as hr,\n Jv as hs,\n BW as ht,\n fy as hu,\n sI as hv,\n dW as hw,\n uW as hx,\n py as hy,\n Ef as hz,\n Re as i,\n xn as i$,\n Ic as i0,\n eT as i1,\n wn as i2,\n Jn as i3,\n zj as i4,\n Os as i5,\n pv as i6,\n bw as i7,\n Ew as i8,\n Cu as i9,\n rG as iA,\n Gv as iB,\n mR as iC,\n uG as iD,\n lG as iE,\n dG as iF,\n mG as iG,\n aG as iH,\n nG as iI,\n kR as iJ,\n GR as iK,\n BR as iL,\n LR as iM,\n Rt as iN,\n Oi as iO,\n Gj as iP,\n l_ as iQ,\n xv as iR,\n q_ as iS,\n Vx as iT,\n EC as iU,\n RU as iV,\n Pk as iW,\n im as iX,\n EO as iY,\n Xb as iZ,\n $b as i_,\n Qp as ia,\n Cx as ib,\n kC as ic,\n GC as id,\n vw as ie,\n B_ as ig,\n Ks as ih,\n iG as ii,\n Et as ij,\n Pz as ik,\n $v as il,\n NR as im,\n hG as io,\n zR as ip,\n ut as iq,\n cG as ir,\n fG as is,\n pG as it,\n Lk as iu,\n Qk as iv,\n as as iw,\n _G as ix,\n sG as iy,\n oG as iz,\n tt as j,\n iL as j$,\n V_ as j0,\n qA as j1,\n Sp as j2,\n Zr as j3,\n Pc as j4,\n _R as j5,\n Gs as j6,\n Vs as j7,\n WE as j8,\n BE as j9,\n BK as jA,\n Gl as jB,\n lm as jC,\n gr as jD,\n OK as jE,\n DK as jF,\n Dv as jG,\n SH as jH,\n vR as jI,\n vK as jJ,\n sH as jK,\n Nv as jL,\n pt as jM,\n Zv as jN,\n Fn as jO,\n Fw as jP,\n hb as jQ,\n ot as jR,\n vy as jS,\n S0 as jT,\n aA as jU,\n $k as jV,\n Yk as jW,\n VR as jX,\n Wv as jY,\n Hv as jZ,\n jk as j_,\n LE as ja,\n FE as jb,\n HE as jc,\n go as jd,\n zE as je,\n GE as jf,\n Hi as jg,\n kE as jh,\n fR as ji,\n qt as jj,\n SR as jk,\n sK as jl,\n Tf as jm,\n Ho as jn,\n aH as jo,\n eA as jp,\n Vg as jq,\n sk as jr,\n AK as js,\n kb as jt,\n Gb as ju,\n Ub as jv,\n Lg as jw,\n g_ as jx,\n gy as jy,\n If as jz,\n $i as k,\n Uv as k$,\n Kk as k0,\n uS as k1,\n J1 as k2,\n Ag as k3,\n Tx as k4,\n mh as k5,\n MC as k6,\n Tl as k7,\n us as k8,\n zb as k9,\n VS as kA,\n Nk as kB,\n UR as kC,\n Sa as kD,\n xV as kE,\n mV as kF,\n dr as kG,\n E1 as kH,\n xe as kI,\n BU as kJ,\n Ei as kK,\n gV as kL,\n br as kM,\n NE as kN,\n No as kO,\n vV as kP,\n TV as kQ,\n MR as kR,\n Rr as kS,\n nR as kT,\n Zk as kU,\n cR as kV,\n uR as kW,\n BA as kX,\n wR as kY,\n jo as kZ,\n eH as k_,\n tL as ka,\n Ma as kb,\n bg as kc,\n TS as kd,\n Ir as ke,\n ai as kf,\n _K as kg,\n L0 as kh,\n X1 as ki,\n kA as kj,\n Iv as kk,\n ic as kl,\n i3 as km,\n ag as kn,\n OA as ko,\n Kp as kp,\n Xn as kq,\n oA as kr,\n q4 as ks,\n uK as kt,\n Jo as ku,\n Qo as kv,\n Mp as kw,\n rf as kx,\n pb as ky,\n Gg as kz,\n xr as l,\n Fv as l$,\n Wg as l0,\n xR as l1,\n VE as l2,\n Ns as l3,\n aw as l4,\n Yv as l5,\n wo as l6,\n VA as l7,\n U3 as l8,\n $S as l9,\n Vt as lA,\n Ai as lB,\n Ge as lC,\n wE as lD,\n A as lE,\n B as lF,\n tc as lG,\n SE as lH,\n Bi as lI,\n bE as lJ,\n rp as lK,\n Cr as lL,\n ct as lM,\n bA as lN,\n EA as lO,\n Fk as lP,\n jp as lQ,\n JA as lR,\n PA as lS,\n Uk as lT,\n wk as lU,\n pP as lV,\n Qh as lW,\n kp as lX,\n W0 as lY,\n IE as lZ,\n IK as l_,\n K_ as la,\n rR as lb,\n bh as lc,\n wv as ld,\n Yl as le,\n H0 as lf,\n rI as lg,\n Oo as lh,\n Xp as li,\n QA as lj,\n Pl as lk,\n Jh as ll,\n SS as lm,\n _I as ln,\n a0 as lo,\n n0 as lp,\n o0 as lq,\n GA as lr,\n Lt as ls,\n sn as lt,\n Ze as lu,\n D as lv,\n Ok as lw,\n YE as lx,\n XE as ly,\n $E as lz,\n Ii as m,\n xK as m$,\n NS as m0,\n Iu as m1,\n wr as m2,\n qe as m3,\n mE as m4,\n ms as m5,\n _o as m6,\n mo as m7,\n cs as m8,\n iM as m9,\n ny as mA,\n iy as mB,\n ou as mC,\n oy as mD,\n tm as mE,\n JE as mF,\n eI as mG,\n ly as mH,\n tI as mI,\n Cs as mJ,\n eb as mK,\n gR as mL,\n mK as mM,\n Lw as mN,\n Q1 as mO,\n KE as mP,\n em as mQ,\n hm as mR,\n Mn as mS,\n VC as mT,\n _M as mU,\n et as mV,\n $K as mW,\n tg as mX,\n dK as mY,\n fK as mZ,\n SN as m_,\n nl as ma,\n Ru as mb,\n yv as mc,\n oc as md,\n Ev as me,\n ac as mf,\n bv as mg,\n og as mh,\n HC as mi,\n ra as mj,\n lf as mk,\n vu as ml,\n TC as mm,\n Wn as mn,\n Ac as mo,\n k_ as mp,\n ry as mq,\n QE as mr,\n qE as ms,\n ey as mt,\n ZE as mu,\n tA as mv,\n jv as mw,\n ty as mx,\n YK as my,\n Jt as mz,\n R as n,\n jl as n$,\n Pg as n0,\n wp as n1,\n Lz as n2,\n Bz as n3,\n ng as n4,\n jA as n5,\n zA as n6,\n jj as n7,\n FS as n8,\n gA as n9,\n EE as nA,\n So as nB,\n Sc as nC,\n pw as nD,\n Ak as nE,\n Kj as nF,\n mb as nG,\n vC as nH,\n qj as nI,\n wg as nJ,\n ql as nK,\n OR as nL,\n jn as nM,\n WA as nN,\n Pv as nO,\n nt as nP,\n xu as nQ,\n gx as nR,\n $A as nS,\n tR as nT,\n $l as nU,\n sc as nV,\n vA as nW,\n KK as nX,\n t_ as nY,\n iR as nZ,\n al as n_,\n sr as na,\n Z4 as nb,\n SA as nc,\n Mw as nd,\n cf as ne,\n m_ as nf,\n uf as ng,\n p_ as nh,\n mc as ni,\n pf as nj,\n KC as nk,\n Ux as nl,\n zx as nm,\n ff as nn,\n x_ as no,\n xc as np,\n ci as nq,\n df as nr,\n kx as ns,\n _f as nt,\n Gx as nu,\n v_ as nv,\n T_ as nw,\n mf as nx,\n ib as ny,\n NV as nz,\n Or as o,\n ww as o$,\n U as o0,\n bK as o1,\n SB as o2,\n Af as o3,\n fb as o4,\n xy as o5,\n Hn as o6,\n pM as o7,\n Ys as o8,\n YA as o9,\n Ia as oA,\n Rs as oB,\n Ff as oC,\n mi as oD,\n qS as oE,\n CA as oF,\n Wk as oG,\n me as oH,\n Pf as oI,\n vE as oJ,\n Ts as oK,\n bo as oL,\n nI as oM,\n Ch as oN,\n DS as oO,\n dA as oP,\n fA as oQ,\n Lf as oR,\n Bn as oS,\n ZK as oT,\n WK as oU,\n IR as oV,\n xx as oW,\n FR as oX,\n RR as oY,\n f0 as oZ,\n AR as o_,\n vx as oa,\n Dp as ob,\n AC as oc,\n fx as od,\n CC as oe,\n ZP as of,\n tK as og,\n jr as oh,\n Oe as oi,\n Ws as oj,\n kH as ok,\n GH as ol,\n Ki as om,\n Ko as on,\n hi as oo,\n zH as op,\n VH as oq,\n qg as or,\n oo as os,\n UH as ot,\n YP as ou,\n eR as ov,\n kk as ow,\n Gk as ox,\n zk as oy,\n k1 as oz,\n re as p,\n aW as p$,\n PR as p0,\n zv as p1,\n Nw as p2,\n yl as p3,\n DE as p4,\n jS as p5,\n z as p6,\n z3 as p7,\n Ll as p8,\n mA as p9,\n Mv as pA,\n K3 as pB,\n Ji as pC,\n y1 as pD,\n kt as pE,\n eM as pF,\n Dw as pG,\n lb as pH,\n Ka as pI,\n xC as pJ,\n FA as pK,\n gL as pL,\n xL as pM,\n vL as pN,\n RK as pO,\n mL as pP,\n TL as pQ,\n Zj as pR,\n Bw as pS,\n Z1 as pT,\n ZS as pU,\n _b as pV,\n Tg as pW,\n kj as pX,\n Yo as pY,\n jE as pZ,\n rc as p_,\n rg as pa,\n pK as pb,\n Mc as pc,\n Xl as pd,\n ZA as pe,\n Rk as pf,\n bk as pg,\n HK as ph,\n UE as pi,\n QC as pj,\n mn as pk,\n Lr as pl,\n fs as pm,\n Mo as pn,\n XA as po,\n Qn as pp,\n rL as pq,\n gE as pr,\n OS as ps,\n TR as pt,\n oK as pu,\n cm as pv,\n Nf as pw,\n Xh as px,\n uo as py,\n un as pz,\n Ce as q,\n Kh as q$,\n NA as q0,\n Ow as q1,\n CS as q2,\n ol as q3,\n Hl as q4,\n bU as q5,\n Ct as q6,\n eL as q7,\n Jk as q8,\n eG as q9,\n hK as qA,\n cK as qB,\n l0 as qC,\n qp as qD,\n ei as qE,\n $g as qF,\n kg as qG,\n ru as qH,\n Hp as qI,\n Lo as qJ,\n Xk as qK,\n rm as qL,\n Av as qM,\n rs as qN,\n gK as qO,\n pA as qP,\n P0 as qQ,\n EK as qR,\n rA as qS,\n Y0 as qT,\n Tv as qU,\n Gp as qV,\n Ec as qW,\n IL as qX,\n mv as qY,\n PL as qZ,\n Wb as q_,\n rM as qa,\n tH as qb,\n zS as qc,\n rH as qd,\n Eu as qe,\n US as qf,\n WS as qg,\n sg as qh,\n Zn as qi,\n OE as qj,\n QS as qk,\n rC as ql,\n yO as qm,\n kS as qn,\n GS as qo,\n Xe as qp,\n aK as qq,\n nK as qr,\n CE as qs,\n wt as qt,\n eu as qu,\n ga as qv,\n mp as qw,\n jK as qx,\n dy as qy,\n bR as qz,\n qa as r,\n Mh as r$,\n RL as r0,\n EB as r1,\n Ps as r2,\n rk as r3,\n nk as r4,\n ak as r5,\n Vk as r6,\n au as r7,\n DA as r8,\n vp as r9,\n Is as rA,\n zl as rB,\n Ah as rC,\n Ih as rD,\n jh as rE,\n Wr as rF,\n no as rG,\n Ph as rH,\n ta as rI,\n J_ as rJ,\n kV as rK,\n Vh as rL,\n Nh as rM,\n Z_ as rN,\n Z0 as rO,\n BV as rP,\n vf as rQ,\n Lh as rR,\n Tt as rS,\n Dh as rT,\n Ri as rU,\n pI as rV,\n ec as rW,\n Ol as rX,\n J0 as rY,\n Bg as rZ,\n jt as r_,\n cb as ra,\n nu as rb,\n ub as rc,\n Rv as rd,\n e_ as re,\n vr as rf,\n Lv as rg,\n We as rh,\n SL as ri,\n yn as rj,\n oR as rk,\n KA as rl,\n zg as rm,\n SG as rn,\n yP as ro,\n _u as rp,\n pc as rq,\n _P as rr,\n ii as rs,\n Pi as rt,\n Yn as ru,\n bl as rv,\n cO as rw,\n d_ as rx,\n CB as ry,\n tn as rz,\n Ve as s,\n ce as s$,\n ro as s0,\n wh as s1,\n Q0 as s2,\n q0 as s3,\n b_ as s4,\n Bh as s5,\n Fh as s6,\n r0 as s7,\n xf as s8,\n Oh as s9,\n qC as sA,\n SV as sB,\n bV as sC,\n yU as sD,\n Db as sE,\n IV as sF,\n ZO as sG,\n zL as sH,\n R0 as sI,\n EU as sJ,\n WL as sK,\n FK as sL,\n UK as sM,\n NK as sN,\n aM as sO,\n i0 as sP,\n s0 as sQ,\n ZC as sR,\n t0 as sS,\n e0 as sT,\n JC as sU,\n Ln as sV,\n vg as sW,\n Tn as sX,\n Wj as sY,\n YO as sZ,\n ze as s_,\n ao as sa,\n Ss as sb,\n Al as sc,\n Fg as sd,\n ia as se,\n Nn as sf,\n Rh as sg,\n K0 as sh,\n kh as si,\n vc as sj,\n Uh as sk,\n fI as sl,\n Yg as sm,\n jg as sn,\n Ep as so,\n EV as sp,\n Bv as sq,\n dI as sr,\n Ob as ss,\n wb as st,\n Tw as su,\n yS as sv,\n kK as sw,\n DU as sx,\n bC as sy,\n SC as sz,\n nL as t,\n $h as t0,\n KO as t1,\n WH as t2,\n Bp as t3,\n Xj as t4,\n jO as t5,\n co as t6,\n Y_ as t7,\n sw as t8,\n tl as t9,\n li as tA,\n cr as tB,\n ir as tC,\n dv as tD,\n Xt as tE,\n q1 as tF,\n Og as tG,\n zm as tH,\n h0 as tI,\n c0 as tJ,\n JK as tK,\n PK as tL,\n jC as ta,\n Bx as tb,\n Lx as tc,\n I as td,\n fM as te,\n bi as tf,\n Ex as tg,\n uM as th,\n nf as ti,\n NC as tj,\n yx as tk,\n af as tl,\n dM as tm,\n xt as tn,\n bx as to,\n Zs as tp,\n np as tq,\n z_ as tr,\n W_ as ts,\n _v as tt,\n Jj as tu,\n y as tv,\n Le as tw,\n po as tx,\n $r as ty,\n wa as tz,\n hn as u,\n ye as v,\n H as w,\n Ci as x,\n zs as y,\n Ke as z\n};\n//# sourceMappingURL=index-CpY_tVle.js.map\n","\nimport { Flux360Logic } from \"flux-360-logic\";\n\nexport class Flux360LogicSingleton {\n\n private static instance: Flux360Logic;\n\n public static getInstance(): Flux360Logic {\n return this.instance;\n }\n\n public static setInstance(instance:Flux360Logic) { \n this.instance =instance;\n }\n}","/**\n* @vue/shared v3.4.38\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\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 = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.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, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\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};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"HOISTED\": -1,\n \"-1\": \"HOISTED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\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);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\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 if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\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) 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 VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_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 unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\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\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val.__v_isRef === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\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 (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.4.38\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { NOOP, extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction } from '@vue/shared';\n\nfunction warn(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(`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(\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 = 4;\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 === 2 || this._dirtyLevel === 3) {\n 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 >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 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 if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n this.onStop && this.onStop();\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.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) 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 enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\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 let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\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 if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\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 4,\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 const depsMap = targetMap.get(object);\n return depsMap && depsMap.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 if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\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 isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver 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 (isShallow2) {\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(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\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(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\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(\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, isReadonly2 = false, isShallow2 = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly2) {\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 = 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(key, isReadonly2 = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly2) {\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, 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, _isShallow = false) {\n if (!_isShallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\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, _isShallow = false) {\n if (!_isShallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\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(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(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(\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 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(value) {\n return add.call(this, value, true);\n },\n set(key, value) {\n return set.call(this, key, value, true);\n },\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 = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\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(\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(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(\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 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 warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\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 value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this.getter = getter;\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(\n this,\n this.effect._dirtyLevel === 2 ? 2 : 3\n )\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) && hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 4);\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 2) {\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n warn(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n }\n triggerRefValue(self, 2);\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(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 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 var _a;\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n (_a = ref2.dep) != null ? _a : 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 = 4, newVal, oldVal) {\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 oldValue: oldVal\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 const oldVal = this._rawValue;\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 4, newVal, oldVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 4, !!(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 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 deferredComputed = computed;\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};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\"\n};\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseScheduling, pauseTracking, proxyRefs, reactive, readonly, ref, resetScheduling, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n","/**\n* @vue/runtime-core v3.4.38\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isReactive, ReactiveEffect, isShallow, getCurrentScope, customRef, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, EMPTY_OBJ, isObject, remove, isRegExp, invokeArrayFns, toHandlerKey, capitalize, camelize, hasOwn, isGloballyAllowed, NO, hyphenate, isReservedProp, EMPTY_ARR, toRawType, makeMap, def, isOn, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, hasChanged, isSet, isMap, isPlainObject, looseToNumber, isModelListener, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\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 // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).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 isWarning = false;\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\")) 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 \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\"\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\",\n [15]: \"component update\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\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 if (isArray(fn)) {\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 } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\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 pauseTracking();\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n resetTracking();\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 const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.active !== false) cb();\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) return -1;\n if (b.pre && !a.pre) 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(\n job,\n job.i,\n job.i ? 15 : 14\n );\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.i;\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 Map();\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) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\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 dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n instance.parent.effect.dirty = true;\n queueJob(() => {\n instance.parent.update();\n dirtyInstances.delete(instance);\n });\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 hmrDirtyComponents.clear();\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$1(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 // eslint-disable-next-line no-restricted-syntax\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$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"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};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\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$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\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 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) 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 return renderFnWithContext;\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 = getComponentPublicInstance(currentRenderingInstance);\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 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 = 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 recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\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 \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) 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 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 let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\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};\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, postClone) {\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)) 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] = (cancelled) => {\n if (called) 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] = 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]) {\n el[enterCbKey](\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) 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 const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\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 if (!isKeepAlive(vnode)) {\n return vnode;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\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) 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 invalidateMount(instance2.m);\n invalidateMount(instance2.a);\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 (cached && (!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 if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\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 if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\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};\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 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 if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\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\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\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 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\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) 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\") 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}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\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)) return true;\n if (child.type === Comment) 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\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\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);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\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.attrs, \"get\", \"\");\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 return globalProperties[key];\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